硬盘 IDE SCSI SAS SATA NVMe

-- TOC --

本文收集一点关于各类硬盘接口的知识和信息。

IDE

IDE的英文全称为:Integrated Drive Electronics,是早期的硬盘接口,也用于光储类的存储器接口。它经过数年的发展变得很成熟、廉价、稳定。

IDE接口使用一根40芯或80芯的扁平电缆连接硬盘与主板,每条线最多连接2个IDE设备(硬盘或者光驱)。早期的是用IDE多功能卡插在主板上,再连接IDE线,这种功能卡已经淘汰。目前主板全部提供2个IDE接口,相比IDE多功能卡,它显得价格便宜和易于安装。IDE接口又分为UDMA/33,UDMA/66,UDMA/100,UDMA/133。1996年底,昆腾和英特尔公司宣布共同开发了Ultra DMA/33的新型EIDE接口,因其数据传输率为33MB/s,故称UDMA/33,后面的UDMA/66,UDMA/100,UDMA/133命名同上。Ultra DMA把时钟脉冲的上升和下降沿均用作选通信号,即每半个时钟周期传输一次数据,这就使得最大外部传输速率从16.6MB/s倍增至33.3MB/s。另外,Ultra DMA采用总线控制方式,在硬盘上有直接内存通道控制器,可大大降低硬盘在读写时对CPU的占用率,可将对CPU的占用率从92%降至52%,这也是Ultra DMA的一个重要作用。当然,要实现Ultra DMA功能,还需要支持Ultra DMA规格的主板和相应的驱动程序。所有的IDE硬盘接口都使用相同的40针连接器,如下图所示:

IDE

现在这种IDE接口已经基本绝迹...

SCSI

SCSI英文全称:Small Computer System Interface,它出现的原因主要是因为原来的IDE接口的硬盘转速太慢,传输速率太低,因此高速的SCSI硬盘出现。其实SCSI并不是专为硬盘设计的,实际上它是一种总线型接口。由于独立于系统总线工作,所以它的最大优势在于其系统占用率极低,不过转速快,传输率高的SCSI接口硬盘也有它的不足之处:价格高、安装不便、还需要设置及其安装驱动程序,因此这种接口的硬盘大多用于服务器等高端应用场合。它是使用一根50芯的扁平电缆,转速在万转以上,不过随着IDE技术的发展,如今IDE接口的硬盘在容量和速度上已与SCSI接口硬盘相差无几,不久将来,它可能不会存在了。所有SCSI接口都使用下面3种连接器中的1种,如下图所示:

SCSI

我似乎从没用过SCSI接口的硬盘,这个词只在VMware虚拟机添加硬盘的时候见过,为啥VMware推荐SCSI接口呢?

SATA

SATA的英文全称是:Serial-ATA(串行),IDE系列属于Parallel-ATA(并行),SATA是最近颁布的新标准,具有更快的外部接口传输速度,数据校验措施更为完善,初步的传输速率已经达到了150MB/s,比IDE最高的UDMA/133还高不少。由于改用线路相互之间干扰较小的串行线路进行信号传输,因此相比原来的并行总线,SATA的工作频率得意大大提升。虽然总线位宽较小,但速率很高,并且SATA具有更简洁方便的布局连线方式,在有限的机箱内,更有利于散热,并且简洁的连接方式,使内部电磁干扰降低很多。SATA接口与IDE硬盘接口不兼容,供电接口方式也不相同。

SATA

SATA有SATA1、SATA2、SATA3三代,传输速度分为为1.5G、3G、6G。这三代SATA的接口形状是一样的。

eSATA

eSATA的全称是External Serial ATA(外部串行ATA),它是SATA接口的外部扩展。换言之,eSATA就是“外置”版的SATA,它是用来连接外部而非内部SATA设备。例如拥有eSATA接口,你就可以轻松地将SATA硬盘与主板的eSATA接口连接,而不用打开机箱更换SATA硬盘。

eSATA

说到外置存储设备(如移动硬盘)的接口,大家会不约而同地联想到USB2.0或IEEE1394。尽管这两种接口的数据传速率达到了480Mpbs/400-800Mbps,但它们并不能真正发挥硬盘等设备的最大潜力。这是因为USB2.0或IEEE1394移动硬盘均必须使用桥接芯片,才能实现接口的转换,这种连接方式无疑会大大影响设备的性能。如今一种全新的接口技术悄然走到大家面前——eSATA,用一句话概括它的特点就是:它比USB2.0快6倍!

在目前的市场上,USB2.0的数据传输速度可以达到480Mb/s(60MB/S),IEEE1394的数据传输速度可以达到400~800Mb/s(50MB/S~100MB/S)。然而eSATA最高却可提供3000Mb/s的数据传输速度,远远高于USB2.0和IEEE1394,并且依然保持方便的热插拔功能,用户是不需要关机便能随时接上或移除SATA装置,十分方便。eSATA接口还可以与USB接口兼容。

AHCI

AHCI其实是Serial ATA Advanced Host Controller Interface的英文缩写,取得是后面四个词的首字母,Serial ATA是SATA的意思,一般不用写入缩写中,整体的意思就是串行ATA高级主控接口/高级主机控制器接口),它是Intel所主导的一项技术,它允许存储驱动程序启用高级SATA功能,如本机命令队列(NCQ)和热插拔。开启AHCI之后可以发挥SATA硬盘的潜在的性能,理论上大约可增加30%的硬盘读写速度,在SATA SSD固态硬盘上最为明显。

