一种基于FPGA的NandFlash存储映射系统的制作方法

文档序号:12786292阅读:192来源:国知局

技术领域

本发明涉及高速大容量存储领域,尤其涉及一种基于FPGA的Nand Flash存储映射系统。



背景技术:

随着计算机技术的不断发展,存储设备的容量和速度都得到很大的提升。但是在雷达及航天等领域,对存储设备的容量及读写速率要求更加苛刻,普通的硬盘已经无法满足要求。

FPGA作为新兴的可编程器件,在高速系统中的应用越来越广泛。

由于FPGA内的软核工作效率不是很高,在Nand Flash存储映射方面如果采用软件链表设计,会导致速度较慢。



技术实现要素:

为了解决以上技术问题,本发明提出了一种基于FPGA的Nand Flash双Plane映射管理,通过利用FPGA内部的RAM地址作为逻辑地址,RAM内部的内容为实际的BLOCK地址机制,简化了逻辑地址与实际物理地址的对应关系,提高了存储效率。

本发明的技术方案是

一种基于FPGA的Nand Flash存储映射系统,

主要包含FPGA内建RAM模块,初始化检测模块,主控制模块;其中,

RAM模块,存储Nand Flash可用的Plane0和Plane1 BLOCK地址以及用于替换工作过程中坏块的Plane0和Plane1备用块BLOCK地址;

初始坏块检测模块,用于读取Nand Flash内部标明坏块的信息,判断是否坏块,并将非坏块根据BLOCK地址写入Plane0和Plane1的可用或者备用RAM中;

主控制模块,当接收到命令时,用于查找RAM找到可用的BLOCK地址,并且当工作过程中出现错误时,读取备用块表的BLOCK地址对可用块表中的BLOCK地址进行替换。

进一步的,包含数个RAM模块,其中两个RAM分别存取Plane0和Plane1的可用块BLOCK物理地址;另两个RAM分别存取Plane0和Plane1的备用块物理地址;其中备用块地址数目为总BLOCK地址数目的10%。

再进一步的,初始检测坏块模块通过读取Nand Flash存储的固有坏块信息,建立初始的RAM表

再进一步的,主控制模块根据上级读、写、擦除命令,通过查找RAM表找到可用的Plane0和Plane1的实际物理地址进行操作;并且当在读、写或者擦除过程中出现错误时,查找对应的备用块RAM表对出现问题的逻辑地址的内容进行替换。

本发明的有益效果是

通过FPGA内建RAM存储实际的可用BLOCK地址信息,简化设计难度;

有多个RAM表分别存储Plane0和Plane1的信息,以便控制模块可以同时读取Plane0和Plane1的实际物理地址,对Nand Flash进行双Plane操作,提高速度。

附图说明

图1是本发明的工作流程图。

具体实施方式

下面对本发明的内容进行更加详细的阐述:

本发明包含Plane0和Plane1的可用块及备用块共4个表。RAM表内容为BLCOK实际物理地址,RAM的访问地址为逻辑地址。Plane0和Plane1可用块BLOCK地址分别占各自总BLOCK的90%。备用块占各自Plane BLOCK总数的10%。

图1为基于FPGA的Nand Flash双Plane映射管理的工作流程图。首先会判断是否检测过初始滑块,如果未检测过坏块,则调用初始坏块检测模块读取Nand Flash固有的记录初始坏块信息,根据BLOCK地址写入不同RAM中。

当检测完所有的BLOCK之后,进入等待命令状态。当接收到命令时,根据不同的命令及指定的逻辑地址等信息,主控制模块读取Plane0和Plane1的可用块RAM,并将其内容发送给Nand Flash控制器供其使用。

当执行完相关命令后,读取Nand Flash的状态寄存器,判断上次操作是否成功,如果成功则等待下一个命令。如果失败,则根据备用块使用指针(初始为0)及BLOCK地址查找对应备用块表中的内容,将其更新到对应的可用块RAM中,并发送给Nand Flash控制器,让其进行对应的操作,同时备用块指针地址加1,当备用块指针指向备用块RAM最后时,则认为Nand Flash坏块数目超过预期,Nand Flash不能正常使用。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1