机械硬盘(HDD)与固态硬盘(SSD)

news2024/11/18 23:32:11

目录

机械硬盘(HDD)  最小组成单元是扇区

硬盘结构

硬盘工作原理

硬盘上的数据组织

硬盘指标

影响性能的因素

固态硬盘(SSD) 最小存储单元是Cell

SSD的特点

SSD架构

NAND Flash

闪存介质

地址映射管理

FTL闪存转换层


机械硬盘(HDD)  最小组成单元是扇区

硬盘结构

硬盘工作原理

  • 起初,读/写磁头停靠在盘片在主轴附件的一个特殊区域,启停区。
  • 主轴连接所有盘片,并连接到一个马达上。主轴电机以恒定的速度旋转,带动盘片旋转。
  • 主轴旋转时,读/写磁头和盘片间有个很微小的空气间隙,称磁头飞行高度。
  • /写磁头被安装在磁头臂顶端,磁头臂带动磁头移动到需要被写入或取出数据的盘片位置上方。
  • 磁头在硬盘表面以二进制的形式读写数据,读取的数据储存在硬盘的flash芯片中,最后传到程序中运行。

注意

盘片进行数据存储,控制电路控制盘片高速旋转,磁头臂控制磁头进行读/写(每个盘片有两个读写磁头,分别位于两个表面)

盘片转速以RPM为单位,现在企业一般用的是10K~15K(此时硬盘一般是在真空中运行的)

盘片上有盘面(两面),盘面上有磁道,磁道上有扇区。

数据写入是按照柱面纵向写入的(先第一纵,然后第二纵这样)

为什么纵向读写

读写时需要确定在哪个磁道读写数据(寻道时间)+ 确定磁道后确定哪个扇区(旋转时延)+ 数据读写传输的时间

纵向读写的话在物理上(寻道时间+旋转时延)花费的时间要少一点

硬盘上的数据组织

盘面:硬盘的每一个盘片都有两个盘面,每个盘面都能存储数据,成为有效盘片。

  • 每一个有效盘面都有一个盘面号,按从上到小的顺序从0开始依次编号。
  • 在硬盘系统中,盘面号又叫磁头号,因为每一个有效盘面都有一个对应的读写磁头。

磁道(Track):磁道是在盘片上围绕在主轴周围的同心环,数据被记录在磁道上。

  • 磁道从最外圈向内圈从0开始顺序编号。
  • 硬盘的每一个盘面有300~1024个磁道,新式大容量硬盘每面的磁道数更多,通常用盘片上每英寸的磁道数(TPI,也称磁道密度)来衡量盘片上磁道排列的紧密程度。
  • 磁道是肉眼看不见的,只是盘面上以特殊形式磁化了的一些磁化区。

柱面(Cylinder):在同一个硬盘中所有盘片(包含上下两个盘面)具有相同编号的磁道形成一个圆柱,称之为硬盘的柱面。

  • 每个柱面上的磁头由上而下从0开始编号,数据的读写按柱面进行。
  • 即磁头读写数据时先在同一柱面内从0磁头开始进行操作,依次往下在同一柱面的不同盘面(即磁头)上进行操作。
  • 只有同一柱面所有的磁头全部读写完成后磁头才转移到写一个柱面,因为选取磁头只需通过电子切换即可,而选取柱面侧必须通过机械切换,即寻道。
  • 通常硬盘中磁头的位置由柱面号来说明,而不是用磁道号来说明。

扇区(Sector):每个磁道被分为更小的单位,称为扇区,划分扇区的目的是为了使数据存储更加条理化。

  • 扇区是硬盘中可以单独寻址的最小存储单元。不同硬盘磁道的扇区数可以不同。
  • 通常情况下,一个扇区可以保存512字节的用户数据,但也有一些硬盘可以被格式化为更大的扇区大小,如4KB扇区。

硬盘指标

硬盘容量

硬盘容量=柱面数*磁头数*扇区数*扇区大小,单位为MB或GB

影响硬盘容量的因素有单碟容量碟片数量。

硬盘缓存

