浅谈闪存控制器架构

发布者:huanhui最新更新时间:2024-08-13 来源: eepw关键字:闪存控制器  架构 手机看文章 扫描二维码
随时随地手机看文章

分析闪存控制器的架构,首先得了解SSD。一般来说SSD的存储介质分为两种,一种是采用闪存(Flash芯片)作为存储介质,另外一种是采用DRAM作为存储介质。我们通常所说的SSD就是基于闪存的固态硬盘,其采用FLASH芯片作为存储介质。SSD的基本组成结构包括Flash颗粒和Flash控制器,Flash控制器中有芯片,负责Flash的读写、磨损均衡、寿命监控等等。


Flash控制器的主要的工作任务包括三大方面:一是后端访问Flash,管理后端Flash颗粒,包括各种参数控制和数据IO; 二是前端提供访问接口和协议:实现对应的SAS/SATA target协议端或者NVMe协议端, 获取Host发出的IO指令并解码和生成内部私有数据结果等待执行;三是FTL层核心处理。下面我们具体来介绍一下Flash 控制器是怎样做这几件事的。


第一,后端访问Flash的操作内容

后端访问Flash首先必须提到的是闪存通道控制器。这个控制器里面有多个通道,每个通道挂多片Flash。它与后端Flash颗粒之间存在托管协议。数据写入Flash的时候,除了主机发送的数据或者原始数据,其他数据都必须进行ECC校验。ECC是通用的称谓,里面有多种算法,其中包括纠错率较低的BCH算法,LAPC低密度校验码等。数据读出的时候,通过扰码,加扰,解扰,看ECC是否出现错误,若有错则在纠错后将芯片发到内部,供后续的程序处理。因此,后端访问Flash的主要任务即是管理后端Flash颗粒,包括各种参数控制和数据IO。



第二,前端提供访问接口和协议

前端提供访问接口和协议,跟主机驱动通信,利用标准格式输配到系统里面,接收主机端发过来的指令,即完成、实现对应的SAS/SATA target协议端或者NVMe协议端,获取Host发出的IO指令并解码和生成内部私有数据结构等待执行。如果遵从NVMe标准,包括提交命令的方法、完成命令的处理方法等都定好了,包括各种队列、队列深度,Queue Pair的总体数量最大可以达到64K个,队列深度也可达64K个,所以,系统里同时可能存在64K×64K IO排着,但是目前的系统是用不到这么多Queue的,因为底下的介质速度还不足以支撑。



第三,FTL层——核心层处理

核心层FTL层,是一款Flash控制器的关键竞争力所在。它既可以是纯软件算法,包括元数据管理,数据布局影射、磨损均衡、垃圾回收、缓存策略、片间RAID和掉电元数据一致性保障等内容。同时,它也可以在进行重复性工作时辅以硬加速引擎。这是非纯软件的,辅有硬加速的成分在里面。硬加速涉及到所使用的芯片。有的芯片支持硬加速,比如说链表的维护。这是因为做垃圾回收时需要要用到链表,拿传统的软件算法,插入一个或者追加一些项目,所耗费的CPU周期较大,此时用硬加速并行,再加上一些硬逻辑的加速,则可节省开销。

Flash控制器的两种策略和方式:

现有的Flash控制器可采用两种方式:一种是少量的强核心加少量硬件加速。所谓强核心就是一个核心的性能高、频率高,分支预判、并行度、单元数量、执行管道,各种参数都高于一般水平。核心强了以后,硬加速就不需要这么多了,可以用少量的硬加速。

另一种方式则是大量弱核心+大量硬加速。比如说16个核心,每个核心比较弱,但是能够增加执行的并行度,有16个并发核心执行,跑16套处理程序,这是两种架构。这是一种多核心协作架构模式,其协作方式可以是同构协作也可以是异构协作

1. 同构协作就是每个核心做的事都是完全一样的,处理的步骤完全一样。如果你的控制器阵列里面有16个IO,有16个核心,每个核心都能处理一个IO,这是同构协作。

2. 异构协作则是多个核心做不同的事情。处理同一个IO,第一个IO第一步,第一个核心处理,这个核心处理完以后,把这个IO扔到下一个核心,再处理下一步,等这个核心空出来以后,处理下一个IO的第一步,这就是所谓的流水线了,所谓的异构就是如此。



产品实例:PMC的FlashtecTM NVMe 控制器

这是PMC的控制器,首先它有一个片上网络,网络承载16个CPU核心,每个核心里面有一个类似网卡的控制器,网卡连到网络上,多个CPU之间连起来。简单说就是4口路由器或者交换机连起来的网络,多个CPU之间连起来,此外还有硬加速模块。另外还包括以下几部分:

RAM控制器,因为芯片上需要有一定量的RAM放临时数据,写放大,读出来写进去,都要走RAM;

PCIe控制器,这个是跟前端PCIe对等的控制器,IO指令从这儿接收过来;

后端Flash控制器,通过一定数量的通道连Flash颗粒,

加速器(包括缓冲加速器),每做一个操作,都需要有相应的内存,把数据拷到内存里面,内存的维护很费时费力。比如在X86上运行的Linux,其管理内存时需要耗费很多的计算量。对于闪存,精打细算,必须把性能做到极致,因此需用到硬加速。

链表加速器,用链表来记录一些信息,哪块空着,哪块被应用,这块用软件维护很费力,所以需要在这里作加速;

XOR加速器,XOR要用硬加速

最后,来看一下软件的并行度。16个核心,PMC提供的参考的固件,当然SSD厂商会开发自己的固件,把自己优化的东西放进去,优化的算法放进去。基本上包含了这么一些程序,每个IO读的地址可能有重叠,重叠就需要有一个锁定协调,有管命令解析的,有管启动的,有管日志的,有管磨损均衡的,有管查表的,有管写数据的,管前端的PCIe Manager,还有负责boot loader的核心,初始化的配置,需要由它处理,data manager,这是主程序,分析IO指令需要干什么,生成一堆的后续步骤下发下去。其实每一块都可以跑在一个核心上,同一个角色可以复制多份,充分并行。16个核心,达到16份程序并行的运行,16个流水线的Stage,这样就可以屏蔽处理过程中的时延。


关键字:闪存控制器  架构 引用地址:浅谈闪存控制器架构

上一篇:电动轮椅控制系统的设计与实现
下一篇:电梯变频门机的运动控制分析

推荐阅读最新更新时间:2024-11-12 21:25

自动驾驶领域的SOA软件架构设计应用分析
随着汽车电子行业的迅猛发展,高级别的智能驾驶技术对软件架构的灵活性和可复用性有了更高的要求。面向服务的体系架构(Service-Oriented Architecture, SOA)因具有基于标准、松耦合性、互操作性等优势,更加贴近智能网联化时代车载系统对软件架构的要求,从而被汽车行业广泛采用。 一、面向服务的设计原则与战略目标 01 面向服务的设计原则与约束 标准化服务契约原则 服务松耦合原则 服务抽象原则 服务可重用性原则 服务自治性原则 服务无状态原则 服务可发现原则 服务可组合性原则 02 面向服务的战略目标 提升本征互操作性 增强联合 增加供应商多元化选择 同步提升业务和技术对齐 提高投资回报率 提高组织的业
[嵌入式]
自动驾驶领域的SOA软件<font color='red'>架构</font>设计应用分析
首套支持IEEE 1801-2015 UPF 3.0的功耗感知架构分析工具问世
Synopsys的Platform Architect MCO提供业界首套支持IEEE 1801-2015 UPF 3.0的功耗感知架构分析工具,该解决方案实现了UPF 3.0系统级IP功耗模型的有效重用,以支持对SoC架构进行功耗和性能的早期分析。 亮点: 全新的IEEE 1801-2015 统一功耗格式(Unified Power Format, UPF)3.0标准实现了可互操作的系统级IP功耗模型的创建和重用 支持IEEE 1801-2015 UPF 3.0的Platform Architect在无需修改现有架构性能模型下实现更多的功耗分析 可对多核系统的运行情况、性能和功耗进行统一观察,使
[电源管理]
ARM总线架构(S3C2440)
S3C2440集成了丰富了外设控制器(LCD控制器、USB Device控制器、USB Host控制器、NAND FLASH控制器、I2C控制器、SPI控制器等)。要控制这些外设就要设置相应控制器的寄存器以产生相应的驱动时序。学习S3C2440,主要是如何配置寄存器。下面是S3C2440特殊功能寄存器地址: #define rBANKCON0 (*(volatileunsigned *)0x48000004) //Boot ROM control #define rBANKCON1 (*(volatileunsigned *)0x48000008) //BANK1 control #define rBANKCON2 (*(vo
[单片机]
ARM总线<font color='red'>架构</font>(S3C2440)
数字化电厂架构及其现场总线控制系统设计
    目前,我国火电厂厂级和机组(车间)级已实现了数字化,但现场控制设备级大部分尚未实现数字化,这已成为现场总线技术需要解决的难题。建设数字化电厂的目的是使发电厂在整个服役期经济效益最大化。数字化电厂结构模型可划分为 3 层(直接控制层、管控一体化层、管理决策层)和 2 个支持系统(数据库支持系统和计算机网络支持系统),它们分别交叉和纳人在 DCS (包括 FCS )、电站仿真系统 ( SIMU )、火电厂厂级监控信息系统(SIS)、管理信息系统( MIS )及决策支持系统( DSS )中。 一、数字化电厂的基础条件     (1) MIS 是建设数字化电厂的关键系统,主要为全厂运营、生产和管理服务,完成设备和维修管理、生产经营管
