電腦達人養成計畫 7-3:近代磁碟介面發展 (SCSI、IDE 與 ATA)

上一節談了一系列早期硬碟的發展之後,接下來是時候將目光移回現代硬碟上了,本節要介紹的是 1990 年代以後的硬碟與硬碟介面發展,特別是以曾經蔚為主流的 IDE/ATA 與曾稱霸企業市場二十年的 SCSI 為主 (目前仍是市場主流的 SATA 與最新的 NVMe 則留待介紹之後介紹)。

磁碟介面的標準化

一套完整的硬碟儲存系統可以概略分為儲存媒介 (包含磁碟或磁帶、讀寫頭等)、介面 (interface,負責接收來自控制器命令) 以及控制器 (controller,扮演磁碟與電腦本機之間的橋樑,用於將磁碟與電腦系統連結起來與控制讀寫頭與磁盤運作進行資料讀寫) 三個主要部分。

而早期的硬碟介面並沒有一套標準規範可以依循,而是各自使用不同的專屬規格,因此早期的硬碟系統多半會隨其專用的控制器一同出貨,而不同廠商或型號硬碟所使用的控制器也多半不能隨意混用,甚至有些硬碟儲存系統是只能搭配特定的電腦系統使用的,例如上節曾提及的 IBM 3380 (相當於儲存媒介),就必須透過 IBM 3880 儲存管理系統 (相當於介面) 與 IBM System/370 或 System/380 大型電腦系統中的控制器連接 (架構如下圖)。

(註:在描述磁碟系統的時候,控制器與介面這兩個詞彙經常會被混用,主要係因現代的硬碟本身其實也整合了一組用於控制硬碟本身動作、負責接收來自電腦系統命令的控制器,而介面實際上也是同時存在於硬碟系統與電腦系統兩端,但本文中若無特別說明的話,文中所指的控制器主要是指「電腦系統端的控制器」,介面則主要是指「硬碟系統端的介面」。)

首個被廣泛應用的磁碟系統 ST-506

在 1980 年,Shugart Technology 發表了 ST-506 這款個人電腦磁碟系統 (實際上由 ST-506 5.25 吋硬碟、ST-506 專用的控制器與 ST-506 專用的磁碟介面組成)。

如同我在上一節當中曾經提及的,衍生自 ST-506 的 ST-412 在當年成功取得了 IBM PC XT (首款內建硬碟的 IBM 個人電腦) 的 OEM 供應訂單,因此 ST-506 與 ST-412 很快便成為了第一款在個人電腦領域中獲得廣泛應用的內建硬碟系統。

ST-506 的磁碟介面與控制器之間一般以兩條訊號線連結 (分別是 34-pin 的控制線路與 20-pin 的資料傳輸線路),每台硬碟都需要各自獨立的資料傳輸線路,而控制線路的部分則可以至多同時控制四台硬碟 (絕大多數控制器設計為僅能同時控制兩台硬碟)。

此外,由於 Shugart Technology 在設計此款硬碟系統的控制器與介面時是以 Shugart Associates 的 SA1000 軟碟系統為基礎,因此相對而言在實作上簡單許多,又正好搭上當時許多電腦公司爭相投入設計與生產 IBM PC 的相容系統,因此 ST-506 與 ST-412 所使用的此款磁碟介面很快就成為個人電腦硬碟系統的主流非正式行業標準。

ST-506 與 ST-412 所使用的磁碟界面都使用了 MFM (改進調頻編碼) 編碼技術,而隨後推出的改良版-ST-412HP 則是增加了對 RLL (運行長度有限編碼) 編碼技術的支援,分別可使儲存密度與資料傳輸速率增加至多 50%。

增強型小型磁碟介面 (ESDI)

隨後在 1980 年代上半,Maxtor 發表了增強型小型磁碟界面 (Enhanced Small Disk Interface,ESDI),相較於已經成為主流的 ST-506 / ST-412 磁碟界面而言,ESDI 最大的改進是將部分以往放置在磁碟控制器上的資料分隔器 (Data Separator,主要功能為自電子訊號中將包含實體資料的部分與其他控制訊號分隔開來) 等晶片移入硬碟本體中,以換取更高的性能與更低的延遲。

