在's profile不在PhotosBlogLists Tools Help

Blog


    10/01/2006

    RAID等级、RAID功能

      RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求。常用的RAID级别有以下几种:NRAID,JBOD,RAID0,RAID1,RAID0+1,RAID3,RAID5等。目前经常使用的是RAID5和RAID(0+1)。

    NRAID
      NRAID即Non-RAID,所有磁盘的容量组合成一个逻辑盘,没有数据块分条(no block stripping)。NRAID不提供数据冗余。要求至少一个磁盘。

    JBOD
      JBOD代表Just a Bunch of Drives,磁盘控制器把每个物理磁盘看作独立的磁盘,因此每个磁盘都是独立的逻辑盘。JBOD也不提供数据冗余。要求至少一个磁盘。

    RAID 0
      RAID 0即Data Stripping(数据分条技术)。整个逻辑盘的数据是被分条(stripped)分布在多个物理磁盘上,可以并行读/写,提供最快的速度,但没有冗余能力。要求至少两个磁盘。我们通过RAID 0可以获得更大的单个逻辑盘的容量,且通过对多个磁盘的同时读取获得更高的存取速度。RAID 0首先考虑的是磁盘的速度和容量,忽略了安全,只要其中一个磁盘出了问题,那么整个阵列的数据都会不保了。

    RAID 1
      RAID 1,又称镜像方式,也就是数据的冗余。在整个镜像过程中,只有一半的磁盘容量是有效的(另一半磁盘容量用来存放同样的数据)。同RAID 0相比,RAID 1首先考虑的是安全性,容量减半、速度不变。

    RAID 0+1
      为了达到既高速又安全,出现了RAID 10(或者叫RAID 0+1),可以把RAID 10简单地理解成由多个磁盘组成的RAID 0阵列再进行镜像。

    RAID 3和RAID 5
      RAID 3和RAID 5都是校验方式。RAID 3的工作方式是用一块磁盘存放校验数据。由于任何数据的改变都要修改相应的数据校验信息,存放数据的磁盘有好几个且并行工作,而存放校验数据的磁盘只有一个,这就带来了校验数据存放时的瓶颈。RAID 5的工作方式是将各个磁盘生成的数据校验切成块,分别存放到组成阵列的各个磁盘中去,这样就缓解了校验数据存放时所产生的瓶颈问题,但是分割数据及控制存放都要付出速度上的代价。

      按照硬盘接口的不同,RAID分为SCSI RAID,IDE RAID和SATA RAID。其中,SCSI RAID主要用于要求高性能和高可靠性的服务器/工作站,而台式机中主要采用IDE RAID和SATA RAID。

      以前RAID功能主要依靠在主板上插接RAID控制卡实现,而现在越来越多的主板都添加了板载RAID芯片直接实现RAID功能,目前主流的RAID芯片有HighPoint的HTP372和Promise的PDC20265R,而英特尔更进一步,直接在主板芯片组中支持RAID,其ICH5R南桥芯片中就内置了SATA RAID功能,这也代表着未来板载RAID的发展方向---芯片组集成RAID。

    Matrix RAID:
      Matrix RAID即所谓的“矩阵RAID”,是ICH6R南桥所支持的一种廉价的磁盘冗余技术,是一种经济性高的新颖RAID解决方案。Matrix RAID技术的原理相当简单,只需要两块硬盘就能实现了RAID 0和RAID 1磁盘阵列,并且不需要添加额外的RAID控制器,这正是我们普通用户所期望的。Matrix RAID需要硬件层和软件层同时支持才能实现,硬件方面目前就是ICH6R南桥以及更高阶的ICH6RW南桥,而Intel Application Acclerator软件和Windows操作系统均对软件层提供了支持。


      Matrix RAID的原理就是将每个硬盘容量各分成两部分(即:将一个硬盘虚拟成两个子硬盘,这时子硬盘总数为4个),其中用两个虚拟子硬盘来创建RAID0模式以提高效能,而其它两个虚拟子硬盘则透过镜像备份组成RAID 1用来备份数据。在Matrix RAID模式中数据存储模式如下:两个磁盘驱动器的第一部分被用来创建RAID 0阵列,主要用来存储操作系统、应用程序和交换文件,这是因为磁盘开始的区域拥有较高的存取速度,Matrix RAID将RAID 0逻辑分割区置于硬盘前端(外圈)的主因,是可以让需要效能的模块得到最好的效能表现;而两个磁盘驱动器的第二部分用来创建RAID1模式,主要用来存储用户个人的文件和数据。


      例如,使用两块120GB的硬盘,可以将两块硬盘的前60GB组成120GB的逻辑分割区,然后剩下两个60GB区块组成一个60GB的数据备份分割区。像需要高效能、却不需要安全性的应用,就可以安装在RAID 0分割区,而需要安全性备分的数据,则可安装在RAID 1分割区。换言之,使用者得到的总硬盘空间是180GB,和传统的RAID 0+1相比,容量使用的效益非常的高,而且在容量配置上有着更高的弹性。如果发生硬盘损毁,RAID 0分割区数据自然无法复原,但是RAID 1分割区的数据却会得到保全。


      可以说,利用Matrix RAID技术,我们只需要2个硬盘就可以在获取高效数据存取的同时又能确保数据安全性。这意味着普通用户也可以低成本享受到RAID 0+1应用模式。

     

     

    NV RAID:
      NV RAID是nVidia自行开发的RAID技术,随着nForce各系列芯片组的发展也不断推陈出新。相对于其它RAID技术而言,目前最新的nForce4系列芯片组的NV RAID具有自己的鲜明特点,主要是以下几点:


       (1)交错式RAID(Cross-Controller RAID):交错式RAID即俗称的混合式RAID,也就是将SATA接口的硬盘与IDE接口的硬盘联合起来组成一个RAID模式。交错式RAID在nForce3 250系列芯片组中便已经出现,在nForce 4系列芯片组身上该功能得到延续和增强。
       (2)热冗余备份功能:在nForce 4系列芯片组中,因支持Serial ATA 2.0的热插拔功能,用户可以在使用过程中更换损坏的硬盘,并在运行状态下重新建立一个新的镜像,确保重要数据的安全性。更为可喜的是,nForce 4的nVIDIA RAID控制器还允许用户为运行中的RAID系统增加一个冗余备份特性,而不必理会系统采用哪一种RAID模式,用户可以在驱动程序提供的“管理工具”中指派任何一个多余的硬盘用作RAID系统的热备份。该热冗余硬盘可以让多个RAID系统(如一个RAID 0和一个RAID1)共享,也可以为其中一个RAID系统所独自占有,功能类似于时下的高端RAID系统。
       (3)简易的RAID模式迁移:nForce 4系列芯片组的NV RAID模块新增了一个名为“Morphing”的新功能,用户只需要选择转换之后的RAID模式,而后执行“Morphing”操作,RAID删除和模式重设的工作可以自动完成,无需人为干预,易用性明显提高。

     
     
      
    RAID功能

      RAID是英文Redundant Array of Inexpensive Disks的缩写,中文简称为廉价磁盘冗余阵列。RAID就是一种由多块硬盘构成的冗余阵列。虽然RAID包含多块硬盘,但是在操作系统下是作为一个独立的大型存储设备出现。利用RAID技术于存储系统的好处主要有以下三种:

    1. 通过把多个磁盘组织在一起作为一个逻辑卷提供磁盘跨越功能
    2. 通过把数据分成多个数据块(Block)并行写入/读出多个磁盘以提高访问磁盘的速度
    3. 通过镜像或校验操作提供容错能力

      最初开发RAID的主要目的是节省成本,当时几块小容量硬盘的价格总和要低于大容量的硬盘。目前来看RAID在节省成本方面的作用并不明显,但是RAID可以充分发挥出多块硬盘的优势,实现远远超出任何一块单独硬盘的速度和吞吐量。除了性能上的提高之外,RAID还可以提供良好的容错能力,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。

      RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求。常用的RAID级别有以下几种:NRAID,JBOD,RAID0,RAID1,RAID0+1,RAID3,RAID5等。目前经常使用的是RAID5和RAID(0+1)。

    05/01/2006

    挖掘动力 主板DDR内存时序指南

      以DFI LanParty NF4 SLI-DR主板为例,DDR内存既然叫做双倍速率SDRAM(Dual date rate SDRSM),就是说他是SDRAM的升级换代产品。从技术上分析,DDR SDRAM最重要的改变是在界面数据传输上,其在时钟信号上升缘与下降缘时各传输一次数据,这使得DDR的数据传输速率为传统SDRAM的两倍。那么大家就应该知道了,我们所说的DDR400,DDR333,DDR266,他们的工作频率其实仅为那些数值的一半,也就是说DDR400工作频率为200MHz。

      FSB与内存频率的关系

      首先请大家看看表一:FSB(Front Side Bus:前端总线)和内存比率与内存实际运行频率的关系。

    FSB/MEM比率
    实际运行频率
    1/01
    200MHz
    1/02
    100MHz
    2/03
    133MHz
    3/04
    150MHz
    3/05
    120MHz
    5/06
    166MHz
    7/10
    140MHz
    9/10
    180MHz

      对于大多数玩家来说,FSB和内存同步,即1:1(DFI 用1/01表示)是使性能最佳的选择。而其他的设置都是异步的。同步后,内存的实际运行频率是FSBx2,所以,DDR400的内存和200MHz的FSB正好同步。如果你的FSB为240MHz,则同步后,内存的实际运行频率为240MHz x 2 = 480MHz。


    表2更详尽列出了FSB与不同速度的DDR内存之间正确的设置关系

      强烈建议采用1:1的FSB与内存同步的设置,这样可以完全发挥内存带宽的优势。

      Command Per Clock(CPC)

      可选的设置:Auto,Enable(1T),Disable(2T)

      Command Per Clock(CPC:指令比率,也有翻译为:首命令延迟),一般还被描述为DRAM Command Rate、CMD Rate等。由于目前的DDR内存的寻址,先要进行P-Bank的选择(通过DIMM上CS片选信号进行),然后才是L-Bank/行激活与列地址的选择。这个参数的含义就是指在P-Bank选择完之后多少时间可以发出具体的寻址的L-Bank/行激活命令,单位是时钟周期。显然,也是越短越好。但当随着主板上内存模组的增多,控制芯片组的负载也随之增加,过短的命令间隔可能会影响稳定性。因此当你的内存插得很多而出现不太稳定的时间,才需要将此参数调长。目前的大部分主板都会自动设置这个参数。

      该参数的默认值为Disable(2T),如果玩家的内存质量很好,则可以将其设置为Enable(1T)。

      CAS Latency Control(tCL)

      可选的设置:Auto, 1, 1.5, 2, 2.5 3, 3.5, 4, 4.5

      一般我们在查阅内存的时序参数时,如“3-4-4-8”这一类的数字序列,上述数字序列分别对应的参数是“CL-tRCD-tRP-tRAS”。这个3就是第1个参数,即CL参数。

      CAS Latency Control(也被描述为tCL、CL、CAS Latency Time、CAS Timing Delay),CAS latency是“内存读写操作前列地址控制器的潜伏时间”。CAS控制从接受一个指令到执行指令之间的时间。因为CAS主要控制十六进制的地址,或者说是内存矩阵中的列地址,所以它是最为重要的参数,在稳定的前提下应该尽可能设低。内存是根据行和列寻址的,当请求触发后,最初是tRAS(Activeto Precharge Delay),预充电后,内存才真正开始初始化RAS。一旦tRAS激活后,RAS(Row Address Strobe )开始进行需要数据的寻址。首先是行地址,然后初始化tRCD,周期结束,接着通过CAS访问所需数据的精确十六进制地址。期间从CAS开始到CAS结束就是CAS延迟。所以CAS是找到数据的最后一个步骤,也是内存参数中最重要的。

      这个参数控制内存接收到一条数据读取指令后要等待多少个时钟周期才实际执行该指令。同时该参数也决定了在一次内存突发传送过程中完成第一部分传送所需要的时钟周期数。这个参数越小,则内存的速度越快。必须注意部分内存不能运行在较低的延迟,可能会丢失数据,因此在提醒大家把CAS延迟设为2或2.5的同时,如果不稳定就只有进一步提高它了。而且提高延迟能使内存运行在更高的频率,所以需要对内存超频时,应该试着提高CAS延迟。

      该参数对内存性能的影响最大,在保证系统稳定性的前提下,CAS值越低,则会导致更快的内存读写操作。CL值为2为会获得最佳的性能,而CL值为3可以提高系统的稳定性。注意,WinbondBH-5/6芯片可能无法设为3。

      RAS# to CAS# Delay(tRCD)

      可选的设置:Auto, 0, 1, 2, 3, 4, 5, 6, 7.

      该值就是“3-4-4-8”内存时序参数中的第2个参数,即第1个4。RAS# to CAS# Delay(也被描述为:tRCD、RAS to CAS Delay、Active to CMD),表示"行寻址到列寻址延迟时间",数值越小,性能越好。对内存进行读、写或刷新操作时,需要在这两种脉冲信号之间插入延迟时钟周期。在JEDEC规范中,它是排在第二的参数,降低此延时,可以提高系统性能。建议该值设置为3或2,但如果该值设置太低,同样会导致系统不稳定。该值为4时,系统将处于最稳定的状态,而该值为5,则太保守。

      如果你的内存的超频性能不佳,则可将此值设为内存的默认值或尝试提高tRCD值。

      Min RAS# Active Timing(tRAS)

      可选的设置:Auto, 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15.

      该值就是该值就是“3-4-4-8”内存时序参数中的最后一个参数,即8。Min RAS# Active Time (也被描述为:tRAS、Active to Precharge Delay、Row Active Time、Precharge Wait State、Row Active Delay、Row Precharge Delay、RAS Active Time),表示“内存行有效至预充电的最短周期”,调整这个参数需要结合具体情况而定,一般我们最好设在5-10之间。这个参数要根据实际情况而定,并不是说越大或越小就越好。

      如果tRAS的周期太长,系统会因为无谓的等待而降低性能。降低tRAS周期,则会导致已被激活的行地址会更早的进入非激活状态。如果tRAS的周期太短,则可能因缺乏足够的时间而无法完成数据的突发传输,这样会引发丢失数据或损坏数据。该值一般设定为CAS latency + tRCD + 2个时钟周期。如果你的CAS latency的值为2,tRCD的值为3,则最佳的tRAS值应该设置为7个时钟周期。为提高系统性能,应尽可能降低tRAS的值,但如果发生内存错误或系统死机,则应该增大tRAS的值。

      如果使用DFI的主板,则tRAS值建议使用00,或者5-10之间的值。

      Row Precharge Timing(tRP)

      可选的设置:Auto, 0, 1, 2, 3, 4, 5, 6, 7

      该值就是“3-4-4-8”内存时序参数中的第3个参数,即第2个4。Row Precharge Timing (也被描述为:tRP、RAS Precharge、Precharge to active),表示"内存行地址控制器预充电时间",预充电参数越小则内存读写速度就越快。

      tRP用来设定在另一行能被激活之前,RAS需要的充电时间。tRP参数设置太长会导致所有的行激活延迟过长,设为2可以减少预充电时间,从而更快地激活下一行。然而,想要把tRP设为2对大多数内存都是个很高的要求,可能会造成行激活之前的数据丢失,内存控制器不能顺利地完成读写操作。对于桌面计算机来说,推荐预充电参数的值设定为2个时钟周期,这是最佳的设置。如果比此值低,则会因为每次激活相邻紧接着的bank将需要1个时钟周期,这将影响DDR内存的读写性能,从而降低性能。只有在tRP值为2而出现系统不稳定的情况下,将此值设定为3个时钟周期。

      如果使用DFI的主板,则tRP值建议2-5之间的值。值为2将获取最高的性能,该值为4将在超频时获取最佳的稳定性,同样的而该值为5,则太保守。大部分内存都无法使用2的值,需要超频才可以达到该参数。

      Row Cycle Time(tRC)

      可选的设置:Auto, 7-22,步幅值1。

      Row Cycle Time (tRC、RC),表示“SDRAM行周期时间”,它是包括行单元预充电到激活在内的整个过程所需要的最小的时钟周期数。

      其计算公式是:row cycle time (tRC) = minimum row active time (tRAS) + row precharge time (tRP)。因此,设置该参数之前,你应该明白你的tRAS值和tRP值是多少。如果tRC的时间过长,会因在完成整个时钟周期后激活新的地址而等待无谓的延时,而降低性能。然后一旦该值设置过小,在被激活的行单元被充分充电之前,新的周期就可以被初始化。在这种情况下,仍会导致数据丢失和损坏。因此,最好根据tRC = tRAS + tRP进行设置,如果你的内存模块的tRAS值是7个时钟周期,而tRP的值为4个时钟周期,则理想的tRC的值应当设置为11个时钟周期。

      Row Refresh Cycle Time(tRFC)

      可选的设置:Auto, 9-24,步幅值1。

      Row Refresh Cycle Time (tRFC、RFC),表示"SDRAM行刷新周期时间",它是行单元刷新所需要的时钟周期数。该值也表示向相同的bank中的另一个行单元两次发送刷新指令(即:REF指令)之间的时间间隔。tRFC值越小越好,它比tRC的值要稍高一些。

      如果使用DFI的主板,通常tRFC的值不能达到9,而10为最佳设置,17-19是内存超频建议值。建议从17开始依次递减来测试该值。大多数稳定值为tRC加上2-4个时钟周期。

      Row to Row Delay(RAS to RAS delay)(tRRD)

      可选的设置:Auto, 0-7,每级以1的步幅递增。

      Row to Row Delay,也被称为RAS to RAS delay (tRRD),表示"行单元到行单元的延时"。该值也表示向相同的bank中的同一个行单元两次发送激活指令(即:REF指令)之间的时间间隔。tRRD值越小越好。

      延迟越低,表示下一个bank能更快地被激活,进行读写操作。然而,由于需要一定量的数据,太短的延迟会引起连续数据膨胀。于桌面计算机来说,推荐tRRD值设定为2个时钟周期,这是最佳的设置,此时的数据膨胀可以忽视。如果比此值低,则会因为每次激活相邻紧接着的bank将需要1个时钟周期,这将影响DDR内存的读写性能,从而降低性能。只有在tRRD值为2而出现系统不稳定的情况下,将此值设定为3个时钟周期。

      如果使用DFI的主板,则tRRD值为00是最佳性能参数,4超频内存时能达到最高的频率。通常2是最合适的值,00看上去很奇怪,但有人也能稳定运行在00-260MHz。

      Write Recovery Time(tWR)

       可选的设置:Auto, 2, 3。

      Write Recovery Time (tWD),表示"写恢复延时"。该值说明在一个激活的bank中完成有效的写操作及预充电前,必须等待多少个时钟周期。这段必须的时钟周期用来确保在预充电发生前,写缓冲中的数据可以被写进内存单元中。同样的,过低的tWD虽然提高了系统性能,但可能导致数据还未被正确写入到内存单元中,就发生了预充电操作,会导致数据的丢失及损坏。

      如果你使用的是DDR200和266的内存,建议将tWR值设为2;如果使用DDR333或DDR400,则将tWD值设为3。

      如果使用DFI的主板,则tWR值建议为2。

      Write to Read Delay(tWTR)

      可选的设置:Auto, 1, 2。

      Write to Read Delay (tWTR),表示"读到写延时"。三星公司称其为“TCDLR (last data in to read command)”,即最后的数据进入读指令。它设定向DDR内存模块中的同一个单元中,在最后一次有效的写操作和下一次读操作之间必须等待的时钟周期。

      tWTR值为2在高时钟频率的情况下,降低了读性能,但提高了系统稳定性。这种情况下,也使得内存芯片运行于高速度下。换句话说,增加tWTR值,可以让内容模块运行于比其默认速度更快的速度下。如果使用DDR266或DDR333,则将tWTR值设为1;如果使用DDR400,则也可试着将tWTR的值设为1,如果系统不稳定,则改为2。

      Refresh Period(tREF)

      可选的设置:Auto, 0032-4708,其步进值非固定。

      Refresh Period (tREF),表示“刷新周期”。它指内存模块的刷新周期。

      先请看不同的参数在相同的内存下所对应的刷新周期(单位:微秒,即:一百万分之一秒)。?号在这里表示该刷新周期尚无对应的准确数据。

      1552= 100mhz(?.??s)
      2064= 133mhz(?.??s)
      2592= 166mhz(?.??s)
      3120= 200mhz(?.??s)
      ---------------------
      3632= 100mhz(?.??s)
      4128= 133mhz(?.??s)
      4672= 166mhz(?.??s)
      0064= 200mhz(?.??s)
      ---------------------
      0776= 100mhz(?.??s)
      1032= 133mhz(?.??s)
      1296= 166mhz(?.??s)
      1560= 200mhz(?.??s)
      ---------------------
      1816= 100mhz(?.??s)
      2064= 133mhz(?.??s)
      2336= 166mhz(?.??s)
      0032= 200mhz(?.??s)
      ---------------------
      0388= 100mhz(15.6us)
      0516= 133mhz(15.6us)
      0648= 166mhz(15.6us)
      0780= 200mhz(15.6us)
      ---------------------
      0908= 100mhz(7.8us)
      1032= 133mhz(7.8us)
      1168= 166mhz(7.8us)
      0016= 200mhz(7.8us)
      ---------------------
      1536= 100mhz(3.9us)
      2048= 133mhz(3.9us)
      2560= 166mhz(3.9us)
      3072= 200mhz(3.9us)
      ---------------------
      3684= 100mhz(1.95us)
      4196= 133mhz(1.95us)
      4708= 166mhz(1.95us)
      0128= 200mhz(1.95us)

      如果采用Auto选项,主板BIOS将会查询内存上的一个很小的、名为“SPD”(Serial Presence Detect )的芯片。SPD存储了内存条的各种相关工作参数等信息,系统会自动根据SPD中的数据中最保守的设置来确定内存的运行参数。如过要追求最优的性能,则需手动设置刷新周期的参数。一般说来,15.6us适用于基于128兆位内存芯片的内存(即单颗容量为16MB的内存),而7.8us适用于基于256兆位内存芯片的内存(即单颗容量为32MB的内存)。注意,如果tREF刷新周期设置不当,将会导致内存单元丢失其数据。

      另外根据其他的资料显示,内存存储每一个bit,都需要定期的刷新来充电。不及时充电会导致数据的丢失。DRAM实际上就是电容器,最小的存储单位是bit。阵列中的每个bit都能被随机地访问。但如果不充电,数据只能保存很短的时间。因此我们必须每隔15.6us就刷新一行。每次刷新时数据就被重写一次。正是这个原因DRAM也被称为非永久性存储器。一般通过同步的RAS-only的刷新方法(行刷新),每行每行的依次刷新。早期的EDO内存每刷新一行耗费15.6us的时间。因此一个2Kb的内存每列的刷新时间为15.6?s x2048行=32ms。

      如果使用DFI的主板,tREF和tRAS一样,不是一个精确的数值。通常15.6us和3.9us都能稳定运行,1.95us会降低内存带宽。很多玩家发现,如果内存质量优良,当tREF刷新周期设置为3120= 200mhz(?.??s)时,会得到最佳的性能/稳定性比。

      Write CAS# Latency(tWCL)

       可选的设置:Auto, 1-8

      Write CAS Latency (tWCL),表示“写指令到行地址控制器延时”。SDRAM内存是随机访问的,这意味着内存控制器可以把数据写入任意的物理地址,大多数情况下,数据通常写入距离当前列地址最近的页面。tWCL表示写入的延迟,除了DDRII,一般可以设为1T,这个参数和大家熟悉的tCL(CAS-Latency)是相对的,tCL表示读的延迟。

      DRAM Bank Interleave

      可选的设置:Enable, Disable

      DRAM Bank Interleave,表示“DRAM Bank交错”。这个设置用来控制是否启用内存交错式(interleave)模式。Interleave模式允许内存bank改变刷新和访问周期。一个bank在刷新的同时另一个bank可能正在访问。最近的实验表明,由于所有的内存bank的刷新周期都是交叉排列的,这样会产生一种流水线效应。虽然interleave模式只有在不同bank提出连续的的寻址请求时才会起作用,如果处于同一bank,数据处理时和不开启interleave一样。CPU必须等待第一个数据处理结束和内存bank的刷新,这样才能发送另一个地址。目前所有的内存都支持interleave模式,在可能的情况下我们建议打开此项功能。

      对于DFI主板来说,任何情况下该设置都应该是Enable,可以增大内存的带宽。Disable对将减少内存的带宽,但使系统更加稳定。

      DQS Skew Control

      可选的设置:Auto, Increase Skew, Decrease Skew

      DQS Skew Control,表示“DQS时间差控制”。稳定的电压可以使内存达到更高的频率,电压浮动会引起较大的时间差(skew),加强控制力可以减少skew,但相应的DQS(数据控制信号)上升和下降的边缘会出现电压过高或过低。一个额外的问题是高频信号会引起追踪延迟。DDR内存的解决方法是通过简单数据选通脉冲来增加时钟推进。DDRII引进了更先进的技术:双向的微分I/O缓存器来组成DQS。微分表示用一个简单脉冲信号和一个参考点来测量信号,而并非信号之间相互比较。理论上提升和下降信号应该是完全对成的,但事实并非如此。时钟和数据的失谐就产生了DQ-DQS skew。

      如下图所示。

      对于DFI主板来说,建议设置为Increase Skew可以提升性能,而Decrease Skew在牺牲一定性能的情况下,可以增加稳定性。

      DQS Skew Value

      可选的设置:Auto, 0-255, 步进值为1。

      当我们开启了DQS skew control后,该选项用来设定增加或减少的数值。这个参数对系统的影响并不很敏感。 对于DFI主板来说,开启"Increase Skew"选项后,可以将该值设为50-255之间的值。值越大,表示速度越快。

      DRAM Drive Strength

      可选的设置:Auto, 1-8 ,步进值为1。

      DRAM Drive Strength(也被称为:driving strength),表示“DRAM驱动强度”。这个参数用来控制内存数据总线的信号强度,数值越高代表信号强度越高,增加信号强度可以提高超频的稳定性。但是并非信号强度高就一定好,三星的TCCD内存芯片在低强度信号下性能更佳。

      如果设为Auto,系统通常会设定为一个较低的值。对使用TCCD的芯片而言,表现会好一些。但是其他的内存芯片就并非如此了,根据在DFI NF4主板上调试和测试的结果,1、3、5 、7都是性能较弱的参数,其中1是最弱的。2、4、6、8是正常的设置,8提供了最强的信号强度。TCCD建议参数为3、5或7,其他芯片的内存建议设为6或8。

      DFI用户建议设置:TCCD建议参数为3、5、7,其他芯片的内存建议设为6或8。

      DRAM Data Drive Strength

      可选的设置:Auto, 1-4 ,步进值为1。

      DRAM Data Drive Strength表示“DRAM数据驱动强度”。这个参数决定内存数据总线的信号强度,数值越高代表信号强度越高。它主要用于处理高负荷的内存读取时,增加DRAM的驾驭能力。因此,如果你的系统内存的读取负荷很高,则应将该值设置为高(Hi/High)。它有助于对内存数据总线超频。但如果你并没有超频,提升内存数据线的信号强度,可以提高超频后速度的稳定性。此外,提升内存数据总线的信号强度并不能增强SDRAM DIMM的性能。因此,除非你内存有很高的读取负荷或试图超频DIMM,建议设置DRAM Data Drive Strength的值为低(Lo/Low)。

      要处理大负荷的数据流时,需要提高内存的驾驭能力,你可以设为Hi或者High。超频时,调高此项参数可以提高稳定性。此外,这个参数对内存性能几乎没什么影响。所以,除非超频,一般用户建议设为Lo/Low。

       DFI用户建议设置:普通用户建议使用level 1或3,如果开启了CPC,可能任何高于1的参数都会不稳定。部分用户开启CPC后能运行在3。更多的人关闭CPC后2-4都能够稳定运行。当然最理想的参数是开启CPC后设为level4。

      Strength Max Async Latency

      可选的设置:Auto, 0-15 ,步进值为1。

      Strength Max Async Latency目前还没能找到任何关于此项参数的说明,不知道其功能。感觉网友的经验,在进行Everest的LatencyTest时,可以看出一些差别。在我的BH-6上,参数从8ns到7ns在Latency Test的测试结果中有1ns的区别。从7ns调低6ns后,测试结果又减少了2ns。

      DFI主板建议设置:BIOS中的默认值为7ns,建议大家在5-10之间调节。6ns对内存的要求就比较高了,建议使用BH-5和UTT芯片的用户可以尝试一下,但对TCCD不适用。7ns的要求低一些,UTT和BH-5设为7n比较适合超频。8ns对UTT和BH-5就是小菜一碟,8ns时TCCD通常能稳定运行在DDR600,如果想超频到DDR640就必须设为9ns甚至更高了。

      Read Preamble Time

      可选的设置:Auto, 2.0-9.5,步进值为0.5。

      Read Preamble Time这个参数表示DQS(数据控制信号)返回后,DQS又被开启时的时间间隔。Samsung早期的显存资料显示,这个参数是用以提升性能的。DQS信号是双向的,无论从图形控制器到DDR SGRAM还是从DDR SGRAM到图形控制器都起作用。

      DFI主板建议设置:BIOS中的该值设置为Auto时,实际上此时执行的是默认值5.0。建议大家在4.0-7.0之间调节,该值越小越好。

      Idle Cycle Limit

      可选的设置:Auto,0-256,无固定步进值。

      Idle Cycle Limit这个参数表示“空闲周期限制”。这个参数指定强制关闭一个也打开的内存页面之前的memclock数值,也就是读取一个内存页面之前,强制对该页面进行重充电操作所允许的最大时间。

      DFI主板建议设置:BIOS中的该值设置为Auto时,实际上此时执行的是默认值256。质量好的内存可以尝试16-32,华邦(WINBOND)BH-5颗粒的产品能稳定运行在16。Idle Cycle Limit值越低越好。

      Dynamic Counter

      可选的设置:Auto, Enable, Disable。

      Dynamic Counter这个参数表示“动态计数器”。这个参数指定开启还是关闭动态空闲周期计数器。如果选择开启(Enable),则会每次进入内存页表(Page Table)就强制根据页面冲突和页面错误(conflict/page miss:PC/PM)之间通信量的比率而动态调整Idle Cycle Limit的值。这个参数和前一个Idle Cycle Limit是密切相关的,启用后会屏蔽掉当前的Idle Cycle Limit,并且根据冲突的发生来动态调节。

      DFI主板建议设置:BIOS中的该值设置为Auto和关闭和一样的。打开该设置可能会提升性能,而关闭该设置,可以使系统的更稳定。

      R/W Queue Bypass

      可选的设置:Auto, 2x, 4x, 8x, 16x。

      R/W Queue Bypass表示“读/写队列忽略”。这个参数指定在优化器被重写及DCI (设备控制接口:Device Control Interface)最后一次的操作被选定前,忽略操作DCI的读/写队列的时间。这个参数和前一个Idle Cycle Limit是相类似,只是优化器影响内存中的读/写队列。

      DFI主板建议设置:BIOS中的该值默认为16x。如果你的系统稳定,则保留该值。但如果不稳定,或者要超频,就只有降低到8x甚至更低的4x或2x。该值越大,则说明系统性能越强,该值越小,则会是系统越稳定。

      Bypass Max

      可选的设置:Auto, 0x-7x, 步进值为1。

      Bypass Max表示“最大忽略时间”。这个参数表示优化器选择否决之前,最后进入DCQ(Dependence Chain Queue)的可以被优化器忽略的时间。仔细研究后,我觉得这个参数会影响内存到CPU内存控制器的连接。

      DFI主板建议设置:BIOS中的该值默认为7x。建议4x或7x,两者都提供了很好的性能及稳定性。如果你的系统稳定,则保留该值。但如果不稳定,或者要超频,就只有降低到8x甚至更低的4x或2x。该值越大,则说明系统性能越强,该值越小,则会是系统越稳定。

      32 Byte Granulation

      可选的设置:Auto, Disable (8burst), Enable (4burst)。

      32 Byte Granulation表示"32位颗粒化"。当该参数设置为关闭(Disable)时,就可以选择突发计数器,并在32位的数据存取的情况下,最优化数据总线带宽。因此该参数关闭后可以达到最佳性能的目的。

      DFI主板建议设置:绝大多数情况下,建议选择Disable(8burst)选项。开启Enable (4burst)可以使系统更稳定一些。

      第三部分 超强的内存芯片

      上述参数的设置不可能适用于每位用户。不同的内存芯片的电压、参数都不同,所以超频能力也不一样。下面给出超频能力很强的一些内存芯片,建议大家在选购时多加以留意。

      Winbond(华邦)系列颗粒::BH-5、CH-5、BH-6、CH-6 、UTT;
      Hynix(现代)系列颗粒:D43、D5;
      Micron(镁光)系列颗粒:-5B C、-5B G;
      Infineon(英飞凌)系列颗粒:B5、BT-6、BT-5、CE-5、BE-5;
      Samsung(三星)系列颗粒:TCB3、TCCC、TCC4、TCC5、TCCD。

    30/12/2005

    服务器内存

           服务器内存也是内存(RAM),它与普通PC(个人电脑)机内存在外观和结构上没有什么明显实质性的区别,主要是在内存上引入了一些新的特有的技术,如ECC、ChipKill、热插拔技术等,具有极高的稳定性和纠错性能。

        服务器内存主要技术:

        (1)ECC

        在普通的内存上,常常使用一种技术,即Parity,同位检查码(Parity check codes)被广泛地使用在侦错码(error detectioncodes)上,它们增加一个检查位给每个资料的字元(或字节),并且能够侦测到一个字符中所有奇(偶)同位的错误,但Parity有一个缺点,当计算机查到某个Byte有错误时,并不能确定错误在哪一个位,也就无法修正错误。基于上述情况,产生了一种新的内存纠错技术,那就是ECC,ECC本身并不是一种内存型号,也不是一种内存专用技术,它是一种广泛应用于各种领域的计算机指令中,是一种指令纠错技术。ECC的英文全称是“ Error Checking and Correcting”,对应的中文名称就叫做“错误检查和纠正”,从这个名称我们就可以看出它的主要功能就是“发现并纠正错误”,它比奇偶校正技术更先进的方面主要在于它不仅能发现错误,而且能纠正这些错误,这些错误纠正之后计算机才能正确执行下面的任务,确保服务器的正常运行。之所以说它并不是一种内存型号,那是因为并不是一种影响内存结构和存储速度的技术,它可以应用到不同的内存类型之中,就象前讲到的“奇偶校正”内存,它也不是一种内存,最开始应用这种技术的是EDO内存,现在的SD也有应用,而ECC内存主要是从SD内存开始得到广泛应用,而新的DDR、RDRAM也有相应的应用,目前主流的ECC内存其实是一种SD内存。

        (2)Chipkill

        Chipkill技术是IBM公司为了解决目前服务器内存中ECC技术的不足而开发的,是一种新的ECC内存保护标准。我们知道ECC内存只能同时检测和纠正单一比特错误,但如果同时检测出两个以上比特的数据有错误,则一般无能为力。目前ECC技术之所以在服务器内存中广泛采用,一则是因为在这以前其它新的内存技术还不成熟,再则在目前的服务器中系统速度还是很高,在这种频率上一般来说同时出现多比特错误的现象很少发生,正因为这样才使得ECC技术得到了充分地认可和应用,使得ECC内存技术成为几乎所有服务器上的内存标准。

        但随着基于Intel处理器架构的服务器的CPU性能在以几何级的倍数提高,而硬盘驱动器的性能同期只提高了少数的倍数,因此为了获得足够的性能,服务器需要大量的内存来临时保存CPU上需要读取的数据,这样大的数据访问量就导致单一内存芯片上每次访问时通常要提供4(32位)或8(64位)比特以上的数据,一次性读取这么多数据,出现多位数据错误的可能性会大大地提高,而ECC又不能纠正双比特以上的错误,这样就很可能造成全部比特数据的丢失,系统就很快崩溃了。IBM的Chipkill技术是利用内存的子结构方法来解决这一难题。内存子系统的设计原理是这样的,单一芯片,无论数据宽度是多少,只对于一个给定的ECC识别码,它的影响最多为一比特。举个例子来说明的就是,如果使用4比特宽的DRAM,4比特中的每一位的奇偶性将分别组成不同的ECC识别码,这个ECC识别码是用单独一个数据位来保存的,也就是说保存在不同的内存空间地址。因此,即使整个内存芯片出了故障,每个ECC识别码也将最多出现一比特坏数据,而这种情况完全可以通过ECC逻辑修复,从而保证内存子系统的容错性,保证了服务器在出现故障时,有强大的自我恢复能力。采用这种内存技术的内存可以同时检查并修复4个错误数据位,服务器的可靠性和稳定得到了更加充分的保障。

        (3)Register

        Register即寄存器或目录寄存器,在内存上的作用我们可以把它理解成书的目录,有了它,当内存接到读写指令时,会先检索此目录,然后再进行读写操作,这将大大提高服务器内存工作效率。带有Register的内存一定带Buffer(缓冲),并且目前能见到的Register内存也都具有ECC功能,其主要应用在中高端服务器及图形工作站上,如IBM Netfinity 5000。

        服务器内存典型类型

        目前服务器常用的内存有SDRAM和DDR两种内存。

        (1)SDRAM
        (2)DDR SDRAM

        以下是两者的对比图表:



       由于服务器内存在各种技术上相对兼容机来说要严格得多,它强调的不仅是内存的速度,而是它的内在纠错技术能力和稳定性。所以在外频上目前来说只能是紧跟兼容机或普通台式内存之后。目前台式机的外频一般来说已到了150MHz以上的时代,但133外频仍是主流。而服务器由于受到整个配件外频和高稳定性的要求制约,主流外频还是100MHz,但133MHz外频已逐步在各档次服务器中推行,在选购服务器时当然最好选择133MHz外频的了!内存、其它配件也一样,要尽量同步进行,否则就会影响整个服务器的性能。目前主要的服务器内存品牌主要有Kingmax、kinghorse、现代、三星、kingstone、IBM、VIKING、NEC等,但主要以前面几种在市面上较为常见,而且质量也能得到较好的保障。

    28/10/2005

    注解高端UNIX服务器之技术

    注解高端UNIX服务器之技术

    作 者: 陈志红、海纳

    转载自:赛迪网技术天地

    对于服务器而言(不管是PC服务器,还是UNIX服务器),单纯地提高单个处理器的运算能力和处理能力正在变得越来越难,虽然许多制造商从材料、工艺和设计等方面进行了不懈的努力,近期内仍然使得CPU保持着高速的增长势态,但高频之下的高功耗所引起的电池容量问题和散热问题等负面效应,以及这些负面效应对整机系统产生的电磁兼容性问题,又反过来将CPU运算能力的提升推到了暮年。显然,提高单个处理器速度和性能已是强弩之末,而研发多个 CPU的并行处理技术,才是真正提高现代服务器处理能力和运算速度的有效途径。这也正是多处理器服务器不仅是UNIX服务器的专利,而且也是已经在PC服务器中普遍采用的原因。目前,业界比较关注的并行处理技术主要有SMP技术、MPP技术、COMA技术、集群技术和NUMA技术等。

      1.SMP技术
      SMP(对称多处理—Symmetrical MultiProcessing)技术是相对非对称多处理技术而言的、应用十分广泛的并行技术。在这种架构中,多个处理器运行操作系统的单一复本,并共享内存和一台计算机的其他资源。所有的处理器都可以平等地访问内存、I/O和外部中断。

      在非对称多处理系统中,任务和资源由不同处理器进行管理,有的CPU只处理I/O,有的CPU只处理操作系统的提交任务,显然非对称多处理系统是不能实现负载均衡的。在对称多处理系统中,系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用处理器之上。

      目前,大多数SMP系统的CPU是通过共享系统总线来存取数据,实现对称多处理的。如某些RISC服务器厂商使用Crossbar或Switch方式连接多个CPU,虽然性能和可扩展性优于Intel架构,但SMP的扩展性仍有限。

      在SMP系统中增加更多处理器的难点是系统不得不消耗资源来支持处理器抢占内存,以及内存同步两个主要问题。抢占内存是指当多个处理器共同访问内存中的数据时,它们并不能同时去读写数据,虽然一个CPU正读一段数据时,其他CPU可以读这段数据,但当一个CPU正在修改某段数据时,该 CPU将会锁定这段数据,其他CPU要操作这段数据就必须等待。

      显然,CPU越多,这样的等待问题就越严重,系统性能不仅无法提升,甚至下降。为了尽可能地增加更多的CPU,现在的SMP系统基本上都采用增大服务器Cache容量的方法来减少抢占内存问题,因为Cache是CPU的“本地内存”,它与CPU之间的数据交换速度远远高于内存总线速度。又由于Cache支持不共享,这样就不会出现多个CPU抢占同一段内存资源的问题了,许多数据操作就可以在CPU内置的Cache或CPU外置的 Cache中顺利完成。

      然而,Cache的作用虽然解决了SMP系统中的抢占内存问题,但又引起了另一个较难解决的所谓“内存同步”问题。在SMP系统中,各CPU通过Cache访问内存数据时,要求系统必须经常保持内存中的数据与Cache中的数据一致,若Cache的内容更新了,内存中的内容也应该相应更新,否则就会影响系统数据的一致性。由于每次更新都需要占用CPU,还要锁定内存中被更新的字段,而且更新频率过高又必然影响系统性能,更新间隔过长也有可能导致因交叉读写而引起数据错误,因此,SMP的更新算法十分重要。目前的SMP系统多采用侦听算法来保证CPU Cache中的数据与内存保持一致。Cache越大,抢占内存再现的概率就越小,同时由于Cache的数据传输速度高,Cache的增大还提高了CPU的运算效率,但系统保持内存同步的难度也很大。

      在硬件方面,SMP可以在UltraSPARC、SPARCserver、Alpha以及PowerPC架构上实现,也可以利用包括486以上所有Intel芯片来实现。

      2.集群技术
      集群(Cluster)技术是近几年兴起的发展高性能计算机的一项技术。它是一组相互独立的计算机,利用高速通信网络组成一个单一的计算机系统,并以单一系统的模式加以管理。其出发点是提供高可靠性、可扩充性和抗灾难性。一个集群包含多台拥有共享数据存储空间的服务器,各服务器通过内部局域网相互通信。当一台服务器发生故障时,它所运行的应用程序将由其他服务器自动接管。在大多数模式下,集群中所有的计算机拥有一个共同的名称,集群内的任一系统上运行的服务都可被所有的网络客户使用。采用集群系统通常是为了提高系统的稳定性和网络中心的数据处理能力及服务能力。

      常见集群技术有:

      (1)服务器镜像技术

      (2)应用程序错误接管集群技术

      错误接管集群技术是将建立在同一个网络里的两台或多台服务器通过集群技术连接起来,集群节点中的每台服务器各自运行不同的应用,具有自己的广播地址,对前端用户提供服务,同时每台服务器又监测其他服务器的运行状态,为指定服务器提供热备份服务。

      错误接管集群技术通常需要共享外部存储设备—磁盘阵列柜,两台或多台服务器通过SCSI电缆或光纤与磁盘阵列柜相连,数据都存放在磁盘阵列柜上。这种集群系统中通常是两个节点互为备份的,而不是几台服务器同时为一台服务器备份,集群系统中的节点通过串口、共享磁盘分区或内部网络来互相监测对方的心跳。

      错误接管集群技术经常用在数据库服务器、MAIL服务器等的集群中。这种集群技术由于采用共享存储设备,所以增加了外设费用。它最多可以实现32台机器的集群,极大地提高了系统的可用性及可扩展性。目前在提高系统的可用性方面用得比较广泛的是应用程序错误接管技术,即我们通常所采用的双机通过SCSI电缆共享磁盘阵列的集群技术。

      (3)容错集群技术

      容错集群技术的一个典型的应用即容错机,在容错机中,每一个部件都具有冗余设计。容错集群技术的实现往往需要特殊的软硬件设计,因此成本很高,但是容错系统最大限度地提高了系统的可用性,是财政、金融和安全部门的最佳选择。

      3.NUMA技术
      现今的64位UNIX并行计算服务器可分为两类:分布式共享存储结构(DSM)和集群系统。非均匀存储访问(NUMA)是一种并行模型,属于DSM这一类。NUMA的物理内存分布在不同节点上,在一个处理器存取远程节点的数据,比存取同一点的局部数据“路径”远一些,时间长一些,所以是非均匀存储访问。

      对称多处理也是一种共享存储器的多处理机结构。它的单一寻址空间、简单的编程方式、操作方便是其容易普及的主要原因。大规模并行处理(MPP)属于集群系统这一类体系结构,它的优势是可扩展性好,但需要并行编程和并行编译,使用不便。NUMA系统把SMP与集群的优势结合在一起,它既有SMP的可编程性,又具有集群的可扩展性。实际上,这一“优势的结合”实为一种折衷,其中关键是寻求结合的途径并确定结合点。

      NUMA3系统架构的由来
      NUMA(非均匀存储器存取结构-Non Uniform Memory Access Architecture)是在八十年代后期作为斯坦福大学的一个研究项目诞生的。1995年,SGI与斯坦福大学DASH项目组一起设计出了第一代 NUMA系统;1996年,SGI推出了第二代NUMA系统,该系统的处理器数目可以从32个一直扩展到512个,并且系统带宽可随处理器数目增加而线性扩展;为了进一步扩展NUMA架构的功能和提高灵活性,SGI在2000年秋季推出了第三代NUMA系统,简称NUMA3系统。新系统可以使系统的计算能力、内存容量、外存容量、图形性能及联网能力独立地扩展,NUMA3系统具有多功能性、模块化、灵活性等三大特点。用户可以根据需要量体裁衣地配置系统,因而投资可以得到充分保护。

      第三代NUMA系统采用不同的功能模块(Brick)构成,这些模块比第二代NUMA机的模块小,功能更专一、更具可扩展性,而且尺寸标准化,这就进一步增加了系统的灵活性。

      在第三代NUMA服务器中,采用性能更好的交叉开关Bedrock,所有的处理器和存储器通过Bedrock连接在一起。这些处理器、存储器和交叉开关的结合组成了称为NUMAlink的互联结构。另外,在第三代NUMA服务器中采用了更先进的路由芯片,通过使用特殊的光缆提供具有高带宽和极低延迟的互联网络,路由芯片所有的Bedrock交叉开关连接起来形成一个单一的、连续的达1TB的存储空间。处理器和本地以及远程存储器之间的通信宽带(双向)由原来的1.6GBps提高到3.2GBps。另外,电源采用N+1的冗余方式,因此可靠性也进一步提高。

      在NUMA体系结构中,每个处理器与自已的本地存储器和高速缓存相连,多个处理器通过处理器、存储器互联网络相连。处理器还通过处理器、I/O网络访问共享的I/O和外围设备。至于处理器之间的通信则通过可选的处理器之间的通信网络来实现。NMUA技术在科学与工程计算领域具有不可替代的地位,在联机事务处理(OLTP)、决策支持服务(DSS)和Intranet以及Internet中的地位也越来越重要。目前,NUMA并行机的处理器数目可达到512个,且带宽可随处理器数目基本上呈线性扩展。这样大的处理器数,使单一系统映像的NUMA机足以覆盖绝大多数的应用。首先,由于它具有与SMP相同的编程模式,因此在科学与工程计算领域具有不可替代的地位;其次,由于它具有共享内存和良好的可扩展性优势,所以能很好适应企业数据中心的多种应用。

      今天,NUMA系统能够运行世界上一些最大的UNIX数据库应用,而且正被广泛接受为电子商务的主流技术,包括处理功能、I/O的大规模可扩展性、高可用性、工作负荷和资源管理的广泛灵活性,而且无需改变SMP编程模型。

      存储一致性与ccNUMA
      在NUMA并行机中,虽然存储器在物理上被分配到各节点中,但可被系统内所有处理器访问或共享。存储一致性问题是由于多个处理器共享同一个存储单元而引起的。SGI采用高速缓存一致性(Cache Coherent)技术来解决存储一致性问题,这就是“ccNUMA”并行机名称的由来。

      在ccNUMA系统中,每个CPU有一个私用高速缓冲存储器。为了得到较好的性能,CPU经常在它的高速缓存中取指令及存储数据。在这种系统中,一个存储器地址的内容可以有许多独立的拷贝给各个CPU。如果每个CPU指向同一个存储器地址,则每个CPU的高速缓存将得到该地址的内容拷贝。但是当一个CPU修改该地址的内容后,必须阻止其他各个CPU使用当前已经“过时”的数据,这就是所谓高速缓存一致性问题。那么如何保证所有高速缓存能反映存储器的真实情况呢?

      高速缓存一致性不是用软件来实现,它必须用硬件来管理。高速缓存一致性问题也不是用CPU来实现,而是用Hub芯片中的部分辅助线路来实现。为了提高系统的带宽和规模可伸缩性,在采用ccNUMA体系结构的服务器中,不采用基于总线的广播方法,而是采用基于目录的高速缓存一致性方案。任何时候,当一个节点请求访问存储器中某一Cache行时,它的集线器就启动曾经访问过该行节点的高速缓存,并把Cache行的存储器数据拷贝到这一节点的高速缓存中。当存储器中的Cache行未被独占时,其他各节点就可按同样方式通过互联网络从高速缓存中读取该行数据。当一个CPU要修改一个 Cache行时,它必须取得独占权。为此,集线器从目标行的状态位中进行检索,并发送一个无效信息给对该行数据作过拷贝的每个节点,在目录存储器中设置了对内容作修改的节点的编号。当一个CPU要读一个Cache行,且该行被独占时,集线器就要求该节点对这个Cache行作拷贝。其他节点则通过互联网络从拥有独占权节点的高速缓存中拷贝该Cache行的最新信息。如果两个节点要求同时访问某一Cache行时,则有协议来保证某个节点去访问该Cache行。

      ccNUMA结构的服务器在性能、灵活性、可用性方面都能适合用户多种应用的要求,它已成为当今互联网经济时代非常卓越的 Internet/Web服务器,特别是在宽带因特网中作为多媒体应用的核心服务器。与集群不同的是,集群采用一种松散的结合方式,在几台机器之间相互通信,内部交换时间长、消耗大,而且把几台机器作为一个系统管理,势必增加了管理上的难度。而ccNUMA计算机则不同,无论它内部有多少个处理器,对用户来说,它也仅仅是简单的一台计算机。

      总而言之,ccNUMA克服了SMP和集群的某些弊端,在他们不能施展才能的地方发挥了作用。

      模块化结构
      模块化服务器主要包括计算模块、I/O模块和海量存储器模块。这些模块协同工作,构成一个模块化服务器系统。在一个模块化服务器系统中,可以分别对每一个模块进行升级、故障查找,或用新模块替换旧模块,同类模块也可以随时加入到模块化服务器中,以便对系统进行扩展。

      模块化服务器的最大好处之一,就是可以保护客户的投资。模块化服务器是一种可伸缩的服务器,客户可以随着业务需要,通过向服务器中添加各种模块,扩展他们的服务器系统;另一个显著优点是维护管理十分方便。模块化服务器增强了系统的可用性和容错性。从高性能多处理器计算机体系结构观点来看,ccNUMA体系结构,把多个处理器通过路由器光纤互联在一起,系统带宽可随系统规模扩大而增加,从而克服了基于总线的SMP体系结构所造成的瓶颈。 ccNUMA结构采用超立方体的多维互联特性,加上模块化计算所带来的灵活性,使系统的可伸缩性达到了前所未有的水平,同时节省了费用。因此,模块化的 NUMA服务器在灵活性和经济性方面达到了一个新境界。

      硬件分区
      硬件分区,是将一台服务器的硬件分割成多个分区的体系结构。将服务器配置的处理器、内存和I/O控制器等硬件资源分配给多个分区,让各分区上运行不同的OS,也就是提供“分区功能”。利用系统的硬件分区能力,系统可同时为多种不同操作系统提供支持,从而满足客户对相同物理硬件不断增长的需求。系统分区最初是静态的,当资源从一个分区移到另一个分区时,这两个分区中的应用和操作系统需要停止,在操作控制台对系统重新配置后,应用和操作系统才可以重新启动。随着操作系统进一步完善,操作系统在支持热插拔和热添加能力的同时,也为动态分区提供了所需要的支持基础,这就是说,资源可以在各个分区之间移动,而不会影响这一分区中的应用运行。

    长久以来一直存在着一个话题:UNIX服务器能否替代专有系统。这同样是一个见仁见智的问题,但是不容忽视的事实是,各UNIX厂商在高端产品不断推陈出新,增加产品的技术内涵,既以达到并超过大型主机为目标,又作为自己UNIX技术的集中体现,与其他UNIX厂商竞争。

      当然, UNIX技术的发展决不能仅限于性能和功能上。在安全性和管理性上,UNIX服务器有不少需要向主机学习的地方。但是,高端UNIX系统已经基本可以满足主机用户的要求,并且在各厂家的推动下更快地进步。UNIX占据主机的部分市场也将是不可避免的。这就和NT服务器和低端UNIX服务器的竞争有些类似。

      随着市场竞争的日益加剧和IT企业的大规模兼并,曾经出现的几十家UNIX厂商竞相角逐的景象已不复存在。目前仅剩下几家UNIX厂商,他们把持了UNIX服务器的市场和技术发展趋势。下面我们就看看几款有代表性的产品。

      HP 9000 Superdome高端UNIX服务器

    Superdome服务器主要面向大型互联网企业、互联网服务提供商,以及开发电子商务战略,需要处理大量数据的企业。

      Superdome是惠普公司在继V系列之后推出的第一款支持64个及可无限扩展微处理器的服务器,可以同时支持PA-RISC和 IA64处理器。64个CPU的一款可支持256GB内存,I/O插槽最多可达192个。Superdome提前做好了开放系统的集成工作,可在同一台系统上分区,运行HP UX-11i、Linux、MPE和Windows NT;性能可以通过硬件物理分区、多级分区、软件虚拟分区和综合动态分区等功能获得提高。惠普为Superdome制定了全新的销售定价方式和服务模式- “全面客户服务模式”。Superdome的客户将得到惠普公司的全套解决方案,使客户在系统革新、建设、运行和发展升级四个使用阶段中都能全程享受到惠普提供的支持服务。

      IBM p系列680服务器


    p系列680服务器是IBM最强大的UNIX对称多处理器系统,在处理众多不同的关键电子商务应用(包括Web serving和hosting、ERP、 SCM、CRM等等)上尤为出色。

      680中配备的微处理器采用了绝缘硅(SOI)技术。该技术通过在芯片电路上涂上一层绝缘体,降低了电流发热。芯片热度的降低不仅可以提高运行速度,还可以减少运行错误,或系统崩溃的机率。680配备的CPU运行频率为600MHz,每一枚微处理器的缓存容量为16MB,系统内存容量为 96GB,SMP配置最多可达4个6路处理器模块。

    Sun Enterprise 10000服务器

    Sun Enterprise 10000运行在Solaris操作环境下,对于基于主机的或客户机/服务器的各类应用,如在线交易处理、决策支持系统、数据仓库、通信服务或多媒体服务等,它都是理想的通用服务器或数据服务器。

      Sun E10000脱胎于CRAY的CS6400,是第一个具有硬件分区(Hard Partition)功能的UNIX高端服务器,同时也是第一个达到64路SMP计算的UNIX单机。它采用Sun UltraSPARCII 400MHz处理器,最多可配置64个CPU,最大内存容量为64GB,可以实现最多16个分区(或称为域),在线磁盘存储容量可达64TB,具有动态重组特性(可提供在线服务能力)和动态系统域特性。通过在系统的核心部位采用Gigaplane-XB互连,提供的数据带宽可达到每秒12.8GB。

      SGI Origin 3000服务器

    SGI Origin 3000高性能服务器新产品采用SGI NUMAflex结构,即SGI新型模块化计算结构或称为第三代NUMA架构。SGI 3000服务器可以从两个64位的MIPS RISC CPU的最低配置扩展到512个CPU的共享存储的多处理器系统。另外,SGI的InfiniteReality3图形子系统也可以集成到该结构中。

      第三代NUMA服务器采用模块化设计,7种基本模块分别是CPU扩展模块、磁盘存储器扩展模块、基本的I/O模块、PCI扩展模块、路由器互联模块、XIO扩展模块和图形扩展模块。模块化设计使系统配置更加灵活,更加经济高效,并具有很高的容错性和系统扩充性,能为客户提供可靠的总体投资保护和卓越的性能。

    06/09/2005

    硬盘的相关参数分析与常见误区

    硬盘的相关参数分析与常见误区

    类型:原创 作者:中关村在线 日期:2004-05-28 17:34:20




    硬盘的主要技术指标

        在我们平时选购硬盘时,经常会了解硬盘的一些参数,而且很多杂志的相关文章也对此进行了不少的解释。不过,很多情况下,这种介绍并不细致甚至会带有一些误导的成分。今天,我们就聊聊这方面的话题,希望能对硬盘选购者提供应有的帮助。

    首先,我们来了解一下硬盘的内部结构,它将有助于理解本文的相关内容。



        工作时,磁盘在中轴马达的带动下,高速旋转,而磁头臂在音圈马达的控制下,在磁盘上方进行径向的移动进行寻址

    硬盘常见的技术指标有以下几种:

    1、 每分钟转速(RPM,Revolutions Per Minute):这一指标代表了硬盘主轴马达(带动磁盘)的转速,比如5400RPM就代表该硬盘中的主轴转速为每分钟5400转。

    2、 平均寻道时间(Average Seek Time):如果没有特殊说明一般指读取时的寻道时间,单位为ms(毫秒)。这一指标的含义是指硬盘接到读/写指令后到磁头移到指定的磁道(应该是柱面,但对于具体磁头来说就是磁道)上方所需要的平均时间。除了平均寻道时间外,还有道间寻道时间(Track to Track或Cylinder Switch Time)与全程寻道时间(Full Track或Full Stroke),前者是指磁头从当前磁道上方移至相邻磁道上方所需的时间,后者是指磁头从最外(或最内)圈磁道上方移至最内(或最外)圈磁道上方所需的时间,基本上比平均寻道时间多一倍。出于实际的工作情况,我们一般只关心平均寻道时间。

    3、 平均潜伏期(Average Latency):这一指标是指当磁头移动到指定磁道后,要等多长时间指定的读/写扇区会移动到磁头下方(盘片是旋转的),盘片转得越快,潜伏期越短。平均潜伏期是指磁盘转动半圈所用的时间。显然,同一转速的硬盘的平均潜伏期是固定的。7200RPM时约为4.167ms,5400RPM时约为5.556ms。

    4、 平均访问时间(Average Access Time):又称平均存取时间,一般在厂商公布的规格中不会提供,这一般是测试成绩中的一项,其含义是指从读/写指令发出到第一笔数据读/写时所用的平均时间,包括了平均寻道时间、平均潜伏期与相关的内务操作时间(如指令处理),由于内务操作时间一般很短(一般在0.2ms左右),可忽略不计,所以平均访问时间可近似等于平均寻道时间+平均潜伏期,因而又称平均寻址时间。如果一个5400RPM硬盘的平均寻道时间是9ms,那么理论上它的平均访问时间就是14.556ms。

    5、 数据传输率(DTR ,Data Transfer Rate):单位为MB/s(兆字节每秒,又称MBPS)或Mbits/s(兆位每秒,又称Mbps)。DTR分为最大(Maximum)与持续(Sustained)两个指标,根据数据交接方的不同又分外部与内部数据传输率。内部DTR是指磁头与缓冲区之间的数据传输率,外部DTR是指缓冲区与主机(即内存)之间的数据传输率。外部DTR上限取决于硬盘的接口,目前流行的Ultra ATA-100接口即代表外部DTR最高理论值可达100MB/s,持续DTR则要看内部持续DTR的水平。内部DTR则是硬盘的真正数据传输能力,为充分发挥内部DTR,外部DTR理论值都会比内部DTR高,但内部DTR决定了外部DTR的实际表现。由于磁盘中最外圈的磁道最长,可以让磁头在单位时间内比内圈的磁道划过更多的扇区,所以磁头在最外圈时内部DTR最大,在最内圈时内部DTR最小。

    6、 缓冲区容量(Buffer Size):很多人也称之为缓存(Cache)容量,单位为MB。在一些厂商资料中还被写作Cache Buffer。缓冲区的基本要作用是平衡内部与外部的DTR。为了减少主机的等待时间,硬盘会将读取的资料先存入缓冲区,等全部读完或缓冲区填满后再以接口速率快速向主机发送。随着技术的发展,厂商们后来为SCSI硬盘缓冲区增加了缓存功能(这也是为什么笔者仍然坚持说其是缓冲区的原因)。这主要体现在三个方面:预取(Prefetch),实验表明在典型情况下,至少50%的读取操作是连续读取。预取功能简单地说就是硬盘“私自”扩大读取范围,在缓冲区向主机发送指定扇区数据(即磁头已经读完指定扇区)之后,磁头接着读取相邻的若干个扇区数据并送入缓冲区,如果后面的读操作正好指向已预取的相邻扇区,即从缓冲区中读取而不用磁头再寻址,提高了访问速度。写缓存(Write Cache),通常情况下在写入操作时,也是先将数据写入缓冲区再发送到磁头,等磁头写入完毕后再报告主机写入完毕,主机才开始处理下一任务。具备写缓存的硬盘则在数据写入缓区后即向主机报告写入完毕,让主机提前“解放”处理其他事务(剩下的磁头写入操作主机不用等待),提高了整体效率。为了进一步提高效能,现在的厂商基本都应用了分段式缓存技术(Multiple Segment Cache),将缓冲区划分成多个小块,存储不同的写入数据,而不必为小数据浪费整个缓冲区空间,同时还可以等所有段写满后统一写入,性能更好。读缓存(Read Cache),将读取过的数据暂时保存在缓冲区中,如果主机再次需要时可直接从缓冲区提供,加快速度。读缓存同样也可以利用分段技术,存储多个互不相干的数据块,缓存多个已读数据,进一步提高缓存命中率。

    这是我们经常能看到的硬盘参数指标,正确理解它们的含义无疑对选购是有帮助的

    7、 噪音与温度(Noise & Temperature):这两个属于非性能指标。对于噪音,以前厂商们并不在意,但从2000年开始,出于市场的需要(比如OEM厂商希望生产更安静的电脑以增加卖点)厂商通过各种手段来降低硬盘的工作噪音,ATA-5规范第三版也加入了自动声学(噪音)管理子集(AAM,Automatic Acoustic Management),因此目前的所有新硬盘都支持AAM功能。硬盘的噪音主要来源于主轴马达与音圈马达,降噪也是从这两点入手(盘片的增多也会增加噪音,但这没有办法)。除了AAM外,厂商的努力在上文的厂商介绍中已经讲到,在此就不多说了。至于热量,其实每个厂商都有自己的标准,并声称硬盘的表现是他们预料之中的,完全在安全范围之内,没有问题。这一点倒的是不用担心,不过关键在于硬盘是机箱中的一个组成部分,它的高热会提高机箱的整体温度,也许硬盘本身没事,但可能周围的配件却经受不了,别的不说,如果是两个高热的硬盘安装得很紧密,那么它还能承受近乎于双倍的热量吗?所以硬盘的热量仍需厂商们注意。

    对硬盘认识的常见误区(一)

    1、 转速与寻道时间:

        现在不少人都认为硬盘转速越快寻道时间就越快,但这是最常见的错误认识,事实上寻道速度根本不决定于转速,因为两者的控制设备就不一样。转速是由主轴马达控制,寻道则由音圈马达控制。寻道时间说白了就是体现了磁头臂径向运动的速度与控制能力,音圈马达与相应的伺服系统起着重要作用。另外,磁头的高灵敏度也有助于在高密度磁盘上准确捕获伺服标记,进而快速定位。很多情况下,我们都可以看到5400RPM硬盘的寻道时间与7200RPM硬盘一样(如三星的V40与P40)。之所以有些高速硬盘(如SCSI硬盘)的寻道时间更快,是因为厂商的有意设计,就好像一台Pentium4电脑只配32MB内存让人觉得不平衡一样,厂商也会给高速硬盘配上更快的寻道时间(也意味着更好的元件与更高的成本,显然厂商要根据市场的需要权衡利弊)。实际上,通过上文有关平均访问时间的解释,大家应该明白,提高转速的主用意就是减少平均潜伏期,进而加快整体的访问速度,也许很多人不认同这是它最重要的用意,由此就又引出了下一个误区。

    2、 转速与数据传输率:

        在很多人的印象和厂商的宣传中,更高的转速的主要用意在于提高数据传输率,但这并不正确。持续数据传输率决定于很多指标,并不光只是转速。当然,有人会说转速更高,磁头单位时间划过的扇区就越多,不错,但前提是线密度一样。线密度可理解为每磁道扇区数(SPT,Sectors Per Track)。低速硬盘完全可以通过提高SPT来加大数据传输率, SCSI硬盘就是追求SPT的典型。事实上,很多厂商在相同单碟容量上对于不同的转速采用了不同的SPT设计,如金钻七的最外圈磁道扇区数为837个,而星钻三代则为896个。有人可能会问,那如何保证容量一致呢?这就涉及到每英寸磁道数(TPI,Tracks Per Inch),它代表了磁道密度。SPT高则TPI就会相应减少,如金钻七为60000TPI,星钻三代则是57000TPI。本次测试最典型的例子是Caviar系列硬盘,WinBench测得的数据传输率与某些7200RPM产品相当。虽然我没有该系列硬盘最外圈SPT资料,但肯定不会低于1000(若转速实为5400RPM),即使转速真的是6000RPM,也在900之上。因此5400RPM硬盘完全可以通过提高33%(7200RPM比5400RPM转速高33%)的SPT来得到相同的数据传输率。

        综上所述,7200RPM相对于5400RPM硬盘的最大优势就在于更短的平均潜伏期,进而减少平均访问时间。毕竟转速是死的,5400RPM永远处于劣势。

    3、 真正的内部数据传输率:

        随着硬盘知识的普及,硬盘DTR这一指标也逐渐被人们所认识,但又出现了新的误区——拿以Mbps为单位的最高内部DTR说事,这其中某些厂商与所谓高手的误导有着不可推卸的责任,后果也是相当严重。由于内部DTR决定了硬盘的实际数据传输性能,所以很多人都在关心硬盘的内部DTR,而厂商也投其所好,在产品资料中基本都公布了最大内部传输率,但多是以Mbps为单位,不少人因此拿这个数值来预测硬盘的性能,甚至分析到接口速率的瓶颈(这些人通常将其换算成MBPS,而目前最高的数值将近80MBPS,离Ultra ATA-100的最大速率已相差不远了)。但是,它恰恰不能通过除8来换算成MBPS,因为这个数值是磁头处理二进制0/1信号(即bit)的纯理论性能,而磁头处理的信号很大部分并不是用户需要的数据(存入的数据都是经过编码的,包含许多辅助信息),因此不能以字节为单位。很多硬盘这一数值都是相当高的,如以前的富士通硬盘,指标很好,但实际性能却是另一码事。完全可以说,这个Mbps值没有什么实际价值,给人的是一种假象。

        在硬盘中,真正重要的是内部持续DTR,它分为单磁道瞬间DTR与持续DTR两个指标,单磁道瞬间DTR的计算公式是“512字节×SPT×磁盘每秒所转圈数”或“512字节×SPT÷磁盘转一圈所用时间”,由于磁盘转一圈所用时间一般不能除尽,所以经常用前一种公式。持续DTR的计算公式则为“512字节×SPT×磁头数/总耗时”,其中“总耗时=(磁头数-1)×磁头切换时间+道间寻道时间+磁头数×磁盘转一圈的时间”。磁头切换时间一般在产品的用户手册中有标注,大约在1ms左右。单磁道瞬间DTR表明了硬盘实际上所能达到的最大内部DTR,持续DTR则体现了硬盘真正的数据传输能力。很遗憾的是,目前只有迈拓和IBM提供了内部持续DTR数据,其他厂商仍然用Mbps数值迷惑普通大众。但是,厂商心里是明白的,他们自己也不会混淆概念(只是没事偷着乐),在数据的说法上也是非常严谨,如果你哪天发现厂商公布的内部DTR使用了MB/s为单位,那么这很可能就是我们所真正需要的数据,而不要再用Mbps去除8了。


    IBM 120GXP的技术资料,其中有两个内部DTR,我们只需关心第二个

    4、 缓冲区容量与性能:

         上文说过内部DTR决定了外部DTR的实际表现,但为了将内部DTR对外部DTR的影响降至最低,产生了缓冲区设计。理论上讲,缓冲区越大,即使内部DTR不变,硬盘的性能也会更好,这就好比CPU中的缓存一样。不过,要做到缓冲区容量的增加并提高性能还是有一定难度的。这主要体现在缓存功能管理与数据安全两个方面。缓存功能管理决定了缓冲区智能化与缓存效果,简单的说就是一种管理算法与替换策略,负责这一任务的就是缓存控制器。上文已经讲到目前都将缓冲区做分段处理,并且是动态的,根据数据流情况自动划分。以120GXP为例,在读操作时可最多划分12个数据段(平均容量约155KB),在写操作时数据段可高达52个(平均容量约35KB)。那么怎么去动态的划分区段,怎么去选择最不常用的区段以替换成新的数据,都将影响最终的性能表现。比如区段划分不合理将影响缓冲区空间的利用率和预读效果,数据替换不合理将影响缓存命中率,这样一来说不定与小容量缓冲区性能差不多。讲到这,大家肯定会想到了CPU缓存的算法(比如N路级联与更新策略等),的确两者有相同之处。对于更大容量的缓冲区,肯定就不能照搬小容量缓冲区的缓存管理算法。因此,缓冲区越大性能越好是有前提的,这对厂商的缓存管理技术水平提出了更高的要求。

        大容量缓冲区的数据安全性主要是指在突然断电的情况下,缓冲区中的待写数据将如何处理的问题。这方面笔记本电脑硬盘就有了得天独厚的优势,因为有电池为后盾,笔记本电脑硬盘的缓冲区容量已经提升到了16MB。但对于台式机,这是个不小的考验。WD公司在这方面做出了有意义的探索,主要方法是通过将数据暂时保存在最外圈暂存区(因为最外圈的写入速度最快),下次开机再写入原目的地址的方法来保证缓冲区中待写数据的安全,显然这需要特殊的管理机制,也是厂商的自由发挥了。

        最后我们再谈谈目前普遍流行的说法——大容量缓冲区对零散数据非常有利,这是很片面的认识。当然,这种说法可以理解,也没有什么根本性错误,但容易误导人们对大容量缓冲区的认识。从分段式缓存结构可以看出,更大的缓冲区理论上可以划分出更多的数据段,能容纳更多的互不相干的小数据块。而这种随机的、不连贯的、小数据量的读取行为在Web服务、数据库服务与日常办公应用中很常见。如在Web服务中,经常出现对一个网页同时有多个请求的情况,而一个网页的大小也就是几十到几百KB的容量,如果缓冲区能缓存更多的页面,那么服务器的表现也会越好。因此大容量缓冲区在这方面的贡献,我们完全肯定。但另一方面,对于大容量,连续读写的数据操作,大容量缓冲区同样能发挥重要的作用。更大的缓冲区此时意味可一次缓冲更多的数据(硬盘会根据数据量将区段合并),即能在相同的时间内向主机或磁头发送更多的数据,而磁头的连续读写扇区的能力更容易发挥。所以,在音频、视频处理等经常用到大数据量连续读写的场合,大容量缓冲区硬盘是最佳之选。在下面的测试中,大家也会发现8MB缓冲区硬盘相对于2MB缓冲区硬盘的整体优势。

    对硬盘认识的常见误区(二)

    5、 SCSI与IDE的性能:

        在WD1000JB推出时,有些读者就根据其与低端SCSI硬盘的对比测试数据,曲解原文的用意发表了IDE硬盘性能已经可与SCSI硬盘相抗衡的看法,这显然是一种误导。在测试原文中与WD1000JB做对比的是希捷早期万转SCSI硬盘——Cheetah 36XL。单碟容量为9GB,不到1000JB单碟容量的1/3,缓冲区容量为4MB,而WD1000JB则是8MB,但两者的持续传输率基本一致,因此有一定可比性。原文将当时最高配置的IDE硬盘与较低配置的SCSI硬盘作对比的主要用意在于证明8MB缓冲区的作用,并通过测试表明在此情况下最高端IDE的性能完全可以与低端SCSI一争高低,而不是给“IDE性能可与SCSI对抗”这一笼统的错误说法提供论据,因为这种比较是有条件的。从测试成绩上看,Cheetah 36XL全面落后,但这是在单盘情况下。而随着硬盘数量的增多,SCSI共享数据通道的优势将逐渐体现,此时就不是IDE硬盘可比的了,即使你接满4块IDE硬盘也于事无补,况且随着更高单碟容量(如18GB)的万转SCSI与15000转SCSI硬盘的普及,IDE的单盘优势也不明显了。所以SCSI与IDE根本就针对着不同的市场与操作应用。做对比测试的原作者也只是借WD1000JB证明,目前最高端IDE硬盘完全可以在负荷不很繁重的中低端单盘工作站市场一展身手,而不是全面冲击SCSI硬盘,这一点一定要认清楚,不要误解原文作者的用意。

    6、 总容量与性能:

        如果单碟容量相同,那么总容量的不同就意味着磁头数量(即数据面数,一张磁盘有两个数据面,但有时只用一个,而一个数据面对应一个磁头)的不同,这其中会与性能有什么关系呢?由此就要联系到柱面这一概念,柱面是指硬盘中每张磁盘上编号(位置)相同的磁道集合,硬盘操作时,是从最外圈柱面开始,当该柱面所有磁道用完后,再移至内圈的下一个柱面,而不是先存完一张盘再存一张盘。同系列的硬盘的柱面数是一样的,但每个柱面包含的磁道数要因磁头数而异,计算公式为:磁道数=磁头数×柱面数。如迈拓D740X,20GB型号由于只有一个磁头,所以一个柱面的容量是一个磁道,而80GB型号则是4个磁头,一个柱面的容量就是4个磁道。以最外圈柱面为例,D740X是外圈磁道是837个扇区,按每扇区512字节计算,20GB型号的最外圈柱面的容量为418.5KB, 80GB型号的最外圈柱面容量为1674KB 。也就是说如果连续存储500KB的数据,20GB就要移动磁头进行道间寻道了,但80GB的还不会,只是存在同一柱面内磁头切换的延迟。大家可以这么认为,80GB型号中一个柱面相当于20GB型号中的4个柱面,而同一柱面内的磁道切换速度通常要快于柱面间的切换,对保持数据传输率更为有利。


     

    柱面示意图

        由此,很多人可能得出结论,同一产品系列中,磁头数越多的型号的连续读写性能越好(如果是零散读写根本不受柱面容量的影响)。这个说法基本正确,但是有忽略的地方。首先,目前的硬盘都采用了区域数据记录,在同一区域内,每磁道扇区数固定,比如D740X分为15个数据区(最外圈还有一个但用于存储系统数据,可不计),最外圈数据区中有2582个柱面,这些柱面的扇区数是相同的,所以即使是20GB型号,也只会在存满1.03GB左右的数据后才转入下一个SPT更少的数据区。而且也有柱面切换速度比磁头切换快的硬盘,D740X就是,因此在这头1个GB的数据区中,80GB的D740X型号性能也许更差。但我们一般使用硬盘都要分区,C盘大概在5-10GB左右,此时20GB的型号已用到了第4个数据区,而10GB的容量在80GB型号中还没有超出第二个数据区,因此就这个分区的整体性能而言,80GB的显然要占优势。从WinBench的硬盘传输率曲线上就能看出这一点, 80GB型号的最高传输率范围覆盖了更多的空间。不过,上面的对比是较极端的,如果是40GB与60GB的型号去对比就不会这么明显,可以说磁头数相差如果在3个以内,性能的差距将非常微弱,但对有的硬盘,即使磁头数相差3个也基本不会有什么差距。

        上为D740X-80GB型号的DTR曲线图,下为D740X-40GB型号的DTR曲线图,以10GB容量为界,可发现40GB型号已经用到了DTR更低的第三个数据区,而80GB型号仍处在DTR更高的第二个数据区,理论性能要强于40GB型号

        现在再让我们看看另一个例子——酷鱼四,从曲线图上可以看出其第一个数据区占据了1/3多的柱面,也就是说即使是20GB的酷鱼四,在前10GB容量的性能不见得就比80GB的型号差。所以,具体的差别除了要看磁头相差数量还要看数据区的设置。另外,在产品的生产过程中,厂商可能随时进行改进(不仅指Firmware,还包括元件的优化与改良等),往往会出现新的产品比老产品性能更好的情况,比如WD的CaviarXL系列,评测的1200BB是2001年9月的产品(10月才发布单碟40GB的CaviarXL系列),800BB与400BB都是今年一月和二月的产品(Firmware版本没变),后两者的表现与1200BB相比并无劣势。而IBM则为不同磁头数的型号开发了不同版本的Firmware,使得各型号的性能表现都趋于一致。因此,影响容量与性能的可变因素很多。

        上为酷鱼四-60GB型号的DTR曲线图,下为酷鱼四-80GB型号的DTR曲线图,即使以20GB容量为界,可发现60GB型号仍在DTR最高的第一个数据区,理论上性能和80GB型号一样

        不过,在一些测试中,最大容量型号的表现基本都很出色,有的大容量5400RPM的性能甚至好过一些小容量的7200RPM硬盘。

    7、 FDB的作用:

        FDB马达对于很多人来说是比较新鲜的,在很多公司的宣传中,FDB的作用被定为减少噪音与热量,甚至能提高性能。这么说似乎有道理,但容易产生误导。BB轴承使用圆形滚珠(材料可为金属或陶瓷)作为主轴与基座之间的运动连接/支撑体,由于滚珠加工精确度产生的必然差异,在主轴高速运转中,滚珠之间会发生碰撞而振动,这就是马达(主轴)噪音的主要根源(其他原因还包括轴承装配精度与力矩的平衡),FDB则使用了液态润滑物质代替滚珠,这样就完全消除了因碰撞产生的噪音。但是,主轴的噪音在硬盘整体噪音中的强度比重较小,而且人耳对其远不如音圈马达寻道噪音敏感(因为频率较低),所以FDB的减噪功能确切的说只有在硬盘空闲时(磁盘空转,磁头不寻址)才能体现。另外,对于热量,滚珠之间磨擦肯定是一个热源,但这与马达电机相比也不算什么,而且FDB的效率往往并不如BB,马达功耗可能会更大。第一块使用FDB的IDE硬盘——希捷的“大灰熊”,其热量之高想必是很多老玩家记忆犹新的,而且即使是不用滚珠的音圈马达的热量也很高。因此主轴马达的主要热源并不在轴承。我们在测试中也发现,现阶段FDB并没有体现出对BB的降热优势。

        综上所述,大家要对FDB有一个客观的认识,不能盲目听信宣传,认为FDB肯定比BB好(毕竟转速是固定的,性能不会改变)。至少在目前,FDB并没有多大优势,这可能也是为什么IBM与WD仍没有使用FDB的一大原因。

    8、 怎么测试硬盘:

        看过不少的硬盘横向测试,虽然使用的软件都一样,但其中的测试方法实在不敢认同。硬盘测试有两个方面,一是硬盘本身的性能,另一个是硬盘对整机性能的影响。对于前者,很多测试人员将被测硬盘也当作是系统硬盘,也划出成多个分区。虽然比较符合实际的应用,但不能真正反映硬盘的性能,而真正符合实际应用的测试并不在于硬盘的单独测试上。事实上,最合理的硬盘单独测试方法是,操作系统与测试软件装在另一个硬盘上,被测硬盘单独接在一个硬盘接口,接下来就是分区,此时必须要将全部容量分成一个区才能体现硬盘的综合性能。现在最常用也是最好用的硬盘测试软件WinBench99就是以分区大小来确定测试区域的,包括DTR、访问时间、应用模拟测试等,在DTR测试中以分区的最外圈磁道开始到分区的最内圈磁道终止,所以如果只用头10GB的容量为一个分区,那么测出来的就是这10GB之内的DTR而不是整个硬盘的,这也是为什么有些数据中,结束端比起始端的数值还要高的原因(如果分区容量没有超出数据区,那么很容易因为误差产生这种结果)。另外,如果测试区域很小,则磁头寻道的时间也会限制在更低的范围内(因为寻道的范围也小了),同样有利于得高分,类似的影响也体现在商业与高端测试中。所以,硬盘单独测试时必须进行全分区!至于用什么样的文件系统就不是很重要了,不过FAT32的得分一般都比NTFS的高,但如果测试条件统一,那么都是有说服力的,成绩排名也不会因为文件系统的改变而改变。

        现在再说说整机测试。虽然是硬盘横向测试,但要想知道哪个硬盘对整机性能提升最大,就必须动用Winstone系列软件来进行对比测试了,这可以说是对硬盘的性能终极考试,因为WinBench99相对简单,也不是很全面,更容易被厂商钻空,而Winstone就不一样了,硬盘只是其中的一个子系统,但它也会影响最终的成绩。遗憾的是很多硬盘横向测试中都没有这一项,只是简单的跑跑WinBech99就完了。Winstone测试就要在接近真实使用情况的设置下进行,此时就不能用全分区了,因为现实中很少有人这么做。而测试一般都在被测硬盘的C区,所以容量通常为5-10GB。当然,也可以进行全分区的整机测试,这就取决于测试人员自己的决定了。

        在经过正确的硬盘单独与整机测试后,我们就能对被测产品性能有一个比较全面的认识和客观的评价了。

        好啦,有关硬盘的相关常识今天就先讲到这,在日后本站的硬盘测试中,还将陆续向大家介绍相关的硬盘技术与知识,敬请大家密切留意本站的动态。