ARM尋址方式

尋址方式是根據(jù)指令中給出的地址碼字段來實(shí)現(xiàn)尋找真實(shí)操作數(shù)地址的方式。ARM處理器具有9種基本尋址方式。

ARM尋址方式造價(jià)信息

市場價(jià) 信息價(jià) 詢價(jià)
材料名稱 規(guī)格/型號(hào) 市場價(jià)
(除稅)
工程建議價(jià)
(除稅)
行情 品牌 單位 稅率 供應(yīng)商 報(bào)價(jià)日期
接地方式 品種:斷路器附件;系列:CV2-24;規(guī)格:特殊接地方式2; 查看價(jià)格 查看價(jià)格

常熟開關(guān)

13% 上海西屋開關(guān)有限公司
接地方式 品種:斷路器附件;系列:CV2-12/T(V);類型:手車式;規(guī)格:特殊接地方式1; 查看價(jià)格 查看價(jià)格

常熟開關(guān)

13% 上海西屋開關(guān)有限公司
接地方式 品種:斷路器附件;系列:CV2-12/T(V);類型:手車式;規(guī)格:特殊接地方式2; 查看價(jià)格 查看價(jià)格

常熟開關(guān)

13% 上海西屋開關(guān)有限公司
接地方式 品種:斷路器附件;系列:CV2-24;規(guī)格:特殊接地方式1; 查看價(jià)格 查看價(jià)格

常熟開關(guān)

13% 上海西屋開關(guān)有限公司
接地方式 品種:斷路器附件;系列:CV2-12(i);規(guī)格:特殊接地方式1; 查看價(jià)格 查看價(jià)格

常熟開關(guān)

13% 上海西屋開關(guān)有限公司
接地方式 品種:斷路器附件;系列:CV2-12(i);規(guī)格:特殊接地方式2; 查看價(jià)格 查看價(jià)格

常熟開關(guān)

13% 上海西屋開關(guān)有限公司
接地方式 品種:斷路器附件;系列:CV1-12;類型:手車式;規(guī)格:特殊接地方式1; 查看價(jià)格 查看價(jià)格

常熟開關(guān)

13% 上海西屋開關(guān)有限公司
接地方式 品種:斷路器附件;系列:CV2-12/T(C);類型:手車式;規(guī)格:特殊接地方式2; 查看價(jià)格 查看價(jià)格

常熟開關(guān)

13% 上海西屋開關(guān)有限公司
材料名稱 規(guī)格/型號(hào) 除稅
信息價(jià)
含稅
信息價(jià)
行情 品牌 單位 稅率 地區(qū)/時(shí)間
連接方式:膠圈密封柔性連接或承插電熱熔連接 DN1500 查看價(jià)格 查看價(jià)格

m 湛江市2019年4季度信息價(jià)
連接方式:膠圈密封柔性連接或承插電熱熔連接 DN2000 查看價(jià)格 查看價(jià)格

m 湛江市2019年4季度信息價(jià)
連接方式:膠圈密封柔性連接或承插電熱熔連接 DN1600 查看價(jià)格 查看價(jià)格

m 湛江市2019年4季度信息價(jià)
連接方式:膠圈密封柔性連接或承插電熱熔連接 DN1800 查看價(jià)格 查看價(jià)格

m 湛江市2019年4季度信息價(jià)
總線手動(dòng)控制盤 TB-ARM-M 查看價(jià)格 查看價(jià)格

湛江市2011年1月信息價(jià)
總線手動(dòng)控制盤 TB-ARM-M 查看價(jià)格 查看價(jià)格

湛江市2010年11月信息價(jià)
總線接口板(雙回路板) TB-ARM-10 查看價(jià)格 查看價(jià)格

湛江市2011年2月信息價(jià)
總線接口板(雙回路板) TB-ARM-10 查看價(jià)格 查看價(jià)格

