計(jì)算機(jī)組成原理:第五章 中央處理機(jī)_第1頁(yè)
計(jì)算機(jī)組成原理:第五章 中央處理機(jī)_第2頁(yè)
計(jì)算機(jī)組成原理:第五章 中央處理機(jī)_第3頁(yè)
計(jì)算機(jī)組成原理:第五章 中央處理機(jī)_第4頁(yè)
計(jì)算機(jī)組成原理:第五章 中央處理機(jī)_第5頁(yè)
已閱讀5頁(yè),還剩132頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第五章中央處理機(jī)第五章中央處理機(jī)5.1CPU功能和組成5.2指令周期5.3時(shí)序產(chǎn)生器5.4微程序控制器及其設(shè)計(jì)5.5硬布線(xiàn)控制器及其設(shè)計(jì)5.6傳統(tǒng)CPU5.7流水CPU5.8RISC的CPU5.9多媒體CPU5.1CPU的功能和組成1、CPU的功能指令控制(程序的順序控制)操作控制(一條指令有若干操作信號(hào)實(shí)現(xiàn))時(shí)間控制(指令各個(gè)操作實(shí)施時(shí)間的定時(shí))數(shù)據(jù)加工(算術(shù)運(yùn)算和邏輯運(yùn)算)2、CPU的基本組成4RD/WRLDDRLDIRLDPCLDARPC+12、CPU的基本組成(1)中央處理機(jī)CPU=運(yùn)算器+控制器(2)運(yùn)算器ALU累加器暫存器2、CPU的基本組成(3)控制器

控制器組成:程序計(jì)數(shù)器、指令寄存器、數(shù)據(jù)緩沖器、地址寄存器、通用寄存器、狀態(tài)寄存器、時(shí)序發(fā)生器、指令譯碼器、總線(xiàn)(數(shù)據(jù)通路)程序計(jì)數(shù)器PC(ProgrammingCounter)用來(lái)存放正在執(zhí)行的指令的地址或接著將要執(zhí)行的下一條指令的地址。順序執(zhí)行時(shí),每執(zhí)行一條指令,PC的值應(yīng)加1要改變程序執(zhí)行順序的情況時(shí),一般由轉(zhuǎn)移類(lèi)指令將轉(zhuǎn)移目標(biāo)地址送往PC,可實(shí)現(xiàn)程序的轉(zhuǎn)移。指令寄存器IR(InstructionRegister)

指令寄存器用來(lái)存放從存儲(chǔ)器中取出的待執(zhí)行的指令。在執(zhí)行該指令的過(guò)程中,指令寄存器的內(nèi)容不允許發(fā)生變化,以保證實(shí)現(xiàn)指令的全部功能。2、CPU的基本組成指令譯碼器ID(InstructionDecoder)

暫存在指令寄存器中的指令只有在其操作碼部分經(jīng)譯碼后才能識(shí)別出是一條什么樣的指令。譯碼器經(jīng)過(guò)對(duì)指令進(jìn)行分析和解釋?zhuān)a(chǎn)生相應(yīng)的控制信號(hào)提供給時(shí)序控制信號(hào)形成部件。機(jī)器周期、工作節(jié)拍、脈沖及啟停控制線(xiàn)路

由脈沖源產(chǎn)生一定頻率的脈沖信號(hào)作為整個(gè)機(jī)器的時(shí)鐘脈沖時(shí)序控制信號(hào)形成部件

時(shí)序控制信號(hào)形成部件又稱(chēng)微操作信號(hào)發(fā)生器,真正控制各部件工作的微操作信號(hào)是由指令部件提供的操作信號(hào)、時(shí)序部件提供的時(shí)序信號(hào)、被控制功能部件所反饋的狀態(tài)及條件綜合形成的。2、CPU的基本組成地址形成部件

根據(jù)指令的不同尋址方式,用來(lái)形成操作數(shù)的有效地址功能就是指令流出的控制,實(shí)質(zhì)上就是對(duì)取指令的控制。指令分析與執(zhí)行的控制,對(duì)指令流中的每條指令進(jìn)行分析解釋?zhuān)鶕?jù)指令的操作性質(zhì)和尋址方式形成操作數(shù)的地址,然后根據(jù)該操作數(shù)的地址找到相應(yīng)的存儲(chǔ)單元,并從中取出指令執(zhí)行過(guò)程中要用到的操作數(shù),最后還要形成相應(yīng)的操作控制信號(hào)序列,通過(guò)運(yùn)算器、存儲(chǔ)器及輸入/輸出設(shè)備的動(dòng)作,來(lái)實(shí)現(xiàn)這條指令的功能。指令流向的控制,指令流向的控制即下條指令地址的形成控制。數(shù)據(jù)緩沖器、狀態(tài)條件寄存器3、CPU中的主要寄存器DR緩沖寄存器/地址寄存器AR中轉(zhuǎn)站補(bǔ)償速度差別IR指令寄存器PC程序計(jì)數(shù)器AC內(nèi)存或I/O指令數(shù)據(jù)DR指令數(shù)據(jù)4、操作控制器和時(shí)序產(chǎn)生器(1)數(shù)據(jù)通路(2)操作控制器:為數(shù)據(jù)通路的建立提供各種操作信號(hào)。操作信號(hào)提供的依據(jù)是指令操作碼和時(shí)序信號(hào),主要有三種類(lèi)型:硬布線(xiàn)控制器微程序控制器混合類(lèi)型4、操作控制器和時(shí)序產(chǎn)生器硬布線(xiàn)控制器硬布線(xiàn)控制器,它是采用組合邏輯技術(shù)來(lái)實(shí)現(xiàn)的,其時(shí)序控制信號(hào)形成部件是由門(mén)電路組成的復(fù)雜樹(shù)形網(wǎng)絡(luò)。這種方法是分立元件時(shí)代的產(chǎn)物,以使用最少器件數(shù)和取得最高操作速度為設(shè)計(jì)目標(biāo)。組合邏輯控制器的最大優(yōu)點(diǎn)是速度快,但是時(shí)序控制信號(hào)形成部件的結(jié)構(gòu)不規(guī)整,使得設(shè)計(jì)、調(diào)試、維修較困難,難以實(shí)現(xiàn)設(shè)計(jì)自動(dòng)化。4、操作控制器和時(shí)序產(chǎn)生器微程序控制器

微程序控制器是采用存儲(chǔ)邏輯來(lái)實(shí)現(xiàn)的,也就是把微操作信號(hào)代碼化,使每條機(jī)器指令轉(zhuǎn)化成為一段微程序并存入一個(gè)專(zhuān)門(mén)的存儲(chǔ)器(控制存儲(chǔ)器)中,微操作控制信號(hào)由微指令產(chǎn)生。微程序控制器的設(shè)計(jì)思想和組合邏輯設(shè)計(jì)思想截然不同。它具有設(shè)計(jì)規(guī)整、調(diào)試、維修以及更改、擴(kuò)充指令方便的優(yōu)點(diǎn),易于實(shí)現(xiàn)自動(dòng)化設(shè)計(jì),已成為當(dāng)前控制器的主流。但是,由于它增加了一級(jí)控制存儲(chǔ)器,所以指令執(zhí)行速度比組合邏輯控制器慢。組合邏輯和存儲(chǔ)邏輯結(jié)合型

