浅谈闪存控制器架构_第1页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、浅谈闪存控制器架构分析闪存控制器的架构,首先得了解ssd。普通来说ssd的存储介质分为两种,一种是采纳闪存(flash芯片)作为存储介质,另外一种是采纳dram作为存储介质。我们通常所说的ssd就是基于闪存的固态硬盘,其采纳flash芯片作为存储介质。ssd的基本组成结构包括flash颗粒和flash控制器,flash控制器中有芯片,负责flash的读写、磨损均衡、寿命监控等等。flash控制器的主要的工作任务包括三大方面:一是后端拜访flash,管理后端flash颗粒,包括各种参数控制和数据io; 二是前端提供拜访接口和协议:实现对应的sas/sata target协议端或者nvme协议端,

2、 猎取host发出的io命令并解码和生成内部私有数据结果等待执行;三是ftl层核心处理。下面我们详细来介绍一下flash 控制器是怎样做这几件事的。第一,后端拜访flash的操作内容后端拜访flash首先必需提到的是闪存通道控制器。这个控制器里面有多个通道,每个通道挂多片flash。它与后端flash颗粒之间存在托管协议。数据写入flash的时候,除了主机发送的数据或者原始数据,其他数据都必需举行ecc校验。ecc是通用的称谓,里面有多种算法,其中包括纠错率较低的bch算法,lapc低密度校验码等。数据读出的时候,通过扰码,加扰,解扰,看ecc是否浮现错误,若有错则在纠错后将芯片发到内部,供后

3、续的程序处理。因此,后端拜访flash的主要任务即是管理后端flash颗粒,包括各种参数控制和数据io。其次,前端提供拜访接口和协议前端提供拜访接口和协议,跟主机驱动通信,利用标准格式输配到系统里面,接收主机端发过来的命令,即完成、实现对应的sas/sata target协议端或者nvme协议端,猎取host发出的io命令并解码和生成内部私有数据结构等待执行。假如遵从nvme标准,包括提交指令的办法、完成指令的处理办法等都定好了,包括各种队列、队列深度,queue pair的总体数量最大可以达到64k个,队列深度也可达64k个,所以,系统里同时可能存在64k×64k io排着,但是目

4、前的系统是用不到这么多queue的,由于底下的介质速度还不足以支撑。第三,ftl层核心层处理核心层ftl层,是一款flash控制器的关键竞争力所在。它既可以是纯软件算法,包括元数据管理,数据布局影射、磨损均衡、垃圾回收、缓存策略、片间raid和掉电元数据全都性保障等内容。同时,它也可以在举行重复性工作时辅以硬加速引擎。这是非纯软件的,辅有硬加速的成分在里面。硬加速涉及到所用法的芯片。有的芯片支持硬加速,比如说链表的维护。这是由于做垃圾回收时需要要用到链表,拿传统的软件算法,插入一个或者追加一些项目,所耗费的cpu周期较大,此时用硬加速并行,再加上一些硬规律的加速,则可节约开销。flash控制器

5、的两种策略和方式:现有的flash控制器可采纳两种方式:一种是少量的强核心加少量硬件加速。所谓强核心就是一个核心的性能高、频率高,分支预判、并行度、单元数量、执行管道,各种参数都高于普通水平。核心强了以后,硬加速就不需要这么多了,可以用少量的硬加速。另一种方式则是大量弱核心+大量硬加速。比如说16个核心,每个核心比较弱,但是能够增强执行的并行度,有16个并发核心执行,跑16套处理程序,这是两种架构。这是一种多核心配合架构模式,其配合方式可以是同构配合也可以是异构配合1.同构配合就是每个核心做的事都是彻低一样的,处理的步骤彻低一样。假如你的控制器阵列里面有16个io,有16个核心,每个核心都能处

6、理一个io,这是同构配合。2.异构配合则是多个核心做不同的事情。处理同一个io,第一个io第一步,第一个核心处理,这个核心处理完以后,把这个io扔到下一个核心,再处理下一步,等这个核心空出来以后,处理下一个io的第一步,这就是所谓的流水线了,所谓的异构就是如此。产品实例:pmc的flashtectm nvme 控制器这是pmc的控制器,首先它有一个片上网络,网络承载16个cpu核心,每个核心里面有一个类似网卡的控制器,网卡连到网络上,多个cpu之间连起来。容易说就是4口路由器或者交换机连起来的网络,多个cpu之间连起来,此外还有硬加速模块。另外还包括以下几部分:·ram控制器,由于芯

7、片上需要有一定量的ram放暂时数据,写放大,读出来写进去,都要走ram;·pcie控制器,这个是跟前端pcie对等的控制器,io命令从这儿接收过来;·后端flash控制器,通过一定数量的通道连flash颗粒,·加速器(包括缓冲加速器),每做一个操作,都需要有相应的内存,把数据拷到内存里面,内存的维护很费时费劲。比如在x86上运行的,其管理内存时需要耗费无数的计算量。对于闪存,精打细算,必需把性能做到极致,因此需用到硬加速。·链表加速器,用链表来记录一些信息,哪块空着,哪块被应用,这块用软件维护很费劲,所以需要在这里作加速;·xor加速器,xor要用硬加速·最后,来看一下软件的并行度。16个核心,pmc提供的参考的固件,固然ssd厂商会开发自己的固件,把自己优化的东西放进去,优化的算法放进去。基本上包含了这么一些程序,每个io读的地址可能有重叠,重叠就需要有一个锁定协调,有管指令解析的,有管启动的,有管日志的,有管磨损均衡的,有管查表的,有管写数据的,管前端的pcie manager,还有负责boot loader的核心,初始化的配置,需要由它处理,data manager,这是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论