为解决硬盘在读写数据时CPU的等待问题,在硬盘上设置适当的高速缓存

平均访问时间

平均寻道时间:指硬盘的磁头从初始位置移动到盘面指定磁道所需的时间(越小越好)

平均等待时间:指磁头已处于要访问的磁道,等待所要访问的扇区旋转至磁头下方的时间(越小越好)

数据传输速率

内部传输速率:指理情况下磁头读写硬盘时的最高速率

外部传输速率/接口传输速率:它指的是系统总线与硬盘缓冲区之间的数据传输率,与硬盘接口类型和硬盘缓存的大小有关。

 硬盘IOPS和传输带宽 

IOPS:每秒的输入输出量(读写次数);理论上可以计算出硬盘的最大IOPS,即IOPS=1000ms/(寻道时间+旋转延迟)

传输带宽(吞吐量):单位时间成功传输的数据数量

并行传输和串行传输

并行:传输效率高,但是传输距离不长,传输频率不高;(一般10多米左右)

串行:传输速率不高,但是可以通过传输频率来提高整体传输速度(随意一般串行比并行的传输速率要高)

影响性能的因素


固态硬盘(SSD) 最小存储单元是Cell

SSD的特点

  • 使用flash技术存储信息,数据传输速度比HDD快
  • 内部没有机械结构因此耗电量更小、散热小、噪音小
  • SSD盘使用寿命受擦写次数影响(硬盘最小组成单元Cell不断擦写,当擦写次数达到极限后,就不能继续读写数据了

SSD架构

SSD主要是由存储单元(主要是闪存颗粒)和控制单元组成

控制单元:SSD控制器、主机接口、DRAM等

  • SSD控制器:负责主机到后端介质的读写访问和协议转换,表项管理、数据缓存及校验等,是SSD的核心部件。
  • 主机接口:主机访问SSD的协议和物理接口,如SATASASPCIe
  • DRAMFTLFlash translation layer,闪存转换层)表项和数据的缓存,以提供数据访问性能。

存储单元:NAND FLASH 颗粒

  • NAND FLASH:数据存储的物理器件,是一种非易失性随机访问存储介质。
  • 多通道并发,通道内Flash颗粒复用时序。支持TCQ/NCQ,一次响应多个IO请求。

NAND Flash

NAND 闪存颗粒采用浮栅晶体管存储数据

内部存储单元组成包括:LUNPlaneBlockPageCell

  • LUN:  能够独立封装的最小物理单元,通常包含多个plane       
  • Plane:拥有独立的Page寄存器,通常包含1K2K奇数Block或偶数Block        
  • Block: 能够执行擦除操作的最小单元,通常由多个Page组成      
  • Page: 能够执行编程和读操作的最小单元,通常大小为16KB
  • Cell:   Page中的最小操作擦写读单元,对应一个浮栅晶体管,可以存储1bit或多bit  

对NAND Flash的读写数据的操作主要涉及擦除(Erase)、编程(Program)和读(Read)

Nand flsh为非易失性介质,在写入新数据之前必须保证Block被擦除过,Block擦除一次后再写入一次称为一次P/E Cycle
  

闪存介质

NAND Flash颗粒根据Cell存储不同的bit数据位分为不同的闪存介质(主要有四种)

地址映射管理

主机通过LBA访问SSD,SSD主控通过FTL闪存转换将其转换为PBA进行数据读取

  • LBALogical Block Address,逻辑区块地址

                可以指某个数据区块的地址或者某个地址上所指向的数据区块。

  • PBAPhysics Block Address,物理区块地址

FTL闪存转换层

基本概念

FTL起着翻译官的作用,它将Host(电脑、手机等)发送至Device(eMMC、SSD)的逻辑地址转换为写入Flash的物理地址(地址映射管理)。

工作原理

Host给定一个逻辑地址,FTL根据这个逻辑地址在逻辑映射表上建立映射关系,连接到Flash上的物理地址。

一般来说,FTL将逻辑地址处理后,建立的映射关系包含了Flash的Block编号、Page编号等,数据读取时便根据这些信息在Flash对应的位置上找到数据,传输至Host。

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

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