[嵌入式]
或只存在一种方案 从一个用户的角度聊聊电子电气架构的未来方向
虎年伊始,笔者想认认真真坐下来写一篇对于未来汽车进化层面的思考。囿于笔者并不是一位工程师,只能从媒体的视角,或者说从一个具体使用者的角度来聊聊通过这几年自己的观察,引发的一些思考。其中最大的一个反思,就是多年前,一个互联网高管发出的灵魂拷问:为什么在汽车上看不到微信这样的爆款应用? 这个问题笔者在当时似乎毫不犹豫地就能想到答案:因为使用场景不同。但随着年纪的增长,以及对汽车将转型为移动智能终端这个方向的认知越来越多,越发对自己当时给出的答案不那么自信,甚至开始不停地拷问灵魂:为什么在汽车上看不到微信这样的爆款应用?最终...经过多年的思考…笔者终于发现:自己仍然无法用一句话回答这个问题。罗马不是一天建成的,很多问题的答案
[汽车电子]
或只存在一种方案 从一个用户的角度聊聊电子电气<font color='red'>架构</font>的未来方向
国产自主架构 龙芯CPU支持开放“鸿蒙”
龙芯中科、润和软件联合宣布,经过共同努力,龙芯2K0500开发板、OpenHarmony操作系统已经完成适配验证,LoongArch龙架构平台对于OpenHarmony已形成初步支持,万物互联的生态体系与龙芯平台即将全面连接。OpenHarmony是华为捐献、全球开发者共建的开源分布式操作系统,由开放原子开源基金会孵化及运营,国内众多厂商已基于其形成多个跨终端全领域的发行版操作系统。 2022年4月,龙芯中科与润和软件、慧睿思通、龙芯俱乐部等联合,发起成立了OpenHarmony LoongArch SIG工作组,推动龙架构芯片适配OpenHarmony系统。 长期以来,润和软件作为OpenHarmony生态的核心共建单位
[嵌入式]
国产自主<font color='red'>架构</font> 龙芯CPU支持开放“鸿蒙”
魅族科技组织架构改革 成立三大事业部
eeworld网消息,5月9日,魅族科技对内发布了全新的组织架构。全新的组织架构中显示,黄章作为魅族董事长兼CEO直接参与公司运营。白永祥作为魅族总裁接受各职能中心汇报,并和黄章一起管理新组建的魅族事业部、魅蓝事业部、Flyme事业部。 在本次的架构调整中黄章亲自挂帅魅族事业部,主导魅族及魅族高端品牌的相关业务。黄章早前表态要做自己心目中的梦想机,此次魅族事业部由黄章亲自领导,是魅族在高端产品线上发力的重要举措。 李楠升任魅族科技高级副总裁兼魅蓝事业部总裁,新成立的魅蓝事业部除了品牌、市场、销售等重要职能外,还包括了产品规划职能。为主管营销的负责人增设产品规划职能,是有意使魅蓝逐渐由品牌和市场牵引产品定义,以加强产品的差异
[手机便携]
工业机器人控制系统架构介绍
本文比较了机械臂和移动机器人两种工业机器人的控制系统方案,对其特点进行了介绍。 以上分类是根据应用对象,此外,市面上更多的是通用型运动控制器,即控制非标设备的。 1 控制器底层方案 1.1 机械臂类 机械臂类的控制器发展较早,相对成熟,先来看看现有的控制系统底层方案。 1.2 移动机器人类 移动机器人的控制器属于较新的方向,工业移动机器人有AGV、无人驾驶工程机械等形式,控制系统底层方案如下: 1.3 对比 机械臂对精度和运动稳定性的要求较高,因此计算量大、周期短,比移动机器人一般要高1到2个量级。移动机器人一般对同步精度要求不高,其配置相对较低。 机械臂一般工作于固定的区域,其
[嵌入式]
工业机器人控制系统<font color='red'>架构</font>介绍
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多每日新闻
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved