首页> 中国专利> 一种带有AES和ECC的多通道NANDflash控制器

一种带有AES和ECC的多通道NANDflash控制器

摘要

本发明提供一种带有AES和ECC的多通道NANDflash控制器,包含微控制器、设备控制器、设备端DMA控制器、片内存储器、NANDflash DMA控制器、AES单元、AES输入缓存单元、AES输出缓存单元、ECC编码器、ECC解码器、数据缓存单元和NANDflash接口控制逻辑单元。采用带有AES电路和ECC电路以及片内存储器的实现方式,使得NANDflash控制器具备良好的加密性能,同时能够有效延长NANDflash的使用寿命。

著录项

  • 公开/公告号CN102103559A

    专利类型发明专利

  • 公开/公告日2011-06-22

    原文格式PDF

  • 申请/专利权人 上海华虹集成电路有限责任公司;

    申请/专利号CN200910201376.8

  • 发明设计人 迟志刚;居晓波;

    申请日2009-12-18

  • 分类号G06F13/28(20060101);G06F13/16(20060101);

  • 代理机构上海东创专利代理事务所(普通合伙);

  • 代理人曹立维

  • 地址 201203 上海市碧波路572弄39号

  • 入库时间 2023-12-18 02:47:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-06-18

    授权

    授权

  • 2011-09-14

    实质审查的生效 IPC(主分类):G06F13/28 申请日:20091218

    实质审查的生效

  • 2011-06-22

    公开

    公开

说明书

技术领域

本发明涉及一种多通道NANDflash控制器,尤其涉及一种带有AES和ECC功能的多通道NANDflash控制器。

背景技术

NANDflash在近几年里得到了突飞猛进的发展,由1位/单元的SLC技术发展到了2位/单元甚至3位/单元的MLC技术,同时NANDflash的生产工艺也不断进步。随着技术的发展,NANDflash容量不断增大,单位容量的成本也大幅降低,NANDflash的应用领域也越来越多。

当前市面上NANDflash存储设备对带宽的要求越来越高,NANDflash控制器一般采用增加通道数量来提高带宽。

处于成本的考虑,当前2位/单元,3位/单元的NANDflash得到了广泛应用,但这类flash的可靠性比较差,往往需要纠错能力的强大的ECC(ErrorCorrect Code,纠错码)电路的协助才能正常使用。

出于保护用户数据的目的,加密解密电路,尤其是支持流加密的AES(Advanced Encryption Standard高级加密标准)电路,开始在NANDflash控制器中使用。

如图1所示,为单通道NANDflash控制器的结构框图。在已有的实现当中ECC电路被放在错误!未找到引用源。处或者错误!未找到引用源。处,AES电路设立在ECC电路之前。但基于多通道NANDflash的应用,Nandflash控制器所需存储器的容量很大,需采用部分内容外置的形式,如图2所示。在此种情形下,则需要提出一种新的解决方案,将AES电路很好地融合到电路的设计中,在保证数据安全性的同时还能保证NANDflash的正常使用。

发明内容

本发明目的提供一种带有AES和ECC的多通道NANDflash控制器,通过采用AES电路和ECC电路,使得NANDflash控制器具备良好的加密性能和纠错能力。本发明所提出的一种带有AES和ECC的多通道NANDflash控制器,包含以下内容:

微控制器,用于控制整个多通道NANDflash控制器中各个单元;

设备控制器,用于用于以特定协议(例如IDE、USB、SATA和PCIE等)和主控端进行数据传输;

设备端DMA(Direct Memory Access)控制器,用于控制设备控制器和存储器之间的数据传输;

存储器,包括片内存储器和片外存储器,用于暂存主控端和NANDflash间传输的数据;

NANDflash DMA控制器,用于控制NANDflash数据缓存区与存储器之间的数据传输;

AES单元,用于对即将写入NANDflash的数据进行流加密,对从NANDflash读出的数据进行流解密;

AES输入缓存单元,用于将NANDflash DMA控制器取回的数据拼成128位送给AES电路;

AES输出缓存单元,用于将AES解密后的128位数据拆分供NANDflashDMA控制器传输;

ECC编码器,用于对即将写入NANDflash的数据进行编码生成校验位;

ECC解码器,用于对从NANDflash读出的数据进行检错和纠错;

数据缓存单元,用于缓存从存储器读出的且来不及写入NANDflash的数据,以及缓存从NANDflash读出且来不及写入存储器的数据;

NANDflash接口控制逻辑单元,用于控制和NANDflash之间的数据传输。

NANDflash DMA控制器以串行方式访问数据缓存单元。NANDflash接口控制逻辑以并行方式访问数据缓存单元。

设备控制器与主控端的接口可以为SATA(Serial Advanced TechnologyAttachment)或USB或PCIE(Pedpherd Component Interconnect express)或PATA(Parallel advanced technology attachment)接口。

ECC编码器可以采用RS(Reed-Solomon)编码或BCH(Bose,Ray-Chaudhuri,Hocquenghem)编码。