湛江市2010年10月信息價(jià)
材料名稱 規(guī)格/需求量 報(bào)價(jià)數(shù) 最新報(bào)價(jià)
(元)
供應(yīng)商 報(bào)價(jià)地區(qū) 最新報(bào)價(jià)時(shí)間
故障尋址 故障尋址儀|354個(gè) 3 查看價(jià)格 上海巨廣電氣有限公司 廣東   2017-10-09
故障尋址 故障尋址器|1臺(tái) 1 查看價(jià)格 上海巨沈電氣有限公司 遼寧  大連市 2018-06-19
尋址系統(tǒng)ID解碼器 ID地址碼/尋址碼解碼CEO-PA 數(shù)字尋址設(shè)備 CE-712|2339個(gè) 1 查看價(jià)格 深圳市松本先天下科技發(fā)展有限公司 廣東  深圳市 2015-11-16
單防區(qū)可尋址觸點(diǎn)模塊 單防區(qū)可尋址觸點(diǎn)模塊|1臺(tái) 1 查看價(jià)格 天津天地偉業(yè)科技有限公司蘭州分公司 貴州  貴陽市 2016-10-14
IP網(wǎng)絡(luò)尋址廣播功放 IP網(wǎng)絡(luò)尋址廣播功放|34套 3 查看價(jià)格 廣州賽瑞電子有限公司 廣東  深圳市 2022-06-08
電纜故障尋址 電纜故障尋址儀|1臺(tái) 1 查看價(jià)格 上海西大電力科技有限公司 全國   2019-07-30
尋址系統(tǒng)數(shù)字通訊主機(jī) ID尋址碼發(fā)送、系統(tǒng)控制CEO-PA 數(shù)字尋址設(shè)備 CE-7133|5963個(gè) 1 查看價(jià)格 深圳市松本先天下科技發(fā)展有限公司 廣東  深圳市 2015-03-31
故障尋址儀(一組三只) 故障尋址儀(一組三只)|1組 1 查看價(jià)格 廣西悅能電力科技有限公司 廣西   2022-09-27

ARM尋址方式常見問題

  • 供貨方式

    你選擇的可能是配比材料或者不是單獨(dú)的材料,比如 水泥砂漿等 只有單獨(dú)的材料才可以選擇供貨方式 如 水泥 鋼筋 大理石等

  • 計(jì)稅方式

    此營業(yè)稅計(jì)價(jià)模式。

  • 計(jì)稅方式

    采用先前的計(jì)稅方式,也就是營業(yè)稅的計(jì)稅模式

ARM尋址方式文獻(xiàn)

一種基于ARM和內(nèi)容可尋址存儲(chǔ)器的硬件防火墻 一種基于ARM和內(nèi)容可尋址存儲(chǔ)器的硬件防火墻

格式:pdf

大?。?span id="5022qcq" class="single-tag-height">2.4MB

頁數(shù): 3頁

評分: 4.6

該文介紹了一種基于ARM的硬件防火墻方案,由于采用了內(nèi)容可尋址存儲(chǔ)器芯片MCM69C232,使得系統(tǒng)處理能力強(qiáng),簡單可靠,使用靈活,適用性強(qiáng),具有良好的應(yīng)用前景。

立即下載
ARM嵌入式系統(tǒng)開發(fā)綜述ARM開發(fā)工程師入門寶典 ARM嵌入式系統(tǒng)開發(fā)綜述ARM開發(fā)工程師入門寶典

格式:pdf

大小:2.4MB

頁數(shù): 28頁

評分: 4.4

獲取更多權(quán)威電子書 請登錄 www.eetchina.com ARM 嵌入式系統(tǒng)開發(fā)綜述 ARM 開發(fā)工程師入門寶典 獲取更多權(quán)威電子書 請登錄 www.eetchina.com 硬件工程師必讀攻略 ----如何通過仿真有效提高數(shù)?;旌显O(shè)計(jì)性能 (上 ) 2 / 28 前 言 嵌入式系統(tǒng)通常是以具體應(yīng)用為中心, 以處理器為核心且面向?qū)嶋H應(yīng)用的軟 硬件系統(tǒng),其硬件是整個(gè)嵌入式系統(tǒng)運(yùn)行的基礎(chǔ)和平臺(tái), 提供了軟件運(yùn)行所需的 物理平臺(tái)和通信接口; 而嵌入式系統(tǒng)的軟件一般包括操作系統(tǒng)和應(yīng)用軟件, 它們 是整個(gè)系統(tǒng)的控制核心, 提供人機(jī)交互的信息等。 所以,嵌入式系統(tǒng)的開發(fā)通常 包括硬件和軟件兩部分的開發(fā),硬件部分主要包括選擇合適的 MCU 或者 SOC 器件、存儲(chǔ)器類型、通訊接口及 I/O、電源及其他的輔助設(shè)備等;軟件部分主要 涉及 OS porting 和應(yīng)用程序的開發(fā)等,與此同時(shí),軟件中斷調(diào)試

立即下載

操作數(shù)的地址是程序程序計(jì)數(shù)器PC的值加上一個(gè)偏移來哪個(gè),這個(gè)偏移量在指令地址碼中給出,因?yàn)樵L問的數(shù)據(jù)位置是相對于指令的位置,因此稱為相對尋址方式。

立即數(shù)尋址

