第8章 馮-諾依曼模型_第1頁
第8章 馮-諾依曼模型_第2頁
第8章 馮-諾依曼模型_第3頁
第8章 馮-諾依曼模型_第4頁
第8章 馮-諾依曼模型_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第八章第八章 馮馮諾依曼(諾依曼(Von NeumannVon Neumann)模)模 型型 存儲(chǔ)程序計(jì)算機(jī)模型存儲(chǔ)程序計(jì)算機(jī)模型 第七章,第七章,判定元件和存儲(chǔ)元件判定元件和存儲(chǔ)元件 基于約翰基于約翰馮馮諾依曼(諾依曼(John Von John Von NeumannNeumann)提出的存儲(chǔ)程序計(jì)算機(jī)模型)提出的存儲(chǔ)程序計(jì)算機(jī)模型 現(xiàn)代計(jì)算機(jī)的構(gòu)建思想現(xiàn)代計(jì)算機(jī)的構(gòu)建思想 1943: 1943: ENIACENIAC 十進(jìn)制,電子管十進(jìn)制,電子管 硬連線程序硬連線程序 設(shè)置開關(guān)設(shè)置開關(guān) 1944: EDVAC1944: EDVAC開始研制開始研制 Electronic Discrete

2、Variable Automatic Computer,Electronic Discrete Variable Automatic Computer,電電 子離散變量自動(dòng)計(jì)算機(jī)子離散變量自動(dòng)計(jì)算機(jī) 程序存儲(chǔ)于程序存儲(chǔ)于memorymemory之中之中 1945: John von Neumann1945: John von Neumann First Draft of a Report on EDVAC, First Draft of a Report on EDVAC, 關(guān)于關(guān)于EDVACEDVAC的報(bào)告的報(bào)告 草案草案 John von NeumannJohn von Neumann (

3、19031957),出生于匈牙出生于匈牙 利,利,20世紀(jì)最杰出的數(shù)世紀(jì)最杰出的數(shù) 學(xué)家之一學(xué)家之一 在計(jì)算機(jī)科學(xué)、經(jīng)濟(jì)、在計(jì)算機(jī)科學(xué)、經(jīng)濟(jì)、 物理學(xué)中的量子力學(xué)及物理學(xué)中的量子力學(xué)及 幾乎所有數(shù)學(xué)領(lǐng)域都作幾乎所有數(shù)學(xué)領(lǐng)域都作 過重大貢獻(xiàn)過重大貢獻(xiàn) 馮馮諾依曼模型諾依曼模型 由指令組成的程序和由指令組成的程序和 程序所需的數(shù)據(jù)位于程序所需的數(shù)據(jù)位于 存儲(chǔ)器存儲(chǔ)器中中 指令的執(zhí)行由指令的執(zhí)行由處理單處理單 元元完成完成 指令執(zhí)行的順序由指令執(zhí)行的順序由控控 制單元制單元來控制來控制 輸入設(shè)備輸入設(shè)備將程序和所將程序和所 需的數(shù)據(jù)送入計(jì)算機(jī)需的數(shù)據(jù)送入計(jì)算機(jī) 之中之中 輸出設(shè)備輸出設(shè)備將執(zhí)行結(jié)果將

4、執(zhí)行結(jié)果 送出計(jì)算機(jī)之外送出計(jì)算機(jī)之外 注意:處理單元和控注意:處理單元和控 制單元是制單元是CPU的主要的主要 組成部分組成部分 存儲(chǔ)器存儲(chǔ)器 處理單元處理單元 ALU Reg 輸出設(shè)備輸出設(shè)備 *顯示器顯示器 *打印機(jī)打印機(jī) *磁盤磁盤 輸入設(shè)備輸入設(shè)備 *鍵盤鍵盤 *鼠標(biāo)鼠標(biāo) *掃描儀掃描儀 *磁盤磁盤 控制單元控制單元 PC CPU 存儲(chǔ)器存儲(chǔ)器 能夠存儲(chǔ)信息的二維陣列能夠存儲(chǔ)信息的二維陣列 每一行每一行,存儲(chǔ)單元(存儲(chǔ)單元(Memory LocationMemory Location) 可使用一個(gè)唯一的標(biāo)識(shí)符進(jìn)行識(shí)別可使用一個(gè)唯一的標(biāo)識(shí)符進(jìn)行識(shí)別,地址地址 包含一定大小的內(nèi)容包含一定

5、大小的內(nèi)容 指令指令 數(shù)據(jù)數(shù)據(jù) 地址和內(nèi)容地址和內(nèi)容 x0000 0000 x0000 0001 x4000 0000 x4000 0001 x4000 0002 x4000 0003 xFFFF FFFF x4000 0003 x0000 0001 x1000 0000 x1100 0001 存儲(chǔ)器存儲(chǔ)器 2 232 32 8 8位,一共有位,一共有2 232 32個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單 個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單 元可以存儲(chǔ)元可以存儲(chǔ)8 8個(gè)比特個(gè)比特 有有2 232 32個(gè)不同存儲(chǔ)單元的地址空間和 個(gè)不同存儲(chǔ)單元的地址空間和8 8位的尋址位的尋址 能力,可稱為能力,可稱為4G4G字節(jié)(縮寫為

6、字節(jié)(縮寫為GBGB)的存儲(chǔ)器)的存儲(chǔ)器 要確定要確定2 232 32個(gè)地址,就必須使用 個(gè)地址,就必須使用3232位二進(jìn)制數(shù)表位二進(jìn)制數(shù)表 示示 處理單元處理單元 計(jì)算機(jī)里信息的處理是由處理單元執(zhí)行的計(jì)算機(jī)里信息的處理是由處理單元執(zhí)行的 現(xiàn)代計(jì)算機(jī)的處理單元可以包含許多復(fù)雜的功現(xiàn)代計(jì)算機(jī)的處理單元可以包含許多復(fù)雜的功 能單元,每個(gè)都能夠執(zhí)行一個(gè)特定的運(yùn)算(除能單元,每個(gè)都能夠執(zhí)行一個(gè)特定的運(yùn)算(除 法,平方根等)法,平方根等) 最簡單的單元最簡單的單元ALUALU(Arithmetic and Logic UnitArithmetic and Logic Unit, 算術(shù)和邏輯單元)算術(shù)和邏

7、輯單元) 寄存器堆寄存器堆/ /文件文件 RegReg ALUALU附近,附近,臨時(shí)存取臨時(shí)存取數(shù)據(jù)數(shù)據(jù) 例如,計(jì)算例如,計(jì)算(A+B)(A+B)C C,先在存儲(chǔ)器中存儲(chǔ),先在存儲(chǔ)器中存儲(chǔ)A+BA+B的的 結(jié)果,隨后結(jié)果,隨后讀取出來,再讀取出來,再和和C C相乘相乘 訪問存儲(chǔ)器的時(shí)間遠(yuǎn)長于執(zhí)行加法或乘法的時(shí)間訪問存儲(chǔ)器的時(shí)間遠(yuǎn)長于執(zhí)行加法或乘法的時(shí)間 使用使用臨時(shí)存儲(chǔ)空間存儲(chǔ)臨時(shí)存儲(chǔ)空間存儲(chǔ)A+BA+B的結(jié)果的結(jié)果 字字 ALUALU正常處理的信息量的大小通常被稱為計(jì)算正常處理的信息量的大小通常被稱為計(jì)算 機(jī)的機(jī)的字長字長(word length)(word length),每一個(gè)元素被稱為

