【计算机基础】关于存储的各种概念
综述
在了解存储设备的过程中涉及到了很多的概念,本文将一一说明。
在介绍存储设备的时候会出现很多概念,这里简单说明下。
- 总线:这里指的是CPU与存储设备的链路。目前有SATA、PCIe、SAS等。
- 协议:这里指的是CPU与存储设备之间约定好的通信方式,它包含的内容很广,比如双方如何识别对方、如何建立连接,双方传递数据的格式,等等。目前有AHCI、NVMe、SCSI等。
- 硬件接口:这里指的是存储设备接入到电脑主板的方式,目前有SATA、SCSI、SAS、m.2等。
下图是它们之间的一个关系图:
AHCI
AHCI全称Advanced Host Controller Interface。
AHCI一种由Intel制定的技术标准,它允许软件与SATA存储设备沟通的硬件机制,可让SATA存储设备激活高级SATA功能,例如原生指令队列及热插拔。
AHCI为SATA定义了新的操作模式,增加了两个额外功能:NCQ和热插拔。
SATA可以运行在两种模式下,即AHCI模式和IDE模式。两者之间的区别可参考下面的表格:
AHCI | IDE | |
---|---|---|
定义 | 高级主机控制器接口 | IDE:集成驱动电子设备 / PATA:并行高级技术附件 |
优点 | 支持新技术,如本机命令队列 | 最大兼容性 |
热插拔 | 支持 | 不支持 |
缺点 | 缺点 | 缺乏对本机命令队列和热插拔硬盘等新技术的支持 |
创始者 | Intel | Western Digital |
操作范围 | 操作串行ATA(SATA)主机总线适配器 | 操作并行ATA驱动器 |
运行模式 | 传统并行ATA仿真,标准AHCI或特定于供应商的RAID | IDE |
ATA
ATA全称是Advanced Host Controller Interface。
ATA本身是支持并行和串行,对应PATA和SATA。早期硬盘使用的是PATA,并与IDE硬盘一起使用,后期被SATA代替。所以目前当我们说ATA硬盘的时候一般是只PATA,也称为IDE硬盘,而SATA就是SATA,下面是PATA接口和SATA接口硬盘的比较:
ATA、IDE、PATA、SATA这些概念有一些混用,大致的理解是:
- ATA是一种控制器技术。
- IDE是一个匹配ATA的磁盘驱动器技术,注意这里的磁盘,后面还有闪存,就不是用IDE了。
- ATA下一步的技术是SATA(Serial ATA),串行ATA。有了SATA之后,原来的ATA又被称为PATA(Parallel ATA),并行ATA。
IDE
IDE的全称是Integrated Drive Electronics。
IDE是把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。把盘体与控制器集成在一起减少硬盘接口的电缆数目与长度,数据传输的可靠性得到增强,硬盘制造起来变得更容易的技术。事实上,从IDE开始,所有的“存储芯片”和“控制芯片”都是在同一个盘上的,本文介绍的所有都是。
早期的IDE硬盘使用的是PATA接口,它通过一个40Pin的线与电脑主板相连,还有一个额外的电源接口,下图是IDE(或者叫ATA、PATA)和SATA接口的比较:
m.2
m.2原名NGFF(Next Generation Form Factor,意思是下一代封装形式)。
m.2是一种新的硬盘接口规范,旨在取代mSATA接口,提供更高的性能和更多的功能。m.2不仅支持SATA,还支持NMVe等其它的接口。
m.2有不同的物理形状,并导致了不同的分类:
- 根据金手指处的开槽分为B-Key(Socket 2)和M-Key(Socket 3):
对于B-Key,它支持SATA、PCIe x2接口,而M-Key这可支持PCIe ×4接口。
- 根据尺寸可以分为如下的一些:
m.2不仅仅支持存储设备,还支持其它的设备,比如WiFi无线网卡、4G上网卡等,比如下面这个:
由于m.2支持不同的分类,所以当我们看到一个m.2的时候,可能不能直接确定其支持的是SATA硬盘还是NVMe硬盘,或者其它什么设备。
NVMe
NVMe全称是Non Volatile Memory Express。
NVMe的官方定义将其描述为“一个开放的标准和信息集合,以充分释放非易失性存储在从移动端到数据中心的所有类型的计算环境中能够提供的优势。NVMe从底层开始设计,为当前和未来的NVM技术提供高带宽和低延迟存储访问。”
NVMe官网NVM Express。
NVMe基于PCIe,所以它不像SATA这样需要额外的控制器,而是可以直接与CPU或者芯片组连接:
SAS
SAS全称Serial Attached SCSI。
SAS替代了原本的并行SCSI。
SAS的物理接口上能够向下兼容SATA。
SATA
SATA的全称是Serial Advanced Technology Attachment。
SATA是一种由Seagate公司与Intel等几大厂商基于行业标准共同提出的串行硬件驱动接口,负责主板和大容量存储设备(如硬盘及光盘驱动器)之间的数据传输,主要用于个人计算机。
SATA是与PATA或者ATA对应的,使用串行的方式传递数据。PATA由于采用并行总线接口,传输数据和信号的总线是复用的,因此传输速率会受到一定的限制。如果要提高传输的速率,那么传输的数据和信号往往会产生干扰,从而导致错误。SATA以它串行的数据发送方式得名。在数据传输的过程中,数据线和信号线独立使用,并且传输的时钟频率保持独立,因此同以往的PATA相比,SATA的传输速率可以达到并行的30倍。可以说:SATA技术并不是简单意义上的PATA技术的改进,而是一种全新的总线架构。
SATA官网Home | SATA-IO。
SATA经历了SATA1.x,SATA2.x,SATA3.x等几个版本,目前(2024)主要用的是SATA3.x,最新的规范是《Serial ATA Revision 3.5a Specification (released March 2021)》。它们支持的速度如下:
下图是SATA硬盘上的接口:
左边通过SATA线连接到电脑主板上,右边是电源线。SATA线如下图所示:
eSATA
eSATA的全称是External Serial Advanced Technology Attachment。
它是SATA接口的外部扩展规范。换言之,eSATA就是“外置”版的SATA,它是用来连接外部而非内部SATA设备。如果拥有eSATA接口,你就可以轻松地将SATA硬盘与机箱的eSATA接口连接,而不用打开机箱更换SATA硬盘。
相对于SATA接口来说,eSATA在硬件规格上有些变化,结构也有差异,下面是两者的比较:
左边是SATA线,右边是eSATA线。
通常eSATA线可以比SATA线长,毕竟前者是用在机箱内部的,而后者是外部的,空间可以更大。
mSATA
mSATA的全称是mini Serial Advanced Technology Attachment,就是SATA的迷你版本。
mSATA主要是为了适应于笔记本、mini主机等超薄设备的使用环境。
mSATA不再是硬盘和线分开的情况,它的样式如下:
mSATA存在的时间比较段,很快就被m.2替代了。
SCSI
SCSI全称是Small Computer System Interface。
虽然SCSI目前也是用在CPU与外部存储设备之间,但这也并不是唯一,它的重点是CPU与外部设备(外部存储设备只是一种情况)。
就像SATA替代了ATA(IDE/PATA)一样,并行SCSI也基本被SAS替代。
iSCSI
iSCSI协议最早由IBM、CISCO、HP发起,2004年起作为正式的IETF标准,现有的iSCSI协议依据SAM2(SCSI Architecture Model-2)。
iSCSI中的i指的是Internet,它把SCSI命令和块状数据封装在TCP中在IP网络中传输。
u.2
U.2接口的原名并不叫U.2,而是叫SFF-8639。SFF的全称是SSD Form Factor,它的情况与m.2类似,也是一种硬盘接口规范。
SATA、SAS和U.2的硬件接口很相似,它们的却别见下图:
参考文档
- 【【硬核科普】硬盘的SATA M.2 NGFF NVME是什么意思,详解硬盘的总线协议与接口】 https://www.bilibili.com/video/BV1Qv411t7ZL/?share_source=copy_web&vd_source=1a74495878d79ff8fe92b4a1e8f7ed29
- AHCI 和 SATA 之间的差异 | Dell 中国
- 【科普】AHCI模式是什么,与IDE模式有什么区别? – Rene.E实验室支持中心 (zendesk.com)
- 常见硬盘接口技术:从IDE、SCSI到SATA、SAS再到M.2、PCIe_scsi接口-CSDN博客