04 数据存储
存储器结构
核心:层次化存储

磁盘存储时间
- 块(Block)是 OS 或 DBMS 进行磁盘数据存取的最小逻辑单元,由若干扇区组成
- 块是 DBMS 中数据存取的最小单元(逻辑)
- 扇区是磁盘中数据存储的最小单元(物理)
读取一个块,实际上是从硬件设备读取一个或多个扇区
读块时间 = 寻道时间+旋转延迟+传输时间+其他时间
\[\begin{align}
T_a&=T_s+T_{r}+T_{t}+other\\
Avg(T_{a})&=T_s+\frac 1 {2r}+\frac{b}{rN}\\
\end{align}
\]
- 在真实情境中,会要求计算“最优”、“平均”、“最坏”情况下的读块时间
- \(T_{s}\) :定位到柱面的时间
- 平均寻道时间:一般在10ms-40ms 之间
- \(T_{r}\) :磁盘转动到块的第一个扇区到达磁头所需的时间
- \(1RPM=\frac{1}{60*1000}r/ms\)
- 平均时间为旋转1/2周所费的时间
- \(T_t\)
- 其他延迟
- CPU 请求 IO 的时间
- 争用磁盘控制器时间
- 征用总线和主存的时间
- 典型情况:0(忽略不计)
- 读取下一块
- 在同一柱面上:\(T_r+T_t\)
- 不在同一柱面
- 写块:如果需要校验块是否正确写入,则需要加上一次旋转时间和一次块传输时间
- 块修改:读块+在内存修改+写块
- 块地址:<物理设备号,柱面号,盘面号(或磁头号),扇区号>
磁盘存储优化
优化方法:
- Random IO to Sequential IO
- 预取/缓冲
- P:在缓冲区处理数据的时间
- R:将数据读入缓冲区的时间
- n:块数
- 单缓冲:\(T=n(P+R)\)
- 多缓冲:
- \(R+nP,P\geq R\),处理每块的平均时间为 \(P\)
- \(nR+P, R\geq P\),处理每块的平均时间为 \(R\)
- 缓冲的缺点
- 主存
- 缓冲区管理
- 维护一致性
- 块大小
- 增大块:减少 IO 次数,增加单次 IO 的时间
- 增大块是趋势
不同存储介质
闪存 SSD
结构:闪存芯片+控制器+FTL(WL, LBA-PBA, GC)
特点:
- 读写不对称(写慢读快)
- 写前擦除:异位更新、块擦除操作
- 寿命有限:块擦除次数有限
- 按页读写
- 按块擦除
一个块由多个页组成
相变存储器 PCM

浙公网安备 33010602011771号