相关文章

Python之模块和包(九)

1、模块 1、模块概述 模块是一个包含了定义的函数和变量等的文件。模块可以被程序引入,以使用该模块中的函数等功能。通俗讲:模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块。 2、import 在P…

Redis分布式锁原理之实现秒杀抢优惠卷业务

Redis分布式锁原理之实现秒杀抢优惠卷业务 1. 实现秒杀下单2. 库存超卖问题分析2.1 乐观锁解决超卖问题 3. 优惠券秒杀-一人一单3.1 集群环境下的并发问题 4、分布式锁4.1 基本原理和实现方式对比4.2 Redis分布式锁的实现核心思路4.3 实现分布式锁版本一4.4 Redis分布式锁误删情…

【Java入门合集】第三章面向对象编程(上)

【Java入门合集】第三章面向对象编程(上) 博主:命运之光 专栏:JAVA入门 理解面向对象三大主要特征; 掌握类与对象的区别与使用; 掌握类中构造方法以及构造方法重载的概念及使用; 掌握包的定义、…

国民技术N32G430开发笔记(14)-IAP升级 usart2接收数据

IAP升级 Usart2接收数据 1、之前有一节我们将PA6 PA7复用成了usart2的功能,这一节我们用usart2接收来自树莓派的升级请求,然后完成N32G430的Iap升级。 2、接线 PA9 PA10 接usb转串口模块A,A模块插入电脑。 PA6 PA7 接usb转串口模块B&#xf…

【移动端网页布局】流式布局案例 ⑥ ( 多排按钮导航栏 | 设置浮动及宽度 | 设置图片样式 | 设置文本 )

文章目录 一、多排按钮导航栏样式及核心要点1、实现效果2、总体布局设计3、设置浮动及宽度4、设置图片样式5、设置文本 二、完整代码实例1、HTML 标签结构2、CSS 样式3、展示效果 一、多排按钮导航栏样式及核心要点 1、实现效果 要实现下面的导航栏效果 ; 2、总体布局设计 该导…

计算机网络笔记:DNS域名解析过程

基本概念 DNS是域名系统(Domain Name System)的缩写,也是TCP/IP网络中的一个协议。在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但计算机之间只能互相认识IP地址,域名和IP地址之间的转…

基于探路者算法的极限学习机(ELM)回归预测-附代码

基于探路者算法的极限学习机(ELM)回归预测 文章目录 基于探路者算法的极限学习机(ELM)回归预测1.极限学习机原理概述2.ELM学习算法3.回归问题数据处理4.基于探路者算法优化的ELM5.测试结果6.参考文献7.Matlab代码 摘要:本文利用探路者算法对极限学习机进行优化&…

算法 DAY45 动态规划07 70. 爬楼梯 322. 零钱兑换 279. 完全平方数 139. 单词拆分 多重背包

70. 爬楼梯 和377. 组合总和 Ⅳ (opens new window)基本就是一道题了。本题代码不长&#xff0c;题目也很普通&#xff0c;但稍稍一进阶就可以考察完全背包 class Solution { public:int climbStairs(int n) {vector<int> nums {1,2};vector<int> dp(n1,0);dp[0…

while语句和until语句顺便带点小实验

while语句和until语句 一、while用法二、Until循环语句三、趣味小实验猜价格的游戏&#xff08;价格是随机数&#xff09;写一个计算器脚本闲来无事去购物 一、while用法 for循环语句非常适用于列表对象无规律&#xff0c;且列表来源以固定&#xff08;如某个列表文件&#xf…

Android Studio开发图书管理系统APP

Android Studio开发项目图书管理系统项目视频展示&#xff1a; 点击进入图书管理系统项目视频 引 言 现在是一个信息高度发达的时代&#xff0c;伴随着科技的进步&#xff0c;文化的汲取&#xff0c;人们对于图书信息的了解与掌握也达到了一定的高度。尤其是学生对于知识的渴…

word构建基块:快速插入重复内容的高级剪切板

