日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

【ARM】Cortex存储系统

發(fā)布時(shí)間:2024/4/24 windows 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【ARM】Cortex存储系统 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

00. 目錄

文章目錄

    • 00. 目錄
    • 01. 存儲系統(tǒng)概述
    • 02. 協(xié)處理器(CP15)
    • 03. 存儲管理單元(MMU)
    • 04. 高速緩沖存儲器(Cache)
    • 05. 附錄

01. 存儲系統(tǒng)概述

ARM 存儲系統(tǒng)有非常靈活的體系結(jié)構(gòu),可以適應(yīng)不同的嵌入式應(yīng)用系統(tǒng)的需要。ARM存儲器系統(tǒng)可以使用簡單的平板式地址映射機(jī)制

(就像一些簡單的單片機(jī)一樣,地址空間的分配方式是固定的,系統(tǒng)中各部分都使用物理地址),也可以使用其他技術(shù)提供功能更為強(qiáng)大

的存儲系統(tǒng)。例如:
(1)系統(tǒng)可能提供多種類型的存儲器件,如 Flash、ROM、SRAM 等。

(2)Cache 技術(shù)。

(3)寫緩存技術(shù)(Write Buffers)。

(4)虛擬內(nèi)存和 I/O 地址映射技術(shù)。

大多數(shù)系統(tǒng)通過下面的方法之一可實(shí)現(xiàn)對復(fù)雜存儲系統(tǒng)的管理。

(1)使用 Cache,縮小處理器和存儲系統(tǒng)速度差別,從而提高系統(tǒng)的整體性能。

(2)使用內(nèi)存映射技術(shù)實(shí)現(xiàn)虛擬空間到物理空間的映射。這種映射機(jī)制對嵌入式系統(tǒng)非常重要。通常嵌入式系統(tǒng)程序存放在 ROM/Flash

中,這樣系統(tǒng)斷電后程序能夠得到保存。但是,通常 ROM/Flash 與 SDRAM 相比,速度慢很多,而且基于 ARM 的嵌入式系統(tǒng)中通常把異

常中斷向量表放在 RAM 中。利用內(nèi)存映射機(jī)制可以滿足這種需要。在系統(tǒng)加電時(shí),將 ROM/Flash 映射為地址 0,這樣可以進(jìn)行一些初始

化處理;當(dāng)這些初始化處理完成后將SDRAM 映射為地址 0,并把系統(tǒng)程序加載到 SDRAM 中運(yùn)行,這樣可以很好地滿足嵌入式系統(tǒng)的需要。

(3)引入存儲保護(hù)機(jī)制,增強(qiáng)系統(tǒng)的安全性。

(4)引入一些機(jī)制保證將 I/O 操作映射成內(nèi)存操作后,各種 I/O 操作能夠得到正確的結(jié)果。在簡單存儲系統(tǒng)中,不存在這樣的問題。而

當(dāng)系統(tǒng)引入了 Cache 和 write buffer 后,就需要一些特別的措施。

在 ARM 系統(tǒng)中,要實(shí)現(xiàn)對存儲系統(tǒng)的管理通常使用協(xié)處理器 CP15,它通常也被稱為系統(tǒng)控制協(xié)處理器(System Control

Coprocessor)。

ARM 的存儲器系統(tǒng)是由多級構(gòu)成的,可以分為內(nèi)核級、芯片級、板卡級、外設(shè)級。下圖 所示為存儲器的層次結(jié)構(gòu)。

每級都有特定的存儲介質(zhì),下面對比各級系統(tǒng)中特定存儲介質(zhì)的存儲性能。

(1)內(nèi)核級的寄存器。處理器寄存器組可看做是存儲器層次的頂層。這些寄存器被集成在處理器內(nèi)核中,在系統(tǒng)中提供最快的存儲器訪

問。典型的 ARM 處理器有多個(gè) 32 位寄存器,其訪問時(shí)間為 ns 量級。

(2)芯片級的緊耦合存儲器(TCM)是為彌補(bǔ) Cache 訪問的不確定性增加的存儲器。TCM 是一種快速 SDRAM,它緊挨內(nèi)核,并且保證

取指和數(shù)據(jù)操作的時(shí)鐘周期數(shù),這一點(diǎn)對一些要求確定行為的實(shí)時(shí)算法是很重要的。TCM 位于存儲器地址映射中,可作為快速存儲器來

訪問。

(3)芯片級的片上 Cache 存儲器的容量在 8~32KB 之間,訪問時(shí)間大約為 10ns。高性能的 ARM 結(jié)構(gòu)中,可能存在第二級片外

Cache,容量為幾百千字節(jié)(KB),訪問時(shí)間為幾十納秒。

(4)板卡級的 DRAM。主存儲器可能是幾兆字節(jié)(MB)到幾十兆字節(jié)(MB)的動(dòng)態(tài)存儲器,訪問時(shí)間大約為 100ns。

(5)外設(shè)級的后援存儲器,通常是硬盤,可能從幾百兆字節(jié)(MB)到幾個(gè)吉字節(jié)(GB),訪問時(shí)間為幾十毫秒。

02. 協(xié)處理器(CP15)

? ARM 處理器支持 16 個(gè)協(xié)處理器。在程序執(zhí)行過程中,每個(gè)協(xié)處理器忽略屬于 ARM處理器和其他協(xié)處理器的指令。當(dāng)一個(gè)協(xié)處理器硬

件不能執(zhí)行屬于它的協(xié)處理器指令時(shí),將產(chǎn)生一個(gè)未定義指令異常中斷,在該異常中斷處理程序中,可以通過軟件模擬該硬件操作。例