這種控制器稱(chēng)為PLA控制器,它是吸收前兩種的設(shè)計(jì)思想來(lái)實(shí)現(xiàn)的。4、操作控制器和時(shí)序產(chǎn)生器時(shí)序產(chǎn)生器:提供定時(shí)和時(shí)序信號(hào)5.2指令周期5.2.1指令周期的基本概念5.2.2典型指令的指令周期5.2.3用方框圖語(yǔ)言表示指令周期5.2指令周期5.2.1指令周期的基本概念概念指令周期:指取指令、分析指令到執(zhí)行完該指令所需的全部時(shí)間。各種指令的指令周期相同嗎?為什么?機(jī)器周期通常又稱(chēng)CPU周期,通常把一條指令周期劃分為若干個(gè)機(jī)器周期,每個(gè)機(jī)器周期完成一個(gè)基本操作。主存的工作周期(存取周期)為基礎(chǔ)來(lái)規(guī)定CPU周期,比如,可以用CPU讀取一個(gè)指令字的最短時(shí)間來(lái)規(guī)定CPU周期不同的指令,可能包含不同數(shù)目的機(jī)器周期。一個(gè)機(jī)器周期中,包含若干個(gè)時(shí)鐘周期(節(jié)拍脈沖或T脈沖)。CPU周期規(guī)定,不同的計(jì)算機(jī)中規(guī)定不同5.2.1指令周期的基本概念時(shí)鐘周期在一個(gè)機(jī)器周期內(nèi),要完成若干個(gè)微操作。這些微操作有的可以同時(shí)執(zhí)行,有的需要按先后次序串行執(zhí)行。因而需要把一個(gè)機(jī)器周期分為若干個(gè)相等的時(shí)間段,每一個(gè)時(shí)間段稱(chēng)為一個(gè)節(jié)拍。節(jié)拍常用具有一定寬度的電位信號(hào)表示,稱(chēng)之為節(jié)拍電位。節(jié)拍的寬度取決于CPU完成一次基本的微操作的時(shí)間,如:ALU完成一次正確的運(yùn)算,寄存器間的一次數(shù)據(jù)傳送等。5.2.1指令周期的基本概念5.2.2指令周期下面我們用一個(gè)模型機(jī)來(lái)介紹指令周期概念主要包括:取指(令)周期、(指令)執(zhí)行周期執(zhí)行過(guò)程:框架原理5.2.2MOV指令的指令周期取指周期執(zhí)行周期225.2.2MOV指令的指令周期-取指①程序計(jì)數(shù)器PC中裝入第一條指令地址101(八進(jìn)制);②PC的內(nèi)容被放到指令地址總線(xiàn)ABUS(I)上,對(duì)指存進(jìn)行譯碼,并啟動(dòng)讀命令;③從101號(hào)地址讀出的MOV指令通過(guò)指令總線(xiàn)IBUS裝入指令寄存器IR;④程序計(jì)數(shù)器內(nèi)容加1,變成102,為取下一條指令做好準(zhǔn)備;⑤指令寄存器中的操作碼(OP)被譯碼;⑥CPU識(shí)別出是MOV指令,至此,取指周期即告結(jié)束。WR/RD①操作控制器(OC)送出控制信號(hào)到通用寄存器,選擇R1(10)作源寄存器,選擇R0作目標(biāo)寄存器;②OC送出控制信號(hào)到ALU,指定ALU做傳送操作;③OC送出控制信號(hào),打開(kāi)ALU輸出三態(tài)門(mén),將ALU輸出送到數(shù)據(jù)總線(xiàn)DBUS上。注意,任何時(shí)候DBUS上只能有一個(gè)數(shù)據(jù)。④OC送出控制信號(hào),將DBUS上的數(shù)據(jù)打入到數(shù)據(jù)緩沖寄存器DR(10);⑤OC送出控制信號(hào),將DR中的數(shù)據(jù)10打入到目標(biāo)寄存器R0,R0的內(nèi)容由00變?yōu)?0。至此,MOV指令執(zhí)行結(jié)束。5.2.3LAD指令的指令周期取指周期執(zhí)行周期5.2.3LAD指令的指令周期5.2.5ADD指令的指令周期5.2.5ADD指令的指令周期5.2.5STO指令的指令周期5.2.5STO指令的指令周期5.2.6JMP指令的指令周期5.2.6JMP指令的指令周期5.2.7用方框圖語(yǔ)言表示的指令周期引入目的主要是為了教學(xué)目的(控制器設(shè)計(jì))方法:指令系統(tǒng)設(shè)計(jì)(模型機(jī)的五指令系統(tǒng))方框——按CPU周期方框內(nèi)內(nèi)容——數(shù)據(jù)通路操作或控制操作菱形符號(hào)——判別或測(cè)試~——公操作前邊所講述的5種操作的框圖描述5.2.7方框圖表示指令周期取指執(zhí)行5.2.7方框圖表示指令周期P139例1雙總線(xiàn)結(jié)構(gòu)機(jī)器的數(shù)據(jù)通路圖微操作信號(hào)微操作信號(hào)注意微操作控制信號(hào)(右邊)ALU0ALU0總結(jié)一條指令包括一個(gè)取指令周期和一個(gè)及一個(gè)以上的執(zhí)行周期組成在每個(gè)CPU周期中數(shù)據(jù)通路是明確的數(shù)據(jù)通路的建立及操作受到操作控制器的控制,當(dāng)然決定于是什么指令。5.3時(shí)序產(chǎn)生器和控制方式5.3.1時(shí)序產(chǎn)生器作用和體制5.3.2時(shí)序信號(hào)產(chǎn)生器5.3.3控制方式5.3.1、時(shí)序產(chǎn)生器作用和體制作用:CPU中的控制器用它指揮機(jī)器的工作CPU可以用時(shí)序信號(hào)/周期信息來(lái)辨認(rèn)從內(nèi)存中取出的是指令(取指)還是數(shù)據(jù)(執(zhí)行)一個(gè)CPU周期中時(shí)鐘脈沖對(duì)CPU的動(dòng)作有嚴(yán)格的約束操作控制器發(fā)出的各種信號(hào)是時(shí)間(時(shí)序信號(hào))和空間(部件操作信號(hào))的函數(shù)。5.3.1、時(shí)序產(chǎn)生器作用和體制體制:電位—脈沖和狀態(tài)周期—節(jié)拍電位—節(jié)拍脈沖5.3.1、時(shí)序產(chǎn)生器作用和體制硬布線(xiàn)控制器,采用主狀態(tài)周期—節(jié)拍電位—節(jié)拍脈沖三級(jí)體制時(shí)序信號(hào)產(chǎn)生電路復(fù)雜5.3.1、時(shí)序產(chǎn)生器作用和體制微程序控制器,節(jié)拍電位—節(jié)拍脈沖二級(jí)體制利用微程序順序執(zhí)行來(lái)實(shí)現(xiàn)微操作時(shí)序信號(hào)產(chǎn)生電路簡(jiǎn)單5.3.2、時(shí)序信號(hào)產(chǎn)生器功能:產(chǎn)生時(shí)序信號(hào)各型計(jì)算機(jī)產(chǎn)生時(shí)序電路不相同大、中型計(jì)算機(jī)的時(shí)序電路復(fù)雜,微型計(jì)算機(jī)的時(shí)序電路簡(jiǎn)單構(gòu)成:時(shí)鐘源環(huán)形脈沖發(fā)生器節(jié)拍脈沖和讀寫(xiě)時(shí)序譯碼邏輯啟??刂七壿嬕?、時(shí)鐘脈沖源

