《計算機(jī)系統(tǒng)》-第六章_第1頁
《計算機(jī)系統(tǒng)》-第六章_第2頁
《計算機(jī)系統(tǒng)》-第六章_第3頁
《計算機(jī)系統(tǒng)》-第六章_第4頁
《計算機(jī)系統(tǒng)》-第六章_第5頁
已閱讀5頁,還剩109頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

6.1 主存儲器的構(gòu)成6.1.1主存儲器芯片半導(dǎo)體隨機(jī)訪問存儲器芯片主要有靜態(tài)存儲器(SRAM)和動態(tài)存儲器(DRAM)兩種。靜態(tài)存儲器芯片的工作速度較高,集成度低,單位價格高;動態(tài)存儲器芯片的工作速度比SRAM低,集成度高,單位價格低。所以目前微機(jī)的內(nèi)存條都采用動態(tài)存儲器芯片技術(shù)。1.靜態(tài)MOS存儲器與芯片1)靜態(tài)MOS存儲器T1、T2

兩個反相器交叉耦合構(gòu)成一個基本RS觸發(fā)器,可用于存儲一位二進(jìn)制信息,Q和Q是觸發(fā)

圖6-1NMOS六管靜態(tài)存儲單元器的一對互補(bǔ)輸出。若Q=1,Q=0,則表示存儲的信息為“1”;若Q=0、Q=1,則表示存儲的信息為0。T3、T4

作為負(fù)載管,相當(dāng)于兩個電阻。對該存儲單元進(jìn)行讀寫操作必須使行選線xi

和列選線yj

同時為高,即xi=1,yj=1,此時稱為選中該位。下一頁返回6.1 主存儲器的構(gòu)成(1)寫入。行選線xi(也稱字選線)加高電平,使T5、T6

管導(dǎo)通。列選線yj

加高電平,使V1、V2管導(dǎo)通,位線D與D同I/O線與I/O線接通。①寫“0”:數(shù)據(jù)線I/O=0,I/O=1,使位線D=0,位線D=1。因D=0,通過T5

管傳給Q點,使Q點為低(寫入“0”),T2

管截止。而D通過T6

管給T1

管柵極加高電壓,使T1

管導(dǎo)通,加快Q點為低電平的進(jìn)程。②寫“1”:數(shù)據(jù)線I/O=1,I/O=0,使位線D=1,D=0;T1截止,T2導(dǎo)通,使Q=1、Q=0,寫入“1”。上一頁下一頁返回6.1 主存儲器的構(gòu)成(2)讀出。給行選線xi、列選線yj

加高電平,使T5、T6

和V1、V2

導(dǎo)通。①如果原存信息Q=0,則T1

導(dǎo)通,從位線D將通過T5、T1

到地形成放電回路,有電流經(jīng)D流入T1,使I/O線上有電流流過,經(jīng)放大為“0”信號,表明原存信息為“0”。此時T2

截止,所以D上無電流。②如果原存信息Q=1,則T2

導(dǎo)通,能推出I/O線上有電流流過,代表原存信息為“1”。此時T1

截止,I/O線上無電流。上一頁下一頁返回6.1 主存儲器的構(gòu)成(3)保持。行選線xi

與列選線yj

只要有一個為低電平,即使位線與雙穩(wěn)態(tài)電路隔離,雙穩(wěn)態(tài)電路T1、T2

依靠觸發(fā)器原理交叉反饋,保持原有狀態(tài)不變。例如,原有Q=1→T2

導(dǎo)通→Q=0→T1

截止→Q=1,循環(huán)下去。只要VDD電源不斷,信息便能保持不變。2)靜態(tài)存儲器2114芯片舉例MOTOROLAMCM2114是一種曾廣泛使用的小容量SRAM芯片,容量為1K×4位,即1024個地址單元,每個地址單元有4個存儲位,能存儲4位二進(jìn)制數(shù)據(jù)。圖6-2是2114芯片的結(jié)構(gòu)框圖。10根輸入地址A0~A9

分成兩組譯碼。A4~A9

地址線加到行地址譯碼器上,譯出64行選線x0~x63。A0~A3

地址線加到列地址譯碼器上,譯出16列選線y0~y15。行、列交叉譯出1024個單元,每個單元有4個存儲位,如圖6-3所示。上一頁返回下一頁6.1 主存儲器的構(gòu)成當(dāng)片選信號CS=0且讀寫信號WE=0時,數(shù)據(jù)輸入三態(tài)門打開,4位數(shù)據(jù)線信息寫入譯中的單元中,稱為寫操作。當(dāng)片選信號CS=0且讀寫信號CS=1時,數(shù)據(jù)輸出三態(tài)門打開,譯中單元的4位數(shù)據(jù)送入數(shù)據(jù)線,稱為讀操作。當(dāng)片選信號CS=1時,輸入三態(tài)門與輸出三態(tài)門都關(guān)閉,芯片所有單元與數(shù)據(jù)線隔離,即本芯片不工作。片選信號在存儲器空間擴(kuò)展時要用到。2114芯片為18腳封裝,如圖6-4所示。片選CS,為低電平時選中本芯片。CS寫使能,低電平時寫入,高電平時讀出。地址線為A9~A0,對應(yīng)于1K容量。雙向數(shù)據(jù)線為DO1~DO4,對應(yīng)于每個編址單元的4位,可直接與數(shù)據(jù)總線連接。下一頁返回上一頁6.1 主存儲器的構(gòu)成3)靜態(tài)存儲器讀寫操作時序如圖6-5所示,2114芯片的讀周期參數(shù)解釋如下:(1)tRC:讀周期時間,在此期間地址維持時間不變,是兩次讀出的最小時間間隔。(2)tA:讀出時間,為從地址有效到輸出穩(wěn)定所需的時間,在此期間其他器件可以使用數(shù)據(jù)線上的數(shù)據(jù)。(3)tCO:從片選信號CS有效,到讀出的數(shù)據(jù)在外部數(shù)據(jù)線上穩(wěn)定的時間。

(4)tCX:從片選有效到數(shù)據(jù)有效所需的時間。(5)tOTD:片選無效后輸出數(shù)據(jù)還能維持的時間。(6)tOHA:地址改變后數(shù)據(jù)輸出的維持時間。上一頁下一頁返回6.1 主存儲器的構(gòu)成如圖6-6所示,2114芯片的寫周期參數(shù)解釋如下:(1)tWC:寫周期時間,是兩次寫入操作之間的最小間隔。(2)tAW:在地址有效后,經(jīng)過一段時間tAW,才能向芯片發(fā)出寫命令。(3)tW:寫數(shù)時間,是片選與寫命令同時為低的時間。(4)tWR:寫恢復(fù)時間,為了保證數(shù)據(jù)的可靠寫入,地址有效時間至少應(yīng)滿足:tWC=tAW+tW+tWR。(5)tDTW:寫信號有效到輸出變?yōu)槿龖B(tài)的時間。(6)tDW:數(shù)據(jù)有效時間,是輸入數(shù)據(jù)至少應(yīng)維持的時間。(7)tDH:寫信號撤銷后數(shù)據(jù)保持時間。2114芯片的讀/寫操作時間早期為450ns,即tRC

與tWC

的時間為450ns。目前市場上2114芯片的讀/寫操作時間最短為100ns。上一頁下一頁返回6.1 主存儲器的構(gòu)成2.動態(tài)MOS存儲器與芯片1)DRAM動態(tài)存儲器動態(tài)存儲器的基本工作原理是利用電容有無存儲電荷來表示存“1”或存“0”。這種存儲方式不需要雙穩(wěn)態(tài)電路,因而可以減少管子數(shù)量,降低芯片功耗,達(dá)到高集成度。其單位面積容量是SRAM的十幾倍或更高。但電容總會漏電,若時間過長,電容上的電荷會漏光,所存信息會丟失。為此,經(jīng)過一定時間后就需要對存儲內(nèi)容重寫一遍,也就是對存“1”的電容重新充電,這種操作稱為刷新。由于這種存儲器需要定期刷新才能保存信息不變,所以稱為動態(tài)存儲器(DRAM)。上一頁下一頁返回6.1 主存儲器的構(gòu)成單管MOS動態(tài)存儲電路如圖6-7所示,圖中電容Cs

用于存儲信息,T為門控管。寫入數(shù)據(jù)時,使字選線為“1”,門控管T導(dǎo)通,來自數(shù)據(jù)線D的信息由位線D存入電容Cs。寫入“1”時,位線為“1”,電容Cs

充電;寫入“0”時,位線為“0”,電容Cs

放電。保持信息時,字線加低電平,T斷開,使電容Cs

沒有放電回路,其電荷可暫存數(shù)毫秒,即維持“1”數(shù)毫秒;無電荷則保持“0”狀態(tài)。讀出數(shù)據(jù)時,使字選線為“1”,門控管T導(dǎo)通。若電容Cs

上有電荷,便會通過位線的分布電容CD

