计算机组成原理学习 笔记三
存儲系統(tǒng)
主存簡單模型
→地址寄存器(MAR)→存儲體→數(shù)據(jù)寄存器(MDR)→
由控制電路控制整個存儲器,擁有片選線,讀控制線,寫控制線
利用譯碼器簡化地址線利用n位地址控制2^n個存儲單元? ? 總?cè)萘?#61;存儲單元個數(shù)×存儲字長
以上的部件組合起來就是存儲器芯片
?
尋址
按字節(jié)、字、半字、雙字尋址,提供編號,根據(jù)這個編號來定位這個字節(jié)、字、半字、雙字
多字節(jié)存放方式:大小端
?
半導(dǎo)體存儲芯片的基本結(jié)構(gòu)
1、存儲矩陣:由大量相同的位存儲單元陣列構(gòu)成
2、譯碼驅(qū)動:將來自地址總線的地址信號翻譯成對應(yīng)存儲單元的選通信號,該信號在讀寫電路的配合下完成對被選中單元的讀/寫操作。
3、讀寫電路:包括讀出放大器和寫入電路,用來完成讀/寫操作。
4、讀/寫控制線:決定芯片進行讀/寫操作。
5、片選線:確定哪個存儲芯片被選中,可用于容量擴充。
6、地址線:是單向輸入的,其位數(shù)與存儲字的個數(shù)有關(guān)。
7、數(shù)據(jù)線:是雙向的,其位數(shù)與讀出或?qū)懭氲臄?shù)據(jù)位數(shù)有關(guān)。
8、數(shù)據(jù)線數(shù)和地址線數(shù)共同反映存儲芯片容量的大小。
?
| ? | SRAM | DRAM |
| 存儲信息(0、1) | 由觸發(fā)器構(gòu)成 | 電容構(gòu)成 |
| 破壞性讀出 | 根據(jù)電平判斷數(shù)據(jù) | 讀數(shù)據(jù)后要給電容重新充電 |
| 是否需要刷新 | 不需要觸發(fā)器可以保持信號 | 需要電容一般在2ms電流消失 |
| 輸送地址位 | 同時輸送行地址和列地址 | 分時輸送行地址和列地址(地址線復(fù)用,地址線減少一半) |
| 運行速度 | 快 | 慢 |
| 集成度 | 低,由六個邏輯原件構(gòu)成 | 高,由一個或三個邏輯元件構(gòu)成 |
| 發(fā)熱量 | 大 | 小 |
| 存儲成本 | 高 | 低 |
SRAM主要用作緩存,DRAM用作主存
DRAM的兩種刷新:①分散刷新,每次讀寫完都刷新一次,②集中刷新,2ms內(nèi)集中安排時間全部刷新,但有一段時間無法訪問存儲器,稱為訪存“死區(qū)”,③異步刷新,2ms內(nèi)每行刷新一次即可。三種模式均以行為單位,不需要CPU控制,存儲器中所有芯片同時刷新。
SRAM的讀/寫周期:啟動存儲到存儲結(jié)束為存取時間,存儲結(jié)束到能開始下一次存儲的過程為恢復(fù)時間,整個時間為存儲周期。
ROM
PROM:可編程但僅能燒寫一次。EPROM:可擦除可編程,需要使用紫外線擦除?EEPROM:可擦除可編程,電擦除。?
?
存儲器的分類
從作用(層次):高速緩沖存儲器,主存儲器,輔助存儲器
存儲介質(zhì):磁芯、磁表面、半導(dǎo)體、光存儲
信息可保存性:掉電是否丟失信息,是否破壞讀出
存儲方式:隨機、串行
存儲性能:存儲容量、成本、速度、存取時間、存取周期、主存帶寬
層次化結(jié)構(gòu):cache-主存層次:硬件實現(xiàn),解決速度不匹配問題;主存-輔存:硬件+操作系統(tǒng)實現(xiàn),解決容量問題,逐漸形成虛擬存儲系統(tǒng)。
?
主存與CPU的連接
確認數(shù)據(jù)線、地址線,選擇存儲芯片,分析地址空間,系統(tǒng)程序區(qū)用ROM,用戶程序區(qū)用RAM
主存容量-字?jǐn)U展:線選法,用地址線直接控制某一CS,電路簡單,地址空間不連續(xù)
譯碼片選法-字?jǐn)U展,電路復(fù)雜,地址空間連續(xù)、可以增加邏輯設(shè)計
?
雙端口RAM?
連接兩根數(shù)據(jù)線,兩根地址線,兩根控制線,添加busy線,當(dāng)兩個CPU同時訪問同一地址單元時返回busy信號
多模塊存儲器
普通存儲器:每行為1個存儲單元。多體多字存儲器,每個存儲單元存儲m個字,每個模塊擁有相同的容量和讀取速度,各模塊有獨立的讀寫控制電路、地址寄存器和數(shù)據(jù)寄存器。既能并行工作,又能交叉工作。
高低位交叉編址:用高位或地位地址進行體外的編址,低位或高位進行體內(nèi)的編址
低位交叉編址引出流水線概念
?
高速緩沖存儲器
程序的局部性原理
空間局部性:在最近的未來要用到的信息(指令和數(shù)據(jù)),很可能與現(xiàn)在正在使用的信息在存儲空間上是鄰近的
時間局部性:在最近的未來要用到的信息,和可能是現(xiàn)在正在使用的信息
命中率:CPU欲訪問的信息已在Cache中的比率? ? ? ? ? ? ? ? ? ?缺失率=1-命中率
?
cache與主存的地址映射
空位隨意存放:①全相聯(lián)映射? ? 👉? 主存字塊標(biāo)記+字塊內(nèi)地址(空位利用率高,主存字塊標(biāo)記多)
對號入座:②直接映射? ? ?主存塊號除以cache的余數(shù)就是放置位置? ? 當(dāng)cache位置不夠,重新從頭順序放置? ? ? 👉? 主存字塊標(biāo)記+cache字塊地址+字塊內(nèi)地址(對空位利用率低,主存字塊標(biāo)記少)
按號分組,組內(nèi)隨意放:③組相聯(lián)映射? ? ?將cache分組? ?👉主存字塊標(biāo)記+組地址+字塊內(nèi)地址
?
cache中存儲的內(nèi)容:標(biāo)記項{【有效位+標(biāo)記位(主存字塊標(biāo)記)】→地址映射+替換算法控制位→替換算法+一致性維護位(臟位)→寫策略}+數(shù)據(jù)
?
Cache替換算法和寫策略(Cache滿了如何處理和內(nèi)容修改后如何和主存保持一致)
替換算法:
1、隨機算法RAND:隨機替換Cache的塊。沒有遵循局部性原理,因此命中率較低。
2、先進先出FIFO:選擇最早調(diào)入的Cache行進行替換。同樣沒有遵循局部性原理,有可能把常用行替換掉。
3、近期最少使用算法LRU:遵循程序訪問的局部性原理選擇近期內(nèi)長時間沒有訪問的塊進行替換。
LRU算法對Cache中每一行設(shè)置一個計數(shù)器,每當(dāng)cache命中一次,對該行置0,其他+1,替換時將擁有最大值的行替換。
4、最不經(jīng)常使用算法LFU:將一段時間內(nèi)被訪問次數(shù)最少的Cache行替換。
LFU算法同樣有計數(shù)器,命中行+1,其他不變,替換時替換最小數(shù)的行。
寫策略:
設(shè)置一個臟位作為修改標(biāo)志位
寫回法:當(dāng)cache內(nèi)容被改動,不立即寫回主存,只有當(dāng)cache相應(yīng)塊被替換,才修改主存相應(yīng)內(nèi)容。
全寫法:當(dāng)CPU對Cache寫命中時,將數(shù)據(jù)同時寫入cache和主存,一般使用寫緩沖(因為CPU更快,寫緩沖較緩慢,有可能溢出)。
寫分配法:把主存中的塊調(diào)入Cache,在Cache中修改。(搭配寫回法)
非寫分配法:只寫入主存,不調(diào)入Cache。(搭配全寫法)
?
虛擬存儲器
提高存儲器與存儲系統(tǒng)的工作系統(tǒng),提高存儲系統(tǒng)的容量
主機與輔助存儲器之間的連接
功能:用戶給出一個地址,叫做虛地址或邏輯地址,虛擬存儲器要給出該地址對應(yīng)的數(shù)據(jù)。
實現(xiàn):由輔助硬件將虛地址映射到主存當(dāng)中的某個單元,主存單元地址為實地址或物理地址。
?
頁式虛擬存儲器
虛擬空間與主存空間被劃分為同樣大小的頁,虛頁和實頁(頁號+頁內(nèi)地址)
虛頁號與由頁表基址寄存器提供的頁表起始地址組成頁表項地址,在頁表中查找到實頁號,實頁號與頁內(nèi)地址(主存地址)組合到Cache-主存中使用
?
段式虛擬存儲器
劃分方法改為段劃分,每個段的長度因程序而異。? ? ? ? ? ? ?對應(yīng)頁式結(jié)構(gòu)是段號+段內(nèi)地址
段表:每一行中記錄的是某個段中的段號、裝入點、段起點和段長等信息。
?
段頁式虛擬存儲器
每個程序?qū)?yīng)段表,每個段又對應(yīng)一個頁表。虛擬地址:段號+段內(nèi)頁號+頁內(nèi)地址
無論是頁表還是段表,都放在主存當(dāng)中
由于主存速度較慢,因此存放在主存中的頁表稱為慢表;為了提高速度,將頁表放在高速緩沖存儲器中,稱為快表。
?虛擬存儲器先訪問快表,如未命中,再訪問慢表,都沒命中,則調(diào)整頁面更新快慢表,一旦命中,則送入cache,若命中,處理數(shù)據(jù),未命中就需要訪問主存處理數(shù)據(jù)。
快表為慢表的副本,Cache為主存的副本。
?
?
總結(jié)
以上是生活随笔為你收集整理的计算机组成原理学习 笔记三的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转载】win10环境下,利用自带虚拟机
- 下一篇: HarvestText