录音/制作/创作 吉他 扩声技术 视频技术 作品展示 生活 信息 更多... | 音频应用专卖店

MAC

SATA硬盘NCQ技术解析

( 1 )
 
[收藏]

4137
#1 04-8-14 18:12

SATA硬盘NCQ技术解析

SATA硬盘NCQ技术解析
--------------------------------------------------------------------------------


  此文翻译自cooltechzone 网站,翻译此文是为了向广大电脑爱好者提供更多更好的信息,以传播信息为目的,并不代表本网站立场。

  在计算机的存储部件当中,对机械设备驱动依赖型最强的莫过于硬盘了。硬盘是机电设备,盘片通过马达驱动高速旋转,磁头臂因读写来回运动,因此硬盘会受机械部件惯性的影响,这也是制约硬盘性能的关键因素之一。也正因为如此,硬盘的工作效率非常低下,通常是限制整个计算机系统性能充分发挥的瓶颈所在。显然,机械设备的速度是无法与同等类型的电子设备相比拟的,人们期盼着完全电子化的硬盘的面世。

  尽管硬盘是一个机电一体化的设备,工作效率相对较低,但是它确实计算机技术赖以发展的基础。从1956年IBM公司发明第一块硬盘至今,硬盘的技术已经非常大的提高,但是,硬盘仍然依赖于机械设备的事实却没有得到实质性的改变:以前是在5张24英寸的磁盘上得到5兆字节(MB)的容量,而目前容量最大、400GB的硬盘中也采用了5张3.5英寸的磁碟,每张磁碟容量80GB(1GB=1024MB)。

  随着硬盘存储容量的增大,数据随机化对数据访问时间(硬盘的读/写磁头寻找磁碟上特定位置上的特定数据所花的时间)的影响越来越重要。如果硬盘的寻道时间和执行机构的定位延迟有几秒的时间,这将限制整个计算机的性能的发挥。即使这些延迟降低到几毫秒,如果一个应用程序的数据存储在硬盘磁碟上零散的位置,硬盘要找到这些数据,并运行应用程序,恐怕也要花很多秒的时间,这是无法忍受的。

  在了解NCQ技术之前,我们先来了解一下硬盘的工作原理。

2.读写磁盘信息过程

  首先让我们来看一下硬盘是怎样读写信息的。

  硬盘通过将信息写入磁盘磁道上的特定位置进行存储信息,硬盘范围磁盘上的信息的过程如下:

  -寻找存储数据的目标磁碟(platter)。访问该磁碟...

  -寻找磁碟上存储数据的目标磁道(track)。访问磁道...

  -寻找磁道上存储数据的目标簇(cluster)。访问簇...

  -寻找簇上存书数据的目标扇区(sector)。访问扇区...

  -寻找目标数据...读取数据...

  通过上面的步骤,硬盘可以很好的获取所需要的数据信息。硬盘写入信息的步骤和上面的一样,只是写数据时,读取变成写入了。

  上面的操作步骤中提到的磁道、簇、扇区等专业词语可能会使你感觉有点混乱,下面的框图描述了这些词汇在硬盘磁碟中对应的位置:



  在上图中,暗红色的区域表示磁道,鲜红色的区域表示簇,而黄色区域表示磁盘上的扇区。

  在实际应用中,必须通过特定的工具才能实现对数据的读写操作,而实现读写操作的就是硬盘的读写磁头。读写磁头装在传动执行机构上,通过执行机构带动磁头进行定位操作。磁头是硬盘技术最重要和关键的一环。为了使磁碟能够转动起来,还需要相应的转轴来驱动它。转轴由主轴部件和驱动电机组成,转轴的转速即为硬盘的转速。现在你应该明白硬盘上标明的5400RPM(Rotations Per Minute)、7200RPM 到底是什么意思了吧。

          5400RPM=每分钟转动5400个周期

  寻道时间和转动延迟时间之和就是总的存取时间,例如:

  8.3毫秒寻道时间+3.1毫秒转动延迟=11.4毫秒的总的存取时间

  这表示在向硬盘发出请求命令到可以对数据进行访问所需要的时间为11.4毫秒。单个请求指令的原理非常简单,但是如果要运行应用程序,同时向硬盘发送多个请求指令,问题就产生了。例如:

  B:8.3毫秒寻道时间+3.1毫秒转动延迟=11.4毫秒的总的存取时间

  R:4.2毫秒寻道时间+2.2毫秒转动延迟=6.4毫秒的总的存取时间

  G:4.3毫秒寻道时间+8.5毫秒转动延迟=12.8毫秒的总的存取时间

  Y:0.7毫秒寻道时间+1.1毫秒转动延迟=1.8毫秒的总的存取时间

  上面的B(Blue)表示蓝色、R(Red)表示红色,G(Green)表示绿色、Y(Yellow)表示黄色,分别代表数据在下图中的盘片上的位置。如果硬盘按照B-R-G-Y请求指令的顺序进行处理,则要访问这四个地方的数据的总时间延迟为32.4毫秒。