在傳輸速率方面,原先的 ST-506 介面最高只能支援 7.5 Mbps 的資料傳輸速路,而 ESDI 則是可以達到 10、15 Mbps 甚至是 20 Mbps。

在傳輸介面方面,為了降低採用時的成本負擔,ESDI 使用了與 ST-506 / ST-412 相同的連接器規格 (同樣採用 34-pin 的控制線路與 20-pin 的資料傳輸線路),此外,ESDI 介面在設計上也納入了對軟碟機、磁帶機的支援。

ESDI 介面在 1980 年代中後期曾經流行過幾年的時間,但隨後 SCSI 與 IDE/ATA 介面相繼成熟之後很快就與 ST-506 / ST-412 一起被這兩款介面取代了。

上個世代的主流磁碟介面-IDE/ATA

介紹完前兩種大家可能比較陌生的磁碟介面之後,接下來要介紹的就是許多人都曾用過或聽過的 IDE/ATA 了。

IDE 其實是 Integrated Drive Electronics (整合式磁碟電路) 的縮寫,是由 Western Digital 所發展的磁碟系統規格 (包含了硬碟的規格、連接埠與實體線路的設計等),延續了早期硬碟到 ESDI 逐漸把控制器的部分功能整合到硬碟內的發展趨勢,IDE 進一步將控制器上的其他與控制硬碟相關的晶片整合到硬碟本體上的電路板中,使控制器不再需要扮演控制讀寫頭與磁盤運作進行資料讀寫的角色,而是僅負責扮演硬碟與電腦系統之間的溝通橋樑 (嚴格說起來已經幾乎沒有 Controller 的功能,更精確的說法應是 Host Bus Adapter),從而使控制器的成本大幅下降,IDE 硬碟首見於 1986 年的 Compaq 電腦中,並且在 1987 年正式進入零售市場。

而 ATA 的全稱則是 AT Attachment (最初的命名是 AT Bus Attachment),是 Compaq 與 Western Digital 等公司在 1986 年針對 IBM 在 1984 年發佈的新一代個人電腦 PC/AT (前面提過的 PC/XT 的後繼機種) 所設計的磁碟介面,最主要的特性為直接與 PC/AT 當中首次引入的 16-bit ISA 匯流排進行連結 (這同時也是其名稱的由來),並隨後在很長的一段時間裡成為了個人電腦的標準配備,隨後在 1990 年被提交至美國國家標準協會 (ANSI) 審查,並於 1994 年正式被批准為美國國家標準 (X3T10-Advanced Technology Attachment)。

此外,得益於 IDE 設計使硬碟控制器的製造成本大為下降,因此後來的電腦大多都直接將具有兩條 ATA 通道的磁碟控制器整合到晶片組的南橋 (Southbridge) 晶片中,而不再需要安裝獨立的硬碟控制器擴充卡。

最後要特別提及的是,最初 ATA 其實是一種傳輸規格的名稱而不是一種磁碟系統規格,規範的其實只有訊號連結的方式以及傳輸的規範,並不包含介面實體線路與連接埠的設計,也與儲存裝置的規格沒有太多直接關係,但這兩個詞彙在實務上經常被通用。

ATA 排線與連接埠

IDE/ATA 與其他早期硬碟系統均採用並列 (Parallel) 訊號傳輸,使用的線材為 40-pin 的 ATA 排線 (早期產品由 40 條帶狀電纜組成,後期因應較高的資料傳輸速率與雜訊抑制需求改為採用 80 條帶狀電纜構成的排線)。

每條 ATA 通道可以支援兩個裝置 (分別稱為 Master 與 Slave),因此通常一條 IDE 排線上會有三個 IDE 連接埠分別用於連接主機板或磁碟控制器 (通常會使用不同的顏色標示) 與兩個 ATA 裝置 (末端的為 Master,中間的則是 Slave)。

