AHCI,SATA,NVME

1、AHCI:Advanced Host Controller Interface 高级主机控制器接口

由Intel定义的技术标准,规定SATA HBA(Host Bus Adaptor)的实现行为。

主机系统内存和attached存储设备之间数据的交换。

http://zidi.cc/archives/315 

AHCI gives software developers and hardware designers a standard method for detecting, configuring, and programming SATA/AHCI adapters. AHCI exposes SATA's advanced capabilities (such as hot swapping and native command queuing) such that host systems can utilize them.

Many SATA controllers offer selectable modes of operation: 

legacy Parallel ATA emulation, standard AHCI mode (also known as native mode), or vendor-specific RAID (which generally enables AHCI in order to take advantage of its capabilities). 

Intel recommends choosingRAID mode on their motherboards (which also enables AHCI) rather than AHCI/SATA mode for maximum flexibility. Legacy mode is a software backward-compatibility mechanism 。

Power management is handled by the Aggressive Link Power Management (ALPM) protocol.

https://en.wikipedia.org/wiki/Advanced_Host_Controller_Interface 

原生指令排序Native Command Queuing,简称NCQ),原先是改善服务器硬盘访问控制技术,应用在SCSISATA 1.0/2.0/3.0接口硬盘读写的加速技术,其接口打开磁盘阵列RAID亦有所提升。通过硬盘固件、硬盘控制器以及操作系统三者的互相配合,改善硬盘内部扇区的读取顺序,可以提高硬盘性能,亦能够轻微减轻硬盘损耗的速率。NCQ对用于服务器上的硬盘的效率提升尤为明显。

一般硬盘使用的硬盘格式通常为Windows 98核心所使用的FAT32系列,或是Windows NT所使用的NTFS,此种硬盘格式在访问数据时,时常会出现散乱的情况,导致一个文件被不规则的分散成许多的区块存放于磁盘上面,时间一久,文件散乱的程度会日趋严重,由于传统的硬盘读取方式,会从文件的开头依序读取到结尾,若文件散乱的程度愈严重,则读取头需要来回移动的距离就越长,导致硬盘读写性能逐渐下降。一旦发生这样的问题,解决方案便是使用磁盘碎片整理软件来进行硬盘重组,将散乱的文件重新排列为连续的区块,但由于运行磁盘碎片整理可能会需要搬动大量的磁盘区块,如果太常运行磁盘碎片整理,除了会提高系统负载,亦将会缩短磁盘驱动器的使用寿命,NCQ即为了解决此种情况而诞生。NCQ的概念原本是应用在服务器上常见的SCSI接口上,在SCSI的规格中即包含此项技术,只是不叫做NCQ,将此项技术经过些许修改后称为NCQ,并将其应用在SATA接口上,后来的SAS接口也支持此项技术。激活NCQ技术的硬盘,在读取文件时,会依照文件在硬盘上的分布,将访问的顺序作最有效率的排序,以减少机械臂移动的距离,进而达到省时以及延长硬盘寿命的效果。

于SATA II NCQ协议中,新增3个功能,分别是:

  • Race-free status return mechanism:
    硬盘在完成任一指令后,可以无须再进行 Handshake即可继续另一个指令,以便让多个指令快速接序或同时运行。
  • Interrupt aggregation:
    硬盘由于以 NCQ模式运行多个指令,所以原本每一个指令完成后必须 中断(interrupt)以便让系统接续处理的模式,转成可以在多个指令完成后再一次提出(interrupt),故 接口控制器(host controller)对于多个指令只须处理一次中断即可。
  • First party DMA(FPDMA):
    硬盘完成 数据读取后,无须靠host controller的 DMA动作获取特定内存位置,而是由硬盘本身创建 DMA setup  FIS(Frame Information Structure)直接对host controller提交 内存访问通知,如此无须 驱动程序的运作,可以有效提升访问效率。
打开NCQ,除硬盘本身必须支持NCQ外, 操作系统 (OS)与 接口控制器 (controller)的支持也是不可或缺的条件。

https://en.wikipedia.org/wiki/Native_Command_Queuing

2、SATA

主机控制器host controller)、主机适配器host adapter)或主机总线适配器host bus adapterHBA)是以计算机为主机系统,连接其他网络存储设备计算机硬件。该术语主要指连接SCSI光纤通道eSATA设备的设备。但是,连接IDE以太网FireWireUSB或其他系统的设备也可能称之为主机适配器。