立即數(shù)尋址又稱立即尋址,即指令中直接給出操作數(shù)的尋址方式稱為立即數(shù)尋址。在51系列單片機(jī)指令系統(tǒng)中,立即數(shù)用前面加"#"號(hào)的8位數(shù)表示(#data,如#30H)或16位數(shù)(#data16,如#2052H)表示。舉例說明立即數(shù)尋址方式,以傳送指令為例。

例:MOV A, #80H ;80H-->A

MOV DPTR, #2000H ;2000H-->DPTR

直接尋址

指令中直接給出操作數(shù)地址(dir)的尋址方式稱為直接尋址。尋址對象為:1 內(nèi)部數(shù)據(jù)存儲(chǔ)器,在指令中以直接地址表示;2特殊功能寄存器SFR,在指令中用寄存器名稱表示。

下面舉例說明。

例:MOV A, 25H ;內(nèi)部RAM的(25H)-->A

MOV P0, #45H ;45H-->P0 ,P0為直接尋址的SFR

MOV 30H,20H ;內(nèi)部RAM的(20H)-->(30H)

寄存器尋址

以通用寄存器的內(nèi)容為操作數(shù)的尋址方式稱為寄存器尋址。通用寄存器包括:A、B、DPTR、R0~R7。其中B寄存器僅在乘法、除法指令中為寄存器尋址,在其它指令中為直接尋址。A寄存器可以寄存器尋址,又可以直接尋址(此時(shí)寫作ACC)。直接尋址和寄存器尋址的差別在于,直接尋址是操作數(shù)所在的字節(jié)地址(占一個(gè)字節(jié)),寄存器尋址是寄存器編碼出現(xiàn)在指令碼中。寄存器尋址速度比直接尋址要快。除上面所指的幾個(gè)寄存器外,其它特殊功能寄存器一律為直接尋址。

例:MOV A, R0 ;R0-->A,R0為寄存器尋址

MUL AB ;A×B-->BA,A,B為寄存器尋址

MOV B, R0 ;R0-->B,R0為寄存器尋址,B為直接尋址

PUSH ACC ;A的內(nèi)容入棧,A為直接尋址

ADD A, ACC ;A為寄存器尋址,ACC為直接尋址

寄存器間接尋址

以寄存器中的內(nèi)容為地址,該地址的內(nèi)容為操作數(shù)的尋址方式稱為寄存器間接尋址。能夠進(jìn)行寄存器間接尋址的寄存器有:R0、R1、DPTR,用前面加@表示,如@R0、@R1、@DPTR。寄存器間接尋址的存儲(chǔ)空間包括內(nèi)部數(shù)據(jù)存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器。由于內(nèi)部數(shù)據(jù)存儲(chǔ)器共有128字節(jié),因此用一字節(jié)的R0和R1可間接尋址整個(gè)空間。而外部數(shù)據(jù)存儲(chǔ)器最大可達(dá)64K,僅R0或R1無法尋址整個(gè)空間,為此需要由P2端口提供外部RAM高8位地址,由R0或R1提供低8位地址,由此共同尋址64K字節(jié)范圍。也可用16位的DPTR寄存器間接尋址64K字節(jié)存儲(chǔ)空間。

在指令中,是對內(nèi)部RAM還是對外部RAM尋址,區(qū)別在于對外部RAM的操作僅有數(shù)據(jù)傳送指令,并且用MOVX作為操作助記符。

例:MOV @R0, A ;A-->以R0內(nèi)容為地址的內(nèi)部RAM中

MOVX @DPTR, A ;A-->以DPTR內(nèi)容為地址的外部RAM中

變址尋址

由寄存器DPTR或PC中的內(nèi)容加上A累加器內(nèi)容之和而形成操作數(shù)地址的尋址方式稱為變址尋址。變址尋址只能對程序存儲(chǔ)器中的數(shù)據(jù)進(jìn)行尋址操作。由于程序存儲(chǔ)器是只讀存貯器,因此變址尋址只有讀操作而無寫操作。在指令符號(hào)上采用MOVC的形式。

例:MOVC A, @A+DPTR ;(A+DPTR)-->A

MOVC A, @A+PC ; (PC)+1--PC ((A)+(PC))-->A

圖4 MOVC A, @A+DPTR

圖5 MOVC A, @A+PC

位尋址

對位地址中的內(nèi)容進(jìn)行位操作的尋址方式稱為位尋址。由于單片機(jī)中只有內(nèi)部RAM和特殊功能寄存器的部分單元有位地址,因此位尋址只能對有位地址的這兩個(gè)空間進(jìn)行尋址操作。位尋址是一種直接尋址方式,由指令給出直接位地址。與直接尋址不同的是,位尋址只給出位地址,而不是字節(jié)地址。

例:SETB 20H ;1-->20H位

MOV 32H, C ;進(jìn)位Cy(即指令中的C)-->32H位

相對尋址

以當(dāng)前程序計(jì)數(shù)器PC的內(nèi)容為基址,加上指令給出的一字節(jié)補(bǔ)碼數(shù)(偏移量)形成新的PC值的尋址方式稱為相對尋址。相對尋址方式只修改PC值,故主要用于實(shí)現(xiàn)程序的分支轉(zhuǎn)移。

例:SJMP 08H ;PC+2+08H-->PC (該指令為兩字節(jié),所以有PC+2)

cm 0pt; TEXT-INDENT: 17.65pt; LINE-HEIGHT: 125%; mso-char-indent-count: 1.47">對位地址中的內(nèi)容進(jìn)行位操作的尋址方式稱為位尋址。原理與位尋址相似。

---

有同學(xué)反映,我們視頻一上來就講干貨,希望適當(dāng)普及一下相關(guān)概念,這篇就是。

ARM處理器解析

ARM9、ARM11是哈佛5級(jí)流水線結(jié)構(gòu),所以性能要高一點(diǎn)。ARM9和ARM11大多帶內(nèi)存管理器,跑操作系統(tǒng)好一點(diǎn),ARM7適合裸奔。我們慣稱的 ARM9系列中又存在ARM9與ARM9E兩個(gè)系列,其中ARM9 屬于ARM v4T架構(gòu),典型處理器如ARM9TDMI和ARM922T;

而ARM9E屬于ARM v5TE架構(gòu),典型處理器如ARM926EJ和ARM946E。因?yàn)楹笳叩男酒瑪?shù)量和應(yīng)用更為廣泛,所以我們提到ARM9的時(shí)候更多地是特指ARM9E系列處理器(主要就是ARM926EJ和ARM946E這兩款處理器)。