放電,位線上有電流流過,表示讀出信息“1”;若電容Cs

上無電荷,位線上便沒有電流流過,表示讀出信息“0”。讀出“1”信息后,Cs上的電荷因轉(zhuǎn)移到CD

上,已無法維持“1”狀態(tài),即Cs

上已無電荷,原有“1”被破壞,這種現(xiàn)象稱為“破壞性讀出”,所以讀出“1”信息后必須進(jìn)行“恢復(fù)”操作(也稱“再生”操作)。上一頁下一頁返回6.1 主存儲器的構(gòu)成另外,長時間不操作時,Cs也要漏電,導(dǎo)致Cs

上無電荷,即原有的“1”狀態(tài)會自動變?yōu)椤?”狀態(tài),所以要定時對所有單元進(jìn)行“刷新”操作?!盎謴?fù)”操作與“刷新”操作用同一個電路來完成,都是進(jìn)行讀操作。“恢復(fù)”操作是在讀過程中通過恢復(fù)/讀出的放大器同時進(jìn)行的,即讀完了也恢復(fù)完了。而“刷新”操作是定時對所有單元強(qiáng)迫一次循環(huán)讀的過程。如圖6-8所示,一個靈敏恢復(fù)/讀出放大器負(fù)責(zé)n個存儲位的“恢復(fù)”“刷新”和“放大”操作。由于篇幅所限,本書不再解釋電路工作原理。上一頁下一頁返回6.1 主存儲器的構(gòu)成2)DRAM的結(jié)構(gòu)DRAM把地址分成兩次輸入,這樣可減少芯片的管腳數(shù)目,如圖6-9所示。它是一個4M×4位DRAM電路,包含存儲矩陣、地址譯碼器和輸入/輸出電路,同時有刷新控制電路。分時輸入地址由RAS和CAS兩個時鐘信號來控制。首先令RAS=0,輸入行地址11位到行地址鎖存器中,再令CAS=0,輸入列地址11位到列地址鎖存器中。行譯碼器能譯出2048行,列譯碼器能譯出2048列,行、列交叉共對應(yīng)4M個單元,每個單元4位,總?cè)萘渴?M×4位。當(dāng)WE=1時進(jìn)行讀操作,被輸入地址代碼選中單元中的數(shù)據(jù)經(jīng)過輸出鎖存器、輸出三態(tài)緩沖器到達(dá)數(shù)據(jù)輸出端。當(dāng)WE=0時進(jìn)行寫操作,加到數(shù)據(jù)輸入端的數(shù)據(jù)經(jīng)過輸入緩沖器寫入由輸入地址指定的單元中。OE為輸出控制信號。上一頁下一頁返回6.1 主存儲器的構(gòu)成6.1.2 主存儲器容量的擴(kuò)展存儲器與中央處理器的連接包括地址線的連接、數(shù)據(jù)線的連接和控制線的連接。當(dāng)使用一片ROM或RAM器件不能滿足存儲容量的要求時,就需要將若干片ROM或RAM組合起來,形成一個容量更大的存儲器。用存儲器芯片構(gòu)成一個存儲器系統(tǒng)的方法主要有位擴(kuò)展方法、字?jǐn)U展方法和字位擴(kuò)展方法。1.位擴(kuò)展方法每片ROM或RAM中的字?jǐn)?shù)(單元數(shù)目)已經(jīng)夠用,而每個字(每個單元)的位數(shù)不夠用時,采用此方法,將多片ROM或RAM并聯(lián)起來組合成位數(shù)更多的存儲器,即達(dá)到計算機(jī)字的寬度,如8位寬、16位寬、32位寬和64位寬等。上一頁下一頁返回6.1 主存儲器的構(gòu)成RAM的位擴(kuò)展連接方法如圖6-10所示。圖中用8片1M×1位的RAM接成一個1M×8位的RAM。把8片存儲器的所有地址線、WE、CS并聯(lián)起來,每片的I/O數(shù)據(jù)端分別連接到數(shù)據(jù)總線上的相應(yīng)位,就構(gòu)成了8位寬的存儲器,每次與CPU交換數(shù)據(jù)時,按8位進(jìn)行。ROM芯片只有讀信號,沒有WE讀寫信號,其他連接與RAM相同。上一頁下一頁返回6.1 主存儲器的構(gòu)成2.字?jǐn)U展方法每片存儲器的數(shù)據(jù)位數(shù)夠用而字?jǐn)?shù)(單元數(shù))不夠用時,可將多片存儲器芯片接成一個字?jǐn)?shù)(單元數(shù))更多的存儲器。按照當(dāng)前的建筑技術(shù),要建一個可容納1萬戶的1000層的大樓,是不可能的。為了住下1萬戶,可以采用當(dāng)前最好技術(shù)建10棟100層大樓,每棟大樓容納1千戶,這是目前的建筑水平能辦到的。存儲器芯片擴(kuò)容也是同樣的道理。假定目前最大內(nèi)存容量為256M個單元,但受技術(shù)限制不能用一片芯片實現(xiàn),而是用8片32M個單元的芯片來組成,32M芯片是目前的技術(shù)能做到的。256M存儲器芯片需要28根地址線,編成228

個不同的地址,才能尋址到228個不同的存儲單元。然而32M芯片上只有25根地址線,地址范圍是0~225,無法區(qū)分8片存儲器中同樣的地址單元。256M所需地址線比32M地址線多出3根。上一頁下一頁返回6.1 主存儲器的構(gòu)成上面例子中的10棟大樓,每棟樓給住戶編號000~999,當(dāng)要尋找518號住戶時,每棟樓都有518號,為了區(qū)別唯一性,必須給每棟樓編樓號0~9,再結(jié)合樓內(nèi)編號000~999,就可對1萬名住戶進(jìn)行唯一尋找了。它的尋找地址為:樓號+樓內(nèi)門牌號。8片32M芯片構(gòu)成的256M存儲空間與樓的編號一樣,32M片存儲器內(nèi)25根地址線可編000…0(25個)~11…1(25個)個單元數(shù)(字?jǐn)?shù)),其中任一地址8個芯片中都有,為區(qū)別唯一性,必須給每個32M芯片編片號000~111(二進(jìn)制),再結(jié)合片內(nèi)編號0~225,就可對256M個單元進(jìn)行唯一尋址了,即:片號+片內(nèi)地址。片號用多余的三根地址線來表示,通常用A27

A26

A25高三位來編片號,A24

A23…A0

為片內(nèi)地址。A27

A26

A25=000表示第0片,A27

A26

A25=001表示第1片,…,依此類推,A27

A26

A25=111表示第7片。上一頁下一頁返回6.1 主存儲器的構(gòu)成圖6-11所示是用字?jǐn)U展方法將8片32M×8位的RAM接成一個256M×8位RAM的例子。A27A26A25接3-8譯碼器可譯出8個片選信號,分別控制8片RAM的CS端,因3-8譯碼器的輸出端只能有一個為低電平,8片芯片也就只能有一個被選中工作,其他不工作。例當(dāng)A27A26A25=001時,只有y1=0,y1

接在1號芯片的CS端,所以此時只有1號芯片RAM工作,其他芯片上的CS都為高,不工作,達(dá)到唯一性。前面介紹的片選信號CS就是用來擴(kuò)展存儲器設(shè)置的控制信號。上一頁下一頁返回6.1 主存儲器的構(gòu)成3.字位擴(kuò)展方法如果一片RAM或ROM的位數(shù)和字?jǐn)?shù)都不夠用,就需要同時采用位擴(kuò)展方法和字?jǐn)U展方法。例6-1 用16M×4位的存儲器芯片,組成64M×8位的存儲器空間系統(tǒng)。問(1)組成64M×8位的存儲器需要多少根地址線?(2)已有16M×4位芯片有多少根地址線?(3)共需多少片16M×4位芯片,能組成64M×8位存儲器?(4)畫出連線圖。解(1)需要26根地址線。(2)有24根地址線(3)共需8片。(4)連線圖如圖6-12所示。上一頁返回6.2 存儲系統(tǒng)組織CPU執(zhí)行指令和加工的數(shù)據(jù)都由主存儲器提供,因主存儲器采用DRAM(動態(tài)存儲器)技術(shù)構(gòu)成,這造成主存儲器與CPU有速度差異,為了縮小這個速度差異,人們應(yīng)用了很多組織技術(shù)。另外,主存儲器容量較小,如何存放更多程序等問題,也是本節(jié)要研究和學(xué)習(xí)的內(nèi)容。6.2.1 雙端口存儲器與并行主存系統(tǒng)1.雙端口存儲器常規(guī)存儲器是單端口存儲器,每次只接收一個地址,訪問一個編址單元,從中讀取或存入一個字。圖6-13所示的雙端口存儲器具有兩個彼此獨立的讀/寫口,每個讀/寫口都有一套獨立的地址寄存器和譯碼電路,可以并行地獨立工作。它們的存儲體是一個,與兩個獨立的存儲器不同。兩個讀/寫口可以同時訪問同一區(qū)間、同一單元。下一頁返回6.2 存儲系統(tǒng)組織這種存儲器采用觸發(fā)器方式構(gòu)成存儲位,控制復(fù)雜,硬件開銷大,所以只作成小容量,放在CPU內(nèi),作為運算器中的通用寄存器組,它能快速提供給ALU雙操作數(shù)運算,或快速實現(xiàn)寄存器間的信息傳送。由于位集成度低,開銷大,不能用它作主存儲器。2.并行主存系統(tǒng)存儲器系統(tǒng)的速度跟不上CPU的速度,造成數(shù)據(jù)提供的瓶頸問題,為解決瓶頸問題,人們提出了并行主

