SATA支持ATAPI的設(shè)計(jì)要點(diǎn)
由于SATA應(yīng)用于ATAPI device,傳輸效能不是最重要的考量,軟、硬件的兼容性才是最重要的課題,因此在設(shè)計(jì)上也就更不容易掌握。本文將對(duì)SATA支持ATAPI組件的IC設(shè)計(jì),作一簡(jiǎn)單的介紹,希望讀者能對(duì)SATA應(yīng)用于ATAPI組件所應(yīng)考量的設(shè)計(jì)要點(diǎn)能有更清楚的了解。
SATA支持ATAPI的設(shè)計(jì)要點(diǎn)
在SATA相關(guān)硬盤與主機(jī)板上的SATA控制器上,所謂的SATA IC的設(shè)計(jì)模式,可分為原生型設(shè)計(jì)(Native Design)與橋接設(shè)計(jì)(Bridge Design)兩種:
? 原生型設(shè)計(jì):所謂原生型設(shè)計(jì),指的是未透過(guò)橋接(Bridge)接口的轉(zhuǎn)換,直接將SATA的訊號(hào)轉(zhuǎn)換為其它接口的訊號(hào)。例如:PCI to SATA控制卡,所謂的原生設(shè)計(jì),指的就是由PCI訊號(hào)直接轉(zhuǎn)換為SATA訊號(hào),并未經(jīng)過(guò)任何接口的轉(zhuǎn)接。
? 橋接設(shè)計(jì):所謂的橋接設(shè)計(jì),指的是透過(guò)橋接接口的轉(zhuǎn)換,直接將市場(chǎng)上現(xiàn)有的接口轉(zhuǎn)換為SATA接口。例如:市場(chǎng)上本來(lái)就有PCI to ATA的接口,透過(guò)增加ATA轉(zhuǎn)SATA的接口,馬上就可以整合成PCI to SATA的控制接口。此設(shè)計(jì)模式也是廠商導(dǎo)入SATA產(chǎn)品的最快方式。
目前市面上SATA硬盤,大多數(shù)都采用橋接設(shè)計(jì)模式,也就是在原有的硬盤控制芯片上,再外接一個(gè)PATA(Parallel ATA) to SATA Bridge Chip。即可成為支持SATA的硬盤。至于光儲(chǔ)存裝置(如DVD+RW、CD-RW等)導(dǎo)入SATA的solution,也是以橋接器設(shè)計(jì)方式最為容易。但是ATAPI device(如DVD+RW、CD-RW等)在SATA的設(shè)計(jì)上卻有很多的限制,尤其是兼容性的問(wèn)題。如果采用PATA to SATA bridge chip 加上光儲(chǔ)存既有的控制芯片,即可提供SATA DVD+RW、CD-RW 的解決方案,但是PATA to SATA bridge chip在支持ATAPI的設(shè)計(jì)考量,卻完全反映到SATA光儲(chǔ)存裝置的兼容性。以下即是SATA應(yīng)用于ATAPI Device設(shè)計(jì)上所需注意的事項(xiàng)。
大體來(lái)說(shuō),SATA應(yīng)用于ATAPI Device設(shè)計(jì)上的問(wèn)題可以分為以下幾類:
1. Protocol Issue(傳輸協(xié)議問(wèn)題)
這類的問(wèn)題,通常都是發(fā)生在既有的PATA規(guī)格與最新的SATA規(guī)格有部分的差異所造成的。幾個(gè)常見(jiàn)的情況包含了下列例子:
? PIO DR0 data block 超過(guò) 8K的問(wèn)題
此一問(wèn)題與原來(lái)ATAPI規(guī)格上并未有此規(guī)范有關(guān)(請(qǐng)參考表2)。而SATA Spec. 定義DATA FIS不可超過(guò)8K的大小,但是光儲(chǔ)存媒體依照ATAPI的規(guī)范,往往有許多CD-R、CD-RW、DVD+RW的PIO DR0 data block超過(guò)8K的大小限制,此時(shí)PATA to SATA bridge就必須考量此種因SATA與ATAPI傳輸協(xié)議不同的地方,妥善處理,系統(tǒng)才能正常運(yùn)作。
? Odd word 問(wèn)題
就SATA規(guī)格的定義,SATA的傳輸是以DW(double word)為基礎(chǔ)的傳輸,但是有一些ATAPI的OP code是以odd word 傳輸為主(請(qǐng)參考表3),所以SATA bridge 勢(shì)必要了解transfer count的相關(guān)信息以解決這些問(wèn)題。如果沒(méi)有適當(dāng)處理,系統(tǒng)將會(huì)把過(guò)剩的word data傳輸?shù)紿ost端的內(nèi)存或光儲(chǔ)存媒體,而造成系統(tǒng)錯(cuò)誤。
就以往光儲(chǔ)存媒體的習(xí)慣來(lái)說(shuō),有一些光驅(qū)的運(yùn)作會(huì)送出INTRQ以準(zhǔn)備接收command 封包。但是在SATA的通訊協(xié)議中,SATA host端并不會(huì)送出INTRQ,這樣將會(huì)造成系統(tǒng)的當(dāng)機(jī),因?yàn)檐浖仨毷盏絀NTRQ才會(huì)開(kāi)始執(zhí)行送出command封包的動(dòng)作。因此PATA to SATA bridge的設(shè)計(jì)上就必須補(bǔ)償規(guī)格上缺憾的問(wèn)題。
? Transfer count問(wèn)題
由于各式各樣的CD-R或DVD空白片格式,將使得SATA bridge很難去了解盤片完整的transfer count,而SATA bridge將無(wú)法得知何時(shí)數(shù)據(jù)將會(huì)結(jié)束。這往往需要非常robust的方法去處理transfer count的問(wèn)題,SATA bridge也并須能補(bǔ)償protocol缺憾的問(wèn)題。2. Vendor Specific Command Issue(制造商的特有指令問(wèn)題)
這類問(wèn)題通常為光驅(qū)廠商都有自己的Vendor Specific Command,而此類command并未遵循ATAPI規(guī)格的規(guī)范,而此種模式在現(xiàn)有的光驅(qū)市場(chǎng)是非常普遍的現(xiàn)象。但是也造成了SATA設(shè)計(jì)上的困難。
? Update optical media flash ROM問(wèn)題
每一家系統(tǒng)廠商更新flash ROM的程序順序往往都是廠商特有的vendor specific command。而有些廠商的更新程序往往會(huì)與SATA傳輸協(xié)議有所出入,這也就會(huì)造成了兼容性的問(wèn)題。
例如:持續(xù)的寫入sec count register對(duì)于PATA及ATAPI規(guī)格是有意義的,但是對(duì)于SATA而言卻是會(huì)被忽略的。
3. Violate ATAPI Spec Issue(違反ATAPI規(guī)格問(wèn)題)
光驅(qū)接口反應(yīng)未遵守規(guī)格的規(guī)定,這在PATA時(shí)期即是如此。與硬盤相比,硬盤的Operational Behavior與Command set基本上都相當(dāng)遵守ATA Spec.的規(guī)范,但是光儲(chǔ)存裝置對(duì)于ATAPI Spec.卻往往有違反規(guī)格的情形發(fā)生。而PATA to SATA bridge就必須有能力補(bǔ)償ATAPI裝置違反ATAPI Spec.的運(yùn)作差異(Operational Variations)。
所謂的作業(yè)差異,一般來(lái)說(shuō),許多ATAPI裝置都會(huì)在某些地方不符合ATAPI規(guī)格,進(jìn)而產(chǎn)生所謂的「運(yùn)作差異」,它們會(huì)以不同的形式出現(xiàn),使得事前預(yù)測(cè)變得極為困難。ATAPI時(shí)序差異(timing variations)就是ATAPI裝置常見(jiàn)的一種差異,這是因?yàn)殡S著ATAPI裝置在PIO或UDMA模式下工作,ATAPI總線Handshaking Signal的寬度也會(huì)有所不同,數(shù)據(jù)脈沖訊號(hào)(data strobe)就是例子。此時(shí)除非PATA to SATA橋接組件在他的SATA/ATAPI實(shí)體接口中提供可調(diào)整時(shí)序,否則采用這種組件的電路板就無(wú)法彌補(bǔ)ATAPI裝置的時(shí)序差異,系統(tǒng)廠商也將被迫選擇不同的ATAPI裝置或橋接組件;無(wú)論廠商采用哪種方式,產(chǎn)品上市的時(shí)間與未來(lái)的兼容性問(wèn)題都會(huì)受到影響。
光驅(qū)接口反應(yīng)未遵守規(guī)格的項(xiàng)目還包含以下各點(diǎn):
? Status反應(yīng)
? Interrupt反應(yīng)
? Signature反應(yīng)是錯(cuò)誤的
? 運(yùn)作反應(yīng)違反ATAPI規(guī)格