本文主要是介绍【FAQ】存储基础知识 - 磁盘寻址(CHS寻址方式、LBA寻址方式),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【FAQ】存储基础知识 - 磁盘寻址
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
小结:
不管CHS(寻址方式)也好,还是LBA(寻址方式)也好。磁盘存储寻址都需要通过cylinder、head、sector这三个变量来实现;CHS、LBA都是一个数字,CHS按照固定格式把24个bit位分成cylinder、head、sector;LBA则需要通过求模运算得出cylinder、head、sector。即由chs值可以直接获得cylinder、head、sector这三个变量的值,而由LBA值则需要通过运算间接得出cylinder、head、sector这三个变量的值。
补充一下:
a、
CHS方式寻址是在传统的扇区分布下进行的,即过盘片中心画直线来分扇区,具体如下图所示:
(图片来自【程序员应该知道的】硬盘基本知识)
而LBA转换为CHS寻址则使用的ZBR(Zone Bit Recording)方式分配扇区,即圆周上的扇区长短都一样。
b、
磁盘在经过磁盘低级格式化程序格式化后,才出现有扇区、磁道这些对象(一个柱面是由各个盘面上的同一位置的磁道组成的,所以柱面不是磁盘低级格式化程序直接产生出来的对象,而是由磁道这个对象引申出来的一个概念)的。
(不同的)磁盘低级格式化程序采用不同的寻址方式算法时,盘面划分后的图像也不一样(如上图)。
一个磁盘,比如,原先使用的CHS寻址方式,后来可以修改为LBA寻址方式,当然这样盘面划分后的图像也变了,总之,一个磁盘可以修改它的寻址方式。
c、
还有,由于CHS寻址方式的寻址空间在大概8GB以内,所以在磁盘容量小于大概8GB时,可以使用CHS寻址方式或是LBA寻址方式;在磁盘容量大于大概8GB时,则只能使用LBA寻址方式。
参考:https://community.emc.com/message/659692
==============================================================
137GB、2.1TB硬盘容量限制和CHS、LBA寻址及GPT分区表、UEFI/EFI
引言:各种寻址方式的所能寻址的寻址空间收到限制跟各个层次上 寻址方式所能使用的寄存器个数(CPU的 寄存器个数对应能支持的操作系统的位数,BIOS 的各个层次的寄存器个数对应能支持的 寻址空间大小)有关。目前市场上的硬盘价格越来越低,相比以前同样价格买的硬盘容量越来越大。但是更换硬盘时,也要注意你的PC主板是否支持目前的大容量硬盘。计算机的发展一直受着硬盘容量限制或BIOS(软件系统,主板是其硬件载体)访问容量限制的制约。
要明白这个原因我们需要对IDE接口硬盘的工作方式做一个介绍,即使到现在我们今天的IDE硬盘驱动依旧使用早先的DOS-BIOS(磁盘操作系统-基本输入/输出系统)的分层结构上。它的基本工作模式就是:程序调用->DOS功能调用->文件管理设备->INT 13中断管理(读/写)->BIOS磁盘服务->IDE(ATA)界面->磁盘控制器。也就是说我们如果需要对硬盘进行操作必须通过以上的一系列步骤才能完成,那么我们以下一起来看看这一系列步骤的作用。
文件管理设备
其负责文件及其在磁盘上存储位置之间的映射关系,不过需要通过磁盘读写中断INT13执行读写命令来存储、调入文件。当新文件被保存时,文件管理器决定它在当前目录里的存储位置,在文件分配表中为这个新文件添加文件目录项,并把文件写入磁盘。当读文件时,文件管理器在FAT中找到文件在磁盘上的位置,接着就调入文件。
IDE(ATA) 界面
在介绍IDE(ATA)界面前,简单说说硬盘的结构:硬盘分为一定数量的柱面(以硬盘中心为圆心的同心圆磁迹),每个柱面都需要磁头来读写数据。另外,硬盘上的数据都是以每扇区512字节的格式存储的,所有的数据传输都是以扇区(柱面被等分的园弧磁迹)为单位的。IDE(ATA)界面是寄存器驱动式的并口总线。要传输数据,BIOS首先往IDE(ATA)里特定的寄存器写入数据的开始地址和数据传输的长度,再把有关的读/写命令往特定的寄存器里发送从而开始数据传输。
现在的硬盘一般都支持逻辑块寻址(LBA)和柱面磁头扇区寻址(CHS),我们以CHS寻址方式来举例:数据传输的开始地址是写到4个8位寄存器里的,分别是:
柱面低位寄存器
柱面高位寄存器
扇区寄存器
设备/磁头寄存器
柱面地址是16位[柱面低位寄存器(8位),柱面高位寄存器(8位)],扇区地址是8位(注意:扇区寄存器里第一个扇区是1扇区,而不是0扇区),而磁头地址是4位(没有完全占用8位)。因此,硬盘柱面的最大数是65,536(2的16次方),磁头的最大数是16(2的4次方),扇区的最大数是255(2的8次方-1,注意刚刚我们提到的扇区寄存器问题)。
所以,能寻址的最大扇区数是267,386,880 (65,536x16x255)。一扇区又是512字节,也就是说如果以CHS寻址方式,IDE硬盘的最大容量为136.9GB。LBA寻址方式,上述的总共28位可用的寄存器空间(16+8+4)被看作一个完整的LBA地址,因为包括位0(CHS里扇区不能从0开始计算),其能寻址的扇区数是268,435,456 (65,536x16x256),这时IDE硬盘的最大容量为137.4GB。
INT 13管理
INT 13管理其实也是按照寄存器的模式来设计的,它的高层即文件管理器层发布数据读写命令和有关的参数给CPU,然后触发INT 13中断的进行,激活BIOS的磁盘服务来执行数据传输。数据的开始地址被写到3个8位寄存器里,分别是:
柱面低位寄存器
柱面高位/扇区寄存器
磁头寄存器
柱面地址是10位(柱面低位寄存器占用8位、柱面高位寄存器占用2位),扇区地址为6位(8位-已经被计算过的高位寄存器的2位)。磁头寄存器为8位。因此如果这样的话:柱面的最大数是1024(2的10次方) ,磁头的最大数是256(2的8次方),扇区的最大数是63(2的6次方-1)。所以,通过INT 13管理能寻址的扇区数是16,515,072 (1,024x256x63)。一扇区是512字节,也就是说如果以CHS寻址方式,IDE硬盘的最大容量为8.456GB。LBA寻址方式能寻址的扇区数是16,777,216(1024x256x64),这时IDE硬盘的最大容量为8.601GB。
看到这里,我们应该感到硬盘容量限制的成因有了一些“眉目”了吧,那么我们具体来到底是什么让硬盘出现了所谓的限制:
528MB硬盘容量限制
由于早先的硬盘容量比较小,因此设计的BIOS的时候当把地址从Int 13的地址寄存器转换为IDE(ATA)的地址寄存器时,仅仅把INT 13管理中10位的柱面地址用来对应IDE(ATA)界面中的16位柱面寄存器,而把没有用到的6位(高位寄存器)地址都设定为0。并且也仅把6位的扇区地址来对应IDE(ATA)界面的8位扇区寄存器,其中没有用到的2位设置为0。并且INT 13管理的磁头寄存器4位(又去掉了4位)来对应IDE(ATA)。因此,此时的磁盘柱面最大数为1024(2的10次方),磁头的最大数是16(2的4次方),扇区的最大数是63(2的6次方-1)。因此能寻址的扇区数就成了1,032,192 (1,024x16x63)。一个扇区的容量是512字节,也就是说如果以CHS寻址方式,IDE硬盘的最大容量为528.4MB。因此528MB的硬盘容量限制就出现了。
2.1GB硬盘容量限制
这里分为两个部分,一部分是由磁盘服务的限制造成的,另外一个是由于磁盘格式造成的,通常我们把前者称为2.1GB的硬件容量限制,后一种称为2.1GB的软件容量限制。
硬件容量硬件:为了528MB容量限制的问题,人们提出一些不同的办法,其中一个办法就是INT 13服务的磁头寄存器没有用到的4位中的2位(确切的说是高2位)保留给柱面数的第11、12位使用。这样,最大的磁头数就是64(2的6次方)。但是,当时的操作系统不使用这种转换方法,其认为磁头寄存器的所有位数只可能记录磁头数。比如,为了正确地转换柱面数为2,048、磁头数为64的硬盘,就需要操作系统把柱面数除以4(512个逻辑柱面数),磁头数乘以4(256个逻辑磁头数)。不过由于BIOS中并没有开放所有的磁头数寄存器,当然无法记录这样的磁头数。因此遇到这种运行机制的BIOS,在系统自检的时候就会造成系统当机。
软件容量限制:当时DOS分区的限制是由文件分配表(FAT)决定的。FAT处理存储空间是以簇为单位的,它处理一簇的最大长度是32,768字节,最多能处理65,536个簇,如果将两个数字相乘,就会得到DOS的最大分区界限值是2,147,483,648字节或2,048MB (2,147,483,648 / 1,0242)。因此超过这个容量的硬盘,如果使用FAT格式,就最大只能识别2.048GB的硬盘容量。
3.2GB的容量限制
一些版本的BIOS不能识别超过6322柱面的硬盘,不过这种BIOS比较少见,由于柱面有限制,其最高支持扇区数为6,372,576 (6,322x16x63),如果乘以512扇区容量的话,其最高支持容量为6,372,576x512=3,262,758,912/1024=3.18GB。
4.2GB的容量限制
当时一些操作系统使用8位寄存器来存储磁头数,这样当BIOS报告硬盘的磁头数等于256(最高容量)时,只有磁头数的最先一位(即0)被系统保存,从而导致硬盘配置错误。一旦硬盘的磁头数是16,柱面数大于8,192(2的13次方,由于后三位寄存器已经被磁头寄存器借用,其实这里牵涉到一个突破528MB容量限制的转换做法的问题,由于这一段比较复杂,在这里就不详细介绍了,我们只要明白有这个限制就够了),系统就无法正常识别了,因此其最大的容量就被限制在了4.2GB=8,192x16x63x512/1024。
8.4GB硬盘容量限制
我们已经知道INT 13服务的寻址方式最高可以支持8.4GB以下的容量(柱面数、磁头数、扇区数的最大值分别是16,383、16和63,而三者相乘就是8.456GB)。因此,这个容量限制出现是迟早的问题了。所以,这个限制是我们目前最常遇到的容量限制。
33.8GB的容量限制
在CHS寻址中,由于IDE(ATA)界面的限制,柱面数最高支持65,535(2的16次方-1),所以,当遇到柱面数大于65,535的时候,系统就无法识别这种硬盘了,不过LBA由于独特的寻址模式就不存在这个问题,这个容量限制具体为:65,535x16x63x512/1024=33.8GB。
137GB硬盘容量限制
目前的磁盘工作方式就注定IDE硬盘存在这个问题,前面介绍IDE(ATA)界面的时候,这个问题就已经出现了。为了解决INT 138.4G限制,一些厂商定义了新的扩展INT 13服务扩展标准。新的INT 13服务扩展标准不使用操作系统的寄存器传递硬盘的寻址参数,它使用存储在操作系统内存里的地址包。地址包里保存的是64位LBA地址,如果硬盘支持LBA寻址,就把低28位直接传递给ATA界面,如果不支持,操作系统就先把LBA地址转换为CHS地址,再传递给ATA界面。通过这种方式,能实现在ATA总线基础上CHS寻址最大容量是136.9 GB,而LBA寻址最大容量是137.4GB。
因为137GB容量限制正是我们刚刚面临的问题,因此变得十分有名,我也是因为遇到了这个问题才学习了下硬盘容量限制这些知识。目前已经使用了新的方法解决了此问题,因此,我们的电脑上已经用上了500GB、1TB的硬盘了。但是,我们目前使用的电脑依然存在这种容量限制:
2.1TB系统访问容量限制
目前的主流电脑大多无法运行2.1TB以上容量的硬盘。也就是说采用普通32位Windows7、Windows Vista等系统的电脑目前最大也只能识别到2.1TB的硬盘。那么到底是什么原因造成了这一问题呢?答案就是传统的LBA(Ligical Block Address,逻辑块寻址)寻址方式以及现有系统的限制。
硬盘容量限制,最著名的当数137GB硬盘容量限制。当时不少人认为100GB的硬盘已经足够了,所以工程师们便推出了28bit LBA寻址模式,137GB由此而来。为了消除28bit LBA寻址模式的限制、解除137GB容量的限制,Technical Committee T13组织对ATA/ATAPI-6标准进行了一些修改,通过48bit LBA来支持更多的扇区。后来由Compaq(康柏)、Microsoft(微软)、Maxtor(迈拓)联合推出的Big Drives规范就是以T13组织提出的48bit方案为基础,这种规范的中心思想就是增加CHS(C:柱面,H:磁头,S:扇区)的位数,而柱面寄存器不变,这样就将原来LBA寻址中可用的寄存器空间从28bit提高到了48bit,可以寻址的扇区数就为281,474,976,710,655,这样可支持的硬盘容量就达到了281,474,976,710,655×512=144,115,188,075,855,872字节,大致相当于144PB(相当于144000GB)的容量,即使从现在的眼光来看,如此大容量的硬盘也足够我们用上很久了。(当然,可能以后还会遇到144PB容量限制。)
既然48bit LBA支持144PB容量的硬盘,那现在的系统怎么识别不到2.1TB以上的硬盘呢?要真正实现144PB,除了硬件存储系统及其接口芯片方面的改造外,还需要操作系统的支持。目前只有专业领域才支持64bit运算,而主流操作系统仍停留在32bit的编码模式,所以对硬盘的寻址自然最大也只有 32位。现有32位系统的硬盘容量限制大小可以根据 32bit LBA来计算,最后得出结论是最大只能支持2.1 TB的硬盘容量。这有点类似于当年“528MB、2.1GB”时所遇到的问题,因此,要让硬盘突破2.1TB的限制,用户必须先将系统升级到64位操作系统。目前的Windows7或者Windows Vista的64位系统和修改版的Linux系统都可以支持48bit这种长字节寻址模式。
* GPT分区表
除了彻底解放48bit LBA寻址模式以外,我们还要考虑到另外一个关键因素,即分区表。目前的硬盘都采用MBR分区方式,而这种方式也是限制硬盘容量的关键因素。MBR位于硬盘的第一个扇区,它所记录的便是硬盘的分区信息。如果使用Fdisk、Partition Magic或者直接在Windows安装过程中对硬盘进行分区,分区的信息都将被写入硬盘的MBR中,硬盘就根据MBR的内容来确定自己的逻辑分区情况。
MBR最多可支持四个主分区或三个主分区、一个扩展分区的组合。这一方案采用4个字节来存储分区的总扇区数,最大能表示4,294,967,296 (2的32次方)个扇区,按每扇区512字节计算,分区最大容量不能超过2.1TB(2,199,023,255,552)。而当磁盘容量超过2.1TB以后,分区的起始位置也就无法表示了,当然也就无法进行分区。在硬盘还未进入TB时代时,这种分区方式没有什么问题,但是当硬盘容量达到2TB同时还有向上的趋势时,MBR分区方案显然就无法满足需要了。(编注:谈到MBR所支持的最大分区,也许有不少朋友说我目前的电脑分区就有七八个,这是咋回事?这里是说MBR 只支持4个主分区表项。要获得更多分区,则需要次级结构――扩展分区。扩展分区可以再次让一个磁盘被分成一个或多个逻辑磁盘,打个比喻:MBR 就像是一本书的结构,目录、页码,而扩展分区则为这本书划分出了具体章节,这就是 MBR 分区方法。)
要解决MBR所存在的容量限制,还需要使用GUID(Globally Unique Identifier,全局唯一标志符)分区模式,即采用GPT(GUID 分区表)。与MBR最大4个主分区表项的限制相比,GPT对分区数量没有限制(目前Windows系统最大仅支持128个GPT分区),每个分区都拥有唯一的ID标志码,可管理的存储资源范围远远超过MBR。而在分区容量方面,因为它使用64位的整数表示扇区号,所以理论上允许用户使用最高18EB容量(1EB=100万TB)进行分区,这绝对是一个高得令人匪夷所思的数字。GPT的分区信息是在分区中,而不像MBR一样在主引导扇区,为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一个保护分区(Protective MBR)的MBR分区表,这种分区的类型标志为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,在Windows磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘。
既然GPT分区方案具有如此多的优点,在分区时是不是可以全部采用这种方案呢?答案是否定的。并不是所有的Windows系统都支持这种分区方案,至少Windows XP/2000/NT/98这些系统就无法支持GPT分区方案,所以在希捷的声明中,也说明了遇到3TB的硬盘,Windows XP最多只能认出990MB的容量。
* UEFI/EFI助硬盘容量腾飞
不过光是系统支持GPT还不行,那样用户只能在GPT分区上存储资料而不能在分区上启动电脑。如果要电脑支持GPT磁盘启动,还需要配合UEFI/EFI此类新一代BIOS。正如我们之前所言,由于目前主流的主板都采用BIOS系统,也就是说只支持MBR的分区方式,那么即使我们拥有了64位的操作系统,拥有了GPT磁盘,也无法享受到2.1TB以上的大容量硬盘。要想使用2.1TB硬盘,我们还必须要保证自己的主板采用的是EFI/UEFI,而非传统的BIOS,这样才能支持GPT磁盘启动电脑。
Intel在制定EFI方案时就将GPT列为其中的一部分内容,后来的UEFI也延续了这一点。由于现有的BIOS不可能将MBR分区方式立刻进化为GPT分区方式,所以要让主板识别到2.1TB以上容量的硬盘,那么只能使用UEFI/EFI。因此,如果用户的主板支持UEFI/EFI,那么可以从GPT分区直接启动Windows Vista/7系统,操作系统加载程序和启动分区均驻留在GPT磁盘上。与基于x86的计算机上的系统卷相同,EFI/UEFI系统分区包含操作系统加载程序、驱动程序和启动Windows Vista/7需要的其他文件。在仅包含一个GPT磁盘的计算机上,UEFI/EFI系统分区是磁盘上的第一个分区。如果用户的电脑没有EFI/UEFI支持,GPT实际上并不能被真正的支持,仅仅能作为MBR/GPT混合磁盘来启动。也就是说,原本GPT的标准中,存在一个保护性质的MBR(Protective MBR),在不支持EFI/UEFI的芯片组主板下,BIOS会继续使用该MBR来引导。
可以说,目前用户要突破硬盘所面临的2.1TB容量限制,首先要升级操作系统,其次还要有一定的硬件支持。目前的硬盘、BIOS和操作系统制造商均将2.1TB的最大容量视为制造标准,主流配置的主板基本不会配备UEFI系统,尽管微星等少数主板制造商在一些主板中装载了UEFI系统,但它仍未成为真正的标准配置,个人电脑里也许只有苹果在使用 EFI/UEFI,因此大家要真正使用单个容量超过2.1TB的硬盘,还需要UEFI普及开来才行,这想必还需要一段时间。但我们相信,随着未来硬件规格的升级,容量在2.1TB以上的超级硬盘的巨大优越性(特别是速度)仍然会很快让不少玩家毫不犹豫地投怀送抱……
Seleced from/Refered to:
硬盘容量限制问题的形成以及解决方案
http://tech.sina.com.cn/roll/2007-07-19/1127365280.shtml
硬盘大容量限制解读
http://www.xcar.com.cn/bbs/viewthread.php?tid=14364805
硬盘137GB容量限制的原因
http://blog.sina.com.cn/s/blog_4b96ca09010007w7.html
冲破137GB容量限制:大容量硬盘使用全攻略
http://www.zhaoniupai.com/blog/archives/633.html
参考:
http://www.aiseminar.cn/bbs/forum.php?mod=viewthread&tid=1849
======================================================================
求硬盘的3种寻址模式 NORMAL LBA LARGE 详细介绍
希望高手能提供这三种模式的详细介绍 包括与CHS寻址方式的转换等等
另:目前市面上大于200GB的硬盘采用的是什么寻址方式?
请高手帮忙解答 谢谢!
回答:
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硬盘寻址方式。
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寻址模式把柱面数除以整数倍、磁头数乘以整数倍而得到的逻辑磁头/柱面/扇区参数进行寻址,所以表示的已不是硬盘中的物理位置,
而是逻辑位置。LBA寻址模式是直接以扇区为单位进行寻址的,不再用磁头/柱面/扇区三种单位来进行寻址。但为了保持与
CHS模式的兼容,通过逻辑变换算法,可以转换为磁头/柱面/扇区三种参数来表示,但表示的也和LARGE寻址模式一样,已不
是硬盘中的物理位置,而是逻辑位置了。
这篇关于【FAQ】存储基础知识 - 磁盘寻址(CHS寻址方式、LBA寻址方式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!