電路左邊是振蕩電路,右邊是整形電路,左邊的電路產(chǎn)生接近正弦波的波形,右邊非門(mén)則將其整形為一個(gè)理想的方波11RC1C2二、環(huán)形脈沖發(fā)生器作用:產(chǎn)生一組有序間隔相等或不等的脈沖序列毛刺產(chǎn)生原因:電路內(nèi)部原因以及寄存器參數(shù)的影響,避免方法:采用循環(huán)移位寄存器電路分析:S為置位端,R為復(fù)位端SRDCPQQ三、環(huán)形脈沖發(fā)生器三、環(huán)形脈沖發(fā)生器C4C1C2C3Φ四、節(jié)拍脈沖和讀/寫(xiě)時(shí)序的編碼節(jié)拍脈沖的譯碼邏輯(一個(gè)CPU周期包含4個(gè)等間隔的節(jié)拍脈沖)四、節(jié)拍脈沖和讀/寫(xiě)時(shí)序的編碼讀寫(xiě)時(shí)序信號(hào)的譯碼邏輯表達(dá)式以上帶’的表示信號(hào)來(lái)自微程序控制器,持續(xù)一個(gè)CPU周期

讀寫(xiě)時(shí)序信號(hào)受到控制的信號(hào),而節(jié)拍脈沖信號(hào)時(shí)計(jì)算機(jī)加上電源后就產(chǎn)生。五、啟??刂七壿媶?dòng)、停機(jī)是隨機(jī)的,對(duì)讀/寫(xiě)時(shí)序信號(hào)也需要由啟停邏輯加以控制。當(dāng)運(yùn)行觸發(fā)器為“1”時(shí),打開(kāi)時(shí)序電路。當(dāng)計(jì)算機(jī)啟動(dòng)時(shí),一定要從第1個(gè)節(jié)拍脈沖前沿開(kāi)始工作。當(dāng)運(yùn)行觸發(fā)器“0”時(shí),關(guān)閉時(shí)序產(chǎn)生器。停機(jī)時(shí)一定要在第4個(gè)節(jié)拍脈沖結(jié)束后關(guān)閉時(shí)序產(chǎn)生器。5.3.3控制方式機(jī)器指令所包含的CPU周期數(shù)反映了指令的復(fù)雜程度,不同CPU周期的操作信號(hào)的數(shù)目和出現(xiàn)的先后次序也不相同??刂品绞剑嚎刂撇煌僮餍蛄袝r(shí)序信號(hào)的方法。分為以下幾種:同步控制方式異步控制方式聯(lián)合控制方式5.3.3控制方式同步控制方式(指令的機(jī)器周期和時(shí)鐘周期數(shù)不變)完全統(tǒng)一的機(jī)器周期執(zhí)行各種不同的指令采用不定長(zhǎng)機(jī)器周期中央控制于局部控制的結(jié)合異步控制方式每條指令需要多長(zhǎng)時(shí)間就占多長(zhǎng)時(shí)間聯(lián)合控制方式大部分指令在固定的周期內(nèi)完成,少數(shù)難以確定的操作采用異步方式機(jī)器周期的節(jié)拍脈沖固定,但是各指令的機(jī)器周期數(shù)不固定(微程序控制器采用)5.4微程序控制器發(fā)展微程序的概念和原理是由英國(guó)劍橋大學(xué)的M·V·Wilkes教授于1951年在曼徹斯特大學(xué)計(jì)算機(jī)會(huì)議上首先提出來(lái)的,當(dāng)時(shí)還沒(méi)有合適的存放微程序的控制存儲(chǔ)器的元件。到1964年,IBM公司在IBM360系列機(jī)上成功地采用了微程序設(shè)計(jì)技術(shù)。20世紀(jì)70年代以來(lái),由于VLSI技術(shù)的發(fā)展,推動(dòng)了微程序設(shè)計(jì)技術(shù)的發(fā)展和應(yīng)用。目前,從大型機(jī)到小型機(jī)、微型機(jī)都普遍采用了微程序設(shè)計(jì)技術(shù)。5.4微程序控制器基本思想:仿照解題的方法,把操作控制信號(hào)編制成微指令,存放到控制存儲(chǔ)器里,運(yùn)行時(shí),從控存中取出微指令,產(chǎn)生指令運(yùn)行所需的操作控制信號(hào)。從上述可以看出,微程序設(shè)計(jì)技術(shù)是用軟件方法來(lái)設(shè)計(jì)硬件的技術(shù)。5.4微程序控制器5.4.1微程序控制原理

5.4.2微程序設(shè)計(jì)技術(shù)5.4.1微程序控制原理

微命令:控制部件向執(zhí)行部件發(fā)出的各種控制命令叫作微命令,它是構(gòu)成控制序列的最小單位。例如:打開(kāi)或關(guān)閉某個(gè)控制門(mén)的電位信號(hào)、某個(gè)寄存器的打入脈沖等。微命令是控制計(jì)算機(jī)各部件完成某個(gè)基本微操作的命令。微操作:是微命令的操作過(guò)程。微命令和微操作是一一對(duì)應(yīng)的。微命令是微操作的控制信號(hào),微操作是微命令的操作過(guò)程。微操作是執(zhí)行部件中最基本的操作。5.4.1微程序控制原理

