計算機(jī)組成原理第三章課件(白中英版).ppt
《計算機(jī)組成原理第三章課件(白中英版).ppt》由會員分享,可在線閱讀,更多相關(guān)《計算機(jī)組成原理第三章課件(白中英版).ppt(103頁珍藏版)》請在裝配圖網(wǎng)上搜索。
3.1 存儲器概述 3.2 隨機(jī)讀寫存儲器 3.3 只讀存儲器和閃速存儲器 3.4 高速存儲器 3.5 cache存儲器 3.6 虛擬存儲器 3.7 存儲保護(hù),第3章 存儲系統(tǒng),3.1 存儲器概述,存儲器的兩大功能: 1、 存儲(寫入Write) 2、 取出(讀出Read) 三項基本要求: 1、大容量 2、高速度 3、低成本,3.1 存儲器概述,概念 1、基本存儲單元:存儲一位(bit)二進(jìn)制代碼的存儲元件稱為基本存儲單元(或存儲元) 2、存儲單元:主存中最小可編址的單位,是CPU對主存可訪問操作的最小單位。 3、存儲器:多個存儲單元按一定規(guī)則組成一個整體。,3.1.1 存儲器的分類,1. 按存儲介質(zhì)分類 2. 按存取方式分類 3. 按存儲器的讀寫功能分類 4. 按信息的可保存性分類 5. 按在計算機(jī)系統(tǒng)中的作用分類,3.1.1 存儲器分類,半導(dǎo)體存儲器:用半導(dǎo)體器件組成的存儲器 磁表面存儲器:用磁性材料做成的存儲器,★ 按存儲介質(zhì)分,★ 按存儲器的讀寫功能分:ROM,RAM ★ 按信息的可保存性分:非永久記憶,永久記憶 ★ 按在計算機(jī)系統(tǒng)中的作用分: 主存、輔存、高速緩存、控制存儲器,3.1.2 存儲器的分級結(jié)構(gòu),示意圖,虛擬存儲器,,寄存器 微處理器內(nèi)部的存儲單元 高速緩存(Cache) 完全用硬件實(shí)現(xiàn)主存儲器的速度提高 主存儲器 存放當(dāng)前運(yùn)行程序和數(shù)據(jù),采用半導(dǎo)體存儲器構(gòu)成 輔助存儲器 磁記錄或光記錄方式 磁盤或光盤形式存放可讀可寫或只讀內(nèi)容 以外設(shè)方式連接和訪問,3.1.3 主存儲器的技術(shù)指標(biāo),存儲容量 主存存儲容量:以字節(jié)B(Byte)為基本單位 半導(dǎo)體存儲器芯片:以位b (Bit)為基本單位 存儲容量以210=1024規(guī)律表達(dá)KB,MB,GB和TB 廠商常以103=1000規(guī)律表達(dá)KB,MB,GB和TB 存取時間(訪問時間) 發(fā)出讀/寫命令到數(shù)據(jù)傳輸操作完成所經(jīng)歷的時間 存取周期 兩次存儲器訪問所允許的最小時間間隔 存取周期大于等于存取時間 存儲器帶寬(數(shù)據(jù)傳輸速率) 單位時間里存儲器所存取的信息量,3.2 隨機(jī)讀寫存儲器,SRAM(靜態(tài)RAM:Static RAM) 以觸發(fā)器為基本存儲單元 不需要額外的刷新電路 速度快,但集成度低,功耗和價格較高 DRAM(動態(tài)RAM:Dynamic RAM) 以單個MOS管為基本存儲單元 要不斷進(jìn)行刷新(Refresh)操作 集成度高、價格低、功耗小,但速度較SRAM慢,3.2.1 SRAM存儲器,6個開關(guān)管組成一個存儲元,存儲一位信息 N(=1/4/8/16/32)個存儲元組成一個存儲單元 存儲器芯片的大量存儲單元構(gòu)成存儲體 存儲器芯片結(jié)構(gòu): 存儲單元數(shù)每個存儲單元的數(shù)據(jù)位數(shù) =2MN=芯片的存儲容量 M=芯片地址線的個數(shù) N=數(shù)據(jù)線的個數(shù),SRAM的控制信號,片選(CS*或CE*) 片選有效,才可以對芯片進(jìn)行讀/寫操作 無效時,數(shù)據(jù)引腳呈現(xiàn)高阻狀態(tài),并可降低功耗 讀控制(OE*) 芯片被選中有效,數(shù)據(jù)輸出到數(shù)據(jù)引腳 對應(yīng)存儲器讀MEMR* 寫控制(WE*) 芯片被選中的前提下,若有效,將數(shù)據(jù)寫入 對應(yīng)存儲器寫MEMW*,SRAM 2114,靜態(tài)MOS存儲器,基本存儲元—6管靜態(tài)MOS存儲元 A、電路圖: 由兩個MOS反相器交叉耦合而成的雙穩(wěn)態(tài)觸發(fā)器。,,基本存儲元—6管雙向選擇MOS存儲元 在縱向一列上的6管存儲元共用一對Y選擇控制管T6 、T7 ,這樣存儲體管子增加不多,但是雙向地址譯碼選擇,因為對Y選擇線選中的一列只是一對控制管接通,只有X選擇線也被選中,該位才被重合選中。,靜態(tài)MOS存儲器,基本存儲元—6管靜態(tài)MOS存儲元 B、存儲元的工作原理 ①寫操作。在字線上加一個正電壓的字脈沖,使T2 、T3 管導(dǎo)通。若要寫“0”,無論該位存儲元電路原存何種狀態(tài),只需使寫“0”的位線BS0 電壓降為地電位(加負(fù)電壓的位脈沖),經(jīng)導(dǎo)通的T2 管,迫使節(jié)點(diǎn)A的電位等于地電位,就能使T1 管截止而T0 管導(dǎo)通。寫入1,只需使寫1的位線BS1 降為地電位,經(jīng)導(dǎo)通的T3 管傳給節(jié)點(diǎn)B,迫使T0 管截止而T1 管導(dǎo)通。 寫入過程是字線上的字脈沖和位線上的位脈沖相重合的操作過程。,靜態(tài)MOS存儲器,基本存儲元—6管靜態(tài)MOS存儲元 B、存儲元的工作原理 ②讀操作。 只需字線上加高電位的字脈沖,使T2 、T3 管導(dǎo)通,把節(jié)點(diǎn)A、B分別連到位線。若該位存儲電路原存“0”,節(jié)點(diǎn)A是低電位,經(jīng)一外加負(fù)載而接在位線BS0 上的外加電源,就會產(chǎn)生一個流入BS0 線的小電流(流向節(jié)點(diǎn)A經(jīng)T0 導(dǎo)通管入地)?!?”位線上BS0 就從平時的高電位V下降一個很小的電壓,經(jīng)差動放大器檢測出“0”信號。 若該位原存“1”,就會在“1”位線BS1 中流入電流,在 BS1 位線上產(chǎn)生電壓降,經(jīng)差動放大器檢測出讀“1”信號。 讀出過程中,位線變成了讀出線。讀取信息不影響觸發(fā)器原來狀態(tài),故讀出是非破壞性的讀出。 ③若字線不加正脈沖,說明此存儲元沒有選中,T2 ,T3 管截止,A、B結(jié)點(diǎn)與位/讀出線隔離,存儲元存儲并保存原存信息。,靜態(tài)MOS存儲器,RAM結(jié)構(gòu)與地址譯碼—字結(jié)構(gòu)或單譯碼方式 (1)結(jié)構(gòu): (A) 存儲容量M=W行b列; (B) 陣列的每一行對應(yīng)一個字,有一根公用的字選擇線W; (C) 每一列對應(yīng)字線中的一位,有兩根公用的位線BS0 與BS1 。 (D) 存儲器的地址不分組,只用一組地址譯碼器。 (2)字結(jié)構(gòu)是2度存儲器:只需使用具有兩個功能端的基本存儲電路:字線和位線 (3)優(yōu)點(diǎn):結(jié)構(gòu)簡單,速度快:適用于小容量M (4)缺點(diǎn):外圍電路多、成本昂貴,結(jié)構(gòu)不合理結(jié)構(gòu)。,靜態(tài)MOS存儲器,靜態(tài)MOS存儲器,RAM結(jié)構(gòu)與地址譯碼—位結(jié)構(gòu)或雙譯碼方式 (1) 結(jié)構(gòu): (A) 容量:N(字)b(位)的RAM,把每個字的同一位組織在一個存儲片上,每片是N1;再把b 片并列連接,組成一個Nb的存儲體,就構(gòu)成一個位結(jié)構(gòu)的存儲器。 (B) 在每一個N1存儲片中,字?jǐn)?shù)N被當(dāng)作基本存儲電路的個數(shù)。若把N=2n 個基本存儲電路排列成Nx行與Ny列的存儲陣列,把CPU送來的n位選擇地址按行和列兩個方向劃分成nx 和ny 兩組,經(jīng)行和列方 向譯碼器,分別選擇驅(qū)動行線X與列線Y。 (C) 采用雙譯碼結(jié)構(gòu),可以減少選擇線的數(shù)目。 (2)優(yōu):驅(qū)動電路節(jié)省,結(jié)構(gòu)合理,適用于大容量存儲器。,靜態(tài)MOS存儲器,靜態(tài)MOS存儲器,用靜態(tài)MOS存儲片組成RAM ? 位擴(kuò)展法: 例如:用8K1的RAM存儲芯片,組成8K8位的存儲器,按8位=m1的關(guān)系來確定位擴(kuò)展所需要的芯片數(shù)。共需8片,每一芯片的數(shù)據(jù)線分別接到數(shù)據(jù)總線的相應(yīng)位。 ? 字?jǐn)U展法: 字?jǐn)U展:字向擴(kuò)展而位數(shù)不變,將芯片的地址線、數(shù)據(jù)線、讀寫控制線并聯(lián),而由片選信號來區(qū)分各片地址。 例如:用16k8位的芯片采用字?jǐn)U展法組成64k8位的存儲器:4個芯片。 地址分配:地址總線低位地址A0-A13與各芯片的14位地址端相連,而高兩位的地址A14、A15經(jīng)2:4譯碼器和4個芯片的片選端CE相連。,靜態(tài)MOS存儲器,用靜態(tài)MOS存儲片組成RAM 字位同時擴(kuò)展法: 一個存儲器的容量假定為MN位,若使用lk位的芯片(l<M,k<N)需要在字向和位向同時進(jìn)行擴(kuò)展。此時共需要(M/l)(N/k)個存儲器芯片。 其中,M/l表示把MN的空間分成(M/l)個部分(稱為頁或區(qū)),每頁(N/k)個芯片。 地址分配: (A)用log2 l位表示低位地址:用來選擇訪問頁內(nèi)的l個字 (B) 用log2(M/l)位表示高位地址:用來經(jīng)片選譯碼器產(chǎn)生片選信號。,CPU對存儲器進(jìn)行讀/寫操作,首先由地址總線給出地址信號,然后要對存儲器發(fā)出讀操作或?qū)懖僮鞯目刂菩盘?,最后在?shù)據(jù)總線上進(jìn)行信息交流。所以,存儲器與CPU之間,要完成: ① 地址線的連接; ② 數(shù)據(jù)線的連接; ③ 控制線的連接。 存儲器芯片的容量是有限的,為了滿足實(shí)際存儲器的容量要求,需要對存儲器進(jìn)行擴(kuò)展。,存儲器與CPU連接,位擴(kuò)展法:只加長每個存儲單元的字長,而不增加存儲單元的數(shù)量,演示,,字?jǐn)U展法:僅增加存儲單元的數(shù)量,而各單元的位數(shù)不變,演示,字位同時擴(kuò)展法:既增加存儲單元的數(shù)量,也加長各單元的位數(shù),存儲器系統(tǒng)的存儲容量: MN位 使用芯片的存儲容量:LK位(L≤M,K≤N) 需要存儲器芯片個數(shù):(MN)/(LK) [例]: 利用2K4位的存儲芯片,組成16K8位的存儲器,共需要多少塊芯片? [解]:(16K8)/(2K4)=82=16 即:共需16塊芯片。(既需要位擴(kuò)展,又需要字?jǐn)U展) [又例]:利用1K4位的存儲芯片,組成2K8位的存儲器,共需要芯片數(shù): (2K8)/(1K4)= 22=4,字、位同時擴(kuò)展法:,計算機(jī)是一個有嚴(yán)格時序控制要求的機(jī)器。與CPU連接時,CPU的控制信號與存儲器的讀、寫周期之間的配合問題是非常重要的。 注意: 讀出時間與讀周期是兩個不同的概念。 讀出時間:是指從CPU給出有效地址開始,到外部數(shù)據(jù)總線上穩(wěn)定地出現(xiàn)所讀出的數(shù)據(jù)信息所經(jīng)歷的時間。 讀周期時間:則是指對存儲片進(jìn)行兩次連續(xù)讀操作時所必須間隔的時間。 顯然總有:讀周期 ≥ 讀出時間,存儲器的讀、寫周期,靜態(tài) RAM (2114) 讀 時序,,,靜態(tài) RAM (2114) 寫 時序,,,動態(tài)MOS存儲器,4管動態(tài)M0S存儲元電路 在6管靜態(tài)存儲元電路中,信息是存于T0,T1管的柵極電容上,由負(fù)載管T4 ,T5 經(jīng)外電源給T0 ,T1 管柵極電容不斷地進(jìn)行充電以補(bǔ)充電容電荷。維持原有信息所需要的電荷量。 由于MOS的柵極電阻很高,柵極電容經(jīng)柵漏(或柵源)極間的泄漏電流很小,在一定的時間內(nèi)(如2ms),存儲的信息電荷可以維持住。為了減少管子以提高集成度??梢匀サ粞a(bǔ)充電荷的負(fù)載管和電源,變成4管動態(tài)存儲元:,動態(tài)MOS存儲器,動態(tài)MOS存儲器,4管動態(tài)M0S存儲元電路 ①寫入操作:當(dāng)寫入時,字選擇線加入高電平,打開T2 、T3 控制管,將BS0 ,BS1 上的信息存儲在T0 、T1 管的柵極電容上。當(dāng)T2 、T3 管截止時,靠T0 、T1 管柵極電容的存儲作用,在一定時間內(nèi),(如2ms)可以保留所寫入的信息。 ②讀出操作:當(dāng)讀出時,先給出預(yù)充信號,于是電源就向位線的寄生電容CD 充電,使它們都達(dá)到電源電壓(CD =VD ),當(dāng)字選擇線使T2 、T3 管導(dǎo)通時,存儲的信息通過A、B端向位線輸出。若原存信息為1,則電容C1 上存有電荷,T1 管導(dǎo)通而T0 管截止,因此,位線BS1 的預(yù)充電荷經(jīng)T1 管泄漏,位線BS1 有讀出電流流過。經(jīng)讀出放大電路鑒別輸出。與此同時,BS0 上的預(yù)充電荷CD 可以通過A點(diǎn)向C1 進(jìn)行充電。故讀出過程也是刷新過程。 ③再生操作: “再生”或“刷新”。由于4管存儲元的信息電荷有泄漏,電荷數(shù)不象6管存儲元電路由電源經(jīng)負(fù)載管源源不斷地補(bǔ)充,時間一長就會丟失信息。必須設(shè)法在外界按一定規(guī)律不斷給柵極進(jìn)行充電,按需要補(bǔ)足柵極的信息電荷。,動態(tài)MOS存儲器,4管動態(tài)M0S存儲元電路 刷新過程:在字選擇線上加一個脈沖就能實(shí)現(xiàn)自動刷新。顯然,只要定時給全部存儲元電路執(zhí)行一遍讀操作,而信息不向外輸出,那么就可以實(shí)現(xiàn)動態(tài)存儲器的再生或刷新。,動態(tài)MOS存儲器,單管動態(tài)存儲元: 為了進(jìn)一步縮小存儲器體積,提高集成度,在大容量動態(tài)存儲器中都采用單管動態(tài)存儲元電路。如圖6.20存儲元由T1和CS構(gòu)成。 寫入時,字選擇線加高電平,使T1管導(dǎo)通,寫入信息由數(shù)據(jù)線D(位線)存入電容CS中。 讀出時,首先要對數(shù)據(jù)線上的分布電容CD預(yù)充電,再加入字脈沖,使T1管導(dǎo)通,CS與CD上電荷重新分配以達(dá)到平衡。根據(jù)動態(tài)平衡的電荷數(shù)多少來判斷原存信息是0或1,因此,每次讀出后,存儲內(nèi)容就被破壞。是破壞性讀出,必須采取措施,以便再生原存信息。 動態(tài)MOS隨機(jī)存儲芯片的組成大體與靜態(tài)MOS隨機(jī)芯片相似,由存儲體和外圍電路組成,但外圍電路由于再生操作要復(fù)雜得多。,動態(tài)MOS存儲器,動態(tài)存儲器的刷新(Refresh),刷新的定義和原因 1、定義 定期向電容補(bǔ)充電荷 原因: 動態(tài)存儲器依靠電容電荷存儲信息。平時無電源供電,時間一長電容電荷會瀉放,需定期向電容補(bǔ)充電荷,以保持信息不變。 注意刷新與重寫的區(qū)別 重寫:破壞性讀出后重寫,以恢復(fù)原來的信息 刷新:非破壞性讀出的動態(tài)M,需補(bǔ)充電荷以保持原來的信息,2、刷新周期 從上次對整個存儲器刷新結(jié)束時刻,到本次對整個存儲器完成全部刷新一遍為止的時間間隔 一般為2ms,4ms或8ms 3、刷新方式:按行讀; 集中式 分散式 異步式,刷新方式,在刷新間隔內(nèi),前段時間進(jìn)行正常操作,不刷新;需要刷新時,暫停讀/寫周期,集中刷新整個存儲器 由于刷新集中進(jìn)行,會造成芯片“死時間”過長;因為芯片在刷新過程中,禁止了正常的讀/寫操作,把一個存儲周期分為兩半,前半段時間用來讀/寫操作或維持信息,后半段時間作為刷新操作時間 加長了系統(tǒng)周期,刷新過于頻繁,前兩種方式的結(jié)合,把刷新操作平均分散到整個刷新周期(PC機(jī)采用的刷新方式) 例如:將6116芯片在2ms內(nèi)分散地把128行刷新一遍 2000?s128 =15.625 ?s ? 15.5 ?s 即每隔15.5 ?s刷新一行,說明1M1位(=5122048) DRAM芯片的刷新方法,刷新周期定為8ms,【解】逐行進(jìn)行刷新 512行,每行2048個存儲元同時進(jìn)行刷新,整個芯片在8ms內(nèi)進(jìn)行512次刷新操作 集中刷新 在8ms中某個時間段,連續(xù)進(jìn)行512次刷新操作 “死時間”:t0=512 T (T為存儲器讀寫周期) 異步刷新 8ms分成512個時間段,每隔8ms512=15.625s 對芯片刷新一次(一行),消除長時間的“死時間”,DRAM存儲器的刷新需要有硬件電路的支持,包括刷新計數(shù)器、刷新/訪存裁決、刷新控制邏輯等。這些控制線路形成DRAM控制器。,存儲器控制電路,1. EDRAM芯片 EDRAM芯片又稱增強(qiáng)型DRAM芯片,它在DRAM芯片上集成了一個SRAM實(shí)現(xiàn)的小容量高速緩沖存儲器,從而使DRAM芯片的性能得到顯著改進(jìn) 2.EDRAM內(nèi)存條 一片EDRAM的容量為1M4位,8片這樣的芯片(位擴(kuò)展)可組成1M32位的存儲模塊。 當(dāng)某模塊被選中,此模塊的8個EDRAM芯片同時動作,8個4位數(shù)據(jù)端口D3—D0同時與32位數(shù)據(jù)總線交換數(shù)據(jù),完成一次32位字的存取,3.2.4 高性能的主存儲器,系統(tǒng)RAM區(qū) 地址最低端的640KB空間 由DOS進(jìn)行管理 顯示RAM區(qū) 128KB主存空間保留給顯示緩沖存儲區(qū) 顯示RAM區(qū)并沒有被完全使用 擴(kuò)展ROM區(qū) I/O接口電路卡上的ROM 系統(tǒng)ROM區(qū) ROM-BIOS程序,PC機(jī)最低1MB主存,示意圖,,ROM芯片的類型,MROM(掩膜ROM) 掩膜工藝直接制作 PROM(一次性編程ROM) 允許用戶進(jìn)行一次性編程 EPROM(可擦除可編程ROM) 紫外光擦除、并可重復(fù)編程的ROM EEPROM(電擦除可編程ROM) 擦除和編程(擦寫)通過加電進(jìn)行 Flash Memory(閃速存儲器) 新型的電擦除可編程ROM 快速擦除整片或數(shù)據(jù)塊,,,閃速存儲器是在EPROM功能基礎(chǔ)上增加了芯片的電擦除和重新編程能力 28F256A通過引入一個指令寄存器來實(shí)現(xiàn)這種功能。其作用是(7條指令由CPU提供) (1) 保證TTL電平的控制信號輸入; (2) 在擦除和編程過程中穩(wěn)定供電; (3) 最大限度地與EPROM兼容。 28F256A是256K(32k8)容量,除了指令寄存器在內(nèi)的控制和定時邏輯,其余部分與一般半導(dǎo)體存儲器的結(jié)構(gòu)相似,閃速存儲器的工作原理,28F256A 工作模式,Flash Memory,AT29C040A 存儲結(jié)構(gòu):512K8 有19個地址引腳A18~A0 8個數(shù)據(jù)引腳I/O7~I(xiàn)/O0 3個控制引腳 片選CS* 輸出允許OE* 寫允許WE* 扇區(qū)(256字節(jié))擦寫 查詢擦寫是否完成,,3.4.1 雙端口存儲器 同一個存儲器具有兩組相互獨(dú)立的讀寫控制線路,提供了兩個相互獨(dú)立的端口,都可以對存儲器中任何位置上的數(shù)據(jù)進(jìn)行獨(dú)立的存取操作 3.4.2 多模塊交叉存儲器 每個模塊各自以等同的方式與CPU傳送信息。 連續(xù)地址分布在相鄰的模塊,對連續(xù)字的成塊傳送可以重疊進(jìn)行實(shí)現(xiàn)流水線并行存取 3.4.3 相聯(lián)存儲器 按內(nèi)容尋址的存儲器 把存儲單元所存內(nèi)容的某一部分作為檢索項,去檢索該存儲器,并對存儲器中與該檢索項符合的存儲單元內(nèi)容進(jìn)行讀出或?qū)懭?,,,,多模塊交叉存儲器,方案一:順序方式 (a) 主存地址被分成高n位和低m位,高位(n)表示模塊號,低位(m位)表示塊內(nèi)地址; (b) 在一個模塊內(nèi),程序是從低位地址連續(xù)存放; (c) 對連續(xù)單元存取,一般僅對一個模塊操作 (d) 特點(diǎn): 多模塊并行工作 易擴(kuò)充容量 故障局部性。,多模塊交叉存儲器,多模塊交叉存儲器,方案二:交叉方式 (a) 主存地址被分成高n位和低m位,低位(m位)表示模塊號,高位(n)表示塊內(nèi)地址; (b) 各模塊間采用多模塊交叉編址; (c) 對連續(xù)單元存取,則多個模塊并行工作 (d) 特點(diǎn): 多模塊并行工作,速度快 不易擴(kuò)展 故障全局性。,多模塊交叉存儲器,3.4.1 雙端口存儲器 同一個存儲器具有兩組相互獨(dú)立的讀寫控制線路,提供了兩個相互獨(dú)立的端口,都可以對存儲器中任何位置上的數(shù)據(jù)進(jìn)行獨(dú)立的存取操作 3.4.2 多模塊交叉存儲器 每個模塊各自以等同的方式與CPU傳送信息。 連續(xù)地址分布在相鄰的模塊,對連續(xù)字的成塊傳送可以重疊進(jìn)行實(shí)現(xiàn)流水線并行存取 3.4.3 相聯(lián)存儲器 按內(nèi)容尋址的存儲器 把存儲單元所存內(nèi)容的某一部分作為檢索項,去檢索該存儲器,并對存儲器中與該檢索項符合的存儲單元內(nèi)容進(jìn)行讀出或?qū)懭?3.5 Cache存儲器,Cache: a safe place for hiding or storing things.,在相對容量較大而速度較慢的主存與高速處理器之間設(shè)置的少量但快速的存儲器 主要目的:提高存儲器速度 為追求高速,包括管理在內(nèi)的全部功能由硬件實(shí)現(xiàn),3.5.1 Cache基本原理,CPU與cache之間的數(shù)據(jù)交換以字(字節(jié))為單位 Cache與主存間的數(shù)據(jù)傳送以數(shù)據(jù)塊為單位 一個塊(Block)由若干字組成,Cache的讀操作,高速命中(Hit):微處理器讀取主存的內(nèi)容已包含在Cache中,可以直接讀取Cache,不用訪問主存,高速失效(Miss)、缺失、未命中:微處理器讀取主存的內(nèi)容不在Cache中,需要訪問主存讀取一個數(shù)據(jù)塊,Cache的工作原理,1、Cache以塊為單位進(jìn)行操作 2、當(dāng)CPU發(fā)出訪內(nèi)操作請求后,首先由Cache控制器判斷當(dāng)前請求的字是否在Cache中,若在,叫命中,否則,不命中 3、 若命中: 若是“讀”請求,則直接對Cache讀,與主存無關(guān) 若是“寫”請求: Cache單元與主存單元同時寫(Write through寫) 只更新Cache單元并加標(biāo)記,移出時修改主存(寫回Copy back) 只寫入主存,并在Cache中加標(biāo)記,下次從MM讀出,保證正確。 4、未命中時: 若是“讀”請求,則從主存讀出所需字送CPU,且把含該字的一塊送Cache,稱“裝入通過”,若Cache已滿,置換算法; 若是“寫”請求,直接寫入主存。,Cache的命中率,命中率(Hit Rate):高速命中的概率,cache/主存系統(tǒng)的平均訪問時間ta: ta=htc+(1-h)tm tc=命中時的cache訪問時間 tm=未命中時的主存訪問時間,h=命中率 Nc=cache完成存取的總次數(shù) Nm=主存完成存取的總次數(shù),設(shè)r=tm/tc表示主存慢于cache的倍率,=,Cache的訪問效率e,【例5】CPU執(zhí)行一段程序時,cache完成存取的次數(shù)為1900次,主存完成存取的次數(shù)為100次,已知cache存取周期為50ns,主存存取周期為250ns,求cache/主存系統(tǒng)的效率和平均訪問時間。 【解】 h=Nc/(Nc+Nm)=1900/(1900+100)=0.95 r=tm/tc=250ns/50ns=5 e=1/(r+(1-r)h)=1/(5+(1-5)0.95)=83.3% ta=tc/e=50ns/0.833=60ns 或者,ta=htc+(1-h)tm=60ns,Cache結(jié)構(gòu),Cache的數(shù)據(jù)塊稱為行(線Line,槽Slot) 用Li表示,其中i=0,1,…,m-1,共有m=2r行 主存的數(shù)據(jù)塊稱為塊(Block) 用Bj表示,其中j=0,1,…,n-1,共有n=2s塊 行與塊是等長的,包含k=2w個主存字 字是CPU每次訪問存儲器時可存取的最小單位 Cache由數(shù)據(jù)存儲器和標(biāo)簽存儲器組成 數(shù)據(jù)存儲器:高速緩存主存數(shù)據(jù) 標(biāo)簽存儲器:保存數(shù)據(jù)所在主存的地址信息,3.5.2 主存與Cache的地址映射,Cache通過地址映射(mapping)的方法確定主存塊與Cache行之間的對應(yīng)關(guān)系,確定一個主存塊應(yīng)該存放到哪個Cache行中 全相聯(lián)映射(fully associative mapping) 可以將一個主存塊存儲到任意一個Cache行 直接映射(direct mapping) 將一個主存塊存儲到唯一的一個Cache行 組相聯(lián)映射(set associative mapping) 可以將一個主存塊存儲到唯一的一個Cache組中任意一個行,直接映射、2/4/8路組相聯(lián)映射使用較多,全相聯(lián)映射,優(yōu)點(diǎn):命中率較高,Cache的存儲空間利用率高 缺點(diǎn):線路復(fù)雜,成本高,速度低,直接映射,優(yōu)點(diǎn):硬件簡單,容易實(shí)現(xiàn) 缺點(diǎn):命中率低, Cache的存儲空間利用率低,組相聯(lián)映射,組間采用直接映射,組內(nèi)為全相聯(lián) 硬件較簡單,速度較快,命中率較高,3.5.3 替換策略,替換問題 新主存塊要進(jìn)入Cache,決定替換哪個原主存塊 直接映射,只能替換唯一的一個Cache行 全相聯(lián)和組相聯(lián),需要選擇替換策略(算法) 1. 最不常用(LFU: least-frequently used) 替換使用次數(shù)最少的塊 2. 最近最少使用法(LRU: least-recently used) 本指替換近期最少使用的塊,實(shí)際實(shí)現(xiàn)的是替換最久沒有被使用的塊 3. 隨機(jī)法(random) 隨意選擇被替換的塊,不依賴以前的使用情況,LRU替換算法,LRU能較好地反映程序的局部性,因而其命中率較高,但實(shí)現(xiàn)的硬件較復(fù)雜 2路組相聯(lián):使用一個U位。某個Cache塊被訪問,該塊U位置1;對應(yīng)塊U位置0。替換U位為0的塊 4/8路組相聯(lián):運(yùn)用堆棧型算法。最近訪問的塊放上面,最下面存放最久沒有訪問的塊。替換最下面的塊,3.5.4 寫入策略,處理器對Cache讀占大多數(shù),也容易提高速度 寫入Cache有些問題: 確認(rèn)命中,才可以對Cache塊寫入 寫入的數(shù)據(jù)字?jǐn)?shù)不定 寫入后可能導(dǎo)致與主存內(nèi)容不一致 寫入策略解決主存內(nèi)容的更新問題,保持正確 直寫法(write through)=全寫法 寫入Cache的同時也寫入主存(下一級存儲器) 回寫法(write back)=寫回法 只寫入Cache,在被替換時才寫回主存,直寫和回寫的比較,直寫策略 優(yōu)點(diǎn):簡單可靠 缺點(diǎn):總線操作頻繁、影響工作速度 解決方法:在Cache與主存間設(shè)置一級/多級緩沖器,形成實(shí)用的“緩沖直寫”方式,提高速度 回寫策略 優(yōu)點(diǎn):可以減少寫入主存次數(shù)、提高速度 缺點(diǎn):硬件結(jié)構(gòu)比較復(fù)雜 實(shí)現(xiàn)方法:為了表明Cache是否被修改,需要設(shè)置一個更新位(update,污染位dirty bit)。替換時只需將被修改的Cache塊內(nèi)容寫入主存,寫未命中的處理方法,寫訪問并不需要Cache塊中所有數(shù)據(jù)。寫未命中時,寫入的數(shù)據(jù)是否還要將其讀回Cache呢? 寫分配法( write allocate,WTWA ) 先把數(shù)據(jù)所在的塊調(diào)入Cache,然后再進(jìn)行寫入。類似讀失效的方式,也稱fetch on write 不寫分配法( no-write allocate,WTNWA ) 直接把數(shù)據(jù)寫入下一級存儲器,不將相應(yīng)的塊調(diào)入Cache,也稱write around 直寫策略通常配合不寫分配法,回寫策略一般采用寫分配法,80486的片上Cache,指令和數(shù)據(jù)共用的4路組相聯(lián)Cache結(jié)構(gòu) 8KB容量分成128組,每組有4路,每組每路為一行,每行16個字節(jié)(128位) 每行對應(yīng)21位標(biāo)簽,一個有效位 每組中4路對應(yīng)3位LRU位,用于實(shí)現(xiàn)偽LRU替換算法 采用4級緩沖直寫策略,允許6個連續(xù)的寫操作而無等待 寫命未中時,采用不寫分配法,只將數(shù)據(jù)寫入主存,不進(jìn)行Cache的回填,80486片上Cache的結(jié)構(gòu),80486片上Cache的偽LRU算法,L1,Pentium的片上Cache,指令和數(shù)據(jù)分離的2路組相聯(lián)Cache結(jié)構(gòu) 指令Cache和數(shù)據(jù)Cache都是8KB,共16KB 8KB容量分成128組,每組2路,每行32個字節(jié) LRU算法,回寫策略(可動態(tài)改變?yōu)橹睂懖呗?,Cache一致性,有了Cache,同一個數(shù)據(jù)會在主存也會在Cache 有了多級Cache,在主存、一級、二級或三級Cache中可能存在同一個數(shù)據(jù)的多個拷貝 多處理器系統(tǒng)存在有多個Cache,同一個數(shù)據(jù)的拷貝份數(shù)會更多 如何保證它們都相同,或者說如何保證程序獲得最新的正確的數(shù)據(jù),就是Cache數(shù)據(jù)的一致性問題,實(shí)現(xiàn)Cache一致性的基本方案,軟件方法:由編譯程序和操作系統(tǒng)在編譯時分析代碼,避免共享變量進(jìn)入Cache 硬件方法:程序運(yùn)行時動態(tài)處理,對程序員和編譯員透明,稱為Cache一致性協(xié)議(Cache coherence protocol) 目錄(directory):物理主存中共享數(shù)據(jù)的狀態(tài)及相關(guān)信息保存在目錄中,通常由中央控制器集中維護(hù) 監(jiān)聽(snoopy):各個Cache除保存數(shù)據(jù)拷貝外,也保存數(shù)據(jù)的共享狀態(tài)信息,通過監(jiān)聽總線操作判斷,MESI協(xié)議,商業(yè)化多處理器系統(tǒng)中,Cache塊常利用標(biāo)簽中額外的2位記錄其數(shù)據(jù)共享的4種狀態(tài):修改(modified)、唯一(exclusive)、共享(shared)和無效(invalid);所以也稱為MESI協(xié)議 修改M:該Cache塊已經(jīng)被修改(與主存不同),而且只在這個Cache中可用 唯一E:該Cache塊與對應(yīng)主存塊相同,而且不存在于其它Cache中 共享S:該Cache塊與對應(yīng)主存塊相同,但可能存在于其它Cache中 無效I:該Cache塊包含的數(shù)據(jù)無效,Pentium的L1和L2級Cache數(shù)據(jù)一致性,Pentium采用MESI協(xié)議,配合第一次直寫(write through),以后回寫(write back),實(shí)現(xiàn)L1和L2 Cache的數(shù)據(jù)一致,也稱為一次寫(write once),3.6 虛擬存儲器,虛擬存儲器: 在主存-外存層次間 借助于磁盤輔助存儲器實(shí)現(xiàn) 由系統(tǒng)軟件和輔助硬件管理 以透明方式提供給用戶 一個比實(shí)際主存空間大得多的程序地址空間 作用:擴(kuò)大主存容量,提高輔存訪問速度,有效管理存儲系統(tǒng),虛擬:利用其他部件實(shí)現(xiàn)的本來不存在的事物或?qū)傩?透明:本來存在的事物或?qū)傩?,從某種角度看似乎不存在,3.6.1 虛擬存儲器的基本概念,物理地址(實(shí)地址):(對應(yīng)主存物理空間)由CPU地址引腳送出,用于訪問主存的地址 虛擬地址(虛地址):(對應(yīng)主存邏輯空間)由編譯程序生成的,是程序的邏輯地址 CPU理解虛擬地址,并將其轉(zhuǎn)換成物理地址,主存-外存層次的基本信息傳送單位 段:按程序邏輯劃分為可變長的塊,稱為段 頁:機(jī)械地劃分為大小相同的塊,稱為頁面 段頁:程序按模塊分段,段內(nèi)分頁,段式管理:把主存按段分配的存儲管理方式 優(yōu)點(diǎn):段的界線分明,段易于編譯、管理、修改和保護(hù),便于多道程序共享 缺點(diǎn):段的長度各不相同,主存空間分配麻煩 頁式管理:以定長頁面進(jìn)行存儲管理的方式 優(yōu)點(diǎn):頁的起點(diǎn)和終點(diǎn)地址固定,方便造頁表,新頁調(diào)入主存也很容易掌握,比段式空間浪費(fèi)小 缺點(diǎn):處理、保護(hù)和共享都不及段式來得方便 段頁式管理:分段和分頁相結(jié)合的存儲管理方式 優(yōu)點(diǎn):綜合段式和頁式管理方式的特點(diǎn) 缺點(diǎn):需要多次查表過程,虛擬存儲器的管理,3.6.2 頁式虛擬存儲器,邏輯頁:頁式虛擬存儲系統(tǒng)中,虛擬空間分成頁; 物理頁:主存空間也分成同樣大小的頁。 虛存地址分為兩個字段:高字段為邏輯頁號,低字段為頁內(nèi)行地址。 實(shí)存地址也分兩個字段:高字段為物理頁號,低字段為頁內(nèi)行地址。,頁式管理的地址變換:用頁表,快表與慢表,3.6.3 段式虛擬存儲器,段式管理的地址變換:用段表,3.6.4 段頁式虛擬存儲器,3.6.5 替換算法,虛擬存儲器的頁面替換策略和cache的行替換策略有很多相似之處,但有三點(diǎn)顯著不同: ⑴ 缺頁至少要涉及一次磁盤存取,使系統(tǒng)蒙受的損失要比cache未命中大得多 ⑵ 頁面替換由操作系統(tǒng)軟件實(shí)現(xiàn) ⑶ 頁面替換的選擇余地很大,屬于一個進(jìn)程的頁面都可替換。 虛擬存儲器的替換策略 多采用近期最少使用(LRU)算法 還有最不經(jīng)常使用(LFU)算法 先進(jìn)先出(FIFO)算法,奔騰處理器的存儲器地址轉(zhuǎn)換,3.7 存儲保護(hù),多個程序同時存在于存儲器中,需要保護(hù) ⑴ 存儲區(qū)域保護(hù): 界限保護(hù) 頁表和段表保護(hù) 鍵式保護(hù) 環(huán)狀保護(hù) ⑵ 訪問方式保護(hù): 設(shè)置訪問權(quán)限:讀R、寫W、執(zhí)行E的組合 特權(quán)保護(hù),奔騰處理器的段描述符,段界限(segment limit):用于存儲空間保護(hù) 基地址(base address):用于形成物理地址 訪問權(quán)字節(jié)(access rights byte):段訪問權(quán)限:該段當(dāng)前是否駐留主存、該段所具有特權(quán)層和段類型,用于特權(quán)保護(hù),奔騰處理器的頁目錄項和頁表項,P存在位:該頁表或頁面是否在物理存儲器中 A訪問位:頁面進(jìn)行讀或?qū)懖僮鲿r置位 D寫操作位(dirty臟位):頁面進(jìn)行寫操作時被置位 U/S用戶/管理員位:頁面僅能由管理員層的程序使用,還是用戶層和管理員層的程序均能使用 R/W讀/寫位:指明頁面是只讀的,還是可讀可寫,第3章 存儲系統(tǒng)習(xí)題,說明SRAM,DRAM,NVRAM;MROM,OTP-ROM,EPROM,EEPROM,F(xiàn)lash Memory都是什么半導(dǎo)體存儲器? 說明存儲器的分級結(jié)構(gòu),虛擬存儲器在什么位置、由什么實(shí)現(xiàn)? 有一個1024K32位的存儲模塊,它有多少字節(jié)容量?如果用128K8的SRAM芯片組成,需要多少個芯片,每個芯片的地址引腳有多少條? Cache的地址映射、替換策略和寫入策略各用于解決什么問題? 第1題 第9題 第11題,第3章教學(xué)要求-1,熟悉存儲系統(tǒng)的分級(層次)結(jié)構(gòu),掌握存儲訪問的局部性原理 理解存儲容量、存取時間、存取周期、存儲器帶寬的概念 了解SRAM、DRAM和NVRAM的特點(diǎn) 掌握SRAM存儲結(jié)構(gòu)與芯片地址引腳和數(shù)據(jù)引腳的關(guān)系 理解位擴(kuò)展和字?jǐn)U展的含義和作用,掌握芯片擴(kuò)展與芯片容量的關(guān)系 了解DRAM的行地址和列地址,理解DRAM的刷新操作和方法 了解ROM芯片的類型和各自特點(diǎn),第3章教學(xué)要求-2,掌握Cache的功能和基本原理,掌握命中率、平均訪問時間和訪問效率的計算方法 理解Cache的地址映射的作用,掌握全相聯(lián)、直接和組相聯(lián)映射的原理和特點(diǎn),熟悉Cache中標(biāo)記(標(biāo)簽)的作用 理解替換策略的作用,熟悉LRU、LFU和隨機(jī)法 理解Cache的寫操作策略,熟悉直寫法(全寫法)和回寫法(寫回法) 掌握虛擬存儲器的功能、物理地址和虛擬(邏輯)地址的概念 熟悉頁式和段式虛擬存儲器的管理和地址轉(zhuǎn)換 理解存儲保護(hù),熟悉存儲區(qū)域和訪問方式保護(hù)的思想,102,第三章 小結(jié),,2019/12/2,第103頁,? 本章小結(jié),存儲器兩大功能是存儲(Write)和取出(Read)。對存儲器的三項基本要求是:大容量、高速度和低成本。 各類存儲器具有不同的特點(diǎn):半導(dǎo)體存儲器速度快、成本較高;磁表面存儲器容量大、成本低但速度慢,無法與CPU高速處理信息的能力匹配。在計算機(jī)系統(tǒng)中,通常采用多級存儲器體系結(jié)構(gòu),即高速緩沖存儲器Cache、主存儲器和外存儲器組成的結(jié)構(gòu)。 提高存儲器速度可以采用許多措施:采用高速器件;采用高速緩沖存儲器Cache;采用多體交叉存儲器;采用相聯(lián)存儲器;加長存儲器字長等。 為了擴(kuò)大存儲容量,可以采用虛擬存儲器技術(shù)。虛擬存儲器是建立在主存和輔存物理結(jié)構(gòu)基礎(chǔ)之上,由附加硬件裝置以及操作系統(tǒng)存儲管理軟件組成的一種存儲體系。虛擬存儲器有頁式、段式、段頁式三類。,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 計算機(jī) 組成 原理 第三 課件 白中英版
鏈接地址:http://www.820124.com/p-2857027.html