Master 與 Slave 之分

前面提到每條 ATA 通道可以支援兩個裝置,而兩個裝置會被分別標示為 Master 與 Slave,雖然在字面上 Master 與 Slave 是主僕的意思,但其實在 ATA 通道上這兩個裝置都是獨立運作而並沒有主從之別,只是作為識別之用,實際上 Master 與 Slave 的用法也只出現在第一版 ATA 規範中,隨後很快便被修改為更為中性的 Device 0 與 Device 1,但 Master 與 Slave 的稱呼已被廣泛習慣性應用。

而要特別注意的是,在單一 ATA 通道上同時安裝兩個 ATA 裝置時需要手動使用跳線 (jumper) 指定各個 ATA 裝置的主從識別,若未正確設定會導致裝置可能無法正常被 BIOS 辨識或是無法正常運作,若該 ATA 通道上的兩個裝置都支援 Cable Select (CS) 功能的話則可以將兩個裝置都設為 Cable Select (CS) 模式,此時裝置會自動根據其所連結的排線連接埠決定其自身為 Master 或 Slave (Cable Select 功能在第一版 ATA 規範當中為選用功能,因此不是所有裝置都能夠支援這個功能)。

IDE/ATA 的歷代演進

以下介紹歷代 IDE/ATA 技術演進時係以 ANSI 審定規格的時間與發佈內容為軸,然而實際上絕大多數硬碟廠商都在 ANSI 審定規格之前便已發佈定案版的規格並發售相關的產品,因此下面提到的年代可能會與該代產品在市面上流通的實際時間有所落差 (例如 2001 年的時候實際上 Seagate 就已經推出 Ultra ATA/100 規格的 Barracuda ATA III 系列硬碟,但實際上 Ultra DMA Mode 5 要等到 2002 年 ANSI 核定的 ATA/ATAPI-6 規範才出現)。

ATA-1 (1994, ATA/IDE)

前面提過 IDE 硬碟的發展實際上早於 ATA 正式標準的定案,因此第一版 ATA 標準實際上已是最初 IDE 規格的延伸,最初的 IDE 規格只能支援 22 位元的邏輯區塊定址 (LBA),因此最高可支援的硬碟容量僅達 2 GB,隨後由 ANSI 審定的第一版 ATA 標準 (X3.221,1994 年制定) 則將邏輯區塊定址能力提升至 28 位元,因此最高可以支援的磁碟容量增加至 128 GB,傳輸模式的部分則增加了對單位元組 DMA 與多位元組 DMA 的支援,使第一代 ATA 的傳輸速率最高可達 8.3 MB/s (最初的 IDE 規格僅能達到 3.3 MB/s)。

ATA-2 (1996, Enhanced IDE / Fast ATA)

約莫在 ATA-1 規範定案的同時,Western Digital 又提出了改進版的 Enhanced IDE (隨後在 1996 年獲 ANSI 同意成為 X3.279 標準),主要的強化內容為新增 PIO Mode 3、4 與 Multi-word DMA Mode 1、2 四種傳輸模式的支援使最高傳輸速率提高至 16.7 MB/s 並增加了可與 PCMCIA 擴充卡槽相容的 68-pin 連接埠規格。

ATA-3 (1997, Enhanced IDE)

在 1997 年通過 ANSI 審查的 ATA-3 規範 (X3.298) 相較於 ATA-2 而言沒有太大的改進,主要是新增了 S.M.A.R.T 硬碟自我檢測技術的支援以及用於 2.5″ 筆記型電腦硬碟的 44-pin 連接埠規格,並且取消了對 Single-word DMA 傳輸模式的支援。

ATA/ATAPI-4 (1998, Ultra ATA/33)