8、,每一個(gè)元素被稱為 一個(gè)一個(gè)字字(wordword) 取決于計(jì)算機(jī)的不同用途,每一個(gè)指令集結(jié)構(gòu)取決于計(jì)算機(jī)的不同用途,每一個(gè)指令集結(jié)構(gòu) 都擁有自己的字長都擁有自己的字長 IntelIntel的的Pentium Pentium 處理器處理器,3232位位 SunSun的的SPARC-V9SPARC-V9和和IntelIntel的的ItaniumItanium處理處理,6464位位 寄存器堆寄存器堆/ /文件文件 典型的寄存器的大小是和典型的寄存器的大小是和ALUALU處理的值的大小處理的值的大小 一樣一樣 每個(gè)寄存器都包含一個(gè)字每個(gè)寄存器都包含一個(gè)字 控制單元控制單元 處理單元負(fù)責(zé)處理單元負(fù)責(zé)“

9、執(zhí)行信息的實(shí)際處理執(zhí)行信息的實(shí)際處理”,而控,而控 制單元?jiǎng)t是制單元?jiǎng)t是“指揮指揮信息的處理信息的處理” 其具體工作包括:其具體工作包括: 在執(zhí)行程序的過程中,在執(zhí)行程序的過程中,跟蹤跟蹤存儲(chǔ)器中的指令存儲(chǔ)器中的指令 在處理指令的過程中,在處理指令的過程中,跟蹤跟蹤指令的處理階段指令的處理階段 PCPC 跟蹤存儲(chǔ)器中的指令,確切地說是跟蹤要處理跟蹤存儲(chǔ)器中的指令,確切地說是跟蹤要處理 的下一條指令的下一條指令 為了跟蹤哪一條指令是下一步要運(yùn)行的,控制單為了跟蹤哪一條指令是下一步要運(yùn)行的,控制單 元有一個(gè)用來容納下一條指令所在地址的寄存元有一個(gè)用來容納下一條指令所在地址的寄存 器器“程序計(jì)數(shù)器程

10、序計(jì)數(shù)器”(Program CounterProgram Counter,簡,簡 稱稱PCPC)/ / “ “指令指針指令指針” 控制器控制器 控制單元可以是多個(gè)控制器,分別從屬于各個(gè)控制單元可以是多個(gè)控制器,分別從屬于各個(gè) 部件部件 ALUALU控制器用于控制控制器用于控制ALUALU執(zhí)行何種運(yùn)算執(zhí)行何種運(yùn)算 對(duì)于輸入和輸出則有專門的對(duì)于輸入和輸出則有專門的I/OI/O控制器控制器 輸入輸入/ /輸出設(shè)備輸出設(shè)備 要使計(jì)算機(jī)處理信息,信息必須被送入計(jì)算機(jī)要使計(jì)算機(jī)處理信息,信息必須被送入計(jì)算機(jī) 中中 為了能夠使用處理后的結(jié)果,它必須能以某種為了能夠使用處理后的結(jié)果,它必須能以某種 形式顯示在

11、計(jì)算機(jī)以外形式顯示在計(jì)算機(jī)以外 為輸入和輸出的目的而出現(xiàn)的設(shè)備在計(jì)算機(jī)術(shù)為輸入和輸出的目的而出現(xiàn)的設(shè)備在計(jì)算機(jī)術(shù) 語中被稱為語中被稱為外圍設(shè)備外圍設(shè)備(peripheralsperipherals) 輸入輸入/ /輸出設(shè)備輸出設(shè)備 外圍設(shè)備外圍設(shè)備(peripheralsperipherals) 鍵盤鍵盤輸入;監(jiān)視器(顯示器)輸入;監(jiān)視器(顯示器)輸出輸出 輸入:輸入:鼠標(biāo),數(shù)字掃描儀鼠標(biāo),數(shù)字掃描儀、磁盤磁盤 輸輸出:出:打印機(jī)打印機(jī),磁盤磁盤 DLXDLX數(shù)據(jù)通路數(shù)據(jù)通路 一個(gè)采用一個(gè)采用總線結(jié)構(gòu)總線結(jié)構(gòu)、多時(shí)鐘周期多時(shí)鐘周期的實(shí)現(xiàn)方案的實(shí)現(xiàn)方案 兩端都有箭頭的粗黑線結(jié)構(gòu)代表數(shù)據(jù)通路的兩端

12、都有箭頭的粗黑線結(jié)構(gòu)代表數(shù)據(jù)通路的總總 線線 可用于存儲(chǔ)器與處理器之間的通信,也可以用于可用于存儲(chǔ)器與處理器之間的通信,也可以用于 處理器與處理器與I/OI/O設(shè)備之間的通信設(shè)備之間的通信 主要優(yōu)點(diǎn)是功能多、成本低,主要缺點(diǎn)是會(huì)產(chǎn)生主要優(yōu)點(diǎn)是功能多、成本低,主要缺點(diǎn)是會(huì)產(chǎn)生 通信瓶頸通信瓶頸 GateMDR 32 GateALU 32 存儲(chǔ)器存儲(chǔ)器 輸入輸入輸輸 出出 GatePC 32 32 控制單元控制單元 處理單元處理單元 DLXDLX總線總線 DLXDLX的總線由的總線由3232根線和相關(guān)的電子元件組成根線和相關(guān)的電子元件組成 允許將允許將3232位位信息從一個(gè)組件傳輸?shù)搅硪粋€(gè)組件信息