本文参考自 word录入技巧&#xff1a;如何用自动图文集快速插入重复内容 - 知乎 介绍 构建基块&#xff0c;它就是和剪切板一样&#xff0c;点一下就粘贴一份新的&#xff0c;用于解决大量重复内容的复制粘贴 构建基块包括自动图文集和快速表格&#xff0c;实际上都是构建基块…

Blender启动场景的修改

Blender启动场景的修改 1 使用版本2 现象描述3 解决方法4 启动场景路径5 清理场景资源5.1 空场景大小5.2 清理图片资源5.2.1 断开数据块关联5.2.2 断开伪用户关联5.2.3 断开多用户关联5.2.4 清理数据块5.2.6 文件校验 5.3 使用自建资源库 6 数据块类型 1 使用版本 Blender 3.3…

二叉树建立、遍历、打印(23春教学)

#include<stdio.h> #include <malloc.h> #include <conio.h> typedef char DataType; typedef struct Node {DataType data;struct Node *LChild;struct Node *RChild; }BitNode,*BitTree; void CreatBiTree(BitTree *bt)//用扩展先序遍历序列创建二叉树&am…

《LearnUE——基础指南:上篇—3》——GamePlay架构WorldContext,GameInstance,Engine之间的关系

目录 平行世界是真实存在的吗&#xff1f; 1.3.1 引言 1.3.2 世界管理局&#xff08;WorldContext&#xff09; 1.3.3 司法天神&#xff08;GameInstance&#xff09; 1.3.4 上帝&#xff08;Engine&#xff09; 1.4 总结 平行世界是真实存在的吗&#xff1f; 1.3.1 引言 …

DAY 51 LVS负载均衡——DR模式

数据包流向分析 &#xff08;1&#xff09;客户端发送请求到Director Server (负载均衡器)&#xff0c;请求的数据报文&#xff08;源IP是CIP&#xff0c;目标IP是VIP&#xff09;到达内核空间。 &#xff08;2&#xff09;Director Server 和Real Server 在同一个网络中&…

【五一创作】ERP实施-委外业务-委外采购业务

委外业务主要有两种业务形态&#xff1a;委外采购和工序外协&#xff0c;委外采购主要是在MM模块中实现&#xff0c;工序外协主要由PP模块实现&#xff0c;工序外协中的采购订单创建和采购收货由MM模块实现。 委外采购概念 委外采购&#xff0c;有些企业也称为带料委外或者分包…

【Spring框架全系列】方法注解@Bean的使用

&#x1f4ec;&#x1f4ec;哈喽&#xff0c;大家好&#xff0c;我是小浪。上篇博客我们介绍了五大类注解的使用方法&#xff0c;以及如何解决Spring使用五大类注解生成bean-Name的问题&#xff1b;那么&#xff0c;谈到如何更简单的读取和存储对象&#xff0c;这里我们还需要介…

如何防止系统发生异常时,别人传递过来的关键数据不丢失?(AOP + xxlJob)

需求 在开发中&#xff0c;客户每天需要定时调用我们的api去上传一些数据到数据库中&#xff0c;当数据库发生异常或者系统发生异常&#xff0c;上传的一些数据会丢失不做入库操作&#xff0c;现想防止数据库或系统发生异常&#xff0c;数据能不丢失&#xff0c;同时&#xff…

TryHackMe-AD证书模板

AD Certificate Templates SpecterOps 完成并作为白皮书发布的研究表明&#xff0c;可以利用配置错误的证书模板进行权限提升和横向移动。根据错误配置的严重性&#xff0c;它可能允许 AD 域上的任何低特权用户只需单击几下即可将其权限提升为企业域管理员的权限&#xff01; …

C语言宏使用

C语言宏 编译一个C语言程序的第一步骤就是预处理阶段&#xff0c;这一阶段就是宏发挥作用的阶段,编译完之后宏对二进制代码不可见。 使用 1. 宏常量 #define PI 3.142. 宏语句 #define Print printf("hello,world!\r\n")3. 宏函数 使用宏来定义函数&#xff0c…