|
||||
AHCI(串行ATA高级主控接口)
AHCI,全称为Serial ATA Advanced Host Controller Interface(串行ATA高级主控接口),是在Intel的指导下,由多家公司联合研发的接口标准,其研发小组成员主要包括Intel、AMD、戴尔、Marvell、迈拓、微软、Red Hat、希捷和StorageGear等著名企业。在AHCI技术里面我们最常用到的高级功能就是热插拔功能和NCQ(全速命令排序)。
主板BIOS中设置AHCI功能
AHCI描述了一种PCI类设备,主要是在系统内存和串行ATA设备之间扮演一种接口的角色,而且它在不同的操作系统和硬件中是通用的。对于主板来说,它是一项可选功能,只有当用户在BIOS设置里面启用磁盘控制器(部分主板拥有一个以上的磁盘控制器)的AHCI后再正确安装操作系统,该功能才能生效。
Intel Matrix 存储管理器界面
在前面我们提到SATA接口可以支持热插拔,但其实在SATA 1.0具备完整的热插拔能力,而到了SATA II这个能力才真正得到完善。在开启了主板的磁盘控制器(部分主板拥有一个以上的磁盘控制器)的AHCI功能,正确安装操作系统和驱动程序后,我们就可以对该控制器下的SATA/eSATA设备进行轻松的热插拔操作。
NCQ(全速命令排序)
一直以来SCSI硬盘在多任务负载下的表现能力为人称道,其根本的原因除了SCSI接口惊人的接口速率外,便是它的指令排序功能。以往的PATA、SATA硬盘也正是因为缺少一种指令优化执行功能而在性能上落后于SCSI硬盘。针对这一困境,Intel的AHCI 1.0规范首次引入的NCQ(Native Command Queuing),它的应用能够大幅度减少硬盘无用的寻道次数和数据查找时间,这样就能显著增强多任务情况下硬盘的性能。
NCQ和非NCQ的磁头工作方式
如果没有原生命令队列,当命令被发往硬盘时,会按照命令到达的顺序进行处理。尽管这样听起来非常合理,但其实这样的效率会比较低。假设你的硬盘收到三条从硬盘读取数据的命令,第一条命令要求读取最里面的磁道的数据,第二条命令要求读最外侧的磁道的数据。最后一条命令又要求读取最内 侧的数据。如果按照顺序执行命令,磁头需要在整个硬盘上四处游走。
如果能够先执行两个需要在外侧磁道读取数据的命令(第一条和第三条命令)再 去执行第二条读取内侧磁道的命令,效率就能提高很多。这就是原生命令队列所起到的作用。通过原生命令队列功能,磁盘可以查看多个要求然后按照效率最高的方式进行处理。以这种方式处理命令可以提高硬盘的系统性能,而且由于这种方式效率较高,所以也能延长硬盘的使用寿命。