回答
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
这其中有每人只有三轨故意做作方案。如何,我们已经选择了LBA,以便我们每次追踪的曲目号码都会增加。但是,当我们切换头部时,我们还需要增加曲目编号。因此,我们可以说:
LBA = sectors per head * current head + current sector number
所以现在找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
从左至右工作,等式的第一部分转换柱面号为需要跳跃的人数;下一部分将当前头号添加到该头部并将其转换为多个扇区。最后,添加当前扇区号并从零索引中减去一个。
我在这里重复自己,有很好的理由 - 这只是其中的一个概念。如果有帮助,请绘制一个从十六进制到十进制的并行转换。假设我给了你FED,并想知道十进制数是什么。嗯,转换将是:
dec = (((15*16)+14)*16)+13
我怎么工作了这一点?那么,从左至右在FED,有16个“数百名”每“十”,我们有数字15,除此之外,我们“十位”的数量,这是14本,我们通过16再乘以因为有每单位16“十”。最后,我们增加额外的13个单位。
的事情是,你每天做这种事情有小数号码 - 这里唯一的困难是基础,或radix是一个数字,不十因此很有意义我们自然符号。
编辑:它只是发生在我身上,你实际上是在问相反的方向。这是多容易!
首先,模数运算符 - 这意味着在给定值的剩余部分在由另一个值除以。因此,如果我们有r = X mod Y
则r是余当X用Y
这就是通常所说的时钟算法,考虑的事实,就像一个时钟,这些值去周围循环的方式为你增加X
。
我们也可以计算除数的商 - 给一对X
,Y
和计算X/Y
,这就是A
这样X > AY
的最大值。
把它放在一起,如果你被要求计算除以5的32和商的余数,我们看到2 = 32 mod 5,因为5除以30.然后,30 = 6 * 5,所以商是6.
右,现在到公式。给定一个LBA地址,我们知道,如果我们每气缸盖乘以每头的轨道,这给了我们一个轨道特定气缸数“盖”的数量 - 在这个范围内的所有余使用相同的气缸nunber。使用上述人工表格的实例:每头有三条轨道,假设每个汽缸有六个头 - 所以6 * 3 = 18。现在取一个LBA,比如5 - 5/18 = 0,余数为5.所以我们把这个商值看作柱面数,就是这个数。
那么接下来的问题采取LBA数并划分,通过每磁道的扇区你 - 为什么?请记住,我们的LBA计数“跟踪”。按照这个数值划分并发言(因为每个单独的轨道都包含所有可能的剩余部分)将我们转换为头像。然后,我们取该值模的每个气缸头的数量,从而,例如,如果我们有每缸和为8的头值6头,我们正确地报告头数为2(气缸数为1,占第一个6)。
最后,扇区号是一个简单的LBA除以每个磁道的扇区(加上一个来抵消零索引)的余数。为什么?那么,每个曲目只能包含一定数量的扇区,然后才能使用不同的磁头/磁道。
非常感谢! –
我有同样的问题试图了解它...... WTH是“每缸”和“每扇区”......不是它是“每个磁盘的磁头”,“扇区-per-track“和”每个磁盘的磁盘“?我刚才问这个问题 - http://stackoverflow.com/questions/32642016/chs-to-lba-mapping-disk-storage任何帮助将不胜感激,谢谢! –
- 1. CHS到LBA映射 - (磁盘存储)
- 2. 我可以更喜欢LBA在操作系统开发中使用CHS吗?
- 3. LBA和集群
- 4. Cabal搭配c2hs找不到.chs模块
- 5. 解释Regex提到
- 6. LBA级磁盘访问
- 7. 命令解释器/解释
- 8. 请解释并解释
- 9. CHS转换为csv中的R
- 10. 从解释到编译heist
- 11. C MSB到LSB解释
- 12. 庆典:找到解释
- 13. 的Python到C#解释
- 14. 运行Python解释器的Python解释器:解释行为
- 15. Block Layer中的重复LBA请求
- 16. 查找SCSI硬盘的最大LBA
- 17. 写入磁盘上的每个LBA
- 18. 解释
- 19. 解释
- 20. 解释
- 21. 解释
- 22. 解释到意想不到的输出
- 23. 详细解释稠密等级解释
- 24. Regular Lua解释器与LuaJIT解释器?
- 25. Python解释器可以用Python实现,但是哪个解释器会解释解释器本身?
- 26. 递归解释
- 27. 请解释
- 28. 没有解释
- 29. 解释函数
- 30. LDA解释
它与将小时:分钟:秒转换为秒和返回相同。你只有不同的号码。 –