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),原先是改善服务器硬盘访问控制技术,应用在SCSI和SATA 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、以太网、FireWire、USB或其他系统的设备也可能称之为主机适配器。

术语网络接口控制器(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 SATA, SAS 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 depth One 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

AHCI,SATA,NVME相关推荐

  1. 什么是IDE,ATA,SATA,SCSI和SAS硬盘

    当谈到硬盘类型的时候,时常会出现IDE,ATA,SATA,SCSI和SAS这些术语.这些术语究竟是什么意思呢,这边做个简要的介绍. IDE/ATA IDE/ATA 是Integrated Device ...

  2. 固态硬盘的PCIE,SATA,M2,NVMe,AHCI

    [转自 https://baijiahao.baidu.com/s?id=1616207956596122967&wfr=spider&for=pc] 提纲 区别 M2和SATA SA ...

  3. 群联固态硬盘修复工具_固态硬盘掉速修复小教程,SATA和NVMe协议通用

    不做云评测,只聊真体验,大家好,我是肉包爸爸. 近日,被我拿来做高速移动硬盘的一块海力士PC401 1T固态硬盘出现严重掉速,格式化后故障依旧. 由于硬盘盒接口为USB3.1 Gen2,所以理论速度被 ...

  4. IDE(ATA),SATA,SCSI的区别

    目前有好几种:IDE(ATA)硬盘,SATA硬盘,SCSI硬盘和SAS硬盘. IDE:     IDE硬盘也叫ATA硬盘,是采用并行传输技术的硬盘.IDE的英文全称为"Integrated ...

  5. 固态硬盘的PCIE,SATA,M2,NVMe,AHCI分别都指什么?别再搞混了

    原文:https://baijiahao.baidu.com/s?id=1616207956596122967&wfr=spider&for=pc 科技娱乐屋 18-11-0420:5 ...

  6. 固态硬盘的PCIE,SATA,M2,NVMe,AHCI分别都指什么?

    固态硬盘近年来也是随着计算机的发展而得到了迅速的发展,目前已经隐隐有要取代机械硬盘的势头,只要成本价格控制下来,相信取代机械硬盘也只是时间问题,但是关于固态硬盘的概念实在是太繁琐了,很多人选购固态时也 ...

  7. 磁盘,分区,文件系统

    磁盘.分区.Linux文件系统  [Disk. Partition.Linux File System] 1.磁盘基础知识 1.1 物理结构     SATA接口:4条 有差分对TX+,TX-,RX+ ...

  8. sata硬盘使用IDE模式安装WinXP,Win7,Win8之后切换回AHCI模式的方法

    实践结果: 把WinXP安装在SATA硬盘里面,只要BISO里面AHCI开启,使用以下方法都不能成功(WinXP EN SP2 VOL)-(DELL INSPER 14R NoteBook).安装XP ...

  9. 阿里云总监课,存储系统设计——NVMe SSD性能影响因素一探究竟

    目录 1 存储介质的变革 2 NVME SSD成为主流 2.1 NAND FLASH介质发展 2.2 软件层面看SSD--多队列技术 2.3 深入理解SSD硬件 3 影响NVME SSD的性能因素 3 ...

最新文章

  1. UA PHYS515A 电磁理论V 电磁波与辐射10 简单辐射问题 一根通电电线的辐射
  2. 处理微信文章中防盗链问题
  3. Hyperledger Fabric1.0架构概览
  4. python opencv 录制视频_OpenCV Python 录制视频
  5. 下载文件(弹出迅雷来下载)
  6. JS实现的五级联动菜单效果完整实例
  7. python处理svg 平移 旋转_svg rotate 怎么转化平移和旋转两个参数。
  8. jQuery导航菜单防刷新
  9. [USACO14JAN]Recording the Moolympics
  10. python--for循环
  11. 远程办公绝非远程监控,该如何挖掘远程办公的红利?
  12. python学习-实现用户密码登录,输错三次锁定
  13. CGLIB实现AOP,MethodInterceptor接口和Enhancer详解——Spring AOP(四)
  14. VirtualDub在处理WMV文件时显示“MISSING CODEC”怎么办
  15. Android省市县三级联动 真实项目抽出 调用只需3行代码
  16. python画简便的图片-用python简单处理图片(5):图像直方图
  17. Android 6.0 Phone 多方通话流程
  18. Mac 破解百度云盘限速下载问题
  19. 基于独立分量分析的语音信号盲源分离
  20. Fiddler(二) - 使用Fiddler做抓包分析

热门文章

  1. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'WLog' 中的标识列插入显式值。
  2. 不均衡样本集的重采样
  3. 扩散模型又杀疯了!这一次被攻占的领域是...
  4. 【计算机毕业设计】基于微信小程序的社区疫情防控系统
  5. 微信支付API v3接口使用应用篇
  6. 12306 余票检测软件
  7. 红包大战不再是两马战,内容平台为何成为新生力量?
  8. 【信号与系统】笔记(4-1)拉普拉斯变换
  9. 「JVM 故障诊断」故障分析与处理案例
  10. 取消改写模式(python)