13、從一個(gè)組件傳輸?shù)搅硪粋€(gè)組件 在總線上一次只可傳輸一個(gè)值在總線上一次只可傳輸一個(gè)值 每一個(gè)提供數(shù)據(jù)給總線的組件在它的輸入箭頭后每一個(gè)提供數(shù)據(jù)給總線的組件在它的輸入箭頭后 都有一個(gè)三角形(稱為都有一個(gè)三角形(稱為三態(tài)設(shè)備三態(tài)設(shè)備),使計(jì)算機(jī)的使計(jì)算機(jī)的 控制邏輯一次只允許一個(gè)提供者能提供信息給總控制邏輯一次只允許一個(gè)提供者能提供信息給總 線線 從總線獲得數(shù)據(jù)的組件通過將從總線獲得數(shù)據(jù)的組件通過將LD.xLD.x(加載使能)(加載使能) 信號(hào)設(shè)為信號(hào)設(shè)為1 1(回憶門控鎖存器),從而得到信息(回憶門控鎖存器),從而得到信息 存儲(chǔ)器:存儲(chǔ)器:MARMAR和和MDRMDR 如果要如果要讀讀出某個(gè)存儲(chǔ)單元

14、中的內(nèi)容,首先把它出某個(gè)存儲(chǔ)單元中的內(nèi)容,首先把它 的地址存入的地址存入地址寄存器地址寄存器(MARMAR),然后查詢存),然后查詢存 儲(chǔ)器,該地址所對(duì)應(yīng)的存儲(chǔ)單元的內(nèi)容將會(huì)輸儲(chǔ)器,該地址所對(duì)應(yīng)的存儲(chǔ)單元的內(nèi)容將會(huì)輸 出到出到數(shù)據(jù)寄存器數(shù)據(jù)寄存器(MDRMDR)。)。 如果要如果要寫寫一個(gè)值到存儲(chǔ)單元中,首先要把目的一個(gè)值到存儲(chǔ)單元中,首先要把目的 地址存入地址存入MARMAR,把值存入,把值存入MDRMDR中,然后設(shè)中,然后設(shè)“寫使寫使 能能”信號(hào)為信號(hào)為1 1,查詢存儲(chǔ)器,查詢存儲(chǔ)器,MDRMDR里的信息就會(huì)里的信息就會(huì) 被寫到被寫到MARMAR中的地址所對(duì)應(yīng)的存儲(chǔ)單元里。中的地址所對(duì)應(yīng)的

15、存儲(chǔ)單元里。 MARMAR和和MDRMDR MARMAR:3232位位,反映了,反映了DLXDLX的存儲(chǔ)器的地址空間是的存儲(chǔ)器的地址空間是 2 232 32個(gè)存儲(chǔ)單元 個(gè)存儲(chǔ)單元 MDRMDR:3232位位,而,而DLXDLX是字節(jié)可尋址的,即每個(gè)單是字節(jié)可尋址的,即每個(gè)單 元包含元包含8 8位,因此在大多數(shù)情況下,位,因此在大多數(shù)情況下,MDRMDR包含了包含了 從從MARMAR中的地址開始的中的地址開始的4 4個(gè)連續(xù)單元的數(shù)據(jù)個(gè)連續(xù)單元的數(shù)據(jù),有,有 時(shí),則包含的是時(shí),則包含的是MARMAR所指的單元中的數(shù)據(jù)(所指的單元中的數(shù)據(jù)(8 8位)位) 符號(hào)擴(kuò)展的結(jié)果(符號(hào)擴(kuò)展的結(jié)果(3232位)

16、位) 處理單元處理單元 ALUALU和寄存器堆和寄存器堆 ALUALU可以做加法、減法、乘法、除法、與、或、可以做加法、減法、乘法、除法、與、或、 異或、比較、移位等運(yùn)算異或、比較、移位等運(yùn)算 3232個(gè)整數(shù)寄存器、個(gè)整數(shù)寄存器、3232個(gè)浮點(diǎn)寄存器個(gè)浮點(diǎn)寄存器 DLXDLX子集子集 未包括整數(shù)乘法、除法及浮點(diǎn)數(shù)運(yùn)算等操作,也未包括整數(shù)乘法、除法及浮點(diǎn)數(shù)運(yùn)算等操作,也 未包括浮點(diǎn)寄存器未包括浮點(diǎn)寄存器 控制單元控制單元 最重要的組件是有限狀態(tài)機(jī),它指揮所有行為最重要的組件是有限狀態(tài)機(jī),它指揮所有行為 有限狀態(tài)機(jī)的一個(gè)輸入是有限狀態(tài)機(jī)的一個(gè)輸入是CLKCLK,它說明了每個(gè)時(shí)鐘周,它說明了每個(gè)時(shí)鐘

17、周 期持續(xù)的時(shí)間期持續(xù)的時(shí)間 為了跟蹤指令的處理階段,控制單元還需要一個(gè)指令為了跟蹤指令的處理階段,控制單元還需要一個(gè)指令 寄存器(寄存器(Instruction RegisterInstruction Register,簡稱,簡稱IRIR),用來保),用來保 存正在處理的指令。存正在處理的指令。IRIR也是有限狀態(tài)機(jī)的一個(gè)輸入,也是有限狀態(tài)機(jī)的一個(gè)輸入, 因?yàn)橐幚淼囊驗(yàn)橐幚淼腄LXDLX指令決定了計(jì)算機(jī)要執(zhí)行的行為。指令決定了計(jì)算機(jī)要執(zhí)行的行為。 程序計(jì)數(shù)器(程序計(jì)數(shù)器(PCPC) 記錄了在當(dāng)前的指令完成后,下一條要被執(zhí)行的指令記錄了在當(dāng)前的指令完成后,下一條要被執(zhí)行的指令 所在的地址所

18、在的地址 空心箭頭空心箭頭 實(shí)心實(shí)心箭頭表示沿著相應(yīng)的通路流動(dòng)的是箭頭表示沿著相應(yīng)的通路流動(dòng)的是數(shù)據(jù)元數(shù)據(jù)元 素素 空心空心箭頭表示控制數(shù)據(jù)元素處理的箭頭表示控制數(shù)據(jù)元素處理的控制信號(hào)控制信號(hào) 有限狀態(tài)機(jī)有限狀態(tài)機(jī)的所有輸出都是空心箭頭的所有輸出都是空心箭頭 控制了計(jì)算機(jī)的處理控制了計(jì)算機(jī)的處理 LD.IRLD.IR(1 1位),控制了當(dāng)前時(shí)鐘周期內(nèi),指令寄位),控制了當(dāng)前時(shí)鐘周期內(nèi),指令寄 存器(存器(IRIR)是否要從總線上加載新的指令)是否要從總線上加載新的指令 GateALUGateALU,決定,決定ALUOutALUOut的值在當(dāng)前時(shí)鐘周期內(nèi)是的值在當(dāng)前時(shí)鐘周期內(nèi)是 否被提供給總線否

19、被提供給總線 輸入輸入/ /輸出設(shè)備輸出設(shè)備 由鍵盤和顯示器組成由鍵盤和顯示器組成 最簡單的鍵盤需要兩個(gè)寄存器,一個(gè)數(shù)據(jù)寄存器最簡單的鍵盤需要兩個(gè)寄存器,一個(gè)數(shù)據(jù)寄存器 (KBDRKBDR),用來保存由鍵盤鍵入字符的),用來保存由鍵盤鍵入字符的ASCIIASCII碼,碼, 和一個(gè)狀態(tài)寄存器(和一個(gè)狀態(tài)寄存器(KBSRKBSR),用來提供鍵盤鍵入),用來提供鍵盤鍵入 字符的狀態(tài)信息字符的狀態(tài)信息 最簡單的顯示器同樣需要兩個(gè)寄存器,一個(gè)用來最簡單的顯示器同樣需要兩個(gè)寄存器,一個(gè)用來 保存那些將被顯示在顯示器上的內(nèi)容的保存那些將被顯示在顯示器上的內(nèi)容的ASCIIASCII碼碼 (DDRDDR),另一

