第6章中央處理器(2)-硬布線和流水線_第1頁(yè)
第6章中央處理器(2)-硬布線和流水線_第2頁(yè)
第6章中央處理器(2)-硬布線和流水線_第3頁(yè)
第6章中央處理器(2)-硬布線和流水線_第4頁(yè)
第6章中央處理器(2)-硬布線和流水線_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

6.4硬布線控制的計(jì)算機(jī)

在運(yùn)算控制器邏輯圖,“時(shí)序控制信號(hào)形成部件”產(chǎn)生控制計(jì)算機(jī)各部分操作所需的控制信號(hào),這個(gè)部件組成有兩種方式: (1)微程序控制方式 (2)硬布線控制方式硬布線控制方式:通過(guò)邏輯電路直接連線而產(chǎn)生的,所以又稱為組合邏輯控制方式。至于控制器的其他組成部分,諸如時(shí)鐘、啟停電路、程序計(jì)數(shù)器、指令寄存器以及電路配合問(wèn)題等等,則不因控制方式而異。與微程序控制相比,硬布線控制的速度較快。其原因是微程序控制中每條微指令都要從控存中讀取一次,影響了速度,而硬布線控制主要取決于電路延遲。因此,近年來(lái)在某些超高速新型計(jì)算機(jī)結(jié)構(gòu)中,又選用了硬布線控制,或與微程序控制器混合使用。6.4.1時(shí)序與節(jié)拍

一條指令的實(shí)現(xiàn)可分成:取指、計(jì)算地址、取數(shù)及執(zhí)行等幾個(gè)步驟。在微程序控制方式中,每一步由一條微指令實(shí)現(xiàn),而硬布線控制方式則由指令的操作碼直接控制并產(chǎn)生實(shí)現(xiàn)上述各步驟所需的控制信號(hào)。一條指令的每一步由一個(gè)機(jī)器周期實(shí)現(xiàn),如何區(qū)分一條指令的四個(gè)機(jī)器周期呢?

可考慮的方法有: 1.兩位計(jì)數(shù)器的譯碼輸出產(chǎn)生的四個(gè)狀態(tài)來(lái)表示當(dāng)前所處的機(jī)器周期,(2-4譯碼器)如圖6.22所示; 2.用四位觸發(fā)器來(lái)分別表示四個(gè)周期,當(dāng)機(jī)器處于某一周期時(shí),相應(yīng)的觸發(fā)器處于“1”狀態(tài),而其余三個(gè)觸發(fā)器則處于“0”狀態(tài),四位移位寄存器即可實(shí)現(xiàn)此功能。兩位計(jì)數(shù)器譯碼輸出4位圖6.22用計(jì)數(shù)器譯碼器形成機(jī)器周期信號(hào)

由于每條指令的功能不同,機(jī)器周期數(shù)和長(zhǎng)短有所不同,計(jì)數(shù)器或移位寄存器的工作時(shí)序發(fā)生變化的規(guī)律與指令有關(guān)。A指令需4個(gè)機(jī)器周期B指令需3個(gè)機(jī)器周期當(dāng)前周期計(jì)數(shù)狀態(tài)下一周期計(jì)數(shù)狀態(tài)A指令:cyA’=cyAcyB+cyAcyB;

cyB’=cyAcyB+cyAcyB=cyB。B指令:cyA’=cyAcyB+cyAcyB=cyB;cyB’=cyAcyB。A指令:cyA’=cyAcyB+cyAcyB;

cyB’=cyAcyB+cyAcyB=cyB。B指令:cyA’=cyAcyB+cyAcyB=cyB;cyB’=cyAcyB。根據(jù)邏輯表達(dá)式畫(huà)出邏輯圖(僅有兩條指令)如下:6.4.2操作控制信號(hào)的產(chǎn)生

1.操作碼譯碼器

指令:操作碼+地址碼在機(jī)器內(nèi)設(shè)置一個(gè)指令譯碼器

輸入:操作碼輸出:反映出當(dāng)前正在執(zhí)行的指令。由譯碼器的輸出和機(jī)器周期狀態(tài)cyl~cy4作為輸入,使用邏輯電路產(chǎn)生操作控制信號(hào)。7位OP

2.操作控制信號(hào)的產(chǎn)生