1)單體多字同時存取方式存系統(tǒng),即把存儲器重新組織一下,其方法有兩種。

一般的存儲器,一次只能對其中一個存儲單元(一個字)進(jìn)行讀寫,稱為“單體單字”存儲器。“單體”是指只有一套地址寄存器,“多字”是指有多個容量相同的存儲模塊。如圖6-14所示,一個地址同時對N個存儲模塊的相同單元進(jìn)行讀寫。

上一頁下一頁返回6.2 存儲系統(tǒng)組織2)多體交叉存取方式多體交叉存儲器由多個相互獨立、容量相同的存儲模塊構(gòu)成,如圖6-15所示。每個存儲體都有各自的地址寄存器、數(shù)據(jù)線路,各自以等同方式與CPU傳送數(shù)據(jù)。CPU的主存的低兩位地址用于選擇對應(yīng)的存儲體,整個地址采用交叉編址方法,在一個存儲周期內(nèi)分時訪問每個存儲體。當(dāng)連續(xù)訪問的存儲單元位于不同的存儲體中時,每隔1/4周期就可啟動一個存儲體,一個存儲周期內(nèi)4個存儲體重疊進(jìn)行工作。例如,如果依次訪問的數(shù)據(jù)字分別存儲在地址為0、5、10、15的存儲單元中,則它們分別在存儲體M0、M1、M2、M3

中。這樣對每個存儲體來講,存取周期沒有變,而對CPU來說則可以在一個存取周期內(nèi)連續(xù)訪問4個存儲體。如果依次存取的數(shù)據(jù)都在一個存儲體中,則一個存取周期內(nèi)只能存取一個數(shù)據(jù),這與普通單體單字存儲器沒有區(qū)別。它與單體多字同時存取方式的區(qū)別是一個存儲周期可以給4次地址(分別給M0、M1、M2、M3),而單體多字同時存取方式只能給1次。上一頁下一頁返回6.2 存儲系統(tǒng)組織6.2.2 高速緩沖存儲器盡管采用并行存儲系統(tǒng),但主存的速度仍然跟不上CPU的處理速度,所以要采用高速緩沖存儲器技術(shù)解決CPU與主存之間的速度匹配問題。主存與CPU速度相差10倍左右。CPU運行程序是一條指令一條指令執(zhí)行的,指令的地址往往是連續(xù)的,這就是說CPU對內(nèi)存的訪問在一段時間內(nèi)往往集中于主存的某個局部上,特別是碰到循環(huán)程序、反復(fù)調(diào)用子程序、遞歸程序時更是如此,這就是程序執(zhí)行的局部性原理。如果把程序中CPU正在執(zhí)行的活躍部分存入一個比主存速度高10倍左右的快速存儲器中,使CPU訪問內(nèi)存的操作大多數(shù)在這個快速存儲器中進(jìn)行,那就會使訪問內(nèi)存的速度大大加快。這個快速存儲器就是高速緩沖存儲器(CacheMemory)。上一頁下一頁返回6.2 存儲系統(tǒng)組織當(dāng)今高速緩沖存儲器采用六管MOS靜態(tài)RAM,即SRAM技術(shù)來構(gòu)成,因它用RS觸發(fā)器原理完成“0”和“1”的存取,所以與CPU同用一個時鐘工作,其速度當(dāng)然與CPU一致。但它造價高、集成度低、功耗大,不能大量制造,只能用于小容量高速緩沖存儲器。CPU按照主存地址編址讀取指令和數(shù)據(jù),在訪問主存之前CPU先訪問高速緩沖存儲器,判斷該指令和數(shù)據(jù)是否在Cache中,如果在Cache內(nèi),則為“命中”,直接對Cache進(jìn)行操作,不再訪問主存;不在,則為“不命中”,此時要訪問主存,速度就會降下來。上一頁下一頁返回6.2 存儲系統(tǒng)組織在“命中”中若是讀操作,就直接對Cache的相應(yīng)單元進(jìn)行高速的讀;若是寫操作,有兩種方案:①Cache單元和主存單元同時寫,稱為寫直達(dá)法(writethrough);(2)只更新Cache單元并加標(biāo)記,當(dāng)該整塊從Cache中移出時,再更新相對應(yīng)的主存單元,使Cache與主存保持一致。上一頁下一頁返回6.2 存儲系統(tǒng)組織1.直接映像的Cache方式一個主存塊只能映像到Cache中的唯一一個指定塊的地址映像方式稱為直接映像(DirectMapping)。假設(shè)某機(jī)主存容量為1MB,Cache為4KB,按256字節(jié)大小劃分為一塊,那么主存劃分為4096塊,主存塊地址長度為12位,Cache將劃分為16塊,Cache塊地址長度為4位,主存與Cache的塊內(nèi)地址都為8位。如圖6-16(b)所示,主存按Cache大小劃分成28=256個區(qū),每個區(qū)都是16塊,每個區(qū)的第0塊只能裝入Cache中的第0塊,每個區(qū)的第1塊只能入Cache中的第1塊……依此類推,每個區(qū)的第15塊只能放入Cache中的第15塊中。這樣主存的12位塊地址,又可再分為最高8位代表區(qū)地址,中間4位為區(qū)內(nèi)塊號,它對應(yīng)Cache的塊地址。上一頁下一頁返回6.2 存儲系統(tǒng)組織主存地址如何轉(zhuǎn)換到Cache地址的關(guān)鍵是建立一個塊表(即Cache信息標(biāo)志表),如圖6-16(a)所示,塊表共有16個單元行,每個單元行存放主存的相應(yīng)塊是否在Cache中的信息。例如,塊表第0行,按直接映像方式,第i區(qū)的第0塊若在Cache中,則塊表第0行存放第i區(qū)的區(qū)號;若第j區(qū)的第1塊在Cache中,則塊表第1行存放第j區(qū)的區(qū)號,依此類推,i可以等于j。也就是說塊表中第k行單元存放的區(qū)號,表明主存該區(qū)內(nèi)的第k塊已調(diào)入Cache第k塊中。地址變換方法如圖6-16(a)所示,CPU給出1M內(nèi)存的20位地址,先按中間4位地址(表示區(qū)內(nèi)塊號地址)查找塊表,塊表的行數(shù)等于Cache塊數(shù)(本例中共有16行),找到對應(yīng)行。塊表中每行裝有區(qū)號,把表中對應(yīng)行的區(qū)號取出與主存地址的區(qū)號比較,如果相等,則命中(即本區(qū)的第k塊在Cache中),此時把主存區(qū)內(nèi)塊號與塊內(nèi)地址相拼形成Cache地址,按Cache地址存取相應(yīng)單元內(nèi)容。如果失敗則轉(zhuǎn)失敗處理。上一頁下一頁返回6.2 存儲系統(tǒng)組織直接映像方式的優(yōu)點是地址變換方法的硬件實現(xiàn)簡單,特別是塊表可采用靜態(tài)存儲器構(gòu)成,另外Cache地址可從主存地址中直接提取生成。它的缺點是不太靈活,Cache的存儲空間得不到充分利用。例如,需將主存第1區(qū)第0塊和第254區(qū)第0塊同時復(fù)制到Cache中,按規(guī)定它們只能映像到Cache中第0塊,即使Cache其他塊空閑,也只能有一個塊調(diào)入Cache中,另一塊不能調(diào)入,只好兩塊數(shù)據(jù)輪流調(diào)入/調(diào)出Cache,這導(dǎo)致效率降低。上一頁下一頁返回6.2 存儲系統(tǒng)組織例6-2 設(shè)一個Cache中有8個塊,訪問主存進(jìn)行連續(xù)讀操作的塊地址序列為1110110、1111010、1110110、1111010、1110000、1100100、1110000、1110010。求每次訪問主存后Cache塊表的變換情況,設(shè)初始Cache為空。上一頁下一頁返回6.2 存儲系統(tǒng)組織解 Cache中有8個塊,因此訪問內(nèi)存塊地址的低3位作為Cache的塊號,高4位地址為主存區(qū)號。塊表變化情況如圖6-17所示。第一次訪問1110110時,對應(yīng)Cache塊為空,調(diào)入該塊并把1110區(qū)號寫入塊表第6行中。第二次訪問1111010時,對應(yīng)Cache塊為空,調(diào)入該塊并把1110區(qū)號寫入塊表第2行中。第三次訪問1110110時,Cache塊表第6行中存放的區(qū)號1110與主存區(qū)號一致,表示命中,即該塊在Cache中,直接讀取Cache,不訪問主存。第四次訪問1111010時,查塊表區(qū)號命中。第五次訪問1110000時,對應(yīng)Cache塊為空,調(diào)入該塊并把1110區(qū)號寫入塊表第0行中。第六次訪問1100100時,對應(yīng)Cache塊為空,調(diào)入該塊并把1100區(qū)號寫入塊表第4行中。第七次訪問1110000時,查塊表區(qū)號命中。第八次訪問1110010時,查塊表第2行,此時塊表第2行中存放的區(qū)號為1111,與1110相比較不一致,失敗,失敗后的處理為調(diào)出原有1111010塊,調(diào)入1110010塊,并把1110區(qū)號寫入塊表第2行中,此過程稱為替換。上一頁下一頁返回6.2 存儲系統(tǒng)組織例6-3設(shè)有一個Cache的容量為8K字,每個塊為32字,求:(1)該Cache可容納多少個塊?(2)如果主存的容量是128K字,則有多少個塊?(3)主存的地址有多少位?Cache地址有多少位?(4)進(jìn)行直接映像時,存儲器的地址分成哪幾段?各段分別有多少位?解(1)Cache的容量為8K字,每塊為32字,則Cache中有23×210/25=28=256(塊)。(2)主存中有27×210/25=212=4096(塊)。(3)主存地址按字計算有17位,Cache地址有13位。(4)存儲器的地址分成三段:區(qū)號、塊號、塊內(nèi)字地址。區(qū)號的長度為主存地址長度與Cache地址長度之差,即17?13=4(位),這4位作為區(qū)號放在塊表中(調(diào)入時)。塊號的長度為Cache的塊個數(shù),需用8位表示。塊內(nèi)字地址長度為5位,因為塊大小為32字。上一頁下一頁返回6.2 存儲系統(tǒng)組織2.全相聯(lián)映像內(nèi)存中的每一塊可映像到Cache中的任何塊稱為全相聯(lián)映像,如圖6-18

