一种面向嵌入式系统的NandFlash块冗余存储控制电路的制作方法

文档序号:6396457阅读:255来源:国知局
专利名称:一种面向嵌入式系统的Nand Flash块冗余存储控制电路的制作方法
技术领域
本实用新型属于数据存储技术领域,尤其是涉及一种面向嵌入式系统的NandFlash块冗余存储控制电路。
背景技术
随着半导体电子技术和工艺的迅猛发展,凭借存储密度大、功耗低、寿命长、成本低等特点,Nand Flash存储芯片在嵌入式系统的存储领域得到了广泛应用,典型的嵌入式处理器(如Power PC、ARM、DSP等)均支持Nand Flash存储器接口。由于本身存在固有缺陷,Nand Flash存储芯片是一种数据正确性非理想的器件,在Nand Flash存储芯片出厂和使用过程中会产生一定数量的坏块,从而导致存储数据的错误或丢失。因此,为了提高NandFlash存储单元的可靠性进而保证嵌入式系统的可靠运行,基于Nand Flash的数据冗余存储显得尤为必要。目前,针对Flash的冗余存储,具体有以下几种方法:(I)冗余编码。该方法是采用一定编码方式生成冗余编码并将其存入预留的数据冗余空间中,当存储数据出现错误时,利用冗余编码纠正错误。专利200910053399“一种大规模Flash存储阵列的多层次数据冗余方法”即是在页级、Flash芯片级、Flash芯片组级三个层次采用冗余编码的方法对数据进行冗余。此方法增加了软件运算量和数据存储控制的复杂度,并且当出现坏块无法读取数据时,冗余编码失去意义。(2)建立数据备份区。该方法是在Flash存储单元内部划分数据备份区,当原始数据区出现存储坏块时读取数据备份区的数据。专利200810029685“Flash存储器的二级备份方法”即是采用数据备份的方式进行冗余存储。由于原始数据区与备份区并非对等冗余,因此,此方法在数据存储时增加了存储控制程序的复杂度,并降低了数据存取效率。(3)硬件级冗余存储。该方法是在硬件上包含两个互为冗余的数据存储区域,当其中一区域的某数据块出现故障时,可从另一区域的相应数据块中恢复数据。专利201120005567“一种数据冗余保护Flash固态盘”即包含两个对等的互为冗余的存储阵列和数据存储控制器以提高固态盘存储数据的可靠性及完整性,但是该专利仅限应用于Flash存储阵列及固态盘的设计,不支持嵌入式处理器的Nand Flash接口,不能直接用于嵌入式系统的主存储器单元设计中。
发明内容本实用新型的目的是针对现有基于Nand Flash的冗余存储电路的不足,提供一种面向嵌入式系统的Nand Flash块冗余存储控制电路,采用硬件级冗余存储方法实现基于Nand Flash的冗余存储,并采用现场可编程逻辑门阵列FPGA (Field Programmable GateArray)器件作为控制芯片,实现冗余存储单元的并行操作并提供与嵌入式处理器直接相连接的Nand Flash存储器接口,可适用于对数据存储可靠性要求较高的嵌入式系统主存储器单元。[0008]本实用新型一种面向嵌入式系统的Nand Flash块冗余存储控制电路,包括:NandFlash存储芯片(I)、Nand Flash存储芯片(2)和控制芯片(3)。Nand Flash存储芯片(I)与Nand Flash存储芯片(2)采用相同的存储芯片构成两个互为冗余的存储单元。控制芯片(3)的IO引脚5至12,10引脚17,10引脚21,10引脚22,10引脚23,10引脚24,10引脚26、IO引脚27分别与Nand Flash存储芯片(I)的引脚1/00至1/07、CLE、ALE、RE #、WE #、CE#、R/B#、WP #相连接,控制芯片(3)的IO引脚78至85、IO引脚92、IO引脚93、IO引脚94,10引脚95,10引脚97,10引脚98,10引脚99分别与Nand Flash存储芯片(2)的引脚 1/00 至 I/07、CLE、ALE、RE #、WE #、CE#、R/B#、WP #相连接,控制芯片(3)的 IO 引脚114 至 121、IO 引脚 126、IO 引脚 127、IO 引脚 131、IO 引脚 132、IO 引脚 133、IO 引脚 134分别与外部主处理器的Nand Flash接口引脚1/00至1/07、CLE、ALE、RE #、WE #、CE#、R/B#相连接。所述Nand Flash存储芯片(I)和Nand Flash存储芯片(2)采用的是三星公司的K9K8G08U0M。所述控制芯片(3)采用的FPGA芯片是赛灵思公司XC6SLX4TQG144。控制芯片(3)实现Nand Flash块冗余存储控制功能,将外部主处理器发出的Nand Flash控制命令采用冗余机制处理后对Nand Flash存储芯片(I)及Nand Flash存储芯片(2)进行相应操作。本实用新型应用上述芯片型号,但不局限于上述型号,凡是可满足相同功能需求的芯片型号均可互相替代。所述外部主处理器指的是内置Nand Flash控制器且含Nand Flash存储器接口的嵌入式处理器。本实用新型中采用的Nand Flash块冗余存储控制方法,包括上电坏块自检过程、数据存储过程、数据读取过程和数据擦除过程。上电坏块自检过程包括以下步骤:SI Nand Flash存储芯片(I)和Nand Flash存储芯片(2)为两个互为冗余的存储单元,每片Nand Flash存储芯片包含η个存储块(Block),分别编号O至(η — I);S2上电后控制芯片(3)同时对Nand Flash存储芯片(I)及Nand Flash存储芯片
(2)进行坏块扫描,并建立坏块信息列表。数据存储过程包括以下步骤:SI控制芯片(3)通过Nand Flash接口接收来自外部主处理器的数据存储命令和数据;S2控制芯片(3)根据命令中的行地址提取当前操作存储块的块地址编号m ;S3控制芯片(3)根据坏块信息列表检测Nand Flash存储芯片(I)及Nand Flash存储芯片(2)的第m个存储块是否为坏块,并且仅将数据写入第m块为正常块的存储芯片中,若两个存储芯片的第m块均为坏块时,则控制芯片(3)向外部主处理器返回写入不成功应答。数据读取过程包括以下步骤:SI控制芯片(3)通过Nand Flash接口接收来自外部主处理器的数据读取命令;S2控制芯片(3)根据命令中的行地址提取当前操作存储块的块地址编号m ;S3控制芯片(3)根据坏块信息列表检测Nand Flash存储芯片(I)及Nand Flash存储芯片(2)的第m个存储块是否为坏块,当Nand Flash存储芯片(I)的第m块为正常块时,读取Nand Flash存储芯片(I)的数据返回至外部主处理器,否则,读取Nand Flash存储芯片(2)的数据,若两个存储芯片的第m块均为坏块时,则读取页寄存器默认值返回至外部主处理器;S4当读取数据成功时,根据命令中行列地址判断读取的当前页是否为第m块的含坏块信息页(通常为第I页),若读取的是含坏块信息页的数据则更新第m块的坏块信息。数据擦除过程包括以下步骤:SI控制芯片(3)通过Nand Flash接口接收来自外部主处理器的数据擦除命令;S2控制芯片(3)根据命令中的行地址提取当前操作存储块的块地址编号m ;S3控制芯片(3)同时对Nand Flash存储芯片(I)和Nand Flash存储芯片(2)的第m块执行擦除操作。本实用新型所产生的有益效果是:本实用新型提供的一种面向嵌入式系统的NandFlash块冗余存储控制电路可直接与外部主处理器的Nand Flash存储器接口连接,外部主处理器的Nand Flash接口驱动程序无需额外开销即可实现嵌入式主处理器的数据冗余存储;控制芯片采用FPGA芯片,可实现冗余存储单元的数据并行读写及擦除操作,提高了嵌入式系统中Nand Flash冗余存储单元的读写速度;采用硬件级冗余存储的方法,有效降低了 Nand Flash存储芯片的坏块对数据存储的影响。

