第4講CPU硬件結(jié)構(gòu)及ARM處理器_第1頁
第4講CPU硬件結(jié)構(gòu)及ARM處理器_第2頁
第4講CPU硬件結(jié)構(gòu)及ARM處理器_第3頁
第4講CPU硬件結(jié)構(gòu)及ARM處理器_第4頁
第4講CPU硬件結(jié)構(gòu)及ARM處理器_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

姚英彪杭州電子科技大學(xué)嵌入式CPU硬件結(jié)構(gòu)CPU性能公式Tcpu=N*CPI*CCTN,指令條數(shù),由指令集決定CPI,平均每條指令時(shí)鐘周期數(shù),由指令集和處理器硬件結(jié)構(gòu)共同決定CCT,處理器時(shí)鐘周期,頻率的倒數(shù),主要由硬件結(jié)構(gòu)決定單處理器性能提升技術(shù)降低CPI和CCT經(jīng)典的RISC5級(jí)流水結(jié)構(gòu)有關(guān)流水線性能的若干問題流水線并不能減少(而且一般是增加)單條指令的執(zhí)行時(shí)間,但卻能提高吞吐率。增加流水線的深度(段數(shù))可以提高流水線的性能。流水線的深度受限于流水線的延遲和流水線的額外開銷。流水線的額外開銷包括:流水寄存器的延遲(建立時(shí)間和傳輸延遲)時(shí)鐘扭曲當(dāng)時(shí)鐘周期小到與額外開銷相同時(shí),流水已沒有意義。因?yàn)檫@時(shí)在每一個(gè)時(shí)鐘周期中已沒有時(shí)間來做有用的工作。有關(guān)流水線性能的若干問題需用高速的鎖存器來作為流水寄存器。相關(guān)問題

如果流水線中的指令相互獨(dú)立,則可以充分發(fā)揮流水線的性能。但在實(shí)際中,指令間可能會(huì)是相互依賴,這會(huì)降低流水線的性能。流水線中的相關(guān)是指相鄰或相近的兩條指令因存在某種關(guān)聯(lián),后一條指令不能在原指定的時(shí)鐘周期開始執(zhí)行。相關(guān)的種類◆結(jié)構(gòu)相關(guān)

當(dāng)硬件資源滿足不了同時(shí)重疊執(zhí)行的指令的要求,而發(fā)生資源沖突時(shí),就發(fā)生了結(jié)構(gòu)相關(guān)。◆數(shù)據(jù)相關(guān)

當(dāng)一條指令需要用到前面某條指令的結(jié)果,從而不能重疊執(zhí)行時(shí),就發(fā)生了數(shù)據(jù)相關(guān)。◆控制相關(guān)

當(dāng)流水線遇到分支指令和其他能夠改變PC值的指令時(shí),就會(huì)發(fā)生控制相關(guān)。結(jié)構(gòu)相關(guān)的解決思路所有功能單元完全流水化如將乘法器/除法器流水設(shè)置足夠的硬件資源,硬件代價(jià)很大。如采用哈佛結(jié)構(gòu)有些設(shè)計(jì)方案允許有結(jié)構(gòu)相關(guān)降低成本減少部件的延遲數(shù)據(jù)相關(guān)解決思路當(dāng)指令在流水線中重疊執(zhí)行時(shí),流水線有可能改變指令讀/寫操作數(shù)的順序,使之不同于它們在非流水實(shí)現(xiàn)時(shí)的順序,這將導(dǎo)致數(shù)據(jù)相關(guān)。利用定向技術(shù)減少數(shù)據(jù)相關(guān)引起的暫停定向技術(shù)的主要思路:在發(fā)生上述數(shù)據(jù)相關(guān)時(shí),如果能夠?qū)⒂?jì)算結(jié)果從其產(chǎn)生的地方直接送到需要它的地方,就可以避免暫停。當(dāng)定向硬件檢測到前面某條指令的結(jié)果寄存器就是當(dāng)前指令的源寄存器時(shí),控制邏輯會(huì)將前面那條指令的結(jié)果直接從其產(chǎn)生的地方定向到當(dāng)前指令所需的位置??刂葡嚓P(guān)解決思路“凍結(jié)”或“排空”流水線

在流水線中停住或刪除分支后的指令,直到知道轉(zhuǎn)移目標(biāo)地址。優(yōu)點(diǎn):簡單。預(yù)測

