问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

磁盘的寻址方式

发布网友 发布时间:2022-04-24 03:31

我来回答

2个回答

热心网友 时间:2022-07-12 23:46

硬盘有两种寻址模式,一种就是C/H/S(Cylinder/Head/Sector)寻址模式,也可以称为三维地址模式,这是硬盘最早采用的寻址模式,当时硬盘的容量还非常小,人们采用与软盘类似的结构生产硬盘,也就是硬盘盘片的每一条磁道都具有相同的扇区数,由此产生了所谓的3D参数(Disk Geometry),既磁头数(Heads)、柱面数(Cylinders)、 扇区数(Sectors),以及相应的寻址方式。
在老式硬盘中,由于每个磁道的扇区数相等(与软盘一样),所以外磁道的记录密度要远低于内磁道,因此会浪费很多磁盘空间。为了解决这一问题,进一步提高硬盘容量(C/H/S寻址的容量是有*的,后面会提到),人们改用等密度结构生产硬盘,也就是说,外圈磁道的扇区比内圈磁道多。采用这种结构后,硬盘不再具有实际的3D参数,寻址方式也改为线性寻址,即以扇区为单位进行寻址,这种寻址模式叫做LBA,全称为Logic Block Address(即扇区的逻辑块地址)。
扇区的三维物理地址与硬盘上的物理扇区一一对应,即三维物理地址可完全确定硬盘上的物理扇区。而在LBA方式下,系统把所有的物理扇区都按照某种方式或规则看做是一个线性编号的扇区,即从0到某个最大值方式排列,并连成一条线,把LBA作为一个整体来对待,而不再是具体的实际的C/H/S值,这样只用一个序数就确定了一个惟一的物理扇区,显然线性地址是物理扇区的逻辑地址。
为了与使用C/H/S寻址的老软件兼容(如使用BIOS Int13H接口的软件)在硬盘控制器内部安装了一个地址翻译器,由它负责将C/H/S参数翻译成LBA地址。
那么LBA地址到底如何与实际的C/H/S值相对应呢?如何把C/H/S地址转换为LBA地址,把LBA地址转换成C/H/S值呢?
首先,我们来了解一下从C/H/S到LBA线性地址的转换规则。由于系统在写入数据时是按照从柱面到柱面的方式,在上一个柱面写满数据后才移动磁头到下一个柱面,并从柱面的第一个磁头的第一个扇区开始写入,从而使磁盘性能最优,所以,在对物理扇区进行线性编址时,也按照这种方式进行。即把第一柱面(0柱)第一磁头(0面)的第一扇区(1扇区)编为逻辑“0”扇区,把第一柱面(0柱)第一磁头(0面)的第二扇区(2扇区)编为逻辑“1”扇区,直至第一柱面(0柱)第一磁头(0面)的第63扇区(63扇区)编为逻辑“62”扇区,然后转到第一柱面(0柱)第二磁头(1面)的第一扇区(1扇区),接着上面编为逻辑“63”扇区,0柱面所有扇区编号完毕后转到1柱面的0磁头1扇区,依次往下进行,直至把所有的扇区都编上号。
另外还要注意C/H/S中的扇区编号从“1”至“63”,而LBA方式下扇区从“0”开始编号,所有扇区顺序进行编号。
掌握了这个关系,我们就可以列出公式来对两种寻址模式进行相互转换。
从C/H/S到LBA的转换公式:
这里规定用C表示当前柱面号,H表示当前磁头号,S表示当前扇区号,CS表示起始柱面号,HS表示起始磁头号,SS表示起始扇区号,PS表示每磁道扇区数,PH表示每柱面磁道数,所以公式为:
LBA=(C–CS)﹡PH﹡PS+(H–HS)﹡PS+(S–SS)
一般情况下,CS=0,HS=0,SS=1,PS=63,PH=255。
下面带入几个值验证一下:
当C/H/S=0/0/1时,代入公式得LBA=0
当C/H/S=0/0/63时,代入公式得LBA=62
当C/H/S=0/1/1时,代入公式得LBA=63
这里不再过多验证,请读者自己进行跟多值的验证,下面来看从LBA到C/H/S的转换关系。
首先介绍两种运算DIV和MOD(这里指对正整数的操作)。DIV称做整除运算,即被除数除以除数所得商的整数部分。比如,3 DIV 2=1,10 DIV 3=3;MOD运算则是取商的余数。比如,5 MOD 2=1,10 MOD 3=1。DIV和MOD是一对搭档,一个取整数部分,一个取余数部分。
各参数仍然按上述假设进行,则从LBA到C/H/S的转换公式为:
C=LBA DIV (PH﹡PS)+CS
H=(LBA DIV PS)MOD PH+HS
S=LBA MOD PS+SS
同样可以带入几个值进行验证:
当LBA=0时,代入公式得C/H/S=0/0/1
当LBA=62时,代入公式得C/H/S=0/0/63
当LBA=63时,代入公式得C/H/S=0/1/1

热心网友 时间:2022-07-12 23:47

通常是扇区与磁道,编程中不都是这么设计的吗
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
tplink无线扩展器怎样重置密码 扩展器原始的密码是什么 如何重新设置TPLink扩展器的密码简单步骤教你修改TPLink扩展器的... 为什么要加入tcpip协议 父母如何给孩子做一个好榜样 父母应该如何做孩子的榜样? 冬季草原防火安全知识 冬季景区该如何预防火灾 厨房暗管漏水 多少钱 手脚出汗,睡眠不好,早泄是阳虚还是阴虚 速卖通卖手机壳竞争会不会很大 简述磁盘分区有哪些方式? 手机壳哪牌子,哪些型号比较好卖,要详细点 硬盘格式有哪几种方法? 手机壳的核心竞争力是什么? 请问:常用硬盘分区方式有哪几种? 磁盘类型有哪些?磁盘类型为2是表示? 磁盘是用什么方式来储存的? 磁盘分区方式 锦和什么字,取名字好? 锦熙这个名字的寓意 姓李带锦的男宝宝取什么名字好听 锦字开头的男孩的名字? 男孩名字性毛中间带锦字 王姓男孩,想请大家帮忙起个三个字的名字,里面要有个“锦”字,锦字在中间在后面都可以,谢谢大家! 小学生一年级,书包要买多大的合适呢? 给孩子起名字大全2015带锦字 我想给自己的儿子取名,性张男孩,中间带锦字,有什么好听的名字 什么牌子的书包适合小学生 求助~有家长给孩子买过减负书包的吗?到底哪个牌子比较好啊~_百度知 ... 手机壳这个行业,竞争激烈吗 手机壳定制市场前景怎么样? 手机壳是硬壳好还是软壳好,硬壳竟然比软壳更加耐摔 关于硬盘组合方式的问题。 经营手机壳的目标市场中竞争状况 如何将磁盘格式化?有几种方式?越简单越好,谢谢!! 手机壳会致癌吗? 磁盘分区方法有哪些? 开手机壳DIY店,赚钱吗? 基本磁盘是以什么来命名分区的? 买机器自己做手机壳卖赚钱吗? 手机壳的利润为什么超过了手机厂商的利润? 求华强北某两层手机壳批发市场所在的大厦具体位置 想做手机壳代理哪里有!! 卖手机壳 手机套宣传软文应该怎么写 “特此通报”可以用于喜事通报吗? 特此通告是什么意思? 公文的正文最后可以加“特此告知”四个字吗? 一般“特此通知”“特此证明”后要不要加句号?