磁盘

本文深入解析硬盘的两种主要类型:机械硬盘与固态硬盘,并详细阐述了硬盘接口的发展历程,从早期的并行接口(PATA)到现代的串行接口(SATA)。此外,还探讨了磁盘访问模式的演变,包括CHS方式及其局限性,以及LBA方式如何克服这些局限,提供更高效的数据定位。文章还提供了CHS与LBA之间的转换公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

磁盘

软盘和硬盘

目前主流的硬盘分为两种:

1)机械硬盘

2)固态硬盘

硬盘最早的接口分为两种方式

1) 并行接口方式(PATA),目前已经淘汰。

2) 串行接口(SATA)。

CHS方式访问磁盘

磁盘的三层定位结构分别为 柱面(Cylinder),磁头(Head),扇区(Sector)

使用数字,按顺序根据柱面,磁头,扇区定位扇区地址的方式,称之为CHS方式。

CHS方式的局限:这种模式及下,支持的最大柱面数为1024,最大磁头数为16,追打扇区数位63,扇区字节数为512.因此最大访问硬盘容量为

1024 x 16 x 63 x 512 = 528MB

虽然后面又拓展了large模式读取,但是没有解决根本问题。

所以后来有LBA的读取方式。LBA方式不使用柱面-磁头-扇区方式定位,直接以从0开始,逐次递增的方式来定位逻辑扇区。

比如: 扇区0,扇区1,....

LBA方式访问磁盘

LBA方式不考虑扇区的物理位置,而是根据逻辑位置来定位的。

LAB使用 :device寄存器,LBA low寄存器,LBA mid寄存器,LBA high寄存器 来计算位置,每个寄存器8位。

例如LAB28,使用一个28位来表示。

LAB28地址 = device寄存器的低4位 + LBA high寄存器 + LBA mid寄存器 + LBA low寄存器

  1. LBA28的局限以及LAB48

CHS和LBA的转换

CHS地址可用以下公式转成LBA,

      $lba=($c x H+$h) x S+$s-1

$c 磁柱编号
$h 磁头编号
$s 扇区编号
H=heads per cylinder,每个磁柱的磁头数
S=sectors per track,每磁道的扇区数

其中,
$lba是逻辑区块编号

LBA可用以下公式对应到CHS:
#c=#lba/(S*H)
#h=(#lba/S)%H
#s=(#lba%S)+1

功能08H 功能描述:读取驱动器参数 入口参数:

AH=08H

DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘

出口参数:

CF=1——操作失败,

AH=状态代码,参见功能号01H中的说明,否则, BL=01H — 360K =02H — 1.2M =03H — 720K =04H — 1.44M

CH=柱面数的低8位

CL的位7-6=柱面数的该2位

CL的位5-0=扇区数

DH=磁头数

DL=驱动器数

ES:DI=磁盘驱动器参数表地址

RATSOS磁盘分布配置

0x0000 - ox01ff 引导扇区,1个扇区,512 B
0x0200 - 0x09ff loader文件,4个扇区,2048 B
0x0a00 - 0x39ff 内核文件,24个扇区,12288 B

转载于:https://www.cnblogs.com/mlzrq/p/10223049.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值