存儲器是計算機系統的核心部件之一,其核心功能是存儲程序(指令)和數據,是馮·諾依曼體系結構“存儲程序”概念的物質基礎。它直接關系到計算機系統的性能、容量和成本。
存儲器核心內容總覽表
分類維度 | 存儲器層級 | 技術實現 | 速度 | 容量 | 成本 | 易失性 | 刷新需求 | 典型應用 | 核心作用 |
---|---|---|---|---|---|---|---|---|---|
寄存器 | CPU內部 | 觸發器 | 0.1-0.3 ns | 幾十~幾百字節 | 極高 | 易失 | 否 | CPU指令操作數 | 存儲當前運算數據 |
高速緩存 | L1 Cache | SRAM | 0.5-2 ns | 32-128 KB/核 | 高 | 易失 | 否 | 緩存最活躍指令/數據 | 減少CPU訪問主存延遲 |
L2 Cache (L2D/L2I) | SRAM | 3-10 ns | 256KB-2MB/核 | 較高 | 易失 | 否 | 二級指令/數據緩存 | 補充L1未命中數據 | |
L3 Cache | SRAM | 10-20 ns | 4-64MB/芯片 | 中高 | 易失 | 否 | 多核共享緩存 | 降低跨核訪問延遲 | |
主存儲器 | 內存 | DRAM (DDR系列) | 50-100 ns | 8-128 GB | 中等 | 易失 | 需刷新 | 運行程序臨時存儲 | CPU直接操作的數據池 |
輔助存儲器 | 本地存儲 | NAND Flash (SSD) | 50-150 μs | 256GB-8TB | 低($/GB) | 非易失 | 否 | 操作系統/文件存儲 | 持久化數據存儲 |
機械存儲 | HDD (磁記錄) | 5-15 ms | 1-20TB | 極低($/GB) | 非易失 | 否 | 大容量冷數據存儲 | 低成本海量存儲 | |
固件/只讀存儲 | BIOS/UEFI | NOR Flash/EEPROM | 50-100 ns | 16-128 MB | 中 | 非易失 | 否 | 系統啟動程序 | 初始化硬件加載OS |
存儲層次性能對比(典型值)
指標 | 寄存器 | L1 Cache | DDR5內存 | NVMe SSD | HDD |
---|---|---|---|---|---|
訪問延遲 | 0.3 ns | 1 ns | 70 ns | 100 μs | 10 ms |
傳輸帶寬 | >500 GB/s | 300 GB/s | 50 GB/s | 7 GB/s | 0.2 GB/s |
容量范圍 | <1 KB | 32-64 KB | 16-128 GB | 512GB-4TB | 1-20 TB |
成本($/GB) | N/A | $100+ | $3-5 | $0.1-0.3 | $0.02-0.05 |
核心設計思想
-
層次化結構
寄存器→L1→L2→L3→DRAM→SSD→HDD
↑速度遞減 · 容量遞增 · 成本遞減↑ -
局部性原理支撐
- 時間局部性:近期訪問數據很可能被重用
- 空間局部性:相鄰地址數據可能被連續訪問
一、 存儲器的基本概念與作用
- 定義: 用于存儲二進制信息的物理設備或部件。
- 核心作用:
- 存儲程序: 存放等待執行的指令序列。
- 存儲數據: 存放原始數據、中間計算結果和最終結果。
- 信息交換中心: CPU、輸入/輸出設備都需要通過存儲器交換信息(在現代系統中,通常通過Cache和內存交換)。
- 核心指標:
- 存儲容量: 存儲器能存儲的二進制信息總量。基本單位是位(bit),常用單位有字節(Byte, B)、千字節(KB)、兆字節(MB)、吉字節(GB)、太字節(TB)等。
- 存取時間: 從存儲器接收讀/寫命令到完成讀/寫操作所需的時間。通常用
Ta
表示。反映速度。 - 存儲周期: 連續兩次獨立的存儲器操作(如兩次讀)所需的最小時間間隔。通常用
Tm
表示,一般Tm > Ta
(因為需要恢復/穩定時間)。反映帶寬潛力。 - 可靠性: 存儲器在規定條件下無故障工作的能力。常用平均無故障時間衡量。
- 功耗: 存儲器工作時消耗的功率。
- 價格/成本: 每位存儲單元的成本。
- 非易失性: 斷電后信息是否丟失的特性。
二、 存儲器的分類
-
按在計算機系統中的地位/層次分類 (最重要):
- 高速緩沖存儲器: 位于CPU和主存之間。容量最小(KB~MB級),速度最快(接近CPU速度),價格最高。由SRAM構成。主要作用是解決CPU和主存速度不匹配問題,存放當前最活躍的程序和數據副本。
- 主存儲器: 簡稱主存或內存。計算機運行時存放當前正在執行的程序和數據的部件。CPU可直接訪問。容量較大(GB級),速度較快(納秒級),價格適中。主要由DRAM構成。
- 輔助存儲器: 簡稱輔存或外存。如硬盤(HDD)、固態硬盤(SSD)、光盤、磁帶等。容量極大(TB~PB級),速度慢(毫秒級),價格低廉(單位容量成本最低),非易失。用于存放大量暫時不用的程序和數據。CPU不能直接訪問輔存,需通過I/O接口調入主存。
-
按存取方式分類:
- 隨機存取存儲器: 存儲單元的內容可按地址隨機訪問,且訪問時間與存儲單元的物理位置無關。如:RAM(主存)、ROM、Cache。
- 順序存取存儲器: 信息按順序存放和讀取,訪問時間取決于信息所在位置。如:磁帶。
- 直接存取存儲器: 存取信息時通常分兩步:首先直接指向一個較小的區域(如磁道),然后在該區域內順序查找或等待。如:磁盤(HDD)、光盤。雖然名字有“直接”,但其存取時間與位置有關,并非嚴格隨機。
- 相聯存取存儲器: 不是按地址而是按內容的某些特征(關鍵字)進行訪問。如:TLB(快表)。
-
按存儲介質分類:
- 半導體存儲器: 用半導體集成電路工藝制成。如:SRAM, DRAM, ROM, Flash Memory。速度快,集成度高,功耗相對低。是主存和Cache的基礎。
- 磁表面存儲器: 在金屬或塑料基體表面涂覆磁性材料層存儲信息。如:硬盤(HDD)、磁帶。非易失,容量大,成本低,速度慢。
- 光存儲器: 利用激光技術存儲和讀取信息。如:CD-ROM, DVD, Blu-ray。非易失,容量較大,可移動,速度慢。
- 新型存儲器: 如相變存儲器、阻變存儲器、磁阻存儲器等,試圖結合DRAM的速度、SRAM的易用性和Flash的非易失性。
-
按信息的可更改性分類:
- 讀寫存儲器: 既可讀也可寫。如:RAM(SRAM, DRAM)、部分Flash Memory。
- 只讀存儲器: 信息固化寫入后,在正常工作狀態下只能讀不能寫。如:MROM, PROM, EPROM, EEPROM, Flash ROM(用于固件/BIOS)。通常非易失。
-
按信息的易失性分類:
- 易失性存儲器: 斷電后信息丟失。如:SRAM, DRAM(主存、Cache)。
- 非易失性存儲器: 斷電后信息仍能保持。如:ROM、Flash Memory、磁盤、光盤、磁帶。
三、 存儲系統的層次結構
現代計算機采用多級存儲體系來解決存儲器速度、容量、成本之間的矛盾。核心思想是:
- 層次化: 將不同速度、容量、成本的存儲器組織成金字塔結構。
- 頂層: 寄存器 (CPU內部) - 最快最小最貴。
- 上層: Cache (SRAM) - 很快較小較貴。
- 中層: 主存儲器 (DRAM) - 較快較大較便宜。
- 底層: 輔助存儲器 (HDD/SSD/等) - 慢大便宜,非易失。
- 局部性原理: 程序訪問存儲器在時間和空間上表現出局部性。
- 時間局部性: 剛被訪問過的單元很可能在不久的將來再次被訪問。
- 空間局部性: 剛被訪問單元的鄰近單元很可能在不久的將來被訪問。
- 工作過程: CPU首先訪問最快的Cache。若所需數據在Cache中(命中),則快速獲取。若不在(未命中),則訪問主存獲取數據,同時將該數據及其附近數據調入Cache以備后用。若所需數據不在主存中,則從輔存調入主存。
- 目標: 讓CPU訪問存儲器的平均速度接近Cache的速度,而平均成本接近輔存的成本。
四、 主存儲器詳解
主存是存儲層次的核心,CPU直接與之交互(通過總線)。
-
基本組成:
- 存儲體(MB): 由大量存儲單元構成,每個單元存放一串二進制位(字),每個單元有一個唯一的地址。存儲體是存儲信息的實體。
- 地址寄存器(MAR): 存放CPU要訪問的存儲單元地址。位數決定了可尋址空間(如32位MAR -> 4GB地址空間)。
- 地址譯碼器: 將MAR中的地址碼轉換成對應存儲單元的字選線信號。
- 數據寄存器(MDR): 暫存從存儲體讀出或將要寫入存儲體的數據。位數與存儲單元字長相同(或成倍數關系)。
- 讀寫控制電路: 根據CPU發來的讀/寫命令,控制存儲器的讀寫操作。
- 時序控制電路: 產生存儲器操作所需的各種時序信號。
-
主存的主要類型 (RAM):
- 靜態隨機存取存儲器:
- 原理: 基于雙穩態觸發器(通常是6個MOS管構成)存儲信息。只要供電,狀態就能保持。
- 特點: 速度快(存取時間短),接口簡單(不需要刷新),功耗較高(比DRAM),集成度較低(單元面積大),成本高,易失。
- 應用: 主要用于高速緩存。
- 動態隨機存取存儲器:
- 原理: 利用電容上的電荷存儲信息(通常1個MOS管+1個電容構成一個單元)。電容電荷會泄漏,需要定期刷新。
- 特點: 速度比SRAM慢,需要復雜的刷新電路,功耗較低(待機時),集成度高(單元面積小),成本低(單位容量),易失。
- 應用: 構成計算機的主內存。常見類型:SDRAM, DDR SDRAM (DDR, DDR2, DDR3, DDR4, DDR5)。DDR技術通過時鐘上下沿傳輸數據,成倍提高了數據傳輸率。
- 只讀存儲器:
- 掩模ROM: 信息在生產時固化,不可更改。
- PROM: 用戶可編程一次,之后不可更改。
- EPROM: 紫外光擦除,電編程。可多次擦寫。
- EEPROM: 電擦除電編程。可逐字節擦寫,但速度慢。
- Flash Memory: 塊擦除型EEPROM。擦寫速度快于EEPROM,成本更低,集成度高。廣泛應用于U盤、SSD、BIOS芯片等。非易失。
- 特點: 非易失性,通常只能讀(或寫速度遠慢于讀),用于存儲固定程序和數據(如BIOS、引導程序、固件)。
- 靜態隨機存取存儲器:
-
主存儲器與CPU的連接:
- 總線連接: 通過系統總線(地址總線、數據總線、控制總線)連接。
- 地址線連接: CPU的地址總線連接到存儲芯片的地址引腳。地址總線的寬度決定最大尋址范圍。
- 數據線連接: CPU的數據總線連接到存儲芯片的數據引腳。數據總線的寬度決定每次訪問的數據位數。
- 控制線連接: CPU的讀/寫控制線連接到存儲芯片的讀/寫控制引腳(如
/WE
)。片選信號(/CS
或/CE
)通常由高位地址經譯碼器產生,用于選擇特定的存儲芯片或芯片組。 - 存儲容量的擴展:
- 位擴展: 增加數據位數(字長)。多片存儲芯片的數據線分別連接到數據總線的不同位上,地址線和控制線并聯。
- 字擴展: 增加存儲單元數量(字數)。多片存儲芯片的數據線都連接到數據總線上(需要三態控制),地址線并聯,但片選信號由不同的地址譯碼輸出控制。
- 字位同時擴展: 同時增加字數和字長。結合位擴展和字擴展的方法。
-
提高主存性能的技術:
- 多體交叉存儲器:
- 原理: 將主存分成多個獨立編址、能并行操作的存儲體(模塊)。
- 編址方式:
- 高位交叉編址(順序方式): 高位地址用于選擇存儲體。主要用于擴大容量。訪問連續地址時,實際在同一存儲體上串行進行。
- 低位交叉編址(交叉方式): 低位地址用于選擇存儲體。連續地址分布在相鄰的不同存儲體上。
- 作用(低位交叉): 當CPU連續訪問主存時,可以在前一個存儲體存取周期結束前啟動下一個存儲體的訪問,形成流水線操作,提高存儲器的帶寬。
- 高速緩沖存儲器: 如前所述,是解決CPU-主存速度差異最有效的方法。
- 多體交叉存儲器:
五、 輔助存儲器
- 作用: 提供海量、廉價、非易失的存儲空間。
- 主要類型:
- 磁盤存儲器:
- 組成: 盤片(表面磁性涂層)、磁頭、讀寫電路、驅動機構(主軸電機、磁頭臂驅動電機)、接口。
- 原理: 利用磁頭在高速旋轉的盤片表面磁化區域來記錄信息(磁疇方向代表0/1)。信息按磁道和扇區組織。
- 特點: 容量大,成本低(單位容量),非易失,可重復讀寫,訪問速度慢(尋道時間+旋轉延遲+傳輸時間),有機械運動部件(易損、功耗、噪音)。
- 固態硬盤:
- 原理: 基于NAND Flash存儲器芯片,通過電子方式存儲信息。
- 特點: 速度快(尤其是隨機訪問,無機械延遲),無機械部件(抗震、靜音、低功耗),非易失,但單位容量成本高于HDD,存在寫入次數限制(需磨損均衡算法管理)。
- 光盤存儲器: 利用激光在盤片表面燒蝕凹坑或改變相變材料狀態來記錄信息。如CD-ROM(只讀)、CD-R(一次寫)、CD-RW(可重寫)、DVD、BD。容量較大,可移動,成本低,速度慢,主要用于數據分發和備份。
- 磁帶存儲器: 順序存取,容量巨大(LTO磁帶),成本極低(單位容量),速度很慢,主要用于海量數據的長期歸檔備份。
- 磁盤存儲器:
六、 存儲器的主要技術指標總結與平衡
- 速度: 存取時間(Ta)、存儲周期?、數據傳輸率(帶寬 = 數據總線寬度 / Tm)。
- 容量: 總存儲位數或字節數。
- 價格/位: 每位存儲單元的成本。
- 功耗: 工作功耗和待機功耗。
- 可靠性: MTBF。
- 非易失性: 是否需要持續供電保存數據。
核心矛盾: 速度快的存儲器成本高、容量小;成本低、容量大的存儲器速度慢。存儲層次結構和局部性原理是解決這一矛盾的關鍵。
七、 發展趨勢
- 新型非易失存儲器: 如相變存儲器、阻變存儲器、磁阻存儲器等,致力于突破SRAM/DRAM/Flash的局限,實現更高速度、更低功耗、更長壽命、更高密度的非易失存儲。
- 3D堆疊技術: 將存儲單元在垂直方向堆疊多層,顯著提高單位面積上的存儲密度(如3D NAND Flash, 3D DRAM)。
- 存儲類內存: 試圖打破傳統存儲層次界限,讓具有非易失性、接近DRAM速度、字節尋址能力的新型存儲器(如PCM, ReRAM)直接連接到內存總線,既能充當高速主存又能持久化數據。
- 近存計算/存內計算: 探索在存儲器內部或其附近進行數據處理,減少數據在存儲器和處理器之間的搬運開銷,提升能效和性能,尤其適用于大數據和AI場景。
- 高速接口技術: 如GDDR(顯存)、HBM(高帶寬內存)用于滿足GPU和AI加速器對極高內存帶寬的需求。
總結
存儲器是計算機系統不可或缺的“記憶”部件,其性能直接影響整體系統性能。理解存儲器的分類、層次結構(特別是Cache-主存-輔存體系)、工作原理(尤其是SRAM、DRAM、Flash)、技術指標及其相互制約關系,是掌握計算機組成原理的關鍵。現代計算機通過精妙的多級存儲層次設計和局部性原理的利用,在速度、容量和成本之間取得了良好的平衡。存儲技術仍在快速發展,新型存儲介質和架構不斷涌現,將持續推動計算能力的提升和應用模式的變革。