《微型計算機原理與接口技術》課件第5章 2_第1頁
《微型計算機原理與接口技術》課件第5章 2_第2頁
《微型計算機原理與接口技術》課件第5章 2_第3頁
《微型計算機原理與接口技術》課件第5章 2_第4頁
《微型計算機原理與接口技術》課件第5章 2_第5頁
已閱讀5頁,還剩124頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

5.1存?儲?器?概?述隨著CPU速度的不斷提高和軟件規(guī)模的不斷擴大,人們希望存儲器能同時滿足速度快、容量大、價格低的要求。但實際上這一點很難辦到,解決這一問題的較好方法是設計一個快慢搭配,具有層次結構的存儲系統(tǒng)。微型計算機中的信息是分級存儲的,所以存儲系統(tǒng)是以層次結構進行組織的。典型的存儲系統(tǒng)層次結構是高速緩沖存儲器(Cache)—內(nèi)存儲器—外存儲器這樣三級。圖5-1顯示了新型微機系統(tǒng)的層次結構。CPU中的寄存器位于頂端,它有最快的存取速度,但數(shù)量極為有限;向下依次是CPU內(nèi)的Cache(高速緩沖存儲器)、主板上的Cache(由高速SRAM組成)、內(nèi)存儲器(簡稱內(nèi)存,又稱主存儲器),這些都是計算機主機的一個組成部分,用于存放當前與CPU頻繁交換的信息。CPU可以通過三總線(地址總線、數(shù)據(jù)總線、控制總線)直接對它進行訪問,因此要求它的工作速度和CPU的處理速度接近,但其容量相對于外存儲器要小得多。外存儲器(簡稱外存)又稱輔助存儲器(簡稱輔存),屬于計算機的外部設備,用來存儲相對來說不經(jīng)常使用的可永久保存的信息。外存中的信息要通過專門的接口電路傳送到內(nèi)存后,才能供CPU處理。因此它的速度可以低一些,但容量相對于內(nèi)存卻要大得多。圖5-1微機存儲系統(tǒng)的層次結構5.1.1存儲器的分類

半導體存儲器的種類繁多,從制造工藝的角度看,可分為雙極(Bipolar)型存儲器和MOS(Metal-OxideSemiconductor)型存儲器兩類。雙極型存儲器速度快,常作微機系統(tǒng)中的高速緩沖存儲器(Cache)。MOS型存儲器因制造工藝的不同,又有靜態(tài)RAM、動態(tài)RAM、EPROM、E2PROM和FlashMemory等,它們的速度較雙極型慢,但集成度高、功耗低、價格便宜,是構成微型機內(nèi)存的主要半導體存儲器件。按信息存儲方式,半導體存儲器可分為隨機存取存儲器RAM(RandomAccessMemory)和只讀存儲器ROM(ReadOnlyMemory)。

(1)隨機存取存儲器RAM。RAM又稱讀寫存儲器。計算機在運行期間,這種存儲器中的信息可隨時讀出或寫入。它里面存放的信息會丟失,因此又稱易失性或揮發(fā)性存儲器。但目前有些RAM芯片內(nèi)部帶有電池,掉電后信息不會丟失,稱為非易失或不揮發(fā)性的RAM(NVRAM)。

(2)只讀存儲器ROM。ROM在機器運行期間其信息只能讀出不能寫入。這種存儲器斷電后,其信息亦不丟失。常用它來存放固定的程序或數(shù)據(jù)。根據(jù)信息寫入的方式,常用的ROM類型有:掩膜式(Mask)ROM(簡稱ROM)、可編程(programmable)ROM(即PROM)、紫外線可擦除(Erasable)PROM(即EPROM)、電可擦除(ElectricallyErasable)PROM(即EEPROM,或稱E2PROM)、快速整體電擦除(FLASHMEMORY,也稱閃速存儲器)。半導體存儲器的分類如圖5-2所示。圖5-2半導體存儲器的分類5.1.2半導體存儲器的性能指標

1.存儲容量

存儲容量是內(nèi)存儲器的一個重要指標,它反映了存儲空間的大小。存儲容量常以字節(jié)或字為單位。在計算機中,定義一個字節(jié)為8位二進制信息,而字長一般為8的倍數(shù)。微型計算機中均以字節(jié)B(Byte)為單位,如8位機的內(nèi)存儲器的容量為64KB,16位微型機的內(nèi)存儲器的容量為640KB或1?MB。外存一般用MB、GB、TB為單位以表示更大的容量,如3.5inch軟盤的容量為1.44MB。這里,1?KB=210B,1MB=1024KB=220B,1GB=1024MB=230B,1?TB=1024?GB=240B。在用存儲芯片設計內(nèi)存儲器時,存儲容量是指存儲器(或存儲器芯片)存放二進制信息的總位數(shù),一般描述為N×M(其中:N表示芯片的存儲單元數(shù),M表示每單元的存儲位數(shù)),即

存儲器容量=存儲單元數(shù)×每個單元的位數(shù)(或數(shù)據(jù)線位數(shù))例如,SRAM芯片6264的容量為8K×8,即它有8K個單元(1K=1024),每個單元存儲8位(一個字節(jié))二進制數(shù)據(jù)。DRAM芯片NMC41257的容量為256K×l,即它有256K個單元,每個單元存儲1位二進制數(shù)據(jù)。

2.存取速度

