計(jì)算機(jī)組成原理(第五章-新)_第1頁(yè)
計(jì)算機(jī)組成原理(第五章-新)_第2頁(yè)
計(jì)算機(jī)組成原理(第五章-新)_第3頁(yè)
計(jì)算機(jī)組成原理(第五章-新)_第4頁(yè)
計(jì)算機(jī)組成原理(第五章-新)_第5頁(yè)
已閱讀5頁(yè),還剩275頁(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)介

計(jì)算機(jī)組成原理第五章中央處理器CPU

本章內(nèi)容:

5.1CPU的組成和功能

5.2指令周期*

5.3時(shí)序產(chǎn)生器和控制方式

5.4微程序控制器*

5.5硬連線(組合邏輯)控制器(簡(jiǎn)介) 5.6傳統(tǒng)的CPU 5.7流水CPU* 5.8RISCCPU本章重點(diǎn)內(nèi)容:

5.1CPU的組成和功能*

5.2指令周期*

5.3時(shí)序產(chǎn)生器和控制方式

5.4微程序控制器*

5.5硬連線(組合邏輯)控制器(簡(jiǎn)介) 5.6傳統(tǒng)的CPU 5.7流水CPU* 5.8RISCCPU

√本章重點(diǎn)內(nèi)容:

5.1CPU的組成和功能*

5.2指令周期

*

5.3時(shí)序產(chǎn)生器和控制方式

5.4微程序控制器*

5.5硬連線(組合邏輯)控制器(簡(jiǎn)介) 5.6傳統(tǒng)的CPU 5.7流水CPU* 5.8RISCCPU

√√本章重點(diǎn)內(nèi)容:

5.1CPU的組成和功能*

5.2指令周期

*

5.3時(shí)序產(chǎn)生器和控制方式

5.4微程序控制器*

5.5硬連線(組合邏輯)控制器(簡(jiǎn)介) 5.6傳統(tǒng)的CPU 5.7流水CPU* 5.8RISCCPU

√√√本章重點(diǎn)內(nèi)容:

5.1CPU的組成和功能*

5.2指令周期

*

5.3時(shí)序產(chǎn)生器和控制方式

5.4微程序控制器*

5.5硬連線(組合邏輯)控制器(簡(jiǎn)介) 5.6傳統(tǒng)的CPU

5.7流水CPU* 5.8RISCCPU

√√√√(注意對(duì)重點(diǎn)內(nèi)容的消化與理解)5.1CPU的功能和基本結(jié)構(gòu)*中央處理器主要內(nèi)容:

CPU的功能

CPU的基本組成

CPU中的主要寄存器 操作控制器與時(shí)序產(chǎn)生器1.CPU的功能

已知:

當(dāng)代主流計(jì)算機(jī)所遵循的仍然是馮.諾依曼的“存儲(chǔ)程序”思想,即:當(dāng)需要計(jì)算機(jī)解決某個(gè)問(wèn)題時(shí),首先必須為它編寫(xiě)“程序”。已知:

→程序:由若干條指令組成的一個(gè)指令序列。這個(gè)序列代碼將指示計(jì)算機(jī):“應(yīng)該依次執(zhí)行什么操作;在什么地方找到所要操作的數(shù)據(jù),結(jié)果存到何處”等。中央處理器(程序的基本實(shí)現(xiàn)過(guò)程)

一旦把程序(代碼)裝入內(nèi)存儲(chǔ)器,就由計(jì)算機(jī)去自動(dòng)完成程序任務(wù)。方法是:依次“取出指令/執(zhí)行指令、……”,周而復(fù)始,直至把程序執(zhí)行完畢。

取出指令執(zhí)行指令如何實(shí)現(xiàn)“程序”的功能?問(wèn)題是:計(jì)算機(jī)是怎樣有序、準(zhǔn)確地取出指令、并分析和執(zhí)行所取來(lái)的指令呢?

中央處理器,通常簡(jiǎn)稱:CPU。

CPU是整個(gè)計(jì)算機(jī)系統(tǒng)運(yùn)行、控制與信息處理的核心部件,具有極其重要的作用。

為了實(shí)現(xiàn)對(duì)機(jī)器的控制與信息處理功能,CPU應(yīng)當(dāng)具備哪些基本功能呢?CPU必須具有的四大基本功能:(1)指令控制

程序執(zhí)行的順序控制稱為指令控制。用于控制指令嚴(yán)格地按程序規(guī)定的順序,依次取出并加以執(zhí)行。(2)操作控制

一條指令的功能往往是由若干個(gè)操作信號(hào)的組合來(lái)實(shí)現(xiàn)的。例如:ADDR0,R1;(R0)+(R1)→R0因此,CPU負(fù)責(zé)產(chǎn)生每條指令執(zhí)行所需要的操作信號(hào),并把各種操作信號(hào)準(zhǔn)確地送往相應(yīng)的執(zhí)行部件,控制這些部件按要求動(dòng)作,從而完成指令所要求的操作。

——指令操作控制。(3)時(shí)間控制

CPU對(duì)各種操作動(dòng)作的實(shí)施時(shí)間都要進(jìn)行準(zhǔn)確定時(shí),稱為時(shí)間控制。在計(jì)算機(jī)中,各種指令的操作信號(hào)以及每條指令的整個(gè)執(zhí)行過(guò)程都有嚴(yán)格的時(shí)間要求,需要CPU設(shè)定規(guī)定的時(shí)序關(guān)系。

例如:

(R1)+(R0)R1①②③④(4)數(shù)據(jù)加工

數(shù)據(jù)加工就是對(duì)數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算、邏輯運(yùn)算、數(shù)據(jù)轉(zhuǎn)換、傳送或指令規(guī)定的處理,這是CPU的核心功能之一。CPU(指令控制)(操作控制)(時(shí)間控制)(數(shù)據(jù)加工)∴可見(jiàn),CPU的基本功能主要包括:中斷及I/O控制CPU組成結(jié)構(gòu):PC,IR指令控制操作控制時(shí)間控制數(shù)據(jù)加工中斷處理ALU,寄存器中斷系統(tǒng)(1)CPU的基本結(jié)構(gòu)CU(含時(shí)序電路)寄存器ALU

中斷

系統(tǒng)CU控制器運(yùn)算器2.CPU的基本結(jié)構(gòu)與組成中斷控制部件【CPU與系統(tǒng)總線的基本連接】CPU控制總線數(shù)據(jù)總線地址總線寄存器ALU

中斷

系統(tǒng)CU基本總線連接中央處理器現(xiàn)代CPU基本結(jié)構(gòu)與模型,見(jiàn)教材P140圖5.1(2)CPU的基本組成結(jié)構(gòu)運(yùn)算器控制器片內(nèi)Cache(哈弗結(jié)構(gòu))CPU芯片∴CPU的基本結(jié)構(gòu):由運(yùn)算器、控制器和片內(nèi)Cache三大部分組成。

運(yùn)算器中包含的:ALU、陣列乘除法器、浮點(diǎn)運(yùn)算器等。(第二章已詳細(xì)討論)。

控制器中包含的:總線仲裁器、中斷排隊(duì)電路等

(在后續(xù)章節(jié)將討論)。

本章重點(diǎn)從CPU中控制器的原理角度出發(fā),分析指令被有序取出、并控制執(zhí)行的完整過(guò)程。(1)運(yùn)算器的組成:包括:算術(shù)邏輯運(yùn)算單元(ALU)、累加器、通用寄存器、數(shù)據(jù)緩沖寄存器、狀態(tài)條件寄存器、陣列乘/除法器、浮點(diǎn)運(yùn)算器等,它是數(shù)據(jù)加工處理部件。

運(yùn)算器所進(jìn)行的全部操作都是由控制器發(fā)出的信號(hào)來(lái)控制指揮的。

∴運(yùn)算器在CPU中只是一種執(zhí)行部件。

中央處理器CPU各部分的組成結(jié)構(gòu)【運(yùn)算器的主要功能】:(第二章已討論)

(1)執(zhí)行所有的算術(shù)運(yùn)算;

(2)執(zhí)行所有的邏輯運(yùn)算,給出邏輯測(cè)試結(jié)果等(如狀態(tài)值測(cè)試或邏輯數(shù)的比較等);(3)執(zhí)行數(shù)據(jù)傳送任務(wù)等。(2)控制器的基本組成:

