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

下載本文檔

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

文檔簡(jiǎn)介

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 Variable A

2、utomatic Computer,Electronic Discrete Variable Automatic Computer,電電子離散變量自動(dòng)計(jì)算機(jī)子離散變量自動(dòng)計(jì)算機(jī) 程序存儲(chǔ)于程序存儲(chǔ)于memorymemory之中之中1945: John von Neumann1945: John von NeumannFirst 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(19031957),出生于匈牙

3、出生于匈牙利,利,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é)果將執(zhí)行結(jié)果送出計(jì)算機(jī)之外送出計(jì)算機(jī)之外注意:處理單元和控注意:處理單

4、元和控制單元是制單元是CPU的主要的主要組成部分組成部分存儲(chǔ)器存儲(chǔ)器處理單元處理單元ALUReg輸出設(shè)備輸出設(shè)備*顯示器顯示器*打印機(jī)打印機(jī)*磁盤磁盤輸入設(shè)備輸入設(shè)備*鍵盤鍵盤*鼠標(biāo)鼠標(biāo)*掃描儀掃描儀*磁盤磁盤控制單元控制單元PCCPU存儲(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)容包含一定大小的內(nèi)容指令指令數(shù)據(jù)數(shù)據(jù)地址和內(nèi)容地址和內(nèi)容x0000 0000 x0000 0001x4000 0000 x40

5、00 0001x4000 0002x4000 0003xFFFF FFFFx4000 0003x0000 0001x1000 0000 x1100 0001存儲(chǔ)器存儲(chǔ)器2 232328 8位,一共有位,一共有2 23232個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元可以存儲(chǔ)元可以存儲(chǔ)8 8個(gè)比特個(gè)比特有有2 23232個(gè)不同存儲(chǔ)單元的地址空間和個(gè)不同存儲(chǔ)單元的地址空間和8 8位的尋址位的尋址能力,可稱為能力,可稱為4G4G字節(jié)(縮寫為字節(jié)(縮寫為GBGB)的存儲(chǔ)器)的存儲(chǔ)器要確定要確定2 23232個(gè)地址,就必須使用個(gè)地址,就必須使用3232位二進(jìn)制數(shù)表位二進(jìn)制數(shù)表示示處理單元處理單元計(jì)算機(jī)

6、里信息的處理是由處理單元執(zhí)行的計(jì)算機(jī)里信息的處理是由處理單元執(zhí)行的現(xiàn)代計(jì)算機(jī)的處理單元可以包含許多復(fù)雜的功現(xiàn)代計(jì)算機(jī)的處理單元可以包含許多復(fù)雜的功能單元,每個(gè)都能夠執(zhí)行一個(gè)特定的運(yùn)算(除能單元,每個(gè)都能夠執(zhí)行一個(gè)特定的運(yùn)算(除法,平方根等)法,平方根等)最簡(jiǎn)單的單元最簡(jiǎn)單的單元ALUALU(Arithmetic and Logic UnitArithmetic and Logic Unit,算術(shù)和邏輯單元)算術(shù)和邏輯單元)寄存器堆寄存器堆/ /文件文件RegRegALUALU附近附近,臨時(shí)存取臨時(shí)存取數(shù)據(jù)數(shù)據(jù)例如,計(jì)算例如,計(jì)算(A+B)(A+B)C C,先,先在存儲(chǔ)器中存儲(chǔ)在存儲(chǔ)器中存儲(chǔ)A+

7、BA+B的的結(jié)果,結(jié)果,隨后隨后讀取出來,再讀取出來,再和和C C相乘相乘訪問訪問存儲(chǔ)器的時(shí)間遠(yuǎn)長(zhǎng)于執(zhí)行加法或乘法的存儲(chǔ)器的時(shí)間遠(yuǎn)長(zhǎng)于執(zhí)行加法或乘法的時(shí)間時(shí)間使用使用臨時(shí)存儲(chǔ)空間臨時(shí)存儲(chǔ)空間存儲(chǔ)存儲(chǔ)A+BA+B的的結(jié)果結(jié)果字字ALUALU正常處理的信息量的大小通常被稱為計(jì)算正常處理的信息量的大小通常被稱為計(jì)算機(jī)的機(jī)的字長(zhǎng)字長(zhǎng)(word length)(word length),每一個(gè)元素被稱為,每一個(gè)元素被稱為一個(gè)一個(gè)字字(wordword)取決于計(jì)算機(jī)的不同用途,每一個(gè)指令集結(jié)構(gòu)取決于計(jì)算機(jī)的不同用途,每一個(gè)指令集結(jié)構(gòu)都擁有自己的字長(zhǎng)都擁有自己的字長(zhǎng)IntelIntel的的Pentium P

