硬盘存储、光盘存储器和固态硬盘是计算机系统中常见的三类外部存储技术,各自具有不同的结构、工作原理和应用场景。
-
硬盘存储(HDD)
- 结构与参数:
硬盘由多个盘片堆叠而成,盘片表面涂有磁性材料。每个盘片两面都有对应的磁头用于读写。盘片高速旋转,磁头在盘片上方移动以访问不同位置的数据。- 磁道(Track):盘片被划分为多个同心圆环,称为磁道,从外向内编号。
- 扇区(Sector):每个磁道被等分为若干扇区,常见每扇区大小为512字节或4KB。
- 柱面(Cylinder):所有盘片上相同半径的磁道组成一个柱面,便于寻址优化。
- 道密度(tpi, tracks per inch):单位长度上的磁道数,反映径向存储密度。
- 位密度(bpi, bits per inch):沿磁道方向单位长度可记录的位数;由于内圈周长短,为保持线性密度一致,常采用区域位记录(ZBR),使内外圈存储效率更高。
- 寻址方式:使用CHS地址(Cylinder-Cylinder-Head-Sector)或现代的LBA逻辑块地址。
- 容量计算:
- 非格式化容量 = 面数 × 每面磁道数 × 每磁道扇区数 × 每扇区原始位数(含冗余)
- 格式化容量 = 面数 × 磁道数 × 扇区数 × 每扇区有效数据字节数(如512B)
- 分类:
- 固定盘片/移动磁头:常见于传统机械硬盘;
- 固定磁头型:磁头不移动,适用于高速存取但成本高。
- 结构与参数:
-
光盘存储器(Optical Disk)
- 类型:
- 只读型(CD-ROM、DVD-ROM):出厂时信息已压模刻录,用户只能读取。
- 只写一次型(WORM, Write Once Read Many):如CD-R,用户可通过激光烧蚀介质写入一次,之后不可更改。
- 可擦除型(Rewritable):如CD-RW、DVD-RAM,利用相变材料或磁光效应实现多次擦写。
- 特点:
- 记录密度高,单张光盘可达数GB至数十GB;
- 非接触式读写,减少磨损;
- 数据保存寿命长(>10年),适合归档;
- 传输速率较高(尤其多通道并行时可达200Mb/s以上);
- 缺点是随机存取时间较长,读写速度低于HDD和SSD。
- 类型:
-
固态硬盘(SSD)
- 存储介质:
- 闪存型(FLASH-based SSD):主流类型,基于NAND Flash芯片,断电后数据不丢失,广泛用于消费级和企业级设备。
- 分类:SLC(单层单元)、MLC(多层)、TLC(三层)、QLC(四层),逐级提升密度但降低耐久性和速度。
- DRAM型 SSD(RAM Disk):将动态随机存取存储器用作存储介质,极高速度,但需持续供电,通常配备备用电源或电池以防止数据丢失,多用于高性能计算场景。
- 闪存型(FLASH-based SSD):主流类型,基于NAND Flash芯片,断电后数据不丢失,广泛用于消费级和企业级设备。
- 优点:
- 无机械部件,抗震性强;
- 读写速度快,尤其是随机访问性能远超HDD;
- 功耗低、噪音小、启动快。
- 缺点:
- 单位容量价格较高(相比HDD);
- 写入次数有限(尤其TLC/QLC),存在寿命限制;
- 数据长期不通电可能丢失(约几年)。
CHS(Cylinder-Head-Sector)和LBA(Logical Block Address)是硬盘用于定位数据的两种寻址方式,它们之间的转换是为了兼容早期硬件设计与现代操作系统对大容量存储的管理需求。
- 存储介质:
1. CHS 寻址
CHS 是一种物理寻址方式,直接对应硬盘的物理结构:
- Cylinder(柱面):所有盘片上相同半径的磁道组成一个柱面。
- Head(磁头):每个盘面有一个读写磁头,编号从0开始。
- Sector(扇区):每个磁道被划分为若干扇区,通常每扇区512字节。
例如,地址 (C=2, H=1, S=3) 表示第2号柱面、第1号磁头对应的盘面、第3号扇区。
局限性:
- 受限于BIOS和接口协议(如IDE),CHS参数有最大值限制(如最多1024个柱面、16个磁头、63个扇区),导致最大支持容量仅为约 8.4 GB(1024×16×63×512B)。
- 现代硬盘实际使用ZBR(区域位记录)等技术,磁道扇区数不固定,难以用统一CHS描述。
2. LBA 寻址
LBA 是一种线性逻辑寻址方式,将所有可用扇区按顺序编号,从0开始递增。
例如:
- LBA=0 对应第一个扇区;
- LBA=1 对应第二个扇区;
- …
- LBA=N 对应第 N+1 个扇区。
这种方式屏蔽了复杂的物理结构,便于操作系统统一管理和访问。
3. CHS 与 LBA 的转换关系
(1)LBA → CHS 转换公式(已知LBA,求CHS)
假设:
- 每柱面磁道数 = H_total(即磁头数)
- 每磁道扇区数 = S_per_track(通常为63)
则:
C = LBA ÷ (H_total × S_per_track)
H = (LBA mod (H_total × S_per_track)) ÷ S_per_track
S = (LBA mod S_per_track) + 1
注:扇区号从1开始,因此 S 要加1;而LBA、C、H均从0开始。
(2)CHS → LBA 转换公式(已知CHS,求LBA)
LBA = (C × H_total + H) × S_per_track + (S - 1)
实际应用中的演变
- 早期PC BIOS 使用 CHS:在MBR分区表和DOS时代广泛使用。
- 扩展CHS(ECHS)或LBA模拟:为突破8.4GB限制引入的过渡方案。
- 现代系统完全使用 LBA:AHCI、NVMe 接口均基于LBA,CHS仅作为兼容抽象存在,甚至不再反映真实物理结构。
示例
设 H_total = 16,S_per_track = 63
求 LBA=100 对应的 CHS:
C = 100 ÷ (16 × 63) = 100 ÷ 1008 = 0
H = (100 mod 1008) ÷ 63 = 100 ÷ 63 = 1(整除取商)
S = (100 mod 63) + 1 = 37 + 1 = 38
→ CHS = (0, 1, 38)
反向验证:
LBA = (0×16 + 1) × 63 + (38 - 1) = 63 + 37 = 100 ✅
总结
| 特性 | CHS | LBA |
|---|---|---|
| 类型 | 物理/几何寻址 | 逻辑/线性寻址 |
| 是否连续 | 不连续(跳柱面) | 连续 |
| 容量限制 | 有(<8.4GB) | 无(可达TB级) |
| 当前用途 | 历史遗留、仿真 | 主流标准 |
如今,CHS主要用于理解底层原理或处理老式系统问题,而LBA已成为硬盘寻址的事实标准。


4935

被折叠的 条评论
为什么被折叠?