包括:程序計(jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID、時(shí)序產(chǎn)生器和操作控制器OC等部件??刂破魇荂PU發(fā)布命令的“決策機(jī)構(gòu)”,負(fù)責(zé)對(duì)整個(gè)計(jì)算機(jī)系統(tǒng)各部件操作的控制、協(xié)調(diào)與指揮。

(本章重點(diǎn)討論)中央處理器【控制器的主要功能】:

控制機(jī)器依次取出指令、并完成指令所要求的操作。具體為:取出指令對(duì)指令譯碼、測(cè)試有序地發(fā)出各種操作命令到相關(guān)部件依次取出新指令(或輸出結(jié)果)建立數(shù)據(jù)通路,完成指令規(guī)定的操作處理異常情況和特殊請(qǐng)求指令控制操作控制時(shí)間控制輔助數(shù)據(jù)加工處理中斷3.

CPU中的主要寄存器

支撐CPU工作的核心是若干特殊的寄存器,它們?cè)贑PU的工作過(guò)程中起著十分重要的作用。先回顧C(jī)PU基本結(jié)構(gòu)圖:各部分的功能為:可見(jiàn):CPU中至少要有六類寄存器:運(yùn)算器中:數(shù)據(jù)緩沖寄存器(DR)、通用寄存器(Ri)、

狀態(tài)字寄存器(PSW)??刂破髦校褐噶罴拇嫫鳎↖R)、程序計(jì)數(shù)器(PC)、

地址寄存器(AR)

并且根據(jù)需要,可以擴(kuò)充其數(shù)目。1)數(shù)據(jù)緩沖寄存器(DR)

DR的作用:

(1)作為CPU與數(shù)據(jù)Cache、寄存器和外部I/O設(shè)備之間信息傳送的暫存器(中轉(zhuǎn)站);

(2)用于補(bǔ)償CPU與內(nèi)存、外圍設(shè)備之間在操作速度上的差異。中央處理器2)通用寄存器(Ri)Ri

的功能:當(dāng)ALU需執(zhí)行算術(shù)或邏輯運(yùn)算時(shí),可為ALU提供一個(gè)工作區(qū),它也可暫時(shí)存放ALU運(yùn)算的結(jié)果信息。

目前CPU中的通用寄存器,多達(dá)幾十個(gè),甚至更多。形成了通用寄存器組結(jié)構(gòu),其中任何一個(gè)可存放源操作數(shù),也可存放結(jié)果操作數(shù),為CPU的快速處理提供支持。(如上一章討論的RR型指令)中央處理器Ri3)狀態(tài)字寄存器(PSW)

PSW保存由算術(shù)指令和邏輯指令運(yùn)行或測(cè)試的結(jié)果建立的各種條件碼內(nèi)容,如:運(yùn)算結(jié)果進(jìn)位標(biāo)志(C),運(yùn)算結(jié)果溢出標(biāo)志(V),運(yùn)算結(jié)果為零標(biāo)志(Z),運(yùn)算結(jié)果為負(fù)標(biāo)志(N)等等。這些標(biāo)志位通常分別由1位觸發(fā)器保存。除此之外,PSW還保存中斷和系統(tǒng)工作狀態(tài)等信息,因此,狀態(tài)條件寄存器是一個(gè)由各種狀態(tài)條件標(biāo)志拼湊而成的寄存器,其可以按位測(cè)試或查詢。中央處理器4)指令寄存器(IR)IR的作用:保存當(dāng)前正在執(zhí)行的指令。當(dāng)執(zhí)行一條指令時(shí),先把它從指令Cache中讀出,經(jīng)IBUS傳送至IR中,為指令譯碼器提供穩(wěn)定的指令代碼。 →完成取指任務(wù)

指令譯碼器:

負(fù)責(zé)對(duì)指令的操作碼OP進(jìn)行測(cè)試,以便識(shí)別所要求的操作。中央處理器

→操作碼OP經(jīng)指令譯碼器識(shí)別后,即向操作控制器OC發(fā)出特定信號(hào),由OC發(fā)出具體的操作控制信號(hào)。5)程序計(jì)數(shù)器(PC)PC的作用:指定當(dāng)前指令的地址,并能自動(dòng)確定下一條指令的地址,以保證程序能夠按程序流程執(zhí)行下去。PC通常又稱為指令計(jì)數(shù)器。

由于大多數(shù)指令都是按順序執(zhí)行的,所以通常PC只需自增計(jì)數(shù)即可。

當(dāng)執(zhí)行轉(zhuǎn)移指令時(shí),CPU能自動(dòng)修改PC的內(nèi)容,使其轉(zhuǎn)移指向新的要執(zhí)行指令的地址。中央處理器

因此,程序計(jì)數(shù)器PC的結(jié)構(gòu),通常是具有可置數(shù)和可計(jì)數(shù)兩種功能的計(jì)數(shù)器結(jié)構(gòu)。6)(數(shù)據(jù))地址寄存器(AR)AR的作用:用來(lái)穩(wěn)定和保存當(dāng)前CPU所訪問(wèn)的內(nèi)存或外設(shè)數(shù)據(jù)單元的地址。又稱:數(shù)據(jù)地址寄存器DAR。

∵在內(nèi)存(或外設(shè)單元)與CPU之間存在著操作速度上的差異

∴為了可靠地完成信息的交換,必須使用地址寄存器AR來(lái)保持地址總線上的信息穩(wěn)定,直到對(duì)存儲(chǔ)器的讀/寫(xiě)操作完成為止。中央處理器

在結(jié)構(gòu)上,地址寄存器AR與DR、IR類似,通常采用通用寄存器(具有鎖存、清零、置位)即可。

上述六類寄存器對(duì)于CPU功能的實(shí)現(xiàn),起著重要的支撐性作用。4.

操作控制器OC與時(shí)序產(chǎn)生器

數(shù)據(jù)通路:

是指CPU內(nèi)部部件之間或CPU與存儲(chǔ)器、外設(shè)之間交換信息的通路。即:信息從什么地方取出→經(jīng)過(guò)哪條指定通道→傳送到哪個(gè)寄存器或目標(biāo)單元,都要CPU通過(guò)設(shè)置“數(shù)據(jù)通道”來(lái)加以控制與實(shí)現(xiàn)。

CPU需要為每條指令的數(shù)據(jù)流動(dòng)與正確執(zhí)行建立“數(shù)據(jù)通路”。

——由操作控制器部件OC來(lái)完成。數(shù)據(jù)通路的概念:∴操作控制器OC的功能:

根據(jù)指令譯碼信號(hào)和時(shí)序信號(hào),產(chǎn)生相應(yīng)的操作控制信號(hào),建立出數(shù)據(jù)通路,并完成“取出指令和執(zhí)行指令”的具體操作與控制。時(shí)序產(chǎn)生器:

產(chǎn)生并發(fā)出計(jì)算機(jī)工作所需要的時(shí)序控制信號(hào)。

例如:ADDR1,R0;(R0)+(R1)→R1①②③④【操作控制器分類】:根據(jù)設(shè)計(jì)方法不同,操作控制器可分為三種類型:1.硬布線控制器采用時(shí)序/組合邏輯技術(shù)來(lái)實(shí)現(xiàn)的控制器,屬于時(shí)序邏輯型;(特點(diǎn):純硬件實(shí)現(xiàn),控制速度快)2.微程序控制器*

(重點(diǎn)討論)采用存儲(chǔ)邏輯來(lái)實(shí)現(xiàn)的控制器,屬于存儲(chǔ)邏輯型。(特點(diǎn):代碼組合實(shí)現(xiàn),易于實(shí)現(xiàn)控制)3.前兩種方式的組合控制器

(時(shí)序+存儲(chǔ))的方法構(gòu)成。

5.2

指令周期*內(nèi)容包括:

指令周期的基本概念不同類型指令的指令周期分析典型指令的取指和執(zhí)行過(guò)程用方框圖語(yǔ)言表示指令周期中央處理器1.指令周期的基本概念

已知:計(jì)算機(jī)所以能自動(dòng)地工作,是因?yàn)镃PU能從內(nèi)存里依次不斷地取出指令和數(shù)據(jù),并加以執(zhí)行。中央處理器取出指令執(zhí)行指令……,這個(gè)過(guò)程周而復(fù)始,一直持續(xù)到既定程序執(zhí)行完畢為止。(除非中途被強(qiáng)迫停止運(yùn)行)(一個(gè)指令周期)[名詞概念]:

指令周期

:

CPU從內(nèi)存取出一條指令并執(zhí)行完這條指令所需的時(shí)間總和。

CPU周期

:

又稱機(jī)器周期,CPU訪問(wèn)內(nèi)存所花的時(shí)間較長(zhǎng),因此定義:CPU從內(nèi)存讀取一條指令字的所需的最短時(shí)間,稱為機(jī)器周期(CPU周期)。

時(shí)鐘周期

:

通常又稱為時(shí)鐘T周期或節(jié)拍脈沖。一個(gè)機(jī)器周期通常包含若干個(gè)T周期。=取指時(shí)間+執(zhí)行指令時(shí)間中央處理器教材P142敘述模糊,請(qǐng)更正。采用定長(zhǎng)CPU周期的各類時(shí)序周期信號(hào)的相互關(guān)系:

中央處理器

相互關(guān)系:

1個(gè)指令周期=若干個(gè)機(jī)器周期;