所示。其工作方式為只要Cache中有空閑塊,主存就可調(diào)入,直到Cache裝滿后才有沖突。全相聯(lián)映像的地址變換方式如圖6-19所示。主存地址分為兩段:塊號和塊內(nèi)地址。按照主存塊號與塊表中主存塊號標(biāo)志區(qū)進(jìn)行比較(此比較是逐一比較),若有相等的,則從塊表中取出Cache塊號與塊內(nèi)地址拼接形成Cache地址;若全部比較后沒有相等的,則需要淘汰某塊,調(diào)入此塊。全相聯(lián)映像方式中塊表由兩部分內(nèi)容構(gòu)成,第一部分為主存塊號標(biāo)志區(qū),用來存放主存塊號,第二部分為Cache塊號區(qū),用來存放Cache塊號。此塊表由相聯(lián)存儲器構(gòu)成。上一頁下一頁返回6.2 存儲系統(tǒng)組織全相聯(lián)方式在Cache中的塊全部裝滿后才會出現(xiàn)塊沖突,而且可以靈活地進(jìn)行塊的分配,所以塊沖突的概率低,Cache的利用率高。但全相聯(lián)需要一個復(fù)雜硬件實現(xiàn)替換策略,而且塊表必須采用價格昂貴的相聯(lián)存儲器(集成度低,不能作大),所以全相聯(lián)方式一般用于容量比較小的Cache中。它的另一個缺點是速度比較慢。上一頁下一頁返回6.2 存儲系統(tǒng)組織3.組相聯(lián)映像組相聯(lián)映像指的是將存儲空間分成若干組,一組內(nèi)再分成若干塊,組與組之間采用直接映像,組內(nèi)塊與塊之間采用全相聯(lián)映像。它是前兩種方式的融合。如圖6-20所示,主存也按Cache的容量分區(qū),每個區(qū)又分成若干個組,每個組包含若干個塊,Cache也進(jìn)行同樣的分組。本例中主存為1MB,Cache為4KB,塊大小為256B,Cache分成4個組,每組分為4塊;主存分為256區(qū),每區(qū)分成4組,每組分為4個塊。映像規(guī)則為主存每個區(qū)中的第0號組只能直接映像到Cache中的第0組,依此類推,每區(qū)中的第3組只能直接映像到Cache中的第3組;組內(nèi)各塊采用全相聯(lián)映像,即主存中某組內(nèi)4塊的任何一塊,可映像到對應(yīng)Cache組內(nèi)4塊中的任一塊。例如主存中第0區(qū)第0組的第2塊,可映像到Cache中第0組內(nèi)的任何一塊。上一頁下一頁返回6.2 存儲系統(tǒng)組織組相聯(lián)映像的地址變換方法如圖6-21所示。主存地址分成4段,高字段是區(qū)號,然后是組號,第三段是組內(nèi)塊號,用于確定該塊是組中第幾塊,低字段是塊內(nèi)地址段。Cache地址由三部分組成:組號、組內(nèi)塊號和塊內(nèi)地址。本例中,當(dāng)CPU給出主存地址時:①根據(jù)主存地址中的組號,查找到塊表16個單元中的4個單元(一塊一個單元,一組中有4塊,對應(yīng)4個單元);②將塊表中這4個單元的內(nèi)容與主存8位區(qū)號和2位組內(nèi)塊號進(jìn)行相聯(lián)比較,若相等則命中;③把塊表命中單元的Cache組內(nèi)塊號放入Cache地址中的組內(nèi)塊號,再拼上組號及塊內(nèi)地址就形成了Cache地址,若不相等,則轉(zhuǎn)失效處理,進(jìn)入替換算法,把主存塊調(diào)入Cache中,同時修改塊表內(nèi)容。上一頁下一頁返回6.2 存儲系統(tǒng)組織在組相聯(lián)方式中,若每組只有一塊,其將成為直接映像方式。若總共只有一組,其將成為全相聯(lián)映像方式。組相聯(lián)映像是直接映像和全相聯(lián)映像的一種折中,其優(yōu)缺點也介于兩者之間,其地址變換機(jī)構(gòu)比全相聯(lián)映像簡單,Cache利用率和命中率又比直接映像高??偨Y(jié):在實際中小容量Cache采用全相聯(lián)映像,此時地址轉(zhuǎn)換機(jī)構(gòu)硬件開銷能夠容忍,速度影響小,并且Cache利用率高。大容量Cache采用直接映像,以提高轉(zhuǎn)換速度,減少硬件開銷,另外Cache塊可做大一些,命中率不會降低太多。中容量Cache可采用組相聯(lián)映像,其優(yōu)、缺點介于兩者之間。早期奔騰80386采用組相聯(lián)映像,它的Cache達(dá)到8KB。上一頁下一頁返回6.2 存儲系統(tǒng)組織Cache的結(jié)構(gòu)原理如圖6-22所示。6.2.3

