CN117891759A - 一种基于FPGA的高可靠性NAND-Flash控制器及其数据处理方法 - Google Patents
一种基于FPGA的高可靠性NAND-Flash控制器及其数据处理方法 Download PDFInfo
- Publication number
- CN117891759A CN117891759A CN202410292098.6A CN202410292098A CN117891759A CN 117891759 A CN117891759 A CN 117891759A CN 202410292098 A CN202410292098 A CN 202410292098A CN 117891759 A CN117891759 A CN 117891759A
- Authority
- CN
- China
- Prior art keywords
- module
- data
- instruction
- flash
- nand
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims description 7
- 238000000034 method Methods 0.000 claims abstract description 10
- 230000008569 process Effects 0.000 claims abstract description 9
- 238000012795 verification Methods 0.000 claims abstract description 9
- 230000005540 biological transmission Effects 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 14
- 238000012937 correction Methods 0.000 claims description 13
- 230000011218 segmentation Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims description 2
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 claims 5
- 229940044442 onfi Drugs 0.000 claims 5
- 230000005855 radiation Effects 0.000 abstract description 7
- 238000012545 processing Methods 0.000 abstract description 4
- 230000007547 defect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种基于FPGA的高可靠性NAND‑Flash控制器,属于数据处理领域。针对现有技术中托管型Nand‑Flash存在的缺陷,本申请的技术方案中,指令生成模块接收上层模块指令并生成相应命令字缓存到指令FIFO模块;由指令生成模块控制进行ECC校验模块对数据处理,分节分段得到相应校验结果;由指令生成模块控制进行三模校验,对数据进行进一步校验并缓存;由指令生成模块控制GPIO模块,对控制器状态进行判断,并与NAND‑Flash进行数据传输。本申请的技术方案,便于更换满足工程要求的NAND‑Flash,同时还能适应太空中的辐射对Flash存储和控制***造成的影响。
Description
技术领域
本发明涉及一种基于FPGA的高可靠性NAND-Flash控制器及其数据处理方法,属于数据处理设备领域。
背景技术
Nand-flash是大容量掉电非易失存储的首选存储芯片,被广泛应用在服务器、嵌入式众多领域。随着应用需求的改变和技术的发展,Nand-flash芯片又衍生出RAW-Nand-flash芯片和托管型Nand-Flash芯片,Raw-Nand-Flash芯片除了Flash存储单元以外,只包含小规模的控制电路,用于提供ONFI(Open-Nand-Flash-Interface)协议的解析;托管型Nand-Flash芯片包含控制电路和Flash存储单元,控制电路提供UFS、EMMC、QSPI接口,以及数据校验、坏块管理Flash管理功能。由于托管型Nand-Flash接口引脚数少、控制时序简单、不需要进行底层Flash管理,因而受到嵌入式CPU的广泛支持。然而托管型Nand-Flash的控制电路与Flash存储单元是封装到同一基片上的,无法更换Flash存储单元,且出于成本考量,一般采用TLC或者MLC存储单元,这些种类的存储单元在受到辐射照射时,出现多bit错误的概率比SLC存储单元更大,多bit错误较单bit错误相比,纠错算法更加复杂,且有概率无法纠正。
发明内容
本申请提出一种基于FPGA的高可靠性NAND-Flash控制器及其数据处理方法,可以部署于FPGA的NAND-Flash控制器,便于更换满足工程要求的NAND-Flash,同时还能适应太空中的辐射对Flash存储和控制***造成的影响。
为解决上述技术问题,本发明采取的技术方案是,一种基于FPGA的高可靠性NAND-Flash控制器,包括
指令生成模块,接收来自外部模块的命令,然后根据命令的类型和参数,生成相应的命令字;
指令FIFO模块,缓存指令生成模块生成的命令;
接口模块,根据ONFI协议定义的接口,负责控制器与NAND-Flash进行通信;
ECC校验模块,对数据进行错误校验,发现和纠正数据在传输过程中发生的错误;
写数据FIFO模块,缓存待写入NAND-Flash的数据;
读数据FIFO模块,缓存从NAND-Flash读取的数据;
GPIO模块,控制NAND-Flash的GPIO引脚;
AXI接口模块,根据命令字,生成相应的AXI控制信号和数据信号,并通过AXI接口与上层模块进行通信。
优化的,上述基于FPGA的高可靠性NAND-Flash控制器,
指令生成模块接收上层指令并进行指令校验、开启/关闭针对数据的ECC和三模冗余校验,根据闪存状态判断并处理异常情况、将处理后的指令传输到指令FIFO进行缓存。
优化的,上述基于FPGA的高可靠性NAND-Flash控制器,接口模块包括指令广播模块、数据广播模块、三模校验模块、ONFI接口模块;
指令广播模块,在指令FIFO中读取指令并广播到ONFI接口模块,完成指令的传输;
数据广播模块,在写数据FIFO中读取数据并广播到ONFI接口模块,完成写数据的传输;
三模校验模块,对ONFI接口模块的数据进行按位表决,确认数据无误后再存入缓存。
优化的,上述基于FPGA的高可靠性NAND-Flash控制器,ECC校验模块接收数据并对数据进行分节分段,得到相应数据的校验值;
写数据发送至ECC校验模块后,ECC校验模块对数据字段进行分节编码,并控制缓存对数据和校验值进行写入闪存操作;
读数据发送至ECC校验模块后,ECC校验模块再次对数据字段进行分节编码,并与读取的校验码进行比对,进行纠错及错误反馈;
数据确认无误后进入读缓冲FIFO。
优化的,上述基于FPGA的高可靠性NAND-Flash控制器,所述GPIO模块传输中断信号;
当产生中断时,GPIO模块上拉相应引脚电平;
当清除中断时,需要在清零选项寄存器中清零中断并重配置相应寄存器。
优化的,上述基于FPGA的高可靠性NAND-Flash控制器,所述AXI接口模块包括为指令生成模块封装的AXI-Lite接口、为Write FIFO模块和Read FIFO模块封装的AXI-Stream接口,提供对SOC内部总线的连接。
优化的,上述基于FPGA的高可靠性NAND-Flash控制器,通过接口模块与NAND-Flash连接;
基于FPGA的高可靠性NAND-Flash控制器挂载三块NAND-Flash芯片,形成NAND-Flash存储阵列。
优化的,上述基于FPGA的高可靠性NAND-Flash控制器,指令生成模块通过接收上层指令和校验值,并计算校验值进行比对,再通过状态指示对控制器当前状态进行判断和纠正;
在命令和状态无误后,通过选择开启/关闭ECC功能和三模冗余校验功能,来对控制器进行可选配置。
一种基于FPGA的高可靠性NAND-Flash控制器的数据处理方法,包括以下步骤,
1)指令生成模块接收上层模块指令并生成相应命令字缓存到指令FIFO模块;
2)根据命令字进行数据操作,由写数据FIFO模块和读数据FIFO模块对待处理数据进行缓存;
3)由指令生成模块控制进行ECC校验模块对写数据FIFO模块或读数据FIFO模块的数据处理,分节分段得到相应校验结果;
4)由指令生成模块控制进行三模校验,对数据进行进一步校验并缓存;
5)由指令生成模块控制GPIO模块,对控制器状态进行判断;
6)通过接口模块与NAND-Flash进行数据传输;
7)通过AXI接口模块完成模块间和与上层模块的数据传输。
本申请的有益效果为:
为了适应太空中的辐射对Flash存储和控制***造成的影响,采用了ECC(错误校正码)和三模冗余(TMR, Triple Modular Redundancy)对数据进行校验。ECC提供了错误检测和纠正的能力,对于减少由于太空辐射导致的单个或多个位错误(即软错误)特别有效;而TMR提供了额外的硬件层面的容错能力,确保即使一个或两个模块受到辐射损伤,***仍然可以正常工作。这种组合使得NAND-Flash存储***能够抵御太空环境中的辐射引起的瞬态错误和永久性损伤。结合ECC和TMR技术,可以大幅提高NAND-Flash在太空环境中的数据完整性和可靠性。
同时采用标准化AXI接口,提供高性能的通信能力,支持高带宽和低延迟的数据传输,能够快速处理大量数据。AXI接口设计具有良好的兼容性和可扩展性,可以适应不同大小和复杂性的***需求。
附图说明
图1为本发明的顶层模块及其关键数据互联结构示意图;
图2为接口模块(Interface)的内部结构示意图;
图3为接口模块的子模块ONFI模块的内部结构示意图;
图4为ECC模块的内部结构示意图;
图5为ECC模块的子模块ECC-SUB的内部结构示意图;
图6为ECC-SUB的子模块XOR_128bit的内部结构示意图。
具体实施方式
下面结合具体实施例进一步阐述本发明的技术特点。
本发明提供一种基于FPGA的高可靠性NAND-Flash控制器,其主体结构主要包含指令生成模块(Command generator)、指令FIFO模块(Command FIFO)、接口模块(Interface)、ECC校验模块(ECC)、写数据FIFO模块(Write FIFO)、读数据FIFO模块(Read FIFO)、GPIO模块(GPIO)。
可选的,可以为Command generator模块封装AXI-Lite接口、为Write FIFO模块和Read FIFO模块封装AXI-Stream接口,来增强该模块的通用性、提供对SOC内部总线的连接方式。
指令生成模块用来提供整个控制器的控制接口,将控制接口上收到的指令转换为NAND-Flash的指令序列。
指令生成模块预留了外部模块可以访问的寄存器,外部模块通过配置这些寄存器,修改NAND-Flash控制器的运行状态;将顶层指令传递给指令生成模块,指令生成模块根据寄存器中的信息,生成便于接口模块识别和处理的单条或多条指令。除此之外,外部模块还可以根据指令生成模块的状态指示寄存器、正在操作地址寄存器、开始传输/暂停传输寄存器,来获取NAND-Flash控制器的运行状态,根据运行状态在软件层面或者硬件层面进行进一步操作。
指令生成模块对外部的控制接口有:(全部为32bit位宽)
(1) Begin_addr_H,输入对NAND-Flash进行操作的首地址的高位,仅用于数据写入。
(2) Begin_addr_L,输入对NAND-Flash进行操作的首地址的低位,仅用于数据写入。
(3) Addr_len_H,输入对NAND-Flash进行操作的偏移地址的高位,仅用于数据写入。
(4) Addr_len_L,输入对NAND-Flash进行操作的偏移地址的低位,仅用于数据写入。
(5) Function,输入对NAND-Flash进行操作的方式(读页/写页/擦除块/初始化/读状态),仅用于数据写入。
(6) Checksum,输入1~5寄存器的校验值,模块内部对1~5寄存器的值进行校验,再和6寄存器的校验值进行比对,确认指令传输的正确性,仅用于数据写入。
(7) State,状态指示寄存器,指示当前控制器的工作状态,分为正常状态和异常状态,正常状态包括:正常运行、正常运行但读FIFO满、正常运行但写FIFO满。异常状态有:Flash复位失败、指令无法识别、读写Flash时Flash超时无响应、ECC校验遇到不可纠正错误。处于正常状态时,控制器不产生中断信号,且持续工作;处于异常状态时,控制器产生中断,且暂停工作,等待进一步指令,并清除中断。清除中断后,状态指示寄存器会回到正常运行状态,重新判断是否存在异常,仅用于数据读取。
(8) Clr,清零选项寄存器,可以选择清空指令FIFO或者写FIFO或者读FIFO或者ECC中的数据,也可以对整个Flash控制器进行复位,仅用于数据写入。
(9) ECC/三模校验配置寄存器,开启/关闭ECC功能,开启/关闭三模冗余校验功能。关闭三模冗余校验功能后,接口模块所连接的3个NAND-Flash的物理地址将处于同一个连续的地址空间上,存储量比开启三模冗余功能之前扩展3倍,用于数据读取与写入。
(10) Operating_addr_H,正数据广播模块在操作地址寄存器高位。该寄存器显示当前正在操作的数据块在Flash中的首地址的高位,仅用于数据读取。
(11) Operating_addr_L,正在操作地址寄存器低位。该寄存器显示当前正在操作的数据块在Flash中的首地址的低位。最小变化单位为1Kb,仅用于数据读取。
(12) Start,开始传输/暂停传输寄存器,控制传输的开始或暂停,用于数据读取与写入。
指令FIFO模块,负责缓存指令生成模块生成的命令,可以提升指令生成模块的状态机的运行速度。当某些操作需要对Flash芯片多次下达指令时,需要连续下达的指令将缓存在指令FIFO中。
写数据FIFO模块,负责缓存待写入NAND-Flash的数据,要写入FLASH的数据会通过写数据FIFO模块。该FIFO的长度由挂载的Flash的读写速度和外部逻辑模块的数据传输速度来确定。写数据FIFO模块的FIFO位宽为32bit。
读数据FIFO模块,负责缓存从NAND-Flash读取的数据,要读取的FLASH数据会通过读FIFO。该FIFO的长度由挂载的Flash的读写速度和外部逻辑模块的数据传输速度来确定。读数据FIFO模块的FIFO位宽为32bit。
接口模块,内部包含指令广播模块、数据广播模块、三模校验模块、ONFI接口模块。
当开启三模冗余功能时,指令广播模块、数据广播模块、三模校验模块转换为启用状态,为三个ONFI接口模块处理和分发相应的数据。
指令广播模块通过在指令FIFO中读取指令并广播到ONFI接口模块,完成指令的传输。
数据广播模块通过在写数据FIFO中读取数据并广播到ONFI接口模块,完成写数据的传输。
三模校验模块通过对ONFI接口模块的数据进行按位表决,确认数据无误后再存入缓存。
ONFI接口模块将指令和数据按照ONFI协议的时序要求,通过ONFI总线进行发送,完成模块与闪存芯片的通信。
接口模块的具体工作过程包括:
(1) 指令广播模块从指令FIFO中读取指令,复制给3个ONFI接口模块。
(2) 数据广播模块从写数据FIFO中读取数据,复制给ONFI接口模块。
(3) 三模校验模块将来自ONFI接口模块的数据进行按位表决,并输出表决后的数据。
(4) ONFI接口模块,负责将读取的指令和数据按照ONFI接口时序发送给NAND-Flash,以及按照ONFI时序解析NAND-Flash传回的数据。主要功能是与NAND-Flash芯片进行通信,发送命令、地址和数据,并接收响应。支持ONFI协议定义的各种命令,包括读页、写页、擦除、扇区擦除、读状态。主要分为以下几个部分:
① 命令解析:命令解析器负责解析读取的命令,获得指令信息和地址数据,判断NAND-Flash需要执行的操作类型。
② 数据传输:负责接收和传输待写入数据、读取和传输闪存数据。
③ 物理接口:物理接口需要根据ONFI协议定义的接口标准,生成相应的控制信号和数据信号,以便与NAND-Flash进行通信。
ONFI接口模块的实现过程如下:
① 命令解析器首先读取命令寄存器中的命令字,然后根据命令字的格式和功能,解析出指令信息和地址数据。指令信息包括命令类型、地址空间、数据类型,地址数据则是NAND-Flash需要操作的地址。命令解析器还需要判断NAND-Flash需要执行的操作类型。读命令需要执行读取数据操作;写命令需要执行写入数据操作;擦除命令需要执行擦除操作。
② 当需要针对数据进行发送时,由数据传输模块控制将信号通过物理接口传输到NAND-Flash,NAND-Flash芯片将数据写入指定地址;当需要针对数据进行接收时,由数据传输模块接收NAND-Flash通过物理接口传输的数据,并传输回上层模块。
ECC校验模块,负责对发送和接收的数据进行错误校验,发现和纠正数据在传输过程中发生的错误。
对于接收数据的单bit错误,ECC模块对其纠正,之后发送给下一级模块;对于接收数据的多bit错误,ECC模块无法纠正,给指令生成模块发送中断信息,用户可以根据该中断信号,保存发生错误的地址信息,便于应用程序的进一步处理。
对于发送数据,ECC模块仅生成ECC校验码,发送给下一模块。
ECC纠错编码的核心是增加冗余信息,是原始信息的编码之间有足够大的区别。该模块产生1Kb数据的异或校验值,若数据为需要写入Flash的数据,则缓存该校验值,并在当前数据传输完成后再传输校验值;若数据为需要从Flash中读取的数据,则等待接口模块传输校验值,再将产生的校验值和来自Flash中存储的校验值进行比对,若两者不相等,则判断是否为单bit错误,是单bit错误则进行纠正,非单bit错误则无法纠正,产生错误信号给指令控制模块。
ECC校验模块包含2个ECC_Sub模块,1个数据FIFO,1个校验位FIFO,以及1个控制模块。在从Flash读取数据时,控制模块将NAND-Flash一页的数据按照Flash的结构,即每页为2048Byte+64Byte,存储有效数据的前2048Byte送入DataFIFO,紧随其后的ECC校验值存入ECC FIFO,在控制模块的控制下,不断按照1Kb的大小,将数据送入ECC-SUB模块,计算出校验值后,再从ECC FIFO中取出相应数据的校验值,进行比对。ECC-SUB计算出的结果传递给控制模块后,等待控制模块进行比对和发出指令,根据指令进行单bit错误纠正或者不纠正错误,直接发出数据。该模块向Flash写入数据时,控制模块将ECC-SUB模块产生的ECC校验码以及通过ECC-SUB模块的数据分别存入ECC-FIFO和data-FIFO中,当存入FIFO的数据满足写入NAND-Flash 1个page的要求时,控制FIFO依次发送数据。
ECC-SUB模块包含128bit异或模块、10个FIFO模块、data-FIFO模块、ECC-FIFO模块和纠错模块。128bit异或模块可以计算出128bit按位异或的值,只需要16个时钟周期即可校验1Kb数据。10个FIFO模块用于将输入的1Kb数据按照校验位的需求,每个FIFO分别收集能够产生1个ECC校验结果所需的全部数据。data-FIFO模块用来按照原本的顺序保存需要校验的数据,并在校验完成后,将数据按照原先的顺序发送给纠错模块,纠错模块根据纠错指令,按照计数的原理来纠正指定位置的数据。可选的,为了加快处理速度、减少延时,ECC_SUB模块可以包含多个128bit异或模块,并在ECC_FIFO模块前加入排序模块,对来自多个128bit异或模块的校验结果进行排序。128bit异或模块由4个32bit异或模块、4个寄存器和1个4bit异或模块组成,这个结构可以在计算速度和资源消耗之间取得平衡。
GPIO模块,负责产生和消除中断信号,当产生中断时上拉相应引脚电平;当清除中断时需要在清零选项寄存器中清零中断并重配置相应寄存器。
AXI接口模块,负责将指令生成模块的对外寄存器(接口)进行封装,在AXI-Lite接口上为这些寄存器分配连续地址,通过AXI接口与外部模块进行通信;为Write FIFO模块和Read FIFO模块封装AXI-Stream接口,便于标准化通信。
基于上述的基于FPGA的高可靠性NAND-Flash控制器,此实施例还提供一种数据处理方法,包括以下步骤,
1)指令生成模块接收上层模块指令并生成相应命令字缓存到指令FIFO模块;
2)根据命令字进行数据操作,由写数据FIFO模块和读数据FIFO模块对待处理数据进行缓存;
3)由指令生成模块控制进行ECC校验模块对写数据FIFO模块或读数据FIFO模块的数据处理,分节分段得到相应校验结果;
4)由指令生成模块控制进行三模校验,对数据进行进一步校验并缓存;
5)由指令生成模块控制GPIO模块,对控制器状态进行判断;
6)通过接口模块与NAND-Flash进行数据传输;
7)通过AXI接口模块完成模块间和与上层模块的数据传输。
当然,上述说明并非是对本发明的限制,本发明也并不限于上述举例,本技术领域的普通技术人员,在本发明的实质范围内,作出的变化、改型、添加或替换,都应属于本发明的保护范围。
Claims (9)
1.一种基于FPGA的高可靠性NAND-Flash控制器,其特征在于:包括
指令生成模块,接收来自外部模块的命令,然后根据命令的类型和参数,生成相应的命令字;
指令FIFO模块,缓存指令生成模块生成的命令;
接口模块,根据ONFI协议定义的接口,负责控制器与NAND-Flash进行通信;
ECC校验模块,对数据进行错误校验,发现和纠正数据在传输过程中发生的错误;
写数据FIFO模块,缓存待写入NAND-Flash的数据;
读数据FIFO模块,缓存从NAND-Flash读取的数据;
GPIO模块,控制NAND-Flash的GPIO引脚;
AXI接口模块,根据命令字,生成相应的AXI控制信号和数据信号,并通过AXI接口与上层模块进行通信。
2.根据权利要求1所述的基于FPGA的高可靠性NAND-Flash控制器,其特征在于:
指令生成模块接收上层指令并进行指令校验、开启/关闭针对数据的ECC和三模冗余校验,根据闪存状态判断并处理异常情况、将处理后的指令传输到指令FIFO进行缓存。
3.根据权利要求1所述的基于FPGA的高可靠性NAND-Flash控制器,其特征在于:所述接口模块包括指令广播模块、数据广播模块、三模校验模块、ONFI接口模块;
指令广播模块,在指令FIFO中读取指令并广播到ONFI接口模块,完成指令的传输;
数据广播模块,在写数据FIFO中读取数据并广播到ONFI接口模块,完成写数据的传输;
三模校验模块,对ONFI接口模块的数据进行按位表决,确认数据无误后再存入缓存。
4.根据权利要求1所述的基于FPGA的高可靠性NAND-Flash控制器,其特征在于:所述ECC校验模块接收数据并对数据进行分节分段,得到相应数据的校验值;
写数据发送至ECC校验模块后,ECC校验模块对数据字段进行分节编码,并控制缓存对数据和校验值进行写入闪存操作;
读数据发送至ECC校验模块后,ECC校验模块再次对数据字段进行分节编码,并与读取的校验码进行比对,进行纠错及错误反馈;
数据确认无误后进入读缓冲FIFO。
5.根据权利要求1所述的基于FPGA的高可靠性NAND-Flash控制器,其特征在于:
所述GPIO模块传输中断信号;
当产生中断时,GPIO模块上拉相应引脚电平;
当清除中断时,需要在清零选项寄存器中清零中断并重配置相应寄存器。
6.根据权利要求1所述的基于FPGA的高可靠性NAND-Flash控制器,其特征在于:
所述AXI接口模块包括为指令生成模块封装的AXI-Lite接口、为Write FIFO模块和Read FIFO模块封装的AXI-Stream接口,提供对SOC内部总线的连接。
7.根据权利要求1所述的基于FPGA的高可靠性NAND-Flash控制器,其特征在于:通过接口模块与NAND-Flash连接;
基于FPGA的高可靠性NAND-Flash控制器挂载三块NAND-Flash芯片,形成NAND-Flash存储阵列。
8.根据权利要求1所述的基于FPGA的高可靠性NAND-Flash控制器,其特征在于:
指令生成模块通过接收上层指令和校验值,并计算校验值进行比对,再通过状态指示对控制器当前状态进行判断和纠正;
在命令和状态无误后,通过选择开启/关闭ECC功能和三模冗余校验功能,来对控制器进行可选配置。
9.一种如权利要求1至8任一所述的基于FPGA的高可靠性NAND-Flash控制器的数据处理方法,其特征在于:包括以下步骤,
1)指令生成模块接收上层模块指令并生成相应命令字缓存到指令FIFO模块;
2)根据命令字进行数据操作,由写数据FIFO模块和读数据FIFO模块对待处理数据进行缓存;
3)由指令生成模块控制进行ECC校验模块对写数据FIFO模块或读数据FIFO模块的数据处理,分节分段得到相应校验结果;
4)由指令生成模块控制进行三模校验,对数据进行进一步校验并缓存;
5)由指令生成模块控制GPIO模块,对控制器状态进行判断;
6)通过接口模块与NAND-Flash进行数据传输;
7)通过AXI接口模块完成模块间和与上层模块的数据传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410292098.6A CN117891759B (zh) | 2024-03-14 | 2024-03-14 | 一种基于FPGA的高可靠性NAND-Flash控制器及其数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410292098.6A CN117891759B (zh) | 2024-03-14 | 2024-03-14 | 一种基于FPGA的高可靠性NAND-Flash控制器及其数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117891759A true CN117891759A (zh) | 2024-04-16 |
CN117891759B CN117891759B (zh) | 2024-07-02 |
Family
ID=90650932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410292098.6A Active CN117891759B (zh) | 2024-03-14 | 2024-03-14 | 一种基于FPGA的高可靠性NAND-Flash控制器及其数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117891759B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105931670A (zh) * | 2016-04-22 | 2016-09-07 | 西安电子科技大学 | 基于Nand Flash存储器阵列的存储控制装置 |
CN112000595A (zh) * | 2020-07-06 | 2020-11-27 | 西安电子科技大学 | 一种阵列通道控制***、方法、控制器、存储介质及应用 |
-
2024
- 2024-03-14 CN CN202410292098.6A patent/CN117891759B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105931670A (zh) * | 2016-04-22 | 2016-09-07 | 西安电子科技大学 | 基于Nand Flash存储器阵列的存储控制装置 |
CN112000595A (zh) * | 2020-07-06 | 2020-11-27 | 西安电子科技大学 | 一种阵列通道控制***、方法、控制器、存储介质及应用 |
Non-Patent Citations (2)
Title |
---|
朱晓燕 等: "一种高可靠大容量星载存储器的设计与研究", 微电子学与计算机, vol. 29, no. 6, 5 June 2012 (2012-06-05), pages 62 * |
龚有华 等: "基于Zynq的NAND Flash存储***研制", 电子测量技术, vol. 37, no. 12, 15 December 2014 (2014-12-15), pages 53 - 57 * |
Also Published As
Publication number | Publication date |
---|---|
CN117891759B (zh) | 2024-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4475194A (en) | Dynamic replacement of defective memory words | |
US9811273B1 (en) | System and method for reliable high-speed data transfer in multiple data rate nonvolatile memory | |
US20040255225A1 (en) | Control circuit for error checking and correction and memory controller | |
US20020013924A1 (en) | Semiconductor memory device having ECC type error recovery circuit | |
JP5506908B2 (ja) | 集積回路における故障耐性 | |
CN101395583B (zh) | 具有存储着包含附加数据在内的页面的存储矩阵的电子电路 | |
CN112181304B (zh) | 一种星载NAND Flash存储管理*** | |
US6237116B1 (en) | Testing error correcting code feature in computers that do not have direct hardware features for causing single bit and multi-bit errors | |
CN115729746A (zh) | 一种基于crc和ecc存储数据保护方法 | |
US20110219266A1 (en) | System and Method of Testing an Error Correction Module | |
CN107807902B (zh) | 一种抗单粒子效应的fpga动态重构控制器 | |
US8489978B2 (en) | Error detection | |
CN111913668B (zh) | 一种ip复用下检纠查存储器数据准确性的方法 | |
CN117891759B (zh) | 一种基于FPGA的高可靠性NAND-Flash控制器及其数据处理方法 | |
CN117289871A (zh) | 一种基于fpga实现的raid存储***及方法 | |
CN111048142B (zh) | 应用于闪存控制器的编码器自我测试电路及相关的方法 | |
CN112068985A (zh) | 带编程指令识别的norflash存储器ecc检纠错方法及*** | |
US9043655B2 (en) | Apparatus and control method | |
CN113380294A (zh) | Fpga配置flash芯片抗单粒子翻转电路及方法 | |
JPH01171047A (ja) | メモリ素子のチップ交替制御装置 | |
US7275199B2 (en) | Method and apparatus for a modified parity check | |
CN116361061B (zh) | 一种多级数据校验的星载存储*** | |
KR101147357B1 (ko) | 반도체 메모리 장치 | |
US11609813B2 (en) | Memory system for selecting counter-error operation through error analysis and data process system including the same | |
CN117632579B (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 | ||
GR01 | Patent grant |