1個(gè)機(jī)器周期=若干時(shí)鐘T周期通常,T周期是機(jī)器中的最小時(shí)間單位單周期指令:取出并執(zhí)行完指令只需一個(gè)機(jī)器周期。 (只有少數(shù)指令)多周期指令:需要2個(gè)及以上機(jī)器周期完成取出并執(zhí)行的指 令。(大部分指令)(1)指令周期含義:取出并執(zhí)行一條指令所需的全部時(shí)間。完成一條指令執(zhí)行取指、分析取指階段取指周期執(zhí)行階段執(zhí)行周期(取指、分析)(執(zhí)行指令)指令周期(取指周期)(執(zhí)行周期)+[關(guān)于指令周期的附加注釋]:∴可見(jiàn):一個(gè)指令周期通常至少需要兩個(gè)CPU周期。(2)不同指令的指令周期不同取指周期指令周期取指周期

執(zhí)行周期指令周期ADDRi

MULmem取指周期執(zhí)行周期指令周期…例如NOP(非訪內(nèi)型指令)

(訪內(nèi)型指令)單周期指令執(zhí)行周期較短執(zhí)行周期較長(zhǎng)(3)具有間接尋址的指令周期(4)帶有中斷周期的指令周期取指周期間址周期指令周期執(zhí)行周期取指周期間址周期指令周期執(zhí)行周期中斷周期需增加CPU周期還需增加CPU周期顯然:不同格式的指令,有不同長(zhǎng)度的指令周期。(5)指令周期通用流程取指周期執(zhí)行周期有間址嗎?有中斷嗎?間址周期中斷周期是是否否本條指令執(zhí)行完畢取指執(zhí)行舉例:

取指周期數(shù)據(jù)流(6)指令周期的數(shù)據(jù)流MDRCUMARPCIR存儲(chǔ)器CPU地址總線數(shù)據(jù)總線控制總線IR+1+1(完成取指)

間址周期數(shù)據(jù)流MDRCUMARCPU地址總線數(shù)據(jù)總線控制總線PCIR存儲(chǔ)器(取出地址))3.執(zhí)行周期數(shù)據(jù)流4.中斷周期數(shù)據(jù)流(具體將在I/O系統(tǒng)中討論)不同指令的執(zhí)行周期數(shù)據(jù)流不同MDRCUMARCPU地址總線數(shù)據(jù)總線控制總線PC存儲(chǔ)器保存現(xiàn)場(chǎng)[例]:為了分析不同類型的指令所對(duì)應(yīng)的指令周期的情況,教材P143給出一個(gè)由6條典型指令構(gòu)成的簡(jiǎn)單程序,分析其執(zhí)行過(guò)程來(lái)加深對(duì)指令周期及指令執(zhí)行過(guò)程的理解。(只分析前5條)

地址

指令

操作內(nèi)容

指令類型

101

MOVR0,R1

;(R1)→R0(非訪內(nèi)指令)

102

LADR1,6;M(6)→R1(訪內(nèi)指令)

103

ADDR1,R2;(R1)+(R2)→R2

(非訪內(nèi)指令)

104

STOR2,(R3);(R2)→M(R3)

(訪內(nèi)指令)

105

JMP101;101→PC

(非訪內(nèi)指令)

106 ANDR1,R3;(R1)∧(R3)→R3

(非訪內(nèi)指令)程序中有兩大類指令:

非訪內(nèi)型指令和訪內(nèi)型指令。將R2內(nèi)容存入以R3內(nèi)容為地址的內(nèi)存單元中2.非訪內(nèi)指令的指令周期

這是一條非訪內(nèi)指令,其指令周期為兩個(gè)CPU周期。其中:取指令階段需要一個(gè)CPU周期,執(zhí)行指令階段只需要一個(gè)CPU周期即可。中央處理器101MOVR0,R1第一條指令:操作:(R1)→R0特點(diǎn):這類指令在執(zhí)行時(shí),不需要訪問(wèn)存儲(chǔ)器。WR/RD5.2.2MOV指令的指令周期——取出指令101MOVR0,R1取指命令序列:①

PC-out②Read③IR-in④PC+1R102101MOVR0,R1執(zhí)行周期執(zhí)行命令序列:①R1-out②ALU-Move③ALU-out④DR-in⑤R0-in(1)取指周期完成的操作

(用1個(gè)機(jī)器周期時(shí)間)

I-Cache→取出指令→存入IR(2)執(zhí)行周期完成的操作

(用1個(gè)機(jī)器周期時(shí)間)完成操作:(R1)→R0可知:本指令周期=兩個(gè)CPU周期?!癕OVR0,R1”指令周期小結(jié):(見(jiàn)教材P144~145)

顯然,本指令在執(zhí)行時(shí)需要訪問(wèn)內(nèi)存,屬于訪內(nèi)型指令。本指令的指令周期由三個(gè)CPU周期組成,1個(gè)CPU周期用于取出指令,2個(gè)CPU周期用于指令的執(zhí)行。中央處理器102LADR1,6M(6)→R1第二條指令:中央處理器取指周期(1個(gè)機(jī)器周期)執(zhí)行周期(2個(gè)機(jī)器周期)選定存儲(chǔ)單元LADR1,6指令執(zhí)行過(guò)程執(zhí)行命令序列:①6-DBUS-AR②AR-in③Dcache-Read④DR-in⑤R1-inR1004.加法指令的指令周期

本條指令是一條非訪內(nèi)型(RR)指令,對(duì)應(yīng)的指令周期由兩個(gè)CPU周期組成。即:1個(gè)CPU周期用于取出指令;1個(gè)CPU周期用于執(zhí)行指令。

103ADDR2,R1(R1)+(R2)→R2

第三條指令:(指令執(zhí)行過(guò)程簡(jiǎn)單,自閱)ADDR1,R2ADDR1,R2執(zhí)行命令序列:①R1-outR2-out②ALU-Move③ALU-out④DR-in⑤R2-in5.送數(shù)操作指令和轉(zhuǎn)移指令的指令周期

本條指令是一條向內(nèi)存送數(shù)的操作指令。其中:第一個(gè)CPU周期中取出指令,把104號(hào)I-Cache單元的指令取出,并送到指令寄存器IR;第二個(gè)CPU周期送操作數(shù)地址:(R3)=30

→AR;第三個(gè)CPU周期執(zhí)行送數(shù)操作:(R2)→存入30號(hào)存儲(chǔ)單元。104STOR2,(R3)第四條指令:(R2)→M(R3)

(訪內(nèi)型指令)STOR2,(R3)執(zhí)行命令序列:①R3out-DBUS-AR②AR-in③R2out-DBUS④Dcache-WriteW105JMP101第五條指令:JMP指令為無(wú)條件跳轉(zhuǎn)指令,指令周期由兩個(gè)CPU周期組成。即:1個(gè)CPU周期用于取出指令;1個(gè)CPU周期用于指令的執(zhí)行。1061016.小結(jié)與歸納

不同指令的執(zhí)行過(guò)程是不同的,因而,對(duì)應(yīng)的指令周期也不同。非訪內(nèi)指令的執(zhí)行周期比訪內(nèi)指令的執(zhí)行周期短,因而執(zhí)行速度更快一些.中央處理器

在進(jìn)行控制器設(shè)計(jì)時(shí),通常采用方框圖語(yǔ)言(或指令周期流程圖)來(lái)描述各條指令的指令周期。通常約定:

方框代表一個(gè)CPU周期,方框中給出數(shù)據(jù)通路的操作或控制內(nèi)容。

菱形通常用來(lái)表示某種判別測(cè)試或轉(zhuǎn)移,在時(shí)間上它依附于緊接它的前面一個(gè)方框的CPU周期,而不單獨(dú)占用一個(gè)CPU周期。把前面的五條典型指令加以歸納,用方框圖語(yǔ)言表示的指令周期(教材P150圖5.14)。7.指令周期的方框圖表示

取指執(zhí)行所有指令都先用1個(gè)CPU周期從內(nèi)存取出、并譯碼。指令執(zhí)行公操作例1

某雙總線結(jié)構(gòu)機(jī)器的數(shù)據(jù)通路如下:

(教材P151-152)

+1

圖中:ALU由加、減控制信號(hào)決定完成何種操作,控制信號(hào)G控制的是一個(gè)三態(tài)門(mén)電路。另外,圖中:yi表示y寄存器的輸入控制信號(hào),Rii、Rio分別為寄存器Ri

的輸入、輸出控制信號(hào),未標(biāo)字符的線為直通線,不受控制。試討論如下問(wèn)題:中央處理器

(1)“ADDR2,R0”指令完成(R0)+(R2)→R0的功能操作,畫(huà)出其指令周期流程圖,假設(shè)該指令的地址已放入PC中。并列出相應(yīng)的微操作控制信號(hào)序列。

【解】:“ADDR2,R0”指令是一條加法指令,參與運(yùn)算的兩個(gè)數(shù)放在寄存器R0和R2中,指令周期流程圖包括取指令階段和執(zhí)行指令階段兩部分。