存取速度是以存儲器的存取時間來衡量的。存取速度指從CPU給出有效的存儲地址到存儲器給出有效數(shù)據(jù)所需的時間,一般為幾納秒到幾百納秒。存取時間越小,則存取速度越快。存取時間主要與存儲器的制造工藝有關。雙極型半導體存儲器的速度高于MOS型的速度,但隨著工藝的提高,MOS型的速度也在不斷提高。

3.功耗

功耗一般指每個存儲單元的功耗,單位為微瓦/單元(μW/單元)。也有給出每塊芯片總功耗的,單位為毫瓦/芯片(mW/芯片)。功耗是半導體存儲器的一個重要指標,它不僅涉及到消耗功率的大小,也關系到芯片的集成度,還要考慮微機的電源容量,由此產(chǎn)生的熱量和在機器中的組裝和散熱問題。手冊中常給出工作功耗和維持功耗。

4.可靠性

可靠性通常以平均無故障時間(MTBF)來衡量。平均無故障時間可以理解為兩次故障之間的平均時間間隔,平均無故障時間越長,則可靠性越高。集成存儲芯片一般在出廠時需經(jīng)過測試以保證它有很高的可靠性。

5.性能/價格比

性能/價格比用于衡量存儲器的經(jīng)濟性能,它是存儲容量、存取速度、可靠性、價格等的一個綜合指標,其中的價格還應包括系統(tǒng)中使用存儲器時而附加的線路的價格。用戶選用存儲器時,應針對具體的用途,側重考慮要滿足某種性能,以利于降低整個系統(tǒng)的價格。例如,選用外存儲器要求它有大的存儲容量,但對于存取是否高速則不作要求;高速緩存Cache要求高的存取速度,但對于其存儲容量則不作過高要求。5.1.3存儲器的基本結構

如圖5-3所示,半導體存儲器由地址寄存器、譯碼驅動電路、存儲器、讀/寫控制電路、數(shù)據(jù)寄存器、控制邏輯等6個部分組成。圖5-3存儲器的基本組成

1.地址寄存器

地址寄存器用于存放CPU訪問存儲單元的地址,經(jīng)譯碼驅動后指向相應的存儲單元。通常,在微型計算機中,訪問地址由地址鎖存器提供,如8086CPU中的地址鎖存器8282。存儲單元地址由地址鎖存器輸出后,經(jīng)地址總線送到存儲器芯片內(nèi)直接譯碼。

2.譯碼驅動電路

譯碼驅動電路實際上包含譯碼器和驅動器兩部分。譯碼器將地址總線輸入的地址碼轉換成與它對應的譯碼輸出線上的高電平或低電平,以表示選中了某一單元,并由驅動器提供驅動電流去驅動相應的讀/寫控制電路,完成對被選中單元的讀/寫操作。

3.存儲器

存儲器是存儲單元的集合體,它由若干個存儲單元組成,每個存儲單元又由若干個基本存儲電路(或稱存儲元)組成,每個存儲元可存放一位二進制信息。通常,一個存儲單元為一個字節(jié),存放8位二進制信息,即以字節(jié)來組織。為了區(qū)分不同的存儲單元和便于讀/寫操作,每個存儲單元都有一個地址(稱為存儲單元地址),CPU訪問時按地址訪問。為了減少存儲器芯片的封裝引線數(shù)和簡化譯碼器結構,存儲體總是按照二維矩陣的形式來排列存儲元電路。體內(nèi)基本存儲元的排列結構通常有兩種方式:一種是“多字一位”結構(簡稱位結構),即將多個存儲單元的同一位排在一起,其容量表示成N字×1位,例如,1K×l位,4K×l位;另一種排列是“多字多位”結構(簡稱字結構),即將一個單元的若干位(如4位、8位)連在一起,其容量表示為

N字×4位/字或N字×8位/字

如靜態(tài)RAM的6116為2K×8,6264為8K×8等。

4.讀/寫控制電路

讀/寫控制電路包括讀出放大器、寫入電路和讀/寫控制電路,用以完成對被選中單元中各位的讀出或寫入操作。存儲器的讀/寫操作是在CPU的控制下進行的,只有當接收到來自CPU的讀/寫命令和后,才能實現(xiàn)正確的讀/寫操作。

5.數(shù)據(jù)寄存器

數(shù)據(jù)寄存器用于暫時存放從存儲單元讀出的數(shù)據(jù),或從CPU以及I/O端口送出的要寫入存儲器的數(shù)據(jù)。暫存的目的是為了協(xié)調(diào)CPU和存儲器之間在速度上的差異,故又稱之為存儲器數(shù)據(jù)緩沖器。

6.控制邏輯

控制邏輯接收來自CPU的啟動、片選、讀/寫及清除命令,經(jīng)控制電路綜合和處理后,發(fā)出一組時序信號來控制存儲器的讀/寫操作。

雖然現(xiàn)在微型機的存儲器多由芯片構成,但任何存儲器的結構都保留了這6個基本部分,只是在組成各種結構時做了一些相應的調(diào)整。5.2隨?機?存?儲?器隨機存儲器(RAM)主要用來存放當前運行的程序、各種輸入輸出數(shù)據(jù)、中間運算結果及堆棧等,其存儲的內(nèi)容既可隨時讀出,也可隨時寫入和修改,掉電后內(nèi)容會全部丟失。隨機存儲器RAM可進一步分為靜態(tài)RAM(SRAM)和動態(tài)RAM(DRAM)兩類。圖5-46管靜態(tài)隨機存儲器SRAM基本存儲電路圖

2.靜態(tài)隨機存儲器的結構

