美文网首页
磁盘基础结构(理论)

磁盘基础结构(理论)

作者: mst7 | 来源:发表于2016-03-05 13:08 被阅读893次

    参考URL:

    http://my.ece.msstate.edu/faculty/reese/EE3724/lectures/fixdisk/
    http://superuser.com/questions/974581/chs-to-lba-mapping-disk-storage
    http://lnx.cx/docs/vdg/output/Virtual-Disk-Operations.html
    http://www.c-jump.com/CIS24/Slides/DiskDrives/DiskDrives.html 重点参考

    磁盘基本单位

    整体概念 Paste_Image.png Paste_Image.png
    • Disc:每个硬盘一般会包含多个磁片Disc,每个Disc可以是单面读写数据、也可以是多面读写数据。
    • Head:读写磁盘的磁头,整个硬盘的所有磁头位置是固定在一起的,移动的动作是基于所有磁头的。针对双面Disc,会有正反两个磁头对应。
    • Track:每个磁盘上的多个同心圆。
    • Cylinder:多个磁盘上(正反两面)相同同心圆组成的柱状,用于描述多个磁盘上相同Track位置的数据集。
    • Sector:每个Track可以进一步划分为多个小的区域,定义磁头一次读写的数据量,一般为512 byte或4K byte。
      • 针对不同年代的硬盘,Sector的划分方式不同。
      • 旧时的小容量硬盘每个Disc上每个Track都划分为等量的Sector,便于数据读取。
      • 每个Track等量的Sector分配对位于Disc外部的Track非常浪费,所以近代大容量磁盘采用了一种新的划分Sector的方法,即ZBR。ZBR将磁盘不同的Track划分为多个Zone,同一Zone的Track具有等量的Sector。位于Disc外侧Zone的Track划分的Sector数量要比内侧的Zone的Track多。


        Variable Sectors per Track

    CYLINDER – HEAD – SECTOR (CHS)

    CHS用于表述存放到物理磁盘上数据的位置。
    磁盘可以被通过low level formatted为不同的容量(不同的存储方式)。

    磁盘Controller通过用户提供的CHS数据,计算数据在磁盘上的物理位置,并将数据返回。

    Number of cylinders (tracks), heads (sides), and sectors (aka CHS) uniquely identify thephysical geometry of the storage units on a disk

    CHS also yields disk capacity:
    Capacity = Cylinders × Heads × Sectors × sector_size

    Designed for early IDE/ATA HDDs

    C <= 1,024

    H <= 16

    S <= 63

    This mode works for drives up to 504 MB in capacity

    ECHS

    CHS方式最多能描述504M的磁盘大小,所以ECHS(Extended CHS)方式出现了。

    ECHS is used for drives between 504 MB and 8 GB
    CHS addressing is limited to
    10 bits for cylinder (<=1024)
    8 bits for head (<=256), and
    6 bits for sector (<=63 since first sector is 1.)

    In ECHS, the actual C value is divided by 2 and the H value multiplied by 2 until:
    C < 1024 or H >= 255
    Reported CHS geometry = 18,383/16/63
    Capacity = 9,487,392,768 B (9 GB)

    In fact, this drive might very well have two platters (i.e., 4 heads)
    True geometry is CHS = 73,532/4/63

    The translation is handled by the disk drive controller

    Zone Bit Recording

    一个小容量的磁盘(<=8GB),每个track包含的Sector数量是相同的,位于磁盘外部的Track bits密度低,内部的Track bits密度高。


    两个Sector

    每个Track分配相同数量的Sector,对磁盘容量是一个较大的浪费,外部Track本应该容纳更多的数据。ZBR提供了一种可变的Sector/Track对应关系,使内、外Track承载不同数量的Sector,更有效的提升了磁盘容量,使更大容量的磁盘成为可能。

    ZBR环境下,Cylinder、Header、Sector的位置发生了巨大的变化(见下图),所以传统的CHS寻址方式已经不能满足要求,需要寻求一种新的寻址模式。

    Variable Sectors per Track Paste_Image.png Paste_Image.png

    Logical Block Addressing

    ZBR环境下不能使用CHS方式寻址数据了,所以引入了一种新的寻址模式,也就是LBA,LBA是基于CHS寻址方式转换而来的(Translation Method)。
    其使用linear sheme表述地址,使用Sector作为基本单位(其概念中第一个Sector是Sector 0)。
    LBA作为一种新的寻址方式,并不被广大操作系统和BIOS所熟知,他们依旧使用传统的CHS寻址方式,磁盘Controller会负责将LBA (physical geometry) 翻译为 CHS addressing (logical geometry) 供操作系统和BIOS使用。

    CHS vs. LBA

    Sectors and Clusters

    Sector是磁盘上最小的I/O单元。
    通常一个数据文件至少要占用连续的几个Sector,如果每次读写操作都需要定位到最小的Sector单位,那速度将会非常慢。所以就引入了Cluster的概念,Cluster是操作系统用于优化I/O读写速度创建的,它是逻辑上的一组Sector,每个Cluster一般会覆盖4-64个Sector(2-32KB)。

    相关文章

      网友评论

          本文标题:磁盘基础结构(理论)

          本文链接:https://www.haomeiwen.com/subject/laookttx.html