第六章—補(bǔ)充內(nèi)容_第1頁
第六章—補(bǔ)充內(nèi)容_第2頁
第六章—補(bǔ)充內(nèi)容_第3頁
第六章—補(bǔ)充內(nèi)容_第4頁
第六章—補(bǔ)充內(nèi)容_第5頁
已閱讀5頁,還剩154頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第一講第一講 單周期數(shù)據(jù)通路的設(shè)計單周期數(shù)據(jù)通路的設(shè)計第二講第二講 單周期控制器的設(shè)計單周期控制器的設(shè)計第三講第三講 多周期處理器的設(shè)計多周期處理器的設(shè)計第四講第四講 微程序控制器設(shè)計與異常處理微程序控制器設(shè)計與異常處理Ch 6: CPU - Datapath and Control中央處理器:數(shù)據(jù)通路和控制器中央處理器:數(shù)據(jù)通路和控制器南京大學(xué)南京大學(xué)袁春風(fēng)袁春風(fēng)第一講第一講 單周期數(shù)據(jù)通路的設(shè)計單周期數(shù)據(jù)通路的設(shè)計CPU的功能及其與計算機(jī)性能的關(guān)系的功能及其與計算機(jī)性能的關(guān)系數(shù)據(jù)通路的位置數(shù)據(jù)通路的位置單周期數(shù)據(jù)通路的設(shè)計單周期數(shù)據(jù)通路的設(shè)計 數(shù)據(jù)通路的功能和實現(xiàn)數(shù)據(jù)通路的功能和實現(xiàn)-操作

2、元件(組合邏輯部件)操作元件(組合邏輯部件)-狀態(tài)狀態(tài) / 存儲元件(時序邏輯部件)存儲元件(時序邏輯部件) 數(shù)據(jù)通路的定時數(shù)據(jù)通路的定時選擇選擇MIPS指令集的一個子集作為指令集的一個子集作為CPU的實現(xiàn)目標(biāo)的實現(xiàn)目標(biāo) 下條指令地址計算與取指令部件下條指令地址計算與取指令部件 R型指令的數(shù)據(jù)通路型指令的數(shù)據(jù)通路 訪存指令的數(shù)據(jù)通路訪存指令的數(shù)據(jù)通路 立即數(shù)運(yùn)算指令的數(shù)據(jù)通路立即數(shù)運(yùn)算指令的數(shù)據(jù)通路 分支和跳轉(zhuǎn)指令的數(shù)據(jù)通路分支和跳轉(zhuǎn)指令的數(shù)據(jù)通路綜合所有指令的數(shù)據(jù)通路綜合所有指令的數(shù)據(jù)通路主主 要要 內(nèi)內(nèi) 容容CPU功能及其與計算機(jī)性能的關(guān)系功能及其與計算機(jī)性能的關(guān)系CPU執(zhí)行指令的過程(回

3、顧)執(zhí)行指令的過程(回顧)-取指令取指令-PC+“1”送送PC-指令譯碼指令譯碼-進(jìn)行主存地址運(yùn)算進(jìn)行主存地址運(yùn)算-取操作數(shù)取操作數(shù)-進(jìn)行算術(shù)進(jìn)行算術(shù) / 邏輯運(yùn)算邏輯運(yùn)算-存結(jié)果存結(jié)果-以上每步都需檢測以上每步都需檢測“異常異?!?若有異常,則自動切換到異常處理程序若有異常,則自動切換到異常處理程序-檢測是否有檢測是否有“中斷中斷”請求,有則轉(zhuǎn)中斷處理請求,有則轉(zhuǎn)中斷處理CPU的實現(xiàn)與計算機(jī)性能的關(guān)系的實現(xiàn)與計算機(jī)性能的關(guān)系 計算機(jī)性能計算機(jī)性能(程序執(zhí)行快慢程序執(zhí)行快慢)由三個關(guān)鍵因素決定(回顧)由三個關(guān)鍵因素決定(回顧)-指令數(shù)目、指令數(shù)目、CPI、時鐘周期、時鐘周期 指令數(shù)目由編譯器和

4、指令數(shù)目由編譯器和ISA決定決定 時鐘周期和時鐘周期和CPI由由CPU的實現(xiàn)的實現(xiàn)以及其他因素以及其他因素來決定來決定因此,因此,CPU的設(shè)計與實現(xiàn)非常重要!它直接影響計算機(jī)的性能。的設(shè)計與實現(xiàn)非常重要!它直接影響計算機(jī)的性能。指令執(zhí)行過程問題:問題:“取指令取指令”一定在最開始做嗎?一定在最開始做嗎?“PC+1”一定在譯碼之前做嗎?一定在譯碼之前做嗎?“譯碼譯碼”須在指令執(zhí)行前做嗎?須在指令執(zhí)行前做嗎?你能說出哪幾種你能說出哪幾種“異常異?!笔录??事件?“異常異常”和和“中斷中斷”的差別是什的差別是什么?么?異常是在異常是在CPU內(nèi)部發(fā)生的內(nèi)部發(fā)生的中斷是由外部事件引起的中斷是由外部事件引起

5、的取指階段譯碼和執(zhí)行階段組成指令功能的四種基本操作組成指令功能的四種基本操作每條指令的功能總是由以下四種基本操作來實現(xiàn):每條指令的功能總是由以下四種基本操作來實現(xiàn):讀取某一主存單元的內(nèi)容,并將其裝入某個寄存器讀取某一主存單元的內(nèi)容,并將其裝入某個寄存器(取指,(取指, 取數(shù))取數(shù))把一個數(shù)據(jù)從某個寄存器存入給定的主存單元中把一個數(shù)據(jù)從某個寄存器存入給定的主存單元中(存結(jié)果)(存結(jié)果)把一個數(shù)據(jù)從某個寄存器送到另一個寄存器或者把一個數(shù)據(jù)從某個寄存器送到另一個寄存器或者ALU(取數(shù),存結(jié)果)(取數(shù),存結(jié)果)進(jìn)行算術(shù)或邏輯運(yùn)算進(jìn)行算術(shù)或邏輯運(yùn)算(PC+1,計算地址,運(yùn)算),計算地址,運(yùn)算)操作功能可