20、個(gè)用來提供相關(guān)的狀態(tài)信息(),另一個(gè)用來提供相關(guān)的狀態(tài)信息(DSRDSR) 第第1212章章 指令處理指令處理 馮馮諾伊曼模型的主要思想諾伊曼模型的主要思想 把程序和數(shù)據(jù)都作為一個(gè)把程序和數(shù)據(jù)都作為一個(gè)二進(jìn)制序列二進(jìn)制序列存儲(chǔ)在計(jì)算存儲(chǔ)在計(jì)算 機(jī)的機(jī)的存儲(chǔ)器存儲(chǔ)器里,在控制單元的引導(dǎo)下一次執(zhí)行一里,在控制單元的引導(dǎo)下一次執(zhí)行一 條指令條指令 指令在控制單元的指揮下以一種系統(tǒng)的方式被指令在控制單元的指揮下以一種系統(tǒng)的方式被 逐步處理,根據(jù)指令處理所需進(jìn)行的操作,可逐步處理,根據(jù)指令處理所需進(jìn)行的操作,可 以以將一條指令的執(zhí)行分解為一系列步驟將一條指令的執(zhí)行分解為一系列步驟 指令處理指令處理 多時(shí)

21、鐘周期多時(shí)鐘周期的實(shí)現(xiàn)方案的實(shí)現(xiàn)方案 指令的每一步將占用一個(gè)時(shí)鐘周期,不同的指令指令的每一步將占用一個(gè)時(shí)鐘周期,不同的指令 可能被分解為不同的步驟,占用不同的時(shí)鐘周期,可能被分解為不同的步驟,占用不同的時(shí)鐘周期, “多周期多周期”因此得名因此得名 在現(xiàn)代計(jì)算機(jī)中,時(shí)鐘周期以在現(xiàn)代計(jì)算機(jī)中,時(shí)鐘周期以納秒納秒(或稱毫微(或稱毫微 秒,十億分之一秒)為單位秒,十億分之一秒)為單位 比如,一個(gè)比如,一個(gè)3.3GHz3.3GHz的處理器在的處理器在1 1秒內(nèi)有秒內(nèi)有3333億個(gè)時(shí)億個(gè)時(shí) 鐘周期,即一個(gè)時(shí)鐘周期只需鐘周期,即一個(gè)時(shí)鐘周期只需0.3030.303納秒納秒 DLXDLX指令執(zhí)行階段指令執(zhí)行階

