硬盘的寻址模式

上传人:子 文档编号:42513982 上传时间:2018-06-02 格式:DOC 页数:18 大小:960.50KB
返回 下载 相关 举报
硬盘的寻址模式_第1页
第1页 / 共18页
硬盘的寻址模式_第2页
第2页 / 共18页
硬盘的寻址模式_第3页
第3页 / 共18页
硬盘的寻址模式_第4页
第4页 / 共18页
硬盘的寻址模式_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《硬盘的寻址模式》由会员分享,可在线阅读,更多相关《硬盘的寻址模式(18页珍藏版)》请在金锄头文库上搜索。

1、1 1硬盘寻址与容量解决硬盘寻址与容量解决 对于大部分拥有硬盘的用户来说,特别对于那些正在准备升级到大硬盘但是却 不打算升级系统的其它部分的用户,它们首先考虑的是自己的系统是否支持这 么大容量的硬盘。这个问题同硬盘结构、BIOS 和操作系统息息相关归根到 底这些问题的出现是由于当时的人们由于条件所限制而缺乏长远考虑的结果。 在当时这样的设计根本没有问题,但是随着技术的进一步发展这些问题就曝露 了出来,而且影响颇广。好在这些问题都已经被通过不同的方式解决了。本章节将会同大家一起来谈谈 容量限制的问题。下面的容量限制分别采用两种方式表示,前面的一种采用的 是 1GB=1000MB 和 1MB=10

2、00KB 的换算,而后面的容量采用的是 1GB=1024MB 和 1MB1024KB 的换算。528MB/504MB528MB/504MB 容量容量限制限制这并不是历史上第一个硬盘容量限制问题,但是它是第一个引起人们广泛关注 的容量限制问题。这之前硬盘的容量限制问题也一再的出现过,但是因为 PC 用 户非常的少,所以很多人并不知道这些问题,这里我们做一个简短的回顾:10.4 MB 容量限制:这个问题出现在最早的 IBM PC/XT 上,这种设备使 用了一种专门设计的硬盘,它有 312 个柱面(cylinders)、4 个磁头和 17 个扇区,这样算来它的最大容量只能为 10MB,这种容量限制来

3、自于硬 盘。 16MB FAT12 容量限制:第一种用于硬盘的 FAT 格式是 12bit 的,它最多 能容纳 4086 个大小为 4096 字节的簇,因此总容量为 16,736,256 字节, 也就是大约 16MB。 32MB DOS 3 容量限制: 为了解决 16 MB 容量限制,DOS 3.x 开始支持 FAT16 文件系统,不过由于这种文件系统只能允许 16384 个容量为 2048 字节的簇,所以它就造成了 32MB 的容量限制问题,不过由于多 分区的概念的引入,硬盘的容量并没有因此受到太大的限制,只是每个 分区的容量不能超过 32MB。 128MB DOS 4 容量限制:DOS 4

4、.x 开始支持 65526 个容量为 2048 字节的 簇,所以其容量上限提升到了 128MB可以看到上面的这些容量限制的问题大都是由于 MS-DOS 系统所引起的,这之后 的 DOS 5 允许每个簇的最大容量为 8192 字节,因此最大分区容量限制为 512 MB,不过这个容量限制并没有引起人们的广泛关注,因为在这之前由于 BIOS 和 IDE 规范所引起的 504MB 容量限制首先曝露了出来(大约是 1994 年左右)。 如下表所示:标准标准用于柱面的用于柱面的BitBit用于用于磁头磁头的的BitBit用于扇区的用于扇区的BitBit用于定义整个用于定义整个结构的结构的 BitBitID

5、E/ATA164828BIOS Int 13h108624 最小定义104620可以看到 IDE/ATA 标准和 Int 13h 组织的标准非常的不一致,因此当分别符合 这两个标准的设备配合使用的时候,只能遵循其中的最小规范。下面我们把 bit 所代表的容量换算了出来:StandardStandard最大柱面数最大柱面数 最大最大磁头磁头数数 最大扇区数最大扇区数最大最大容量容量IDE/ATA65,53616256128 GBBIOS Int 13h1,024256637.88 GB 最小定义1,0241663504 MB对于上面的数字是这样算出来的:1024x16x63x512/1024x1

