ARM處理器內(nèi)核介紹.ppt_第1頁
ARM處理器內(nèi)核介紹.ppt_第2頁
ARM處理器內(nèi)核介紹.ppt_第3頁
ARM處理器內(nèi)核介紹.ppt_第4頁
ARM處理器內(nèi)核介紹.ppt_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

ARM 處理器內(nèi)核,簡要定義,固化宏單元(硬核) ARM920T ARM7TDMI ARM720T ARM1022E,可綜合內(nèi)核(軟核) ARM926EJ-S ARM7TDMI-S ARM1026EJ-S,測試芯片 ARM10200E,議程,ARM7TDMI 處理器內(nèi)核系列 ARM9TDMI 處理器內(nèi)核系列 ARM10E處理器內(nèi)核系列 其他處理器,什么是 ARM7TDMI?,ARM7TDMI 是基于 ARM7 內(nèi)核 3 級流水線-0.9MIPS/MHz 馮.諾依曼架構(gòu) CPI(Cycle Per Instruction) 約為1.9 T - Thumb 架構(gòu)擴(kuò)展, 提供兩個(gè)獨(dú)立的指令集: ARM 指令,均為 32位 Thumb指令,均為 16位 兩種運(yùn)行狀態(tài),用來選擇哪個(gè)指令集被執(zhí)行 D - 內(nèi)核具有Debug擴(kuò)展結(jié)構(gòu) M - 增強(qiáng)乘法器 (32x8) 支持64位結(jié)果. I - EmbeddedICE-RT邏輯-提供片上斷點(diǎn)和調(diào)試點(diǎn)支持,ARM7TDMI 內(nèi)核信號,ARM內(nèi)核信號解釋,時(shí)鐘和時(shí)鐘控制信號: MCLK:主時(shí)鐘信號,可以被倍頻(如44B0,外頻8M,可倍頻為40M) ECLK: 向外部輸出的時(shí)鐘信號 nWAIT:總線等待請求信號 nRESET:內(nèi)核復(fù)位信號,ARM內(nèi)核信號解釋,地址類信號: A31:0:地址總線,單向傳輸 nRW: “1”寫周期,“”讀周期,突發(fā)傳送期間不能改變方向 MAS1:0:對傳送數(shù)據(jù)的寬度進(jìn)行編碼:,ARM內(nèi)核信號解釋,地址類信號: nOPC:用于判斷取操作碼還是操作數(shù) “”操作碼,“”操作數(shù) nTRANS:用于判斷訪問來自特權(quán)模式還是用戶模式 “”特權(quán)模式,“”用戶模式 LOCK:用于指示總線上正在進(jìn)行原子操作 TBIT:用于指明工作狀態(tài)是ARM還是T狀態(tài) “”T狀態(tài),“”ARM狀態(tài),ARM內(nèi)核信號解釋,存儲(chǔ)器請求信號: nMREQ:存儲(chǔ)器請求信號 SEQ:用于與nMREQ一起產(chǎn)生總線周期信號編碼,ARM內(nèi)核信號解釋,數(shù)據(jù)時(shí)序信號: D31:0:雙向數(shù)據(jù)總線 DIN31:0: 單向數(shù)據(jù)總線 DOUT31:0:單向數(shù)據(jù)總線 ABOUT:用于指明存儲(chǔ)器事務(wù)完成情況 BL3:0:用于內(nèi)核和不同字寬的存儲(chǔ)系統(tǒng)連接,ARM內(nèi)核信號解釋,其它信號: BUSEN:”1”-單向數(shù)據(jù)總線,”0”-雙向數(shù)據(jù)總線 nENIN: 允許外部系統(tǒng)操縱總線三態(tài) nENOUT:表明處理器正在驅(qū)動(dòng)雙向數(shù)據(jù)總線作為輸出 TBE:“”強(qiáng)制所有三態(tài)輸出為高阻,測試時(shí)使用,不用時(shí)接“” DBE:與ABE組合控制處理器總線變?yōu)楦咦钁B(tài) APE:和ALE:用于控制地址產(chǎn)生時(shí)序,以便SRAM,DRAM與處理器的連接APE”1” 用于DRAM, APE”0” SRAM,ARM7TDMI 方框圖,ARM7TDM 內(nèi)核,TAP 控制器,JTAG 接口,數(shù)據(jù)總線,控制信號,D31:0,地址總線,A31:0,DIN31:0,DOUT31:0,BUS Splitter,Embedded ICE 邏輯,乘法器,ARM7TDMI 內(nèi)核,指令 解碼,地址 自增器,nRESET,nMREQ,SEQ,ABORT,nIRQ,nFIQ,nRW,MAS1:0,LOCK,nCPI,CPA,CPB,nWAIT,MCLK,nOPC,BIGEND,ISYNC,nTRANS,nM4:0,D31:0,桶形 移位器,32 位 ALU,DBE,寫數(shù)據(jù) 寄存器,讀數(shù)據(jù) 寄存器,地址寄存器,寄存器,A31:0,ABE,及,控制 邏輯,PC Update,解碼站,指令 解碼,Incrementer,P C,A B u s,B B u s,A L U B u s,外部地址產(chǎn)生,PC31:2 ARM State PC31:1 Thumb State,ALU31:0,INC,自增器,A31:0,向量,0x1C,0x00,地址 寄存器,指令流水線,為增加處理器指令流的速度,ARM7 系列使用3級流水線. 允許多個(gè)操作同時(shí)處理,比逐條指令執(zhí)行要快。 PC指向正被取指的指令,而非正在執(zhí)行的指令,Fetch,Decode,Execute,從存儲(chǔ)器中讀取指令,解碼指令,寄存器讀(從寄存器Bank) 移位及ALU操作 寄存器寫(到寄存器Bank ),PC PC,PC - 4 PC-2,PC - 8 PC - 4,ARM Thumb,最佳流水線,該例中用6個(gè)時(shí)鐘周期執(zhí)行了6條指令 所有的操作都在寄存器中(單周期執(zhí)行) 指令周期數(shù) (CPI) = 1,操作,周期,1 2 3 4 5 6,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Decode,Execute,Fetch,Decode,Fetch,Fetch,LDR 流水線舉例,該例中,用6周期執(zhí)行了4條指令 指令周期數(shù) (CPI) = 1.5,周期,操作,1 2 3 4 5 6,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Data,Writeback,Fetch,Decode,Execute,Fetch,Decode,Fetch,分支流水線舉例,流水線被阻斷 注意:內(nèi)核運(yùn)行在ARM狀態(tài),周期,1 2 3 4 5,地址 操作,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Fetch,Fetch,Decode,Execute,Linkret,Adjust,Fetch,Decode,Fetch,中斷流水線舉例,周期,1 2 3 4 5 6 7 8,IRQ,IRQ 中斷的反應(yīng)時(shí)間最小=7周期,地址 操作,F,D,E,Linkret,Adjust,F,F,Decode IRQ,Linkret,Execute IRQ,Adjust,F,D,E,F,D,F,F,D,E,F,D,F,F,對齊,存儲(chǔ)器訪問必須始終適當(dāng)?shù)乇3值刂穼R 非對齊地址將產(chǎn)生不可預(yù)測的/未定義的結(jié)果 用Data Abort 異常來檢測無效的非對齊數(shù)據(jù)存取 擴(kuò)展邏輯要求,或使用MMU在 720T, 920T, 926E-S, 1020E 謹(jǐn)防指令讀取時(shí)出現(xiàn)非對齊 非對齊數(shù)據(jù)存取能夠完成, 但不是用 LDR 使用 LDRB, STRB 傳遞字節(jié),ARM 存儲(chǔ)器接口,順序周期 (S cycle) (nMREQ,SEQ存儲(chǔ)器請求信號) nMREQ = 0, SEQ = 1 ARM 內(nèi)核要求如下地址轉(zhuǎn)換:地址可以相同,也可以比前一地址大一字或半字 非順序周期(N cycle) (nMREQ,SEQ存儲(chǔ)器請求信號) nMREQ = 0, SEQ = 0 ARM 內(nèi)核要求如下地址轉(zhuǎn)換: 與前一周期的地址不相關(guān). 內(nèi)部周期(I cycle) (nMREQ,SEQ存儲(chǔ)器請求信號) nMREQ =1, SEQ = 0 ARM 內(nèi)核不要求地址轉(zhuǎn)換,因?yàn)樗谕瓿梢粋€(gè)內(nèi)部功能,不需要取指 協(xié)處理寄存器轉(zhuǎn)換周期(C cycle) (nMREQ,SEQ存儲(chǔ)器請求信號) nMREQ = 1, SEQ = 1 ARM 內(nèi)核希望用總線協(xié)處理器通信,但不要求存儲(chǔ)器系統(tǒng)的任何動(dòng)作,T標(biāo)志位的作用,16,16,32-bit data,16,A1,Mux,Thumb 指令 解碼,Mux,Mux,T標(biāo)志,ARM 指令 解碼,階段 1,階段 2,D31:0,0,1,1,0,Fetch,Decode,Execute,帶Cache的ARM7TDMI,ARM710T 8K 統(tǒng)一的 cache 完整的內(nèi)存管理單元(mmu),支持虛擬地址和存儲(chǔ)器保護(hù) 寫緩沖,ARM720T 同ARM710T,但支持 WinCE ARM740T 8K 統(tǒng)一的 cache 內(nèi)存管理單元 寫緩沖,ARM7TDMI 內(nèi)核,地址,地址,數(shù)據(jù)讀,AMBA 接口,寫 緩沖,MMU,數(shù)據(jù)寫,數(shù)據(jù),ARM7xxT,控制 邏輯,Cache,AMBA 總線 接口,JTAG 和非 AMBA 信號,CP15,ARM7TDMI-S,ARM7TDMI-S 是ARM7TDMI 的完全可綜合版本 指令集和周期與ARM7TDMI 固化版本兼容 完全可綜合的 RTL 使用了綱要設(shè)計(jì)構(gòu)件的組件 ALU 寄存器組 單時(shí)鐘設(shè)計(jì)(上升沿)單一總線接口,SecurCore SC100,第一個(gè)適合安全應(yīng)用的32位 RISC 處理器 可用于smart 卡和其他有安全性要求的嵌入式領(lǐng)域 基于ARM7內(nèi)核的專為安全解決方案設(shè)計(jì) 完全可綜合的,全靜態(tài)設(shè)計(jì) 提供安全的存儲(chǔ)器保護(hù)單元 Thumb指令支持,提高代碼密度和系統(tǒng)性能 特殊的、獨(dú)一無二的防偽造設(shè)計(jì) 小尺寸 (1mm2 典型的 0.25 工藝) 低功耗 ( 0.7mW/MHz at 2.5V),小測驗(yàn),1) 一條簡單的算術(shù)操作( 如: ADD )要占用幾個(gè)周期? 2) ARM7TDMI指令流水線有幾個(gè)階段? 3) ARM7TDMI 是否使用 ALU 計(jì)算地址? 4) ARM在存儲(chǔ)器里,可尋址幾種類型的數(shù)據(jù)? 5) 試舉一非順序周期的例子? 6) 數(shù)據(jù)總線的哪一半可被內(nèi)核用作Thumb 指令?,議程,ARM7TDMI 處理器內(nèi)核系列 ARM9TDMI 處理器內(nèi)核系列 ARM10E處理器內(nèi)核系列 其他處理器,ARM9TDMI,Harvard架構(gòu) 增加了可用的存儲(chǔ)器寬度 指令存儲(chǔ)器接口 數(shù)據(jù)存儲(chǔ)器接口 可以實(shí)現(xiàn)對指令和數(shù)據(jù)存儲(chǔ)器的同時(shí)訪問 5 級流水線 實(shí)現(xiàn)了以下改進(jìn): 改進(jìn) CPI 到 1.5 提高了最大時(shí)鐘頻率,ARM9TDMI流水線的變化,Instruction Fetch,Shift + ALU,Memory Access,Reg Write,Reg Read,Reg Decode,FETCH,DECODE,EXECUTE,MEMORY,WRITE,ARM9TDMI,ARM or Thumb Inst Decode,Reg Select,Reg Read,Shift,ALU,Reg Write,ThumbARM decompress,ARM decode,Instruction Fetch,FETCH,DECODE,EXECUTE,ARM7TDMI,ARM9TDMI數(shù)據(jù)通道 (1),寄存器 Bank,ALU,C,B,A,DINFWD,結(jié)果,DA,DD,數(shù)據(jù)遞增,向量,指令遞增,IA,字節(jié)旋轉(zhuǎn) /符號擴(kuò)展.,MU 邏輯,雙向 緩沖器,字節(jié)/半字 復(fù)制,MU邏輯單元包含有:多路復(fù)用器,乘法器和桶形移位器,數(shù)據(jù)總線,地址總線,字節(jié)/半字,指令地址總線,ARM9TDMI 數(shù)據(jù)通道 (2),寄存器 Bank,PSR,乘法器,移位器,ALU,B,A,Imm,DINFWD,BDATA,ADATA,鎖存,鎖存,MU 邏輯,(至 IA 生成邏輯),結(jié)果,周期,操作,ADD R1, R1, R2,SUB R3, R4, R1,ORR R8, R3, R4,AND R6, R3, R1,EOR R3, R1, R2,1,2,3,4,5,6,7,8,LDR R4, R7,9,F,D,E,F,D,E,W,F,D,E,W,F,D,E,W,F,D,W,E,F,D,E,W,F 取指(Fetch)D 解碼(Decode) E 執(zhí)行(Execute) I 互鎖(Interlock)M 存儲(chǔ)器(Memory )W 寫回( Writeback),I,LDR互鎖,本例中,用了7個(gè)時(shí)鐘周期執(zhí)行6條指令, CPI = 1.2 。 LDR指令之后立即跟一條數(shù)據(jù)操作指令,由于使用了相同的寄存器,將會(huì)導(dǎo)致互鎖 。,W,I,M,周期,操作,ADD R1, R1, R2,SUB R3, R4, R1,ORR R8, R3, R4,AND R6, R3, R1,EOR R3, R1, R2,LDR R4, R7,最佳流水線,本例中,用了6個(gè)時(shí)鐘周期執(zhí)行6條指令, CPI = 1。 LDR指令沒有引起流水線互鎖,LDM互鎖 (1),本例中,用了8個(gè)時(shí)鐘周期執(zhí)行5條指令, CPI = 1.6 在LDM期間,有并行的存儲(chǔ)器訪問和回寫周期,周期,操作,LDMIA R13!, R0-R3,SUB R9, R7, R8,ORR R8, R4, R3,AND R6, R3, R1,1,2,3,4,5,6,7,8,STR R4, R9,9,F 取指(Fetch)D 解碼(Decode) E 執(zhí)行(Execute)MW-存儲(chǔ)器和回寫同時(shí)執(zhí)行 I 互鎖(Interlock)M 存儲(chǔ)器(Memory )W 寫回( Writeback),F,D,E,W,F,D,E,W,D,E,F,D,E,W,F,M,D,W,E,I,I,I,I,I,I,M,F,LDM 互鎖 (2),本例中,用了9個(gè)時(shí)鐘周期執(zhí)行5條指令, CPI = 1.8 此處SUB 使用了 R3,增加了一個(gè)額外的互鎖周期來完成該寄存器數(shù)據(jù)的獲取 這種情況對任何LDM 指令,像帶IA, DB, FD,等,都會(huì)發(fā)生 。,ARM9TDMI系統(tǒng)舉例,注意: 數(shù)據(jù)接口必須能夠讀取指令存儲(chǔ)器中的數(shù)據(jù)。 為調(diào)試方便,建議數(shù)據(jù)接口能夠讀寫指令存儲(chǔ)器。,帶Cache的ARM9TDMI,ARM9TDMI,D Cache,I Cache,MMU,GLUE,外部 存儲(chǔ)器,ARM920T 2x 16K caches MMU 支持虛擬地址和內(nèi)存保護(hù) 寫緩沖,ARM940T 2x 4K caches MPU 寫緩沖,ARM9xxT,ARM9E-S 系列概述,ARM9E 基于 ARM9TDMI 內(nèi)核,有以下擴(kuò)展和增強(qiáng): 單周期 32x16 乘法器 EmbeddedICE 邏輯 RT 改進(jìn)的 ARM/Thumb 交互操作 新的32x16和 16x16 乘法指令 新的計(jì)數(shù)到零指令 新的飽和算術(shù)指令 ARM946E-S ARM9E-S 內(nèi)核 指令和數(shù)據(jù)cache, 大小可選擇 指令和數(shù)據(jù)RAM,大小可選擇 保護(hù)單元 AHB 總線接口 ARM966E-S 與 ARM946E-S相似, 但無 cache。,v5TE架構(gòu),ARM926EJ-S 概述,Jazelle狀態(tài)允許直接執(zhí)行Java 8位碼 ARM926EJ-S ARM9E-S 內(nèi)核 可配置的cacheTCM TCM(Terminal-to-ComputerMultiplexer終端設(shè)備至計(jì)算機(jī)多路轉(zhuǎn)接器) 內(nèi)存管理單元 雙重 32位 AHB 總線接口 (多層),小測驗(yàn),1) Harvard結(jié)構(gòu)帶來了哪些優(yōu)勢? 2) ARM9TDMI流水線有幾級? 3) 在流水線的哪一個(gè)階段讀寄存器? 4) 寄存器 bank由幾個(gè)讀或?qū)懚丝? 5) 什么條件下會(huì)出現(xiàn)互鎖?,議程,ARM7TDMI 處理器內(nèi)核系列 ARM9TDMI 處理器內(nèi)核系列 ARM10E處理器內(nèi)核系列 其他處理器,ARM10E 系列概述,ARM1020E v5TE架構(gòu) CPI 1.3 6 級流水線 靜態(tài)分支預(yù)測 32kB 指令cache和32kB數(shù)據(jù)cache 支持“Hit under miss” 非阻塞的執(zhí)行單元 每周期64 位的 LDM / STM操作 EmbeddedICE邏輯 - RT-II 支持新的 VFPv1 結(jié)構(gòu) ARM1022E 同上,除了cache大小為16kB 對SUDL(single user design license )有效,ARM10 與ARM9的流水線對比,指令 取指,移位+ ALU,寄存器 寫,寄存器 讀,寄存器 譯碼,FETCH,DECODE,EXECUTE,MEMORY,WRITE,ARM9TDMI,ARM 或 Thumb 指令解碼,ARM10,指令地址 生成,移位+ ALU,數(shù)據(jù) Cache 接口,寄存器 寫,FETCH,DECODE,EXECUTE,MEMORY,WRITE,寄存器 讀 + 結(jié)果 前向遷移 + 記分板,乘法,乘 加,協(xié)處理器 數(shù)據(jù)接口,分支 預(yù)測,指令 取指,ISSUE,寄存器 訪問,數(shù)據(jù)+ 分支地址 生成,ARM 或 Thumb 指令解碼,協(xié)處理器 指令發(fā)出,ARM10 整數(shù)單元數(shù)據(jù)通道,寄存器 Bank,PSR,乘法器,移位器,ALU,B,A,Imm,B,A,結(jié)果,CLZ,寫端口,PC,數(shù)據(jù)裝載,周期,Operation,LDR A B C,ADD A B,1,2,3,4,5,6,7,MUL A,F - Fetch I - Issue D - Decode E - Execute M Memory Wb - Writeback Wl - Write to register using load port,順序代碼的執(zhí)行 開始于64位的對齊地址,Address,0x07334,0x0732C,0x07330,SUB B C,0x07328,ADD A C,0x07324,ADD B

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論