8、entium 處理器處理器,3232位位SunSun的的SPARC-V9SPARC-V9和和IntelIntel的的ItaniumItanium處理處理,6464位位寄存器堆寄存器堆/ /文件文件典型的寄存器的大小是和典型的寄存器的大小是和ALUALU處理的值的大小處理的值的大小一樣一樣每個(gè)寄存器都包含一個(gè)字每個(gè)寄存器都包含一個(gè)字控制單元控制單元處理單元負(fù)責(zé)處理單元負(fù)責(zé)“執(zhí)行信息的實(shí)際處理執(zhí)行信息的實(shí)際處理”,而控,而控制單元?jiǎng)t是制單元?jiǎng)t是“指揮指揮信息的處理信息的處理”其具體工作包括:其具體工作包括:在執(zhí)行程序的過程中,在執(zhí)行程序的過程中,跟蹤跟蹤存儲(chǔ)器中的指令存儲(chǔ)器中的指令在處理指令的過程

9、中,在處理指令的過程中,跟蹤跟蹤指令的處理階段指令的處理階段PCPC跟蹤存儲(chǔ)器中的指令,確切地說是跟蹤要處理跟蹤存儲(chǔ)器中的指令,確切地說是跟蹤要處理的下一條指令的下一條指令為了跟蹤哪一條指令是下一步要運(yùn)行的,控制單為了跟蹤哪一條指令是下一步要運(yùn)行的,控制單元有一個(gè)用來容納下一條指令所在地址的寄存元有一個(gè)用來容納下一條指令所在地址的寄存器器“程序計(jì)數(shù)器程序計(jì)數(shù)器”(Program CounterProgram Counter,簡(jiǎn),簡(jiǎn)稱稱PCPC)/ / “ “指令指針指令指針”控制器控制器控制單元可以是多個(gè)控制器,分別從屬于各個(gè)控制單元可以是多個(gè)控制器,分別從屬于各個(gè)部件部件ALUALU控制器用

10、于控制控制器用于控制ALUALU執(zhí)行何種運(yùn)算執(zhí)行何種運(yùn)算對(duì)于輸入和輸出則有專門的對(duì)于輸入和輸出則有專門的I/OI/O控制器控制器輸入輸入/ /輸出設(shè)備輸出設(shè)備要使計(jì)算機(jī)處理信息,信息必須被送入計(jì)算機(jī)要使計(jì)算機(jī)處理信息,信息必須被送入計(jì)算機(jī)中中為了能夠使用處理后的結(jié)果,它必須能以某種為了能夠使用處理后的結(jié)果,它必須能以某種形式顯示在計(jì)算機(jī)以外形式顯示在計(jì)算機(jī)以外為輸入和輸出的目的而出現(xiàn)的設(shè)備在計(jì)算機(jī)術(shù)為輸入和輸出的目的而出現(xiàn)的設(shè)備在計(jì)算機(jī)術(shù)語(yǔ)中被稱為語(yǔ)中被稱為外圍設(shè)備外圍設(shè)備(peripheralsperipherals)輸入輸入/ /輸出設(shè)備輸出設(shè)備外圍設(shè)備外圍設(shè)備(peripheralspe

11、ripherals)鍵盤鍵盤輸入;監(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ù)通路的兩端都有箭頭的粗黑線結(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)生通信瓶頸通信瓶頸Gat

12、eMDR32GateALU32存儲(chǔ)器存儲(chǔ)器輸入輸入輸輸出出GatePC3232控制單元控制單元處理單元處理單元DLXDLX總線總線DLXDLX的總線由的總線由3232根線和相關(guān)的電子元件組成根線和相關(guān)的電子元件組成允許將允許將3232位位信息從一個(gè)組件傳輸?shù)搅硪粋€(gè)組件信息從一個(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è)提供者能提供信息給總線