术语网络接口控制器(NIC,Network Interface Controller)更常指连接计算机网络的设备,而术语聚合网络适配器(Converged network adaptor)可以在使用如iSCSI以太网光纤通道标准协议以允许同一个物理连接上的存储和网络功能时使用。它们可能包括TCP卸载引擎

https://en.wikipedia.org/wiki/Host_adapter

独立硬盘冗余阵列RAIDRedundant Array of Independent Disks),旧称廉价磁盘冗余阵列Redundant Array of Inexpensive Disks),简称磁盘阵列。其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。根据选择的版本不同,RAID比单颗硬盘有以下一个或多个方面的好处:增强数据集成度,增强容错功能,增加处理量或容量。另外,磁盘阵列对于电脑来说,看起来就像一个单独的硬盘或逻辑存储单元。分为RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50,RAID-60。

简单来说,RAID把多个硬盘组合成为一个逻辑扇区,因此,操作系统只会把它当作一个硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。由于硬盘价格的不断下降与RAID功能更加有效地与主板集成,它也成为玩家的一个选择,特别是需要大容量存储空间的工作,如:视频与音频制作。

最初的RAID分成不同的档次,每种档次都有其理论上的优缺点,不同的档次在两个目标间获取平衡,分别是增加数据可靠性以及增加存储器(群)读写性能。这些年来,出现对于RAID观念不同的应用。

http://www.dstchina.cn/news-575-53.html

http://www.userbenchmark.com/Faq/What-s-the-difference-between-SATA-PCIe-and-NVMe/105 
SATA  is the market incumbent 市场主体 and dominant interface for connecting an SSD to the PC. 

It employs the command protocol AHCI (it also supports IDE) which was built with slower spinning disks in mind rather than flash memory. SATA transfer rates begin at 150 MB/s and max out at 600 MB/s for third generation technology. For most consumer uses of SSDs this is absolutely adequate.

3、NVME:Non-Volatile Memory Express 非易失性内存命令

NVMHCI:Non Volatile Memory Host Controller Interface Specification 非易失性内存主机控制器界面规范

是与AHCI类似的,基于设备逻辑接口(logical device interface)的总线传输协议规范。

主要用于通过PCIE总线与电脑连接的非易失性闪存设备,主要是SSD(Solid State Drives/Disk)。

Historically, most SSDs used buses such as SATASAS or Fibre Channel for interfacing with the rest of a computer system. 

之前SSD用SATA。SAS等总线和计算机系统的其他部分进行交互。

Since SSDs became available in mass markets, SATA has become the most typical way for connecting SSDs in personal computers

however, SATA was designed primarily for interfacing with mechanical hard disk drives (HDDs), 

SATA是继承ATA来的,主要是用于和机械硬盘HDD交互的,为了兼容,既支持HDD又支持SSD。

and it became increasingly inadequate for SSDs that improved in speed over time.

For example, within about 5 years of mass market mainstream adoption (2005–2010) many SSDs were already held back by the

comparatively slow data rates available for hard drives – unlike hard disk drives, some SSDs are limited by the maximum throughput of SATA.

SSD受到SATA最大吞吐量的限制。

High-end SSDs had been made using the PCI Express bus before NVMe, but using non-standard specification interfaces. 

高端的SSD在采用NVMe之前都采用PCIE总线,但是不标准的规范接口。

By standardizing the interface of SSDs, operating systems only need one driver to work with all SSDs adhering to the specification. 

通过使SSD的接口标准化,操作系统只需要一个驱动来和遵从这个规范的所有SSD进行交互。

It also means that each SSD manufacturer does not have to use additional resources to design specific interface drivers. 

This is similar to how USB mass storage devices are built to follow the USB mass-storage device class specification and work with all computers, with no per-device drivers needed.

As of September 2014, a new standard for using NVMe over Fibre Channel (FC) is also in development. 光纤通道

NVMe, AHCI and IDE are transfer protocols (languages). 

They run on top of transfer interfaces such as PCIe or SATA (spoken, written).

NVMe其实与AHCI一样都是逻辑设备接口标准(是接口标准,不是接口!不是接口!不是接口!因为很重要所以说三次),NVMe全称Non-Volatile Memory Express,非易失性存储器标准,是使用PCI-E通道的SSD一种规范,NVMe的设计之初就有充分利用到PCI-E SSD的低延时以及并行性,还有当代处理器、平台与应用的并行性。SSD的并行性可以充分被主机的硬件与软件充分利用,相比与现在的AHCI标准,NVMe标准可以带来多方面的性能提升。

