Controller
Introduction
Controller 是真正操作 port、bus、或 device 的電子元件。簡單的 controller 可能只是負責 serial port 的 chip;複雜的 controller,例如 SSD controller 或 Fibre Channel HBA,可能有自己的 processor、microcode、private memory,並且可以自己做 bad-sector mapping、prefetching、buffering、caching 等工作。
Controller 的意義
Controller 讓 OS 不必知道每個 device 的完整硬體細節。OS 只需要透過 driver 依照 controller 的介面讀寫 register,controller 會把這些命令翻譯成真正的 device 操作。
Types
1. Host Controller (or HBA, Host Bus Adapter)
是電腦主機端的 controller,system bus 傳輸的訊號格式 SATA bus 之類的傳不了,所以 host controller 就擔任翻譯官的角色將訊號在兩種 bus 的格式間轉換
2. Device Controller
負責接收 bus 傳來的訊號,驅動 disk 讀寫資料、暫存在 buffer 裡,然後再把資料放回 bus 傳出去