SATA支持ATAPI的设计要点
1. Protocol Issue(传输协议问题)
这类的问题,通常都是发生在既有的PATA规格与最新的SATA规格有部分的差异所造成的。几个常见的情况包含了下列例子:
? PIO DR0 data block 超过 8K的问题
此一问题与原来ATAPI规格上并未有此规范有关(请参考表2)。而SATA Spec. 定义DATA FIS不可超过8K的大小,但是光储存媒体依照ATAPI的规范,往往有许多CD-R、CD-RW、DVD+RW的PIO DR0 data block超过8K的大小限制,此时PATA to SATA bridge就必须考量此种因SATA与ATAPI传输协议不同的地方,妥善处理,系统才能正常运作。
? Odd word 问题
就SATA规格的定义,SATA的传输是以DW(double word)为基础的传输,但是有一些ATAPI的OP code是以odd word 传输为主(请参考表3),所以SATA bridge 势必要了解transfer count的相关信息以解决这些问题。如果没有适当处理,系统将会把过剩的word data传输到Host端的内存或光储存媒体,而造成系统错误。
就以往光储存媒体的习惯来说,有一些光驱的运作会送出INTRQ以准备接收command 封包。但是在SATA的通讯协议中,SATA host端并不会送出INTRQ,这样将会造成系统的当机,因为软件必须收到INTRQ才会开始执行送出command封包的动作。因此PATA to SATA bridge的设计上就必须补偿规格上缺憾的问题。
? Transfer count问题
由于各式各样的CD-R或DVD空白片格式,将使得SATA bridge很难去了解盘片完整的transfer count,而SATA bridge将无法得知何时数据将会结束。这往往需要非常robust的方法去处理transfer count的问题,SATA bridge也并须能补偿protocol缺憾的问题。
2. Vendor Specific Command Issue(制造商的特有指令问题)
这类问题通常为光驱厂商都有自己的Vendor Specific Command,而此类command并未遵循ATAPI规格的规范,而此种模式在现有的光驱市场是非常普遍的现象。但是也造成了SATA设计上的困难。