第三章 存儲器的層次結構
總覽:
- 存儲器的分類
- 存儲器的層次化結構
- 半導體隨機存取存儲器
- SRAM存儲器
- DRAM存儲器
- 只讀存儲器
- Flash存儲器
- 主存儲器與CPU的連接
- 雙口RAM和多模塊存儲器
- 高速緩沖存儲器
- Cache的基本工作原理
- Cache和主存之間的映射方式
- Cache中主存塊的替換算法
- Cache寫操作策略
- 虛擬存儲器
- 虛擬存儲器的基本概念
- 頁式虛擬存儲器
- 段式虛擬存儲器
- 段頁式虛擬存儲器
- TLB(快表)
- 外存儲器
- 存儲器的基本概念
- 存儲器的分類
- 按存儲器介質分類:半導體、磁表面、磁心、光盤
- 按存取方式分類:RAM/ROM/順序存取存儲器/直接存取存儲器
- 按在計算機中的作用分類:主存、輔存、緩沖存儲器
- 存儲器的性能指標
- 存儲容量=存儲字數*字長
- 單位成本:每位價格=總成本/總容量
- 存儲速度:數據傳輸率=數據的寬度/存儲周期
- 存儲周期:從上一次訪問存儲器的操作開始(讀/寫),到下一次訪問存儲器的操作(讀/寫)為止,所花費的總時間。
- 存儲器的分類
- 存儲器的層次化結構
- 半導體隨機存取存儲器
- 基本概念
- 基本結構
- 譯碼驅動方式
- 線選法:假設矩陣有N行,則地址線有條,向上取整;讀/寫控制電路與矩陣每行的位數相同
- 重合法:有X地址譯碼器和Y地址譯碼器,通過坐標定位單元,有單獨的讀/寫控制電路
- 讀周期指芯片兩次連續讀操作的最小時間間隔;讀時間表示進行一次存儲器讀操作的時間,顯然讀時間小於讀周期;寫周期與寫時間類似。
- 基本結構
- SRAM存儲器
- 規定:T1通、T2止,存"0";T1止、T2通,存"1"
- 電路圖
- DRAM存儲器
- 工作原理:電容上有電荷存"1",電容上無電荷存"0",需要刷新
- 電路圖
- DRAM存儲器的刷新:讀出後再原樣寫入,如果題目沒有特別註明,刷新一行的時間就是一個存儲周期;如果說明了刷新操作由讀操作和寫操作一起執行,那麽刷新一行的時間就按照兩倍的存儲周期計算。
- 集中刷新:集中在一段時間內刷新(死時間)
- 分散刷新:分散的周期性的進行
- 異步刷新:有計劃的刷新
- 刷新和再生的區別
對某個單元的刷新和再生操作過程是一樣的,即讀後恢復,但再生操作是隨機的,只對所讀單元進行,而刷新操作是按順序定時一行一行進行的。
- 只讀存儲器
- Flash存儲器
- 基本概念
- 主存儲器與CPU連接
- 位擴充:僅擴充數據線。
- 字擴充:僅擴充地址線,擴充的地址線作為片選信號。
- 字位擴充:先進行位擴充,對芯片進行分組,再進行自擴充。
- 雙口RAM和多模塊存儲器
- 雙口RAM
- 單體多字存儲器:指令和數據在主存內必須連續存放才能發揮預期效果
- 多體並行存儲器
高位交叉編址的多體存儲器(順序存儲)
低位交叉編制的多體寄存器(交叉存儲)
特點
每個模塊內的體內地址是連續的,高位表示體號,低位表示體內地址
程序存放在相鄰的體中,低位用來表示體號,高位用來定位體內地址
優點
非常有利於存儲器的擴充,只需將存儲單元的編號往後加即可
可以實現多模塊流水線式並行存取,同時從主存中取出n條指令,大大提高存儲器的帶寬
缺點
由於各個模塊一個接一個的串行工作,因此存儲器的帶寬收到限制
並行的體現
不同的請求源並行的訪問不同的體
同一請求源並行的訪問不同的體
- 高速緩沖存儲器(Cache)
- 基本工作原理:局部性原理(時間、空間)
- 主存和Cache的編址:主存中的每塊大小應與Cache中每塊的大小相同
- 主存
主存的地址分為兩部分:一部分用來尋找某個字塊;另一部分用來尋找該字塊中的字或字節。
- Cache
Cache的地址也分為兩部分:高c位表示Cache的塊號,低b位表示其塊內的字或者字節數,Cache的塊數遠小於主存塊數。
命中率的概念:CPU要訪問的信息在Cache中的比例
平均訪問時間的概念:假設命中率為h,tc為命中時訪問Cache的時間,tm為未命中時的主存訪問時間,則Cache主存系統的平均訪問時間ta為:
Ta=h*tc+(1-h)*tm
Cache主存系統效率的概念:
用e表示效率,則e=tc/ta
Cache的命中率只和Cache的容量、Cache的字塊長度有關
- 主存
- Cache的基本結構
- 主存和Cache的編址:主存中的每塊大小應與Cache中每塊的大小相同
- Cache與主存之間的映射方式
直接映射
全相聯映射
組相聯映射
優點
1)實現簡單。利用主存地址之間判斷,即可確定所需字塊是夠在Cache中。
2)無需考慮替換策略
1) Cache的命中率可以提高
2)"有位置就可以做",Cache的利用率提高
對直接映射和全相聯映射進行折中的一種方式,組相連映射中的一組看做直接相聯中的一塊。
缺點
- 不夠靈活
- 沖突概率高
Tag的位數增加了,訪問Cache時主存字塊標記需要和Cache的全部"標記"進行比較,才能判斷所訪問的主存地址的內容是否已在Cache內。
應用場合
適合大容量Cache
適用於小容量的Cache
操作原理
首先,CPU指令指出一個內存地址,該地址包含tag、塊號、字等字段。然後,根據內存地址的塊號c找到Cache中對應的塊號,找到Cache中對應的塊號後將該塊中的標記和內存地址中的t位tag標記送入比較器比較。若相符且有效位為"1",即表示命中,然後用內存地址的低b位在Cache中讀取所需要的字即可。若不相符或有效位為"0",則需要從主存中讀取所需要的塊來替換Cache中舊的塊,同時將信息送往CPU,修改Cache的標記,如果原來有效位為"0",還得將有效位置"1"
首先,CPU訪存指令指出一個內存地址,該內存地址包含塊號、字等字段。為了加快檢索速度,Cache所有行的標記位和內存地址的塊號一同送入比較器中比較,如果塊號命中,則直接從Cache命中的塊號中讀取所需的字;如果塊號不命中,則按內存地址讀取這個字,同時吧內存塊讀入Cache行中。
首先,CPU訪存指令指出一個內存地址,該地址包含tag、組號、字等字段。通過組號找到Cache中對應的組,然後將Cache該組中每一塊的tag和內存地址的tag送入比較器進行比較。如果Cache中由某塊的tag與之符合,則表示Cache命中,通過內存地址的低b位確定需要該塊中的哪一個字,然後進行存取操作。如果Cache中每行tag都與之不相符,則不命中,需要去內存取需要的字,並將內存中該字所在的塊送入Cache中
- Cache中主存塊的替換算法
- FIFO
- LRU
- 隨機法
- Cache寫操作策略:CPU更改了Cache的內容,會導致Cache的內容和主存內容不一致。
- 寫回法
- 全寫法
- 寫一次法
- 基本工作原理:局部性原理(時間、空間)
- 虛擬存儲器
- 基本概念
頁式虛擬存儲器
段式虛擬存儲器
段頁式虛擬存儲器
劃分單位
頁
段
把程序分段,再把每個段分固定大小的頁
優點
由於頁面的起點、終點地址是固定的,因此頁表簡單,調入方便,主存空間浪費小。
段的分界與程序的自然分界相對應;段的邏輯獨立性使他易於編譯、管理、修改和保護,也便於多道程序共享;某些類型的段(堆棧、隊列)具有動態可變長度,允許自由調度以便有效利用主存空間。
兼備頁式虛擬存儲器和段式虛擬存儲器的優點。
缺點
由於頁面不是邏輯上的獨立實體,因此處理、保護和共享都不如段式虛擬存儲器方便。
段的長度各不相同,段的起點和終點不定,給主存空間分配帶來麻煩,而且容易在段間留下去多空余的不易利用的零散存儲空間,造成浪費。
在地址映射過程中需要多次查表。
- TLB(快表):快表是頁表的子集,快表命中頁表一定命中
- 基本概念
- 外存儲器
- 硬盤存儲器
- 如何記錄數據:歸零制(RZ)、不歸零制(NRZ)、"見1就翻"的不歸零制"NRZ1"
- 技術指標:記錄密度、存儲容量、平均尋址時間、數據傳輸率、誤碼率
- 磁盤陣列
- RAID0
- RAID1
- 光盤存儲器
- 只讀型光盤CD-ROM
- 只寫一次型光盤
- 可擦寫光盤
- 硬盤存儲器
感想:
上一章是看了難的不會做,這一章是看了和沒看一樣,根本不知道題目到底該咋做,TAT;昨天關word的時候居然忘了保存,今天寫的80%都是昨天寫的TAT;博客只總結了絕大部分的概念,對於計算題沒有涉及。
第三章 存儲器的層次結構