下面關(guān)于ARM9的介紹也是更多地集中于ARM9E。

2

ARM7處理器和ARM9E處理器的流水線差別

對嵌入式系統(tǒng)設(shè)計(jì)者來說,硬件通常是第一考慮的因素。針對處理器來說,流水線則是硬件差別的最明顯標(biāo)志,不同的流水線設(shè)計(jì)會(huì)產(chǎn)生一系列硬件差異。

讓我們來比較一下ARM7和ARM9E的流水線,ARM9E從ARM7的3級(jí)流水線增加到了5級(jí),ARM9E的流水線中容納了更多的邏輯操作,但是每一級(jí)的邏輯操作卻變得更為簡單。

比如原來 ARM7的第三級(jí)流水,需要先內(nèi)部讀取寄存器、然后進(jìn)行相關(guān)的邏輯和算術(shù)運(yùn)算,接著處理結(jié)果回寫,完成的動(dòng)作非常復(fù)雜;

而在ARM9E的5級(jí)流水中,寄存器讀取、邏輯運(yùn)算、結(jié)果回寫分散在不同的流水當(dāng)中,使得每一級(jí)流水處理的動(dòng)作非常簡潔。這就使得處理器的主頻可以大幅度地提高。因?yàn)槊恳患?jí)流水都對應(yīng) CPU的一個(gè)時(shí)鐘周期,如果一級(jí)流水中的邏輯過于復(fù)雜,使得執(zhí)行時(shí)間居高不下,必然導(dǎo)致所需的時(shí)鐘周期變長,造成CPU的主頻不能提升。所以流水線的拉長,有利于CPU主頻的提高。

在常用的芯片生產(chǎn)工藝下,ARM7一般運(yùn)行在100MHz左右,而ARM9E則至少在200MHz以上。

3

ARM9E處理器的存儲(chǔ)器子系統(tǒng)

像ARM926EJ 和ARM946E這兩個(gè)最常見的ARM9E處理器中,都帶有一套存儲(chǔ)器子系統(tǒng),以提高系統(tǒng)性能和支持大型操作系統(tǒng)。如圖2所示,一個(gè)存儲(chǔ)器子系統(tǒng)包含一個(gè) MMU(存儲(chǔ)器管理單元)或MPU(存儲(chǔ)器保護(hù)單元)、高速緩存(Cache)和寫緩沖(Write Buffer);CPU通過該子系統(tǒng)與系統(tǒng)存儲(chǔ)器系統(tǒng)相連。

高速緩存和寫緩存的引入是基于如下事實(shí),即處理器速度遠(yuǎn)遠(yuǎn)高于存儲(chǔ)器訪問速度;如果存儲(chǔ)器訪問成為系統(tǒng)性能的瓶頸,則處理器再快也是浪費(fèi),因?yàn)樘幚砥餍枰馁M(fèi)大量的時(shí)間在等待存儲(chǔ)器上面。

