目录
机械硬盘(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的协议和物理接口,如SATA、SAS和PCIe。
- DRAM:FTL(Flash translation layer,闪存转换层)表项和数据的缓存,以提供数据访问性能。
存储单元:NAND FLASH 颗粒
- NAND FLASH:数据存储的物理器件,是一种非易失性随机访问存储介质。
- 多通道并发,通道内Flash颗粒复用时序。支持TCQ/NCQ,一次响应多个IO请求。
NAND Flash
NAND 闪存颗粒采用浮栅晶体管存储数据
内部存储单元组成包括:LUN、Plane、Block、Page、Cell
- LUN: 能够独立封装的最小物理单元,通常包含多个plane
- Plane:拥有独立的Page寄存器,通常包含1K或2K奇数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进行数据读取
- LBA:Logical Block Address,逻辑区块地址
可以指某个数据区块的地址或者某个地址上所指向的数据区块。
- PBA:Physics Block Address,物理区块地址
FTL闪存转换层
基本概念
FTL起着翻译官的作用,它将Host(电脑、手机等)发送至Device(eMMC、SSD)的逻辑地址转换为写入Flash的物理地址(地址映射管理)。
工作原理
Host给定一个逻辑地址,FTL根据这个逻辑地址在逻辑映射表上建立映射关系,连接到Flash上的物理地址。
一般来说,FTL将逻辑地址处理后,建立的映射关系包含了Flash的Block编号、Page编号等,数据读取时便根据这些信息在Flash对应的位置上找到数据,传输至Host。