ATA Disk在Linux中的驅動架構對比分析

來源:互聯網
上載者:User

轉自 http://blog.ednchina.com/tiloog/219030/message.aspx     

   這裡所說的ATA Disk包含兩大類:一類是傳統的並行ATA(PATA),即IDE介面;另一類是目前流行的串列ATA(SATA)。對於IDE的驅動,Linux-2.6.28還進行了保留,其可以驅成傳統的HD裝置,也可以驅成流行的SD裝置。對於SATA裝置,Linux的標準做法是驅成SD裝置,下面對傳統ATA的驅動架構和目前流行ATA的驅動架構進行對比分析說明。


       傳統ATA的驅動架構如所示,傳統的ATA Host架構在PCI匯流排之上,在PCI匯流排掃描過程中枚舉得到。PCI掃描程式Scan到ATA Host之後會載入該裝置的驅動程式,即ATA Host Driver,該Driver亦是一個PCI Device的驅動。ATA Host會被註冊到IDE Core Level驅動層,從而產生一條IDE的匯流排,IDE核心層在對ATA Host初始化完畢之後會掃描該Host,並且載入適合裝置的IDE Device Driver。如果Ide Device Driver是一個Ide Disk的驅動,那麼ATA磁碟將會被驅成HD裝置;如果驅動是Ide-Scsi,那麼ATA Device將會被虛擬成一個SCSI Host,並且將該Host加入到Scsi Middle Leve驅動層,同樣的原理,Scsi Middle Level驅動層會掃描這個虛擬Scsi host,然後載入掃描得到裝置的驅動,這個驅動通常為scsi disk driver,此時,一個傳統IDE裝置被驅成了一個SCSI裝置。從上述的驅動棧我們可以看出,IDE裝置被虛擬成SCSI裝置的關鍵在於IDE Device Driver,在該層對裝置進行了虛擬化處理,形成了一條虛擬SCSI匯流排,然後再將裝置虛擬成了SCSI Device,按照這種思路,我們可以不斷的進行裝置虛擬和匯流排層疊擴充。

       從上述驅動架構來看,IDE匯流排層作用並不是很大,因此,完全可以將IDE匯流排層拋棄,直接採用如所示的驅動架構,這也是目前SATA等驅動常用的驅動模型。

       在上述驅動模型中,ATA Host的枚舉過程與第一個模型保持一致,但是ATA Host Driver會直接將ATA Host註冊到SCSI Middle Level層,考慮到ATA協議層與SCSI協議層存在差異,因此,通過LibATA驅動作為SCSI Middle Level與ATA Host之間的轉換層,從而可以很好的將ATA Host直接融入到SCSI的驅動體系中來,可以直接將ATA裝置驅成SCSI Device。與第一個模型相比,這個模型的驅動棧變淺了,驅動效率提高了,而且可以無縫的將ATA驅動融入到SCSI驅動體系中。在這個驅動模型中,LibATA驅動無疑是最大的功臣。目前,很多SATA Host驅動以及PATA Host的驅動都採用這種模型。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.