替換策略及更新策略當(dāng)Cache已裝滿,而執(zhí)行的程序不在Cache中,又要把一塊內(nèi)存調(diào)入Cache里時,就產(chǎn)生淘汰Cache中的哪一塊的問題。在直接映像方式下,直接淘汰對應(yīng)塊,無須算法決定,因為它們是一一對應(yīng)的。在全相聯(lián)和組相聯(lián)映像方式下,主存中的塊可寫入Cache中的若干位置,這就需要一個算法來確定替換掉Cache中的哪一塊。常用替換算法有:(1)先進(jìn)先出算法(FirstInFirstOut,F(xiàn)IFO)。這種算法是對進(jìn)入Cache的塊按先后順序排隊,需要替換時,先淘汰最早進(jìn)入的塊。這種算法簡單,易于實現(xiàn),因程序一般多為順序執(zhí)行,有其合理性。但它不符合訪存局部性原理,因為最早調(diào)入的存儲信息可能是以后還要用到的,或者經(jīng)常要用到的。上一頁下一頁返回6.2 存儲系統(tǒng)組織(2)最近最少使用算法(LeastRecentlyUsed,LRU)。為Cache的各塊建立一個LRU目錄,按某種方法記錄它們的調(diào)用情況,當(dāng)需要替換時,將最近一段時間內(nèi)使用最少的塊內(nèi)容予以替換。顯然,這是按調(diào)用頻繁程度決定淘汰順序的,比較合理,它使Cache的訪問命中率較高,因而使用較多。但它較FIFO算法復(fù)雜一些,系統(tǒng)開銷稍大。當(dāng)前在Cache中的程序執(zhí)行寫操作時,會出現(xiàn)Cache與主存對應(yīng)塊的內(nèi)容不一致的情況,這就產(chǎn)生了更新策略問題:(1)寫直達(dá)法(writethrough),即寫Cache時,同時也寫主存。這種方法使寫訪問的時間為主存的訪問時間,影響CPU速度。但在塊替換時,可直接扔掉,因Cache與主存塊始終保持內(nèi)容一致。(2)寫回法(writeback),即寫Cache時不寫主存,而當(dāng)Cache數(shù)據(jù)被替換出去時才寫回主存。這種方式不在快速寫入Cache中插入慢速的寫主存操作,可以保持程序運行的快速性。下一節(jié)“虛擬存儲器”也涉及替換策略及更新策略,因其與本節(jié)內(nèi)容一致,故不再講解。上一頁下一頁返回6.2 存儲系統(tǒng)組織6.2.4 虛擬存儲器虛擬存儲器主要用來解決計算機(jī)中主存容量不足的問題,同時要求有主存的操作速度。所有計算機(jī)都遇到主存容量不夠的問題,例如,在微機(jī)中Windows2000操作系統(tǒng)本身有兩百多兆容量,而內(nèi)存條只有256MB容量,當(dāng)內(nèi)存全部裝入OS后,OfficeWord和Photoshop大程序就無法再裝入內(nèi)存運行,在計算機(jī)中只有裝入內(nèi)存的程序才能由CPU取出執(zhí)行,它不會到硬盤中取程序運行,即硬盤中的程序是CPU無法執(zhí)行的程序,所以按照上面的假設(shè)Word和Photoshop裝不進(jìn)內(nèi)存中,也就無法執(zhí)行了。上一頁下一頁返回6.2 存儲系統(tǒng)組織解決的辦法是采用虛擬存儲技術(shù),它能把整個硬盤空間全部當(dāng)成內(nèi)存使用,通過操作系統(tǒng)的存儲管理模塊,只把當(dāng)前要運行的一小段程序調(diào)入內(nèi)存中,大部分不馬上運行的程序留在硬盤中,這樣內(nèi)存中就可放入多個用戶程序或多個任務(wù)程序,也就解決了上面的問題。虛擬存儲器也是利用程序訪問局部性原理,一個程序雖然很長,但單位時間內(nèi)是集中在某個區(qū)域中執(zhí)行的。當(dāng)CPU執(zhí)行的程序不在主存中時,由操作系統(tǒng)把所需的一個程序從硬盤調(diào)進(jìn)主存。上一頁下一頁返回6.2 存儲系統(tǒng)組織在虛擬存儲器中把用戶編寫程序的地址叫“虛擬地址”(也稱“邏輯地址”),而裝入主存的地址稱為“實際地址”(也叫“物理地址”)。一般來說,虛擬地址的位數(shù)遠(yuǎn)大于物理地址的位數(shù)。程序運行時,將程序由硬盤裝入主存供CPU執(zhí)行,就必須進(jìn)行虛地址到實地址的變換。根據(jù)虛地址變換到實地址的方法不同,可將虛擬存儲器的管理方式分成頁式、段式和段頁式三種虛擬存儲器。目前CPU已將有關(guān)的存儲管理硬件集成在CPU芯片之內(nèi),支持操作系統(tǒng)選用上述三種方式之一。上一頁下一頁返回6.2 存儲系統(tǒng)組織1.頁式虛擬存儲器頁式虛擬存儲器是把虛擬存儲空間和實際存儲空間(主存空間)等分成固定容量的頁,各虛擬頁可裝入主存中不同的實際頁面位置。主存中的這個頁面存放位置稱為頁框架(pageframe)。一個頁一般為1KB、2KB、4KB~64KB。在頁式虛擬存儲器中,程序中的邏輯地址由基號、虛頁號和頁內(nèi)地址三部分組成,實際地址分為頁號和頁內(nèi)地址兩部分,地址變換機(jī)構(gòu)將虛頁號轉(zhuǎn)換成主存的實際頁號?;柺遣僮飨到y(tǒng)給每個程序產(chǎn)生的地址附加的地址字段,以便區(qū)分不同程序的地址空間。在任一時刻,每個虛擬地址都對應(yīng)一個實際地址,這個實際地址可能在內(nèi)存中,也可能在外存中。這種把存儲空間按頁分配的存儲管理方式稱為頁式管理。頁式管理的關(guān)鍵用硬件構(gòu)成一個頁表,頁表長度等于該程序的虛頁個數(shù),頁表的每一行包括主存頁號、頁裝入位和訪問方式等信息。上一頁下一頁返回6.2 存儲系統(tǒng)組織虛頁號對應(yīng)于該頁在頁表中的行號,頁的大小是固定的,因此不在頁表中表示。頁表是虛擬頁號(或稱邏輯頁號)與實際頁號的映像表,它類似Cache管理。在頁式地址轉(zhuǎn)換過程中,首先根據(jù)基號查找頁基址表,頁基址表一般是CPU中的專門寄存器組,其中每一行代表一個運行的程序的頁表信息,包括頁表起始地址和頁表長度。從頁基址表中查出頁表的起始地址,然后用虛頁號在頁表中查找實頁號,同時判斷該頁是否裝入內(nèi)存。如果該頁已裝入內(nèi)存,則從頁表中取出實頁號,與頁內(nèi)地址拼接在一起構(gòu)成物理地址。例6-4在一個采用頁式管理的虛擬存儲器中,假設(shè)某程序地址空間由16個頁面組成,而主存由8個頁面組成,用戶程序的第0頁裝到內(nèi)存的第2個頁框架,第1頁裝到內(nèi)存的第6個頁框架,第2頁裝到內(nèi)存的第7個頁框架,第3頁~第15頁沒有裝入內(nèi)存,仍駐留在外存中,如圖6-23所示。它的地址變換方法如圖6-24所示。上一頁下一頁返回6.2 存儲系統(tǒng)組織解