“組合邏輯電路”究竟是由什么組成的?以加法指令為例,如6.1一條加法指令的功能是由四個(gè)機(jī)器周期cyl~cy4完成的,分別為取指、計(jì)算有效地址、取操作數(shù)、進(jìn)行加法運(yùn)算并送結(jié)果。取指令周期:控制信號(hào)的邏輯式為:

PC→AB=加法指令·

cy1ADS=加法指令·

cy1·T1M/IO=加法指令·

cy1W/R=加法指令·

cy1DB→IR=加法指令·

cy1PC+1=加法指令·

cy1在計(jì)算地址周期cy2,列出邏輯表達(dá)式

rsl→GR=加法指令·

cy2

(rsl)→ALU=加法指令·

cy2

……ALU→AR=加法指令·

cy2對(duì)每一條指令都進(jìn)行同樣的分析,得出邏輯表達(dá)式。圖6.25實(shí)現(xiàn)rs1→GR,(rs1)→ALU的邏輯圖(1)取指周期cy1的信號(hào)對(duì)所有指令均相同。

主要結(jié)論:(2)同一控制信號(hào)可能在多個(gè)指令中運(yùn)用。如:‘+’=加法指令·cy2+加法指令·cy4+減法指令·cy2+轉(zhuǎn)移指令·cy2+……設(shè)某機(jī)有7位操作碼(OP0~OP6),已知加法指令的操作碼為0001100,則形成加法指令信號(hào)的邏輯表達(dá)式為: 加法指令=OP0·OP1·OP2·OP3·OP4·OP5·OP6。(3)同種類型的指令所需要的控制信號(hào)大部分相同。如:所有的算術(shù)邏輯運(yùn)算指令僅在ALU的操作命令及是否置狀態(tài)位上不同,其他均完全相同。(4)在確定指令操作碼時(shí),要認(rèn)真做好分類。例如,某機(jī)有128條指令,7位操作碼(OP0~OP6),其中有十六條算術(shù)邏輯運(yùn)算指令,那么可以令這些指令的三位操作碼完全相等(例如OP0~OP2為001),而OP3~OP6分別表示16條指令,設(shè)命令A(yù)是所有算術(shù)邏輯指令在cy2周期中都需產(chǎn)生的,則:

A=加法指令·cy2+減法指令·cy2+邏輯加指令·cy2+…=(加法指令+減法指令+邏輯加指令+…)cy2=OP0·OP1·OP2·cy26.4.3硬布線控制器的組成圖6.26控制器總框圖

程序計(jì)數(shù)器的輸入:有四種來(lái)源。(1)開(kāi)機(jī)后的reset信號(hào),將PC置以初始地址;(2)順序執(zhí)行指令:由PC+1形成下一條指令地址;(3)轉(zhuǎn)移:由ALU送來(lái)轉(zhuǎn)移地址(通過(guò)ALU部件計(jì)算有效地址)(4)外來(lái)中斷請(qǐng)求信號(hào):若CPU響應(yīng)中斷,則由中斷控制邏輯部件產(chǎn)生中斷入口地址。1.程序計(jì)數(shù)器和中斷控制邏輯2.硬布線邏輯的實(shí)現(xiàn)途徑

硬布線邏輯可用PLA(可編程邏輯陣列,地址與存儲(chǔ)區(qū)或均可編程)、PAL(可編程陣列邏輯,與可編程、或不可編程、增加三態(tài)輸出器件及記憶元件)、GAL(通用陣列邏輯,與或均可編程、輸出邏輯宏單元)或半定制電路門陣列(GA)來(lái)實(shí)現(xiàn)。166.4.4硬布線控制邏輯設(shè)計(jì)中的若干問(wèn)題中央處理器CPU是整個(gè)計(jì)算機(jī)的核心??刂茊卧狢ON(時(shí)序控制信號(hào)形成部件)是控制器的核心??刂茊卧妮斎氚ǎ簳r(shí)序信號(hào)機(jī)器指令操作碼各部件的狀態(tài)反饋信號(hào)等 輸出的微操作控制信號(hào)有兩個(gè)去向:CPU內(nèi)部的控制信號(hào),用于控制寄存器之間的數(shù)據(jù)傳送、以及實(shí)現(xiàn)CPU功能的其它操作。CPU外部的控制信號(hào),即送往主存或外設(shè)的控制信號(hào),用于控制CPU與主存和外設(shè)的數(shù)據(jù)交換。硬布線控制邏輯設(shè)計(jì)中的若干問(wèn)題1.指令操作碼的代碼分配主要目標(biāo):簡(jiǎn)化控制部分的電路,減少延遲時(shí)間。主要難點(diǎn): (1)CISC不定長(zhǎng)操作碼的譯碼困難; (2)為后續(xù)升級(jí)系統(tǒng)預(yù)留指令位置困難。2.

