【存储技术基础】磁盘技术
本讲内容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 定位一个块的位置
根据柱面-磁头-扇区来访问
右边图示表示逻辑块地址,每个柱面可以从上到下顺序编址,组成线性结构
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
不同盘面上的编址分为正面和背面,都会进行编址,还有以柱面为基准的编址,减少seek time。
一般情况下:
- 盘片为1-5个,2-10个盘面
- 每个面磁道数为10s - 100s,1000s
- 每个磁道上的扇区有500-4000个,每个磁道大小为250KB-2MB
LBN寻址:
- 柱面号=LBN/每个柱面的磁道数
- 盘面号=(LBN对每个柱面的磁道数取模)/每个磁道的扇区数
- 扇区号=LBN对每个磁道的扇区数取模
讲解了几种调度算法:
- FCFS 先来先服务
- SSTF 最近先服务,有饥饿问题
- SCAN 先往一个方向走,再往另一个方向扫描
- C-SCAN 单向走
- LOOK 相较于SCAN不走0和边界
- C-LOOK 相较于C-SCAN不走边界
评估指标:平均访问延迟,一般SSTF,C-LOOK
缺陷 第三讲开头部分
机械式部件限制了性能,继续提升会产生一些物理问题
带宽提升有限
存在能耗问题,需要通电、散热冷却等开销
随机访问的性能差