ARM9體系結(jié)構(gòu)_第1頁(yè)
ARM9體系結(jié)構(gòu)_第2頁(yè)
ARM9體系結(jié)構(gòu)_第3頁(yè)
ARM9體系結(jié)構(gòu)_第4頁(yè)
ARM9體系結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩106頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、嵌入式系統(tǒng)講義嵌入式系統(tǒng)講義 第第2章章 arm9體系結(jié)構(gòu)體系結(jié)構(gòu) 周國(guó)運(yùn)周國(guó)運(yùn) 2007.3 第第2章章 arm9體系結(jié)構(gòu)體系結(jié)構(gòu) 主要內(nèi)容主要內(nèi)容 2.1 arm處理器簡(jiǎn)介處理器簡(jiǎn)介 2.2 arm9結(jié)構(gòu)結(jié)構(gòu) 2.3 arm數(shù)據(jù)類型和存儲(chǔ)格式數(shù)據(jù)類型和存儲(chǔ)格式 2.4 處理器狀態(tài)和工作模式處理器狀態(tài)和工作模式 2.5 arm寄存器寄存器 2.6 arm異常異常 2.7 arm調(diào)試接口調(diào)試接口 2.1 arm處理器簡(jiǎn)介處理器簡(jiǎn)介 2.1.1 arm公司簡(jiǎn)介公司簡(jiǎn)介 arm是是advance risc machine 的縮寫(xiě),的縮寫(xiě),既可以認(rèn)為既可以認(rèn)為 是一個(gè)公司的名字,也可以認(rèn)為是對(duì)一類微

2、處理器的通稱,是一個(gè)公司的名字,也可以認(rèn)為是對(duì)一類微處理器的通稱, 還可以認(rèn)為是一種技術(shù)的名字。還可以認(rèn)為是一種技術(shù)的名字。 arm公司于公司于1990年年11月在英國(guó)劍橋成立,前身為月在英國(guó)劍橋成立,前身為acorn 計(jì)算機(jī)公司。計(jì)算機(jī)公司。 arm公司是全球領(lǐng)先的公司是全球領(lǐng)先的16/32位嵌入式位嵌入式risc微處理器解微處理器解 決方案供應(yīng)商。決方案供應(yīng)商。 arm公司是知識(shí)產(chǎn)權(quán)(公司是知識(shí)產(chǎn)權(quán)(ip)公司,本身不生產(chǎn)芯片,靠)公司,本身不生產(chǎn)芯片,靠 轉(zhuǎn)讓設(shè)計(jì)許可,由合作伙伴公司來(lái)生產(chǎn)各具特色的芯片。轉(zhuǎn)讓設(shè)計(jì)許可,由合作伙伴公司來(lái)生產(chǎn)各具特色的芯片。 目前,全世界有幾十家著名的半導(dǎo)體

3、公司都使用目前,全世界有幾十家著名的半導(dǎo)體公司都使用arm公公 司的授權(quán),其中包括司的授權(quán),其中包括motorola、ibm、intel、 lg、 sony、nec、atmel等,從而保證了大量的開(kāi)發(fā)工具和等,從而保證了大量的開(kāi)發(fā)工具和 豐富的第三方資源,它們共同保證了基于豐富的第三方資源,它們共同保證了基于arm處理器核的處理器核的 設(shè)計(jì)可以很快投入市場(chǎng)。設(shè)計(jì)可以很快投入市場(chǎng)。arm公司已成為移動(dòng)通信、手持設(shè)備、多媒體數(shù)字消費(fèi)嵌入式解決方案的公司已成為移動(dòng)通信、手持設(shè)備、多媒體數(shù)字消費(fèi)嵌入式解決方案的risc標(biāo)準(zhǔn)。標(biāo)準(zhǔn)。 2.1.2 arm體系結(jié)構(gòu)的特點(diǎn)體系結(jié)構(gòu)的特點(diǎn) 總體思想:總體思想:在

4、不犧牲性能的同時(shí),盡量在不犧牲性能的同時(shí),盡量 簡(jiǎn)化處理器。同時(shí)從體系結(jié)構(gòu)的層面上簡(jiǎn)化處理器。同時(shí)從體系結(jié)構(gòu)的層面上 靈活支持處理器擴(kuò)展。這種簡(jiǎn)化和開(kāi)放靈活支持處理器擴(kuò)展。這種簡(jiǎn)化和開(kāi)放 的思路使得的思路使得arm處理器采用了很簡(jiǎn)單的處理器采用了很簡(jiǎn)單的 結(jié)構(gòu)來(lái)實(shí)現(xiàn)。結(jié)構(gòu)來(lái)實(shí)現(xiàn)。 arm處理器是最先進(jìn)的:處理器是最先進(jìn)的:目前,目前,arm32 位體系結(jié)構(gòu)被公認(rèn)為業(yè)界領(lǐng)先的位體系結(jié)構(gòu)被公認(rèn)為業(yè)界領(lǐng)先的32位嵌位嵌 入式入式risc微處理器核,所有微處理器核,所有arm處理器處理器 都共享這一體系結(jié)構(gòu)。都共享這一體系結(jié)構(gòu)。 2.1.2 arm體系結(jié)構(gòu)的特點(diǎn)體系結(jié)構(gòu)的特點(diǎn)(2) 一、一、risc型

5、處理器結(jié)構(gòu)型處理器結(jié)構(gòu) arm采用采用risc結(jié)構(gòu)結(jié)構(gòu),在簡(jiǎn)化處理器結(jié)構(gòu),減,在簡(jiǎn)化處理器結(jié)構(gòu),減 少?gòu)?fù)雜功能指令的同時(shí),提高了處理器的速度。少?gòu)?fù)雜功能指令的同時(shí),提高了處理器的速度。 考慮到處理器與存儲(chǔ)器打交道的指令執(zhí)行時(shí)間考慮到處理器與存儲(chǔ)器打交道的指令執(zhí)行時(shí)間 遠(yuǎn)遠(yuǎn)大于在寄存器內(nèi)操作的指令執(zhí)行時(shí)間,遠(yuǎn)遠(yuǎn)大于在寄存器內(nèi)操作的指令執(zhí)行時(shí)間,risc 型處理器采用了型處理器采用了load/store(加載(加載/存儲(chǔ))結(jié)構(gòu)存儲(chǔ))結(jié)構(gòu),即,即 只有只有l(wèi)oad/store指令可與存儲(chǔ)器打交道,其余指令指令可與存儲(chǔ)器打交道,其余指令 都不允許進(jìn)行存儲(chǔ)器操作。都不允許進(jìn)行存儲(chǔ)器操作。 同時(shí),為了進(jìn)一

6、步提高指令和數(shù)據(jù)的存取速度,同時(shí),為了進(jìn)一步提高指令和數(shù)據(jù)的存取速度, risc型處理器增加了指令高速緩沖型處理器增加了指令高速緩沖i-cache和數(shù)據(jù)和數(shù)據(jù) 高速緩沖高速緩沖d-cache及多處理器結(jié)構(gòu)及多處理器結(jié)構(gòu),使指令的操作,使指令的操作 盡可能在寄存器之間進(jìn)行。盡可能在寄存器之間進(jìn)行。 2.1.2 arm體系結(jié)構(gòu)的特點(diǎn)體系結(jié)構(gòu)的特點(diǎn)(3) 只能對(duì)寄存器執(zhí)行算術(shù)和邏輯只能對(duì)寄存器執(zhí)行算術(shù)和邏輯 操作,操作,load/storeload/store體系結(jié)構(gòu)體系結(jié)構(gòu) 2.1.2 arm體系結(jié)構(gòu)的特點(diǎn)體系結(jié)構(gòu)的特點(diǎn)(4) 二、二、thumb指令集指令集 雖然雖然arm處理器本身是處理器本身是

7、32位設(shè)計(jì),但考慮到位設(shè)計(jì),但考慮到risc型處型處 理器的指令功能相對(duì)較弱,新型的理器的指令功能相對(duì)較弱,新型的arm體系結(jié)構(gòu)中定義了體系結(jié)構(gòu)中定義了16 位的位的thumb指令集。指令集。 thumb指令集比通常的指令集比通常的8/16位位cisc/risc處理器有更好處理器有更好 的代碼密度,而芯片面積只增加的代碼密度,而芯片面積只增加6%,卻可以使程序存儲(chǔ)器更,卻可以使程序存儲(chǔ)器更 小。小。 三、多處理器狀態(tài)模式三、多處理器狀態(tài)模式 arm體系結(jié)構(gòu)定義了體系結(jié)構(gòu)定義了7種處理器模式:用戶、種處理器模式:用戶、 快中斷、快中斷、 中斷、管理、終止、未定義和系統(tǒng)模式,大大提高了中斷、管理、

