【存储技术基础】磁盘技术

本讲内容HDD好弟弟:

  • 磁盘的构成和各个部分的功能
  • 磁盘的性能和评估方式
  • 磁盘固件的功能,固件算法

推荐阅读:Memory System: Cache,DRAM,Disk.Author: Bruce Jacob, Spencer W. Ng, David T.Wang

0x00 组成

转轴,盘片,磁头

track 磁道,每个盘片的正面和背面的同心圆

对于盘片每个面是surface,每个track磁道分为多个sector(扇区)

所有盘片上同一个位置的track是一个cylinder(柱面)

寻址

物理编址:CHS,Cylinder-Head-Sector 定位一个块的位置

根据柱面-磁头-扇区来访问

右边图示表示逻辑块地址,每个柱面可以从上到下顺序编址,组成线性结构

IMG_0448

0x01 性能评估

  • 电子设备
    • 电路驱动
  • 机械设备
    • seek time 磁头运动速度
    • rotational latency 转轴旋转速度
    • data transfer rate 数据传输速率

$磁盘访问时间=磁头运动速度+转轴旋转速度+数据传输速度$

Seek time

inner和outter track中进行移动,到达对应的track所消耗的时间

评价方法:

  • Full stroke 里圈到外圈
  • Average 移动到中间所花费的时间
  • Track-to-track 两个磁道间的移动时间

Rotational Latency

平均旋转速度:转半圈的时间

厂商使用转速来标称

rpm: round per min $$ {\rm Rotational\ Latency}=\frac{1}{2}*\frac{1}{\frac{x\ rpm}{60}} $$

Data Transfer Time

分为内部传输和外部传输

内部传输是磁介质到Buffer

外部传输是从接口到主机,例如SATA接口 $$ {\rm Transfer\ time=\frac{Block\ size}{Transfer\ rate(带宽)}} $$ 还有电子控制部件延迟,一般而言可以忽略,以上都是毫秒量级

大部分时间开销在Seek Time,接近60%

I/O Controller利用率越高,会导致平均的延迟升高

Data Rate: Inner vs. Outer Tracks

磁盘在里圈和外圈的传输速率不同,外圈数据密度小,磁盘转速恒定(角速度相同),外圈的线速度大,外部磁道有更大的数据速率

在操作系统视角来说,内外圈速率相同,实际外圈要快,是里圈的1.7倍

0x02 磁盘固件和调度

ASIC:

  • 信号处理
  • 容错
  • 驱动处理
  • 马达控制
  • 缓存控制

firmware:

  • 请求处理
  • 请求排队和调度
  • LBN-to-PBN 逻辑地址到物理地址的映射

映射逻辑地址到sector

一般块大小为512bytes或4KB,块的数量为容量/块大小

磁盘上的数据编址如图所示,以sector为基础,在track内连续,减少rotational latency

image-20220921164047132

不同盘面上的编址分为正面和背面,都会进行编址,还有以柱面为基准的编址,减少seek time。

一般情况下:

  • 盘片为1-5个,2-10个盘面
  • 每个面磁道数为10s - 100s,1000s
  • 每个磁道上的扇区有500-4000个,每个磁道大小为250KB-2MB

LBN寻址:

  1. 柱面号=LBN/每个柱面的磁道数
  2. 盘面号=(LBN对每个柱面的磁道数取模)/每个磁道的扇区数
  3. 扇区号=LBN对每个磁道的扇区数取模

讲解了几种调度算法:

  • FCFS 先来先服务
  • SSTF 最近先服务,有饥饿问题
  • SCAN 先往一个方向走,再往另一个方向扫描
  • C-SCAN 单向走
  • LOOK 相较于SCAN不走0和边界
  • C-LOOK 相较于C-SCAN不走边界

评估指标:平均访问延迟,一般SSTF,C-LOOK

缺陷 第三讲开头部分

机械式部件限制了性能,继续提升会产生一些物理问题

带宽提升有限

存在能耗问题,需要通电、散热冷却等开销

随机访问的性能差

0%