6、024=504MB,如果不 除以 1024x1024 而是除以 1000000 的话得到的数字是 528MB按照不同的换 算方法,得到的容量不同但是其实指的是一个意思。2.11/1.97GB2.11/1.97GB 容量容量限制限制前面的 504MB 容量障碍的成因之一是 BIOS 无法支持超过 1024 柱面,不过现在 的 BIOS 系统都能支持超过 1024 柱面。不过当时的部分 BIOS 系统虽然却只能支 持不超过 4095 个柱面,这是因为它采用了 12bit 来表示柱面,这样所支持的最 大容量就是 4096 x 16 x 63 x 512 字节了,也就是 1.97GB。这个问题是在 1

7、996 年左右浮现出来的,可以通过软件的方法来解决。2.11/2GB2.11/2GB 容量容量限制限制这个容量限制注意的人们会更多一些,它也是由于文件系统的定义造成的分区 容量限制,同 BIOS 没有什么关系。从 DOS 6 和 Windows 3.x 以后开始支持 FAT16 文件系统,如果在这些系统使用容量超过 2GB 的硬盘必须对于硬盘进行 分区,而且每个分区的容量不会超过 2GB。FAT16 最大只能支持 65536 个 32KB 容量的簇,那么也就意味着每个分区不能超 过 2GB 的容量。估计现在没有用户还会遇到这个问题了,因为只有 DOS、Window 3.x 和 Windows

8、95 第一版会有这个问题,升级到更高版本的支持 FAT32 或者 NTFS 文件系统的操作系统(Windows 95 OEM SR2、Windows 98、Windows ME、Windows 2000 和 Windows XP 都支持 FAT32,其中后两者都支 持 NTFS 文件系统)就没有这个问题了。3.26/3.04GB3.26/3.04GB 容量容量限制限制这种容量限制的影响范围也非常的小,只是在一些特殊的机型中才出现过,它 的出现是由于 BIOS 无法正确的识别超过 6322 桌面而造成的如果用户试图 设置高于 6322 的柱面,系统将会挂起。这个容量限制是这样计算的:6322 柱

9、 面 x 16 头 x 63 扇区 x 512 字节3GBPhoenixPhoenix BIOSBIOS 容量容量限制限制这是一个比较特别的容量限制,而且范围也非常的小,只是 Phoenix BIOS 4.03 和 4.04 这两个版本上出现的问题。它其实只是 BIOS 设计的一个对于硬盘 容量计算错误的 bug,基于这两个版本 BIOS 推出主板的主板厂商有的矫正的这 个问题,有的则没有,因此也不是一个绝对的情况,不过这里还是告诉大家, 万一有用户遇到一些不能解释的问题,或许这是一个启发。这个问题比较怪异,如果用户把 IDE 设备的磁头数目设置为 16,而扇区设置为 63,那么柱面设置为 6

10、349 一下不会有任何问题,也就是说硬盘容量不能超过 3.05 GB;如果把柱面数目设置为 63508322 之间,程序将会死锁;如果柱面 设置为 832314671 之间,那么系统可以正常的工作,但是硬盘的容量无法正 常的显示。不过以后版本的 BIOS 都修正了这个问题。4.22/3.94GB4.22/3.94GB 容量容量障碍障碍在解决了 504MB 容量限制之后,业界对于通过 BIOS 结构转换(geometry translation)来解决这个问题驾轻就熟。这种方法主要是把硬盘的柱面数除以 转换系数来把 IDE/ATA 的柱面数限制在 BIOS 能转换的范围之内(也就是 1024 之

11、内),当然为了保证正确识别硬盘容量在 IDE/ATA 磁头数目乘以同一个系数 (因为 BIOS 支持的磁头数是 256),从而实现对于超过 BIOS Int13h 规范的硬 盘的正确支持。不过这样依然会存在一个 3.94GB 的容量限制。下面的表格所表示的是如何让一个符合 BIOS int13h 规范的 BIOS 正确的支持容 量为 6.4GB 的硬盘:柱面数目柱面数目磁头磁头数目数目扇区扇区容量容量IDE/ATA 限制65,53616256137 GB 硬盘逻辑结构12,49612,496161663636.456.45 GBGB BIOS 转换系数除以除以 1616乘以乘以 1616- B