3.问题与技术探索



  在前面提到的顺序执行B-R-G-Y请求指令存在一个问题。建设R-G-B-Y指令访问的地址在磁碟上的分布情况如上图所示,首先读/写磁头在B(蓝色)点访问信息,访问完毕时执行机构就将磁头移动到R(蓝色)点处,这还不是问题的关键所在,在接下来的一条指令中,执行机构浪费了大量的时间,从R点移动到G(绿色)点,接着访问Y(黄色)点上的信息,最后一起执行这些指令。

  (注:上图的紫色轨迹表示磁盘的转动方向以及访问数据的顺序。)

  显然,上图中,访问数据的最佳路线为:先访问G点的信息,接着访问B点信息、Y点信息,最后访问R点信息。为了更清楚的了解到底上述问题可能导致多大的时间延迟,我们来看看下面这个图:



  如上图所示,如果硬盘中有几张磁碟,并且要访问的数据随机分布到不同的磁碟上,那么浪费的时间将更多。

  上图中,左边是带动读写磁头移动的执行机构,在两张盘片之间都有一个执行臂;而装在执行就构末端的读/写磁头就是用来访问磁碟两面上存储的速据。磁碟上的同心圆只是为了说明磁道上的轨迹而画出来的,实际的磁碟非常光滑,上面的磁道肉眼是看不到的。磁碟的中心是转轴,如前面提到的,转轴转速越高,转动延迟时间就越短。下图是实际硬盘的内部结构图:



  磁碟的表面非常光滑,硬盘中可能有一个或者多个磁碟,并且配备相应的执行机构。显然,硬盘的容量越大,其中采用的磁碟的存储密度就越高、磁碟的数目也会越多。因此,在大容量硬盘中,访问数据的效率就显得更加重要了。

4.NCQ技术解释

  NCQ(Native Command Queuing)是SATA规范支持的一种新的功能,它是一种使硬盘内部优化工作负荷执行顺序,通过对内部队列中的命令进行重新排序实现智能数据管理,改善硬盘因机械部件而受到的各种性能制约,以发挥硬盘最高的效率、使延迟最小化。

  我们可以将硬盘的存储数据的逻辑块地址(LBA,Logical Block Address)当作是一个地区内的不同的房子。如果要给这些房子送信,先送完第一间房子,然后再跑到2公里外的另一个房子,后再跑到第一个房子的邻居送信,最后把信送到附近不远的另一个房子,这是多么“愚蠢”的做法!显然,这浪费了大量的时间。下面的两个如分别表示了没有采用NCQ技术(non-NCQ)和采用了NCQ技术的两种不同的情况。






  第一个图为不支持NCQ技术的硬盘的工作情况。和前面提到的送信的“愚蠢”做法的一样的,但是在刚开始的硬盘中确实是采用了这种做法。

  第二个图是支持NCQ技术的硬盘的工作情况。这才是送信的最佳方式,它极大的提高了工作效率,节省了很多时间。

  支持NCQ技术的硬盘对接收到的指令按照他们访问的地址的距离进行了重排列,这样对硬盘机械动作的执行过程实施智能化的内部管理,大大地提高整个工作流程的效率:即取出队列中的命令,然后重新排序,以便有效地获取和发送主机请求的数据,在硬盘执行某一命令的同时,队列中可以加入新的命令并排在等待执行的作业中。

  显然,指令排列后减少了磁头臂来回移动的时间,使数据读取更有效。并且有效的排序算法除了考虑目标数据的线性位置,也会考虑其角度位置,并且还要对线性位置和角度位置进行优化,以使总线的服务时间最小。

  目前希捷、迈拓等硬盘厂商已经在SATA硬盘中应用了NCQ技术。不过,要充分享用NCQ技术,光硬盘支持是不行的,还要对应的硬盘控制器(如南桥芯片中的磁盘控制器)支持才行。英特尔新一代ICH6南桥引入了对NCQ技术的支持。目前,NCQ技术的巨大潜力还没有完全发挥出来,在实际的应用中,你会发现采用多线程的应用程序比其它应用程序更能发挥NCQ技术的巨大优势。当应用程序变得越来越复杂,并且需要只有NCQ技术才能够提高其效率的时候,那是或许人们就会开始高赞NCQ技术的伟大了。

471
#2 04-8-14 19:24
看了。谢谢。图呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

搜索