中央處理器已知數(shù)據(jù)通路圖為:“ADDR2,R0”指令:(R0)+(R2)→R0

詳細(xì)指令周期流程圖如后圖所示,并標(biāo)注每一步操作所需用到的微操作控制信號(hào)序列。(教材P151)

+1

(a)加法PC→ARM→DR,(PC)+1DR→IR譯碼Y+X→R0R0→XR2→Y取指PCo,G,ARiR/W=R;+1DR0,G,IRiR2o,G,YiR0o,G,Xi+,ALUO,G,R0i(時(shí)間序列)執(zhí)行指令:ADDR2,R0發(fā)出的命令信號(hào)書(shū)上少此命令

(2)“SUB(R1),R3”指令完成:(R3)-((R1))→R3的操作,畫(huà)出其指令期流程圖,并列出相應(yīng)的微操作控制信號(hào)序列。

【解】:“SUB(R1),R3”指令是一條減法指令,其指令周期流程圖如圖(b)所示。與ADD指令不同的是:在執(zhí)行指令階段,微操作控制信號(hào)序列有所不同。中央處理器與教材不同

“SUB(R1),R3”指令:(R3)-((R1))→R3

詳細(xì)指令周期流程圖如后圖(b)所示。

+1

(b)減法PC→ARM→DR,(PC)+1DR→IR譯碼Y-X→R3R1→ARM→DRR3→YPCo,G,ARiR/W=R;+1DR0,G,IRiR3o,G,YiR1o,G,ARiR/W=RDRo,G,Xj–,ALUo,

G,R3i取指執(zhí)行指令SUB(R1),R3發(fā)出的命令信號(hào)DR→X(R3)-((R1))→R3書(shū)上少此命令

指令周期包括:“取指周期+執(zhí)行周期”組成。簡(jiǎn)單指令對(duì)應(yīng)的指令周期較短;復(fù)雜指令對(duì)應(yīng)的指令周期會(huì)長(zhǎng)一些。在每個(gè)機(jī)器周期中,數(shù)據(jù)通路必須是明確的。4.數(shù)據(jù)通路的建立及操作由操作控制器OC的控制,當(dāng)然,其決定于指令的性質(zhì)。指令周期小結(jié):例2:2009年研究生入學(xué)考試44題:(略)(13分)某計(jì)算機(jī)字長(zhǎng)16位,采用16位定長(zhǎng)指令字結(jié)構(gòu),部分?jǐn)?shù)據(jù)通路結(jié)構(gòu)如下頁(yè)圖中所示,圖中所有控制信號(hào)為1時(shí)表示有效,為0時(shí)表示無(wú)效,例如控制信號(hào)MDRinE為1表示允許數(shù)據(jù)從DB打入MDR,MDRin為1表示允許數(shù)據(jù)從內(nèi)總線打入MDR。假設(shè)MAR的輸出一直處于使能狀態(tài)。

加法指令“ADD(R1),R0”的功能為(R0)+((R1))→(R1),即將R0中的數(shù)據(jù)與R1的內(nèi)容所指主存單元的數(shù)據(jù)相加,并將結(jié)果送入R1的內(nèi)容所指主存單元中保存。下表給出了上述指令取指和譯碼階段每個(gè)節(jié)拍(時(shí)鐘周期)的功能和有效控制信號(hào),請(qǐng)按表中描述方式用表格列出指令執(zhí)行階段每個(gè)節(jié)拍的功能和有效控制信號(hào)。時(shí)鐘功能有效控制信號(hào)C1MAR←(PC)PCout,MARinC2MDR←M(MAR)PC←(PC)+1MemR,MDRinE,PC+1C3IR←(MDR)MDRout,1RinC4指令譯碼無(wú)數(shù)據(jù)結(jié)構(gòu)通路R0R1inA內(nèi)總線MARMDRIRPCMDRoutEPCinACin存儲(chǔ)器(M)ALUMDRinCPUMemWIRinDataAddrMemR地址總線AB數(shù)據(jù)總線DB控制總線CBACAddAinACoutR1R1outMARinMDRoutMDRinE指令譯碼部件PC+1PCoutR0inR0outXout

三態(tài)門(mén)控制信號(hào)Xin

寄存器輸入控制信號(hào)圖例參考答案一:時(shí)鐘功能有效信號(hào)C5MAR←(R1)R1out,MARinC6MDR←M(MAR)A←(R0)MemR,MDRinER0out,AinC7AC←(MDR)+(A)MDRout,Add,ACinC8MDR←(AC)ACout,MDRinC9M(MAR)←(MDR)MDRoutE,MemW(R0)+((R1))→(R1)參考答案二:時(shí)鐘功能有效信號(hào)C5MAR←(R1)R1out,MARinC6MDR←M(MAR)MemR,MDRinEC7A←(MDR)MDRout,AinC8AC←(A)+(R0)MDRout,Add,ACinC9MDR←(AC)ACout,MDRinC10M(MAR)←(MDR)MDRoutE,MemW(R0)+((R1))→(R1)5.3

時(shí)序產(chǎn)生器和控制方式

1

時(shí)序信號(hào)的作用和體制2

時(shí)序信號(hào)產(chǎn)生器3

控制方式中央處理器1.時(shí)序信號(hào)的作用和體制

時(shí)序信號(hào):

CPU中的時(shí)序信號(hào),是使計(jì)算機(jī)適時(shí)、準(zhǔn)確、有序地工作的重要“節(jié)拍序列”控制信號(hào)。中央處理器

在一個(gè)機(jī)器周期中,通常包含有若干個(gè)時(shí)鐘T周期,以便確定CPU在每一個(gè)T周期時(shí)間中,依次執(zhí)行什么操作。這種時(shí)間約束對(duì)CPU來(lái)說(shuō)是非常必要的。各種控制動(dòng)作必須適時(shí),否則就可能造成信息丟失或結(jié)果錯(cuò)誤。

∴時(shí)序控制對(duì)計(jì)算機(jī)來(lái)說(shuō)非常重要,也是分析計(jì)算機(jī)工作原理時(shí)必須建立的概念。時(shí)序信號(hào)的作用:

OC用時(shí)序信號(hào)來(lái)協(xié)調(diào)、指揮機(jī)器的工作時(shí)序;

CPU通過(guò)節(jié)拍脈沖(時(shí)鐘T)對(duì)各種OC信號(hào)進(jìn)行嚴(yán)格的時(shí)間約束;CPU可以用時(shí)序信號(hào)的周期信息,來(lái)辨認(rèn)從內(nèi)存中取出的是指令還是數(shù)據(jù)。[思考]:

已知:無(wú)論是指令還是數(shù)據(jù),在內(nèi)存中都是以二進(jìn)制數(shù)碼形式存放的。那么,CPU怎樣識(shí)別所取出的數(shù)碼是數(shù)據(jù)還是指令呢?

從時(shí)間上來(lái)說(shuō):

取指令事件發(fā)生在指令周期的第一個(gè)CPU周期中,即發(fā)生在“取指周期”內(nèi);而取數(shù)據(jù)事件則一定發(fā)生在指令的“執(zhí)行周期”內(nèi)。

從空間上來(lái)說(shuō):若取出的代碼是指令,那么一定送往指令寄存器IR;如果取出的代碼是數(shù)據(jù),則一定送往運(yùn)算器或數(shù)據(jù)寄存器。時(shí)序信號(hào)的體制

計(jì)算機(jī)組成硬件器件(寄存器、觸發(fā)器)的特性,決定了時(shí)序信號(hào)的基本體制是“電位—脈沖制”。D為電位(狀態(tài))輸入端,

CP(ClockPulse)為脈沖輸入端

R(清0)、S(置位)為電位輸入端Q為電位(狀態(tài))輸出端DCP以D觸發(fā)器為例:→各類緩沖器、寄存器的基本組成元件

電位狀態(tài)信號(hào)D脈沖信號(hào)CP即:一個(gè)時(shí)鐘輸入、一個(gè)狀態(tài)輸入D、一個(gè)狀態(tài)輸出Q(Q)D觸發(fā)器

在硬布線控制器中,時(shí)序信號(hào)往往采用“主狀態(tài)周期-節(jié)拍電位-節(jié)拍脈沖”三級(jí)體制。在微程序控制器中,時(shí)序信號(hào)則一般采用“節(jié)拍電位-節(jié)拍脈沖”二級(jí)體制。中央處理器通常維持一個(gè)CPU周期在CPU周期中出現(xiàn)的脈沖節(jié)拍信號(hào)

總之,計(jì)算機(jī)的協(xié)調(diào)動(dòng)作需要時(shí)間標(biāo)志,而且需要采用多級(jí)時(shí)序體制。而時(shí)間標(biāo)志則是用時(shí)序信號(hào)來(lái)體現(xiàn)的。一個(gè)觸發(fā)器的狀態(tài)持續(xù)時(shí)間DCP[多級(jí)時(shí)序系統(tǒng)]由機(jī)器周期、節(jié)拍脈沖(時(shí)鐘T)組成多級(jí)時(shí)序系統(tǒng).即:

一個(gè)指令周期包含若干個(gè)機(jī)器周期;一個(gè)機(jī)器周期包含若干個(gè)時(shí)鐘周期。CLK機(jī)器周期機(jī)器周期機(jī)器周期(取指令)(取有效地址)(執(zhí)行指令)指令周期T0T1T2T3T0T1T2T3T0T1T2T3機(jī)器周期機(jī)器周期(取指令)(執(zhí)行指令)指令周期T0T1T2T3T0T1T2

節(jié)拍(狀態(tài))

節(jié)拍(時(shí)鐘)(不定長(zhǎng)機(jī)器周期)功能:產(chǎn)生時(shí)序信號(hào)

各類計(jì)算機(jī)時(shí)序產(chǎn)生電路不盡相同,但基本構(gòu)成類似?;緲?gòu)成:

時(shí)鐘源環(huán)形脈沖發(fā)生器節(jié)拍脈沖和讀寫(xiě)時(shí)序譯碼邏輯啟??刂七壿嫻?jié)拍脈沖信號(hào)2.時(shí)序信號(hào)產(chǎn)生器指令周期機(jī)器周期三級(jí)時(shí)序系統(tǒng)信號(hào):注意到:

節(jié)拍脈沖寬度(時(shí)間)=時(shí)鐘周期(見(jiàn)下圖)環(huán)形脈沖發(fā)生器:(輸出信號(hào):C1~C4)

環(huán)形脈沖發(fā)生器的作用:是產(chǎn)生一組有序的、間隔相等或不等的脈沖序列,以便通過(guò)譯碼電路來(lái)產(chǎn)生最后所需的節(jié)拍脈沖。123456789101112131415ΦΦC4C1C2C3(節(jié)拍電位與節(jié)拍脈沖時(shí)序產(chǎn)生)123456789101112131415ΦΦC4C1C2C3RD’RDWE’WET1T2T3T4CPU周期CPU周期CPU周期節(jié)拍電位信號(hào)節(jié)拍脈沖信號(hào)000000啟??刂七壿嫞?/p>

(教材P154)

由于計(jì)算機(jī)的啟動(dòng)、停機(jī)是隨機(jī)的,故需要由啟停邏輯加以控制:

當(dāng)計(jì)算機(jī)啟動(dòng)或停止時(shí),僅當(dāng)Q=1時(shí),時(shí)序信號(hào)T1~T4等才能發(fā)出或封鎖。R運(yùn)行標(biāo)志觸發(fā)器=T1的前沿1T1T2T3T4機(jī)器周期啟動(dòng)停止作用:嚴(yán)格保證時(shí)序電路啟動(dòng)或停止工作時(shí),機(jī)器周期一定是完整的。啟??刂七壿嫹治觯簽槭裁葱枰@樣?T4“時(shí)序體系”又常稱:“機(jī)器周期—時(shí)鐘周期”體系(1)時(shí)鐘周期是控制計(jì)算機(jī)操作的最小單位時(shí)間;(2)每個(gè)時(shí)鐘周期內(nèi),CPU可控制產(chǎn)生一個(gè)或幾個(gè)微操作命令。注意到:

現(xiàn)代計(jì)算機(jī)已不再采用三級(jí)時(shí)序系統(tǒng),機(jī)器周期的概念已逐漸消失。整個(gè)數(shù)據(jù)通路中的定時(shí)信號(hào)就是時(shí)鐘,一個(gè)時(shí)鐘周期就是一個(gè)節(jié)拍。(時(shí)鐘周期→機(jī)器周期)3.控制方式

控制方式:

即實(shí)現(xiàn)指令操作功能時(shí),對(duì)各操作信號(hào)進(jìn)行時(shí)序控制的方法。常用的有同步控制、異步控制、聯(lián)合控制三種方式,其實(shí)質(zhì)反映了時(shí)序信號(hào)的定時(shí)方式。中央處理器(1)同步控制方式(教材P155)特點(diǎn):在任何情況下,指令在執(zhí)行時(shí)所需的CPU周期(機(jī)器周期)數(shù)和時(shí)鐘周期數(shù)都固定不變。根據(jù)不同情況,同步控制方式可選取如下方案:(1)采用統(tǒng)一的機(jī)器周期執(zhí)行各種不同的指令。(2)采用不定長(zhǎng)機(jī)器周期*。(3)中央控制與局部控制結(jié)合*。(同步與其它定時(shí)方式結(jié)合-聯(lián)合控制方式)

(2)異步控制方式特點(diǎn):不統(tǒng)一限制每條指令或每個(gè)操作控制信號(hào)需要占用的時(shí)間。即:每條指令的執(zhí)行周期可由不等的機(jī)器周期數(shù)(或時(shí)鐘周期數(shù))構(gòu)成。甚至當(dāng)某一操作控制信號(hào)發(fā)出后,可以一直等待執(zhí)行部件完成操作后發(fā)回“應(yīng)答”信號(hào),才撤除該控制信號(hào)。顯然:用這種方式形成的操作控制序列沒(méi)有固定個(gè)數(shù)的CPU周期(機(jī)器周期)或時(shí)鐘周期(節(jié)拍脈沖)與之同步。中央處理器(3)聯(lián)合控制方式

此方式為同步控制和異步控制相結(jié)合的方式。

情況(1):大部分操作序列安排在固定的機(jī)器周期中,對(duì)某些時(shí)間難以確定的操作則以執(zhí)行部件的“應(yīng)答”信號(hào)作為本次操作的結(jié)束;

情況(2):機(jī)器周期的節(jié)拍脈沖數(shù)固定,但是各條指令周期的機(jī)器周期數(shù)不固定。

前面討論的幾條典型指令周期的分析、下節(jié)討論的微程序控制器都是這種控制方式。中央處理器[控制器的實(shí)現(xiàn)]已知:控制器類型主要有:

(1)微程序控制器*

(2)硬布線控制器

各自的特點(diǎn)與追求的目標(biāo)不同.首先討論微程序控制器的原理與實(shí)現(xiàn)

5.4微程序控制器*

中央處理器

與硬布線控制器相比較,微程序控制器具有規(guī)整性、靈活性、可維護(hù)性等一系列優(yōu)點(diǎn),是一種利用軟件(代碼)方法來(lái)設(shè)計(jì)硬件命令的特殊技術(shù)。[微程序控制思想的產(chǎn)生]1951英國(guó)劍橋大學(xué)Wilkes教授提出:

每條機(jī)器指令的取出、完成執(zhí)行微操作命令1微操作命令2微操作命令n…微指令110101000微指令m微程序00010010…例如:前例討論的指令A(yù)DDR2,R0的取指與執(zhí)行過(guò)程

CPU?如何實(shí)現(xiàn)?OC依次發(fā)出操作命令∴取出并完成一條機(jī)器指令功能,由一段微程序?qū)崿F(xiàn)。思想:存儲(chǔ)邏輯產(chǎn)生微操作命令存入ROM實(shí)現(xiàn)各條指令的全部微程序5.4.1

微程序控制的基本原理基本思想:

把操作控制信號(hào)編成所謂的“微指令”,依次存放到ROM中。當(dāng)機(jī)器需要進(jìn)行“取指”或“執(zhí)行指令”的操作時(shí),通過(guò)逐條地取出這些微指令,依次產(chǎn)生所需要的各種操作控制信號(hào),送往相應(yīng)部件并執(zhí)行操作,從而實(shí)現(xiàn)機(jī)器指令的功能。本節(jié)主要內(nèi)容:

微命令和微操作微指令和微程序微程序控制器原理框圖微程序舉例CPU周期與微指令周期的關(guān)系機(jī)器指令與微指令的關(guān)系中央處理器1微命令和微操作

在基本組成結(jié)構(gòu)上,CPU可以分為兩大部分:

控制部件和執(zhí)行部件。中央處理器微命令:控制部件向執(zhí)行部件發(fā)出的最基本操作命令。如:打開(kāi)或關(guān)閉某個(gè)控制門(mén)的電位信號(hào)、某個(gè)寄存器的鎖存脈沖信號(hào)、復(fù)位信號(hào)等。

微操作:執(zhí)行部件接受微命令后所進(jìn)行的操作??梢?jiàn):微命令是微操作的控制信號(hào);微操作則是微命令的執(zhí)行過(guò)程。發(fā)出微命令執(zhí)行微操作注意:控制部件與執(zhí)行部件之間還有另一種聯(lián)系:反饋信息。執(zhí)行部件可通過(guò)反饋線向控制部件反饋操作情況,控制部件則可以根據(jù)執(zhí)行部件的“狀態(tài)”來(lái)下達(dá)新的微命令,這稱作:——“狀態(tài)測(cè)試”?!?/p>

控制部件與執(zhí)行部件通過(guò)控制信號(hào)和反饋信息進(jìn)行交互與聯(lián)系。