確定機(jī)器周期、節(jié)拍與主頻保證大部分指令在一個(gè)周期內(nèi)完成,部分指令通過(guò)如“ready”信號(hào)等方式來(lái)增加機(jī)器周期來(lái)完成。

3、根據(jù)指令功能,確定每一條指令所需的機(jī)器周期數(shù)以及每一周期所完成的操作如:“+”=加法指令·(cy2+cy4)+減法指令·cy2+轉(zhuǎn)移指令·cy2+……

“讀”=cy1+加法指令·cy3+減法指令·cy3+……

對(duì)于復(fù)雜的操作,如乘法,采用加法與移位操作,每一位乘執(zhí)行一個(gè)周期等方法。微操作信號(hào)=指令名∧機(jī)器周期∧節(jié)拍∧條件4.

綜合所有指令的每一個(gè)操作命令(寫(xiě)出邏輯表達(dá)式,并化簡(jiǎn)之)硬布線控制與微程序控制的比較

1.

實(shí)現(xiàn)微程序控制通過(guò)控制存儲(chǔ)器內(nèi)的代碼來(lái)實(shí)現(xiàn),調(diào)試、修改方便;硬布線控制通過(guò)組合電路實(shí)現(xiàn),調(diào)試、修改復(fù)雜。2.

性能微程序控制速度較慢;硬布線控制速度很快,主要用于高速和RISC機(jī)器中。6.4.5控制器的控制方式

每條指令和每個(gè)微操作所需的執(zhí)行時(shí)間不相同,如何形成控制不同微操作序列的時(shí)序控制信號(hào)就有多種方法,稱為控制器的控制方式,常用的有同步控制方式、異步控制方式和聯(lián)合控制方式等。1.同步控制方式所有指令的執(zhí)行都受相同時(shí)間節(jié)拍(機(jī)器周期)的控制。機(jī)器有統(tǒng)一的時(shí)鐘信號(hào)微操作與時(shí)鐘信號(hào)同步微操作必須在一個(gè)時(shí)鐘周期內(nèi)完成同步控制方式信號(hào)寬度確定,有時(shí)間浪費(fèi)2.

異步控制方式所有指令的執(zhí)行都只受本指令自己的時(shí)間需求來(lái)控制,執(zhí)行完成后通過(guò)應(yīng)答信號(hào)告知CPU。各個(gè)部件之間沒(méi)有統(tǒng)一的時(shí)鐘,各部件有自己的時(shí)鐘

有的異步控制甚至不需要時(shí)鐘,采用“命令-微操作-回答”方式

異步控制方式信號(hào)寬度不確定,沒(méi)有時(shí)間浪費(fèi)3.聯(lián)合控制方式大部分指令的執(zhí)行都受相同時(shí)間節(jié)拍(機(jī)器周期)的控制,少數(shù)不規(guī)整指令的執(zhí)行通過(guò)應(yīng)答信號(hào)控制。4.人工控制

reset按鍵、連續(xù)或單條轉(zhuǎn)換開(kāi)關(guān)、符合停機(jī)(設(shè)斷點(diǎn))。

各條指令在執(zhí)行過(guò)程中,機(jī)器的各部分在某些周期內(nèi)在進(jìn)行操作,而在某些周期內(nèi)是空閑的。

如果控制器調(diào)度恰當(dāng),讓各個(gè)部件緊張工作,可提高計(jì)算機(jī)運(yùn)行速度---從而產(chǎn)生了流水線結(jié)構(gòu)。6.5流水線工作原理1.流水線基本工作原理