13、線從總線獲得數(shù)據(jù)的組件通過將從總線獲得數(shù)據(jù)的組件通過將LD.xLD.x(加載使能)(加載使能)信號(hào)設(shè)為信號(hào)設(shè)為1 1(回憶門控鎖存器),從而得到信息(回憶門控鎖存器),從而得到信息存儲(chǔ)器:存儲(chǔ)器:MARMAR和和MDRMDR如果要如果要讀讀出某個(gè)存儲(chǔ)單元中的內(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ǔ)單元中,首先要把目的地址

14、存入地址存入MARMAR,把值存入,把值存入MDRMDR中,然后設(shè)中,然后設(shè)“寫使寫使能能”信號(hào)為信號(hào)為1 1,查詢存儲(chǔ)器,查詢存儲(chǔ)器,MDRMDR里的信息就會(huì)里的信息就會(huì)被寫到被寫到MARMAR中的地址所對(duì)應(yīng)的存儲(chǔ)單元里。中的地址所對(duì)應(yīng)的存儲(chǔ)單元里。MARMAR和和MDRMDRMARMAR:3232位位,反映了,反映了DLXDLX的存儲(chǔ)器的地址空間是的存儲(chǔ)器的地址空間是2 23232個(gè)存儲(chǔ)單元個(gè)存儲(chǔ)單元MDRMDR:3232位位,而,而DLXDLX是字節(jié)可尋址的,即每個(gè)單是字節(jié)可尋址的,即每個(gè)單元包含元包含8 8位,因此在大多數(shù)情況下,位,因此在大多數(shù)情況下,MDRMDR包含了包含了從從MA

15、RMAR中的地址開始的中的地址開始的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位)位)處理單元處理單元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)寄存器未包括浮

16、點(diǎn)寄存器控制單元控制單元最最重要的組件是有限狀態(tài)機(jī),它指揮所有重要的組件是有限狀態(tài)機(jī),它指揮所有行為行為有限狀態(tài)機(jī)有限狀態(tài)機(jī)的一個(gè)輸入是的一個(gè)輸入是CLKCLK,它說明了每個(gè)時(shí)鐘周,它說明了每個(gè)時(shí)鐘周期持續(xù)的期持續(xù)的時(shí)間時(shí)間為了為了跟蹤指令的處理階段,控制單元還需要一個(gè)指令跟蹤指令的處理階段,控制單元還需要一個(gè)指令寄存器(寄存器(Instruction RegisterInstruction Register,簡(jiǎn)稱,簡(jiǎn)稱IRIR),用來保),用來保存正在處理的指令存正在處理的指令。IRIR也是有限狀態(tài)機(jī)的一個(gè)輸入,也是有限狀態(tài)機(jī)的一個(gè)輸入,因?yàn)橐幚淼囊驗(yàn)橐幚淼腄LXDLX指令決定了計(jì)算機(jī)要

17、執(zhí)行的行為指令決定了計(jì)算機(jī)要執(zhí)行的行為。程序計(jì)數(shù)器(程序計(jì)數(shù)器(PCPC)記錄了在當(dāng)前的指令完成后,下一條要被執(zhí)行的指令記錄了在當(dāng)前的指令完成后,下一條要被執(zhí)行的指令所在的地址所在的地址空心箭頭空心箭頭實(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)是否要從總線上加載新

18、的指令)是否要從總線上加載新的指令GateALUGateALU,決定,決定ALUOutALUOut的值在當(dāng)前時(shí)鐘周期內(nèi)是的值在當(dāng)前時(shí)鐘周期內(nèi)是否被提供給總線否被提供給總線輸入輸入/ /輸出設(shè)備輸出設(shè)備由鍵盤和顯示器組成由鍵盤和顯示器組成最簡(jiǎn)單的鍵盤需要兩個(gè)寄存器,一個(gè)數(shù)據(jù)寄存器最簡(jiǎn)單的鍵盤需要兩個(gè)寄存器,一個(gè)數(shù)據(jù)寄存器(KBDRKBDR),用來保存由鍵盤鍵入字符的),用來保存由鍵盤鍵入字符的ASCIIASCII碼,碼,和一個(gè)狀態(tài)寄存器(和一個(gè)狀態(tài)寄存器(KBSRKBSR),用來提供鍵盤鍵入),用來提供鍵盤鍵入字符的狀態(tài)信息字符的狀態(tài)信息最簡(jiǎn)單的顯示器同樣需要兩個(gè)寄存器,一個(gè)用來最簡(jiǎn)單的顯示器同