高速緩存正是用來解決這個(gè)問題,它可以存儲(chǔ)最近常用的代碼和數(shù)據(jù),以最快的速度提供給CPU處理(CPU訪問Cache不需要等待)。

4

復(fù)雜處理器內(nèi)部的存儲(chǔ)器子系統(tǒng)

MMU則是用來支持存儲(chǔ)器管理的硬件單元,滿足現(xiàn)代平臺(tái)操作系統(tǒng)內(nèi)存管理的需要;它主要包括兩個(gè)功能:一是支持虛擬/物理地址映射,二是提供不同存儲(chǔ)器地址空間的保護(hù)機(jī)制。

一個(gè)簡單的例子可以幫助我們理解MMU的功能,在一個(gè)操作系統(tǒng)下,程序開發(fā)人員都是在操作系統(tǒng)給定的API和編程模型下開發(fā)程序;操作系統(tǒng)通常只開放一個(gè)確定的存儲(chǔ)器地址空間給用戶。這樣就帶來 一個(gè)直接的問題,所有的應(yīng)用程序都使用了相同的存儲(chǔ)器地址空間,如果這些程序同時(shí)啟動(dòng)的話(在現(xiàn)在的多任務(wù)系統(tǒng)中這是非常常見的),就會(huì)產(chǎn)生存儲(chǔ)器訪問沖 突。那操作系統(tǒng)是如何來避免這個(gè)問題的呢?

操作系統(tǒng)會(huì)利用MMU硬件單元完成存儲(chǔ)器訪問虛擬地址到物理地址的轉(zhuǎn)換。所謂虛擬地址就是程序員在程序中使用的邏輯地址,而物理地址則是真實(shí)存儲(chǔ)器單元的空間地址。MMU通過一定的規(guī)則, 可以把相同的虛擬地址映射到不同的物理地址上去。這樣,即使有多個(gè)使用相同虛擬地址的程序進(jìn)程啟動(dòng),也可以通過MMU調(diào)度把它們映射到不同的物理地址上 去,不會(huì)造成系統(tǒng)錯(cuò)誤。

5

MMU的功能和作用

MMU 處理地址映射功能之外,還能給不同的地址空間設(shè)置不同的訪問屬性。比如操作系統(tǒng)把自己的內(nèi)核程序地址空間設(shè)置為用戶模式下不可訪問,這樣的話用戶應(yīng)用程序就無法訪問到該空間,從而保證操作系統(tǒng)內(nèi)核的安全性。

MPU與MMU的區(qū)別在于它只有給地址空間設(shè)置訪問屬性的功能而沒有地址映射功能。Cache以及MMU等硬件單元的引入,給系統(tǒng)程序員的編程模型帶來了許多全新的變化。

除了需要掌握基本的概念和使用方法之外,下面幾個(gè)針對系統(tǒng)優(yōu)化的點(diǎn)既有趣又重要:

1.系統(tǒng)實(shí)時(shí)性考慮因素

為保存地址映射規(guī)則的頁表(Page Table)非常龐大,通常MMU中只是存儲(chǔ)器了常用的一小段頁表內(nèi)容,大部分頁表內(nèi)容都存儲(chǔ)于主存儲(chǔ)器里面;當(dāng)調(diào)用新的地址映射規(guī)則時(shí),MMU可能需要讀取主存儲(chǔ)器來更新頁表。

這在某些情況下會(huì)造成系統(tǒng)實(shí)時(shí)性的丟失。比如當(dāng)需要執(zhí)行一段關(guān)鍵的程序代碼時(shí),如果不巧這段代碼使用的地址空間不在當(dāng)前MMU的頁表處理范圍里面,則MMU首先需要更新頁表,然后完成地址映射,接著才能相應(yīng)存儲(chǔ)器訪問;

整個(gè)地址譯碼過程非常長,給實(shí)時(shí)性帶來非常大的不利影響。所以一般來說帶MMU和Cache的系統(tǒng)在實(shí)時(shí)性上不如一些簡單的處理器;不過也有一些辦法能夠幫助提高這些系統(tǒng)的實(shí)時(shí)效率。

一個(gè)簡單的辦法是在需要的時(shí)候關(guān)閉MMU和Cache,這樣就變成一個(gè)簡單處理器了,可以馬上提高系統(tǒng)實(shí)時(shí)性。當(dāng)然很多情況下這不可行;

在ARM的MMU和 Cache設(shè)計(jì)中,有一個(gè)鎖定的功能,就是說你可以指定某一塊頁表在MMU中不會(huì)被更新掉,某一段代碼或數(shù)據(jù)可以在Cache中鎖定而不會(huì)被刷新掉;程序員可以利用這個(gè)功能來支持那些實(shí)時(shí)性要求最高的代碼,保證這些代碼始終能夠得到最快的響應(yīng)和支持。

