【存储学习笔记】1:机械硬盘(Hard Drive Disk)结构和寻址方式

目录

  • HDD的结构
  • HDD的寻址方式
    • CHS寻址(不适用于等密度结构磁盘)
    • LBA寻址(目前普遍使用的线性寻址方式)
  • HDD的寻址速度

HDD的结构

在这里插入图片描述

  • 盘面(Platter):单面或者双面覆盖着用于记录数据的磁性物质,一块HDD由同轴上下多块Platter组成。
  • 轴(Spindle):所有的Platter都绕着这个Spindle,被主轴电机驱动着进行匀速旋转。
  • 主轴电机(Spindle Motor):用于旋转Platter,通常HDD转速是每分钟5400或者7200转。
  • 读写头(Read/Write Head):每个面上都有一个读写投用来读取或者写入数据。
  • 磁头臂(Arm):读写头都固定在Arm的末端。
  • 制动杆(Actuator)轴:所有的Arm都连接到Actuator上,由定位电机来驱动,以控制读写头沿着Platter的半径方向移动。所以,Platter的旋转,配合读写头在Arm上的移动,可以让读写头访问到Platter上的所有部分。
  • 磁道(Track):Platter表面划分了一堆同心圆,也就是一个个Track。
  • 柱面(Cylinder):到Spindle有相同的半径距离的Track的集合。因为读写头的移动影响它在Platter上半径的哪个位置上,所以当某个面的读写头在某个Track上时,其它面的读写头也会在对应的这个半径的Track上,所有这些不同面上相同半径的Track称为一个Cylinder。看起来就像一个镂空的圆柱面一样。
  • 扇区(Sector):Track被划分成的一个个扇形区域,它是磁盘驱动器进行读写访问的最小单位,经典的Sector Size能容纳512B的数据。Sector的头部包含扇区标识符和时钟同步信息,尾部包含错误校验码(ECC),ECC是根据Sector头部信息和存储的数据计算得到的。
  • 簇(Cluster):HDD本身的读写基本单位是Sector,但对文件系统(File System)来说,基本读写单位是Cluster,相邻的若干个Sector组成一个Cluster。Cluster一般有4K、8K、…、64K等。
  • 等密度结构磁盘:一般,所有的Track上Sector数量一样,但这样外磁道的记录密度会远远低于内磁道,所以会造成空间浪费,就限制了HDD的容量。在等密度结构磁盘实现上,Sector只需要固定的面积大小就可以了,所以外层的Track放了更多的Sector。

在这里插入图片描述

HDD的寻址方式

CHS寻址(不适用于等密度结构磁盘)

CHS寻址是利用HDD的三维结构,给个三个方向的参数来进行寻址:
Heads:磁头编号,比如双面磁盘,磁盘正反面各有一个磁头,所以用磁头编号就能表示数据在哪个磁面上。
Cylinders:柱面编号,表示数据在哪个柱面上,利用H和C就能定位到唯一磁道Track。
Sectors:扇区编号,因为已经定位到了唯一Track,所以用Sectors就能找到唯一的扇区。

CHS寻址方式下,HDD的大小很有限,根据HDD的容量计算公式:

硬盘容量= 盘面(磁头)数 × 柱面数 × 扇区数 × 每扇区字节数

例如

磁头数最大为255 (用 8 个二进制位存储)。从0开始编号。
柱面数最大为1023(用 10 个二进制位存储)。从0开始编号。
扇区数最大数 63(用 6个二进制位存储)。从1始编号。
所以CHS寻址方式的最大寻址范围为:
255 * 1023 * 63 * 512 / 1048576 = 7.837 GB ( 1M =1048576 Bytes )

对于等密度结构磁盘,内外层的扇区不能组成一个扇形(外磁道的扇区更多),所以没法使用CHS寻址方式。

LBA寻址(目前普遍使用的线性寻址方式)

LBA(Logical Block Addressing)寻址方式是给每个数据块一个从0开始线性增长的编号,所以不需要考虑硬盘的物理结构。
传统的28位LBA,能表示的范围就是2^28,乘以数据块大小就是最大数据容量。现代硬盘和OS已经支持48位LBA。

HDD的寻址速度

  • 寻道时间(Seeking Time):为了访问数据块,磁盘控制器要移动控制读写头到正确的Cylinder上,这个过程称为Seeking。
  • 旋转延迟(Rotational Latency):找到正确的Cylinder之后,还要等待要访问的那个Sector旋转到读头下面,这个时间称为Rotational Latency。

例如,7200转/分钟的HDD,转换一周的时间是60(秒)×1000(转换毫秒)÷7200(转)=8.33毫秒,平均情况下认为每次寻址需要转换半圈,则平均旋转延迟时间为8.33÷2=4.17ms。再加上寻道时间就是寻址所需要的时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/47517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《昇思25天学习打卡营第25天|第23天》