19、樣需要兩個(gè)寄存器,一個(gè)用來保存那些將被顯示在顯示器上的內(nèi)容的保存那些將被顯示在顯示器上的內(nèi)容的ASCIIASCII碼碼(DDRDDR),另一個(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)行的操作,可逐步處理,

20、根據(jù)指令處理所需進(jìn)行的操作,可以以將一條指令的執(zhí)行分解為一系列步驟將一條指令的執(zhí)行分解為一系列步驟指令處理指令處理多時(shí)鐘周期多時(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í)鐘周期,即一

21、個(gè)時(shí)鐘周期只需鐘周期,即一個(gè)時(shí)鐘周期只需0.3030.303納秒納秒DLXDLX指令執(zhí)行階段指令執(zhí)行階段按照按照DLXDLX指令執(zhí)行的步驟,將處理指令所需的指令執(zhí)行的步驟,將處理指令所需的操作劃分為以下階段(每條操作劃分為以下階段(每條DLXDLX指令需要其中指令需要其中的的3 3到到5 5個(gè)個(gè)階段):階段):取取指令(指令(Instruction fetchInstruction fetch)譯碼譯碼/ /取寄存器(取寄存器(Instruction decode/Register Instruction decode/Register fetchfetch)執(zhí)行執(zhí)行/ /有效地址有效地址/

22、/完成分支完成分支(Execution/Effective (Execution/Effective 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í)行

23、的內(nèi)容)由兩個(gè)部分組成:操作碼(指令執(zhí)行的內(nèi)容)和操作數(shù)(要操作的對(duì)象)和操作數(shù)(要操作的對(duì)象)DLXDLX子集指令,由子集指令,由32 32 位(一個(gè)字)組成,從左位(一個(gè)字)組成,從左向右依次編號(hào)為向右依次編號(hào)為bit31bit0bit31bit0DLX 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

24、個(gè)寄存器個(gè)寄存器:需要需要5位位確定每一個(gè)確定每一個(gè)教材訂正:教材訂正:R6錯(cuò)了錯(cuò)了31 2625 21 20 16 15 1110 65 00 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 1R-類型類型R2R6R6未用未用ADDbit31:26bit31:26:000000R000000R類型類型bit5:0bit5:0:要執(zhí)行的函數(shù),要執(zhí)行的函數(shù),000001000001,是加法操,是加法操作作bit15:11bit15:11:存儲(chǔ)的結(jié)果所在的位置,存儲(chǔ)的結(jié)果所在的位置,R6R6bit25:21bit25:21和和bit

25、20:16bit20:16:存儲(chǔ)兩個(gè)源操作數(shù)存儲(chǔ)兩個(gè)源操作數(shù)的寄存器,的寄存器,R2R2和和R6R6“將將R2R2(寄存器(寄存器2 2)和)和R6R6里的內(nèi)容相加,結(jié)果里的內(nèi)容相加,結(jié)果存回存回R6R6里。里?!盌LX 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ǔ)器讀出的值和

26、目標(biāo)寄存器從存儲(chǔ)器讀出的值和目標(biāo)寄存器31 26 25 2120 1615 00 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 0LWR3R26bit31: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里

27、的二進(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ì)算計(jì)算將要讀取的存儲(chǔ)單元的地址的將要讀取的存儲(chǔ)單元的地址的機(jī)制機(jī)制DLX BEQZDLX BEQZ指令指令(

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

29、bit25: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,PCPC保持不變保持不變”1 1、取指令階段取指令階段從

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

31、RIRMDRMDR32GateALU輸入輸入輸輸出出GatePC32控制單元控制單元處理單元處理單元IRLD.IRPCGateMDRMDRMAR3232LD.MDR存儲(chǔ)器存儲(chǔ)器LD.MAR32取指令階段取指令階段步驟步驟(2)(2)MARMARPCPCALUOutALUOutPC+4PC+4MDRMDRMemMARMemMARPCPCALUOutALUOutIRIRMDRMDR32GateALU輸入輸入輸輸出出GatePC32控制單元控制單元處理單元處理單元IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUPC4GateMDRMDRMAR3232LD.MDR存儲(chǔ)器存儲(chǔ)器LD.M

32、AR2 2、譯碼譯碼/ /取取寄存器階段寄存器階段(1)(1)譯碼譯碼識(shí)別指令識(shí)別指令6-64 6-64 譯碼器譯碼器:IR31:26IR31:2632GateALU輸入輸入輸輸出出GatePC32控制單元控制單元處理單元處理單元IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUPC4GateMDRMDRMAR3232LD.MDR存儲(chǔ)器存儲(chǔ)器LD.MAR控制器31:26PC2 2、譯碼譯碼/ /取取寄存器階段寄存器階段(2)(2)取寄存器取寄存器為后面階段獲取為后面階段獲取操作數(shù)操作數(shù)A A( (IR25:21),IR25:21),B B( (IR20:16), IR20:16

33、), ALUOutALUOutPCPC+ + SEXT(IR15:0)SEXT(IR15:0)32GateALU輸入輸入輸輸出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存儲(chǔ)器存儲(chǔ)器LD.MAR控制器控制器31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1615:032SR1SR2B.SBMUXSR1OUTSR2OUTPC43232譯碼譯碼譯碼:譯碼:識(shí)別指令進(jìn)而確定下一步要去做什么識(shí)別指令進(jìn)而確定下一步要去做什么6-646-64的譯碼器的譯碼器:IR31:26IR31:26依據(jù)譯碼

34、器的輸出為依據(jù)譯碼器的輸出為1 1的線,決定了余下的的線,決定了余下的2626位位需要做哪些工作需要做哪些工作取寄存器取寄存器示例示例ADDADD指令指令將從將從IR25:21IR25:21和和IR20: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中

35、獲得源操作數(shù),傳給中獲得源操作數(shù),傳給ALUALU的的A A寄存器寄存器和和B B寄存器;寄存器;計(jì)算計(jì)算PCPC與與IR15:0IR15:0符號(hào)擴(kuò)展的和符號(hào)擴(kuò)展的和,結(jié)果存儲(chǔ)于結(jié)果存儲(chǔ)于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é)果

36、在后面的階段并不會(huì)用到,但這并不浪費(fèi)時(shí)有的操作的結(jié)果在后面的階段并不會(huì)用到,但這并不浪費(fèi)時(shí)間,因?yàn)檫@些操作是同時(shí)進(jìn)行的間,因?yàn)檫@些操作是同時(shí)進(jìn)行的3 3、執(zhí)行執(zhí)行/ /有效有效地址地址/ /完成分支完成分支根據(jù)譯碼產(chǎn)生根據(jù)譯碼產(chǎn)生的的控控制信號(hào)制信號(hào)(空心箭頭)(空心箭頭)ALUOutALUOut A Op BA Op B或或計(jì)算有效地址;計(jì)算有效地址;或或完成分支完成分支32GateALU輸入輸入輸輸出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存儲(chǔ)器存儲(chǔ)器LD.MAR控制器控制器31:26PCSEXT寄存

