机械硬盘基本知识

2023-05-16

硬盘内部的物理结构很复杂,只能从大的颗粒度去看内部的结构,总体来说,硬盘结构包括:盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存 等几个部份。所有的盘片(一般硬盘里有多个盘片,盘片之间平行)都固定在一个主轴上。在每个盘片的存储面上都有一个磁头,磁头与盘片之间的距离很小(所以剧烈震动容易损坏),磁头连在一个磁头控制器上,统一控制各个磁头的运动。磁头沿盘片的半径方向动作,而盘片则按照指定方向高速旋转,这样磁头就可以到达盘片上的任意位置了。

以下是机械硬盘的图片:
在这里插入图片描述
在这里插入图片描述
基本的结构就是这样子的,至于硬盘是如何进行读写的,必须要知道磁盘盘片是如何划分的?否则你只知道磁头在盘片上动来动去。

机械硬盘涉及到的基本概念:
整个硬盘上一般有很多的盘片组成,每个盘片如同切西瓜一样被“切”成一块一块的扇面,同时沿着半径的方向被划分成了很多同心圆,就是传说中的磁道,每条磁道被扇面切成很多的扇形区域叫做扇区(扇区是从磁盘读出和写入信息的最小单位,通常大小为512字节),不同盘片上的同半径磁道组成了柱面,这些都是磁盘物理上的概念,知道便可。有了这些概念,便可以计算磁盘的容量:
磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数

概念描述
磁头(head)数每个盘片一般有上下两面,分别对应1个磁头,所以共2磁头
磁道(track)数磁道是从盘片外圈往内圈编号0磁道、1磁道…,靠近主轴的同心圆用于依靠磁头,不存储数据
柱面(cylinder)数同磁道数量
扇区(sector)数每个磁道都被切分成很多扇形区域,每道的扇区数量相同
圆盘(platter)数盘片的数量
下图可以更直观的理解上述名词。
在这里插入图片描述
机械硬盘上的数据定位:
每个扇区可存储 128×2 的 N 次方(N=0.1.2.3)字节的数据(一般为512B),扇区为数据存储的最小单元,从上图可知,外圈的扇区面积比内圈大,为何存储的数据量相同,这是因为内外圈使用的磁物质密度不同,但现在的硬盘已经采用内外圈同密度物质来存储数据了,以减少类似“大面积小数据”的浪费情况。(此时的内外磁道的扇区数量将不同,具体细节省略)

有了扇区(sector),有了柱面(cylinder),有了磁头(head),显然可以定位数据了,这就是数据定位(寻址)方式之一,CHS(也称3D),对早期的磁盘(上图所示)非常有效,知道用哪个磁头,读取哪个柱面上的第几扇区就OK了。CHS 模式支持的硬盘容量有限,用8bit 来存储磁头地址,用 10bit 来存储柱面地址,用 6bit 来存储扇区地址,而一个扇区共有 512Byte,这样使用 CHS 寻址一块硬盘最大容量为 256 * 1024 * 63 * 512B = 8064 MB(1MB = 1048576B)(若按1MB=1000000B来算就是8.4GB)

但现在很多硬盘采用同密度盘片,意味着内外磁道上的扇区数量不同,扇区数量增加,容量增加,3D 很难定位寻址,新的寻址模式:LBA(Logical Block Addressing)。在 LBA 地址中,地址不再表示实际硬盘的实际物理地址(柱面、磁头和扇区)。LBA 编址方式将 CHS 这种三维寻址方式转变为一维的线性寻址,它把硬盘所有的物理扇区的 C/H/S 编号通过一定的规则转变为一线性的编号,系统效率得到大大提高,避免了烦琐的磁头/柱面/扇区的寻址方式。在访问硬盘时,由硬盘控制器再将这种逻辑地址转换为实际硬盘的物理地址。

LBA 下的编号,扇区编号是从0开始。

逻辑扇区号 LBA 的公式:
LBA(逻辑扇区号) = 磁头数 × 每磁道扇区数 × 当前所在柱面号 + 每磁道扇区数 × 当前所在磁头号 + 当前所在扇区号 – 1