22、段 按照按照DLXDLX指令執(zhí)行的步驟,將處理指令所需的指令執(zhí)行的步驟,將處理指令所需的 操作劃分為以下階段(每條操作劃分為以下階段(每條DLXDLX指令需要其中指令需要其中 的的3 3到到5 5個(gè)個(gè)階段):階段): 取指令(取指令(Instruction fetchInstruction fetch) 譯碼譯碼/ /取寄存器(取寄存器(Instruction decode/Register Instruction decode/Register fetchfetch) 執(zhí)行執(zhí)行/ /有效地址有效地址/ /完成分支完成分支(Execution/Effective (Execution/Effe

23、ctive address/Branch completion)address/Branch completion) 訪問內(nèi)存(訪問內(nèi)存(Memory accessMemory access) 寫回寫回(Write-backWrite-back) 指令指令 計(jì)算機(jī)處理的最基本單位計(jì)算機(jī)處理的最基本單位 計(jì)算機(jī)計(jì)算機(jī)程序程序包含了一組指令,每條指令都是由包含了一組指令,每條指令都是由 一個(gè)一個(gè)位序列位序列表示,并且整個(gè)程序被存儲(chǔ)在計(jì)算表示,并且整個(gè)程序被存儲(chǔ)在計(jì)算 機(jī)的存儲(chǔ)器中機(jī)的存儲(chǔ)器中 由兩個(gè)部分組成:操作碼(指令執(zhí)行的內(nèi)容)由兩個(gè)部分組成:操作碼(指令執(zhí)行的內(nèi)容) 和操作數(shù)(要操作的對(duì)象)

24、和操作數(shù)(要操作的對(duì)象) DLXDLX子集指令,由子集指令,由32 32 位(一個(gè)字)組成,從左位(一個(gè)字)組成,從左 向右依次編號(hào)為向右依次編號(hào)為bit31bit0bit31bit0 DLX ADDDLX ADD指令指令 需要三個(gè)操作數(shù):兩個(gè)源操作數(shù)(待加的數(shù)據(jù))需要三個(gè)操作數(shù):兩個(gè)源操作數(shù)(待加的數(shù)據(jù)) 和一個(gè)目標(biāo)操作數(shù)(在加法執(zhí)行后要存儲(chǔ)的和)和一個(gè)目標(biāo)操作數(shù)(在加法執(zhí)行后要存儲(chǔ)的和) 格式:格式: 兩個(gè)源操作數(shù)兩個(gè)源操作數(shù):包含在寄存器中的包含在寄存器中的值值 加法的結(jié)果加法的結(jié)果:放入放入32個(gè)寄存器的某一個(gè)個(gè)寄存器的某一個(gè) 32個(gè)寄存器個(gè)寄存器:需要需要5位位確定每一個(gè)確定每一個(gè)

25、教材訂正:教材訂正:R6錯(cuò)了錯(cuò)了 31 2625 21 20 16 15 1110 65 0 0 0 0 0 0 00 0 0 1 0 0 0 1 1 0 0 0 1 1 00 0 0 0 00 0 0 0 0 1 R-類型類型R2R6R6未用未用ADD bit31:26bit31:26:000000R000000R類型類型 bit5:0bit5:0:要執(zhí)行的函數(shù),要執(zhí)行的函數(shù),000001000001,是加法操,是加法操 作作 bit15:11bit15:11:存儲(chǔ)的結(jié)果所在的位置,存儲(chǔ)的結(jié)果所在的位置,R6R6 bit25:21bit25:21和和bit20:16bit20:16:存儲(chǔ)兩個(gè)

26、源操作數(shù)存儲(chǔ)兩個(gè)源操作數(shù) 的寄存器,的寄存器,R2R2和和R6R6 “將將R2R2(寄存器(寄存器2 2)和)和R6R6里的內(nèi)容相加,結(jié)果里的內(nèi)容相加,結(jié)果 存回存回R6R6里。里。” DLX LWDLX LW指令指令 L L代表代表加載加載(LoadLoad,讀存儲(chǔ)器中的值,讀存儲(chǔ)器中的值,寫到寄寫到寄 存器中存器中),),W W代表字代表字 “進(jìn)入指定的存儲(chǔ)單元,從該單元開始,讀取進(jìn)入指定的存儲(chǔ)單元,從該單元開始,讀取 連續(xù)連續(xù)4 4個(gè)存儲(chǔ)單元里面包含的值,結(jié)果存入一個(gè)存儲(chǔ)單元里面包含的值,結(jié)果存入一 個(gè)寄存器里個(gè)寄存器里” 需要兩個(gè)操作數(shù)需要兩個(gè)操作數(shù): 從存儲(chǔ)器讀出的值和目標(biāo)寄存器從存

27、儲(chǔ)器讀出的值和目標(biāo)寄存器 31 26 25 2120 1615 0 0 1 1 1 0 00 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 LWR3R26 bit31:26bit31:26:011100011100,是,是I I類型的類型的LWLW指令指令 bit20:16bit20:16:指令執(zhí)行結(jié)束后從存儲(chǔ)器里讀出的值將存指令執(zhí)行結(jié)束后從存儲(chǔ)器里讀出的值將存 入的寄存器入的寄存器 bit25:21bit25:21和和bit15:0bit15:0:用來計(jì)算出要讀取位置的地用來計(jì)算出要讀取位置的地 址址 將將bit15:0bit15:0里的

28、二進(jìn)制補(bǔ)碼整數(shù)符號(hào)擴(kuò)展為里的二進(jìn)制補(bǔ)碼整數(shù)符號(hào)擴(kuò)展為3232位,再與位,再與 bit25:21bit25:21表示的寄存器里的數(shù)值相加,結(jié)果即為地址表示的寄存器里的數(shù)值相加,結(jié)果即為地址 “基址基址+ +偏移量偏移量”尋址模式尋址模式 “將將R3R3里的內(nèi)容同數(shù)值里的內(nèi)容同數(shù)值6 6相加,構(gòu)成一個(gè)存儲(chǔ)單元的地相加,構(gòu)成一個(gè)存儲(chǔ)單元的地 址,從該單元開始,讀取連續(xù)址,從該單元開始,讀取連續(xù)4 4個(gè)存儲(chǔ)單元里面包含的個(gè)存儲(chǔ)單元里面包含的 值,并加載到值,并加載到R2R2里。里?!?尋址模式尋址模式:計(jì)算將要讀取的存儲(chǔ)單元的地址的機(jī)制計(jì)算將要讀取的存儲(chǔ)單元的地址的機(jī)制 DLX BEQZDLX BEQ

29、Z指令指令(第九章)(第九章) B B代表代表分支分支(BranchBranch),),EQEQ代表代表“相等相等”,Z Z代代 表表“零零” “判斷某個(gè)寄存器的值是否為零,如果等于零,判斷某個(gè)寄存器的值是否為零,如果等于零, PCPC就被某條指令的地址加載就被某條指令的地址加載” 需要兩個(gè)操作數(shù)需要兩個(gè)操作數(shù): 寄存器,某條指令的地址寄存器,某條指令的地址 31 2625 2120 1615 0 10100000011000000001001000110100 BEQZR3x1234 BEQZBEQZ bit31:26bit31:26:101000101000,是,是I I類型類型的的BEQ

30、ZBEQZ指令指令 bit25:21bit25:21:存儲(chǔ)源操作數(shù)的寄存器存儲(chǔ)源操作數(shù)的寄存器 bit15:0bit15:0:用來計(jì)算出用來計(jì)算出指令指令地址地址的值的值 將將bit15:0bit15:0里的二進(jìn)制補(bǔ)碼整數(shù)符號(hào)擴(kuò)展為里的二進(jìn)制補(bǔ)碼整數(shù)符號(hào)擴(kuò)展為3232 位,再與位,再與PCPC里的數(shù)值相加,結(jié)果即為地址里的數(shù)值相加,結(jié)果即為地址 PC+SEXT(IR15:0)PC+SEXT(IR15:0) “判斷判斷R3R3里的值里的值是否為是否為0 0?如果如果R3R3的值為的值為0 0,PCPC 就被就被計(jì)算計(jì)算得到的地址加載得到的地址加載;如果如果R3R3的值不為的值不為0 0, PCP

31、C保持不變保持不變” 1 1、取指令階段取指令階段 從存儲(chǔ)器中獲得下一從存儲(chǔ)器中獲得下一 條指令,放在控制單條指令,放在控制單 元的指令寄存器中元的指令寄存器中 為了執(zhí)行下一條指令為了執(zhí)行下一條指令 的任務(wù),必須先確定的任務(wù),必須先確定 它位于哪里它位于哪里 程序計(jì)數(shù)器(程序計(jì)數(shù)器(PCPC) 包含著下一條指令包含著下一條指令 的的起始起始地址(地址(DLXDLX指指 令由令由3232位組成,需位組成,需 要要4 4個(gè)連續(xù)的存儲(chǔ)單個(gè)連續(xù)的存儲(chǔ)單 元)元) GateMDR 32 GateALU 32 存儲(chǔ)器存儲(chǔ)器 輸入輸入輸輸 出出 GatePC 32 32 控制單元控制單元 處理單元處理單元

32、PC 取指令階段取指令階段 步驟步驟(1)(1) MARMARPCPC MDRMDRMemMARMemMAR IRIRMDRMDR 32 GateALU 輸入輸入輸輸 出出 GatePC 32 控制單元控制單元 處理單元處理單元 IR LD.IR PC GateMDR MDRMAR 32 32 LD.MDR 存儲(chǔ)器存儲(chǔ)器 LD.MAR 32 取指令階段取指令階段 步驟步驟(2)(2) MARMARPCPC ALUOutALUOutPC+4PC+4 MDRMDRMemMARMemMAR PCPCALUOutALUOut IRIRMDRMDR 32 GateALU 輸入輸入輸輸 出出 GatePC

33、 32 控制單元控制單元 處理單元處理單元 IR LD.IR PC LD.PC 32 ALU 32 ALUOut LD.ALU PC 4 GateMDR MDRMAR 32 32 LD.MDR 存儲(chǔ)器存儲(chǔ)器 LD.MAR 2 2、譯碼譯碼/ /取取 寄存器階段寄存器階段 (1)(1) 譯碼譯碼 識(shí)別指令識(shí)別指令 6-64 6-64 譯碼器譯碼器: IR31:26IR31:26 32 GateALU 輸入輸入輸輸 出出 GatePC 32 控制單元控制單元 處理單元處理單元 IR LD.IR PC LD.PC 32 ALU 32 ALUOut LD.ALU PC 4 GateMDR MDRMAR

34、 32 32 LD.MDR 存儲(chǔ)器存儲(chǔ)器 LD.MAR 控制器 31:26 PC 2 2、譯碼譯碼/ /取取 寄存器階段寄存器階段 (2)(2) 取寄存器取寄存器 為后面階段獲取為后面階段獲取 操作數(shù)操作數(shù) A A( (IR25:21),IR25:21), B B( (IR20:16), IR20:16), ALUOutALUOutPC+ PC+ SEXT(IR15:0)SEXT(IR15:0) 32 GateALU 輸入輸入輸輸 出出 GatePC 32 IR LD.IR PC LD.PC 32 ALU 32 ALUOut LD.ALU GateMDR MDRMAR 32 32 LD.MDR

35、 存儲(chǔ)器存儲(chǔ)器 LD.MAR 控制器控制器 31:26 PC SEXT 寄存器堆寄存器堆 BA LD.BLD.A 25:21 20:16 15:0 32 SR1 SR2 B.S BMUX SR1OUTSR2OUT PC 4 3232 譯碼譯碼 譯碼:譯碼:識(shí)別指令進(jìn)而確定下一步要去做什么識(shí)別指令進(jìn)而確定下一步要去做什么 6-646-64的譯碼器的譯碼器:IR31:26IR31:26 依據(jù)譯碼器的輸出為依據(jù)譯碼器的輸出為1 1的線,決定了余下的的線,決定了余下的2626位位 需要做哪些工作需要做哪些工作 取寄存器取寄存器示例示例 ADDADD指令指令 將從將從IR25:21IR25:21和和IR

36、20:16IR20:16所指示的所指示的R2R2和和R6R6中獲得源操作數(shù),傳給中獲得源操作數(shù),傳給ALUALU的的A A和和B B寄存寄存 器;器; 計(jì)算計(jì)算PCPC與與IR15:0IR15:0符號(hào)擴(kuò)展的和符號(hào)擴(kuò)展的和,結(jié)果存儲(chǔ)于結(jié)果存儲(chǔ)于ALUOutALUOut寄存器寄存器。 LWLW指令指令 將從將從IR25:21 IR25:21 和和IR20:16IR20:16所指示的所指示的R3R3和和R2R2中獲得源操作數(shù),傳給中獲得源操作數(shù),傳給ALUALU的的A A寄存器寄存器 和和B B寄存器;寄存器; 計(jì)算計(jì)算PCPC與與IR15:0IR15:0符號(hào)擴(kuò)展的和符號(hào)擴(kuò)展的和,結(jié)果存儲(chǔ)于結(jié)果存儲(chǔ)

37、于ALUOutALUOut寄存器。寄存器。 BEQZBEQZ指令指令 將從將從IR25:21 IR25:21 和和IR20:16IR20:16所指示的所指示的R3R3和和R0R0中獲得源操作數(shù),傳給中獲得源操作數(shù),傳給ALUALU的的A A寄存器寄存器 和和B B寄存器;寄存器; 計(jì)算計(jì)算PCPC與與IR15:0IR15:0符號(hào)擴(kuò)展的和符號(hào)擴(kuò)展的和,結(jié)果存儲(chǔ)于結(jié)果存儲(chǔ)于ALUOutALUOut寄存器。寄存器。 有的操作的結(jié)果在后面的階段并不會(huì)用到,但這并不浪費(fèi)時(shí)有的操作的結(jié)果在后面的階段并不會(huì)用到,但這并不浪費(fèi)時(shí) 間,因?yàn)檫@些操作是同時(shí)進(jìn)行的間,因?yàn)檫@些操作是同時(shí)進(jìn)行的 3 3、執(zhí)行執(zhí)行/ /

