




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第
四
章介
紹
計(jì)
算
機(jī)
組
成
一個(gè)簡(jiǎn)單的計(jì)算機(jī)通常包括三個(gè)主要的子系統(tǒng):中央處理單元(centralprocessingunit),也叫CPU,執(zhí)行多種操作并控制整個(gè)計(jì)算機(jī),微處理器(microprocessor)通常作為計(jì)算機(jī)的CPU。存儲(chǔ)器(memory)子系統(tǒng)用來存儲(chǔ)CPU正在執(zhí)行的程序和數(shù)據(jù)。輸入/輸出(input/output),或I/O,子系統(tǒng)允許CPU與外圍設(shè)備交互。比如個(gè)人計(jì)算機(jī)的鍵盤和顯示器,或者微波爐的面板和數(shù)字顯示等。
本章首先介紹基本系統(tǒng)組成的概況,包括CPU、存儲(chǔ)器子系統(tǒng)和I/O子系統(tǒng)用來相互通信的系統(tǒng)總線。接著我們更詳細(xì)地介紹三大系統(tǒng)部件,描述每一部件的功能和組成,以及它們與計(jì)算機(jī)系統(tǒng)其余部分之間的接口。最后我們來研究?jī)蓚€(gè)計(jì)算機(jī)系統(tǒng)的組成,一個(gè)基于第三章介紹過的相對(duì)簡(jiǎn)單CPU,另一個(gè)基于Intel8085微處理器。4.1基本的計(jì)算機(jī)組成
大多數(shù)計(jì)算機(jī)系統(tǒng),包括三個(gè)主要部件:CPU、存儲(chǔ)器子系統(tǒng)和I/O子系統(tǒng)。這些部件的一般組成如圖所示。圖4.1計(jì)算機(jī)主要構(gòu)件4.1.1系統(tǒng)總線
總線(bus)就是一組導(dǎo)線。計(jì)算機(jī)的部件都是連在總線上的。使用總線比直接連接更有效。圖4.1所示的系統(tǒng)包括三組總線:
地址總線(addressbus)。當(dāng)CPU訪問存儲(chǔ)器或I/O設(shè)備時(shí),它指明將要訪問的存儲(chǔ)器單元或I/O設(shè)備的地址。n根線聯(lián)合傳送一個(gè)n位的地址值。
數(shù)據(jù)總線(databus)。當(dāng)CPU訪問存儲(chǔ)器或I/O設(shè)備時(shí),它用來傳送數(shù)據(jù)。各條線合起來傳輸一個(gè)單獨(dú)的多位值。
控制總線(controlbus)。它是一組獨(dú)立的控制信號(hào)的集合。它(主要)是一組單向信號(hào)的集合。一個(gè)系統(tǒng)可能具有總線層次。如,它可能使用系統(tǒng)總線來訪問存儲(chǔ)器和I/O控制器,I/O控制器使用第二級(jí)總線來訪問所有的I/O設(shè)備。4.1.2指令周期
指令周期(instructioncycle)是微處理器完成一條指令處理的過程。包括讀?。╢etch),譯碼(decode),執(zhí)行(execute)三個(gè)階段。
從存儲(chǔ)器中取指令的過程:
①微處理器把指令的地址放到地址總線上,存儲(chǔ)器子系統(tǒng)從總線上輸入該地址并予以譯碼,去訪問指定的存儲(chǔ)單元;
②微處理器發(fā)出一個(gè)讀(READ)控制信號(hào)。
③存儲(chǔ)器把要取的指令放到計(jì)算機(jī)的數(shù)據(jù)總線上,微處理器從數(shù)據(jù)總線上輸入該數(shù)據(jù)并將它存儲(chǔ)在其內(nèi)部寄存器中。至此,微處理器已經(jīng)取得了指令。
譯碼指令。就是微處理器確定處理的是哪一條指令以便選擇正確的操作順序去執(zhí)行該指令。這一步完全在微處理器內(nèi)完成,不需要使用系統(tǒng)總線。
執(zhí)行指令。指令不同,所執(zhí)行的操作及順序也不相同。執(zhí)行過程可以是從存儲(chǔ)器讀取數(shù)據(jù),寫數(shù)據(jù)到存儲(chǔ)器,讀或?qū)憯?shù)據(jù)到I/O設(shè)備,執(zhí)行CPU內(nèi)部的操作,或者執(zhí)行多個(gè)上述操作的聯(lián)合,諸如此類,各不相同。
我們從系統(tǒng)的角度看計(jì)算機(jī)怎樣執(zhí)行這些操作的。從存儲(chǔ)器讀取數(shù)據(jù)所執(zhí)行的操作序列,同從存儲(chǔ)器中取一條指令是一樣的。圖4.2(a)顯示了從存儲(chǔ)器中讀取數(shù)據(jù)的操作時(shí)序。圖4.2存儲(chǔ)器讀取數(shù)據(jù)的操作時(shí)序
圖中,CLK是計(jì)算機(jī)的系統(tǒng)時(shí)鐘(systemclock),微處理器用系統(tǒng)時(shí)鐘使其操作同步。時(shí)鐘周期(clockcycle),系統(tǒng)時(shí)鐘的0/1序列。第一個(gè)時(shí)鐘周期,微處理器將地址放到總線上。第二個(gè)時(shí)鐘周期,發(fā)出讀信號(hào)。這使得存儲(chǔ)器將數(shù)據(jù)放到數(shù)據(jù)總線。然后從系統(tǒng)總線上讀數(shù)據(jù)。第二個(gè)周期結(jié)束時(shí),撤消地址,撤消讀信號(hào)。存儲(chǔ)器從數(shù)據(jù)總線上撤消數(shù)據(jù),讀操作完成。
寫操作時(shí)序如圖4.2(b)所示。第一個(gè)時(shí)鐘周期,將地址和數(shù)據(jù)放到總線上。第二個(gè)時(shí)鐘周期,發(fā)出寫(WRITE)信號(hào)。寫信號(hào)激勵(lì)存儲(chǔ)器存儲(chǔ)數(shù)據(jù)。第二個(gè)周期結(jié)束時(shí),撤消地址、數(shù)據(jù)及寫信號(hào),完成存儲(chǔ)器的寫操作。在這個(gè)時(shí)鐘周期的某個(gè)時(shí)刻,存儲(chǔ)器將數(shù)據(jù)總線上的數(shù)據(jù)寫入地址總線指示的存儲(chǔ)單元內(nèi)。
I/O的讀寫操作與存儲(chǔ)器的讀寫操作類似。若采用存儲(chǔ)器映射I/O,操作順序與從存儲(chǔ)器讀寫相同,如圖4.2所示。若是單獨(dú)I/O,處理過程相同,但有第二個(gè)控制信號(hào)用以區(qū)別是I/O訪問還是存儲(chǔ)器訪問。存儲(chǔ)器映射I/O(memorymappedI/O)中,處理器把一個(gè)I/O端口當(dāng)作某個(gè)存儲(chǔ)單元;而用單獨(dú)I/O(isolatedI/O)的CPU允許一個(gè)存儲(chǔ)單元和某個(gè)I/O端口有相同的地址,因此需要額外的信號(hào)區(qū)分是I/O訪問還是存儲(chǔ)器訪問。
完全在微處理器內(nèi)部執(zhí)行的指令。不要用到系統(tǒng)總線。4.2CPU組成CPU控制整個(gè)計(jì)算機(jī),內(nèi)部有三大部分:寄存器部分(registersection)、算術(shù)/邏輯單元(arithmetic/logicunit,也叫ALU)、控制單元(controlunit)。如圖所示。圖4.3CPU組成圖
寄存器部分包括一組寄存器、一個(gè)總線或其他的通信機(jī)制。除微處理器指令集結(jié)構(gòu)中的寄存器外,還有程序員不能直接訪問的一些寄存器。地址總線、數(shù)據(jù)總線與該部分連接。相對(duì)簡(jiǎn)單CPU包括鎖存正在訪問的存儲(chǔ)器地址的寄存器,暫存器,以及指令集結(jié)構(gòu)中沒有的其它寄存器(參見第六章)等。
CPU取指令過程的兩個(gè)重要寄存器:
程序計(jì)數(shù)器(programcounter),用來存放下一條要取的指令的地址。
指令寄存器(instructionregister),用來存儲(chǔ)從系統(tǒng)數(shù)據(jù)總線上讀取到的指令。
算術(shù)/邏輯單元執(zhí)行大部分的算術(shù)和邏輯運(yùn)算,如加、與等操作。從CPU的寄存器部分取得操作數(shù),運(yùn)算結(jié)果再存回到寄存器部分。由于必須在一個(gè)時(shí)鐘周期內(nèi)完成操作,只采用組合邏輯構(gòu)造而成。相對(duì)簡(jiǎn)單CPU和8085微處理器中的ADD指令在執(zhí)行過程中都是使用ALU。
控制單元。同CPU控制整個(gè)計(jì)算機(jī)一樣,控制單元控制著CPU。如圖4.3,產(chǎn)生內(nèi)部的controlsignals,促使寄存器裝載數(shù)據(jù)、自動(dòng)加1或清0、輸出它的內(nèi)容,使得ALU完成正確的操作,等等。從寄存器部分取得datavalues用以產(chǎn)生控制信號(hào),這些數(shù)據(jù)包括指令碼和某些標(biāo)志寄存器的值。產(chǎn)生controlbussignals,例如READ,WRITE,信號(hào)等。一個(gè)微處理器要完成取指令、譯指令和執(zhí)行指令等一系列操作??刂茊卧哉_的順序激發(fā)這些內(nèi)部或外部控制信號(hào),從而使CPU和計(jì)算機(jī)的其余部分能夠完成這些操作。
以上關(guān)于CPU的描述并非完整?,F(xiàn)在的處理器擁有更加復(fù)雜的特征以提高其性能。如流水線技術(shù),它允許CPU在執(zhí)行一條指令的同時(shí)取回另一條指令,它將在第十一章中介紹。
本節(jié),從系統(tǒng)的角度介紹了CPU,但還沒有討論它的內(nèi)部設(shè)計(jì)。在第六章中我們將講到幾種硬連線CPU的內(nèi)部結(jié)構(gòu),包括寄存器、數(shù)據(jù)通路、控制單元等,所有的部件一起工作使得CPU完成正確的讀取、譯碼和執(zhí)行指令的操作。
微程序CPU有著同硬連線CPU一樣的寄存器、ALU和數(shù)據(jù)通路,但二者控制單元完全不同,它們將在第七章中討論。執(zhí)行算術(shù)運(yùn)算的硬件,如ALU或獨(dú)立的浮點(diǎn)運(yùn)算單元等,將在第六章和第八章中描述。4.3存儲(chǔ)器子系統(tǒng)組成和接口
本節(jié),我們將考察計(jì)算機(jī)中存儲(chǔ)器子系統(tǒng)的結(jié)構(gòu)和功能。4.3.1存儲(chǔ)器的種類
存儲(chǔ)器芯片有兩種類型:只讀存儲(chǔ)器(ROM)和隨機(jī)訪問存貯器(RAM)。
只讀存儲(chǔ)器(ReadOnlyMemory,ROM)芯片為數(shù)據(jù)只讀的應(yīng)用而設(shè)計(jì)。芯片加入系統(tǒng)前,已經(jīng)被外部編程器件編程而裝好數(shù)據(jù)。數(shù)據(jù)通常不再改變。芯片總保存有數(shù)據(jù),甚至斷電以后。如,微波爐的嵌入式控制器運(yùn)行的程序可以是不用改變的。此程序可存儲(chǔ)在ROM上。
隨機(jī)訪問存儲(chǔ)器(RandomAccessMemory,RAM)也稱為讀/寫存儲(chǔ)器,用來存儲(chǔ)可以改變的數(shù)據(jù)。個(gè)人電腦的內(nèi)存就是這種類型。芯片一旦掉電,數(shù)據(jù)就會(huì)丟失。許多系統(tǒng)同時(shí)擁有ROM和RAM。4.3.1.1ROM芯片
按可編程方式和頻度的不同,ROM芯片有幾種不同的類型:
掩膜式ROM(或簡(jiǎn)單地稱為ROM)在芯片制作時(shí)就將數(shù)據(jù)編程進(jìn)去了。對(duì)大批量生產(chǎn)的售貨機(jī)很有用,一旦安裝完畢,數(shù)據(jù)(程序)就不再更改。
PROM是可編程ROM(programmableROM)。可由用戶使用標(biāo)準(zhǔn)的PROM編程器編程。具有保險(xiǎn)絲一樣的內(nèi)部連接,只能編程一次。適合出樣板,適合那些能夠使用ROM但是生產(chǎn)的數(shù)量不夠多而抵不起ROM掩膜花費(fèi)的應(yīng)用。
EPROM是可擦除PROM(erasablePROM)。能編程,內(nèi)容可以擦除,即可以重復(fù)編程。編程類似電容器充電,紫外線照射可重置其內(nèi)容。典型地用于產(chǎn)品開發(fā)實(shí)驗(yàn)室和原型中。
EEPROM,或E2PROM,電可擦除PROM。和EPROM相似,但用電擦除和重編程,不用紫外線??尚薷膫€(gè)別單元,重編程只要幾秒鐘。用于內(nèi)容極少變動(dòng)的應(yīng)用,如個(gè)人電腦的基本輸入輸出系統(tǒng)(basicinput/outputsystem,也叫作BIOS)。flashE2PROM,E2PROM的一個(gè)特殊類型。可用電擦除數(shù)據(jù)塊,而不是單個(gè)的存儲(chǔ)單元。特別適合需要寫數(shù)據(jù)塊的應(yīng)用,可用作固態(tài)硬盤。可用作數(shù)碼相機(jī)的數(shù)據(jù)存儲(chǔ)器。但只能重寫有限的次數(shù),限制了目前在計(jì)算機(jī)系統(tǒng)中的廣泛應(yīng)用。不管哪一種ROM,它們的外部配置幾乎一樣。如果一個(gè)芯片有2n
個(gè)字,每個(gè)字有m位,則它有n個(gè)地址輸入An-1~A0,m個(gè)數(shù)據(jù)輸出Dm-1~D0(編程時(shí),數(shù)據(jù)管腳可用作輸入),還有芯片使能端(CE)和輸出允許端(OE)。如要輸出數(shù)據(jù),則CE和OE都必須置為高電平(邏輯1),否則它的輸出就為高阻抗Z(一些芯片采用低電平有效:CE’或OE’)。除掩膜式ROM,其它所有的ROM都有一個(gè)編程控制輸入端(VPP),用來控制向芯片輸入數(shù)據(jù)。4.3.1.2RAM芯片
按保持?jǐn)?shù)據(jù)方式的不同,RAM芯片分為:
動(dòng)態(tài)RAM(DynamicRAM,或DRAM),芯片像一個(gè)漏電的電容。起初將存儲(chǔ)器單元充電到各自的最大值,數(shù)據(jù)就存儲(chǔ)在DRAM芯片中了。電荷然后慢慢的漏掉,最終將不能表示有效的值。在這發(fā)生前,刷新電路讀取DRAM中的內(nèi)容,并將數(shù)據(jù)重新寫入原來的單元,從而使存儲(chǔ)單元恢復(fù)到各自的最大電量。用于構(gòu)造個(gè)人電腦的RAM。
靜態(tài)RAM(StaticRAM,也叫SRAM),象一個(gè)寄存器。一旦寫入數(shù)據(jù),內(nèi)容一直保持有效,不需要刷新。比動(dòng)態(tài)RAM要快,但也更貴。個(gè)人電腦中的cache存儲(chǔ)器是用SRAM構(gòu)造的。兩種RAM外部配置相同。2n×m的芯片都有n個(gè)地址輸入和m個(gè)雙向數(shù)據(jù)引腳,正常操作條件下數(shù)據(jù)引腳也可輸入數(shù)據(jù)。芯片使能端(CE或者CE’)。讀使能端(RD或RD’),寫使能端(WR或WR’),或一個(gè)組合的信號(hào),如R/W’。4.3.2內(nèi)部芯片組成ROM、RAM芯片內(nèi)部組成相似。
線性組成(linearorganization)。圖4.4為8×2的ROM芯片。有三根地址輸入和兩根數(shù)據(jù)輸出,16位的內(nèi)部存儲(chǔ)元件,排列成8個(gè)單元,每個(gè)單元2位。隨著單元數(shù)量的增加,線性組成中地址譯碼器的規(guī)模變得相當(dāng)?shù)拇?。此時(shí)可使用多維譯碼。
二維組成(two-dimensionalorganization)。圖4.5同樣為8×2的ROM芯片。有四行,每行4位,代表2個(gè)數(shù)據(jù)值。
多維譯碼帶來的節(jié)省很重要。如4096×1的芯片,其線性組成需要一個(gè)12—4096譯碼器,大小與輸出的數(shù)量(4096)成正比。如果排列成64×64的二維數(shù)組,則要兩個(gè)6—64譯碼器,大小正比于2×64。兩個(gè)譯碼器一起大約是那個(gè)大譯碼器大小的3%。圖4.48×2的ROM芯片的內(nèi)部線性組成
三位地址被譯碼,以選擇8個(gè)單元中的1個(gè),但CE要有效。如果CE=0,譯碼器無效,則不選擇任何單元。譯碼選中單元的三態(tài)緩沖器有效,允許數(shù)據(jù)傳送到輸出緩沖器中。如果CE=1且OE=1,則輸出緩沖器有效,數(shù)據(jù)從芯片中輸出;否則,輸出是三態(tài)。
第一行包含地址0和1單元的數(shù)據(jù)。每一行兩個(gè)單元的高兩位地址是一樣的。這兩個(gè)高地址位選擇四行中的一行,而低地址位則選擇此行二個(gè)單元中的一個(gè)。
CE和OE的作用與圖4.4線性組成的一樣。圖4.58×2的ROM芯片的內(nèi)部二維組成4.3.3存儲(chǔ)器子系統(tǒng)配置
構(gòu)造單個(gè)芯片的存儲(chǔ)器只需從系統(tǒng)總線上連接地址、數(shù)據(jù)和控制信號(hào)。大多數(shù)存儲(chǔ)器系統(tǒng)需要組合多個(gè)芯片。
組合構(gòu)造多位的存儲(chǔ)器。連接芯片相應(yīng)的地址和控制信號(hào),數(shù)據(jù)引腳連到數(shù)據(jù)總線的不同位。2個(gè)8×2的芯片組合成一個(gè)8×4的存儲(chǔ)器,如圖4.6。
組合構(gòu)造多字。兩個(gè)8×2芯片組成一個(gè)16×2的存儲(chǔ)子系統(tǒng),如圖4.7(a)。
圖4.7(a)使用高位交叉(high-orderinterleaving),各芯片高位地址相同,同一芯片所有存儲(chǔ)單元在系統(tǒng)內(nèi)存中相鄰。不一定非得如此。4.7(b)用的是低位交叉(low-orderinterleaving),各芯片低位地址相同。低位交叉能為流水線存儲(chǔ)器訪問提供速度上的優(yōu)勢(shì),對(duì)能同時(shí)從多于一個(gè)存儲(chǔ)器單元中讀取數(shù)據(jù)的CPU來說,低位交叉也存在速度上的優(yōu)勢(shì)。
共同的三位地址輸入,共同的CE、OE信號(hào)。第一個(gè)芯片數(shù)據(jù)引腳連到數(shù)據(jù)總線的第3位和第2位,第二個(gè)芯片數(shù)據(jù)引腳則連在第1位和第0位。
CPU讀數(shù)據(jù)時(shí),將地址放在地址總線。兩芯片讀取A2、A1、A0,執(zhí)行內(nèi)部譯碼。如果CE、OE有效,數(shù)據(jù)輸出到數(shù)據(jù)總線的四位上。因?yàn)榈刂?、使能信?hào)相同,兩芯片同時(shí)有效或無效。其行為像一個(gè)單一的8×4芯片,至少CPU的連接是一樣的。圖4.6由兩個(gè)8×2ROM芯片構(gòu)成的8×4存儲(chǔ)器子系統(tǒng)
上面芯片構(gòu)成0到7(0000到0111)單元,下面芯片作為單元8到15(1000到1111)。上面芯片總置A3=0,下面芯片A3=1。
A3=0時(shí),上面芯片有效,下面芯片無效;A3=1時(shí),情況相反。輸出使能OE需要連接,才可輸出數(shù)據(jù)。由于對(duì)應(yīng)相同的數(shù)據(jù)位,兩個(gè)芯片都連到數(shù)據(jù)總線的D1和D0上。圖4.7兩個(gè)8×2的ROM芯片構(gòu)造16×2的存儲(chǔ)器系統(tǒng)(a)高位交叉圖4.7兩個(gè)8×2的ROM芯片構(gòu)造16×2的存儲(chǔ)器系統(tǒng)(b)低位交叉
上面芯片當(dāng)A0=0或當(dāng)?shù)刂肺粸閄XX0時(shí)有效,此時(shí),地址為0,2,4,6,8,10,12;下面的芯片當(dāng)A0=1時(shí)有效,條件是地址為1,3,5,7,9,11,13,15。
構(gòu)造CE和OE的輸入邏輯。OE較直接,CPU的控制信號(hào),RD或RD’或別的,當(dāng)它想要從主存讀數(shù)據(jù)時(shí)設(shè)為有效,用此信號(hào)驅(qū)動(dòng)OE即可。CE要確保正確的芯片方可輸出數(shù)據(jù)。CE信號(hào)可利用未使用的地址位。圖4.6中的8×4的存儲(chǔ)器被用到6位地址線的系統(tǒng)中,假設(shè)芯片對(duì)應(yīng)單元為0到7(000000到000111)。則A2,A1,A0用于選中芯片的某個(gè)單元,而A5,A4,A3在芯片有效時(shí)一定要是000。帶控制信號(hào)的8×4的存儲(chǔ)器如圖4.8所示。該圖包含信號(hào),它是處理器提供的使用獨(dú)立I/O的信號(hào)。圖4.8帶控制信號(hào)的8×2ROM芯片構(gòu)造的8×4存儲(chǔ)系統(tǒng)4.3.4多字節(jié)數(shù)據(jù)組成
用多個(gè)字節(jié)表示整型、浮點(diǎn)或字符串?dāng)?shù)值,必須存儲(chǔ)在多個(gè)單元中,CPU應(yīng)定義數(shù)據(jù)在這些單元中的順序。兩種多字節(jié)數(shù)據(jù)排列順序:大端(Big-endian)和小端(Little-endian)。在大端格式里,數(shù)值的最高字節(jié)存儲(chǔ)在單元X中,次高字節(jié)存儲(chǔ)在單元X+1中,以此類推。例如,十六進(jìn)制值01020304H從單元100H開始存儲(chǔ),則存儲(chǔ)結(jié)果如表4.1(a)所示。小端正好相反。最低字節(jié)存儲(chǔ)在單元X中,次低字節(jié)存儲(chǔ)在X+1中,以此類推。上例小端格式見表4.1(b)。表4.1數(shù)據(jù)結(jié)構(gòu)(a)大端格式(b)小端格式
同一字節(jié)的不同位也可以有大、小端結(jié)構(gòu)。大端結(jié)構(gòu)中,0位代表字節(jié)中最右邊的位,最左邊的位是位7。而小端結(jié)構(gòu)中,最左邊的位是位0,最右邊的位是位7。
端結(jié)構(gòu)不會(huì)影響系統(tǒng)性能,不同端結(jié)構(gòu)的CPU之間傳輸數(shù)據(jù)、要進(jìn)行數(shù)據(jù)轉(zhuǎn)換。例如,如果小端結(jié)構(gòu)的計(jì)算機(jī)傳輸01020304H的數(shù)據(jù)給大端結(jié)構(gòu)的計(jì)算機(jī),而沒有轉(zhuǎn)換數(shù)據(jù),那么該大端計(jì)算機(jī)讀出的值為04030201H。
對(duì)齊(alignment)。存儲(chǔ)多字節(jié)值的起始單元?jiǎng)偤檬悄硞€(gè)多字節(jié)讀取模塊的開始單元。摩托羅拉68040CPU可以同時(shí)讀單元100、101、102和103,但不能同時(shí)讀單元101、102、103和104,則多字節(jié)值開始存儲(chǔ)的單元可以為100,其地址要能被4整除,這樣就保證該4字節(jié)值可在單獨(dú)一個(gè)讀操作中訪問到。對(duì)齊的CPU具有更好的性能。4.3.5基本功能的拓展
本章描述的存儲(chǔ)器子系統(tǒng)對(duì)于較小的、嵌入式計(jì)算機(jī)而言是足夠的。然而,個(gè)人電腦和大型主機(jī),需要更復(fù)雜的層次結(jié)構(gòu)。
體積小、高速的cache存儲(chǔ)器(cachememory)。數(shù)據(jù)從物理存儲(chǔ)器中裝載到cache中;處理器在cache中訪問數(shù)據(jù)比在物理存儲(chǔ)器中訪問同一數(shù)據(jù)要快的多。微處理器片內(nèi)cache。要有一個(gè)cache控制器(cachecontroller),用來控制cache和物理存儲(chǔ)器間傳輸數(shù)據(jù)?,F(xiàn)代計(jì)算機(jī)的虛擬存儲(chǔ)器(virtualmemory)。用部分硬盤空間充當(dāng)計(jì)算機(jī)存儲(chǔ)器的擴(kuò)展,擴(kuò)大了存儲(chǔ)空間,降低了價(jià)格,因?yàn)橐粋€(gè)硬盤字節(jié)的價(jià)格比一個(gè)RAM字節(jié)要便宜的多。也需要一個(gè)控制器以便在物理存儲(chǔ)器和虛擬存儲(chǔ)器之間傳輸數(shù)據(jù)。虛擬存儲(chǔ)器和cache將在第九章講述。4.4I/O子系統(tǒng)組成和接口
輸入/輸出(I/O)設(shè)備,如鍵盤和硬盤,功能很不一樣,但都是I/O子系統(tǒng)的一部分。對(duì)系統(tǒng)設(shè)計(jì)者而言,CPU和各I/O設(shè)備之間的接口非常相似。圖4.1中,每一I/O設(shè)備與計(jì)算機(jī)系統(tǒng)的地址、數(shù)據(jù)和控制總線相連接,都包括一個(gè)I/O接口電路,此電路與總線交互、也與實(shí)際的I/O設(shè)備交互來傳輸數(shù)據(jù)。
圖4.9(a)輸入設(shè)備的一般接口電路。輸入設(shè)備來的數(shù)據(jù)傳送到三態(tài)緩沖器,當(dāng)?shù)刂房偩€和控制總線上的值正確時(shí),緩沖器設(shè)為有效,數(shù)據(jù)傳到數(shù)據(jù)總線上,CPU可以讀取數(shù)據(jù)。條件不正確時(shí),Enablelogic不會(huì)使緩沖器有效,緩沖器保持三態(tài),不把數(shù)據(jù)傳到總線上。
使能邏輯(enablelogic)。每個(gè)I/O設(shè)備有唯一的地址。除非從數(shù)據(jù)總線得到正確的地址,使能邏輯不置緩沖器有效。同時(shí)必須從控制總線上得到正確的控制信號(hào)。對(duì)輸入設(shè)備,RD(或RD’)、(獨(dú)立I/O中)必須有效。圖4.9(b)為一個(gè)輸入設(shè)備的使能邏輯,設(shè)備所在系統(tǒng)有8位地址及RD、信號(hào),設(shè)備地址為11110000。用組合邏輯,因?yàn)槭鼓苓壿嫳仨氃趩蝹€(gè)時(shí)鐘周期內(nèi)產(chǎn)生,不能使用時(shí)序器件。圖4.9輸入設(shè)備:(a)帶接口的(b)三態(tài)緩沖器的使能邏輯
輸出設(shè)備接口電路設(shè)計(jì)。與輸入設(shè)備的設(shè)計(jì)有所不同。如圖4.10(a),寄存器代替了三態(tài)緩沖器。輸入設(shè)備中使用三態(tài)緩沖器是為了確保任何時(shí)刻只有一個(gè)設(shè)備向總線寫數(shù)據(jù),而輸出設(shè)備是從總線讀數(shù)據(jù),不是寫數(shù)據(jù),因此不需要緩沖器。數(shù)據(jù)對(duì)所有的輸出設(shè)備都可獲得,但只有具有正確地址的設(shè)備才會(huì)去讀取它。
裝載邏輯(loadlogic)在輸出設(shè)備中發(fā)揮著使能邏輯的作用。獲得正確的地址和控制信號(hào)后,發(fā)出寄存器的LD信號(hào),促使它從數(shù)據(jù)總線上讀數(shù)據(jù)。然后輸出設(shè)備可以在空閑時(shí)從寄存器中讀取該數(shù)據(jù),同時(shí)CPU可以執(zhí)行其它任務(wù)。圖4.10(b)輸出設(shè)備產(chǎn)生裝載信號(hào)的邏輯。端口地址為11110000,與圖4.9(b)大致相同,只是用WR代替了RD。圖4.10輸出設(shè)備:(a)帶接口的(b)寄存器的裝載邏輯
也可用三態(tài)緩沖器代替寄存器。裝載寄存器的邏輯用于激勵(lì)三態(tài)緩沖器,雖然對(duì)某些設(shè)計(jì)可行,但輸出設(shè)備必須在緩沖器有效時(shí)讀入數(shù)據(jù)。一旦緩沖器變?yōu)闊o效,其輸出就是高阻態(tài),數(shù)據(jù)就不再能夠供輸出設(shè)備使用。
輸入輸出組合接口。某些設(shè)備既用于輸入又用于輸出,如個(gè)人電腦的硬盤驅(qū)動(dòng)器,要用組合接口。本質(zhì)上是兩個(gè)接口,一個(gè)用于輸入,另一個(gè)用于輸出。邏輯器件既用來產(chǎn)生緩沖器的使能信號(hào),又用來產(chǎn)生寄存器的載入信號(hào)。如下圖,地址為11110000的組合I/O接口。圖4.11帶接口和使能/裝載邏輯的雙向輸入輸出設(shè)備I/O設(shè)備比CPU和存儲(chǔ)器慢得多,與CPU交互時(shí),存在時(shí)序上的問題。如,CPU從硬盤中讀數(shù)據(jù),可能磁盤驅(qū)動(dòng)器要花幾個(gè)毫秒定位磁頭,以便讀取想要的數(shù)值,而這段時(shí)間,CPU可能已讀入不正確的數(shù)據(jù),并且取譯執(zhí)行了成千上萬條指令。
就緒信號(hào)(READY)。一個(gè)控制輸入信號(hào),CPU用來同步與I/O設(shè)備的數(shù)據(jù)傳輸。
設(shè)置READY為低電平而生成的附加時(shí)鐘周期叫做等待狀態(tài)(waitstates)。
CPU也可使用READY同步與存儲(chǔ)器子系統(tǒng)之間的數(shù)據(jù)傳輸?!裢ǔ楦唠娖健.?dāng)CPU輸出某I/O設(shè)備的地址和正確的控制信號(hào),使其三態(tài)緩沖器有效,該I/O設(shè)備置READY信號(hào)為低電平。●CPU讀取這一信號(hào),并繼續(xù)輸出同樣的地址和控制信號(hào),使緩沖器保持有效。在硬盤驅(qū)動(dòng)器的例子中,此時(shí)驅(qū)動(dòng)器旋轉(zhuǎn)磁頭,并且定位讀寫頭,直到讀到想要的數(shù)據(jù)為止?!馡/O設(shè)備通過緩沖器將數(shù)據(jù)輸出到數(shù)據(jù)總線上,并重新設(shè)置READY為高電平?!馛PU才從總線上讀入數(shù)據(jù),之后繼續(xù)它的正常操作。
這些I/O接口在大型的計(jì)算機(jī)系統(tǒng)中性能很差。除了最小的系統(tǒng)外,CPU等待成千上萬個(gè)周期從I/O設(shè)備中取得數(shù)據(jù),這是不可接受的。許多系統(tǒng)使用中斷(interrupt),以便CPU在等待慢得多的I/O設(shè)備時(shí),可以執(zhí)行其它有用的工作。這些I/O接口也不適合于大量的數(shù)據(jù)傳輸。本章系統(tǒng)中,I/O設(shè)備和存儲(chǔ)器之間傳輸?shù)拿恳粋€(gè)字節(jié)都必須通過CPU,對(duì)許多常見操作(如從磁盤向主存裝載一個(gè)程序)來說都效率低下。直接存儲(chǔ)器訪問(directmemoryaccess,或DMA)在數(shù)據(jù)傳輸中繞過CPU,執(zhí)行速度很快。在第10章討論中斷、DMA和其它I/O接口問題。4.5相對(duì)簡(jiǎn)單計(jì)算機(jī)
設(shè)計(jì)一個(gè)使用相對(duì)簡(jiǎn)單CPU的計(jì)算機(jī)。有8KROM,起始地址為0;緊接著是8K的RAM;一個(gè)存儲(chǔ)器映射、地址為8000H的雙向I/O端口。
CPU。由于使用16位地址,因此有16個(gè)地址引腳,A15到A0,同時(shí)通過引腳D7到D0訪問系統(tǒng)的數(shù)據(jù)總線。兩根控制線,READ和WRITE。因?yàn)槭褂么鎯?chǔ)器映射I/O,不需要類似的控制信號(hào)。圖4.12,只包括了CPU的細(xì)節(jié),隨著設(shè)計(jì)推進(jìn),將展現(xiàn)出其余部分的細(xì)節(jié)。圖4.12相對(duì)簡(jiǎn)單計(jì)算機(jī):只有CPU的細(xì)節(jié)
存儲(chǔ)器子系統(tǒng)。8KROM從地址0開始,包括從0到8K-1的所有地址,二進(jìn)制表示為0000000000000000~0001111111111111。8KRAM緊跟在ROM后面,地址從8K到16K-1,或者0010000000000000到0011111111111111。為簡(jiǎn)化設(shè)計(jì),在存儲(chǔ)器子系統(tǒng)中,使用一個(gè)8K的ROM芯片和一個(gè)8K的RAM芯片。
為訪問存儲(chǔ)器芯片,處理器必須提供芯片用的地址和控制信號(hào)。8K的存儲(chǔ)器有213個(gè)存儲(chǔ)單元,需要13位的地址輸入來選擇其中一個(gè)單元。系統(tǒng)中,芯片的地址輸入從地址總線上獲得A12到A0,剩下A15、A14和A13用來選擇一個(gè)(或零個(gè))存儲(chǔ)器芯片。
ROM芯片地址范圍0000000000000000~0001111111111111,其地址的最高三位總是000,即當(dāng)A15A14A13=000時(shí),ROM芯片必須有效。類似的,RAM芯片有效的條件是A15A14A13=001。可用組合邏輯來實(shí)現(xiàn)這些功能,從而設(shè)置芯片的使能信號(hào)。ROM芯片還有一個(gè)輸出使能信號(hào),只需將控制總線上的READ信號(hào)連接到ROM的輸出使能上即可。這樣,僅當(dāng)輸出使能和芯片使能都有效時(shí),ROM芯片才會(huì)輸出數(shù)據(jù),若只有一個(gè)有效,都不會(huì)輸出數(shù)據(jù)。RAM有兩個(gè)控制輸入RD和WR,控制總線的READ和WRITE信號(hào)能驅(qū)動(dòng)這兩個(gè)信號(hào)(CPU的設(shè)計(jì)應(yīng)該確保這兩個(gè)信號(hào)不會(huì)同時(shí)發(fā)出)。這些信號(hào)和芯片使能邏輯一起可以保證:任何時(shí)刻,只有一個(gè)存儲(chǔ)器芯片中的一個(gè)存儲(chǔ)單元被訪問。圖4.13展示了具有存儲(chǔ)器子系統(tǒng)細(xì)節(jié)的該計(jì)算機(jī)設(shè)計(jì)。圖4.13相對(duì)簡(jiǎn)單計(jì)算機(jī):存儲(chǔ)器細(xì)節(jié)
I/O子系統(tǒng)。系統(tǒng)指明一個(gè)雙向I/O端口,地址為8000H,即100000000000
0000。用地址和控制信號(hào)來激勵(lì)該端口的輸入和輸出接口電路。非常類似圖4.11中的設(shè)計(jì)。用寄存器來存儲(chǔ)輸出到該設(shè)備的數(shù)據(jù),用三態(tài)緩沖器傳遞來自該設(shè)備的輸入數(shù)據(jù)。只要作兩個(gè)修改。第一個(gè)很簡(jiǎn)單,由于相對(duì)簡(jiǎn)單CPU用的是存儲(chǔ)器映射I/O,因此將信號(hào)從電路中刪除。第二個(gè)是修改地址邏輯,以辨認(rèn)地址8000H,而不是F0H,用組合邏輯可以很容易做到這一點(diǎn)。圖4.14展示了該計(jì)算機(jī)系統(tǒng)的最后設(shè)計(jì),它包括了I/O子系統(tǒng)。圖4.14相對(duì)簡(jiǎn)單計(jì)算機(jī):最后的設(shè)計(jì)4.6實(shí)例:一臺(tái)基于8085的計(jì)算機(jī)
相對(duì)簡(jiǎn)單CPU只是設(shè)計(jì)作為一個(gè)教學(xué)輔助工具,而Intel工程師設(shè)計(jì)的基于8085的計(jì)算機(jī)可以用于實(shí)際的工程應(yīng)用。
8085的一個(gè)特征。8085使用8個(gè)復(fù)合引腳,AD7到AD0,為所有數(shù)據(jù)位和地址的低八位。在存儲(chǔ)器訪問的第一個(gè)時(shí)鐘周期,這些引腳包含地址的低8位;剩下的時(shí)鐘周期,它們用來傳送或接收數(shù)據(jù)。這是為了減少微處理器引腳的個(gè)數(shù)。
一個(gè)附加電路。存儲(chǔ)器要求整個(gè)地址有效,否則不能訪問數(shù)據(jù)。為糾正這一點(diǎn),設(shè)計(jì)地址鎖存有效信號(hào)(addresslatchenable)ALE,該信號(hào)在存儲(chǔ)器或I/O訪問的第一個(gè)時(shí)鐘周期內(nèi)設(shè)置為1,訪問的剩余時(shí)間為0。用來將低位地址存儲(chǔ)到一個(gè)寄存器中,這樣即使低位地址從AD引腳刪除,還可以從寄存器中得到,這叫做多路分配(demultiplexing)總線。如圖4.15。圖4.158085微處理器多路分配AD引腳
第一個(gè)時(shí)鐘周期,8085將地址的低8位A7到A0輸出到這些引腳上,ALE信號(hào)為高,使這些值裝入鎖存器中。在第一個(gè)時(shí)鐘周期末尾,ALE信號(hào)變低,并且A7到A0的值存入了鎖存器,這樣總線空閑,可以用來傳送數(shù)據(jù)位D7到D0。
本節(jié)給出的計(jì)算機(jī)中,這些功能是在專門的芯片里完成的,它可能使用了一個(gè)類似的電路。
圖4.16,8085微處理器計(jì)算機(jī)的最小系統(tǒng)配置。2K的EPROM,起始地址為0,地址范圍從0到2K-1,即從00000000
0000
0000
到0000011111111111。256字節(jié)RAM,從地址4K開始,范圍為000100000000
0000到0001000011111111。4個(gè)8位的I/O端口,地址為00H,01H,19H和1AH,一個(gè)地址為1BH的6位端口。
8755A芯片。包括2K的EPROM、地址為00H和01H的兩個(gè)I/O端口(單獨(dú)I/O,存儲(chǔ)單元、I/O端口可以同址)。芯片有兩個(gè)使能信號(hào),一個(gè)是CE,高電平有效,因?yàn)榕cVcc相連,恒為高電平,CE總是有效。另一個(gè)信號(hào)低電平有效,由地址位A11驅(qū)動(dòng),當(dāng)A11=0時(shí),該芯片有效。
0到2K-1范圍內(nèi)的地址確實(shí)使8755A有效。其它A11=0的地址,比如111100000000
0000,同樣使其有效,這是因?yàn)锳15到A12沒有用來選擇芯片,這一特性叫做回折(foldback),是小型系統(tǒng)中常見的設(shè)計(jì)方法,可以減少產(chǎn)生使能信號(hào)的邏輯。圖4.16基于8085的最小計(jì)算機(jī)系統(tǒng)
有三塊芯片:8085A、8755A、8156。Intel工程師設(shè)計(jì)的專門芯片,減少了計(jì)算機(jī)所需的電路板的大小和器件間的連線,降低了生產(chǎn)系統(tǒng)的費(fèi)用。
8755A的兩個(gè)I/O端口。為解釋如何訪問這些端口,看8085怎樣實(shí)現(xiàn)I/O指令。對(duì)IN和OUT指令,用的是8位地址。當(dāng)執(zhí)行I/O指令時(shí),把地址放到A15~A8及AD7~AD0上。盡管第一個(gè)時(shí)鐘周期后,會(huì)刪除AD7~AD0上的地址,像存儲(chǔ)器讀寫時(shí)一樣,A15~A8上的地址在整個(gè)I/O操作期間一直保持。對(duì)應(yīng)A11=0(或A3=0)的地址會(huì)使8755A有效。雖然僅有兩個(gè)可見的I/O端口,實(shí)際它有四個(gè)可訪問端口。端口A、B分別有A1A0(=A9A8)=00和01。8755A每一端口有一個(gè)數(shù)據(jù)方向寄存器(datadirectionregister)DDR,用來確定A和B是輸入還是輸出端口(實(shí)際允許每一位獨(dú)自設(shè)置為輸入或輸出)。CPU通過寫數(shù)據(jù)到DDR中來設(shè)置端口的指向,端口A和B的DDR分別有A1A0=10和11。同8755A的存儲(chǔ)器一樣,I/O端口也有回折。這里,端口A選用地址00H,端口B選用地址01H,端口A的DDR的地址為02H,端口B的DDR的地址為03H。
8156芯片。256字節(jié)的RAM,兩個(gè)8位I/O端口,一個(gè)6位I/O端口。A12=1時(shí)芯片有效,因?yàn)椴皇褂盟懈呶坏刂芳?lì)芯片,也有回折。選擇4K,或1000H作為其起始地址。
8156實(shí)際包含I/O端口比圖4.16顯示的要多。CPU輸出命令到一個(gè)命令寄存器,由此設(shè)置I/O端口的方向。還包括一個(gè)狀態(tài)寄存器,CPU讀取它得到端口配置信息。地址的低三位選擇片內(nèi)I/O端口。A2A1A0=000是命令寄存器(輸出)或狀態(tài)寄存器(輸入);A2A1A0=001,010,011表示分別訪問端口A、B、C;還有一個(gè)時(shí)鐘,A2A1A0=100或101表示訪問時(shí)鐘。
圖4.16設(shè)計(jì)適合許多應(yīng)用。如,微波爐,帶控制面板、數(shù)字顯示、傳感器(指示事件,像門開著還是關(guān)著)和處理器控制的子系統(tǒng)(如電源)。圖4.16能用于控制微波爐,無需改動(dòng)。按鍵時(shí),用一個(gè)端口讀取控制面板,另一個(gè)端口讀取剩下的傳感器,第三個(gè)端口驅(qū)動(dòng)數(shù)字顯示,第四個(gè)端口控制電源和其它子系統(tǒng)。主要控制程序存儲(chǔ)在8755A芯片的EPROM中,8156
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年河北唐山灤州市森林草原消防專業(yè)隊(duì)員招聘7人模擬試卷及完整答案詳解
- 滑輪課件筆記
- 2025江西南昌市中交信通網(wǎng)絡(luò)科技有限公司招聘1名市場(chǎng)高級(jí)專員模擬試卷完整答案詳解
- 中國(guó)康復(fù)器械行業(yè)發(fā)展現(xiàn)狀調(diào)查、競(jìng)爭(zhēng)格局分析及未來前景預(yù)測(cè)報(bào)告
- 2026屆安徽省皖豫名校聯(lián)盟高三上學(xué)期10月調(diào)研考試語文試題(含答案)
- 大灰熊腦力測(cè)試題及答案
- 2025貴州省衛(wèi)生中心第十三屆貴州人才博覽會(huì)引才模擬試卷及答案詳解(易錯(cuò)題)
- 滑板運(yùn)動(dòng)員化學(xué)知識(shí)培訓(xùn)課件
- 2025年荊州市荊州區(qū)校園招聘49名中小學(xué)教師考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(各地真題)
- 彩陶課件介紹
- 2025貴州黔西南州民政局公益性崗位招聘模擬試卷及答案詳解(典優(yōu))
- DHCP課件講述教學(xué)課件
- 一國(guó)兩制課件
- 隔震支座安裝施工方案
- 中藥生物安全培訓(xùn)內(nèi)容課件
- 2024年武漢商學(xué)院公開招聘輔導(dǎo)員筆試題含答案
- 捶草印花課件
- vin碼打印管理辦法
- 銀行反電詐培訓(xùn)課件
- tesol考試的樣卷及答案
- DB32-T 5156-2025 零碳園區(qū)建設(shè)指南
評(píng)論
0/150
提交評(píng)論