預(yù)測分支指令是否跳轉(zhuǎn)及跳轉(zhuǎn)目標(biāo)。預(yù)測正確,處理器正常執(zhí)行;預(yù)測錯(cuò)誤,恢復(fù)流水線。延遲分支

(delayedbranch)把分支開銷為n的分支指令看成是延遲長度為n的分支指令,其后緊跟有n個(gè)延遲槽。流水線遇到分支指令時(shí),按正常方式處理,順帶執(zhí)行延遲槽中的指令,從而減少分支開銷。n個(gè)延遲槽指令必須執(zhí)行ARM9功能圖ARM流水線體系結(jié)構(gòu):馮諾依曼結(jié)構(gòu)單一存儲(chǔ)、統(tǒng)一編址、分時(shí)復(fù)用體系結(jié)構(gòu):哈佛結(jié)構(gòu)分開存儲(chǔ)、獨(dú)立編址、兩倍帶寬、執(zhí)行效率更高總線總線是在模塊與模塊之間或者設(shè)備與設(shè)備之間傳送信息的一組公用信號(hào)線,是系統(tǒng)在主控器(模塊或設(shè)備)的控制下,將發(fā)送器(模塊或設(shè)備)發(fā)出的信息準(zhǔn)確地傳送給某個(gè)接收器(模塊或設(shè)備)的信號(hào)通路。總線的特點(diǎn)在于其公用性,即它同時(shí)掛接多個(gè)模塊或設(shè)備。20總線按其信號(hào)線性質(zhì)不同一般可分為:讀寫控制線數(shù)據(jù)傳輸握手線總線仲裁線中斷控制線DMA控制線控制總線CB:地址總線AB:數(shù)據(jù)總線DB:總線分組分類用于把數(shù)據(jù)送入或送出MPU,為雙向總線。用于指定數(shù)據(jù)送往或來自何處,為MPU發(fā)出的單向總線??偩€模塊連接在總線上的模塊(設(shè)備)有三種:

總線主模塊:工作于主控方式,可以控制和管理總線??偩€從模塊:工作于受控方式,只能在主模塊控制下工作。主從模塊:有時(shí)工作于主控方式,有時(shí)工作于受控方式??偩€操作及控制

一個(gè)總線操作周期一般要分成4個(gè)階段:總線請(qǐng)求和仲裁階段尋址階段傳數(shù)階段結(jié)束階段需要使用總線的主模塊提出請(qǐng)求,由總線使用的仲裁機(jī)構(gòu)確定把下一個(gè)傳輸周期的總線使用權(quán)分配給哪一個(gè)請(qǐng)求源。

取得使用權(quán)的主模塊通過總線發(fā)出本次要訪問的從模塊的存儲(chǔ)器地址或I/O端口地址及有關(guān)命令,讓參與本次傳輸?shù)膹哪K開始啟動(dòng)。總線操作及控制

一個(gè)總線操作周期一般要分成4個(gè)階段:總線請(qǐng)求和仲裁階段尋址階段傳數(shù)階段結(jié)束階段主模塊和從模塊進(jìn)行數(shù)據(jù)交換。在主模塊發(fā)出的控制信號(hào)作用下,數(shù)據(jù)由源模塊發(fā)出,經(jīng)數(shù)據(jù)總線傳送到目的模塊

主從模塊的有關(guān)信息均從系統(tǒng)總線上撤除,讓出總線,以便其他模塊能繼續(xù)使用。總線操作及控制總線請(qǐng)求與仲裁尋址傳數(shù)結(jié)束(撤出總線)總線操作四階段總線握手總線仲裁25

總線仲裁又叫總線判決,其目的就是合理地控制和管理系統(tǒng)中需要占用總線的請(qǐng)求源,在多個(gè)源同時(shí)提出總線請(qǐng)求時(shí),以一定的優(yōu)先算法仲裁哪個(gè)應(yīng)獲得對(duì)總線的占用權(quán)。如果沒有總線仲裁,很容易產(chǎn)生總線沖突。

總線沖突是指在總線上同時(shí)有兩個(gè)或兩個(gè)以上的模塊要傳送相互矛盾的信息時(shí)引起的沖突,沖突的表現(xiàn)形式后果因驅(qū)動(dòng)總線的邏輯器件類型而異。

因此總線仲裁就是要確保任何時(shí)刻總線上最多只有一個(gè)模塊發(fā)送信息,而決不出現(xiàn)多個(gè)主控器同時(shí)占用總線的現(xiàn)象??偩€仲裁26總線握手