37、器堆寄存器堆BALD.BLD.A25:2120:1615:032SR1SR2B.SBMUXSR1OUTSR2OUTPC43232ADDADD指令指令A(yù)LUOutALUOut A + BA + B32GateALU輸入輸入輸輸出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存儲(chǔ)器存儲(chǔ)器LD.MAR控制器控制器31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1615:032SR1SR2B.SBMUXSR1OUTSR2OUT43232AMUXA.SPC25:0ALU控制器控制器4LWLW指令

38、指令A(yù)LUOutALUOut A A + + SEXT(IR15:0)SEXT(IR15:0)32GateALU輸入輸入輸輸出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存儲(chǔ)器存儲(chǔ)器LD.MAR控制器控制器31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1615:032SR1SR2B.SBMUXSR1OUTSR2OUT43232AMUXA.SPC25:04ALU控制器控制器ALUOp4BEQZBEQZ指令指令Z Z A = 0 A = 0if(Z) if(Z) PC PC ALUOu

39、t ALUOut32GateALU輸入輸入輸輸出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存儲(chǔ)器存儲(chǔ)器LD.MAR控制器控制器31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1615:032SR1SR2B.SBMUXSR1OUTSR2OUT43232AMUXA.SPC2ZZ5:04ALU控制器控制器ALUOp4執(zhí)行執(zhí)行/ /有效地址有效地址/ /完成分支完成分支根據(jù)譯碼產(chǎn)生的控制信號(hào),對(duì)上一階段得到的根據(jù)譯碼產(chǎn)生的控制信號(hào),對(duì)上一階段得到的A A寄存器和寄存器和B B寄存器的值執(zhí)行