8、終止、未定義和系統(tǒng)模式,大大提高了arm處處 理器的效率。理器的效率。 四、兩種處理器工作狀態(tài)四、兩種處理器工作狀態(tài)(執(zhí)行執(zhí)行32位位arm指令指令) arm狀態(tài)和狀態(tài)和thumb狀態(tài)。狀態(tài)。(執(zhí)行執(zhí)行16位位thumb指令指令) 2.1.2 arm體系結(jié)構(gòu)的特點(diǎn)體系結(jié)構(gòu)的特點(diǎn)(5) 五、嵌入式在線仿真調(diào)試五、嵌入式在線仿真調(diào)試 arm體系結(jié)構(gòu)的處理器芯片都嵌入了在線仿真體系結(jié)構(gòu)的處理器芯片都嵌入了在線仿真 ice-rt邏輯,便于通過(guò)邏輯,便于通過(guò)jtag來(lái)仿真調(diào)試芯片,省去來(lái)仿真調(diào)試芯片,省去 了價(jià)格昂貴的在線仿真器。了價(jià)格昂貴的在線仿真器。 六、靈活方便的接口六、靈活方便的接口 arm體系

9、結(jié)構(gòu)具有協(xié)處理器接口,允許接體系結(jié)構(gòu)具有協(xié)處理器接口,允許接16個(gè)協(xié)個(gè)協(xié) 處理器。既可以使基本的處理器。既可以使基本的arm處理器內(nèi)核盡可能小,處理器內(nèi)核盡可能小, 方便地?cái)U(kuò)充方便地?cái)U(kuò)充arm指令集,也可以通過(guò)未定義指令來(lái)指令集,也可以通過(guò)未定義指令來(lái) 支持協(xié)處理器的軟件仿真。支持協(xié)處理器的軟件仿真。 七、低電壓功耗的設(shè)計(jì)七、低電壓功耗的設(shè)計(jì) 考慮到考慮到arm處理器主要用于手持式嵌入式系統(tǒng)中,處理器主要用于手持式嵌入式系統(tǒng)中, 在設(shè)計(jì)中就十分注意功耗的設(shè)計(jì)。在設(shè)計(jì)中就十分注意功耗的設(shè)計(jì)。 2.1.3 arm指令系統(tǒng)版本指令系統(tǒng)版本 arm公司從最初的開(kāi)發(fā)到現(xiàn)在,公司從最初的開(kāi)發(fā)到現(xiàn)在,arm

10、指令集結(jié)構(gòu)指令集結(jié)構(gòu) 有了巨大的改進(jìn),并在不斷完善和發(fā)展。為了清楚地有了巨大的改進(jìn),并在不斷完善和發(fā)展。為了清楚地 表達(dá)每個(gè)表達(dá)每個(gè)arm內(nèi)核所使用的指令集,內(nèi)核所使用的指令集,arm公司定義了公司定義了 一系列的指令集體系結(jié)構(gòu)版本,以一系列的指令集體系結(jié)構(gòu)版本,以vx表示某種版本。表示某種版本。 下面對(duì)版本下面對(duì)版本v1v5做一介紹。做一介紹。 一、版本一、版本1(v1) v1在在arm1中使用,但從未商業(yè)化。中使用,但從未商業(yè)化。 26位尋址空位尋址空 間,其指令主要有:間,其指令主要有: 基本的數(shù)據(jù)處理指令(無(wú)乘法指令)基本的數(shù)據(jù)處理指令(無(wú)乘法指令) 字、字節(jié)和半字存儲(chǔ)器訪問(wèn)指令字、字

11、節(jié)和半字存儲(chǔ)器訪問(wèn)指令 分支指令(包括帶鏈接的分支指令)分支指令(包括帶鏈接的分支指令) 軟件中斷指令軟件中斷指令 2.1.3 arm指令系統(tǒng)版本指令系統(tǒng)版本(2) 二、版本二、版本2(v2) 仍是仍是26位尋址空間,在位尋址空間,在v1的基礎(chǔ)上增加的內(nèi)容有:的基礎(chǔ)上增加的內(nèi)容有: 乘法和乘法加指令乘法和乘法加指令 支持協(xié)處理器支持協(xié)處理器 快速中斷模式中的分組寄存器快速中斷模式中的分組寄存器 交換式加載交換式加載/存儲(chǔ)指令。存儲(chǔ)指令。 三、版本三、版本3(v3) 將尋址范圍擴(kuò)展到將尋址范圍擴(kuò)展到32位,但兼容位,但兼容26位尋址。在位尋址。在v2的基的基 礎(chǔ)上增加的內(nèi)容有:礎(chǔ)上增加的內(nèi)容有:

12、 設(shè)置了專用的當(dāng)前程序狀態(tài)寄存器設(shè)置了專用的當(dāng)前程序狀態(tài)寄存器cpsr、增加了程序狀態(tài)、增加了程序狀態(tài) 保存寄存器保存寄存器 增加了中止異常和未定義指令異常兩種處理器模式增加了中止異常和未定義指令異常兩種處理器模式 增加了訪問(wèn)增加了訪問(wèn)cpsr、spsr的指令的指令mrs和和msr 修改了異常返回指令的功能修改了異常返回指令的功能 2.1.3 arm指令系統(tǒng)版本指令系統(tǒng)版本(3) 四、版本四、版本4(v4) 32位尋址方式,但不再兼容位尋址方式,但不再兼容26位尋址,在位尋址,在v3的基礎(chǔ)上增加的基礎(chǔ)上增加 的內(nèi)容有:的內(nèi)容有: 半字加載半字加載/存儲(chǔ)指令存儲(chǔ)指令 在在t變量中轉(zhuǎn)換到變量中轉(zhuǎn)換

13、到thumb狀態(tài)的指令狀態(tài)的指令 增加了在使用用戶模式寄存器的特權(quán)處理器模式增加了在使用用戶模式寄存器的特權(quán)處理器模式 五、版本五、版本5(v5) 對(duì)對(duì)v4指令做了必要的修改和擴(kuò)展,并且增加了指令,具體指令做了必要的修改和擴(kuò)展,并且增加了指令,具體 變化為:變化為: 改進(jìn)在改進(jìn)在t變量中變量中arm/thumb狀態(tài)之間的切換效率狀態(tài)之間的切換效率 對(duì)于對(duì)于t和非和非t變量使用相同的代碼生成技術(shù)變量使用相同的代碼生成技術(shù) 增加了計(jì)數(shù)前導(dǎo)零指令增加了計(jì)數(shù)前導(dǎo)零指令 增加了軟件斷點(diǎn)指令增加了軟件斷點(diǎn)指令 對(duì)乘法指令設(shè)置標(biāo)志做了嚴(yán)格定義。對(duì)乘法指令設(shè)置標(biāo)志做了嚴(yán)格定義。 將流水線的級(jí)數(shù)從將流水線的級(jí)數(shù)

14、從3級(jí)(如級(jí)(如arm7tdmi使用的)增加到使用的)增加到5級(jí);級(jí); 并改變存儲(chǔ)器接口來(lái)使用分開(kāi)的指令與數(shù)據(jù)存儲(chǔ)器。并改變存儲(chǔ)器接口來(lái)使用分開(kāi)的指令與數(shù)據(jù)存儲(chǔ)器。 2.1.3 arm指令系統(tǒng)版本指令系統(tǒng)版本(4) 六、版本六、版本6 (v6) 對(duì)對(duì)v5指令做了必要的修改和擴(kuò)展,并且增指令做了必要的修改和擴(kuò)展,并且增 加了指令,加了指令, 2001年發(fā)布,首先在年發(fā)布,首先在arm11處理處理 器中使用器中使用(2002年春季發(fā)布年春季發(fā)布),具體變化為:,具體變化為: farm體系版本體系版本6的新架構(gòu)在降低耗電量的的新架構(gòu)在降低耗電量的 同時(shí),還強(qiáng)化了圖形處理性能。同時(shí),還強(qiáng)化了圖形處理性