總線握手主要解決主模塊取得總線占用權(quán)后,如何在主模塊和從模塊之間實(shí)現(xiàn)可靠的尋址和數(shù)據(jù)傳輸?shù)膯栴}。常見的總線握手方法:1.同步總線2.異步總線3.半同步總線總線性能指標(biāo)總線的主要性能指標(biāo)有:

總線帶寬總線位寬總線工作頻率

總線帶寬指的是單位時(shí)間內(nèi)總線上可傳送的數(shù)據(jù)量,又稱總線最大傳輸率。

總線位寬指的是總線上能同時(shí)傳送的數(shù)據(jù)位數(shù)。

總線工作頻率指的是用于控制總線操作周期的時(shí)鐘信號(hào)頻率,所以也叫總線時(shí)鐘頻率。

三者關(guān)系:總線帶寬=總線位寬×總線工作頻率總線標(biāo)準(zhǔn)所謂總線標(biāo)準(zhǔn)是指國際工業(yè)界正式公布或推薦的連接各個(gè)模塊的總線規(guī)范,是把各種不同的模塊或設(shè)備組成計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)應(yīng)用系統(tǒng)時(shí)必須遵循的連接規(guī)范。無論哪種總線標(biāo)準(zhǔn),盡管在設(shè)計(jì)細(xì)節(jié)和適應(yīng)范圍上有很多不同,各有特點(diǎn),但從總體原則上看,每種總線設(shè)計(jì)所要解決的問題是大體相同的,其總線規(guī)范(Specification)一般都應(yīng)包括如下幾部分:機(jī)械結(jié)構(gòu)規(guī)范、功能規(guī)范、電氣規(guī)范AMBA總線AMBA(AdvancedMicrocontrollerBusArchitecture)是ARM公司研發(fā)的一種總線規(guī)范。包括AHB(AdvancedHigh-performanceBus):用于高性能系統(tǒng)模塊的連接,支持突發(fā)模式數(shù)據(jù)傳輸和事務(wù)分割;可以有效地連接處理器、片上和片外存儲(chǔ)器,支持流水線操作。APB(AdvancedPeripheralBus):用于較低性能外設(shè)的簡單連接,一般是接在AHB系統(tǒng)總線上的第二級(jí)總線。AMBA總線測試接口ARMCPUSDRAMControlSRAMLCDControl橋并行接口串行接口TimerUART基于AMBA總線的典型系統(tǒng)AHB系統(tǒng)總線APB外部總線編程模型大小端格式大端的數(shù)據(jù)存放格式小端的數(shù)據(jù)存放格式低地址高地址地址A地址A+1地址A+2地址A+3worda=0xf6

73

4b

cdf6734bcd低地址高地址地址A地址A+1地址A+2地址A+3f6734bcdARM微處理器工作模式User模式程序不能訪問有些受保護(hù)的資源只能通過異常的形式來改變CPU的當(dāng)前運(yùn)行模式特權(quán)模式可以存取系統(tǒng)中的任何資源System模式與User模式的運(yùn)行環(huán)境一樣但是它可以不受任何限制的訪問任何資源該模式主要用于運(yùn)行系統(tǒng)中的一些特權(quán)任務(wù)FIQ模式IRQ模式Supervisor模式Abort模式Undefined模式異常模式:主要是在外部中斷或者程序執(zhí)行非法操作時(shí)會(huì)觸發(fā)ARM微處理器:寄存器ARM處理器有37個(gè)寄存器

31個(gè)通用寄存器:程序計(jì)數(shù)器、堆棧及其他通用寄存器

6個(gè)狀態(tài)寄存器這些寄存器不能同時(shí)看到不同的處理器狀態(tài)和工作模式確定哪些寄存器是對(duì)編程者是可見的ARM微處理器:ARMState寄存器ARM微處理器:ThumbState寄存器ARM微處理器:通用寄存器通用寄存器是R0-R15的寄存器,分為三類

沒有對(duì)應(yīng)影子寄存器的寄存器R0-R7

有對(duì)應(yīng)影子寄存器的寄存器R8-R14

程序計(jì)數(shù)器R15(或者PC)