38、有效有效 地址地址/ /完成分支完成分支 根據(jù)譯碼產(chǎn)生根據(jù)譯碼產(chǎn)生的的控控 制信號(hào)制信號(hào)(空心箭頭)(空心箭頭) ALUOutALUOut A Op BA Op B 或或計(jì)算有效地址;計(jì)算有效地址; 或或完成分支完成分支 32 GateALU 輸入輸入輸輸 出出 GatePC 32 IR LD.IR PC LD.PC 32 ALU 32 ALUOut LD.ALU GateMDR MDRMAR 32 32 LD.MDR 存儲(chǔ)器存儲(chǔ)器 LD.MAR 控制器控制器 31:26 PC SEXT 寄存器堆寄存器堆 BA LD.BLD.A 25:21 20:16 15:0 32 SR1 SR2 B.S

39、BMUX SR1OUTSR2OUT PC 4 3232 ADDADD指令指令 ALUOutALUOut A + BA + B 32 GateALU 輸入輸入輸輸 出出 GatePC 32 IR LD.IR PC LD.PC 32 ALU 32 ALUOut LD.ALU GateMDR MDRMAR 32 32 LD.MDR 存儲(chǔ)器存儲(chǔ)器 LD.MAR 控制器控制器 31:26 PC SEXT 寄存器堆寄存器堆 BA LD.BLD.A 25:21 20:16 15:0 32 SR1 SR2 B.S BMUX SR1OUTSR2OUT 4 3232 AMUX A.S PC 2 5:0 ALU控制

40、器控制器 4 LWLW指令指令 ALUOutALUOut A A + + SEXT(IR15:0)SEXT(IR15:0) 32 GateALU 輸入輸入輸輸 出出 GatePC 32 IR LD.IR PC LD.PC 32 ALU 32 ALUOut LD.ALU GateMDR MDRMAR 32 32 LD.MDR 存儲(chǔ)器存儲(chǔ)器 LD.MAR 控制器控制器 31:26 PC SEXT 寄存器堆寄存器堆 BA LD.BLD.A 25:21 20:16 15:0 32 SR1 SR2 B.S BMUX SR1OUTSR2OUT 4 3232 AMUX A.S PC 2 5:0 4 ALU控

41、制器控制器 ALUOp 4 BEQZBEQZ指令指令 Z Z A = 0 A = 0 if(Z) if(Z) PC PC ALUOut ALUOut 32 GateALU 輸入輸入輸輸 出出 GatePC 32 IR LD.IR PC LD.PC 32 ALU 32 ALUOut LD.ALU GateMDR MDRMAR 32 32 LD.MDR 存儲(chǔ)器存儲(chǔ)器 LD.MAR 控制器控制器 31:26 PC SEXT 寄存器堆寄存器堆 BA LD.BLD.A 25:21 20:16 15:0 32 SR1 SR2 B.S BMUX SR1OUTSR2OUT 4 3232 AMUX A.S PC

42、 2 Z Z 5:0 4 ALU控制器控制器 ALUOp 4 執(zhí)行執(zhí)行/ /有效地址有效地址/ /完成分支完成分支 根據(jù)譯碼產(chǎn)生的控制信號(hào),對(duì)上一階段得到的根據(jù)譯碼產(chǎn)生的控制信號(hào),對(duì)上一階段得到的 A A寄存器和寄存器和B B寄存器的值執(zhí)行算術(shù)寄存器的值執(zhí)行算術(shù)/ /邏輯運(yùn)算;邏輯運(yùn)算; 或或計(jì)算出處理指令所需的存儲(chǔ)單元的地址,即計(jì)算出處理指令所需的存儲(chǔ)單元的地址,即 有效地址;有效地址; 或者或者完成分支跳轉(zhuǎn)完成分支跳轉(zhuǎn) 示例示例 ADDADD指令指令 在在ALUALU中進(jìn)行加法運(yùn)算,得到加法中進(jìn)行加法運(yùn)算,得到加法運(yùn)算運(yùn)算結(jié)果,存結(jié)果,存 儲(chǔ)于儲(chǔ)于ALUOutALUOut寄存器中寄存器中

