算術(shù)邏輯單元(ALU,Arithmetic Logical Unit);累加器和通用寄存器組;程序計(jì)數(shù)器(也叫指令指標(biāo)器);時序和控制邏輯部件;數(shù)據(jù)與地址鎖存器/緩沖器;內(nèi)部總線。
算術(shù)邏輯單元ALU主要完成算術(shù)運(yùn)算(+、-、×、÷、比較)和各種邏輯運(yùn)算(與、或、非、異或、移位)等操作。ALU是組合電路,本身無寄存操作數(shù)的功能,因而必須有保存操作數(shù)的兩個寄存器:暫存器TMP和累加器AC(),累加器既向ALU提供操作數(shù),又接收ALU的運(yùn)算結(jié)果。
寄存器陣列實(shí)際上相當(dāng)于微處理器內(nèi)部的RAM,它包括通用寄存器組和專用寄存器組兩部分,通用寄存器(A,B,C,D)用來存放參加運(yùn)算的數(shù)據(jù)、中間結(jié)果或地址。它們一般均可作為兩個8位的寄存器來使用。處理器內(nèi)部有了這些寄存器之后,就可避免頻繁地訪問存儲器,可縮短指令長度和指令執(zhí)行時間,提高機(jī)器的運(yùn)行速度,也給編程帶來方便。專用寄存器包括程序計(jì)數(shù)器PC()、堆棧指示器SP()和標(biāo)志寄存器FR(),它們的作用是固定的,用來存放地址或地址基值。其中:
A)程序計(jì)數(shù)器PC用來存放下一條要執(zhí)行的指令地址,因而它控制著程序的執(zhí)行順序。在順序執(zhí)行指令的條件下,每取出指令的一個字節(jié),PC的內(nèi)容自動加1。當(dāng)程序發(fā)生轉(zhuǎn)移時,就必須把新的指令地址(目標(biāo)地址)裝入PC,這通常由轉(zhuǎn)移指令來實(shí)現(xiàn)。
B)堆棧指示器SP用來存放棧頂?shù)刂。堆棧是存儲器中的一個特定區(qū)域。它按“后進(jìn)先出”方式工作,當(dāng)新的數(shù)據(jù)壓入堆棧時,棧中原存信息不變,只改變棧頂位置,當(dāng)數(shù)據(jù)從棧彈出時,彈出的是棧頂位置的數(shù)據(jù),彈出后自動調(diào)正棧頂位置。也就是說,數(shù)據(jù)在進(jìn)行壓棧、出棧操作時,總是在棧頂進(jìn)行。堆棧一旦初始化(即確定了棧底在內(nèi)存中的位置)后,SP的內(nèi)容(即棧頂位置)使由CPU自動管理。
C)標(biāo)志寄存器也稱程序狀態(tài)字(PSW)寄存器,用來存放算術(shù)、邏輯運(yùn)算指令執(zhí)行后的結(jié)果特征,如結(jié)果為0時,產(chǎn)生進(jìn)位或溢出標(biāo)志等。
定時與控制邏輯是微處理器的核心控制部件,負(fù)責(zé)對整個計(jì)算機(jī)進(jìn)行控制、包括從存儲器中取指令,分析指令(即指令譯碼)確定指令操作和操作數(shù)地址,取操作數(shù),執(zhí)行指令規(guī)定的操作,送運(yùn)算結(jié)果到存儲器或I/O端口等。它還向微機(jī)的其它各部件發(fā)出相應(yīng)的控制信號,使CPU內(nèi)、外各部件間協(xié)調(diào)工作。
內(nèi)部總線用來連接微處理器的各功能部件并傳送微處理器內(nèi)部的數(shù)據(jù)和控制信號。
必須指出,微處理器本身并不能單獨(dú)構(gòu)成一個獨(dú)立的工作系統(tǒng),也不能獨(dú)立地執(zhí)行程序,必須配上存儲器、輸入輸出設(shè)備構(gòu)成一個完整的微型計(jì)算機(jī)后才能獨(dú)立工作。
2.存儲器微型計(jì)算機(jī)的存儲器用來存放當(dāng)前正在使用的或經(jīng)常使用的程序和數(shù)據(jù)。存儲器按讀、寫方式分為隨機(jī)存儲器RAM(Random Access Memory)和只讀存儲器ROM(Read ONLY Memory)。RAM也稱為讀/寫存儲器,工作過程中CPU可根據(jù)需要隨時對其內(nèi)容進(jìn)行讀或?qū)懖僮。RAM是易失性存儲器,即其內(nèi)容在斷電后會全部丟失,因而只能存放暫時性的程序和數(shù)據(jù)。ROM的內(nèi)容只能讀出不能寫入,斷電后其所存信息仍保留不變,是非易失性存儲器。所以ROM常用來存放永久件的程序和數(shù)據(jù)。如初始導(dǎo)引程序、監(jiān)控程序、操作系統(tǒng)中的基本輸入、輸出管理程序BIOS等。
3.輸入/輸出接口電路(I/O接口)
輸入/輸出接口電路是微型計(jì)算機(jī)的重要組成部件。他是微型計(jì)算機(jī)連接外部輸入、輸出設(shè)備及各種控制對象并與外界進(jìn)行信息交換的邏輯控制電路。由于外設(shè)的結(jié)構(gòu)、工作速度、信號形式和數(shù)據(jù)格式等各不相同,因此它們不能直接掛接到系統(tǒng)總線上,必須用輸入/輸出接口電路來做中間轉(zhuǎn)換,才能實(shí)現(xiàn)與CPU間的信息交換。I/O接口也稱I/O適配器,不同的外設(shè)必須配備不同的I/O適配器。I/O接口電路是微機(jī)應(yīng)用系統(tǒng)必不可少的重要組成部分。任何一個微機(jī)應(yīng)用系統(tǒng)的研制和設(shè)計(jì),實(shí)際上主要是I/O接口的研制和設(shè)計(jì)。
4.總線(BUS)
總線是計(jì)算機(jī)系統(tǒng)中各部件之間傳送信息的公共通道,是微型計(jì)算機(jī)的重要組成部件。它由若干條通信線和起驅(qū)動,隔離作用的各種三態(tài)門器件組成。微型計(jì)算機(jī)在結(jié)構(gòu)形式上總是采用總線結(jié)構(gòu),即構(gòu)成微機(jī)的各功能部件(微處理器、存儲器、I/O接口電路等)之間通過總線相連接,這是微型計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)上的獨(dú)特之處。采用總線結(jié)構(gòu)之后,使系統(tǒng)中各功能部件間的相互關(guān)系轉(zhuǎn)變?yōu)楦鞑考嫦蚩偩的單一關(guān)系,一個部件(功能板/卡)只要符合總線標(biāo)準(zhǔn),就可以連接到采用這種總線標(biāo)準(zhǔn)的系統(tǒng)中,從而使系統(tǒng)功能擴(kuò)充或更新容易、結(jié)構(gòu)簡單、可靠性大大提高。在微型計(jì)算機(jī)中,根據(jù)他們所處位置和應(yīng)用場合,總線可被分為以下四級。
(1)片內(nèi)總線:它位于微處理器芯片內(nèi)部,故稱為芯片內(nèi)部總線。用于微處理器內(nèi)部ALU和各種寄存器等部件間的互連及信息傳送。由于受芯片面積及對外引腳數(shù)的限制,片內(nèi)總線大多采用單總線結(jié)構(gòu),這有利于芯片集成度和成品率的提高,如果要求加快內(nèi)部數(shù)據(jù)傳送速度,也可采用雙總線或三總線結(jié)構(gòu)。
(2)片總線:片總線又稱元件級(芯片級)總線或局部總線。微機(jī)主板、單扳機(jī)以及其它一些插件板、卡(如各種I/O接口板/卡),它們本身就是一個完整的子系統(tǒng),板/卡上包含有CPU,RAM,ROM,I/O接口等各種芯片,這些芯片間也是通過總線來連接的,因?yàn)檫@有利于簡化結(jié)構(gòu),減少連線,提高可靠性,方便信息的傳送與控制。通常把各種板、卡上實(shí)現(xiàn)芯片間相互連接的總線稱為片總線或元件級總線。
相對于一臺完整的微型計(jì)算機(jī)來說,各種板/卡只是一個子系統(tǒng),是一個局部,故又把片總線稱為局部總線,而把用于連接微機(jī)各功能部件插卡的總線稱為系統(tǒng)總線。局部總線是一個重要的概念,我們將在第七章中討論。
(3)內(nèi)總線:內(nèi)總線又稱系統(tǒng)總線或板級總線。因?yàn)樵摽偩是用來連接微機(jī)各功能部件而構(gòu)成一個完整微機(jī)系統(tǒng)的,所以稱之為系統(tǒng)總線。系統(tǒng)總線是微機(jī)系統(tǒng)中最重要的總線,人們平常所說的微機(jī)總線就是指系統(tǒng)總線,如PC總線、AT總線(ISA總線)、PCI總線等。系統(tǒng)總線是我們要討論的重點(diǎn)內(nèi)容之一。
系統(tǒng)總線上傳送的信息包括數(shù)據(jù)信息、地址信息、控制信息,因此,系統(tǒng)總線包含有三種不同功能的總線,即數(shù)據(jù)總線DB(Data Bus)、地址總線AB(Address Bus)和控制總線CB(CONTROL Bus)。
數(shù)據(jù)總線DB用于傳送數(shù)據(jù)信息。數(shù)據(jù)總線是雙向三態(tài)形式的總線,即他既可以把CPU的數(shù)據(jù)傳送到存儲器或I/O接口等其它部件,也可以將其它部件的數(shù)據(jù)傳送到CPU。數(shù)據(jù)總線的位數(shù)是微型計(jì)算機(jī)的一個重要指標(biāo),通常與微處理的字長相一致。例如INTEL 8086微處理器字長16位,其數(shù)據(jù)總線寬度也是16位。需要指出的是,數(shù)據(jù)的含義是廣義的,它可以是真正的數(shù)據(jù),也可以指令代碼或狀態(tài)信息,有時甚至是一個控制信息,因此,在實(shí)際工作中,數(shù)據(jù)總線上傳送的并不一定僅僅是真正意義上的數(shù)據(jù)。
地址總線AB是專門用來傳送地址的,由于地址只能從CPU傳向外部存儲器或I/O端口,所以地址總線總是單向三態(tài)的,這與數(shù)據(jù)總線不同。地址總線的位數(shù)決定了CPU可直接尋址的內(nèi)存空間大小,比如8位微機(jī)的地址總線為16位,則其最大可尋址空間為216=64KB,16位微型機(jī)的地址總線為20位,其可尋址空間為220=1MB。一般來說,若地址總線為n位,則可尋址空間為2n字節(jié)。
控制總線CB用來傳送控制信號和時序信號。控制信號中,有的是微處理器送往存儲器和I/O接口電路的,如讀/寫信號,片選信號、中斷響應(yīng)信號等;也有是其它部件反饋給CPU的,比如:中斷申請信號、復(fù)位信號、總線請求信號、限備就緒信號等。因此,控制總線的傳送方向由具體控制信號而定,一般是雙向的,控制總線的位數(shù)要根據(jù)系統(tǒng)的實(shí)際控制需要而定。實(shí)際上控制總線的具體情況主要取決于CPU。
(4)外總線:也稱通信總線。用于兩個系統(tǒng)之間的連接與通信,如兩臺微機(jī)系統(tǒng)之間、微機(jī)系統(tǒng)與其他電子儀器或電子設(shè)備之間的通信。常用的通信總線有IEEE-488總線,VXI總線和RS-232串行總線等。外總線不是微機(jī)系統(tǒng)本身固有的,只有微型機(jī)應(yīng)用系統(tǒng)中才有。
根據(jù)微處理器的應(yīng)用領(lǐng)域,微處理器大致可以分為三類:通用高性能微處理器、嵌入式微處理器和數(shù)字信號處理器、微控制器。一般而言,通用處理器追求高性能,它們用于運(yùn)行通用軟件,配備完備、復(fù)雜的操作系統(tǒng);嵌入式微處理器強(qiáng)調(diào)處理特定應(yīng)用問題的高性能,主要用于運(yùn)行面向特定領(lǐng)域的專用程序,配備輕量級操作系統(tǒng),主要用于蜂窩電話、CD播放機(jī)等消費(fèi)類家電;微控制器價位相對較低,在微處理器市場上需求量最大,主要用于汽車、空調(diào)、自動機(jī)械等領(lǐng)域的自控設(shè)備。
CPU是CENTRAL Processing Unit(中央微處理器)的縮寫,它是計(jì)算機(jī)中最重要的一個部分,由運(yùn)算器和控制器組成。如果把計(jì)算機(jī)比作人,那么CPU就是人的大腦。CPU的發(fā)展非常迅速,個人電腦從8088(XT)發(fā)展到現(xiàn)在的Pentium 4時代,只經(jīng)過了不到二十年的時間。
從生產(chǎn)技術(shù)來說,最初的8088集成了29000個晶體管,而PentiumⅢ的集成度超過了2810萬個晶體管;CPU的運(yùn)行速度,以MIPS(百萬個指令每秒)為單位,8088是0.75MIPS,到高能奔騰時已超過了1000MIPS。不管什么樣的CPU,其內(nèi)部結(jié)構(gòu)歸納起來都可以分為控制單元、邏輯單元和存儲單元三大部分,這三個部分相互協(xié)調(diào),對命令和數(shù)據(jù)進(jìn)行分析、判斷、運(yùn)算并控制計(jì)算機(jī)各部分協(xié)調(diào)工作。