《計(jì)算機(jī)組成原理》PPT課件.ppt
《《計(jì)算機(jī)組成原理》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《計(jì)算機(jī)組成原理》PPT課件.ppt(117頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
計(jì)算機(jī)科學(xué)與技術(shù)專業(yè) 計(jì)算機(jī)組成原理武漢科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 第八章輸入輸出系統(tǒng) 本章內(nèi)容3 1存儲(chǔ)器概述3 2隨機(jī)讀寫(xiě)存儲(chǔ)器3 3只讀存儲(chǔ)器和閃速存儲(chǔ)器3 4高速存儲(chǔ)器3 5cache存儲(chǔ)器3 6虛擬存儲(chǔ)器3 7存儲(chǔ)保護(hù) 3 1存儲(chǔ)器概述 存儲(chǔ)器的作用用作計(jì)算機(jī)系統(tǒng)中的記憶設(shè)備 用來(lái)存放程序和數(shù)據(jù) 3 1 1存儲(chǔ)器分類存儲(chǔ)器中最小的存儲(chǔ)單位就是存儲(chǔ)元 它可存儲(chǔ)一個(gè)二進(jìn)制代碼 由若干個(gè)存儲(chǔ)元組成一個(gè)存儲(chǔ)單元 然后再由許多存儲(chǔ)單元組成一個(gè)存儲(chǔ)器 根據(jù)存儲(chǔ)材料的性能及使用方法不同 存儲(chǔ)器有各種不同的分類方法 半導(dǎo)體器件磁性材料光材料 雙極型MOS型 磁盤(pán) 磁帶 1 按存儲(chǔ)介質(zhì)分 光盤(pán) 為了解決對(duì)存儲(chǔ)器要求容量大 速度快 成本低三者之間的矛盾 目前通常采用多級(jí)存儲(chǔ)器體系結(jié)構(gòu) 即使用高速緩沖存儲(chǔ)器 主存儲(chǔ)器和外存儲(chǔ)器 3 1 2存儲(chǔ)器的分級(jí)結(jié)構(gòu) 表3 1存儲(chǔ)器的用途和特點(diǎn) 主存儲(chǔ)器的性能指標(biāo)主要是存儲(chǔ)容量 存取時(shí)間 存儲(chǔ)周期和存儲(chǔ)器帶寬 字存儲(chǔ)單元即存放一個(gè)機(jī)器字的存儲(chǔ)單元 相應(yīng)的地址稱為字地址 一個(gè)機(jī)器字可以包含數(shù)個(gè)字節(jié) 所以一個(gè)存儲(chǔ)單元也可包含數(shù)個(gè)能夠單獨(dú)編址的字節(jié)地址 下面列出主存儲(chǔ)器的主要幾項(xiàng)技術(shù)指標(biāo) 表3 2主存儲(chǔ)器的主要幾項(xiàng)技術(shù)指標(biāo) 3 1 3主存儲(chǔ)器的技術(shù)指標(biāo) 3 2隨機(jī)讀寫(xiě)存儲(chǔ)器 2 SRAM存儲(chǔ)器的組成下面我們對(duì)此SRAM存儲(chǔ)器的組成做一下具體介紹 存儲(chǔ)體 存儲(chǔ)單元的集合 通常用X選擇線 行線 和Y選擇線 列線 的交叉來(lái)選擇所需要的單元 地址譯碼器 將用二進(jìn)制代碼表示的地址轉(zhuǎn)換成輸出端的高電位 用來(lái)驅(qū)動(dòng)相應(yīng)的讀寫(xiě)電路 以便選擇所要訪問(wèn)的存儲(chǔ)單元 地址譯碼有兩種方式 單譯碼 一個(gè)地址譯碼器 適用于小容量存儲(chǔ)器 單譯碼的輸出叫字選線 有效時(shí) 同時(shí)選中某一個(gè)字 存儲(chǔ)單元 的所有位 設(shè)地址線為12根時(shí) 譯碼輸出線有212 4096線雙譯碼 X向和Y向兩個(gè)譯碼器 適用于大容量存儲(chǔ)器 雙譯碼的輸出分為X向和Y向 形成字位結(jié)構(gòu) 由兩者交叉選中相應(yīng)的存儲(chǔ)單元 設(shè)地址線為12根時(shí) X譯碼和Y譯碼各6根時(shí) 輸出線有2 26 128線 驅(qū)動(dòng)器 雙譯碼結(jié)構(gòu)中 在譯碼器輸出后加驅(qū)動(dòng)器 驅(qū)動(dòng)掛在各條X方向選擇線上的所有存儲(chǔ)元電路 I O電路 處于數(shù)據(jù)總線和被選用的單元之間 控制被選中的單元讀出或?qū)懭?放大信息 片選 在地址選擇時(shí) 首先要選片 只有當(dāng)片選信號(hào)有效時(shí) 此片所連的地址線才有效 輸出驅(qū)動(dòng)電路 為了擴(kuò)展存儲(chǔ)器的容量 常需要將幾個(gè)芯片的數(shù)據(jù)線并聯(lián)使用 另外存儲(chǔ)器的讀出數(shù)據(jù)或?qū)懭霐?shù)據(jù)都放在雙向的數(shù)據(jù)總線上 這就用到三態(tài)輸出緩沖器 3 SRAM存儲(chǔ)器芯片實(shí)例存儲(chǔ)容量 1K 4 共4096個(gè)存儲(chǔ)元存儲(chǔ)體 由4096個(gè)存儲(chǔ)元排成64 64的矩陣 地址線 A0 A9共10根數(shù)據(jù)線 I O1 I O4共4根地址譯碼 采用字位結(jié)構(gòu)X向用A3A4A5A6A7A8共6根 產(chǎn)生64條行選擇線Y向用A0A1A2A9共4根 產(chǎn)生16條列選擇線 每一列線同時(shí)接 驅(qū)動(dòng)器 連接線 地址線 數(shù)據(jù)線 控制線 存儲(chǔ)器芯片的容量是有限的 為了滿足實(shí)際存儲(chǔ)器的容量要求 需要對(duì)存儲(chǔ)器進(jìn)行擴(kuò)展 主要方法有 1 位擴(kuò)展法 目的 只加大字長(zhǎng) 使每一個(gè)存儲(chǔ)單元達(dá)到指定的位數(shù) 單元數(shù)不變例 用8K 1的RAM存儲(chǔ)器芯片 組成8K 8位的存儲(chǔ)器連接方法 CPU的地址線A0 A12共13根分別接到每一個(gè)芯片CPU的數(shù)據(jù)線D0 D7共8根分別接到8個(gè)芯片的I O端 4 存儲(chǔ)器與CPU連接 目的 用多個(gè)芯片擴(kuò)大存儲(chǔ)單元數(shù) 每個(gè)存儲(chǔ)單元的位數(shù)已滿足使用要求 單元數(shù)為各芯片的單元數(shù)之和 例 用16K 8的RAM存儲(chǔ)器芯片 組成64K 8位的存儲(chǔ)器連接方法 CPU的數(shù)據(jù)線D0 D7共8根分別接到每一個(gè)芯片CPU的地址線A0 A13共14根分別接到每一個(gè)芯片CPU的地址線A14A15經(jīng)2 4譯碼器產(chǎn)生4根片選信號(hào)線分別接到4個(gè)芯片的CE 或CS CPU的讀寫(xiě)控制線WE分別接到每一個(gè)芯片 2 字?jǐn)U展法 目的 既要擴(kuò)大存儲(chǔ)單元數(shù) 又要擴(kuò)大其位數(shù) 設(shè)存儲(chǔ)容量M N位 M個(gè)單元 每個(gè)單元N位 設(shè)芯片容量為L(zhǎng) K位 則字位擴(kuò)展所需芯片數(shù)為M N L K 其中 以N K個(gè)芯片為一組 進(jìn)行位擴(kuò)展 共需M L組 進(jìn)行字?jǐn)U展 例 用16K 4的RAM存儲(chǔ)器芯片 組成64K 8位的存儲(chǔ)器以8 2 2片為一組 共64 16 4組 CPU的數(shù)據(jù)線D0 D3和D4 D7共8根分別接到每組的2個(gè)芯片CPU的地址線A0 A13共14根分別接到每一個(gè)芯片組片選與讀寫(xiě)控制線與字?jǐn)U展同 不過(guò)每組的兩片需同時(shí)接通 3 字位同時(shí)擴(kuò)展法 5 存儲(chǔ)器的讀 寫(xiě)周期讀周期 讀周期與讀出時(shí)間是兩個(gè)不同的概念 讀出時(shí)間是從給出有效地址到外部數(shù)據(jù)總線上穩(wěn)定地出現(xiàn)所讀出的數(shù)據(jù)信息所經(jīng)歷的時(shí)間 讀周期時(shí)間則是存儲(chǔ)片進(jìn)行兩次連續(xù)讀操作時(shí)所必須間隔的時(shí)間 它總是大于或等于讀出時(shí)間 tA tRC 寫(xiě)周期 要實(shí)現(xiàn)寫(xiě)操作 要求片選CS和寫(xiě)命令WE信號(hào)都為低 并且CS信號(hào)與WE信號(hào)相 與 的寬度至少應(yīng)為tW tWC tW 例1 下圖是SRAM的寫(xiě)入時(shí)序圖 其中R W是讀 寫(xiě)命令控制線 當(dāng)R W線為低電平時(shí) 存儲(chǔ)器按給定地址把數(shù)據(jù)線上的數(shù)據(jù)寫(xiě)入存儲(chǔ)器 請(qǐng)指出下圖寫(xiě)入時(shí)序中的錯(cuò)誤 并畫(huà)出正確的寫(xiě)入時(shí)序圖 解 寫(xiě)入存儲(chǔ)器的時(shí)序信號(hào)必須同步 通常 當(dāng)R W線加負(fù)脈沖時(shí) 地址線和數(shù)據(jù)線的電平必須是穩(wěn)定的 當(dāng)R W線達(dá)到低電平時(shí) 數(shù)據(jù)立即被存儲(chǔ) 因此 當(dāng)R W線處于低電平時(shí) 如果數(shù)據(jù)線改變了數(shù)值 那么存儲(chǔ)器將存儲(chǔ)新的數(shù)據(jù) 同樣 當(dāng)R W線處于低電平時(shí)地址線如果發(fā)生了變化那么同樣數(shù)據(jù)將存儲(chǔ)到新的地址 或 正確的寫(xiě)入時(shí)序圖見(jiàn)下圖 1 四管動(dòng)態(tài)存儲(chǔ)元 四管的動(dòng)態(tài)存儲(chǔ)電路是將六管靜態(tài)存儲(chǔ)元電路中的負(fù)載管T3 T4去掉而成的 寫(xiě)操作 I O與I O加相反的電平 當(dāng)T5 T6截止時(shí) 靠T1 T2管柵極電容的存儲(chǔ)作用 在一定時(shí)間內(nèi) 如2ms 可保留所寫(xiě)入的信息 讀操作 先給出預(yù)充信號(hào) 使T9 T10管導(dǎo)通 位線D和D上的電容都達(dá)到電源電壓 字選擇線使T5 T6管導(dǎo)通時(shí) 存儲(chǔ)的信息通過(guò)A B端向位線輸出 刷新操作 為防止存儲(chǔ)的信息電荷泄漏而丟失信息 由外界按一定規(guī)律不斷給柵極進(jìn)行充電 補(bǔ)足柵極的信息電荷 2 單管動(dòng)態(tài)存儲(chǔ)元 單管動(dòng)態(tài)存儲(chǔ)元電路由一個(gè)管子T1和一個(gè)電容C構(gòu)成 寫(xiě)入 字選擇線為 1 T1管導(dǎo)通 寫(xiě)入信息由位線 數(shù)據(jù)線 存入電容C中 讀出 字選擇線為 1 存儲(chǔ)在電容C上的電荷 通過(guò)T1輸出到數(shù)據(jù)線上 通過(guò)讀出放大器即可得到存儲(chǔ)信息 3 2 2DRAM存儲(chǔ)器 表3 4單管存儲(chǔ)元電路和四管存儲(chǔ)元電路對(duì) DRAM存儲(chǔ)器芯片的結(jié)構(gòu)大體與SRAM存儲(chǔ)器芯片相似 由存儲(chǔ)體與外圍電路構(gòu)成 但它集成度要高 外圍電路更復(fù)雜 下圖是16K 1位的DRAM存儲(chǔ)器片2116的邏輯結(jié)構(gòu)示意圖 圖3 1116K 1位DRAM芯片 3 DRAM存儲(chǔ)芯片實(shí)例 動(dòng)態(tài)MOS存儲(chǔ)器采用 讀出 方式進(jìn)行刷新 從上一次對(duì)整個(gè)存儲(chǔ)器刷新結(jié)束到下一次對(duì)整個(gè)存儲(chǔ)器全部刷新一遍為止 這一段時(shí)間間隔叫刷新周期 常用的刷新方式有三種 一種是集中式 另一種是分散式 第三種是異步式 集中式刷新 在整個(gè)刷新間隔內(nèi) 前一段時(shí)間重復(fù)進(jìn)行讀 寫(xiě)周期或維持周期 等到需要進(jìn)行刷新操作時(shí) 便暫停讀 寫(xiě)或維持周期 而逐行刷新整個(gè)存儲(chǔ)器 它適用于高速存儲(chǔ)器 設(shè)讀寫(xiě)周期為0 5us 刷新周期為2ms 則在4000周期的前3872個(gè)為正常讀 寫(xiě) 而在最后128個(gè)周期完成刷新操作 問(wèn)題 有64us的死時(shí)間 不能進(jìn)行讀寫(xiě)操作 4 DRAM的刷新 分散式刷新 把一個(gè)存儲(chǔ)系統(tǒng)周期tc分為兩半 周期前半段時(shí)間tm用來(lái)讀 寫(xiě)操作或維持信息 周期后半段時(shí)間tr作為刷新操作時(shí)間 這樣 每經(jīng)過(guò)128個(gè)系統(tǒng)周期時(shí)間 整個(gè)存儲(chǔ)器便全部刷新一遍 問(wèn)題 雖然不存在死時(shí)間 但是存取周期由0 5us增至1us 降低了整個(gè)系統(tǒng)的速度 異步式刷新 該方式是前兩種方式的結(jié)合 例如2ms內(nèi)分散刷新128行 則每隔2000 128 15 5 s刷新一行 例2 說(shuō)明1M 1位DRAM片子的刷新方法 刷新周期定為8ms 解 如果選擇一個(gè)行地址進(jìn)行刷新 刷新地址為A0 A8 因此這一行上的2048個(gè)存儲(chǔ)元同時(shí)進(jìn)行刷新 即在8ms內(nèi)進(jìn)行512個(gè)周期的刷新 按照這個(gè)周期數(shù) 512 2048 1048567 即對(duì)1M位的存儲(chǔ)元全部進(jìn)行刷新 刷新方式可采用 在8ms中進(jìn)行512次刷新操作的集中刷新方式 或按8ms 512 15 5 s刷新一次的 本小節(jié)以DRAM控制器W4006AF為例 說(shuō)明80386中主存儲(chǔ)器的構(gòu)成方法 下面是采用W4006AF構(gòu)成的80386主存儲(chǔ)器簡(jiǎn)圖 具體框圖參看教材 3 2 3主存儲(chǔ)器組成實(shí)例 1 EDRAM芯片 EDRAM芯片又稱增強(qiáng)型DRAM芯片 它在DRAM芯片上集成了一個(gè)SRAM實(shí)現(xiàn)的小容量高速緩沖存儲(chǔ)器 從而使DRAM芯片的性能得到顯著改進(jìn) 1M 4位EDRAM芯片的結(jié)構(gòu)框圖演示 3 2 4高性能的主存儲(chǔ)器 以SRAM保存一行內(nèi)容的辦法 對(duì)成塊傳送非常有利 如果連續(xù)的地址高11位相同 意味著屬于同一行地址 那么連續(xù)變動(dòng)的9位列地址就會(huì)使SRAM中相應(yīng)位組連續(xù)讀出 這稱為猝發(fā)式讀取 EDRAM的這種結(jié)構(gòu)還帶來(lái)另外兩個(gè)優(yōu)點(diǎn) 在SRAM讀出期間可同時(shí)對(duì)DRAM陣列進(jìn)行刷新 芯片內(nèi)的數(shù)據(jù)輸出路徑與輸入路徑是分開(kāi)的 允許在寫(xiě)操作完成的同時(shí)來(lái)啟動(dòng)同一行的讀操作 2 EDRAM內(nèi)存條 一片EDRAM的容量為1M 4位 8片這樣的芯片可組成M 32位的存儲(chǔ)模塊 8個(gè)芯片共用片選信號(hào)Sel 行選通信號(hào)RAS 刷新信號(hào)Ref和地址輸入信號(hào)A0 A10 當(dāng)某模塊被選中 此模塊的8個(gè)EDRAM芯片同時(shí)動(dòng)作 8個(gè)4位數(shù)據(jù)端口D3 D0同時(shí)與32位數(shù)據(jù)總線交換數(shù)據(jù) 完成一次32位字的存取 上述存儲(chǔ)模塊本身具有高速成塊存取能力 這種模塊內(nèi)存儲(chǔ)字完全順序排放 以猝發(fā)式存取來(lái)完成高速成塊存取的方式 在當(dāng)代微型機(jī)中獲得了廣泛應(yīng)用 3 主存物理地址的存儲(chǔ)空間分布 下面以奔騰PC機(jī)主存為例 說(shuō)明主存物理地址的存儲(chǔ)空間概念 奔騰PC機(jī)主存物理地址存儲(chǔ)空間分布情況演示最大可訪問(wèn)主存空間為256MB 實(shí)際只安裝了16MB的DRAM 存儲(chǔ)空間分成基本內(nèi)存 保留內(nèi)存 擴(kuò)展內(nèi)存幾部分 3 3只讀存儲(chǔ)器和閃速存儲(chǔ)器 3 3 1只讀存儲(chǔ)器1 ROM的分類只讀存儲(chǔ)器簡(jiǎn)稱ROM 它只能讀出 不能寫(xiě)入 它的最大優(yōu)點(diǎn)是具有不易失性 根據(jù)編程方式不同 ROM通常分為三類 1 掩膜式只讀存儲(chǔ)器ROM 2 一次可編程只讀存儲(chǔ)器PROM 3 多次可擦除可編程只讀存儲(chǔ)器EPROM 1 基本存儲(chǔ)元電路P溝道EPROM的基本電路結(jié)構(gòu)示意圖演示 在N型基片上生長(zhǎng)了兩個(gè)高濃度的P型區(qū) 引出源極 S 和漏極 D 在S極與D極之間 有一個(gè)多晶硅做成的柵極 但它是浮空的 被絕緣物SiO2所包圍 做好后的管子因柵極上無(wú)電荷 故管內(nèi)無(wú)導(dǎo)電道 D極和S極之間是不導(dǎo)電的 把EPROM管用于存儲(chǔ)矩陣時(shí) 其初態(tài)各位均為1 要寫(xiě)入 0 時(shí) 在D和S極之間加上25V高壓 另加編程脈沖則可使D S之間被瞬間擊穿 于是有 2 光擦可編程只讀存儲(chǔ)器 EPROM 電子通過(guò)絕緣層注入硅柵 在高壓電源去除后硅柵中的電子被絕緣層包圍而無(wú)法泄漏 硅柵變負(fù) 形成導(dǎo)電溝 從而使EPROM存儲(chǔ)元導(dǎo)通 輸出為 0 芯片封裝于石英玻璃窗口內(nèi) 當(dāng)用紫外線照射該窗口時(shí) 浮空柵中的電子會(huì)形成光電流泄漏 從而使EPROM管恢復(fù)初態(tài) 2 EPROM實(shí)例 以2716為例容量 2K 8位 所以地址線11根A10 A0 7條X譯碼 4條Y譯碼數(shù)據(jù)線8根D7 D0 帶輸出緩沖器 例3 CPU的地址總線16根 A15 A0 A0為低位 雙向數(shù)據(jù)總線8根 D7 D0 控制總線中與主存有關(guān)的信號(hào)有MREQ 允許訪存 低電平有效 R W 高電平為讀命令 低電平為寫(xiě)命令 主存地址空間分配如下 0000H 1FFFH 即0 8191為系統(tǒng)程序區(qū) 由ROM芯片組成 2000H 7FFFH 即8192 32767共24K為用戶程序區(qū) F800H FFFFH 即最后 最大地址 2K地址空間為系統(tǒng)程序工作區(qū) 上述地址為十進(jìn)制 按字節(jié)編址 現(xiàn)有如下存儲(chǔ)器芯片 EPROM 8K 8位 控制端僅有CS SRAM 16K 1位 2K 8位 4K 8位 8K 8位 請(qǐng)從上述芯片中選擇適當(dāng)芯片設(shè)計(jì)該計(jì)算機(jī)主存儲(chǔ)器 畫(huà)出主存儲(chǔ)器邏輯框圖 注意畫(huà)出選片邏輯 可選用門(mén)電路及3 8譯碼器74LS138 與CPU的連接 說(shuō)明選哪些存儲(chǔ)器芯片 選多少片 解 根據(jù)給定條件 選用EPROM 8K 8位芯片1片 SRAM 8K 8位芯片3片 2K 8位芯片1片 3 8譯碼器僅用Y0 Y1 Y2 Y3和Y7輸出端 且對(duì)最后的2K 8位芯片還需加門(mén)電路譯碼 主存儲(chǔ)器的組成與CPU連接邏輯圖如圖所示 詳細(xì)框圖請(qǐng)參看教材 Y0 Y1 Y2 Y3 Y7 MREQ CS CS CS CS CS C W C W C W C W 1 什么是閃速存儲(chǔ)器 閃速存儲(chǔ)器是一種低功耗 高密度 大容量 具有ROM的非易失性 又具有電可擦除和可反復(fù)編程的一種新型存儲(chǔ)器 它突破了傳統(tǒng)的存儲(chǔ)器體系 改善了現(xiàn)有存儲(chǔ)器的特性 3 3 2閃速存儲(chǔ)器 2 閃速存儲(chǔ)器的邏輯結(jié)構(gòu) 28F256A的邏輯方框圖 容量 32K 8位 3 閃速存儲(chǔ)器的工作原理 閃速存儲(chǔ)器是在EPROM功能基礎(chǔ)上增加了電路的電擦除和重新編程能力 28F256A引入一個(gè)指令寄存器來(lái)實(shí)現(xiàn)這種功能 其作用是 1 保證TTL電平的控制信號(hào)輸入 2 在擦除和編程過(guò)程中穩(wěn)定供電 3 最大限度的與EPROM兼容 當(dāng)VPP引腳不加高電壓時(shí) 它只是一個(gè)只讀存儲(chǔ)器 當(dāng)VPP引腳加上高電壓時(shí) 除實(shí)現(xiàn)EPROM通常操作外 通過(guò)指令寄存器 可以實(shí)現(xiàn)存儲(chǔ)器內(nèi)容的變更 當(dāng)VPP VPPL時(shí) 指令寄存器的內(nèi)容為讀指令 使28F256A成為只讀存儲(chǔ)器 稱為寫(xiě)保護(hù) 5 閃速存儲(chǔ)器與CPU的連接CPU與閃速存儲(chǔ)器進(jìn)行連接的邏輯框圖 中間部分是接口電路 地址總線和控制總線由CPU發(fā)向存儲(chǔ)器和接口邏輯 數(shù)據(jù)總線為雙向總線 地址總線的寬度決定了存儲(chǔ)器的存儲(chǔ)容量 數(shù)據(jù)總線的寬度決定了存儲(chǔ)器的字長(zhǎng) 具有閃速存儲(chǔ)器的系統(tǒng)存儲(chǔ)器結(jié)構(gòu) 3 4高速存儲(chǔ)器 3 4 1雙端口存儲(chǔ)器 由于CPU和主存儲(chǔ)器在速度上不匹配 而且在一個(gè)CPU周期中可能需要用幾個(gè)存儲(chǔ)器字 這便限制了高速計(jì)算 為了使CPU不至因?yàn)榈却鎯?chǔ)器讀寫(xiě)操作的完成而無(wú)事可做 可以采取一些加速CPU和存儲(chǔ)器之間有效傳輸?shù)奶厥獯胧?1 雙端口存儲(chǔ)器的邏輯結(jié)構(gòu) 雙端口存儲(chǔ)器是指同一個(gè)存儲(chǔ)器具有兩組相互獨(dú)立的讀寫(xiě)控制線路 是一種高速工作的存儲(chǔ)器 2K 16位雙端口存儲(chǔ)器IDT7133的邏輯功能方框圖演示 表3 8無(wú)沖突讀寫(xiě)控制 1 存儲(chǔ)器的模塊化組織 一個(gè)由若干個(gè)模塊組成的主存儲(chǔ)器是線性編址的 這些地址在各模塊有兩種安排方式 一種是順序方式 一種是交叉方式 順序方式 某個(gè)模塊進(jìn)行存取時(shí) 其他模塊不工作 某一模塊出現(xiàn)故障時(shí) 其他模塊可以照常工作 通過(guò)增添模塊來(lái)擴(kuò)充存儲(chǔ)器容量比較方便 但各模塊串行工作 存儲(chǔ)器的帶寬受到了限制 交叉方式 地址碼的低位字段經(jīng)過(guò)譯碼選擇不同的模塊 而高位字段指向相應(yīng)模塊內(nèi)的存儲(chǔ)字 連續(xù)地址分布在相鄰的不同模塊內(nèi) 同一個(gè)模塊內(nèi)的地址都是不連續(xù)的 對(duì)連續(xù)字的成塊傳送可實(shí)現(xiàn)多模塊流水式并行存取 大大提高存儲(chǔ)器的帶寬 3 4 2多模塊交叉存儲(chǔ)器 2 多模塊交叉存儲(chǔ)器的基本結(jié)構(gòu) 四模塊交叉存儲(chǔ)器結(jié)構(gòu)框圖演示 每個(gè)模塊各自以等同的方式與CPU傳送信息 CPU同時(shí)訪問(wèn)四個(gè)模塊 由存儲(chǔ)器控制部件控制它們分時(shí)使用數(shù)據(jù)總線進(jìn)行信息傳遞 這是一種并行存儲(chǔ)器結(jié)構(gòu) 下面做定量分析 我們認(rèn)為模塊字長(zhǎng)等于數(shù)據(jù)總線寬度 模塊存取一個(gè)字的存儲(chǔ)周期為T(mén) 總線傳送周期為 存儲(chǔ)器的交叉模塊數(shù)為m 為了實(shí)現(xiàn)流水線方式存取 應(yīng)當(dāng)滿足T m m T 稱為交叉存取度 交叉存儲(chǔ)器要求其模塊數(shù)必須大于或等于m 以保證啟動(dòng)某模塊后經(jīng)m 時(shí)間再次啟動(dòng)該模塊時(shí) 它的上次存取操作已經(jīng)完成 這樣 連續(xù)讀取m個(gè)字所需的時(shí)間為t1 T m 1 而順序方式存儲(chǔ)器連續(xù)讀取m個(gè)字所需時(shí)間為t2 mT 交叉存儲(chǔ)器的帶寬確實(shí)大大提高了 m 4的流水線方式存取示意圖如下 2001年程序員試題之一假設(shè)內(nèi)存存取周期T 200ns 字長(zhǎng)64位 數(shù)據(jù)總線寬度64位 總線傳送周期為50ns 現(xiàn)用4個(gè)模塊組成內(nèi)存 并在連續(xù)4個(gè)地址中讀出數(shù)據(jù) 如用順序方式組織模塊 則數(shù)據(jù)帶寬為 59 如用交叉存儲(chǔ)方式組織內(nèi)存 則數(shù)據(jù)帶寬可達(dá)約 60 59 A 80MbpsB 320MbpsC 640MbpsD 1280Mbps 60 A 300MbpsB 500MbpsC 700MbpsD 1200Mbps 例4 設(shè)存儲(chǔ)器容量為32字 字長(zhǎng)64位 模塊數(shù)m 4 分別用順序方式和交叉方式進(jìn)行組織 存儲(chǔ)周期T 200ns 數(shù)據(jù)總線寬度為64位 總線傳送周期 50ns 問(wèn)順序存儲(chǔ)器和交叉存儲(chǔ)器的帶寬各是多少 解 順序存儲(chǔ)器和交叉存儲(chǔ)器連續(xù)讀出m 4個(gè)字的信息總量都是 q 64位 4 256位順序存儲(chǔ)器和交叉存儲(chǔ)器連續(xù)讀出4個(gè)字所需的時(shí)間分別是 t2 mT 4 200ns 800ns 8 10 7s t1 T m 1 200ns 3 50ns 350ns 3 5 10 7s 順序存儲(chǔ)器和交叉存儲(chǔ)器的帶寬分別是 W2 q t2 256 8 10 7 32 107 位 s W1 q t1 256 3 5 10 7 73 107 位 s 3 二模塊交叉存儲(chǔ)器舉例 二模塊交叉存儲(chǔ)器方框圖演示 1 相聯(lián)存儲(chǔ)器的基本原理 相聯(lián)存儲(chǔ)器是指其中任一存儲(chǔ)項(xiàng)內(nèi)容作為地址來(lái)存取的存儲(chǔ)器 選用來(lái)尋址存儲(chǔ)器的子段叫做關(guān)鍵字 存放在相聯(lián)存儲(chǔ)器中的項(xiàng)可以看成具有KEY DATA這樣的格式 其中KEY是地址 DATA是被讀寫(xiě)信息 相聯(lián)存儲(chǔ)器的基本原理是把存儲(chǔ)單元所存內(nèi)容的某一部分作為檢索項(xiàng) 即關(guān)鍵字項(xiàng) 去檢索該存儲(chǔ)器 并將存儲(chǔ)器中與該檢索項(xiàng)符合的存儲(chǔ)單元內(nèi)容進(jìn)行讀出或?qū)懭?2 相聯(lián)存儲(chǔ)器的組成 相聯(lián)存儲(chǔ)器由存儲(chǔ)體 檢索寄存器 屏蔽寄存器 符合寄存器 比較線路 代碼寄存器 控制線路等組成 框圖請(qǐng)看演示 3 4 3相聯(lián)存儲(chǔ)器 CAM ContentAddressedMemory 檢索寄存器 用來(lái)存放檢索字 其位數(shù)和相聯(lián)存儲(chǔ)器的存儲(chǔ)單元位數(shù)相等 屏蔽寄存器 用來(lái)存放屏蔽碼 其位數(shù)和檢索寄存位數(shù)相同 符合寄存器 用來(lái)存放按檢索項(xiàng)內(nèi)容檢索存儲(chǔ)體中與之符合的單元地址 其位數(shù)等于相聯(lián)存儲(chǔ)器的存儲(chǔ)單元位數(shù) 每一位對(duì)應(yīng)一個(gè)存儲(chǔ)單元 位的序數(shù)即為相聯(lián)存儲(chǔ)器的單元地址 比較線路 把檢索項(xiàng)和從存儲(chǔ)體中讀出的所有單元內(nèi)容的相應(yīng)位進(jìn)行比較 如果有某個(gè)存儲(chǔ)單元和檢索項(xiàng)符合 就把符合寄存器的相應(yīng)位置 1 表示該字已被檢索 代碼寄存器 用來(lái)存放存儲(chǔ)體中讀出的代碼 或者存放向存儲(chǔ)體中寫(xiě)入的代碼 存儲(chǔ)體 由高速半導(dǎo)體存儲(chǔ)器構(gòu)成 以求快速存取 在計(jì)算機(jī)系統(tǒng)中 相聯(lián)存儲(chǔ)器主要用于虛擬存儲(chǔ)器中存放分段表 頁(yè)表和快表 在高速緩沖存儲(chǔ)器中 相聯(lián)存儲(chǔ)器作為存放cache的行地址之用 這是因?yàn)樵谶@兩種應(yīng)用中 都需要快速查找 3 5cache存儲(chǔ)器 3 5 1cache基本原理1 cache的功能cache是一種高速緩沖存儲(chǔ)器 是為了解決CPU和主存之間速度不匹配而采用的一項(xiàng)重要技術(shù) Cache的位置 介于CPU和主存之間 Cache的工作速度 Cache是用高速半導(dǎo)體材料制成 其工作速度數(shù)倍速于主存 通常是5 10倍 但容量小 全部功能由硬件實(shí)現(xiàn) 對(duì)程序員而言是透明的 設(shè)置Cache的目的 在不增加太多成本的前提下 希望得到一個(gè)速度與Cache相當(dāng) 而容量與主存相當(dāng)?shù)拇鎯?chǔ)器 Cache的理論基礎(chǔ) 程序的局部性原理 包括時(shí)間上的局部性和空間上的局部性 所謂時(shí)間上的局部性 是指如果某一地址空間的程序被訪問(wèn) 則它可能還會(huì)被再次訪問(wèn) 如循環(huán)結(jié)構(gòu)的程序就是如此 所謂空間上的局部性 是指如果某一地址空間的程序被訪問(wèn) 則它附近的程序有可能被訪問(wèn) 如順序結(jié)構(gòu)程序就是如此 3 cache的命中率 增加Cache的目的 就是在性能上使主存的平均讀出時(shí)間盡可能接近Cache的讀出時(shí)間 因此 Cache的命中率應(yīng)接近于1 由于程序訪問(wèn)的局部性 這是可能的 在一個(gè)程序執(zhí)行期間 設(shè)Nc表示Cache完成存取的總次數(shù) Nm表示主存完成存取的總次數(shù) h定義為命中率 則有 若tc表示命中時(shí)的Cache訪問(wèn)時(shí)間 tm表示未命中時(shí)的主存訪問(wèn)時(shí)間 1 h表示未命中率 則Cache 主存系統(tǒng)的平均訪問(wèn)時(shí)間ta為 ta htc 1 h tm 3 5 設(shè)r tm tc表示主存慢于Cache的倍率 e表示訪問(wèn)效率 則有 為提高訪問(wèn)效率 命中率h越接近1越好 r值以5 10為宜 不宜太大 命中率h與程序的行為 Cache的容量 組織方式 塊的大小有關(guān) 例5 CPU執(zhí)行一段程序時(shí) cache完成存取的次數(shù)為1900次 主存完成存取的次數(shù)為100次 已知cache存取周期為50ns 主存存取周期為250ns 求cache 主存系統(tǒng)的效率和平均訪問(wèn)時(shí)間 解 命中率 h Nc Nc Nm 1900 1900 100 0 95主存存取時(shí)間與Cache存取時(shí)間比 r tm tc 250ns 50ns 5訪問(wèn)效率 e 1 r 1 r h 1 5 1 5 0 95 83 3 平均訪問(wèn)時(shí)間 ta tc e 50ns 0 833 60ns cache的容量很小 它保存的內(nèi)容只是主存內(nèi)容的一個(gè)子集 且cache與主存的數(shù)據(jù)交換是以塊為單位 地址映射即是應(yīng)用某種方法把主存地址定位到cache中 址映射方式有全相聯(lián)方式 直接方式和組相聯(lián)方式三種 1 行 Cache的數(shù)據(jù)塊大小稱為行用Li表示 i 0 1 2 m 1 共有m 2r行 2 塊 主存的數(shù)據(jù)塊大小稱為塊用Bj表示 j 0 1 2 n 1 共有n 2s塊 3 行 塊 字的關(guān)系 1行 1塊 由k 2w個(gè)連續(xù)的字組成 字是CPU每次訪問(wèn)存儲(chǔ)器時(shí)可存取的最小單位 3 5 2 主存與cache的地址映射 主存中一個(gè)塊的地址 塊號(hào) 與塊的內(nèi)容一起存于Cache行中 其中塊地址存于Cache行的標(biāo)記部分 設(shè)Cache為8行 主存為256塊 每塊 行 有同樣多的字 則 Cache的地址 主存的地址 行號(hào)3bit 塊號(hào)8bit 字地址 wbit 1 全相聯(lián)映射方式 映射方式 主存的一個(gè)塊直接拷貝到Cache中的任意一行上 CPU訪問(wèn)一個(gè)指定的內(nèi)存地址 包括主存和Cache 為了快速檢索 指令中的塊號(hào)與Cache中所有行的標(biāo)記同時(shí)在比較器中進(jìn)行比較 如果塊號(hào)命中 則按字地址從Cache中讀取一個(gè)字 如果未命中 則按內(nèi)存地址從主存中讀取該字 并將此字所在的一個(gè)塊調(diào)入Cache 注意 其中全部標(biāo)記用一個(gè)CAM來(lái)實(shí)現(xiàn) 而數(shù)據(jù)用RAM實(shí)現(xiàn) 優(yōu)點(diǎn) 由于這種方法可使主存的一個(gè)塊直接拷貝到Cache中的任意一行上 非常靈活 缺點(diǎn) 比較器電路難于設(shè)計(jì)和實(shí)現(xiàn)應(yīng)用 只適合于小容量cache采用 這也是一種多對(duì)一的映射關(guān)系 但一個(gè)主存塊只能拷貝到Cache的一個(gè)特定行位置上去 Cache的行號(hào)i和主存的塊號(hào)j有如下函數(shù)關(guān)系 i jmodm其中 m為cache中的總行數(shù) 如右圖中m 8 2 直接映射方式 仍設(shè)Cache為8行 主存為256塊 每塊 行 有同樣多的字 則允許存于Cache第 L0B0 B8 B16 B248L1B1 B9 B17 B249L2的主存塊號(hào)是B2 B10 B18 B250 L7B7 B15 B23 B255 Cache的地址 主存的地址 行號(hào) rbit 本例為3 塊號(hào) sbit 本例為8 其中標(biāo)記s rbit 本例為5 塊地址sbit 將s位的塊地址分成兩部分 r位的行號(hào) s r位標(biāo)記 標(biāo)記與塊數(shù)據(jù)一起保存該行中 每一個(gè)Cache行只可映射主存中的固定32塊 32個(gè)塊 CPU以一個(gè)給定的內(nèi)存地址訪問(wèn)Cache時(shí) 首選用rbit行號(hào)找到Cache中的此一行 然后用地址中的s rbit標(biāo)記部分與此行的標(biāo)記在比較器做比較 若相符 即命中 在Cache中找到所要的塊 則可用地址的最低w位 字地址 讀取所需求的字 若不符 即未命中 由主存讀取所要求的字 并將此字所對(duì)應(yīng)的一個(gè)塊調(diào)入Cache 優(yōu)點(diǎn) 硬件簡(jiǎn)單 成本低 缺點(diǎn) 每個(gè)主存塊只有一個(gè)固定的行位置可存放 容易產(chǎn)生沖突 注意 對(duì)于塊號(hào)相距m整數(shù)倍的兩個(gè)塊 只能映射到Cache的同一行時(shí) 若發(fā)生新塊不在Cache中而對(duì)應(yīng)行號(hào)又已占用時(shí) 就發(fā)生了沖突 只能用新的塊替代原已占Cache此行中的一塊 即使此時(shí)Cache還有其它空行 也不可利用 應(yīng)用 適合大容量cache采用 這種方式是前兩種方式的折衷方案 它將Cache分成u組 每組v行 主存塊存放到哪個(gè)組是固定的 至于存到該組哪一行是靈活的 即有如下函數(shù)關(guān)系 m u v組號(hào)q jmodu組相聯(lián)映射方式中的每組行數(shù)v一般取值較小 這種規(guī)模的v路比較器容易設(shè)計(jì)和實(shí)現(xiàn) 而塊在組中的排放又有一定的靈活性 沖突減少 Cache共8行 分4組 每組2行 即8 4 2 組號(hào)用2bit 組內(nèi)的行號(hào)用1bit 主存256塊 各塊分到Cache的哪個(gè)組是固定的 主存的塊號(hào)j與Cache的組號(hào)q的對(duì)應(yīng)關(guān)系是 q jmod4 即 B0 B4 B8 B252共64個(gè)塊映射到Cache的s0組B1 B5 B9 B253共64個(gè)塊映射到Cache的s1組B2 B6 B10 B254共64個(gè)塊映射到Cache的s2組B3 B7 B11 B255共64個(gè)塊映射到Cache的s3組 主存的 3 組相聯(lián)映射方式 至于具體映射到一個(gè)組中的哪一行 則可以任意 即組間采用直接映射 而組內(nèi)采用全相聯(lián)映射方式 s位的塊號(hào)可分成兩個(gè)部分 低d位為組號(hào) 而高s d位為標(biāo)記 對(duì)于一個(gè)具體地址 首先將根據(jù)其標(biāo)記與所在組的每一個(gè)行比較 查找是否在Cache中 若在 則命中 由低w位的塊內(nèi)地址直接訪問(wèn)Cache中的一個(gè)字 若不在 則訪問(wèn)主存 同時(shí)更新Cache 注意 為了便于比較器實(shí)現(xiàn) 組相聯(lián)映射中的每組行數(shù)v一般取值較小 典型值為2 4 8 16 Cache工作原理要求它盡量保存最新數(shù)據(jù) 必然要產(chǎn)生替換 對(duì)直接映射的Cache來(lái)說(shuō) 只要把此特定位置上的原主存塊換出cache即可 對(duì)全相聯(lián)和組相聯(lián)Cache來(lái)說(shuō) 就要從允許存放新主存塊的若干特定行中選取一行換出 LFU算法將一段時(shí)間內(nèi)被訪問(wèn)次數(shù)最少的那行數(shù)據(jù)換出 每行設(shè)置一個(gè)計(jì)數(shù)器 從0開(kāi)始計(jì)數(shù) 每訪問(wèn)一次 被訪行的計(jì)數(shù)器增1 當(dāng)需要替換時(shí) 將計(jì)數(shù)值最小的行換出 同時(shí)將這些行的計(jì)數(shù)器都清零 換出 替換 淘汰 哪一行 應(yīng)有一定的策略 常用的算法有三種 1最不經(jīng)常使用 LFU 算法 這種算法將計(jì)數(shù)周期限定在對(duì)這些特定行兩次替換之間的間隔時(shí)間內(nèi) 不能嚴(yán)格反映近期訪問(wèn)情況 問(wèn)題 3 5 3 替換策略 2近期最少使用 LRU 算法LRU算法將近期內(nèi)長(zhǎng)久未被訪問(wèn)過(guò)的行換出 每行也設(shè)置一個(gè)計(jì)數(shù)器 Cache每命中一次 命中行計(jì)數(shù)器清零 其它各行計(jì)數(shù)器增1 當(dāng)需要替換時(shí) 將計(jì)數(shù)值最大的行換出 這種算法保護(hù)了剛拷貝到Cache中的新數(shù)據(jù)行 有較高的命中率 3隨機(jī)替換 隨機(jī)替換策略從特定的行位置中隨機(jī)地選取一行換出 在硬件上容易實(shí)現(xiàn) 且速度也比前兩種策略快 缺點(diǎn)是降低了命中率和Cache工作效率 CPU對(duì)cache的寫(xiě)入更改了Cache的內(nèi)容 可選用寫(xiě)操作策略使cache內(nèi)容和主存內(nèi)容保持一致 1寫(xiě)回法當(dāng)CPU寫(xiě)Cache命中時(shí) 只修改Cache的內(nèi)容 而不立即寫(xiě)入主存 只有當(dāng)此行被換出時(shí)才寫(xiě)回主存 這種方法減少了訪問(wèn)主存的次數(shù) 但是存在不一致性的隱患 3 5 4Cache的寫(xiě)操作策略 實(shí)現(xiàn)這種方法時(shí) 每個(gè)Cache行必須配置一個(gè)修改位 以反映此行是否被CPU修改過(guò) 2全寫(xiě)法當(dāng)寫(xiě)Cache命中時(shí) Cache與主存同時(shí)發(fā)生寫(xiě)修改 因而較好地維護(hù)了Cache與主存的內(nèi)容的一致性 當(dāng)寫(xiě)Cache未命中時(shí) 直接向主存進(jìn)行寫(xiě)入 Cache中每行無(wú)需設(shè)置一個(gè)修改位以及相應(yīng)的判斷邏輯 缺點(diǎn)是降低了Cache的功效 3寫(xiě)一次法基于寫(xiě)回法并結(jié)合全寫(xiě)法的寫(xiě)策略 寫(xiě)命中與寫(xiě)未命中的處理方法與寫(xiě)回法基本相同 只是第一次寫(xiě)命中時(shí)要同時(shí)寫(xiě)入主存 這便于維護(hù)系統(tǒng)全部Cache的一致性 奔騰PC機(jī)采用兩級(jí)Cache結(jié)構(gòu) 安裝在主板上的2級(jí)Cache L2 采用2路組相聯(lián)映射方式 集成在CPU內(nèi)的1級(jí)Cache L1 也采用2路組相聯(lián)映射方式 L1又是L2的子集 從而使L1未命中處理時(shí)間大大縮短 CPU中的L1分設(shè)成各8KB的指令Cache和數(shù)據(jù)Cache 有利于CPU高速執(zhí)行程序 數(shù)據(jù)Cache采用2路組相聯(lián)結(jié)構(gòu) 采用LRU替換算法 一組兩行共用一個(gè)LRU二進(jìn)制位 數(shù)據(jù)Cache的工作方式受CPU控制寄存器CR0中CD和NW位組合狀態(tài)控制 如下表3 8所示 3 5 5奔騰PC機(jī)的Cache 其中CD 1 NW 1時(shí)復(fù)位后狀態(tài) 而CD 0 NW 0時(shí)是最佳使用狀態(tài) 兩級(jí)Cache和主存之間的工作環(huán)境方框圖演示CPU與外部數(shù)據(jù)交換時(shí) 存儲(chǔ)器讀寫(xiě)總線周期主要有兩類 一類是256位猝發(fā)式傳送 用于L1的行填入和行寫(xiě)出 一次完成整行的填入或?qū)懗?另一類是不經(jīng)L1的64位傳送 此時(shí)CHACE 為高電平 稱為非超高速緩存式傳送 L2級(jí)Cache采用的是寫(xiě)回法 L1級(jí)數(shù)據(jù)Cache采用的是寫(xiě)一次法 為了維護(hù)Cache的一致性 L1和L2均采用MESI協(xié)議 即要求每個(gè)Cache行有兩個(gè)狀態(tài)位 用以描述該行當(dāng)前是處于修改態(tài) 專有態(tài) 共享態(tài)或者無(wú)效態(tài)中的哪種狀態(tài) 從而決定對(duì)它的讀 寫(xiě)操作行為 總之 L2級(jí)Cache的內(nèi)容是主存的子集 而L1級(jí)Cache又是L2級(jí)Cache的子集 L2負(fù)責(zé)整個(gè)系統(tǒng)的Cache 主存一致性 L1負(fù)責(zé)響應(yīng)L2 與L2一起維護(hù)L1 L2兩個(gè)Cache的一致性 保證三級(jí)存儲(chǔ)系統(tǒng)的一致性 3 6虛擬存儲(chǔ)器 3 6 1虛擬存儲(chǔ)器的基本概念1 什么是虛擬存儲(chǔ)器 虛擬存儲(chǔ)器只是一個(gè)容量非常大的存儲(chǔ)器的邏輯模型 不是任何實(shí)際的物理存儲(chǔ)器 它借助于磁盤(pán)等輔助存儲(chǔ)器來(lái)擴(kuò)大主存容量 使之為更大或更多的程序所使用 它指的是主存 外存層次 以透明的方式給用戶提供了一個(gè)比實(shí)際主存空間大得多的程序地址空間 注意 物理地址由CPU地址引腳送出 用于訪問(wèn)主存的地址 虛擬地址由編譯程序生成的 是程序的邏輯地址 其地址空間的大小受到輔助存儲(chǔ)器容量的限制 主存 外存層次和cache 主存層次用的地址變換映射方法和替換策略是相同的 都基于程序局部性原理 它們遵循的原則是 把程序中最近常用的部分駐留在高速的存儲(chǔ)器中 一旦這部分變得不常用了 把它們送回到低速的存儲(chǔ)器中 這種換入換出是由硬件或操作系統(tǒng)完成的 對(duì)用戶是透明的 力圖使存儲(chǔ)系統(tǒng)的性能接近高速存儲(chǔ)器 價(jià)格接近低速存儲(chǔ)器 兩種存儲(chǔ)系統(tǒng)的主要區(qū)別在于 在虛擬存儲(chǔ)器中未命中的性能損失要遠(yuǎn)大于Cache系統(tǒng)中未命中的損失 2 主存 外存層次的基本信息傳送單位 主存 外存層次的基本信息傳送單位可采用幾種不同的方案 段 頁(yè)或段頁(yè) 段是按照程序的邏輯結(jié)構(gòu)劃分成的多個(gè)相對(duì)獨(dú)立部分 作為獨(dú)立的邏輯單位 優(yōu)點(diǎn)是段的邏輯獨(dú)立性使它易于編譯 管理 修改和保護(hù) 也便于多道程序共享 某些類型的段具有動(dòng)態(tài)可變長(zhǎng)度 允許自由調(diào)度以便有效利用主存空間 缺點(diǎn)是因?yàn)槎蔚拈L(zhǎng)度各不相同 起點(diǎn)和終點(diǎn)不定 給主存空間分配帶來(lái)麻煩 而且容易在段間留下許多空余的零碎存儲(chǔ)空間 造成浪費(fèi) 頁(yè)是主存物理空間中劃分出來(lái)的等長(zhǎng)的固定區(qū)域 優(yōu)點(diǎn)是頁(yè)面的起點(diǎn)和終點(diǎn)地址是固定的 方便造頁(yè)表 新頁(yè)調(diào)入主存也很容易掌握 比段式空間浪費(fèi)小 缺點(diǎn)是處理 保護(hù)和共享都不及段式來(lái)得方便 段頁(yè)式管理采用分段和分頁(yè)結(jié)合的方法 程序按模塊分段 段內(nèi)再分頁(yè) 進(jìn)入主存以頁(yè)為基本信息傳送單位 用段表和頁(yè)表進(jìn)行兩級(jí)定位管理 1 分頁(yè)的方法頁(yè)式虛擬存儲(chǔ)系統(tǒng)中 虛擬空間分成頁(yè) 稱為邏輯頁(yè) 主存空間也分成同樣大小的頁(yè) 稱為物理頁(yè) 虛存地址分為兩個(gè)字段 實(shí)存地址也分兩個(gè)字段 2 建立頁(yè)表頁(yè)表中每一個(gè)虛存邏輯頁(yè)號(hào)有一個(gè)表目 表目?jī)?nèi)容包含該邏輯頁(yè)所在的主存頁(yè)面地址 物理頁(yè)號(hào) 及控制位 裝入位 修改位等 3 地址變換當(dāng)程序被調(diào)入系統(tǒng)運(yùn)行時(shí) 頁(yè)表調(diào)入內(nèi)存 其首地址裝入頁(yè)表基地址寄存器 以一個(gè)虛存地址訪問(wèn)存儲(chǔ)器時(shí) 首先根據(jù)邏輯頁(yè)號(hào)查頁(yè)表 若該頁(yè)已裝入 則可得其主存物理頁(yè)號(hào) 用它作為實(shí)存地址的高位字段 與虛存地址的頁(yè)內(nèi)行地址字段相拼接 產(chǎn)生完整的實(shí)主存地址 據(jù)此來(lái)訪問(wèn)主存 若該頁(yè)未裝入 則發(fā)生缺頁(yè)中斷 由OS調(diào)入該頁(yè) 并記入頁(yè)表中 4 速度影響 由于查表過(guò)程需要時(shí)間 所以運(yùn)行速度變慢 邏輯頁(yè)號(hào)頁(yè)內(nèi)行地址 物理頁(yè)號(hào)頁(yè)內(nèi)行地址 3 6 2頁(yè)式虛擬存儲(chǔ)器 為了避免頁(yè)表已保存或已調(diào)入主存儲(chǔ)器時(shí)對(duì)主存訪問(wèn)次數(shù)的增多 把頁(yè)表的最活躍部分存放在高速存儲(chǔ)器中組成快表 快表與慢表實(shí)現(xiàn)內(nèi)部地址變換的方式演示 快表由硬件組成 比頁(yè)表小得多 查表時(shí) 由邏輯頁(yè)號(hào)同時(shí)去查快表和慢表 當(dāng)在快表中有此邏輯頁(yè)號(hào)時(shí) 就能很快地找到對(duì)應(yīng)的物理頁(yè)號(hào)送入實(shí)主存地址寄存器 從而做到雖采用虛擬存儲(chǔ)器但訪主存速度幾乎沒(méi)有下降 GC88 8某虛擬存儲(chǔ)器的用戶編程空間共32個(gè)頁(yè)面 每頁(yè)1KB 主存為16KB 假定某時(shí)刻該用戶頁(yè)表中已調(diào)入主存的頁(yè)面的虛頁(yè)號(hào)和物理頁(yè)號(hào)對(duì)照表為 虛頁(yè)號(hào)物理頁(yè)號(hào)051102487 則下表中與虛地址相對(duì)應(yīng)的物理地址為 如果找不到 即為頁(yè)失效 虛擬地址物理地址0A5CH1A5CH 虛擬存儲(chǔ)器的功能是由完成的 在虛擬存儲(chǔ)系統(tǒng)中 采用提高的速度 A B 頁(yè)失效 1E5CH 2A5CH 165CH 125CH 1A5CHC 硬件 軟件 軟硬件結(jié)合D 高速輔助存儲(chǔ)器 高速光盤(pán)存儲(chǔ)器 快速通道 高速緩沖存儲(chǔ)器E 連接編輯 虛空間分配 動(dòng)態(tài)地址翻譯 動(dòng)態(tài)連接 A B C D E 頁(yè)式的不足需要對(duì)程序進(jìn)行靜態(tài)鏈接 形成一個(gè)一維邏輯地址空間 不便于頁(yè)面的共享 因鏈接可能造成一頁(yè)有共享和不共享內(nèi)容 分段的方法按程序的邏輯結(jié)構(gòu)劃分 各個(gè)段的長(zhǎng)度因程序而異 程序?yàn)槎S地址結(jié)構(gòu) 每個(gè)段均從0開(kāi)始編址 建立段表每一個(gè)段有一個(gè)表目 內(nèi)容包括 段號(hào)段內(nèi)行地址 段起始地址裝入位段長(zhǎng) 地址變換 程序運(yùn)行時(shí) 段表裝入內(nèi)存 段表首地址裝入段標(biāo)基址寄存器 對(duì)于一個(gè)要訪問(wèn)的邏輯地址 根據(jù)段號(hào)查段表 若裝入位為 1 則表示該段已裝入內(nèi)存 由段表可取該段在內(nèi)存中的段起始地址 由 段起始地址 段內(nèi)地址 即可得所對(duì)應(yīng)的物理地址 邏輯地址為 3 6 3段式虛擬存儲(chǔ)器 段表也是一個(gè)段 可以存在外存中 但一般是駐留在主存中 虛存地址向?qū)嵈娴刂返淖儞Q過(guò)程演示 1 段式的問(wèn)題因段長(zhǎng)不等 容易造成存儲(chǔ)碎片 新入段只能 替換段 2 段頁(yè)式的實(shí)現(xiàn)段頁(yè)式虛擬存儲(chǔ)器是段式和頁(yè)式虛擬存儲(chǔ)器的結(jié)合 它把程序按邏輯單位分段以后 再把每段分成固定大小的頁(yè) 在段頁(yè)式虛擬存儲(chǔ)系統(tǒng)中 每道程序是通過(guò)一個(gè)段表和一組頁(yè)表來(lái)進(jìn)行定位的 段表中的每個(gè)表目對(duì)應(yīng)一個(gè)段 每個(gè)表目有一個(gè)指向該段的頁(yè)表起始地址及該段的控制保護(hù)信息 由頁(yè)表指明該段各頁(yè)在主存中的位置以及是否已裝入 已修改等狀態(tài)信息 如果有多個(gè)用戶在機(jī)器上運(yùn)行 多道程序的每一道需要一個(gè)基號(hào) 由它指明該道程序的段表起始地址 虛擬地址格式如下 地址變換先查段表找到該段所對(duì)應(yīng)的頁(yè)表 再查頁(yè)表轉(zhuǎn)換成物理地址 優(yōu)缺點(diǎn)優(yōu)點(diǎn) 程序?qū)χ鞔娴恼{(diào)入調(diào)出是按頁(yè)面進(jìn)行的 但它又可以按段 3 6 4段頁(yè)式虛擬存儲(chǔ)器 實(shí)現(xiàn)共享和保護(hù) 兼?zhèn)漤?yè)式和段式的優(yōu)點(diǎn) 缺點(diǎn) 在映象過(guò)程中需要多次查表 降低了程序的運(yùn)行速度 例6 假設(shè)有三道程序 用戶標(biāo)志號(hào)為A B C 其基址寄存器內(nèi)容分別為SA SB SC 邏輯地址到物理地址的變換過(guò)程見(jiàn)演示在主存中 每道程序都有一張段表 A程序有4段 C程序有3段 每段應(yīng)有一張頁(yè)表 段表的每行就表示相應(yīng)頁(yè)表的起始位置 而頁(yè)表內(nèi)的每行即為相應(yīng)的物理頁(yè)號(hào) 請(qǐng)說(shuō)明虛實(shí)地址變換過(guò)程 解 地址變換過(guò)程如下 根據(jù)基號(hào)C執(zhí)行SC加1 段號(hào) 操作 得到段表相應(yīng)行地址 其內(nèi)容為頁(yè)表的起始地址 執(zhí)行b 2 頁(yè)號(hào) 得到物理頁(yè)號(hào)的地址 其內(nèi)容即為物理頁(yè)10 物理頁(yè)號(hào)與頁(yè)內(nèi)地址拼接即得物理地址 如計(jì)算機(jī)只有一個(gè)基址寄存器 基號(hào)可不要 多道程序切換時(shí) 操作系統(tǒng)修改基址寄存器內(nèi)容 可以看出 段頁(yè)式虛擬存儲(chǔ)系統(tǒng)由虛擬地址向主存地址的變換至少需要查兩次表 虛擬存儲(chǔ)器中的頁(yè)面替換策略和cache中的行替換策略有很多相似之處 但有三點(diǎn)顯著不同 1 缺頁(yè)至少要涉及一次磁盤(pán)存取 讀取所缺的頁(yè) 缺頁(yè)使系統(tǒng)蒙受的損失要比cache未命中大得多 2 頁(yè)面替換是由操作系統(tǒng)軟件實(shí)現(xiàn)的 3 頁(yè)面替換的選擇余地很大 屬于一個(gè)進(jìn)程的頁(yè)面都可替換 虛擬存儲(chǔ)器中的替換策略一般采用LRU算法 LFU算法 FIFO算法 或?qū)煞N算法結(jié)合起來(lái)使用 對(duì)于將被替換出去的頁(yè)面 假如該頁(yè)調(diào)入主存后沒(méi)有被修改 就不必進(jìn)行處理 否則就把該頁(yè)重新寫(xiě)入外存 以保證外存中數(shù)據(jù)的正確性 為此 在頁(yè)表的每一行應(yīng)設(shè)置一修改位 例7 假設(shè)主存只有a b c三個(gè)頁(yè)框 組成a進(jìn)c出的FIFO隊(duì)列 進(jìn)程訪問(wèn)頁(yè)面的序列是0 1 2 4 2 3 0 2 1 3 2號(hào) 若采用 FIFO算法 FIFO算法 LRU算法 用列表法分別求兩種替換策略情況下的命中率 解 求解表格如下所示 3 6 5替換算法 1 奔騰PC的虛地址模式 奔騰PC的存儲(chǔ)管理部件MMU包括分段部件SU和分頁(yè)部件PU兩部份 可允許SU PU單獨(dú)工作或同時(shí)工作 3 6 6虛擬存儲(chǔ)器實(shí)例 分段不分頁(yè)模式 虛擬地址由一個(gè)16位的段參照和一個(gè)32位的偏移組成 分段部件SU將二維的分段虛擬地址轉(zhuǎn)換成一維的32位線性地址 優(yōu)點(diǎn)是無(wú)需訪問(wèn)頁(yè)目錄和頁(yè)表 地址轉(zhuǎn)換速度快 對(duì)段提供的一些保護(hù)定義可以一直貫通到段的單個(gè)字節(jié)級(jí) 分段分頁(yè)模式 在分段基礎(chǔ)上增加分頁(yè)存儲(chǔ)管理的模式 即將SU部件轉(zhuǎn)換后的32位線性地址看成由頁(yè)目錄 頁(yè)表 頁(yè)內(nèi)偏移三個(gè)字段組成 再由PU部件完成兩級(jí)頁(yè)表的查找 將其轉(zhuǎn)換成32位物理地址 兼顧了分段和分頁(yè)兩種方式的優(yōu)點(diǎn) 不分段分頁(yè)模式 這種模式下SU不工作 只是分頁(yè)部件PU工作 程序也不提供段參照 寄存器提供的32位地址被看成是由頁(yè)目錄 頁(yè)表 頁(yè)內(nèi)偏移三個(gè)字段組成 由PU完成虛擬地址到物理地址的轉(zhuǎn)換 這種模式減少了虛擬空間 但能提供保護(hù)機(jī)制 比分段模式具有更大的靈活性 2 保護(hù)模式的分頁(yè)地址轉(zhuǎn)換奔騰機(jī)4MB分頁(yè)方式地址轉(zhuǎn)換演示 頁(yè)面 頁(yè)框 大小為4MB的分頁(yè)方式使用單級(jí)頁(yè)表 只進(jìn)行一次主存訪問(wèn) 地址轉(zhuǎn)換過(guò)程加快了 在此方式下 32位線性地址分為高10位的頁(yè)面和低22位的頁(yè)內(nèi)偏移兩個(gè)字段 頁(yè)表項(xiàng)的I位指示頁(yè)面大小 P位為出現(xiàn)位 A位為訪問(wèn)過(guò)位 D位為修改過(guò)位 RW位用于讀 寫(xiě)控制 US位用于用戶 監(jiān)督控制 PCD位用于頁(yè)cache禁止的控制 PWT位用于頁(yè)全寫(xiě)法的控制 3 7存儲(chǔ)保護(hù) 3 7 1存儲(chǔ)區(qū)域保護(hù)當(dāng)多個(gè)用戶共享主存時(shí) 應(yīng)防止由于一個(gè)用戶程序出錯(cuò)而破壞其他用戶的程序和系統(tǒng)軟件 以及一個(gè)用戶程序不合法地訪問(wèn)不是分配給它的主存區(qū)域 在虛擬存儲(chǔ)系統(tǒng)中 通常采用頁(yè)表保護(hù) 段表保護(hù)和鍵式保護(hù)方法 1 頁(yè)表保護(hù)和段表保護(hù) 每個(gè)程序的段表和頁(yè)表本身都有自己的保護(hù)功能 每個(gè)程序的虛頁(yè)號(hào)是固定的 經(jīng)過(guò)虛地址向?qū)嵉刂纷儞Q后的實(shí)存頁(yè)號(hào)也就固定了 那么不論虛地址如何出錯(cuò) 也只能影響到相對(duì)的幾個(gè)主存頁(yè)面 不會(huì)侵犯其他程序空間 段表和頁(yè)表的保護(hù)功能相同 但段表中除包括段表起點(diǎn)外 還包括段長(zhǎng) 段表保護(hù)方式演示 2 鍵保護(hù)方式 這種方法是為主存的每一頁(yè)配一個(gè)鍵 稱為存儲(chǔ)鍵 就象一把鎖 每個(gè)用戶的實(shí)存頁(yè)面的鍵都相同 為了打開(kāi)這個(gè)鎖 必須有鑰匙 稱為訪問(wèn)鍵 訪問(wèn)鍵賦予每道程序 并保存在該道程序的狀態(tài)寄存器中 當(dāng)數(shù)據(jù)要寫(xiě)入主存的某一頁(yè)時(shí) 訪問(wèn)鍵要與存儲(chǔ)鍵相比較 若兩鍵相符 則允許訪問(wèn)該頁(yè) 否則拒絕訪問(wèn) 鍵保護(hù)方式演示 3 環(huán)保護(hù)方式 環(huán)保護(hù)方式可以做到對(duì)正在執(zhí)行的程序本身的核心部分或關(guān)鍵部分進(jìn)行保護(hù) 它是按系統(tǒng)程序和用戶程序的重要性及對(duì)整個(gè)系統(tǒng)的正常運(yùn)行的影響程度進(jìn)行分層 每一層叫做一個(gè)環(huán) 在現(xiàn)行程序運(yùn)行前由操作系統(tǒng)定好程序各頁(yè)的環(huán)號(hào) 并置入頁(yè)表中 然后把該道程序的開(kāi)始環(huán)號(hào)送入CPU的現(xiàn)行環(huán)號(hào)寄存器 程序可以訪問(wèn)任何 外層空間 訪問(wèn)內(nèi)層空間則需由操作系統(tǒng)的環(huán)控例行程序判斷這個(gè)向內(nèi)訪問(wèn)是否合法 環(huán)保護(hù)方式演示 對(duì)主存信息的使用可以有三種方式 讀 R 寫(xiě) W 和執(zhí)行 E 相應(yīng)的訪問(wèn)方式保護(hù)就有R W E三種方式形成的邏輯組合 這些訪問(wèn)方式保護(hù)通常作為程序狀態(tài)寄存器的保護(hù)位 并且和區(qū)域保護(hù)結(jié)合起來(lái)實(shí)現(xiàn) 表3 11訪問(wèn)方式保護(hù)的邏輯組合 3 7 2訪問(wèn)方式保護(hù) 三級(jí)存儲(chǔ)存儲(chǔ)體系結(jié)構(gòu)的含義及作用存儲(chǔ)器的技術(shù)指標(biāo) SRAM和DRAM的異同只讀存儲(chǔ)器的特點(diǎn) 種類和作用位擴(kuò)展 字?jǐn)U展及存儲(chǔ)器與CPU的連接提高存取速度的措施高速緩沖存儲(chǔ)器的作用虛擬存儲(chǔ)器的含義 作用不同虛擬存儲(chǔ)器管理模式及其地址轉(zhuǎn)換 本章要點(diǎn)- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 計(jì)算機(jī)組成原理 計(jì)算機(jī) 組成 原理 PPT 課件
鏈接地址:http://m.zhongcaozhi.com.cn/p-6346488.html