40、算術(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寄存器中寄存器中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指

41、令指令如果如果A A寄存器中的值為零,寄存器中的值為零,PCPC被被ALUOutALUOut寄存器寄存器中中的值(上一階段計(jì)算所得)的值(上一階段計(jì)算所得)加載加載,否則保持不變,否則保持不變4 4、訪問內(nèi)存訪問內(nèi)存獲取內(nèi)存中的數(shù)據(jù)獲取內(nèi)存中的數(shù)據(jù)LWLW指令指令把在上一階段計(jì)算得到的把在上一階段計(jì)算得到的ALUOutALUOut寄存器中的地址寄存器中的地址加載到地址寄存器加載到地址寄存器MARMAR讀取存儲(chǔ)器讀取存儲(chǔ)器,一個(gè),一個(gè)3232位的數(shù)據(jù)被放進(jìn)數(shù)據(jù)寄存器位的數(shù)據(jù)被放進(jìn)數(shù)據(jù)寄存器MDRMDRLWLW指令指令訪問訪問內(nèi)存內(nèi)存LWLW指令指令MARMAR ALUOutALUOutMDRMD

42、RMemMARMemMAR32GateALU輸入輸入輸輸出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存儲(chǔ)器存儲(chǔ)器LD.MAR控制器控制器31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1632SR1SR2B.SBMUXSR1OUTSR2OUT43232AMUXA.SPC2ZZ5:04ALU控制器控制器ALUOp4EXT.S25:05 5、寫回、寫回結(jié)果被寫到指定的目標(biāo)中結(jié)果被寫到指定的目標(biāo)中LWLW指令指令MDRMDR中的值被寫入中的值被寫入IR20:16IR20:16所指示的所指

43、示的R2R2中中ADDADD指令指令加法運(yùn)算的加法運(yùn)算的ALUOutALUOut寄存器中的結(jié)果被寫入寄存器中的結(jié)果被寫入IR15:11IR15:11所指示的所指示的R6R6中中LWLW指令指令結(jié)果寫到指定目標(biāo)結(jié)果寫到指定目標(biāo)LWLW指令指令(IR20:16)(IR20:16)MDRMDR32GateALU輸入輸入輸輸出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存儲(chǔ)器存儲(chǔ)器LD.MAR控制器控制器31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1632SR1SR2B.SBMUXSR1

44、OUTSR2OUT43232AMUXA.SPC2ZZ32GateBMEM.EN.R.WLD.REG5DR5:04ALU控制器控制器ALUOp4EXT.S25:0ADDADD指令指令(IR15:11)(IR15:11) ALUOutALUOut32GateALU輸入輸入輸輸出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存儲(chǔ)器存儲(chǔ)器LD.MAR控制器控制器31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1632SR1SR2B.SBMUXSR1OUTSR2OUT43232AMUXA.SPC

45、2ZZ32GateBMEM.EN.R.WLD.REG15:11DR.SDRMUX5DR5:04ALU控制器控制器ALUOp4EXT.S25:0下一階段下一階段這五個(gè)階段完成之后,控制單元就會(huì)從取指令這五個(gè)階段完成之后,控制單元就會(huì)從取指令階段開始執(zhí)行下一條指令階段開始執(zhí)行下一條指令由于在取指令階段由于在取指令階段PCPC被更新,包含了存儲(chǔ)在存被更新,包含了存儲(chǔ)在存儲(chǔ)單元中的儲(chǔ)單元中的下一條指令的地址下一條指令的地址這樣下一條指令接下來就會(huì)被讀取。處理就這這樣下一條指令接下來就會(huì)被讀取。處理就這樣持續(xù)下去樣持續(xù)下去直到被打斷直到被打斷 不是所有的不是所有的DLXDLX指令都包括上述五個(gè)階段。但指

46、令都包括上述五個(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í)行第一條指令,接著第二條,第三條,然后又執(zhí)行第一條,接著第二第三,接著又是第一然后又執(zhí)行第一條,接著第二第三,接

47、著又是第一條條,即,即循環(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:101101101101,JRJRbits25:21bits25:21:包含下一條將要被執(zhí)行的指令包含下一條將要被執(zhí)行的指令地

48、址的寄存器地址的寄存器31 26 25 21 20 01 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 0JRR3未用未用“把把R3的內(nèi)容加載到的內(nèi)容加載到PC,這樣,這樣,下一條將要被執(zhí)行的指令的地址下一條將要被執(zhí)行的指令的地址就是那個(gè)包含在就是那個(gè)包含在R3中的地址中的地址”JRJR指令指令從從PC=x80008000PC=x80008000開始開始取指令階段取指令階段:IRIR被加載為被加載為JRJR指令,指令,PCPC更新為地址更新為地址x80008004x80008004譯碼譯碼/ /取寄存器階段取寄存器階段:譯

49、碼,并取出譯碼,并取出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 x80004000而不是而不是在地址在地址x80008004x80008004DLXDLX的有限狀態(tài)機(jī)的有限狀態(tài)機(jī)一條指令的執(zhí)行可能包含一條指

50、令的執(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)換寄存器傳送語(yǔ)言寄存器傳送語(yǔ)言 RTLRTL(Register Transfer Register Transfer LanguageLanguage)硬件描述語(yǔ)言硬件描述語(yǔ)言MxxMxx表示在存儲(chǔ)器中表示在存儲(chǔ)器中xxxx地址的值地址的值RegxxRegxx表示寄存器表示寄存器xxxx的值的值簡(jiǎn)化的狀態(tài)圖簡(jiǎn)化的狀態(tài)圖MARPCALUOutPC+4AR

51、egIR25:21BRegIR20:16ALUOutPC+SEXT(IR15:0)ALUOutA+ SEXT(IR15:0)ALUOutA+BMARALUOutMDRMEMPCARegIR15:11 ALUOut狀態(tài)狀態(tài)1狀態(tài)狀態(tài)4LWJRADD取指令取指令譯碼譯碼/取寄存器取寄存器到狀態(tài)到狀態(tài)1到狀態(tài)到狀態(tài)1到狀態(tài)到狀態(tài)1狀態(tài)狀態(tài)XRegIR20:16MDRPC ALUOutMDRMMARIRMDR狀態(tài)狀態(tài)2狀態(tài)狀態(tài)3R取指令階段取指令階段需要需要多個(gè)時(shí)鐘周期多個(gè)時(shí)鐘周期MARPCALUOutPC+4狀態(tài)狀態(tài)1取指令取指令PC ALUOutMDRMMARIRMDR狀態(tài)狀態(tài)2狀態(tài)狀態(tài)3R狀態(tài)狀

52、態(tài)1 1第一個(gè)時(shí)鐘周期第一個(gè)時(shí)鐘周期MARPCALUOutPC+4控制信號(hào)控制信號(hào)GatePCGatePC=1=1LD.MAR=1LD.MAR=1A.S=1A.S=1B.S=01B.S=01ALUOpALUOp=0001=0001LD.ALU=1LD.ALU=132GateALU輸入輸入輸輸出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存儲(chǔ)器存儲(chǔ)器LD.MAR有限狀有限狀態(tài)機(jī)態(tài)機(jī)31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1632SR1SR2B.SBMUXSR1OUTSR2OUT

53、43232AMUXA.SPC2ZZ32GateBMEM.EN.R.WLD.REG15:11DR.SDRMUX5DRCLK4ALUOp4ALU控制器控制器5:0EXT.S25:0狀態(tài)狀態(tài)2 2PC ALUOutMDR MMAR控制信號(hào)控制信號(hào)GateALUGateALU=1=1LD.PC=1LD.PC=1MEM.EN.R.W=0MEM.EN.R.W=0LD.MDR=1LD.MDR=1就緒信號(hào)就緒信號(hào)(R Readyeady)32GateALU輸入輸入輸輸出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存儲(chǔ)器存儲(chǔ)器LD.MAR有限狀有限狀態(tài)機(jī)態(tài)機(jī)31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1632SR1SR2B.SBMUXSR1OUTSR2OUT43232AMUXA.SPC2ZZ32GateBMEM.EN.R.WLD.REG15:11DR.SDRMUX5DRCLK4ALUOp4ALU控制器控制器RR5:0EXT.S25: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ǔ)器中讀取的指令可能需要

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論