微型計(jì)算機(jī)以微處理器為核心,其一大特點(diǎn)是采用總線結(jié)構(gòu),其中三總線結(jié)構(gòu)尤為普遍,如圖1-1所示。mpu(微處理器)是通過ab(地址總線)、db(數(shù)據(jù)總線)和cb(控制總線)這三總線與rom(只讀存儲器)和ram(隨機(jī)存儲器)及i/o(輸入/輸出)接口相連的。在分析微型計(jì)算機(jī)基本工作原理前,先對各部件進(jìn)行介紹。
1.存儲器
存儲器又稱內(nèi)存或主存,是計(jì)算機(jī)的存儲部件,用來存放程序和數(shù)據(jù)(原始數(shù)據(jù)、中間結(jié)果及最后結(jié)果)。微型計(jì)算機(jī)內(nèi)存由半導(dǎo)體存儲器rom和ram組成,它們都是采用大規(guī)模或超大規(guī)模集成電路工藝制成的存儲器芯片,具有體積小、重量輕、集成度高等特點(diǎn)。
只讀存儲器rom(read only memory)是一種在正常工作時(shí)只讀不能寫的存儲器,利用特殊手段將固定程序和常數(shù)寫入rom,一旦寫入便能長期保存(斷電也不丟失),需要時(shí)即可讀出使用。rom通常用來存放不變的程序,如基本i/o程序、監(jiān)控程序、匯編程序、高級語言/解釋程序等,還存儲各種常用數(shù)據(jù)和表格。rom的種類很多,按照編程方式,只讀存儲器rom分為掩模rom、可編程rom、可擦除eprom、電擦除e2prom和閃速存儲器flash perom。flash perom可以在線寫入(自動擦除),并且可以按頁連續(xù)字節(jié)寫入,讀出速度也很快。
隨機(jī)存取存儲器ram(random access memory)是一種在正常工作時(shí)既能讀又能寫的存儲器.用來存放用戶要運(yùn)行的程序及運(yùn)行程序所需的原始數(shù)據(jù)、中間結(jié)果、最終結(jié)果以及實(shí)時(shí)數(shù)據(jù)等。ram中存儲的信息不能長久保存,停電后便立即消失,因此又稱為易失性或易揮發(fā)性存儲器。ram存儲器的規(guī)格品種也很多,如4kb、8kb、32kb、64kb、256ksb、l mb等等。按照存儲電路的不同,隨機(jī)存取存儲器ram又可分為動態(tài)ram(dram)、靜態(tài)ram(sram)。dram芯片以mos管柵極電容是否充有電荷來存儲邏輯1或0信息,需要外接刷新電路來周期性地對其電荷進(jìn)行刷新以維持它所代表的數(shù)據(jù)。sram芯片以觸發(fā)器來存儲邏輯1或0信息,無需刷新電路。sram比dram集成度低、成本高、速度快。sram和dram均為易失性存儲器。
rom和ram的主要區(qū)別在于:一是斷電后rom內(nèi)的信息不丟失,而ram中的信息立即消失;二是讀/寫方式不同,rom采用特殊方式寫入信息,信息寫入后只能讀,而ram既能讀又能寫。
rom和ram存儲器芯片上的引線通常分為四組:地址線用于向存儲器輸送地址碼;數(shù)據(jù)線是雙向的,傳送對芯片中某一單元進(jìn)行讀/寫操作的數(shù)據(jù);控制線用于傳送控制信號,控制操作是進(jìn)行讀還是進(jìn)行寫等等;電源線供給芯片+5v直流電源。其中地址線及數(shù)據(jù)線的引腳數(shù)與芯片的存儲容量有關(guān)。
地址線越多,存儲容量就越大;數(shù)據(jù)線越多,每個單元中存儲的二進(jìn)制數(shù)的位數(shù)就越長。例如,地址線為n條的存儲器芯片的存儲容量為 個單元,數(shù)據(jù)線的條數(shù)m為每個單元能存儲的二進(jìn)制數(shù)的位數(shù),則存儲器芯片的存儲容量為2n×mbit,即:
存儲容量=2地址線的條數(shù)×數(shù)據(jù)線的條數(shù)(bit)
如一個存儲器有16條地址線和8條數(shù)據(jù)線,它的16位地址可得到216個地址編碼,可尋址216個單元,即存儲容量為216個單元,每個單元8位,則存儲容量為216×8bit。
2.微處理器(mpu)
微處理器mpu是微型計(jì)算機(jī)的運(yùn)算和指揮控制中心,其性能決定了微型計(jì)算機(jī)的性能。雖然各種微處理器性能和內(nèi)部結(jié)構(gòu)有差異,指令系統(tǒng)也不同,但它們的基本組成相同,都包含有控制器、運(yùn)算器和內(nèi)部總線。微處理器與存儲器之間的結(jié)構(gòu)可參照圖1-2。
(1)運(yùn)算器
運(yùn)算器在控制器的控制下對二進(jìn)制數(shù)進(jìn)行算術(shù)運(yùn)算或邏輯操作。運(yùn)算器由算術(shù)邏輯單元刪、累加器a、通用寄存器ps、暫存器tmp和程序狀態(tài)字psw等五部分組成。
①算術(shù)邏輯單元alu: alu是運(yùn)算器的核心,它以全加器為基礎(chǔ),并輔以移位和控制邏輯組合而成,在控制信號的控制下,可進(jìn)行加減乘除等算術(shù)運(yùn)算和各種邏輯運(yùn)算。
②累加器a:a是由觸發(fā)器組成的移位寄存器,在運(yùn)算前存放一個操作數(shù),運(yùn)算后存放運(yùn)算結(jié)果。
③暫存器tmp:tmp也是一個寄存器,用于暫存另一操作數(shù)。
④程序狀態(tài)字psw:psw由8位觸發(fā)器組成,存放alu操作過程中形成的狀態(tài)。例如:累加器a中的運(yùn)算結(jié)果是否為零,最高位是否有進(jìn)位或借位,低4位向高4位是否有進(jìn)位或借位等等,都在psw中相應(yīng)位上進(jìn)行標(biāo)志。
⑤通用寄存器ps:ps用于存放操作數(shù)或運(yùn)算結(jié)果。
在運(yùn)算前,將運(yùn)算所需操作數(shù)送入累加器和暫存器,由控制信號控制alu進(jìn)行運(yùn)算,把運(yùn)算結(jié)果存放到累加器a,并根據(jù)運(yùn)算結(jié)果設(shè)置程序狀態(tài)字psw狀態(tài)位的值。
(2)控制器
控制器是發(fā)布操作命令的機(jī)構(gòu),是計(jì)算機(jī)的指揮中心,相當(dāng)于人腦的神經(jīng)中樞,控制計(jì)算機(jī)的各部分協(xié)調(diào)工作,用于自動執(zhí)行程序??刂破饔芍噶畈考r(shí)序部件和微操作控制部件等三部分組成。
①指令部件:指令部件是用來讀取指令、分析指令和為完成指令產(chǎn)生控制信號的邏輯部件,也是控制器的核心。通常,指令部件由程序計(jì)數(shù)器pc、指令寄存器ir和指令譯碼器id等三部分組成。
②時(shí)序部件:時(shí)序部件由時(shí)鐘系統(tǒng)和脈沖分配器組成,用于產(chǎn)生微操作控制部件所需的定時(shí)脈沖信號。時(shí)鐘系統(tǒng)產(chǎn)生機(jī)器的時(shí)鐘脈沖序列,脈沖分配器又稱節(jié)拍發(fā)生器,用于產(chǎn)生節(jié)拍電位和節(jié)拍脈沖。
③微操作控制部件 微操作控制部件為指令譯碼器m的輸出信號配上節(jié)拍電位和節(jié)拍脈沖,也可和外部進(jìn)來的控制信號組合,共同形成相應(yīng)的微操作控制序列,以完成規(guī)定的操作。
計(jì)算機(jī)的工作就是執(zhí)行程序。要執(zhí)行一個程序必須將該程序放入內(nèi)存,而程序是若干指令的有序排列,要執(zhí)行程序只要從第一條指令開始,逐條讀取指令、分析指令、執(zhí)行指令直至執(zhí)行到停機(jī)指令即完成程序。要從內(nèi)存中讀取指令,必須給出內(nèi)存單元的地址,這就需要有一個專門的寄存器用來存放將要執(zhí)行指令的內(nèi)存地址,這個寄存器就是程序計(jì)數(shù)器pc。當(dāng)計(jì)算機(jī)根據(jù)pc中地址取出要執(zhí)行指令的一個字節(jié)后,pc就自動加1,指向指令的下一字節(jié),為機(jī)器下次讀取指令做好準(zhǔn)備。
指令寄存器ir用來存放從存儲器中取出的當(dāng)前要執(zhí)行指令的指令碼。該指令碼在ir中得到寄存和緩沖后被送到指令譯碼器id中譯碼,經(jīng)譯碼后就知道該指令所要進(jìn)行的操作,并在時(shí)序部件和微操作控制部件的作用下控制相應(yīng)部件進(jìn)行操作,執(zhí)行指令。
3.i/o接口和外設(shè)
i/o接口是架設(shè)在微處理器和外設(shè)間的橋梁,是一種過渡的大規(guī)模集成電路芯片。由于大多數(shù)外設(shè)都是機(jī)電型的,工作速度較慢,因此微處理器mpu通常不能和它們直接相連,而是通過i/o接口和外設(shè)相連,以便實(shí)現(xiàn)速度、電平和信號性質(zhì)的匹配。
4.地址總線、數(shù)據(jù)總線和控制總線
總線是在微型計(jì)算機(jī)各部分之間傳送信息的公共通道,也是溝通微型計(jì)算機(jī)各種器件的橋梁。
(1)地址總線ab
地址總線ab用來傳送mpu發(fā)出的地址碼,是單向總線。當(dāng)微處理器mpu對存儲器或外部設(shè)備進(jìn)行讀寫操作時(shí),首先要把存儲單元或外設(shè)的地址碼送到地址總線上選中它,然后進(jìn)行讀寫。地址總線條數(shù)由mpu型號決定,在大部分8位機(jī)中,地址總線通常為16條。
(2)數(shù)據(jù)總線db
數(shù)據(jù)總線db用來傳送數(shù)據(jù)和指令碼,是雙向總線。通過db,mpu可將數(shù)據(jù)寫入存儲器或向外設(shè)輸出數(shù)據(jù),也可從存儲器或輸入設(shè)備輸入數(shù)據(jù)。數(shù)據(jù)總線條數(shù)常和所用微處理器字長相等,但也有內(nèi)部為16位運(yùn)算而外部仍為8位數(shù)據(jù)總線的情況。8位機(jī)中數(shù)據(jù)總線通常有8條。
(3)控制總線cb
控制總線cb用來傳送mpu發(fā)出的控制信號、存儲器或外設(shè)的狀態(tài)信號和時(shí)序信號等。每根控制總線的信息傳送方向是固定的、單向的,而控制總線作為整體為雙向的,如圖所示??刂瓶偩€的條數(shù)因機(jī)器而異,每條控制線最多傳送兩個控制信號。
微型計(jì)算機(jī)采用總線結(jié)構(gòu),使得它能夠十分方便地實(shí)現(xiàn)存儲器的擴(kuò)充及i/o接口板的增加和減少。