来自存储老吴的博客——存储之道
目录
古老的磁盘接口... 1
IDE接口... 1
SCSI接口... 3
FC接口... 4
串行ATA接口... 5
SATA接口... 6
mSATA接口... 8
SATA Express. 10
串行SCSI接口... 10
SAS接口... 10
SAS内部连接线缆... 13
SAS外部互连线缆... 17
NVMe SSD接口... 21
SFF-8639. 21
M.2接口... 22
硬盘技术发展至今,历经了多次接口技术的发展和变革,存储老吴带领大家一起走进硬盘接口大观园,去一睹硬盘接口的往昔和未来。
古老的磁盘接口
IDE接口
IDE(Integrated DriveElectronics)接口是一种在个人电脑中曾经广泛使用的磁盘接口。其采用并行数据传输的方式,接口体积比较大,如下图所示:
IDE总线是一条共享总线,为了增加一条IDE总线上的设备数量,每个IDE总线可以支持两个设备,分别为主设备和从设备。连接主机和IDE设备的连接线缆如下图所示,其中蓝色接口接到主机;白色接口为从设备接口;黑色接口为主设备接口。
IDE接口有两种数据传输模式,一种为PIO(ProgrammingIO);另一种为DMA模式。在数据传输量不是很大的年代,DMA由于需要不断的对DMA控制器进行配置操作,效率反而不如PIO。但是在大量高性能数据传输需求的拉动下,DMA终于发挥出了应有的性能。起初IDE的DMA数据传输模式是采用简单单倍率的工作方式,即在一个时钟周期内,只发生一次总线数据传输操作。后来IDE总线引入了UDMA(Ultra DMA)的数据传输方式,在这种传输方式下,一个时钟周期内的上升沿和下降沿都会进行数据传输操作,从而使得传输效率提高了一倍。这种数据传输方式也被称之为双沿数据传输方式。这种思路和内存中的DDR是相似的。
在IDE接口之上会运行ATA磁盘控制协议,因此这种接口通常也被称之为PATA(并行ATA)。对于不同的访问性能和特性,PATA拥有多种接口标准ATA1至ATA7。其中ATA7性能达到了将近133MB/s的带宽。由于受限于并行信号传输之间的干扰,并行信号的采样会出现非常大的相位误差,从而导致IDE接口性能提升遇到了严重的瓶颈。因此,目前没有硬盘会采用这种古老的IDE接口,全部被串行ATA接口技术所取代。
IDE采用40Pin的接口形式,接口信号定义如下:
2000年初自己组装的第一台电脑采用了当时容量最大的迈拓30GB硬盘,就是这种IDE接口的硬盘。组装的时候硬盘做主设备;光驱做从设备。目前IDE已经无法支撑硬盘数据传输的业务,已经被淘汰。但是在IDE上所发展起来的ATA协议(命令集)被SATA所传承,继续得以延续。
SCSI接口
SCSI(Small ComputerSystem Interface)为小型计算机系统接口,是一种连接主机和外围设备的接口。采用SCSI接口的硬盘如下图所示:
和IDE相比,SCSI接口具有更好的传输性能,因此通常应用在服务器硬盘中。采用这种接口的硬盘具有更好的稳定性、更快的性能。但是价格也会比IDE硬盘贵很多。SCSI的连接器接口和规范有很多种,常用的几种连接器接口如下图所示:
SCSI硬盘和IDE硬盘相比,最核心的区别不是在于接口。作为企业级应用的磁盘,其需要具备较高的数据访问性能,因此在盘片转速方面,SCSI硬盘具有更高的转速。一旦转速提升,盘片的温度就会升高,与此同时寻道的定位难度也会提升。因此,SCSI等企业级盘在盘片的材料、磁盘的控制、数据的纠错等方面都和普通的硬盘存在非常大的差别,从而导致企业级硬盘具有更高的稳定性和性能。
SCSI物理总线接口在硬盘上已经不再使用了,但是在SCSI总线技术上发展起来的应用层协议(SCSI命令集)还一直保留,并被SAS互连网络所一直传承。
FC接口
FC硬盘是指采用FC-AL(FiberChannel Arbitrated Loop,光纤通道仲裁环)接口模式的磁盘。这种接口采用40针的信号定义。这种串行硬盘接口如下所示:
FC硬盘采用FC-AL的总线协议,在实际应用过程中,所有硬盘都串联起来形成一个仲裁环,如下图所示:
这种连接方式可以扩展容量,但是缺点也非常的明显,一个环路中如果存在一个故障连接,那么整个链路的访问将会受到影响。在EMC的高端存储Vmax产品中曾经采用了FC盘,直到2014年发布Vmax3的时候,才将这种FC盘换成SAS盘。采用SAS盘之后,可以通过SAS Expander将所有的SAS或者SATA盘形成一个后端磁盘存储网络,如下图所示:
当年在高端存储系统中,为了提高磁盘性能、扩展存储容量,导致FC盘在后端存储网络中大量使用。随着SAS技术的不断推进、发展,最终SAS网络在后端替代了FC网络。
串行ATA接口
并行和串行数据传输哪个快?当问到这个问题的时候,潜意识会认为并行传输性能高。一个时钟周期,并行传输可以传送多个字节;但是串行通信的一个时钟最多传输两个比特位。但由于并行数据传输过程中存在的信号干扰、相差所导致的数据采样问题,并行传输无法提高时钟频率。而采用低压差分串行传输过程中,不存在采样相位差问题,可以采用非常高的时钟频率进行数据传输,因此串行传输的性能要远高于并行传输。串行数据传输的发展解决了并行总线所存在的问题,在2000年以后,不仅ATA向串行方向发展,SCSI、PCI都面临同样的问题。因此,在ATA的基础上发展形成了SATA;在SCSI基础之上发展形成SAS;在PCI的基础上诞生了PCI Express。
SATA接口
SATA接口硬盘是消费级、民用普通硬盘所普遍采用的接口技术。采用SATA接口的硬盘如下图所示:
SATA接口是串行ATA的缩写。其采用串行数据传输的方式实现高速磁盘访问接口。至今SATA接口已经形成三个标准,其中SATA1可以达到1.5Gbps传输性能;SATA2可以实现3Gbps;SATA3达到了6Gbps的通信速度。SATA接口的数据传输效率远高于磁盘本身的性能,因此,磁盘的性能局限在磁盘本身的机械寻道开销上。SATA接口如下图所示:
SATA接口主要分为信号区和电源区两大部分,并且信号区和电源区是相互分离的。特别需要注意这两个区域之间的空缺(豁口),这是区别SATA和SAS的标志。一个普通主板上的SATA接口如下图所示:
目前,消费类硬盘基本都采用了SATA接口,包括磁盘和SSD。由于SSD采用了NAND Flash技术,属于半导体存储,不存在机械寻址的问题,因此,存储访问的性能大为提升,导致SATA接口本身再次成为存储盘的性能瓶颈点。
SATA标准发展到今天最高通信速度可以达到6Gbps,是SAS接口性能的一半。SATA接口采用了7根信号线的模式,具体定义如下:
1, GND地信号
2, A+ 数据发送差分信号
3, A-数据发送差分信号
4, GND地信号
5, B-数据接收差分信号
6, B+数据接收差分信号
7, GND地信号
从上述定义可以看出,SATA接口采用了一对差分信号线进行全双工数据传输。和SAS接口相比不提供双端口的功能。在企业级应用,通常需要双端口的功能支持,所以需要通过接口转换板将一个端口的SATA改造成两个端口。这两个端口之间通过模拟开关进行切换。
SATA接口电源部分提供3.3V、5V以及12V。具体定义如下:
SATA接口是硬盘接口技术发展过程中的一个里程碑,其提供了非常高速的性能,并且可以无缝的融入SAS体系架构中,所以无论在消费级应用还是在企业级应用中,SATA硬盘都有其不可替代的位置。但随着SSD技术的蓬勃发展,SATA接口又遇到了性能问题,新型的NVMe标准不断对SATA进行冲击。
mSATA接口
在笔记本等对体积有要求的系统中,经常会采用DOM盘,该类硬盘会采用接口形式更加小巧的mSATA接口。mSATA是标准SATA的迷你型号,在笔记本中和一些服务器系统中得到了广泛的应用。
需要注意的是mSATA接口外观和mini PCI-E是完全相同的,但是,在信号定义上这两种接口是截然不同的,mSATA需要与SATA控制器相连;mini PCI-E需要和PCIe桥相连。如果需要同一个接口同时支持mSATA和mini PCI-E,那么需要在这个接口处引入一个双向多路复用器。在mSATA接口中的43Pin是接地的;mini PCI-E是悬空的,因此,可以通过该引脚实现接口的自动选择。双向多路复用器可以采用NXP的CBTL02042芯片来实现。
采用mSATA接口的固态盘如下图所示:
mSATA的接口信号定义如下:
mSATA和SATA接口相比,减小了体积。但是,和正在发展的M.2接口相比,体积还是显得很大,并且mSATA无法支持正在发展过程中的PCIe硬盘接口技术。在未来的发展趋势中,M.2接口会替代掉mSATA接口。
SATA Express
由于PCIe总线离CPU更近,基于PCIe接口的存储盘具有更高的数据吞吐量和更低的延迟,因此越来越多的SSD固态盘选用了PCIe作为数据传输接口。SATA Express就是在这个需求的背景下诞生的,其目的是想在SATA接口的基础上进一步兼容PCIe数据传输模式。SATA Express就是一种SATA和PCIe之间的复用接口,相同的接口可以同时支持PCIe和SATA两种物理接口。SATA Express的接口定义如下图所示:
SATAe接口采用PCIe通路进行数据传输,提高了传输性能。在SATAe标准中可以直接采用原生态的SATA接口,通过AHCI的方式进行数据访问;亦可以通过PCIe接口,采用NVMHCI的接口进行数据传输。SATAe接口只能支持SATA和PCIe,因此属于过渡标准,未来会被SFF-8639接口所替代。目前,Intel已经放弃了对SATA Express接口的支持。
串行SCSI接口
和SATA发展思路相同,由于并行SCSI的性能问题,造就了SAS接口技术。和SCSI时代相同,SATA接口主要服务于消费级市场;SAS接口主要应用于企业级市场。和SATA接口相比,SAS协议体系要庞大很多。SAS不仅是一个设备互连的总线,更为关键的是SAS技术打造了后端存储网络。通过SAS网络可以将一定量的存储盘进行互连,形成后端存储网络。
SAS接口
采用SAS接口的企业级磁盘如下图所示:
从外观上看SAS和SATA接口极为相似,差别就在于中间是否存在缺口。对于SATA接口,信号区和电源区之间是分离的,中间存在缺口。而SAS接口中间没有缺口,并且在此基础上增加了一组传输信号,具体如下图所示:
这组新增加的信号是用来实现SAS双端口功能的。作为企业级应用的接口,需要实现双端口功能为多路径应用提供支持。
SAS盘侧的接插件信号定义如下:
其中S1~S7为第一个SAS端口;S8~S14为第二个SAS端口。P1~P15为电源线。和SATA相比,增加了S8~S14信号线。SATA盘侧接口又被称之为公口,背板侧的接口器被称之为母口。
SAS接口背板连接器的信号定义如下:
信号的功能和磁盘侧的信号定义是完全相同的。由于SATA盘中间是空缺,所以,SATA是可以正常连入SAS背板连接器的。也就是说,SAS可以兼容SATA。所以在目前的主流存储系统中,都会采用SAS背板、SAS Expander,在这样的一个SAS网络中使用SATA硬盘。采用这种方式的存储系统主要考虑到SATA盘价廉物美,容量又远远大于SAS盘。
SAS盘端接器以及背板连接器的信号定义如下:
SAS采用双端口、全双工工作的模式。因此收发信号都有两对差分信号对。SAS连接器中电源信号定义如下:
SAS内部连接线缆
SAS接口的一个特点是具有非常多种类的连接线缆标准,其主要分成内部连接线缆和外部连接线缆两大类。内部常用的一种连接硬盘的线缆如下图所示:
上图所示的这种线缆同时带有电源和信号线,直接可以与硬盘相连。当硬盘背板需要与导出转接卡相连时,可以采用如下图所示的连接线缆:
上图定义的连接线缆占用较大的体积,为此,SAS标准定义了Mini-SAS线缆及连接器。内部Mini-SAS接口用于系统内部SAS互连,一个Mini SAS接口可以支持4个PHY。内部Mini SAS线缆连接器标准符合SFF-8087和SFF-8086。具体接口定义如下图所示:
板端的连接器如下图所示:
内部Mini-SAS连接器的信号定义如下,其可以支持多个PHY,最多可以支持4个PHY的互连。
内部Mini-SAS HD接口和Mini-SAS相比具有更小的体积。Mini-SAS HD被称之为高密Mini-SAS,下图是支持4个Phy的mini-SAS HD接口(Mini-SAS HD 4i):
位于板端的mini-SAS HD插座:
支持8个PHY的mini-SAS HD接口(Mini-SAS HD 8i)将上面的mini-SAS HD接口集成到了一起,如下图所示:
Mini-SAS HD 8i插座如下:
SAS外部互连线缆
由于SAS可以构建一个存储网络,因此需要定义外部互连的线缆。外部互连线缆和内部的线缆是有差别的,其具有更好的连接可靠性及易用性。外部线缆也有mini-SAS和mini-SAS HD之分,其中mini-SAS外部线缆的接口定义如下:
Mini-SAS外部线缆的插座如下图所示:
Mini-SAS接口体积较大,为了减小体积,SAS定义了高密mini-SAS接口。Mini-SASHD外部互连线缆的外形如下图所示:
上述mini-SAS HD的接口可以支持4PHY的SAS互连,下图的mini-SAS HD(mini-SAS 8i)可以支持8PHY的SAS互连:
Mini-SAS 8i的连接插座如下图所示:
SAS外部互连除了可以采用mini-SAS/mini-SASHD进行互连之外,还可以采用QSFP连接器,该类连接器可以支持4PHY的SAS互连:
QSFP的插座外观如下图所示:
QSFP连接器信号定义如下:
SAS技术还处于发展的过程中,由于SSD固态盘技术的发展,SAS也受到了PCIe接口技术的挑战。但由于PCIe接口技术不是面向存储设计的互连技术,在存储领域还存在很多方面的问题,特别在后端存储互连方面。因此,相信在不久的将来NVMe盘会替代掉SAS高性能盘,但是SAS互连技术还会在较长一段时间内存在、并且继续发展。
NVMe SSD接口
SSD存储技术的发展,传统SAS、SATA接口遇到了很大的瓶颈,因此,高性能的SSD盘都采用了PCIe数据传输接口。为了标准化这种接口,业内纷纷提出了多种接口标准,其中主流的接口标准有SFF-8639和M.2。
SFF-8639
SFF-8639接口又称之为U.2接口,这种接口是在SAS接口的基础上发展起来的,其可以兼容SATA、SAS、PCIe。SFF-8639的接口定义如下图所示:
如上图所示,红色标注区域为PCIe信号;蓝色标注区域为SAS/SATA信号。这种接口可以支持多端口SAS,最多4个Lane的PCIe总线。目前,这种接口被普遍应用在NVMe SSD中,接口方式和SATA、SAS盘保持一致:
自从2014年起,很多厂商陆续推出了基于SFF-8639接口的NVMe SSD,越来越多的服务器厂商也将该类接口做成了服务器的标配。可以说SFF-8639必将有着辉煌的未来。
M.2接口
对于超级本等轻便设备而言,需要追求极致的体积。M.2接口比mSATA相比具有更小的体积。M.2接口标准于2012年发布,其可以在同一个连接器上支持多种模块,包括:
1, WiFi
2, Bluetooth
3, 全球定位系统
4, NFC
5, SSD
6, Wireless wide Area Network
该接口可以覆盖的主机接口包括:
1, PCIe
2, USB
3, UART
4, SATA
5, Display Port
M.2接口是Mini PCIe/mSATA接口的替代升级版本。M.2SSD分为SATA和PCIe两种接口方式,分为Socket2和Socket3两种类型。其中Socket2支持SATA、PCIe X2接口,而Socket3可以支持PCIeX4接口。基于M.2接口的笔记本用SSD如下图所示:
(来自存储之道,存储老吴的博客)