2.系統(tǒng)軟件優(yōu)化

在嵌入式系統(tǒng)開發(fā)中,很多系統(tǒng)軟件優(yōu)化的方法都是相同和通用的,多數(shù)情況下這種規(guī)則也適用于ARM9E架構(gòu)上。如果你已經(jīng)是一個(gè)ARM7的編程高手,那么恭喜你,以前你掌握的優(yōu)化方法完全可以用在新的ARM9E平臺(tái)上,但是會(huì)有一些新的特性需要你加倍注意。最重要的便是Cache的作用,Cache本身并不 帶來編程模型和接口的變化,但是如果我們考察Cache的行為,就能夠發(fā)現(xiàn)對于軟件優(yōu)化,Cache是有比較大的影響的。

Cache在物理上就是一塊高速SRAM,ARM9E的Cache組織寬度(cache line)都是4個(gè)word(也就是32個(gè)字節(jié));Cache的行為受系統(tǒng)控制器控制而不是程序員,系統(tǒng)控制器會(huì)把最近訪問存儲(chǔ)器地址附近的內(nèi)容復(fù)制到Cache中去,這樣,當(dāng)CPU訪問下一個(gè)存儲(chǔ)器單元的時(shí)候(這個(gè)訪問既可能是取指,也可能是數(shù)據(jù)),可能這個(gè)存儲(chǔ)器單元的內(nèi)容已經(jīng)在Cache里了,所以CPU不需要真的到主存儲(chǔ)器上去讀取內(nèi)容,而直接讀取Cache高速緩存上面的內(nèi)容就可以了,從而加快了訪問的速度。

從Cache的工作原理我們可以看 到,其實(shí)Cache的調(diào)度是基于概率的,CPU要訪問的數(shù)據(jù)既可能在Cache中已經(jīng)存在(Cache hit),也可能沒有存在(Cache miss)。在Cache miss的情況下,CPU訪問存儲(chǔ)器的速度會(huì)比沒有Cache的情況更壞,因?yàn)镃PU除了要從存儲(chǔ)器訪問數(shù)據(jù)以外,還需要處理Cache hit或miss的判斷,以及Cache內(nèi)容的刷新等動(dòng)作。

只有當(dāng)Cache hit帶來的好處超過Cache miss帶來的犧牲的時(shí)候,系統(tǒng)的整體性能才能得到提高,所以Cache的命中率成為一個(gè)非常重要的優(yōu)化指標(biāo)。

根據(jù)Cache行為的特點(diǎn),我們可以直觀地得到提高Cache命中率的一些方法,如盡可能把功能相關(guān)的代碼和數(shù)據(jù)放置在一起,減少跳轉(zhuǎn)次數(shù);跳轉(zhuǎn)經(jīng)常會(huì)引起 Cache miss。保持合適的函數(shù)大小,不要書寫太多過小的函數(shù)體,因?yàn)榫€性的程序執(zhí)行流程是最為Cache友好的。

循環(huán)體最好放置在4個(gè)word對齊的地址,這 樣就能保證循環(huán)體在Cache中是行對齊的,并且占用最少的Cache行數(shù),使得被多次調(diào)用的循環(huán)體得到更好的執(zhí)行效率。

6

性能和效率的提升

前面介紹了ARM9E相比于ARM7性能上的提高,這不僅表現(xiàn)在ARM9E有更快的主頻、更多的硬件特性上面,還體現(xiàn)在某些指令的執(zhí)行效率上面。執(zhí)行效率我 們可以用CPU的時(shí)鐘周期數(shù)(Cycle)來衡量;

運(yùn)行同一段程序,ARM9E的處理器可以比ARM7節(jié)省大約30%左右的時(shí)鐘周期。

效率的提高主要來自于ARM9E對于Load-Store指令執(zhí)行效率的增強(qiáng)。我們知道在RISC架構(gòu)的處理器中,程序中大約有30%的指令是Load- Store指令,這些指令的效率對系統(tǒng)效率的貢獻(xiàn)是最明顯的。

ARM9E中有兩個(gè)因素幫助提高Load-Store指令的效率:

1)ARM9內(nèi)核是哈佛架構(gòu),擁有獨(dú)立的指令和數(shù)據(jù)總線;相對應(yīng),ARM7內(nèi)核的指令和數(shù)據(jù)總線復(fù)用的馮諾依曼架構(gòu)。

2)ARM9的5級(jí)流水線設(shè)計(jì)把存儲(chǔ)器訪問和寄存器寫回放在不同的流水上面。

兩者結(jié)合,使得在指令流的執(zhí)行過程中每個(gè)CPU時(shí)鐘周期都可以完成一個(gè)Load或Store指令。

下面的表格比較了ARM7和ARM9處理器之間的Load -Store指令。

從中可以看出所有的Store指令A(yù)RM9比ARM7省1個(gè)周期,Load指令可以省2個(gè)周期(在沒有互鎖的情況下,編譯工具能夠通過 編譯優(yōu)化消除大多數(shù)的互鎖可能)。

綜合各種因素,ARM9E處理器擁有非常強(qiáng)大的性能。但是在實(shí)際的系統(tǒng)設(shè)計(jì)中,設(shè)計(jì)人員并不總是把處理器性能開到最大,理想情況是把處理器和系統(tǒng)運(yùn)行頻率降低,使得性能剛好能滿足應(yīng)用需求; 達(dá)到節(jié)省功耗和成本的目的。

在評估系統(tǒng)能夠提供的處理器能力過程中,DMIPS指標(biāo)被很多人采用; 同時(shí)它也被廣泛應(yīng)用于不同處理器間的性能比較。

但是用DMIPS來衡量處理器性能存在很大的缺陷。 DMIPS并非字面上每秒百萬條指令的意思,它是一個(gè)測量CPU運(yùn)行一個(gè)叫Dhrystone的測試程序時(shí)表現(xiàn)出來的相對性能高低的一個(gè)單位(很多場合人們也習(xí)慣用MIPS作為這個(gè)性能指標(biāo)的單位)。因?yàn)榛诔绦虻臏y試容易受到惡意優(yōu)化的干擾,并且DMIPS指標(biāo)值的發(fā)布不受任何機(jī)構(gòu)的監(jiān)督,所以使用DMIPS進(jìn)行評估時(shí)要慎重。

例如對Dhrystone測試程序進(jìn)行不同的編譯處理,在同一個(gè)處理器上運(yùn)行也可以得出差別很大的結(jié)果。

DMIPS另外一個(gè)缺點(diǎn)是不能測量處理器的數(shù)字信號(hào)處理能力和Cache/MMU子系統(tǒng)的性能。因?yàn)镈hrystone測試程序不包含DSP表達(dá)式,只包含一些整型運(yùn)算和字符串處理,并且測試程序偏小,幾乎可以完整地放在Cache里面運(yùn)行而無需與外部存儲(chǔ)器進(jìn)行交互。這樣就難以反映處理器在一個(gè)真實(shí)系統(tǒng)中的真正性 能。

一種值得鼓勵(lì)的評估方法是站在系統(tǒng)的角度看問題,而不僅僅拘泥于CPU本身;而系統(tǒng)性能評估最好的測試向量就是用戶應(yīng)用程序或相近的測試程序,這是用戶所需的最真實(shí)的結(jié)果。

7

ARM9E處理器的DSP運(yùn)算能力

伴隨應(yīng)用程序的多樣化和復(fù)雜化,諸如多媒體、音視頻功能在嵌入式系統(tǒng)里面也是全面開花。這些應(yīng)用需要相當(dāng)?shù)腄SP處理能力;如果是在傳統(tǒng)的RISC架構(gòu)上實(shí) 現(xiàn)這些算法,所需的資源(頻率和存儲(chǔ)器等)會(huì)非常不經(jīng)濟(jì)。

ARM9E處理器一個(gè)非常重要的優(yōu)勢就是擁有輕量級(jí)的DSP處理能力,以非常小的成本(CPU增 加功能需要增加硬件)換來了非常實(shí)用的DSP性能。

因?yàn)镃PU的DSP能力并不直接反映在像DMIPS這樣的評測指標(biāo)中,同時(shí)像以前的ARM7處理器中也沒有類似的概念;所以這一點(diǎn)對所有使用ARM9E處理器進(jìn)行開發(fā)的人來說,都是需要注意的一個(gè)要點(diǎn)。

ARM9E的DSP擴(kuò)展指令,主要包括三個(gè)類型:

1)單周期的16x16和32x16 MAC操作,因?yàn)閿?shù)字信號(hào)處理中甚少32位寬的操作數(shù),在32位寄存器中可以對操作數(shù)分段運(yùn)算顯得非常有用。

2)對原有的算術(shù)運(yùn)算指令增加了飽和處理擴(kuò)展,所謂飽和運(yùn)算,就是當(dāng)運(yùn)算結(jié)果大于一個(gè)上限或小于一個(gè)下限時(shí),結(jié)果就等于上限或是下限;

飽和處理在音頻數(shù)據(jù)和視頻像素處理中普遍使用,現(xiàn)在一條單周期飽和運(yùn)算指令就能夠完成普通RISC指令“運(yùn)算-判斷-取值”這一系列操作。