例如:CHS=0/0/1,则根据公式LBA = 255 × 63 × 0 + 63 × 0 + 1 – 1= 0
也就是说物理0柱面0磁头1扇区,是逻辑0扇区。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机械硬盘基本知识 的相关文章

  • Java-线程,多线程同步安全案例,多窗口卖票一共有 50张票 ,4个窗口出售,打印出票售出的顺序。

    一共有 50张票 xff0c 4个窗口出售 xff0c 打印出票售出的顺序 span class token keyword package span com span class token punctuation span proble
  • tcp连接的select

    tcp的socket不同于udp tcp xff1a 建立socket的fd xff1b bind xff1b listen xff1b accept xff1b send or recv 另一端connect xff08 客户端 xff0
  • ROS NOETIC 思岚激光雷达A2M8启动历程

    Ubuntu20 04系统 xff0c 装的ROS对应为NOETIC版本 第一个bug 一直在catkin make这里出错 xff0c 我的工作空间 xff08 我也命名为catkin ws xff09 在catkin make之后 xf
  • 解决ubuntu网络调节助手之后打不开

    解决ubuntu安装deb文件之后打不开问题 xff08 安装libqtgui4 amd64 xff09 安装Ubuntu网络调试助手 链接 xff1a https pan baidu com s 1GSq pi1FOZxHFnY7PMBh
  • VSCODE中运行C语言(从安装到运行详细版)

    VSCODE中运行C语言 xff08 从插件安装到运行详细版 xff09 一 下载安装MinGW w64 官方下载网站 xff1a MinGW 64 往下来进入下一张页面图 xff0c 选择要下载的文件 二 环境变量配置 按照上面的步骤全部
  • 【ubuntu16.04 LTS】ping百度通,但浏览器打不开百度网页

    典型的DNS配置问题 1 xff0c 执行如下命令 span class token function sudo span span class token function vi span etc resolv conf 在文件最后添加
  • VLAN类型

    大家好呀 xff0c 我是请假君 xff0c 今天又来和大家一起学习数通了 xff0c 今天要分享的知识是VLAN类型 一 基于端口的VLAN xff1a 基于端口的VLAN是最简单 最有效的VLAN划分方法 xff0c 它按照设备端口来定
  • STM32开发(三) 使用printf 重定位到串口输出|CSDN创作打卡

    上一篇 主目录 下一篇 文章目录 背景 KEIL MDK环境下printf重定位串口输出 第一步 在KEIL MDK中使用MicroLIB如图中勾选 第二步 STM32Cube MX异步配置 第三步 KEIL代码演示 代码使用Cube 注意
  • 总线(二)CAN通讯协议介绍

    文章目录 CAN xff08 Controller Area Network xff09 是什么 xff1f 总线拓扑图CAN特征CAN协议数据帧遥控帧遥控帧和数据帧相关 xff1f 仲裁优先级决定数据帧和遥控帧的优先级标准格式和扩展格式的
  • CAN 简介

    1 目的 本文主要介绍一部分 CAN 协议层 2 CAN 简介 这里的内容参考的是 1991 9 的 2 0 版本的官方 CAN 规格书 2 1 概述 CAN 控制器局域网 是一种串行通讯协议 xff0c 传输速度可达 1Mbit s 总线
  • I2C 简介

    1 I2C 简介 这里的内容参考的是 2014 4 4 的 V 6 版本的官方 I2C Bus 规格书 xff0c 第六章有给出相应的链接 1 1 引脚 I2C 一般而言是一种同步半双工的通信方式 xff0c 所以除了电源引脚之外 xff0
  • MPC5744 烧录一直停留在 98% 的解决方法

    1 目的 本人在调试一块主控为 MPC5744 的板子时 xff0c 有时候在烧录时 xff0c 发现烧录总是停在 98 xff0c 卡在 CRC 这里 xff0c 在查找和看资料之后 xff0c 发现了几种解决方法 xff1a 使用 pe
  • MPC5744 Data Flash 仿真 EEPROM

    一 目的 本文主要是使用 MPC5744 中的 Data Flash 仿真 EEPROM 之前在 MPC5744 烧录一直停留在 98 的解决方法 中也简单介绍了 Flash xff0c 所以在这里直接介绍仿真过程 xff0c 注意这里可以
  • Keil添加文件和头文件

    Keil如何添加文件 在工程文件夹下面新建一个 c和一个 h文件 xff0c c文件就是要添加的文件 xff0c h文件就是要添加的头文件 右键点击Project下面的第一个文件夹 点击Manage Project Items 是新建文件夹
  • linux下简单的Socket+Http服务

    C语言体验Socket Http服务 代码部分实验结果实验总结 代码部分 socket监听80端口 xff0c 接收到访问数据 xff0c 返回简单的Http页面 span class token macro property span c
  • 不定态与高阻态,及modelsim默认波形颜色的含义

    数字电路只有高低电平 xff0c 没有实际电平对应不定态和高阻态 xff0c X和Z更多的是用来表示设计者的意图或者用于仿真目的 xff0c 旨在告诉仿真器和综合器如何解释这段代码 X态 xff1a 常用于判断条件 xff0c 只在告诉综合
  • 【ubuntu16.04 LTS】设置屏幕分辨率

    第一种方式 直接打开系统设置 xff0c 选择屏幕分辨率即可 xff0c 和Windows一样 xff0c 不多说 第二种方式 如果在第一种方式中 xff0c 没有找到自己想要设置的分辨率的话 xff0c 可以按如下操作 xff1a 1 x
  • verilog中taskd的用法

    本文转载自博客园作者 xff08 id xff09 xff1a 再也不喝冰了 任务就是一段封装在 task endtask 之间的程序 任务是通过调用来执行的 xff0c 而且只有 在调用时才执行 xff0c 如果定义了任务 xff0c 但
  • Github 安装和上手记录

    1 Git xff1a 分布式版本控制软件 xff08 本地含有版本库 xff09 2 安装 xff1a msysgit github io gt 3 Download gt 安装 4 安装时除了其中一步需要选择 use git from