由于數(shù)據(jù)通路的結(jié)構(gòu)關(guān)系,微操作可分為相容的和互斥的兩種:互斥的微操作,是指不能同時(shí)或不能在同一個(gè)節(jié)拍內(nèi)并行執(zhí)行的微操作??梢跃幋a相容的微操作,是指能夠同時(shí)或在同一個(gè)節(jié)拍內(nèi)并行執(zhí)行的微操作。必須各占一位舉一個(gè)例子看一下:見(jiàn)下圖585.4.1微程序控制原理3、微指令:把在同一CPU周期內(nèi)并行執(zhí)行的微操作控制信息,存儲(chǔ)在控制存儲(chǔ)器里,稱(chēng)為一條微指令(Microinstruction)。它是微命令的組合,微指令存儲(chǔ)在控制器中的控制存儲(chǔ)器中一條微指令通常至少包含兩大部分信息:操作控制字段,又稱(chēng)微操作碼字段,用以產(chǎn)生某一步操作所需的各個(gè)微操作控制信號(hào)。某位為1,表明發(fā)微指令微指令發(fā)出的控制信號(hào)都是節(jié)拍電位信號(hào),持續(xù)時(shí)間為一個(gè)CPU周期微命令信號(hào)還要引入時(shí)間控制順序控制字段,又稱(chēng)微地址碼字段,用以控制產(chǎn)生下一條要執(zhí)行的微指令地址。5.4.1微程序控制原理4、微程序一系列微指令的有序集合就是微程序。一段微程序?qū)?yīng)一條機(jī)器指令。微地址

:存放微指令的控制存儲(chǔ)器的單元地址下面我們舉一個(gè)十進(jìn)制加法指令為實(shí)例。5.4.1微程序控制原理微指令基本格式5.4.1微程序控制原理以十進(jìn)制加法指令流程數(shù)據(jù)通路圖操作流程圖5.4.1微程序控制原理四條微指令如下000000000000111111000000000取指令操作信號(hào)P1判別64RD/WRLDDRLDIRLDPCLDARPC+15.4.1微程序控制原理R1+R2->R2010100100100000000010011010存結(jié)果LDR2R1->XR2->Y+5.4.1微程序控制原理十進(jìn)制加法指令的微程序010001001100000000100001001存結(jié)果LDR2R2->XR3->Y+P2判別P2條件為0,轉(zhuǎn)到取指令的公操作010001001001000000000000001存結(jié)果LDR2R2->XR3->Y-轉(zhuǎn)到取指令的公操作R2+R3->R2R2-R3->R25.4.1微程序控制原理控制存儲(chǔ)器(μCM)。這是微程序控制器的核心部件,用來(lái)存放微程序。其性能(包括容量、速度、可靠性等)與計(jì)算機(jī)的性能密切相關(guān)。5、微程序控制器原理5.4.1微程序控制原理微指令寄存器(μIR)用來(lái)存放從μCM取出的正在執(zhí)行的微指令,它的位數(shù)同微指令字長(zhǎng)相等。微地址形成部件用來(lái)產(chǎn)生初始微地址和后繼微地址,以保證微指令的連續(xù)執(zhí)行。微地址寄存器(μMAR)它接受微地址形成部件送來(lái)的微地址,為下一步從μCM中讀取微指令作準(zhǔn)備。5.4.1微程序控制原理微程序控制器的工作過(guò)程(1)執(zhí)行取指令的公共操作。取指令的公共操作通常由一段取指微程序來(lái)完成,在機(jī)器開(kāi)始運(yùn)行時(shí),自動(dòng)將取指微程序的入口微地址送μMAR,并從μCM中讀出相應(yīng)的微指令送入μIR。微指令的操作控制字段產(chǎn)生有關(guān)的微命令,用來(lái)控制實(shí)現(xiàn)取機(jī)器指令的公共操作。取指微程序的入口地址一般為μCM的0號(hào)單元,當(dāng)取指微程序執(zhí)行完后,從主存中取出的機(jī)器指令就已存人指令寄存器IR中了。(2)由機(jī)器指令的操作碼字段通過(guò)微地址形成部件產(chǎn)生出該機(jī)器指令所對(duì)應(yīng)的微程序的入口地址,并送入μMA(3)從μCM中逐條取出對(duì)應(yīng)的微指令并執(zhí)行之,每條微指令都能自動(dòng)產(chǎn)生下一條微指令的地址。5.4.1微程序控制原理(4)一條機(jī)器指令對(duì)應(yīng)的微程序的最后一條微指令執(zhí)行完畢后,其下一條微指令地址又回到取指微程序的人口地址,從而繼續(xù)第(1)步,以完成取下條機(jī)器指令的公共操作。以上是一條機(jī)器指令的執(zhí)行過(guò)程,如此周而復(fù)始,直到整個(gè)程序的所有機(jī)器指令執(zhí)行完畢。機(jī)器指令與微指令的關(guān)系狀態(tài)信息

例設(shè)某計(jì)算機(jī)運(yùn)算器框圖如圖所示,其中ALU為16位的加法器(高電平工作),SA,SB為16位暫存器。4個(gè)通用寄存器由D觸發(fā)器組成,Q端輸出,其讀、寫(xiě)控制功能見(jiàn)下表。寫(xiě)控制讀控制選擇WA1WA0

W選擇RA1RA0

R不寫(xiě)入**

0不讀出**

0

R3

1

1

1

R3

1

1

1

R2

0

1

1

R2

0

1

1

R1

1

0

1

R1

1

0

1

R0

0

0

1

R0

0

0

1

機(jī)器采用串行微程序控制方式,其微指令周期見(jiàn)上頁(yè)圖(b)。其中讀ROM是從控存中讀出一條微指令時(shí)間,為1μs;ALU工作是加法器做加法運(yùn)算,為500ns;m1是讀寄存器時(shí)間,為500ns;m2是寫(xiě)寄存器的工作脈沖寬度,為100ns。微指令字長(zhǎng)12位,微指令格式如下:RA0RA1:讀R0-R3的選擇控制

WA0WA1:寫(xiě)R0-R3的選擇控制R:寄存器讀命令

W:寄存器寫(xiě)命令LDSA:打入SA的控制信號(hào)LDSB:打入SB的控制信號(hào)SB-ALU:傳送SB的控制信號(hào)SB-ALU:傳送SB的控制信號(hào),并使加法器最低位加1.Reset:清暫存器SB為零的信號(hào)~:一段微程序結(jié)束,轉(zhuǎn)入取機(jī)器指令的控制信號(hào)RA0RA1WA0WA1RWLDSALDSBSB-ALUSB-ALUReset~要求:用二進(jìn)制代碼寫(xiě)出如下指令的微程序:(1)“ADDR0,R1”指令,即R0+R1→R1(2)“SUBR2,R3”指令,即R3-R2→R3(3)“MOVR2,R3”指令,即R2→R3先畫(huà)出三條指令的微指令的微程序流程圖,如下圖所示。下面不考慮“取指周期”和順序控制問(wèn)題,也即微程序僅考慮“執(zhí)行周期”,微指令序列的順序用數(shù)字標(biāo)號(hào)標(biāo)在每條微指令的右上角。每一框表示一條微指令。根據(jù)給定的微指令周期時(shí)間關(guān)系,完成ADD,SUB指令的執(zhí)行動(dòng)作需要3條微指令,MOV指令只需2條微指令。用二進(jìn)制代碼寫(xiě)出的三條指令的微程序列于下表中,其中*表示代碼隨意設(shè)置(0或1均可)。RA0RA1WA0WA1RWLDSALDSBSB-ALUSB-ALU取反加1Reset~