(1)順序串執(zhí)行過(guò)程:計(jì)算機(jī)執(zhí)行程序是按順序的方式進(jìn)行的,即程序中各條機(jī)器指令是按順序串行執(zhí)行的。

如按指令部件和執(zhí)行部件順序操作來(lái)考慮可將程序的執(zhí)行過(guò)程表示成:優(yōu)點(diǎn):控制簡(jiǎn)單缺點(diǎn):機(jī)器各部分利用率不高。(2)兩級(jí)流水線:假如每個(gè)部件完成操作所需的時(shí)間為T,那么盡管每條指令的執(zhí)行時(shí)間為2T,但當(dāng)?shù)谝粭l指令處理完后,每隔T時(shí)間就能得到一條指令的處理結(jié)果,相當(dāng)于把處理速度提高一倍。(3)四級(jí)流水線兩條指令在時(shí)間上重疊圖6.27指令重疊執(zhí)行情況

例如,執(zhí)行浮點(diǎn)加法運(yùn)算,可以分成“對(duì)階”,“尾數(shù)加”及“結(jié)果規(guī)格化”三段,每一段設(shè)置有專門的邏輯電路完成指定操作,并將其輸出保存在鎖存器中,作為下一段的輸入.圖6.28運(yùn)算操作流水線2.流水線中的相關(guān)問(wèn)題

當(dāng)?shù)诙l指令的操作數(shù)地址=第一條指令的保存結(jié)果地址時(shí),出現(xiàn)流水線阻塞;此時(shí)可通過(guò)設(shè)置相關(guān)專用通路來(lái)解決(第二條指令操作數(shù)直接從數(shù)據(jù)處理部件得到);相關(guān)分為存儲(chǔ)器數(shù)據(jù)相關(guān)和寄存器數(shù)據(jù)相關(guān)。流水線相關(guān)引起的阻塞

流水線相關(guān)引起的阻塞的解決

(專用通路)

圖6.29流水線阻塞情況3.程序轉(zhuǎn)移對(duì)流水線的影響(1)遇到轉(zhuǎn)移指令時(shí),下條指令不再預(yù)取(流水)。(2)用猜測(cè)法選定分支中的一個(gè),繼續(xù)流水。若猜測(cè)正確,流水線繼續(xù)執(zhí)行;若不正確,返回分支點(diǎn)。(3)中斷處理方法:不精確斷點(diǎn)法,將中斷發(fā)生時(shí)已入流水線的指令繼續(xù)執(zhí)行完后再進(jìn)入中斷處理子程序。精確斷點(diǎn)法,即刻進(jìn)入中斷處理子程序。4.指令預(yù)取和亂序執(zhí)行指令預(yù)?。禾崆皬拇鎯?chǔ)器取出指令,暫存在CPU的指令預(yù)取部件中;指令取出后可預(yù)先分析,可提前取出該指令所需的操作數(shù)。 這樣,當(dāng)指令進(jìn)入流水線后,取指和取數(shù)都在CPU內(nèi)部進(jìn)行,提高了速度。亂序執(zhí)行:對(duì)取出的指令預(yù)分析,CPU將多條指令不按程序規(guī)定的順序執(zhí)行(無(wú)數(shù)據(jù)相關(guān)、硬件有空)6.6.1RISC的CPU

本節(jié)主要以Sun微系統(tǒng)公司的SPARC結(jié)構(gòu)為例來(lái)說(shuō)明CPU(RISC)的構(gòu)成,并進(jìn)一步講述一些基本原理。 SPARC指令系統(tǒng)已在第5章中介紹過(guò)。 在RISC機(jī)的指令系統(tǒng)已確定的前提下,為了達(dá)到高速運(yùn)算的目的,在硬件實(shí)施方面采取流水線組織盡量使大多數(shù)指令在一個(gè)機(jī)器周期內(nèi)完成,并盡量縮短機(jī)器周期時(shí)間。6.6CPU舉例