NANDflash接口控制逻辑包含一个或多个通道,每个通道由多个片选信号(CE#)、多个就绪/忙信号(R/B#)、一组控制信号、一组数据信号组成。多个通道可以并行地从NANDflash读出数据或者并行地向NANDflash写入数据。

写NANDflash时,数据从主控端流向NANDflash。主控端将数据传输到设备控制器,设备端DMA控制器将数据传送到存储器,NANDflash DMA控制器将数据从存储器读出,经AES电路加密,经过ECC编码电路生成校验码后写入数据缓存区。NANDflash接口控制器逻辑单元把数据从数据缓存区读出并写入NANDflash。

读NANDflash时,数据从NANDflash流向主控端。NANDflash接口控制逻辑单元将数据从NANDflash读出并写入数据缓存区,NANDflash DMA控制器将数据从数据缓存区读出,经ECC解码电路差错纠错、AES电路解密后写入存储器,设备控制器DMA将数据从存储器中读出并送到设备控制器,设备控制器将数据送给主控端。

本发明同时采用AES电路和ECC电路,能够对NANDflash控制器传输的数据进行加密和纠错,保证了数据传输的安全性,同时又能够有效地延长NANDflash的使用寿命。

附图说明

图1单通道NANDflash控制器结构框图

图2带片外存储器的多通道NANDflash控制器结构框图

图3带AES和ECC的多通道NANDflash控制器结构框图

图4写操作数据通路示意图

图5读操作数据通路示意图

具体实施方式

以下结合各附图对本发明提供的发明内容进行详细描述:

本发明中的AES单元和ECC单元可被放在图2中②处,或在错误!未找到引用源。处和错误!未找到引用源。处各放一套ECC和AES电路。放在错误!未找到引用源。处是最佳选择,如图3中所示。

微控制器(190)采用嵌入式处理器实现,其上运行固件(firmware)。该固件主要有两部分功能,一是将主控端的数据传输协议转成对NANDflash(200)的操作;二是实现NANDflash(200)的FTL(闪存传输层)。FTL的功能包括地址映射(Address Mapping)、垃圾块回收(GabageCollection)、损耗均衡(Wear-leveling)、坏块管理(Bad Block Management)等。

设备控制器(110)负责按照特定协议接收或传输数据,通常设备控制器中设计有缓存,用于处理主控端(000)和设备端速度不匹配的情况。

设备端DMA控制器(120)负责在设备控制器(110)的缓存和存储器(130或131)之间传输数据。微控制器(190)配置好设备端DMA所需要的数据地址、数据大小等信息后,向设备端DMA控制器(120)发送开始传输的指令。设备端DMA控制器(120)传输完数据之后发送中断通知微控制器(190)。

存储器分为片内存储器(130)和片外存储器(131)。存储器主要用于缓存数据。存储器可用于存放地址映射表,也可作为固件的运行空间。存储器的大小由系统的数据带宽、写重传策略、地址映射策略等因素确定。

NANDflash DMA控制器(140)负责在NANDflash数据缓存单元(170)和存储器(130或者131)之间传输数据。微控制器(190)配置好DMA(140)所需要的数据地址、数据大小等信息后,向NANDflash DMA控制器(140)发送开始传输的指令。在写NANDflash(200)时,NANDflash DMA控制器(140)将数据从存储器(130或者131)读出,先经过AES单元(150)加密,再经过ECC编码器(161)生成校验码后写入数据缓存区(170),其数据通路如图4所示。读NANDflash(200)时,NANDflash DMA控制器(140)将数据从数据缓存单元(170)读出,先经过ECC解码电路(160)查错纠错,再经过AES电路(150)解密后写入存储器。设备端DMA控制器(140)传输完数据之后置中断通知微控制器(190),其数据通路如图5所示。

AES单元(150)负责对写入NANDflash(200)的数据进行加密,对从NANDflash(200)读出的数据进行解密。AES电路一次加密/解密的数据为16字节。为了扩大AES单元(150)的数据带宽,本发明中AES(150)可在一个时钟周期内接收16字节。AES电路的密钥、随机数由微控制器(190)在系统上电或系统复位后加以配置。

AES输入缓存单元(151)负责将数据拼成16字节,在一个时钟周期内一次性送给AES单元。在写NANDflash(200)时,AES输入缓存单元(151)将从存储器(130或者131)取出的数据拼成16字节送给AES单元进行加密。在读NANDflash(200)时,AES输入缓存单元(151)将从数据缓存单元(170)取出的数据拼成16字节送给AES单元进行解密。

AES输出缓存单元(152)负责将AES单元(150)一次送出的16字节数据拆分后依次输出。在写NANDflash(200)时,AES输出缓存单元(152)将AES单元一次送出的16字节数据拆分后依次送到数据缓存单元(170)。在读NANDflash(200)时,AES输出缓存单元(152)将AES单元一次送出的16字节数据拆分后依次送到存储器(130或者131)。

ECC解码器(160)负责对从NANDflash(200)读出的数据进行纠错,若有错且在纠错范围内,则将数据纠错后送给AES输入缓存单元(151);若有错但在纠错范围以外,则置中断通知微控制器(190)。

ECC编码器(161)负责对写入NANDflash(200)的数据进行编码生成校验位。数据和数据的校验位依次写入数据缓存单元(170)。

数据缓存单元(170)用于缓存数据,写NANDflash(200)时,NANDflashDMA控制器(140)串行地将每个通道的数据写入数据缓存单元(170),NANDflash接口控制逻辑单元(180)并行地将各通道的数据从数据缓存单元(170)读出并传送到NANDflash(200)。读NANDflash(200)时,NANDflash接口控制逻辑单元(180)并行地将各通道的数据写入数据缓存单元(170),NANDflash DMA控制器(140)串行地将每个通道的数据从数据缓存单元(170)读出并写入存储器(130或者131)。

NANDflash接口控制逻辑单元(180)负责控制NANDflash(200)的接口时序。NANDflash接口控制逻辑单元(180)包含一个或多个通道,每个通道由多个片选信号(CE#)、多个就绪/忙信号(R/B#)、一组控制信号、一组数据信号组成。多个通道可以并行地从NANDflash(200)读出数据或者并行地向NANDflash(200)写入数据。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号