硬科技:光華電腦DIY回憶錄之最吵的硬碟 複習一下古老的Parallel ATA

2019.02.02 06:28AM
8236

二十一世紀才開始接觸電腦的科科們,在機殼內普遍只有幾條細細的SATA (Serial ATA) 排線的當下,以及為了解放新一代高速SSD被封印的效能,而逐漸走向純PCI Express化的今日,可能很難想像,在遙遠的二十世紀末期,負責連接硬碟機光碟機到主機板,並源源不絕地以不可思議的龜速,緩慢傳輸資料的介面,是如此的粗、如此的長、如此充分的填充機殼內的剩餘空間 (這樣寫好像怪怪的),而且串接2台裝置時,還要手動跳Jumper設定第一台的Master和第二台的Slave,或著選Cable Select讓電腦自己排排樂。

總計25個型號、歷經傳統薄膜式磁頭、磁阻式 (MR) 磁頭、巨磁阻 (GMR) 磁頭、垂直磁紀錄 (PMR) 、疊瓦式磁紀錄 (SMR) 、一路邁向全固態化的硬碟機,可以說是在筆者二十幾年個人電腦DIY的歷史中,最具存在感也最具代表意義的回憶,甚至還是筆者的長期筆名「水球」和公私電子郵件都有「Waterball」的起源,所以值得動用最多的篇幅來好好的大書特書一番。但在細數昔日古董前,我們先來回顧一下,什麼是「ATA」,特別是相對於SATA、長期被俗稱IDE的PATA (Parallel ATA)。

為何ATA的起源,會跟Seagate、日後被其收購的Maxtor,和Western Digital這3間歷史悠久的硬碟大廠這麼的有淵源?

ATA的前身是Shugart (後來的Seagate) 在1980年代初期提出的ST-506 / ST-412。Shugart在1980年推出ST-506是第一台為了微電腦而量身訂做的硬碟,但此硬碟介面並無正式命名,只因為是ST-506與ST-412這2種硬碟機所採用的介面,故得此名。

ST-506 / ST-412和後來的ATA最大的不同處是:資料分離器和磁碟機控制器,都是做在硬碟介面卡,而不是硬碟機上,導致硬碟介面卡相當複雜且昂貴,科科們可以想像時下ATA硬碟機背面的電路板,大多數功能都被強制轉移到主機板上的慘況。在ATA與SCSI尚未成熟的1980年代,絕大多數的硬碟機都是這個介面。

接著Maxtor推出ESDI (Enhanced Small Disk Interface),將資料分離器整合在硬碟機的控制電路板,並靠著較快的資料傳輸率,獨領風騷一段時日,但未獲廣泛應用。

Western Digital分別在1982年和1984年,推出首款單晶片硬碟控制器 “WD1010” 與首張IBM PC/AT硬碟介面卡,相容ST-506,並進一步整併整個磁碟機控制器到硬碟機上,將硬碟與控制器整合成一個傳輸介面,降低介面卡的成本,IDE的全名 “Integrated Drive Electronics” 由此而來,IDE也在很長的一段時間成為ATA的代名詞,而這樣如我們所認知的「完整功能」硬碟,首度出現在1986年的Compaq電腦上,當然也主要來自於Western Digital的貢獻。

 

ATA-2草案先由Seagate所提出,再由間接隸屬於美國國家標準協會 (American National Standards Institute,ANSI) 的國際資訊技術標準委員會 (InterNational Committee for Information Technology Standards,INCITS) 之T13技術委員會中的眾多參與成員,共同修訂為標準規格。Parallel ATA的諸多特色,如PCMCIA外接介面等,也都奠基於這段ATA急速發展期。

老舊的ISA匯流排嚴重限制傳輸效率,開始標準化的ATA規格就盡量發揮VESA Local Bus及PCI等新一代高速匯流排的特性,如ATA-2具有PIO (Programmed I/O,所有I/O都由CPU執行) Mode 4及Multi-Word DMA (Direct Memory Access,允許I/O直接存取主記憶體,降低CPU工作量) Mode 2,最高傳輸量達16.6MB/s。

IDE介面到底有多亂?

IDE圈很亂,說有多亂就有多亂,歷代規格還塞好塞滿硬碟機廠商自己掰出來的「技術行銷」暱稱,令人目不暇給。

  • 從PC/XT時代就已經有XT-IDE,為8位元的介面、ISA XT匯流排、40腳排線接頭。
  • 用於PC/AT以上IDE介面則稱為ATA(AT Attachment)-IDE,簡稱為ATA,為16位元的介面、ISA AT匯流排、40腳排線接頭。ATA-IDE還有VESA Local Bus匯流排版本,被稱為Fast ATA。
  • 另外,還有IBM專屬的MCA (Micro Channel Architecture) 匯流排,稱為MCA-IDE,亦為16位元的介面,但為72腳排線接頭。

