操作系统(17)----- 固态硬盘SSD

简介: 操作系统(17)----- 固态硬盘SSD
1.原理

如图所示,机械硬盘存储数据是通过盘面的磁性物质来记录二进制的0和1的,而固态硬盘存储数据是基于闪存技术(FLASH Memory),属于电可擦除ROM,即EEPROM

2.固态硬盘的组成

(1)闪存翻译层

(2)存储介质

存储介质由多个闪存芯片组成,


系统通过I/O总线,向SSD发送要读/写的逻辑块号,即逻辑地址,这一逻辑地址经过闪存翻译层翻译后,会映射到对应的物理地址,所以闪存翻译层可以将逻辑地址转换为物理地址,由于固态硬盘的读写以页为单位,所以每一个逻辑块,对应闪存芯片的一个页


固态硬盘包括多个闪存芯片,这些闪存芯片都能存储数据,每个闪存芯片由多个数据块组成,每个块的大小16KB~512KB,而每一个块又能进一步拆分为页,每页大小512B~4KB,系统对固态硬盘的读写是以页为单位的,而对机械硬盘的读写是以块/扇区为单位的

3.固态硬盘的读写性能

① 从固态硬盘的组成可知,对固态硬盘的读写是以页为单位的,相当于磁盘的"扇区"


② 固态硬盘是以块(block)为单位“擦除"的,擦干净的块,其中的每页都可以写一次(也就是当某页已经有数据,那么就不能写入数据了,只能将页所在的块擦干净,再往其中写入数据),读无限次

③ 读快,写慢。要写的页如果有数据,则不能写入,需要将块内其他页全部复制到一个新的(擦除过的)块中,再写入新的页

若内存芯片1中的块1的第一个页想要写入数据,那么就要把块1全部擦除,这样会导致其他页数据丢失

系统会将其他页的数据,移动到另一个块中

再将新数据写到移动后的块中

但是闪存翻译层会将逻辑块号翻译为物理地址,也就是逻辑块号和物理地址是有一一映射关系的,但是经过写入数据后,数据的物理位置发生改变,为了让映射关系正确,在数据移动后,闪存翻译层会对逻辑块号重新映射到正确的物理位置,原来的映射关系废弃


所以,固态硬盘闪存芯片组中的物理位置可能改变,只是闪存翻译层会将映射关系修改正确

④ 支持随机访问,系统给定一个逻辑地址,闪存翻译层可通过电路迅速定位到对应的物理地址


4.固态硬盘与机械硬盘比较

① SSD读写速度快,随机访问性能高,用电路控制访问位置;机械硬盘通过移动磁臂旋转磁盘控制访问位置,有寻道时间和旋转延迟

② SSD 安静无噪音、耐摔抗震、能耗低、造价更贵

③ SSD的一个"块"被擦除次数过多(重复写同一个块)可能会坏掉,而机械硬盘的扇区不会因为写的次数太多而坏掉


5.磨损均衡技术

由于SSD的一个"块"被擦除次数过多(重复写同一个块)可能会坏掉,所以引入了磨损均衡技术,将"擦除"平均分布在各个块中,以提升使用寿命


(1)动态磨损均衡

写入数据时,优先选择累计擦除次数少的新闪存块,因为系统无论选择什么位置,闪存翻译层都能将逻辑块号与物理地址进行正确映射


(2)静态磨损均衡

SSD监测并自动进行数据分配、迁移,让老旧的闪存块承担以读为主的储存任务,让较新的闪存块承担更多的写任务

例,某固态硬盘采用磨损均衡技术,大小为2^40B=1TB,闪存块的擦写寿命只有2^10=1K次。某男子平均每天会对该固态硬盘写2^37B=128GB数据。在最理想的情况下,这个固态硬盘可以用多久?

SSD采用磨损均衡技术,最理想情况下,SSD中每个块被擦除的次数都是完全均衡的。

1TB/128GB=8

因此,平均每8天,每个闪存块需要擦除一次。每个闪存块可以被擦除1K次,因此,经过8K天,约23年后,该固态硬盘被男子玩坏

目录
相关文章
|
11月前
|
存储 缓存 固态存储
重学操作系统----05 | 存储器分级:L1 Cache 比内存和 SSD 快多少倍?
重学操作系统----05 | 存储器分级:L1 Cache 比内存和 SSD 快多少倍?
199 0
|
存储 测试技术 iOS开发
|
18天前
|
监控 Unix Linux
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
39 0
|
18天前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
36 0
|
11天前
|
存储 缓存 Linux
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解
|
18天前
|
存储 Linux C语言
Linux:冯·诺依曼结构 & OS管理机制
Linux:冯·诺依曼结构 & OS管理机制
18 0
|
18天前
|
存储 Linux
linux查看系统版本、内核信息、操作系统类型版本
linux查看系统版本、内核信息、操作系统类型版本
68 9
|
2天前
|
安全 算法 网络协议
探索Linux操作系统的内核管理
【5月更文挑战第31天】本文将深入探讨Linux操作系统的内核管理机制,包括其设计原则、主要组件以及它们如何协同工作以提供高效的系统性能。通过分析Linux内核的关键特性和功能,我们将揭示这一开源操作系统如何在各种计算环境中保持其稳定性和灵活性。
|
3天前
|
Linux
探索Linux操作系统的内核模块
本文将深入探讨Linux操作系统的核心组成部分——内核模块,揭示其背后的工作机制和实现方式。我们将从内核模块的定义开始,逐步解析其加载、卸载以及与操作系统其他部分的交互过程,最后探讨内核模块在系统性能优化中的关键作用。
|
18天前
|
Linux 开发工具 C语言
【操作系统】实验四 增加Linux系统调用
【操作系统】实验四 增加Linux系统调用
31 1