指令微程序代碼

ADD00**1010000001**10010000**0101001001SUB11**1010000010**10010000**1101000101MOV10**10100000**11010010115.4.2微程序設(shè)計(jì)技術(shù)一、設(shè)計(jì)微指令應(yīng)當(dāng)追求的目標(biāo)有利于縮短微指令的長(zhǎng)度有利于縮小CM的容量有利于提高微程序的執(zhí)行速度有利于對(duì)微指令的修改有利于提高微程序設(shè)計(jì)的靈活性5.4.2微程序設(shè)計(jì)技術(shù)一、微指令格式分為兩類(lèi):水平型微指令和垂直型微指令(1)水平型微指令

水平型微指令是指一次能定義并能并行執(zhí)行多個(gè)微命令的微指令。格式如下控制字段判別測(cè)試字段下地址字段5.4.2微程序設(shè)計(jì)技術(shù)水平型微指令特點(diǎn):優(yōu)點(diǎn):微指令字較長(zhǎng),速度越快。微指令中的微操作有高度的并行性。微指令譯碼簡(jiǎn)單??刂拼鎯?chǔ)器的縱向容量小,靈活性強(qiáng)。缺點(diǎn):微指令字比較長(zhǎng),明顯地增加了控制存儲(chǔ)器的橫向容量。水平微指令與機(jī)器指令差別很大,一般要熟悉機(jī)器結(jié)構(gòu)、數(shù)據(jù)通路、時(shí)序系統(tǒng)以及指令執(zhí)行過(guò)程的人才能進(jìn)行微程序設(shè)計(jì),這對(duì)用戶(hù)來(lái)說(shuō)是很困難的。5.4.2微程序設(shè)計(jì)技術(shù)(2)垂直型微指令:采用編碼方式。設(shè)置微操作控制字段時(shí),一次只能執(zhí)行一個(gè)微命令的微指令稱(chēng)為垂直型微指令。5.4.2微程序設(shè)計(jì)技術(shù)垂直型微指令的特點(diǎn):微指令字短,一般為10~20位左右。微指令的并行微操作能力有限,一條微指令一般只包含一個(gè)微操作命令。微指令譯碼比較復(fù)雜。全部微命令用一個(gè)微操作控制字段進(jìn)行編碼,微指令執(zhí)行時(shí)需行完全譯碼。設(shè)計(jì)用戶(hù)只需注意微指令的功能,而對(duì)微命令及其選擇、數(shù)據(jù)通路的結(jié)構(gòu)則不用過(guò)多地考慮,因此,便于用戶(hù)編制微程序。而且,編制的微程序規(guī)整、直觀(guān),便于實(shí)現(xiàn)設(shè)計(jì)的自動(dòng)化。垂直微指令字較短,使控制存儲(chǔ)器的橫向容量少。用垂直微指令編制微程序要使用較多的微指令,微程序較長(zhǎng);要求控制存儲(chǔ)器的縱向容量大。垂直微指令產(chǎn)生微命令要經(jīng)過(guò)譯碼,微程序執(zhí)行速度慢。不能充分利用數(shù)據(jù)通路具有多種并行操作能力5.4.2微程序設(shè)計(jì)技術(shù)水平型微指令和垂直型微指令的比較(1)水平型微指令并行操作能力強(qiáng),效率高,靈活性強(qiáng),垂直型微指令則較差。(2)水平型微指令執(zhí)行一條指令的時(shí)間短,垂直型微指令執(zhí)行時(shí)間長(zhǎng)。(3)由水平型微指令解釋指令的微程序,有微指令字較長(zhǎng)而微程序短的特點(diǎn)。垂直型微指令則相反。(4)水平型微指令用戶(hù)難以掌握,而垂直型微指令與指令比較相似,相對(duì)來(lái)說(shuō),比較容易掌握。5.4.2微程序設(shè)計(jì)技術(shù)二、水平格式的微命令的編碼方法編碼有三種方法:直接表示法/編碼表示法/混合表示法1、直接表示法:操作控制字段中的各位分別可以直接控制計(jì)算機(jī),不需要進(jìn)行譯碼。5.4.2微程序設(shè)計(jì)技術(shù)直接表示法特點(diǎn):這種方法結(jié)構(gòu)簡(jiǎn)單,并行性強(qiáng),操作速度快,但是微指令字太長(zhǎng),若微命令的總數(shù)為N個(gè),則微指令字的操作控制字段就要有N位。另外,在N個(gè)微命令中,有許多是互斥的,不允許并行操作,將它們安排在一條微指令中是毫無(wú)意義的,只會(huì)使信息的利用率下降。直接表示法舉例,操作控制字段的每一個(gè)獨(dú)立的二進(jìn)制位代表一個(gè)微命令,該位為“1”表示這個(gè)微命令有效,為“0”表示這個(gè)微命令無(wú)效。5.4.2微程序設(shè)計(jì)技術(shù)后繼微地址判斷條件uA0uA1uA2uA3uA4uA5P0P1P2P3INTSINTCLDIRLDPCM4PC_ADDPC_INCLDIARLDAR1AR1_INCM3LDERIAR_BUS#SW_BUS#RS_BUS#ALU_BUSLRWCEL#WRDLDDR1M1S0S1S2111213141516171819202122232425262728293031323334

微指令格式舉例(TEC_5實(shí)驗(yàn)平臺(tái)格式)35TJ5.4.2微程序設(shè)計(jì)技術(shù)2、編碼表示法:將操作控制字段分為若干個(gè)小段,每段內(nèi)采用最短編碼法,段與段之間采用直接控制法。編碼表示法特點(diǎn):可以避免互斥,使指令字大大縮短,但增加了譯碼電路,使微程序的執(zhí)行速度減慢5.4.2微程序設(shè)計(jì)技術(shù)3、混合編碼法:將前兩種結(jié)合在一起,兼顧兩者特點(diǎn)。一個(gè)字段的某些編碼不能獨(dú)立地定義某些微命令,而需要與其他字段的編碼來(lái)聯(lián)合定義,如例2:F1與RW5.4.2微程序設(shè)計(jì)技術(shù)編碼注意幾點(diǎn):字段編碼法中操作控制字段并非是任意的,必須要遵循如下的原則:①把互斥性的微命令分在同一段內(nèi),兼容性的微命令分在不同段內(nèi)。這樣不僅有助于提高信息的利用率,縮短微指令字長(zhǎng),而且有助于充分利用硬件所具有的并行性,加快執(zhí)行的速度。②應(yīng)與數(shù)據(jù)通路結(jié)構(gòu)相適應(yīng)。③每個(gè)小段中包含的信息位不能太多,否則將增加譯碼線(xiàn)路的復(fù)雜性和譯碼時(shí)間。④一般每個(gè)小段還要留出一個(gè)狀態(tài),表示本字段不發(fā)出任何微命令。因此當(dāng)某字段的長(zhǎng)度為三位時(shí),最多只能表示七個(gè)互斥的微命令,通常用000表示不操作。下面舉例說(shuō)明123456789順序控制4、5:00無(wú)操作01R1->X10R2->X11DR->X

