昨天SATA-IO(串行ATA国际组织)发布了一条新闻,SATA标准接口的批准程序已经开始。这就意味着,不久之后SATA传输规范将有新的升级,预计最早在今年下半年就可能迎来新的规范。那么SATA是怎样的发展路线,未来的SATA设备将是什么样,这次变革究竟会用户带来哪些便利?如果整理一下SATA的发展路线,也许能从中找到一些线索。
SATA:并行与串行之争
在2001年的时候,一种名叫ATA100的规范被ANSI(American National Standards Institute:美国国家标准学会)认证,让对存储有需求的用户兴奋不已。因为此前数据线的传输速度只有66MB/s,而一部分硬盘的内部传输速度已经快接近极限,这样一旦遇到RAID等,外部传输速度就成为瓶颈。在后来,ATA接口的速度更是提升到了133MB/s的理论值,以进一步满足用户需要。
但是这种基于并行总线的传输技术发展已经到了极限,在ATA133之后并没有更高规格的规范推出。同时也难以满足用户对性能和易用性的进一步需求。比如在一条线上安装多个硬盘时要设置主从盘跳线、宽大的数据线不利于布线和系统散热,不支持热插拔让系统不便于维护等等。从技术上来说,由于这种并行传输技术对于干扰缺乏良好的过滤机制,为了确保数据被正确传输,峰值传输电压高达5V,这种方式已经让传输标准失去了进一步提升性能的可能性。
SATA与PATA之争的本质是串行与并行之争
在ATA100通过ANSI认证的同时,由Intel、IBM、希捷等厂商牵头,在2001年发布了另一种完全不同的数据传输规范,被称为SATA1.0。这种传输技术在2000年被提出来,是一种从光纤传输衍生出来的串行传输技术,并在次年最终确立成为标准。与此前的PATA相比,数据线变得非常窄,安装十分方便。同时每个存储设备占用一条单独通道,不必设置主从,并且具备了优秀的数据校验和纠错功能。更重要的是初始传输速度就达到了150MB/s,即使是相对于之后的ATA133来说,数据传输性能也已经大大超越了。因此SATA在传输标准竞争中处于绝对优势,为以后的主流地位奠定了基础。
SATA2:开始走向成熟
现在回头来看,SATA的出现是一个不小的进步。与之前从ATA33到ATA133的一步步传输性能提升相比,PATA转换到SATA是从并行转向串行,并不是简单的规范升级,而是革命。但作为全新的标准,也存在一些不完善的地方,因此随着时间的不同,会有1.0a、1.0、1.5等等逐步完善的版本。但总体上说,使用在服务器以及企业存储设备上的时候,会出现对热插拔支持不好、对多任务请求支持不好、高负荷下性能降低等问题。
其实在2002年,也就是SATA1规范制定的第二年,SATA2就发布了,并且对这些存在的问题进行了大规模修复,同时还增加了很多新的技术以进一步提升性能。SATA2最广为人知的稳定版本是SATA2.5和2.6,将所有的优秀技术搜罗进来,并且规范了SATA2标识如何正确使用。
NCQ是让硬盘大提速的实用技术
SATA2里面将传输速度从150MB/s提升到了300MB/s,并且增加了NCQ、端口选择器、端口倍增器等技术。其中在性能提升上最引以为傲的就是NCQ技术,在某些情况下,通过优化算法对需要读取的内容进行重新排序,将按照数据顺序读取改变为按照磁盘位置顺序读取,大大提升了性能。
另外对于数据线容易成为企业级存储设备单一故障点的问题,端口选择器允许一个硬盘占用2个SATA接口(通道),这样在一条线出现故障的时候切换到另一条传输,以确保重要业务正常运行。而端口倍增器允许一个SATA线连接两个硬盘,提升了系统整体可以容纳的存储器数量。
更高速的SATA3已成主流
可以说SATA2是SATA接口走向成熟的一代,所有的规范都已经接近最终确定,暂时还没有特别新的内容需要加入。目前的SATA已经升级到了3.0时代,相对于SATA2,新规范优化了NCQ的读取机制,并且将速度提升到了600MB/s。
外部传输速度的升级,对于民用产品来说意义不大,因为在个人用户的机器中磁盘内部传输速度才是最大的瓶颈。然而在企业级存储领域,对存储性能的渴求是令人发指的。不但各种高性能的磁盘阵列方案云集,并且很多磁盘本身的内部传输速度也都相当高,更不乏万转级、15000转级的硬盘广泛使用,一些存储设备更是早早就提供了对SSD固态硬盘的完善支持,在这种情况下,通过磁盘产品的优化组合,很容易使原本看起来充裕的外部接口瞬间变成瓶颈,因此更高速率的规范势在必行。
SATA3:让人疲劳的提速
SATA-IO组织最新的标准将会做怎样的升级呢?先看一张最新的Intel服务器主板芯片组布局图。
Intel最新Xeon E5平台芯片组结构图
在这张布局图中我们要注意的就是SATA的部分。在芯片组中,Intel为服务器提供了4个SATA2接口和2个SATA3接口,这两种接口分别能够提供300MB/s和600MB/s的传输速度。虽然目前对于单个存储器来说,目前还很难对这种规格造成冲击。但是各种磁盘阵列方案,尤其是SSD的引入,让存储设备的内部传输速度能够成倍增加,即使最新的SATA3,外部传输速度也能很容易成为瓶颈。这让SATA-IO感到了压力。SATA-IO总裁Mladen Luksic去年的采访中,谈到SATA升级问题就曾经表示,虽然虽然企业级用户所占的市场份额并不多(企业级有太多解决方案可用了),但SATA的目标是要满足所有情况的应用。
诡异的新接口
以往无论是ATA33/66/100/133,还是SATA1/2/3(传输速度分别为150/300/600),其实都是在防止这种外部瓶颈出现而进行的升级。但是到了后SATA3时代该如何升级?这样纯粹提速的升级之路能走多远?作为规范的制定者,SATA-IO组织权衡之后改变了这种单纯提速的思路。一种看起来相似,但是又很“怪异”的接口出现了。
后SATA时代:升级是为了不再升级
下一代SATA升级的切入点指向了另一个同样使用串行总线的近邻:PCI Express。先做一下科普:在主板上可以看到各种不同长度的PCI Express接口,对应了x1,x4,x8,x16四种规格。每一个x代表一条PCI Express通道,每一条PCI Express通道带宽是固定的,硬件制造商研发产品时,根据自己产品所需要的带宽情况,把产品设计成需要占用几条PCI Express通道就可以了。也就是说PCI Express的带宽纯粹是用通道数量堆积起来的。
PCI Express的通道堆叠图示
既然PCI Express可以,为什么SATA不可以?带着这样的思路,早在2011年下半年,一种新的理念被提了出来,叫做SATA Express。如今经过各方讨论和完善,SATA Express正在逐步成型,现在正等待被SATA-IO批准使用,不出意外的话,今年年底将正式成为规范。其理念很简单,概括来说,就是把SATA硬盘全部连接到PCI Express上去。
但是PCI Express如何与存储设备连接呢?解决的方法是摒弃芯片组内置SATA控制器的方式,转而将SATA控制器放到每个存储设备上——就是让每个SATA 接口的硬盘自带SATA控制器。这样不论多少个设备,都会有一个自己独占的SATA通道,外部接口速度达到600MB/s,对于单个存储设备而言在很长一段时间内都不可能出现瓶颈。
下一步,在主板上继续提供SATA接口,但这些SATA接口只是继续保持SATA接口的形状,已经不再连入主板的SATA控制器,而是直接与 PCI Express通道连接。在PCI Express 2.0规格中,每个通道可以提供500MB/s带宽,比SATA3略低。但是未来的PCI Express 3.0规格中,每个通道的带宽将达到1GB/s,远远超过了SATA3规格。
即使PCI Express停留在2.0时代也没关系,因为500MB/s是PCI Express每个通道的带宽,如果存储器占用2条PCI Express通道,外部传输速度就达到1GB/s,如果占用4条,就达到2GB/s,……以此类推,即使存储设备的数量特别多,只要逐步增加PCI Express通道的占用量,存储设备外部的数据传输也不会出现任何瓶颈。(以Xeon E5-2600为例,每颗CPU可以提供40条PCI Express通道,双路平台达到80条)
未来主板上的硬盘接口是这样形状
SATA-IO已经发布了全新的SATA Express接口规范,新的接口可以同时兼容现有的SATA存储设备(连接到SATA控制器)以及未来的SATA Express存储设备(连接到PCI Express总线)。
新的控制芯片帮助用户平滑切换存储设备
另外,根据资料显示,一款SFF-8639的总线控制器也已经出炉,这款控制器同时支持现有的SATA设备和未来的SATA Express设备,是一种在两种设备都存在时使用的过渡方案,可以有效帮助用户在过渡时期切换不同规格的存储设备。
可以看出,在一次次速度提升之后,SATA-IO最终放弃了为SATA通道进一步提速的打算,转而凭借串行总线可以多通道连接的优势,对主板上的闲置资源进行充分整合,以更直接更激进的方式进行提速,预计从明年开始,很长一段时间之内都看不到SATA再做任何升级了。