荣耀之链论坛

 找回密码
 立即注册
搜索
查看: 648|回复: 0

512n\512e\4Kn硬盘的三种扇区格式有何区别?

[复制链接]

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
发表于 2023-5-22 18:37 | 显示全部楼层 |阅读模式
https://zhuanlan.zhihu.com/p/542621332

转自本人公众号: 梭鱼侃存储
很多人都在疑惑标题所述的三种扇区格式到底有什么差别,本期就讲它们。

512n:传统512byte扇区。


512e:模拟512byte(Emulation)

4kn:原生4K byte(Native)

因早期硬盘可靠性不够好,为了保证数据错误率在可接受范围内,因此扇区都是以 512 byte大小的扇区为单位存储数据。故每个扇区大小为 512 byte,在扇区的数据之间,需间隔一个区域和一个ECC 错误校验区域 (40 byte)。扇区有效率利用率约不足90%。

随着硬盘制造技术的完善以及对扇区利用率提出新的要求,若以每512byte ECC校验无疑是浪费。设计者便将硬盘扇区升级为4K byte,也就是我们说的高级格式(AF格式)。




该技术等于是将传统8个扇区合并成一个,仅需一个同步/分隔区和一个100 byte ECC校验区。保存同样的 4K byte 数据,AF格式占用显然更低,能节约200 byte空间,而扇区利用率约98%。






由于硬盘扇区格式是硬盘本身决定非操作系统。因此,4Kn扇区读写需要操作系统支持。遗憾的是,不是所有操作系统都支持4Kn。为了更好的兼容性硬盘厂家推出512e格式的硬盘。

这种通过硬盘的固件算法将512byte扇区模拟成4Kn扇区。操作系统中读写的扇区使用 512byte的逻辑扇区(LBA)地址来标注写入地址。实际硬盘写入的时候是按照4Kn物理模式写入。

譬如:

待写入的数据块 LBA 是 100,当真正写入数据时,512e硬盘的固件会把它映射到物理地址XYZ(编号为XYZ的数据块,起始编号为 0) 的扇区。

因待写数据是512字节,小于物理扇区大小,所以需要把物理地址为XYZ的 4K字节整个读出来,再改写逻辑地址LBA100数据对应的位置,然后才能把整个扇区真正写入物理扇区,会拖累写效率。

当大于 4K 的数据块写入 512e 硬盘时,由于一次写入的扇区大小就是 4K,所以写效率较高。

写入512e硬盘的数据块小于4K时,操作系统就必需经过读取→修改→写入的复杂过程,写效率下降。

若写数据存在小于4KB较多的应用,建议使用传统512 byte扇区硬盘更为合理。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

荣耀之链

GMT+8, 2025-6-18 05:01 , Processed in 0.012480 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表