圖6.30是Fujitsu公司于1989年生產(chǎn)的基于SPARC的MB86901芯片的邏輯框圖,主頻為25MHz。 圖6.30的右半部分基本上是運(yùn)算器,左半部分為控制器。中間有4個(gè)專用寄存器。1.SPARC的邏輯圖圖6.30MB86901邏輯框圖Y寄存器用來(lái)配合進(jìn)行乘法運(yùn)算TBR提供中斷程序入口地址的高位部分PSR為程序狀態(tài)寄存器WIM中存放與寄存器組有關(guān)的窗口寄存器編號(hào)流水線上三條指令的地址四級(jí)流水線:四條指令同時(shí)執(zhí)行(最后一條正從存儲(chǔ)器?。┲噶罹彌_寄存器對(duì)齊電路:字節(jié)、半字等在寄存器中靠低位存放(存儲(chǔ)器只是邊界對(duì)準(zhǔn)的)與存儲(chǔ)器交換數(shù)據(jù)通過(guò)結(jié)果寄存器運(yùn)算器控制器PSR為程序狀態(tài)寄存器,共有32位3128272423201914131211876540IMPLverNZVC保留ECEFPILSPSETCWPIMPL和ver在某些SPARC芯片中恒為0EC:是否有協(xié)處理器EF:是否有浮點(diǎn)處理器PIL:當(dāng)前處理器中斷級(jí)別(高于此級(jí)別中斷才響應(yīng))S:管理方式(系統(tǒng)方式、特權(quán)指令)還是用戶方式PS:產(chǎn)生陷阱Trap時(shí),保存以前的S值ET:是否允許響應(yīng)中斷CWP:當(dāng)前窗口寄存器,currentwindowpointer

據(jù)統(tǒng)計(jì),在CISC中,當(dāng)程序運(yùn)行時(shí),訪問(wèn)存儲(chǔ)器的指令占總數(shù)一半以上(有時(shí)達(dá)70%),增加寄存器數(shù)可減少訪存次數(shù)。

如對(duì)于調(diào)用(Call)和返回(Return)指令,SPARC利用寄存器組而不是存儲(chǔ)器(堆棧)來(lái)完成上述的傳遞參數(shù)和保留、恢復(fù)現(xiàn)場(chǎng)工作,并采用改變窗口指針的辦法而省略了在寄存器之間傳送的操作,因此使速度大為加快。

2.RISC的通用寄存器

CPU內(nèi)存在的實(shí)際寄存器又稱為物理寄存器(如MB86901的120個(gè)寄存器)。SPARC機(jī)指令的寄存器地址碼字段長(zhǎng)度為5位,允許訪問(wèn)32個(gè)寄存器,稱之為邏輯寄存器。 計(jì)算機(jī)運(yùn)行時(shí),有些數(shù)據(jù)是整個(gè)程序都要用到的,稱為全局?jǐn)?shù)據(jù)。有些數(shù)據(jù)限于當(dāng)前程序段所用(類似PASCAL程序中的過(guò)程或函數(shù))稱為局部數(shù)據(jù);同樣,所有程序段都能訪問(wèn)的寄存器稱為全局寄存器,限于一個(gè)程序段所用的寄存器稱為局部寄存器。 SPARC機(jī)將32個(gè)邏輯寄存器分成兩部分:其中8個(gè)稱為全局寄存器(邏輯地址0~7),和其余24個(gè)寄存器(邏輯地址8~31)組成一個(gè)窗口(window)。

SPARC允許設(shè)置6~32個(gè)窗口,MB86901的寄存器組內(nèi)有120個(gè)寄存器,分成7個(gè)窗口。

有一個(gè)指針指出當(dāng)前程序所訪問(wèn)的窗口號(hào),在指令地址所指出的32個(gè)邏輯寄存器中: r[0]~r[7]為全局寄存器 r[8]~r[31]為一個(gè)窗口中的其他24個(gè)寄存器

分成:

輸入ins(r[24]~r[31])

局部locals(r[16]~r[23])

輸出outs(r[8]~r[15])

圖6.31寄存器窗口過(guò)程調(diào)用A、B、C過(guò)程調(diào)用時(shí),通過(guò)重疊寄存器傳遞參數(shù)(平均16個(gè)寄存器)表6.5重疊寄存器窗口的物理寄存器分配

過(guò)程邏輯寄存器物理寄存器Ar[8]~r[31]r[40]~r[63]Br[8]~r[31]r[24]~r[47]Cr[8]~r[31]r[8]~r[31]