12、IOS 转换后的结构78178125625663636.456.45 GBGB BIOS Int 13h 限制1,024256637.88 GB这款 6.4GB 的硬盘的逻辑结构为 12496 柱面、16 磁头和 63 扇区,但是 BIOS int13h 规范最大只能支持 1024 个柱面,因此通过除以 16 使得柱面数目低于 1024,而磁头数目乘以 16 这样的方式,既不会影响硬盘的总容量却巧妙的解决 了 IDE/ATA 和 int 13h 之间不统一的问题。不过,部分 BIOS 无法正常的支持 256 逻辑磁头的转换,所以人们变通了一下,把转换系数改为了 15:柱面数目柱面数目磁头磁头数

13、目数目扇区扇区容量容量IDE/ATA 限制65,53616256137 GB 硬盘逻辑结构12,49612,496161663636.456.45 GBGB BIOS 转换系数除以除以 1515乘以乘以 1515- BIOS 转换后的结构83383324024063636.456.45 GBGBBIOS Int 13h 限制1,024256637.88 GB可以看到当转换系数改为 15 之后,依然可以满足 BIOS 柱面要求,而磁头数目 只有 240。7.93/7.38GB7.93/7.38GB 容量容量限制限制这个容量限制主要是由于接口的限制所形成的,因为这个。不过,在部分系统 上由于 In

14、t13h 接口的限制它的最大容量只有 7.38 GB。其实这个容量限制的成因前面已经提到了,虽然 Int13h 接口规范支持 1024 柱 面、256 磁头和 63 个 512 字节的柱面,不过 DOS 和部分版本的 Windows 无法转 换 256 逻辑磁头,因此只有使用 15 做为转换系数,这样最大的磁头数目只能是 240,因此这个容量限制为:1024 x 240 x 63 x 512= 7,927,234,560 字节解决这个问题只有通过 Int13h 扩展方案。8.46/7.88GB8.46/7.88GB 容量容量限制限制这个容量限制更加通俗的称为 8GB 容量限制,估计很多看到这篇

15、文章的朋友都 经历过这次容量限制。起因还是因为 Int 13h 规范,它仅仅使用 10bit 来定义 柱面数(最大 1024),使用 8bit 定义磁头数目(最大 256),使用 6bit 定义 扇区数目(最大 64,但是因为不使用 0,所以最大是 63),每个扇区的容量是 512 字节,那么最大的容量为 8,455,716,864,这个容量限制是无法通过逻辑结 构转换来避免的。这个时候显然必须要对于 Int13 接口规范进行修改了,Int 13 扩展规范则解决 了这个问题。因为操作系统也是通过 Int 13h 来访问硬盘的,所以实现对于 Int13 扩展接口规范的支持也需要操作系统的支持,D

16、OS 6.22 及其以前的版本、 Windows NT 3.5 都不支持 Int13h 扩展,因此使用这些系统无法支持 8.4GB 以 上的硬盘。32/29.8GB32/29.8GB 容量容量限制限制微软在 1999 年宣布 Windows 95 将不支持容量超过 32GB 的硬盘,不过 Windows 98 以及 Windows Me 都对于 32GB 以上的硬盘提供了很好的支持,其主要的原因 是 Windows 95 中的 Scandisk 在保护模式下对于容量超过 32GB 的硬盘进行磁盘 扫描的时候,对于 967363 以后的柱面全部柱面都报错,显然这仅仅是一个软件 错误,但是微软宣布 Windows 95 不支持超过 32GB 容量的硬盘,显然是不希望 用户再使用这个“古老”的系统了。33.8GB/32GB33.8GB/32GB 容量容量限制限制其实这个容量显示是我们通常所说的 32GB 容量限制,它的起因还是 BIOS。部 分版本的 Award BIOS 无法识别超过 65535 个柱面,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号