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

目录

机械硬盘(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。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA IO 模型详解

什么是IO I/O(Input/Outpu) 即输入/输出 。 从计算机结构的视角来看的话, I/O 描述了计算机系统与外部设备之间通信的过程。 从应用程序的视角来看的话,我们的应用程序对操作系统的内核发起 IO 调用(系统调…

微信小程序定义模板

微信小程序提供模板(template)功能,把一些可以共用的,复用的代码在模板中定义为代码片段,然后在不同的地方调用,可以实现一次编写,多次引用的效果。 首先我们看一下官网是如何操作的 一般的情…

JavaWeb学习--RequestResponse

目录 JavaWeb学习--Request&Response 1,Request和Response的概述 request:获取请求数据 response:设置响应数据 **小结** 2,Request对象 **小结** 2.2 Request获取请求数据 **小结** 2.4 请求参数中文乱码问题 URL编码 2.5 Request请求转…

【前端技术】Vue3 01:初识 Vue.js

Vue 可以说是非常流行了,至少在国内是这样,他是个轻量级的 JavaScript 框架,非常适合构建大型和中小型的 Web 应用程序,如果想和前端打交道,应该绕不过这个框架吧。 目录 1 Vue.js 介绍 2 IDE 选择 2.1 vscode 2.…

Eplan 部件库导入部件的方法

1. 部件宏文件如何下载 1.1 西门子部件宏文件下载 EPLAN 的部件库是可以更新的,一般元器件厂商会提供其部件文件,以 SIEMENS 为例 进入网站,点击EPLAN 的图标 https://www.automation.siemens.com/bilddb/index.aspx?lang=en 在订货号中输入所需部件订货号,点击搜索。点…

【Java笔试强训 27】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥 不用加…

sed编辑器基础命令

shell脚本编程系列 学习sed编辑器 sed编辑器被称作流编辑器(stream editor),与普通的交互式文本编辑器不同,在交互式文本编辑器可以用键盘命令交互式插入、删除或替换文本数据。流编辑器则是根据事先设计好的一组规则编辑数据流。 sed编辑器…

Mybatis 框架 ( 三 ) Mybatis-Plus

4.Mybatis-plus 官网 : https://www.baomidou.com/ MyBatis-Plus 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上封装了大量常规操作&#xff0c;减少了SQL的编写量。 4.1.Maven依赖 使用时通常通过Springboot框架整合使用 并且使用Lombok框架简化实体类 <…

django显示echart图表:柱状图、折线图、饼图、地图、词云

django显示echart图表 效果: 示例demo 点我查看 1、urls.py 其中关键代码: urlpatterns = [path("book_chart/", views.book_chart, name="book_cha

【23】linux进阶——linux的软链接和硬链接

大家好&#xff0c;这里是天亮之前ict&#xff0c;本人网络工程大三在读小学生&#xff0c;拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识&#xff0c;希望能提高自己的技术的同时&#xff0c;也可以帮助到大家 另外其它专栏请关注&#xff1a; 锐捷数通实验&…

RebbitMQ Windows安装

RabbitMQ是由Erlang语言写的,因此安装前要先安装Erlang Erlang及RabbitMQ安装版本的选择 下载时一定要注意版本兼容性 版本兼容说明地址&#xff1a;RabbitMQ Erlang Version Requirements — RabbitMQ 我们选择的版本 Erlang官网下载:https://www.erlang.org/downloads Ra…

JavaScript 笔记

1 简介 JavaScript 诞生于1995年&#xff0c;是由网景公司发明&#xff0c;起初命名为LiveScript&#xff0c;后来由于SUN公司的介入&#xff0c;更名为 JavaScript。1996年微软在其最新的IE3浏览器中引入了自己对JavaScript的实现JScript&#xff0c;于是市面上就存在两个版本…

Guitar Pro8苹果mac最新版本下载安装教程

Guitar Pro是一款专业的吉他制谱软件&#xff0c;现在已更新至Guitar Pro8&#xff0c;新增了支持添加音频轨道、支持嵌套连音符、直观的效果器视图、让指法一目了然的音阶示意图等实用新功能。下面我们来看Guitar Pro8 Mac如何安装。 guitar pro是一款专业的吉他学习软件&…

【VM服务管家】专题_7.5 异常收集

目录 5.1 信息收集&#xff1a;异常报错信息收集的方法5.2 日志等级&#xff1a;日志等级调低的方法 5.1 信息收集&#xff1a;异常报错信息收集的方法 描述 环境&#xff1a;VM4.0以上VS2013及以上 现象&#xff1a;未知问题、偶发问题、崩溃问题如何收集信息提供给研发排查。…

【网络协议详解】——GNS3的使用(学习笔记)

&#x1f4d6; 前言&#xff1a;在IT领域&#xff0c;网络协议的理解和掌握是至关重要的。GNS3和Wireshark是非常实用的工具&#xff0c;它们可以帮助你深入了解TCP/IP协议和网络的运作情况。 目录 &#x1f552; 1. 网络协议分析工具——GNS3&#x1f558; 1.1 快速上手&#…

一篇你看得懂的SNP

单核苷酸多态性&#xff0c;&#xff08;Single Nucleotide Polymorphism&#xff0c;简称SNP&#xff09;指的是由单个核苷酸—A,T,C或G的改变而引起的DNA序列的改变&#xff0c;造成包括人类在内的物种之间染色体基因组的多样性。是指在基因组上单个核苷酸的变异&#xff0c;…

一篇带你了解大厂都在用的DDD领域驱动设计

一、DDD到底是什么 DDD全称Domain Driven Design&#xff0c;领域驱动设计。 为了解决快速变化、复杂系统的设计问题的 领域驱动设计是Eric Evans在2004年发表的Domain Driven Design&#xff08;领域驱动设计&#xff0c;DDD)著作中提出的一种从系统分析到软件建模的一套方…

Windows安装mariadb,配置环境变量(保姆级教学)

软件下载地址&#xff1a;https://mariadb.com/downloads/ 1.双击下载好的软件 2.点击next 3.勾选我同意&#xff0c;点击next 4.这里那你可以设置你要安装的路径&#xff0c;也可以使用默认的&#xff0c;之后点击next 5.如图所示&#xff0c;设置完点击next 6.接下来就默…

Java面试题总结 | Java面试题总结8- Redis模块(持续更新)

Redis 文章目录 Redisredis的线程模型Redis的Mysql的区别Redis和传统的关系型数据库有什么不同&#xff1f;Redis常见的数据结构zset数据结构Redis中rehash过程redis为什么不考虑线程安全的问题呢Redis单线程为什么还能这么快&#xff1f;为什么Redis是单线程的&#xff1f;red…

JSP 的本质原理解析:“编写的时候是JSP,心里想解读的是 java 源码“

JSP 的本质原理解析&#xff1a;“编写的时候是JSP&#xff0c;心里想解读的是 java 源码” 文章目录 JSP 的本质原理解析&#xff1a;"编写的时候是JSP&#xff0c;心里想解读的是 java 源码"每博一文案1. JSP 概述2. 第一个 JSP 程序3. JSP 的本质就是 Servlet4. J…