图1为本实用新型的结构框图;图2为本实用新型的电原理图;图3为控制芯片FPGA内部结构框图;图4为上电坏块自检过程流程图;图5为数据存储过程流程图;图6为数据读取过程流程图;图7为数据擦除过程流程图。
具体实施方式
以下结合附图对本实用新型做进一步的详细说明。附图1是本实用新型的结构框图,描述了各个部件之间的连接关系。本实用新型包括控制芯片(3)、互为冗余存储单元的Nand Flash存储芯片(I)和Nand Flash存储芯片
(2)。控制芯片(3)分别与Nand Flash存储芯片(I)和Nand Flash存储芯片(2)相连接,控制芯片(3)还与外部主处理器的Nand Flash接口相连接。附图2是本实用新型的电原理图。附图2显示了 Nand Flash存储芯片、控制芯片和其它配置芯片。Nand Flash存储芯片(I)采用的是三星公司的K9K8G08U0M (Ul), Nand Flash存储芯片(2)同样采用的是三星公司的K9K8G08U0M (U2)。控制芯片(3)采用的FPGA芯片是赛灵思公司的XC6SLX4TQG144 (U3)。[0045]控制芯片(3)的IO引脚5至12、10引脚17、10引脚21、10引脚22、10引脚23、10引脚24,10引脚26,10引脚27分别与Nand Flash存储芯片(I)的引脚1/00至I/07,CLE,ALE、RE #、WE #、CE#、R/B#、WP #相连接,控制芯片(3)的 IO 引脚 78 至 85、IO 引脚 92、IO引脚93、IO引脚94、IO引脚95、IO引脚97、IO引脚98、IO引脚99分别与Nand Flash存储芯片(2)的引脚1/00至1/07、CLE、ALE、RE #、WE #、CE#、R/B#、WP #相连接,控制芯片(3)的IO引脚114至121、IO引脚126、IO引脚127、IO引脚131、IO引脚132、IO引脚133、IO引脚134分别与外部主处理器的Nand Flash接口引脚1/00至1/07、CLE、ALE、RE#、WE #、CE#、R/B# 相连接。附图3是控制芯片FPGA内部结构框图。控制芯片(3)FPGA内部结构框图包括外部主处理器Nand Flash接口控制子模块、命令译码及块地址提取模块、写入Nand Flash子模块、读取Nand Flash子模块、擦除NandFlash子模块、存储芯片选择子模块、上电坏块自检子模块、坏块信息列表、存储芯片INandFlash接口控制子模块、存储芯片2Nand Flash接口控制子模块和数字频率管理器模块。控制芯片(3)首先通过Nand Flash接口接收来自外部主处理器的指令,通过命令译码选择Nand Flash当前操作子模块,通过块地址提取并结合坏块信息选择当前操作存储芯片,最后通过存储芯片的Nand Flash接口控制子模块对所选Nand Flash存储芯片执行当前操作。附图4是上电坏块自检过程流程图。上电坏块自检过程包括以下步骤:SI Nand Flash 存储芯片(I)和 Nand Flash 存储芯片(2)均为 K9K8G08U0M,每片Nand Flash存储芯片包含8192个存储块(Block),分别编号O至8191 ;S2上电后控制芯片(3)同时对Nand Flash存储芯片(I)及Nand Flash存储芯片
(2)进行坏块扫描,建立坏块信息列表。Nand Flash存储芯片的坏块信息判断方法是:判断每一块的第一页的第2048字节的数据是否为FFh,若非FFh则该块为坏块。坏块信息是Nand Flash存储芯片(I)坏块信息与Nand Flash存储芯片(2)坏块信息逻辑相与的结果,当且仅当两个存储芯片的当前块均为坏块时才判定当前块为坏块。附图5是数据存储过程流程图。数据存储过程包括以下步骤:SI控制芯片(3)通过Nand Flash接口接收来自外部主处理器的数据存储命令和数据;S2控制芯片(3)根据命令中的行地址提取当前操作存储块的块地址编号m ;S3控制芯片(3)根据坏块信息列表检测Nand Flash存储芯片(I)及Nand Flash存储芯片(2)的第m个存储块是否为坏块;当两个存储芯片的第m块均为正常时,则同时将数据存储至Nand Flash存储芯片
(I)和Nand Flash存储芯片(2);当Nand Flash存储芯片(I)的第m块为坏块时,则仅将数据存储至Nand Flash存储芯片(2);当Nand Flash存储芯片(2)的第m块为坏块时,则仅将数据存储至Nand Flash存储芯片(I);当Nand Flash存储芯片(I)及Nand Flash存储芯片(2)的第m块均为坏块时,则向外部主处理器返回写入不成功应答。附图6是数据读取过程流程图。数据读取过程包括以下步骤:SI控制芯片(3)通过Nand Flash接口接收来自外部主处理器的数据读取命令;[0061]S2控制芯片(3)根据命令中的行地址提取当前操作存储块的块地址编号m ;S3控制芯片(3)根据坏块信息列表检测Nand Flash存储芯片(I)及Nand Flash存储芯片(2)的第m个存储块是否为坏块,当Nand Flash存储芯片(I)的第m块为正常块时,读取Nand Flash存储芯片(I)的数据返回至外部主处理器,否则,读取Nand Flash存储芯片(2)的数据,若两个存储芯片的第m块均为坏块时,则读取页寄存器默认值返回至外部主处理器;S4当读取数据成功时,根据命令中行列地址判断读取的当前页是否为第m块的第I页,若读取的是第I页则根据第2048字节的数据是否为FFh更新第m块的坏块信息。附图7为数据擦除过程流程图。数据擦除过程包括以下步骤:SI控制芯片(3)通过Nand Flash接口接收来自外部主处理器的数据擦除命令;S2控制芯片(3)根据命令中的行地址提取当前操作存储块的块地址编号m ;S3控制芯片(3)同时对Nand Flash存储芯片(I)和Nand Flash存储芯片(2)的第m块执行擦除操作。
权利要求1.一种面向嵌入式系统的Nand Flash块冗余存储控制电路,其特征在于:包括NandFlash存储芯片(I)、Nand Flash存储芯片(2)和控制芯片(3) ;Nand Flash存储芯片(I)与Nand Flash存储芯片(2)采用相同的存储芯片构成两个互为冗余的存储单元;控制芯片(3)的IO引脚5至12、IO引脚17、IO引脚21、IO引脚22、IO引脚23、IO引脚24、IO引脚.26、IO 引脚 27 分别与 Nand Flash 存储芯片(I)的引脚 1/00 至 1/07、CLE、ALE、RE #、WE#、CE#、R/B#、WP #相连接,控制芯片(3)的IO引脚78至85,10引脚92,10引脚93,10引脚94、IO引脚95、IO引脚97、IO引脚98、IO引脚99分别与Nand Flash存储芯片(2)的引脚 1/00 至 I/07、CLE、ALE、RE #、WE #、CE#、R/B#、WP #相连接,控制芯片(3)的 IO 引脚.114 至 121、IO 引脚 126、IO 引脚 127、IO 引脚 131、IO 引脚 132、IO 引脚 133、IO 引脚 .134分别与外部主处理器的Nand Flash接口引脚1/00至1/07、CLE、ALE、RE #、WE #、CE#、R/B#相连接。
专利摘要本实用新型公开了一种面向嵌入式系统的NandFlash块冗余存储控制电路,包括NandFlash存储芯片(1)、NandFlash存储芯片(2)和控制芯片(3)。本实用新型的优点是可直接与外部主处理器的NandFlash存储器接口连接,外部主处理器的NandFlash接口驱动程序无需额外开销即可实现嵌入式主处理器的数据冗余存储;采用两个相同的存储芯片构成互为冗余的存储单元实现硬件级冗余存储,有效降低了NandFlash存储芯片的坏块对数据存储的影响。本实用新型可适用于对数据存储可靠性要求较高的嵌入式系统主存储器单元。
文档编号G06F11/14GK203012703SQ20122071434
公开日2013年6月19日 申请日期2012年12月22日 优先权日2012年12月22日
发明者黄松张琼, 张少锋, 符才德, 黄松 申请人:中国船舶重工集团公司第七0九研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1