MB86901有7個(gè)窗口(16?7+8=120),由CWP(currentwindowpointer)記錄當(dāng)前程序所用的窗口。 窗口不夠用時(shí),按先進(jìn)先出原則,將保存時(shí)間最長(zhǎng)的一個(gè)窗口(用WIM指示)的內(nèi)容調(diào)入內(nèi)存保存。

所謂流水線實(shí)際上是將一條指令的實(shí)現(xiàn)過(guò)程分成時(shí)間上大體相等的幾個(gè)階段,然后使幾條指令的不同階段在時(shí)間上重疊起來(lái)進(jìn)行。1)取指、譯碼、執(zhí)行等操作所需時(shí)間的分析(1)取指時(shí)間。對(duì)所有指令、取指操作的實(shí)現(xiàn)是相同的。

由于主存儲(chǔ)器容量的讀/寫(xiě)操作速度明顯低于運(yùn)算和邏輯電路。在微機(jī)中,經(jīng)常插入等待周期,以匹配兩者的時(shí)間差距。

為減少或消除等待時(shí)間,無(wú)論是CISC或RISC可以采取指令預(yù)取或cache存儲(chǔ)器兩種方法。

3.流水線組織(2)指令譯碼時(shí)間 RISC指令系統(tǒng)指令格式固定,譯碼時(shí)間較短。大部分控制信號(hào)經(jīng)過(guò)一級(jí)與門和一級(jí)或門即可形成,所以譯碼不一定獨(dú)占流水線的一段,可以與其他操作一起安排在流水線的某一段內(nèi)。SPARC將譯碼和“從寄存器取數(shù)”安排在同一段內(nèi)。(3)執(zhí)行時(shí)間

在RISC中,利用ALU進(jìn)行運(yùn)算的指令,基本上分成兩類:一類是算術(shù)邏輯運(yùn)算指令,對(duì)寄存器中的操作數(shù)進(jìn)行運(yùn)算后,結(jié)果仍送回寄存器;另一類是訪問(wèn)存儲(chǔ)器的Load/Store指令或轉(zhuǎn)移指令,需要對(duì)地址進(jìn)行計(jì)算,但不處理數(shù)據(jù)。

當(dāng)ALU運(yùn)算結(jié)束后,假如出現(xiàn)一些錯(cuò)誤,例如數(shù)據(jù)溢出、地址越界等,則要求中斷當(dāng)前程序,進(jìn)入陷阱(Trap)進(jìn)行處理。

一般要求執(zhí)行段在一個(gè)機(jī)器周期內(nèi)完成ALU運(yùn)算及對(duì)結(jié)果的判斷(包括由此產(chǎn)生的一些控制信號(hào))。在流水線機(jī)器中,這可能是時(shí)間最長(zhǎng)的一個(gè)階段,同時(shí)又是情況最復(fù)雜的階段(每條指令都有它的特定操作需要執(zhí)行)。這往往是確定機(jī)器周期的依據(jù)。 對(duì)于一些更為復(fù)雜的操作,例如乘法運(yùn)算、存取雙字等,或者增加機(jī)器周期,或者增設(shè)硬件解決之。

在SPARC處理器中,設(shè)計(jì)了兩個(gè)ALU部件,分別進(jìn)行數(shù)據(jù)和地址計(jì)算(圖6.40中的ALU和地址生成器)。這樣增加硬件,實(shí)現(xiàn)取數(shù)和執(zhí)行運(yùn)算的分離,以實(shí)現(xiàn)流水線。

SPARC與存儲(chǔ)器之間的數(shù)據(jù)傳送寬度為32位,所以一次訪存能取出一條指令或存取一個(gè)32位的數(shù)據(jù)。在存儲(chǔ)系統(tǒng)中只設(shè)置一個(gè)cache,因此取指和存取數(shù)據(jù)不能同時(shí)進(jìn)行。 SPARC的大部分指令按四級(jí)流水線工作,每個(gè)周期完成一條指令,稱為單周期流水線。

2)SPARC指令流水線分析圖6.32單周期流水線指令在W寄存器。將結(jié)果寫(xiě)回目的寄存器,并置狀態(tài)位。指令在E寄存器。執(zhí)行段所需時(shí)間較長(zhǎng)。指令在D寄存器中。譯碼并完成從寄存器取源操作數(shù)。從cache中取指令

