《嵌入式系統(tǒng)基礎(chǔ)教程》第08講-第4章ARM片上總線和ARM課件_第1頁
《嵌入式系統(tǒng)基礎(chǔ)教程》第08講-第4章ARM片上總線和ARM課件_第2頁
《嵌入式系統(tǒng)基礎(chǔ)教程》第08講-第4章ARM片上總線和ARM課件_第3頁
《嵌入式系統(tǒng)基礎(chǔ)教程》第08講-第4章ARM片上總線和ARM課件_第4頁
《嵌入式系統(tǒng)基礎(chǔ)教程》第08講-第4章ARM片上總線和ARM課件_第5頁
已閱讀5頁,還剩165頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《嵌入式系統(tǒng)原理與開發(fā)》

第8講南京大學(xué)計(jì)算機(jī)系俞建新主講2008年春季2008年6月28日1南京大學(xué)計(jì)算機(jī)系《嵌入式系統(tǒng)原理與開發(fā)》

第8講2008年春季2008年6月第4章ARM體系結(jié)構(gòu)本章主要介紹以下內(nèi)容:ARM體系結(jié)構(gòu)版本ARM處理器系列ARM流水線ARM工作模式和工作狀態(tài)ARM寄存器組織ARM存儲(chǔ)器組織ARM的異常中斷AMBA和ARM7TDMI2008年6月28日2南京大學(xué)計(jì)算機(jī)系第4章ARM體系結(jié)構(gòu)本章主要介紹以下內(nèi)容:2008年6月284.8AMBA和ARM7TDMI介紹以下內(nèi)容ARM處理器的片上總線AMBA典型的ARM處理器核—ARM7TDMI2008年6月28日3南京大學(xué)計(jì)算機(jī)系4.8AMBA和ARM7TDMI介紹以下內(nèi)容2008年64.1ARM片上總線-AMBAARM公司為單個(gè)或者多個(gè)ARM處理器芯核提供的獨(dú)立總線規(guī)格說明。英文全稱是:AdvancedMicrocontrollerBusArchitecture目前版本是3.0版2.0版AMBA標(biāo)準(zhǔn)定義了三組總線:AHB(AMBA高性能總線)ASB(AMBA系統(tǒng)總線)APB(AMBA外設(shè)總線)2008年6月28日4南京大學(xué)計(jì)算機(jī)系4.1ARM片上總線-AMBAARM公司為單個(gè)或者多個(gè)ARAHB、ASB和APBAMBA規(guī)范定義了3種總線:AHB(AdvancedHigh-performanceBus)用于連接高性能系統(tǒng)模塊。它支持突發(fā)(burst)數(shù)據(jù)傳送方式及單個(gè)數(shù)據(jù)傳送方式,所有時(shí)序都以單一時(shí)鐘的沿為基準(zhǔn)。ASB(AdvancedSystemBus)用于連接高性能系統(tǒng)模塊,它支持突發(fā)數(shù)據(jù)傳送模式。APB(AdvancePeripheralBus)為低性能的外圍部件提供較簡單的接口。2008年6月28日5南京大學(xué)計(jì)算機(jī)系A(chǔ)HB、ASB和APBAMBA規(guī)范定義了3種總線:2008年典型的基于AMBA的SOC系統(tǒng)一個(gè)典型的基于AMBA的微控制器將使用AHB或ASB總線,再加上APB總線,如右圖所示。ASB總線是舊版的系統(tǒng)總線;而AHB則較晚推出,以增強(qiáng)對(duì)更高性能、綜合及時(shí)序驗(yàn)證的支持。2008年6月28日6南京大學(xué)計(jì)算機(jī)系典型的基于AMBA的SOC系統(tǒng)一個(gè)典型的基于AMBA的微控制4.2ARM7TDMI核ARM7TDMI是世界上廣泛使用的32位嵌入式RISC處理器,它是目前用于低端的ARM處理器核,且應(yīng)用范圍很廣。ARM7TDMI的名稱含義如下:ARM7:ARM632位整型核的3V兼容版本;T:16位壓縮指令集Thumb;D:在片調(diào)試(debug)支持,允許處理器響應(yīng)調(diào)試請(qǐng)求暫停;M:64位增強(qiáng)型乘法器(multiplier),與以前處理器相比性能更高,產(chǎn)生全64位結(jié)果;I:嵌入式ICE硬件提供片上斷點(diǎn)和調(diào)試點(diǎn)支持。2008年6月28日7南京大學(xué)計(jì)算機(jī)系4.2ARM7TDMI核ARM7TDMI是世界上廣泛使用4.2.1ARM7TDMI介紹ARM7TDMI處理器是ARM7處理器系列成員之一,是目前應(yīng)用很廣的32位高性能嵌入式RISC處理器。本節(jié)介紹ARM7TDMI的以下4個(gè)內(nèi)容基本特點(diǎn)框圖、內(nèi)核和功能圖體系結(jié)構(gòu)存儲(chǔ)器接口2008年6月28日8南京大學(xué)計(jì)算機(jī)系4.2.1ARM7TDMI介紹ARM7TDMI處理器是ARARM7TDMI基本特點(diǎn)ARM7TDMI基本特點(diǎn)包含以下內(nèi)容:指令流水線存儲(chǔ)器訪問存儲(chǔ)器接口嵌入式ICE-RT邏輯2008年6月28日9南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDMI基本特點(diǎn)ARM7TDMI基本特點(diǎn)包含以下內(nèi)容指令流水線ARM7TDMI使用流水線以提高處理器指令的流動(dòng)速度。流水線允許幾個(gè)操作同時(shí)進(jìn)行,以及處理和存儲(chǔ)系統(tǒng)連續(xù)操作。ARM7TDMI使用3級(jí)流水線,因此,指令的執(zhí)行分3個(gè)階段:取指、譯碼和執(zhí)行。正常操作流水:在執(zhí)行當(dāng)前一條指令的同時(shí),后續(xù)的一條指令被譯碼,后續(xù)的第二條指令從存儲(chǔ)器中被取出。2008年6月28日10南京大學(xué)計(jì)算機(jī)系指令流水線ARM7TDMI使用流水線以提高處理器指令的流動(dòng)速指令流水線的功能段劃分從存儲(chǔ)器取指令指令所用的寄存器譯碼從寄存器組中讀寄存器,執(zhí)行移位和ALU操作,將寄存器寫回到寄存器組執(zhí)行譯碼取指PC-8PC-4PC2008年6月28日11南京大學(xué)計(jì)算機(jī)系指令流水線的功能段劃分從存儲(chǔ)器取指令執(zhí)行譯碼取指PC-8ARM7的3級(jí)流水線示意圖取指譯碼執(zhí)行ARMThumbPC+8PC+4PC+4PC+2PCPC取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行T1T2T3T4T5當(dāng)前執(zhí)行指令的所在地址2008年6月28日12南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7的3級(jí)流水線示意圖取指譯碼執(zhí)行ARMThumbPC+存儲(chǔ)器訪問特點(diǎn)ARM7TDMI核是馮·諾依曼(VonNeumann)體系結(jié)構(gòu),使用單一32位數(shù)據(jù)總線傳送指令和數(shù)據(jù)。只有加載、存儲(chǔ)和交換指令可以訪問存儲(chǔ)器中的數(shù)據(jù)。數(shù)據(jù)可以是:8位(字節(jié))、16位(半字)和32位(字)。字必須是4字節(jié)邊界對(duì)準(zhǔn),半字必須是2字節(jié)邊界對(duì)準(zhǔn)。2008年6月28日13南京大學(xué)計(jì)算機(jī)系存儲(chǔ)器訪問特點(diǎn)ARM7TDMI核是馮·諾依曼(VonNeu存儲(chǔ)器接口特點(diǎn)ARM7TDMI存儲(chǔ)器接口特點(diǎn)如下:速度相關(guān)控制信號(hào)流水作業(yè)方便片內(nèi)和片外快速突發(fā)(burst)訪問模式2008年6月28日14南京大學(xué)計(jì)算機(jī)系存儲(chǔ)器接口特點(diǎn)ARM7TDMI存儲(chǔ)器接口特點(diǎn)如下:2008年4種存儲(chǔ)周期空閑周期(I)非順序周期(N)順序周期(S)協(xié)處理器寄存器傳送周期(C)2008年6月28日15南京大學(xué)計(jì)算機(jī)系4種存儲(chǔ)周期空閑周期(I)2008年6月28日15南京大學(xué)計(jì)嵌入式ICE-RT邏輯為ARM7TDMI核提供了集成的在片調(diào)試支持可用來設(shè)置斷點(diǎn)或觀察點(diǎn)出現(xiàn)的條件嵌入式ICE-RT邏輯包含調(diào)試通信通道DCC,DebugCommunicationsChannelDCC用于在目標(biāo)和宿主調(diào)試器之間傳送信息嵌入式ICE-RT邏輯通過JTAG(JointTestActionGroup)測試訪問口進(jìn)行控制2008年6月28日16南京大學(xué)計(jì)算機(jī)系嵌入式ICE-RT邏輯為ARM7TDMI核提供了集成的在片調(diào)ARM7TDMI體系結(jié)構(gòu)ARM7TDMI有如下2個(gè)指令集:32位ARM指令集;16位Thumb指令集。屬于ARMv4T體系結(jié)構(gòu)的實(shí)現(xiàn)特點(diǎn)是:1.指令集壓縮2.Thumb指令集2008年6月28日17南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDMI體系結(jié)構(gòu)ARM7TDMI有如下2個(gè)指令集:2指令集壓縮對(duì)于傳統(tǒng)的微處理器體系結(jié)構(gòu),指令和數(shù)據(jù)具有同樣的寬度。與16位體系結(jié)構(gòu)相比,32位體系結(jié)構(gòu)在操縱32位數(shù)據(jù)時(shí)呈顯了更高的性能,并可更有效地尋址更大的空間。一般來講,16位體系結(jié)構(gòu)比32位體系結(jié)構(gòu)具有更高的代碼密度,但只有近似一半的性能。Thumb在32位體系結(jié)構(gòu)上實(shí)現(xiàn)了16位指令集,以提供:比16位體系結(jié)構(gòu)更高的性能;比32位體系結(jié)構(gòu)更高的代碼密度。2008年6月28日18南京大學(xué)計(jì)算機(jī)系指令集壓縮對(duì)于傳統(tǒng)的微處理器體系結(jié)構(gòu),指令和數(shù)據(jù)具有同樣的寬Thumb指令集Thumb指令集是通常使用的32位ARM指令集的子集。每條Thumb指令是16位長,有相應(yīng)的對(duì)于處理器模型有相同效果的32位ARM指令。Thumb指令在標(biāo)準(zhǔn)的ARM寄存器配置下進(jìn)行操作,在ARM和Thumb狀態(tài)之間具有出色的互操作性。執(zhí)行時(shí),16位Thumb指令透明地實(shí)時(shí)解壓縮成32位ARM指令,且沒有性能損失。Thumb具有32位核的所有優(yōu)點(diǎn):32位尋址空間;32位寄存器;32位移位器和算術(shù)邏輯單元ALU(ArithmeticLogicUnit);32位存儲(chǔ)器傳送。2008年6月28日19南京大學(xué)計(jì)算機(jī)系Thumb指令集Thumb指令集是通常使用的32位ARM指令Thumb指令集(續(xù))Thumb因而可提供長的轉(zhuǎn)移范圍、強(qiáng)大的算術(shù)運(yùn)算能力和大的尋址空間。Thumb代碼的長度是ARM代碼長度的65%,當(dāng)從16位存儲(chǔ)系統(tǒng)運(yùn)行時(shí),提供ARM代碼160%的性能。Thumb使ARM7TDMI核非常適用于有存儲(chǔ)器寬度限制且代碼密度為重要的嵌入式應(yīng)用場合。由于ARM7TDMI具有16位Thumb指令集和32位ARM指令集,這使設(shè)計(jì)者能根據(jù)他們的應(yīng)用要求在子程序級(jí)靈活地強(qiáng)調(diào)性能或代碼長度。2008年6月28日20南京大學(xué)計(jì)算機(jī)系Thumb指令集(續(xù))Thumb因而可提供長的轉(zhuǎn)移范圍、強(qiáng)大框圖、內(nèi)核和功能圖參看下面的三張內(nèi)部電路結(jié)構(gòu)圖ARM7TDMI處理器框圖ARM7TDMI主處理器邏輯ARM7TDMI處理器功能圖有關(guān)圖中的引腳信號(hào)請(qǐng)參看PDF資料文件《ARM7TDMI的所有信號(hào)描述》2008年6月28日21南京大學(xué)計(jì)算機(jī)系框圖、內(nèi)核和功能圖參看下面的三張內(nèi)部電路結(jié)構(gòu)圖2008年6月ARM7TDMI處理器框圖2008年6月28日22南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDMI處理器框圖2008年6月28日22南京大學(xué)計(jì)ARM7TDMI主處理器2008年6月28日23南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDMI主處理器2008年6月28日23南京大學(xué)計(jì)算ARM7TDMI處理器功能圖2008年6月28日24南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDMI處理器功能圖2008年6月28日24南京大學(xué)ARM7TDIM部分信號(hào)解釋APE(addresspipelineenable)ALE(addresslatchenable)ABE(addressbusenable)LOCK(lockedoperation)MCLK(memoryclockinput)nWAIT(notwait)ECLK(externalclockoutput)nRESET(notreset)nRW(notread/write)nMREQ(notmemoryrequest)2008年6月28日25南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDIM部分信號(hào)解釋APE(addresspipeAPE信號(hào)APE(addresspipelineenable)選擇地址總線、LOCK、MAS[1:0]、nRW、nOPC和nTRANS信號(hào)是操作在流水線方式(APE為高)還是非流水線方式(APE為低)。2008年6月28日26南京大學(xué)計(jì)算機(jī)系A(chǔ)PE信號(hào)APE(addresspipelineenaALE信號(hào)ALE(addresslatchenable)提供這個(gè)信號(hào)用以與以前的ARM處理器兼容。對(duì)于新設(shè)計(jì),若需要地址重新定義時(shí),ARM公司則推薦使用APE,并將ALE接高。當(dāng)該信號(hào)為低時(shí),鎖存地址總線、LOCK、MAS[1:0]、nRW、nOPC和nTRANS信號(hào)。這可允許這些地址信號(hào)在整個(gè)存儲(chǔ)器訪問周期內(nèi)都有效。例如,當(dāng)與ROM接口時(shí),在數(shù)據(jù)被讀出之前地址必須一直有效。2008年6月28日27南京大學(xué)計(jì)算機(jī)系A(chǔ)LE信號(hào)ALE(addresslatchenable)ABE信號(hào)ABE(addressbusenable)該引腳信號(hào)為高時(shí),地址總線有效。當(dāng)它為低時(shí)禁止總線驅(qū)動(dòng),使地址總線進(jìn)入高阻狀態(tài)。也用同樣的方法控制LOCK、MAS[1:0]、nRW、nOPC和nTRANS信號(hào)。若系統(tǒng)沒有要求,則禁止地址驅(qū)動(dòng),ABE必須接高。2008年6月28日28南京大學(xué)計(jì)算機(jī)系A(chǔ)BE信號(hào)ABE(addressbusenable)20LOCK信號(hào)LOCK(lockedoperation)一個(gè)受APE、ALE和ABE控制的信號(hào)。LOCK用于向仲裁器指示總線上正在進(jìn)行原子性(atomic)操作。當(dāng)處理器執(zhí)行一個(gè)鎖定內(nèi)存區(qū)訪問時(shí)為高,則表明正在執(zhí)行SWP和SWPB指令。此信號(hào)用來防止控制器允許其它器件訪問存儲(chǔ)器。信號(hào)值為高表明這些指令執(zhí)行原子性讀/寫操作,可用于實(shí)現(xiàn)信號(hào)量。LOCK通常為低。2008年6月28日29南京大學(xué)計(jì)算機(jī)系LOCK信號(hào)LOCK(lockedoperation)20MCLK信號(hào)MCLK(memoryclockinput)所有存儲(chǔ)器訪問和處理器操作的主時(shí)鐘。時(shí)鐘速度可以減慢到以允許訪問慢速外設(shè)或存儲(chǔ)器。另外,nWAIT可與自由運(yùn)行的MCLK一起使用以獲得同樣的效果。2008年6月28日30南京大學(xué)計(jì)算機(jī)系MCLK信號(hào)MCLK(memoryclockinput)nWAIT信號(hào)nWAIT(notwait)當(dāng)它為低時(shí),處理器將其訪問時(shí)間延長幾個(gè)MCLK周期,這對(duì)訪問低速存儲(chǔ)器或外圍設(shè)備有用。在內(nèi)部nWAIT與MCLK進(jìn)行邏輯“與”且必須僅在MCLK為低時(shí)改變。當(dāng)nWAIT不使用時(shí),它必須接高。相當(dāng)于x86處理器的Ready信號(hào)(輸入,高電平)。2008年6月28日31南京大學(xué)計(jì)算機(jī)系nWAIT信號(hào)nWAIT(notwait)2008年6月2ECLK信號(hào)ECLK(externalclockoutput)在正常操作中,它只是可選用nWAIT延展的MCLK,從內(nèi)核輸出。當(dāng)內(nèi)核正在被調(diào)試時(shí),它是DCLK,由TCLK內(nèi)部產(chǎn)生。2008年6月28日32南京大學(xué)計(jì)算機(jī)系ECLK信號(hào)ECLK(externalclockoutpnRESET信號(hào)nRESET(notreset)用于從已知的地址啟動(dòng)處理器。低電平將引起正在執(zhí)行的指令非正常中止。這個(gè)信號(hào)必須保持為低至少達(dá)2個(gè)時(shí)鐘周期,同時(shí)nWAIT保持為高。當(dāng)它為低時(shí),處理器執(zhí)行內(nèi)部周期,同時(shí)地址從復(fù)位處增值。若nRESET保持到超過最大地址界限,則地址溢出為零。當(dāng)它保持為高至少1個(gè)時(shí)鐘周期時(shí),處理器從地址0重新開始。2008年6月28日33南京大學(xué)計(jì)算機(jī)系nRESET信號(hào)nRESET(notreset)2008年nRW信號(hào)nRW(notread/write)讀寫控制信號(hào)一個(gè)受APE、ALE和ABE控制的信號(hào)。nRW指定傳送的方向。nRW為高表明是ARM7TDMI的寫周期,nRW為低表明是ARM7TDMI的讀周期。S周期的突發(fā)傳送始終是讀突發(fā),或者寫突發(fā)。在突發(fā)傳送期間不能改變方向。2008年6月28日34南京大學(xué)計(jì)算機(jī)系nRW信號(hào)nRW(notread/write)2008年nMREQ信號(hào)nMREQ(notmemoryrequest)存儲(chǔ)器訪問請(qǐng)求信號(hào),低電平有效。在接下來的時(shí)鐘周期,當(dāng)處理器請(qǐng)求存儲(chǔ)器訪問時(shí),它為低。2008年6月28日35南京大學(xué)計(jì)算機(jī)系nMREQ信號(hào)nMREQ(notmemoryreques存儲(chǔ)器接口詳解總線接口信號(hào)時(shí)序圖約定總線周期尋址信號(hào)地址時(shí)序數(shù)據(jù)定時(shí)信號(hào)延長訪問時(shí)間特權(quán)模式訪問上電后的復(fù)位序列2008年6月28日36南京大學(xué)計(jì)算機(jī)系存儲(chǔ)器接口詳解總線接口信號(hào)2008年6月28日36南京大學(xué)計(jì)總線接口信號(hào)ARM7TDMI的總線接口信號(hào)可以分成如下4類:時(shí)鐘和時(shí)鐘控制信號(hào):MCLK、nWAIT、ECLK、nRESET。地址類信號(hào):A[31:0]、nRW、MAS[1:0]、nOPC、nTRANS、LOCK、TBIT。存儲(chǔ)器請(qǐng)求信號(hào):nMREQ、SEQ。數(shù)據(jù)時(shí)序信號(hào):D[31:0]、DIN[31:0]、DOUT[31:0]、ABORT、BL[3:0]。ARM7TDMI使用MCLK的上升沿和下降沿。使用nWAIT信號(hào)可以延長總線周期。后面部分描述一個(gè)簡單系統(tǒng),其中nWAIT總是高電平。2008年6月28日37南京大學(xué)計(jì)算機(jī)系總線接口信號(hào)ARM7TDMI的總線接口信號(hào)可以分成如下4類:A[31:0]信號(hào)A[31:0](address)地址相關(guān)信號(hào),32位地址總線。當(dāng)?shù)刂房偩€有效時(shí),用ALE、ABE和APE來控制。A[31:0]是指定傳送地址的32位地址總線。所有地址是字節(jié)地址,因而一個(gè)字訪問突發(fā)導(dǎo)致每個(gè)周期地址總線增加4。地址總線提供4GB的線性尋址空間。當(dāng)發(fā)出字訪問信號(hào)時(shí),存儲(chǔ)系統(tǒng)忽略低2位A[1:0],當(dāng)發(fā)出半字訪問信號(hào)時(shí),存儲(chǔ)系統(tǒng)忽略低位A[0]。所有數(shù)據(jù)值必須在它們固有的邊界對(duì)準(zhǔn)。所有的字必須字對(duì)準(zhǔn)。2008年6月28日38南京大學(xué)計(jì)算機(jī)系A(chǔ)[31:0]信號(hào)A[31:0](address)2008MAS[1:0]信號(hào)MAS[1:0](memoryaccesssize)地址相關(guān)信號(hào)用于指示存儲(chǔ)系統(tǒng)在讀和寫周期所要求的數(shù)據(jù)傳送的大小(字節(jié)、半字和字)。在存儲(chǔ)周期,在MCLK下降沿之前變?yōu)橛行?,并保持有效直到MCLK的上升沿為止。二進(jìn)制值00、01和10分別表示字節(jié)、半字和字(11保留)。這是一個(gè)由APE、ALE和ABE控制的信號(hào)。MAS信號(hào)的編碼意義參看下表2008年6月28日39南京大學(xué)計(jì)算機(jī)系MAS[1:0]信號(hào)MAS[1:0](memoryacc有效地址的決定ARM7TDMI產(chǎn)生的地址始終是字節(jié)地址。盡管如此,存儲(chǔ)系統(tǒng)必須忽略地址的低位冗余。有效地址位參見下表:MAS[1:0]寬度有效地址位00字節(jié)A[31:0]01半字A[31:1]10字A[31:2]11保留—2008年6月28日40南京大學(xué)計(jì)算機(jī)系有效地址的決定ARM7TDMI產(chǎn)生的地址始終是字節(jié)地址。盡管nOPC信號(hào)nOPC(notop-codefetch)當(dāng)處理器正在從存儲(chǔ)器取指令時(shí),它為低。這是一個(gè)由APE、ALE和ABE控制的信號(hào)。nOPC的輸出傳遞有關(guān)傳送的信息。MMU使用這個(gè)信號(hào)來判定訪問是取操作碼還是數(shù)據(jù)傳送。這個(gè)信號(hào)可與nTRANS一起使用以實(shí)現(xiàn)訪問許可權(quán)方案(accesspermissionscheme)。2008年6月28日41南京大學(xué)計(jì)算機(jī)系nOPC信號(hào)nOPC(notop-codefetch)2nTRANS信號(hào)nTRANS(notmemorytranslate)當(dāng)處理器在用戶模式時(shí),它為低。它可用于通知存儲(chǔ)管理系統(tǒng)地址轉(zhuǎn)換的時(shí)間,或作為非用戶模式活動(dòng)的標(biāo)示。這是一個(gè)由APE、ALE和ABE控制的信號(hào)。nTRANS為0:用戶;nTRANS為1:特權(quán)。nTRANS可由LDRT和STRT指令來適當(dāng)設(shè)置。nTRANS信號(hào)的使用可以避免黑客蓄意給操作系統(tǒng)傳送非法指針,然后讓操作系統(tǒng)以特權(quán)模式訪問存儲(chǔ)器的可能性。當(dāng)然它也會(huì)被黑客用來讓用戶應(yīng)用去訪問任意的存儲(chǔ)位置(如I/O空間)。2008年6月28日42南京大學(xué)計(jì)算機(jī)系nTRANS信號(hào)nTRANS(notmemorytranTBIT信號(hào)TBIT信號(hào)表明處理器的工作狀態(tài)。當(dāng)處理器正在執(zhí)行Thumb指令集時(shí),TBIT為高;當(dāng)處理器正在執(zhí)行ARM指令集時(shí),它為低。該信號(hào)在BX指令的第1個(gè)執(zhí)行周期的第2相(狀態(tài))改變。2008年6月28日43南京大學(xué)計(jì)算機(jī)系TBIT信號(hào)TBIT信號(hào)表明處理器的工作狀態(tài)。2008年6月SEQ信號(hào)SEQ(quentialaddress)概述:指示順序地址當(dāng)下一個(gè)存儲(chǔ)器周期的地址與上一次存儲(chǔ)器訪問的地址緊密相關(guān)時(shí),SEQ為高。在ARM狀態(tài),新地址可以是相同的字或下一個(gè)字。在Thumb狀態(tài),新地址可以是相同的半字或下一個(gè)半字。與低位地址線配合,它可用于指示下一個(gè)周期可使用快速存儲(chǔ)器模式(例如DRAM頁模式),或用于旁路地址轉(zhuǎn)換系統(tǒng)。2008年6月28日44南京大學(xué)計(jì)算機(jī)系SEQ信號(hào)SEQ(quentialaddress)2008ABORT信號(hào)ABORT(memoryabort)存儲(chǔ)系統(tǒng)使用該信號(hào)通知處理器其所請(qǐng)求的訪問是不允許的。2008年6月28日45南京大學(xué)計(jì)算機(jī)系A(chǔ)BORT信號(hào)ABORT(memoryabort)2008BL[3:0]信號(hào)BL[3:0](bytelatchcontrol)字節(jié)鎖存使能信號(hào)當(dāng)這些信號(hào)為高時(shí),數(shù)據(jù)總線的值在MCLK的下降沿鎖存。對(duì)于大多數(shù)設(shè)計(jì),這些信號(hào)必須接高電平。BL[3]控制在D[31:24]上出現(xiàn)的數(shù)據(jù)的鎖存;BL[2]控制在D[23:16]上出現(xiàn)的數(shù)據(jù)的鎖存;BL[1]控制在D[15:8]上出現(xiàn)的數(shù)據(jù)的鎖存;BL[0]控制在D[7:0]上出現(xiàn)的數(shù)據(jù)的鎖存。2008年6月28日46南京大學(xué)計(jì)算機(jī)系BL[3:0]信號(hào)BL[3:0](bytelatchco時(shí)序圖約定本頁給出的圖例適用于后面的各種時(shí)序圖2008年6月28日47南京大學(xué)計(jì)算機(jī)系時(shí)序圖約定本頁給出的圖例適用于后面的各種時(shí)序圖2008年6月總線周期流水型的ARM7TDMI總線接口能夠有最長的存儲(chǔ)周期時(shí)間用于地址譯碼和響應(yīng)訪問請(qǐng)求。存儲(chǔ)器請(qǐng)求信號(hào)比訪問用的總線周期提前一個(gè)總線周期廣播;地址類信號(hào)比訪問用的總線周期提前半個(gè)時(shí)鐘周期廣播。2008年6月28日48南京大學(xué)計(jì)算機(jī)系總線周期流水型的ARM7TDMI總線接口能夠有最長的存儲(chǔ)周期ARM7TDMI的一個(gè)存儲(chǔ)周期高阻抗態(tài)總線變化2008年6月28日49南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDMI的一個(gè)存儲(chǔ)周期高阻抗態(tài)總線變化2008年6月4種類型的總線周期ARM7TDMI的總線接口可以實(shí)現(xiàn)如下4種不同類型的總線周期:非順序周期請(qǐng)求向或從某一地址傳送。該地址與前一個(gè)周期使用的地址無關(guān)。順序周期請(qǐng)求向或從某一地址傳送。該地址與前一個(gè)周期使用的地址相比,或相同,或大1個(gè)字或半個(gè)字。內(nèi)部周期不需要傳送,因?yàn)樗趫?zhí)行內(nèi)部功能,不能同時(shí)執(zhí)行有用的預(yù)取。協(xié)處理器寄存器傳送周期使用數(shù)據(jù)總線與協(xié)處理器進(jìn)行通信,但不需要存儲(chǔ)系統(tǒng)作任何動(dòng)作。2008年6月28日50南京大學(xué)計(jì)算機(jī)系4種類型的總線周期ARM7TDMI的總線接口可以實(shí)現(xiàn)如下4種總線周期類型2008年6月28日51南京大學(xué)計(jì)算機(jī)系總線周期類型2008年6月28日51南京大學(xué)計(jì)算機(jī)系非順序周期非順序周期是最簡單的總線周期,在處理器請(qǐng)求向或從某一地址傳送時(shí)出現(xiàn)。這個(gè)地址與前一周期使用的地址無關(guān)。存儲(chǔ)控制器必須啟動(dòng)存儲(chǔ)器訪問來滿足這個(gè)請(qǐng)求。組成N周期的地址類和信號(hào)(nMREQ和SEQ)在總線上廣播。在下一個(gè)總線周期結(jié)束時(shí),數(shù)據(jù)在CPU和存儲(chǔ)器之間傳送。對(duì)于非順序訪問,存儲(chǔ)系統(tǒng)常需要較長的訪問時(shí)間(擴(kuò)展時(shí)鐘周期)。這為全地址譯碼提供了時(shí)間,或?qū)⑿泻土械刂锋i存進(jìn)DRAM。2008年6月28日52南京大學(xué)計(jì)算機(jī)系非順序周期非順序周期是最簡單的總線周期,在處理器請(qǐng)求向或從某非順序存儲(chǔ)周期信號(hào)波形圖00有效指明N周期,即非順序周期01有效指明S周期2008年6月28日53南京大學(xué)計(jì)算機(jī)系非順序存儲(chǔ)周期信號(hào)波形圖00有效指明N周期,即非順序周期01順序周期順序周期用于實(shí)現(xiàn)總線上的突發(fā)傳送。這一信息可用于優(yōu)化存儲(chǔ)控制器與突發(fā)存儲(chǔ)器件(如DRAM)接口的設(shè)計(jì)。在順序周期期間,ARM7TDMI請(qǐng)求存儲(chǔ)器定位,這可作為順序突發(fā)的一部分。突發(fā)傳送的第一個(gè)周期,地址可與前一個(gè)內(nèi)部周期相同。其它情況下地址是前一個(gè)周期的地址增加一個(gè)量,即:對(duì)于字訪問的突發(fā),地址增加4字節(jié);對(duì)于半字訪問的突發(fā),地址增加2字節(jié);不可能有字節(jié)訪問的突發(fā)。2008年6月28日54南京大學(xué)計(jì)算機(jī)系順序周期順序周期用于實(shí)現(xiàn)總線上的突發(fā)傳送。2008年6月28突發(fā)傳輸突發(fā)總是從N周期或合并的IS周期開始,接著是S周期。突發(fā)組成相同類型的傳送。在突發(fā)傳送期間,A[31:0]信號(hào)增加,其它地址類信號(hào)不受突發(fā)影響。突發(fā)中所有的訪問具有相同的數(shù)據(jù)寬度、方向和保護(hù)類型。存儲(chǔ)系統(tǒng)順序訪問與非順序訪問相比響應(yīng)更快,需要更短的訪問時(shí)間。2008年6月28日55南京大學(xué)計(jì)算機(jī)系突發(fā)傳輸突發(fā)總是從N周期或合并的IS周期開始,接著是S周期。突發(fā)類型2008年6月28日56南京大學(xué)計(jì)算機(jī)系突發(fā)類型2008年6月28日56南京大學(xué)計(jì)算機(jī)系順序訪問周期nMREQ,SEQ信號(hào)組合=01指明S周期2008年6月28日57南京大學(xué)計(jì)算機(jī)系順序訪問周期nMREQ,SEQ信號(hào)組合=012008年6月內(nèi)部周期在內(nèi)部周期期間,ARM7TDMI不要求存儲(chǔ)器訪問,因?yàn)檎趫?zhí)行內(nèi)部功能,不能同時(shí)執(zhí)行有用的預(yù)取。只要可能,ARM7TDMI就廣播下一次訪問的地址以便開始譯碼,但存儲(chǔ)控制器不允許進(jìn)行存儲(chǔ)器訪問。2008年6月28日58南京大學(xué)計(jì)算機(jī)系內(nèi)部周期在內(nèi)部周期期間,ARM7TDMI不要求存儲(chǔ)器訪問,因內(nèi)部周期示意圖nMREQ,SEQ信號(hào)組合=10指明I周期,即內(nèi)部周期nMREQ,SEQ信號(hào)組合=11指明C周期,即協(xié)處理周期2008年6月28日59南京大學(xué)計(jì)算機(jī)系內(nèi)部周期示意圖nMREQ,SEQ信號(hào)組合=10nMREQ,合并的IS周期ARM7TDMI盡可能實(shí)現(xiàn)總線優(yōu)化以得到額外的時(shí)間進(jìn)行存儲(chǔ)器譯碼。當(dāng)這種情況發(fā)生時(shí),下一個(gè)存儲(chǔ)周期的地址在內(nèi)部周期期間就在總線上廣播。這時(shí)允許存儲(chǔ)控制器來進(jìn)行地址譯碼,但在這個(gè)周期不允許啟動(dòng)存儲(chǔ)器訪問。在合并的IS周期,對(duì)于同一存儲(chǔ)位置,下一個(gè)周期是順序周期。這時(shí)進(jìn)行訪問,存儲(chǔ)控制器必須啟動(dòng)存儲(chǔ)器訪問。參看下面圖解2008年6月28日60南京大學(xué)計(jì)算機(jī)系合并的IS周期ARM7TDMI盡可能實(shí)現(xiàn)總線優(yōu)化以得到額外的合并的IS周期示意圖nMREQ,SEQ信號(hào)組合=10指明I周期,即內(nèi)部周期nMREQ,SEQ信號(hào)組合=01指明S周期,即順序周期2008年6月28日61南京大學(xué)計(jì)算機(jī)系合并的IS周期示意圖nMREQ,SEQ信號(hào)組合=10nMR協(xié)處理器寄存器傳送周期在協(xié)處理器寄存器傳送期間,ARM7TDMI使用數(shù)據(jù)總線向或從協(xié)處理器傳送數(shù)據(jù)。不需要存儲(chǔ)周期,存儲(chǔ)控制器不啟動(dòng)事務(wù)(transaction)。在協(xié)處理器寄存器傳送期間,存儲(chǔ)系統(tǒng)不允許驅(qū)動(dòng)數(shù)據(jù)總線。參看下圖2008年6月28日62南京大學(xué)計(jì)算機(jī)系協(xié)處理器寄存器傳送周期在協(xié)處理器寄存器傳送期間,ARM7TD協(xié)處理器傳送周期示意圖2008年6月28日63南京大學(xué)計(jì)算機(jī)系協(xié)處理器傳送周期示意圖2008年6月28日63南京大學(xué)計(jì)算機(jī)ARM存儲(chǔ)周期時(shí)序一覽2008年6月28日64南京大學(xué)計(jì)算機(jī)系A(chǔ)RM存儲(chǔ)周期時(shí)序一覽2008年6月28日64南京大學(xué)計(jì)算機(jī)對(duì)代碼的執(zhí)行進(jìn)行統(tǒng)計(jì)2008年6月28日65南京大學(xué)計(jì)算機(jī)系對(duì)代碼的執(zhí)行進(jìn)行統(tǒng)計(jì)2008年6月28日65南京大學(xué)計(jì)算機(jī)系A(chǔ)DS工具中對(duì)四種周期的統(tǒng)計(jì)2008年6月28日66南京大學(xué)計(jì)算機(jī)系A(chǔ)DS工具中對(duì)四種周期的統(tǒng)計(jì)2008年6月28日66南京大學(xué)地址時(shí)序ARM7TDMI的地址總線工作在兩種配置方式之一流水線方式APE信號(hào)接高電平非流水線方式APE信號(hào)接低電平注:ARM公司極力推薦在新的設(shè)計(jì)中使用流水的地址時(shí)序以獲得最佳系統(tǒng)性能。ARM公司極力推薦ALE接高,并且在新設(shè)計(jì)中不使用。2008年6月28日67南京大學(xué)計(jì)算機(jī)系地址時(shí)序ARM7TDMI的地址總線工作在兩種配置方式之一20流水線地址當(dāng)APE為高時(shí),ARM7TDMI的地址在存儲(chǔ)周期前MCLK的上升沿之后有效。2008年6月28日68南京大學(xué)計(jì)算機(jī)系流水線地址當(dāng)APE為高時(shí),ARM7TDMI的地址在存儲(chǔ)周期前非流水線地址在僅包含SRAM和ROM的系統(tǒng)中,APE可以置為低以產(chǎn)生所需的地址時(shí)序。因?yàn)镾RAM和ROM要求在整個(gè)存儲(chǔ)周期內(nèi)保持地址穩(wěn)定。在這種配置中,在MCLK下降沿之后地址有效。2008年6月28日69南京大學(xué)計(jì)算機(jī)系非流水線地址在僅包含SRAM和ROM的系統(tǒng)中,APE可以置為數(shù)據(jù)定時(shí)信號(hào)1.D

