由于SATA应用于ATAPI device,传输效能不是最重要的考量,软、硬件的兼容性才是最重要的课题,因此在设计上也就更不容易掌握。本文将对SATA支持ATAPI组件的IC设计,作一简单的介绍,希望读者能对SATA应用于ATAPI组件所应考量的设计要点能有更清楚的了解。
SATA支持ATAPI的设计要点
在SATA相关硬盘与主机板上的SATA控制器上,所谓的SATA IC的设计模式,可分为原生型设计(Native Design)与桥接设计(Bridge Design)两种:
原生型设计:所谓原生型设计,指的是未透过桥接(Bridge)接口的转换,直接将SATA的讯号转换为其它接口的讯号。例如:PCI to SATA控制卡,所谓的原生设计,指的就是由PCI讯号直接转换为SATA讯号,并未经过任何接口的转接。
桥接设计:所谓的桥接设计,指的是透过桥接接口的转换,直接将市场上现有的接口转换为SATA接口。例如:市场上本来就有PCI to ATA的接口,透过增加ATA转SATA的接口,马上就可以整合成PCI to SATA的控制接口。此设计模式也是厂商导入SATA产品的最快方式。
目前市面上SATA硬盘,大多数都采用桥接设计模式,也就是在原有的硬盘控制芯片上,再外接一个PATA(Parallel ATA) to SATA Bridge Chip。即可成为支持SATA的硬盘。至于光储存装置(如DVD+RW、CD-RW等)导入SATA的solution,也是以桥接器设计方式最为容易。但是ATAPI device(如DVD+RW、CD-RW等)在SATA的设计上却有很多的限制,尤其是兼容性的问题。如果采用PATA to SATA bridge chip 加上光储存既有的控制芯片,即可提供SATA DVD+RW、CD-RW 的解决方案,但是PATA to SATA bridge chip在支持ATAPI的设计考量,却完全反映到SATA光储存装置的兼容性。以下即是SATA应用于ATAPI Device设计上所需注意的事项。
大体来说,SATA应用于ATAPI Device设计上的问题可以分为以下几类:
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 传输为主,所以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设计上的困难。
Update optical media flash ROM问题
每一家系统厂商更新flash ROM的程序顺序往往都是厂商特有的vendor specific command。而有些厂商的更新程序往往会与SATA传输协议有所出入,这也就会造成 了兼容性的问题。
例如:持续的写入sec count register对于PATA及ATAPI规格是有意义的,但是对于SATA而言却是会被忽略的。
3. Violate ATAPI Spec Issue(违反ATAPI规格问题)
光驱接口反应未遵守规格的规定,这在PATA时期即是如此。与硬盘相比,硬盘的Operational Behavior与Command set基本上都相当遵守ATA Spec.的规范,但是光储存装置对于ATAPI Spec.却往往有违反规格的情形发生。而PATA to SATA bridge就必须有能力补偿ATAPI装置违反ATAPI Spec.的运作差异(Operational Variations)。
所谓的作业差异,一般来说,许多ATAPI装置都会在某些地方不符合ATAPI规格,进而产生所谓的「运作差异」,它们会以不同的形式出现,使得事前预测变得极为困难。ATAPI时序差异(timing variations)就是ATAPI装置常见的一种差异,这是因为随着ATAPI装置在PIO或UDMA模式下工作,ATAPI总线Handshaking Signal的宽度也会有所不同,数据脉冲讯号(data strobe)就是例子。此时除非PATA to SATA桥接组件在他的SATA/ATAPI实体接口中提供可调整时序,否则采用这种组件的电路板就无法弥补ATAPI装置的时序差异,系统厂商也将被迫选择不同的ATAPI装置或桥接组件;无论厂商采用哪种方式,产品上市的时间与未来的兼容性问题都会受到影响。
光驱接口反应未遵守规格的项目还包含以下各点:
Status反应
Interrupt反应
Signature反应是错误的
运作反应违反ATAPI规格