15、能。 f增加了多媒體處理功能:通過(guò)追加有效進(jìn)增加了多媒體處理功能:通過(guò)追加有效進(jìn) 行多媒體處理的行多媒體處理的simd功能,將語(yǔ)音及圖像的功能,將語(yǔ)音及圖像的 處理功能提高到了原機(jī)型的處理功能提高到了原機(jī)型的4倍。倍。 fv6版本還支持多微處理器內(nèi)核。版本還支持多微處理器內(nèi)核。 2.1.3 arm指令系統(tǒng)版本指令系統(tǒng)版本(5) arm核核體系結(jié)構(gòu)體系結(jié)構(gòu) arm1v1 arm2v2 arm2as,arm3v2a arm6,arm600,arm610v3 arm7,arm700,arm710v3 arm7tdmi,arm710t,arm720t arm740t v4t strong arm,ar

16、m8,arm810v4 arm9tdmi,arm920t,arm940tv4t arm9e-sv5te arm10tdmi,arm1020ev5te arm11,arm1156t2-s,arm1156t2f-s, arm1176jz-s,arm11jzf-s v6 2.1.4 arm 體系結(jié)構(gòu)的演變體系結(jié)構(gòu)的演變 一、一、thumb指令集(指令集(t變種)變種) 支持支持thumb指令的指令的arm體系版本,一般加字符體系版本,一般加字符t來(lái)表來(lái)表 示(如示(如v4t)。)。 目前目前thumb指令集有以下兩個(gè)版本:指令集有以下兩個(gè)版本:thumb 指令集版本指令集版本1,此版本作為,此版本作

17、為arm體系版本體系版本4的的t變種;變種; thumb指令集版本指令集版本2,此版本作為,此版本作為arm體系版本體系版本5的的t變變 種。種。 與版本與版本1相比,相比,thumb指令集的版本指令集的版本2具有以下特點(diǎn):具有以下特點(diǎn): 通過(guò)增加新的指令和對(duì)已有指令的修改,來(lái)提高通過(guò)增加新的指令和對(duì)已有指令的修改,來(lái)提高arm指令指令 和和thumb指令混合使用時(shí)的效率。指令混合使用時(shí)的效率。 增加了軟件斷點(diǎn)(增加了軟件斷點(diǎn)(bkpt)指令和更嚴(yán)格地定義了)指令和更嚴(yán)格地定義了thumb 乘法指令對(duì)條件碼標(biāo)志位的影響。乘法指令對(duì)條件碼標(biāo)志位的影響。 2.1.4 arm 體系結(jié)構(gòu)的演變體系結(jié)構(gòu)

18、的演變(2) 二、長(zhǎng)乘指令(二、長(zhǎng)乘指令(m變種)變種) m變種增加了兩條這樣的長(zhǎng)乘指令:變種增加了兩條這樣的長(zhǎng)乘指令: 其中一條指令完成其中一條指令完成32位整數(shù)乘以位整數(shù)乘以32位整數(shù),生成位整數(shù),生成64位整位整 數(shù)的長(zhǎng)乘操作;數(shù)的長(zhǎng)乘操作; 另一條指令完成另一條指令完成32位整數(shù)乘以位整數(shù)乘以32位整數(shù),然后在加上一位整數(shù),然后在加上一 個(gè)個(gè)32位整數(shù),生成位整數(shù),生成64位整數(shù)的長(zhǎng)乘加操作。這種長(zhǎng)乘的位整數(shù)的長(zhǎng)乘加操作。這種長(zhǎng)乘的 應(yīng)用場(chǎng)合應(yīng)用場(chǎng)合m變種很適合。變種很適合。 2.1.4 arm 體系結(jié)構(gòu)的演變體系結(jié)構(gòu)的演變(3) 三、增強(qiáng)型三、增強(qiáng)型dsp指令(指令(e變種)變種)

19、e變種的變種的arm體系增加了一些增強(qiáng)處理器對(duì)典型體系增加了一些增強(qiáng)處理器對(duì)典型 dsp算法處理能力的附加指令算法處理能力的附加指令 : 幾條新的完成幾條新的完成16位數(shù)據(jù)乘法和乘加操作的指令;位數(shù)據(jù)乘法和乘加操作的指令; 實(shí)現(xiàn)飽和的帶符號(hào)數(shù)的加減法操作的指令。實(shí)現(xiàn)飽和的帶符號(hào)數(shù)的加減法操作的指令。 cache預(yù)取指令預(yù)取指令pld; e變種首先在變種首先在arm體系版本體系版本5t中使用,用字符中使用,用字符e 表示。表示。 在早期的一些在早期的一些e變種中,未包含雙字讀取指令變種中,未包含雙字讀取指令 ldrd,雙字寫(xiě)入指令,雙字寫(xiě)入指令strd,協(xié)處理器的寄存器,協(xié)處理器的寄存器 傳輸指

20、令傳輸指令mcrr/mrrc以及以及cache預(yù)取指令預(yù)取指令pld。 這種這種e變種記作變種記作exp,其中,其中x表示缺少,表示缺少,p代表上述代表上述 的幾種指令的幾種指令 2.1.4 arm 體系結(jié)構(gòu)的演變體系結(jié)構(gòu)的演變(4) 四、四、java加速器加速器jazelle(j變種)變種) farm的的jazelle技術(shù)是技術(shù)是java語(yǔ)言和先進(jìn)的語(yǔ)言和先進(jìn)的32位位risc芯片完芯片完 美結(jié)合的產(chǎn)物。美結(jié)合的產(chǎn)物。 fjazelle技術(shù)使得技術(shù)使得java代碼的運(yùn)行速度比普通的代碼的運(yùn)行速度比普通的java虛擬機(jī)虛擬機(jī) 提高了提高了8倍,這是因?yàn)楸?,這是因?yàn)閖azelle技術(shù)提供了技術(shù)提

21、供了java加速功能,大加速功能,大 幅的提高了機(jī)器的運(yùn)行性能,而功耗反而降低了幅的提高了機(jī)器的運(yùn)行性能,而功耗反而降低了80%。 fjazelle技術(shù)使得在一個(gè)單獨(dú)的處理器上同時(shí)運(yùn)行技術(shù)使得在一個(gè)單獨(dú)的處理器上同時(shí)運(yùn)行java應(yīng)用應(yīng)用 程序、已經(jīng)建立好的操作系統(tǒng)和中間件以及其他的應(yīng)用程程序、已經(jīng)建立好的操作系統(tǒng)和中間件以及其他的應(yīng)用程 序成為可能。序成為可能。 fjazelle技術(shù)的誕生使得一些必須用到協(xié)處理器和雙處理器技術(shù)的誕生使得一些必須用到協(xié)處理器和雙處理器 的場(chǎng)合可以用單處理器代替,這樣,既保證了機(jī)器的性能,的場(chǎng)合可以用單處理器代替,這樣,既保證了機(jī)器的性能, 又降低了功耗和成本。又

22、降低了功耗和成本。 farm體系版本體系版本4tej是最早包含了是最早包含了j變種。用字符變種。用字符j表示表示j變變 種種 2.1.4 arm 體系結(jié)構(gòu)的演變體系結(jié)構(gòu)的演變(5) 五、五、arm媒體功能擴(kuò)展媒體功能擴(kuò)展(simd變種變種) f arm的的simd媒體功能擴(kuò)展為這些應(yīng)用系媒體功能擴(kuò)展為這些應(yīng)用系 統(tǒng)提供了解決方案。它為包括音頻視頻處統(tǒng)提供了解決方案。它為包括音頻視頻處 理在內(nèi)的應(yīng)用系統(tǒng)提供了優(yōu)化功能。其主要理在內(nèi)的應(yīng)用系統(tǒng)提供了優(yōu)化功能。其主要 特點(diǎn)如下:特點(diǎn)如下: 使處理器的音頻視頻處理的性能提高了使處理器的音頻視頻處理的性能提高了24倍。倍。 可同時(shí)進(jìn)行兩個(gè)可同時(shí)進(jìn)行兩個(gè)1

