整合式磁碟電子設備將磁碟特定控制邏輯移至磁碟機,並標準化主機端暫存器與命令。由此形成的 ATA 系列在 Serial ATA 之前主導個人電腦儲存,但幾個相關名稱描述這段歷史的不同部分。
術語 #
四個術語不應視為完全同義:
- IDE 表示整合式磁碟電子設備,指將控制器邏輯與機構放在一起的架構變更。Enhanced IDE(EIDE)是後來的擴充集合與產品術語。
- ATA 起初是 AT Attachment 介面,現在指標準系列,包括命令、暫存器、協定與裝置行為。
- PATA 是 Serial ATA 需要區分後,對 ATA 平行電氣介面的回溯名稱。
- ATAPI 定義在 ATA 傳輸上使用封包命令的協定。光碟機與其他裝置使用它傳送源自 SCSI 命令集的命令,而不是假裝成 ATA 磁碟。
SATA 變更佈線、訊號與拓撲,同時保留大部分 ATA 命令模型。因此,現代 ATA 命令描述可以適用於超出 40 針 IDE 排線的情境。
主機、通道與裝置拓撲 #
主機配接器公開一個或多個 ATA 通道。平行通道具有共享命令、控制與 16 位元資料訊號,最多可連接兩個裝置。裝置慣例上稱為主裝置與從裝置,或裝置 0 與裝置 1。這些名稱選取匯流排身分;不表示某一磁碟會替另一磁碟路由所有命令。
跳線可以明確指派身分。Cable Select 模式則使用 CSEL 導線與連接器佈線判斷身分。主機在 Device/Head 暫存器寫入裝置位元,等待選取依標準穩定,然後存取選定裝置的暫存器集合。傳統操作下,同一時間只有一種命令協定佔用共享通道。
原始排線使用 40 條導線。較快的 Ultra DMA 模式需要具有相同 40 針連接器的 80 導線排線;額外接地導線可降低串擾。共享訊號、短排線限制與時序裕度限制了進一步的平行擴展,促使 SATA 採用點對點連結。
Task File 與裝置識別 #
軟體透過通常稱為 task file 的命令區塊暫存器集合,加上控制區塊暫存器,控制傳統 ATA 裝置。暫存器角色包括:
| 暫存器 | 角色 |
|---|---|
| Data | 16 位元 PIO 資料傳輸與 IDENTIFY 字組 |
| Features / Error | 寫入時為命令參數;讀取時為錯誤詳細資料 |
| Sector Count | 傳輸數量或命令參數 |
| LBA Low、Mid、High | 位址位元組或命令特定值 |
| Device/Head | 裝置選取與傳統高位址位元 |
| Command / Status | 寫入時啟動命令;讀取時回報狀態 |
| Device Control / Alternate Status | 重設、中斷控制,以及沒有確認副作用的狀態 |
主機載入參數,最後寫入命令暫存器。接著依命令指定的 PIO 或 DMA 協定操作,同時解讀 BSY、DRQ、ERR 與 DRDY 等狀態位元。BSY 設定時輪詢任意暫存器可能違反協定,因為該階段只有指定的狀態存取有效。
IDENTIFY DEVICE 回傳描述 ATA 磁碟的 256 個 16 位元字組。已定義的字組回報型號與序號字串、支援的命令集、作用中的傳輸模式、邏輯磁區屬性、佇列功能與可定址容量。ATAPI 裝置則改為回應 IDENTIFY PACKET DEVICE。不得推測保留位元與字組,而支援與啟用位元是不同的:功能可能已實作但目前未啟用。
CHS、LBA28 與 LBA48 #
早期命令為 BIOS 與 DOS 相容性公開柱面、磁頭與磁區欄位。由於回報的幾何不再符合實體媒體,裝置韌體會轉譯這些值。邏輯區塊定址則以線性方式為磁區編號。
原始 ATA LBA 形式攜帶 28 位元位址:三個 LBA 暫存器中有 24 位元,Device/Head 中有 4 位元。使用 512 位元組磁區時,其位址空間為:
2^28 sectors × 512 bytes = 128 GiB = 137,438,953,472 bytesLBA48 命令將位址擴展至 48 位元,磁區數量擴展至 16 位元。在傳統 task file 上,軟體先寫入高位元組,再寫入對應低位元組,接著發出如 READ SECTORS EXT 的 EXT 命令。每磁區 512 位元組時,48 位元可定址 128 PiB。實際裝置與作業系統可能施加較小限制,而具有較大邏輯磁區的磁碟會改變位元組容量,但不改變 LBA 數量。
磁區數量欄位中的零具有命令特定的最大數量語意—許多 28 位元命令為 256 個磁區,相應的 48 位元命令為 65,536 個。驅動程式必須遵循所選命令定義,而不能將零解讀為空請求。
PIO、DMA 與 Ultra DMA #
ATA 傳輸模式描述磁區資料如何通過主機介面:
- **程式化 I/O(PIO)**讓處理器為每個字組讀取或寫入 Data 暫存器。裝置使用
DRQ分隔資料階段。 - 單字與多字 DMA讓主機 DMA 引擎在驅動程式設定記憶體描述元並發出 ATA DMA 命令後傳輸資料。
- **Ultra DMA(UDMA)**使用源同步選通,在選通的兩個邊緣傳輸,並為每個突發加入 CRC。較高模式會收緊時序,且 PATA 需要 80 導線排線。
DMA 減少由處理器管理的資料移動,但 ATA 命令設定、完成、錯誤處理、快取排清與 DMA 映射仍是驅動程式責任。CRC 錯誤保護排線傳輸,但不提供媒體內容的端對端驗證。
主機與裝置根據 IDENTIFY 資料與 SET FEATURES 協商模式。選取排線、控制器或裝置不支援的模式可能損壞傳輸,因此驅動程式會套用平台限制,而不是選擇裝置宣告的最大數字。
持續存在的區塊裝置邊界 #
整合式控制與 LBA 為作業系統提供穩定的磁區陣列抽象。檔案系統與分割表可以在邏輯區塊上運作,而不必排程磁頭移動或編碼磁碟的實體幾何。ATA 仍公開媒體錯誤與效能細節,但機構決定 LBA 如何映射至磁軌、快閃頁面、備用磁區或內部轉譯層。
評論
在 GitHub 上閱讀或評論(發表評論需要登入)