AHCI 全名Advanced Host Controller Interface,是 Intel 所主导的一项技术,可以发挥SATA 硬盘的潜在加速功能,大约可增加30%的硬碟读写速度,所以在主板和硬盘都支持的情况下还是开启该功能 先在BIOS中关闭AHCI功能,安装系统; 安装完后,启动windows2008系统; 不运行任何其他程序,运行注册表编辑器,单击“开始”,在“运行”框中键入【regedit】,然后按回车键执行 功能,设置完成后继续重启; 重新启动到windows,系统将自动安装AHCI驱动,驱动安装完毕,根据提示重启计算机 重启完成后安装INTEL MATRIX STORAGE MANAGER,再次重启 ; 现在可以在设备管理器中看到IDE ATA/ATAPI控制器已经显示为AHCI Controller了。 至此,AHCI开启完成,让我们感受性能提升30%带来的快感吧。
经常重装系统或者对于驱动熟悉的朋友一定知道AHCI这个名词,它是一种SATA接口规范。 虽然从名称上并不好理解,但AHCI作为启用NCQ的先决条件,对于硬盘的传输速度和寻道时间存在很大影响,这一点在上图中展示得非常直观。除了NCQ之外,很多硬盘高级属性也需要主板提供AHCI支持。 虽然AHCI具有非常多的优势,但因为Windows XP系统并没有内置相关驱动,将会导致安装时找不到磁盘。而如果想要在安装XP时加载AHCI驱动,就必须按F6从软驱安装。 为了解决这一不便,几乎所有主板厂商都在BIOS设置中提供了SATA模式选择:IDE或AHCI模式。IDE模式不支持这些高级属性,但却能够兼容XP。 下载运行,按照提示操作,在重启后更改SATA至AHCI模式即可,不会发生蓝屏的现象。
上周写好了DragonOS的AHCI驱动程序,能够通过DMA读写SATA硬盘,在这里简单记录一下。 block_device_operation 块设备的操作接口 对外统一提供该接口 block_device_request_packet 块设备请求包 block_device_request_queue 块设备请求队列 AHCI 驱动程序 AHCI驱动程序用于操作SATA硬盘设备。 暂时只支持1个AHCI控制器。 初始化操作 其流程如下所示 从pci总线获取AHCI控制器结构体,并在内存中映射ABAR 为每个AHCI控制器创建ahci_device_t结构体 映射第0个AHCI控制器的端口 初始化请求队列 处理I
其实 NVMe 跟 AHCI 都是一种规范,就像是在路上走如果没有交通规则的限制,那么肯定是一团拥挤肯定都走不动了,而 NVMe 和 AHCI 就像是这种交通规则。 ? 总结:M.2 跟 SATA 其实可以说是插槽的形状,而 PCI-E 跟 SATA3 就是数据从硬盘到 CPU 或者内存走的通道,而 NVME 跟 AHCI 就是针对 PCI-E 跟 SATA 通道的“交通规则
fd0c0000.ahci: supply ahci not found, using dummy regulator [ 2.294183] ahci-ceva fd0c0000.ahci: supply phy not found, using dummy regulator [ 2.301650] ahci-ceva fd0c0000.ahci: supply target not found, using dummy regulator [ 2.309511] ahci-ceva fd0c0000.ahci: AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x3 impl platform mode [ 2.318469] ahci-ceva fd0c0000.ahci: flags: 64bit ncq sntf pm clo only pmp fbs pio slum part ccc sds apst [ 2.328892] scsi host0: ahci-ceva [ 2.332498] scsi host1: ahci-ceva
SATA接口走的的SATA的通道和AHCI协议,读取速度上限是500MB/s M.2接口支持SATA通道和PCI-e通道,PCI-e通道支持AHCI协议和NVMe协议。 需要搬运到目的地CPU.其中经过SATA接口或者M.2接口这个大门(SATA接口大门长和宽是1m*1m和M.2接口大门长宽是2m*2m),SATA总线或者PCI-e总线比喻为进入大门后的路,这个路上是能跑自行车(AHCI 如下是SSD磁盘不同接口和不同协议的读写的理论上限 物理接口 总线类型 协议 读写速度 SATA SATA AHCI 理论上限500MB/s M.2 SATA AHCI 理论上限500MB/s M.2
BIOS里SATA选项有AHCI和IDE两个选项 AHIC:串行ATA高级主控接口/高级主机控制器接口模式,允许存储驱动程序启用高级串行 ATA 功能,可以实现包括NCQ(Native Command Queuing)在内的诸多功能 IDE:全称为“Integrated Drive Electronics”,即“电子集成驱动器”,它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器 较IDE模式使用AHCI 模式好,性能也是AHCI更好,特别是对ssd硬盘 而今天为了给电脑打开高频模式进入bios页面,不知不觉中将AHCI改成了IDE导致电脑一直显示磁盘问题,然后重启也无用,所以当你的电脑也出现时不妨看看是不是无意间修改了这个模式
AHCI出现了:问题来了大约从2004年起,AHCI(AdvancedHostControllerInterface,高级主机控制器接口)模式开始普及。 AHCI的新主板,把旧XP硬盘直接接上→开机蓝屏✗在AHCI模式下重装XP,选了"跳过"F6驱动加载步骤→蓝屏XP时代的解决方法1最简单:BIOS改回IDE模式。 代价是牺牲AHCI性能,但XP年代的机械硬盘差别不大。2进阶:安装时F6加载AHCI驱动。 驱动,之后就可以正常安装在AHCI模式下。 关闭VMD后,硬盘会以标准AHCI模式运行,Win10/Win11原生支持AHCI,不需要额外驱动,系统就能正常启动。
早期的PCIe固态硬盘,即便拥有高速通道,也常因沿用为机械硬盘设计的AHCI等传统协议而无法充分发挥潜力。 SATA的遗产:AHCI的单队列竞争模型 AHCI作为SATA设备的主流接口标准,其设计深受其所处时代的技术背景影响。它为机械硬盘而生,其队列模型也完美地反映了这一点。 下面的流程图直观地展示了AHCI架构下的多核I/O竞争模型: AHCI 架构下的多核IO竞争模型 NVMe的革命:大规模并行的无锁模型 与AHCI的修补式演进不同,NVMe是对存储通信方式的彻底重塑。 相比之下,AHCI仅有32个命令的浅队列,其优化空间和并发潜力都极为有限。 /us/en/documents/technical-specifications/serial-ata-ahci-spec-rev1-3-1.pdf SATA AHCI-IP reference design
无奈,再次进行百度,发现安装 Ubuntu 时用的硬盘模式为 AHCI,而 DELL 笔记本出厂系统 Win10 安装时用的硬盘模式是 RAID ON。 更改 Win10 硬盘模式 说明:Ubuntu ® 系统安装盘在 RAID ON 模式下会认不到 NVME 固态硬盘,需要改为 AHCI 模式,而外星人以及 XPS 机器在出厂时硬盘模式大多为 RAID 盘,连 WIN10 纯净版的 IOS 镜像在 RAID ON 模式下,也无法识别 NVME 固态硬盘,由于更改硬盘模式会导致系统蓝屏无法进入系统(WIN7 时代大家耳熟能详的 07B 蓝屏几乎就是 AHCI 4.重启时不断连续按 F2 进入 BIOS,选择 GENEL->BOOT SEQUENCE, 选择为 UEFI,再将硬盘模式改为 AHCI。 将上图选项改为 AHCI 完成后按 F10,保存并退出。 8.重启后顺利进入系统,我们就成功的将硬盘模式改为 AHCI 了! 关闭 BIOS 中的安全启动 这个百度上有很多教程,也比较简单,这里就不再进行赘述。
82371AB) ATA/IDE disk parameters */ STATUS ichAtaShow(VXB_DEVICE_ID pDev, int ctrl, int drive); 查看Intel AHCI SATA硬盘 - INCLUDE_DRV_STORAGE_INTEL_AHCI_SHOW /* show the capabilities of a AHCI controller */ STATUS ahciCtrlShow(VXB_DEVICE_ID pDev); /* show the AHCI disk parameters */ STATUS ahciShow(VXB_DEVICE_ID pDev, int drive); /* show the AHCI disk SMART data */ STATUS ahciSmartShow(VXB_DEVICE_ID pDev, int
2.1 IDE (1)PATA(并行ATA) (2)PATA只支持数据部分进行CRC校验 (3)IDE盘不支持热插拔 (4)需要设置主从盘跳线 2.2 AHCI Serial ATA Advanced Host Controller Interface,串行ATA高级主控接口/高级主机控制器接口 IDE速度太低,协议老旧,所以有了AHCI;但AHCI是为了机械硬板而产生的产物,现在SSD已经普及 2.4 NVMe 一种建立在M.2接口上的类似AHCI的一种协议,是专门为闪存类存储设计的协议。
想了一会也没什么头绪,打算进BIOS看看有没什么线索,在系统设置栏里,看到硬盘的工作模式当前的设置为AHCI,不大了解AHCI与IDE有什么区别,但抱着碰碰运气把它切换成IDE,保存后重启,竟然就能启动进 简单查了一下,貌似AHCI是一种传输速率更高的工作模式,但需要更新的系统的支持,比如win7,所以之前在安装win7的时候可能硬盘的工作模式切换过来了,重装回xp之后,直接就不支持这种工作模式,所以出现了找不到硬盘的情况
存储协议目前主流的有三种,AHCI、NVMe、SCSI。 HDD 磁盘和早期 SSD 磁盘的传输协议一般采用AHCI(高级主机控制器接口,Advanced Host Controller Interface)。 AHCI 为单队列模式,主机和 HDD/SSD 之间通过单队列进行数据交互。对于 HDD 这种慢速设备来说,主要瓶颈在存储设备,而非 AHCI协议。 因此对于 SSD,AHCI 的单队列模式成为了限制并发性的瓶颈。随着存储介质的演进,SSD 盘的 IO 带宽越来越大,访问延时越来越低。 AHCI 协议已经不能满足高性能和低延时 SSD 的需求, NVMe(NVM Express 非易失性内存主机控制器接口规范)应运而生。
3、重启按delete(有些主板按F2),在bios里,开启AHCI:进系统的时候点击del键,进入bios中找到高级模式,在硬盘模式里找到AHCI模式选中,按F10保存重启。 最近两年的新电脑,已默认是AHCI模式,两年以前的老电脑,就要修改为AHCI。 4、重启电脑,进入引导模式,选光驱启动。然后选择进入PE微系统。
在存储系统中,HDD 磁盘和早期 SSD 磁盘的传输协议一般采用AHCI(高级主机控制器接口,Advanced Host Controller Interface)。 AHCI 为单队列模式,主机和 HDD/SSD 之间通过单队列进行数据交互。对于 HDD 这种慢速设备来说,主要瓶颈在存储设备,而非 AHCI协议。 AHCI 的单队列模式成为限制 SSD 并发性的瓶颈。随着存储介质的演进,SSD 盘的 IO 带宽越来越大,访问延时越来越低。 AHCI 协议已经不能满足高性能和低延时 SSD 的需求,因此,存储系统迫切需要更快、更高效的协议和接口,NVMe(NVM Express)协议应运而生。
/bin/disk-riscv64.img,if=none -device ahci,id=ahci -device ide-hd,drive=disk,bus=ahci.0 -netdev user, /bin/disk-riscv64.img,if=none -device ahci,id=ahci -device ide-hd,drive=disk,bus=ahci.0 -netdev user,
我们已经知道,AHCI只有一个命令队列,且队列深度是固定的32,就凡人一个,和NVMe相比,无论是在命令队列广度还是深度上,都是无法望其项背的;NVMe命令队列的百般变化,更是AHCI无法做到的。 总之AHCI/SATA和NVMe/PCIe 这么一比较,画面太美,蛋蛋不敢看。 蛋蛋在这里总是贬低AHCI/SATA,有人要说蛋蛋忘恩负义,过河拆桥。怎么说? 想当年,你SSD刚出来的时候,要不是AHCI/SATA收留了你,辛苦把你养大,都不知道你现在在哪里流浪。现在好了,你SSD翅膀硬了,不说一句感谢的话,倒反过来嫌弃我。 各位看官,误会了,前面都是演戏,不说你AHCI/SATA不好,怎么能突出我NVMe/PCIe的好,毕竟后者才是男女一号,这么做完全是剧情需要。戏外,SSD不会忘记你AHCI/SATA的好。忘恩负义? 虽然是在戏里,但总说AHCI/SATA的不好,这样真的好吗?蛋蛋是个怀旧的人,突然就有种蛋蛋的忧伤。好吧,以后就谈NVME,不说AHCI了。孰好孰坏,留与读者评说。 戏还得继续演。
他是与AHCI类似的、基于设备逻辑接口的总线传输协议规范(相当于通讯协议中的应用层),用于访问通过PCI-Express(PCIe)总线附加的非易失性内存介质,虽然理论上不一定要求 PCIe 总线协议。 此规范目的在于充分利用PCI-E通道的低延时以及并行性,还有当代处理器、平台与应用的并行性,在可控制的存储成本下,极大的提升固态硬盘的读写性能,降低由于AHCI接口带来的高延时,彻底解放SATA时代固态硬盘的极致性能 延时更低: 说到NVMe标准对比AHCI标准的优势,其中之一就是低延时。因为AHCI标准本身就是为高延迟的机械硬盘而设,虽然SSD发展至今,主流产品已经开始不能满足性能的高速发展,特别是在延迟方面。 NVMe SSD可有效降低延迟(图片来自网络) 在软件层方面,NVMe标准的延时只有AHCI的一半不到,NVMe精简了调用方式,执行命令时不需要读取寄存器;而AHCI每条命令则需要读取4次寄存器,一共会消耗 目前市面上性能不错的SATA接口SSD,最多只会测试到队列深度为32的IOPS能力,其实终究原因这是AHCI的上限,其实许多闪存主控可以提供更好的队列深度。
AHCI AHCI,全称 Advanced Host Controller Interface,即高级主机控制器接口,相比老旧的 “IDE” 虚拟模式更适合 SSD SATA 存储设备通信协议。 不开启 AHCI,对固态硬盘读写速度损失非常大。 掉速问题 目前固态硬盘的容量相比机械硬盘还是很小,有些用户直接把固态硬盘装满,这对固态硬盘损伤很大。