本例根據(jù)虛擬地址基號查找頁基址表對應(yīng)行,從頁基址表對應(yīng)行中找到本程序的頁表起始地址(頁表通常占用一部分內(nèi)存空間),這個起始地址由操作系統(tǒng)事先分配好。本例中頁表包含16行,一行表示一個虛頁的信息,第0行中存放的主存頁號為2,裝入位為1(表示第0號虛頁已裝入內(nèi)存,放在內(nèi)存的第2頁中);第1行中存放的主存頁號為6,裝入位為1;第2行中存放的主存頁號為7,裝入位為1;第3行中裝入位為0,表示第3號虛頁未裝入主存,第4號虛頁~第15號虛頁都未裝入主存。頁表行數(shù)由虛頁個數(shù)決定。地址變換時以虛頁號為頁表地址,在頁表對應(yīng)行中先查找裝入位,若為“1”,則把本行的主存頁號取出,放入實地址高位,再拼接虛地址中的頁內(nèi)地址就得到實地址,去訪問主存;若為“0”,則表示本虛頁不在主存中,轉(zhuǎn)失頁處理,由操作系統(tǒng)負(fù)責(zé)從硬盤中調(diào)入該頁。上一頁下一頁返回6.2 存儲系統(tǒng)組織虛頁的替換策略及更新策略與前面介紹的一致,它適合虛擬存儲器。對頁式虛擬存儲器的管理稱為頁式管理,這種方式的優(yōu)、缺點在后面介紹。例6-5 對于一個有32位程序地址空間,頁面容量為2KB,主存容量為8MB的存儲系統(tǒng),問:(1)虛頁號字段有多少位?頁表將有多少行?(2)頁表的每一行有多少位?頁表的容量有多少字節(jié)?解(1)因為每頁的容量為2KB=211字節(jié),所以頁內(nèi)地址段為11位,虛頁號字段為32?11=21(位),頁表的長度為221=2M(行)。(2)因為主存的容量為8MB=223字節(jié),主存中頁框架的數(shù)量有223/211=212(個),即頁表中主存頁號字段是12位長,再加上裝入位和訪問方式等其他信息,頁表中每一行將至少為16位,若按16位計算,則每一行需2字節(jié),該頁表的容量為2M×2=4MB。上一頁下一頁返回6.2 存儲系統(tǒng)組織2.段式虛擬存儲器把輔存上的程序按段的大小裝入主存的方式稱為段式管理,采用段式管理的虛擬存儲器稱為段式虛擬存儲器。操作系統(tǒng)把大程序按邏輯功能分成若干段,也叫按模塊化分段,每個運行的程序只能訪問分配給該程序的段對應(yīng)的主存空間,每個程序都以段內(nèi)地址訪問存儲器。操作系統(tǒng)形成的虛擬地址(也叫邏輯地址)由基號、段號和段內(nèi)地址三部分組成。它的地址變換機(jī)構(gòu)如圖6-25所示?;柺遣僮飨到y(tǒng)為每個用戶或任務(wù)分配的一個標(biāo)識號,段號是一個用戶或一個任務(wù)按程序的模塊數(shù)分成的若干段,段內(nèi)地址為用戶編寫的某模塊程序內(nèi)的邏輯地址,它從0開始。上一頁下一頁返回6.2 存儲系統(tǒng)組織段基址表每個用戶或任務(wù)占用一行信息,是CPU中的專門寄存器組,它指出一個用戶的段表起始地址及該用戶的段表長度。段表中包括段基址、裝入位和段長等信息。段號是查找段表所用的序號,一個段號對應(yīng)段表相應(yīng)行的信息,段基址中存放該段在內(nèi)存中的起始地址(由OS分配),裝入位表示該段是否已裝入主存,段長是該段的長度,用于檢查訪問地址是否越界。段表還包括訪問方式字段,如只讀、可寫和只能執(zhí)行等,以提供段的訪問方式保護(hù)。從虛擬地址(邏輯地址)變換到實地址(內(nèi)存地址)的過程為,首先根據(jù)基號查找段基址表,從表中取出段表起始地址(段表也存在內(nèi)存中),然后與段號相加,得到該段在段表中對應(yīng)的行地址,從段表中取出該段在內(nèi)存中的起始地址,同時判斷該段是否裝入內(nèi)存,如果該段已裝入內(nèi)存,則把段起始地址與段內(nèi)地址相加,構(gòu)成被訪問數(shù)據(jù)的物理地址;如果未裝入則轉(zhuǎn)失效處理,采用替換策略裝入新段。段表信息也存放在一個段中,常駐內(nèi)存。這種方式的優(yōu)、缺點在后面介紹。上一頁下一頁返回6.2 存儲系統(tǒng)組織3.段頁式虛擬存儲器段式管理和頁式管理各有其優(yōu)點和缺點。段頁式管理是兩者的結(jié)合,它將存儲空間按邏輯模塊分成段,每段又分成若干個頁。這種訪/存通過一個段表和若干個頁表進(jìn)行。段的長度必須是頁長的整數(shù)倍,段的起點必須是某一頁的起點。在段頁式虛擬存儲器中,虛擬地址被分為基號、段號、頁號和頁內(nèi)地址4個字段。在地址映像時,首先根據(jù)基號查找段基址表,從表中查出段表的起始地址,然后用段號從段表中查找該段的頁表的起始地址,之后根據(jù)段內(nèi)頁號從頁表中查找該頁在內(nèi)存中的起始地址,即實頁號。同時判斷該段是否裝入內(nèi)存,如果裝入,再查頁表,判斷該頁是否裝入,該頁若裝入,生成實地址,若沒有裝入,轉(zhuǎn)缺頁處理,如果該段沒有裝入,則轉(zhuǎn)缺段處理,不再查頁表。實頁號與頁內(nèi)地址拼接在一起構(gòu)成被訪問數(shù)據(jù)的物理地址。這種方法如圖6-26所示。上一頁下一頁返回6.2 存儲系統(tǒng)組織頁式管理的頁式虛擬存儲器的優(yōu)點是它為面向內(nèi)存的物理結(jié)構(gòu),虛、實頁面大小都相等,便于主存與外存間的調(diào)進(jìn)/調(diào)出,不要求程序頁面有連續(xù)的內(nèi)存空間,碎片浪費最大以頁為單元(碎片:一個程序長度mod頁長度=X,頁長度?X=一個碎片),這使存儲空間利用率高;其缺點是內(nèi)存較大,而頁面劃分又過小時,則頁表太大,頁表本身占用的存儲空間將很大,頁表也要分頁管理,工作效率將降低,另一缺點是一個程序被分配在不連續(xù)的內(nèi)存空間中,這將難以實現(xiàn)存儲保護(hù)和存儲共享。段式管理的段式虛擬存儲器的優(yōu)點是用戶地址空間連續(xù),段表占用存儲器空間數(shù)量少,容易實現(xiàn)存儲保護(hù);其缺點是隨著程序不斷地被調(diào)進(jìn)/調(diào)出,存儲空間中會出現(xiàn)很多大塊碎片,需要操作系統(tǒng)不斷調(diào)整內(nèi)存空間安排,浪費空間和時間,另一缺點是整個段必須一起調(diào)入或調(diào)出,這使段長不能大于內(nèi)存容量。上一頁下一頁返回6.2 存儲系統(tǒng)組織段頁式管理的段頁式虛擬存儲器的優(yōu)點是前二者優(yōu)點的結(jié)合,它同時允許段長大于內(nèi)存空間;其缺點是要經(jīng)過三次讀內(nèi)存才能完成虛實地址的變換,第一次讀段表得到頁表首地址,第二次讀頁表得到實頁號,第三次才形成實地址讀得數(shù)據(jù),這降低了地址變換的速度。為解決此問題可采用相聯(lián)存儲器,在CPU內(nèi)建立快表,使變換加快。快表是把段表與頁表的部分內(nèi)容復(fù)制到CPU中,大型機(jī)采用段頁式管理,高檔Pentium微機(jī)也采用段頁式存儲管理。早期的微機(jī)采用段式管理,早期的小型機(jī)采用頁式管理。上一頁返回6.3 主存儲器的芯片技術(shù)從20世紀(jì)70年代早期起主存儲器的基本器件采用DRAM芯片,直到現(xiàn)在DRAM結(jié)構(gòu)沒有發(fā)生顯著的變化,為了使主存儲器的工作速度與CPU的工作速度不要相差太大,人們在近十幾年采取一些新技術(shù),研制出幾代DRAM芯片。6.3.1 快速頁式動態(tài)存儲器(FPMDRAM)頁式訪問是一種提高存儲器訪問速度的重要措施。在這種存儲器芯片中,如果前后順序訪問的存儲單元處于存儲單元陣列的同一行(稱為頁面)中時,就不需要重復(fù)地向存儲器輸入行地址,而只輸入新的列地址即可。也就是說,存儲器的下一次訪問可以利用上一次訪問的行地址,這樣就可以減少兩次輸入地址帶來的訪問延遲。在頁面訪問方式下,只要在輸入了行地址之后保持RAS信號不變,在CAS(列信號允許)的控制下,輸入不同的列地址就可以對一行中的不同數(shù)據(jù)進(jìn)行快速連續(xù)的訪問,其訪問速度比之前的DRAM提高2~3倍。下一頁返回6.3 主存儲器的芯片技術(shù)6.3.2 增強(qiáng)數(shù)據(jù)輸出DRAM(EDRAM)EDRAM與FPMDRAM相似,但在DRAM芯片中集成了一小塊SRAMCache(Cache通常由SRAM構(gòu)成),提高了數(shù)據(jù)傳輸速率。如圖6-27所示,4M位的EDRAM內(nèi)部有一個SRAMCache,它存儲上一行讀入的所有內(nèi)容,一行共有2048位,或512個4位的塊。比較器保存最近一次行地址值,如果下一次讀取同一行,不再進(jìn)行行譯碼,直接給出列地址,從SRAMCache中快速存取即可。EDRAM其他性能改進(jìn)特點:刷新操作能夠與Cache讀操作并行進(jìn)行,它使芯片由于刷新而浪費的時間減到最小,同時從Cache到輸出端口與I/O模塊到讀出放大器的寫路徑采用兩條線路,使寫操作完成時能夠同時進(jìn)行Cache的下一個數(shù)據(jù)讀操作。上一頁下一頁返回6.3 主存儲器的芯片技術(shù)6.3.3同步動態(tài)存儲器之前的DRAM在時間控制上屬于異步動態(tài)存儲器,CPU向主存發(fā)出地址和控制信息后,只能以簡單的等待方式等待DRAM內(nèi)部操作的延遲時間,數(shù)據(jù)對主存操作完成后,主存通知CPU,CPU才能繼續(xù)運行。CPU利用率降低(性能降低)。SDRAM存儲器與CPU共用一個系統(tǒng)時鐘控制,SDRAM存儲器把CPU或其他主設(shè)備發(fā)出的地址控制信號和數(shù)據(jù)鎖存在一組鎖存器中,SDRAM進(jìn)行內(nèi)部操作,幾個時鐘周期后處理完畢讀或?qū)懖僮?,CPU在計時幾個時鐘周期后響應(yīng)主存儲器,這期間CPU或主設(shè)備不再等待,而是處理其他事情。CPU不用等待通知信號,自身知道什么時候處理完,所以SDRAM可實現(xiàn)CPU的無等待狀態(tài)。上一頁下一頁返回6.3 主存儲器的芯片技術(shù)例如,一個在輸入地址后有10ns讀出延遲的DRAM,在周期為2ns的時鐘控制下工作,如果DRAM是異步工作的,則CPU要等待8ns,但是如果DRAM是SDRAM同步的,則CPU可把地址放入鎖存器中,在存儲器進(jìn)行讀操作期間去完成其他操作。然后,當(dāng)CPU計時到5個時鐘周期以后,它所要的數(shù)據(jù)已經(jīng)從存儲器中讀出。另外SDRAM采用雙存儲體內(nèi)部結(jié)構(gòu)以提高并行性,采用猝發(fā)計數(shù)器以加快地址建立時間。SDRAM是為Pentium機(jī)而設(shè)計的,在Pentium和PentiumⅡ時代它作為高端產(chǎn)品廣泛采用,在PentiumⅢ和PentiumⅣ時代出現(xiàn)了DDRSDRAM和RRRAM產(chǎn)品后,它又成為低端產(chǎn)品。上一頁下一頁返回6.3 主存儲器的芯片技術(shù)6.3.4雙速率同步動態(tài)存儲器雙速率同步動態(tài)存儲器(DoubleDataRateSDRAM,DDRSDRAM)在SDRAM的基礎(chǔ)上,采用延時鎖定技術(shù)提供數(shù)據(jù)時鐘信號對數(shù)據(jù)進(jìn)行精確定位,在時鐘脈沖的上升和下降沿都可傳輸數(shù)據(jù),這樣就在不提高時鐘頻率的情況下,使數(shù)據(jù)傳輸率提高了一倍。例如,在133MHz系統(tǒng)時鐘頻率下DDRSDRAM可提供133MHz×2×8Byte=2.1GB/S的數(shù)據(jù)傳輸率,這就是DDR266的含義,實際時鐘頻率是133MHz,由于一個脈沖可傳兩次數(shù)據(jù),故有133×2=266。DDR333的實際工作頻率僅為166MHz,DDR400的實際工作頻率為200MHz。上一頁下一頁返回6.3 主存儲器的芯片技術(shù)單通道DDR400是2003年市場上運行頻率最高的DDR內(nèi)存,例如KingMax公司出品的DDR400內(nèi)存條采用存取時間為5ns的TinyBGA封裝內(nèi)存顆粒、六層電路板,CL值(列地址有效時間)設(shè)定為2.5ns,工作電壓為2.5V。由于單通道限制了帶寬的提高速度,所以出現(xiàn)了雙通道DDR,其工作原理是通過兩條內(nèi)存并行運作以獲得雙倍帶寬。另外DDRⅡ是下一代DDR技術(shù),它的標(biāo)準(zhǔn)制定已完成,與前面DDR主要的不同為每個時鐘周期能進(jìn)行4次數(shù)據(jù)傳輸,其工作電壓為1.8V,封裝技術(shù)也不同。上一頁下一頁返回6.3 主存儲器的芯片技術(shù)6.3.5 磁性隨機(jī)訪問存儲器磁性隨機(jī)訪問存儲器(MagneticRandomAccessMemory,MRAM)與現(xiàn)在的DRAM在工作原理和結(jié)構(gòu)上完全不同,它是一種非易失性的磁性隨機(jī)存儲器,“非易失性”是指關(guān)掉電源后仍可以保持存儲的數(shù)據(jù)不會丟失,因為存儲材料采用的是磁性介質(zhì)。MRAM不需要DRAM中的預(yù)充電時間(TimeofRowPrecharge,TRP),也不需要刷新周期時間,不采用電容存貯電荷,所以它的啟動速度非??欤垡騉S常用部分已在內(nèi)存中,本身有效時間提高(不需要刷新),速度得以加快]。MRAM的運作原理與硬盤類似,但無須磁頭讀寫,它通過布線中流動的電流產(chǎn)生磁場,數(shù)據(jù)以磁化方向為基礎(chǔ)來存儲“0”和“1”信號,如圖6-28所示。上一頁下一頁返回6.3 主存儲器的芯片技術(shù)MRAM的數(shù)據(jù)存儲是永久性的,磁性數(shù)據(jù)只有受到外界磁場的影響時才會改變。MRAM遇到的一些技術(shù)問題有:①切換磁場(調(diào)轉(zhuǎn)磁化方向所需要的磁場),要切換磁場降低到一定程度,這樣可以降低電流值,減少功耗。②隧穿磁阻(TunnelingMagnetoResistance,TMR),這項技術(shù)的發(fā)明使MRAM的讀取寫入時間大大縮短,同時提高了集成度,此技術(shù)代替了GMR(現(xiàn)硬盤普遍使用的高敏度巨磁阻),使MRAM的一些問題迎刃而解。(3)磁阻,IBM公司研究的MTJ架構(gòu)的MRAM大幅度提高了磁阻,降低了阻抗。MRAM的磁介質(zhì)與硬盤有所差異,它的磁密度要大得多,也相當(dāng)薄,因此產(chǎn)生的自感和阻抗要小得多,這也是MRAM的速度遠(yuǎn)快于硬盤的重要原因之一。MRAM在“速度、非易失性、功耗、成本、壽命、體積”六個方面與DRAM比較后,只有“成本、壽命”兩方面與DRAM持平,而其他方面都占優(yōu),所以摩托羅拉、IBM以及三星、日立和松下都在投入巨額研發(fā)經(jīng)費進(jìn)行MRAM的研究。它的應(yīng)用范圍不僅局限于PC,而是所有電子產(chǎn)品以及航天工業(yè)。上一頁下一頁返回6.3 主存儲器的芯片技術(shù)2004年,摩托羅拉實驗室研制出16KB×16的MRAM,其讀寫周期小于50ns,在3V電壓下讀寫功耗為24mW。據(jù)IMB公司透露,最初產(chǎn)品的MRAM容量為256MB,讀寫周期在10ns以內(nèi),功耗小于8mW。據(jù)專家預(yù)測,它有望在未來的幾年取代目前的DRAM而成為新一代存儲器標(biāo)準(zhǔn)。MRAM能在很大程度上提高電子設(shè)備(包括電腦、手機(jī)、游戲機(jī)等)的功能,MRAM能夠儲存更多的信息,具有更快的訪問速度,耗電量也更低。同時由于MRAM斷電后不丟失數(shù)據(jù),故它比現(xiàn)在使用的RAM消耗小,且能夠延長手機(jī)、可移動設(shè)備、移動電腦和其他使用電池的設(shè)備的壽命。2007年,飛思卡爾半導(dǎo)體(Freescale,原摩托羅拉半導(dǎo)體分部,后分拆獨立)實現(xiàn)了磁性隨機(jī)存取內(nèi)存(MRAM)的商業(yè)化。上一頁返回6.4 三級存儲體系三級存儲體系由高速緩沖存儲器Cache,主存儲器MM及屬于外存儲器的磁盤、磁帶、光盤和移動盤組成,如圖6-29所示。Cache是最接近CPU的存儲器,屬于第一級,其存取速度最快,容量最小,而單位成本最高。輔存是第三級存儲器,其速度最慢但容量最大,單位成本最低。主存位于兩者之間,為第二級。CPU訪問存儲體系時,首先訪問第一級高速緩沖存儲器,若訪問內(nèi)容不在,則訪問第二級主存,若還不在,最后訪問第三級輔存。這種三級體系的存儲器對CPU來說,既有高速的Cache,又有主存速度的大容量輔存,其使計算機(jī)體系達(dá)到最佳性價比。下一頁返回6.4 三級存儲體系Cache-MM層次間的地址變換和替換算法等功能由硬件完成,以滿足地址高速變換的要求,而MM-VM層次卻是以O(shè)S為主,輔以硬件聯(lián)合完成,因為VM不直接面對CPU,變換速度不像Cache-MM層次那么重要,使用軟件可大幅度地降低成本。Cache-MM層次信息的傳送以塊為單位(幾十到幾K字節(jié)),而MM-VM層次的傳送以段或頁為單位,傳送量在幾K到十幾K之間多級存儲體系為解決存儲器容量、速度、價格之間的矛盾提供了一條行之有效的辦法,其主要依據(jù)是“程序執(zhí)行的局部性”原理。上一頁返回6.5 磁盤存儲設(shè)備6.5.1磁記錄原理與記錄方式目前外存儲器中使用比較廣泛的是磁表面存儲器。它是靠磁記錄介質(zhì)的兩個剩磁狀態(tài)來記錄信息的。磁盤、磁帶、磁卡都是常見的磁表面存儲器,磁表面存儲器具有如下一些共同特點:①存儲密度高,記錄容量大,價格低;②改變寫入電流即可改變剩磁狀態(tài),因而記錄介質(zhì)可以重復(fù)使用;③利用剩磁來記錄信息,因而無須能量維持信息,掉電后信息不丟失,并且記錄信息可長時間保存;④利用電磁感應(yīng)獲得讀出信號,因而屬非破壞性讀出,讀出時不需再生。磁表面存儲器的缺點是:①只能順序存取,不能隨機(jī)存??;②讀寫時要靠機(jī)械運動產(chǎn)生感應(yīng)電動勢,因此存取速度較低;③由于靠磁頭讀寫,它的可靠性比主存差,必須加校驗碼。下一頁返回6.5 磁盤存儲設(shè)備磁表面存儲器是利用一層不到1μm厚的表面磁介質(zhì)作為記錄信息的媒體,以磁介質(zhì)的剩磁現(xiàn)象來存儲信息的。磁表面記錄和讀取信息的設(shè)備是一個磁頭,磁頭上開有一條很小的縫隙,在磁頭線圈上通入不同形式的電流,磁頭上的磁力線在縫隙處感應(yīng)到磁性表面就可在磁性材料表面施加不同方向的磁場,從而在材料上寫入不同的信息,如圖6-30所示。對于給定的存儲信息,形成不同電流波形以記錄信息的方式稱為記錄方式。不同的電流幅度、相位、頻率形成了不同的記錄方式。磁盤上常用的記錄方式可分為歸零制(RZ)、不歸零制(NRZ)、調(diào)相制(PM)和調(diào)頻制(FM)等多種類型。記錄的信息可以經(jīng)過編碼,也可以不編碼而直接進(jìn)行記錄。下面分別予以介紹。上一頁下一頁返回6.5 磁盤存儲設(shè)備1.歸零制(ReturntoZero,RZ)歸零制的原理是,不論某存儲單元的代碼是“0”還是“1”,在記錄下一個信息之前記錄電流要恢復(fù)到零電流。寫“1”時給磁頭線圈送一個正向脈沖電流,寫“0”時給磁頭線圈送一個負(fù)向脈沖電流。兩個信息位之間,磁頭線圈中電流恢復(fù)為零電流。歸零制由于記錄密度低,抗干擾能力差,早已不使用。其電流圖形如圖6-31所示。2.不歸零制(NotReturntoZero,NRZ)不歸零制有兩種:NRZ0和NRZ1。NRZ0的原理是磁頭線圈上始終有電流,不是正向電流就是反向電流,正向電流代表“1”,反向電流代表“0”。因此它的抗干擾能力較好,它的記錄密度也不高。NRZ1也是磁頭線圈上始終有電流,但凡是寫“1”時,磁頭線圈中的寫入電流要改變一次方向(從負(fù)變?yōu)檎驈恼優(yōu)樨?fù)),故稱見“1”就翻;而記錄“0”時,線圈中電流保持原方向不變。NRZ0的記錄密度不高,已不使用;NRZ1無自同步能力,但記錄密度高,只能用在多磁道并行讀寫的磁帶機(jī)上。其電流圖形如圖6-31所示。上一頁下一頁返回6.5 磁盤存儲設(shè)備3.調(diào)相制(PhaseModulation,PM)調(diào)相制利用電流相位的變化寫“1”或者寫“0”,寫“1”時電流在位置的中心從負(fù)變到正;寫“0”時電流在位置的中心從正變向負(fù)。在連續(xù)記錄兩個或者兩個以上的“1”或“0”時,在位周期起始處也要翻轉(zhuǎn)一次。這種方式的抗干擾能力較強(qiáng),另外讀出信號經(jīng)分離電路可提取自同步定時脈沖,所以具有自同步的能力,磁帶存儲設(shè)備中普遍采用這種記錄方式。其電流圖形如圖6-31所示。4.調(diào)頻制(FrequencyModulation,F(xiàn)M)磁頭線圈寫電流規(guī)則是無論寫“0”還是“1”,或者連續(xù)的“1”/連續(xù)的“0”,兩個數(shù)據(jù)位交界處的電流要改變方向。另外寫“1”時,還要在位置中心改變一次方向。因此寫“1”電流的頻率是寫“0”電流頻率的2倍,故又稱雙頻制。調(diào)頻制在各信息位邊界上寫入電流有一次變化,因而必有讀出信號,該信號就可以用作同步/選通信號,故調(diào)頻制具有同步能力。早期單密度軟盤采用此記錄格式。其電流圖形如圖6-31