靜態(tài)隨機存儲器通常由地址譯碼、存儲矩陣、讀/寫控制邏輯及三態(tài)數(shù)據(jù)緩沖器4部分組成,圖5-5所示為1K×1的靜態(tài)RAM芯片的內(nèi)部組成框圖。圖5-5靜態(tài)RAM內(nèi)部結構示意圖

1)存儲矩陣

存儲矩陣是存儲器芯片的核心部分。一個基本存儲電路僅能存放一位二進制信息。在計算機中為了保存大量的信息,需要由許多如圖5-4所示的基本存儲元電路組成,通常排列成二維矩陣形式。本例中采用位結構,即將所有單元(1024個)的同一位制作在同一芯片上,并排成32×32方陣,1024個單元需要10條地址線,其中,5條(A4~A0)用于列(X)譯碼,5條(A9~A5)用于行(Y)譯碼,行、列同時選中的單元為所要訪問的單元。這種結構的優(yōu)點是芯片封裝時引線較少。例如,本例中1K×1的容量,若采用多字多位結構,如排成128×8的矩陣結構,即一個芯片上共128個單元,每單元8位,這樣每個芯片封裝時的引線數(shù)為7位地址線、8位數(shù)據(jù)線;而排成多字一位的結構時,每片只需10位地址線和1位數(shù)據(jù)線。芯片的封裝引線數(shù)少,可以提高產(chǎn)品的合格率。如果要求每單元為8位,則只需用8片相同的芯片并聯(lián)即可滿足要求。

2)地址譯碼器

每個存儲單元都有自己的編號,即存儲單元地址。要對一個存儲單元進行讀/寫,必須先給出它的地址,這就是計算機的“存儲器按地址訪問”的原理。如前所述,CPU在讀/寫一個存儲單元時,總是先將訪問地址送到地址總線上,然后將高位地址經(jīng)譯碼后產(chǎn)生片選信號(

)選中某一芯片,用低位地址送至存儲器,經(jīng)片內(nèi)地址譯碼器譯碼選中所需的存儲單元,最后在CPU的讀/寫命令控制下完成對該單元的讀出或寫入。由此可見,RAM中的地址譯碼完成存儲單元的選擇。通常的譯碼方法有兩種:單譯碼和雙譯碼。不同的譯碼方法對譯碼器的結構和輸出線的要求是不同的。單譯碼是把所有地址都輸入到一個譯碼器進行譯碼,這樣,若地址為n位,則要求譯碼器有2n個輸出,結構就比較復雜。雙譯碼是將所有地址線分為行、列兩個方向進行譯碼,如圖5-5所示。1024個單元共需10位地址線,分為行、列兩個方向,每個方向5條,經(jīng)行列譯碼,各輸出32條線到存儲矩陣中,只有行、列方向同時選中的單元才是所要訪問的單元。因此,雙譯碼可以簡化譯碼器結構。圖5-6SRAM6264引腳圖5.2.2動態(tài)隨機存儲器

1.基本存儲單元

最簡單的動態(tài)RAM(DRAM)基本存儲電路由一個MOS晶體管和一個電容CS組成,如圖5-7所示。在這個電路中,存儲信息依賴于電容CS,電容CS上的電荷(信息)是能夠維持的。該電路的工作過程如下:

(1)寫入時,行、列選擇線信號為“1”。行選管V1真導通,該存儲元被選中。若寫入“1”,則經(jīng)數(shù)據(jù)I/O線送來的寫入信號為高電平,經(jīng)刷新放大器和V2管(列選管)向CS充電,CS上有電荷,表示寫入了“1”;若寫入“0”,則數(shù)據(jù)I/O線上為“0”,CS經(jīng)V1管放電,CS上便無電荷,表示寫入了“0”。圖5-7單管DRAM基本存儲元件

(2)讀出時,先對行地址譯碼,產(chǎn)生行選擇信號(為高電平)。該行選擇信號使本行上所有基本存儲元電路中的V1管均導通,由于刷新放大器具有很高的靈敏度和放大倍數(shù),并且能夠將從電容上讀取的電壓值(此值與CS上所存“0”或“1”有關)折合為邏輯“0”,或邏輯“1”,于是連接在列線上的刷新放大器就能夠讀取對應于電容CS上的電壓值。若此時列地址(較高位地址)產(chǎn)生列選擇信號,則行和列均被選通的基本存儲元電路得以驅動,從而讀出數(shù)據(jù)送入數(shù)據(jù)I/O線。

(3)讀出操作完畢,電容CS上的電荷被放完,而且選中行上所有基本存儲元電路中的電容CS都受到打擾,故是破壞性讀出。為使CS上讀出后仍能保持原存信息(電荷),刷新放大器又對這些電容進行重寫操作,以補充電荷使之保持原信息不變。所以,讀出過程實際上是讀、回寫過程?;貙懸卜Q為刷新。

這種單管動態(tài)存儲單元電路的優(yōu)點是結構簡單、集成度高且功耗小。缺點是列線對地間的寄生電容大,噪聲干擾也大,因此,要求CS值做得比較大,刷新放大器應有較高的靈敏度和放大倍數(shù)。

2.DRAM的結構

1)?DRAM芯片的結構特點

DRAM芯片的結構特點是設計成位結構形式,即一個芯片上含有若干字,而每個存儲單元只有一位數(shù)據(jù)位,如4K×1位、8K×1位、16K×1位、64K×1位或256K×1位等。存儲體的這一結構形式是DRAM芯片的結構特點之一。

