CN109710546A - 一种基于现场可编程门阵列的多片闪存控制器 - Google Patents
一种基于现场可编程门阵列的多片闪存控制器 Download PDFInfo
- Publication number
- CN109710546A CN109710546A CN201811522661.5A CN201811522661A CN109710546A CN 109710546 A CN109710546 A CN 109710546A CN 201811522661 A CN201811522661 A CN 201811522661A CN 109710546 A CN109710546 A CN 109710546A
- Authority
- CN
- China
- Prior art keywords
- programmable gate
- gate array
- field programmable
- module
- nonvolatile memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种基于现场可编程门阵列的多片闪存控制器,包括:现场可编程门阵列和至少一片非易失性存储器;所述现场可编程门阵列上设置有闪存接口;所述现场可编程门阵列采用每个片选开关通过所述闪存接口分别与每片所述非易失性存储器连接。本发明利用一片FPGA(Field‑Programmable Gate,现场可编程门阵列)完成对多片nandflash的读写和擦除操作,接口简单友好,在扩展nandflash数量时,增加一片nandflash,FPGA和nandflash的连接引脚只增加一根CE片选,无需增加其它芯片,降低了生产成本。
Description
技术领域
本发明属于非易失性存储器技术领域,尤其涉及一种基于现场可编程门阵列的多片闪存控制器。
背景技术
随着计算机技术和云计算的高速发展,非易失存储设备的需求量越来越大。随着MLC(Multi-Level Cell,多层单元闪存),TLC(Trinary-Level Cell,3bit/cell)工艺的成熟,nandflash(非易失性存储器)的存储密度显著增加,单位价格显著降低,已经成为最为常用的大容量非易失存储设备。随着计算机技术和云计算的高速发展,非易失存储设备的需求量越来越大。
目前常用的非易失存储设备不能支持操作多片非易失性存储器,或者是需要通过增加DDR3芯片,造成成本的增加。
发明内容
本发明的技术解决问题:本发明实施例提供了一种基于现场可编程门阵列的多片闪存控制器,利用一片FPGA(Field-Programmable Gate,现场可编程门阵列)完成对多片nandflash的读写和擦除操作,接口简单友好,在扩展nandflash数量时,增加一片nandflash,FPGA和nandflash的连接引脚只增加一根CE片选。
为了解决上述技术问题,本发明实施例是这样实现的:
第一方面,本发明实施例提供了一种基于现场可编程门阵列的多片闪存控制器,包括:现场可编程门阵列和至少一片非易失性存储器;所述现场可编程门阵列上设置有闪存接口;所述现场可编程门阵列采用每个片选开关通过所述闪存接口分别与每片所述非易失性存储器连接。
优选地,所述现场可编程门阵列包括编码模块和解码模块,所述现场可编程门阵列上还设置有用户接口,所述编码模块被配置为通过所述用户接口接收用户输入的写操作,生成所述写操作对应的写数据的校验数据;所述解码模块被配置为通过所述用户接口接收用户输入的读操作,根据所述校验数据对所述读操作对应的读数据进行纠错。
优选地,所述现场可编程门阵列还包括缓存模块,所述缓存模块被配置为调用所述现场可编程门阵列内部的块随机存取存储器,在所述用户读写数据时完成对数据的缓存。
优选地,所述现场可编程门阵列还包括主控模块,所述主控模块被配置为完成从所述用户接口到各所述闪存接口的转换。
优选地,所述现场可编程门阵列还包括坏块管理模块,所述坏块管理模块被配置为在初始化时,将各所述非易失性存储器中的所有坏块添加坏块标记,并按照各所述坏块的地址将各所述坏块写入坏块表,在各所述非易失性存储器的操作工程中,根据新生成的坏块地址更新所述坏块表和所述坏块标记。
优选地,所述控制器通过所述用户接口完成外部时钟、复位输入、控制命令输入,及缓存数据的输入和输出。
优选地,所述控制器通过所述闪存接口完成所述现场可编程门阵列对各片所述非易失性存储器的读写操作和擦除操作。
优选地,所述编码模块为BCH编码模块,所述解码模块为BCH解码模块。
优选地,所述缓存模块为随机存取存储器缓存模块。
本发明具有以下优点:
本发明实施例公开了一种基于现场可编程门阵列的多片闪存控制器,包括现场可编程门阵列和至少一片非易失性存储器,在现场可编程门阵列上设置有闪存接口,现场可编程门阵列采用每个片选开关通过闪存接口分别与每片非易失性存储器连接,本发明实施例中,利用一片FPGA(Field-Programmable Gate,现场可编程门阵列)完成对多片nandflash的读写和擦除操作,接口简单友好,在扩展nandflash数量时,增加一片nandflash,FPGA和nandflash的连接引脚只增加一根CE片选,无需增加其它芯片,降低了生产成本。
附图说明
图1示出了本发明实施例提供的一种控制器的结构示意图;
图2示出了本发明实施例提供的一种现场可编程门阵列的结构示意图;
图3示出了本发明实施例提供的一种现场可编程门阵列操作流程的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明公开的实施方式作进一步详细描述。
实施例一
参照图1,示出了本发明实施例提供的一种控制器的结构示意图。
如图1所示,控制器100可以包括现场可编程门阵列101(Field-ProgrammableGate Array,FPGA)、非易失性存储器1、…、非易失性存储器n,其中,n为大于等于1的正整数。
在FPGA101上可以预先设置有闪存接口(图中未示出),FPGA101可以采用每个片选开关通过闪存接口与每片非易失性存储器(1、…、n中的任一个)连接,也即每个片选开关将一片非易失性存储器与FPGA101连接。
本发明实施例通过利用一片FPGA即可完成对多片非易失性存储器的读写和擦除操作,接口简单友好,在扩展非易失性存储器的数量时,增加一片非易失性存储器,FPGA和非易失性存储的连接引脚只增加一个片选开关即可,无需增加其它芯片设备,降低了生产成本。
接下来,结合附图对本发明实施例中的FPGA进行详细描述。参照图2,示出了本发明实施例提供的一种现场可编程门阵列的结构示意图,如图2所示,FPGA101可以包括编码模块1011和解码模块1012,FPGA101上还设置有用户接口(图中未示出)。
编码模块1011可以通过用户接口接收用户输入的写操作,并生成写操作对应的写数据的校验数据。
解码模块1012可以通过用户接口接收用户输入的读操作,根据上述得到的校验数据对读操作对应的读数据进行纠错处理。
本发明通过编码模块1011和解码模块1012增加了ECC(Error Correcting Cod,错误检查和纠正)纠错功能,可以对用户的读写数据进行实时纠错。
在本发明中,编码模块和解码模块分别可以为BCH编码模块和BCH解码模块,当然,在实际操作中,还可以采用其它型号的编码模块和解码模块,本发明实施例对此不加以限制。
FPGA101还可以包括缓存模块1013,缓存模块1013可以被配置为调用现FPGA101内部的块随机存取存储器(random access memory,ram),在用户读写数据时完成对数据的缓存操作。
当然,缓存模块1013可以为ram缓存模块,当然,在具体实现中,还可以为其它形式的缓存模块,本发明实施例对此不加以限制。
FPGA101还可以包括主控模块1014,主控模块1014可以被配置为完成从用户接口到各闪存接口的转换,即在用户完成读写操作之后,从用户接口切换至闪存接口,以实现对各非易失性存储器的读写及擦除操作。
在本发明实施例的另一种优选实施例中,FPGA101还可以包括坏块管理模块1015,坏块管理模块1015可以被配置为在初始化时,将各非易失性存储器中的所有坏块添加坏块标记,并按照各坏块的地址将各坏块写入坏块表,在各非易失性存储器的操作过程中,根据新生成的坏块地址更新坏块表和坏块标记。
控制器100还可以通过用户接口外部时钟、复位输入、控制命令输入,及缓存数据的输入和输出。并可以通过闪存接口完成FPGA101对各片非易失性存储器的读写操作和擦除操作。
下面以连接三片nandflash为例,每片nandflash有8192个block,每个block有256个page,每个page有8192个字节(不含校验字节位),结合附图,对本发明的具体实施方式进行详细描述。
如图2所示,FPGA101内部主要含有主控模块1014,坏块管理模块1015,编码模块1011,解码模块1012,缓存模块1013,其中主控模块1014、坏块管理模块1015、编码模块1011、解码模块1012由硬件描述语言编码完成,由缓存模块1013调用FPGA101内部blockRAM完成。
每片nandflash的CE片选引脚单独连接到FPGA的通用IO口,所有nandflash的R/B,ALE,CLE,RE,WE,DQx引脚共用FPGA通用IO口。这样可以在扩展nandflash时最大限度减少FPGA通用IO口的使用。FPGA的用户接口简单友好,可扩展性强。所有接口信号列表如下:
接下来,结合附图对本发明实施例提供的控制器的上电流程进行如下详细描述。
参照图3,示出了本发明实施例提供的一种现场可编程门阵列操作流程的示意图,如图3所示,具体执行流程如下:
1、上电后,nandflash控制器开始初始化,初始化的内容包括:对每一片nandflash进行复位和设置时间模式,读出每个block的坏块标志并存入FPGA的坏块表,当ready为1时,初始化完成;
2、初始化完成后,等待接收用户command命令,0为写,1为读,2为擦除;
3、当用户需要写入数据时,先将8192字节的数据写入RAM缓存,再将command置0,输入block地址和page地址,发送start启动信号,nandflash控制器会先将ready置0,然后将RAM缓存中的数据写入nandflash。等待ready为1时,写操作完成,判断error的状态,如果error为0,写操作成功,反之写操作失败,可根据error的状态确定下一步操作;
4、当用户需要从nandflash读出数据时,先将command置1,输入block地址和page地址,然后发送start启动信号,nandflash控制器会先将ready置0,然后从对应的nandflash地址中读出8192字节的数据并存入RAM缓存,等待ready为1时,读操作完成,判断error状态,如果error为0,读操作成功,用户可以从RAM缓存中读出数据,如果error不为0,读操作失败,可根据error的状态确定下一步操作;
5、当用户需要擦除数据时,先将command置2,输入block地址,然后发送start启动信号,nandflash控制器会先将ready置0,然后擦除对应的block,等待ready为1时,擦除操作完成,判断error状态,如果error为0,写操作成功,反之写操作失败,可根据error的状态确定下一步操作。
本发明实施例提供的基于现场可编程门阵列的多片闪存控制器,包括现场可编程门阵列和至少一片非易失性存储器,在现场可编程门阵列上设置有闪存接口,现场可编程门阵列采用每个片选开关通过闪存接口分别与每片非易失性存储器连接,本发明实施例中,利用一片FPGA(Field-Programmable Gate,现场可编程门阵列)完成对多片nandflash的读写和擦除操作,接口简单友好,在扩展nandflash数量时,增加一片nandflash,FPGA和nandflash的连接引脚只增加一根CE片选,无需增加其它芯片,降低了生产成本。
本说明中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (9)
1.一种基于现场可编程门阵列的多片闪存控制器,其特征在于,包括:现场可编程门阵列和至少一片非易失性存储器;
所述现场可编程门阵列上设置有闪存接口;所述现场可编程门阵列采用每个片选开关通过所述闪存接口分别与每片所述非易失性存储器连接。
2.根据权利要求1所述的控制器,其特征在于,所述现场可编程门阵列包括编码模块和解码模块,所述现场可编程门阵列上还设置有用户接口,
所述编码模块被配置为通过所述用户接口接收用户输入的写操作,生成所述写操作对应的写数据的校验数据;
所述解码模块被配置为通过所述用户接口接收用户输入的读操作,根据所述校验数据对所述读操作对应的读数据进行纠错。
3.根据权利要求2所述的控制器,其特征在于,所述现场可编程门阵列还包括缓存模块,
所述缓存模块被配置为调用所述现场可编程门阵列内部的块随机存取存储器,在所述用户读写数据时完成对数据的缓存。
4.根据权利要求3所述的控制器,其特征在于,所述现场可编程门阵列还包括主控模块,
所述主控模块被配置为完成从所述用户接口到各所述闪存接口的转换。
5.根据权利要求1所述的控制器,其特征在于,所述现场可编程门阵列还包括坏块管理模块,
所述坏块管理模块被配置为在初始化时,将各所述非易失性存储器中的所有坏块添加坏块标记,并按照各所述坏块的地址将各所述坏块写入坏块表,在各所述非易失性存储器的操作工程中,根据新生成的坏块地址更新所述坏块表和所述坏块标记。
6.根据权利要求2所述的控制器,其特征在于,所述控制器通过所述用户接口完成外部时钟、复位输入、控制命令输入,及缓存数据的输入和输出。
7.根据权利要求1所述的控制器,其特征在于,所述控制器通过所述闪存接口完成所述现场可编程门阵列对各片所述非易失性存储器的读写操作和擦除操作。
8.根据权利要求2所述的控制器,其特征在于,所述编码模块为BCH编码模块,所述解码模块为BCH解码模块。
9.根据权利要求3所述的控制器,其特征在于,所述缓存模块为随机存取存储器缓存模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811522661.5A CN109710546A (zh) | 2018-12-13 | 2018-12-13 | 一种基于现场可编程门阵列的多片闪存控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811522661.5A CN109710546A (zh) | 2018-12-13 | 2018-12-13 | 一种基于现场可编程门阵列的多片闪存控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109710546A true CN109710546A (zh) | 2019-05-03 |
Family
ID=66256258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811522661.5A Pending CN109710546A (zh) | 2018-12-13 | 2018-12-13 | 一种基于现场可编程门阵列的多片闪存控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710546A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459874A (zh) * | 2020-04-02 | 2020-07-28 | 京微齐力(北京)科技有限公司 | 一种现场可编程门阵列配置闪存的复用方法 |
CN112331252A (zh) * | 2020-12-14 | 2021-02-05 | 深圳市芯天下技术有限公司 | Nand闪存自动坏块标记方法、装置、存储介质和终端 |
CN115658570A (zh) * | 2022-12-14 | 2023-01-31 | 杰创智能科技股份有限公司 | 闪存编程方法和闪存接口电路 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1397891A (zh) * | 2002-08-30 | 2003-02-19 | 清华大学 | 现场可编程门阵列程序在线升级***及其实现方法 |
CN201465566U (zh) * | 2009-07-10 | 2010-05-12 | 北京国科环宇空间技术有限公司 | 一种数据存储装置 |
CN102012791A (zh) * | 2010-10-15 | 2011-04-13 | 中国人民解放军国防科学技术大学 | 基于Flash的数据存储PCIE板卡 |
CN104268095A (zh) * | 2014-09-24 | 2015-01-07 | 上海新储集成电路有限公司 | 一种存储器及基于该存储器进行数据读/写操作的方法 |
CN108932204A (zh) * | 2018-06-13 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种多通道闪存存储*** |
-
2018
- 2018-12-13 CN CN201811522661.5A patent/CN109710546A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1397891A (zh) * | 2002-08-30 | 2003-02-19 | 清华大学 | 现场可编程门阵列程序在线升级***及其实现方法 |
CN201465566U (zh) * | 2009-07-10 | 2010-05-12 | 北京国科环宇空间技术有限公司 | 一种数据存储装置 |
CN102012791A (zh) * | 2010-10-15 | 2011-04-13 | 中国人民解放军国防科学技术大学 | 基于Flash的数据存储PCIE板卡 |
CN104268095A (zh) * | 2014-09-24 | 2015-01-07 | 上海新储集成电路有限公司 | 一种存储器及基于该存储器进行数据读/写操作的方法 |
CN108932204A (zh) * | 2018-06-13 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种多通道闪存存储*** |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459874A (zh) * | 2020-04-02 | 2020-07-28 | 京微齐力(北京)科技有限公司 | 一种现场可编程门阵列配置闪存的复用方法 |
CN112331252A (zh) * | 2020-12-14 | 2021-02-05 | 深圳市芯天下技术有限公司 | Nand闪存自动坏块标记方法、装置、存储介质和终端 |
CN115658570A (zh) * | 2022-12-14 | 2023-01-31 | 杰创智能科技股份有限公司 | 闪存编程方法和闪存接口电路 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8386699B2 (en) | Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same | |
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
US11056198B2 (en) | Read disturb scan consolidation | |
CN102132354B (zh) | 闪存中的数据的快速低功率读取 | |
US8904086B2 (en) | Flash memory storage system and controller and data writing method thereof | |
US20080172521A1 (en) | Memory System Determining Storage Mode According to Host Provided Data Information | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US8732385B2 (en) | Non-volatile memory, controller controlling next access | |
US8850102B2 (en) | Flash memory with small data programming capability | |
US20170052734A1 (en) | Method and device for fail-safe erase of flash memory | |
US11733895B2 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN109710546A (zh) | 一种基于现场可编程门阵列的多片闪存控制器 | |
US9122583B2 (en) | Memory controller and memory storage device and data writing method | |
US9892793B1 (en) | Systems and methods for programming data to storage devices | |
US9804983B2 (en) | Controlling method, connector, and memory storage device | |
US9378130B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
CN113066519B (zh) | 存储器子***自测操作 | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
CN103226977B (zh) | 基于fpga的快速nand flash控制器及其控制方法 | |
US11748011B2 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
US9778864B2 (en) | Data storage device using non-sequential segment access and operating method thereof | |
CN114981784A (zh) | 用于控制数据储存装置之方法及相关闪存控制器 | |
CN112860182A (zh) | 用于写回合并的位屏蔽有效扇区 | |
CN101751982B (zh) | 闪存存储装置中闪存控制器与闪存芯片之间的连接方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190503 |
|
RJ01 | Rejection of invention patent application after publication |