




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第3講: TS101的存儲器和 程序控制器主講:秦國棟1Memory第3講內容提示3.1 存儲器特點3.2 存儲器映射3.3 存儲器訪問類型和規(guī)則3.4 定序器的功能和指令類型3.5 分支和中斷3.6 定序器指令2Memory3.1 TS101存儲器的特點3個存儲器塊M0M1M2Sequencer128bJ ALU128b128bK ALU128bComp block XI/O Processor Comp block Y128bLink PortsExternal Bus3MemoryTS101內部存儲器特點三個內部存儲器塊,每個64K x 32位三個內部128位數據總線,每個都與一個存儲器
2、模塊相連在一個周期中可以進行3個128-位的傳輸操作 2個數據傳輸和一個程序指令傳輸I/O處理器一次僅能使用一次內部總線注意: I/O處理器和核爭用指令總線存儲器可以交替地存儲指令和數據每個指令周期允許對每個存儲器塊訪問一次4Memory0 x000000000 x0000FFFF0 x000800000 x0008FFFF0 x001000000 x0010FFFF0 x001800000 x001807FFInternal Memory 0Internal Memory 1Internal Memory 2Internal Registers0 x003FFFFF0 x000000000
3、x003FFFFF0 x01C00000Internal MemoryBroadcast0 x02000000Processor ID 00 x02400000Processor ID 10 x02800000Processor ID 20 x02C00000Processor ID 30 x03000000Processor ID 40 x03400000Processor ID 50 x03800000Processor ID 60 x03C00000Processor ID 70 x040000000 x100000000 x0C0000000 x08000000SDRAMMemory
4、block 0Memory block 1HostINTERNAL SPACE3.2 TS101的存儲器映射全局地址5Memory主機存儲空間內部存儲器空間外部存儲器空間多處理器存儲器空間0 xFFFF FFFF 0 x1000 00000 x0FFF FFFF 0 x0400 00000 x03FF FFFF 0 x01C0 00000 x003F FFFF 0 x0000 0000對應主機處理器。 作為從機尋址被訪問的主機。主地址空間是3.75 G字適用于片外存儲器和存儲器映射I/O裝置SDRAM,其它存儲器裝置和 I/O 外設。對應多處理器系統(tǒng)中其它處理器的內部存儲器和廣播存儲器空間。處
5、理器ID標識出處理器群中的每個處理器。對應處理器的內部地址空間,Ureg和SIMD空間 。存儲器映射存儲器訪問32位地址空間的4G個字。6Memory0 x0FFF FFFF 0 x0C00 0000尋址外部存儲器塊1。MS1 外部存儲器塊MS0 外部存儲器塊SDRAM0 x07FF FFFF 0 x0400 00000 x0BFF FFFF 0 x0800 0000尋址外部存儲器塊0。尋址外部SDRAM 裝置。外部存儲器空間地址:MS1外部存儲器塊MS0 外部存儲器塊SDRAM 存儲器裝置7MemoryID111ID110ID101ID100ID011ID010ID001ID000Broad
6、cast Write0 x01C0 0000 to 0 x01FF FFFF0 x02C0 0000 to 0 x02FF FFFF0 x0280 0000 to 0 x02BF FFFF0 x0240 0000 to 0 x027F FFFF0 x0200 0000 to 0 x023F FFFF0 x0300 0000 to 0 x033F FFFF0 x0340 0000 to 0 x037F FFFF0 x0380 0000 to 0 x03BF FFFF0 x03C0 0000 to 0 x03FF FFFF多處理器存儲器空間地址:處理器ID000處理器ID001處理器ID010處理
7、器ID011處理器ID100處理器ID101處理器ID110處理器ID111廣播存儲器空間8Memory0 x0000 0000 to 0 x0000 FFFF0 x0018 0000 to 0 x0018 07FF0 x0010 0000 to 0 x0010 FFFF0 x0008 0000 to 0 x0008 FFFFUregsBlock 1Block 0Block 2內部存儲器空間地址:Uregs塊 2塊 1塊 09Memory0000 - 00 xx - xxxx- xxxx - xxxx - xxxx - xxxx - xxxx 18:0 Address31:26PRID 25:
8、22ISPACE 21:190000 - 00 xx - xxxx- xxxx - xxxx - xxxx - xxxx - xxxx 位4:0定義32個寄存器位 10:6定義64個寄存器組Ex. Address of register number 0 x14 in register group 39 存儲器映射 UREG組低11位定義UREG組和UREG10Memory3.3 存儲器訪問類型和規(guī)則有效的存儲器訪問方法:廣播寫 - (參看外部存儲器訪問)交叉?zhèn)鬏斣L問合并分配廣播分配注意: 在廣播寫中, 一個TigerSHARC寫到其它幾個TigerSHARCs 中。在合并分配中一條指令訪問兩
9、個計算塊。在廣播分配中一條指令給兩個計算塊加載相同的數據。11Memory合并分配(I)在合并分配中一條指令訪問兩個計算塊。合并分別從兩個計算塊的存儲器中加載數據。數據傳輸的大小決定數據是如何分解的。指令語法決定數據的分配正常的,按照 x y次序分配反序前綴(y x) 反序分配的次序12Memory長字訪問長字訪問 (翻轉)xyR1 = LJ0 += 2;yxR1 = LJ0 += 2;word2word1CBXCBYword2word1CBXCBY合并分配 (II)13Memory四字訪問四字訪問 (翻轉)xyR3:2 = qJ0 += 4;CBXCBYword3word2word0word
10、1word3word2word1word0yxR3:2 = qJ0 += 4;CBXCBYword3word2word0word1word3word2word1word0合并分配(III)14Memoryword2word3word1word0word2word3word1word0word2word3word1word0CBXCBY廣播分配在廣播分配中一條指令把相同的數據加載到兩個計算塊中。正常字,長字,四字訪問的操作例子:R11:8 = qJ0 += 4;15Memory廣播寫廣播寫與廣播分配不同。在相同的TigerSHARC中,廣播分配把相同的數據分配到兩個計算塊中廣播寫把相同的數據分配
11、到幾個TigerSHARC中。廣播寫通過一個TigerSHARC寫廣播存儲器空間來完成。例子: 當幾個TigerSHARC需要在相同的數據流中進行相同的算術運算時,廣播寫用于有效地把數據分配到所有的處理器中。16Memory062C84EAquad-word alignedlong-word alignednormal-word aligned32 bits32 bits32 bits32 bits數據大小和對齊數據在存儲器中以正常字-,長字-,或者四字-為邊界對齊正常字 = 32位 (e.g. xR1 )長字 = 64 位 (e.g. xR3:2 )四字 = 128位 (e.g. xR7:4
12、 )17Memory0 1 2 3 4 5 6.50 51 52 53 54 55 56 5750 values50 values50 values50 values數據對齊 - 應用舉例有時會遇到數據不對齊的情況一般的運算法則都需要知道運算的類型。一個內部循環(huán):把循環(huán)緩沖區(qū)中的50個連續(xù)的值加載到計算塊中。執(zhí)行一次MAC 存儲一個值外循環(huán)增加起始位置并重復 18MemoryJ L registersJ L 0J L 1J L 3J B 0J B 1J B 2J B 3J 0J 1J 2J 3J L 2J index registersJB registersDAB 訪問 (I)DAB 訪問指
13、令 用來訪問存儲器中未對齊的四字。限制計算塊中四字的加載。不支持合并的加載和存儲器存儲。DAB 總是在一個循環(huán)緩沖寄存器組中訪問在執(zhí)行 DAB指令之前,設置基址和長度寄存器。如果進行線性訪問,把對應的L寄存器長度設置為0。19MemoryDAB 訪問 (II)a0rXrXrXb0a3a2a1c0b3b2b1d0c3c2c1e0d3d2d1Instruction referencesthis location with J0 (0 x03)First memory access references this location 0 x 00 as “nearest” quad aligned b
14、oundarya0rXrXrXXXXXa0rXrXrXa1a2a3b0X X X X flushed by second memory accessMemory - 128-bit wideDAB after first accessDAB after second accessExample instruction: R3:0 = DAB Q J0 += 4;Assume J0 = 03Quad transfers out of DAB start at J0 - a0, a1, a2, a3, 0004080C10Residual data from previous access20Me
15、moryMemory - 128-bit wideFour 32-bit wordsEight 16-bit wordsa2a0XXXXXa1a3a4a5a6a7b0b1b2b3b4b5b6b70C08040007 06 05 04 03 02 01 00 16-bit reference03 02 01 00 32-bit referenceExample instruction: R3:0 = SDAB Q J0 += 8 ;Assume J0 = 05Solution:Lower 16-bit word will be 2x the 32 bit referenceUpper 16-bi
16、t word will be 2x 32-bit reference + 1Prefix “S” in SDAB signals this form of addressingDAB 訪問(III) 短字操作對于短字訪問問題是怎樣索引高或者低16位字位置?21Memory存儲器尋址的限制包含UREG內部存儲器空間寫處理時僅通過多處理器空間進行訪問,使用總線簇要注意!在處理器(不是MP空間)內部用作數據交換的內部存儲器空間不會映射到總線簇上。僅外部主總線可以訪問存儲器映射的通用寄存器。它們通過多處理存儲器空間進行訪問。所有的存儲器必須在正確的字長范圍內進行訪問。22Memory3.4 程序定序器
17、功能和指令類型. M0M1M2Sequencer128-entry BTB128bJ ALU128b128bK ALU128bProc El Y Proc El XI/OProcessor 定序器的地位23MemorySequence128-entry BTB128b定序器功能管理程序的結構和程序流 :提供下一條要執(zhí)行的指令的地址 維護一個指令對齊緩沖區(qū) (IAB)用于高速取等待執(zhí)行的指令。減少分支目標緩沖區(qū) (BTB)分支延遲,以保證條件和非條件指令的有效執(zhí)行。減少循環(huán)數。估計條件。處理中斷。24MemoryMemory address fetch muxBranchTargetBuffer
18、 InterruptUnit ProgramCounter 32 bit fetch addressInstruction Alignment Buffer128-bit bit data from memoryInstructions output to the ALU, MAC, Shifter, IALUMemoryInterruptsInc.定序器 簡化的方框圖.25Memory指令流的幾種類型線性流循環(huán)跳轉子程序中斷IDLE InstructionInstructionInstructionInstructionInstructionLoopN TimesInstructionIns
19、tructionInstructionRTIInstructionInstructionInstructionRETSInstructionInstructionInstructionCALLInstructionInstructionInstructionInstructionInstructionInstructionInstructionInstructionAddress:nn + 1n + 5n + 4n + 3n + 2Linear FlowJUMPInstructionInstructionInstructionInstructionInstructionJumpSubrouti
20、neInterruptIdleIDLEInstructionInstructionInstructionInstructionInstructionInterruptCJMPRTI/RETILC0 = N26Memory定序器指令 類型定序器指令有兩種類型條件分支指令Ex. IF XAEQ, JUMP Label_1(NP);IF YAEQ, CALL SBR_12;條件執(zhí)行指令Ex.IF XMEQ; DO, XR3:2 = R5:4 + R7:6;27MemoryFetch 1 Fetch2 Fetch 3 Decode Integer Operand Ac. Execute 1 Execu
21、te 23 step Fetch pipe5 step Instruction pipe8 step Processor pipe流水類型包含兩階段流水:取指流水(3級)指令流水(5級)每個內部時鐘周期執(zhí)行一個指令行。28Memory取指流水 指令對齊緩沖區(qū)(IAB)IAB 是存儲器和指令流水之間的5個四字FIFO緩沖區(qū) 。在進入譯碼階段之前3個周期取指令(指令流水的第一級)指令以四字方式取出,放到指令隊列緩沖區(qū)中。當IAB包含至少一個完整的指令行時,程序定序器可以把它從指令中抽出執(zhí)行。 程序定序器從IAB中抽出包含中的1, 2, 3, 或者4條指令的指令行,用于處理器譯碼和執(zhí)行。29Memo
22、ryx31001001100010100110001Program MemoryInstruction0128Instruction Flow32-位指令, MSB決定它是否是一行中的最后一條指令。指令是否同時執(zhí)行由每個指令中的MSB決定。指令在未對齊的存儲器中打包。不浪費存儲空間a1a2b1b2b3c1d1d2d3d4a1a2b1b2b3c1d1d2d3d4指令對齊緩沖區(qū)30MemoryMemoryInternal Bus2 對齊緩沖區(qū)(IAB)128-bit wide memory word3 FIFOAlignment MUXProc El XProc El YJ ALUK ALU取操作
23、就是抽取128-位,并且把4個連續(xù)的32-位字加載到對器緩沖區(qū)中。.32323232定序器 指令對齊緩沖區(qū) (IAB).31Memory指令流水 - 5 級隨著執(zhí)行指令單元的不同,指令流水各級的細節(jié)不同: 譯碼級(1)定序器抽取下一條完整的指令并把它分配到各個執(zhí)行單元(IALU, AUL, MULT, 移位器,定序器)定序器更新程序計數器。 IALU 譯碼指令。計算塊把指令傳送到合適的處理器單元中。整數級 (2)IALU執(zhí)行指令計算塊處理單元譯碼指令并且檢查相關性。操作數訪問(3)對于IALU指令存儲器開始訪問計算塊處理單元在寄存器組中選擇源寄存器。32Memory指令流水 續(xù)指令流水4級和5
24、級 執(zhí)行1 & 2 IALU等待直到EX2結束把返回的操作數結果送到目的寄存器中 (除了 J和K ALU算術操作是完全在2級完成)計算塊處理單元計算結果并更新標志。注意:在流水操作中,不同的IALU和處理單元之間操作會導致來自于不同分支的不同延遲時間。這點以后再討論。33MemoryInterruptSubroutineLC0 = NInstructionInstructionInstructionInstructionInstructionInstructionInstructionInstructionRTIInstructionInstructionInstructionRETSInst
25、ructionInstructionInstructionCALLInstructionInstructionJUMPInstructionInstructionInstructionInstructionInstructionCJMPRTI/RETILoopJumpInterrupt它們由下面的指令控制:IF cond, JUMP, CALL, CJMP, CJMP_CALL, RETI, RTI 和循環(huán)計數器指令。3.5 分支和中斷類型34Memory分支類型 調用CALL指令改變指令流,通常執(zhí)行一個子程序然后返回線性指令流。當分支存在時,下一個順序指令的地址存儲到CJMP寄存器中。子程序
26、的下一條指令是CJMP (ABS)指令這會使指令從CJMP寄存器所指的位置繼續(xù)執(zhí)行。注意: 如果利用CJMP_CALL指令返回,那么除了返回,定序器把下一條順序指令的地址寫到 CJMP寄存器中。35Memory分支類型 循環(huán)LOOP用來重復地執(zhí)行一組指令,直到遇到一個特殊的條件,然后繼續(xù)執(zhí)行循環(huán)以下的指令。利用條件指令和循環(huán)計數器執(zhí)行循環(huán)。 有兩個循環(huán)計數器:LC0和LC1和“計數器滿”相匹配的條件是LC0E和LC1E計數器滿-值減少到零循環(huán)計數器的條件通過IF語句試一次,其計數值減136Memory分支類型 循環(huán) 例子IF NLC0E, JUMP Label_1; /* 分支通過循環(huán)的條件是
27、否定的條件“循環(huán)計數器滿” */ J6 = J31 + 10;/*初始化循環(huán)計數器 */Outer_loop:instruction;instruction;LC1 = 5;/*初始化循環(huán)計數器 LC1 */Middle_loop:instruction;LC0 = 6;/*初始化循環(huán)計數器LC0 */Inner_loop:instruction;instruction;If NLC0E, JUMP Inner_loop; /* 當LCO 0時,進行內循環(huán)*/instruction;instruction;If NLC1E, JUMP Middle_loop; /*當 LC1 0時,進行中間循
28、環(huán)*/instruction; J6 = J6 - 1; /* JALU循環(huán)計數器減一*/instruction;If NJEQ, JUMP Outer_loop; /* 當JEQ 0時,進行外循環(huán)*/37Memory指令流水和分支相互作用(I)分支預測減少了分支延遲時間代價。 TigerSHARC 利用分支目標緩沖區(qū)預測分支的位置 (128-入口, 4-路聯合設置的高速緩存)BTB 存儲正確預測的分支指令的特定信息(僅限于內部存儲器分支)。最初的分支指令在進入到BTB中時會產生延遲。程序員可以控制預測的使能和禁止。默認為使能。選項: NP -預測不存在38Memory流水線和分支相互作用(I
29、I)BTB 每個對齊的四字僅存儲1個入口。入口由最后的指令槽決定 (;), 而不是由跳轉指令決定。例子(僅ASM程序):不總能保證足夠的時間間隔jump FIRST_JUMP; LC1 = yR16; NOP; NOP;jump SECOND_JUMP; R29 = R27;例子:利用ASM指令可以保證足夠的時間間隔jump FIRST_JUMP; LC1 = yR16;.align_code 4;jump SECOND_JUMP; R29 = R27;39Memory中斷概述中斷事件的發(fā)生使核停止它當前的過程和分支,轉而執(zhí)行其它的過程。 中斷事件可能在任何時候發(fā)生而且可以是:處理器內部中斷處
30、理器外部中斷中斷的用途是:同步核和非核操作錯誤檢測調試應用控制40Memory中斷- 中斷矢量表 (IVT) 每個中斷有在中斷矢量表(IVT)中有一個矢量寄存器。在中斷標志和屏蔽寄存器中有一個指定的位。(ILAT和 PMASK)矢量寄存器包含用戶可定義的服務于中斷的中斷例程的地址??偣?1個中斷大部分中斷是專用的。4個通用中斷,與 4個 IRQ引腳相連。當中斷發(fā)生并且允許用戶屏蔽任何中斷時,標志和屏蔽寄存器鎖定中斷。41Memory中斷類型兩組硬件中斷軟件中斷硬件中斷比較重要的性能 在許多情況下都要用到中斷。 軟件中斷由特定的指令,軟件異常引起。高優(yōu)先級42Memory邊沿和電平中斷中斷可以分
31、為邊沿觸發(fā)和電平觸發(fā)中斷邊沿觸發(fā):中斷發(fā)生時被鎖定保持鎖定直到有一條指令服務或者復位電平觸發(fā):如果在請求撤銷之前中斷沒有被服務,那么中斷將被忽略。如果在服務例程執(zhí)行之后保持中斷請求,將被看作一個新的中斷。 43Memory中斷組和中斷優(yōu)先從高到低中斷的優(yōu)先級是:仿真調試中斷邊沿軟件異常中斷邊沿硬件錯誤中斷電平時鐘0 & 1高優(yōu)先級中斷邊沿總線鎖定中斷邊沿VIRPT矢量中斷邊沿IRQ0-3 中斷可編程DMA 通道 0-13 中斷邊沿鏈路口 0-3中斷邊沿時鐘 0 & 1低優(yōu)先級中斷邊沿44Memory63 ILATH 32 31 ILATL 0中斷控制寄存器中斷矢量表 (IVT)包含中斷矢量寄存器中斷控制器使用3個64-位控制寄存器 ILAT, IMASK 和PMASK 處理中斷。ILAT中斷鎖存寄存器 IMASK中斷屏蔽寄存器PMASK中斷屏蔽指針寄存器64-位可以分成兩個32-位寄存器被訪問,標H為高,L為低 例如ILATH和ILATL45Memory中斷操作當中斷發(fā)生時:設置 ILAT中相應的位IVT中的中斷矢量地址是下一個要取的地址。 中斷例程中的第一條指令被送到指令流中。處理器設置為管理方式中斷請求有效,如果:非屏蔽請求(IMASK)中斷全局使能 (IMASK60=1, PMASK60=0)在此期間沒有更高級的中斷RTI. RETI,或者 RDS指令使處理器返回
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 股份制合同協議書格式
- 翻模材料銷售合同協議
- 股東合同協議范本
- 肯德基門購銷合同協議
- 美股期貨協議書范本
- 置換車輛協議書范本
- 股東車輛出資合同協議
- 聯合出品協議書范本
- 自制小電機轉讓合同協議
- 經營線路安全協議書范本
- 2020-2024年安徽省初中學業(yè)水平考試中考道德與法治試卷(5年真題+答案解析)
- 生物質燃氣利用的市場前景
- 中等職業(yè)學校信息技術課程標準(2020年版)(文本精排版)
- 小型貨物提升機的設計
- GA/T 2015-2023芬太尼類藥物專用智能柜通用技術規(guī)范
- 埃里克森的人格發(fā)展八階段
- 志愿服務證明(多模板)
- 職業(yè)生涯規(guī)劃家庭影響因素
- 潔凈環(huán)境監(jiān)測課件
- Python數據分析與應用-從數據獲取到可視化(第2版)課件 第3章 數據分析庫pandas基礎
- 疼痛科護理的現狀與發(fā)展趨勢
評論
0/150
提交評論