cnhnln 发表于 2006-2-19 00:09:36

linux如何才能支持NCQ?

linux如何才能支持NCQ?
硬件、BIOS设置,内核和其他系统工具都有何要求阿?

cnhnln 发表于 2006-2-20 20:56:21

发表于 2006-2-20 23:27:45

:roll:

WeiMingzhi 发表于 2006-2-21 14:42:02

三翻领 发表于 2006-2-21 15:26:41

纯粹帮顶
One area that SCSI had over both parallel and SATA drives was Native Command Queuing (NCQ). Traditionally hard disks on the consumer desktop side process disk requests in a linear fashion. This can potentially be a very bad thing and to understand why, there has to be a basic understanding of the physical structure of a hard disk. Hard disks are made up of platters or disks, much like a compact disk. Each platter is divided into tracks which are concentric circles, tracks are divided into sectors. Each platter is read by one or more heads. Seeking data is fastest when the data resides on the same track. Moving between tracks is time consuming. Consider the case where there are three pieces of data, one on the outermost track, one on the inner most track and one on the outmost track. In a traditional hard disk, the data on the outer track would be read first, then the data on in the inner track second, and finally the third piece of data on the outer track is read. This is not efficient and the time it takes to move the head is the seek time. If the head movement can be minimized, the seek time will decrease accordingly. This is where NCQ comes in - NCQ can rearrange the order of instructions so instead of moving from the outer track to the inner track, both pieces of data may be read from the outer track first before tackling the inner track.

NCQ requires both controller and hard disk support, so unfortunately NCQ will not work on most SATA drives today but most disk manufacturers will support NCQ in the very near future.

cnhnln 发表于 2006-2-21 22:25:21

Re: linux如何才能支持NCQ?

linux如何才能支持NCQ?
硬件、BIOS设置,内核和其他系统工具都有何要求阿?

参看 http://linux-ata.org/sata-status.html
Queueing support
Preliminary support for SATA Native Command Queueing (NCQ) is available in the libata-dev git repository. Queueing support is not currently available in any release kernel.
Tangent: Host-based queueing and Native Command Queueing

Queueing is the process of sending multiple commands to a single device, without waiting for prior commands to finish. This increases performance and reduces latency. There are three types of queueing in the ATA world:


"legacy TCQ" -- some PATA devices support this. This design is largely a hack on top of existing ATA, to enable queueing for certain devices. Since host controllers did not require updates to support this, there are many limitations and complications that an OS driver must deal with, to enable legacy TCQ. As a result, legacy TCQ will only be supported on those few host controllers which provide host-based TCQ (see next item). This is very low priority, and may never be supported.

"host-based TCQ" -- the host controller supports a queue of drive commands, whether or not the drive supports it.

"Native Command Queueing" -- both host and drive cooperate in the queueing and execution of drive commands. This should provide the highest performance and lowest latency of all three options.
#1 will be supported only where hardware handles all the details. (legacy TCQ + host-based TCQ)
#2 may supported by libata, on a per-driver basis, for all hardware that supports it.
#3 will be supported by libata, for all hardware and devices that support NCQ. Test code is currently available in the 'ncq' branch of libata-dev.git.
失望鸟:(

PS:楼上发的时几年前的 :mrgreen:

cnhnln 发表于 2006-6-15 16:54:36

刚去 http://linux-ata.org/software-status.html#tcq 看了下
已经支持NCQ了,不过还不清楚是从那一版开始的。2.6.16支持否阿?

xwindow 发表于 2006-6-16 07:49:34

弱弱的问一下,啥是NCQ涅?

法无定法 发表于 2006-7-1 23:57:06

linux下NCQ如何支持?

也很想知道如何才能在linux下实现NCQ?

cnhnln 发表于 2006-7-5 21:26:44

顶起来,谁来告诉我2.6.15支持NCQ否阿?或者在哪里可以查到阿?不要让我去翻kernel的changelog阿

人之子 发表于 2006-7-9 12:15:03

只要编译ahci进内核,如果硬盘支持的话,会自动开启是不是这样??

cnhnln 发表于 2006-9-14 17:10:14

内核要到2.6.18才实现
http://wiki.kernelnewbies.org/Linux_2_6_18#head-ebe3efc415964a6c8263f16e136be39cee5bd32c
页: [1]
查看完整版本: linux如何才能支持NCQ?