[31:0]、DOUT[31:0]和DIN[31:0]2.BUSEN信號(hào)3.ABORT信號(hào),參看前面的ABORT解釋4.字節(jié)鎖存使能(由BL[3:0]信號(hào)決定)5.字節(jié)和半字訪問(由MAS[1:0]信號(hào)決定)2008年6月28日70南京大學(xué)計(jì)算機(jī)系數(shù)據(jù)定時(shí)信號(hào)1.D[31:0]、DOUT[31:0]和DIARM7TDMI外部總線結(jié)構(gòu)2008年6月28日71南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDMI外部總線結(jié)構(gòu)2008年6月28日71南京大學(xué)D[31:0]信號(hào)D[31:0](databus)用于處理器與外部存儲(chǔ)器之間的雙向數(shù)據(jù)傳送。在讀周期,輸入數(shù)據(jù)必須在MCLK的下降沿有效。在寫周期,在MCLK的下降沿之前輸出數(shù)據(jù)保持有效。與BUSEN的值無關(guān),除讀周期外,數(shù)據(jù)總線總是被驅(qū)動(dòng)。因此,若使用單向數(shù)據(jù)總線,那么它必須留著不接。2008年6月28日72南京大學(xué)計(jì)算機(jī)系D[31:0]信號(hào)D[31:0](databus)2008DIN[31:0]和DOUT[31:0]信號(hào)DIN[31:0](datainputbus)用于從存儲(chǔ)器向處理器傳送指令和數(shù)據(jù)的單向總線。該總線僅當(dāng)BUSEN為高時(shí)使用。若不用則必須將其接低。在讀周期,在MCLK下降沿對(duì)該總線采樣。DOUT[31:0](dataoutputbus)用于從處理器向存儲(chǔ)系統(tǒng)傳送數(shù)據(jù)的單向總線。該總線僅當(dāng)BUSEN為高時(shí)使用,否則驅(qū)動(dòng)為零。在寫周期,輸出數(shù)據(jù)在MCLK為低時(shí)變?yōu)橛行?,并保持有效直到MCLK下降沿之后。2008年6月28日73南京大學(xué)計(jì)算機(jī)系DIN[31:0]和DOUT[31:0]信號(hào)DIN[31:0BUSEN信號(hào)BUSEN(databusconfiguration)該靜態(tài)配置信號(hào)用于選擇是用雙向數(shù)據(jù)總線(D[31:0])還是用單向數(shù)據(jù)總線(DIN[31:0]和DOUT[31:0])在處理器和存儲(chǔ)器之間傳送數(shù)據(jù)。參看上圖(ARM7TDMI外部總線結(jié)構(gòu))當(dāng)BUSEN為低時(shí),選用D[31:0],并將DOUT[31:0]的值驅(qū)動(dòng)為零,將DIN[31:0]忽略,且必須接低。當(dāng)BUSEN為高時(shí),選用DIN[31:0]和DOUT[31:0],將D[31:0]忽略,且必須留著不接。2008年6月28日74南京大學(xué)計(jì)算機(jī)系BUSEN信號(hào)BUSEN(databusconfigurABORT信號(hào)意義:ABORT(中止)表明沒有成功地完成存儲(chǔ)器事務(wù)。采樣時(shí)刻:在S周期和N周期,當(dāng)總線周期結(jié)束時(shí)對(duì)ABORT采樣。處理器操作:若在數(shù)據(jù)訪問時(shí)認(rèn)定ABORT,則引起處理器采用數(shù)據(jù)中止陷阱(dataaborttrap);若在取操作碼時(shí)認(rèn)定ABORT,則中止進(jìn)入流水線;若執(zhí)行指令,則采用預(yù)取中止陷阱(prefetchaborttrap)。用途:存儲(chǔ)器管理系統(tǒng)可以使用ABORT以實(shí)現(xiàn)諸如基本的存儲(chǔ)器保護(hù)方案或要求分頁的虛擬存儲(chǔ)器系統(tǒng)。2008年6月28日75南京大學(xué)計(jì)算機(jī)系A(chǔ)BORT信號(hào)意義:2008年6月28日75南京大學(xué)計(jì)算機(jī)系nENOUT信號(hào)nENOUT(notenableoutput)

寫周期,在MCLK上升沿之前將該信號(hào)驅(qū)動(dòng)為低,且在整個(gè)周期保持為低。在共享總線的應(yīng)用中,這可被用于輔助仲裁。在雙向數(shù)據(jù)總線操作周期中,驅(qū)動(dòng)為低表明處理器正在驅(qū)動(dòng)D[31,0]作為輸出。2008年6月28日76南京大學(xué)計(jì)算機(jī)系nENOUT信號(hào)nENOUT(notenableoutp單向總線外部連接單向總線一般用于ASIC嵌入式應(yīng)用的內(nèi)部。在外部,大多數(shù)系統(tǒng)仍需要雙向數(shù)據(jù)總線與外部存儲(chǔ)器接口。下圖表明如何在ASIC的緩沖物(pad)中合并單向總線,以便與外部雙向總線相連。2008年6月28日77南京大學(xué)計(jì)算機(jī)系單向總線外部連接單向總線一般用于ASIC嵌入式應(yīng)用的內(nèi)部。在延長訪問時(shí)間ARM處理器有兩種延長訪問時(shí)間的方法:調(diào)制MCLK使用nWAIT控制總線周期ARM處理器不包含任何依靠有規(guī)律的時(shí)鐘來管理內(nèi)部狀態(tài)的動(dòng)態(tài)邏輯。因此,對(duì)于MCLK可被延長的最長時(shí)間或nWAIT保持低電平的最長時(shí)間沒有限制。如果要使用嵌入式跟蹤宏單元(ETM)從跟蹤口上獲得指令和數(shù)據(jù)跟蹤信息,則必須使用nWAIT信號(hào)來延長訪問時(shí)間。2008年6月28日78南京大學(xué)計(jì)算機(jī)系延長訪問時(shí)間ARM處理器有兩種延長訪問時(shí)間的方法:2008年特權(quán)模式訪問ARM處理器共有七種運(yùn)行模式。分別是:用戶(User,usr);系統(tǒng)(System,sys);快中斷(FastInterruptreQuest,fiq);中斷(InterruptReQuest,irq);管理(Supervisor,svc);中止(Abort,abt);未定義(Undefined,und)除用戶模式之外的六種模式稱為特權(quán)模式處于特權(quán)模式時(shí)可以訪問系統(tǒng)的全部資源特權(quán)模式由nTRANS引腳信號(hào)的高電平?jīng)Q定特權(quán)模式2008年6月28日79南京大學(xué)計(jì)算機(jī)系特權(quán)模式訪問ARM處理器共有七種運(yùn)行模式。分別是:特權(quán)模式2nTRANS信號(hào)nTRANS(notmemorytranslate)nTRANS信號(hào)是輸出信號(hào)nTRANS=0用戶模式指令nTRANS=1特權(quán)模式指令用于區(qū)分用戶訪問和特權(quán)訪問。當(dāng)處理器在用戶模式時(shí),它為低。它可用于通知存儲(chǔ)管理系統(tǒng)地址轉(zhuǎn)換的時(shí)間,或作為非用戶模式活動(dòng)的標(biāo)示。由APE、ALE和ABE控制的信號(hào)。2008年6月28日80南京大學(xué)計(jì)算機(jī)系nTRANS信號(hào)nTRANS(notmemorytran加電復(fù)位加電復(fù)位初始階段,nMREQ和SEQ無定義。在加電復(fù)位中間階段,即當(dāng)nRESET變?yōu)楦唠娖胶蟛⑶覐膹?fù)位向量(地址0x00000000)取第1條指令之前,ARM核經(jīng)過兩個(gè)內(nèi)部周期。處理器執(zhí)行的這兩個(gè)內(nèi)部周期階段由nMREQ和SEQ信號(hào)指明。內(nèi)部周期執(zhí)行完畢之后執(zhí)行一個(gè)非順序周期,爾后執(zhí)行連續(xù)的順序周期。初始地址和增加值由復(fù)位發(fā)生時(shí)的內(nèi)核狀態(tài)決定。在執(zhí)行第1條指令之前,用3個(gè)MCLK周期使這條指令通過ARM指令流水線的取指一譯碼一執(zhí)行段。參看下圖2008年6月28日81南京大學(xué)計(jì)算機(jī)系加電復(fù)位加電復(fù)位初始階段,nMREQ和SEQ無定義。2008ARM7TDMI復(fù)位時(shí)序圖2008年6月28日82南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDMI復(fù)位時(shí)序圖2008年6月28日82南京大學(xué)計(jì)第8講重點(diǎn)ARM片上總線AMBAAHB、ASB和APBARM7TDMI的基本特點(diǎn)三級(jí)流水線處理器框圖嵌入式ICE-RT邏輯ARM和Thumb兩種指令集重要信號(hào)存儲(chǔ)器接口總線周期類型外部總線安排2008年6月28日83南京大學(xué)計(jì)算機(jī)系第8講重點(diǎn)ARM片上總線AMBA2008年6月28日83南京第8講復(fù)習(xí)題與思考題目前AMBA片上總線有哪幾個(gè)版本,它們的主要特點(diǎn)是什么?ARM7TDMI核指令流水線是幾級(jí)流水線?ARM7TDMI的版本變量有四個(gè),分別代表什么含義?ARM7TDMI主時(shí)鐘信號(hào)的名稱是什么?ARM7TDMI處理器的引腳信號(hào)可以分成哪幾大類?典型的基于ARM7TDMI核的處理器是什么?嵌入式ICE-RT邏輯起什么作用?從復(fù)位時(shí)刻開始到ARM7TDMI處理器執(zhí)行第一條指令,其中間要經(jīng)過幾個(gè)時(shí)鐘周期?2008年6月28日84南京大學(xué)計(jì)算機(jī)系第8講復(fù)習(xí)題與思考題目前AMBA片上總線有哪幾個(gè)版本,它第8講結(jié)束謝謝大家的使用!歡迎大家提出寶貴意見和建議!2008年6月28日85南京大學(xué)計(jì)算機(jī)系第8講結(jié)束謝謝大家的使用!2008年6月28日85南京大學(xué)計(jì)《嵌入式系統(tǒng)原理與開發(fā)》

第8講南京大學(xué)計(jì)算機(jī)系俞建新主講2008年春季2008年6月28日86南京大學(xué)計(jì)算機(jī)系《嵌入式系統(tǒng)原理與開發(fā)》

第8講2008年春季2008年6月第4章ARM體系結(jié)構(gòu)本章主要介紹以下內(nèi)容:ARM體系結(jié)構(gòu)版本ARM處理器系列ARM流水線ARM工作模式和工作狀態(tài)ARM寄存器組織ARM存儲(chǔ)器組織ARM的異常中斷AMBA和ARM7TDMI2008年6月28日87南京大學(xué)計(jì)算機(jī)系第4章ARM體系結(jié)構(gòu)本章主要介紹以下內(nèi)容:2008年6月284.8AMBA和ARM7TDMI介紹以下內(nèi)容ARM處理器的片上總線AMBA典型的ARM處理器核—ARM7TDMI2008年6月28日88南京大學(xué)計(jì)算機(jī)系4.8AMBA和ARM7TDMI介紹以下內(nèi)容2008年64.1ARM片上總線-AMBAARM公司為單個(gè)或者多個(gè)ARM處理器芯核提供的獨(dú)立總線規(guī)格說明。英文全稱是:AdvancedMicrocontrollerBusArchitecture目前版本是3.0版2.0版AMBA標(biāo)準(zhǔn)定義了三組總線:AHB(AMBA高性能總線)ASB(AMBA系統(tǒng)總線)APB(AMBA外設(shè)總線)2008年6月28日89南京大學(xué)計(jì)算機(jī)系4.1ARM片上總線-AMBAARM公司為單個(gè)或者多個(gè)ARAHB、ASB和APBAMBA規(guī)范定義了3種總線:AHB(AdvancedHigh-performanceBus)用于連接高性能系統(tǒng)模塊。它支持突發(fā)(burst)數(shù)據(jù)傳送方式及單個(gè)數(shù)據(jù)傳送方式,所有時(shí)序都以單一時(shí)鐘的沿為基準(zhǔn)。ASB(AdvancedSystemBus)用于連接高性能系統(tǒng)模塊,它支持突發(fā)數(shù)據(jù)傳送模式。APB(AdvancePeripheralBus)為低性能的外圍部件提供較簡單的接口。2008年6月28日90南京大學(xué)計(jì)算機(jī)系A(chǔ)HB、ASB和APBAMBA規(guī)范定義了3種總線:2008年典型的基于AMBA的SOC系統(tǒng)一個(gè)典型的基于AMBA的微控制器將使用AHB或ASB總線,再加上APB總線,如右圖所示。ASB總線是舊版的系統(tǒng)總線;而AHB則較晚推出,以增強(qiáng)對(duì)更高性能、綜合及時(shí)序驗(yàn)證的支持。2008年6月28日91南京大學(xué)計(jì)算機(jī)系典型的基于AMBA的SOC系統(tǒng)一個(gè)典型的基于AMBA的微控制4.2ARM7TDMI核ARM7TDMI是世界上廣泛使用的32位嵌入式RISC處理器,它是目前用于低端的ARM處理器核,且應(yīng)用范圍很廣。ARM7TDMI的名稱含義如下:ARM7:ARM632位整型核的3V兼容版本;T:16位壓縮指令集Thumb;D:在片調(diào)試(debug)支持,允許處理器響應(yīng)調(diào)試請(qǐng)求暫停;M:64位增強(qiáng)型乘法器(multiplier),與以前處理器相比性能更高,產(chǎn)生全64位結(jié)果;I:嵌入式ICE硬件提供片上斷點(diǎn)和調(diào)試點(diǎn)支持。2008年6月28日92南京大學(xué)計(jì)算機(jī)系4.2ARM7TDMI核ARM7TDMI是世界上廣泛使用4.2.1ARM7TDMI介紹ARM7TDMI處理器是ARM7處理器系列成員之一,是目前應(yīng)用很廣的32位高性能嵌入式RISC處理器。本節(jié)介紹ARM7TDMI的以下4個(gè)內(nèi)容基本特點(diǎn)框圖、內(nèi)核和功能圖體系結(jié)構(gòu)存儲(chǔ)器接口2008年6月28日93南京大學(xué)計(jì)算機(jī)系4.2.1ARM7TDMI介紹ARM7TDMI處理器是ARARM7TDMI基本特點(diǎn)ARM7TDMI基本特點(diǎn)包含以下內(nèi)容:指令流水線存儲(chǔ)器訪問存儲(chǔ)器接口嵌入式ICE-RT邏輯2008年6月28日94南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDMI基本特點(diǎn)ARM7TDMI基本特點(diǎn)包含以下內(nèi)容指令流水線ARM7TDMI使用流水線以提高處理器指令的流動(dòng)速度。流水線允許幾個(gè)操作同時(shí)進(jìn)行,以及處理和存儲(chǔ)系統(tǒng)連續(xù)操作。ARM7TDMI使用3級(jí)流水線,因此,指令的執(zhí)行分3個(gè)階段:取指、譯碼和執(zhí)行。正常操作流水:在執(zhí)行當(dāng)前一條指令的同時(shí),后續(xù)的一條指令被譯碼,后續(xù)的第二條指令從存儲(chǔ)器中被取出。2008年6月28日95南京大學(xué)計(jì)算機(jī)系指令流水線ARM7TDMI使用流水線以提高處理器指令的流動(dòng)速指令流水線的功能段劃分從存儲(chǔ)器取指令指令所用的寄存器譯碼從寄存器組中讀寄存器,執(zhí)行移位和ALU操作,將寄存器寫回到寄存器組執(zhí)行譯碼取指PC-8PC-4PC2008年6月28日96南京大學(xué)計(jì)算機(jī)系指令流水線的功能段劃分從存儲(chǔ)器取指令執(zhí)行譯碼取指PC-8ARM7的3級(jí)流水線示意圖取指譯碼執(zhí)行ARMThumbPC+8PC+4PC+4PC+2PCPC取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行T1T2T3T4T5當(dāng)前執(zhí)行指令的所在地址2008年6月28日97南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7的3級(jí)流水線示意圖取指譯碼執(zhí)行ARMThumbPC+存儲(chǔ)器訪問特點(diǎn)ARM7TDMI核是馮·諾依曼(VonNeumann)體系結(jié)構(gòu),使用單一32位數(shù)據(jù)總線傳送指令和數(shù)據(jù)。只有加載、存儲(chǔ)和交換指令可以訪問存儲(chǔ)器中的數(shù)據(jù)。數(shù)據(jù)可以是:8位(字節(jié))、16位(半字)和32位(字)。字必須是4字節(jié)邊界對(duì)準(zhǔn),半字必須是2字節(jié)邊界對(duì)準(zhǔn)。2008年6月28日98南京大學(xué)計(jì)算機(jī)系存儲(chǔ)器訪問特點(diǎn)ARM7TDMI核是馮·諾依曼(VonNeu存儲(chǔ)器接口特點(diǎn)ARM7TDMI存儲(chǔ)器接口特點(diǎn)如下:速度相關(guān)控制信號(hào)流水作業(yè)方便片內(nèi)和片外快速突發(fā)(burst)訪問模式2008年6月28日99南京大學(xué)計(jì)算機(jī)系存儲(chǔ)器接口特點(diǎn)ARM7TDMI存儲(chǔ)器接口特點(diǎn)如下:2008年4種存儲(chǔ)周期空閑周期(I)非順序周期(N)順序周期(S)協(xié)處理器寄存器傳送周期(C)2008年6月28日100南京大學(xué)計(jì)算機(jī)系4種存儲(chǔ)周期空閑周期(I)2008年6月28日15南京大學(xué)計(jì)嵌入式ICE-RT邏輯為ARM7TDMI核提供了集成的在片調(diào)試支持可用來設(shè)置斷點(diǎn)或觀察點(diǎn)出現(xiàn)的條件嵌入式ICE-RT邏輯包含調(diào)試通信通道DCC,DebugCommunicationsChannelDCC用于在目標(biāo)和宿主調(diào)試器之間傳送信息嵌入式ICE-RT邏輯通過JTAG(JointTestActionGroup)測試訪問口進(jìn)行控制2008年6月28日101南京大學(xué)計(jì)算機(jī)系嵌入式ICE-RT邏輯為ARM7TDMI核提供了集成的在片調(diào)ARM7TDMI體系結(jié)構(gòu)ARM7TDMI有如下2個(gè)指令集:32位ARM指令集;16位Thumb指令集。屬于ARMv4T體系結(jié)構(gòu)的實(shí)現(xiàn)特點(diǎn)是:1.指令集壓縮2.Thumb指令集2008年6月28日102南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDMI體系結(jié)構(gòu)ARM7TDMI有如下2個(gè)指令集:2指令集壓縮對(duì)于傳統(tǒng)的微處理器體系結(jié)構(gòu),指令和數(shù)據(jù)具有同樣的寬度。與16位體系結(jié)構(gòu)相比,32位體系結(jié)構(gòu)在操縱32位數(shù)據(jù)時(shí)呈顯了更高的性能,并可更有效地尋址更大的空間。一般來講,16位體系結(jié)構(gòu)比32位體系結(jié)構(gòu)具有更高的代碼密度,但只有近似一半的性能。Thumb在32位體系結(jié)構(gòu)上實(shí)現(xiàn)了16位指令集,以提供:比16位體系結(jié)構(gòu)更高的性能;比32位體系結(jié)構(gòu)更高的代碼密度。2008年6月28日103南京大學(xué)計(jì)算機(jī)系指令集壓縮對(duì)于傳統(tǒng)的微處理器體系結(jié)構(gòu),指令和數(shù)據(jù)具有同樣的寬Thumb指令集Thumb指令集是通常使用的32位ARM指令集的子集。每條Thumb指令是16位長,有相應(yīng)的對(duì)于處理器模型有相同效果的32位ARM指令。Thumb指令在標(biāo)準(zhǔn)的ARM寄存器配置下進(jìn)行操作,在ARM和Thumb狀態(tài)之間具有出色的互操作性。執(zhí)行時(shí),16位Thumb指令透明地實(shí)時(shí)解壓縮成32位ARM指令,且沒有性能損失。Thumb具有32位核的所有優(yōu)點(diǎn):32位尋址空間;32位寄存器;32位移位器和算術(shù)邏輯單元ALU(ArithmeticLogicUnit);32位存儲(chǔ)器傳送。2008年6月28日104南京大學(xué)計(jì)算機(jī)系Thumb指令集Thumb指令集是通常使用的32位ARM指令Thumb指令集(續(xù))Thumb因而可提供長的轉(zhuǎn)移范圍、強(qiáng)大的算術(shù)運(yùn)算能力和大的尋址空間。Thumb代碼的長度是ARM代碼長度的65%,當(dāng)從16位存儲(chǔ)系統(tǒng)運(yùn)行時(shí),提供ARM代碼160%的性能。Thumb使ARM7TDMI核非常適用于有存儲(chǔ)器寬度限制且代碼密度為重要的嵌入式應(yīng)用場合。由于ARM7TDMI具有16位Thumb指令集和32位ARM指令集,這使設(shè)計(jì)者能根據(jù)他們的應(yīng)用要求在子程序級(jí)靈活地強(qiáng)調(diào)性能或代碼長度。2008年6月28日105南京大學(xué)計(jì)算機(jī)系Thumb指令集(續(xù))Thumb因而可提供長的轉(zhuǎn)移范圍、強(qiáng)大框圖、內(nèi)核和功能圖參看下面的三張內(nèi)部電路結(jié)構(gòu)圖ARM7TDMI處理器框圖ARM7TDMI主處理器邏輯ARM7TDMI處理器功能圖有關(guān)圖中的引腳信號(hào)請(qǐng)參看PDF資料文件《ARM7TDMI的所有信號(hào)描述》2008年6月28日106南京大學(xué)計(jì)算機(jī)系框圖、內(nèi)核和功能圖參看下面的三張內(nèi)部電路結(jié)構(gòu)圖2008年6月ARM7TDMI處理器框圖2008年6月28日107南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDMI處理器框圖2008年6月28日22南京大學(xué)計(jì)ARM7TDMI主處理器2008年6月28日108南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDMI主處理器2008年6月28日23南京大學(xué)計(jì)算ARM7TDMI處理器功能圖2008年6月28日109南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDMI處理器功能圖2008年6月28日24南京大學(xué)ARM7TDIM部分信號(hào)解釋APE(addresspipelineenable)ALE(addresslatchenable)ABE(addressbusenable)LOCK(lockedoperation)MCLK(memoryclockinput)nWAIT(notwait)ECLK(externalclockoutput)nRESET(notreset)nRW(notread/write)nMREQ(notmemoryrequest)2008年6月28日110南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDIM部分信號(hào)解釋APE(addresspipeAPE信號(hào)APE(addresspipelineenable)選擇地址總線、LOCK、MAS[1:0]、nRW、nOPC和nTRANS信號(hào)是操作在流水線方式(APE為高)還是非流水線方式(APE為低)。2008年6月28日111南京大學(xué)計(jì)算機(jī)系A(chǔ)PE信號(hào)APE(addresspipelineenaALE信號(hào)ALE(addresslatchenable)提供這個(gè)信號(hào)用以與以前的ARM處理器兼容。對(duì)于新設(shè)計(jì),若需要地址重新定義時(shí),ARM公司則推薦使用APE,并將ALE接高。當(dāng)該信號(hào)為低時(shí),鎖存地址總線、LOCK、MAS[1:0]、nRW、nOPC和nTRANS信號(hào)。這可允許這些地址信號(hào)在整個(gè)存儲(chǔ)器訪問周期內(nèi)都有效。例如,當(dāng)與ROM接口時(shí),在數(shù)據(jù)被讀出之前地址必須一直有效。2008年6月28日112南京大學(xué)計(jì)算機(jī)系A(chǔ)LE信號(hào)ALE(addresslatchenable)ABE信號(hào)ABE(addressbusenable)該引腳信號(hào)為高時(shí),地址總線有效。當(dāng)它為低時(shí)禁止總線驅(qū)動(dòng),使地址總線進(jìn)入高阻狀態(tài)。也用同樣的方法控制LOCK、MAS[1:0]、nRW、nOPC和nTRANS信號(hào)。若系統(tǒng)沒有要求,則禁止地址驅(qū)動(dòng),ABE必須接高。2008年6月28日113南京大學(xué)計(jì)算機(jī)系A(chǔ)BE信號(hào)ABE(addressbusenable)20LOCK信號(hào)LOCK(lockedoperation)一個(gè)受APE、ALE和ABE控制的信號(hào)。LOCK用于向仲裁器指示總線上正在進(jìn)行原子性(atomic)操作。當(dāng)處理器執(zhí)行一個(gè)鎖定內(nèi)存區(qū)訪問時(shí)為高,則表明正在執(zhí)行SWP和SWPB指令。此信號(hào)用來防止控制器允許其它器件訪問存儲(chǔ)器。信號(hào)值為高表明這些指令執(zhí)行原子性讀/寫操作,可用于實(shí)現(xiàn)信號(hào)量。LOCK通常為低。2008年6月28日114南京大學(xué)計(jì)算機(jī)系LOCK信號(hào)LOCK(lockedoperation)20MCLK信號(hào)MCLK(memoryclockinput)所有存儲(chǔ)器訪問和處理器操作的主時(shí)鐘。時(shí)鐘速度可以減慢到以允許訪問慢速外設(shè)或存儲(chǔ)器。另外,nWAIT可與自由運(yùn)行的MCLK一起使用以獲得同樣的效果。2008年6月28日115南京大學(xué)計(jì)算機(jī)系MCLK信號(hào)MCLK(memoryclockinput)nWAIT信號(hào)nWAIT(notwait)當(dāng)它為低時(shí),處理器將其訪問時(shí)間延長幾個(gè)MCLK周期,這對(duì)訪問低速存儲(chǔ)器或外圍設(shè)備有用。在內(nèi)部nWAIT與MCLK進(jìn)行邏輯“與”且必須僅在MCLK為低時(shí)改變。當(dāng)nWAIT不使用時(shí),它必須接高。相當(dāng)于x86處理器的Ready信號(hào)(輸入,高電平)。2008年6月28日116南京大學(xué)計(jì)算機(jī)系nWAIT信號(hào)nWAIT(notwait)2008年6月2ECLK信號(hào)ECLK(externalclockoutput)在正常操作中,它只是可選用nWAIT延展的MCLK,從內(nèi)核輸出。當(dāng)內(nèi)核正在被調(diào)試時(shí),它是DCLK,由TCLK內(nèi)部產(chǎn)生。2008年6月28日117南京大學(xué)計(jì)算機(jī)系ECLK信號(hào)ECLK(externalclockoutpnRESET信號(hào)nRESET(notreset)用于從已知的地址啟動(dòng)處理器。低電平將引起正在執(zhí)行的指令非正常中止。這個(gè)信號(hào)必須保持為低至少達(dá)2個(gè)時(shí)鐘周期,同時(shí)nWAIT保持為高。當(dāng)它為低時(shí),處理器執(zhí)行內(nèi)部周期,同時(shí)地址從復(fù)位處增值。若nRESET保持到超過最大地址界限,則地址溢出為零。當(dāng)它保持為高至少1個(gè)時(shí)鐘周期時(shí),處理器從地址0重新開始。2008年6月28日118南京大學(xué)計(jì)算機(jī)系nRESET信號(hào)nRESET(notreset)2008年nRW信號(hào)nRW(notread/write)讀寫控制信號(hào)一個(gè)受APE、ALE和ABE控制的信號(hào)。nRW指定傳送的方向。nRW為高表明是ARM7TDMI的寫周期,nRW為低表明是ARM7TDMI的讀周期。S周期的突發(fā)傳送始終是讀突發(fā),或者寫突發(fā)。在突發(fā)傳送期間不能改變方向。2008年6月28日119南京大學(xué)計(jì)算機(jī)系nRW信號(hào)nRW(notread/write)2008年nMREQ信號(hào)nMREQ(notmemoryrequest)存儲(chǔ)器訪問請(qǐng)求信號(hào),低電平有效。在接下來的時(shí)鐘周期,當(dāng)處理器請(qǐng)求存儲(chǔ)器訪問時(shí),它為低。2008年6月28日120南京大學(xué)計(jì)算機(jī)系nMREQ信號(hào)nMREQ(notmemoryreques存儲(chǔ)器接口詳解總線接口信號(hào)時(shí)序圖約定總線周期尋址信號(hào)地址時(shí)序數(shù)據(jù)定時(shí)信號(hào)延長訪問時(shí)間特權(quán)模式訪問上電后的復(fù)位序列2008年6月28日121南京大學(xué)計(jì)算機(jī)系存儲(chǔ)器接口詳解總線接口信號(hào)2008年6月28日36南京大學(xué)計(jì)總線接口信號(hào)ARM7TDMI的總線接口信號(hào)可以分成如下4類:時(shí)鐘和時(shí)鐘控制信號(hào):MCLK、nWAIT、ECLK、nRESET。地址類信號(hào):A[31:0]、nRW、MAS[1:0]、nOPC、nTRANS、LOCK、TBIT。存儲(chǔ)器請(qǐng)求信號(hào):nMREQ、SEQ。數(shù)據(jù)時(shí)序信號(hào):D[31:0]、DIN[31:0]、DOUT[31:0]、ABORT、BL[3:0]。ARM7TDMI使用MCLK的上升沿和下降沿。使用nWAIT信號(hào)可以延長總線周期。后面部分描述一個(gè)簡單系統(tǒng),其中nWAIT總是高電平。2008年6月28日122南京大學(xué)計(jì)算機(jī)系總線接口信號(hào)ARM7TDMI的總線接口信號(hào)可以分成如下4類:A[31:0]信號(hào)A[31:0](address)地址相關(guān)信號(hào),32位地址總線。當(dāng)?shù)刂房偩€有效時(shí),用ALE、ABE和APE來控制。A[31:0]是指定傳送地址的32位地址總線。所有地址是字節(jié)地址,因而一個(gè)字訪問突發(fā)導(dǎo)致每個(gè)周期地址總線增加4。地址總線提供4GB的線性尋址空間。當(dāng)發(fā)出字訪問信號(hào)時(shí),存儲(chǔ)系統(tǒng)忽略低2位A[1:0],當(dāng)發(fā)出半字訪問信號(hào)時(shí),存儲(chǔ)系統(tǒng)忽略低位A[0]。所有數(shù)據(jù)值必須在它們固有的邊界對(duì)準(zhǔn)。所有的字必須字對(duì)準(zhǔn)。2008年6月28日123南京大學(xué)計(jì)算機(jī)系A(chǔ)[31:0]信號(hào)A[31:0](address)2008MAS[1:0]信號(hào)MAS[1:0](memoryaccesssize)地址相關(guān)信號(hào)用于指示存儲(chǔ)系統(tǒng)在讀和寫周期所要求的數(shù)據(jù)傳送的大小(字節(jié)、半字和字)。在存儲(chǔ)周期,在MCLK下降沿之前變?yōu)橛行?,并保持有效直到MCLK的上升沿為止。二進(jìn)制值00、01和10分別表示字節(jié)、半字和字(11保留)。這是一個(gè)由APE、ALE和ABE控制的信號(hào)。MAS信號(hào)的編碼意義參看下表2008年6月28日124南京大學(xué)計(jì)算機(jī)系MAS[1:0]信號(hào)MAS[1:0](memoryacc有效地址的決定ARM7TDMI產(chǎn)生的地址始終是字節(jié)地址。盡管如此,存儲(chǔ)系統(tǒng)必須忽略地址的低位冗余。有效地址位參見下表:MAS[1:0]寬度有效地址位00字節(jié)A[31:0]01半字A[31:1]10字A[31:2]11保留—2008年6月28日125南京大學(xué)計(jì)算機(jī)系有效地址的決定ARM7TDMI產(chǎn)生的地址始終是字節(jié)地址。盡管nOPC信號(hào)nOPC(notop-codefetch)當(dāng)處理器正在從存儲(chǔ)器取指令時(shí),它為低。這是一個(gè)由APE、ALE和ABE控制的信號(hào)。nOPC的輸出傳遞有關(guān)傳送的信息。MMU使用這個(gè)信號(hào)來判定訪問是取操作碼還是數(shù)據(jù)傳送。這個(gè)信號(hào)可與nTRANS一起使用以實(shí)現(xiàn)訪問許可權(quán)方案(accesspermissionscheme)。2008年6月28日126南京大學(xué)計(jì)算機(jī)系nOPC信號(hào)nOPC(notop-codefetch)2nTRANS信號(hào)nTRANS(notmemorytranslate)當(dāng)處理器在用戶模式時(shí),它為低。它可用于通知存儲(chǔ)管理系統(tǒng)地址轉(zhuǎn)換的時(shí)間,或作為非用戶模式活動(dòng)的標(biāo)示。這是一個(gè)由APE、ALE和ABE控制的信號(hào)。nTRANS為0:用戶;nTRANS為1:特權(quán)。nTRANS可由LDRT和STRT指令來適當(dāng)設(shè)置。nTRANS信號(hào)的使用可以避免黑客蓄意給操作系統(tǒng)傳送非法指針,然后讓操作系統(tǒng)以特權(quán)模式訪問存儲(chǔ)器的可能性。當(dāng)然它也會(huì)被黑客用來讓用戶應(yīng)用去訪問任意的存儲(chǔ)位置(如I/O空間)。2008年6月28日127南京大學(xué)計(jì)算機(jī)系nTRANS信號(hào)nTRANS(notmemorytranTBIT信號(hào)TBIT信號(hào)表明處理器的工作狀態(tài)。當(dāng)處理器正在執(zhí)行Thumb指令集時(shí),TBIT為高;當(dāng)處理器正在執(zhí)行ARM指令集時(shí),它為低。該信號(hào)在BX指令的第1個(gè)執(zhí)行周期的第2相(狀態(tài))改變。2008年6月28日128南京大學(xué)計(jì)算機(jī)系TBIT信號(hào)TBIT信號(hào)表明處理器的工作狀態(tài)。2008年6月SEQ信號(hào)SEQ(quentialaddress)概述:指示順序地址當(dāng)下一個(gè)存儲(chǔ)器周期的地址與上一次存儲(chǔ)器訪問的地址緊密相關(guān)時(shí),SEQ為高。在ARM狀態(tài),新地址可以是相同的字或下一個(gè)字。在Thumb狀態(tài),新地址可以是相同的半字或下一個(gè)半字。與低位地址線配合,它可用于指示下一個(gè)周期可使用快速存儲(chǔ)器模式(例如DRAM頁模式),或用于旁路地址轉(zhuǎn)換系統(tǒng)。2008年6月28日129南京大學(xué)計(jì)算機(jī)系SEQ信號(hào)SEQ(quentialaddress)2008ABORT信號(hào)ABORT(memoryabort)存儲(chǔ)系統(tǒng)使用該信號(hào)通知處理器其所請(qǐng)求的訪問是不允許的。2008年6月28日130南京大學(xué)計(jì)算機(jī)系A(chǔ)BORT信號(hào)ABORT(memoryabort)2008BL[3:0]信號(hào)BL[3:0](bytelatchcontrol)字節(jié)鎖存使能信號(hào)當(dāng)這些信號(hào)為高時(shí),數(shù)據(jù)總線的值在MCLK的下降沿鎖存。對(duì)于大多數(shù)設(shè)計(jì),這些信號(hào)必須接高電平。BL[3]控制在D[31:24]上出現(xiàn)的數(shù)據(jù)的鎖存;BL[2]控制在D[23:16]上出現(xiàn)的數(shù)據(jù)的鎖存;BL[1]控制在D[15:8]上出現(xiàn)的數(shù)據(jù)的鎖存;BL[0]控制在D[7:0]上出現(xiàn)的數(shù)據(jù)的鎖存。2008年6月28日131南京大學(xué)計(jì)算機(jī)系BL[3:0]信號(hào)BL[3:0](bytelatchco時(shí)序圖約定本頁給出的圖例適用于后面的各種時(shí)序圖2008年6月28日132南京大學(xué)計(jì)算機(jī)系時(shí)序圖約定本頁給出的圖例適用于后面的各種時(shí)序圖2008年6月總線周期流水型的ARM7TDMI總線接口能夠有最長的存儲(chǔ)周期時(shí)間用于地址譯碼和響應(yīng)訪問請(qǐng)求。存儲(chǔ)器請(qǐng)求信號(hào)比訪問用的總線周期提前一個(gè)總線周期廣播;地址類信號(hào)比訪問用的總線周期提前半個(gè)時(shí)鐘周期廣播。2008年6月28日133南京大學(xué)計(jì)算機(jī)系總線周期流水型的ARM7TDMI總線接口能夠有最長的存儲(chǔ)周期ARM7TDMI的一個(gè)存儲(chǔ)周期高阻抗態(tài)總線變化2008年6月28日134南京大學(xué)計(jì)算機(jī)系A(chǔ)RM7TDMI的一個(gè)存儲(chǔ)周期高阻抗態(tài)總線變化2008年6月4種類型的總線周期ARM7TDMI的總線接口可以實(shí)現(xiàn)如下4種不同類型的總線周期:非順序周期請(qǐng)求向或從某一地址傳送。該地址與前一個(gè)周期使用的地址無關(guān)。順序周期請(qǐng)求向或從某一地址傳送。該地址與前一個(gè)周期使用的地址相比,或相同,或大1個(gè)字或半個(gè)字。內(nèi)部周期不需要傳送,因?yàn)樗趫?zhí)行內(nèi)部功能,不能同時(shí)執(zhí)行有用的預(yù)取。協(xié)處理器寄存器傳送周期使用數(shù)據(jù)總線與協(xié)處理器進(jìn)行通信,但不需要存儲(chǔ)系統(tǒng)作任何動(dòng)作。2008年6月28日135南京大學(xué)計(jì)算機(jī)系4種類型的總線周期ARM7TDMI的總線接口可以實(shí)現(xiàn)如下4種總線周期類型2008年6月28日136南京大學(xué)計(jì)算機(jī)系總線周期類型2008年6月28日51南京大學(xué)計(jì)算機(jī)系非順序周期非順序周期是最簡單的總線周期,在處理器請(qǐng)求向或從某一地址傳送時(shí)出現(xiàn)。這個(gè)地址與前一周期使用的地址無關(guān)。存儲(chǔ)控制器必須啟動(dòng)存儲(chǔ)器訪問來滿足這個(gè)請(qǐng)求。組成N周期的地址類和信號(hào)(nMREQ和SEQ)在總線上廣播。在下一個(gè)總線周期結(jié)束時(shí),數(shù)據(jù)在CPU和存儲(chǔ)器之間傳送。對(duì)于非順序訪問,存儲(chǔ)系統(tǒng)常需要較長的訪問時(shí)間(擴(kuò)展時(shí)鐘周期)。這為全地址譯碼提供了時(shí)間,或?qū)⑿泻土械刂锋i存進(jìn)DRAM。2008年6月28日137南京大學(xué)計(jì)算機(jī)系非順序周期非順序周期是最簡單的總線周期,在處理器請(qǐng)求向或從某非順序存儲(chǔ)周期信號(hào)波形圖00有效指明N周期,即非順序周期01有效指明S周期2008年6月28日138南京大學(xué)計(jì)算機(jī)系非順序存儲(chǔ)周期信號(hào)波形圖00有效指明N周期,即非順序周期01順序周期順序周期用于實(shí)現(xiàn)總線上的突發(fā)傳送。這一信息可用于優(yōu)化存儲(chǔ)控制器與突發(fā)存儲(chǔ)器件(如DRAM)接口的設(shè)計(jì)。在順序周期期間,ARM7TDMI請(qǐng)求存儲(chǔ)器定位,這可作為順序突發(fā)的一部分。突發(fā)傳送的第一個(gè)周期,地址可與前一個(gè)內(nèi)部周期相同。其它情況下地址是前一個(gè)周期的地址增加一個(gè)量,即:對(duì)于字訪問的突發(fā),地址增加4字節(jié);對(duì)于半字訪問的突發(fā),地址增加2字節(jié);不可能有字節(jié)訪問的突發(fā)。2008年6月28日139南京大學(xué)計(jì)算機(jī)系順序周期順序周期用于實(shí)現(xiàn)總線上的突發(fā)傳送。2008年6月28突發(fā)傳輸突發(fā)總是從N周期或合并的IS周期開始,接著是S周期。突發(fā)組成相同類型的傳送。在突發(fā)傳送期間,A[31:0]信號(hào)增加,其它地址類信號(hào)不受突發(fā)影響。突發(fā)中所有的訪問具有相同的數(shù)據(jù)寬度、方向和保護(hù)類型。存儲(chǔ)系統(tǒng)順序訪問與非順序訪問相比響應(yīng)更快,需要更短的訪問時(shí)間。2008年6月28日140南京大學(xué)計(jì)算機(jī)系突發(fā)傳輸突發(fā)總是從N周期或合并的IS周期開始,接著是S周期。突發(fā)類型2008年6月28日141南京大學(xué)計(jì)算機(jī)系突發(fā)類型2008年6月28日56南京大學(xué)計(jì)算機(jī)系順序訪問周期nMREQ,SEQ信號(hào)組合=01指明S周期2008年6月28日142南京大學(xué)計(jì)算機(jī)系順序訪問周期nMREQ,SEQ信號(hào)組合=012008年6月內(nèi)部周期在內(nèi)部周期期間,ARM7TDMI不要求存儲(chǔ)器訪問,因?yàn)檎趫?zhí)行內(nèi)部功能,不能同時(shí)執(zhí)行有用的預(yù)取。只要可能,ARM7TDMI就廣播下一次訪問的地址以便開始譯碼,但存儲(chǔ)控制器不允許進(jìn)行存儲(chǔ)器訪問。2008年6月28日143南京大學(xué)計(jì)算機(jī)系內(nèi)部周期在內(nèi)部周期期間,ARM7TDMI不要求存儲(chǔ)器訪問,因內(nèi)部周期示意圖nMREQ,SEQ信號(hào)組合=10指明I周期,即內(nèi)部周期nMREQ,SEQ信號(hào)組合=11指明C周期,即協(xié)處理周期2008年6月28日144南京大學(xué)計(jì)算機(jī)系內(nèi)部周期示意圖nMREQ,SEQ信號(hào)組合=10nMREQ,合并的IS周期ARM7TDMI盡可能實(shí)現(xiàn)總線優(yōu)化以得到額外的時(shí)間進(jìn)行存儲(chǔ)器譯碼。當(dāng)這種情況發(fā)生時(shí),下一個(gè)存儲(chǔ)周期的地址在內(nèi)部周期期間就在總線上廣播。這時(shí)允許存儲(chǔ)控制器來進(jìn)行地址譯碼,但在這個(gè)周期不允許啟動(dòng)存儲(chǔ)器訪問。在合并的IS周期,對(duì)于同一存儲(chǔ)位置,下一個(gè)周期是順序周期。這時(shí)進(jìn)行訪問,存儲(chǔ)控制器必須啟動(dòng)存儲(chǔ)器訪問。參看下面圖解2008年6月28日145南京大學(xué)計(jì)算機(jī)系合并的IS周期ARM7TDMI盡可能實(shí)現(xiàn)總線優(yōu)化以得到額外的合并的IS周期示意圖nMREQ,SEQ信號(hào)組合=10指明I周期,即內(nèi)部周期nMREQ,SEQ信號(hào)組合=01指明S周期,即順序周期2008年6月28日146南京大學(xué)計(jì)算機(jī)系合并的IS周期示意圖nMREQ,SEQ信號(hào)組合=10nMR協(xié)處理器寄存器傳送周期在協(xié)處理器寄存器傳送期間,ARM7TDMI使用數(shù)據(jù)總線向或從協(xié)處理器傳送數(shù)據(jù)。不需要存儲(chǔ)周期,存儲(chǔ)控制器不啟動(dòng)事務(wù)(transaction)。在協(xié)處理器寄存器傳送期間,存儲(chǔ)系統(tǒng)不允許驅(qū)動(dòng)數(shù)據(jù)總線。參看下圖2008年6月28日147南京大學(xué)計(jì)算機(jī)系協(xié)處理器寄存器傳送周期在協(xié)處理器寄存器傳送期間,ARM7TD協(xié)處理器傳送周期示意圖2008年6月28日148南京大學(xué)計(jì)算機(jī)系協(xié)處理器傳送周期示意圖2008年6月28日63南京大學(xué)計(jì)算機(jī)ARM存儲(chǔ)周期時(shí)序一覽2008年6月28日149南京大學(xué)計(jì)算機(jī)系A(chǔ)RM存儲(chǔ)周期時(shí)序一覽2008年6月28日64南京大學(xué)計(jì)算機(jī)對(duì)代碼的執(zhí)行進(jìn)行統(tǒng)計(jì)2008年6月28日150南京大學(xué)計(jì)算機(jī)系對(duì)代碼的執(zhí)行進(jìn)行統(tǒng)計(jì)2008年6月28日65南京大學(xué)計(jì)算機(jī)系A(chǔ)DS工具中對(duì)四種周期的統(tǒng)計(jì)2008年6月28日151南京大學(xué)計(jì)算機(jī)系A(chǔ)DS工具中對(duì)四種周期的統(tǒng)計(jì)2008年6月28日66南京大學(xué)地址時(shí)序ARM7TDMI的地址總線工作在兩種配置方式之一流水線方式APE信號(hào)接高電平非流水線方式APE信號(hào)接低電平注:ARM公司極力推薦在新的設(shè)計(jì)中使用流水的地址時(shí)序以獲得最佳系統(tǒng)性能。ARM公司極力推薦ALE接高,并且在新設(shè)計(jì)中不使用。2008年6月28日152南京大學(xué)計(jì)算機(jī)系地址時(shí)序ARM7TDMI的地址總線工作在兩種配置方式之一20流水線地址當(dāng)APE為高時(shí),ARM7TDMI的地址在存儲(chǔ)周期前MCLK的上升沿之后有效。2008年6月28日153南京大學(xué)計(jì)算機(jī)系流水線地址當(dāng)APE為高時(shí),ARM7TDMI的地址在存儲(chǔ)周期前非流水線地址在僅包含SRAM和ROM的系統(tǒng)中,APE可以置為低以產(chǎn)生所需的地址時(shí)序。因?yàn)镾RAM和ROM要求在整個(gè)存儲(chǔ)周期內(nèi)保持地址穩(wěn)定。在這種配置中,在MCLK下降沿之后地址有效。2008年6月28日154南京大學(xué)計(jì)算機(jī)系非流水線地址在僅包含SR

溫馨提示

  • 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)論