硬盘基本知识:物理构造和逻辑单元

转载 2015年07月09日 16:26:16

首先简单认识一下硬盘的物理结构,硬盘内部的物理结构很复杂,只能从大的颗粒度去看内部的结构。


       总体来说,硬盘结构包括:盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等几个部份。所有的盘片(一般硬盘里有多个盘片,盘片之间平行)都固定在一个主轴上。在每个盘片的存储面上都有一个磁头,磁头与盘片之间的距离很小(所以剧烈震动容易损坏),磁头连在一个磁头控制器上,统一控制各个磁头的运动。磁头沿盘片的半径方向动作,而盘片则按照指定方向高速旋转,这样磁头就可以到达盘片上的任意位置了。

硬盘基本知识:物理构造和逻辑单元

基本的结构就是这样子的,至于硬盘是如何进行读写的,必须要知道磁盘盘片是如何划分的?否则你只知道磁头在盘片上动来动去。

 
盘片上涉及的基本概念

 

       整个硬盘上一般有很多的盘片组成,每个盘片如同切西瓜一样被“切”成一块一块的扇面,同时沿着半径的方向被划分成了很多同心圆,就是传说中的磁道,每条磁道被扇面切成很多的扇形区域叫做扇区(扇区是从磁盘读出和写入信息的最小单位,通常大小为512字节),不同盘片上的同半径磁道组成了柱面,这些都是磁盘物理上的概念,知道便可。有了这些概念,我帮便可以计算磁盘的容量:

 

磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数

 

l         磁头(head)数:每个盘片一般有上下两面,分别对应1个磁头,共2个磁头;

l         磁道(track)数:磁道是从盘片外圈往内圈编号0磁道,1磁道...,靠近主轴的同心圆用于停靠磁头,不存储数据;

l         柱面(cylinder)数:同磁道数量;

l         扇区(sector)数:每个磁道都别切分成很多扇形区域,每道的扇区数量相同;

l         圆盘(platter)数:就是盘片的数量。

 

硬盘基本知识:物理构造和逻辑单元
 

 硬盘基本知识:物理构造和逻辑单元

硬盘上的数据定位

 

      每个扇区可存储128×2的N次方(N=0.1.2.3)字节的数据(一般为512B),扇区为数据存储的最小单元,从上图可知,外圈的扇区面积比内圈大,为何存储的数据量相同,这是因为内外圈使用的磁物质密度不同,但现在的硬盘已经采用内外圈同密度物质来存储数据了,以减少类似“大面积小数据”的浪费情况。(此时的内外磁道的扇区数量将不同,具体细节省略)

 

      有了扇区(sector),有了柱面(cylinder),有了磁头(head),维修网显然可以定位数据了,这就是数据定位(寻址)方式之一,CHS(也称3D),对早期的磁盘(上图所示)非常有效,知道用哪个磁头,读取哪个柱面上的第几扇区就OK了。CHS模式支持的硬盘容量有限,用8bit来存储磁头地址,用10bit来存储柱面地址,用6bit来存储扇区地址,而一个扇区共有512Byte,这样使用CHS寻址一块硬盘最大容量为256 * 1024 * 63 * 512B = 8064 MB(1MB = 1048576B)(若按1MB=1000000B来算就是8.4GB)

 

       但现在很多硬盘采用同密度盘片,意味着内外磁道上的扇区数量不同,扇区数量增加,容量增加,3D很难定位寻址,新的寻址模式:LBA(Logical Block Addressing)。在LBA地址中,地址不再表示实际硬盘的实际物理地址(柱面、磁头和扇区)。LBA编址方式将CHS这种三维寻址方式转变为一维的线性寻址,它把硬盘所有的物理扇区的C/H/S编号通过一定的规则转变为一线性的编号,系统效率得到大大提高,避免了烦琐的磁头/柱面/扇区的寻址方式。在访问硬盘时,由硬盘控制器再将这种逻辑地址转换为实际硬盘的物理地址。

 

LBA下的编号,扇区编号是从0开始。

 

逻辑扇区号LBA的公式:

 

LBA(逻辑扇区号)=磁头数 × 每磁道扇区数 × 当前所在柱面号 + 每磁道扇区数 × 当前所在磁头号 + 当前所在扇区号 – 1

 

例如:CHS=0/0/1,则根据公式LBA=255 × 63 × 0 + 63 × 0 + 1 – 1= 0

 

也就是说物理0柱面0磁头1扇区,是逻辑0硬盘基本知识:物理构造和逻辑单元

相关文章推荐

硬盘基本知识:物理构造和逻辑单元

首先简单认识一下硬盘的物理结构,硬盘内部的物理结构很复杂,只能从大的颗粒度去看内部的结构 总体来说,硬盘结构包括:盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等...

汽车构造基本知识

  • 2008-08-09 11:34
  • 1.12MB
  • 下载

FPGA verilog的编程心得---如何写代码减少逻辑单元的使用数量?

以下都是我在编程时发现的问题,总结一下,怕以后忘了,以我目前的水平不明白类似关键路径,组合数目什么高深理论,这都是我从实际中学到的,比看书学的印象深刻得多.慢慢来吧,我想我以后也会明白那些高级的东西了...

算术逻辑单元设计

alu运算逻辑单元

FPGA verilog的编程心得---如何写代码减少逻辑单元的使用数量?

以下都是我在编程时发现的问题,总结一下,怕以后忘了,以我目前的水平不明白类似关键路径,组合数目什么高深理论,这都是我从实际中学到的,比看书学的印象深刻得多.慢慢来吧,我想我以后也会明白那些高级的东西了...

VHDL 运算逻辑单元

  • 2010-12-22 22:59
  • 543KB
  • 下载

SWJTU计算机组成实验C-实验四 算术逻辑单元(ALU)设计

实验目的,实验目的,说明实验仪器、设备等说明参见《计算机组成实验C》实验及课程设计指导书 程序代码 8bit ALU设计: LIBRARY IEEE; USE IEEE.STD_LO...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)