2016年12月8日 星期四

About AT Attachment (ATA)

Advanced Technology Attachment,簡稱「ATA」
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 dataParse出對應的資訊。
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 Commandhost Transport protocol layer。
2.Device Transport protocol layer收到Command後,發送給Device server,然後Device server開始處理此Command。
3.Devicecommand處理完後,device server發出Send Command Function Complete responsedevice port。
4.Host port收到response後,送出Command Function Complete Received confirmationApplication Client



其它類型的Protocol因為基本上就是看圖說故事,就不在此描述了。下次再來介紹ATA中各種Field的定義及目的。

沒有留言:

張貼留言