3)前導(dǎo)零(CLZ)運(yùn)算指令,提高了歸一化和浮點(diǎn)運(yùn)算以及除法操作的性能。

以流行的MP3解碼程序?yàn)槔?。整個(gè)解碼過程中前端的三個(gè)步驟是運(yùn)算量最大的,包括比特流的讀入(解包)、霍夫曼譯碼還有反量化采樣(逆變換)。

ARM9E的 DSP指令正好可以高效地完成這些運(yùn)算。以44.1 KHz@128 kbps碼率的MP3音樂文件為例,ARM7TDMI需要占用20MHz以上的資源,

而ARM926EJ則只要小于10MHz的資源在從ARM7到ARM9的平臺(tái)轉(zhuǎn)變過程中,有一件事情是非常值得慶幸的,即ARM9E能夠完全地向后兼容ARM7上的軟件;并且開發(fā)人員面對的編程模型和架構(gòu)基礎(chǔ)也保持一致。

但是畢竟ARM9E中增加了很多新的特性,為了充分利用這些新的資源,把系統(tǒng)性能優(yōu)化好,需要我們對ARM9E做更多深入地了解。

---end--

6月中旬來了,有同學(xué)詢問我們的淘寶店鋪是否搞降價(jià)活動(dòng),這里統(tǒng)一回復(fù):產(chǎn)品定價(jià)已經(jīng)很親民,我們不打價(jià)格戰(zhàn),和往年一樣,不參加618大促,目前只有現(xiàn)金獎(jiǎng)勵(lì)活動(dòng)(點(diǎn)擊下面標(biāo)題了解詳情):

【有獎(jiǎng)活動(dòng)】完成課后作業(yè):裸機(jī)測試界面, 贏取獎(jiǎng)金2000元人民幣,

按要求完成最高可獲得2000元現(xiàn)金獎(jiǎng)勵(lì)~,適合時(shí)間充裕還可以賺外快補(bǔ)貼生活費(fèi)的在校生,何樂而不為?

41人加群,據(jù)小編了解目前已有好幾個(gè)人正在寫代碼...你還在等什么?

免責(zé)聲明:本文系網(wǎng)絡(luò)轉(zhuǎn)載,有改動(dòng),版權(quán)歸原作者所有。如涉及作品版權(quán)問題,請與我們聯(lián)系,我們將根據(jù)您提供的版權(quán)證明材料確認(rèn)版權(quán)并支付稿酬或者刪除內(nèi)容。

ARM尋址方式相關(guān)推薦
  • 相關(guān)百科
  • 相關(guān)知識(shí)
  • 相關(guān)專欄

最新詞條

安徽省政采項(xiàng)目管理咨詢有限公司 數(shù)字景楓科技發(fā)展(南京)有限公司 懷化市人民政府電子政務(wù)管理辦公室 河北省高速公路京德臨時(shí)籌建處 中石化華東石油工程有限公司工程技術(shù)分公司 手持無線POS機(jī) 廣東合正采購招標(biāo)有限公司 上海城建信息科技有限公司 甘肅鑫禾國際招標(biāo)有限公司 燒結(jié)金屬材料 齒輪計(jì)量泵 廣州采陽招標(biāo)代理有限公司河源分公司 高鋁碳化硅磚 博洛尼智能科技(青島)有限公司 燒結(jié)剛玉磚 深圳市東海國際招標(biāo)有限公司 搭建香蕉育苗大棚 SF計(jì)量單位 福建省中億通招標(biāo)咨詢有限公司 泛海三江 威海鼠尾草 廣東國咨招標(biāo)有限公司 Excel 數(shù)據(jù)處理與分析應(yīng)用大全 甘肅中泰博瑞工程項(xiàng)目管理咨詢有限公司 山東創(chuàng)盈項(xiàng)目管理有限公司 當(dāng)代建筑大師 廣西北纜電纜有限公司 拆邊機(jī) 大山檳榔 上海地鐵維護(hù)保障有限公司通號(hào)分公司 甘肅中維國際招標(biāo)有限公司 舌花雛菊 湖北鑫宇陽光工程咨詢有限公司 GB8163標(biāo)準(zhǔn)無縫鋼管 中國石油煉化工程建設(shè)項(xiàng)目部 華潤燃?xì)猓ㄉ虾#┯邢薰? 韶關(guān)市優(yōu)采招標(biāo)代理有限公司 莎草目 建設(shè)部關(guān)于開展城市規(guī)劃動(dòng)態(tài)監(jiān)測工作的通知 電梯平層準(zhǔn)確度 廣州利好來電氣有限公司 蘇州弘創(chuàng)招投標(biāo)代理有限公司