6、7:00無(wú)操作01R3->Y10R2->Y11R1->Y

8、9:00無(wú)操作01+10-11M

混和表示法1、2、3位為直接表示法4、56、7 8、9位為編碼表示法5.4.2微程序設(shè)計(jì)技術(shù)三、微指令地址的形成入口地址:每條機(jī)器指令對(duì)應(yīng)一段微程序,當(dāng)公用的取指微程序從主存中取出機(jī)器指令之后,由機(jī)器指令的操作碼字段指出各段微程序的入口地址,這是一種多分支(或多路轉(zhuǎn)移)的情況。機(jī)器指令的操作碼轉(zhuǎn)換成初始微地址的方式主要有兩種。計(jì)數(shù)器的方式多路轉(zhuǎn)移的方式5.4.2微程序設(shè)計(jì)技術(shù)1、入口地址形成:如果機(jī)器指令操作碼字段的位數(shù)和位置固定,可以直接使操作碼與微程序入口地址的部分位相對(duì)應(yīng)。5.4.2微程序設(shè)計(jì)技術(shù)2、后繼微地址形成方法(1)計(jì)數(shù)器的方式方法:微程序順序執(zhí)行時(shí),其后繼微地址就是現(xiàn)行微地址加上一個(gè)增量(通常為1);當(dāng)微程序遇到轉(zhuǎn)移或轉(zhuǎn)子程序時(shí),由微指令的轉(zhuǎn)移地址段來(lái)形成轉(zhuǎn)移微地址。在微程序控制器中也有一個(gè)微程序計(jì)數(shù)器μPC,一般情況下都是將微地址寄存器μMAR作為μPC特點(diǎn):優(yōu)點(diǎn)是簡(jiǎn)單、易于掌握,編制微程序容易缺點(diǎn)是這種方式不能實(shí)現(xiàn)兩路以上的并行微程序轉(zhuǎn)移,因而不利于提高微程序的執(zhí)行速度。5.4.2微程序設(shè)計(jì)技術(shù)(2)多路轉(zhuǎn)移的方式根據(jù)條件轉(zhuǎn)移如圖條件:狀態(tài)條件/測(cè)試/微指令中微地址/操作碼【例2】微地址寄存器有6位(μA5-μA0),當(dāng)需要修改其內(nèi)容時(shí),可通過(guò)某一位觸發(fā)器的強(qiáng)置端S將其置“1”?,F(xiàn)有三種情況:(1)執(zhí)行“取指”微指令后,微程序按IR的OP字段(IR3-IR0)進(jìn)行16路分支;(2)執(zhí)行條件轉(zhuǎn)移指令微程序時(shí),按進(jìn)位標(biāo)志C的狀態(tài)進(jìn)行2路分支;(3)執(zhí)行控制臺(tái)指令微程序時(shí),按IR4,IR5的狀態(tài)進(jìn)行4路分支。請(qǐng)按多路轉(zhuǎn)移方法設(shè)計(jì)微地址轉(zhuǎn)移邏輯。

按所給設(shè)計(jì)條件,微程序有三種判別測(cè)試,分別為P1,P2,P3。由于修改μA5-μA0內(nèi)容具有很大靈活性,現(xiàn)分配如下:(1)用P1和IR3-IR0修改μA3-μA0;(2)用P2和C修改μA0;(3)用P3和IR5,IR4修改μA5,μA4。另外還要考慮時(shí)間因素T4(假設(shè)CPU周期最后一個(gè)節(jié)拍脈沖),故轉(zhuǎn)移邏輯表達(dá)式如下:

μA5=P3·IR5·T4

μA4=P3·IR4·T4

μA3=P1·IR3·T4

μA2=P1·IR2·T4

μA1=P1·IR1·T4

μA0=P1·IR0·T4+P2·C·T4

由于從觸發(fā)器強(qiáng)置端修改,故前5個(gè)表達(dá)式可用“與非”門(mén)實(shí)現(xiàn),最后一個(gè)用“與或非”門(mén)實(shí)現(xiàn)。下圖僅畫(huà)出了μA2、μA1、μA0觸發(fā)器的微地址轉(zhuǎn)移邏輯圖。5.4.2微程序設(shè)計(jì)技術(shù)四、動(dòng)態(tài)微程序設(shè)計(jì)對(duì)應(yīng)于一臺(tái)計(jì)算機(jī)的機(jī)器指令只有一組微程序,這一組微程序設(shè)計(jì)好之后,一般無(wú)須改變而且也不好改變,這種微程序設(shè)計(jì)技術(shù)稱(chēng)為靜態(tài)微程序設(shè)計(jì)。

采用EPROM作為控制存儲(chǔ)器,可以通過(guò)改變微指令和微程序來(lái)改變機(jī)器的指令系統(tǒng),這種微程序設(shè)計(jì)技術(shù)稱(chēng)為動(dòng)態(tài)微程序設(shè)計(jì)。5.5硬布線(xiàn)控制器1、實(shí)現(xiàn)方法通過(guò)邏輯電路直接連線(xiàn)而產(chǎn)生的,又稱(chēng)為組合邏輯控制方式2、設(shè)計(jì)目標(biāo)使用最少元件(復(fù)雜的樹(shù)形網(wǎng)絡(luò))速度最高5.5硬布線(xiàn)控制器3、邏輯原理(1)邏輯原理圖C為微操作控制信號(hào)Im為譯碼器輸出,Mi為節(jié)拍電位,Tk為節(jié)拍脈沖,Bj為狀態(tài)條件C由組合電路實(shí)現(xiàn),速度快,但難以修改。 (2)指令的執(zhí)行流程微程序控制器時(shí)序信號(hào)簡(jiǎn)單。只需要若干節(jié)拍脈沖信號(hào)即可。組合邏輯控制器除了節(jié)拍脈沖信號(hào)外,還需要節(jié)拍電位信號(hào)。5.5硬布線(xiàn)控制器