23、6位操作數(shù)或者位操作數(shù)或者4個(gè)個(gè)8位操作數(shù)的位操作數(shù)的 運(yùn)算。運(yùn)算。 用戶可以自定義飽和運(yùn)算的模式。用戶可以自定義飽和運(yùn)算的模式。 可進(jìn)行兩個(gè)可進(jìn)行兩個(gè)16位操作數(shù)的乘加乘減運(yùn)算及位操作數(shù)的乘加乘減運(yùn)算及32位位 乘以乘以32位的小數(shù)乘加運(yùn)算。位的小數(shù)乘加運(yùn)算。 同時(shí)同時(shí)8位位/16位選擇操作。位選擇操作。 2.1.4 arm 體系結(jié)構(gòu)的演變體系結(jié)構(gòu)的演變(6) 2.1.4 arm 體系結(jié)構(gòu)的演變體系結(jié)構(gòu)的演變(7) 2.1.4 arm系列處理器簡(jiǎn)介系列處理器簡(jiǎn)介 arm有以下系列處理器:有以下系列處理器: arm7系列系列 arm9系列系列 arm9e系列系列 arm10系列系列 arm11

24、系列系列 securcore系列系列 inter的的strongarm和和xscale系列系列 其中,其中,arm7、arm9、arm9e、arm10和和arm11為為5 個(gè)通用處理器系列,每一個(gè)系列提供一套相對(duì)獨(dú)特的性能來(lái)個(gè)通用處理器系列,每一個(gè)系列提供一套相對(duì)獨(dú)特的性能來(lái) 滿足不同應(yīng)用領(lǐng)域的需求。滿足不同應(yīng)用領(lǐng)域的需求。securcore系列專門(mén)為安全要求較系列專門(mén)為安全要求較 高的應(yīng)用而設(shè)計(jì)。高的應(yīng)用而設(shè)計(jì)。 2.1.4 arm系列處理器簡(jiǎn)介系列處理器簡(jiǎn)介(2) 一、一、arm7系列系列 arm7采用馮采用馮諾依曼(諾依曼(von-neumann)結(jié)構(gòu),數(shù)據(jù)存儲(chǔ)器和結(jié)構(gòu),數(shù)據(jù)存儲(chǔ)器和 程

25、序存儲(chǔ)器使用同一存儲(chǔ)空間,用相同的指令訪問(wèn)程序存儲(chǔ)器使用同一存儲(chǔ)空間,用相同的指令訪問(wèn) 。此結(jié)構(gòu)。此結(jié)構(gòu) 也被大多數(shù)計(jì)算機(jī)所采用。也被大多數(shù)計(jì)算機(jī)所采用。 arm7為三級(jí)流水線結(jié)構(gòu)(取指,譯碼,執(zhí)行),平均功耗為三級(jí)流水線結(jié)構(gòu)(取指,譯碼,執(zhí)行),平均功耗 為為0.6mw/mhz,時(shí)鐘速度為,時(shí)鐘速度為66mhz,每條指令平均執(zhí)行,每條指令平均執(zhí)行1.9 個(gè)時(shí)鐘周期。個(gè)時(shí)鐘周期。 arm7系列微處理器包括如下幾種類型的核:系列微處理器包括如下幾種類型的核:arm7tdmi、 arm7tdmi-s、 arm720t、arm7ej。 arm7tmdi是目前使用最廣泛的是目前使用最廣泛的32位嵌入式

26、位嵌入式risc處理器,處理器, 屬低端屬低端arm處理器核。處理器核。tdmi的基本含義為(對(duì)其它系列也的基本含義為(對(duì)其它系列也 適用):適用): t: 支持支持16為壓縮指令集為壓縮指令集thumb,稱為,稱為t變種變種 d: 支持片上支持片上debug,稱為,稱為d變種變種 m:內(nèi)嵌硬件乘法器:內(nèi)嵌硬件乘法器 multiplier,稱為,稱為m變種變種 i: 嵌入式嵌入式ice,支持片上斷點(diǎn)和調(diào)試,稱為,支持片上斷點(diǎn)和調(diào)試,稱為i變種變種 2.1.4 arm系列處理器簡(jiǎn)介系列處理器簡(jiǎn)介(3) 表表2-1 arm7系列產(chǎn)品系列產(chǎn)品 項(xiàng)目項(xiàng)目 型號(hào)型號(hào) cache (ins/data) m

27、emory mgt busthumb dspjazelle 指令指令 版本版本 arm7tdminonoahbyesnonov4t arm7tdmi-snonoahbyesnonov4t arm720t8kbmmuahbyesnonov4t arm7ejnonoahbyesyesyesv5tej 2.1.4 arm系列處理器簡(jiǎn)介系列處理器簡(jiǎn)介(4) 二、二、arm9系列系列 arm7采用的采用的neumann結(jié)構(gòu),取指令和取操作數(shù)都是通過(guò)結(jié)構(gòu),取指令和取操作數(shù)都是通過(guò) 一條總線分時(shí)進(jìn)行,這樣,在高速運(yùn)算時(shí),不但不能同時(shí)一條總線分時(shí)進(jìn)行,這樣,在高速運(yùn)算時(shí),不但不能同時(shí) 取指令和取操作數(shù),而且還

28、會(huì)造成傳輸通道上的瓶頸現(xiàn)象。取指令和取操作數(shù),而且還會(huì)造成傳輸通道上的瓶頸現(xiàn)象。 arm9采用哈佛(采用哈佛(harvard)結(jié)構(gòu),程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ) 器分開(kāi),提供了較大的存儲(chǔ)器帶寬。同時(shí),大多數(shù)器分開(kāi),提供了較大的存儲(chǔ)器帶寬。同時(shí),大多數(shù)dsp都都 采用此結(jié)構(gòu)。采用此結(jié)構(gòu)。 arm9為五級(jí)流水(取指,譯碼,執(zhí)行,緩沖為五級(jí)流水(取指,譯碼,執(zhí)行,緩沖/數(shù)據(jù),回?cái)?shù)據(jù),回 寫(xiě)),平均功耗為寫(xiě)),平均功耗為0.7mw/mhz。時(shí)鐘速度為。時(shí)鐘速度為120mhz- 200mhz,每條指令平均執(zhí)行,每條指令平均執(zhí)行1.5個(gè)時(shí)鐘周期。個(gè)時(shí)鐘周期。 arm9系列微處理器包含系列

29、微處理器包含arm920t、arm922t和和 arm940t三種類型,主要應(yīng)用在手持產(chǎn)品、視頻電話、三種類型,主要應(yīng)用在手持產(chǎn)品、視頻電話、 pda、數(shù)字消費(fèi)產(chǎn)品、機(jī)頂盒、家用網(wǎng)關(guān)等方面。、數(shù)字消費(fèi)產(chǎn)品、機(jī)頂盒、家用網(wǎng)關(guān)等方面。 2.1.4 arm系列處理器簡(jiǎn)介系列處理器簡(jiǎn)介(5) 表表2-2 arm9系列產(chǎn)品系列產(chǎn)品 項(xiàng)目項(xiàng)目 型號(hào)型號(hào) cache (ins/data) memory mgt busthumb dspjazelle 指令指令 版本版本 arm920t16kb/16kbmmuasbyesnonov4t arm922t 8kb/8kbmmuasbyesnonov4t arm94

30、0t 4kb/4kbmmuasbyesnonov4t 2.1.4 arm系列處理器簡(jiǎn)介系列處理器簡(jiǎn)介(6) 三、三、arm9e系列系列 arm9e系列微處理器包括如下系列微處理器包括如下4種類型的核:種類型的核: arm926ej-s、arm946e-s和和arm966e-s,見(jiàn)表,見(jiàn)表 2-3。 arm9e系列是一種包含有微控制器、系列是一種包含有微控制器、dsp、java功功 能的綜合處理器,強(qiáng)化了數(shù)字信號(hào)處理能力,適用能的綜合處理器,強(qiáng)化了數(shù)字信號(hào)處理能力,適用 于需要于需要dsp和微控制器結(jié)合使用的情況,并且把和微控制器結(jié)合使用的情況,并且把 thumb技術(shù)和技術(shù)和dsp都擴(kuò)展到了都擴(kuò)

31、展到了arm指令中,并且具指令中,并且具 有有embededice-rt邏輯,更好地適應(yīng)了實(shí)時(shí)系統(tǒng)開(kāi)邏輯,更好地適應(yīng)了實(shí)時(shí)系統(tǒng)開(kāi) 發(fā)的需要。同時(shí)發(fā)的需要。同時(shí)arm9e使用了使用了jazelle增強(qiáng)技術(shù),該增強(qiáng)技術(shù),該 技術(shù)支持一種新的技術(shù)支持一種新的java操作狀態(tài),在硬件中執(zhí)行操作狀態(tài),在硬件中執(zhí)行 java字節(jié)碼。字節(jié)碼。 2.1.4 arm系列處理器簡(jiǎn)介系列處理器簡(jiǎn)介(7) 表表2-3 arm9e系列產(chǎn)品系列產(chǎn)品 項(xiàng)目項(xiàng)目 型號(hào)型號(hào) cache (ins/data) memory mgt busthumb dsp jazelle 指令指令 版本版本 arm926ej-s可變mmu2*a

