2007年制定了SATA2及SATA2.5标准,速度达到3000Mbps(理论上等同于375MB/s )。自2003年第二季度Intel推出支持SATA 1.5Gbps的 南桥芯片(ICH5)后,SATA接口取代传统PATA(并行ATA)的态势日渐明显。此外,SATA与现存于PC上的USB、IEEE1394相比,在性能和功能方面的表现也很突出。然而经过一年的市场洗礼,原有的SATA 1.0/1.0a (1.5Gbps)规格遇到了一些问题。2005年SATA 硬盘步入了新的发展阶段。性能更强、配置更高的SATA2.0产品已经出现在市场上,而这些高性能的SATA2.0 硬盘的到来无疑加速了 硬盘市场的转变。SATA是 Intel公司在IDF2000大会上推出的,该技术可以让用户拥有高效能的 硬盘,却不必牺牲资料的完整性。SATA最大的优势是 传输速率高。SATA的工作原理非常简单:采用连续串行的方式来实现数据传输从而获得较高 传输速率。2003年发布SATA1.0规格提供的传输率就已经达到了150MB/s,不但已经高出普通IDE 硬盘所提供的100MB/s(ATA100)甚至超过了133MB/s(ATA133)的最高 传输速率。SATA在数据可靠性方面也有了大幅度提高。SATA可同时对指令及数据 封包进行 循环冗余校验(CRC),不仅可检测出所有单bit和双bit的错误,而且根据统计学的原理,这样还能够检测出99.998%可能出现的错误。相比之下,PATA只能对来回传输的数据进行校验,而无法对指令进行校验,加之高频率下干扰甚大,因此数据传输稳定性很差。除了传输速度、传输数据更可靠外,节省空间是SATA最具吸引力之处,更有利于机箱内部的散热,线缆间的串扰也得到了有效控制。不过SATA 1.0规范存在不少缺点,特别是缺乏对于服务器和 网络存储应用所需的一些先进特性的支持。 比如在多任务、多请求的典型服务器环境里面SATA1.0 硬盘的确会有性能大幅度下降、可维护性不强、可连接性不好等等缺点。这时,SATA2.0的出现在这方面却得到了很好的补充。在SATA2.0扩展规范中,3Gb/s被提到的频率最高。由于SATA使用8bit/10bit编码,所以3Gb/s等同于300MB/s的接口速率。不过,从性能角度看,3Gb/s并不能带来多大的提升,即便是RAID应用的场合,性能提升也没有想象的那么大。因为 硬盘内部 传输速率还达不到与接口速率等同的程度,而且接口速率的影响也不是很大,在大多数应用中 硬盘是将更多的时间花在寻道上,而不是传输上。接口速率的提高直接影响到的是从 缓存进行读写的操作,所以理论上大缓存的产品会从3Gb/s上得到更大的好处。从现有情况来看,相信3Gb/s的普及速度会加快,不过市场仍会存在一个1.5Gb/s和3Gb/s的共存期。PATA CRC原理,PATA只对数据部分进行CRC校验在SATA2.0扩展规范所带来的一系列新功能中,NCQ(Native Command Queuing,原生命令队列)功能最令人关注。 硬盘是机电设备,容易受内部机械部件惯性的影响,其中旋转等待时间和寻道等待时间就大大限制了硬盘对数据访问和检索的效率。具体来说,如果磁头停在目标 磁道上方,却错过了起始LBA(Logical Block Addressing,逻辑 块寻址),就会产生旋转等待时间。最糟糕的情况是, 硬盘将经过旋转一整圈的时间才能访问起始LBA,然后再继续从剩余的目标LBA中读取数据。如果以LBA相对于磁头角度位置随机分布,那么平均旋转等待时间是最大旋转等待时间的一半。而寻道等待时间是读/写磁头准确定位于存储目标LBA的 磁道上方所占用的时间。例如,执行单一的读命令时,磁头只须访问一条 磁道,但如果有多条待执行命令, 硬盘就要访问所有目标LBA,从而须花费大量时间。如果对 硬盘这个机械动作的执行过程实施智能化的内部管理,则可以大大提高整个工作流程的效率。即取出 队列中的命令,然后重新排序,以便有效地获取和发送主机请求的数据,在 硬盘执行某一命令的同时,队列中可以加入新的命令并排在等待执行的作业中。如果新的命令恰好是处理起来机械效率最高的,那么它就是队列中要处理的下一个命令。但有效的 排序算法既考虑目标数据的线性位置,也考虑其角度位置,并且还要对线性位置和角度位置进行优化,以使 总线的服务时间最小,这个过程也称作“基于寻道和旋转优化的命令重新排序”。台式 PATA硬盘队列一直被严格地限制为深度不得超过32级。如果增加队列深度,可能会起到反作用——增加命令堆积风险。通常PATA 硬盘接收命令时有两种选择:一是立即执行命令,二是延迟执行。对于后一种情况, 硬盘必须通过设置注意标志和Service位来通知 主机何时开始执行命令,然而硬盘不能主动与主机通信,这就需要主机定期自动轮回查询所有 硬盘扇区,发现Service位后将发一条Service命令,才能从硬盘获得将执行哪一条待执行命令的信息。而且Service位不包含任何对即将执行命令的识别信息,所必需的命令识别信息则以标记值的形式与数据请求一同传输,并仅供 主机用于设置DMA引擎和接收数据 缓冲区。这样 主机就不能预先掌握 硬盘所设置的辅助位是哪条命令设置的,数据传输周期开始前也无法设置DMA引擎。这最终导致PATA 硬盘效率低下。NCQ包含两部分内容。