泡泡网新闻频道 PCPOP首页      /      新闻频道     /      资讯    /    正文

DST达思数据恢复带你走进硬盘的世界2

    硬盘性能分析

    我们给大家讲述了影响硬盘性能的一些最基本最关键的因素,并且还分析了硬盘磁头在进行读写操作时的差异。我们向大家介绍了一些硬盘接口规范和本机数据传输速率的特点。硬盘的性能主要是由硬盘的体系结构决定的。比如单碟容量和硬盘的转速。很多硬盘制造商都有自己专门的硬盘工具软件。我们可以通过使用这些软件对硬盘的很多参数做出调整。

    在这篇文章里我们将暂时忽略Windows、Unix、Linux等各种操作系统版本之间对于硬盘读写操作的差异。Windows是一种实时操作系统,进程是直接在内存中被映射出来的。而Unix和Linux这样的操作系统中的进程都是通过使用软件堆栈的形式构建的。这也意味着软件实现的堆栈和实际的中断可用性之间存在着很大的矛盾。由此硬件会与软件再次对资源的控制权进行争夺。结果是在这种争夺中并没有胜者。与此同时系统的性能会大幅度下降。处理器会有很高的占用率,它会不断的重复处理来自PCI总线的错误报告,并且不断的编译着这些无效的指令。控制软件的纠错功能非常有限,因此指令的利用率非常低下。一个很好的例子就是芯片组和系统总线的管理驱动程序。很多最新的芯片组的设计规范与Intel最初设计的某一代奔腾处理器的芯片组并不一致,因此就需要使用这些驱动程序来进行调节。他们在硬件的桥和缓冲器之间作一些必要的配置以便于优化接口界面,这就是微软操作系统中所谓的——硬件驱动程序。很少会有新出台的接口在不打补丁的情况下,能完全支持已有的操作系统。例如Intel在即将发布的Canterwood / Springdale芯片组中的 ICH5 Serial ATA传输界面就完全支持以前的Windows XP系统,操作系统不用作任何的更改打任何的补丁。但是这种情况仅仅局限于采用ICH5R的没有RAID功能的南桥芯片。如果要想支持RAID功能,那么操作系统还必需安装相应的驱动程序。

{imageTitle}
如图1,Hyperion系列驱动

    VIA的Hyperion系列驱动是现在VIA最流行的主板驱动补丁程序。(以前它也被称作4-IN-1补丁)它已经经历了长大5年之久的研发,VIA每发布一款新的芯片组或者在芯片组中出现了BUG,VIA都会发布新的Hyperion驱动。它包括了北桥芯片组、IDE控制器、AGP总线、内存总线、和其他外部接口等设备的驱动程序。

    几乎所有的第三方厂商(VIA、SiS、Ali、NVIDIA)生产的芯片组都需要安装相应的驱动补丁。一般来说并不是需要借助这些驱动程序来拓展芯片的功能。最主要的目的就是要减低处理器资源的占用率,提高整个系统的性能。最明显的例子就是VIA和NVIDIA的主板芯片组管理驱动。

    什么是总线管理器

    简而言之,总线管理器就是一个能够管理PCI总线的设备。该设备能够直接设置DMA(direct memory access,直接内存访问通道)通道的参数。它表示数据不经过CPU,而直接在硬盘和内存之间传送。在多任务操作系统内,如OS/2、Linux、Windows NT等,当磁盘传输数据时,CPU可腾出时间来做其它事情,使服务器的数据性能大大提高。

    DMA方式有两种类型:第三方DMA(third-party DMA)和第一方DMA(FirstPartyDMA)(或称总线主控DMA,Busmastering DMA)。第三方DMA通过系统主板上的DMA控制器的仲裁来获得总线和传输数据。而第一方DMA,则完全由接口卡上的逻辑电路来完成,当然这样就增加了总线主控接口的复杂性和成本。现在,所有较新的芯片组均支持总线主控DMA。与快取内存结合在一起,不但增加数据的存取及传输性能,更因减少对磁盘的存取而增加磁盘的寿命。使用第一方DMA控制器的主板芯片组并不需要额外的驱动程序,而一般所有的第三方DMA控制器都需要安装驱动程序。

    如果在你的系统中有一个系统总线控制器,那么它就需要安装一个驱动程序。这些程序会告诉系统如何使用总线管理器。尤其它会告诉系统将采用何种接口标准进行数据传输和驱动器的缓冲容量,直接通过DMA通道访问内存的第一输入输出管道(fifos,first-in/first-out pipelines)的参数等等。如果不安装系统总线管理器驱动,它将不能支持DMA传输模式,或者仅能支持部分DMA功能。并且驱动程序可以实现简单的数据校验功能。例如像HDTach这样的硬盘测试软件都可以自动通过驱动程序来检测出硬盘所支持的各种数据传输模式。如果系统没有安装驱动程序,处理器的占用率会在80%至95%之间。并且突发数据传输速率和实际本机数据传输速率都很难达到碟片媒体或实际内部传输速率的水平。驱动程序还可以为系统总线管理器优化性能。

    当然驱动程序也不仅仅可以优化系统的性能,它还可以提高系统对于不同类型的硬盘的兼容性,使之支持各种ATA和ATAPI硬盘。比较典型的就是NVIDIA专门为其nFORCE2芯片组推出的2.03以上版本的SW IDE驱动。

