`
softtian1983
  • 浏览: 185321 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

硬盘工作原理(转)

阅读更多

一、硬盘的物理结构
硬盘存储数据是根据电、磁转换原理实现的。硬盘由一个或几个表面镀有磁性物质的金属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成(图1),其中盘片和磁头密封在无尘的金属壳中。

硬盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径向移动到指定位置然后将数据存储或读取出来。当系统向硬盘写入数据时,磁头中“写数据”电流产生磁场使盘片表面磁性物质状态发生改变,并在写电流磁场消失后仍能保持,这样数据就存储下来了;当系统从硬盘中读数据时,磁头经过盘片指定区域,盘片表面磁场使磁头产生感应电流或线圈阻抗产生变化,经相关电路处理后还原成数据。因此只要能将盘片表面处理得更平滑、磁头设计得更精密以及尽量提高盘片旋转速度,就能造出容量更大、读写数据速度更快的硬盘。这是因为盘片表面处理越平、转速越快就能越使磁头离盘片表面越近,提高读、写灵敏度和速度;磁头设计越小越精密就能使磁头在盘片上占用空间越小,使磁头在一张盘片上建立更多的磁道以存储更多的数据。

二、硬盘的逻辑结构
硬盘由很多盘片(platter)组成,每个盘片的每个面都有一个读写磁头。如果有N个盘片。就有2N个面,对应2N个磁头(Heads),从0、1、2开始编号。每个盘片被划分成若干个同心圆磁道(逻辑上的,是不可见的。)每个盘片的划分规则通常是一样的。这样每个盘片的半径均为固定值R的同心圆再逻辑上形成了一个以电机主轴为轴的柱面(Cylinders),从外至里编号为0、1、2……每个盘片上的每个磁道又被划分为几十个扇区(Sector),通常的容量是512byte,并按照一定规则编号为1、2、3……形成Cylinders×Heads×Sector个扇区。这三个参数即是硬盘的物理参数。我们下面的很多实践需要深刻理解这三个参数的意义。

三、磁盘引导原理
计算机在按下power键以后,开始执行主板bios程序。进行完一系列检测和配置以后。开始按bios中设定的系统引导顺序引导系统。假定现在是硬盘。Bios执行完自己的程序后如何把执行权交给硬盘呢。交给硬盘后又执行存储在哪里的程序呢。其实,称为mbr的一段代码起着举足轻重的作用。

MBR(master boot record),即主引导记录,有时也称主引导扇区。位于整个硬盘的0柱面0磁头1扇区(可以看作是硬盘的第一个扇区),bios在执行自己固有的程序以后就会jump到mbr中的第一条指令。将系统的控制权交由mbr来执行。在总共512byte的主引导记录中,MBR的引导程序占了其中的前446个字节(偏移0H~偏移1BDH),随后的64个字节(偏移1BEH~偏移1FDH)为DPT(Disk PartitionTable,硬盘分区表),最后的两个字节“55 AA”(偏移1FEH~偏移1FFH)是分区有效结束标志。

MBR不随操作系统的不同而不同,意即不同的操作系统可能会存在相同的MBR,即使不同,MBR也不会夹带操作系统的性质。具有公共引导的特性。

我们来分析一段mbr。下面是用winhex查看的一块希捷120GB硬盘的mbr。

你的硬盘的MBR引导代码可能并非这样。不过即使不同,所执行的功能大体是一样的。这是wowocock关于磁盘mbr的反编译,已加了详细的注释,感兴趣可以细细研究一下。

我们看DPT部分。操作系统为了便于用户对磁盘的管理。加入了磁盘分区的概念。即将一块磁盘逻辑划分为几块。磁盘分区数目的多少只受限于C~Z的英文字母的数目,在上图DPT共64个字节中如何表示多个分区的属性呢?microsoft通过链接的方法解决了这个问题。在DPT共64个字节中,以16个字节为分区表项单位描述一个分区的属性。也就是说,第一个分区表项描述一个分区的属性,一般为基本分区。第二个分区表项描述除基本分区外的其余空间,一般而言,就是我们所说的扩展分区。这部分的大体说明见表1。

表1 图2分区表第一字段
字节位移 字段长度 值 字段名和定义

0x01BE BYTE 0x80 引导指示符(Boot Indicator) 指明该分区是否是活动分区。
0x01BF BYTE 0x01 开始磁头(Starting Head)
0x01C0 6位 0x01 开始扇区(Starting Sector) 只用了0~5位。后面的两位(第6位和第7位)被开始柱面字段所使用
0x01C1 10位 0x00 开始柱面(Starting Cylinder) 除了开始扇区字段的最后两位外,还使用了1位来组成该柱面值。开始柱面是一个10位数,最大值为1023
0x01C2 BYTE 0x07 系统ID(System ID) 定义了分区的类型,详细定义,请参阅图4

0x01C3 BYTE 0xFE 结束磁头(Ending Head)
0x01C4 6位 0xFF 结束扇区(Ending Sector) 只使用了0~5位。最后两位(第6、7位)被结束柱面字段所使用0x01C5 10位 0x7B 结束柱面(Ending Cylinder) 除了结束扇区字段最后的两位外,还使用了1位,以组成该柱面值。结束柱面是一个10位的数,最大值为1023 0x01C6 DWORD 0x0000003F 相对扇区数(Relative Sectors) 从该磁盘的开始到该分区的开始的位移量,以扇区来计算 0x01CA DWORD 0x00DAA83D 总扇区数(Total Sectors) 该分区中的扇区总数
注:上表中的超过1字节的数据都以实际数据显示,就是按高位到地位的方式显示。存储时是按低位到高位存储的。两者表现不同,请仔细看清楚。以后出现的表,图均同。

也可以在winhex中看到这些参数的意义:

说明: 每个分区表项占用16个字节,假定偏移地址从0开始。如图3的分区表项3。分区表项4同分区表项3。

1、0H偏移为活动分区是否标志,只能选00H和80H。80H为活动,00H为非活动。其余值对microsoft而言为非法值。

2、重新说明一下(这个非常重要):大于1个字节的数被以低字节在前的存储格式格式(little endian format)或称反字节顺序保存下来。低字节在前的格式是一种保存数的方法,这样,最低位的字节最先出现在十六进制数符号中。例如,相对扇区数字段的值0x3F000000的低字节在前表示为0x0000003F。这个低字节在前的格式数的十进制数为63。

3、系统在分区时,各分区都不允许跨柱面,即均以柱面为单位,这就是通常所说的分区粒度。有时候我们分区是输入分区的大小为7000M,分出来却是6997M,就是这个原因。 偏移2H和偏移6H的扇区和柱面参数中,扇区占6位(bit),柱面占10位(bit),以偏移6H为例,其低6位用作扇区数的二进制表示。其高两位做柱面数10位中的高两位,偏移7H组成的8位做柱面数10位中的低8位。由此可知,实际上用这种方式表示的分区容量是有限的,柱面和磁头从0开始编号,扇区从1开始编号,所以最多只能表示1024个柱面×63个扇区×256个磁头×512byte=8455716864byte。即通常的8.4GB(实际上应该是7.8GB左右)限制。实际上磁头数通常只用到255个(由汇编语言的寻址寄存器决定),即使把这3个字节按线性寻址,依然力不从心。 在后来的操作系统中,超过8.4GB的分区其实已经不通过C/H/S的方式寻址了。而是通过偏移CH~偏移FH共4个字节32位线性扇区地址来表示分区所占用的扇区总数。可知通过4个字节可以表示2^32个扇区,即2TB=2048GB,目前对于大多数计算机而言,这已经是个天文数字了。在未超过8.4GB的分区上,C/H/S的表示方法和线性扇区的表示方法所表示的分区大小是一致的。也就是说,两种表示方法是协调的。即使不协调,也以线性寻址为准。(可能在某些系统中会提示出错)。超过8.4GB的分区结束C/H/S一般填充为FEH FFH FFH。即C/H/S所能表示的最大值。有时候也会用柱面对1024的模来填充。不过这几个字节是什么其实都无关紧要了。

虽然现在的系统均采用线性寻址的方式来处理分区的大小。但不可跨柱面的原则依然没变。本分区的扇区总数加上与前一分区之间的保留扇区数目依然必须是柱面容量的整数倍。(保留扇区中的第一个扇区就是存放分区表的MBR或虚拟MBR的扇区,分区的扇区总数在线性表示方式上是不计入保留扇区的。如果是第一个分区,保留扇区是本分区前的所有扇区。

附:分区表类型标志如图4

3.2 扩展分区:

扩展分区中的每个逻辑驱动器都存在一个类似于MBR的扩展引导记录( Extended Boot Record, EBR),也有人称之为虚拟mbr或扩展mbr,意思是一样的。扩展引导记录包括一个扩展分区表和该扇区的标签。扩展引导记录将记录只包含扩展分区中每个逻辑驱动器的第一个柱面的第一面的信息。一个逻辑驱动器中的引导扇区一般位于相对扇区32或63。但是,如果磁盘上没有扩展分区,那么就不会有扩展引导记录和逻辑驱动器。第一个逻辑驱动器的扩展分区表中的第一项指向它自身的引导扇区。第二项指向下一个逻辑驱动器的EBR。如果不存在进一步的逻辑驱动器,第二项就不会使用,而且被记录成一系列零。如果有附加的逻辑驱动器,那么第二个逻辑驱动器的扩展分区表的第一项会指向它本身的引导扇区。第二个逻辑驱动器的扩展分区表的第二项指向下一个逻辑驱动器的EBR。扩展分区表的第三项和第四项永远都不会被使用。

通过一幅4分区的磁盘结构图可以看到磁盘的大致组织形式。如图5:

关于扩展分区,如图6所示,扩展分区中逻辑驱动器的扩展引导记录是一个连接表。该图显示了一个扩展分区上的三个逻辑驱动器,说明了前面的逻辑驱动器和最后一个逻辑驱动器之间在扩展分区表中的差异。

除了扩展分区上最后一个逻辑驱动器外,表2中所描述的扩展分区表的格式在每个逻辑驱动器中都是重复的:第一个项标识了逻辑驱动器本身的引导扇区,第二个项标识了下一个逻辑驱动器的EBR。最后一个逻辑驱动器的扩展分区表只会列出它本身的分区项。最后一个扩展分区表的第二个项到第四个项被使用。

表2 扩展分区表项的内容

扩展分区表项 分区表项的内容
第一个项 包括数据的开始地址在内的与扩展分区中当前逻辑驱动器有关的信息
第二个项 有关扩展分区中的下一个逻辑驱动器的信息,包括包含下一个逻辑驱动器的EBR的扇区的地址。如果不存在进一步的逻辑驱动器的话,该字段不会被使用
第三个项 未用
第四个项 未用

扩展分区表项中的相对扇区数字段所显示的是从扩展分区开始到逻辑驱动器中第一个扇区的位移的字节数。总扇区数字段中的数是指组成该逻辑驱动器的扇区数目。总扇区数字段的值等于从扩展分区表项所定义的引导扇区到逻辑驱动器末尾的扇区数。

有时候在磁盘的末尾会有剩余空间,剩余空间是什么呢?我们前面说到,分区是以1柱面的容量为分区粒度的,那么如果磁盘总空间不是整数个柱面的话,不够一个柱面的剩下的空间就是剩余空间了,这部分空间并不参与分区,所以一般无法利用。照道理说,磁盘的物理模式决定了磁盘的总容量就应该是整数个柱面的容量,为什么会有不够一个柱面的空间呢。在我的理解看来,本来现在的磁盘为了更大的利用空间,一般在物理上并不是按照外围的扇区大于里圈的扇区这种管理方式,只是为了与操作系统兼容而抽象出来CHS。可能其实际空间容量不一定正好为整数个柱面的容量吧。

分享到:
评论

相关推荐

    硬盘工作原理及数据存储原理

    总之,理解硬盘工作原理和数据存储原理,不仅能够帮助我们更有效地使用和保护硬盘,还能在遇到问题时迅速找到解决方案,确保数据的安全和系统稳定运行。对于计算机用户来说,这些都是必备的知识点。

    硬盘工作原理与硬盘电气结构

    ### 硬盘工作原理与硬盘电气结构 硬盘作为计算机系统中的主要存储设备之一,在数据存储和读取过程中起着至关重要的作用。本文将详细解析硬盘的工作原理、功能结构及电气机构等内容,帮助读者深入了解硬盘的技术细节...

    移动硬盘设计原理图

    在《移动硬盘盒电路图.pdf》这个文件中,应该详细展示了移动硬盘的电路设计,包括各个组件的位置、连接方式以及工作原理。文件可能涵盖了PCB布局、元器件选型、信号路径和电源管理等方面的信息,是设计和制作移动...

    电脑硬盘原理视频演示

    这个TED视频通过生动的动画演示,使得复杂的硬盘工作原理变得易于理解。观众不仅可以了解硬盘的基本构造,还能深入理解数据如何在硬盘上存储和检索,对于电脑爱好者和技术人员来说,是一份宝贵的教育资源。

    机械硬盘和固态硬盘的工作原理和区别文档PPT学习教案.pptx

    机械硬盘和固态硬盘的工作原理和区别 机械硬盘的工作原理: 机械硬盘的结构基本上都是相同的:电路板上的主控制器芯片负责与芯片组之间的通信并且控制硬盘内部的运转;盘片是用磁性材料做成的,固定在硬盘中部的...

    硬盘工作原理

    【硬盘工作原理详解】 硬盘,作为计算机的主要存储设备,自1956年IBM的Ramac磁盘存储系统诞生以来,已经历了多年的技术革新和发展。尽管接口类型如SCSI、IDE、SATA等多样化,但核心工作原理始终遵循1968年提出的...

    常用硬盘电路原理分析

    本文旨在深入探讨硬盘电路的工作原理,特别关注当前较新型硬盘的实际应用情况。文章首先概述了一个完整的硬盘电路示意框图,该框图由14个关键组成部分构成: 1. **Buffer Memory(缓冲区存储器)**:负责暂存数据,...

    台湾智微科技2.5英寸SATA固态硬盘电路原理图

    尽管生产厂家众多,但固态硬盘的内部电路原理基本上是一致的。本文档以台湾智微科技生产的2.5英寸SATA固态硬盘为例,分析了其电路原理图。 首先,要了解固态硬盘的电路原理,必须先了解其基本组件。固态硬盘主要由...

    关于硬盘工作原理的绝密资料。

    本文将深入探讨硬盘的工作原理,帮助你理解这个看似神秘的存储设备是如何工作的。 首先,我们来了解一下硬盘的基本结构。硬盘主要由磁头组件、盘片、主轴电机、读/写控制器、缓存和接口等部分组成。盘片是由高纯度...

    硬盘硬件结构,物理结构,引导原理

    硬盘作为计算机中不可或缺的数据存储设备,其复杂的硬件结构和工作原理是计算机数据管理的基础。本文旨在深入探究硬盘的硬件结构、物理结构以及引导原理,帮助读者清晰地理解硬盘的工作机制。 首先,硬盘的基本硬件...

    硬盘内部硬件结构和工作原理详解

    ### 硬盘内部硬件结构和工作原理详解 硬盘作为一种重要的数据存储设备,在现代计算系统中扮演着核心角色。本文将详细介绍硬盘的内部硬件结构及其工作原理,这对于深入理解Linux操作系统以及硬件工程师而言是非常...

    固态硬盘SSD原理详细介绍,固态硬盘原理详解,C,C++源码.zip

    本资料将详细介绍SSD的工作原理,同时包含C和C++源码,可帮助读者更深入地理解其内部机制。 SSD的基本结构包括控制器、NAND闪存芯片和缓存。控制器负责管理数据的读写操作,优化性能并确保数据的完整性。NAND闪存...

    计算机硬件与技术--硬盘的发展历史\硬盘的工作原理

    【硬盘的工作原理】 硬盘作为计算机的主要外部存储设备,其工作原理基于磁记录。写入数据时,磁头会对硬盘盘片表面的磁化单元进行磁化,类似于录音机的录音过程。数据以二进制形式,沿着环状同心圆轨迹一圈一圈地...

    对硬盘的各个结构 原理详解

    硬盘是计算机存储系统的核心组成部分,其内部结构和工作原理对于理解数据存储至关重要。本文将深入探讨硬盘的物理结构和逻辑组织,以便更好地了解其工作方式。 1. 磁头: 磁头是硬盘中至关重要的组件,负责读取和...

    硬盘的工作原理及作用PPT学习教案.pptx

    下面将详细讲解硬盘的工作原理及其在计算机中的作用。 首先,我们来看硬盘的结构。硬盘主要由以下几个部分组成: 1. **磁头**:磁头是读取和写入数据的关键组件。它通过磁性变化来记录和读取信息,悬浮在高速旋转...

    硬盘读写原理

    本文将详细介绍硬盘的基本结构、工作原理以及数据的存储方式,帮助读者深入理解硬盘如何高效地进行数据的读取与写入。 #### 一、硬盘的种类及发展 硬盘按照接口类型主要可以分为SCSI、IDE以及SATA三种。其中,SCSI...

    硬盘MP3 player原理图

    本文将深入探讨硬盘MP3播放器的工作原理,并结合提供的资源来解析其设计细节。 首先,硬盘MP3播放器的核心组成部分包括硬盘、数字信号处理器(DSP)、闪存、控制器和用户界面。硬盘是主要的存储介质,用于保存大量...

    硬盘存储原理的详细解读.docx

    硬盘作为计算机的主要存储设备,其工作原理和技术细节至关重要。本文将深入解析硬盘的组成、工作原理,以及盘面、磁道、柱面和扇区的概念。 一、硬盘的组成 硬盘主要由以下几个部分构成: 1. 盘片:硬盘的核心,...

Global site tag (gtag.js) - Google Analytics