(3)微操作控制信號(hào)產(chǎn)生在微程序控制器中,微操作控制信號(hào)由微指令產(chǎn)生,并且可以重復(fù)使用。在硬聯(lián)線(xiàn)控制器中,某一微操作控制信號(hào)由布爾代數(shù)表達(dá)式描述的輸出函數(shù)產(chǎn)生。設(shè)計(jì)微操作控制信號(hào)的方法和過(guò)程是,根據(jù)所有機(jī)器指令流程圖,尋找出產(chǎn)生同一個(gè)微操作信號(hào)的所有條件,并與適當(dāng)?shù)墓?jié)拍電位和節(jié)拍脈沖組合,從而寫(xiě)出其布爾代數(shù)表達(dá)式并進(jìn)行簡(jiǎn)化,然后用門(mén)電路或可編程器件來(lái)實(shí)現(xiàn)。5.5硬布線(xiàn)控制器4、設(shè)計(jì)步驟(1)畫(huà)出指令流程圖(2)列出微操作時(shí)間表將指令流程圖中的微操作合理地安排到各個(gè)機(jī)器周期的相應(yīng)節(jié)拍和脈沖中去;微操作時(shí)間表形象地表明:什么時(shí)間、根據(jù)什么條件發(fā)出哪些微操作信號(hào)。5.5硬布線(xiàn)控制器(3)進(jìn)行微操作信號(hào)的綜合當(dāng)列出所有指令的微操作時(shí)間表之后,需要對(duì)它們進(jìn)行綜合分析,把凡是要執(zhí)行某一微操作的所有條件(哪條指令、哪個(gè)機(jī)器周期、哪個(gè)節(jié)拍和脈沖等)都考慮在內(nèi),加以分類(lèi)組合,列出各微操作產(chǎn)生的邏輯表達(dá)式,然后加以簡(jiǎn)化,使邏輯表達(dá)式更為合理。(4)實(shí)現(xiàn)電路根據(jù)整理并化簡(jiǎn)的邏輯表達(dá)式組,可以用一系列組合邏輯電路加以實(shí)現(xiàn),加根據(jù)邏輯表達(dá)式畫(huà)出邏輯電路圖,用邏輯門(mén)電路的組合來(lái)實(shí)現(xiàn)之,也可以直接根據(jù)邏輯表達(dá)式,用PLA或其他邏輯電路實(shí)現(xiàn)。

例3根據(jù)圖5.29,寫(xiě)出以下操作控制信號(hào)RD(I)、RD(D)、WE(D)、LDPC、LDIR、LDAR、LDDR、PC+1、LDR2的邏輯表達(dá)式。其中每個(gè)操作控制信號(hào)的含義是:RD(I)—指存讀命令RD(D)—數(shù)存讀命令WE(D)——數(shù)存寫(xiě)命令LDPC—打入程序計(jì)數(shù)器LDIR—打入指令寄存器LDAR—打入數(shù)存地址寄存器LDDR—打入數(shù)據(jù)緩沖寄存器PC+1—程序計(jì)數(shù)器加1LDR2—打入R1寄存器數(shù)據(jù)通路圖RD/WRLDDRLDIRLDPCLDARPC+1

圖5.29硬布線(xiàn)控制器的指令周期流程圖列出微操作時(shí)間表(根據(jù)數(shù)據(jù)通路和操作流程圖)節(jié)拍電位脈沖LDARLDDRLDIRM1T1ADD、STA、JMP、NOP、CLAT2T3ADD、STA、JMP、NOP、CLAT4ADD、STA、JMP、NOP、CLAM2T1T2T3T4ADD、STA、JMPM3T1T2T3ADD、STAT4進(jìn)行微操作信號(hào)的綜合

圖5.29中五條指令的微操作控制信號(hào)舉例。

LDAR=M1·T4+M2(ADD+STA+JMP)·T4

LDDR=M1·T3+M3(ADD+STA)·T3

LDIR=M1·T4

其中M1、M2、M3是三個(gè)節(jié)拍電位信號(hào);T3、T4為時(shí)鐘周期信號(hào);ADD、STA、JMP是指令OP字段譯碼器的輸出信號(hào)。最后給出電路(省略)5.7流水CPUEnslow統(tǒng)計(jì)過(guò):1965~1975間,反映器件性能級(jí)延遲大約為原來(lái)的1/10,而反映計(jì)算機(jī)系統(tǒng)性能之一的平均指令時(shí)間為1%。結(jié)論:同一時(shí)期計(jì)算機(jī)系統(tǒng)性能比器件性能提高的速度快得多促使計(jì)算機(jī)性能提高的因素除了器件性能得提高外還有哪些呢??-體系結(jié)構(gòu)改善5.7流水CPU5.7.1并行處理技術(shù)5.7.2流水CPU的結(jié)構(gòu)5.7.3流水線(xiàn)中的主要問(wèn)題5.7.4PentiumCPU5.7.1并行處理技術(shù)并行性(Parrelism)概念問(wèn)題中具有可以同時(shí)進(jìn)行運(yùn)算或操作的特性例:在相同時(shí)延的條件下,用n位運(yùn)算器進(jìn)行n位并行運(yùn)算速度幾乎是一位運(yùn)算器進(jìn)行n位串行運(yùn)算的n倍(狹義)(廣義)含義只要在同一時(shí)刻(同時(shí)性)或在同一時(shí)間間隔內(nèi)(并發(fā)性)完成兩種或兩種以上性質(zhì)相同或不同的工作,他們?cè)跁r(shí)間上相互重疊,都體現(xiàn)了并行性5.7.1并行處理技術(shù)三種形式時(shí)間并行(重疊):讓多個(gè)處理過(guò)程在時(shí)間上相互錯(cuò)開(kāi),輪流使用同一套硬件設(shè)備的各個(gè)部件,以加快硬件周轉(zhuǎn)而贏(yíng)得速度,實(shí)現(xiàn)方式就是采用流水處理部件空間并行(資源重復(fù)):以數(shù)量取勝它能真正的體現(xiàn)同時(shí)性L(fǎng)SI和VLSI為其提供了技術(shù)保證時(shí)間+空間并行Pentium中采用了超標(biāo)量流水線(xiàn)技術(shù)浮點(diǎn)運(yùn)算流水線(xiàn)1、提高并行性的兩個(gè)渠道:空間并行性:增加冗余部件,如增加多操作部件處理機(jī)和超標(biāo)量處理機(jī)時(shí)間并行性:改善操作流程如:流水線(xiàn)技術(shù)浮點(diǎn)運(yùn)算流水線(xiàn)2、流水技術(shù)原理在流水線(xiàn)中必須是連續(xù)的任務(wù),只有不斷的提供任務(wù)才能充分發(fā)揮流水線(xiàn)的效率把一個(gè)任務(wù)分解為幾個(gè)有聯(lián)系的子任務(wù)。每個(gè)子任務(wù)由一個(gè)專(zhuān)門(mén)的功能部件實(shí)現(xiàn)在流水線(xiàn)中的每個(gè)功能部件之后都要有一個(gè)緩沖寄存器,或稱(chēng)為鎖存器流水線(xiàn)中各段的時(shí)間應(yīng)該盡量相等,否則將會(huì)引起“堵塞”和“斷流”的現(xiàn)象流水線(xiàn)需要有裝入時(shí)間和排空時(shí)間,只有當(dāng)流水線(xiàn)完全充滿(mǎn)時(shí),才能充分發(fā)揮效率流水線(xiàn)原理設(shè)過(guò)程段

Si所需的時(shí)間為τi,緩沖寄存器的延時(shí)為τl,線(xiàn)性流水線(xiàn)的時(shí)鐘周期定義為

