硬盘界面发展史:ATA, AHCI, NVMe. &&


ATA: ATA(AT Attachment) 是一个很久远的标准,最初是定义诸如硬盘等存储设备和 CPU 的接的标准。一共有两种类型的 ATA,第一种叫 Parallel ATA(PATA),第二种叫 Serial ATA(SATA),现在使用 ATA 这个词汇默认是指前者,也就是 PATA,他是在 SATA 之前出现的。

AHCI:AHCI是为 SATA 设计的控制器接口,AHCI(Advanced Host Controller Interface) 的全称是 Serial ATA Advance Host Controller Interface,他定义了存储设备和主机之间的信息如何传递。AHCI 是一个相对较新的技术,跟老的 ATA(PATA)不兼容,因此,只有 SATA 接口的主板和硬盘才能使用 AHCI 这个技术。当使用 SATA 的时候,依然可以选择是使用 AHCI 还是古老的 PATA 实现,一些配有 SATA 控制器的设备可能由于驱动等原因无法使用 AHCI 可以选择 ATA 的模式,他是兼容性最好的一种,但是性能也相对较差。 PATA 的实现在 DELL 的服务器的 BIOS SATA setting 里面叫做 ATA mode,而 AHCI 的则叫 AHCI mode。因此对症下药的话,SATA/SAS 的硬盘一般选择 AHCI mode。 
相比使用 ATA mode,AHCI 有两个最明显的优势,第一个就是热插拔(hot-plugging),第二个则是 原生指令队列 (NCQ, Native Command Queuing),该技术会让磁盘的寻道时间缩短,NCQ 除了需要有 AHCI 模式的支持外,其 OS 也需要有对应的 driver 支持。总结一下: 1. AHCI 是一个控制器的接口,ATA 则是用来存储设备的标准 2. AHCI 不兼容于 ATA 3. AHCI 有不少 ATA 无法提供的高级功能

NVMe: 众所周知,前些年计算机的瓶颈已经从CPU\显卡转移到了硬盘,硬盘存取速度严重不足,所以SSD迅速的发展、火爆起来,如今,SSD已经成为了图吧、卡吧标配
然而落后的SATA3接口理论上限只有6Gbps,实际很难突破800M/S,这个速度并不能满足需求,目前市场上的SDD很多都已经有550MB的存取速度,优秀者甚至已经突破SATA3的上限
更可怕的是,SATA所遵循的AHCI标准当初是为机械硬盘涉及,不但存取提升有限,4K方面更是不足,在IOPS和队列深度上已经日趋拙鸡。
为了应对这个问题,出现了所谓的NGFF(M.2, MSATA.2)接口,利用充裕PCI-E通道,有足够的速度,专为超极本涉及,不但占用空间小,省电,而且速度快,容量也不错。而后台式机同样出现了这个问题,就出现了SATA-Express,原本是打算将两个SATA口合并,6Gbps+6Gbps=12Gbps,但是最后发现如此做的话,很难达到向下兼容(如SATA3向下兼容SATA2),并且成本略高。最后又将头绪转向了PCI-E。

NVME是硬盘新的传输标准,是取代现在的AHCI的。NVMe的优势在于三点:
 1、更低的延时:
  NVMe精简了调用方式,执行命令时不需要读取寄存器;而AHCI每条命令则需要读取4次寄存器,一共会消耗8000次CPU循环,从而造成2.5μs的延迟。
 2、更高的传输性能
  市面上性能不错的SATA接口SSD,在队列深度上都可以达到32,然而这也是AHCI所能做到的极限。但目前高端的企业级PCIe SSD,其队列深度可能要达到128,甚至是256才能够发挥出最高的IOPS性能。而NVMe标准下,最大的队列深度可达64000。此外,NVMe的队列数量也从AHCI的1,提高了64000。
 3、更低的功耗控制。

你可能感兴趣的:(Hardware)