硬盘是通过将信息写入磁盘磁道上的特定位置进行信息存储,因此它们的访问顺序如下:首先,寻找存储数据的目标磁碟(platter),访问该磁碟。然后再寻找磁碟上存储数据的目标磁道(track),访问磁道。寻找磁道上存储数据的目标簇(cluster),访问簇。寻找簇上存储数据的目标扇区(sector),访问扇区。寻找目标数据,读取数据。
简单点来说就是:磁碟——磁道——目标簇——目标扇区——读取数据。
温彻斯特结构硬盘
至于硬盘的写入,其实也是按照这种模式进行操作。但磁盘的数据并不是按顺序记录的。就例如一个游戏,它的上千个文件也是被分配在不同的盘片上,而且有可能出现,一个文件还分配在不同的扇区,不同的簇。打个比方,如果要读取一个文件,有可能是先读取盘片1的432扇区,然后再读取盘片2的812扇区,然后再跳转到盘片1读取665扇区,这样跳来跳去,非常浪费时间。而且还有一个问题:读取一个文件就那么麻烦,那么玩个游戏,岂不是要同时读取多个文件?
确实,这是机械硬盘,也成为温彻斯特硬盘的一大缺点,由于硬盘是机械式读取,所以导致磁头需要在盘片上不停跳动来读取数据。这种不规律的跳动,直接影响的是硬盘读取零散文件的速度。这一方面大家也许有所感触:复制一个巨大的ISO文件也许有120M/秒,但是复制一个120M的零散文件夹,两三分钟都有可能。虽然,巨大ISO文件也不是按顺序排列,但是其规整程度还是比较高的。
只要是机械硬盘,这种问题都是无法解决的,因此固态硬盘成为追求性能的更新选择。不过固态硬盘容量不高,价格也相当夸张,因此无法普及。在这种情况下,SATA II规范中提供了一种补偿机制,或者说叫做先进特性:NCQ。而这项NCQ技术需要开启AHCI进行支持。
随着硬盘技术的发展,硬盘涌现出不少新的技术。在单碟160G向320G迈进时,垂直记录的应用提高了单位体积下硬盘的容量。更早时期出现的SATA接口硬盘在不断升级中,新的技术对硬盘有了更强大的支持,新的功能不断涌现,也带来了NCQ和热插拔这两种较为实用的功能。
NCQ被称为“全速命令队列(Native Command Queuing,NCQ)”。全速命令队列是SATA II最先进和最令人期待的特性,是SATA II规范中的重要组成部分,也是SATA II规范唯一与硬盘性能相关的技术。NCQ是一项强大的接口/硬盘技术,它通过在硬盘内部优化作业的执行顺序来提升硬盘性能和使用寿命。
支持NCQ技术的硬盘对接收到的指令按照他们访问的地址的距离进行了重排列,这样对硬盘机械动作的执行过程实施智能化的内部管理,大大地提高整个工作流程的效率:即取出队列中的命令,然后重新
排序,以便有效地获取和发送主机请求的数据,在硬盘执行某一命令的同时,队列中可以加入新的命令并排在等待执行的作业中。显然,指令排列后减少了磁头臂来回移动的时间,使数据读取更有效。
如果对硬盘进行一系列的读取,由于数据在磁盘上分布位不同,在没开启NCQ技术的时候,磁头可能会先读取盘片1的78扇区,再读取盘片2 的760扇区,然后又读取盘片1的261扇区,再读取盘片2的43扇区。但如果开启了NCQ后,就会优先按照顺序读取盘片1的数据,例如78-261扇区,然后在跳转到盘片2进行43-760扇区的读取。这样一来,就有效降低了磁盘跳转的频率,也就提高了小文件的读取速度。
正如上文所述,NCQ技术其实是一项相当有意义的硬盘新特性。但是否只要是支持NCQ技术的硬盘,都会开启NCQ技术呢?这几乎是不可能的。因为硬盘开启NCQ技术,必须在BIOS里面开启AHCI,部分芯片组还要进系统进行设置。这里面涉及到主板芯片组的支持,一般来说,现在的P43,P45,以及NVIDIA的大部分主板,和AMD的主流芯片组几乎都支持AHCI功能,但我们还是建议大家查阅主板说明书。
未开启AHCI的主板
几乎是所有的主板,默认状态下硬盘的接口模式都是IDE模式。虽然是SATA接口的硬盘,但是为了保证兼容性,主板都把它们当作IDE设备进行数据的处理,这一点可以从我们的图中看出:设备管理器中有大量的IDE设备。
被认作是IDE设备后的硬盘,就丧失掉NCQ和热插拔技术的支持,无论是性能还是速度,都会很规矩地当成IDE设备来进行。虽然大部分硬盘的读取传输速度,在IDE模式下都能满足。
开启AHCI后,只有两个原生IDE通道
AHCI,全称为Serial ATA Advanced Host Controller Interface(串行ATA高级主控接口/高级主
机控制器接口),是在Intel的指导下,由多家公司联合研发的接口标准,它允许存储驱动程序启用高级串行 ATA 功能,如本机命令队列和热插拔,其研发小组成员主要包括Intel、AMD、戴尔、Marvell、迈拓、微软、Red Hat、希捷和StorageGear等著名企业。 AHCI本质是一种PCI类设备,在系统内存总线和串行ATA设备内部逻辑之间扮演一种通用接口的角色(即它在不同的操作系统和硬件中是通用的)。这个类设备描述了一个含控制和状态区域、命令序列入口表的通用系统内存结构;每个命令表入口包含SATA设备编程信息,和一个指向(用于在设备和主机传输数据的)描述表的指针。
简单点来说,就是当我们启用了AHCI功能后,硬盘的管理被转交给AHCI模块和驱动进行控制,在这种状态下,就能开启NCQ和热插拔功能。
AHCI驱动模块跟普通的IDE驱动模块不一样,因此,如果是已经安装了系统,单纯在BIOS里面更改,那么基本上是无法进系统的。所以如果是新装系统用户,可以看这一页
首先,我们需要在BIOS里面开启AHCI功能。按照上图所示,选择AHCI。按F10或者其他的保存快捷键,保存BIOS后重新启动。
以VISTA为例(同时也适用于Windows7 ),在安装环节中,选择全新安装,然后在硬盘分区界面中,选择“加载驱动程序”,找到原本放置的驱动程序,如果安装32位系统,则选择X86文件夹,如果安装64位系统,选择X64文件夹。点击确定等待驱动安装。安装完成后正常分区进入系统。 特别注意:
1:以上方法只适用于INTEL和AMD芯片组,而NVIDIA芯片组的主板只需要在系统加载特殊驱动即可,因此NVIDIA芯片组开启AHCI方法再下一页再详细阐述。
2:AMD芯片组还需要安装AMD RAIDXpert,并且在进入RAIDXpert,帐号密码默认为admin,找到“实体磁盘视图”,选择相应的硬盘,在设置选项中选择启用NCQ,点击送出即可。
由于驱动模块的不同,仅仅只是将BIOS里面的选项更改,那么操作系统是无法载入AHCI模块,从而死机。因此我们必须在操作系统里面进行一些更改。下面的说明针对VISTA和Windows 7进行。注意:以下步骤只适用于INTEL和AMD芯片组。
VISTA和Win7系统 1:在“运行”中键入regedit命令,找到HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\Msahci,双击“名称”列中的“Start”,在“数值数据”框中,键入“0”,然后确定并且退出注册表编辑器。
2:然后按照上文所述,将BIOS里面的选项更改为AHCI,并且保存。
3:此时进入系统后,会出现发现新硬件。AMD芯片组的用户请手动选择AMD AHCI驱动,并且安装。安装后重新启动,安装AMD RAIDXpert,并且在进入AMD RAIDXpert,帐号密码默认为admin,找到“实体磁盘视图”,选择相应的硬盘,在设置选项中选择启用NCQ,点击送出即可。INTEL芯片组的用户,手动安装 Intel Matrix Storage Manager即可。
因篇幅问题不能全部显示,请点此查看更多更全内容