小智 9
CHS指的是从磁盘确实以这种方式访问数据的日子开始的气缸,磁头和扇区 - 选择气缸,磁头和扇区来读取.
LBA是一种新的方案,它基本上将磁盘作为不断增加的块数来解决.
转换方案基本上可以让您从一个到另一个.首先,该等式为您提供了一些您需要知道的值的占位符 - 每个柱面有多少个头,以及每个头有多少个扇区.
所以,现在想象你有一些像这样的数据:
Cylinder number Head Number Sector Number Data LBA
================================================================================
0 0 0 A 1
0 0 1 B 2
0 0 2 A 3
0 1 0 B 4
0 1 1 A 5
0 1 2 B 6
Run Code Online (Sandbox Code Playgroud)
这是一个刻意设计的方案,其中每个头只有三个轨道.如何,我们选择订购LBA,以便我们上升的每个轨道号增加数量.但是,当我们切换磁头时,我们还需要增加磁道编号.因此,我们可以说:
LBA = sectors per head * current head + current sector number
Run Code Online (Sandbox Code Playgroud)
所以现在找到LBA 4,我们知道CHS表示法等于(0,1,0).每人三个部门,3*1+0=4.
注意,我故意错过了-1所以你专注于这个想法 - 这是因为LBA是零偏移的.
无论如何,所以这适用于头部和扇区,但是气缸怎么样?好吧,如果柱面数增加一个,我们就会number of heads per cylinder在磁盘上向前跳跃,这是number of heads per cylinder times number of sectors per head磁盘上的扇区.如果给出一个柱面,头部,扇区元组,我们可以计算出可能有多少扇区:
LBA = (((cylinder number * heads per cylinder) + head number) *
* sector per head) + sector number - 1
Run Code Online (Sandbox Code Playgroud)
从左到右工作,等式的第一部分将圆柱数转换为跳跃所需的磁头数; 下一部分将当前头部编号添加到该部分并将其转换为多个扇区.最后,添加当前扇区号并从零索引中减去一个.
我有点在这里重复自己,并且有充分的理由 - 这只是其中一个概念.如果它有帮助,绘制一个并行 - 从十六进制转换为十进制.假设我已经给你FED并想知道十进制是什么.好吧,转换将是:
dec = (((15*16)+14)*16)+13
Run Code Online (Sandbox Code Playgroud)
我是怎么做到的?好吧,在美联储从左到右,每"十"有16"数百",我们有数字15.为此,我们加上"十"的数字,这是14.我们再次乘以16,因为有每单位16"十".最后,我们增加了额外的13个单位.
问题是,你每天都用十进制数做这种事 - 这里唯一的困难是基数或基数是一个不是十的数字,因此在我们的自然符号中是有意义的.
编辑:我刚刚想到你正在询问相反的方向.那更容易!
首先,模数运算符 - 这意味着当除以另一个值时给定值的剩余部分.因此,如果我们有,r = X mod Y则r是X除以Y的余数.
这通常被称为时钟算术,因为像时钟一样,这些值随着您的增加以循环方式传播X.
我们也可以计算除数的商-给一对X,Y和计算X/Y,这就是最大价值A,使得X > AY.
把它们放在一起,如果你被要求计算32的商和余数除以5,我们看到2 = 32 mod 5,因为5除以30.然后,30 = 6*5,所以商是6.
对,现在进入公式.给定一个LBA地址,我们知道如果我们将每个磁道的磁道乘以每个磁道的磁头数,这就得到了给定磁道数"覆盖"的磁道数 - 该范围内的所有余数都使用相同的圆柱形nunber.使用上面设计表的实际例子:每个头有三个轨道,让我们说每个圆柱6个头 - 所以6*3 = 18.现在拿一个LBA,比如说5 - 5/18 = 0余数5.所以我们把那个商数值作为圆柱数,它就是.
那么接下来的问题就是LBA编号,并按每个轨道的扇区划分 - 为什么?记住,我们的LBA计算"轨迹".除以此值并发言(因为每个单独的轨道占所有可能的剩余部分)将我们转为头.然后,我们以每个气缸的磁头数量为模数,这样,例如,如果我们每个气缸有6个磁头,磁头值为8,我们正确报告磁头数为2(气缸数为1,占第6).
最后,扇区号是一个简单的LBA除以每个磁道的扇区(加一个以抵消零索引)余数.为什么?那么,在需要不同的头/轨道之前,每个轨道只能包含一定数量的扇区.
| 归档时间: |
|
| 查看次数: |
4161 次 |
| 最近记录: |