存儲層次

存儲層次

存儲層次是在計算機體系結構存儲系統層次結構的排列順序。每一層於下一層相比都擁有較高的速度和較低延遲性,以及較小的容量。大部分現今的中央處理器的速度都非常的快。大部分程式工作量需要存儲器訪問。由於高速快取的效率和存儲器傳輸位於層次結構中的不同檔次,所以實際上會限制處理的速度,導致中央處理器花費大量的時間等待存儲器I/O完成工作。

基本介紹

  • 中文名:存儲層次
  • 外文名:hierarchy of memory
  • 學科:計算機體系結構
  • 定義:存儲系統層次結構的排列順序
  • 要求:容量、存取速度、易失性、
  • 有關術語:存儲系統
簡介,特點,存儲器性能,局部性原理,

簡介

存儲系統是指計算機中由存放程式和數據的各種存儲設備、控制部件及管理信息調度的設備(硬體)和算法(軟體)所組成的系統。計算機的主存儲器不能同時滿足存取速度快、存儲容量大和成本低的要求,在計算機中必須有速度由慢到快、容量由大到小的多級層次存儲器,以最優的控制調度算法和合理的成本,構成具有性能可接受的存儲系統。存儲系統的性能在計算機中的地位日趨重要,主要原因是:①馮諾伊曼體系結構是建築在存儲程式概念的基礎上,訪存操作約占中央處理器(CPU)時間的70%左右。②存儲管理與組織的好壞影響到整機效率。③現代的信息處理,如圖像處理、資料庫、知識庫、語音識別、多媒體等對存儲系統的要求很高。
對於通用計算機而言,存儲層次分為四層:CPU暫存器。高速快取、主存和輔存。對於CPU 暫存器,CPU 可以再一個時鐘周期內訪問它們。接下來是一個或者多個小型到中型的基於 SRAM 的高速快取存儲器,可以再幾個 CPU 時鐘周期內訪問它們。然後是一個大的基於 DRAM 的主存,可以在幾十或者幾百個時鐘周期內訪問它們。接下來是慢速但是容量很大的本地磁碟。存儲器層次結構的核心是,對於每個 k,位於 k 層的更快更小的存儲設備作為位於 k+1 層的更大更慢的存儲設備的快取。也就是說,層次結構中的每一層都快取來自較低一層的數據對象。例如,本地磁碟作為通過網路從遠程磁碟取出檔案的快取,以此類推知道 CPU 暫存器。
對於計算機系統中配置的存儲器,歸結起來有三個主要的參數要求:容量大,速度快,價格低。存儲器的易失性也是計算機存儲器的一個重要指標,一般來講,速度高的存儲器,每位價格也高,因此容量不能太大。所以對單一的存儲器部件來說,大容量、高速度、低價格三者是不能同時滿足的。為了解決這個難題,在現代計算機系統中採用了存儲器分層結構,這樣就不會僅僅依賴於某一個存儲部件或技術了。任意高速存儲設備都可以作為低速存儲設備的快取,也是出現存儲層次主要原因之一。

特點

在存儲層次中,存儲系統的基本要求是存儲容量大、存取速度快和成本低。為同時滿足上述三個要求,計算機需有速度由慢到快,容量由大到小的多層次存儲器,以最優的控制調度算法和合理的成本,構成存儲系統。
在圖1中,存儲層次由上到下呈現出以下特點:每位的價格越來越低,速度越來越慢,容量越來越大,CPU 訪問的頻度也越來越少。最上層的暫存器通常都製作在 CPU 晶片內,暫存器中的數直接在 CPU 內部參與運算。現代 CPU 內可以有十幾個、幾十個暫存器,它們的速度最快、位價(平均每位的價格)最高、容量最小。主存用來存放將要參與運行的程式和數據,但其速度與 CPU 速度差距較大,為了使它們之間的速度更匹配,在主存與 CPU 之間插入了一種比主存速度更快、容量更小的高速緩衝存儲器 (cache)。主存與快取之間的數據調動是由硬體自動完成的,對程式設計師來說是透明的。這三層都在主機內,多由各種半導體存儲材料製成。輔助存儲器存儲容量比主存儲器大得多,主要用來存放暫時未用到的程式和數據檔案。CPU 不能直接訪問輔存,輔存只能與主存交換信息,但它的位價是最便宜的。存儲器的層次結構實質上還是體現為快取—主存和主存—輔存這兩個存儲層次上。從CPU 的角度看,快取—主存層次的速度接近於快取,容量與每位價格則接近於主存。因此,解決了速度與成本之間的矛盾。而主存—輔存這一層次,從整體分析,其速度接近於主存,容量接近於輔存,平均位價也接近於低速、廉價的輔存位價,這又解決了速度、容量、成本這三者間的矛盾。這種多層次結構已成為現代計算機的典型存儲結構。在主存—輔存這一層次的發展中,形成了虛擬存儲系統。在這個系統中,程式設計師編程的地址範圍與虛擬存儲器的地址空間相對應。例如,機器指令地址碼為 32 位,則虛擬存儲器的存儲單元可達 4GB。可是這個數與主存的實際存儲單元個數相比,要大得多。通常稱這類指令地址碼為虛地址或叫邏輯地址,而把主存的實際地址稱作實地址或物理地址。物理地址是程式在執行過程中能夠真正訪問的地址,也是真實存在於主存的存儲地址。對具有虛擬存儲器的計算機系統而言,編程時可用的地址空間遠遠大於主存空間,使程式設計師以為自己占有一個容量極大的主存,其實這個主存並不存在,這就是將其稱為虛擬存儲器的原因。對虛擬存儲器而言,其邏輯地址變換為物理地址的工作,是由計算機系統的硬體設備和作業系統自動完成的,對應用程式員是透明的。當虛地址的內容在主存儲器中時,機器便可立即使用;若虛地址的內容不在主存,則必須先將此虛地址的內容在輔存中找到,傳遞到主存儲器的合適單元後再被機器所用。主存儲器是可以和 CPU 直接交換信息的存儲器,它通常由存放程式和數據的隨機讀寫存儲器 RAM 和存放某些固定內容的唯讀存儲器 ROM組成。
存儲器層次化結構圖存儲器層次化結構圖

