3TB仅是一个起点 磁盘容量极限之路介绍

  • 来源: 超能网 作者: 大帆   2010-11-04/14:55
  • Long long ago,在PC技术还处于初步发展的时候,IBM和微软为磁盘制定了一些规范,一直延用到今天,比如磁盘扇区大小为512byte,三十年后的今天再回头看看,这些巨头肯定是没预料到PC技术日新月异,发展的实在是太快了,完全超越了他们当时的“高瞻远瞩”。

    初遇8.4GB极限

    最初,人们采用柱面数(Cylinders)、磁头数(Heads)和扇区数(Sectors)的方式对磁盘进行寻址,也就是 CHS(Cylinder/Head/Sector)寻址,这三个参数能唯一确定磁盘上的数据区域。CHS采用的是24bit数据操作方式,其中柱面数为 8bit数据,磁头数为10bit,扇区数为6bit,每个扇区的大小为512byte,因此从理论上讲,当时磁盘容量的极限为:

    28 * 210 * 26 * 512 byte = 8589 MB = 8.4 GB

    很显然,计划赶不上变化,磁盘容量一直在突破中,业界开始放弃古老的CHS寻址模式,采用了新的LBA(Logical Block Addressing)逻辑块寻址模式。

    再遇137GB极限

    在LBA模式中,地址不再表示实际磁盘的实际物理地址(柱面、磁头和扇区),LBA编址方式将CHS三维寻址方式转变为一维的线性寻址,系统效率得到大大提高,在访问磁盘时,由磁盘控制器再将这种逻辑地址转换为实际磁盘的物理地址。

    开始时,LBA的寻址数据只有28bit,比CHS模式的24bit提高有限:

    228 * 512 byte = 137438 MB = 137 GB

    137GB的极限问题很多人可能还记忆犹新,几年前当160GB磁盘潮涌而来时,不少玩家发现他们的主板不能识别新的磁盘,或者只能使用137GB的容量。当然解决的办法也很简单,提升LBA的寻址数据空间。

    新的2.1TB极限

    Technical Committee T13(T13技术委员会,ATA存储设备规范协议制订组织)为了解决28bit LBA寻址模式的限制,对于ATA/ATAPI-6标准进行了一些修改,通过48bit LBA来支持更多的扇区,但是古老的MBR(Main Bootable Record,主引导记录)只能是32bit的,因此即使是48bit LBA,其最大能寻址的磁盘容量也只能达到2.1TB:

    232 * 512 byte = 2199023 MB = 2.19 TB

    虽然在目前来说,大多数人的磁盘容量还没有超过2TB,但是3TB的磁盘却已面世。

    3TB是一件难事

    3TB是一件难事,可能你会说,希捷和西数都有3TB的磁盘发布了,何难之有?之所以这么说,是因为生产一个3TB容量的磁盘并不难,难就难在怎么让你的软硬件平台去支持这个超过2.1TB极限的磁盘。

    历史悠久的512byte扇区大小非常之根深蒂固,像磁盘控制芯片、BIOS和操作系统等方面都是以此为基础的,虽然希捷等厂商有推出4KB扇区的磁盘,但还是非主流,真正在操作系统中应用时还是模拟成512byte才能得以应用的。

    同样历史悠久的MBR,让寻址寄存器定格在32bit,传统的LBA模式只得再求新变,采用一个新的LBA模式是一个很好的解决途径,也就是Long LBA,它增加了CDB(命令描述块)的字节数。

    CDB是用于磁盘和主机间进行通讯的数据格式,其中包含了LBA信息以便磁盘可以知道所要寻址的扇区位置。一个标准的CDB由10个字节组成,其中4字节将用于LBA信息。对于Long LBA来说CDB的字节数增加到了16或32位,其中可以容量8个字节的LBA信息,也就是扇区寻址空间达到64bit,理论上可以支持磁盘容量达到 9000EB(1EB=106TB)。

    Long LBA需要操作系统支持才行,目前Windows 7/Vista 64位系统和部分linux和Mac OS X可以支持这种模式,但Windows XP不行,像3TB磁盘仅能显示990MB。

    Long LBA只是个权宜之计,只能在操作系统中当作非系统盘使用,还不能用来安装、引导操作系统,因为目前的主板BIOS基本上是基于MBR的,2.1TB是MBR的极限。

    GPT分区表,绕过MBR

    MBR先天不足,如果将一块超过2TB的磁盘设置为启动盘的话,依照现有的BIOS架构规范是无法启动的,使得我们不得不抛弃它,转投到全新的分区表GPT怀抱中。

    首先要了解一下GUID(Globally Unique Identifier,全球唯一标识符),它通过特定算法产生的一个128bit的数字,在空间上和时间上具有唯一性,保证同一时间不同地方产生的数字不同,在公元3400年以前产生的GUID与任何其他产生过的GUID都不相同。

    正因为GUID的唯一性得以广泛应用,而基于GUID的分区表就是GPT(GUID Partition Table)。GPT是作为Extensible Firmware Interface(EFI)计划的一部分引入的,相对于以往PC普遍使用的主引导记录MBR方案,GPT提供了更加灵活的磁盘分区机制。

    理论上,GPT磁盘在长度上最大可达264个逻辑块,也就是和前面Long LBA一样的,整个磁盘容量可以达到9000EB,当然实际上最大分区(磁盘)容量受操作系统版本的影响。

    Windows XP和Windows Server 2003的原始版本中,每个物理磁盘的最大容量为2TB,包括所有分区。对于Windows Server 2003 SP1/Windows XP x64版本和以后的版本,支持的最大原始分区为18EB(NTFS文件系统目前的限制为每个256TB)。

    另外,GPT分区基本没什么限制,不过Windows系统最多只支持128个分区,而MBR最多只能支持4个主分区。

    目前,除了32位的Windows XP/NT/2000和Windows 95/98不能对GPT磁盘进行数据操作外(只能查看Protective MBR),其它较新的Windows系统都能良好支持GPT磁盘,并且可以和MBR传统磁盘混用。

    但是,需要使用GPT磁盘作启动盘的话,传统的主板BIOS(基于MBR)是不支持GPT磁盘的,需要支持UEFI的主板才能正确识别和使用GPT磁盘。

    UEFI:传统BIOS的埋葬者

    传统BIOS通过16位汇编代码、寄存器参数调用方式、静态链接以及1MB以下内存固定编址的形式存在了几十年,虽然由于各大BIOS厂商近年来的努力,有许多新元素添加到产品中(如支持USB),但BIOS的根本性质没有得到任何改变。

    在讲GPT时已说过,它是EFI计划的一部分,EFI由英特尔推出的一种在未来的类PC的系统中替代BIOS的升级方案,从目前的趋势来看,EFI将是传统BIOS的埋葬者,在未来的两三年内逐渐走向主流。

    与传统BIOS相比,EFI是用模块化、C语言的参数堆栈传递方式和动态链接的形式构建系统,较BIOS而言更易于实现,容错和纠错特性更强,缩短了系统研发的时间。它运行于32位或64位模式,乃至未来增强的处理器模式下,突破传统16位代码的寻址能力,达到处理器的最大寻址。

    EFI让我们第一次进入到了生动的图形化开机界面中,远离了单调而熟悉的蓝底白字界面。早在2005年Intel就发起了Unified EFI Form(UEFI行业联盟),目的就是想使业界接受EFI。

    UEFI确实是一件新生的架构,底层开发与BIOS完全不同,UEFI就像是一个小型的操作系统,要触及许多系统子模块。同时还需要保证旧有BIOS用户能很快上手。当然更重要的是,像以前通过汇编代码在BIOS中实现的各种独有功能(比如一键超频)也要在UEFI中实现,开发难度加大。

    正如华硕公关主管曾经指出的那样,UEFI程序的编写非常困难,这不仅仅是执行难的问题,我们要从零开始,有许多问题要应对。UEFI与BIOS就像是Windows与DOS的差别那样大。

    目前支持UEFI系统的主板还少之又少,只有微星等推出了一些产品,距离普及还有十万八千里,而传统的主板BIOS是不能通过刷新来变成UEFI的,所以消费者不要有这个痴心妄想。

    3TB只是一个起点

    磁盘容量极限之路其实也是PC技术发展必由之路,今天3TB容量磁盘悄然而至,让我们意识到“2.1TB容量墙”这个类千年虫的问题,同时也伴随着像UEFI和GPT这样新兴技术的诞生,只不过这次是对整个行业规范的大颠覆,3TB仅仅是一个起点。

    未来两三年内,3TB将成为消费PC的标配。而未来的磁盘容量必定飞速发展,随着单扇区容量突破512字节,新的记录介质发明等,18EB也不是梦想,或许在下一个三十年后,我们将再次遭遇“18EB容量墙”。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多