文章目錄
常見硬盤設備簡稱
0. Tape、CD-ROM
Tape(磁帶)、CD-ROM(只讀光盤)等設備早已不再作爲現代計算機的永久存儲設備了,故此文略過。
1. HDD
HDD(Hard Disk Drive,硬盤)是以旋轉的磁片和運動的磁頭組成的永久存儲設備,最廣爲使用且單位價格非常低廉,但機械結構較易受外力損壞。順序讀寫性能較好,但大量的隨機跳躍讀寫就會導致嚴重的性能下降。1
HDD 自早期發展以來有如下這些主流數據接口模式:IDE(ATA / PATA)、SATA、SCSI、SAS、FC 等。接口類型會在下一部分詳述。
典型 HDD 硬盤如圖:
2. SSD
SSD(Solid-State Drive,固態硬盤)是一種基於閃存(Flash Memory)的永久存儲設備,它沒有傳統磁盤的複雜機械結構,取而代之的是由閃存組成的電子存儲塊,在性能上有不小的進步;價格也稍貴。固態盤在順序與隨機讀寫上性能差異不大,尤其數據讀取都是非常迅速的,但一大缺陷是數據的寫入必須以較大的 Block 爲單位來實現,故而在高頻的隨機小量寫入上會在 Garbage Collection 階段引入巨量的 overhead,使得性能甚至不如磁盤。同時高強度的工作場景下 SSD 的壽命也會損耗很快。2
SSD 廣泛採用 SATA(SATA III,及後來小型化的 mSATA 即 mini SATA)接口,許多新款 SSD 都採用較昂貴的 PCIe 接口,而追求極致小型化的 M.2 接口也開始走進 SSD 設備領域。
典型 SSD 固態盤如圖:
一些有關 NVM(Non-Volatile Memory,非易失性存儲器)的梳理:
- 理論上所有永久存儲器(Persistent Memory)都是非易失性存儲器,即斷電仍可保留數據的存儲設備;但一般提及 Non-Volatile 一詞時,一般指沒有 HDD 機械結構的電子非易失存儲器, 主要包括兩類:
- ROM(Read-Only Memory,只讀內存),性能很好但通常只讀(擦除重寫代價高)、容量小、單位成本很高,現代計算機中一般僅用於放置固件。
- Flash Memory(閃存),來源於特殊的可擦除式 ROM,後發展成爲獨立的一類可多次擦寫、性能較好的永久存儲器。閃存的一大缺陷是數據的寫入必須以較大的 Block 爲單位來實現,存在讀寫性能的斷裂問題。固態硬盤 SSD 即是基於 Flash 發展而來的。
- ROM v.s. RAM:
- ROM 是非易失的,但通常只讀,因爲難以擦除重寫數據。EEPROM(Electrically-Erasable Programmable Read-Only Memory,電可擦除可編程只讀存儲器)是一種可用特定電壓擦除重寫的 ROM,被廣泛用於 BIOS。基於 EEPROM 發展出了閃存技術。
- RAM(Random-Access Memory,隨機存取存儲器)是一類必須依靠持續供電才能保留數據的存儲設備,故是易失的(Volatile)。它構成了現代計算機中所謂的 Memory(主存,內存),速度很快,爲計算單元提供臨時存儲介質,也爲二級存儲提供了緩存;相應的,RAM 斷電就會失去數據。RAM 分如下兩類:
- SRAM(Static RAM,靜態隨機存取存儲器)是速度最快的一類 RAM,但成本昂貴,常用於製造各類緩存。
- DRAM(Dynamic RAM,動態隨機存取存儲器)性能稍遜但單位成本更低,被大量採用爲現代系統中的內存。3
3. HHD
HHD(Hybrid Drive,Solid State Hybrid Drive,混合硬盤,SSHD)是在傳統機械硬盤的基礎上,加入了固態硬盤的閃存顆粒以做緩存而構成的混合硬盤。雖然混合盤在機械硬盤和固態硬盤之間做了 Tradeoff,但實際應用中往往不如 小容量固態 + 大容量機械盤 的雙硬盤組合來的方便有效,故不被廣泛採用。4
常見接口類型簡稱
0. ESDI
ESDI(Enhanced Small Disk Interface,增強小型磁盤接口)是 80 年代早期設計的磁盤接口,當時 IDE 接口系列和 SCSI 接口系列仍在雛形階段,ESDI 是主要的磁盤設備接口。在 90 年代左右就已被後續的接口標準取代。5
典型 ESDI 接口如下圖:
接口樣式:
1. IDE / ATA / PATA
IDE(Integrated Drive Electronics,集成驅動電子設備)指一種把驅動器和存儲盤體集成在一起的硬盤技術,早期的 PC 主要兼容採納 IDE 技術的硬盤。現在人們也混用 IDE 一詞指代此類硬盤所對應的控制器接口,但其相匹配的控制器技術及總線接口實際應叫做 ATA(Advanced Technology Attachment,高技術配置)。ATA 接口是一種並行通信接口,由於後續 SATA(Serial ATA)串行接口的流行,傳統 ATA 接口也與之相對的被稱作 PATA(Parellel ATA,並行 ATA),已逐漸被淘汰不再使用。目前 IDE、ATA、PATA 三種簡稱常被混用,中文普遍稱作 “並口”。6 7 8
典型 ATA 排線接口及對應主板插槽如下圖:
排線接口: 主板插槽:
2. SATA
SATA(Serial ATA,串行 ATA)是由傳統 ATA 接口進化而來的串行總線接口,於 2000 年由各大硬盤廠商組成的 “Serial ATA Working Group” 正式制定推出。由於串口的各種優勢,其逐漸取代了舊式 PATA 口,成爲最被廣泛採用的硬盤 I/O 接口。如今 SATA 接口已經發展出 SATA I、SATA II、SATA III 代以及 eSATA,mSATA(mini SATA)和 SATA Express 等版本。8 9
典型 SATA 排線接口及對應主板插槽如下圖,接口寬側爲供電口,主板示例圖中沒有供電口:
接口樣式: 主板插槽:
通信接口中,串行通常比並行更快、性能更好,因爲大量密集並行的通信線之間干擾嚴重,使得並口的時鐘頻率必須維持較低水平才能保持穩定;而串口則沒有這一問題,時鐘頻率可以設計得很快,同時還保持着相當的穩定性,以及佔用機箱空間少、不阻礙和影響散熱、支持熱插拔等多種優點。因此現代 I/O 通信接口往往是串行通信的。
3. SCSI
SCSI(Small Computer System Interface,小型計算機系統接口)是一種針對小型計算機系統設計的、用於計算機與各類周邊設備之間通信的接口,相對上述 IDE 發源的接口是完全獨立的一類。它由美國國家標準協會(ANSI)設計,並非是專門針對存儲設備,但最爲廣泛的應用還是在存儲設備上。它是一種高速數據傳輸技術,相比 IDE 系列接口有帶寬大、CPU 佔用低等優點,但價格也相對昂貴。10
典型 SCSI 排線接口及對應主板插槽如下圖:
接口樣式: 主板插槽:
4. SAS
SAS(Serial Attached SCSI,串列 SCSI)是由 SCSI 接口發展而來的串行接口。其接口設計有多種形式,其中 8482 標準類型可以與 SATA 硬盤向下兼容,即 SATA 硬盤可以接在 SAS 口主板上使用,反之不行。SAS 接口的理論性能和穩定性較 SATA 更優,但普及程度仍不及 SATA,價格也相對更貴,還在發展階段。8 11
標準 SAS 接口與 SATA 硬盤兼容,故非常相似,只略有細微不同:
接口樣式:
5. FC、IB
FC(Fibre Channel,光纖通道)原是適用於高速網絡互聯的通信技術,後逐漸成爲高性能超級計算和企業級存儲設備中常用的高性能 I/O 通信連接類型。近年來在高性能存儲中已逐步被性能更極致的 IB(InfiniBand)互聯所取代。12 IB(InfiniBand)同樣也是用於高速網絡互聯的新興技術。在 Ethernet(以太網)早已不能滿足高性能計算中的網絡通信的時代,FC 被應用於高性能存儲的連接;近年來 IB 以其優於 FC 的極致的性能被廣泛使用。隨着大規模集中共享存儲節點的流行,IB 在高性能存儲中也扮演起愈發重要的角色。13
典型 FC 線接口及對應主板插槽如下圖:
FC 線: 主板插槽口:
典型 IB 線接口及對應交換機插槽如下圖:
IB 線: 交換機插槽:
7. PCIe
PCI(Pheripheral Component Interconnect,外設元件互聯標準,Personal Computer Interface, 個人計算機接口)是一種廣爲使用的計算機總線標準,是早期的標準擴展總線,標準涵蓋了網卡、聲卡、顯卡等,亦包括部分硬盤。然而受 PCI 的傳輸性能侷限,其早已無法滿足現代的顯卡和存儲設備的要求,而後續出現的 PCIe 接口解決了這一問題。PCIe(PCI Express)是沿用了 PCI 總線的標準而建立的更快的串行通信接口,主要由 Intel 提供開發支持。它的出現使得新款的計算機設備的系統總線幾乎全部統一採用了 PCIe 標準。PCIe 接口帶來了強大的通用性,不僅支持各種外設連接,也廣泛應用於 SSD 和高性能顯卡的接口。後也出現了小型化的 PCI Express Mini。14 15
典型 PCIe 接口及對應主板插槽(不同規格)如下圖:
接口樣式: 主板插槽:
8. M.2
M.2(前身 NGFF,Next Generation Form Factor),是由 Intel 主導的追求適配小型化超極本的存儲接口設計,出現後逐步替代了個人機小型 SSD 曾廣泛使用的 mSATA 和 PCIe Mini 接口而成爲個人機主流 SSD 接口。M.2 接口的邏輯設計同時支持了 AHCI 和 NVMe 控制協議標準,對兩者的主板支持則常分別稱爲 SATA 通道 和 PCIe 通道。16
典型 M.2 接口及主板插槽如下圖:
接口樣式: 主板插槽:
另一個常見的主板接口名字是 DDR,它代表了 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory,雙倍數據率同步動態隨機存取存儲器),是同步 DRAM 的進化版本,現也常被用於稱呼主板內存條接口。DDR 目前已經更新到了 DDR-4 版本。
典型 DDR 接口及對應主板插槽(不同規格)如下圖:
接口樣式: 主板插槽:
由於其不屬於硬盤 I/O 接口,故未放在本文列表內。
USB 相關的各 Type- 支持移動硬盤的接口,及 eSATA 接口,暫不列在此文內,參見 Wikipedia/USB。
常見控制協議簡稱
1. AHCI
AHCI(Advanced Host Controller Interface,高級主機控制器接口)是由 Intel 指定的一系列主板控制器技術標準,它規定了主板系統存儲控制器與 SATA 存儲設備之間的通信協議(Protocal)和廠商應該實現的硬件標準。大部分 AHCI 控制器都向後兼容 PATA 運行模式,並可同時開啓 RAID 功能。邏輯層面,M.2 接口的設計遵循 AHCI 協議(稱 SATA 通道),但同時也支持 NVMe。17
2. NVMe
NVMe(Non-Volatile Memory Host Controller Interface Specification,非易失性內存主機控制器接口規範,NVM Express)是近年出現的專門針對非機械式非易失性內存存儲器的控制器規範標準。由於近年來最爲主要的非易失性存儲就是基於閃存的 SSD,而大部分新款 SSD 都採用 PCIe 接口,故 NVMe 控制協議也常被簡單視作爲是專爲控制 PCIe 接口設備而必須使用的協議;但理論上不止於此。邏輯層面,M.2 接口的設計遵循 AHCI 協議,但同時也支持 NVMe(稱 PCIe 通道)。18