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