τ=max{τi}+τl=τm+τl流水線(xiàn)處理的頻率為

f=1/τ。流水線(xiàn)原理一個(gè)具有k級(jí)過(guò)程段的流水線(xiàn)處理

n個(gè)任務(wù)需要的時(shí)鐘周期數(shù)為T(mén)k=k+(n-1),所需要的時(shí)間為:T=Tk×τ而同時(shí),順序完成的時(shí)間為:T=n×k×τk級(jí)線(xiàn)性流水線(xiàn)的加速比:Ck=TL

n·k

Tkk+(n-1)流水線(xiàn)浮點(diǎn)運(yùn)算器A=a×2P,

B=b×2q在4級(jí)流水線(xiàn)加法器中實(shí)現(xiàn)上述浮點(diǎn)加法時(shí),分為以下操作:(1)求階差(2)對(duì)階(3)相加(4)規(guī)格化5.7.2流水CPU的結(jié)構(gòu)流水計(jì)算機(jī)的系統(tǒng)組成存儲(chǔ)器體系:主存采用多體交叉存儲(chǔ)器;Cache流水方式CPU:指令部件、指令隊(duì)列、執(zhí)行部件指令流水線(xiàn)指令隊(duì)列:FIFO執(zhí)行部件:可以有多個(gè)采用流水線(xiàn)方式構(gòu)成的算術(shù)邏輯部件構(gòu)成,可以將定點(diǎn)運(yùn)算部件和浮點(diǎn)運(yùn)算部件分開(kāi)。5.7.2流水CPU的結(jié)構(gòu)流水線(xiàn)CPU時(shí)空?qǐng)DIF(InstructionFetch取指)ID(InstructionDecode指令譯碼)EX(Execution執(zhí)行)WB(WriteBack寫(xiě)回)5.7.2流水CPU的結(jié)構(gòu)流水CPU非流水CPU5.7.2流水CPU的結(jié)構(gòu)具有兩條以上的指令流水線(xiàn)上圖中流水線(xiàn)滿(mǎn)載時(shí),每一個(gè)時(shí)鐘周期可以執(zhí)行2條指令采用時(shí)間和空間并行技術(shù)5.7.2流水CPU的結(jié)構(gòu)流水線(xiàn)的分類(lèi)按級(jí)別分為指令流水線(xiàn)算術(shù)流水線(xiàn)處理機(jī)流水線(xiàn)(宏流水線(xiàn))5.7.3流水線(xiàn)中的主要問(wèn)題1、瓶頸問(wèn)題(流水線(xiàn)中有速度慢的段)再分成幾個(gè)段用資源重復(fù)的方法也可以解決2、資源相關(guān):多條指令進(jìn)入流水線(xiàn)后在同一時(shí)鐘周期內(nèi)爭(zhēng)用同一功能部件。解決辦法:后邊指令拖一拍再推進(jìn);增設(shè)一個(gè)功能部件5.7.3流水線(xiàn)中的主要問(wèn)題3、數(shù)據(jù)相關(guān)RAW(ReadAfterWrite)后面指令用到前面指令所寫(xiě)的數(shù)據(jù)WAW(WriteAfterWrite)兩條指令寫(xiě)同一個(gè)單元在簡(jiǎn)單流水線(xiàn)中沒(méi)有此類(lèi)相關(guān),因?yàn)椴粫?huì)亂序執(zhí)行WAR(WriteAfterRead)后面指令覆蓋前面指令所讀的單元在簡(jiǎn)單流水線(xiàn)中沒(méi)有此類(lèi)相關(guān)解決辦法:可以推后后繼指令對(duì)相關(guān)單元的讀操作設(shè)置相關(guān)的直接通路(Forwarding)5.7.3流水線(xiàn)中的主要問(wèn)題例:兩條指令發(fā)生數(shù)據(jù)相關(guān)沖突RAW(ReadAfterWrite)ADD R1, R2, R3 ;R2+R3-->R1SUB R4, R1, R5 ;R1-R5-->R4AND R6, R1, R7 ;R1^R7-->R6【例4】流水線(xiàn)中有三類(lèi)數(shù)據(jù)相關(guān)沖突:寫(xiě)后讀(RAW)相關(guān);讀后寫(xiě)(WAR)相關(guān);寫(xiě)后寫(xiě)(WAW)相關(guān)。判斷以下三組指令各存在哪種類(lèi)型的數(shù)據(jù)相關(guān)。(1)I1ADDR1,R2,R3;(R2)+(R3)->R1I2SUBR4,R1,R5;(R1)-(R5)->R4(2)I3STOM(x),R3;(R3)->M(x),M(x)是存儲(chǔ)器單元

I4ADDR3,R4,R5;(R4)+(R5)->R3(3)I5MULR3,R1,R2;(R1)×(R2)->R3I6ADDR3,R4,R5;(R4)+(R5)->R3解:第(1)組指令中,I1指令運(yùn)算結(jié)果應(yīng)先寫(xiě)入R1,然后在I2指令中讀出R1內(nèi)容。由于I2指令進(jìn)入流水線(xiàn),變成I2指令在I1指令寫(xiě)入R1前就讀出R1內(nèi)容,發(fā)生RAW相關(guān)。第(2)組指令中,I3指令應(yīng)先讀出R3內(nèi)容并存入存儲(chǔ)單元M(x),然后在I4指令中將運(yùn)算結(jié)果寫(xiě)入R3。但由于I4指令進(jìn)入流水線(xiàn),變成I4指令在I3指令讀出R3內(nèi)容前就寫(xiě)入R3,發(fā)生WAR相關(guān)。第(3)組指令中,如果I6指令的加法運(yùn)算完成時(shí)間早于I5指令的乘法運(yùn)算時(shí)間,變成指令I(lǐng)6在指令I(lǐng)5寫(xiě)入R3前就寫(xiě)入R3,導(dǎo)致R3的內(nèi)容錯(cuò)誤,發(fā)生WAW相關(guān)。5.7.3流水線(xiàn)中的主要問(wèn)題4、控制相關(guān)引起原因:轉(zhuǎn)移指令解決辦法:延遲轉(zhuǎn)移法,轉(zhuǎn)移預(yù)測(cè)法5.7.4PentiumCPUPentiumCPU(第一代)1989年初0.8um工藝,310萬(wàn)晶體管有60M和66MHz外頻兩種版本5V電壓,功耗20W超標(biāo)量流水線(xiàn)結(jié)構(gòu)486有一條流水線(xiàn)Pentium有U和V兩條指令流水線(xiàn)U流水線(xiàn)可以執(zhí)行所有的整數(shù)和浮點(diǎn)指令V流水線(xiàn)可以執(zhí)行簡(jiǎn)單的整數(shù)和FXCH浮點(diǎn)指令雙重分離式Cache,減少了等待和搬移數(shù)據(jù)時(shí)間32位

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論