DRAM存儲體的二維矩陣結構也使得DRAM的地址線總是分成行地址線和列地址線兩部分,芯片內(nèi)部設置有行、列地址鎖存器。在對DRAM進行訪問時,總是先由行地址選通信號(CPU產(chǎn)生)把行地址打入內(nèi)置的行地址鎖存器,隨后再由列地址選通信號把列地址打入內(nèi)置的列地址鎖存器,再由讀/寫控制信號控制數(shù)據(jù)讀出/寫入。所以,訪問DRAM時,訪問地址需要分兩次打入,這也是DRAM芯片的特點之一。行、列地址線的分時工作,可以使DRAM芯片的對外地址線引腳大大減少,僅需與行地址線相同即可。

2)?DRAM的刷新

所有的DRAM都是利用電容存儲電荷的原理來保存信息的。雖然利用MOS管柵源間的高阻抗可以使電容上的電荷得以維持,但由于電容總存在泄漏現(xiàn)象,時間長了其存儲的電荷會消失,從而使其所存信息自動丟失。所以,必須定時對DRAM的所有基本存儲元電路進行電荷補充,即進行刷新操作,以保證存儲的信息不變。所謂刷新,就是不斷地每隔一定時間(一般每隔2?ms)對DRAM的所有單元進行讀出,經(jīng)讀出放大器放大后再重新寫入原電路中,以維持電容上的電荷,進而使所存信息保持不變。對DRAM必須設置專門的外部控制電路和安排專門的刷新周期來系統(tǒng)地對DRAM進行刷新。刷新類似于讀操作,但刷新時不發(fā)送片選信號或不發(fā)送列地址。對DRAM的刷新是按行進行的,每刷新一次的時間稱為刷新周期。從上一次對整個存儲器刷新結束到下一次對整個存儲器全部刷新一遍所用的時間間隔稱為最大刷新時間間隔,一般為2?ms。設相繼刷新2行之間的時間間隔為Tn,單片存儲器的行數(shù)為LR,則整個存儲器刷新一遍的時間為

T=Tn?×?LR

不論行數(shù)多少,均應保證T小于2?ms。圖5-8Intel2164DRAM芯片引腳及內(nèi)部結構圖圖5-8中,64?K的存儲體由4個128×128的存儲矩陣組成,每個128×128的存儲矩陣由7條行地址線和7條列地址線進行選擇,在芯片內(nèi)部經(jīng)地址譯碼后,可分別選擇128行和128列。

鎖存在行地址鎖存器中的7條行地址線RA6~RA0同時加到4個存儲矩陣上,在每個矩陣中選中一行,則共有4×128=512個基本存儲元電路被選中,存放信息被選通到512個讀出放大器,經(jīng)過鑒別后鎖存或重寫。5.3只?讀?存?儲?器5.3.1只讀存儲器的結構只讀存儲器(ROM)中各基本存儲單元電路所存信息在機器運行期間只能讀出不能寫入,且在斷電或停電之后也不會改變和消失,具有固定非易失的特點。

ROM中的信息是事先用專用儀器設備寫入的,對簡單的程序也可用人工方式寫入。通常稱對ROM信息的寫入過程是對ROM進行編程。ROM芯片的內(nèi)部結構如圖5-9所示。圖5-9ROM的結構框圖可以看出,它是由存儲矩陣、地址譯碼器和輸出緩沖器三部分組成的。存儲矩陣采用N行8列或N行4列的結構。行列線信號由地址譯碼器譯碼產(chǎn)生,在行列線之間則用單向選擇開關組成的基本存儲電路耦合。選用二極管、雙極型三極管或MOS三極管作單向選擇開關。

編址方式可采用單譯碼編址方式或雙譯碼編址方式。輸出緩沖器采用能方便地掛接于總線的單向三態(tài)門結構。下面用一個16×8位的假想存儲器來說明ROM的工作原理及特點,它的行列線之間的耦合單元為二極管。存儲矩陣分成8個16×1位的陣列,用圖5-10表示其中一個16×1位的陣列。四位地址碼分成兩組,低兩位送行譯碼器,譯碼產(chǎn)生行選擇信號;高兩位送列譯碼器,譯碼產(chǎn)生列選擇信號,行列選擇信號復合選擇基本存儲電路。圖5-1016?×?1位的陣列5.3.2只讀存儲器的分類

ROM存儲矩陣中各基本存儲電路的信息存儲是用單向選擇開關接通或斷開的狀態(tài)來實現(xiàn)的,單向選擇開關的狀態(tài)應事先設計好。根據(jù)選擇開關設置方法也即編程方式的不同,只讀存儲器(ROM)常分為下列三種。

1.掩膜式ROM(MaskProgrammedROM)

掩膜式ROM簡稱ROM,是廠家按用戶提供的數(shù)據(jù)對芯片進行兩次光刻來控制某特定基本存儲電路的晶體管能否工作(即單向開關是否接通),來達到預先寫入信息的目的,所以一旦完工用戶就不可以改變其信息。它可以用雙極工藝實現(xiàn),也可以用MOS來實現(xiàn)。掩膜ROM中,由于只有讀出所需的電路,所以結構簡單、集成度高、接口容易,大批量生產(chǎn)時也很便宜。掩膜ROM主要作為微型機的標準存儲器,也可以用來存儲數(shù)學用表、代碼轉換表、邏輯函數(shù)表、固定常數(shù)表以及陰極射線管或打印機用的字符產(chǎn)生圖形等。例如,國家標準的一、二級漢字字模(漢字字形信息)就可以做到一個掩膜式的ROM芯片中。圖5-11所示為一種單譯碼結構的掩膜式ROM,其容量為4×4位。圖中有4條行選線,4條數(shù)據(jù)位線(列線),后者通過有源負載掛在高電平上。每個行線和列線交叉處可存放一位信息,若兩線間接有場效應管,則選中該行時,將從該位線上讀到低電平0;否則,將讀到高電平1。

