新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM存儲(chǔ)器之:協(xié)處理器CP15

ARM存儲(chǔ)器之:協(xié)處理器CP15

作者: 時(shí)間:2013-09-30 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://m.butianyuan.cn/article/257013.htm

存儲(chǔ)系統(tǒng)有非常靈活的體系結(jié)構(gòu),可以適應(yīng)不同的嵌入式應(yīng)用系統(tǒng)的需要。系統(tǒng)可以使用簡(jiǎn)單的平板式地址映射機(jī)制(就像一些簡(jiǎn)單的單片機(jī)一樣,地址空間的分配方式是固定的,系統(tǒng)中各部分都使用物理地址),也可以使用其他技術(shù)提供功能更為強(qiáng)大的存儲(chǔ)系統(tǒng)。比如:

·系統(tǒng)可能提供多種類型的件,如FLASH、ROM、SRAM等;

·Caches技術(shù);

·寫緩存技術(shù)(writebuffers);

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

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

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

·使用內(nèi)存映射技術(shù)實(shí)現(xiàn)虛擬空間到物理空間的映射。這種映射機(jī)制對(duì)嵌入式系統(tǒng)非常重要。通常嵌入式系統(tǒng)程序存放在ROM/FLASH中,這樣系統(tǒng)斷電后程序能夠得到保存。但是通常ROM/FLASH與SDRAM相比,速度慢很多,而且基于的嵌入式系統(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)的需要。

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

·引入一些機(jī)制保證將I/O操作映射成內(nèi)存操作后,各種I/O操作能夠得到正確的結(jié)果。在簡(jiǎn)單存儲(chǔ)系統(tǒng)中,不存在這樣問題。而當(dāng)系統(tǒng)引入了Cache和writebuffer后,就需要一些特別的措施。

在ARM系統(tǒng)中,要實(shí)現(xiàn)對(duì)存儲(chǔ)系統(tǒng)的管理通常是使用,它通常也被稱為系統(tǒng)控制(SystemControlCoprocessor)。

ARM的系統(tǒng)是由多級(jí)構(gòu)成的,每級(jí)都有特定的容量和速度。

圖15.1顯示了存儲(chǔ)器的層次結(jié)構(gòu)。

①寄存器。處理器寄存器組可看作是存儲(chǔ)器層次的頂層。這些寄存器被集成在處理器內(nèi)核中,在系統(tǒng)中提供最快的存儲(chǔ)器訪問。典型的ARM處理器有多個(gè)32位寄存器,其訪問時(shí)間為ns量級(jí)。

圖15.1存儲(chǔ)器的層次結(jié)構(gòu)

②緊耦合存儲(chǔ)器。為彌補(bǔ)Cache訪問的不確定性增加的存儲(chǔ)器。是一種快速SDRAM,它緊挨內(nèi)核,并且保證取指和數(shù)據(jù)操作的時(shí)鐘周期數(shù),這一點(diǎn)對(duì)一些要求確定行為的實(shí)時(shí)算法是很重要的。位于存儲(chǔ)器地址映射中,可作為快速存儲(chǔ)器來訪問。

③片上Cache存儲(chǔ)器的容量在8KB~32KB之間,訪問時(shí)間大約為10ns。

④高性能的ARM結(jié)構(gòu)中,可能存在第二級(jí)片外Cache,容量為幾百KB,訪問時(shí)間為幾十ns。

⑤DRAM。主存儲(chǔ)器可能是幾MB到幾十MB的動(dòng)態(tài)存儲(chǔ)器,訪問時(shí)間大約為100ns。

⑥后援存儲(chǔ)器,通常是硬盤,可能從幾百M(fèi)B到幾個(gè)GB,訪問時(shí)間為幾十ms。

注意

TCM和SRAM在技術(shù)上相同,但在結(jié)構(gòu)排列上不同;TCM在片上,而SRAM在板上。

15.1

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)算。

,即通常所說的系統(tǒng)控制協(xié)處理器(SystemControlCoprocesssor)。它負(fù)責(zé)完成大部分的存儲(chǔ)系統(tǒng)管理。除了CP15外,在具體的各種存儲(chǔ)管理機(jī)制中可能還會(huì)用到其他的一些技術(shù),如在MMU中除CP15外,還使用了頁(yè)表技術(shù)等。

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

CP15包含16個(gè)32位寄存器,其編號(hào)為0~15。實(shí)際上對(duì)于某些編號(hào)的寄存器可能對(duì)應(yīng)多個(gè)物理寄存器,在指令中指定特定的標(biāo)志位來區(qū)分這些物理寄存器。這種機(jī)制有些類似于ARM中的寄存器,當(dāng)處于不同的處理器模式時(shí),某些相同編號(hào)的寄存器對(duì)應(yīng)于不同的物理寄存器。

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

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

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

·相同編號(hào)的寄存器是否對(duì)應(yīng)不同的物理寄存器。

·寄存器的具體作用。


上一頁(yè) 1 2 3 4 5 6 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