美文网首页
访问硬盘

访问硬盘

作者: 不要加香菜 | 来源:发表于2018-01-13 20:39 被阅读0次

硬盘读写的基本单位是扇区。

从硬盘读取数据的模式

  1. CHS 模式,向硬盘控制器分别发送磁头号、柱面号和扇区号(扇区在某个柱面上的编号)。
  2. LBA 模式,对所有扇区同一编址,称为逻辑扇区,提供逻辑扇区号访问。
    • LBA28,使用 28 个 bit 表示逻辑扇区号,每个扇区 512 B,总共可管理 128 GB 的硬盘。
    • LBA48,46 个 bit 表示逻辑扇区号,可管理 131072 TB 的硬盘容量。

LBA28 访问硬盘

主硬盘控制器具有 8 个端口,端口号从0x01f00x01f7

  1. 设置要读取的扇区数量

    • 端口号:0x01f2,表示读取的扇区数
  2. 设置起始 LBA 扇区号

    • 逻辑扇区编址方法 LBA28,用28位表示逻辑扇区号
    • 端口号:0x01f3,表示起始 LBA 扇区号 7~0 位
    • 端口号:0x01f4,表示起始 LBA 扇区号 15~8 位
    • 端口号:0x01f5,表示起始 LBA 扇区号 23~16 位
    • 端口号:0x01f6
      • 低 4 位表示起始 LBA 扇区号的 27~24 位
      • 第 4 位指示硬盘号,0表示主盘,1表示从盘
      • 高 3 位是“111”;第 6 位为 1:表示 LBA 模式,为 0:表示 CHS 模式
  3. 设置命令

    • 端口号:0x01f7,既是命令端口,又是状态端口
      • 当端口值为0x20时,表示读
  4. 等待读写操作完成

    • 端口号:0x01f7,硬盘读写期间此端口表示硬盘状态
      • 第 0 位,1表示前一个命令执行错误,具体原因见端口号:0x01f1
      • 第 3 位,1表示硬盘已准备好交换数据
      • 第 7 位,1表示硬盘忙
  5. 连续取出数据

    • 端口号:0x01f0,数据端口,这是一个 16 bit 端口。
  6. 错误信息

    • 端口号:0x01f1,包含硬盘驱动器最后一次执行命令后的状态,错误原因。

参考

  1. 《x86汇编语言:从实模式到保护模式》 —— 李忠

相关文章

  • 访问硬盘

    硬盘读写的基本单位是扇区。 从硬盘读取数据的模式 CHS 模式,向硬盘控制器分别发送磁头号、柱面号和扇区号(扇区在...

  • 变量、数据的存储——C语言基础

    内存和硬盘的区别: 内存(RAM):①:掉电则数据丢失 ②:随机访问 ③:访问速度快 硬盘(ROM):①:掉电后数...

  • 存储性能优化

    1、机械硬盘 VS 固态硬盘 机械硬盘是目前最常用的一种硬盘,通过马达驱动磁头臂,带动磁头到指定的磁盘位置访问数据...

  • Linux文件系统、主要目录与磁盘分区

    访问原理 Windows系统中, 所有东西都是存于硬盘上。启动系统后,先确定硬盘,再确定硬盘上的分区以及每个分区所...

  • mysql与redis

    硬盘与内存 硬盘放置主体数据用于持久化存储,而内存则是当前运行的那部分数据;CPU访问内存而不是硬盘 redis出...

  • Linux Swap 交换分区

    交换分区是内核直接访问的硬盘空间,在内存不足时系统将部分内存置于交换分区,由于是硬盘访问速度会比物理内存慢。下图是...

  • 文件系统

    文件组织结构 硬盘的读写单位是扇区,为了避免频繁访问硬盘,操作系统会等到数据积累到一定大小,才进行硬盘读写操作。这...

  • Google果然正积极准备重返中国

    编辑尝试访问google.cn发现,除了翻译和地图可以正常访问外,搜索、云端硬盘、相册等功能仍然无法直接访问。虽然...

  • 手机如何访问电脑硬盘

    在2017年的今天已经是一个手机、电脑、移动硬盘烂大街的年代,手机虽然人手必备,但是ROM的使用是个很头疼的问题,...

  • linux挂载

    查询系统中已挂载的设备 输出 访问/,即可访问第一块硬盘(a)的第一个分区(1)内容访问/mnt,即可访问第二块硬...

网友评论

      本文标题:访问硬盘

      本文链接:https://www.haomeiwen.com/subject/jpchoxtx.html