32、hbyesyesyesv5tej arm946e-s可變mpuahbyesyesnov5te arm966e-s無(wú)-ahbyesyesnov5te arm968e-s無(wú)dmaahbyesyesnov5te 2.1.4 arm系列處理器簡(jiǎn)介系列處理器簡(jiǎn)介(8) 四、四、arm10系列系列 arm10系列微處理器包括:系列微處理器包括:arm1020e和和arm1022e等等 型號(hào),見(jiàn)表型號(hào),見(jiàn)表2-4。 arm10系列采用了新的體系結(jié)構(gòu),其核心為使用了向量系列采用了新的體系結(jié)構(gòu),其核心為使用了向量 浮點(diǎn)單元,有強(qiáng)大的浮點(diǎn)運(yùn)算能力,并且增加了浮點(diǎn)單元,有強(qiáng)大的浮點(diǎn)運(yùn)算能力,并且增加了cache容量

33、容量 和總線寬度,并且具有低功耗的特點(diǎn)。和總線寬度,并且具有低功耗的特點(diǎn)。 arm10系列微處理系列微處理 器主要應(yīng)用于下一代無(wú)線設(shè)備、視頻消費(fèi)品等。器主要應(yīng)用于下一代無(wú)線設(shè)備、視頻消費(fèi)品等。 表表2-4 arm10系列產(chǎn)品系列產(chǎn)品 項(xiàng)目項(xiàng)目 型號(hào)型號(hào) cache (ins/data) memory mgt busthumb dspjazelle 指令指令 版本版本 arm1020e32kb/32kb mmu2*ahbyesyesnov5te arm1022e 16kb/16kb mmu2*ahbyesyesnov5te arm1022e 可變mpu mmu2*ahbyesyesyesv5te

34、j 2.1.4 arm系列處理器簡(jiǎn)介系列處理器簡(jiǎn)介(9) 五、五、armstrong/xscale系列系列 strongarm是采用是采用arm體系結(jié)構(gòu)高度集成的體系結(jié)構(gòu)高度集成的32 位位risc微處理器。它融合了微處理器。它融合了intrl公司的設(shè)計(jì)技術(shù),公司的設(shè)計(jì)技術(shù), 以及以及arm體系結(jié)構(gòu)的電源效率,其體系結(jié)構(gòu)在軟件體系結(jié)構(gòu)的電源效率,其體系結(jié)構(gòu)在軟件 上兼容上兼容armv4,同時(shí)又具有,同時(shí)又具有intel技術(shù)優(yōu)點(diǎn)。技術(shù)優(yōu)點(diǎn)。 strongarm是是intrl公司為手持消費(fèi)類電子和移公司為手持消費(fèi)類電子和移 動(dòng)計(jì)算與通信設(shè)備生產(chǎn)的嵌入式處理器。采用動(dòng)計(jì)算與通信設(shè)備生產(chǎn)的嵌入式處理器

35、。采用 strongarm架構(gòu)的處理器有:架構(gòu)的處理器有:sa-1、sa-110、sa- 1100、sa1110和和ixp1200。 xscale是基于是基于armv5體系結(jié)構(gòu)的解決方案,是一體系結(jié)構(gòu)的解決方案,是一 款性能全、性價(jià)比高、功耗低的處理器,支持款性能全、性價(jià)比高、功耗低的處理器,支持16位位 的的thumb和和dsp指令集,主要應(yīng)用于數(shù)字移動(dòng)電話、指令集,主要應(yīng)用于數(shù)字移動(dòng)電話、 個(gè)人數(shù)字助理和網(wǎng)絡(luò)產(chǎn)品等。個(gè)人數(shù)字助理和網(wǎng)絡(luò)產(chǎn)品等。 xscale架構(gòu)的處理器架構(gòu)的處理器 有:有:pxa250、pxa255和和pxa270等。等。 2.1.4 arm系列處理器簡(jiǎn)介系列處理器簡(jiǎn)介(1

36、0) 六、六、arm微處理器應(yīng)用微處理器應(yīng)用 1、工業(yè)控制領(lǐng)域:、工業(yè)控制領(lǐng)域:作為作為32的的risc架構(gòu),基于架構(gòu),基于arm核核 的微控制器芯片不但占據(jù)了高端微控制器市場(chǎng)的大部分市的微控制器芯片不但占據(jù)了高端微控制器市場(chǎng)的大部分市 場(chǎng)份額,同時(shí)也逐漸向低端微控制器應(yīng)用領(lǐng)域擴(kuò)展,場(chǎng)份額,同時(shí)也逐漸向低端微控制器應(yīng)用領(lǐng)域擴(kuò)展,arm 微控制器的低功耗、高性價(jià)比,向傳統(tǒng)的微控制器的低功耗、高性價(jià)比,向傳統(tǒng)的8位位/16位微控制位微控制 器提出了挑戰(zhàn)。器提出了挑戰(zhàn)。 2、無(wú)線通訊領(lǐng)域:、無(wú)線通訊領(lǐng)域:目前已有超過(guò)目前已有超過(guò)85%的無(wú)線通訊設(shè)備的無(wú)線通訊設(shè)備 采用了采用了arm技術(shù),技術(shù), ar

37、m以其高性能和低成本,在該領(lǐng)域以其高性能和低成本,在該領(lǐng)域 的地位日益鞏固。的地位日益鞏固。 3、網(wǎng)絡(luò)應(yīng)用:、網(wǎng)絡(luò)應(yīng)用:隨著寬帶技術(shù)的推廣,采用隨著寬帶技術(shù)的推廣,采用arm技術(shù)技術(shù) 的的adsl芯片正逐步獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。此外,芯片正逐步獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。此外,arm在語(yǔ)音及在語(yǔ)音及 視頻處理上進(jìn)行了優(yōu)化,并獲得廣泛支持,也對(duì)視頻處理上進(jìn)行了優(yōu)化,并獲得廣泛支持,也對(duì)dsp的應(yīng)的應(yīng) 用領(lǐng)域提出了挑戰(zhàn)。用領(lǐng)域提出了挑戰(zhàn)。adsl(非對(duì)稱數(shù)字用戶線路非對(duì)稱數(shù)字用戶線路) 4、消費(fèi)類電子產(chǎn)品:、消費(fèi)類電子產(chǎn)品:arm技術(shù)在目前流行的數(shù)字音技術(shù)在目前流行的數(shù)字音 頻播放器、數(shù)字機(jī)頂盒和游戲機(jī)中得到廣泛采用。

38、頻播放器、數(shù)字機(jī)頂盒和游戲機(jī)中得到廣泛采用。 5、成像和安全產(chǎn)品:、成像和安全產(chǎn)品:現(xiàn)在流行的數(shù)碼相機(jī)和打印機(jī)中現(xiàn)在流行的數(shù)碼相機(jī)和打印機(jī)中 絕大部分采用絕大部分采用arm技術(shù)。手機(jī)中的技術(shù)。手機(jī)中的32位位sim智能卡也采用智能卡也采用 了了arm技術(shù)。技術(shù)。 arm系列產(chǎn)品命名規(guī)則系列產(chǎn)品命名規(guī)則 family number 7: arm7 9: arm9 10: arm10 11: arm11 memory system 2: cache, mmu, process id 4: cache, mpu 6: write buffer, no cache memory size 0: cac

39、he size (4-128kb) 2: reduced cache size 6: tcm synthesizable extensions e: dsp extension j: jazelle extension t: thumb support 2.2 arm9體系結(jié)構(gòu)體系結(jié)構(gòu) 2.2.1 arm9體系結(jié)構(gòu)框圖體系結(jié)構(gòu)框圖 對(duì)于對(duì)于arm9系列,其基本內(nèi)核是系列,其基本內(nèi)核是arm9tdmi, 下頁(yè)圖給出了下頁(yè)圖給出了arm9tdmi結(jié)構(gòu)框圖。主要有結(jié)構(gòu)框圖。主要有7部分部分 構(gòu)成。構(gòu)成。 比較最常用的是比較最常用的是arm920t內(nèi)核,后頁(yè)圖給出了內(nèi)核,后頁(yè)圖給出了 arm920t結(jié)

