1、磁盘寻址
1.1、磁盘驱动器
维基百科网址:http://en.wikipedia.org/wiki/Hard_disk_drive
磁盘物理结构图如下:
磁盘逻辑组成图如下:
1.2、什么是CHS(cylinder 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之外空间进行寻址?历史上曾经CHS从24位扩展到多28位,实现寻址128GB,但是面对现在磁盘2TB容量还是无能为力,下面我们请出最终解决方案LBA。
1.3、什么是LBA(logical block addressing)
维基百科网址:http://en.wikipedia.org/wiki/Logical_Block_Addressing#CHS_conversion
正如上文所说,LBA是用来取代CHS。那么LBA是怎么实现磁盘寻址?
1. LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址。
2. LBA采用48个bit位寻址,最大寻址空间128PB。
LBA与CHS转换规则是怎么样的?
CHS->LBA
LBA->CHS
小结:
cylinder、head、sector这三个变量
补充一下:
a、
CHS方式寻址是在传统的扇区分布下进行的,即过盘片中心画直线来分扇区,具体如下图所示:
(图片来自【程序员应该知道的】硬盘基本知识)
而LBA转换为CHS寻址则使用的ZBR(Zone Bit Recording)方式分配扇区,即圆周上的扇区长短都一样。
b、
一个柱面是
磁盘低级格式化程序采用不同的寻址方式算法时,盘面划分后的图像也不一样(如上图)。
LBA
c、
寻址方式的寻址空间在大概8GB以内,所以
参考:https://community.emc.com/message/659692
==============================================================
文件管理设备
参考:
http://www.aiseminar.cn/bbs/forum.php?mod=viewthread&tid=1849
======================================================================
回答:
1、
NORMAL 普通模式是最早的 IDE 方式,在硬盘访问时,BIOS 和 IDE 控制器对参数不做任何转换。该模式支持的最大柱面数 为 1024,最大磁头数为 16,最大扇区数为 63,每扇区字节数为 512,因此支持最大硬盘的容量为:512x63x16x1024=528MB。 在此模式下,硬盘的实际物理容量再大,也只能用到其中的 528M。 LBA(Logical Block Addressing)逻辑块寻址模式。管理的硬盘空间可达 8.4GB。在 LBA 模式下,设置的柱面、磁头、扇区等 参数并不是实际硬盘的物理参数。在访问硬盘时,由 IDE 控制器把由柱面、磁头、扇区等参数确定的逻辑地址转换为实际硬盘的 物理地址。在 LBA 模式下,可设置的最大磁头数为 255,其余参数与普通模式相同,由此可以计算出可访问的硬盘容量 为:512x63x255x1025=8.4GB。不过现在新主板的 BIOS 对 INT13 进行了扩展,使得 LBA 能支持 100GB 以上的硬盘。 LARGE 大硬盘模式,在硬盘的柱面超过 1024 而又不为 LBA 支持时采用。LARGE 模式采用的方法是把柱面数除以 2,把磁头数 乘以 2,其结果总容量不变。 在这三种硬盘模式中,现在 LBA 模式使用最多。 早些时候出产的主板大多使用28bit LBA硬盘寻址方式,而LBA方式是指以逻辑块方式使用硬盘的,其中每个逻辑块的大小是 512字节。于是在28位LBA硬盘寻址方式下,逻辑块数目的理论极限是2的28次方即268435456块,每块乘以512字节,则硬盘的 理论容量极限就是:268435456(块)*512(字节)=137,438,953,472字节=137GB。当然,这也是由于以前人们使用的硬盘的 大小通常都较小,主板的发展脚步要落后于硬盘的发展,后来到了硬盘已经超过137GB大小的时候,主板生产规则还停留在采用 28bit LBA硬盘寻址的时代,于是137GB容量限制的就来了! 显然,对于硬盘生产厂家来说,解决这个137G容量极限的方法其实 是非常简单的,只要使用更高的硬盘寻址位数就可以了。目前所有容量超过137G的IDE/ATA硬盘,使用的都是48位LBA寻址方式, 而48位LBA寻址方式的理论容量极限是144,115,188,075,855,872字节=144,000,000 GB!很显然,在未来的许多年,这个容量 极限绝对够用了! 对于硬盘的生产商而言,他们是不会生产容量正好是137GB的硬盘的,如果你的主板BIOS在开机检测中报告的 容量正好是137G,那么可以断定你的系统不支持48位LBA硬盘寻址方式。
硬盘的寻址模式,通俗地说,就是主板BIOS通过什么方式,查找硬盘低级格式化划分出来的扇区的位置。
适应不同的硬盘的容量,有不同的寻址模式:
CHS(或称为Normal)模式: 适应容量≤504MB的硬盘
LARGE(或称LRG)模式: 适应504MB≤容量≤8.4GB的硬盘
LBA(Logical Block Addressing)模式: 适应容量≥504MB的硬盘,但BIOS需支持扩展INT13H,否则也只能适应≤8.4GB的硬盘
以上三种寻址模式,可在BIOS设置的“STANDARD CMOS SETUP"项目中的“MODE"选项中选择(以AWARD BIOS为例)。
由于LARGE、LBA寻址模式采用了逻辑变换算法,比CHS复杂。但到目前为止大多数的资料、磁盘工具类软件中,采用的硬盘参数介绍
和计算方法却还是按照相对而言比较简单的CHS寻址模式,因此,CHS寻址模式是硬盘寻址模式的基础,理解CHS寻址模式,对目前而
言的硬盘使用和维护,还是很有用的。
CHS寻址模式:
① CHS寻址模式将硬盘划分为磁头(Heads)、柱面(Cylinder)、扇区(Sector)。
△磁头(Heads):如本文第一条“了解硬盘的物理结构"第2小点所提到的,每张磁片的正反两面各有一个磁头,一个磁头对应一张磁片
的一个面。因此,用第几磁头就可以表示数据在哪个磁面。
△柱面(Cylinder):所有磁片中半径相同的同心磁道构成“柱面",意思是这一系列的磁道垂直叠在一起,就形成一个柱面的形状。
简单地理解,柱面就是磁道。
△扇区(Sector):将磁道划分为若干个小的区段,就是扇区。虽然很小,但实际是一个扇子的形状,故称为扇区。每个扇区的容量
为512字节。
② 知道了磁头数、柱面数、扇区数,就可以很容易地确定数据保存在硬盘的哪个位置。也很容易确定硬盘的容量,其计算公式是:
硬盘容量=磁头数×柱面数×扇区数×512字节
LARGE寻址模式:
LARGE寻址模式把柱面数除以整数倍、磁头数乘以整数倍而得到的逻辑磁头/柱面/扇区参数进行寻址,所以表示的已不是硬盘中的物理位置,