admin 管理员组文章数量: 887021
前面几篇文章,主要围绕的是机械硬盘来说的。目前ssd目前应用也越来越广了,值得我们花精力琢磨琢磨。SSD硬盘是地地道道电子技术下的产品,因为不像机械硬盘IO时依赖两个耗时的机械轴行为:磁盘旋转,以及磁道寻道,SSD硬盘的访问延迟要比机械硬盘要低的多,在随机IO下的表现尤其明显。我们今天从最底层出发,看看SSD的几个内部机理。
欢迎关注微信公众号:开发内功修炼
SSD的组成结构
机械硬盘和ssd虽然都同为硬盘,但底层实现技术却完全不一样,机械硬盘使用的是磁性材料记忆,而SSD用的是类似u盘的闪存技术。实现技术的不同,必然在硬盘内部结构上他们就有天壤之别。他们的果照对比如下图所示:
图1 机械硬盘与SSD对比
不像机械硬盘里的一摞子圆形碟片,SSD是由一些电路和黑色的存储颗粒构成。SSD硬盘是基于NAND Flash存储技术的,属于非易失性存储设备,换成人话说,就是掉电了数据不会丢。其中每一个黑色的存储颗粒也叫做一个Die。 我们“拆开”一个Die来看一下
图2 SSD硬盘存储颗粒内部结构
每个Die有若干个Plane,每个Plane有若干个Block,每个Block有若干个Page。Page是磁盘进行读写的最小单位,一般为2KB/4KB/8KB/16KB等。
SSD里的扇区
前面我们介绍机械硬盘的时候,说到由于历史原因,操作系统等软件里,512KB扇区的概念是“根深蒂固”。新的机械硬盘虽然把物理扇区已经做到4KB的了,但为了兼容老系统还得整出个逻辑扇区的概念来适配。到了SSD里也一样,虽然每一个物理Page的大小为2K到16K不等,但是为了兼容性,也必须得整出个逻辑扇区才行。
SSD控制器在逻辑上会把整个磁盘再重新划分成一个个的“扇区”,采用和新机械硬盘一样的LBA方式来进行编址(整个磁盘的扇区从0到某个最大值方式排列,并连成一条线)。当需要读取某几个"扇区"上数据的时候,SSD控制器通过访问这个LBA MapTable,再来找到要实际访问的物理Page,如下图:
图3 扇区地址与物理Page映射
不过SSD最小的读写单位就是Page,他是没办法只扇区来进行读写的。
最底层的闪存单元
上面我们看到SSD是由一个个的Page组曾。而在每一个Page里,又包含了许许多多的闪存单元。。现代的闪存单元有多种类型,目前主流的主要分为SLC、MLC和TLC。
图4 闪存单元类型
在SLC里,一个单元的电压只分成高低两种状态,所以只能表示1bit数据。到了MLC,硬是把一个单元里的电压按照高低分成了四种状态,所以可以表示2bit。到了TLC,直接一个单元应拆分成8个电压高低不同的状态,为了表示3bit。由于TLC在数据读写需要八种不同电压状态,而施加不同的电压状态、 就需要更精确,也就需要更长的时间才能得以实现。另外由于电压状态多,出错的可能性也会更大。
以上三种闪存单元对比:从性能和稳定性角度来看,SLC最好。从容量角度看,TLC最大。这就是为什么日常我们看到的工业级的SSD要比笔记本SSD要贵很多,其中一个很重要的原因就是工业级的盘往往采用的闪存单元是SLC或MLC,而我们家用的笔记本一般都是TCL,因为便宜嘛。我们从用表格再对它们直观对比一下:
表1 闪存单元对比
目前主流闪存类型TLC居多,因为价格便宜,容量大。
思考
- 假设某SSD的Page大小是4KB,一个文件是16KB。那么该文件是存在一个黑色的存储颗粒里,还是多个?
我们先把SSD的逻辑结构用个直观一点的图来看:
图5 16K文件在SSD中分布示意
假设只写在一个颗粒里,那么对该文件进行读取的时候,就只能用到一条Flash通道,这样速度就会比较慢。如果存在相邻的4个颗粒里,每个写入4KB。这样多个Flash通道的带宽会充分发挥出来,传输速度也更快。所以,实际中是分散在多个。
欢迎关注微信公众号:开发内功修炼
版权声明:本文标题:拆解固态硬盘结构 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1725898848h889350.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论