若地址線A1A0=00,則選中0號單元,即字線0為高電平,則凡與該行相連的MOS管導通,對應位輸出為0,而不與該行相連的位因沒有MOS管的導通而輸出為1。表5-2為圖5-11存儲矩陣的存放內(nèi)容。圖5-11掩膜式ROM結構示意圖

2.可編程ROM(ProgrammableROM)

可編程ROM(ProgrammableROM),簡稱PROM。PROM在產(chǎn)品出廠時未存儲任何信息,使用時,用戶可以根據(jù)需要自行寫入信息。但只能寫入一次,一旦寫入,不可更改。目前,PROM只有雙極型(主要包括TTL工藝及ECL工藝)產(chǎn)品,基本存儲電路有熔絲型和PN擊穿型兩種,讀數(shù)時間范圍在40~90ns,有些ECL產(chǎn)品的讀數(shù)時間低到20?ns。由于PROM的典型應用是作為高速計算機的微程序存儲器,高速是主要目標,很少考慮降低功耗的問題。雙極型產(chǎn)品的功耗確實比較大,典型的PROM單片機總功耗為600~1000mW。

PROM基本存儲電路是熔絲式PROM的基本存儲結構,其存儲單元通常用二極管或三極管實現(xiàn)。圖5-12所示為存儲單元用雙板型三極管的發(fā)射級串接一個可熔金屬絲,因此這種PROM也稱為“熔絲式”PROM。

出廠時,所有存儲單元的熔絲都是完好的,編程時,通過字線選中某個晶體管。若準備寫入1,則向位線送高電平,此時管子截止,熔絲將被保留;若寫入0,則向位線送低電平,此時管子導通,控制電流使熔絲燒斷。也就是說,所有的存儲單元出廠時均存放信息1,一旦寫入0即使熔絲燒斷,不可能恢復,所以它只能進行一次編程。圖5-12熔絲式PROM的基本存儲結構

3.可擦除可編程ROM(ErasbleProgrammableROM)

可擦除可編程ROM(ErasbleProgrammableROM),簡稱EPROM,是指用戶既可以采取某種方法自行寫入信息,也可以采取某種方法將信息全部擦去,而且擦去后還可以重新寫入的ROM。根據(jù)擦去信息的方法不同,EPROM又可以分為兩種,即紫外線擦除的EPROM(UltravioletEPROM,簡稱UVEPROM)和電擦除的EPROM(ElectricallyEPROM,簡稱EEPROM或E2PROM)。UVEPROM常用作微型機的標準程序存儲器或專用程序存儲器。5.3.3典型PROM芯片簡介

典型的EPROM芯片以27系列為代表,如2716(2K×8位)、2732(4K×8位)、2764(8K×8位)、27128(16K×8位)、27256(32K×8位)、27512(64K×8位);容量更大的有27010(128K×8位)、27020(256K×8位)、27030(512K×8位)、27040(1M×8位)等,這些芯片多采用NMOS工藝制造,若采用CMOS工藝,其功耗要比前者小得多,多用于便攜式儀器場合,如27C64。

典型的E2PROM芯片以28系列為代表,如2816(2K×8位)、2832(4K×8位)、2864(8K×8位)、28128(16K×8位)、28256(32K×8位)、28512(64K×8位)。下面以Intel2864A為例,說明E2PROM的基本特點和工作方式。

Intel2864A的容量為8K×8,采用28個引腳雙引直插式封裝,圖5-13所示為2864A的引腳圖,其引腳與EPROM2764兼容。圖5-132864AE2PROM的引腳5.4高速緩存存儲器(Cache)使用Cache的目的在于提高CPU數(shù)據(jù)的輸入/輸出速率,突破所謂的“馮·諾依曼瓶頸”,即CPU與存儲系統(tǒng)間的數(shù)據(jù)傳送帶寬限制。高速緩存存儲器能以極高的速率進行數(shù)據(jù)的訪問,但其價格較高。通常在CPU和主存儲器之間設置小容量的高速存儲器,其容量小但速度快,主存儲器速度較低但容量大。通過優(yōu)化調(diào)度算法,系統(tǒng)的性能會大大改善,其存儲系統(tǒng)容量與主存相當而訪問速度近似Cache。在計算機的存儲系統(tǒng)中,Cache是訪問速度最快的層次。在CPU內(nèi)部通常設有一級或二級Cache,在PC機的主板上設有片外Cache。5.4.1Cache存儲器原理

1.原理

使用Cache改善系統(tǒng)性能的依據(jù)是程序的局部性原理,即程序的地址訪問流有很強的時序相關性,未來的訪問模式與最近已發(fā)生的訪問模式相似。研究結果表明,在任一給定的時間間隔內(nèi),對不同地址區(qū)域的訪問概率是不同的,有的區(qū)域高,有的區(qū)域低。而另一種可能則是訪問概率隨著離當前執(zhí)行指令的遠近而變化,離當前執(zhí)行指令越近,其概率也越高。