43、LWLW指令指令 選擇選擇IR15:0IR15:0符號(hào)擴(kuò)展的結(jié)果,在符號(hào)擴(kuò)展的結(jié)果,在ALUALU中與中與A A寄存寄存 器進(jìn)行加法運(yùn)算,得到一個(gè)器進(jìn)行加法運(yùn)算,得到一個(gè)有效地址有效地址,存儲(chǔ)于,存儲(chǔ)于 ALUOutALUOut寄存器中寄存器中 BEQZBEQZ指令指令 如果如果A A寄存器中的值為零,寄存器中的值為零,PCPC被被ALUOutALUOut寄存器寄存器中中 的值(上一階段計(jì)算所得)的值(上一階段計(jì)算所得)加載加載,否則保持不變,否則保持不變 4 4、訪問內(nèi)存訪問內(nèi)存 獲取內(nèi)存中的數(shù)據(jù)獲取內(nèi)存中的數(shù)據(jù) LWLW指令指令 把在上一階段計(jì)算得到的把在上一階段計(jì)算得到的ALUOutAL

44、UOut寄存器中的地址寄存器中的地址 加載到地址寄存器加載到地址寄存器MARMAR 讀取存儲(chǔ)器讀取存儲(chǔ)器,一個(gè),一個(gè)3232位的數(shù)據(jù)被放進(jìn)數(shù)據(jù)寄存器位的數(shù)據(jù)被放進(jìn)數(shù)據(jù)寄存器 MDRMDR LWLW指令指令 訪問訪問內(nèi)存內(nèi)存 LWLW指令指令 MARMAR ALUOutALUOut MDRMDRMemMARMemMAR 32 GateALU 輸入輸入輸輸 出出 GatePC 32 IR LD.IR PC LD.PC 32 ALU 32 ALUOut LD.ALU GateMDR MDRMAR 32 32 LD.MDR 存儲(chǔ)器存儲(chǔ)器 LD.MAR 控制器控制器 31:26 PC SEXT 寄存器堆

45、寄存器堆 BA LD.BLD.A 25:21 20:16 32 SR1 SR2 B.S BMUX SR1OUTSR2OUT 4 3232 AMUX A.S PC 2 Z Z 5:0 4 ALU控制器控制器 ALUOp 4 EXT.S 25:0 5 5、寫回、寫回 結(jié)果被寫到指定的目標(biāo)中結(jié)果被寫到指定的目標(biāo)中 LWLW指令指令 MDRMDR中的值被寫入中的值被寫入IR20:16IR20:16所指示的所指示的R2R2中中 ADDADD指令指令 加法運(yùn)算的加法運(yùn)算的ALUOutALUOut寄存器中的結(jié)果被寫入寄存器中的結(jié)果被寫入 IR15:11IR15:11所指示的所指示的R6R6中中 LWLW指令

46、指令 結(jié)果寫到指定目標(biāo)結(jié)果寫到指定目標(biāo) LWLW指令指令 (IR20:16)(IR20:16)MDRMDR 32 GateALU 輸入輸入輸輸 出出 GatePC 32 IR LD.IR PC LD.PC 32 ALU 32 ALUOut LD.ALU GateMDR MDRMAR 32 32 LD.MDR 存儲(chǔ)器存儲(chǔ)器 LD.MAR 控制器控制器 31:26 PC SEXT 寄存器堆寄存器堆 BA LD.BLD.A 25:21 20:16 32 SR1 SR2 B.S BMUX SR1OUTSR2OUT 4 3232 AMUX A.S PC 2 Z Z 32 GateB MEM.EN.R.W

47、 LD.REG 5 DR 5:0 4 ALU控制器控制器 ALUOp 4 EXT.S 25:0 ADDADD指令指令 (IR15:11)(IR15:11) ALUOutALUOut 32 GateALU 輸入輸入輸輸 出出 GatePC 32 IR LD.IR PC LD.PC 32 ALU 32 ALUOut LD.ALU GateMDR MDRMAR 32 32 LD.MDR 存儲(chǔ)器存儲(chǔ)器 LD.MAR 控制器控制器 31:26 PC SEXT 寄存器堆寄存器堆 BA LD.BLD.A 25:21 20:16 32 SR1 SR2 B.S BMUX SR1OUTSR2OUT 4 3232

48、AMUX A.S PC 2 Z Z 32 GateB MEM.EN.R.W LD.REG 15:11 DR.S DRMUX 5 DR 5:0 4 ALU控制器控制器 ALUOp 4 EXT.S 25:0 下一階段下一階段 這五個(gè)階段完成之后,控制單元就會(huì)從取指令這五個(gè)階段完成之后,控制單元就會(huì)從取指令 階段開始執(zhí)行下一條指令階段開始執(zhí)行下一條指令 由于在取指令階段由于在取指令階段PCPC被更新,包含了存儲(chǔ)在存被更新,包含了存儲(chǔ)在存 儲(chǔ)單元中的儲(chǔ)單元中的下一條指令的地址下一條指令的地址 這樣下一條指令接下來就會(huì)被讀取。處理就這這樣下一條指令接下來就會(huì)被讀取。處理就這 樣持續(xù)下去樣持續(xù)下去直到被打

49、斷直到被打斷 不是所有的不是所有的DLXDLX指令都包括上述五個(gè)階段。但指令都包括上述五個(gè)階段。但 是所有指令均需要取指令階段和譯碼是所有指令均需要取指令階段和譯碼/ /取寄存取寄存 器階段器階段 ADDADD指令指令,不需要訪問內(nèi)存階段不需要訪問內(nèi)存階段 改變執(zhí)行順序改變執(zhí)行順序 ADDADD:處理數(shù)據(jù)的處理數(shù)據(jù)的運(yùn)算指令運(yùn)算指令 LWLW:把數(shù)據(jù)從一個(gè)地方移動(dòng)到另一個(gè)地方的把數(shù)據(jù)從一個(gè)地方移動(dòng)到另一個(gè)地方的數(shù)據(jù)傳數(shù)據(jù)傳 送指令送指令 BEQZBEQZ:改變指令執(zhí)行的順序改變指令執(zhí)行的順序的的控制指令控制指令 有時(shí)會(huì)需要先執(zhí)行第一條指令,接著第二條,第三條,有時(shí)會(huì)需要先執(zhí)行第一條指令,接著第

50、二條,第三條, 然后又執(zhí)行第一條,接著第二第三,接著又是第一然后又執(zhí)行第一條,接著第二第三,接著又是第一 條條,即,即循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 由于每條指令的執(zhí)行都是從用由于每條指令的執(zhí)行都是從用PCPC加載加載MARMAR開始的,因開始的,因 此,如果想要改變指令執(zhí)行的順序,就需要在此,如果想要改變指令執(zhí)行的順序,就需要在PCPC增加增加 4 4(即在取指令階段執(zhí)行時(shí))后、執(zhí)行下一指令的?。丛谌≈噶铍A段執(zhí)行時(shí))后、執(zhí)行下一指令的取 指令階段之前改變指令階段之前改變PCPC(執(zhí)行階段改變執(zhí)行階段改變PCPC) DLX JRDLX JR指令指令 bits31:26bits31:26:101101101