NVMe的由来

现在所用的SATA接口与AHCI标准其实是为高延时的机械硬盘而设计的,目前主流SSD依然继续使用它们,早期SSD性能不高时可能还不觉得有什么问题,但是随着SSD的性能逐渐增强,这些标准已经成为限制SSD的一大瓶颈,专为机械硬盘而设计的AHCI标准并不太适合低延时的SSD。

当然,业界早就意识到这一问题,2009年下半年,关于NVMe的技术工作正式启动,NVMe规范由包含90多家公司在内的工作小组所定制,Intel是主要领头人,小组成员包括美光、戴尔、三星、Marvell、NetAPP、EMC、IDT等公司,目的就是为SSD建立新的存储规范标准,让它在老旧的SATA与AHCI中解放出来。

2011年,NVMe标准正式出炉,该标准是根据闪存存储的特点量身定制的,新的标准解除了旧标准施放在SSD上的各种限制。2012年标准升级到NVMe 1.1,最新的NVMe 1.2标准是在2014所推出的。

首款支持NVMe标准的产品是三星XS1715,与2013年7月所发布,随后陆续有企业级的NVMe标准SSD推出,直到今年Intel 750发布,NVMe标准的产品才开始进入消费级市场。

The biggest advantage of NVMe is its lower latency. This is mostly due to a streamlined storage stack and the fact that NVMe requires no register reads to issue a command. AHCI requires four uncachable register reads per command, which results in ~2.5µs of additional latency.

Another important improvement is support for multiple queues and higher queue depths. Multiple queues ensure that the CPU can be used to its full potential and that the IOPS is not bottlenecked by single core limitation.

ONFI:Open NAND Flash Interface Working Group

UEFI: Unified Extensible Firmware Interface

The table below summarizes high-level differences between the NVMe and AHCI logical device interfaces.

High-level comparison of AHCI and NVMe [5]
  AHCI NVMe
Maximum queue depthOne command queue;
32 commands per queue
65535 queues;[29]
65536 commands per queue
Uncacheable register accesses
(2000 cycles each)
Six per non-queued command;
nine per queued command
Two per command
MSI-X
and interrupt steering
A single interrupt;
no steering
2048 MSI-X interrupts
Parallelism
and multiple threads
Requires synchronization lock
to issue a command
No locking
Efficiency
for 4 KB commands
Command parameters require
two serialized host DRAM fetches
Gets command parameters
in one 64-byte fetch




  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NVMe(Non-Volatile Memory Express)SSD和AHCI(Advanced Host Controller Interface)SSD是两种不同的接口标准,用于连接和管理固态硬盘(SSD)。它们之间的主要区别如下: 1. 接口类型:AHCI SSD使用SATA(Serial ATA)接口,而NVMe SSD使用PCIe(Peripheral Component Interconnect Express)接口。PCIe接口速度更快,并且提供更高的带宽和更低的延迟,使得NVMe SSD能够实现更高的性能。 2. 性能:由于使用不同的接口标准,NVMe SSD通常比AHCI SSD具有更高的性能。NVMe SSD利用PCIe接口的高速通信能力,可以实现更高的数据传输速率和更低的访问延迟。这使得NVMe SSD适用于需要高性能存储的应用场景,如大规模数据处理、虚拟化环境和高性能计算。 3. 并行性:NVMe SSD具有更好的并行性能。AHCI SSD在传输数据时会受到AHCI控制器的限制,只能处理一个命令队列。而NVMe SSD支持多个命令队列和并行I/O操作,可以同时处理多个读写请求,提高了系统的并发性能。 4. 兼容性:AHCI接口是SATA的标准接口,因此AHCI SSD具有更广泛的兼容性,可以与大多数主板和操作系统兼容。而NVMe SSD的兼容性相对较新,需要支持NVMe接口的主板和操作系统才能正常工作。 综上所述,NVMe SSD和AHCI SSD之间的主要区别在于接口类型、性能、并行性和兼容性。NVMe SSD具有更高的性能和更好的并行处理能力,适用于需要高性能存储的场景。而AHCI SSD具有更广泛的兼容性,适用于对性能要求不高或使用较旧硬件的场景。选择使用哪种类型的SSD取决于具体的需求和设备兼容性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值