如,如果系統(tǒng)不包含向量浮點(diǎn)運(yùn)算器,則可以選擇浮點(diǎn)運(yùn)算軟件模擬包來支持向量浮點(diǎn)運(yùn)算。CP15 即通常所說的系統(tǒng)控制協(xié)處理器

(System Control Coprocessor),它負(fù)責(zé)完成大部分的存儲系統(tǒng)管理。除了 CP15 外,在具體的各種存儲管理機(jī)制中可能還會用到其他

一些技術(shù),如在 MMU 中除了 CP15 外,還使用了頁表技術(shù)等。

在一些沒有標(biāo)準(zhǔn)存儲管理的系統(tǒng)中,CP15 是不存在的。在這種情況下,針對 CP15 的操作指令將被視為未定義指令,指令的執(zhí)行結(jié)果不

可預(yù)知。CP15 包含 16 個(gè) 32 位寄存器,其編號為 0~15。實(shí)際上對于某些編號的寄存器可能對應(yīng)多個(gè)物理寄存器,在指令中指定特定的

標(biāo)志位來區(qū)分這些物理寄存器。這種機(jī)制有些類似于 ARM 中的寄存器,當(dāng)處于不同的處理器模式時(shí),某些相同編號的寄存器對應(yīng)于不同

的物理寄存器。

CP15 中的寄存器可能是只讀的,也可能是只寫的,還有一些是可讀/可寫的。在對協(xié)處理器寄存器進(jìn)行操作時(shí),需要注意以下幾個(gè)問題:

(1)寄存器的訪問類型(只讀/只寫/可讀可寫)。

(2)不同的訪問引發(fā)不同的功能。

(3)相同編號的寄存器是否對應(yīng)不同的物理寄存器。

(4)寄存器的具體作用。

03. 存儲管理單元(MMU)

? 在創(chuàng)建多任務(wù)嵌入式系統(tǒng)時(shí),最好用一個(gè)簡單的方式來編寫、裝載及運(yùn)行各自獨(dú)立的任務(wù)。目前大多數(shù)的嵌入式系統(tǒng)不再使用自己定制

的控制系統(tǒng),而使用操作系統(tǒng)來簡化這個(gè)過程。較高級的操作系統(tǒng)采用基于硬件的存儲管理單元(MMU)來實(shí)現(xiàn)上述操作。

? MMU 提供的一個(gè)關(guān)鍵服務(wù)是使各個(gè)任務(wù)作為各自獨(dú)立的程序在自己的私有存儲空間中運(yùn)行。在帶 MMU 的操作系統(tǒng)控制下,運(yùn)行的任

務(wù)無須知道其他與之無關(guān)的任務(wù)的存儲需求情況,這就簡化了各個(gè)任務(wù)的設(shè)計(jì)。

? MMU 提供了一些資源以允許使用虛擬存儲器(將系統(tǒng)物理存儲器重新編址,可將其看成一個(gè)獨(dú)立于系統(tǒng)物理存儲器的存儲空間)。

MMU 作為轉(zhuǎn)換器,將程序和數(shù)據(jù)的虛擬地址(編譯時(shí)的連接地址)轉(zhuǎn)換成實(shí)際的物理地址,即在物理主存中的地址。這個(gè)轉(zhuǎn)換過程允許

運(yùn)行的多個(gè)程序使用相同的虛擬地址,而各自存儲在物理存儲器的不同位置。

? 這樣存儲器就有兩種類型的地址:虛擬地址和物理地址。虛擬地址由編譯器和連接器在定位程序時(shí)分配;物理地址用來訪問實(shí)際的主存

硬件模塊(物理上程序存在的區(qū)域)。

04. 高速緩沖存儲器(Cache)

? Cache 是一個(gè)容量小但存取速度非常快的存儲器,它保存最近用到的存儲器數(shù)據(jù)副本。對于程序員來說,Cache 是透明的。它自動(dòng)決定

保存哪些數(shù)據(jù)、覆蓋哪些數(shù)據(jù)。現(xiàn)在 Cache通常與處理器在同一芯片上實(shí)現(xiàn)。Cache 能夠發(fā)揮作用是因?yàn)槌绦蚓哂芯植啃浴K^局部性就

是指在任何特定的時(shí)間,處理器趨于對相同區(qū)域的數(shù)據(jù)(如堆棧)多次執(zhí)行相同的指令(如循環(huán))。

? Cache 經(jīng)常與寫緩存器(Write Buffer)一起使用。寫緩存器是一個(gè)非常小的先進(jìn)先出(FIFO)存儲器,位于處理器核與主存之間。使

用寫緩存的目的是,將處理器核和 Cache從較慢的主存寫操作中解脫出來。當(dāng) CPU 向主存儲器做寫入操作時(shí),它先將數(shù)據(jù)寫入到寫緩存

區(qū)中,由于寫緩存器的速度很高,這種寫入操作的速度也將很高。寫緩存區(qū)在 CPU 空閑時(shí),以較低的速度將數(shù)據(jù)寫入到主存儲器中相應(yīng)

的位置。

? 通過引入 Cache 和寫緩存區(qū),存儲系統(tǒng)的性能得到了很大的提高,但同時(shí)也帶來了一些問題。例如,由于數(shù)據(jù)將存在于系統(tǒng)中不同的

物理位置,可能造成數(shù)據(jù)的不一致性;由于寫緩存區(qū)的優(yōu)化作用,可能有些寫操作的執(zhí)行順序不是用戶期望的順序,從而造成操作錯(cuò)誤。

05. 附錄

5.1 ARM處理器開發(fā)詳解筆記

總結(jié)

以上是生活随笔為你收集整理的【ARM】Cortex存储系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。