東大課件章中央處理部件cpu3_第1頁(yè)
東大課件章中央處理部件cpu3_第2頁(yè)
東大課件章中央處理部件cpu3_第3頁(yè)
東大課件章中央處理部件cpu3_第4頁(yè)
東大課件章中央處理部件cpu3_第5頁(yè)
已閱讀5頁(yè),還剩42頁(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)介

1硬布線控制的計(jì)算機(jī)在CPU中,由“時(shí)序控制信號(hào)形成部件”產(chǎn)生控制計(jì)算機(jī)各部分操作所需的控制信號(hào)。這個(gè)部件的組成有兩種方式:微程序控制方式硬布線控制方式

2硬布線控制器的實(shí)現(xiàn)方法用邏輯線路替代控制存儲(chǔ)器??刂拼鎯?chǔ)器中微指令的執(zhí)行采用時(shí)序脈沖信號(hào)控制。3時(shí)序與節(jié)拍信號(hào)源->時(shí)鐘信號(hào)->時(shí)序信號(hào)->節(jié)拍脈沖時(shí)序信號(hào)+控制信號(hào)=>打入脈沖例如:QQCPDCLKQQCPDT1CLK2T2CP-T14打入脈沖的形成與邏輯DB->IRCPCP-IR指令寄存器打入脈沖與邏輯PC+1CPCP-PC程序寄存器打入脈沖與邏輯ADS#T1ADS#’訪問(wèn)存儲(chǔ)器T1周期打入脈沖5CLK2CLK2CLKT1T2CP打入脈沖T1節(jié)拍T2節(jié)拍機(jī)器主頻6機(jī)器周期的設(shè)計(jì)根據(jù)機(jī)器指令系統(tǒng),求出最長(zhǎng)的機(jī)器指令執(zhí)行所需要的子周期數(shù);用計(jì)數(shù)器、譯碼器形成機(jī)器周期信號(hào)。例如,設(shè)指令的子周期數(shù)為4,由取指周期cy1、計(jì)算地址周期cy2、取操作數(shù)周期cy3和運(yùn)算結(jié)果周期

cy4組成,則可用下圖所示的線路獲得機(jī)器周期信號(hào)cy1,cy2,cy3,cy4。譯碼器cyAcyBcy1cy2cy3cy4計(jì)數(shù)器7計(jì)數(shù)器的設(shè)計(jì)考慮到不可能每條指令所用的子周期數(shù)相同,因此計(jì)數(shù)器應(yīng)根據(jù)不同的指令,產(chǎn)生不同的計(jì)數(shù)值。例如,一個(gè)指令系統(tǒng),執(zhí)行A指令的指令子周期為4,執(zhí)行B指令的指令子周期只有3,如何設(shè)計(jì)一個(gè)能夠控制A指令和B指令執(zhí)行的控制周期。方法如下:8組合線路控制器的設(shè)計(jì)

A指令B指令cyAcyBcyA’cyB’cyAcyBcyA’cyB’0001001001101011101111001100NNNNA指令:cyA’=cyAcyB+cyAcyBcyB’=cyBB指令:cyA’=cyBcyB’=cyAcyB狀態(tài)轉(zhuǎn)移表表中cyA、cyB表示當(dāng)前周期的計(jì)數(shù)器狀態(tài);cyA’、cyB’表示下一個(gè)周期計(jì)數(shù)器狀態(tài)。9cyA’cyA’cyB’cyB’10操作控制信號(hào)的產(chǎn)生

操作碼譯碼器組合邏輯線路…...cyA’cyB’cyC’cyD’…...微操作控制信號(hào)地址碼011277位操作碼128條指令:11加法指令的控制邏輯表達(dá)式1取指周期(cy1)PC->AB,(PC+1)->PC,ADS#,M/IO#,W/R#,DB->IRPC->AB=加法指令?cy1ADS#=加法指令?cy1?T1M/IO#=加法指令?cy1W/R#=加法指令?cy1DB->IR=加法指令?cy1PC+1=加法指令?cy1PC->AB=cy1ADS#=cy1?T1M/IO#=cy1W/R#=cy1DB->IR=cy1PC+1=cy112加法指令的控制邏輯表達(dá)式2計(jì)算有效地址周期(cy2)rs1->GR;(rs1)->ALU;disp->ALU;“+”->ALU;ALU->ARrs1->GR=加法指令?cy2(rs1)->ALU=加法指令?cy2disp->ALU=加法指令?cy2“+”->ALU=加法指令?cy2ALU->AR=加法指令?cy2其他cy3、cy4依次類推。13指令集控制信號(hào)匯總1對(duì)每一條指令都進(jìn)行同樣的分析,得出邏輯表達(dá)式。對(duì)所有指令的全部表達(dá)式進(jìn)行綜合分析后可得出下述結(jié)論:(1)取指周期cy1所產(chǎn)生的信號(hào),對(duì)所有指令都是相同的,即與當(dāng)前執(zhí)行的指令無(wú)關(guān),邏輯式得到最簡(jiǎn)單的形式。