今天是打卡的第二十三天,今天学习的是应用实践篇中的计算机视觉中FCN图像语义分割。 首先,是对全卷积网络(FCN)的简介,语义分割的简介,模型简介(1、卷积化,2、上采样,3、…

OpenStack中nova的架构

1.1 nova-api 负责接收和相应客户的API调用。 1.2 compute core nova-schedule 负责决定在哪个计算节点运行虚拟机。 nova-compute 通过调用Hypervisor实现虚拟机生命周期的管理。一般运行在计算节点。 hypervisor 对虚拟机进行硬件虚拟化的管理软件&#xff…

初级java每日一道面试题-2024年7月21日-Collection和Collections的区别

面试官: Collection和Collections的区别? 我回答: 一、定义与功能 Collection 定义:Collection是Java集合框架中的一个基本接口,它代表了一组对象(也称为元素)的集合。它是List、Set等集合的父接口,定义了集合操作的…

Kali Linux APT 设置指南:如何控制软件包更新行为

在我浏览 CSDN 的问答社区时,我发现一篇求助内容是一位用户对于如何在使用 APT 更新时避免更新 Arduino 这个问题感到困惑。这激发了我写这篇博客的灵感。我希望通过这篇文章,帮助那些在 Kali Linux 上使用 APT 管理软件包更新的朋友们,特别是…

removeIf 方法设计理念及泛型界限限定

ArrayList 中的 removeIf 方法是 Java 8 中引入的集合操作方法之一。它使用了 Predicate 接口作为参数,以便根据指定的条件移除集合中的元素。以下是对 removeIf 方法入参设计的详细解释: Predicate 接口 Predicate 是一个函数式接口,定义了…

一线大厂java面试题

String 为什么要设计成不可变的 String被设计成不可变的有以下几个原因: 线程安全:由于String是不可变的,多个线程可以同时访问同一个String对象而无需担心数据被修改。这使得String在多线程环境下是线程安全1. 的。 2.缓存Hash值:由于String是不可变的&#xf…

接口性能优化思路

前言 日常开发中设计接口,响应时间是衡量一个接口质量的重要指标。 接口响应时间这里粗糙地分为三种: 即时响应:毫秒级,小于500毫秒快速响应:秒级,大于500毫秒且小于2秒长时间操作:大于2秒&a…

【Python其他检查字符串占字节数的方法】

在Python中,检查字符串在特定编码下占用的字节数,最标准且常用的方法是通过字符串的.encode()方法将字符串转换为字节串,然后使用len()函数来获取这个字节串的长度。这是因为字符串(在Python 3中)是以Unicode形式存储的…

力扣题解(一和零)

474. 一和零 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。 思路: 本题可以看成有两个限…

51单片机嵌入式开发:15、STC89C52RC操作蜂鸣器实现一个music音乐播放器的音乐盒

STC89C52RC操作蜂鸣器实现一个music音乐播放器的音乐盒 1 概述2 蜂鸣器操作方法3 蜂鸣器发出音声4 硬件电路5 软件实现6 整体工程:7 总结 1 概述 要实现一个基于STC89C52RC单片机的音乐盒,可以按照以下步骤进行: (1)硬…

STM32项目分享:智能宠物喂食系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片: 哔哩哔哩视频链接: https://www.bilibili.com/video/BV1zy411z7…

关于对CSDN的谴责

关于对CSDN的谴责 如果不是心血来潮登了一次旧帐号我是万万不会想到,所有的文章都被设置成了仅VIP可见。 CSDN你的VIP有多不受人待见您不知道吗?为什么要把我用于你开通VIP刷绩效的工具? 这种东西不应该首先经过同意再开启吗?默认…

JavaWeb day01-HTML入门

Web前端 课程安排 HTML、CSS简介 HTML快速入门 实现标题排版 新闻标题样式

深度学习程序环境配置

深度学习环境配置 因为之前轻薄本没有显卡跑不起来,所以换了台电脑重新跑程序,故记录一下配置环境的步骤及常见错误 本人数学系,计算机部分知识比较匮乏,计算机专业同学可以略过部分内容 深度学习环境配置 深度学习环境配置 CUD…

MATLAB算法实战应用案例精讲-【数模应用】多元方差分析MANOVA(附MATLAB、python和R语言代码实现)

目录 知识储备 方差分析 一、单因素方差分析 二、双因素方差分析 三、多因素方差分析 四、事后多重比较 五、重复测量方差 六、协方差分析 七、多元方差分析 算法原理 多元方差分析的特点 多元方差分析的使用条件 应用案例 代码实现 MATLAB python R语言 知…

StringBuilder, Stringbuffer,StringJoiner

StringBuilder StringBuilder 代表可变字符串对象,相当于是一个容器,里面装的字符串是可以改变的,就是用来操作字符串的。 StringBuilder 比String更适合做字符串的修改操作,效率更高,代码更加的简洁。 public clas…

在结束的地方重新开始:十指之梢与新的轮回

一、前述 如果你想感受人潮汹涌,那么就请到大城市繁华街区的十字路口去看一看,尤其是节假日。 所以,交警对于城市交通的通畅,人们出行顺利的保障,是异常重要的。 交警,指挥交通有很多工具和方法&#xff0…

vscode 文件颜色变绿色

解决:关闭git功能 在设置中搜索Git:Enabled,取消Decorations: Enabled的勾选

速盾:cdn能防御ddos吗?

CDN(内容分发网络)是一种广泛应用于互联网中的技术,它通过将内容分发到全球各地的服务器上,以提高用户在访问网站时的加载速度和稳定性。然而,CDN是否能够有效防御DDoS(分布式拒绝服务)攻击是一…

UE5 C++在Cesium上给定一个坐标垂直地面射线正交的地形高度

一.方法一:需要一个Actor里,向下垂直射线。自身高度-射线距离。 #include "CesiumGlobeAnchorComponent.h" #include "CesiumOriginShiftComponent.h" #include "GeoTransforms.h" #include "CesiumGeoreference.h&…