原生指令排序

原生命令队列(NCQ)是一种旨在提高计算机上SATA硬盘性能的技术。在某些情况下,它可以通过允许单个硬盘在内部优化其执行收到的读写请求的顺序来实现这一目的。这可以减少不必要的硬盘磁头移动量,对于同时有多个读/写请求未完成的工作负载,可以提高性能(并略微降低硬盘的磨损)。这种情况最常发生在服务器类型的应用中。然而,由于NCQ逻辑引起的额外延迟,目前(截至2004年)的技术实际上降低了某些应用中的HD访问速度,如游戏和顺序读写,。[过时的事实]

原生命令队列之前是并行ATA的标签命令队列(TCQ)版本。ATA在整合TCQ方面的尝试受到了ATA主机总线适配器使用ISA总线设备协议与操作系统交互的要求的限制。由此产生的高CPU开销和可忽略不计的性能提升,导致TCQ缺乏市场认可度。

NCQ与PATA TCQ的不同之处在于,命令的重新排序是由硬盘而不是操作系统来执行的,而且每条命令的重要性是相同的。这样做是比较好的,因为硬盘对其性能特点了解最多,能够考虑到旋转位置。NCQ和PATA TCQ的最大队列长度为32条飞行中命令(实际为31条),而SCSI TCQ的最大队列长度为264条飞行中命令。

要启用NCQ,必须在SATA主机总线适配器和硬盘本身中支持并启用。必须将适当的设备驱动程序加载到操作系统中,才能在主机总线适配器上启用NCQ。许多较新的芯片组支持高级主机控制器接口 (AHCI),这应该允许操作系统提供的通用驱动程序来控制它们并启用 NCQ。事实上,较新的主流Linux内核原生支持AHCI。遗憾的是,即使主机总线适配器上存在AHCI,Windows XP也需要安装厂商特定的驱动程序。Windows Vista通过包含一个通用AHCI驱动程序来纠正这种情况。

相关网页

  • 标签:命令排队

问题和答案

问:什么是本地命令排队?
答:本地命令队列(NCQ)是一项旨在提高计算机上SATA硬盘性能的技术,它允许单个硬盘优化执行读写请求的顺序。

问:NCQ是如何提高性能的?
答:NCQ可以减少不必要的硬盘磁头移动量,从而提高性能,对于同时有多个读/写请求的工作负载,如服务器类型的应用,硬盘的磨损会略有减少。

问:NCQ在某些应用中是否会减慢硬盘访问速度?
答:是的,NCQ实际上会在某些应用中减慢硬盘访问速度,如游戏和连续读写,这是由于NCQ逻辑引起的额外延迟。

问:Native Command Queuing与PATA TCQ有什么不同?
答:与PATA TCQ不同,NCQ的命令重新排序是由硬盘而不是操作系统执行的,而且每个命令的重要性是相同的。硬盘对自己的性能特点有更多的了解,所以它在优化命令时可以把旋转位置考虑进去。此外,NCQ的最大队列长度为32,而PATA TCQ的最大队列长度为32(实际为31)。

问:要启用NCQ,必须满足哪些硬件要求?
答:要启用NCQ,必须在SATA主机总线适配器和硬盘本身上支持和启用。此外,必须在操作系统中加载一个适当的设备驱动程序,以便在主机总线适配器上启用NCQ。

问:Windows XP是否有通用的AHCI支持?
答:没有,即使主机总线适配器上有AHCI,Windows XP也需要安装一个供应商特定的驱动程序。但是,Windows Vista包括一个通用的AHCI驱动程序,允许对AHCI设备提供通用支持。

AlegsaOnline.com - 2020 / 2023 - License CC3