达思硬盘数据恢复中心
达思数据恢复旗下网站

 达思数据恢复全国服务站:
 新疆  北京  天津  唐山  南京  杭州  徐州  上海  深圳  广州  石家庄 哈尔滨  太原
首  页
新闻中心
硬盘数据恢复
RAID 数据恢复
数据恢复培训
成功案例
技术专题
合作伙伴与代理商
硬件开盘数据恢复
开盘数据恢复
二次开盘数据恢复
SCSI、SAS开盘数据恢复
硬件开盘数据恢复成功案例
硬盘数据恢复技术专题
开盘洁净间专题
硬盘厂商大全
RAID数据恢复
RAID 数据恢复
RAID 技术专题
服务器数据恢复支持品牌
操作系统支持类型
数据库修复类型
RAID 恢复成功案例
数据恢复技术培训专题
数据恢复技术培训
师资力量
就业前景
课程设置
报名方法
合作伙伴与代理商
数据安全产品销售
存储备份解决方案专题
数据存储备份技术专题
数据安全产品商城
新闻中心  
  随着信息化进程的快速推进,政府、军队、企业的数据量越来越大,服务器的销量也是稳步上升。2007年上半年,服务器销量突破400万台,惠普、IBM、DELL、SUN、富士通、西门子等企业的服务器依然畅销全球。
  服务器存储的数据几乎都是重要的政府、军队、金融、企业等内部的重要数据,而服务器的硬件故障率及服务器硬盘的故障率注定了服务器……
                              了解更多>>

达思数据恢复带你深入硬盘内部技术二

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

如图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驱动。

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

如图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的中断请求,阻止它关闭当前不活动的连接。如果没有其他的驱动器抢夺这条总线,它会继续让驱动器独享这条总线,以点到点的形式高速传输数据。

如图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芯片组的系统中,进行大数据包的硬盘对拷报错,也正式由于这个原因造成的。

联合写入
  另外在PCI总线中设有对于联合写入的延时处理机制,它可以结合数据内部特别的"联合写入缓冲?quot;并且使用突发数据传输协议来传输他们。这样可以保证使用最为有效的传输模式来传输这些突发数据,使系统总线达到最低的占用率。
  对于一些老系统,可能无法实现联合写入功能。这要取决于整个系统的构造。例如,PCI图形显示卡就不能使用联合写入功能,最为典型的就是PCI版本的Voodoo 5。并不是每一款硬件都支持PCI总线的联合写入模式。上述我们所提到的某些型号的Creative声卡在搭配VIA芯片组时会出现声音断断续续的情况,正式由于PCI总线不能兼容联合写入模式所造成。

速度匹配
  如果硬盘内部的实际传输速度超越了实际本机传输速度,那又会发生什么现象呢?长期以来人们只会关心的硬盘的数据交换的速度和潜在的理论带宽。但是这些参数其实是微不足道的。硬盘并不会经常的需要进行这些繁重的数据传输任务,在我们普通使用硬盘打字或者浏览网页玩游戏的时候,实际的本机数据传输任务并不是十分的繁重的。在我们对电脑进行一般操作的时候,当硬盘得到数据读取指令后,磁头并不会一直不停的进行数据的读取。磁头从硬盘碟片上读取的数据都要暂时存储在硬盘的cache缓存中,当硬盘的cache缓存被填满,磁头就不再读取硬盘碟片上的数据了。系统会先把这些数据存储在本机总线适配器中,随后再进行剩下的读取操作。
  数据是以同心圆的形式存贮在硬盘的碟片上的,磁头通过在硬盘碟片上的移动来读取上面逻辑地址块的信息。这就随之带来了一个新的问题。当磁头不断的进行数据读取时,一旦cache缓存已经被填满了,那么磁头就不能继续向cache缓存传送数据了。解决的方法非常简单,硬盘的磁头会悬空停止读取数据,让硬盘碟片自传一周,等待cache缓存被清空。cache缓存会把数据写入内存中暂时保存起来。然后磁头就又可以继续刚才的位置读取数据了。

