ATA是一個控制器技術,而IDE是一個符合它的磁碟機技術,但是兩個術語經常可以互用。
SATA(Serial ATA)於2002年推出後,原有的ATA改名為PATA(並列高技術配置,Parallel ATA)。
ATAPI (ATA Packet Interface)是一款ATA協定,允許使用ATA連接到硬碟以外的周邊裝置。
從架構面來看,ATA分為以下三層
ATA application Layer:
依照各個Command的不同,做出相對應的Flow。舉例來說,送出讀取SMART資訊的Command後,返回的資料該怎麼從Raw data去Parse出對應的資訊。
ATA
transport protocol layer:
維持Protocol的基本流程,除了基本Protocol外,上層比較會接觸到的Command
Protocol基本上分為Non-data / PIO Data-In / PIO Data-Out  / DMA / DMA Queued / PACKET Command protocol,每一種都有自己的Flow。
ATA
interconnect layer:
最接近物理層面的一層,會依據PATA/SATA而有相對應的處理。
所有的Command Set都是建構在Client-Server的觀念去完成的,硬碟是Server /  主機是Client。
Command Protocol下的各種類型非常重要,所有的ATA Command後面一定會寫明該Command是哪一種類型,這代表著該Command送出後,Host與Device該採用什麼樣的方式來做溝通。
ATA protocol types are defined
- Host Power-on protocol
 
- Device Power-on protocol
 
- Nexus Loss protocol
 
- Device Management protocol
 
- Command protocol
 
- Non-data Command protocol
 
- PIO Data-In Command protocol
 
- PIO Data-Out Command protocol
 
- DMA Command protocol
 
- DMA Queued Command protocol
 
- PACKET Command protocol
 
以Non-data Command protocol來說,流程如下:
1.由Application Client Send Command給host
Transport protocol layer。2.Device Transport protocol layer收到Command後,發送給Device server,然後Device server開始處理此Command。
3.當Device將command處理完後,device server發出Send Command Function Complete response點device port。
4.Host port收到response後,送出Command Function Complete Received confirmation給Application Client。
其它類型的Protocol因為基本上就是看圖說故事,就不在此描述了。下次再來介紹ATA中各種Field的定義及目的。



沒有留言:
張貼留言