隨著日後的發展,ATA-IDE成為IDE規格的主流和ATA日後發展的基礎。

「ATA」全名是什麼?為何會這樣取名?

ATA的全名之所以被稱為AT Attachment,在於直接將磁碟機連接至 (attach to) IBM PC/AT相容之ISA匯流排。一句話結束,不必謝我。

這也衍生出一個有趣的問題 (很久以前在BBS上被問過):為何長期象徵高階儲存介面的SCSI (Small Computer System Interface) 似乎沒有PIO Mode這東西?這個道理相當簡單,因為SCSI介面控制卡必須接在匯流排 (如PCI) 上,本身就是具備高度裝置獨立性,就直接Bus Mastering走First-Party DMA了,誰跟你PIO操死CPU還慢慢爬,而不像ATA是「直接變相將硬碟插在AT Bus想辦法讓CPU處理I/O運作」,ATA也就理所當然的擁有「讓已經被操好操滿的CPU繼續閒閒有事作」的PIO Mode。

過去困擾廠商和使用者的容量上限是怎麼跑出來的?

這議題其實有點複雜,真要猛寫下去會變成算術大賽,為避免字數破表,筆者也決定略而不談某些細節,不過科科們只需要了解一件事:BIOS定址上限、ATA定址上限、檔案系統定址上限、和作業系統,在這本「功勞簿」上都得被記上一筆。

經歷過這段歲月往事的科科,應該都會記得當年主機板BIOS中的磁碟機選項,提供的Normal (528MB)、Large (528MB-2.1GB) 和LBA (超過2.1GB) 模式,只要依稀回憶「某段期間內,好像所有硬碟機廠商都有志一同的推出容量相同的最高容量機種」,大概就該心裡有數「啊,又撞牆了,雖然不知道這次的罪魁禍首是哪位大恩大德」,微軟也對「築牆」此事頗具「貢獻」,免費捐贈2.1GB、32GB和2TB三道大牆。如果這幾座大牆能夠擋住進擊的巨人就好了。(冷)

PC/AT的BIOS和ATA交互「強碰」後,由CHS (磁柱、磁頭、磁區) 的「最小環節」決定容量上限,也因此造成了ATA介面定義的容量限制:528MB、8.4GB及136.9GB這3個關卡。

早期主機板廠商修改Int 13H的中斷服務 (x86電腦的低階磁碟I/O服務),轉移2個磁頭紀錄位元到磁柱紀錄,將第一個容量上限關卡:528MB,增加到2.1GB,做為臨時性的應急方法,容量再往上就得使用LBA (Logical Block Addressing) 模式。

當IBM和微軟聯手,藉由引進支援LBA的BIOS INT 13H extension中斷服務,允許作業系統直接跳過BIOS,透過虛擬的邏輯CHS位址來存取磁碟後,瓶頸便轉移到28位元LBA定址的136.9GB,後來ATA/ATAPI-6 (UltraDMA 100) 導入48位元LBA定址方式,一舉衝破136.9GB的理論之牆,後面接著就都是軟體層面的障礙了,而48位元LBA的144PB,現在看來還是遙不可及的未來。

那光碟機採用的ATAPI (ATA Packet Interface) 又是什麼?

可以將其視為SCSI與ATA的結合。光碟機執行的是SCSI介面的CD-ROM命令,ATAPI的存在目的,就是經由ATA執行這些SCSI命令。在當時,很多音效卡也會直接提供IDE接頭,供連接光碟機之用。

經常用來檢測硬碟機是不是快升天的SMART又是何時出現的?

為了改善硬碟機的可靠性,ATA規範必須額外定義硬碟機的自我檢測及狀況回報功能,IBM率先提出PFA (Predictive Failure Analysis) 規格,後來再由Quantum及Compaq提出SMART (Self-Monitoring Analysis and Reporting Technology) 技術,在ATA-3成為正式業界規範。

效能皇帝大,那ATA歷史上的重大里程碑是?

Intel與Quantum共同制定,ATA/ATAPI-4的UltraDMA Mode堪稱是ATA歷史上的重要里程碑,將理論最大傳輸率從16.6MB/s一次加倍至33MB/s,也建立日後以33MB/s為單位逐步提升頻寬的成長曲線,直到轉進到序列化 (Serial) 的SATA為止。值得注意的是,UltraDMA Mode 3定義了44MB/s的理論傳輸率,但沒有廠商實作。事實上,沒實際面世的ATA傳輸模式可多著了。

恭喜各位科科,壯大的硬碟機冒險故事,在此揭開序幕。預祝各位新年快樂。

未完待續:下集「硬科技:光華電腦DIY回憶錄之最吵的硬碟 以「火球」和「鑽石」為起點的漫長旅程

回應 45

45 則回應