存儲器的層次結(jié)構(gòu)原理圖解分析
存儲器的層次結(jié)構(gòu)原理圖解分析
? 學習目錄:
??? 理解多級存儲層次的思想及其作用;
??? 掌握存儲層次的三個性能參數(shù)的定義及計算方法;
??? 掌握“Cache-主存”層次、“主存-輔存”層次及其區(qū)別;
??? 理解存儲層次的四個問題。
??? 正文:
??? 4.1存儲器的層次結(jié)構(gòu)
??? 存儲器是計算機的核心部件之一。其性能直接關(guān)系到整個計算機系統(tǒng)性能的高低。如何以合理的價格,設(shè)計出容量和速度滿足計算機系統(tǒng)要求的存儲器系統(tǒng),始終是計算機體系結(jié)構(gòu)設(shè)計中的關(guān)鍵問題之一。 計算機軟件設(shè)計者和計算機用戶對于存儲器容量的需求是無止境的,他們希望容量越大越好,而且速度還要快,價格要便宜。僅用單一的一種存儲器是很難達到這一目標的。較好的方法是采用存儲層次,用多種存儲器構(gòu)成存儲器的層次結(jié)構(gòu)。
?4.1.1從單級存儲器到多級存儲器
從用戶的角度來看,存儲器的三個主要指標是:容量、速度和價格(本節(jié)中,“價格”均指每位價格)。那么,究竟一個存儲器的容量應(yīng)是多大、速度應(yīng)多快、價格應(yīng)是多少才比較合理呢?
先來看看人們對這三個指標的期望。
然而,人們對于存儲器的容量大、速度快、價格低的三個要求是相互矛盾的。綜合考慮不同的存儲器實現(xiàn)技術(shù),可以發(fā)現(xiàn):
(1) 速度越快,每位價格就越高;
(2) 容量越大,每位價格就越低;
(3) 容量越大,速度越慢。
如果只采用其中的一種技術(shù),存儲器設(shè)計者就會陷入困境:從實現(xiàn)“容量大、價格低”的要求來看,應(yīng)采用能提供大容量的存儲器技術(shù);但從滿足性能需求的角度來看,又應(yīng)采用昂貴且容量較小的快速存儲器。走出這種困境的唯一方法,是采用多種存儲器技術(shù),構(gòu)成多級存儲層次。
要實現(xiàn)上述目標,必須做到:存儲器若越靠近 CPU,則 CPU 對它的訪問頻度越高,而且最好大多數(shù)的訪問都能在 M1 完成。這是通過利用 局部性原理來實現(xiàn)的。局部性原理指出,絕大多數(shù)程序訪問的指令和數(shù)據(jù)是相對簇聚的。我們可以把近期內(nèi) CPU 使用的程序和數(shù)據(jù)放在盡可能靠近 CPU 的存儲器中。
??? 4.1.2存儲層次的性能參數(shù)
??? 為簡單起見,我們僅考慮由 M1 和 M2 兩個存儲器構(gòu)成的兩級存儲層次結(jié)構(gòu)。并假設(shè) M1 的容量、訪問時間和每位價格分別為 S1,TA1,C1,M2 的參數(shù)為 S2,TA2,C2 。
??? 1. 存儲層次的平均每位價格C
??? 顯然,當 S1<<S2 時,C ≈ C2 。
??? 2. 命中率H
??? 命中率為 CPU 訪問存儲系統(tǒng)時,在 M1 中找到所需信息的概率。命中率一般用模擬的方法來確定,也就是通過模擬執(zhí)行一組有代表性的程序,分別記錄下訪問 M1 和 M2 的次數(shù) N1 和 N2 ,則:
為了突出反映不命中的情況,我們還經(jīng)常使用不命中率或失效率 F 這個參數(shù)。它是指CPU 訪存時,在 M1 中找不到所需信息的概率。顯然
??? F=1-H
??? 3. 平均訪問時間TA
??? TA = HTA1+(1-H)(TA1+TM)
??? = TA1+(1-H)TM
??? 或 TA = TA1+FTM
??? 其中: TA1 -- 命中時間
??? TM -- 失效開銷
4.1.3“cache-主存”和“主存-輔存”層次
??? “Cache-主存”和“主存-輔存”層次是常見的兩種層次結(jié)構(gòu),幾乎所有當代計算機都同時具有這兩種層次。我們知道,程序在執(zhí)行前需先調(diào)入主存(在虛擬存儲器中也是如此,只是不必一次全部調(diào)入,而是調(diào)入一部分執(zhí)行一部分)。因此,下面我們將從主存的角度來討論這兩個存儲層次。
??? 1. “Cache-主存”層次
??? (1) CPU和主存之間在性能上的差距越來越大
現(xiàn)代計算機都采用 Cache 來解決這個問題。
??? (2) “Cache-主存”層次
??? 這是在 CPU 和主存之間增加一級速度快、但容量較小且每位價格較高的高速緩沖存儲器(Cache)。借助于輔助軟硬件,它與主存構(gòu)成一個有機的整體,以彌補主存速度的不足。這個層次的工作主要由硬件實現(xiàn)。
?2.“主存-輔存”層次
??? “主存-輔存”層次的目的是為了彌補主存容量的不足。它是在主存外面增加一個容量更大、每位價格更低、但速度更慢的存儲器(稱為輔存,一般是硬盤)。它們依靠輔助軟硬件的作用,構(gòu)成一個整體,如圖4.1.6所示。“主存-輔存”層次常被用來實現(xiàn)虛擬存儲器,向編程人員提供大量的程序空間。
3. 兩者的比較
??? 表4.1對“Cache-主存”和“主存-輔存”層次做了一個簡單的比較。
??? 表4.1 “Cache-主存”與“主存-輔存”層次的區(qū)別
4.1.4存儲層次的四個問題
??? 后面幾節(jié)將論述“Cache-主存”層次和虛擬存儲器(“主存-輔存”)。對于每一個層次,都將討論以下四個問題:
??? 1. 當把一個塊調(diào)入高一層(靠近CPU)存儲器時,可以放到哪些位置上? (映象規(guī)則)
??? 動畫演示
??? 2. 當所要訪問的塊在高一層存儲器中時,如何找到該塊? (查找算法)
??? 動畫演示
??? 3. 當發(fā)生失效時,應(yīng)替換哪一塊? (替換算法)
??? 4. 當進行寫訪問時,應(yīng)進行哪些操作? (寫策略)
??? 動畫演示
??? 搞清楚這些問題,對于理解一個具體存儲層次的工作原理以及設(shè)計時的考慮是十分重要的。
非常好我支持^.^
(6) 35.3%
不好我反對
(11) 64.7%
相關(guān)閱讀:
- [電子說] uboot的基本概念和啟動流程分析 2023-10-24
- [控制/MCU] 單片機的三大功能 2023-10-24
- [電子說] 怎樣延長半導體元器件的壽命呢? 2023-10-24
- [電子說] 您的存儲器堆疊了嗎?—賽靈思推出16GB HBM FPGA 2023-10-24
- [制造/封裝] 什么是引線鍵合?引線鍵合的演變 2023-10-24
- [電子說] 物聯(lián)網(wǎng)無線傳感器節(jié)點可使用國產(chǎn)鐵電存儲器PB85RS2MC 2023-10-24
- [電子說] 應(yīng)用在PC機中的低功耗觸摸感應(yīng)芯片 2023-10-24
- [電子說] 3線串行數(shù)據(jù)通訊EEPROM的使用 2023-10-23
( 發(fā)表人:admin )