文章目录磁盘存储磁盘构造磁盘操作逻辑磁盘块访问磁盘固态硬盘磁盘存储磁盘构造单盘片构造:::info单个盘片Platter是数据存储 valuation 的载体其表面由内到外被划分为多个同心圆主轴Spindle位于盘片中心负责带动盘片高速旋转。磁道Track盘片表面上的一个个同心圆线条是数据记录的轨迹。扇区Sector如图中“磁道 $ k $”的放大所示每一条磁道被等分为若干个弧段每个弧段就是一个扇区。它是磁盘读写数据的最小物理单位。间隙Gap扇区与扇区之间存在间隙不存储数据主要用于磁头定位和同步。面Surface盘片的物理表面通常上下两面都可以读写数据。:::多盘片构造:::color1实际的硬盘通常由多个盘片堆叠而成引入了三维层面的概念多盘片组合多个盘片如盘片0、盘片1、盘片2共同固定在同一个主轴上同步旋转。盘面编号每个盘片的上下两面都被赋予编号如面0到面5。每个有效的盘面都会配备一个专属的磁头进行读写。柱面Cylinder这是多盘片结构中最核心的概念。所有盘面上半径相同的磁道即重叠在垂直空间上的磁道k kk组合在一起就构成了一个虚拟的圆柱面柱面k kk。总结 磁盘的物理构造可以概括为盘片构成盘面盘面划分磁道磁道切分扇区而不同盘面上相同半径的磁道在纵向上则组合成了柱面。磁盘定位数据正是通过“柱面号-盘面号-扇区号”来实现的。:::磁盘操作磁盘读写数据过程1. 盘片高速旋转寻找扇区恒定转速磁盘表面以固定的旋转速率如常见的 7200 RPM绕着主轴持续旋转如图 a 中左上角的虚线箭头所示。作用旋转让磁道上的不同扇区不断从读/写头下方经过。通过计算时间当目标扇区旋转到磁头下方时即可开始读写这一步消耗的时间称为旋转延迟。2. 传动臂径向寻道寻找磁道径向移动传动臂Actuator Arm的一端固定另一端承载着读/写头。它可以通过横向摆动在盘面的半径方向上前后移动如图 a 中传动臂旁的双向虚线箭头所示。作用通过这种径向移动传动臂可以精确地将读/写头定位到盘面上的任何一条磁道上这一步消耗的时间称为寻道时间。3. 磁头悬浮读写气垫飞翔读/写头Read/Write Head连接在传动臂的末端。当盘片高速旋转时带动空气流磁头会借此在一层薄薄的气垫上悬浮飞翔与盘面保持极近但又不物理接触的微小距离以此来感应或改变盘面的磁性完成数据读写。4. 多盘片同步联动一动百动在多盘片结构中所有的传动臂都固定在同一个机械轴上形成一个整体的传动臂组合。同步定位当传动臂移动时所有盘面上的读/写头会在同一时刻移动到相同的半径位置即同时定位到同一个柱面上。读写时系统通过电子开关在不同的磁头之间切换从而实现多盘面数据的高效并行或连续读写。总结磁盘操作的核心就是“臂动找磁道盘转找扇区”。传动臂负责在半径方向选择磁道主轴带动盘片旋转负责将扇区送到磁头下两者配合加上多磁头同步联动完成了对整个磁盘三维空间内任意数据的精确定位与读写。:::success 磁盘以扇区大小的块来读写数据。对扇区的访问时间有三个主要的部分寻道时间、旋转时间和传送时间。寻道时间为了读取某个目标扇区的内容传动臂首先将读/写头定位到包含目标扇区的磁道上。移动传动臂所需的时间称为寻道时间。旋转时间一旦读/写头定位到了期望的磁道驱动器等待目标扇区的第一个位旋转到读/写头下。这个步骤的性能依赖于当读/写图到达目标扇区时盘面的位置以及磁盘的旋转速度。传送时间当目标扇区的第一个位位于读/写头下时驱动器就可以开始读或者写该扇区的内容了。一个扇区的传送时间依赖于旋转速度和每条磁道的扇区数目。:::逻辑磁盘块为了对上层操作系统屏蔽底层复杂的物理结构如盘片、盘面、磁道、扇区、柱面等系统在磁盘的物理构造之上抽象出了一个逻辑概念——逻辑磁盘块Logical Disk Blocks。逻辑磁盘块的本质是一个一维数组。从操作系统的角度来看整个磁盘不再是复杂的三维机械结构而被抽象为一个一维、连续的逻辑块序列其编号为 $ 0, 1, 2, \dots, B-1KaTeX parse error: Expected EOF, got # at position 20: …t stylecolor:#̲DF2A3F;其中 /…B $ 是磁盘总的逻辑块数。每个逻辑块的尺寸通常对应一个或多个物理扇区的大小例如 512 字节或 4 字节的倍数。操作系统发出的读写指令都是基于“逻辑块号”的。而将这个一维的逻辑块号翻译成物理上的“柱面号、盘面号、扇区号”的过程完全由磁盘上的硬件设备——磁盘控制器内部的固件来完成。当操作系统需要读取逻辑块 $ k $ 时磁盘控制器会执行以下映射逻辑块 k ⟶ ( 柱面 i , 盘面 j , 扇区 m ) \text{逻辑块 } k \longrightarrow (\text{柱面 } i, \text{盘面 } j, \text{扇区 } m)逻辑块k⟶(柱面i,盘面j,扇区m)随后控制器驱动传动臂寻道、盘片旋转将对应的物理扇区数据读取出来。为什么要这样设计隐藏物理缺陷坏块管理机械磁盘在制造或使用过程中难免会出现损坏的物理扇区坏块。磁盘控制器在映射时会自动跳过这些坏块用备用的完好扇区来顶替而操作系统对此完全不知情看到的依然是连续的逻辑块。简化操作系统的设计操作系统不需要关心磁盘到底是单盘片还是多盘片、每个磁道有多少个扇区。它只需要像操作内存一样给出一个一维的地址逻辑块号极大地简化了文件系统和驱动程序的编写。访问磁盘例如图形卡、监视器、鼠标键盘等输入/输出I/O设备都是通过** I/O 总线**连接到 CPU 和主存的。CPU 使用内存映射 I/O 的技术来向 I/O 设备发射命令。在使用内存映射 I/O 的系统中地址空间中有一块地址是为与 I/O 设备通信保留的。每个这样的地址称为一个 I/O 端口。当一个设备连接到总线时它与一个或多个端口相关联或他被映射到一个或多个端口。读一个磁盘扇区的过程阶段 aCPU 发起磁盘读请求操作CPU 通过总线接口向与磁盘控制器相关联的内存映射地址Memory-Mapped I/O写入控制指令。写入内容这些指令包含读命令、需要读取的逻辑块号即目标扇区以及数据应该存入的目的内存地址。特点发出指令后CPU 的初始化工作就完成了不需要留在原地等待磁盘慢吞吞地读数据。阶段 b磁盘控制器执行 DMA 传送操作磁盘控制器接收到 CPU 的物理指令后驱动磁盘硬件找到对应扇区并读取数据。随后磁盘控制器接管总线直接将数据传送到主存内存中而不需要 CPU 的干预。特点这种不需要 CPU 参与、硬件直接与内存交换数据的技术称为DMADirect Memory Access。在这个过程中CPU 可以转去执行其他任务 CPU 内部此时是断开、独立的大大提高了系统效率。阶段 c磁盘控制器发出中断通知 CPU操作当整个扇区的数据全部被安全地传送到主存后磁盘控制器通过 I/O 总线向 CPU 芯片的一个引脚发送一个中断信号Interrupt。特点中断会打断 CPU 当前正在执行的工作。CPU 收到信号后得知磁盘数据已经准备就绪随后其内部的操作系统就会接管并开始使用刚刚读入主存的这批磁盘数据。一句话总结读磁盘扇区的全过程就是CPU 发起请求磁盘控制器通过 DMA 悄悄把数据搬到内存搬完后控制器发中断喊 CPU 过来收货。固态硬盘固态硬盘SSD 是一种基于闪存的存储技术一个 SSD 封装由一个或多个闪存芯片和闪存翻译层组成闪存芯片替代传统旋转磁盘中的机械驱动器而闪存翻译层是一个硬件/固件设备扮演与磁盘控制器相同的角色将对逻辑块的请求翻译成对底层物理设备的访问。读 SSD 比写要块随机写很慢有两个原因擦除块需要相对较长的时间1ms 级的比访问页所需时间要高一个数量级。如果写操作试图修改一个包含已经有数据的页 P那么这个块中所有带有用数据的页都必须被复制到一个新块然后才能进行对页 P 的写。
存储器层次结构——磁盘硬盘存储
文章目录磁盘存储磁盘构造磁盘操作逻辑磁盘块访问磁盘固态硬盘磁盘存储磁盘构造单盘片构造:::info单个盘片Platter是数据存储 valuation 的载体其表面由内到外被划分为多个同心圆主轴Spindle位于盘片中心负责带动盘片高速旋转。磁道Track盘片表面上的一个个同心圆线条是数据记录的轨迹。扇区Sector如图中“磁道 $ k $”的放大所示每一条磁道被等分为若干个弧段每个弧段就是一个扇区。它是磁盘读写数据的最小物理单位。间隙Gap扇区与扇区之间存在间隙不存储数据主要用于磁头定位和同步。面Surface盘片的物理表面通常上下两面都可以读写数据。:::多盘片构造:::color1实际的硬盘通常由多个盘片堆叠而成引入了三维层面的概念多盘片组合多个盘片如盘片0、盘片1、盘片2共同固定在同一个主轴上同步旋转。盘面编号每个盘片的上下两面都被赋予编号如面0到面5。每个有效的盘面都会配备一个专属的磁头进行读写。柱面Cylinder这是多盘片结构中最核心的概念。所有盘面上半径相同的磁道即重叠在垂直空间上的磁道k kk组合在一起就构成了一个虚拟的圆柱面柱面k kk。总结 磁盘的物理构造可以概括为盘片构成盘面盘面划分磁道磁道切分扇区而不同盘面上相同半径的磁道在纵向上则组合成了柱面。磁盘定位数据正是通过“柱面号-盘面号-扇区号”来实现的。:::磁盘操作磁盘读写数据过程1. 盘片高速旋转寻找扇区恒定转速磁盘表面以固定的旋转速率如常见的 7200 RPM绕着主轴持续旋转如图 a 中左上角的虚线箭头所示。作用旋转让磁道上的不同扇区不断从读/写头下方经过。通过计算时间当目标扇区旋转到磁头下方时即可开始读写这一步消耗的时间称为旋转延迟。2. 传动臂径向寻道寻找磁道径向移动传动臂Actuator Arm的一端固定另一端承载着读/写头。它可以通过横向摆动在盘面的半径方向上前后移动如图 a 中传动臂旁的双向虚线箭头所示。作用通过这种径向移动传动臂可以精确地将读/写头定位到盘面上的任何一条磁道上这一步消耗的时间称为寻道时间。3. 磁头悬浮读写气垫飞翔读/写头Read/Write Head连接在传动臂的末端。当盘片高速旋转时带动空气流磁头会借此在一层薄薄的气垫上悬浮飞翔与盘面保持极近但又不物理接触的微小距离以此来感应或改变盘面的磁性完成数据读写。4. 多盘片同步联动一动百动在多盘片结构中所有的传动臂都固定在同一个机械轴上形成一个整体的传动臂组合。同步定位当传动臂移动时所有盘面上的读/写头会在同一时刻移动到相同的半径位置即同时定位到同一个柱面上。读写时系统通过电子开关在不同的磁头之间切换从而实现多盘面数据的高效并行或连续读写。总结磁盘操作的核心就是“臂动找磁道盘转找扇区”。传动臂负责在半径方向选择磁道主轴带动盘片旋转负责将扇区送到磁头下两者配合加上多磁头同步联动完成了对整个磁盘三维空间内任意数据的精确定位与读写。:::success 磁盘以扇区大小的块来读写数据。对扇区的访问时间有三个主要的部分寻道时间、旋转时间和传送时间。寻道时间为了读取某个目标扇区的内容传动臂首先将读/写头定位到包含目标扇区的磁道上。移动传动臂所需的时间称为寻道时间。旋转时间一旦读/写头定位到了期望的磁道驱动器等待目标扇区的第一个位旋转到读/写头下。这个步骤的性能依赖于当读/写图到达目标扇区时盘面的位置以及磁盘的旋转速度。传送时间当目标扇区的第一个位位于读/写头下时驱动器就可以开始读或者写该扇区的内容了。一个扇区的传送时间依赖于旋转速度和每条磁道的扇区数目。:::逻辑磁盘块为了对上层操作系统屏蔽底层复杂的物理结构如盘片、盘面、磁道、扇区、柱面等系统在磁盘的物理构造之上抽象出了一个逻辑概念——逻辑磁盘块Logical Disk Blocks。逻辑磁盘块的本质是一个一维数组。从操作系统的角度来看整个磁盘不再是复杂的三维机械结构而被抽象为一个一维、连续的逻辑块序列其编号为 $ 0, 1, 2, \dots, B-1KaTeX parse error: Expected EOF, got # at position 20: …t stylecolor:#̲DF2A3F;其中 /…B $ 是磁盘总的逻辑块数。每个逻辑块的尺寸通常对应一个或多个物理扇区的大小例如 512 字节或 4 字节的倍数。操作系统发出的读写指令都是基于“逻辑块号”的。而将这个一维的逻辑块号翻译成物理上的“柱面号、盘面号、扇区号”的过程完全由磁盘上的硬件设备——磁盘控制器内部的固件来完成。当操作系统需要读取逻辑块 $ k $ 时磁盘控制器会执行以下映射逻辑块 k ⟶ ( 柱面 i , 盘面 j , 扇区 m ) \text{逻辑块 } k \longrightarrow (\text{柱面 } i, \text{盘面 } j, \text{扇区 } m)逻辑块k⟶(柱面i,盘面j,扇区m)随后控制器驱动传动臂寻道、盘片旋转将对应的物理扇区数据读取出来。为什么要这样设计隐藏物理缺陷坏块管理机械磁盘在制造或使用过程中难免会出现损坏的物理扇区坏块。磁盘控制器在映射时会自动跳过这些坏块用备用的完好扇区来顶替而操作系统对此完全不知情看到的依然是连续的逻辑块。简化操作系统的设计操作系统不需要关心磁盘到底是单盘片还是多盘片、每个磁道有多少个扇区。它只需要像操作内存一样给出一个一维的地址逻辑块号极大地简化了文件系统和驱动程序的编写。访问磁盘例如图形卡、监视器、鼠标键盘等输入/输出I/O设备都是通过** I/O 总线**连接到 CPU 和主存的。CPU 使用内存映射 I/O 的技术来向 I/O 设备发射命令。在使用内存映射 I/O 的系统中地址空间中有一块地址是为与 I/O 设备通信保留的。每个这样的地址称为一个 I/O 端口。当一个设备连接到总线时它与一个或多个端口相关联或他被映射到一个或多个端口。读一个磁盘扇区的过程阶段 aCPU 发起磁盘读请求操作CPU 通过总线接口向与磁盘控制器相关联的内存映射地址Memory-Mapped I/O写入控制指令。写入内容这些指令包含读命令、需要读取的逻辑块号即目标扇区以及数据应该存入的目的内存地址。特点发出指令后CPU 的初始化工作就完成了不需要留在原地等待磁盘慢吞吞地读数据。阶段 b磁盘控制器执行 DMA 传送操作磁盘控制器接收到 CPU 的物理指令后驱动磁盘硬件找到对应扇区并读取数据。随后磁盘控制器接管总线直接将数据传送到主存内存中而不需要 CPU 的干预。特点这种不需要 CPU 参与、硬件直接与内存交换数据的技术称为DMADirect Memory Access。在这个过程中CPU 可以转去执行其他任务 CPU 内部此时是断开、独立的大大提高了系统效率。阶段 c磁盘控制器发出中断通知 CPU操作当整个扇区的数据全部被安全地传送到主存后磁盘控制器通过 I/O 总线向 CPU 芯片的一个引脚发送一个中断信号Interrupt。特点中断会打断 CPU 当前正在执行的工作。CPU 收到信号后得知磁盘数据已经准备就绪随后其内部的操作系统就会接管并开始使用刚刚读入主存的这批磁盘数据。一句话总结读磁盘扇区的全过程就是CPU 发起请求磁盘控制器通过 DMA 悄悄把数据搬到内存搬完后控制器发中断喊 CPU 过来收货。固态硬盘固态硬盘SSD 是一种基于闪存的存储技术一个 SSD 封装由一个或多个闪存芯片和闪存翻译层组成闪存芯片替代传统旋转磁盘中的机械驱动器而闪存翻译层是一个硬件/固件设备扮演与磁盘控制器相同的角色将对逻辑块的请求翻译成对底层物理设备的访问。读 SSD 比写要块随机写很慢有两个原因擦除块需要相对较长的时间1ms 级的比访问页所需时间要高一个数量级。如果写操作试图修改一个包含已经有数据的页 P那么这个块中所有带有用数据的页都必须被复制到一个新块然后才能进行对页 P 的写。