6、形式化描述操作功能可形式化描述描述語言稱為寄存器傳送語言描述語言稱為寄存器傳送語言RTL (Register Transfer Language)本章所用的本章所用的RTL規(guī)定如下:規(guī)定如下:(1)用)用Rr表示寄存器表示寄存器r的內(nèi)容;的內(nèi)容;(2)用)用Maddr表示主存單元表示主存單元addr的內(nèi)容;的內(nèi)容;(3)傳送方向用)傳送方向用“”表示,傳送源在右,傳送目的在左;表示,傳送源在右,傳送目的在左;(4)程序計數(shù)器)程序計數(shù)器PC直接用直接用PC表示其內(nèi)容;表示其內(nèi)容;(5)用)用OPdata表示對數(shù)據(jù)表示對數(shù)據(jù)data進(jìn)行進(jìn)行OP操作。操作。CPU基本組成原理圖基本組成原理圖執(zhí)行部

7、件執(zhí)行部件控制部件控制部件CPU 由由 執(zhí)行部件執(zhí)行部件 和和 控制部件控制部件組成組成CPU 包含包含 數(shù)據(jù)通路數(shù)據(jù)通路(執(zhí)行部件執(zhí)行部件) 和和 控制器(控制部件)控制器(控制部件)控制器控制器 由由 指令譯碼器指令譯碼器 和和 控制信控制信號形成部件號形成部件 組成組成指令寄存器指令寄存器-IR程序計數(shù)器程序計數(shù)器-PC數(shù)據(jù)通路的位置數(shù)據(jù)通路的位置計算機(jī)的五大組成部分:計算機(jī)的五大組成部分:什么是數(shù)據(jù)通路(什么是數(shù)據(jù)通路(DataPath)? 指令執(zhí)行過程中,數(shù)據(jù)所經(jīng)過的路徑,包括路徑中的部件。它是指令執(zhí)行過程中,數(shù)據(jù)所經(jīng)過的路徑,包括路徑中的部件。它是指令指令的執(zhí)行部件的執(zhí)行部件??刂?/p>

8、器(控制器(Control)的功能是什么?)的功能是什么? 對指令進(jìn)行譯碼,生成指令對應(yīng)的控制信號,控制數(shù)據(jù)通路的動作。對指令進(jìn)行譯碼,生成指令對應(yīng)的控制信號,控制數(shù)據(jù)通路的動作。能對執(zhí)行部件發(fā)出控制信號,是能對執(zhí)行部件發(fā)出控制信號,是指令的控制部件指令的控制部件。ControlMemoryCPUInputOutputDatapathDatapath數(shù)據(jù)通路的基本結(jié)構(gòu)數(shù)據(jù)通路的基本結(jié)構(gòu)數(shù)據(jù)通路由兩類元件組成數(shù)據(jù)通路由兩類元件組成 組合邏輯元件(也稱操作元件)組合邏輯元件(也稱操作元件) 時序邏輯元件(也稱狀態(tài)元件,存儲元件)時序邏輯元件(也稱狀態(tài)元件,存儲元件)元件間的連接方式元件間的連接方式

9、 總線連接方式總線連接方式 分散連接方式分散連接方式數(shù)據(jù)通路如何構(gòu)成?數(shù)據(jù)通路如何構(gòu)成? 由由“操作元件操作元件”和和“存儲元件存儲元件”通過總線方式或分散方式連接而通過總線方式或分散方式連接而成成數(shù)據(jù)通路的功能是什么?數(shù)據(jù)通路的功能是什么? 進(jìn)行數(shù)據(jù)存儲、處理、傳送進(jìn)行數(shù)據(jù)存儲、處理、傳送因此,數(shù)據(jù)通路是由因此,數(shù)據(jù)通路是由操作元件操作元件和和存儲元件存儲元件通過總線方式或通過總線方式或分散方式連接而成的進(jìn)行數(shù)據(jù)存儲、處理、傳送的路徑。分散方式連接而成的進(jìn)行數(shù)據(jù)存儲、處理、傳送的路徑。 操作元件:組合邏輯電路操作元件:組合邏輯電路加法器加法器(Adder)多路選擇器多路選擇器 (MUX)算邏

10、部件算邏部件(ALU)32AB32Y32SelectMUX3232AB32ResultZeroOPALU3232AB32SumCarryAdderCarryIn3Decoderout0out1out7out2譯碼器譯碼器(Decoder)何時要用到何時要用到adder, ALU, MUX or Decoder?控制信號控制信號組合邏輯元件的特點(diǎn):組合邏輯元件的特點(diǎn):其輸出只取決于當(dāng)前的輸入。即:若其輸出只取決于當(dāng)前的輸入。即:若輸入一樣,則其輸出也一樣輸入一樣,則其輸出也一樣定時:所有輸入到達(dá)后,經(jīng)過一定的定時:所有輸入到達(dá)后,經(jīng)過一定的邏輯門延時,輸出端改變,并保持到邏輯門延時,輸出端改變,

11、并保持到下次改變,不需要時鐘信號來定時下次改變,不需要時鐘信號來定時加法器需要什加法器需要什么控制信號么控制信號?狀態(tài)元件:時序邏輯電路狀態(tài)元件:時序邏輯電路狀態(tài)(存儲)元件的特點(diǎn):狀態(tài)(存儲)元件的特點(diǎn): 具有存儲功能,在具有存儲功能,在時鐘控制下時鐘控制下輸入被寫到電路中,直到下個時鐘到達(dá)輸入被寫到電路中,直到下個時鐘到達(dá) 輸入端狀態(tài)由時鐘決定何時被寫入,輸出端狀態(tài)隨時可以讀出輸入端狀態(tài)由時鐘決定何時被寫入,輸出端狀態(tài)隨時可以讀出定時方式:規(guī)定信號何時寫入狀態(tài)元件或何時從狀態(tài)元件讀出定時方式:規(guī)定信號何時寫入狀態(tài)元件或何時從狀態(tài)元件讀出 邊沿觸發(fā)(邊沿觸發(fā)(edge-triggered)方

12、式:)方式:-狀態(tài)單元中的值只在時鐘邊沿改變。每個時鐘周期改變一次。狀態(tài)單元中的值只在時鐘邊沿改變。每個時鐘周期改變一次。上升沿(上升沿(rising edge) 觸發(fā):在時鐘正跳變時進(jìn)行讀觸發(fā):在時鐘正跳變時進(jìn)行讀/寫。寫。下降沿(下降沿(falling edge)觸發(fā):在時鐘負(fù)跳變時進(jìn)行讀)觸發(fā):在時鐘負(fù)跳變時進(jìn)行讀/寫。寫。最簡單的狀態(tài)單元(回顧:數(shù)字邏輯電路課程內(nèi)容):最簡單的狀態(tài)單元(回顧:數(shù)字邏輯電路課程內(nèi)容): D觸發(fā)器:一個時鐘輸入、一個狀態(tài)輸入、一個狀態(tài)輸出觸發(fā)器:一個時鐘輸入、一個狀態(tài)輸入、一個狀態(tài)輸出cycle timerising edgefalling edge存儲元

13、件中何時狀態(tài)被改變?存儲元件中何時狀態(tài)被改變?切記:狀態(tài)單元的輸入信息總是在一個時鐘邊沿到達(dá)后的切記:狀態(tài)單元的輸入信息總是在一個時鐘邊沿到達(dá)后的“Clk-to-Q”時才被寫入到單元中,此時的輸出才反映新的狀態(tài)值時才被寫入到單元中,此時的輸出才反映新的狀態(tài)值數(shù)據(jù)通路中的狀態(tài)元件有兩種:寄存器數(shù)據(jù)通路中的狀態(tài)元件有兩種:寄存器(組組) + 存儲器存儲器 ( Latch Prop - 鎖存延遲鎖存延遲 )Q總是在總是在clock-to-Q后跟著后跟著D變化變化這期間這期間D的變化不影響的變化不影響Q存儲元件存儲元件: 寄存器和寄存器組寄存器和寄存器組寄存器(寄存器(Register) 有一個寫使能

14、(有一個寫使能(Write Enable-WE)信號)信號 0: 時鐘邊沿到來時,輸出不變時鐘邊沿到來時,輸出不變 1: 時鐘邊沿到來時,輸出開始變?yōu)檩斎霑r鐘邊沿到來時,輸出開始變?yōu)檩斎?若每個時鐘邊沿都寫入,則不需若每個時鐘邊沿都寫入,則不需WE信號信號寄存器組(寄存器組(Register File) 兩個讀口(兩個讀口(組合邏輯操作組合邏輯操作):):busA和和busB分別由分別由RA和和RB給出地址。地址給出地址。地址RA或或RB有效后,經(jīng)一個有效后,經(jīng)一個“取數(shù)時間取數(shù)時間(AccessTime)”,busA和和busB有效。有效。 一個寫口(一個寫口(時序邏輯操作時序邏輯操作):)

15、:寫使能為寫使能為1的情況下,時鐘邊沿到來時,的情況下,時鐘邊沿到來時,busW傳來傳來的值開始被寫入的值開始被寫入RW指定的寄存器中。指定的寄存器中。ClkData InWrite EnableNNData OutClkbusWWrite Enable3232busA32busB555RW RA RB32 32-bitRegisters寄存器組的內(nèi)部結(jié)構(gòu)寄存器組的內(nèi)部結(jié)構(gòu)busWCD031MUXMXURegister 0Register 1Register 30Register 31Write EnableRW32-to-1DecoderRARBbusAbusB ClkCDCDCD每個寄存器

16、由每個寄存器由32個觸發(fā)器組成個觸發(fā)器組成;輸入數(shù)據(jù)來自輸入數(shù)據(jù)來自busW,讀出數(shù)據(jù)分別送,讀出數(shù)據(jù)分別送busA和和busB;WriteEnable信號控制是否寫入新值。信號控制是否寫入新值。Back to add理想存儲器(理想存儲器( idealized memory ) Data Out:32位讀出數(shù)據(jù)位讀出數(shù)據(jù) Data In: 32位寫入數(shù)據(jù)位寫入數(shù)據(jù) Address:讀寫公用一個讀寫公用一個32位地址位地址 讀操作(讀操作(組合邏輯操作組合邏輯操作):地址:地址Address有效后,經(jīng)一個有效后,經(jīng)一個“取數(shù)時間取數(shù)時間AccessTime”,Data Out上數(shù)據(jù)有效。上數(shù)據(jù)

17、有效。 寫操作(寫操作(時序邏輯操作時序邏輯操作) :寫使能為寫使能為1的情況下,時鐘的情況下,時鐘Clk邊沿到來時,邊沿到來時,Data In傳來的值開始被寫入傳來的值開始被寫入Address指定的指定的存儲單元中。存儲單元中。存儲元件存儲元件: 理想存儲器理想存儲器ClkData InWrite Enable3232DataOutAddress為簡化數(shù)據(jù)通路操作說明,把存儲器簡化為帶時鐘信號為簡化數(shù)據(jù)通路操作說明,把存儲器簡化為帶時鐘信號Clk的理想模型。的理想模型。數(shù)據(jù)通路與時序控制數(shù)據(jù)通路與時序控制同步系統(tǒng)同步系統(tǒng)(Synchronous system) 所有動作有專門時序信號來定時所

18、有動作有專門時序信號來定時 由時序信號規(guī)定何時發(fā)出什么動作由時序信號規(guī)定何時發(fā)出什么動作 例如,指令執(zhí)行過程每一步都有控制信號控制,由定時信號確例如,指令執(zhí)行過程每一步都有控制信號控制,由定時信號確定控制信號何時發(fā)出、作用時間多長定控制信號何時發(fā)出、作用時間多長什么是時序信號?什么是時序信號? 同步系統(tǒng)中用于進(jìn)行同步控制的定時信號,如時鐘信號同步系統(tǒng)中用于進(jìn)行同步控制的定時信號,如時鐘信號什么叫指令周期?什么叫指令周期? 取并執(zhí)行一條指令的時間取并執(zhí)行一條指令的時間 每條指令的指令周期肯定一樣嗎?每條指令的指令周期肯定一樣嗎?早期計算機(jī)的三級時序系統(tǒng)早期計算機(jī)的三級時序系統(tǒng) 機(jī)器周期機(jī)器周期

19、- 節(jié)拍節(jié)拍 - 脈沖脈沖 指令周期可分為取指令、讀操作數(shù)、執(zhí)行并寫結(jié)果等多個基本工指令周期可分為取指令、讀操作數(shù)、執(zhí)行并寫結(jié)果等多個基本工作周期,稱為機(jī)器周期。作周期,稱為機(jī)器周期。 機(jī)器周期有取指令、存儲器讀、存儲器寫、中斷響應(yīng)等不同類型機(jī)器周期有取指令、存儲器讀、存儲器寫、中斷響應(yīng)等不同類型數(shù)據(jù)通路與時序控制(早期計算機(jī)的三級時序)數(shù)據(jù)通路與時序控制(早期計算機(jī)的三級時序)現(xiàn)代計算機(jī)已不再采用三級時序系統(tǒng),機(jī)器周期的概念已逐漸消失?,F(xiàn)代計算機(jī)已不再采用三級時序系統(tǒng),機(jī)器周期的概念已逐漸消失。整個數(shù)據(jù)通路中的定時信號就是時鐘,一個時鐘周期就是一個節(jié)拍。整個數(shù)據(jù)通路中的定時信號就是時鐘,一個

20、時鐘周期就是一個節(jié)拍。數(shù)據(jù)通路與時序控制數(shù)據(jù)通路與時序控制假定采用下降沿觸發(fā)(負(fù)跳變)方式(也可以是上升沿方式)假定采用下降沿觸發(fā)(負(fù)跳變)方式(也可以是上升沿方式) 所有狀態(tài)單元在下降沿寫入信息,經(jīng)過所有狀態(tài)單元在下降沿寫入信息,經(jīng)過Latch Prop (clk-to-Q) 后輸出有效后輸出有效 Cycle Time = Latch Prop + Longest Delay Path + Setup + Clock Skew約束條件:約束條件:(Latch Prop + Shortest Delay Path - Clock Skew) Hold Time Clk寄存器的輸入可變化Setu

21、pHold.Setup Hold數(shù)據(jù)通路由數(shù)據(jù)通路由 “ + 狀態(tài)元件狀態(tài)元件 + 操作元件操作元件( 組合電路組合電路) + 狀態(tài)元件狀態(tài)元件 + ” 組組成成只有狀態(tài)元件能存儲信息,所有操作元件都須從狀態(tài)單元接收輸入,并將輸出寫只有狀態(tài)元件能存儲信息,所有操作元件都須從狀態(tài)單元接收輸入,并將輸出寫入狀態(tài)單元中。其輸入為前一時鐘生成的數(shù)據(jù),輸出為當(dāng)前時鐘所用的數(shù)據(jù)入狀態(tài)單元中。其輸入為前一時鐘生成的數(shù)據(jù),輸出為當(dāng)前時鐘所用的數(shù)據(jù)現(xiàn)代計算機(jī)的時鐘周期現(xiàn)代計算機(jī)的時鐘周期ClkClk早期累加器型指令系統(tǒng)數(shù)據(jù)通路早期累加器型指令系統(tǒng)數(shù)據(jù)通路最簡單的數(shù)據(jù)通路結(jié)構(gòu)最簡單的數(shù)據(jù)通路結(jié)構(gòu) 取指令數(shù)據(jù)路徑為

22、:取指令數(shù)據(jù)路徑為: PCMAR, Read M, MMBRIBRIR取操作數(shù)、運(yùn)算、送結(jié)果取操作數(shù)、運(yùn)算、送結(jié)果的數(shù)據(jù)路徑為:的數(shù)據(jù)路徑為: 操作數(shù)地址操作數(shù)地址MAR, Read M, MMBRALU輸入端輸入端, ACALU輸入端輸入端, ALU操作操作, ALU結(jié)果結(jié)果AC, AC MBR, Write MIAS計算機(jī)(馮計算機(jī)(馮.諾依曼等設(shè)計)是現(xiàn)代計算機(jī)的原型諾依曼等設(shè)計)是現(xiàn)代計算機(jī)的原型AC:累加器:累加器MQ:乘商寄存器:乘商寄存器PC、IR、ALU、IBR、MBR:?:?分散連接方式!分散連接方式!單總線數(shù)據(jù)通路單總線數(shù)據(jù)通路 四種基本操作的時序四種基本操作的時序 在寄存

23、器之間傳送數(shù)據(jù)在寄存器之間傳送數(shù)據(jù) R0out,Yin 完成算術(shù)、邏輯運(yùn)算完成算術(shù)、邏輯運(yùn)算R1out,YinR2out,Add,ZinZout,R3in 從主存取字從主存取字 R1out,MARinRead, WMFC (等待等待MFC)MDRout,R2in 寫字到主存寫字到主存R1out,MARinR2out,MDRin,Write, WMFCRR2MRR1 MRR1 RR2CPU訪存有兩種通信方式訪存有兩種通信方式早期:直接訪問早期:直接訪問MM, “異步異步”方式,用方式,用MFC應(yīng)答信號;現(xiàn)在:先應(yīng)答信號;現(xiàn)在:先Cache后后MM,“同步同步”方式,無需應(yīng)答信號。方式,無需應(yīng)答信

24、號。問題:時鐘周期的寬度如何確定?問題:時鐘周期的寬度如何確定? 以以“Riout,OP,Zin”所花時間來確定還所花時間來確定還是以是以 “Read/Write”所花時間來確定所花時間來確定? 以上四種操作各需要幾個時鐘周期以上四種操作各需要幾個時鐘周期?1Cycle?3Cycles?3Cycles?3Cycles?Read/Write時間更時間更長,故以此為準(zhǔn)!長,故以此為準(zhǔn)!OP: Add、Sub、And、Or 等等通通用用寄寄存存器器總線連接總線連接方式!方式!內(nèi)總線內(nèi)總線三總線數(shù)據(jù)通路三總線數(shù)據(jù)通路單總線中一個時鐘內(nèi)只允許傳一個數(shù)據(jù),單總線中一個時鐘內(nèi)只允許傳一個數(shù)據(jù),因而指令執(zhí)行效

25、率很低因而指令執(zhí)行效率很低可采用多總線方式,同時在多個總線上傳可采用多總線方式,同時在多個總線上傳送不同數(shù)據(jù),提高效率送不同數(shù)據(jù),提高效率例如:三總線數(shù)據(jù)通路例如:三總線數(shù)據(jù)通路 總線總線A、B分別傳送兩個源操作數(shù),總分別傳送兩個源操作數(shù),總線線C傳送結(jié)果傳送結(jié)果 單總線中的暫存器單總線中的暫存器Y和和Z在此可取消,在此可取消,Why? 采用雙口通用寄存器組采用雙口通用寄存器組 如何實現(xiàn):如何實現(xiàn): RR3 RR1 op RR2R1outA,R2outB,op,R3inC只要一個時鐘周期(節(jié)拍)即可!只要一個時鐘周期(節(jié)拍)即可!目前大都采用流水線方式執(zhí)行指令,單總線或三目前大都采用流水線方式

26、執(zhí)行指令,單總線或三總線的總線式數(shù)據(jù)通路很難實現(xiàn)指令流水執(zhí)行??偩€的總線式數(shù)據(jù)通路很難實現(xiàn)指令流水執(zhí)行。 ZY以下以MIPS指令系統(tǒng)為例介紹非總線式CPU的設(shè)計。三個總線各自傳不同數(shù)據(jù),三個總線各自傳不同數(shù)據(jù),不會發(fā)生沖突,故無需不會發(fā)生沖突,故無需Y和和Z通用寄存器組通用寄存器組復(fù)習(xí):復(fù)習(xí):MIPS的三種指令類型的三種指令類型ADD and SUBSTRACT add rd, rs, rt sub rd, rs, rtOR Immediate: ori rt, rs, imm16LOAD and STORE lw rt, rs, imm16 sw rt, rs, imm16BRANCH: b

27、eq rs, rt, imm16JUMP: j targetoptarget address026316 bits26 bitsoprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsoprsrtimmediate0162126316 bits16 bits5 bits5 bits這些指令具有代表性!這些指令具有代表性!有算術(shù)運(yùn)算、邏輯運(yùn)算;有有算術(shù)運(yùn)算、邏輯運(yùn)算;有RR型、型、RI型;有型;有訪存指令;有條件轉(zhuǎn)移、無條件轉(zhuǎn)移。訪存指令;有條件轉(zhuǎn)移、無條件轉(zhuǎn)移。本講目標(biāo):實現(xiàn)以上本講目標(biāo):實現(xiàn)以上7條指令對應(yīng)的數(shù)據(jù)通路!

28、條指令對應(yīng)的數(shù)據(jù)通路!教材中實現(xiàn)了教材中實現(xiàn)了11條指令,可將條指令,可將7條指令和條指令和11條指條指令的數(shù)據(jù)通路進(jìn)行對比,以深入理解設(shè)計原理。令的數(shù)據(jù)通路進(jìn)行對比,以深入理解設(shè)計原理。大家記得是哪三種類型?大家記得是哪三種類型?R-Type、I-Type、J-Type設(shè)計處理器的步驟設(shè)計處理器的步驟第一步:分析每條指令的功能,并用第一步:分析每條指令的功能,并用RTL(Register Transfer Language) 來表示。來表示。第二步:根據(jù)指令的功能給出所需的元件,并考慮如何將他們互連。第二步:根據(jù)指令的功能給出所需的元件,并考慮如何將他們互連。第三步:確定每個元件所需控制信號

29、的取值。第三步:確定每個元件所需控制信號的取值。第四步:匯總所有指令所涉及到的控制信號,生成一張反映指令與控制信第四步:匯總所有指令所涉及到的控制信號,生成一張反映指令與控制信 號之間關(guān)系的表。號之間關(guān)系的表。第五步:根據(jù)表得到每個控制信號的邏輯表達(dá)式,據(jù)此設(shè)計控制器電路。第五步:根據(jù)表得到每個控制信號的邏輯表達(dá)式,據(jù)此設(shè)計控制器電路。u 處理器設(shè)計涉及到處理器設(shè)計涉及到數(shù)據(jù)通路的設(shè)計數(shù)據(jù)通路的設(shè)計和和控制器的設(shè)計控制器的設(shè)計u 數(shù)據(jù)通路中有兩種元件數(shù)據(jù)通路中有兩種元件 操作元件操作元件:由組合邏輯電路實現(xiàn):由組合邏輯電路實現(xiàn) 存儲(狀態(tài))元件存儲(狀態(tài))元件:由時序邏輯電路實現(xiàn):由時序邏輯電

30、路實現(xiàn)ISA確定后,進(jìn)行處理器設(shè)計的大致步驟確定后,進(jìn)行處理器設(shè)計的大致步驟RTL: The ADD Instruction(加法指令)(加法指令)add rd, rs, rt MPC從從PC所指的內(nèi)存單元中取指令所指的內(nèi)存單元中取指令 Rrd Rrs + Rrt 從從rs、rt 所指的寄存器中取數(shù)后所指的寄存器中取數(shù)后 相加。若結(jié)果不溢出,則將結(jié)果送相加。若結(jié)果不溢出,則將結(jié)果送rd 所所 指的寄存器中;若結(jié)果溢出,則不送結(jié)指的寄存器中;若結(jié)果溢出,則不送結(jié) 果,并轉(zhuǎn)到果,并轉(zhuǎn)到“溢出處理程序溢出處理程序”執(zhí)行。執(zhí)行。 PC PC + 4 PC加加4,使,使PC指向下一條指令指向下一條指令o

31、prsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsRTL: The Load Instruction(裝入指令)(裝入指令)lwrt, rs, imm16 MPC (同加法指令同加法指令) Addr Rrs + SignExt(imm16) 計算數(shù)據(jù)地址計算數(shù)據(jù)地址 (立即數(shù)要進(jìn)行符號擴(kuò)展立即數(shù)要進(jìn)行符號擴(kuò)展) Rrt MAddr 從存儲器中取出數(shù)據(jù),裝入到寄存器中從存儲器中取出數(shù)據(jù),裝入到寄存器中 PC PC + 4 (同加法指令同加法指令)與與R-type加法指令相比,更復(fù)雜!加法指令相比,更復(fù)雜!oprsrti

32、mm160162126316 bits16 bits5 bits5 bits取指令部件取指令部件(Instruction Fetch Unit) 每條指令都有的公共操作:每條指令都有的公共操作: 取指令取指令: MPC 更新更新PC:PC PC + 4 轉(zhuǎn)移(轉(zhuǎn)移(Branch and Jump)時)時,PC內(nèi)容再次被更新為內(nèi)容再次被更新為 “轉(zhuǎn)移目標(biāo)地址轉(zhuǎn)移目標(biāo)地址”32Instruction WordAddressInstructionMemoryPCClkNext AddrLogic順序:先取指令,再改順序:先取指令,再改PC的值的值(具體實現(xiàn)時,可以并行)(具體實現(xiàn)時,可以并行) 絕不

33、能先改絕不能先改PC的值,再取指令的值,再取指令下地址邏輯下地址邏輯取指后,各指令功能不同,數(shù)取指后,各指令功能不同,數(shù)據(jù)通路中信息流動過程也不同據(jù)通路中信息流動過程也不同下面分別對每條指令進(jìn)行相應(yīng)下面分別對每條指令進(jìn)行相應(yīng)數(shù)據(jù)通路的設(shè)計數(shù)據(jù)通路的設(shè)計取指令部件取指令部件加法和減法指令加法和減法指令(R-type類型)類型)實現(xiàn)目標(biāo)(實現(xiàn)目標(biāo)(7條指令):條指令):ADD and subtract add rd, rs, rt sub rd, rs, rtOR Immediate: ori rt, rs, imm16LOAD and STORE lw rt, rs, imm16 sw rt,

34、rs, imm16BRANCH: beq rs, rt, imm16JUMP: j target首先考慮首先考慮add和和sub指令(指令(R-Type指令的代表)指令的代表)oprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsoprsrtimmediate0162126316 bits16 bits5 bits5 bitsoptarget address026316 bits26 bitsRR(R-type)型指令的數(shù)據(jù)通路)型指令的數(shù)據(jù)通路功能:功能:Rrd Rrs op Rrt,如:,如:add rd, rs,

35、 rt32ResultALUctrClkbusWRegWr3232busA32busB555Rw Ra Rb32 32-bitRegistersrsrtrdALU不考慮公共操作,僅不考慮公共操作,僅R-Type指令執(zhí)行階段的數(shù)據(jù)通路如下:指令執(zhí)行階段的數(shù)據(jù)通路如下:ALUctr,RegWr: 指令譯碼后產(chǎn)生的控制信號指令譯碼后產(chǎn)生的控制信號Ra, Rb, Rw 分別對應(yīng)指令的分別對應(yīng)指令的rs, rt, rd“add rd, rs, rt”控制信號為控制信號為?ALUctr=add,RegWr=1oprsrtrdshamtfunc0611162126316 bits6 bits5 bits5

36、bits5 bits5 bits溢出時,不寫結(jié)果并溢出時,不寫結(jié)果并需轉(zhuǎn)異常處理程序需轉(zhuǎn)異常處理程序溢出溢出寄存器組結(jié)構(gòu)寄存器組結(jié)構(gòu)帶立即數(shù)的邏輯指令(帶立即數(shù)的邏輯指令(ori指令)指令)實現(xiàn)目標(biāo)(實現(xiàn)目標(biāo)(7 7條指令)條指令): ADD and subtractadd rd, rs, rtsub rd, rs, rt OR Immediate:ori rt, rs, imm16 LOAD and STORElw rt, rs, imm16sw rt, rs, imm16 BRANCH:beq rs, rt, imm16 JUMP:j target2. 考慮考慮ori 指令(指令(I-Ty

37、pe指令和邏輯指令和邏輯運(yùn)算指令的代表)運(yùn)算指令的代表)oprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsoprsrtimmediate0162126316 bits16 bits5 bits5 bitsoptarget address026316 bits26 bitsRTL: The OR Immediate Instructionorirt, rs, imm16 MPC取指令(公共操作,取指部件完成)取指令(公共操作,取指部件完成) Rrt Rrs or ZeroExt(imm16) 立即數(shù)零擴(kuò)展,并與立即數(shù)

38、零擴(kuò)展,并與rs內(nèi)容做內(nèi)容做“或或”運(yùn)算運(yùn)算 PC PC + 4 計算下地址(公共操作,取指部件完成)計算下地址(公共操作,取指部件完成)imm16016153116 bits16 bits0000 0000 0000 0000零擴(kuò)展零擴(kuò)展 ZeroExt(imm16)思考:應(yīng)在前面數(shù)據(jù)通路上加哪些元件和連線?用何控制信號?思考:應(yīng)在前面數(shù)據(jù)通路上加哪些元件和連線?用何控制信號?邏輯運(yùn)算,立即數(shù)為邏輯數(shù)邏輯運(yùn)算,立即數(shù)為邏輯數(shù)oprsrtimm160162126316 bits16 bits5 bits5 bits帶立即數(shù)的邏輯指令的數(shù)據(jù)通路帶立即數(shù)的邏輯指令的數(shù)據(jù)通路Rrt Rrs op Z

39、eroExtimm16 Example: ori rt, rs, imm1632ResultALUctrClkbusWRegWr3232busA32busB555Rw Ra Rb32 32-bitRegistersRsDont Care(Rt)ALUR-Type類型的結(jié)果寫入類型的結(jié)果寫入RdR-Type的操作的操作數(shù)來自數(shù)來自busB應(yīng)加蘭色部分,為什么?應(yīng)加蘭色部分,為什么?Ori指令的控制信號:指令的控制信號:RegDst=?;?;RegWr=?;?;ALUctr=?;?;ALUSrc=?Ori指令的控制信號:指令的控制信號:RegDst=1;RegWr=1;ALUSrc=1;ALUct

40、r=orRtRdRegDstMux01ZeroExtMux1632imm16ALUSrc01oprsrtimm160162126316 bits16 bits5 bits5 bits訪存指令中的數(shù)據(jù)裝入指令訪存指令中的數(shù)據(jù)裝入指令 (lw)實現(xiàn)目標(biāo)(實現(xiàn)目標(biāo)(7 7條指令):條指令): ADD and subtractadd rd, rs, rtsub rd, rs, rt OR Immediate:ori rt, rs, imm16 LOAD and STORElw rt, rs, imm16sw rt, rs, imm16 BRANCH:beq rs, rt, imm16 JUMP:j t

41、arget3. 考慮考慮lw 指令(訪存指令的代表)指令(訪存指令的代表)oprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsoprsrtimmediate0162126316 bits16 bits5 bits5 bitsoptarget address026316 bits26 bitsRTL: The Load Instructionlwrt, rs, imm16 MPC 取指令(公共操作,取指部件完成)取指令(公共操作,取指部件完成) Addr Rrs + SignExt(imm16) 計算存儲單元地址計算存

42、儲單元地址 (符號擴(kuò)展!符號擴(kuò)展!) Rrt M Addr 裝入數(shù)據(jù)到寄存器裝入數(shù)據(jù)到寄存器rt中中 PC PC + 4 計算下地址(公共操作,取指部件完成)計算下地址(公共操作,取指部件完成)immediate016153116 bits16 bits0000 0000 00000 000000161531immediate16 bits16 bits 1111 1111 1111 11111符號擴(kuò)展符號擴(kuò)展( 為什么不是零擴(kuò)展為什么不是零擴(kuò)展? ) :思考:應(yīng)在原數(shù)據(jù)通路上加哪些元件和連線?用何控制信號?思考:應(yīng)在原數(shù)據(jù)通路上加哪些元件和連線?用何控制信號?立即數(shù)用補(bǔ)碼表示立即數(shù)用補(bǔ)碼表示

43、oprsrtimmediate0162126316 bits16 bits5 bits5 bits裝入裝入(lw)指令的數(shù)據(jù)通路指令的數(shù)據(jù)通路Rrt M Rrs + SignExtimm16 lw rt, rs, imm1632ALUctrClkbusWRegWr3232busA32busB555Rw Ra Rb32 32-bitRegistersRsRtDont Care(Rt)RdRegDstMuxMux3216imm16ALUSrcALU加蘭色部分。為什么?加蘭色部分。為什么?控制信號控制信號RegDst, RegWr, ALUctr, ExtOp, ALUSrc, MemWr, Mem

44、toReg 各取何值?各取何值?01 ExtExtOpMuxMemtoRegClkData InWrEn32 AdrDataMemory32MemWr01RegDst=1, RegWr=1, ALUctr=addu, ExtOp=1, ALUSrc=1, MemWr=0, MemtoReg=10:零擴(kuò)展,零擴(kuò)展,1:符號擴(kuò)展:符號擴(kuò)展01oprsrtimm160162126316 bits16 bits5 bits5 bits訪存指令中的存數(shù)指令訪存指令中的存數(shù)指令 (sw)實現(xiàn)目標(biāo)(實現(xiàn)目標(biāo)(7條指令):條指令): ADD and subtractadd rd, rs, rtsub rd,

45、rs, rt OR Immediate:ori rt, rs, imm16 LOAD and STORElw rt, rs, imm16sw rt, rs, imm16 BRANCH:beq rs, rt, imm16 JUMP:j target4. 考慮考慮sw 指令(訪存指令的代表)指令(訪存指令的代表)oprsrtimmediate0162126316 bits16 bits5 bits5 bitsoprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsoptarget address026316 bits26 b

46、itsRTL: The Store Instructionswrt, rs, imm16 MPC 取指令(公共操作,取指部件完成)取指令(公共操作,取指部件完成) Addr Rrs + SignExt(imm16) 計算存儲單元地址計算存儲單元地址(符號擴(kuò)展?。ǚ枖U(kuò)展?。?MemAddr Rrt 寄存器寄存器rt中的內(nèi)容存到內(nèi)存單元中中的內(nèi)容存到內(nèi)存單元中 PC PC + 4 計算下地址(公共操作,取指部件完成)計算下地址(公共操作,取指部件完成) oprsrtimm160162126316 bits16 bits5 bits5 bits思考:應(yīng)在原數(shù)據(jù)通路上加哪些元件和連線?用何控制信號

47、?思考:應(yīng)在原數(shù)據(jù)通路上加哪些元件和連線?用何控制信號?存數(shù)存數(shù)(sw)指令的數(shù)據(jù)通路指令的數(shù)據(jù)通路M Rrs + SignExtimm16 Rrt Example: sw rt, rs, imm1632ALUctrClkbusWRegWr3232busA32busB555Rw Ra Rb32 32-bitRegistersRsRtRtRdRegDst ExtMuxMux3216imm16ALUSrcExtOpMuxMemtoRegClkData InWrEn32 AdrDataMemory32MemWrALU0101加蘭色部分。為什么?加蘭色部分。為什么?控制信號控制信號RegDst, Re

48、gWr, ALUctr, ExtOp, ALUSrc, MemWr, MemtoReg 各取何值?各取何值?RegDst=x, RegWr=0, ALUctr=addu, ExtOp=1, ALUSrc=1, MemWr=1, MemtoReg=x01oprsrtimm160162126316 bits16 bits5 bits5 bits分支(條件轉(zhuǎn)移)指令(相等轉(zhuǎn)移:分支(條件轉(zhuǎn)移)指令(相等轉(zhuǎn)移:beq)實現(xiàn)目標(biāo)(實現(xiàn)目標(biāo)(7條指令):條指令): ADD and subtractadd rd, rs, rtsub rd, rs, rt OR Immediate:ori rt, rs, i

49、mm16 LOAD and STORElw rt, rs, imm16sw rt, rs, imm16 BRANCH:beq rs, rt, imm16 JUMP:j target5. 考慮考慮beq指令(條件轉(zhuǎn)移指令的代表)指令(條件轉(zhuǎn)移指令的代表)oprsrtimmediate0162126316 bits16 bits5 bits5 bitsoprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsoptarget address026316 bits26 bitsRTL: The Branch Instructio

50、nbeqrs, rt, imm16 MPC取指令(公共操作,取指部件完成)取指令(公共操作,取指部件完成) Cond Rrs - Rrt做減法比較做減法比較rs和和rt中的內(nèi)容中的內(nèi)容 if (COND eq 0)計算下地址(根據(jù)比較結(jié)果,修改計算下地址(根據(jù)比較結(jié)果,修改PC)-PC PC + 4 + ( SignExt(imm16) x 4 ) else-PC PC + 4思考:立即數(shù)的含義是什么?是相對指令數(shù)還是相對單元數(shù)?思考:立即數(shù)的含義是什么?是相對指令數(shù)還是相對單元數(shù)? 應(yīng)在原數(shù)據(jù)通路上加哪些元件和連線?用什么控制信號來控制?應(yīng)在原數(shù)據(jù)通路上加哪些元件和連線?用什么控制信號來控制

51、?立即數(shù)用補(bǔ)碼表示立即數(shù)用補(bǔ)碼表示oprsrtimm160162126316 bits16 bits5 bits5 bits條件轉(zhuǎn)移指令的數(shù)據(jù)通路條件轉(zhuǎn)移指令的數(shù)據(jù)通路beq rs, rt, imm16We need to compare Rs and Rt !ALUctrClkbusWRegWr3232busA32busB555Rw Ra Rb32 32-bitRegistersRsRtRtRdRegDstExtMuxMux3216imm16ALUSrcExtOpALUPCClkNext AddrLogic16imm16BranchTo InstructionMemoryZero思考:下址邏

52、輯如何設(shè)計?思考:下址邏輯如何設(shè)計?RegDst, RegWr, ALUctr, ExtOp, ALUSrc, MemWr, MemtoReg, Branch 各取何值?各取何值?RegDst=x, RegWr=0, ALUctr=subu, ExtOp=x, ALUSrc=0, MemWr=0, MemtoReg=x, Branch=10101oprsrtimm160162126316 bits16 bits5 bits5 bits下地址計算邏輯的設(shè)計下地址計算邏輯的設(shè)計PC是一個是一個32位地址位地址:順序執(zhí)行時順序執(zhí)行時: PC = PC + 4轉(zhuǎn)移執(zhí)行時轉(zhuǎn)移執(zhí)行時: PC = PC +

53、 4 + SignExtImm16 X 4MIPS按字節(jié)編址,每條指令為按字節(jié)編址,每條指令為32位,占位,占4個字節(jié),故個字節(jié),故PC的值總是的值總是4的倍數(shù),即后兩位為的倍數(shù),即后兩位為00,因此,因此,PC只需要只需要30位即可。位即可。下地址計算邏輯簡化為:下地址計算邏輯簡化為: 順序執(zhí)行時順序執(zhí)行時: PC = PC + 1轉(zhuǎn)移執(zhí)行時轉(zhuǎn)移執(zhí)行時: PC = PC + 1 + SignExtImm16取指令時取指令時: 指令地址指令地址 = PC 串接串接 “00”PC采用采用30位后,其轉(zhuǎn)移地址計算邏輯變得更加簡單。位后,其轉(zhuǎn)移地址計算邏輯變得更加簡單。采用采用32位位PC時,可用左

54、移時,可用左移2位實現(xiàn)位實現(xiàn)“X4”操作,計算轉(zhuǎn)移地址用操作,計算轉(zhuǎn)移地址用2個加法器個加法器! 可以用更簡便的方式實現(xiàn)如下:可以用更簡便的方式實現(xiàn)如下:下址邏輯設(shè)計下址邏輯設(shè)計Using a 30-bit PC: 順序執(zhí)行時順序執(zhí)行時: PC = PC + 1 轉(zhuǎn)移執(zhí)行時轉(zhuǎn)移執(zhí)行時: PC = PC + 1 + SignExtImm16 取指令時取指令時: 指令地址指令地址 = PC concat “00”3030SignExt3016imm16Mux01Adder“1”PCClkAdder3030Branch ZeroAddrInstructionMemoryAddr“00”32Instr

55、uctionInstruction30先根據(jù)當(dāng)前先根據(jù)當(dāng)前PC取指令,取指令, 計算的下條指令地址在下一個時鐘到來后才能寫入計算的下條指令地址在下一個時鐘到來后才能寫入PC! 標(biāo)志位標(biāo)志位ZF,由,由ALU產(chǎn)生!產(chǎn)生!為什么這里沒有用為什么這里沒有用“ALU”而是用而是用“Adder”? “ALU”和和“Adder”有什么差別?有什么差別?無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令實現(xiàn)目標(biāo)(實現(xiàn)目標(biāo)(7 7條指令):條指令): ADD and subtractadd rd, rs, rtsub rd, rs, rt OR Immediate:ori rt, rs, imm16 LOAD and STOREl

56、w rt, rs, imm16sw rt, rs, imm16 BRANCH:beq rs, rt, imm16 JUMP:j target6. 考慮考慮Jump指令(無條件轉(zhuǎn)移指令的代表)指令(無條件轉(zhuǎn)移指令的代表)oprsrtimmediate0162126316 bits16 bits5 bits5 bitsoprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsoptarget address026316 bits26 bitsRTL: The Jump Instructionjtarget MPC 取指令(公共

57、操作,取指部件完成)取指令(公共操作,取指部件完成) PC PC 串接串接 target 計算目標(biāo)地址計算目標(biāo)地址思考:應(yīng)在原數(shù)據(jù)通路上加哪些元件思考:應(yīng)在原數(shù)據(jù)通路上加哪些元件和連線?用什么控制信號來控制?和連線?用什么控制信號來控制?想一想:跳轉(zhuǎn)指令的轉(zhuǎn)移范圍有多大?想一想:跳轉(zhuǎn)指令的轉(zhuǎn)移范圍有多大?是當(dāng)前指令后面的是當(dāng)前指令后面的0 x000 00000 xFFF FFFC 處?處?不對!它不是相對尋址,而是絕對尋址不對!它不是相對尋址,而是絕對尋址FFFF FFFFF000 0000EFFF FFFFE000 0000AFFF FFFFA000 00000FFF FFFF0000 00

58、00j targetoptarget address026316 bits26 bitsInstruction Fetch Unit: 取指令部件取指令部件3030SignExt3016imm16Mux01Adder“1”PCClkAdder3030BranchZero“00”AddrInstructionMemoryAddr32jtarget PC PC concat targetInstructionInstructionimm16、Target、30264Mux10Target30JumpInstruc這是這是“取指部件取指部件”的完整設(shè)計的完整設(shè)計3 個輸入個輸入: jump, Bra

59、nch, Zero1個輸出個輸出: 指令字指令字PC的的改變在改變在下個下個Clk到到達(dá)后發(fā)達(dá)后發(fā)生!生!RegDst, RegWr, ALUctr, ExtOp, ALUSrc, MemWr, MemtoReg, Branch, Jump 各取何各取何值?值?RegDst=ExtOp=ALUSrc=MemtoReg=ALUctr=x, RegWr=0, MemWr=0, Branch=0, Jump=1The MIPS Subset(考察實現(xiàn)以下指令的數(shù)據(jù)通路考察實現(xiàn)以下指令的數(shù)據(jù)通路)ADD and subtract add rd, rs, rt sub rd, rs, rtOR Imme

60、diate: ori rt, rs, imm16LOAD and STORE lw rt, rs, imm16 sw rt, rs, imm16BRANCH: beq rs, rt, imm16JUMP: j target所有指令的數(shù)據(jù)通路都已設(shè)計好,合起來的數(shù)據(jù)通路是什么樣的?所有指令的數(shù)據(jù)通路都已設(shè)計好,合起來的數(shù)據(jù)通路是什么樣的?oprsrtimmediate0162126316 bits16 bits5 bits5 bitsoprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsoptarget address0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論