影子寄存器是指該寄存器在不同的模式下對(duì)應(yīng)的物理寄存器ARM微處理器:通用寄存器R0-R7所有模式下,R0-R7所對(duì)應(yīng)的物理寄存器都是相同的這八個(gè)寄存器是真正意義上的通用寄存器,ARM體系結(jié)構(gòu)中對(duì)它們沒有作任何特殊的假設(shè),它們的功能都是等同的。在中斷或者異常處理程序中一般都需要對(duì)這幾個(gè)寄存器進(jìn)行保存。ARM微處理器:通用寄存器R8-R14訪問的物理寄存器取決于當(dāng)前的處理器模式,若要訪問特定的物理寄存器而不依賴當(dāng)前的處理器模式,則要使用規(guī)定的名字。R8-R12各有兩組物理寄存器:一組為FIQ模式,另一組是除FIQ以外的其他模式。R13-R14各有6個(gè)分組的物理寄存器,一個(gè)用于用戶模式和系統(tǒng)模式,其他5個(gè)分別用于5種異常模式。R13(也被稱為SP指針)被用作棧指針,通常在系統(tǒng)初始化時(shí)需要對(duì)所有模式下的SP指針賦值,當(dāng)CPU在不同的模式時(shí)棧指針會(huì)被自動(dòng)切換成相應(yīng)模式下的值。R14有兩個(gè)用途,一是在調(diào)用子程序時(shí)用于保存調(diào)用返回地址,二是在發(fā)生異常時(shí)用于保存異常返回地址。ARM微處理器:程序狀態(tài)寄存器CPSR(當(dāng)前程序狀態(tài)寄存器)在所有的模式下都是可以讀寫的,它主要包含:條件標(biāo)志中斷使能標(biāo)志當(dāng)前處理器的模式其它的一些狀態(tài)和控制標(biāo)志ARM微處理器:程序狀態(tài)寄存器置0表示執(zhí)行32bit的ARM指令置1表示執(zhí)行16bit的Thumb指令NegativeZeroCarryOverflowIRQ中斷的響應(yīng):置1:禁止響應(yīng)置0:允許響應(yīng)FIQ中斷的響應(yīng):置1:禁止響應(yīng)置0:允許響應(yīng)條件標(biāo)志模式控制位ARM/Thumb控制標(biāo)志中斷標(biāo)志ARM微處理器:程序狀態(tài)寄存器模式控制位M0-M4ARM微處理器:異常異常是由內(nèi)部或者外部原因引起的,當(dāng)異常發(fā)生時(shí)CPU將暫停執(zhí)行當(dāng)前指令自動(dòng)到指定的向量地址讀取指令并且執(zhí)行。ARM到向量地址的地方讀取指令,也就是ARM的向量地址處存放的是一條指令(一般是一條跳轉(zhuǎn)指令)7種異常ARM微處理器:異常Reset:CPU被復(fù)位后,進(jìn)入SupervisorMode并且禁止FIQ和IRQ。UndefinedInstructions:CPU執(zhí)行一條未被定義的指令時(shí)就會(huì)觸發(fā)該異常。這種機(jī)制可以用于通過軟件仿真的方式擴(kuò)展THUMBorARM指令集。SWI:軟中斷(SWI)是執(zhí)行SWI指令時(shí)觸發(fā)的,該異常主要用于OS的系統(tǒng)調(diào)用。IRQ:當(dāng)外部IRQ輸入請(qǐng)求發(fā)生時(shí)(IRQ中斷已經(jīng)被使能),觸發(fā)該異常。ARM微處理器:異常FIQ:FIQ通常被用于快速傳輸數(shù)據(jù)。當(dāng)外部FIQ輸入請(qǐng)求發(fā)生時(shí)(FIQ中斷已經(jīng)被使能),觸發(fā)該異常。PrefetchAbort:CPU在讀取指令時(shí)發(fā)生讀內(nèi)存錯(cuò)誤并且該指令又要被執(zhí)行則觸發(fā)該異常;如果只是在讀取指令時(shí)發(fā)生了內(nèi)存錯(cuò)誤而該指令又未被執(zhí)行則不會(huì)觸發(fā)該異常。DataAbort:當(dāng)CPU在讀寫數(shù)據(jù)時(shí),如果發(fā)生錯(cuò)誤則觸發(fā)該異常。ARM微處理器:異常異常的優(yōu)先級(jí)ARM異常相量表ARM微處理器的異常處理當(dāng)異常出現(xiàn)時(shí),異常模式分組的R14和SPSR用于保存狀態(tài),即:

R14_<exception_mode>=returnlinkS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論