LBA逻辑块地址
LBA简介
磁盘读取发展
IO操作读取硬盘的三种方式:
chs方式 :小于8G (8064MB)
LBA28方式:小于137GB
LBA48方式:小于144,000,000 GB
LBA方式访问使用了data寄存器,LBA寄存器(总共3个),device寄存器,command寄存器来完成的。
LBA28和LBA48方式:
LBA28方式使用28位来描述一个扇区地址,最大支持128GB的硬磁盘容量。
LBA28的寄存器
| 寄存器 | 端口 | 作用 |
|---|---|---|
| data寄存器 | 0x1F0 | 已经读取或写入的数据,大小为两个字节(16位数据) 每次读取1个word,反复循环,直到读完所有数据 |
| features寄存器 | 0x1F1 | 读取时的错误信息 写入时的额外参数 |
| sector count寄存器 | 0x1F2 | 指定读取或写入的扇区数 |
| LBA low寄存器 | 0x1F3 | lba地址的低8位 |
| LBA mid寄存器 | 0x1F4 | lba地址的中8位 |
| LBA high寄存器 | 0x1F5 | lba地址的高8位 |
| device寄存器 | 0x1F6 | lba地址的前4位(占用device寄存器的低4位) 主盘值为0(占用device寄存器的第5位) 第6位值为1 LBA模式为1,CHS模式为0(占用device寄存器的第7位) 第8位值为1 |
| command寄存器 | 0x1F7 | 读取,写入的命令,返回磁盘状态 1 读取扇区:0x20 写入扇区:0x30 磁盘识别:0xEC |
IDE通道1,读写0x1f0-0x1f7号端口
IDE通道2,读写0x170-0x17f号端口
CHS方式:
写0x1f1: 0
写0x1f2: 要读的扇区数
写0x1f3: 扇区号W
写0x1f4: 柱面的低8位
写0x1f5: 柱面的高8位
写0x1f6: 7~5位,101,第4位0表示主盘,1表示从盘,3~0位,磁头号
写0x1f7: 0x20为读, 0x30为写
读0x1f7: 第4位为0表示读写完成,否则要一直循环等待
读0x1f0: 每次读取1个word,反复循环,直到读完所有数据
24-bit LBA方式:
写0x1f1: 0
写0x1f2: 要读的扇区数
写0x1f3: LBA参数的0~7位
写0x1f4: LBA参数的8~15位
写0x1f5: LBA参数的16~23位
写0x1f6: 7~5位,111,第4位0表示主盘,1表示从盘,3~0位,LBA参数的24~27位
写0x1f7: 0x20为读, 0x30为写
读0x1f7: 第4位为0表示读写完成,否则要一直循环等待
读0x1f0: 每次读取1个word,反复循环,直到读完所有数据
48-bit LBA方式:
写两次0x1f1端口: 0
写两次0x1f2端口: 第一次要读的扇区数的高8位,第二次低8位
写0x1f3: LBA参数的24~31位
写0x1f3: LBA参数的0~7位
写0x1f4: LBA参数的32~39位
写0x1f4: LBA参数的8~15位
写0x1f5: LBA参数的40~47位
写0x1f5: LBA参数的16~23位
写0x1f6: 7~5位,010,第4位0表示主盘,1表示从盘,3~0位,0
写0x1f7: 0x24为读, 0x34为写
LBA和CHS的的对应关系
虽然LBA和CHS的两种定位方式不同,但其实两者间还是有一个转换关系的。
LBA逻辑块地址的更多相关文章
- 关于BIOS系统的认识和学习(源自摘录)
BIOS系统的介绍与学习 BIOS (basic input output system 即基本输入输出系统)在计算机系统中起着非常重要的作用,其是计算机系统最底层的设置, BIOS设置程序是被固化到 ...
- UEFI+GPT引导基础篇(一):什么是GPT,什么是UEFI?
其实关于UEFI的几篇文章很早就写下了,只是自己读了一遍感觉很不满意,就决定重写.目的是想用最简单直白的语言把内容写出来,让每个人都能轻松读懂.当然,如果你已经对这些内容有了很深的理解的话,这篇文章除 ...
- SSD硬盘 全盘安全擦除
此文From http://ssd.zol.com.cn/575/5753057.html 在SSD固态硬盘的使用过程中,部分用户可能会碰到计算机意外掉电或死机并强行断电后,系统出现异常,扫描SSD后 ...
- WINHEX 使用教程
Winhex有完善的分区管理功能和文件管理功能,能自动分析分区链和文件簇链,能对硬盘进行不同方式不同程度的备份,甚至克隆整个硬盘:它能够编 辑任何一种文件类型的二进制内容(用十六进制显示)其磁盘编辑器 ...
- Oracle DB 管理数据库的空间
• 描述4 KB 扇区磁盘的概念及使用 • 使用可移动表空间 • 描述可移动表空间的概念 数据库存储 数据库存储 数据库包括物理结构和逻辑结构.由于物理结构和逻辑结构是分开的,因此管理数据的物 理存储 ...
- UEFI GPT
其实关于UEFI的几篇文章很早就写下了,只是自己读了一遍感觉很不满意,就决定重写.目的是想用最简单直白的语言把内容写出来,让每个人都能轻松读懂.当然,如果你已经对这些内容有了很深的理解的话,这篇文章除 ...
- 电子工程师名片——FAT16文件系统
从8月8号开始,连续一个月利用每天下班时间和周末的时间终于初步完成了一个电子工程师的电路板名片,就像U盘一样,不过这个FLASH只有64KB的大小,用的单片机是C8051F320,是一个USB型的单片 ...
- USB Mass Storage学习笔记-STM32+FLASH实现U盘
一.内容概述 采用STM32内部自带USB控制器外加大页NAND FLASH K9F1G08U0A实现一个128M的U盘. 1.STM32的USB控制器 STM32F103的MCU自带USB从控制器 ...
- CF卡技术详解——笔记
知识太全面了,摘抄摘不完,还是粘过来加上注释和笔记吧. 重点以及断句用加粗,注释用红括号. 一.CF卡技术及规格 一.CF卡技术及规格 1.CF卡简史 随着数码产品的高速普及,近年来闪存卡也进入了高速 ...
随机推荐
- C#中using的用途
using System; --主命名空间,包含所有.net基础类型和通用类型,比如Object, ...
- win7实现tensorflow中的物体识别
实现条件: 1.win7 2.python 3.运行所需要的库:matplotlib.lxml.pillow.Cython 具体参考:https://github.com/tensorflow/mod ...
- Java 之 字符流
一.字符流 当使用字节读取文本文件时,可能会有一个小问题,就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储.所以 Java 提供了一些字符类,以字符为单位读写数据, ...
- Android studio如何连接三星手机
打开Android studio,选择Trouble Shoot device connections: 这个菜单项会自动扫描本地已经用USB线连接的设备: 已经成功扫描出了我的Galaxy C7 P ...
- axios使用API
背景:请求失败后,因跨域引起的不能传递statusCode问题,通过设置前后台选项解决,这里先总结一下axios的使用 一.安装与配置: 安装: npm install axios axios使用AP ...
- Typora数学公式
LaTeX编辑数学公式基本语法元素 LaTeX中的数学模式有两种形式: inline 和 display. 前者是指在正文插入行间数学公式,后者独立排列,可以有或没有编号. 行间公式(inline) ...
- 织梦dede:channelartlist调用排除指定typeid栏目
在使用 dede:channelartlist 自动调用栏目内容时,经常会遇到某些栏目不需要调用,比如“关于我们”.“联系地址”等无持续更新的栏目.要想在 dede:channelartlist 调用 ...
- jenkins+docker+git+harbor构建及代码回滚(未完)
目录 一.部署 环境工作流程介绍 部署harbor 一.部署 前提环境说明 192.168.111.3 该机器为git本地仓库,及git远程仓库(git用户创建),及Harbor镜像仓库 192.16 ...
- seo域名选择
1-1第一选域名: 1,简单好记,有意义. 2,后缀首选com 其次cn 1-2购买域名网站有 1,阿里云 2,godaddy 3 ,景安 购买是可以在这三个域名平台都看看价格有些不一样.(可以省钱) ...
- 写Django项目的开发工具或者编辑器
pycharm是写django的最好的编辑器,优先使用pycharm.到官网下载pycharm →https://www.jetbrains.com/pycharm/download→ pycharm ...