《微型計(jì)算機(jī)原理第3章上》由會(huì)員分享,可在線閱讀,更多相關(guān)《微型計(jì)算機(jī)原理第3章上(37頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第1章 計(jì)算機(jī)系統(tǒng)概述,*,*,單擊此處輸入文本,微型計(jì)算機(jī)原理,第3章 運(yùn)算器與控制器,3.,1,控制器概述,3.,3,微程序控制器概述,3.0 運(yùn)算器概述,2024/10/28,1,掌握:,加減運(yùn)算的實(shí)現(xiàn),控制器的功能和基本組成,微程序控制器的概念、原理,2024/10/28,2,第3章 運(yùn)算器與控制器,運(yùn)算器部件:,是計(jì)算機(jī)加工處理數(shù)據(jù)的功能部件。,對(duì)數(shù)據(jù)的加工處理包括:,與、或、非、異或等。,ALU,是運(yùn)算器中的核心部件。也是運(yùn)算器內(nèi)部傳送數(shù)據(jù)的重要通路。,運(yùn)算器的核心功能:,實(shí)現(xiàn)算術(shù)運(yùn)算和邏輯運(yùn)算,算術(shù)邏輯單元,ALU,(Arithmetic-Logical Unit):,加、減、乘
2、、除等;,數(shù)值數(shù)據(jù)的,算術(shù)運(yùn)算:,邏輯數(shù)據(jù)的,邏輯操作:,2024/10/28,3,第3章 運(yùn)算器與控制器,運(yùn)算器還,暫存,參加運(yùn)算的數(shù)據(jù)和中間結(jié)果,,選擇,參加運(yùn)算的數(shù)據(jù),所以運(yùn)算器內(nèi)包含一定數(shù)目的,通用寄存器,和,多路選擇器,、,譯碼電路,等。,運(yùn)算器,定點(diǎn)運(yùn)算器,浮點(diǎn)運(yùn)算器,定點(diǎn)運(yùn)算器用硬件直接實(shí)現(xiàn),是必備的運(yùn)算器。,浮點(diǎn)運(yùn)算器又稱為數(shù)學(xué)協(xié)處理器,主要用硬件完成,是可選件。,現(xiàn)在的高檔微機(jī)已經(jīng)把定點(diǎn)運(yùn)算器和浮點(diǎn)運(yùn)算器集成在一個(gè)芯片中。,2024/10/28,4,第3章 運(yùn)算器與控制器,控制器,是整個(gè)計(jì)算機(jī)系統(tǒng)的指揮中心,協(xié)調(diào)并控制計(jì)算機(jī)的各個(gè)部件執(zhí)行程序的,指令序列,。,微處理器,微處理
3、器將,運(yùn)算器,與,控制器,集成在一個(gè)芯片上,通常稱為,中央處理單元,(,CPU,Central Processing Unit)。,控制器,組合邏輯控制器(又稱硬布線邏輯控制器),微程序控制器,2024/10/28,5,第3章 運(yùn)算器與控制器,3.,1,運(yùn)算器概述,運(yùn)算器主要由算術(shù)邏輯運(yùn)算單元,ALU、,鎖存器、寄存器、內(nèi)部總線和控制電路等構(gòu)成。其核心部件是,ALU。,下面介紹運(yùn)算器的基本結(jié)構(gòu)和組成。,3.,1.1,運(yùn)算器的基本結(jié)構(gòu),運(yùn)算器三種結(jié)構(gòu)形式,單總線結(jié)構(gòu),雙總線結(jié)構(gòu),三總線結(jié)構(gòu),2024/10/28,6,第3章 運(yùn)算器與控制器,1單總線結(jié)構(gòu),單總線結(jié)構(gòu)的運(yùn)算器如所示,A,B,通用,寄
4、存器,狀態(tài)標(biāo)志寄存器,內(nèi)部數(shù)據(jù)總線,ALU,2024/10/28,7,第3章 運(yùn)算器與控制器,在單總線結(jié)構(gòu)的運(yùn)算器中,所有部件都掛在同一總線上,各部件之間的數(shù)據(jù)傳送都是通過同一總線進(jìn)行。,由于同一時(shí)刻只能有一個(gè)操作數(shù)放在總線上,各部件對(duì)總線是分時(shí)使用的。,進(jìn)行一次運(yùn)算需三步完成,第一步,通過總線把第一個(gè)操作數(shù)送鎖存器,A,;,第二步,將第二個(gè)操作數(shù)送入鎖存器,B;,第三步,將運(yùn)算結(jié)果通過總線送入目的寄存器中。,單總線結(jié)構(gòu)的運(yùn)算器,結(jié)構(gòu)簡(jiǎn)單,,但,速度較慢,。,2024/10/28,8,第3章 運(yùn)算器與控制器,2雙總線結(jié)構(gòu),雙總線結(jié)構(gòu)的運(yùn)算器如圖所示,鎖存器,通用,寄存器,狀態(tài)標(biāo)志寄存器,內(nèi)部數(shù)
5、據(jù)總線1,ALU,內(nèi)部數(shù)據(jù)總線2,ALU,2024/10/28,9,第3章 運(yùn)算器與控制器,在雙總線結(jié)構(gòu)的運(yùn)算器中,用,兩組內(nèi)部數(shù)據(jù)總線,連接運(yùn)算器的所有部件。,這種結(jié)構(gòu)中,兩個(gè)操作數(shù)可同時(shí)加到,ALU,的輸入端,且可立刻得到運(yùn)算結(jié)果。,ALU,的輸出不能直接連到總線上,因?yàn)楫?dāng)形成操作結(jié)果時(shí),兩條總線都被輸入數(shù)據(jù)占據(jù)著,所以必須在,ALU,輸出端設(shè)置鎖存器。,進(jìn)行一次運(yùn)算需,兩步,完成,第一步,把兩個(gè)操作數(shù)分別通過總線1、總線2送,ALU,的輸入端,并形成運(yùn)算結(jié)果送鎖存器。,第二步,把鎖存器的運(yùn)算結(jié)果通過任一總線送入目的寄存器中。,雙總線結(jié)構(gòu)的運(yùn)算器提高了運(yùn)算速度。,2024/10/28,10
6、,第3章 運(yùn)算器與控制器,3三總線結(jié)構(gòu),三總線結(jié)構(gòu)的運(yùn)算器如圖所示,通用,寄存器,狀態(tài)標(biāo)志寄存器,內(nèi)部數(shù)據(jù)總線1,內(nèi)部數(shù)據(jù)總線2,內(nèi)部數(shù)據(jù)總線3,總線,旁路器,ALU,2024/10/28,11,第3章 運(yùn)算器與控制器,在三單總線結(jié)構(gòu)的運(yùn)算器中,用,三條總線,連接運(yùn)算器的所有部件。,這種結(jié)構(gòu)中,,ALU,的兩個(gè)輸入端,分別由總線1、總線2供給數(shù)據(jù),而,ALU,的輸出與總線3相連。,進(jìn)行一次運(yùn)算只需,一步,就可完成,把兩個(gè)操作數(shù)分別通過總線1、總線2送,ALU,的輸入端,并形成運(yùn)算結(jié)果直接通過總線3送入目的寄存器中。,圖中設(shè)置了總線,旁路器,,如果有的數(shù)據(jù)要在總線間直接傳送,可通過總線旁路器將總
7、線2的數(shù)據(jù)直接傳給總線3。,三總線結(jié)構(gòu)的運(yùn)算器運(yùn)算,速度很快,,但內(nèi)部,線路復(fù)雜,。,2024/10/28,12,第3章 運(yùn)算器與控制器,3.,1.2,運(yùn)算器的組成,以一個(gè)模型機(jī)的運(yùn)算器為例,說明運(yùn)算器的組成。,該運(yùn)算器由如下幾部分,構(gòu)成,:,1算術(shù),/,邏輯運(yùn)算單元,ALU,由4片,SN74181,和,SN74182,構(gòu)成。,SN74181,是4位并行加法器,,SN74182,是并行進(jìn)位部件。,可構(gòu)成,16位的,ALU,。,2024/10/28,13,第3章 運(yùn)算器與控制器,2,鎖存器,鎖存器,A、B,用來,暫存,來自通用寄存器、存儲(chǔ)器或外部設(shè)備的數(shù)據(jù)。給,ALU,提供參加運(yùn)算的數(shù)據(jù)。,一旦
8、數(shù)據(jù)進(jìn)入鎖存器,不管外部數(shù)據(jù)怎樣變化,都不能改變鎖存器的內(nèi)容。,ALU,將依據(jù)鎖存器,A、B,的數(shù)據(jù)進(jìn)行處理。,3通用寄存器組,該運(yùn)算器設(shè)置了8個(gè)通用寄存器,R0R7。,通用寄存器,可供程序員訪問,用來作為累加器、變址寄存器、操作數(shù)寄存器等來使用。,2024/10/28,14,第3章 運(yùn)算器與控制器,源寄存器,用來存放源操作數(shù)。,暫存寄存器,用來暫存中間結(jié)果。,4移位器,移位器,用來將,ALU,的數(shù)據(jù)進(jìn)行左移、右移、直傳、半字交換等操作。供不同運(yùn)算要求使用。,狀態(tài)寄存器用來存放在運(yùn)算過程中得到的,狀態(tài)標(biāo)志,(如零標(biāo)志、進(jìn)位標(biāo)志、符號(hào)標(biāo)志等),以便供程序判斷使用。,5狀態(tài)寄存器,2024/10/
9、28,15,第3章 運(yùn)算器與控制器,總線,總線接收器,總線發(fā)送器,總線發(fā)送器,移位器,狀態(tài)寄存器,ALU,鎖存器,A,鎖存器,B,源寄存器,暫存寄存器,通用寄存器,模型機(jī)運(yùn)算器組成框圖,2024/10/28,16,第3章 運(yùn)算器與控制器,3.,2,控制器的功能和基本組成,3.,2.1,控制器的功能,控制器的作用是,控制程序的執(zhí)行,,它應(yīng)具有下列功能。,1取指令,根據(jù)程序入口地址,從存儲(chǔ)器中取出一條指令,并指出下條指令的地址。,取出的指令送到指令寄存器,以便分析運(yùn)行該指令。,2分析指令,分析指令又叫,解釋指令,或,指令譯碼,。,2024/10/28,17,第3章 運(yùn)算器與控制器,3執(zhí)行指令,根據(jù)
10、分析指令產(chǎn)生的控制命令和操作數(shù)地址,形成相應(yīng)的操作控制信號(hào)序列,通過運(yùn)算器、存儲(chǔ)器、輸入/輸出設(shè)備的執(zhí)行,,實(shí)現(xiàn)每條指令的功能,。,計(jì)算機(jī)不斷重復(fù)上述三種操作:,取指,、,分析,、,執(zhí)行,;,再取指,、,再分析,、,再執(zhí)行,,如此循環(huán),直到遇到停機(jī)指令或外來干預(yù)為止。,是對(duì)當(dāng)前取得的指令進(jìn)行,分析,,指出它要求完成什么操作,并產(chǎn)生相應(yīng)的操作控制命令。如果參與操作的數(shù)據(jù)在存儲(chǔ)器中,還要,形成操作數(shù)地址,。,2024/10/28,18,第3章 運(yùn)算器與控制器,5對(duì)異常情況和某些請(qǐng)求的處理,當(dāng)機(jī)器出現(xiàn)某些異常情況時(shí),如溢出、校驗(yàn)錯(cuò)等,或某些外來請(qǐng)求,如中斷、,DMA,等,要進(jìn)行相應(yīng)的處理。,4控制程
11、序和數(shù)據(jù)的輸入與結(jié)果的輸出,根據(jù)程序的安排并通過人的干預(yù),在適當(dāng)?shù)臅r(shí)候向輸入/輸出設(shè)備發(fā)出一些相應(yīng)的命令來,完成輸入/輸出功能,,這實(shí)際上也是通過執(zhí)行程序來完成的。,2024/10/28,19,第3章 運(yùn)算器與控制器,3.,2.2,控制器的組成,時(shí)序控制信號(hào),形成部件,啟停電路,程序計(jì)數(shù)器,運(yùn)算器,+1,CLK2,CLK,脈沖源,RESET,指令譯碼器,ID,IR,操作碼 地址碼,存儲(chǔ)器,I/O,口,數(shù)據(jù)總線,DB,地址總線,AB,控制總線,CB,指令,數(shù)據(jù),指令,地址,數(shù)據(jù)寄存器,地址寄存器,操作數(shù),地址,DR,AR,2024/10/28,20,第3章 運(yùn)算器與控制器,1程序計(jì)數(shù)器,PC(P
12、rogram,Counter),程序計(jì)數(shù)器,又稱為,指令計(jì)數(shù)器,IP,(Instruction Pointer),,是用來存放下條指令地址的。,當(dāng)取出指令后,應(yīng)確定,下條指令的地址,,這樣才能保證程序的連續(xù)執(zhí)行。,在程序開始執(zhí)行時(shí),必須將程序的,入口地址,(第一條指令地址),送入,PC,。,程序運(yùn)行中,,CPU,自動(dòng)修改,PC,的值。,PC,一直指向下次要取的指令,。,2024/10/28,21,第3章 運(yùn)算器與控制器,一般有兩種途徑來形成指令地址:,一是,順序執(zhí)行時(shí),,通過程序計(jì)數(shù)器自動(dòng)增量形成下條指令地址,即每取一條指令,,PC,自動(dòng)加1,;,二是遇到要,改變程序執(zhí)行順序時(shí),,一般由,轉(zhuǎn)移
13、指令形成轉(zhuǎn)移地址,送程序計(jì)數(shù)器,形成下條指令地址。,PC,在某些計(jì)算機(jī)中用來存放,當(dāng)前,正在執(zhí)行的,指令地址,;而在另一些計(jì)算機(jī)中用來存放,下條指令地址,;在有預(yù)取指令功能的計(jì)算機(jī)中用來存放下條要取出的指令地址。,2024/10/28,22,第3章 運(yùn)算器與控制器,2指令寄存器,IR(Instruction Register),指令寄存器,用來存放當(dāng)前執(zhí)行的指令。,要執(zhí)行一條指令時(shí),先將其從存儲(chǔ)器中取出,取出的指令首先存放在指令寄存器當(dāng)中,以便下一步送指令譯碼器譯碼執(zhí)行。,3指令譯碼器,ID(Instruction Decoder),一條,指令,一般包括,操作碼部分,和,操作數(shù)地址部分,。,操
14、作碼,指示指令要完成的什么操作。,指令譯碼器的作用,就是對(duì)指令寄存器的操作碼部分進(jìn)行譯碼,產(chǎn)生相應(yīng)的控制信號(hào)。,2024/10/28,23,第3章 運(yùn)算器與控制器,4時(shí)序控制信號(hào)形成部件,時(shí)序控制信號(hào)形成部件,,對(duì)譯碼器送來的控制信號(hào),按一定的時(shí)序關(guān)系產(chǎn)生控制信號(hào)序列,控制,CPU,內(nèi)部各部件完成指令功能。同時(shí)也發(fā)出各種外部控制信號(hào)。,時(shí)序信號(hào)的形成,是在時(shí)鐘脈沖的作用下進(jìn)行的。,時(shí)序控制信號(hào)要根據(jù)被控制部件的反饋信號(hào)進(jìn)行調(diào)整。,5脈沖源,啟停線路,脈沖源,主要是時(shí)鐘發(fā)生器,它,產(chǎn)生,一定頻率的,脈沖信號(hào),,作為整個(gè)機(jī)器的,時(shí)鐘脈沖,,該脈沖信號(hào)是機(jī)器的工作脈沖的,基準(zhǔn)信號(hào),。,在加電時(shí),產(chǎn)生
15、一總清信號(hào)(,RESET)。,啟停電路送出或封鎖時(shí)鐘脈沖,控制時(shí)序信號(hào)的發(fā)生或停止,從而,啟動(dòng),或,停止,機(jī)器。,2024/10/28,24,第3章 運(yùn)算器與控制器,3.,2.3,指令的執(zhí)行過程,下面以上圖控制器為例,說明指令,MOV 2000H,AL,的執(zhí)行過程。,指令的功能是將寄存器,AL,中的內(nèi)容送入地址為 2000,H,的內(nèi)存單元中。,該指令是一個(gè),三字節(jié)指令,,假設(shè)存放在1200,H,開始的內(nèi)存單元中。,指令的執(zhí)行需要三步,取指令操作碼并譯碼,取操作數(shù)地址,存儲(chǔ)操作數(shù),2024/10/28,25,第3章 運(yùn)算器與控制器,操作碼,OP,00,20,XX,1200,H,1201H,120
16、2H,2000H,指令的內(nèi)存存放示意圖,1取指令操作碼,(1)將指令計(jì)數(shù)器(,PC,),的內(nèi)容(1200,H),送存儲(chǔ)器的地址寄存器(,AR,);,(2),指令計(jì)數(shù)器(,PC,),內(nèi)容,加1,,變成1201,H,,為取下面內(nèi)容作準(zhǔn)備;,(3),AR,內(nèi)容送地址總線,發(fā)讀信號(hào)給存儲(chǔ)器,讀出指令,操作碼送,指令寄存器,IR,;,(4),譯碼器對(duì)取出指令的操作碼進(jìn)行,譯碼,,識(shí)別出是直接尋址的傳送指令,發(fā)出完成下一步操作的控制信號(hào)。,2024/10/28,26,第3章 運(yùn)算器與控制器,2取操作數(shù)地址,因1201,H,和1202,H,單元存放的是操作數(shù)的地址(低位在前,高位在后),首先將其取出,再將寄存器的內(nèi)容存入該地址所指的內(nèi)存單元。如下操作過程:,(1)將,PC,的地址,送,AR,;,(2),PC,內(nèi)容,增量,,指向下條指令;,(3)將,AR,的地址,送,上,地址線,,發(fā)讀一個(gè)字的讀命令,,讀出數(shù)據(jù),(2000,H),送,數(shù)據(jù)寄存器,DR,;,(4),將,DR,的內(nèi)容,送,AR,。,2024/10/28,27,第3章 運(yùn)算器與控制器,3存儲(chǔ)操作數(shù),將寄存器,AL,的內(nèi)容存入上一步取出的地址