PC->AB=(加法指令+減法指令+…)?cy1=cy1(2)通常,同一個(gè)控制信號(hào)在若干條指令的某些周期中都需要,為此需要把它們組合起來(lái)。

“+”命令在加法指令的cy2(計(jì)算有效地址)與cy4(操作數(shù)相加)時(shí)需要;在減法指令的cy2(計(jì)算有效地址)時(shí)需要;在轉(zhuǎn)移指令的cy2(計(jì)算轉(zhuǎn)移地址)時(shí)需要;……。

“+”->ALU=加法指令(cy2+cy4)+減法指令·cy2+轉(zhuǎn)移指令·cy2+…..14指令集控制信號(hào)匯總2

設(shè)某機(jī)器有7位操作碼(OP0~OP6),已知加法指令的操作碼為0001100,則形成加法指令信號(hào)的邏輯表達(dá)式為:加法指令=OP0·OP1·OP2·OP3·OP4·OP5·OP6(3)同種類型的指令所需要的控制信號(hào)大部分是相同的,僅有少量區(qū)別。

不同類型的指令,其控制信號(hào)的差別就比較大。(4)在確定指令的操作碼時(shí),為了便于邏輯表達(dá)式的化簡(jiǎn)以減少邏輯電路數(shù)量,對(duì)同類型的指令給予特別關(guān)注。簡(jiǎn)化后的邏輯表達(dá)式用組合線路實(shí)現(xiàn)(信號(hào)的作用由打入脈沖決定)。這種機(jī)器的控制器邏輯稱為硬布線控制的計(jì)算機(jī)。15控制器的組成16硬布線邏輯的實(shí)現(xiàn)途徑兩級(jí)門(mén)電路的實(shí)現(xiàn)(參考chapter2)PLA(可編程邏輯陣列)PAL(可編程陣列邏輯)GAL(通用陣列邏輯)VLSI直接實(shí)現(xiàn)17硬布線控制器的特點(diǎn)優(yōu)點(diǎn):當(dāng)機(jī)器的指令集中指令條數(shù)較少且操作碼規(guī)整時(shí),譯碼速度快,硬件邏輯的執(zhí)行速度快。缺點(diǎn):當(dāng)機(jī)器的指令集中指令數(shù)量較大時(shí),控制線路復(fù)雜;控制器的調(diào)試難度增大;自動(dòng)化生產(chǎn)程度將降低。典型機(jī)器:早期的CPURISC機(jī)器18微程序控制與硬布線控制的比較實(shí)現(xiàn)微程序采用CM/CS(控制存儲(chǔ)器),

OP存放在控存中,實(shí)現(xiàn)線路規(guī)整;硬布線由邏輯門(mén)組合實(shí)現(xiàn),顯得零亂且復(fù)雜,修改指令很麻煩。性能微程序控制的速度比硬布線控制的速度低。19控制器的控制方式同步控制在任何情況下,一條已定的指令在執(zhí)行時(shí)所需的機(jī)器周期數(shù)和節(jié)拍數(shù)都是固定不變的??刂品绞剑和耆y(tǒng)一的機(jī)器周期(或節(jié)拍)執(zhí)行各種不同的指令。采用不同節(jié)拍的機(jī)器周期。采用中央控制和局部控制相結(jié)合的方法。異步控制每條指令、每個(gè)微操作所需要多少時(shí)間就占用多少時(shí)間。聯(lián)合控制(同步+異步)人工控制為調(diào)試機(jī)器和軟件開(kāi)發(fā)需要,設(shè)定的人工控制開(kāi)關(guān)方式。返回20指令流水線指令流水線類似于工廠中裝配線的使用。通過(guò)把制作過(guò)程安排在一條裝配線上,產(chǎn)品能在各個(gè)階段同時(shí)被加工,這種過(guò)程稱為流水線--Pipelining。指令執(zhí)行的簡(jiǎn)單抽象:結(jié)果取指執(zhí)行指令21指令預(yù)取/重疊指令預(yù)?。╥nstructionpre-fetch/)或稱取重疊(fetchoverlap):當(dāng)指令在執(zhí)行第2階段工作時(shí),第1階段利用未使用的部件把下一條指令取到指令緩存中。指令執(zhí)行速度的主要影響因素:遇到條件轉(zhuǎn)移時(shí),后繼指令可能會(huì)作廢。取指執(zhí)行指令結(jié)果作廢指令等待等待新地址22增加流水段提高指令執(zhí)行速度把指令分解為6級(jí):取指令(FI);譯碼指令(DI);計(jì)算操作數(shù)(CO);取操作數(shù)(FO);執(zhí)行指令(EI);寫(xiě)操作數(shù)(WO)。若采用這樣6級(jí)流水,則9條指令的執(zhí)行時(shí)間將由原來(lái)的54個(gè)單位減少為14個(gè)單位時(shí)間。23指令流水線操作時(shí)序圖246段CPU指令流水線的工作流程25解決條件轉(zhuǎn)移的方法多個(gè)指令流(Multiplesteams)預(yù)取轉(zhuǎn)移目標(biāo)(prefetchbranchtarget)循環(huán)緩沖器(loopbuffer)轉(zhuǎn)移預(yù)測(cè)(branchprediction)延遲轉(zhuǎn)移(delayedbranch)26多個(gè)指令流IBM303327IBM3033CPU的特點(diǎn)CPU分為指令部件、指令隊(duì)列部件和執(zhí)行部件。