控制部件

執(zhí)行部件控制反饋

中央處理器微操作類別:

根據(jù)數(shù)據(jù)通路的結(jié)構(gòu)關(guān)系,微操作又分為相容性和相斥性兩種。相斥性微操作:不允許同時(shí)執(zhí)行或不能在同一個(gè)CPU周期內(nèi)并行執(zhí)行的微操作。

相容性微操作:允許同時(shí)執(zhí)行或可以在同一個(gè)CPU周期內(nèi)并行執(zhí)行的微操作。以某簡(jiǎn)單運(yùn)算器數(shù)據(jù)通路為例,如下圖:

(教材P156

圖5.20)演示相斥性微命令相容性微命令數(shù)據(jù)通路圖:多選一多選一2微指令和微程序

中央處理器

微指令:

在一個(gè)機(jī)器周期中,實(shí)現(xiàn)一定操作功能的若干微命令的組合,可以組成一條微指令。

微指令的一般格式為:

順序控制字段操作控制字段例:(前圖5.20)運(yùn)算器數(shù)據(jù)通路所對(duì)應(yīng)的微指令格式如下:操作控制字段:送出各種操作控制信號(hào)(微命令)可以直接給出下一條微指令的地址也可以通過(guò)P1或P2測(cè)試,形成下一條微指令的地址順序控制字段:用來(lái)確定下一條微指令的地址,控制微程序流程。[節(jié)拍電位和節(jié)拍脈沖信號(hào)]中央處理器節(jié)拍電位信號(hào):微指令中給出的各控制信號(hào)都是節(jié)拍電位(狀態(tài))信號(hào),它們的持續(xù)時(shí)間都是一個(gè)機(jī)器周期。(見(jiàn)后圖,原因后述)節(jié)拍脈沖信號(hào):時(shí)鐘周期信號(hào)

由時(shí)序發(fā)生器產(chǎn)生的最小時(shí)間控制信號(hào)。通常:節(jié)拍電位信號(hào)通常持續(xù)一個(gè)機(jī)器周期,其應(yīng)正好包容若干個(gè)節(jié)拍脈沖信號(hào),見(jiàn)上圖。例如:節(jié)拍電位信號(hào)轉(zhuǎn)換為節(jié)拍脈沖信號(hào)的方法,見(jiàn)下例:T4微指令發(fā)來(lái)的節(jié)拍電位控制信號(hào)時(shí)鐘周期脈沖

例:LDR1=LDR1’∧T4節(jié)拍脈沖控制信號(hào)3微程序控制器原理框圖微程序控制器原理框圖請(qǐng)參見(jiàn)CAI演示。

中央處理器

它主要由控制存儲(chǔ)器CM、微指令寄存器

IR和地址轉(zhuǎn)移邏輯三大部分組成。各部分的作用說(shuō)明:

(

AR)(CM)(IR)微程序控制器原理框圖

(教材P158圖5.23)(微指令I(lǐng))(1)控制存儲(chǔ)器CM

CM是微程序控制器的核心部件,用來(lái)存放微程序(其一般由高速ROM組成)。其性能(包括容量、速度、可靠性等)與計(jì)算機(jī)的性能密切相關(guān)。

CM負(fù)責(zé)存放實(shí)現(xiàn)全部指令系統(tǒng)的微程序。一旦微程序固化到ROM中,機(jī)器運(yùn)行時(shí)則只讀不允許寫(xiě)。其工作過(guò)程也是:根據(jù)當(dāng)前取指或執(zhí)行指令要求,依次讀出微指令、送出微命令、實(shí)現(xiàn)指令功能。

(微指令送到IR,發(fā)出微命令)。中央處理器微指令周期定義:

“讀出一條微指令并完成該微指令操作的時(shí)間總和”稱為一個(gè)微指令周期。通常,在串行方式的微程序控制器中,微指令周期就是CM的工作周期。

CM的存儲(chǔ)容量視機(jī)器指令系統(tǒng)而定,即取決于微程序的數(shù)量。對(duì)CM的要求是速度快,讀出周期短。依次取出并完成微指令操作(2)微指令寄存器μIR微地址寄存器(μAR):用于存放下一條要取出的微指令的地址,而微命令寄存器則保存當(dāng)前微指令的操作控制字段和判別測(cè)試字段的信息。順序控制字段操作控制字段測(cè)試字段微地址字段μIR:(微命令字段)(微地址)μAR用來(lái)存放由控制存儲(chǔ)器CM讀出的微指令。(3)地址轉(zhuǎn)移邏輯

一般情況下,當(dāng)前微指令讀出后,微地址字段(簡(jiǎn)稱微地址)作為下一條微指令的地址,自動(dòng)送入μAR,具體有下面兩種情況:1)如果微程序不出現(xiàn)條件跳轉(zhuǎn),則下一條微指令的地址就由本條微指令直接給出。中央處理器2)當(dāng)微程序需要測(cè)試轉(zhuǎn)移時(shí),則根據(jù)判別測(cè)試字段P和執(zhí)行部件的“狀態(tài)條件”反饋信息,通過(guò)修改微地址寄存器μAR內(nèi)容,形成新的下一條微指令的地址,進(jìn)而實(shí)現(xiàn)微程序的轉(zhuǎn)移。

這一功能就由地址轉(zhuǎn)移邏輯來(lái)承擔(dān),其可以根據(jù)轉(zhuǎn)移條件,自動(dòng)完成修改微地址的任務(wù)。

中央處理器

∵微程序是由微指令序列組成的,該序列決定微程序的流程。

∴在執(zhí)行當(dāng)前微指令時(shí),必須及時(shí)給出或形成下一條微指令的地址,以便能夠正確地取出下一條微指令。問(wèn)題的關(guān)鍵:

如何形成后繼微指令地址?(后面將具體討論)那么,微程序的流程如何控制呢?4微程序控制過(guò)程舉例

(教材P159)已知:一條機(jī)器指令的功能→可執(zhí)行一段微程序來(lái)實(shí)現(xiàn)。如何理解微程序的具體控制過(guò)程呢?不妨用一條稍復(fù)雜一點(diǎn)的機(jī)器指令A(yù)DB(BCD碼十進(jìn)制加法指令),分析采用微程序控制來(lái)實(shí)現(xiàn)指令的具體過(guò)程。(教材P159-161)中央處理器

舉例:“十進(jìn)制加法指令”的實(shí)現(xiàn)(教材P159-161):

“ADBR2,R1”:兩個(gè)十進(jìn)制數(shù)(R1)=a、(R2)=b(BCD碼),要求實(shí)現(xiàn)十進(jìn)制相加(S=a+b),即:按“逢十進(jìn)1”運(yùn)算。已知,機(jī)器的數(shù)據(jù)通路如前例,對(duì)應(yīng)的微指令格式如下:

“加6校正算法”設(shè):被加數(shù)為a,加數(shù)為b,十進(jìn)制和為S(均為BCD碼數(shù))(1)先做(S*=a+b+6)運(yùn)算,然后判斷進(jìn)位標(biāo)志Cy;(2)若Cy=1(有進(jìn)位),則表示本位結(jié)果正確,S=S*

(向高位有進(jìn)位);若Cy=0(無(wú)進(jìn)位),則表示本位計(jì)算+6后的結(jié)果多余,做(S*-6)運(yùn)算,恢復(fù)原來(lái)正確的結(jié)果.

(S=S*-6=a+b)。(1位)十進(jìn)制加法算法規(guī)則:(BCD碼數(shù)直接做十進(jìn)制運(yùn)算)(舉例)觀察由微指令依次發(fā)出各操作控制信號(hào)的過(guò)程:實(shí)現(xiàn)指令的算法流程:(設(shè)十進(jìn)制和為S)計(jì)算S*=a+b+6;判斷最高位有無(wú)進(jìn)位?若,有進(jìn)位;則本位結(jié)果正確:S=S*;若,無(wú)進(jìn)位;則+6多余。正確結(jié)果為:S=S*-6

上述過(guò)程由一段微指令序列(微程序)來(lái)完成。中央處理器取指P1測(cè)試,形成對(duì)應(yīng)的微程序入口地址用一條微指令實(shí)現(xiàn)”取指“操作:設(shè):

(R1)=a;(R2)=b(R3)=6R取出“十進(jìn)制加法”機(jī)器指令→IRADBR2,R1ADBR2,R1baa+ba+bab測(cè)試進(jìn)位a+ba+b+6a+b+6a+b+6a+ba+b+6(a+b+6)-6a+b小結(jié):本例“十進(jìn)制加法”機(jī)器指令功能由四條微指令來(lái)實(shí)

現(xiàn),各微指令的編碼如下:

第一條微指令的二進(jìn)制編碼是:

功能① 000000

000

00011111100000

(取指)

第二條微指令的二進(jìn)制編碼是:

010100100

10000000001001

(R1+R2→R2)

第三條微指令的二進(jìn)制編碼是:

③01000100110000000010000

(R2+R3→R2)

第四條微指令的二進(jìn)制編碼是:

01001100000100000000000

(R2-R3→R2)組成實(shí)現(xiàn)本條機(jī)器指令的微程序中央處理器

微程序:由若干條微指令組成的序列,用以實(shí)現(xiàn)機(jī)器指令的功能。

注意到:若用本例的數(shù)據(jù)通路和微指令格式,實(shí)現(xiàn)機(jī)器指令:

ADDR1,R2;(R1)+(R2)→R2

只需要一條微指令(微程序)即可,寫(xiě)出微指令代碼:000000① 000000

000

00011111100000 (取指)∴機(jī)器指令“ADDR1,R2”的取出并完成操作的微程序?yàn)椋孩?010100100

10000000000000(R1)+(R2)→R2——微程序由2條微指令組成??梢?jiàn):不同機(jī)器指令,對(duì)應(yīng)的微程序長(zhǎng)度是不同的,取決于機(jī)器的結(jié)構(gòu)和微指令的格式。

回顧一下前面介紹的指令周期方框圖語(yǔ)言描述,可以更加清晰地看到用微程序?qū)崿F(xiàn)機(jī)器指令的過(guò)程用1條微指令取出機(jī)器指令

用若干條微指令分別實(shí)現(xiàn)各機(jī)器指令微程序控制法:由微程序來(lái)控制實(shí)現(xiàn)機(jī)器中各條指令功能的方法。對(duì)應(yīng)的控制器,稱為:微程序控制器.

∴在微程序控制器中,應(yīng)當(dāng)預(yù)先設(shè)計(jì)好所有機(jī)器指令對(duì)應(yīng)的微程序,并存入控制存儲(chǔ)器中。小結(jié):(1)微程序控制實(shí)質(zhì):是將一條機(jī)器指令的執(zhí)行過(guò)程分解成若干步,每一步都由一條微指令來(lái)產(chǎn)生若干對(duì)應(yīng)的微命令來(lái)加以實(shí)現(xiàn)。

即:一條機(jī)器指令的執(zhí)行,是通過(guò)執(zhí)行一段對(duì)應(yīng)的微程序來(lái)實(shí)現(xiàn)的。(2)微程序組成:可以由一條或若干條微指令組成,取決于指令的復(fù)雜度、數(shù)據(jù)通路結(jié)構(gòu)和微指令格式等。為了保證控制信號(hào)的同步,通常設(shè)計(jì)CPU周期與微指令周期正好相等,其時(shí)間關(guān)系如下:5

CPU周期與微指令周期的關(guān)系

讀取微指令執(zhí)行微指令CPU周期CPU周期T1T2T3T4取出下一條微指令執(zhí)行微指令∴在串行工作的微程序控制器中:微指令周期

=讀出微指令的時(shí)間

+執(zhí)行該條微指令的時(shí)間

=CPU周期

(=CM的工作周期)6機(jī)器指令與微指令的關(guān)系

問(wèn)題:

在機(jī)器中,一會(huì)兒取機(jī)器指令,一會(huì)兒取微指令,它們之間到底是什么關(guān)系?

中央處理器機(jī)器指令微指令?中央處理器

1.用微程序?qū)崿F(xiàn)機(jī)器指令在采用微程序控制器實(shí)現(xiàn)控制的計(jì)算機(jī)中,每一條機(jī)器指令的功能都有一段對(duì)應(yīng)的微程序來(lái)控制和實(shí)現(xiàn)。

幾點(diǎn)注釋:(見(jiàn)教材P161圖5.26)微程序控制器存放機(jī)器指令存放微指令取出機(jī)器指令實(shí)現(xiàn)指令功能書(shū)上遺漏

2.指令與微指令、程序與微程序、地址與微地址的對(duì)應(yīng)關(guān)系為:前者只與內(nèi)存儲(chǔ)器有關(guān),屬于軟件;后者只與控制存儲(chǔ)器有關(guān),屬于硬件命令范疇。與此相關(guān),各自也有相對(duì)應(yīng)的硬設(shè)備。

3.一條微指令周期通常對(duì)應(yīng)一個(gè)CPU周期?!?/p>

由微指令本身送出的微命令信號(hào)通常維持一個(gè)機(jī)器周期(節(jié)拍電位信號(hào))。下一步要解決的問(wèn)題

下面通過(guò)例題,再進(jìn)一步理解在不同的數(shù)據(jù)通路和微指令格式下的微程序設(shè)計(jì)方法,以熟悉和體驗(yàn)機(jī)器指令與微指令的關(guān)系。微程序設(shè)計(jì)舉例(略)

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

讀控制寫(xiě)控制RRA0RA1選擇WWA0WA1選擇100R0100R0101R1101R1110R2110R2111R3111R30××不讀出0××不寫(xiě)入中央處理器數(shù)據(jù)通路圖:中央處理器

已知,微指令字長(zhǎng)12位,微指令格式如下:01234567891011RA0RA1WA0WA1RWLDSALDSBSB-ALUSB-ALUReset~

讀R0-R3的選擇控制寫(xiě)R0-R3的選擇控制寄存器讀命令;寄存器寫(xiě)命令;傳送SB的控制信號(hào);傳送SB的控制信號(hào);并使加法器的最低位加1清暫存器SB為零的信號(hào);一段微程序結(jié)束,轉(zhuǎn)入取機(jī)器指令的控制信號(hào)。要求:用二進(jìn)制代碼寫(xiě)出如下指令對(duì)應(yīng)的微程序:(1)“ADDR0,R1”指令,即(R0)+(R1)→R1(2)“SUBR2,R3”指令,即(R3)-(R2)→R3(3)“MOVR2,R3”指令,即(R2)→(R3)假定:只考慮各指令的執(zhí)行過(guò)程。打入緩沖器SB的控制信號(hào);打入緩沖器SA的控制信號(hào);【解】:

先結(jié)合數(shù)據(jù)通路圖,畫(huà)出實(shí)現(xiàn)這三條機(jī)器指令的微程序流程圖,如下圖所示。(假定不考慮)ADDR0,R1SUBR2,R3MOVR2,R3

其中:假定微程序僅考慮“執(zhí)行周期”,微指令序列的順序用數(shù)字標(biāo)號(hào)標(biāo)在每條微指令的右上角。每一框表示一條微指令。

根據(jù)給定的微指令周期時(shí)間關(guān)系,完成ADD,SUB指令的執(zhí)行動(dòng)作需要3條微指令,MOV指令只需2條微指令。

按照已知的微指令格式:

01234567891011RA0RA1WA0WA1RWLDSALDSBSB-ALUSB-ALUReset~

ADD指令的執(zhí)行過(guò)程包括:R0→SA,R1→SB,SA+SB→R100××1010000001××10010000××0101001001因此,實(shí)現(xiàn)指令“ADDR0,R1”的微程序?yàn)椋?/p>

00××101000002.01××10010000

××0101001001由三條微指令組成中央處理器01234567891011RA0RA1WA0WA1RWLDSALDSBSB-ALUSB-ALUReset~

SUB指令的執(zhí)行過(guò)程包括:R3→SA,R2→SB,SA-SB→R311××1010000010××10010000××1101000101因此,執(zhí)行“SUBR2,R3”的三條微指令為:

11××101000002.10××100100003.××1101000101微程序中央處理器01234567891011RA0RA1WA0WA1RWLDSALDSBSB-ALUSB-ALUReset~

MOV指令的執(zhí)行過(guò)程包括:R2→SA,0→SB;SA+SB→R3××1101001001因此,執(zhí)行“SUBR2,R3”的兩條微指令為:

10××101000102.××110100100110××10100010微程序可見(jiàn):三條機(jī)器指令是由三段微程序來(lái)分別實(shí)現(xiàn)的。

這就又一次說(shuō)明了機(jī)器指令與微指令的關(guān)系,即:

在微程序控制器模式的機(jī)器中,每一條機(jī)器指令,其功能都是由對(duì)應(yīng)的一段微程序來(lái)加以實(shí)現(xiàn)。

關(guān)鍵問(wèn)題:如何設(shè)計(jì)出合理的微指令結(jié)構(gòu),提高微程序控制器的工作效率。設(shè)計(jì)目標(biāo):(教材P162)

(1)盡量縮短微指令字的長(zhǎng)度;

(2)盡量減小控制存儲(chǔ)器的容量;

(3)盡量提高微程序的執(zhí)行速度;

(4)盡量方便對(duì)微指令的修改;

(5)盡量提高微程序設(shè)計(jì)的靈活性?!嘈枰M(jìn)一步討論微程序的設(shè)計(jì)方法。[微指令格式的合理設(shè)計(jì)]

→會(huì)直接影響微程序控制器結(jié)構(gòu)。5.4.2微程序設(shè)計(jì)技術(shù)主要討論:微命令編碼方法微地址的形成方法微指令格式設(shè)計(jì)動(dòng)態(tài)微程序介紹中央處理器1微命令編碼

