参考学习视频:【CSAPP-深入理解计算机系统】6-2. 机械磁盘_哔哩哔哩_bilibili
磁盘存储(机械硬盘)、
1)磁盘构造

磁盘由盘片组成,每个盘片有两个表面(上面和下面),表面上覆盖着磁性记录材料。一个磁盘包含一个或多个盘片。
每个表面由一系列同心圆(称为磁道)组成,每个磁道被划分为多个扇区,每个扇区包含相同的数据位(一般为512字节)。扇区之间由间隙分隔开,间隙中不存储数据,而存储用来标识扇区的标识信息。
2)磁盘容量
一个磁盘上可以记录的最大位数称为它的最大容量,或者简称为容量。磁盘容量是由以下技术因素决定的:
- 记录密度(recording density):单独决定一个扇区可以存储多少bit(或者至少是磁道的一部分)
- 磁道数(track density):从盘心出发半径一英寸的段内可一有的磁道数。
- 面密度(areal density):记录密度与磁道密度的乘积。

3)磁盘操作

磁盘用读写头来读写存储在磁性表面的位。每个表面都有一个读写头,任何时候所有的读写头都位于同一个柱面上。
读写头位于传动壁的末端,读写头的速度约为 80km/h,距磁盘表面约 1um,因此磁盘是很脆弱的,开机时不要挪动主机更不要拍主机,任何小的震动或者灰尘都会导致读写头撞向磁盘表面,从而导致磁盘损坏。
磁盘读写数据时以扇区为单位,即一次读写一个扇区大小的块。
磁盘通过读写头来读取和写入存储在盘片表面的数据,盘片的每个表面都对应着一个独立的读写头,所有的读写头连接到一个传动臂上,通过传动臂在半径方向上的移动,这样读写头可以读取任意磁道上的数据,这样的运动方式称为寻道。通过这样的运动方式,可以把读写头定位在任意一个磁道上,在完成寻道之后,读写头就不动了。如果想要完成读写数据,需要通过盘片旋转来配合,读写头可以读取相应的数据位也可以修改相应的数据值。
对扇区的访问时间包括三部分:
- 寻道时间:为了读取目标扇区的内容,传动臂首先要将读写头定位到包含目标扇区的磁道上。
- 旋转时间:读写头定位到期望的磁道后,要等待目标扇区的第一个数据位旋转到读写头下。
- 传送时间:平均传送时间是读写头读写完整个扇区的时间。一个扇区的传输时间取决于转速和每个轨道扇区的数量。
因此访问的总时间 = 寻道时间 + 旋转时间 + 传送时间
4)逻辑磁盘块
机械硬盘的内部构造还是很复杂的,从操作系统的角度看整个磁盘被抽形成一个一个的逻辑块序列,每个逻辑块的大小是扇区大小的整数倍,最简单的情况下,逻辑块的大小为一个扇区,即 512 字节。块从0开始编号,块号是一系列增长的数字。
磁盘内部有一个小的固件设备,称为磁盘控制器。磁盘控制器保持物理扇区和逻辑块之间的映射。当操作系统读写磁盘时,发送一个命令到磁盘控制器,这个命令就是让磁盘控制器读取特定逻辑块号的数据,控制器上的固件将特定的逻辑块号翻译为一个唯一(盘面、磁道、扇区)的三元组标识。
磁盘控制器上的固件程序的任务就是将逻辑块号翻译为一个唯一的三元组信息。接下来控制器会根据这个三元组信息来执行对扇区的读写操作,然后读写头会把读到的数据放入到一个缓冲区中,最后将目标数据复制到内存里。
5)机械硬盘优缺点
缺点是读取速度相对较慢,一般是几百MB/S,而固态硬盘都是几千MB/S;由于磁盘做高速旋转,所以噪音较大;抗震能力弱,磁头在受到撞击时会发生位置偏移,然后磁盘就报废了。
优点是价格便宜;读写次数理论上没有上限;而且机械盘中每个数据都有对应的寻址地址,所以硬盘损坏后数据一般可以恢复,当然硬盘是不能在用了。
固态硬盘(SSD)、
- 固态硬盘(Solid State Disk , SSD)是一种基于闪存的存储技术
- SSD封装插到 I/O 总线上标准硬盘插槽(通常是 USB 或 SATA)中,行为就和其他硬盘一样,处理来自 CPU 的读写逻辑磁盘块的请求。
- 一个固态硬盘中封装了一个闪存翻译层和多个闪存芯片。闪存翻译层是一个硬件/固件设备,功能类似磁盘控制器,将对逻辑块的请求翻译成对底层物理设备的访问。

- 如上所示,SSD由许多闪存芯片以及闪存翻译层(flash translation layer)组成,其中闪存翻译层主要扮演与磁盘控制器相同的角色,将对逻辑块的请求翻译成对底层物理设备的访问。
- 读 SSD 比写要快。因为只有在一页(page)所属的块(block)整个被擦除后,才能写这一页。重复写十万次后,块就会磨损,因此固态硬盘寿命较低。随机读和写的性能差别是由底层闪存基本属性决定的。
- 一个闪存由 B 个块的序列组成,每个块由 P 页组成,页的大小为 512byte~4kb,不同闪存芯片的page一般不相同。数据以页为单位进行读写。
- 由于闪存编程(写入)原理的限制,只能将1变为0,而不能将0变成1,所以一个page在写入数据之前,所有的存储位都是1,对于写入操作的本质就是将某些存储位从1变成0,写入的单位是page。
- 而且在写入之前page是需要擦除的,不能够直接覆盖,擦除单位是block,擦除的本质是把所有的存储位变成1。当一个block完成了擦除操作,那么这个block所有的page的存储位都变成了1,此时所有的page都可以执行一个写操作。
- 当经过一定次数的擦除之后,一个block就会发生磨损,一旦发生了磨损,那么这个block就不可以使用了。因此闪存翻译层会使用平均磨损算法将擦除平均到所有的block中,最大化每个block的寿命。
随机写 SSD 很慢的两个原因:
- 擦除块需要相对较长的时间。
- 如果写操作试图修改一个已经有数据的页,那么这个块中所有带有用数据的页都必须复制到一个新的块(擦除过的块),然后才能向该页写数据。
SSD 相比于旋转磁盘HDD的优点:SSD由半导体存储器构成,没有移动机械部件,所以更结实,随机访问速度也更快,能耗更低。
缺点:价格较贵一些,更容易磨损,不过现在的 SSD 已经可以用很多年了。
存储技术趋势、
- 不同的存储技术有不同的价格和性能折中。SRAM 比 DRAM 快一点,而 DRAM 比磁盘要快很多,SDRAM > DRAM > Disk。
- 不同存储技术的价格和性能属性以截然不同的速率变化着。
- DRAM 和磁盘的性能滞后于 CPU 的性能。
- DRAM 和磁盘的性能提升速度滞后于 CPU 的性能提升速度,两者之间的差距越来越大。
Comments NOTHING