硬盘 / 硬盘控制器主要端口寄存器 / Controller Register

IDE 与 SATA

很久以前,硬盘控制器和硬盘是分开的,后面开发了一个新接口,这才将硬盘控制器和硬盘整合到一起,这样接口称为集成设备电路(Integrated Drive Electronices, IDE)。

IDE接口和SATA接口:

image-20221122002312202

IDE(并口)硬盘 和 SATA(串口)硬盘:

image-20221122002507449

PATA 接口线缆,也称 IDE 线,一条 IDE 线上可以挂在两块硬盘,一个主盘(Master),一个从盘(Slave):

image-20221122002826993

一个主板支持这样的 4 块 IDE(PATA)硬盘,所以主板提供应两个 IDE 插槽。这两个 IDE 插槽分别命名为 IDE0 和 IDE1。也将 IDE0 称为 Primary 通道,将 IDE1 称为 Secondary 通道,它们都是通道。每个通道上分别有主盘和从盘。

Tips:也有可能只有一个 IDE 插槽,甚至不支持 IDE 插槽,这样就要看主板能力了。

SATA 接口线缆:

image-20221122003403525

硬盘分区表结构

偏移长度描述
01状态(08H 可引导、00H 不可引导、其它 不合法)
11起始磁头号
21起始扇区号(仅用了低 6 位,高 2 位为起始柱面号的第 8,9 位)
31起始柱面号的低 8 位
41分区类型(System ID)
51结束磁头号
61结束扇区号(仅用了低 6 位,高 2 位为结束柱面号的第 8,9 位)
71结束柱面号的低 8 位
84起始扇区的 LBA
124扇区数目

硬盘控制器主要端口寄存器

data 寄存器

  • 宽度:16位
  • 在读硬盘时,硬盘准备好数据后,硬盘控制器将其放在内部缓冲区中,不断读此寄存器便是读出缓冲区中的数据。
  • 在写硬盘时,我们要把数据源源不断地输送到此端口,数据便被存入到缓冲区里,硬盘控制器发现这个缓冲区中有数据了,便将此处的数据写入相应的扇区中。

Error && Features

Error
  • 使用场景:读
  • 宽度:8位
  • 只在读取硬盘失败时有用,里面记录失败的信息,尚未读取的扇区保存在 Sector count 寄存器中。
Features
  • 使用场景:写
  • 宽度:8位
  • 写硬盘时,有些命令需要指定额外参数,这些参数就写在 Fea ture 寄存器中。

Sector count

  • 使用场景:读写
  • 宽度:8位
  • 用来指定待读取或写入的扇区数。硬盘每完成一个扇区,就会将此寄存器的值减 1,所以如果中间失败了,此寄存器中的值便是尚未完成的扇区。
  • 8位寄存器,最大值位 255,若指定为 0,则表示操作 256 个扇区。(因为:1 0000 0000 舍去高位 1 从而保证 8 位,结果为 0)

LBA low | mid | high

  • 使用场景:读写
  • 宽度:8位
  • LBA 有两种,一种 LBA28,另一种 LBA48,均用来描述一个扇区的地址。
  • LBA low:存储 28 位地址的第 0~7 位
  • LBA mid:存储第 8~15 位
  • LBA high:存储第 16~23 位
  • device 寄存器的低 4 位:存储第 24~27 位

device 寄存器

  • 使用场景:读写

  • 宽度:8位

  • 图示:

    image-20221124013126954

Status

  • 使用场景:读

  • 宽度:8位

  • 作用:保存硬盘的状态信息。

  • 图示:

    image-20221124013049669

Command

  • 使用场景:写
  • 宽度:8位
  • 作用:存储让硬盘执行的命令,将命令写入该寄存器,硬盘便开始工作了。
  • 主要命令:
    1. identify0xEC 硬盘识别
    2. read sector0x20 读扇区
    3. write sector0x30 写扇区
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值