-------

操作控制字段設(shè)計(jì)方法

已知:微指令的一般格式為:操作控制字段設(shè)計(jì)方法,稱為:微命令編碼方法。通常有三種方法:

1、直接表示法;2、編碼表示法;

3、混合表示法。中央處理器操作控制字段順序控制字段(1)直接表示法特點(diǎn)是:

操作控制字段中的所有數(shù)位都定義為具體命令(如前面例題所述):

中央處理器這種方法的優(yōu)點(diǎn):簡(jiǎn)單直觀,控制速度快,輸出可以直接用于控制。缺點(diǎn):操作控制字段較長(zhǎng),代碼效率較低,因而微指令字較長(zhǎng),使控制存儲(chǔ)器容量加大。(2)編碼表示法

特點(diǎn):

把若干相斥性的微命令信號(hào)組成一個(gè)小組,用一個(gè)字段來(lái)分別表示。通過(guò)對(duì)字段進(jìn)行譯碼,產(chǎn)生所對(duì)應(yīng)的微命令信號(hào),即:由譯碼輸出產(chǎn)生操作控制信號(hào)。其對(duì)應(yīng)的微指令結(jié)構(gòu)如下圖所示。中央處理器為什么?互斥性命令互斥性命令互斥性命令中央處理器優(yōu)點(diǎn):采用字段譯碼法,可以用較短的二進(jìn)制代碼,表示較多的微命令信號(hào)。例如:3位代碼可譯碼輸出8個(gè)信號(hào);4位代碼則可譯出16個(gè)信號(hào)等。

與直接表示法相比,編碼表示法顯然可大大縮短操作控制字段長(zhǎng)度。在字段譯碼法中,需要注意:

1、在一條微指令中,每個(gè)字段每次只能譯碼產(chǎn)生一個(gè)微命令。(∴同一字段中只能安排互斥性命令)

2、每個(gè)字段都應(yīng)當(dāng)至少留出一個(gè)代碼作為“空碼”,該“空碼”表示字段不產(chǎn)生微命令輸出。

例如:3位代碼譯碼后可表示7個(gè)微命令,4位代碼譯碼后可表示15個(gè)微命令,都至少留出一個(gè)空碼。為什么?缺點(diǎn):由于增加“譯碼電路”,會(huì)使微程序的執(zhí)行速度會(huì)稍稍減慢。目前,在微程序控制器設(shè)計(jì)中,字段直接譯碼法使用較普遍。(3)混合表示法

特點(diǎn):是把直接表示法與字段編碼法混合使用,以便綜合考慮指令字長(zhǎng)、靈活性、微程序執(zhí)行速度等方面的要求。中央處理器可見(jiàn):

對(duì)微指令操作控制字段的設(shè)計(jì),應(yīng)當(dāng)針對(duì)機(jī)器情況,做出合理選擇與設(shè)計(jì)。(舉例)例:某計(jì)算機(jī)共有50個(gè)微命令,其中包含有4個(gè)互斥性命令組,各組分別包含微命令:6,4,12,8個(gè),試分析:(1)設(shè)計(jì)出微指令的操作控制字段,該字段最少需多少位?(2)與直接表示法相比,操作控制字段可減少多少位?[解]:(1)采用混合表示法設(shè)計(jì)操作控制字段:

4個(gè)互斥性命令組分別包含微命令:6,4,12,8個(gè);(共30個(gè))

各字段位長(zhǎng)分別為:3,3,4,4位,共14位。其余的微命令用直接表示法:共(50-30)=20位。∴

操作控制字段最少需:14+20=34位由本例可以看出:應(yīng)用混合設(shè)計(jì)法,可以有效縮短操作控制字段長(zhǎng)度。操作控制字段設(shè)計(jì)如下:(2)與直接表示法相比,操作控制字段可減少:50-34=16位。2微地址的形成方法

----------順序控制字段的設(shè)計(jì)方法

微指令執(zhí)行的順序控制問(wèn)題,實(shí)際上是如何確定下一條微指令地址的問(wèn)題。通常,產(chǎn)生后繼微地址有如下方法:

1、計(jì)數(shù)器方式;2、多路轉(zhuǎn)移方式中央處理器操作控制字段順序控制字段(1)計(jì)數(shù)器方式特點(diǎn):

μPC方式

在順序執(zhí)行微指令時(shí),后繼微地址在現(xiàn)行微地址加上一個(gè)增量來(lái)產(chǎn)生;在非順序執(zhí)行微指令時(shí),通過(guò)直接修改μPC

,即:現(xiàn)行微指令執(zhí)行后,轉(zhuǎn)去執(zhí)行新指定微地址的微指令。中央處理器與PC功能類似μARμPC由微指令直接給出計(jì)數(shù)器方式的基本特點(diǎn):(教材P163)

順序控制字段較短,微地址產(chǎn)生機(jī)構(gòu)簡(jiǎn)單。但是多路并行轉(zhuǎn)移功能較弱,速度較慢,靈活性較差。

∴在計(jì)數(shù)器方式中,微地址寄存器(μAR)采用可置數(shù)的計(jì)數(shù)器μPC即可。這樣,順序執(zhí)行的微指令序列就必須安排在控制存儲(chǔ)器的連續(xù)單元中。(2)多路轉(zhuǎn)移方式

若一條微指令具有多個(gè)轉(zhuǎn)移分支的能力,則稱為多路轉(zhuǎn)移,這是一種最常用的方式。多路轉(zhuǎn)移方式的實(shí)現(xiàn):

①當(dāng)微程序不產(chǎn)生分支時(shí),后繼微地址直接由微指令的順序控制字段給出;操作控制字段測(cè)試字段微地址字段μAR②當(dāng)微程序出現(xiàn)分支時(shí),可有若干“候選微地址“供選擇:按順序控制字段的“判別測(cè)試”標(biāo)志和“狀態(tài)條件”信息來(lái)選擇確定下一個(gè)微地址,直接修改μAR即可

。

操作控制字段測(cè)試字段微地址字段μAR修改方法:①②多路轉(zhuǎn)移方式多路轉(zhuǎn)移邏輯外部條件顯然:若可以修改微地址寄存器μAR的n位,則可實(shí)現(xiàn)微程序的2n路轉(zhuǎn)移。

CM多路轉(zhuǎn)移方式的特點(diǎn):能以較短的順序控制字段配合,實(shí)現(xiàn)多路目標(biāo)的并行轉(zhuǎn)移,靈活性好,速度較快。這是一種最常用的設(shè)計(jì)方式

當(dāng)然,地址轉(zhuǎn)移邏輯需要用附加的組合邏輯電路來(lái)實(shí)現(xiàn)。中央處理器【例2】某微程序控制器的微地址寄存器μAR有6位(μA3~μA0),當(dāng)需要修改其內(nèi)容時(shí),可通過(guò)各位觸發(fā)器的強(qiáng)置端S將其置“1”?,F(xiàn)有三種情況:(教材P163)

(1)執(zhí)行“取指”微指令后,微程序按IR的OP字段低4位(IR3~I(xiàn)R0),產(chǎn)生24=16路分支;

(2)執(zhí)行條件轉(zhuǎn)移指令微程序時(shí),按進(jìn)位標(biāo)志C的狀態(tài),產(chǎn)生21=2路分支;

(3)執(zhí)行控制臺(tái)指令微程序時(shí),取2位OP字段(IR4,IR5)的狀態(tài),產(chǎn)生22=4路分支。請(qǐng)按多路轉(zhuǎn)移方法設(shè)計(jì)微地址轉(zhuǎn)移邏輯電路。中央處理器

【解】:

按所給設(shè)計(jì)條件,微程序中設(shè)三種狀態(tài)判別測(cè)試:P1,P2,P3。修改μA5~μA0內(nèi)容可以有很大靈活性,假設(shè)統(tǒng)一在T4時(shí)刻修改μAR(T4為機(jī)器周期的最后一個(gè)節(jié)拍脈沖),現(xiàn)設(shè)置分配如下:

(1)P1測(cè)試:用IR3~I(xiàn)R0修改μA3~μA0;

(實(shí)現(xiàn)16路分支)

(2)P2測(cè)試:用C修改μA0;(實(shí)現(xiàn)2路分支)

(3)P3測(cè)試:用IR5,IR4修改μA5,μA4。(實(shí)現(xiàn)4路分支)

μA5

=P3·IR5·T4μA4=P3·IR4·T4μA0

=P2·C·T4μA3

=P1·IR3·T4μA2=P1·IR2·T4μA1

=P1·IR1·T4μA0=P1·IR0·T4∴地址轉(zhuǎn)移邏輯的邏輯函數(shù)如下:

μA5=P3·IR5·T4

μA4=P3·IR4·T4

μA3=P1·IR3·T4

μA2=P1·IR2·T4

μA1=P1·IR1·T4

μA0=P1·IR

溫馨提示

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