现在电脑主要分为两种硬盘。
1.机械硬盘
这个是最传统的硬盘,也是最可靠的硬盘。缺点就是读写速度慢,占据体积比较大,受到外力影响容易损坏,而且工作内部是密封的,接触灰尘就凉了。
他的所有的盘片都固定在一个旋转轴上,这个轴即盘片主轴。而所有盘片之间是绝对平行的,在每个盘片的存储面上都有一个磁头,磁头与盘片之间的距离比头发 丝的直径还小。所有的磁头连在一个磁头控制器上,由磁头控制器负责各个磁头的运动。磁头可沿盘片的半径方向动作,(实际是斜切向运动),每个磁头同一时刻也必须是同轴的,即从正上方向下看,所有磁头任何时候都是重叠的(不过目前已经有多磁头独立技术,可不受此限制)。而盘片以每分钟数千转到上万转的速度在高速旋转,这样磁头就能对盘片上的指定位置进行数据的读写操做。而且硬盘会分成不同的扇区,把不同的数据储存在不同的扇区。这样子的好处就是即使有一个地方的磁盘出现坏道,只会影响当前的数据,其它的地方数据就不受影响。
而且数据万一丢失或者损坏,是可以通过技术手段恢复的。
2.还有就是固态硬盘
这个是最近几年忽然火起来的,它的体积更小,读写速度更快
它的工作原理,就是把磁存储改为集成电路存储。磁存储需要扫描磁头的动作和旋转磁盘的配合。电路存储即固态存储靠的是电路的扫描和开关作用将信息读出和写入,不存在机械动作。基于闪存的固态硬盘是固态硬盘的主要类别,其内部构造十分简单,固态硬盘内主体其实就是一块PCB板,而这块PCB板上最基本的配件就是控制芯片,缓存芯片(部分低端硬盘无缓存芯片)和用于存储数据的闪存芯片。这样子的话,就省去了原来磁头移动的过程,省时间。读写速度更快。游戏玩家的最爱。
缺点:坏了以后数据难以恢复。
、硬盘的工作原理要深入了解NCQ,首先我们必须了解硬盘的工作原理。自从1973年IBM发布昵称为“温彻斯特”的3340硬盘以来,硬盘的基本结构就没有改变。所以,至今硬盘也被称为“温彻斯特”硬盘。“温彻斯特”硬盘对数据读写是怎么进行操作的呢?硬盘盘片(Platter)被划分为很多个同心圆(磁道-Track)。硬盘内所有盘片(有的硬盘由多个盘片组成)上不同面(单碟有两面)的同一磁道组成一个柱面(Cylinder),写入数据就是按照磁头从外到里的顺序。可惜读取时不是按这样的顺序,一个主要的难点在于由于软、硬件的限制,磁头几乎不能按固定的顺序对数据进行读取,系统会要求读取任意位置的数据。限于结构的限制,这个过程并不轻松;事实上,这个过程也是制约硬盘性能提升的主要原因之一。这方面有两个参数尤为重要:寻道延迟(Seek Latency Time)和潜伏期(Rotation Latency Time)。
2、优化寻道延迟J磁头通过定位并移动到包含目标逻辑块地址(LBA-Logical Blocking Addressing)所在磁道所花的时间被称为寻道延迟。如果指令没有经过排序,磁盘需按时间先后顺序对指令中涉及的所有LBA进行访问。以电梯为例,如果3个人同时乘电梯,A先按按钮要到10楼,B要到5楼,C到15楼。按照按下按钮的先后时间,电梯先到10楼,再下来到5楼,又上到15楼!很明显,大量时间被浪费,效率降低了。虽然听起来有些不可思议,但在很长一段时间内,桌面级硬盘仍以上述方式工作。而电梯已明白将指令进行重新排序会更经济、更快捷。总之,能优化使得寻道延迟最小化的方式是使磁头臂移动的距离最短为原则。SATA硬盘整个排序队列是动态的,也就是说在任何时间,额外的指令都可被添加到队列里来排序。这些新添加的命令或许会被合成到当前执行过程,也可能会排到下一个执行过程,这一切都取决于哪种方式令机械结构工作起来更具效率。 然而,直接依据上次指令完成时磁头所在的LBA来排序并不总是最有效率的做法。硬盘所采用的决定最优排序的算法复杂的多,需要考虑到可能存在的磁头切换过程(尤其在硬盘包含多张盘片的情况下)、移动到不同磁道所需的时间、不同的工作模式(比如说,如工作在静音模式下,需考虑的因素还会涉及到寻道过程的位移)、开始工作时磁头的位置及移动方向、磁头臂的加速性能、读缓存的命中率、写缓存是否启用等。3、优化潜伏期潜伏期是指磁头移动到正确的磁道后,随着盘片的旋转,存储数据的LBA来到磁头所需的时间。在最糟糕的情况下,磁头移动到正确的磁道到开始读取LBA时,会浪费整整一个盘片旋转周期。潜伏期决定于硬盘转速,它跟硬盘转速之间的关系为平均潜伏期=30/硬盘转速。5400转的平均潜伏期为5.56ms;7200转为4.17ms;10000转的硬盘潜伏期为3ms。 相较于PC系统的其他设备,硬盘子系统I/O延迟导致数ms的延迟是很漫长的时间。尤其考虑到现在的操作系统允许多线程并行操作,并且类似于HT的技术可实现多个单独线程的同步运作。虽然阵列技术通过多个硬盘并行的原理可提升I/O性能,但鉴于桌面市场的现状,短期内普及阵列显然是不切实际的,所有的数据都需对独一的硬盘进行操作,对硬盘的压力也随之增大。更高的转速是降低潜伏期的一个有效办法。然而,转速的增加会带来其他方面的代价。在磁密度越来越大的今天(单碟100GB马上就会成为主流),巨大的热量会大大降低硬盘的可靠性;而噪声也是不容忽视的,相信每个见识过万转SCSI硬盘巨大噪声的人对此会有更清晰的理解。潜伏期也可通过另外两个途径来缩短。其一就是对尚未执行的指令进行排序从而使潜伏期最小。这种优化与线性的寻道延迟的优化类似,唯一的区别是将线性问题变成了角度问题。另一种优化是利用被称为乱序传送“Out of Order”的数据传送方式,这意味着磁头不必须从数据起始LBA开始读取,可从任意LBA开始进行指令的执行,在经过起始LBA时再把相应的数据组合发送。就像建造桥梁一样,并不一定要从一头按部就班修到对岸,也可以从中间开始往两边修。在使用乱序传送的情况下,即便最慢的情况下,整个传输过程也能在一个盘片旋转周期内完成。不采用乱序读取的话,除了一个旋转周期外,还需要加上访问所有LBA所耗费的时间。
很明显,磁盘需对未执行的指令进行排序以减少机械组件的损耗并减少I/O延迟。这样的技术最好还要便宜、简单、可靠,利于大规模采用。以前的算法主要考虑降低寻道延迟,而后来发现某些时候单纯减少寻道延迟反而会增加潜伏期从而造成整个访问延迟的增加,性能不升反降。有效的重排序算法要考虑到线性和角度延迟,并且同时对两者进行优化以使访问延时最小。这个步骤被称为“基于寻道、优化潜伏”,NCQ就扮演了这样一个角色。命令序列的另外一个副作用是减少机械组件负荷,降低磨损,大大提高了可靠性。