如图5
  有时候,硬盘会因为一些I/O总线的阻塞,或者是因为存储媒介的性能过快而导致本机传输速度难以与之匹配的现象。尤其在RAID 0的两个以上硬盘组成阵列的时候,硬盘的实际传输速率过快的现象会非常明显。一旦本机数据传输速率低于实际内部传输速率,硬盘内的cache缓冲区就会经常的被填满,这样硬盘的磁头就不会继续向cache缓存传送资料。磁头就会保持悬空状态,跳过对逻辑地址块的读取。直到所有的cache缓存中的数据都传送给了系统总线,一切才会回复正常。硬盘的磁头才能继续读取数据。我们可以设想一种理想的状态,当磁头在硬盘碟片上读取完一条磁道之后,刚好cache缓存基本被填满,而在硬盘磁头进行磁轨切换的时候,cache缓存中的数据又刚好被清空。硬盘不必为了等待清空cache缓存中的数据而多等上几个硬盘自传的周期。这才是最为理想的情况。
  cache缓存容量的大小要与硬盘碟片旋转一周所读取的数据速度的保持均衡,这被叫做:速度匹配。对于单一的一个驱动器来说,不需要过多的考虑速度匹配的问题。但是在一个RAID Level 0构造的硬盘存储子系统中,如果有两块硬盘同时要进行读取操作,那么这种情况就比较复杂了。在数据进行连续传输的时候,硬盘的总线中的缓存将会很快被填满。在这种RAID Level 0构造的系统中,数据的传输会受到很多限制,在两块硬盘的内部,他们在传输数据的时候会互相调配。当第一块硬盘的cache缓存被填满后,磁头会停止对逻辑地址块的读取,cache缓存中的数据开始向总线传输。而另一快硬盘此时受到第一快硬盘的影响就要暂停工作,直到第一快硬盘的cache缓存中的数据传完之后,才能进行它自己的数据传输。两块硬盘会这样一直反复的交替进行数据传输。这样每一块硬盘都要和系统内的其他硬盘进行速度匹配。

如图6
  这是使用两块Seagate Barracuda SATA-V硬盘和一块SiliconImage 3112AR的RAID卡,所组成的RAID Level 0磁盘阵列系统。他们两块硬盘联合起来的连续传输速率,要高于SATA接口和PCI总线的最大吞吐带宽。因此速度匹配在这种情况中就显得尤为重要。问题是我们在对硬盘进行测试的时候,其实在同一时刻仅有一块硬盘的磁头在扇区进行着数据的读写操作。这种读取模式要低于存储媒介的数据连续传输性能。在我们使用的HDTach这款测试软件中,程序的算法为了能够正常的进行数据的读写,两块硬盘只能交替的完成读写操作,因此HDTach也就不能反映出硬盘最为真实的成绩了。由于他们的缓存是8MB的,堆栈只能每次向系统总线提交8个1024KB的数据包。如果两块硬盘同时进行的到数据突发传送的请求,那么他们的cache缓存向总线提交的数据将相互堆叠,引起互相争夺系统总线的现象。并且会引起速度匹配的错误。而在像Windows那种实时的操作系统中,就没有这个问题。任何一个驱动器都不用减慢速度与其他驱动器相匹配。但是在这种情况下,HDTach仍然会得出相同的评测结果。
  下面我们再来作一个测试,采用一块Maxtor Diamondmax 9 160GB硬盘(编号为6Y160M0),使用升技的KV8 MAX3主板(VIA芯片组)上的SiI 3114磁盘控制芯片。我们使用WinBench 99 来测试它的连续数据传输速率。这有点像上文我们提到的RAID阵列中的速度匹配的情况。随着硬盘的连续数据读取速度越来越快,它的内部数据传输能力已经达到了总线的最大吞吐量。最终,连续数据读取能力已经在图表顶端形成一条横线。单块硬盘的内部的实际传输速度超越了实际本机传输速度(接口吞吐速率),磁盘的性能收到了很大的限制。

如图7
总结
  我推荐那些在使用VIA、SiS、Ali、NVIDIA等这些第三方芯片组的用户及时更新主板驱动补丁。这不仅仅可以提高你的磁盘效能,更可以进一步的降低处理器的资源占用率。影响本机传输速率会有很多因素。当我们已经安装了VIA的主板程序后仍然不能解决一些磁盘和PCI总线的相关问题,我们可以考虑自己调节PCI的潜伏期。高端的硬盘并不完全代表着高性能。这还需要与你实际的总线系统相匹配。只有芯片组、接口、传输模式全部匹配才能发挥出硬盘的最大效能。
  达思数据恢复机构多年以来深入研究硬盘的底层原理,形成了较有针对性的技术积累。在处理众多疑难硬盘数据恢复的案例中DST达思国际深厚的技术功底表现的淋漓尽致,在赢得用户认可的同时,也通过了市场的检验。尤其针对当今国内SCSI和SAS硬盘数据恢复技术薄弱的现象,投入大量的财力和人力进行技术研发,使此项技术保持国内领先。

达思(北京) 
400-700-0017 010-62672127
达思(新疆) 
400-700-0017 0991-2848031
达思(天津)
400-700-0017 022-58697471
达思(唐山)
400-700-0017 0315-3178457
达思(南京)
400-700-0017
达思(杭州)
400-700-0017
达思(徐州)
400-700-0017
达思(上海)
400-700-0017
达思(深圳)
400-700-0017
达思(广州)
400-700-0017
达思(太原)
400-700-0017

 法律公告 | 隐私保护 | 招聘信息 | 联系DST | 关于DST
Copyright©2007 达思数据恢复