一般在BIOS设置中,会集成三种硬盘模式选择,分别是IDE、AHCI、RAID这三种,IDE对应的是传统的硬盘模式,受限于并行接口的速度,一般都是机械硬盘会选用这种模式,AHCI是高级串口,对应的是串行接口技术,速度有大幅提高,目前主要用于SSD固态硬盘,RAID是磁盘阵列模式,一般用于双硬盘或多硬盘做阵列的情况,用以提高性能和安全性。

AHCI并不是为SSD而设计的,是为了提升机械硬盘的速度。使用SATA SSD硬盘,开启AHCI,自然也能享受到速度提升的好处。

SAS

我们一般都是通过SCSI接口或者SATA接口及硬盘来完成数据存储工作,正因为SATA技术的飞速发展以及多方面的优势,才会让更多的人考虑能否存在一种方式可以将SATA与SCSI两者相结合,这样就可以同时发挥两者的优势了。在这种情况下SAS接口应运而生。

sas

SAS(Serial Attached SCSI)即串行连接SCSI,是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善机框内部空间等。SAS是并行SCSI接口之后开发出的全新接口。此接口的设计是为了改善存储系统的效能、可用性和扩充性,并且提供与SATA硬盘的兼容性,我们可以在SAS接口上安装SAS硬盘或者SATA硬盘。

和传统并行SCSI接口比较起来,SAS不仅在接口速度上得到显著提升(现在主流Ultra 320 SCSI速度为320MB/s,而SAS才刚起步速度就达到300MB/s,未来会达到600MB/s甚至更多),而且由于采用了串行线缆,不仅可以实现更长的连接距离,还能够提高抗干扰能力,并且这种细细的线缆还可以显著改善机箱内部的散热情况。

NVMe

NVMe(Non-Volatile Memory express),是一种建立在M.2接口上的一种标准(或称协议),是专门为闪存类存储设计的协议。注意不是接口。类似的标准(或称协议)有AHCI等。

众所周知,固态硬盘(SSD)拥有比机械硬盘(HDD)更快的读写速度。目前大多数机器使用的是SATA总线标准,实际最高传输约为600MB/s。而支持PCIe总线,NVMe协议的SSD,实际传输速度将超过1000MB/s。传统的AHCI协议具有较强的兼容性,但是当与通过PCIe总线连接的SSD一起使用时,无法提供最佳的性能。而NVMe的设计充分利用了PCIe SSD的低延迟和并行性,并兼顾可CPU与平台构架,最大程度的发挥SSD的性能。

这类存储器长这样:

nvme

串行接口为什么比并行接口快

1.高速串口不需要传时钟来同步数据流,没有时钟周期性的沿变,频谱不会集中,所以噪声干扰少很多。以PCIE和SATA为例,时钟信息通过8b/10b编码已经集成在数据流里面,数据本身经过加扰,绝对不可能有多于5个0或者5个1的长串(利于时钟恢复),也绝对不存在周期性(避免频谱集中)。这样,通过数据流的沿变可以直接用PLL恢复出时钟,再用恢复的时钟采集数据流。这有什么好处?时钟信号消耗的功耗极多,带来的噪声也最大,不传时钟可以降低功耗,减少噪声。

2.所有高速串口都采用差分总线传输,外界噪声同时加载到并行传输的两条差分线上,相减之后可以抵消,对外部噪声的抵抗能力强。

3.没有时钟skew问题,因为它根本就没有同步时钟,不存在时钟和数据流的对齐问题。只需要保证差分信号线是对齐的就行,这是很容易的,因为差分信号线的值总是相反,相关性强,易控制。一根线跳的时候,另一根线经过一个非门的延时马上会跳,这个非门的延时是很容易补偿的。并行总线最大的问题就是多根线传输的时候,无法保证所有的沿变都对齐,很有可能传着传着某些信号跟不上,落后了一个T,数据就传错了。想控制也难,因为各个信号没有相关性,互相的沿变本身就是独立的,因为布线不同,很有可能一个跳的早点,另一个跳的晚点,再加上各个传输线电阻不同,噪声不同,传一会儿就分辨不出来哪个值对应哪个周期。

4.线少,干扰少。并行传输,一般32根或者64根,一根线跳变,会给旁边的线带来噪声,频率越高,这种噪声越大,很容易导致别的线值被篡改或者无法辨认,所以频率不可能很高。串行传输一般就4根数据线,分成Rx两根差分线和Tx两根差分线,差分线总是往相反方向跳,可以抵消各自的跳变噪声,比如Rx的正极性发生跳变时会产生噪声,这种噪声可以被Rx的负极性以相反的跳变直接抵消掉(因为他们是差分信号对),总的噪声为0,根绝了内部噪声。综上,串口传输的各种优势使得其内外噪声皆免疫,又没有信号对齐之忧,可以以极高的速率传输。比如SATA可以以6Gb的速率传输数据流,PCIE可以以8Gb的速率传输数据流。这种速率,并行传输是根本做不到的,更不要说串行传输还能节省大量引脚。

串口为啥比并口快?是因为串口的特性和应用场景,决定了它更加适合采用一些可以提高单根信道速率的设计方法,这些方法用在并口上并不合适。

从现有的应用看来,需要持续稳定高带宽的应用,往往使用高速串行接口,一根带宽不够再加一根,各种视频网络应用,基本如此。而一些历史遗留速度不高的应用,还有一些需要突发性高带宽的应用,并口仍然存活,比如很特殊的DDR。虽然XDR/GDDR/HMC/HCM这些新标准都在试图引入SerDes, 但DRAM行业的特殊性还是让并口继续存活着。

本文链接:https://cs.pynote.net/hd/hdisk/202110205/

-- EOF --

-- MORE --