Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3036246
  • 博文数量: 59
  • 博客积分: 10085
  • 博客等级: 上将
  • 技术积分: 4852
  • 用 户 组: 普通用户
  • 注册时间: 2005-11-29 19:51
文章分类

全部博文(59)

文章存档

2012年(1)

2011年(20)

2010年(9)

2009年(20)

2008年(9)

我的朋友

分类: 系统运维

2011-03-01 12:45:14

◆系统是不是把SATA硬盘当IDE硬盘来用

在阅读下面的文字之前,请先按照我们的方法来检查一下你的系统是如何使用硬盘的。操作步骤如下:

首先,用“Windows+R”组合热键打开“运行”对话框,输入“devmgmt.msc”打开“设备管理器”。然后,在“设备管理器”的设备列表中,查看一下你的硬盘驱动器以及相应控制器是否都是能够一一对应。

 

硬件管理器中的硬盘控制器项

如图所示,我们可以看到当前系统的硬盘是SATA硬盘,但是“IDE ATA/ATAPI控制器”项目中发现当前的控制器是“标准双通道PCI IDE控制器”。也就是说,尽管硬盘是SATA规格,但系统还是按照IDE模式来控制它,这就意味着SATA接口的一些高级功能没办法使用。

◆传统硬盘的读取设计缺陷

我们都知道,硬盘都是机械式设计的,它是通过将信息写入磁盘磁道上的特定位置进行信息存储,当我们要访问这些数据时,磁盘的运行顺序是这样的:首先,寻找存储数据的目标磁碟,访问该磁碟;然后再寻找磁碟上存储数据的目标磁道,访问磁道;接着寻找磁道上存储数据的目标簇,访问簇;寻找簇上存储数据的目标扇区,访问扇区;最后寻找目标数据,读取数据。

机械硬盘的内部结构

实际上,硬盘的数据写入也是按照这种模式进行操作的,但数据并不是按顺序记录的。就例如一个游戏,它有成千上万个文件,这些文件可能会被分配在不同的磁道、不同的扇区、不同的簇,甚至不同的盘片上。那么当我们运行这个游戏的时候,有可能是先读取盘片1的12扇区,然后再读取盘片2的23扇区,然后再跳转到盘片1读取34扇区,这样跳来跳去,非常浪费时间。


硬盘上一个磁碟的结构图:A:磁道;B:扇区;C:目标扇区;D:目标簇。磁碟上数据读取的流程为:磁碟→磁道→目标簇→目标扇区→读取数据。

由于硬盘是机械式读取,所以导致磁头需要在盘片上不停跳动来读取数据。这种不规律的跳动,直接影响的是硬盘读取零散文件的速度。或许大家都有这样的感觉:复制一个1GB的大文件可能需要几十秒钟,但如果复制大小相同但由零散文件组成的文件夹就可能需要几分钟甚至更长的时间,原因就在于此了。

事实上,只要是机械硬盘,这个问题都是无法彻底解决。不过,SATA II规范提供了一种补偿机制,这就是NCQ技术。

◆NCQ技术的优势和原理

●SATA与IDE区别的关键——NCQ
相信很多SATA硬盘用户的情况也是这样,但大家感兴趣的是到底用IDE模式来使用SATA硬盘,具体是有哪些功能或技术没法用呢?这个我们就得来复习一下SATA和IDE的区别了。

事实上,目前主流的硬盘和主板的SATA接口已经发展到了第二代——即SATA II,而它的关键技术主要有两个方面:一是传输速率更快,理论上可以达到300MB/s;二是NCQ技术,即全速命令排队技术。其中,传输速率是硬盘接口的物理属性,与硬盘的控制模式无关。而当我们用IDE模式来使用SATA硬盘时,主要是指我们无法享受NCQ技术。

●NCQ技术是如何优化数据读取的
NCQ,是”Native Command Queuing”的缩写,意思是“全速命令队列”。它是一项通过在硬盘内部优化作业的执行顺序来提升硬盘性能和使用寿命的优化技术。它的工作原理是这样的:

首先支持NCQ技术的硬盘接收到指令后,按照它们访问的地址的距离进行了重排列,这样对硬盘机械动作的执行过程实施智能化的内部管理,即取出队列中的命令然后重新排序,以便有效地获取和发送主机请求的数据,在硬盘执行某一命令的同时,队列中可以加入新的命令并排在等待执行的作业中,这样就减少了磁头来回移动的时间,从而使数据读取更高效。

举个例子:在没开启NCQ的时候,磁头可能会先读取盘片1的12扇区,再读取盘片2的32扇区,然后又读取盘片1的23扇区,再读取盘片2的43扇区。但开启了NCQ后,就会优先按照“盘片1的12扇区→盘片1的23扇区→盘片2的32扇区→盘片2的43扇区”的顺序来读数据。这样一来,就有效降低了磁盘跳转的频率,也就提高了文件的读取速度。