存儲器性能

存儲器性能的主要技術指標為容量、速度和易失性。
存儲器既然是用來存儲程式和數據的容器,當然容量是關鍵性的特徵。計算機可定址的最小信息單位是一個存儲字,相鄰的存儲器地址表示相鄰存儲字,這種機器稱為“字可定址”機器。一個存儲字所包括的二進制位數稱為存儲字長。一個字又可劃分為若干個“位元組”,一個位元組為 8 個二進制位,因此,一個字的字長通常是 8 的倍數。有些計算機也可以按“位元組”定址,因此,這種機器稱為“位元組可定址”的計算機。以字或位元組為單位來表示存儲器存儲信息的總數,就得到了存儲器的容量表示。
與速度相關的參數有:
(1)存取時間。又叫存儲器的訪問時間(Memory Access Time),它是指啟動一次存儲器
操作到完成該操作所需的全部時間。存取時間分讀出時間和寫入時間兩種。讀出時間是從存儲器接收到有效地址開始,到產生有效輸出所需的全部時間。寫入時間是從存儲器接收到有效地址開始,到數據寫入被選中單元為止所需的全部時間。
(2)存儲周期。存儲周期(Memory Cycle Time)是指存儲器進行連續兩次獨立的存儲器
操作所需的最小間隔時間。通常存儲周期大於存取時間,它包括一次存取時間加上下一次存取
開始之前的短暫附加時間,附加時間主要用於信號線上瞬變的消失或被破壞的數據的恢復。
(3)傳輸率。也叫存儲器的頻寬,指的是數據讀出或寫入存儲器的速度,表示每秒從存
儲器進出信息的最大數量,單位可用位元組/秒或位/秒來表示。如存儲周期為 100ns,每個存儲周期可訪問 32 位數據,則它的傳輸率為 320Mb/s。
易失性
易失性是指當斷電中斷後,計算機存儲器存儲的數據便會消失,通電以後這些數據需要重新載入。例如用半導體材料製作的 RAM 存儲器,斷電后里面保存的信息就消失了,這種存儲器稱為易失性存儲器。在計算機運行過程中,考慮到RAM 存儲器的易失性,一般會將RAM中的數據進行備份,即將這些數據每隔一段時間存儲到非易失性存儲器。如果存儲器斷電後仍能保存其內部信息,則稱其為非易失性存儲器。如磁性材料作成的存儲器和唯讀存儲器 ROM,就屬於非易失性存儲器。兩者的最大區別是RAM在斷電以後保存在上面的數據會自動消失。
隨機存取存儲器(Random Access Memory,RAM),也叫主存,是與CPU直接交換數據的內部存儲器。它可以隨時讀寫(刷新時除外,見下文),而且速度很快,通常作為作業系統或其他正在運行中的程式的臨時數據存儲媒介。

局部性原理

早在 1968 年,Denning.P 就曾指出:程式在執行時將呈現出局部性規律,即在一較短的時間內,程式的執行僅局限於某個部分;相應地,它所訪問的存儲空間也局限於某個區域。他提出了下述幾個論點:
程式執行時,除了少部分的轉移和過程調用指令外,在大多數情況下仍是順序執行的。該論點也在後來的許多學者對高級程式設計語言(如 FORTRAN 語言、PASCAL 語言)及 C 語言規律的研究中被證實。
過程調用將會使程式的執行軌跡由一部分區域轉至另一部分區域,但經研究看出,過程調用的深度在大多數情況下都不超過 5。這就是說,程式將會在一段時間內都局限在這些過程的範圍內運行。
程式中存在許多循環結構,這些雖然只由少數指令構成,但是它們將多次執行。程式中還包括許多對數據結構的處理,如對數組進行操作,它們往往都局限於很小的範圍內。
局限性還表現為下述兩個方面:時間局限性。如果程式中的某條指令一旦執行,則不久以後該指令可能再次執行;如果某數據被訪問過,則不久以後該數據可能再次被訪問。產生時間局限性的典型原因是由於在程式中存在著大量的循環操作。
空間局限性。一旦程式訪問了某個存儲單元,在不久之後,其附近的存儲單元也將被訪問,即程式在一段時間內所訪問的地址,可能集中在一定的範圍之內,其典型情況便是程式的順序執行。存儲器中,如磁帶上,這樣做還能降低存儲價格。

相關詞條

熱門詞條

聯絡我們