對於通用計算機而言,存儲層次分為四層: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組成。