40、構(gòu)框圖。結(jié)構(gòu)框圖。 arm920t結(jié)構(gòu)主要部分有:結(jié)構(gòu)主要部分有:arm9tdmi內(nèi)核內(nèi)核 cpu、mmu、cache、協(xié)處理器接口、運(yùn)行跟蹤信、協(xié)處理器接口、運(yùn)行跟蹤信 息接口息接口(etm)、jtag調(diào)試接口、總線接口等調(diào)試接口、總線接口等7部分部分 構(gòu)成。構(gòu)成。 一、一、arm9tdmi體系結(jié)構(gòu)框圖體系結(jié)構(gòu)框圖 arm9tdmi cpu 指令接口指令接口 數(shù)據(jù)地址數(shù)據(jù)地址 接口接口 跟蹤接口跟蹤接口 數(shù)據(jù)接口數(shù)據(jù)接口jtag 接口接口 指令地址指令地址 接口接口 arm9tdmi結(jié)構(gòu)結(jié)構(gòu) 框圖框圖 二、二、arm920t體系結(jié)構(gòu)框圖體系結(jié)構(gòu)框圖 二、二、arm920t體系結(jié)構(gòu)框圖體系結(jié)構(gòu)

41、框圖 arm9tdmi核性能核性能 2.2.2 arm流水線結(jié)構(gòu)流水線結(jié)構(gòu) 一、流水線技術(shù)概述一、流水線技術(shù)概述 流水線方式:流水線方式:是把一個(gè)重復(fù)的過(guò)程分解為若干個(gè)是把一個(gè)重復(fù)的過(guò)程分解為若干個(gè) 子過(guò)程,每個(gè)子過(guò)程可以與其他子過(guò)程同時(shí)進(jìn)行。子過(guò)程,每個(gè)子過(guò)程可以與其他子過(guò)程同時(shí)進(jìn)行。 由于這種工作方式與工廠中的生產(chǎn)流水線十分相似,由于這種工作方式與工廠中的生產(chǎn)流水線十分相似, 因此,把它稱為流水線工作方式。因此,把它稱為流水線工作方式。 處理器按照一系列步驟來(lái)執(zhí)行每一條指令。典型處理器按照一系列步驟來(lái)執(zhí)行每一條指令。典型 的步驟為:的步驟為: 1)從存儲(chǔ)器讀取指令()從存儲(chǔ)器讀取指令(fe

42、tch) 2)譯碼以鑒別它是哪一類指令()譯碼以鑒別它是哪一類指令(dec) 3)從寄存器組取得所需的操作數(shù)()從寄存器組取得所需的操作數(shù)(reg) 4)將操作數(shù)進(jìn)行組合以得到結(jié)果或存儲(chǔ)器地址()將操作數(shù)進(jìn)行組合以得到結(jié)果或存儲(chǔ)器地址(exe) 5)如果需要,則訪問(wèn)存儲(chǔ)器存取數(shù)據(jù)()如果需要,則訪問(wèn)存儲(chǔ)器存取數(shù)據(jù)(mem) 6)將結(jié)果回寫(xiě)到寄存器組()將結(jié)果回寫(xiě)到寄存器組(res) 二、arm7的三級(jí)流水線 1取指:取指:從程序存儲(chǔ)器中取指令,放入指令流水線。從程序存儲(chǔ)器中取指令,放入指令流水線。 (占用存儲(chǔ)器訪問(wèn)操作占用存儲(chǔ)器訪問(wèn)操作) 2譯碼:譯碼:指令譯碼。指令譯碼。(占用譯碼邏輯占用譯

43、碼邏輯) 3執(zhí)行:執(zhí)行:執(zhí)行指令執(zhí)行指令/讀寫(xiě)讀寫(xiě)reg。(占用占用alu及數(shù)據(jù)路徑及數(shù)據(jù)路徑) 2.2.2 arm流水線結(jié)構(gòu)流水線結(jié)構(gòu)(2) 下圖為下圖為3個(gè)單周期指令在流水線上的情況。一條指令有個(gè)單周期指令在流水線上的情況。一條指令有3個(gè)個(gè) 時(shí)鐘周期的執(zhí)行時(shí)間,但吞吐量是每個(gè)周期時(shí)鐘周期的執(zhí)行時(shí)間,但吞吐量是每個(gè)周期1條指令。條指令。 取指取指譯碼譯碼執(zhí)行執(zhí)行 取指取指譯碼譯碼執(zhí)行執(zhí)行 取指取指譯碼譯碼執(zhí)行執(zhí)行 t 1 2 3 pc值如何計(jì)算?值如何計(jì)算? pc 指向處于讀取級(jí)的指令地址,而不是處于執(zhí)行級(jí)的指令地址指向處于讀取級(jí)的指令地址,而不是處于執(zhí)行級(jí)的指令地址 pc=當(dāng)前執(zhí)行指令地址

44、當(dāng)前執(zhí)行指令地址+8 arm單周期指令的單周期指令的3級(jí)流水線操作級(jí)流水線操作 2.2.2 arm流水線結(jié)構(gòu)流水線結(jié)構(gòu)(3) 優(yōu)秀的流水線結(jié)構(gòu)優(yōu)秀的流水線結(jié)構(gòu) operation cycle 1 2 3 45 6 add sub mov and orr eor cmp rsb fetchdecodeexecute fetchdecodeexecute fetchdecodeexecute fetchdecodeexecute fetchdecodeexecute decodeexecute fetchdecode fetch fetch 本例中本例中 6 個(gè)時(shí)鐘周期內(nèi)一共完成了個(gè)時(shí)鐘周期內(nèi)一共

45、完成了 ? 條指令條指令 全部對(duì)寄存器進(jìn)行操作全部對(duì)寄存器進(jìn)行操作 (單周期執(zhí)行)(單周期執(zhí)行) 指令周期數(shù)指令周期數(shù) (cpi) = 1 2.2.2 arm流水線結(jié)構(gòu)流水線結(jié)構(gòu)(4) 多周期指令的多周期指令的3級(jí)流水線操作級(jí)流水線操作 取指取指 譯碼譯碼執(zhí)行執(zhí)行 取指取指譯碼譯碼 地址地址 計(jì)算計(jì)算 數(shù)據(jù)數(shù)據(jù) 傳送傳送 取指取指 取指取指譯碼譯碼執(zhí)行執(zhí)行 譯碼譯碼執(zhí)行執(zhí)行 取指取指 譯碼譯碼 執(zhí)行執(zhí)行 1 2 3 4 5 6 7 8 1 add 2 stb 3 add 4 add 5 add 指令流水線出現(xiàn)了中斷指令流水線出現(xiàn)了中斷 2.2.2 arm流水線結(jié)構(gòu)流水線結(jié)構(gòu)(5) t4周期周期

46、: 指令指令2地址計(jì)算產(chǎn)生地址計(jì)算產(chǎn)生下一周期數(shù)據(jù)路下一周期數(shù)據(jù)路 徑需要的徑需要的控制信號(hào)控制信號(hào)。 指令指令3譯碼產(chǎn)生譯碼產(chǎn)生下一周期數(shù)據(jù)路徑需要下一周期數(shù)據(jù)路徑需要 的的控制信號(hào)控制信號(hào)。 二者都產(chǎn)生二者都產(chǎn)生下一周期數(shù)據(jù)路徑控制信號(hào),數(shù)據(jù)路徑控制下一周期數(shù)據(jù)路徑控制信號(hào),數(shù)據(jù)路徑控制 沖突,因此斷流沖突,因此斷流。 t5周期周期: 指令指令2 stb訪問(wèn)數(shù)據(jù)訪問(wèn)數(shù)據(jù)存儲(chǔ)器存儲(chǔ)器 指令指令5取指訪問(wèn)程序取指訪問(wèn)程序存儲(chǔ)器存儲(chǔ)器 二者都二者都訪問(wèn)存儲(chǔ)器,造成訪問(wèn)存儲(chǔ)器訪問(wèn)存儲(chǔ)器,造成訪問(wèn)存儲(chǔ)器沖突,在此斷流。沖突,在此斷流。 指令指令3譯碼譯碼 指令指令4的譯碼則不得不推遲一個(gè)周期。的譯碼