根據(jù)局部性原理,把主存儲器中訪問概率高的內(nèi)容存放在Cache中,當CPU需要讀取數(shù)據(jù)據(jù)時就首先在Cache中查找是否有所需內(nèi)容。如果有,則直接從Cache中讀??;若沒有,則再從主存中讀取該數(shù)據(jù),然后同時送往CPU和Cache。如果CPU需要訪問的內(nèi)容大多都能在Cache中找到(稱為命中,Hit),則可以大大提高系統(tǒng)性能。圖5-14Cache的基本結構當CPU發(fā)出讀請求時,將主存地址m位(或m位中的一部分)與Cache中某頁的標識相比較,當比較結果相等時,說明相等的數(shù)已在Cache中,那么直接訪問Cache就可以了,在CPU和Cache之間,通常一次傳送一個字;當比較結果不相等時,說明需要的數(shù)據(jù)尚未調(diào)入Cache,那么就要把該數(shù)據(jù)所在的整個頁從主存一次調(diào)進來。前一種情況稱為訪問Cache命中,后一種情況稱為訪問Cache不命中。頁的大小稱為頁長。頁長一般取一個主存周期所能調(diào)出的信息長度。Cache的容量和頁的大小是影響Cache效率的重要因素,通常用“命中率”來測量Cache的效率。命中率指CPU所要訪問的信息在Cache中的比率,而將所要訪問的信息不在Cache中的比率稱為失效率。一般來說,Cache的存儲容量比主存的容量小得多,但不能太小,太小會使命中率太低;也沒有必要過大,過大不僅會增加成本,而且當容量超過一定值后,命中率隨容量的增加將不會有明顯的增長。但隨著技術的發(fā)展和芯片價格的下降,Cache的容量還是不斷增大,已由幾十千字節(jié)發(fā)展到幾百千字節(jié),甚至達到幾兆字節(jié)。在從主存讀出新的頁調(diào)入Cache存儲器時,若Cache中已滿,那么就必須去掉一個舊的頁,讓位于一個新的頁。這種替換應該遵循一定的規(guī)則,最好能使被替換的頁是下一段時間內(nèi)估計最少使用的。這些規(guī)則稱為替換策略或替換算法,由替換部件加以實現(xiàn)。

Cache存儲器中保存的字頁是主存中相應字頁的一個副本。如果程序執(zhí)行過程中要對該字頁的某個單元進行寫操作,就會遇到如何保持Cache與主存的一致性問題。通常有兩種寫入方式:一種方式是暫時只向Cache存儲器寫入,并用標志加以注名,直到經(jīng)過修改的字頁被從Cache中替換出來時才一次寫入主存;第二種方式是每次寫入Cache存儲器時也同時寫入主存,使Cache和主存保持一致。前一種方式稱為標志交換(Flag-Swap)方式。只有寫標志“置位”的字頁才有必要最后從Cache存儲器一次寫回主存,所以又稱為“寫回法”。這種方式寫操作快,缺點是,在此以前的主存中的字頁未經(jīng)過及時修改而可能失效。后一種方式稱為寫通(Write-through),又稱為直達法。這種方式實現(xiàn)簡單,且能隨時保持主存數(shù)據(jù)的正確性。但有可能要增加多次不必要的向主存的寫入,向Cache存儲器某一單元寫入多少次,也要向主存相應單元寫入多少次。另有一種寫操作方法是,當被修改的單元根本就不在Cache時,寫操作直接對主存進行,而不寫入Cache存儲器。

為了說明標記是否有效,每個標記還應該設置一個有效位,當機器剛加電啟動時,總機的RESET信號或執(zhí)行程序將所有標記的有效位置“0”,使標記無效。在程序執(zhí)行過程中,當Cache不命中時逐步將指令頁或數(shù)據(jù)頁從主存調(diào)入Cache中的某一頁,并將這一頁標記中的有效位置“1”,當再次用到這一頁中的指令或數(shù)據(jù)時,肯定命中,可直接從Cache中取值或取數(shù)。從這里也可看到,剛加電后所有標記有效位都為“0”,因此開始執(zhí)行程序時,命中率較低。另外,Cache的命中率還與程序本身有關,即不同的程序,其命中率可能不同。5.4.2Cache存儲器組織

1.地址映像

為了把信息放到Cache存儲器中,必須應用某種函數(shù)把主存地址映像到Cache,稱做地址映像。在信息按照這種映像關系裝入Cache后,執(zhí)行程序時,應將主存地址變換成Cache地址,這個變換過程叫做地址變換。地址的映像與變換是相關的。

下面將通過一個實例,說明Cache的幾種地址映像并簡要說明更新Cache內(nèi)容的替換方法。

1)直接映像

如圖5-15所示,Cache與主存之間采取直接映像方式,即主存中每一個頁只能復制到某一個固定的Cache頁中,可以同時復制16頁。其映像的規(guī)律是:將主存的2048頁按順序分為128組,每組16頁,分別與Cache的16頁直接映像,即以16為模重復映像關系。主存的第0頁、第16頁、第32頁、……、第2032頁等,共128頁,只能映像到Cache的第0頁;主存的第1頁、第17頁、第33頁、……、第2033頁,只能直接映像到Cache第1頁;主存第15頁、第31頁、……、第2047頁等,只能映像到Cache第15頁。圖5-15直接映像的Cache組織訪問時,給出20位主存地址,其中高11位為主存頁號,低9位為頁內(nèi)地址。為了實現(xiàn)與Cache間的地址映像與變換,將高11位進一步分為兩部分:高7位給出主存的組號,稱為主存標志,選擇0~127組中的某一組;低4位給出Cache的頁號,選擇組內(nèi)16頁的某一頁。于是,20位主存地址的低13位也就是轉換后的Cache地址。在Cache方面,為每一頁設立一個7位的Cache標記。如果現(xiàn)在Cache第0頁中復制的是主存的第16頁的內(nèi)容,其標記段為1,標志它現(xiàn)在與主存第一組相對應。因此,在訪問主存時,只需比較主存地址中高7位的標記段與對應的Cache頁的7位標記,如果二者相同,表明所需訪問的主存頁的內(nèi)容現(xiàn)在復制于對應的Cache頁中。

