AHCI,SATA,NVME

news/2024/12/2 12:57:23/

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、以太网、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 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





http://www.ppmy.cn/news/639022.html

相关文章

Oops是什么有什么用

什么是Oops Oops在字面上的意思就是“哎呀,不小心”表示把事情搞砸了,所以当内核发出这个消息的时候就表示内核出了一些问题了。 Oops有何用 内核打印出的Oops信息能够帮助我们很快得追查到错误得源头。 不过需要我们配置内核得时候打开相应的配置&a…

linux 开启ahci_AHCI (简体中文)

翻译状态:本文是 AHCI 的翻译。上次翻译日期:2019-10-26。如果英文版本有所更改,则您可以帮助同步翻译。 AHCI, Advanced Host Controller Interface 的缩写,意思是 高级主机控制器接口, 这是一种SATA设备特有的工作模式.通常AHCI需要通过BIOS来开启或关闭,通过BIOS启用AH…

SATA、AHCI、ATA等相关知识概述

SATA SATA(Serial Advanced Technology Attachment,串行高级技术附件)是一种基于行业标准的串行硬件驱动器接口,是由Intel、IBM、Dell、APT、Maxtor和Seagate公司共同提出的硬盘接口规范。现在主流为SATA3.0,速率可达到…

Spring Security 6.x 系列【62】扩展篇之用户登录日志

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列Spring Security 版本 6.1.0 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo 文章目录 1. 概述2. 登录日志表设计3.1 用户代理3.2 IP、地理位置2.3 建表SQL3. 实战…

高性能计算开发软件培训班-选猿代码科技IT培训机构!

学习CPU并行程序性能优化的意义: 学习CPU计算是现代计算机科学中不可或缺的一部分。掌握CPU计算原理和应用,能够提高我们的编程技能和解决问题的能力,帮助我们更好地应对计算机科学领域中的挑战和机遇。此外,CPU计算在计算机体系结…

华为云焕新数字生活,打造情景化智能产业链条

华为云焕新数字生活,打造情景化智能产业链条 华为云协同数字音频转换带来情景化便利,助力用户、企业实现质变飞跃。云上平台推出多款数字情景化工具、产品,以多个维度实施效能合作。华为云服务平台进一步探究数字情景化模式,打造出…

华为云车联网解决方案

【摘要】 华为云车联网解决方案 前言 随着互联网、物联网的快速发展,源于物联网的车联网也渐渐兴起;我国车联网技术从2009年起步至今,从只能实现基本导航、救援,发展到实时通信、车载系统远程监控,依托于人工智能、语…

活动回顾 | 新ICT 迈向数字化转型之路,恒驰信息携手华为赋能客户抓住机遇

“新ICT 迈向数字化转型之路”线下沙龙于2022年11月23日成功举行,本次活动由华为和上海恒驰信息系统有限公司(以下简称“恒驰信息”)联合主办,恒驰信息副总裁 周子韬 和华为上海商业业务部总经理 赵超 为本次活动开场致辞&#xf…