《中央處理器與指令系統(tǒng).ppt》由會員分享,可在線閱讀,更多相關(guān)《中央處理器與指令系統(tǒng).ppt(60頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、上午12時15分,1,課程號碼: EE202-014教學(xué)年級: 二年級授課教師: 趙忠華 上課教室: 東上院405,嵌入式系統(tǒng)原理與實驗,上午12時15分,2/60,第二章 CPU與指令系統(tǒng),2.1 CPU基本概念 2.2 指令的執(zhí)行過程 2.3 指令的流水執(zhí)行 2.4 指令系統(tǒng),上午12時15分,3/60,2.1 CPU基本概念,CPU的基本功能 指令控制 操作控制 數(shù)據(jù)運算 異常和中斷處理,CPU的擴展功能 存儲管理 數(shù)據(jù)緩存 總線管理 功耗管理,上午12時15分,4/60,CPU的基本構(gòu)成: 控制器,運算器,寄存器 cache、MMU 寄存器:用于(臨時)存放各種信息。 指令寄存器(IR
2、):存放當(dāng)前執(zhí)行的指令,為指令譯碼器提供指 令信息。 程序計數(shù)器(PC):存放指令的地址,從存儲器取指令時根據(jù)PC 值進行。 數(shù)據(jù)寄存器(DR):存放操作數(shù)和運算結(jié)果,以減少訪問存儲器 的次數(shù)。 地址寄存器(AR):存放操作數(shù)的地址。 狀態(tài)寄存器(SR):存儲運算中的狀態(tài),作為控制程序的條件。 數(shù)據(jù)通路:寄存器與ALU之間傳遞信息的線路。通常有2 種建立方法: 用數(shù)據(jù)總線(單總線,雙總線,多總線) 用專用通路(如MIPS),2.1 CPU基本概念,上午12時15分,5/60,數(shù)據(jù)總線結(jié)構(gòu),在各寄存器以及ALU之間建立一條或幾條公共的數(shù)據(jù)總線,寄存器間的數(shù)據(jù)傳輸通過這些總線完成。 一條總線
3、可以連接多個部件,總線連接方式可以減少線路的數(shù)量。 總線上可以有多個部件同時接收數(shù)據(jù),但任一時刻只能有一個部件向同一條總線發(fā)送數(shù)據(jù)。 常用的是單總線結(jié)構(gòu),即數(shù)據(jù)通路只用一條總線構(gòu)成,一次傳輸一個數(shù)據(jù)。,上午12時15分,6/60,周期概念,指令周期: 從一條指令的啟動到下一條指令的啟動的時間間隔。 機器周期: 指令周期中包含若干個基本操作步驟,如訪問存儲器和運算等。每個基本操作的時間稱為機器周期。 機器周期基本上是根據(jù)存儲器的速度及ALU執(zhí)行周期的基本時間確定的。 時鐘周期: 是計算機時鐘主頻的周期。 一個機器周期可以包含若干個時鐘周期。,上午12時15分,7/60,采用單總線結(jié)構(gòu): 如ADD
4、 R3, R1, R2 (1) PCMAR (2) PC+1PC,PC,,,,MAR,,一、運算指令的執(zhí)行過程,2.2 指令的執(zhí)行過程,上午12時15分,8/60,單總線結(jié)構(gòu): 如ADD R3, R1, R2 (1) PCMAR (2) PC+1PC (3) DBUSMDR (4) MDRIR,,MDR,,,,IR,,指令譯碼器,,,,,一、運算指令的執(zhí)行過程,2.2 指令的執(zhí)行過程,上午12時15分,9/60,單總線結(jié)構(gòu): 如ADD R3, R1, R2 (1) PCMAR (2) PC+1PC (3) DBUSMDR (4) MDRIR (5) R1Y,R1,,,,Y,,一、運算指令的執(zhí)行
5、過程,2.2 指令的執(zhí)行過程,上午12時15分,10/60,單總線結(jié)構(gòu): 如ADD R3, R1, R2 (1) PCMAR (2) PC+1PC (3) DBUSMDR (4) MDRIR (5) R1Y (6) R2 + YZ,R2,,,,,Z,,,一、運算指令的執(zhí)行過程,2.2 指令的執(zhí)行過程,,上午12時15分,11/60,單總線結(jié)構(gòu): 如ADD R3, R1, R2 (1) PCMAR (2) PC+1PC (3) DBUSMDR (4) MDRIR (5) R1Y (6) R2 + YZ (7) ZR3,,,,R3,狀態(tài)寄存器,一、運算指令的執(zhí)行過程,2.2 指令的執(zhí)行過程,上午1
6、2時15分,12/60,流水技術(shù)用于提高指令的執(zhí)行速度和數(shù)據(jù)運算速度。 流水工作方式: 將一個計算任務(wù)細(xì)分成若干個子任務(wù) 每個子任務(wù)由專門的部件處理 多個計算任務(wù)依次進行并行處理,流水周期,2.3 指令的流水執(zhí)行,上午12時15分,13/60,計算機流水線中的計算任務(wù)可以是一個算術(shù)邏輯運算操作,也可以是一條指令的執(zhí)行。 指令級流水線是把一條指令的執(zhí)行過程分成多個子過程,由各個部件進行輪流處理后完成執(zhí)行過程。 不必等到上一條指令的完成就可以開始下一條指令的執(zhí)行。 指令的流水線在高性能的微處理器中被普遍采用。,2.3 指令的流水執(zhí)行,上午12時15分,14/60,指令的流水線,指令流水線由一系列串
7、聯(lián)的流水段組成。 每個流水段完成指令執(zhí)行的一個操作步驟。 各個流水段之間設(shè)有緩沖寄存器(流水寄存器),以暫時保存上一個流水段對指令處理的結(jié)果。 流水線中的每個流水段構(gòu)成流水線的一級。 在專用通路結(jié)構(gòu)的CPU中,通常采用5個流水段 (5級流水) 取指(IF)--Instruction Fetch 譯碼(ID)--Instruction Decode 運算執(zhí)行(EX)--Execute 訪存(MEM)--Memory 寫回(WB)--Write Back,上午12時15分,15/60,吞吐率(throughput) 衡量指令流水線的一個重要指標(biāo)。 單位時間內(nèi)流水線能處理的任務(wù)數(shù)量 與流水的節(jié)拍時間
8、(流水周期)有關(guān)。 流水周期可定為各流水段處理時間的最大值,加上流水寄存器的延遲時間。 指令流水節(jié)拍:是指令從一個流水段進入下一個流水段的間隔時間,又稱為流水周期 加速比 流水方式的工作速度與等效的順序工作方式時間的比值,流水線的性能,上午12時15分,16/60,時空圖-根據(jù)流水段來畫,5級流水線在執(zhí)行8條指令時:,建立時間:從第一條指令進入流水線到離開流水線的時間。 排空時間:從最后一條指令進入流水線到離開流水線的時間。,無流水時:5個時間節(jié)拍處理1條指令。 有流水時:12個時間節(jié)拍處理了8條指令,上午12時15分,17/60,由時空圖可見: 對進入流水線的每條指令,其執(zhí)行時間都沒有縮短。
9、 指令流水通過指令之間的重疊來提高吞吐率。 在流水線中,當(dāng)任務(wù)飽滿時,任務(wù)源源不斷地輸入流水線,不論有多少個流水段,每隔一個流水周期都能輸出一個任務(wù)。 在宏觀上提高了處理速率。,流水線的作用,上午12時15分,18/60,便于分析指令之間的關(guān)系,,時空圖-根據(jù)指令序列來畫,上午12時15分,19/60,1. 資源相關(guān)(結(jié)構(gòu)相關(guān)): 流水執(zhí)行的多條指令同時使用同一個部件; 由于硬件資源不夠造成的,與硬件結(jié)構(gòu)有關(guān)。 2. 數(shù)據(jù)相關(guān):流水線中指令之間的數(shù)據(jù)依賴關(guān) 流水執(zhí)行的多條指令訪問相同的數(shù)據(jù),使得相關(guān)的指令不能并行地執(zhí)行; RAW(寫后讀)、WAR(讀后寫)、WAW(寫后寫)。 3. 控制相關(guān)
10、轉(zhuǎn)移指令引起的相關(guān) 在指令執(zhí)行完成之前,無法確定那一條指令是后繼指令,使得后繼指令不能進入流水線。,指令流水線的相關(guān)性,上午12時15分,20/60,,Addd: 雙精度加法指令 F2: 浮點數(shù)寄存器,指令流水線的資源相關(guān),上午12時15分,21/60,寫后讀(RAW),指令流水線的資源相關(guān),上午12時15分,22/60,停頓(硬件措施) 編譯檢測(軟件措施) 相關(guān)專用通路(硬件措施),消除數(shù)據(jù)相關(guān)影響的方法,上午12時15分,23/60,流水線的停頓:停頓N個節(jié)拍,解決數(shù)據(jù)相關(guān)性的方法,上午12時15分,24/60,編譯檢測:加入空操作(NOP),解決數(shù)據(jù)相關(guān)性的方法,上午12時15分,2
11、5/60,相關(guān)專用通道 在ALU的輸出端到它的輸入端之間設(shè)置一條數(shù)據(jù)線路,使得RAW相關(guān)時,上一條指令的結(jié)果能直接送到ALU的輸入端。 使得下一條指令能夠及時得到上一條指令的結(jié)果,而不用到寄存器中去讀取,從而避免了流水線的停頓。,解決數(shù)據(jù)相關(guān)性的方法,上午12時15分,26/60,流水線分為IF、ID、EX、MEM、WB五個等長的時間階段 轉(zhuǎn)移指令在第二個階段被識別 從而可確定如何取下一條指令 沒有相關(guān)專用通路 一個時鐘周期內(nèi)只能啟動執(zhí)行一條指令 一個時鐘周期內(nèi)只能寫回一條指令 讀操作數(shù)從指令譯碼時開始 讀到為止,典型指令流水線的特點,上午12時15分,27/60,指令格式和指令編碼 指令和數(shù)
12、據(jù)的尋址方式 指令系統(tǒng)分類,2.4 指令系統(tǒng),上午12時15分,28/60,指令格式 instruction format 操作碼,地址碼,條件碼,下一條指令的地址 一、操作碼 opcode 固定長度操作碼:便于譯碼,擴展性差 可變長度操作碼:能縮短指令平均長度 二、地址碼 addressing code 零地址指令,如NOP, CLR 一地址指令,如INC R1 二地址指令,如ADD R1, R2 三地址指令,如ADD R1, R2, R3,指令格式和指令編碼,上午12時15分,29/60,三、指令長度 固定長度:取指快、譯碼簡單。 單字長、雙字長、多字長 可變長度:可提高編碼效率 四、指
13、令助記符 助記符 mnemonics 如add R1 偽指令 directive 累加器 accumulator 存放操作數(shù)和操作結(jié)果的一個寄存器 通用寄存器 general purpose register 存放操作數(shù)和操作結(jié)果的一組寄存器,指令格式和指令編碼,上午12時15分,30/60,存儲器中既存儲指令,又存儲數(shù)據(jù)。 在存儲器中尋找指令或數(shù)據(jù)的方法有多種: 按地址尋找 按內(nèi)容尋找 按順序?qū)ふ?在絕大多數(shù)計算機中都采用按地址尋找的方式,指令或數(shù)據(jù)的尋找問題變成了構(gòu)成其地址的問題 在按地址尋找存儲內(nèi)容的計算機中,對指令的地址碼進行編碼,以形成操作數(shù),尋找操作數(shù)在寄存器或存儲器中地址的方式稱
14、為尋址方式。,指令和數(shù)據(jù)的尋址方式,上午12時15分,31/60,1. 數(shù)據(jù)類型 數(shù)值型 整型 字節(jié)、字、雙字 浮點數(shù) 單精度、雙精度 字符型 ASCII,數(shù)據(jù)類型在指令中的表達(dá) 操作碼表達(dá) 地址碼表達(dá) 數(shù)據(jù)編碼表達(dá),指令和數(shù)據(jù)的尋址方式,上午12時15分,32/60,2. 數(shù)據(jù)存儲字節(jié)順序(Endianness) 大數(shù)端(Big Endian) 最低字節(jié)存儲在高地址 小數(shù)端(Little Endian) 最低字節(jié)存儲在低地址 例:數(shù)據(jù)000F4240:,指令和數(shù)據(jù)的尋址方式,上午12時15分,33/60,3. 數(shù)據(jù)對齊方式(Alignment),,,數(shù)據(jù)類型及其存儲方式,指數(shù)據(jù)的邏輯存儲位置
15、與物理訪問位置的對齊方式,上午12時15分,34/60,指令的尋址方式 順序執(zhí)行 程序計數(shù)器(PC)尋址 非順序執(zhí)行 轉(zhuǎn)移指令 如: jump $1000 bgt R1,,指令2,PC,,指令3,指令1,指令和數(shù)據(jù)的尋址方式,上午12時15分,35/60,addressing modes,1. 隱含方式 如: “ADD ADR”中的累加器 2. 立即數(shù)方式 如: INT #3 3. 寄存器方式 如: INC R1,,,,,操作數(shù),R1,操作數(shù)尋址方式,上午12時15分,36/60,4. 直接尋址方式 如: INC 1000,,,操作數(shù),1000,操作數(shù)尋址方式,上午12時15分,37/60,
16、5. 間接尋址方式寄存器間接,如: INC (R1)存儲器間接,如: INC (1000),,,,,A,,操作數(shù),,,A,,,,操作數(shù),R1,1000,操作數(shù)尋址方式,上午12時15分,38/60,6. 相對尋址方式 如: INC 8(PC),,,,操作數(shù),8,操作數(shù)尋址方式,上午12時15分,39/60,7. 變址和基址尋址方式 如:INC 8(R1),變址尋址 indexed mode -便于數(shù)組訪問 基址尋址 based mode -可擴大尋址范圍,可實現(xiàn)程序浮動,,,,,I,,,,,,,操作數(shù),R1,8,操作數(shù)尋址方式,上午12時15分,40/60,8. 復(fù)合尋址方式如: INC
17、8(PC+R1) INC (R1)(1000),R1,8,操作數(shù)尋址方式,上午12時15分,41/60,各種常見尋址方式的匯編指令表示,上午12時15分,42/60,42/59,一、指令集設(shè)計原則 完備性:能夠覆蓋所需的各種功能 正交性:無功能完全相同的指令 可擴充性:保留一定余量的操作碼空間以供以后功能擴展。 有效性:利用該指令系統(tǒng)編寫的程序能高效地運行。 兼容性:機器指令的通用性。,指令系統(tǒng),上午12時15分,上午12時15分,43/60,常見指令類型,數(shù)據(jù)傳送:move, load, store 算術(shù)運算:add, sub, mult, div, comp 邏輯運算:and, or,
18、neg, shift,上午12時15分,44/60,移位運算shift,Data shift operations,上午12時15分,45/60,指令類型,數(shù)據(jù)傳送:move, load, store 算術(shù)運算:add, sub, mult, div, comp 邏輯運算:and, or, neg, shift 程序控制:jump, branch, jsr, ret, int 輸入輸出:in, out 堆棧操作:push, pop 字符串:如alpha中CMPBGE, INSWH等 多媒體指令:DSP 系統(tǒng)指令:用于改變計算機系統(tǒng)的工作狀態(tài)。,上午12時15分,46/60,程序流控制-轉(zhuǎn)移指令
19、,條件轉(zhuǎn)移 vs 無條件轉(zhuǎn)移 相對轉(zhuǎn)移 vs 絕對轉(zhuǎn)移 狀態(tài)寄存器SR,,N,Z,V,C,P,N:符號標(biāo)志位 Negative Z:全零標(biāo)志位 Zreo V:溢出標(biāo)志位 Overflow C:進位/借位標(biāo)志位 Carry P:奇偶標(biāo)志位 Parity,上午12時15分,47/60,功能 實現(xiàn)子程序調(diào)用 步驟 將下一條指令的地址(PC的值)存放在一個臨時存儲位置 將子程序的起始地址裝入PC中 子程序返回指令 將存放在臨時存儲位置的指令地址取出 放回PC,程序流控制-轉(zhuǎn)子指令,上午12時15分,48/60,CISC和RISC,復(fù)雜指令系統(tǒng)計算機(CISC) Complex Instruction
20、Set Computer 指令系統(tǒng)復(fù)雜:指令數(shù)目大于200條,尋址方式多,指令格式多。 指令串行執(zhí)行:執(zhí)行步驟多,需要多個時鐘周期。 各種指令都可訪問存儲器。 有較多專用寄存器。 編譯程序難以進行高效的代碼優(yōu)化。,上午12時15分,49/60,精簡指令系統(tǒng)計算機(RISC) Reduced Instruction Set Computer 簡化的指令系統(tǒng) 以寄存器-寄存器方式工作 采用流水技術(shù) 使用較多的通用寄存器以減少訪存 采用優(yōu)化編譯技術(shù),CISC和RISC,上午12時15分,50/60,CISC和RISC,上午12時15分,51/60,采用RISC設(shè)計思想的計算機產(chǎn)品,HP公司的Alph
21、a系列、PA-RISC系列 IBM和Motorola公司的PowerPC系列 SGI公司的MIPS系列 SUN公司的SPARC系列 嵌入式處理器:ARM系列,上午12時15分,52/60,尋址方式,上午12時15分,53/60,數(shù)據(jù)類型,上午12時15分,54/60,指令類型數(shù)據(jù)傳輸指令,上午12時15分,55/60,指令類型算術(shù)指令,上午12時15分,56/60,指令類型程序轉(zhuǎn)移指令,上午12時15分,57/60,指令類型,串操作指令 MOVS 移動字節(jié)、字、雙字串 LODS裝入字節(jié)、字、雙字串 支持高級語言指令 ENTER建立一個堆棧框架 LEAVE恢復(fù)ENTER指令的動作 BOUND檢查數(shù)組的值在上下界之間,上午12時15分,58/60,指令數(shù)量統(tǒng)計,上午12時15分,59/60,Intel Architecture Processors,上午12時15分,60/60,第二章 CPU與指令系統(tǒng),END,