转自:https://blog.csdn.net/liang0000zai/article/details/14929853
盘面,磁道,柱面,扇区
磁盘结构及读写特性(另一篇) http://book.51cto.com/art/201012/238190.htm
1. 盘面
一个盘片都有两个盘面(Side),即上、下盘面,一般每个盘面都会利 用,都可以存储数据,成为
有效盘片,也有极个别的硬盘盘面数为单数。每一个这样的有效盘面都有一个盘面号,按顺序从上至下从
“0”开始依次编号。在硬盘系 统中,盘面号又叫磁头号,因为每一个有效盘面都有一个对应的读写磁头。
硬盘的盘片组在2~14片不等,通常有2~3个盘片,故盘面号(磁头号)为0~3或 0~5。
2. 磁道
磁盘在格式化时被划分成许多同心圆,这些同心圆轨迹叫做磁道(Track)。磁道从外向内从0开始顺序
编号。硬盘的每一个盘面有300~1 024个磁道,新式大容量硬盘每面的磁道数更多。信息以脉冲串的形式记
录在这些轨迹中,这些同心圆不是连续记录数据,而是被划分成一段段的圆弧,这些圆弧 的角速度一样。
由于径向长度不一样,所以,线速度也不一样,外圈的线速度较内圈的线速度大,即同样的转速下,外圈在
同样时间段里,划过的圆弧长度要比内圈 划过的圆弧长度大。每段圆弧叫做一个扇区,扇区从“1”开始编
号,每个扇区中的数据作为一个单元同时读出或写入。一个标准的3.5寸硬盘盘面通常有几百到 几千条磁道
。磁道是“看”不见的,只是盘面上以特殊形式磁化了的一些磁化区,在磁盘格式化时就已规划完毕。
3. 柱面
所有盘面上的同一磁道构成一个圆柱,通常称做柱面(Cylinder),每个圆柱上的磁头由上而下从“0”
开始编号。数据的读/写按柱面进行,即磁 头读/写数据时首先在同一柱面内从“0”磁头开始进行操作,依
次向下在同一柱面的不同盘面即磁头上进行操作,只在同一柱面所有的磁头全部读/写完毕后磁头 才转移到
下一柱面,因为选取磁头只需通过电子切换即可,而选取柱面则必须通过机械切换。电子切换相当快,比在
机械上磁头向邻近磁道移动快得多,所以,数据 的读/写按柱面进行,而不按盘面进行。也就是说,一个磁
道写满数据后,就在同一柱面的下一个盘面来写,一个柱面写满后,才移到下一个扇区开始写数据。读数
据也按照这种方式进行,这样就提高了硬盘的读/写效率。
一块硬盘驱动器的圆柱数(或每个盘面的磁道数)既取决于每条磁道的宽窄(同样,也与磁头的大小
有关),也取决于定位机构所决定的磁道间步距的大小。
4.扇区
操作系统以扇区(Sector)形式将信息存储在硬盘上,每个扇区包括512个字节的数据和一些其他信息。
一个扇区有两个主要部分:存储数据地点的标识符和存储数据的数据段。
扇区的第一个主要部分是标识符。标识符,就是扇区头标,包括组成扇区三维地址的三个数字:扇区所
在的磁头(或盘面)、磁道(或柱面号)以及扇区在磁 道上的位置即扇区号。头标中还包括一个字段,其
中有显示扇区是否能可靠存储数据,或者是否已发现某个故障因而不宜使用的标记。有些硬盘控制器在扇区
头标中 还记录有指示字,可在原扇区出错时指引磁盘转到替换扇区或磁道。最后,扇区头标以循环冗余校
验(CRC)值作为结束,以供控制器检验扇区头标的读出情况, 确保准确无误。
扇区的第二个主要部分是存储数据的数据段,可分为数据和保护数据的纠错码(ECC)。在初始准备期间
,计算机用512个虚拟信息字节(实际数据的存放地)和与这些虚拟信息字节相应的ECC数字填入这个部分。
4、硬盘的读写原理
系统将文件存储到磁盘上时,按柱面、磁头、扇区的方式进行,即最先是第1磁道的第一磁头下(也就是
第1盘面的第一磁道)的所有扇区,然后,是同一柱面的下一磁头,……,一个柱面存储满后就推进到下一个
柱面,直到把文件内容全部写入磁盘。
系统也以相同的顺序读出数据。读出数据时通过告诉磁盘控制器要读出扇区所在的柱面号、磁头号和扇
区号(物理地址的三个组成部分)进行。磁盘控制器则 直接使磁头部件步进到相应的柱面,选通相应的磁头,等待要求的扇区移动到磁头下。在扇区到
来时,磁盘控制器读出每个扇区的头标,把这些头标中的地址信息与 期待检出的磁头和柱面号做比较(即寻
道),然后,寻找要求的扇区号。待磁盘控制器找到该扇区头标时,根据其任务是写扇区还是读扇区,来决
定是转换写电路, 还是读出数据和尾部记录。找到扇区后,磁盘控制器必须在继续寻找下一个扇区之前对
该扇区的信息进行后处理。如果是读数据,控制器计算此数据的ECC码,然 后,把ECC码与已记录的ECC码相
比较。如果是写数据,控制器计算出此数据的ECC码,与数据一起存储。在控制器对此扇区中的数据进行必要
处理期间,磁盘继续旋转。
读写原理续:磁盘的读写顺序都是从盘片的最外面开始向内读写,也就是从1柱面1磁道1扇区开始(0柱面0磁道1扇区为磁盘主引导扇区),然后寻道找到对应的扇区,再根据读写情况,切换电路对磁盘进行或读或写操作。但如果扇区编号(保存在扇区头标)是按1,2,3的数字顺序排列下去,那就可能出现一个读写效率的问题。比如扇区编号是按上面的情况排列在磁道上,那么当磁头对扇区1读写完成后,如果由于盘片的旋转速度过快或磁盘数据读写速度过慢,以致磁头准备对扇区2进行读写时,磁头却转到扇区2中间,磁道上的扇区间隔已不足以为磁盘提供读写下一扇区的准备时间,那么磁盘就需旋转一周后回头再对扇区2进行读写。这样的话,磁盘读写一道磁道时,磁盘旋转的周数就等于该磁道上的扇区数,这将大大降低磁盘的读写速率。因此,IBM的一位工程师就创出一种“交叉因子编码”的方式来对扇区进行编号。比如交叉因子为2:1,也就是1与2之间相差两扇区(比如第一位为扇区1,那么扇区2就在第三位),2与3也是如此,以此类推。如果磁盘旋转通过扇区1、2之间的间隔的时间小于磁盘的准备时间,那么读完一磁道的数据就需要磁盘旋转两周,否则就需旋转一磁道的扇区数。若是“准备时间”仍不足的话可以用交叉因子为3:1。因此通过交叉因子编码可以大大地提高磁盘读写速率,并充分利用磁盘空间,防止资源浪费。
原文地址:https://www.cnblogs.com/heyboom/p/9007334.html