计算机系统解密:从理解计算机到编写高效代码
上QQ阅读APP看书,第一时间看更新

3.3 块设备

与内存对话需要时间。想象一下,每次你需要一杯面粉时,都得去商店买,所以还是去商店买一整袋面粉回来比较方便。大型存储设备使用的就是这个思想。设想一下去商店买“比特位”吧。

磁盘驱动器,也称为大容量存储器,非常适合存储大量数据。写这本书的时候,一个8TB的硬盘售价不到200美元。一些机构会使用大容量存储设备来记录一些仪式。磁盘驱动器将位存储在旋转的磁盘上,有点像转盘。位会周期性地回到某个位置,你可以把它们取下来或放上去。在磁盘驱动器中,磁头代替了手。

与其他类型的存储器相比,磁盘驱动器运行速度相对较慢。如果你想要一个东西,可这个东西刚刚从磁头经过,那么待几乎整个旋转过程进行完,它才会再次出现。现代磁盘的旋转速度为每分钟7 200转,旋转一周所需时间略长于8毫秒。磁盘驱动器最大的问题是它们是机械的,存在磨损问题。轴承磨损是磁盘失效的主要原因之一。商用设备和消费级设备之间的区别主要是生产时使用的润滑脂用量不同,一分钱不到的东西,厂家却能收几百块钱。磁盘驱动器通过磁化磁盘上的区域来存储数据,这使得它们和磁芯存储器一样具有非易失性。

磁盘驱动器是在速度和密度之间权衡的产物。磁盘驱动器的速度很慢,因为在磁头下面显示位需要时间,但由于数据被带到了磁头处,所以地址和数据连接不再需要空间,这就与DRAM中的情况不同了。图3-28展示了磁盘驱动器的内部结构。磁盘驱动器被封装在密封的容器内以防灰尘使其失效。

图3-28 磁盘驱动器

磁盘是按块寻址的,而不是按字节寻址的。块(历史上称为扇区)是可以访问的最小单元。磁盘曾经的扇区有512字节,较新设备的扇区有4 096字节。这意味着如果要更改磁盘上的某个字节,就必须读取整个块,更改字节,然后再将整个块写回。磁盘包含一个或多个盘片,如图3-29所示。

图3-29 磁盘布局

由于所有扇区都包含相同数量的位,因此每个盘片中心的位密度(bit/mm2)比盘片外部边缘的位密度更大。显然外轨道上有足够多的空间容纳位,所以不一致的密度很浪费。较新的磁盘通过将磁盘划分为一组径向区来解决这个问题,实际上外部区域的扇区比内部区域的扇区更多。

有几个数字描述了磁盘驱动器的性能。现代磁盘的执行器臂上有一个磁头,该磁头在磁盘上径向移动;磁头的位置将磁盘划分成磁道。寻道时间是将磁头从一个磁道移动到另一个磁道所需的时间。当然,如果每个磁道都有一个磁头会快得多,因为这样就不需要寻道时间了。老旧的磁盘驱动器也确实是这样的,但是现代磁盘上磁道之间距离太近了,不可能使每个磁道都有一个磁头。除寻道时间外,磁盘旋转也需要时间,这部分磁盘旋转的时间称为旋转延迟,通常在毫秒级。

磁盘驱动器通常也被称为硬盘驱动器。最初,所有的磁盘驱动器都是硬盘驱动器。当廉价的可移动存储设备软盘出现时,磁盘驱动器和硬盘驱动器便有区别了。软盘是可弯曲的,因此称磁盘驱动器为“硬盘”使二者易于区分。

磁盘驱动器的一个过时的变体是磁鼓存储器,就像它听起来的那样:一个旋转的磁鼓,上面有条纹磁头。

磁带是另一种使用磁带盘的非易失性存储技术。它的运行速度比磁盘驱动器的慢得多,而且需要很长时间才能将磁带卷绕到要求的位置。早期的苹果电脑使用消费级的盒式磁带来制作磁带存储器。

光盘与磁盘相似,只不过光盘应用的是光而不是磁,比如CD和DVD。光盘的一大优点是可以通过印刷批量生产。预印盘是只读存储器。也有可一次性写入的与PROM等效的版本(CD-R、DVD-R),以及可擦除可重写的版本(CD-RW)。光盘的部分特写如图3-30所示。

图3-30 光盘数据