Load/Store指令需要存/取數(shù)據(jù),因此這類指令通過(guò)流水線的時(shí)間超過(guò)4個(gè)周期(從存儲(chǔ)器取數(shù)及向寄存器寫(xiě),各需一個(gè)周期,共5個(gè)周期)。為雙周期流水線。在總線上出現(xiàn)的代碼順序:第n條指令→第n+1條指令→第n+2條指令→數(shù)據(jù)→第n+3條指令

LOAD 譯碼 計(jì)算地址 取數(shù)存入寄存器 將取出的數(shù)據(jù)寫(xiě)入寄存器譯出Load指令后,生成Help指令送入D,下以條指令送入指令緩沖寄存器B1Help指令的譯碼周期和執(zhí)行周期不執(zhí)行實(shí)際操作。訪存操作,從存儲(chǔ)器取出數(shù)據(jù)計(jì)算存儲(chǔ)單元地址(1)數(shù)據(jù)相關(guān)問(wèn)題

當(dāng)執(zhí)行單周期指令時(shí)(如算術(shù)邏輯運(yùn)算指令),如第n+1條指令要取的源操作數(shù)是第n條指令的運(yùn)算結(jié)果,則通過(guò)圖6.40邏輯圖中的Bypass-1直接將ALU的輸出送到A或B寄存器,第n條指令仍為單周期指令;如第n+2條指令要取的源操作數(shù)是第n條指令的運(yùn)算結(jié)果,則通過(guò)Bypass-2將第n條指令的運(yùn)算結(jié)果直接送到A或B寄存器。(2)cache不命中

在訪存時(shí),如cache不命中,則通過(guò)雙方“握手”信號(hào)讓CPU等待。

在程序執(zhí)行時(shí)可能會(huì)遇到的幾個(gè)問(wèn)題(3)產(chǎn)生故障陷阱(trap)

如下圖6.34產(chǎn)生trap時(shí)的流水線。執(zhí)行第n條指令出現(xiàn)錯(cuò)誤,取消“W、E、D”操作及n+3取指,進(jìn)入trap程序入口。

在條件轉(zhuǎn)移情況下,RISC依靠編譯優(yōu)化,在轉(zhuǎn)移指令(n)的后面插入一條必執(zhí)行的指令(n+1),其流水線如下圖6.35所示。

流水線計(jì)算機(jī)中,條件轉(zhuǎn)移和中斷處理等均會(huì)影響機(jī)器運(yùn)行速度。(4)條件轉(zhuǎn)移指令Branch指令在譯碼階段,計(jì)算轉(zhuǎn)移地址(PC+Disp)插入一條后面執(zhí)行的指令(n+1),等待計(jì)算轉(zhuǎn)移地址轉(zhuǎn)移到

t指令圖6.36Pentium微處理器邏輯框圖6.6.2Pentium微處理器U、V兩條整數(shù)流水線一個(gè)浮點(diǎn)部件8KB的指令cache和數(shù)據(jù)cache32位地址總線和64位數(shù)據(jù)總線6.7計(jì)算機(jī)的供電

計(jì)算機(jī)的直流電源是由交流電源經(jīng)過(guò)整流、穩(wěn)壓而得到的。 一般邏輯電路需要+5V直流電壓。為了滿足動(dòng)態(tài)存儲(chǔ)器、磁盤驅(qū)動(dòng)器、通信適配器等電路的需要,通常還要提供-5V,+12V和-12V等直流電流。 為了減少機(jī)器功耗,電源朝著降低電壓值方向發(fā)展,例如將+5V降低到3.5V、1.8V。

大部分計(jì)算機(jī)是依靠市電供電的,市電可能會(huì)因負(fù)載不同而有波動(dòng);也可能因大型用電設(shè)備開(kāi)啟或關(guān)斷、以及遇到雷電等情況而引起瞬間電壓脈沖,甚至斷電。上述市電問(wèn)題會(huì)引起計(jì)算機(jī)數(shù)據(jù)出現(xiàn)錯(cuò)誤、死機(jī)甚至損壞設(shè)備。 如何解決這些市電問(wèn)題,給計(jì)算機(jī)提供連續(xù)的、穩(wěn)定的交流正弧波電源:不間斷電

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論