第四版的 ATA 規範則是自 ATA 誕生以來最大的一次改版 (NCITS 317-1998),此版本當中引入了全新的傳輸模式系列-Ultra DMA,相較於以往的 Multi-word DMA 而言資料傳輸速率可以提升一倍之多,因此 ATA-4 規格又被稱為 Ultra ATA/33。

此外還引入了針對 ATA Packet Inteface (ATAPI,ATA 封包介面) 的支援,透過引入一系列修改自 SCSI 介面規格的指令規範使 ATA 介面可以用於更多種類的裝置 (例如光碟機、燒錄機以及磁帶機等) 而不再侷限於硬碟。

ATA/ATAPI-5 (2000, Ultra ATA/66)

自第五版起 ATA 規範的歷次更新主要是以傳輸速率上的提升為主,在 ATA-5 (NCITS 340-2000) 中主要是新增了 Ultra DMA Mode 3、4 這兩個傳輸模式,將最高傳輸速率再次提高一倍,來到了 66.7 MB/s。

值得注意的是自此版本起由於傳輸速率的提升,原先由 40 條帶狀電纜所構成的 ATA 排線已經不敷使用,為了解決訊號共振雜訊干擾的問題,ATA-5 規範當中引入了由 80 條帶狀電纜所構成的新版排線。

ATA/ATAPI-6 (2002, Ultra ATA/100)

ATA-6 (NCITS 361-2002) 的改進主要有三大項,首先是邏輯區塊定址能力一舉從 28-bit 大幅提升至 48-bit,因此可以定址的最大容量一口氣從 128 GB 跳升到 128 PB 之譜,其次則是加入了對自動噪音管理 (Automatic Acoustic Management, AAM) 技術的支援,可允許系統透過降低硬碟讀寫性能的方式來壓低硬碟所發出的噪音。

至於傳輸速率的部分則是增加了 Ultra DMA Mode 5 的支援,將最高傳輸速率再次推升至 100 MB/s,因此 ATA-6 規格的硬碟又被稱為 Ultra ATA/100。

ATA/ATAPI-7 (2005, Ultra ATA/133)

2005 年定案的 ATA-7 規格 (INCITS 397-2005) 實質上是基於並列傳輸技術的 Parallel ATA 的最後一次改版,在此改版中新增了 Ultra DMA Mode 6 傳輸模式,將最高傳輸速率進一步推升到 133 MB/s,此後的開發重心便完全從 Parallel ATA 移向採用序列傳輸且可以提供更高傳輸速度的 Serial ATA 了。

高階系統的主流磁碟介面-SCSI

談完上個世代最主流的磁碟介面-IDE/ATA 之後,接下來站長想談的是在伺服器、專業工作站等領域中的主流磁碟介面-SCSI。

SCSI 的全稱為 Small Computer System Interface (小型電腦系統介面,這裡的「小型」是相對於早年一台可以佔據一間教室大小的大型電腦而言),相較於剛剛介紹的 IDE/ATA 主要僅用於硬碟 (有了 ATAPI 規範之後支援範圍才拓展到光碟機等裝置),SCSI 從一開始的設計就是為了規範電腦系統與各種周邊裝置之間的連結而生,用途遠比 IDE/ATA 要來得廣,舉凡硬碟、軟碟、光碟機、印表機、掃描器等裝置都在支援範圍之內,硬要說的話,其實 SCSI 在用途上有那麼那麼一點點類似 USB,但 SCSI 的可靠性與成本都遠比 USB 要來得高。

SCSI 的早期發展

SCSI 的前身其實叫做 SASI,是由 Shugart Associates (對,又是這間公司) 在 1981 年發表的,主要由 Larry Boucher 所開發 (後來他被稱為 SCSI 之父,還創辦了目前仍是主流伺服器 RAID 控制器廠商之一的 Adaptec),最初的目的就是希望能設計出一個業界統一的磁碟介面標準。