直接映像方式比較容易實現(xiàn),但不夠靈活,有可能使Cache的存儲空間得不到充分利用。例如,需將主存第0頁與第16頁同時復制到Cache,由于它們只能都復制到Cache的第0頁,即使Cache其他頁空閑,也將有一個主存頁不能寫入Cache。

2)全相聯(lián)映像

圖5-16所示的映像方式稱為全相聯(lián)映像,即主存的每一頁可映像到Cache的任一頁。訪問主存時,給出的20位地址分為兩部分:高11頁為主存頁號,低9位為頁內(nèi)地址(與直接映像相同)。但Cache中每頁的標記為11位,表示它現(xiàn)在所映像的主存頁號(2×1024頁之一)。圖5-16全相聯(lián)映像的Cache組織采用全相聯(lián)映像方式,其優(yōu)點是映像關系比較靈活,主存各頁可以映像到Cache任一頁,因此只要淘汰Cache中某一頁的內(nèi)容,即可調(diào)入任一主存頁的內(nèi)容。一旦不能直接從主存地址碼中提取Cache頁號,需將主存標記與Cache標記逐個比較,直接找到標記符合的頁為止(訪問Cache命中),或是全部比較后仍無符合的標記(訪問Cache失敗)。因此,全相聯(lián)映像方式的速度很慢,失掉高速緩存的作用,因而不太實用。

3)組相聯(lián)映像

一種折衷方案稱為組相聯(lián)映像方式,如圖5-17所示。主存與Cache都分組,主存中一個組內(nèi)的頁數(shù)與Cache中的分組數(shù)相同。如果Cache只有一組,就是全相聯(lián)映像方式。如果Cache分為16組,每組只有一頁,就是直接映像方式。可以根據(jù)設計目標選取一個折衷方案,如圖所示,主存分為256組,每組8頁;Cache分為8組,每組2頁。圖5-17組相聯(lián)映像的Cache組織映像規(guī)律是:主存中的各頁與Cache的組號有固定的映像關系,但可以映像到對應的Cache組中的任何一頁。主存第0、8、16、……頁等,共256頁,均映像于Cache第0組,但可以映像于該組內(nèi)Cache的第0頁或第1頁。主存的第1、9、17、……頁等,均映像于Cache的第1組,但可以映像于該組內(nèi)Cache的第2頁或第3頁。

訪問主存時,給出20位主存地址,它分為四部分。高7位連同1位Cache組內(nèi)頁號共8位,稱為主存頁標記,也就是主存的組號。Cache組號共3位,可選擇8組之一。低9位為頁內(nèi)地址。因此主存地址的低13位給出了Cache地址,即Cache組號、組內(nèi)頁號、頁內(nèi)地址。

Cache每一頁設有8位標記,填寫所復制的主存頁的組號,如果Cache第0頁復制了主存的第8頁(屬第1組)內(nèi)容,則在Cache第0頁的標記中寫入1。訪問主存時,根據(jù)主存地址的中間二段共4位,找到Cache頁,并將該頁標記與主存地址中的主存頁標記進行比較,判斷是否是主存頁的副本,即訪問是否命中。

Cache中每組有若干可供選擇的頁,因而較直接映像方式靈活。每組頁數(shù)有限,因而代價比全相聯(lián)映像方式小。

2.替換算法

當新的主存頁需要調(diào)入Cache存儲器而它的可用位置又被占滿時,就產(chǎn)生了替換算法問題。常用的替換算法有三類。

1)先進先出算法(FIFO)

FIFO算法思想是:按調(diào)入Cache的先后決定淘汰的順序,即在需要更新時,將最先調(diào)入Cache的頁面內(nèi)容予以淘汰。這種方法比較簡單,容易實現(xiàn),系統(tǒng)開銷小,但不一定合理,因為有些內(nèi)容雖然調(diào)入較早,但可能仍需使用。

2)近期最少使用算法(LRU)

LRU算法是把每一組中最近使用少的頁替換出去。這種替換算法需隨時記錄Cache存儲器中各個字塊的使用情況,以便確定哪個字塊是最近使用最少的字塊,LRU替換算法的平均命中率比FIFO算法要高,并且當分組容量加大時,能提高LRU替換算法的命中率,因而使用較多,但這種算法較前一種算法復雜。

3)隨機替換法(RAND)

RAND算法不考慮使用情況,在組內(nèi)隨機選擇一頁來替換。其性能比根據(jù)使用情況的替換算法要差些。多層次Cache存儲器中是將指令和數(shù)據(jù)存放在同一Cache中的。隨著計算機技術的發(fā)展和處理速度的加快,存取數(shù)據(jù)的操作經(jīng)常會與取指令的操作發(fā)生沖突,從而延遲了指令的讀取。發(fā)展的趨勢是將指令Cache和數(shù)據(jù)Cache分開而成為兩個互相獨立的Cache。在給定的Cache總容量的情況下,單一Cache可以有較高的利用率,因而在執(zhí)行不同的程序時,Cache中指令和數(shù)據(jù)所占的比例是不同的,在單一Cache中,指令和數(shù)據(jù)的空間是可以自動調(diào)劑的,為了照顧速度,還是采取將指令Cache和數(shù)據(jù)Cache分開的方案。多層次Cache結構隨著超大規(guī)模集成電路的發(fā)展,近年來新設計的微處理器都將Cache集成在片內(nèi),片內(nèi)Cache的讀取速度要比片外Cache快得多。Pentium微處理器的片內(nèi)包含有8KB數(shù)據(jù)Cache和8?KB指令Cache,Cache行的長度為32?B,采用兩路組相聯(lián)組織。數(shù)據(jù)Cache有兩個端口,分別為兩個ALU交換數(shù)據(jù),每個端口傳送32位數(shù)據(jù),也可以組合成64位數(shù)據(jù),與浮點部件接口相連,4傳送浮點數(shù)。數(shù)據(jù)Cache采取“寫回”策略,即僅當Cache中的數(shù)據(jù)要調(diào)出且被修改過,才需要寫回主存。