IBM3033中采用的3個(gè)指令緩沖寄存器組。當(dāng)遇到條件轉(zhuǎn)移時(shí),使用寄存器1(順序執(zhí)行)或寄存器2中(轉(zhuǎn)移執(zhí)行)的指令,寄存器3是在遇到2條條件轉(zhuǎn)移時(shí)使用。

指令隊(duì)列寄存器組存放4條已經(jīng)分析過(guò)的指令。28預(yù)取轉(zhuǎn)移目標(biāo)在指令譯碼系統(tǒng)識(shí)別出一條轉(zhuǎn)移指令時(shí),除了取該轉(zhuǎn)移指令的后繼指令外,同時(shí)還取轉(zhuǎn)移目標(biāo)處的指令。這個(gè)目標(biāo)被保存直到轉(zhuǎn)移指令被執(zhí)行。若是轉(zhuǎn)移發(fā)生,則目標(biāo)已被取出了。IBM361/91就使用了該方法。29循環(huán)緩沖器循環(huán)緩沖器是由流水線取指階段維護(hù)的一個(gè)小的但速度極高的額外存儲(chǔ)器,含有n條最近取出的指令。若一個(gè)轉(zhuǎn)移將要發(fā)生,硬件首先檢查轉(zhuǎn)移目標(biāo)是否在此緩沖器中,若在,則下一條指令從緩沖器中取出。30循環(huán)緩沖器的結(jié)構(gòu)容量為256字節(jié),并使用字節(jié)尋址,轉(zhuǎn)移地址的低8位用于對(duì)緩沖器的索引,其余的高有效位被檢查,以確定轉(zhuǎn)移地址是否在此緩沖器中。循環(huán)緩沖器(256字節(jié))命中時(shí)被譯碼的指令8轉(zhuǎn)移地址高位地址用于比較以確定是否命中31循環(huán)緩沖器的優(yōu)點(diǎn)采用了類似的指令Cache。這樣,順序取得的指令都可能被使用而不再要訪問(wèn)存儲(chǔ)器;若一個(gè)轉(zhuǎn)移目標(biāo)恰恰在此轉(zhuǎn)移指令之前的少數(shù)幾個(gè)位置,則目標(biāo)在緩沖器中。相當(dāng)于指令:IF-THEN,IF-THEN-ELSE。對(duì)循環(huán)或重復(fù),這種策略非常有效。CARY-1,Motorola68010中采用了此結(jié)構(gòu)。32轉(zhuǎn)移預(yù)測(cè)轉(zhuǎn)移預(yù)測(cè)的幾種技術(shù)預(yù)測(cè)絕不發(fā)生(predictnevertaken)68020/VAX11/780采用此技術(shù)預(yù)測(cè)總是發(fā)生(predictalwaystaken)依操作碼預(yù)測(cè)(predictbyopcode)發(fā)生/不發(fā)生切換(taken/nottakenswitch)轉(zhuǎn)移歷史表(branchhistorytable)前三種是靜態(tài)的;后兩種是動(dòng)態(tài)的,轉(zhuǎn)移與過(guò)去的歷史有關(guān)。33發(fā)生/不發(fā)生開(kāi)關(guān)法每個(gè)條件轉(zhuǎn)移指令可能有與之相關(guān)的一位或幾位,它們反映此指令的最近歷史,這些位稱為發(fā)生/不發(fā)生開(kāi)關(guān)。它們指揮處理器在下次遇到此指令時(shí)產(chǎn)生具體的判定。(JZxxx,JNCxxx,JAxxx)IBM3090/400中使用。在cache中用1位或2位建立與這些條件轉(zhuǎn)移指令相關(guān)的表,并對(duì)轉(zhuǎn)移指令最近的使用情況進(jìn)行統(tǒng)計(jì)。若用1位,則只能記錄這條指令最后一次執(zhí)行是否發(fā)生轉(zhuǎn)移。對(duì)循環(huán)體,則在進(jìn)入和退出時(shí)將發(fā)生預(yù)測(cè)錯(cuò)誤。34轉(zhuǎn)移歷史表轉(zhuǎn)移歷史表由三個(gè)元素:轉(zhuǎn)移指令的地址;該指令的歷史位使用狀況;目標(biāo)指令的信息。目標(biāo)指令信息:目標(biāo)指令的地址;或目標(biāo)指令(占存儲(chǔ)空間大,但省去取指時(shí)間)3536轉(zhuǎn)移歷史表策略指令預(yù)取階段總是順序取下一條指令。若發(fā)生轉(zhuǎn)移,則處理器指揮下一條指令從目的地址處取出,并清洗流水線。每次預(yù)取,則觸發(fā)一次轉(zhuǎn)移歷史表的查找。若未發(fā)現(xiàn)匹配項(xiàng),則順序取指;若發(fā)現(xiàn)匹配,則依據(jù)指令歷史狀態(tài)進(jìn)行預(yù)測(cè)。當(dāng)轉(zhuǎn)移指令執(zhí)行時(shí),執(zhí)行階段將其結(jié)果送轉(zhuǎn)移歷史表,指令狀態(tài)被修改,以反映正確或不正確的預(yù)測(cè)。AMD29000中采用。37RISCCPU舉例--SPARCMB86901ALU部件控制器部件38專用寄存器Y寄存器用來(lái)配合乘法運(yùn)算;TBR提供中斷程序入口地址的高位部分;WIM存放與寄存器有關(guān)的窗口寄存器編號(hào);PSR為程序狀態(tài)寄存器39程序狀態(tài)寄存器PSRIMPLver保留ECEFPILETCWPNZVCSPS3128272423201914131211876540IMPL、ver一般為0;N、Z、V、C為整數(shù)運(yùn)算條件碼EC=0,無(wú)協(xié)處理器,EC=1,有協(xié)處理器EF=0,無(wú)浮點(diǎn)運(yùn)算部件,EF=1,有浮點(diǎn)運(yùn)算部件,PIL當(dāng)前處理器的中斷優(yōu)先級(jí),用于屏蔽某些中斷S=0,只允許執(zhí)行用戶程序;S=1,既可執(zhí)行用戶程序,也可執(zhí)行系統(tǒng)程序。PS:保存當(dāng)前的S值(用于產(chǎn)生trap時(shí),保存S)ET=0,中斷禁止;ET=1,中斷允許。CWP:當(dāng)前寄存器窗口(CurrentWindowsPointer)40RISC處理器中的通用寄存器SPARCMB86901中的寄存器數(shù):120個(gè)32位寄存器指令系統(tǒng)中的寄存器尋址位:5位,最多能訪問(wèn)的寄存器數(shù)為32個(gè)(邏輯寄存器)。全局寄存器:所有程序能訪問(wèn)的寄存器。局部寄存器:當(dāng)前程序段能訪問(wèn)的寄存器。32個(gè)邏輯寄存器分為:8個(gè)全局寄存器(r[0]~r[7]);24個(gè)為局部寄存器(r[8]~r[31])。寄存器窗口:一組邏輯寄存器。窗口數(shù)目由機(jī)器設(shè)計(jì)者決定。在一個(gè)寄存器窗口中,r[0]~r[7]為全局寄存器,r[8]~r[31]為局部寄存器,其中分為:r[24]~r[31]為ins(輸入)寄存器,r[16]~r[23]為local(局部)寄存器,r[8]~r[15]為outs寄存器。寄存器窗口設(shè)置的目的:解決程序中的Call/return問(wèn)題(因?yàn)樵贑中約占12%)。41舉例:過(guò)程A調(diào)用B,過(guò)程B調(diào)用C

過(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]A調(diào)用B,把要傳遞的參數(shù)存入A的outs部分(r[8]~r[15]),即物理寄存器r[40]~r[47]。由于A的r[8]~r[15]與B的r[24]~r[31]所對(duì)應(yīng)的物理寄存器重疊,即A的輸出實(shí)際上為B的輸入。同樣,B調(diào)用C類似。返回是C的結(jié)果村入其ins寄存器,B就能從它的outs中得到結(jié)果。42窗口重疊部分窗口重疊部分執(zhí)行Call時(shí),CWP-1;反之則

溫馨提示

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