“硬核”科普系列之接口(下:硬盘)
前言
本文属于“硬核”科普系列的第二篇——接口,本系列的起源亦即第一篇——总线【传送门:“硬核”科普系列之总线】
第一篇本着言简意赅的目的,完成时感觉篇幅还是长了点。。。接口这篇,发现能讲得更多,索性根据日常打交道情况,再度整理细分为三个主题:视频接口、USB接口和硬盘接口。
跟计算机打交道,自然绕不开接口这个话题。身处大数据时代,数据传输的重要性和无处不在让接口成了每个现代人都必备的基础知识,所以来几篇全面又简洁的科普文涨涨芝士就显得很有必要了!
三篇接口文均整理自网络,用于自我学习的记录与总结,也希望能对同样渴望知识的网友们有所帮助,出处注于文末。
本篇是下:硬盘接口。
上篇传送:“硬核”科普系列之接口(上:视频),中篇传送:“硬核”科普系列之接口(中:USB)
概念
首先,要明确总线,协议与接口的概念及它们之间关系:
总线,其实就是一条通道。就像公路,公路的大小与车速,决定了公路上的最大车流量,而总线的位宽大小与传输频率,决定了在一次数据传输中能提供的最大速度。
接口,就是平时我们用时要接入的插口,类似公路的不同出入口。
协议,就是数据传输的方法,不同级别公路会配套实行不同的交通规则,不同接口/总线/设备也就会有不同协议。传输协议限定着硬盘(确切说是硬盘控制器,即常说的主控)与控制器(南桥等)如何传输,每当有数据到达控制器,传输协议就规定这些数据以何种方法传输到存储设备上。比如,一次限制传输的数据大小,一传输数据的间隔,传输方式等等,从而规范数据的传输规则。
简单来说,就是接口连接在总线上面, 按照协议来传输数据。
硬盘相关的总线
ATA(PATA)
英文全称为Advanced Technology Attachment,俗称PATA并口(Serial ATA于2002年推出后,为避免混淆,原有的ATA改名为PATA)。采用传统的40-pin并口数据线连接主板与硬盘,外部接口速度最大为133MB/s,因为并口线的抗干扰性太差,且排线占空间,不利计算机散热,已被SATA取代。
SATA
即Serial ATA。2001年,由Intel、APT、Dell、IBM、希捷、迈拓这几大厂商组成的Serial ATA委员会正式确立了Serial ATA 1.0规范,2002年,虽然串行ATA的相关设备还未正式上市,但Serial ATA委员会已抢先确立了Serial ATA 2.0规范。Serial ATA采用串行连接方式,串行ATA总线运用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的分别在于能对传输指令(不仅仅是数据)进行检查如果发现错误会自动矫正。
PCIe
英文全称为Peripheral Component Interconnect(外围设备互联)- Express。最新一代的I/O总线技术,PCIe属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享资源,突破的系统I/O带宽的瓶颈,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(QOS)等功能。PCIe是一种共享总线,可以说是一切的根,所有外设都是由它演化而来。
SCSI
英文全称为Small Computer System Interface(小型计算机系统接口)。SCSI并不是专门为硬盘规划的接口,而是一种广泛使用于小型机上的高速数据传输技术。SCSI接口具有使用范围广、多任务、带宽大、处理器占用率低,以及热插拔等优点,但较高的价格使得它很难如IDE硬盘般普及,因此SCSI硬盘主要使用于中、高端服务器和高档工作站中。
SAS
民用领域有PATA到SATA的进步,服务器领域也有SCSI到SAS。SAS(Serial Attached SCSI,串行连接SCSI)是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度。并通过缩短连结线改善内部空间等。SAS是并行SCSI接口之后开发出的全新接口。此接口的规划是为了改善储存系统的效能、可用性和扩充性,并且提供与SATA硬盘的兼容性。SAS同样也已经更新了三代了,SAS1.0达到了3Gbps,每代翻2倍。SAS控制器是可以兼容SATA硬盘,但SATA控制器不能兼容SAS硬盘。
FC
一种基于网络传输协议下诞生的接口,起源于SCSI,但在速度上远超SCSI,最新的FC通道速度达到了16Gbps。很少见,知道就行了。
硬盘相关的协议
IDE
英文全称为Integrated Drive Electronics(集成驱动电子设备)。老牌的硬盘传输协议,很多人经常会和PATA(ATA)搞混淆。一般说来,ATA是一种控制器技术,而IDE是一种匹配它的磁盘驱动器技术,但是两个术语经常可以互用。
可连接两个IDE装置的ATA扁平电缆示意图
IDE作为非常老牌的传输协议,为计算机能够更轻松地操作硬盘数据起到了非常重要的作用。但是随着计算机对速度的需求,与其配备的总线(ATA-133)以及自身的功能都太少了,渐渐被AHCI与SATA所淘汰。
AHCI
英文全称为Serial ATA Advanced Host Controller Interface(串行ATA高级主控接口/高级主机控制器接口),是一种由英特尔制定的技术协议。AHCI与SATA接口相匹配,它允许软件与SATA储存装置沟通的硬件机制,可让SATA储存装置启用进阶SATA功能,例如原生指令队列及热插入。相比于IDE,其每次传输传输一个队列中,携带32条指令,同时优化了硬盘队列【NCQ技术:原生指令排序(Native Command Queuing,简称NCQ),是改善服务器硬盘访问控制的技术,可以提高硬盘效能和延长硬盘寿命】,减少磁头移动带来的时间浪费,使硬盘能够快速读取数据。
由于AHCI本身是为高延迟的机械硬盘而设计,SATA接口的AHCI协议无法完全发挥固态硬盘的闪存性能,NVMe应运而生。
NVMe
如上文所述,为了能够让SSD更好的发挥速度优势,NVMe随之产生。NVM Express,缩写NVMe,全称为Non-Volatile Memory Host Controller Interface Specification(缩写NVMHCI),可译作「非易失性内存主机控制器接口规范」。
NVMe是一种建立在M.2接口上的协议,专门为闪存类存储而设计。与AHCI类似,NVMe是基于设备逻辑接口的总线传输协议规范(相当于通讯协议中的应用层),主要用于访问通过PCIe总线与计算机连接的非易失性内存设备(例如采用闪存的固态硬盘),虽然理论上不一定要求PCIe总线标准。相比于AHCI,NVMe单次提供64*1024个请求队列,每个队列达到了64*1024个请求,远超AHCI单队列32个请求的规模。NVMe可以说完全释放了传输协议的限制,而为了能够与传输协议的速度匹配,使用NVMe的设备都直接连接到了PCIe总线上,更直接的总线连接为NVMe设备提供绝对强大的传输速度。
NVMe充分利用PCI-E通道的低延时以及并行性,还有当代处理器、平台与应用的并行性,在可控制的存储成本下,极大的提升固态硬盘的读写性能,降低由于AHCI接口带来的高延时,彻底解放SATA时代固态硬盘的极致性能。NVMe的具体优势包括:
- 性能有数倍的提升;
- 可降低延迟超过50%;
- NVMe可以把最大队列深度从32提升到64000,SSD的IOPS能力也会得到大幅提升;
- 自动功耗状态切换和动态能耗管理功能大大降低功耗;
- NVMe协议的出现解决了不同PCIe SSD之间的驱动适用性问题,支持未来十年技术发展的可扩展能力;
低延时和良好的并行性的优势就是可以让SSD的随机性能得到大幅度提升。电脑王的一项NVMe和AHCI的对比测试表明,不管是在效能测试或影片转档应用上,NVMe可说是拥有相当强劲的读写效能,尤其是在4K读写效能上,更是完胜支持AHCI。
SATA、M.2接口与AHCI、NVMe协议之间的关系
基于SATA 3.0总线,只能使用AHCI协议,但我们既可以使用SATA接口,也可以使用B-key M.2接口(大部分带两个缺口的M.2 SSD),二者其实等效。速度最高为6Gbps,约550MB/s。我们说有的M.2 SSD只走SATA通道,就是说的这种。
而基于PCIe总线,我们只能使用NVMe协议,但我们可以使用PCIe接口、U.2接口,SAS接口、M-key的 M.2 SSD以及一小部分B-key M.2接口 SSD。此时根据PCIe 3.0 4X总线的带宽,我们最大能获得4GB/s的速度,不过要注意,上述的“一小部分B-key M.2接口 SSD”只能到PCIe 3.0 2X的标准速度,二者的性能差距是很大的。
用一张图或许就好理解了:
硬盘接口
硬盘通过接口与计算机主板进行连接,而硬盘的读取和写入速度与接口有很大关系。大家都见过大礼堂吧,大礼堂中可以容纳很多人,但是如果只有一扇很小的门,那么人是很难进入或出来的,这样会造成拥堵,甚至会出现事故。机械硬盘的读取和写入也是一样的,如果接口的性能很差,则同样会影响机械硬盘的性能。
机械硬盘
目前,常见的机械硬盘接口有以下几种:
IDE接口
英文全称为Integrated Drive Eectronics(电子集成驱动器),也称作ATA硬盘或PATA硬盘,并口。IDE是早期机械硬盘的主要接口,ATA-133硬盘的理论速度可以达到133MB/s(此速度为理论平均值)。
SATA 接口(Serial ATA,串口)
SATA是速度更高的硬盘接口,具备了更高的传输速度,并具备了更强的纠错能力。目前已经是SATA 3.0,理论传输速度达到600MB/s(此速度为理论平均值)。
SCSI 接口(Small Computer System Interface,小型计算机系统接口)
固态硬盘接口
SATA接口
作为目前应用最多的硬盘接口,SATA 3.0接口最大的优势就是成熟。普通2.5英寸SSD以及HDD硬盘都使用这种接口,理论传输带宽6Gbps,虽然比起新接口的10Gbps甚至32Gbps带宽差多了,但普通2.5英寸SSD也没这么高的需求,500MB/s多的读写速度也够用。需要注意的是,eSATA,mSATA,mini-SATA甚至是SATA Express接口实际上都只是SATA接口的变种而已。尤其SATA Express接口,从推出起就没多少人用过,相当失败,大部分人都只把它当两个SATA口拆开用。
mSATA接口
mSATA接口,全称迷你版SATA接口(mini-SATA)。是早期为了更适应于超级本这类超薄设备的使用环境,针对便携设备开发的mSATA接口应运而生。可以把它看作标准SATA接口的mini版,而在物理接口上(也就是接口类型)是跟mini PCIe接口是一样的。
mSATA接口是SSD小型化的一个重要过程,不过mSATA依然没有摆脱SATA接口的一些缺陷,比如依然是SATA通道,速度也还是6Gbps。诸多原因没能让mSATA接口火起来,反而被更具升级潜力的M.2 SSD所取代。
M.2接口
M.2接口是Intel推出的一种替代mSATA的新的接口规范,也就是我们以前经常提到的NGFF,即Next Generation Form Factor。M.2接口的固态硬盘宽度22mm,单面厚度2.75mm,双面闪存布局也不过3.85mm厚,但M.2具有丰富的可扩展性,最长可以做到110mm,可以提高SSD容量。M.2 SSD与mSATA类似,也是不带金属外壳的,常见的规格有主要有2242、2260、2280三种,宽度都为22mm,长度则各不相同。
不仅仅是长度,M.2的接口也有两种不同的规格,分别是socket2(SATA/PCIe 2X)和socket3(PCIe 4X):
看似都是M.2接口,但其支持的总线和协议不同,对其速度的影响可以说是千差万别。M.2接口目前支持两种通道总线,一个是SATA总线,一个是PCIe总线。SATA通道由于理论带宽的限制(6Gb/s),极限传输速度也只能到600MB/s,但PCIe通道就不一样了,带宽可以达到10Gb/s,所以看似都为M.2接口,但走的“道儿”不一样,速度自然也就有了差别。M.2支持的协议也有两种:AHCI和NVMe,后者相较前者的优势,在上节已做讨论。
U.2接口
多用于服务器的接口,也是支持NVMe协议,与M.2本质区别不大。可以说它和M.2的关系类似SATA与mSATA的关系。
PCIe接口
在传统SATA硬盘中,当我们进行数据操作时,数据会先从硬盘读取到内存,再将数据提取至CPU内部进行计算,计算后写入内存,存储至硬盘中;而PCIe就不一样了,数据直接通过总线与CPU直连,省去了内存调用硬盘的过程,传输效率与速度都成倍提升。简单的说,我们可以把两种通道理解成两辆相同的汽车,PCIe通道的汽车就像是在高速上行驶,而SATA通道的汽车就像是在崎岖山路上行驶。很显然,PCIe SSD传输速度远远大于SATA SSD。
PCIe接口通道分为:PCIe 1X,4X,8X,16X等,可以满足未来一段时间的使用,而且早期PCIe硬盘不能做启动盘的问题早已解决,现在旗舰级SSD大多会选择PCIe接口。
虽然PCIe SSD有诸多好处,但也不是每个人都适合。PCIe SSD由于闪存颗粒和主控品质问题,总体成本较高,相比传统SATA固态硬盘价格贵一些。另外,由于PCIe会占用总线通道,入门以及中端平台CPU通道数较少,都不太适合添加PCIe SSD,只有Z170,或者是X79、X99这样顶级平台,才可以完全发挥PCIeSSD的性能。总的来说,如果你是一个不差钱的土豪,那么就 PCIe SSD吧!
ZIF
VPX
VPX无标准,信号自定义,是定制化的。
DOM
USB DOM
有关硬盘的详细知识,比如构造、原理、类别及选购建议,请见硬核系列最后一篇:“硬核”科普系列之硬盘
参考资料:
http://c.biancheng.net/view/879.html
https://blog.csdn.net/ds1130071727/article/details/95355718
https://mp.weixin.qq.com/s?__biz=MzI3NTIzNTYwMQ%3D%3D&mid=2247483930&idx=1&sn=4cd2a151f0c35a0a18253c7c10eda988&scene=45
https://blog.csdn.net/qq_39560607/article/details/81714143