[SSD]SSD主控
SSD系统架构SSD系统由一块CPU主控可以是ARM或者RISC-v整个主控芯片分为三个部分分别是主机接口控制器缓存控制器和闪存控制器它可以分为前端和后端前端就是主机接口控制器和主机之间的通信用于获取主机的命令并且从主机获取数据后端就是闪存控制器和闪存之间的通信主要是做主机数据的逻辑地址和闪存的物理地址的地址映射并且将数据写入闪存之中。其中还有一个缓存区(DRAM/SRSM)这也是一个可易失的存储这个缓存区由缓存控制器控制从主机来的数据会暂时存入缓存中知道数据量达到存储标准才会进行后端的操作。接下来分别介绍DMA(Direct Memory Access)这个可以理解为封装好的固件作用是传输数据只需要CPU发指令就能执行无需占用CPU又可以分为前端DMA和后端DMA前端DMA一般在SATA/PCIe这些接口上后端DMA一般在flash上。前端前端做的是将数据从主机接口控制器通过接口(SATA/PCIe/USB3.2这里的接口可以按需更换)--前端DMA传输到SSD内部的缓存/寄存器这个过程主要是数据的传输速度很快(纳秒级别)影响这个速度的因素是接口的带宽(PCIe4.0×4 比单个PCIe4.0快)和时钟频率。逻辑层在逻辑层中主要实现的是FTL算法FTL过程包括逻辑地址和物理地址的映射垃圾回收磨损均衡坏块处理等后端后端主要做的有ECC纠错,后端DMA过程通过这些过程将缓存中的数据比较稳定的写入到闪存之中这个处理过程是需要时间的除此之外影响SSD性能的瓶颈也是在这一块有一个叫做Flash编程时间(微秒级别)的性质ECC纠错(BCH/LDBC)闪存是把电子关进“浮栅极”来存储0和1的这个过程中很有可能会发生“位翻转”的产生错误对此加入ECC纠错是必要的。ECC纠错思想在存数据的时候附带一段“校验信息”这段校验信息是根据需要传输的数据信息计算出来的也就是编码过程然后带着校验信息的数据传输之后对数据据根据算法进行解码只需要比较和存进去的校验码是否匹配既可完成ECC检错纠错如果发生错误通过矩阵运算能够计算出准确位置bit翻转了然后把它翻转回来。在缓存区——闪存单元这一块主控的 ARM CPU 运行 FTL 算法决定数据该写到哪个 Die 的哪个页。随后后端 DMA接管将这数据从主控缓冲区通过闪存通道搬运到目标闪存颗粒内部的页寄存器中。Plane(平面):Plane是Die下面的单元一般一Die有4个Plane每一个Plane都配备专属的页寄存器页寄存器中存着来自于缓存区的数据(中转站)。页寄存器页寄存器是在flash颗粒内部连接主控缓存区和内部存储阵列(浮栅极)的结构在每一个闪存Die中通常每个Plane都会配备一个页寄存器。Flash编程时间(tPROG)是在flash中完成操作的这是一个物理的过程(给浮栅晶体管充放电的过程)速度收到材料的影响为了尽可能使前端到后端的传输过程比较顺利(SSD不卡顿)就必须想方设法让多个Die并发干活这要接触到几个专业的名词Die(晶粒)闪存上的一个最小物理独立单元一颗Die里面包含成千上万个块和页以及自己的控制逻辑可以把它理解为一个流水线工人同一时刻只能执行一个操作(例如对数据读or写or擦除)所以在向闪存写入数据的过程为了提升速度可以根据要求使用多个Die实现并发的数据写入。CE(Chip Enable片选信号) CE是闪存控制器引出的一根片选控制线它的作用是激活/选中特定的闪存Die让这个Die准备写入主控的指令和数据主控和每一个Die之间都有一个专属CE线(这个是已经封装好的)缓存什么是缓存为什么要存在缓存区缓存本质上是一个物理的储存DRAM/SRAM(易失性)它会和CPU一样焊接在主控板上相当于是另一个挂载的临时存储这个缓存区的作用如下1.前端读写速度和后端读写速度不一致前端更快后端(闪存编程时间)更慢缓存区起到临时存储数据的作用2.在数据写入闪存的过程中需要做FTLECC等算法也需要计算时间。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2631814.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!