开始新对话

未解决

此帖子已超过 5 年

5562

2012年8月31日 00:00

【FAQ】存储基础知识 - 磁盘寻址

1、磁盘寻址

1.1、磁盘驱动器

维基百科网址:http://en.wikipedia.org/wiki/Hard_disk_drive

磁盘物理结构图如下:

image001.jpg                       

磁盘逻辑组成图如下:

image002.png

1.2、什么是CHScylinder head sector

维基百科网址:http://en.wikipedia.org/wiki/Cylinder-head-sector

通过上面材料,我们了解到磁盘通常由多个盘片、多个磁头组成。

每个盘片对应一个磁头(head),每个盘片被化成多个同心圆(track/cylinder),每个同心圆被切断成多个段(sector)。磁盘存储最小单位是sector,那么如何对sector进行定位?

CHS是早期在IBM PC架构上面用来进行磁盘寻址的办法。

CHS是一个三元组,组成如下:

1.       一共24 bit位。

2.       其中前10位表示cylinder,中间8位表示head,后面6位表示sector

3.       最大寻址空间

随着科技大发展,磁盘容量大幅提升。远远超过了8GB寻址范围,如何对8GB之外空间进行寻址?历史上曾经CHS24位扩展到多28位,实现寻址128GB,但是面对现在磁盘2TB容量还是无能为力,下面我们请出最终解决方案LBA

1.3、什么是LBAlogical block addressing

维基百科网址:http://en.wikipedia.org/wiki/Logical_Block_Addressing#CHS_conversion

正如上文所说,LBA是用来取代CHS。那么LBA是怎么实现磁盘寻址?

1.       LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址。

2.       LBA采用48bit位寻址,最大寻址空间128PB

LBACHS转换规则是怎么样的?

CHS->LBA

image003.png

LBA->CHS

image004.png

小结:

不管CHS也好,还是LBA也好。磁盘存储寻址都需要通过cylinderheadsector来实现;CHSLBA都是一个数字,CHS按照固定格式把24bit位分成成cylinderheadsectorLBA则需要通过求模运算得出cylinderheadsector

605 消息

2012年9月3日 19:00

稍后更新:磁盘分区篇

482 消息

2013年9月5日 19:00

很好啊,思路清晰明了!

补充一下:CHS方式寻址是在传统的扇区分布下进行的,即过盘片中心画直线来分扇区;而LBA转换为CHS寻址则使用的ZBR(Zone Bit Recording)方式分配扇区,即圆周上的扇区长短都一样。

找不到事件!

Top