关闭和开启NCQ的数据读取区别图示

◆开启NCQ技术的前提——开启AHCI功能

正如上文所述,NCQ技术其实是SATA II硬盘最有意义的特性。但NCQ技术的硬盘是否都能开启NCQ技术呢?这几乎是不可能的。因为硬盘开启NCQ技术,必须在BIOS里面开启AHCI(部分芯片组还要进系统进行设置)以及安装AHCI驱动。那么,AHCI又是什么呢?

AHCI工作原理图:AHCI本质是一种PCI类设备,在系统总线和串行ATA设备内部逻辑之间扮演一种通用接口的角色。

AHCI是“Serial ATA Advanced Host Controller Interface”的缩写,意思是串行ATA高级主控制器接口,是由Intel、AMD、戴尔、Marvell、微软、Red Hat、希捷和StorageGear等公司联合研发的接口标准,它允许存储驱动程序启用高级串行ATA功能。当主板启用了AHCI功能后,硬盘的管理才被转交给AHCI模块和驱动进行控制,进而开启NCQ和热插拔功能。

也就是说,AHCI的开启需要主板芯片组的支持。一般来说,目前Intel和AMD的主流芯片组(主要是南桥芯片组)几乎都支持AHCI功能,包括Intel的ICH6、ICH7、ICH8、ICH9和ICH10以及AMD的SB600、SB650、SB700和SB750。但在默认状态下,几乎所有主板的硬盘接口模式都是IDE模式,这样设置的原因是为了保证主板的兼容性(毕竟IDE设备的保有量还非常大,如果推出新主板就抛弃原来的用户,这是不合理的)。

AMD 芯片组需要用RAIDXpert软件打开NCQ

 

◆如何开启AHCI功能

由于AHCI驱动模块跟普通的IDE驱动模块不一样,因此在已安装了系统的电脑上,单纯地打开BIOS选项,通常是无法正常进入系统的(一般会蓝屏)。那么,我们该如何启用AHCI功能呢?

一般情况下,我们推荐全新安装Windows系统时启用AHCI功能,这个方法适合于大多数主流的Intel和AMD的主板。方法和步骤如下:

第一步:开机后进入BIOS设置,然后在“Integrated Peripherals→SATA Configuration”中,将SATA模式选项设置为AHCI,然后按F10保存BIOS后重新启动。

第二步:插入Windows系统安装光盘。需要注意的是,如果你安装的是Windows 2000/XP/Vista系统,需要在安装系统时加载AHCI驱动,因此最好选择内置了AHCI驱动的安装光盘(即集成SATA驱动的版本),否则在安装系统时就要通过软盘(Vista支持U盘)才能加载,但软驱已经被淘汰了,安装就会失败。如果你安装Windows Vista SP1以后的系统,则在安装的过程中不需要加载(因为这些系统已经集成该驱动),照常安装Windows就可以了。

第三步:安装完成后,进入系统后AHCI功能就开启了,但是NCQ功能还不能使用。此时,Intel芯片组的用户还需要手动安装“Intel Matrix Storage Manager”,下载地址为(该软件在没有启用AHCI功能之前,系统是无法安装的)。

而AMD芯片组的用户则安装“AMD RAIDXpert”来设置NCQ功能,RAIDXpert的下载地址为。安装后启动RAIDXpert软件,用默认的帐号和密码(均为admin)登陆其中,找到“实体磁盘视图”,选择相应的硬盘,在设置选项中选择启用NCQ,然后点击“送出”即可。

 

◆NCQ技术和AHCI功能的Q&A

Q1:NCQ能不能提高硬盘速度?
A:NCQ并不是一项可以提高磁盘速度的功能,因此即使开启后,也未必在磁盘的读写速度测试上看出任何优势。正如上文所说,NCQ的优点是优化读写的顺序,从而减少零散文件读取的时间。
Q2:如何检测硬盘是否具备NCQ?
A:可以用名为“HD TUNE”的硬盘测试软件的来查看,下载地址为:。如果硬盘支持NCQ,那么开启HD TUNE后,我们可以在“已支持的特性”中看到某些选项是打勾的。

启用NCQ后,设备管理器中的硬盘控制器项目会出现AHCI Controller

Q3:为什么开了AHCI,系统在进入滚动条状态下,等待的时间会稍微长一点?
A:因为AHCI是以管理模块的方式进行加载,所以会比普通的IDE模式慢一点。但是进入系统后,AHCI的优势就会体现出来。
Q4:以上的技巧都针对AMD和Intel芯片组,那么NVIDIA芯片组怎么办?
A:大部分NVIDIA芯片组不是通过BIOS实现AHCI功能的,在NVIDIA芯片组自带驱动中,有一项IDE SW驱动,安装此项驱动即可开启AHCI。

阅读(1291) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~