所示。上一頁下一頁返回6.5 磁盤存儲設(shè)備5.改進(jìn)調(diào)頻制(ModifiedFrequencyModulation,MFM)它在調(diào)頻制的基礎(chǔ)上進(jìn)行了改進(jìn),其規(guī)則是只有連續(xù)寫兩個或者兩個以上“0”時,才在位周期的起始位置處翻轉(zhuǎn)一次?!?”與“1”和“1”與“0”的交界處不用再改變。寫“1”時中間處改變一次。其電流圖形如圖6-31所示。MFM比FM磁化翻轉(zhuǎn)少,可提高記錄密度,故稱為雙密度。MFM的寫入電路如圖6-32所示。上一頁下一頁返回6.5 磁盤存儲設(shè)備6.游程長度受限碼(RunLengthLimitedCode)近年來在高密度磁盤中主要采用RLL碼記錄方式。它規(guī)定寫入電流在某個方向(正向或負(fù)向)最多只能持續(xù)3位(例如NRZ1中,要限制數(shù)據(jù)里只能有連續(xù)的兩個“0”,多于兩個“0”就不是RLL碼了),最少也必須持續(xù)一位(例如NRZ1中,連續(xù)兩個“1”之間的距離要保持1位。FM中兩個“1”之間沒有保持1位長度,不是RLL碼)。電流在某個方向持續(xù)的位數(shù)稱為“游程”,游程長度受限,就稱為RLL碼。MFM的游程長度也受限,寫入電流在某個方向最多持續(xù)2位(當(dāng)記錄“101”時),最少持續(xù)一位(當(dāng)記錄連續(xù)的“0”或連續(xù)的“1”時)。雖然MFM符合RLL碼規(guī)則,但它的記錄密度不如NRZ1高,而NRZ1又不符合RLL碼規(guī)則,所以為了采用NRZ1記錄方式以提高記錄密度,又有自同步能力,就產(chǎn)生了群碼制(GroupCodedRecording,GCR)編碼格式,這種格式消除了數(shù)據(jù)中出現(xiàn)連續(xù)3個及以上“0”的情況。下面以GCR(4,5)碼為例加以說明。上一頁下一頁返回6.5 磁盤存儲設(shè)備GCR(4,5)是將寫入信息按4位分組,4位一組的數(shù)據(jù)列可有24=16種不同的組合,將這16種4位數(shù)據(jù)用16種5位數(shù)據(jù)一一對應(yīng)。5位二進(jìn)制數(shù)據(jù)可有25=32種編碼,從32種編碼中選用那些中間最多出現(xiàn)兩個連續(xù)的“0”,兩邊最多只有一個“0”的16個編碼,形成表6-1所示的對應(yīng)編碼表。寫入時先將信息按4位分組,然后按其對應(yīng)的5位代碼用NRZ1制寫入,讀出時再將讀出的5位代碼還原為原始的4位信息。采用NRZ1方式使記錄密度提高,引入GCR又消除了連續(xù)兩個以上“0”出現(xiàn)的情況,具備了自同步能力,又降低了對讀放電路帶寬的要求,這使GCR在磁盤機(jī)、數(shù)據(jù)流式磁帶機(jī)中獲得大量應(yīng)用。上一頁下一頁返回6.5 磁盤存儲設(shè)備6.5.2 磁盤存儲設(shè)備磁盤存儲設(shè)備具有能長期存儲信息的非易失性的特點,而且具有存儲容量大、單位容量的價格低、可重復(fù)讀寫等優(yōu)點,它在巨型機(jī)、大型機(jī)、服務(wù)器和微機(jī)中得到廣泛應(yīng)用。目前它是不可替代的外部存儲器,其缺點是存取速度慢。1.磁盤存儲設(shè)備的主要技術(shù)指標(biāo)磁盤存儲設(shè)備的主要技術(shù)指標(biāo)有存儲密度、存儲容量、平均訪問時間、數(shù)據(jù)傳輸率和磁盤緩存容量。(1)存儲密度。存儲密度又分為道密度和位密度。道密度是指沿磁盤半徑方向單位長度上的磁道數(shù),單位為道/mm或道/英寸。位密度是指沿磁盤圓周方向單位長度上所能記錄的二進(jìn)制位數(shù),單位為位/mm或位/英寸。要注意的是,對于每條不同半徑的磁道,它們的圓周長是不一樣的,而每條磁道記錄的信息位數(shù)是相同的,所以磁盤內(nèi)圈磁道的位密度高,而外圈位密度低。最內(nèi)圈的位密度才代表磁盤真正的位密度水平。上一頁下一頁返回6.5 磁盤存儲設(shè)備(2)存儲容量。存儲容量是指一個磁盤裝置所能存儲的二進(jìn)制信息總量。磁盤的容量分為格式化容量和非格式化容量兩個指標(biāo)。格式化容量指按照某種特定的記錄格式所能存儲的數(shù)據(jù)總量,是用戶真正使用的容量。非格式化容量是磁盤表面可以利用的磁化單元總數(shù)。目前軟盤單片容量為1.44MB;硬盤單碟片已發(fā)展到60GB,由二碟片組成的120GB硬盤將成為微機(jī)市場主流。非格式化容量=位密度×最內(nèi)圈磁道周長×磁道總數(shù)格式化容量=扇區(qū)容量×每道

溫馨提示

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

最新文檔

評論

0/150

提交評論