AHCI,SATA,NVME 2020-03-25 计算机组成原理 暂无评论 2577 次阅读 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 adapter,HBA)是以计算机为主机系统,连接其他网络或存储设备的计算机硬件。该术语主要指连接SCSI、光纤通道或eSATA设备的设备。但是,连接IDE、以太网、FireWire、USB或其他系统的设备也可能称之为主机适配器。 术语网络接口控制器(NIC,Network Interface Controller)更常指连接计算机网络的设备,而术语聚合网络适配器(Converged network adaptor)可以在使用如iSCSI或以太网光纤通道标准协议以允许同一个物理连接上的存储和网络功能时使用。它们可能包括TCP卸载引擎。 https://en.wikipedia.org/wiki/Host_adapter 独立硬盘冗余阵列(RAID, Redundant 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. ![AHCI-SATA-NVME.png](https://blog.moper.net/usr/uploads/2020/03/3873577010.png) 转自https://blog.csdn.net/dongyanxia1000/article/details/77881118 标签: AHCI, SATA, NVME 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。