在 1980 年代初期,Shugart Associates 將 SASI 介面的規格提交給 ANSI 進行審查,但 ANSI 考慮到不能以私人企業的名義為國家標準命名,因此在 1982 年正式將 SASI 重新命名為 SCSI,而在 1986 年第一版 SCSI 規範正式發佈之前,SCSI 介面其實已經被廣泛運用在許多伺服器系統與 Apple Macintosh 等電腦上。

SCSI-1 採用了 8-bit 的並列傳輸匯流排,支援奇偶校驗以及可以提供最高 5 MB/s 的點對點資料傳輸速率 (這在 1980 年代初期可以說是非常快的速度,前面提過的 ATA-1 規格在 1994 年定案時的最高傳輸速率也才 4.2 MB/s 而已),每條 SCSI 匯流排可以串接八個裝置 (需另扣掉 SCSI 控制器本身因此實際上可以連結 7 個裝置) 且由於 SCSI 規格的控制器本身可以進行一部分的資料處理,因此可以大幅分攤 CPU 的負擔,使當年本來就極其有限的運算資源得以大幅提升利用效率。

隨後在 1990 年推出的 SCSI-2 (又被稱為 Fast SCSI) 則進一步透過倍增運作頻率的方式讓最高資料傳輸速率提高至 10 MB/s,而後來又推出了將匯流排寬度倍增自 16-bit 的 Fast Wide SCSI (最高資料傳輸速率為 20 MB/s)。

混亂的 SCSI 規格命名

除了高成本之外 SCSI 最為人所詬病的特性大概就是其混亂的命名了,從 1990 年 SCSI-2 世代開始便同時有基於兩種不同的匯流排寬度而生的 Fast SCSI 與 Fast Wide SCSI 同時在市面上,而在 1995 年提出的 SCSI-3 世代當中更是變本加厲的推出了運作時脈加倍但匯流排寬度縮回 8-bit 的 Ultra SCSI (最高資料傳輸速率與 Fast Wide SCSI 一樣是 20 MB/s) 以及匯流排寬度為 16-bit 而運作時脈加倍因此最高資料傳輸速率可以來到 40 MB/s 的 Ultra Wide SCSI。

覺得這些同時在市面上已經夠亂了嗎?但主導 SCSI 介面發展的 SCSI Trade Association (SCSITA) 並沒有打算就此打住,之後還繼續推出了好幾種不同的 SCSI 規格。

奠定十年基礎的 SCSI-3

在 1995 年所發佈的 SCSI-3 規範當中引入了許多重要的新功能,例如將單一 SCSI 匯流排所能支援的裝置數量翻倍為 16 個 (需另扣掉 SCSI 控制器本身因此實際上可以連結 15 個裝置),並且引入了隨插即用 (Plug-and-Play) 以及可以大幅提升資料傳輸速率、最大傳輸線長度的低電壓差動 (LVD,Low-voltage Differential) 傳輸技術等重要特性,自 1995 年起所有的並列式 SCSI 都是以 SCSI-3 為基礎進行延伸而來,而最後一款並列式 SCSI 則是在 2002 年推出的 Ultra-320 SCSI,此後則由基於序列傳輸技術的 Serial Attached SCSI (SAS) 取而代之。

由於 SCSI-3 世代的各種 SCSI 規格命名實在過於混亂並且先後換過太多次命名方式,站長決定以表格方式呈現:

命名 A 命名 B 命名 C 匯流排寬度 運作時脈 最高傳輸速率 發展年代 連接埠
Ultra Fast-20 8-bit 20 MHz 20 MB/s 1995 IDC-50
Ultra Wide 16-bit 20 MHz 40 MB/s 1995 SCA
Ultra2 Fast-40 8-bit 40 MHz 40 MB/s 1997 IDC-50
Ultra2 Wide 16-bit 40 MHz 80 MB/s 1997 SCA/SCA-2
Ultra3 Fast-80 Ultra-160 16-bit 40 MHz 160 MB/s 1999 SCA/SCA-2
Ultra4 Fast-160 Ultra-320 16-bit 80 MHz 320 MB/s 2002 SCA/SCA-2

 

Exit mobile version