指令Cache只讀不寫,其控制比數(shù)據(jù)Cache簡單。在Pentium處理器剛推出時,由于當時的技術限制,片內(nèi)Cache的容量只有8?KB+8?KB,因此命中率比大容量Cache低,于是推出了二級Cache方案:片內(nèi)為第一級Cache(L1)。片外為第二級Cache(L2),容量為256?KB或512?KB,也是采用兩路組相聯(lián)方案。

后來發(fā)展的PentiumMMX處理器的內(nèi)部Cache增大到16?KB+16?KB,PentiumⅡ處理器又發(fā)展為片內(nèi)二級Cache,L1為16KB+16KB,L2為256?KB或512?KB,性能顯著增強。5.5半導體存儲器與CPU的連接5.5.1需要考慮的問題

1.總線驅動在微型機系統(tǒng)中,CPU通過總線與存儲器芯片、I/O接口芯片連接,而CPU的總線驅動能力是有限的,一般是帶一個標準TTL門或20個MOS器件。由于存儲器芯片多為MOS電路,在小型系統(tǒng)中,CPU可直接與存儲器芯片連接,但與大容量的存儲器連接時就應考慮總線的驅動問題。對于單向傳送的地址和控制總線,常采用單向緩沖器(如74LS244,74LS367)或驅動器(如74LS373、Intel8282);對雙向傳送的數(shù)據(jù)總線,必須采用雙向總線驅動器(如74LS245、Intel8286/8287)加以驅動。

2.時序配合

在微機工作過程中,CPU對存儲器的讀/寫操作是最頻繁的基本操作。因此,在考慮存儲器與CPU連接時,必須考慮存儲器芯片的工作速度是否能與CPU的讀/寫時序相匹配。這是關系到整個微機系統(tǒng)工作效率的關鍵問題。

關于存儲器工作速度與CPU讀/寫時序的匹配問題,應從存儲器芯片工作時序和CPU時序兩個方面來考慮。對CPU來說,由于CPU的取指周期和讀/寫操作都有固定的時序,也就決定了對存儲器存取速度的要求。具體來說,CPU在對存儲器進行讀操作時,在CPU發(fā)出地址和讀命令后,存儲器必須在規(guī)定的時間內(nèi)給出有效數(shù)據(jù)(即將讀出數(shù)據(jù)送入數(shù)據(jù)總線);而當CPU對存儲器進行寫操作時,存儲器必須在寫脈沖規(guī)定的時間內(nèi)將數(shù)據(jù)寫入指定的存儲單元,否則就無法保證迅速準確地傳送數(shù)據(jù)。所以,應考慮選擇速度能與CPU相匹配的存儲器芯片。若芯片已選定,則應考慮如何插入等待周期的問題。從存儲器芯片來說,存儲器芯片對輸入信號的時序也是有嚴格要求的,而且不同的存儲器件,其時序要求也不相同。為確保整個微機系統(tǒng)能正常高效地工作,要求給存儲器提供的地址信號和控制信號必須滿足存儲器所規(guī)定的時序參數(shù),其中最重要的參數(shù)是存取時間。存取時間是指存儲器從接收到穩(wěn)定的地址輸入到讀/寫操作完成所需要的時間。具體來說,在存儲器讀周期中就是讀取時間,在寫周期中就是寫入時間。存取時間與存儲器件的制造工藝有關,一般雙極型的器件速度快、功耗大,MOS型器件速度慢但功耗低。

圖5-18所示為SRAM讀周期的時序圖。圖5-18SRAM讀周期的時序圖圖5-19SRAM寫周期時序圖需要指出的是,以上所討論的讀/寫周期時間均指存儲器本身能達到的最小時間要求,當把存儲器連入系統(tǒng)構成一個完整的微機系統(tǒng)時,由于還要涉及到系統(tǒng)總線驅動電路和存儲器接口電路延時等因素,所以,實際的讀出/寫入時間和讀/寫周期的時間要長得多。

除了上述兩問題外,在考慮存儲器與CPU的連接時,還應考慮到存儲器的擴展、地址分配、片選以及數(shù)據(jù)線和控制線與CPU的連接問題等。圖5-208K×8芯片組成8K×16芯片組稱地址線A12~A0實現(xiàn)片內(nèi)尋址,A14~A13實現(xiàn)片間尋址。

當存儲器的單元數(shù)和位數(shù)都需要擴充時,如用8K×8芯片構成32K×16存儲區(qū),則需要4×2個芯片??梢韵葦U充位數(shù),每2個芯片一組,構成4個8K×16芯片組;然后再擴充單元數(shù),將這4個芯片組組合成32K×16存儲區(qū)。圖5-218K×8芯片擴充成32K×8芯片組

3.8086/8088與存儲器連接

8086/8088有20位地址線,其中8

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論