47、則不得不推遲一個(gè)周期。 2.2.2 arm流水線結(jié)構(gòu)流水線結(jié)構(gòu)(6) 三、三、arm9tdmi的五級(jí)流水線的五級(jí)流水線 arm7tdmi與與arm9tdmi流水線比較流水線比較 2.2.2 arm流水線結(jié)構(gòu)流水線結(jié)構(gòu)(7) 四、四、arm7和和arm9流水線比較流水線比較 5級(jí)流水線的級(jí)流水線的arm9內(nèi)核是內(nèi)核是哈佛架構(gòu)哈佛架構(gòu),擁有,擁有 獨(dú)立的指令和數(shù)據(jù)總線;指令和數(shù)據(jù)的讀取獨(dú)立的指令和數(shù)據(jù)總線;指令和數(shù)據(jù)的讀取 可以在同一周期進(jìn)行;可以在同一周期進(jìn)行; 3級(jí)流水的級(jí)流水的arm7內(nèi)核是指令和數(shù)據(jù)總線復(fù)內(nèi)核是指令和數(shù)據(jù)總線復(fù) 用的用的馮馮.諾依曼架構(gòu)諾依曼架構(gòu),指令和數(shù)據(jù)的讀取不能,指令

48、和數(shù)據(jù)的讀取不能 在同一周期進(jìn)行;在同一周期進(jìn)行; 5級(jí)流水線設(shè)計(jì)把寄存器讀取、邏輯運(yùn)算、級(jí)流水線設(shè)計(jì)把寄存器讀取、邏輯運(yùn)算、 結(jié)果回寫(xiě)分散在不同的流水當(dāng)中,結(jié)果回寫(xiě)分散在不同的流水當(dāng)中, 每一級(jí)流每一級(jí)流 水的操作簡(jiǎn)潔,提升了處理器的主頻。水的操作簡(jiǎn)潔,提升了處理器的主頻。 2.2.2 arm流水線結(jié)構(gòu)流水線結(jié)構(gòu)(8) 2.2.2 arm流水線結(jié)構(gòu)流水線結(jié)構(gòu)(9) 隨著流水線深度(級(jí)數(shù))的增加,每一段隨著流水線深度(級(jí)數(shù))的增加,每一段 的工作量被削減了,這使得處理器可以工作的工作量被削減了,這使得處理器可以工作 在更高的頻率,同時(shí)改進(jìn)了處理器的性能;在更高的頻率,同時(shí)改進(jìn)了處理器的性能;

49、負(fù)面作用是增加了系統(tǒng)的延時(shí),即內(nèi)核在負(fù)面作用是增加了系統(tǒng)的延時(shí),即內(nèi)核在 執(zhí)行一條指令前,需要更多的周期來(lái)填充流執(zhí)行一條指令前,需要更多的周期來(lái)填充流 水線;水線; 流水線級(jí)數(shù)的增加也意味著在某些段之間流水線級(jí)數(shù)的增加也意味著在某些段之間 會(huì)產(chǎn)生數(shù)據(jù)相關(guān)。會(huì)產(chǎn)生數(shù)據(jù)相關(guān)。 2.2.2 arm流水線結(jié)構(gòu)流水線結(jié)構(gòu)(10) arm處理器性能比較處理器性能比較 2.2.3 arm總線結(jié)構(gòu)總線結(jié)構(gòu) arm微控制器使用的是微控制器使用的是amba總線體系結(jié)構(gòu)總線體系結(jié)構(gòu) amba(advanced microcontroller bus architecture)是)是arm公司公布的總線標(biāo)準(zhǔn),先進(jìn)公司

50、公布的總線標(biāo)準(zhǔn),先進(jìn) 的的amba規(guī)范定義了三種總線:規(guī)范定義了三種總線: ahb總線總線(advanced high-performance bus):): 用于連接高性能系統(tǒng)模塊。它支持突發(fā)數(shù)據(jù)傳輸方用于連接高性能系統(tǒng)模塊。它支持突發(fā)數(shù)據(jù)傳輸方 式及單個(gè)數(shù)據(jù)傳輸方式,所有時(shí)序式及單個(gè)數(shù)據(jù)傳輸方式,所有時(shí)序 參考同一個(gè)時(shí)參考同一個(gè)時(shí) 鐘沿。鐘沿。 asb總線總線(advanced system bus):):用于連接用于連接 高性能系統(tǒng)模塊,它支持突發(fā)數(shù)據(jù)傳輸模式。高性能系統(tǒng)模塊,它支持突發(fā)數(shù)據(jù)傳輸模式。 apb總線總線(advance peripheral bus):):是一個(gè)是一個(gè) 簡(jiǎn)單

51、接口支持低性能的外圍接口。簡(jiǎn)單接口支持低性能的外圍接口。 本節(jié)主要內(nèi)容本節(jié)主要內(nèi)容 1、數(shù)據(jù)類型、數(shù)據(jù)類型 2、存儲(chǔ)器組織、存儲(chǔ)器組織 3、存儲(chǔ)器層次、存儲(chǔ)器層次 2.3 arm存儲(chǔ)結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu) 2.3.1 arm存儲(chǔ)數(shù)據(jù)類型存儲(chǔ)數(shù)據(jù)類型 arm處理器支持以下處理器支持以下6種數(shù)據(jù)類型:種數(shù)據(jù)類型: 8位位有符號(hào)和無(wú)符號(hào)字節(jié)有符號(hào)和無(wú)符號(hào)字節(jié)(byte)。 16位位有符號(hào)和無(wú)符號(hào)半字有符號(hào)和無(wú)符號(hào)半字(halfword) 它們必須以兩字節(jié)的邊界對(duì)齊它們必須以兩字節(jié)的邊界對(duì)齊(半字對(duì)齊半字對(duì)齊)。 32位位有符號(hào)和無(wú)符號(hào)字有符號(hào)和無(wú)符號(hào)字(word) 它們必須以它們必須以4字節(jié)的邊界對(duì)齊字節(jié)的邊

52、界對(duì)齊(字對(duì)齊字對(duì)齊)。 字對(duì)齊字對(duì)齊:字單元地址的低兩位:字單元地址的低兩位 a1a0=0b00。即地。即地 址末位為址末位為0 x0, 0 x4, 0 x8, 0 xc。 半字對(duì)齊半字對(duì)齊:半字單元地址的最低位:半字單元地址的最低位 a0=0b0 (地址地址 末位為末位為0 x0,0 x2,0 x4,0 x6,0 x8,0 xa,0 xc,0 xe)。 2.3 arm存儲(chǔ)結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu) 對(duì)于指令對(duì)于指令,arm指令系統(tǒng)分為指令系統(tǒng)分為32位位arm指令集指令集 和和16位的位的thumb指令集指令集,在存儲(chǔ)時(shí)分別以,在存儲(chǔ)時(shí)分別以32位和位和16 位的兩種不同長(zhǎng)度存儲(chǔ)。位的兩種不同長(zhǎng)度存儲(chǔ)。

53、 對(duì)于數(shù)據(jù)對(duì)于數(shù)據(jù),arm支持對(duì)支持對(duì)32位字?jǐn)?shù)據(jù),位字?jǐn)?shù)據(jù),16位半字?jǐn)?shù)位半字?jǐn)?shù) 據(jù),據(jù),8位字節(jié)數(shù)據(jù)位字節(jié)數(shù)據(jù)操作。因此數(shù)據(jù)存儲(chǔ)器可以存儲(chǔ)操作。因此數(shù)據(jù)存儲(chǔ)器可以存儲(chǔ)32 位,位,16位,位,8位三種不同長(zhǎng)度數(shù)據(jù)。位三種不同長(zhǎng)度數(shù)據(jù)。 在在arm內(nèi)部,所有操作都面向內(nèi)部,所有操作都面向32位的操作數(shù),只位的操作數(shù),只 有數(shù)據(jù)傳送指令支持較短的字節(jié)和半字的數(shù)據(jù)類型。有數(shù)據(jù)傳送指令支持較短的字節(jié)和半字的數(shù)據(jù)類型。 當(dāng)從存儲(chǔ)器讀入一個(gè)字節(jié)或半字時(shí),根據(jù)其數(shù)據(jù)類當(dāng)從存儲(chǔ)器讀入一個(gè)字節(jié)或半字時(shí),根據(jù)其數(shù)據(jù)類 型將其擴(kuò)展到型將其擴(kuò)展到32位。位。 2.3 arm存儲(chǔ)結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu)(2) 2.3.2 ar