随机推荐

  • Verilog02:结构化建模

    结构化描述是用Verilog HDL 进行电路设计中最基本描述方式 对于系统级电路设计 xff0c 为了把不同的功能模块有层次地组合在一起 xff0c 主要是采用模块调用的结构化建模方式实现 根据所调用子模块的不同抽象级别 xff0c 可将
  • 有无符号数及原码反码补码之间的关系

    前提知识 xff1a 加法器比减法器的电路实现方式更简单 无符号数表示的数值范围大于0 为了简化电路设计 xff0c 引入有符号数可以表示负数 xff0c 便可以用加法器实现减法运算 使用加法器和原码进行减法运算会产生错误结果 引入反码来修
  • MIPS指令格式定义

  • PTA 浙大版《C语言程序设计(第3版)》题目集--练习2-1 Programming in C is fun!

    题目 本题要求编写程序 xff0c 输出一个短句 Programming in C is fun 输入格式 本题目没有输入 输出格式 在一行中输出短句 Programming in C is fun 思路 一个简单的输出 代码 includ
  • 带参数的宏

    定义两个带参数的宏 xff0c 一个用来求s xff0c 另一个用来求area include lt iostream gt using namespace std define s a b c a 43 b 43 c 2 define A
  • RTK和网络RTK

    浅谈传统RTK工作模式与网络RTK工作模式 谈谈传统RTK工作模式与网络RTK工作模式 传统RTK工作模式就是电台工作模式 xff0c 网络RTK工作模式就是CORS系统测量 本文主旨 有网络信号和CORS覆盖范围的地方就选择网络RTK工作
  • KITTI数据集国内下载地址

    文件列表 xff1a http www functionweb tk kitti 如果遭遇下载失败的情况请访问 https blog csdn net weixin 43599336 article details 87801040 原始图
  • HTTP ERROR 405 Method Not Allowed

    一般访问web UI的时候出现以上错误 xff0c 都是浏览器的防火墙问题 可以进行在安全设置里取消一些防护功能即可
  • 【ubuntu16.04 LTS】更换国内清华源

    目录 1 xff0c 备份原始源文件sources list2 xff0c 修改源文件sources list3 xff0c 更新源 1 xff0c 备份原始源文件sources list 在终端输入如下命令 xff1a span clas
  • 串行通信——异步串行通信

    目录 I 串口通信简介 一 定义 二 意义 三 分类 II 异步串行通信详解 一 数据格式 1 起始位 2 数据位 3 奇偶校验位 4 停止位 二 通信制式 1 单工 2 半双工 3 全双工 三 通信速率 I 串口通信简介 一 定义 在一条
  • shell发送请求解析结果

    需求shell发送请求到服务获取返回结果 xff0c 解析结果后提取需要的数据 再次请求服务 1 发送get请求到服务器 xff0c 格式化返回结果输出到result json文件 2 解析json文件并循环处理解析结果 curl命令 X
  • VScode编辑器快捷键整理

    记录 xff1a VScode编辑器快捷键记录 1 代码块折叠 展开 操作光标所在文件中的所有代码块 xff1a 折叠所有 Ctrl 43 K 43 0 展开所有 Ctrl 43 K 43 J 仅仅操作光标所处代码块内的代码 xff1a 折
  • ROS不同版本消息传递问题

    ROS不同版本消息传递问题 问题 不同版本ros间可通信 xff0c 但消息发送接收有问题 主机 xff1a x86 BECKHOFF Ubuntu16 04 ROS Kinetic 从机 xff1a ARM AGX Xavier Ubun
  • 复位电路

    单片机复位电路 系统开始运行和重新启动都是依靠复位电路实现的 以MCS 51为例 xff0c 复位是需要在RST引脚加上2个机器周期 xff08 24个时钟周期 xff09 以上的高电平 简单的计算 xff1a 如果单片机的时钟频率是12M
  • WIFI原理

    1 路由器向下提供给接入的用户一个id xff0c 也就是类似于192 168 1 231 xff0c 这样的ip地址 xff0c 所有在这个路由器下的用户的ip地址的前面的网络号是相同的 xff0c 都是192 168 1 xff08 x
  • :: 在 C++ 中的作用

    一 作用域符号 xff1a 作用域符号 的前面一般是类名称 xff0c 后面一般是该类的成员名称 xff0c C 43 43 为例避免不同的类有名称相同的成员而采用作用域的方式进行区分 另外 xff0c 在类外定义类中已申明的函数成员时 x
  • PX4-4-任务调度

    PX4所有的功能都封装在独立的模块中 xff0c uORB是任务间数据交互和同步的工具 xff0c 而管理和调度每个任务 xff0c PX4也提供了一套很好的机制 xff0c 这一篇我们分享PX4的任务调度机制 我们以PX4 1 11 3版
  • 基于stm32的mpu6050传感器实验

    64 TOCMPU6050 43 STM32学习笔记 学习了差不多两天的mpu6050 xff0c 参考了很多篇博客还有看一些资料 xff0c 今晚终于把这个东西在我的串口显示出来了 xff0c 下面就废话不多说 xff0c 开始我的笔记啦
  • Ubuntu 20.04 ROS Noetic及Realsense-ROS的安装和多机通信

    Ubuntu 20 04 ROS Noetic及Realsense ROS的安装和多机通信 1 Ubuntu20 04 ROS Noetic安装 参考官方安装教程 ROS Installation 请以以上安装步骤为准 xff0c 因为随着
  • 机械硬盘基本知识

    硬盘内部的物理结构很复杂 xff0c 只能从大的颗粒度去看内部的结构 xff0c 总体来说 xff0c 硬盘结构包括 xff1a 盘片 磁头 盘片主轴 控制电机 磁头控制器 数据转换器 接口 缓存 等几个部份 所有的盘片 xff08 一般硬