51、101,JRJR bits25:21bits25:21:包含下一條將要被執(zhí)行的指令包含下一條將要被執(zhí)行的指令 地址的寄存器地址的寄存器 31 26 25 21 20 0 1 0 1 1 0 10 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 JRR3未用未用 “把把R3的內(nèi)容加載到的內(nèi)容加載到PC,這樣,這樣, 下一條將要被執(zhí)行的指令的地址下一條將要被執(zhí)行的指令的地址 就是那個(gè)包含在就是那個(gè)包含在R3中的地址中的地址” JRJR指令指令 從從PC=x80008000PC=x80008000開始開始 取指令階段取指令階段:IRIR被加載為被加

52、載為JRJR指令,指令,PCPC更新為地址更新為地址 x80008004x80008004 譯碼譯碼/ /取寄存器階段取寄存器階段:譯碼,并取出譯碼,并取出R3R3和和R0R0中的值,中的值, 計(jì)算計(jì)算PCPC與與SEXT(IR15:0)SEXT(IR15:0)的和的和 完成分支階段完成分支階段:PCPC被加載為被加載為x80004000 x80004000(假設(shè)在指假設(shè)在指 令開始處令開始處R3R3的內(nèi)容為的內(nèi)容為x80004000 x80004000) 指令執(zhí)行完畢(只需要指令執(zhí)行完畢(只需要3 3個(gè)階段)個(gè)階段) 要處理的下一條指令將位于地址要處理的下一條指令將位于地址x80004000

53、 x80004000而不是而不是 在地址在地址x80008004x80008004 DLXDLX的有限狀態(tài)機(jī)的有限狀態(tài)機(jī) 一條指令的執(zhí)行可能包含一條指令的執(zhí)行可能包含3535個(gè)階段,每一個(gè)個(gè)階段,每一個(gè) 階段還由一些步驟組成,而每一個(gè)階段的每一階段還由一些步驟組成,而每一個(gè)階段的每一 步都是由控制單元的有限狀態(tài)機(jī)控制的步都是由控制單元的有限狀態(tài)機(jī)控制的 狀態(tài)在時(shí)鐘控制下發(fā)生轉(zhuǎn)換狀態(tài)在時(shí)鐘控制下發(fā)生轉(zhuǎn)換 寄存器傳送語言寄存器傳送語言 RTLRTL(Register Transfer Register Transfer LanguageLanguage) 硬件描述語言硬件描述語言 MxxMxx表示

54、在存儲(chǔ)器中表示在存儲(chǔ)器中xxxx地址的值地址的值 RegxxRegxx表示寄存器表示寄存器xxxx的值的值 簡化的狀態(tài)圖簡化的狀態(tài)圖 MARPC ALUOutPC+4 ARegIR25:21 BRegIR20:16 ALUOutPC+SEXT(IR15:0 ) ALUOutA+ SEXT(IR15:0)ALUOutA+B MARALUOut MDRMEM PCA RegIR15:11 ALUOut 狀態(tài)狀態(tài)1 狀態(tài)狀態(tài)4 LWJRADD 取指令取指令 譯碼譯碼/取寄存器取寄存器 到狀態(tài)到狀態(tài)1 到狀態(tài)到狀態(tài)1 到狀態(tài)到狀態(tài)1 狀態(tài)狀態(tài)X RegIR20:16MDR PC ALUOut MDRM

55、MAR IRMDR 狀態(tài)狀態(tài)2 狀態(tài)狀態(tài)3 R 取指令階段取指令階段 需要需要多個(gè)時(shí)鐘周期多個(gè)時(shí)鐘周期 MARPC ALUOutPC+4 狀態(tài)狀態(tài)1 取指令取指令 PC ALUOut MDRMMAR IRMDR 狀態(tài)狀態(tài)2 狀態(tài)狀態(tài)3 R 狀態(tài)狀態(tài)1 1 第一個(gè)時(shí)鐘周期第一個(gè)時(shí)鐘周期 MARPC ALUOutPC+4 控制信號(hào)控制信號(hào) GatePC=1GatePC=1 LD.MAR=1LD.MAR=1 A.S=1A.S=1 B.S=01B.S=01 ALUOp=0001ALUOp=0001 LD.ALU=1LD.ALU=1 32 GateALU 輸入輸入輸輸 出出 GatePC 32 IR L

56、D.IR PC LD.PC 32 ALU 32 ALUOut LD.ALU GateMDR MDRMAR 32 32 LD.MDR 存儲(chǔ)器存儲(chǔ)器 LD.MAR 有限狀有限狀 態(tài)機(jī)態(tài)機(jī) 31:26 PC SEXT 寄存器堆寄存器堆 BA LD.BLD.A 25:21 20:16 32 SR1 SR2 B.S BMUX SR1OUTSR2OUT 4 3232 AMUX A.S PC 2 Z Z 32 GateB MEM.EN.R.W LD.REG 15:11 DR.S DRMUX 5 DR CLK 4 ALUOp 4 ALU控制器控制器 5:0 EXT.S 25:0 狀態(tài)狀態(tài)2 2 PC ALUO

57、ut MDR MMAR 控制信號(hào)控制信號(hào) GateALU=1GateALU=1 LD.PC=1LD.PC=1 MEM.EN.R.W=0MEM.EN.R.W=0 LD.MDR=1LD.MDR=1 就緒信號(hào)就緒信號(hào)(R Readyeady) 32 GateALU 輸入輸入輸輸 出出 GatePC 32 IR LD.IR PC LD.PC 32 ALU 32 ALUOut LD.ALU GateMDR MDRMAR 32 32 LD.MDR 存儲(chǔ)器存儲(chǔ)器 LD.MAR 有限狀有限狀 態(tài)機(jī)態(tài)機(jī) 31:26 PC SEXT 寄存器堆寄存器堆 BA LD.BLD.A 25:21 20:16 32 SR1

58、SR2 B.S BMUX SR1OUTSR2OUT 4 3232 AMUX A.S PC 2 Z Z 32 GateB MEM.EN.R.W LD.REG 15:11 DR.S DRMUX 5 DR CLK 4 ALUOp 4 ALU控制器控制器 R R 5:0 EXT.S 25:0 狀態(tài)狀態(tài)2 2,有限狀態(tài)機(jī)有限狀態(tài)機(jī)同時(shí)同時(shí)將將 MEM.EN.R.WMEM.EN.R.W設(shè)為設(shè)為0 0,LD.MDRLD.MDR設(shè)為設(shè)為1 1 讀存儲(chǔ)器讀存儲(chǔ)器,MDRMDR被加載從存儲(chǔ)器中讀取的指令被加載從存儲(chǔ)器中讀取的指令 可能需要多個(gè)時(shí)鐘周期,所以需要一個(gè)可能需要多個(gè)時(shí)鐘周期,所以需要一個(gè)就緒信號(hào)就緒信號(hào) (R Readyeady)表示是否就

溫馨提示

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