54、m存儲(chǔ)器組織存儲(chǔ)器組織 arm存儲(chǔ)器以存儲(chǔ)器以8位為一個(gè)單元存儲(chǔ)數(shù)據(jù)位為一個(gè)單元存儲(chǔ)數(shù)據(jù)(一個(gè)字節(jié)一個(gè)字節(jié)),每個(gè),每個(gè) 存儲(chǔ)單元分配一個(gè)存儲(chǔ)地址。存儲(chǔ)單元分配一個(gè)存儲(chǔ)地址。 arm將存儲(chǔ)器看作是從零地址開(kāi)始的字節(jié)的線性組合。將存儲(chǔ)器看作是從零地址開(kāi)始的字節(jié)的線性組合。 作為作為32位的微處理器,位的微處理器,arm體系結(jié)構(gòu)所支持的最大尋址空體系結(jié)構(gòu)所支持的最大尋址空 間為間為4gb(232字節(jié))。字節(jié))。 從零字節(jié)到三字節(jié)放置第一個(gè)存儲(chǔ)的從零字節(jié)到三字節(jié)放置第一個(gè)存儲(chǔ)的字字?jǐn)?shù)據(jù),從第四個(gè)字?jǐn)?shù)據(jù),從第四個(gè)字 節(jié)到第七個(gè)字節(jié)放置第二個(gè)存儲(chǔ)的節(jié)到第七個(gè)字節(jié)放置第二個(gè)存儲(chǔ)的字字?jǐn)?shù)據(jù),依次排列。數(shù)據(jù),

55、依次排列。 32位的字?jǐn)?shù)據(jù)要使用位的字?jǐn)?shù)據(jù)要使用4個(gè)地址單元,個(gè)地址單元,16位半數(shù)據(jù)要使用位半數(shù)據(jù)要使用2個(gè)地個(gè)地 址單元。址單元。 這樣,就存在一個(gè)所存儲(chǔ)的字或半字?jǐn)?shù)據(jù)的排列順序問(wèn)題。這樣,就存在一個(gè)所存儲(chǔ)的字或半字?jǐn)?shù)據(jù)的排列順序問(wèn)題。 arm體系結(jié)構(gòu)可以用兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),稱為體系結(jié)構(gòu)可以用兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),稱為大端格式大端格式 和和小端格式小端格式 。 2.3 arm存儲(chǔ)結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu)(3) 2.3 arm存儲(chǔ)結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu)(4) 大端格式大端格式(big-endian):字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中, 而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中。而字?jǐn)?shù)據(jù)的低字節(jié)則

56、存放在高地址中。 小端格式小端格式(low-endian):與大端存儲(chǔ)格式相反。低地址中與大端存儲(chǔ)格式相反。低地址中 存放的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存放的是字?jǐn)?shù)據(jù)的高字存放的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存放的是字?jǐn)?shù)據(jù)的高字 節(jié)。節(jié)。缺省設(shè)置為小端格式。缺省設(shè)置為小端格式。 2.3.3 arm存儲(chǔ)器層次存儲(chǔ)器層次 微處理器希望微處理器希望存儲(chǔ)器容量大、速度快。但容量存儲(chǔ)器容量大、速度快。但容量 大者速度慢;速度快者容量小。解決方法是大者速度慢;速度快者容量小。解決方法是構(gòu)建一構(gòu)建一 個(gè)由多級(jí)存儲(chǔ)器組成的復(fù)合存儲(chǔ)器系統(tǒng)。個(gè)由多級(jí)存儲(chǔ)器組成的復(fù)合存儲(chǔ)器系統(tǒng)。 兩級(jí)存儲(chǔ)器方案兩級(jí)存儲(chǔ)器方案 一般包括:一般

57、包括: 一個(gè)容量小但速度快的一個(gè)容量小但速度快的從存儲(chǔ)器從存儲(chǔ)器 一個(gè)容量大但速度慢的一個(gè)容量大但速度慢的主存儲(chǔ)器主存儲(chǔ)器 宏觀上看這個(gè)存儲(chǔ)器系統(tǒng)像一個(gè)即大又快的存儲(chǔ)宏觀上看這個(gè)存儲(chǔ)器系統(tǒng)像一個(gè)即大又快的存儲(chǔ) 器。這個(gè)容量小但速度快的元件是器。這個(gè)容量小但速度快的元件是cache,它自動(dòng),它自動(dòng) 地保存處理器經(jīng)常用到的指令和數(shù)據(jù)的拷貝。地保存處理器經(jīng)常用到的指令和數(shù)據(jù)的拷貝。 2.3 arm存儲(chǔ)結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu)(5) 多級(jí)存儲(chǔ)器系統(tǒng)多級(jí)存儲(chǔ)器系統(tǒng) 寄存器組寄存器組 訪問(wèn)時(shí)間約為幾個(gè)訪問(wèn)時(shí)間約為幾個(gè)ns。 片上片上ram 與片外與片外ram比速度快、功耗小、比速度快、功耗小、 容量小。讀寫(xiě)時(shí)間約為幾

58、個(gè)容量小。讀寫(xiě)時(shí)間約為幾個(gè)ns。 片上片上cache 832kb,訪問(wèn)時(shí)間約為十幾個(gè)訪問(wèn)時(shí)間約為十幾個(gè)ns。 主存儲(chǔ)器主存儲(chǔ)器 一般為幾兆字節(jié)一般為幾兆字節(jié)1gb 的動(dòng)態(tài)存的動(dòng)態(tài)存 儲(chǔ)器,訪問(wèn)時(shí)間約儲(chǔ)器,訪問(wèn)時(shí)間約 50ns。 2.3 arm存儲(chǔ)結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu)(6) cpu 寄存器組寄存器組 片上片上ram 片上片上 cache 主存儲(chǔ)器主存儲(chǔ)器 硬盤(pán)硬盤(pán) 2.4 arm處理器的工作狀態(tài)和模式處理器的工作狀態(tài)和模式 為了能夠體現(xiàn)為了能夠體現(xiàn)arm的特點(diǎn)和性能,的特點(diǎn)和性能,arm處理處理 器有兩種工作狀態(tài)和器有兩種工作狀態(tài)和7種工作模式。種工作模式。 2.4.1 arm處理器的工作狀態(tài)處理器的工

59、作狀態(tài) 有兩種工作狀態(tài):有兩種工作狀態(tài): arm狀態(tài):狀態(tài):處理器執(zhí)行處理器執(zhí)行32位的字對(duì)齊的位的字對(duì)齊的arm指指 令;令; thumb狀態(tài):狀態(tài):處理器執(zhí)行處理器執(zhí)行16位的半字對(duì)齊的位的半字對(duì)齊的 thumb指令。指令。 兩種狀態(tài)可以切換兩種狀態(tài)可以切換。程序執(zhí)行過(guò)程中,通過(guò)執(zhí)。程序執(zhí)行過(guò)程中,通過(guò)執(zhí) 行行帶狀態(tài)切換的分支指令帶狀態(tài)切換的分支指令bx,隨時(shí)在兩種工作狀,隨時(shí)在兩種工作狀 態(tài)之間進(jìn)行切換。并且,處理器工作狀態(tài)的轉(zhuǎn)變,態(tài)之間進(jìn)行切換。并且,處理器工作狀態(tài)的轉(zhuǎn)變, 并不影響處理器的工作模式和相應(yīng)寄存器中的內(nèi)容。并不影響處理器的工作模式和相應(yīng)寄存器中的內(nèi)容。 2.4 arm處理

60、器的工作狀態(tài)和模式處理器的工作狀態(tài)和模式(2) 從從arm狀態(tài)切換到狀態(tài)切換到thumb狀態(tài)狀態(tài) 有兩種情況有兩種情況arm處理器自動(dòng)切換到處理器自動(dòng)切換到thumb狀態(tài)。狀態(tài)。 (1)執(zhí)行)執(zhí)行bx指令,當(dāng)操作數(shù)寄存器的位指令,當(dāng)操作數(shù)寄存器的位0為為1時(shí),則微時(shí),則微 處理器從處理器從arm狀態(tài)切換到狀態(tài)切換到thumb狀態(tài)。此為主動(dòng)切換。狀態(tài)。此為主動(dòng)切換。 (2)當(dāng)處理器處于)當(dāng)處理器處于thumb狀態(tài)時(shí)發(fā)生異常(如狀態(tài)時(shí)發(fā)生異常(如irq、 fiq、undef等),處理完異常后,在異常處理返回時(shí),自等),處理完異常后,在異常處理返回時(shí),自 動(dòng)切換到動(dòng)切換到thumb狀態(tài)。此為自動(dòng)切換

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論