{imageTitle}
如图2

    这是一块Maxtor生产的D740X6L硬盘,它支持UATA-133接口规范。我们使用一块Shuttle所生产SN41G2主板进行测试(采用NVIDIA nForce2芯片组)。在安装了标准的WindowsXP自带的驱动后,其突发数据传输速率被限制在了90 MB/sec。此时的处理器占用率大约在 57%左右。

{imageTitle}
如图3

    在使用了专用的SW IDE驱动程序之后,突发数据传输速率达到了PCI总线的极限峰值。(如图3中的图表顶端)同时你也应该注意此时的处理器占用率都在10%以下。通过安装专门的SW IDE驱动处理器的占用率大幅度下降了。但不幸的是SW驱动目前对于一些 ATAPI接口界面的刻录机在控制指令方面仍然存在着一些兼容性问题。但是最后你要记住那些在Windows XP中的标准的驱动程序是完全可以胜任管理系统总线的任务,只是他们没有对NVIDIA的MCP芯片作性能优化而已。

    其他影响本机传输速率的因素

    从PCI潜伏期调节补丁说起,使用VIA芯片组主板的朋友总是碰到很多恼人的兼容性问题:从一块IDE硬盘拷贝文件到另一块硬盘时死机;电脑经常死锁、挂起;播放音乐时出现一些莫名奇妙的噪声(这个问题在某些型号的Creative声卡上表现的尤其严重);从IDE光驱、刻录机、DVD拷贝或读取大文件时容易中断;使用某些Creative和Aureal品牌的声卡播放音乐时声音扭曲或者出现爆音;使用ATI Radeon系列显卡玩3D游戏时容易死机等等。如果你的系统出现了上述问题且安装VIA 4-IN-1等驱动程序、补丁仍不能解决。有时候安装一款PCI潜伏期调节补丁就能解决问题。

    PCI的潜伏期对于本机的数据传输效率和PCI设备的兼容性都是一个比较重要的因素。在PCI系统总线中有一些算法可以控制系统的IRQ中断请求。PCI总线可以通过一些算法使用数个潜伏周期来为每一个设备分配IRQ中断请求。在系统中一个数据访问的过程需要多个时钟周期,一般会消耗8个时钟周期来完成操作。这就意味着如果系统潜伏期设置为32个时钟周期,那么在数据访问的整个过程中,访问延迟与传输周期所花费的时钟周期的比率为1:3。如果延长PCI总线的潜伏期,例如潜伏增大到64个时钟周期,那么这个比率会达到1:7。(数据的访问量并没有变化)并且在每一次的数据访问时会传输更多的数据。并且这也会减少数据访问的延时。在很多突发数据传输协议中,都会采用2至8Byte的数据块。这意味着有4Byte宽度的总线在完成数据传输时会使用512至2048个时钟周期。由此数据传输的速度将大大提高,而且数据将会不间断的持续传输。

    总线停顿

    假设PCI总线的潜伏期为64个时钟周期,那么它需要反复等待32次,才会从系统中断请求的队列中断开。并且每次重新连接的时候会向PCI总线发布8Byte大小的数据包来测试系统。这意味着他们不会浪费每一个时钟周期的潜伏期。终止数据访问后会得到最大的PCI总线潜伏期。然而这也是必须的,执行这种算法可以避免PCI装置互相抢夺资源。在PCI总线的定义中也制定了一项特殊的处理机制,它允许PCI总线暂停当前的处理任务。这意味着连接到当前PCI总线的装置会有权使用其他设备对应着的PCI总线,请求指令会以消息列队的形式向后排列。总线管理器会终止IRQ的中断请求,阻止它关闭当前不活动的连接。如果没有其他的驱动器抢夺这条总线,它会继续让驱动器独享这条总线,以点到点的形式高速传输数据。

{imageTitle}
如图4

    下面我们使用以8个时钟周期的随机存储潜伏期,来举例说明PCI总线潜伏期在互相发生冲突时的带宽消耗问题。在这种情况中PCI总线设置为16个潜伏周期,持续传输速率下降到67 MB/sec。因为在这其中会有一半的时钟周期会浪费访问的潜伏期上,系统总线每次需要在访问潜伏期后重新发出请求命令。当设置为24个PCI潜伏期时,结果持续传输速率达到了89MBs,32个PCI潜伏期时,达到了100 MBs,到了48个PCI潜伏期时,达到了111 MBs,最终96个PCI潜伏期时,达到了121 MBs的传输速率。你要牢记IDE控制器所使用的IRQ中断号是14和15这在整个计算机硬件系统中享有最高的中断请求权利。如果PCI总线支持总线暂停数据传输模式,那么潜伏期就不会中断其他驱动设备的优先权了。整个系统就能以最大的PCI潜伏期传输数据了。在VIA芯片组的系统中,进行大数据包的硬盘对拷报错,也正式由于这个原因造成的。

0人已赞

关注我们

泡泡网

手机扫码关注