CN105405465B - 数据存储及处理电路 - Google Patents
数据存储及处理电路 Download PDFInfo
- Publication number
- CN105405465B CN105405465B CN201511007611.XA CN201511007611A CN105405465B CN 105405465 B CN105405465 B CN 105405465B CN 201511007611 A CN201511007611 A CN 201511007611A CN 105405465 B CN105405465 B CN 105405465B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- flash memory
- storage
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
- G11C16/225—Preventing erasure, programming or reading when power supply voltages are outside the required ranges
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明的数据存储及处理电路属恶劣条件下的存储测试技术领域,是避免采集存储电路突发掉电时丢失NAND闪存缓冲RAM中未完成编程写入并存储的数据和FIFO缓存器中数据,利用铁电存储器同步循环存储采集数据,掉电时完整保存那些丢失数据,将铁电存储器中的数据通过处理融合到闪存记录的数据后面,补足掉电时丢失的那些数据;在NAND闪存存储器记录满之前能实现多次断电后再重新上电继续存储数据到NAND闪存存储器至满,并补足每次断电前采集的数据;该电路优点有:解决了突发掉电采集数据完整记录的问题,具备多次突发掉电重启续存功能,可在原有存储电路基础上方便扩展,这种数据存储及处理电路值得采用和推广。
Description
技术领域
本发明公开的数据存储及处理电路属存储测试技术领域,具体涉及的是一种能避免采集存储电路突发掉电时丢失NAND闪存缓冲RAM中数据和FPGA内部用于闪存写入数据的FIFO缓存器中数据的数据存储及处理电路,该电路适用于采用NAND存储器为主要存储介质的记录仪,对电源突发掉电后要求完整记录输入数据的仪器和场合迫切需要。
背景技术
随着固态记录仪的迅速发展,在航天、军工及民用等各个领域均有其身影,特别是在航天、军事领域,记录仪的作用显得尤为重要。NAND闪存存储器具有存储密度高,读写速度快等特点,但目前NAND结构的闪存存储器内部有一个RAM缓存空间,写入闪存的数据首先写入缓存RAM中,其后执行闪存编程指令将缓存RAM中数据写入非易失性存储介质中,而写入非易失性存储介质需要一定的时间才能保证数据可靠写入。多片闪存存储结构中有n(n=1,2,3…16的自然数)片NAND闪存存储器,将数据写满第1片闪存存储器的RAM后,同时立即切换数据写入到第2片闪存存储器的RAM中,对第1片闪存编程将RAM数据写入非易失性存储介质中,当数据写满第2片闪存存储器的RAM后,数据立即切换写入下一片,再对第2片闪存存储器编程,按前述过程重复,直到写满第n片闪存存储器的RAM后,将数据切换到第1片闪存存储器,以此循环进行数据写入。因此,写入闪存存储器缓存RAM中的数据在未完全编程写入非易失性存储介质前,记录仪掉电就会丢失闪存RAM中未完全编程写入非易失性存储单元的数据。作为输入数据和闪存存储器写之间的FIFO缓存器一样会在掉电时丢失数据。铁电存储器虽具有像RAM一样数据高速写入和掉电不丢失的特性,但其容量十分有限而不能满足大容量存储使用要求。用于混凝土或钢板侵彻测试加速度的记录仪,以及弹载黑匣子常常需要高速的大容量数据存储,其着地冲击或爆炸冲击过程中电池或外部电源是最薄弱的环节,在高加速度冲击过程中出现瞬间掉电或永久失效,而掉电前采集的数据还未完成写入闪存的非易失性存储介质中,而这些数据往往是十分关键的。故在电池掉电后,如何获取还未能写入非易失性存储介质的数据已经成为一项亟待解决的课题。本发明的数据存储及处理电路研制成功就完全解决了采集存储电路突发掉电时丢失NAND闪存中缓冲RAM中数据和FPGA内部用于闪存数据写入的FIFO缓存器中数据的问题,将对航天、军工及民用等各个领域提供性能优良、实用可靠的固态记录仪。
发明内容
本发明的目的是:向社会提供这种数据存储及处理电路,该电路的研制成功就解决了采集存储电路突发掉电时丢失闪存存储器中数据的问题。
本发明的技术方案是这样的:这种数据存储及处理电路,是避免采集存储电路突发掉电时丢失NAND闪存缓冲RAM中数据和FPGA内部用于闪存写入数据的FIFO缓存器中数据的数据存储及处理电路,技术特点在于:所述的数据存储及处理电路在FPGA的控制下,铁电存储器同步循环存储与写入闪存存储通道中一样的数据,掉电时NAND闪存丢失其RAM中未完成编程写入并存储的数据,同时FPGA内部丢失FIFO中缓存的部分采集数据,而铁电存储器中正好完整保存了这些丢失数据,读取存储在数据存储及处理电路中的数据后,将铁电存储器中的数据通过处理融合到闪存记录的数据后面,补足采集数据在掉电时丢失的那些数据,在NAND闪存存储器记录满之前实现多次断电后均能补足每次断电前的采集数据并重新上电继续存储数据。所述的NAND闪存是“与非”结构的闪存名称,所述的RAM是随机存取存储器,所述的FPGA是现场可编程门阵列,所述的FIFO是先进先出缓存器。所述的铁电存储器的写、读操作完全独立于NAND闪存存储器的写、读、擦除操作,通过增加FPGA内部的控制逻辑单元,在外部连接一片铁电存储器即可在原有的电路基础上方便实现。
根据以上所述的数据存储及处理电路,技术特点还有:所述的数据存储及处理电路由FPGA作控制器,1片铁电存储器和若干片NAND闪存存储器和FPGA内部FIFO缓存存储器共同组成,所述的若干片包括有n片NAND闪存存储器,其中n选择为1、或2、或3、…、或16的自然整数。所述的1片铁电存储器存储量>n片NAND闪存存储器中RAM的容量+FPGA内部FIFO缓存存储器之总存储量。
根据以上所述的数据存储及处理电路,技术特点还有:a.所述的铁电存储器总容量为T,总容量T包括:按地址分成a个循环存储地址单元与剩余地址空间,所述的剩余地址空间有b个字节的、并构成与a个循环存储地址单元对等个数的、电路掉电重启时NAND闪存存储器起始地址的存储单元,其中除a、b之外还有剩余地址空间,所述的铁电存储器总容量T为a个循环存储地址单元+b地址字节数+剩余地址空间,a选择为1、或2、或3、…、或8的自然整数,b为地址单元数a乘以n片NAND闪存存储器的地址字节数,b中每连续n片NAND闪存存储器的地址字节数与铁电存储器存储地址单元a中一个循环存储地址单元对应,铁电存储器中每个循环存储地址单元的容量为k,k大于或等于n片NAND闪存中RAM容量和FPGA内部的FIFO缓存器容量的总和,各个存储器有独立控制总线结构,铁电存储器的控制总线与闪存、FIFO缓存的存储器控制总线相互独立,但都共用输入数据总线和读数据总线,铁电存储器与闪存写入数据的FIFO缓存存储器同步进行数据存储,铁电存储器循环将数据写入存储地址空间内,各类存储器分时独立进行数据读取。b.所述的数据存储及处理电路上电开始存储前,FPGA读取铁电存储器最后的b个字节数据,判断对应单元的值是否为非零,如为非零则该铁电存储器存储地址单元a已经存储满,如果为零,说明铁电存储器存储地址单元a未存储满,找出存储过数据的最大地址单元ax,当判断NAND闪存存储器未存满时,FPGA查找n片NAND闪存写入最后一页数据的地址并加1后将其存储到对应bx+1的地址中,数据循环写入铁电存储器的ax+1地址空间内,NAND闪存存储器在上一次存储数据地址后继续存储数据直到存储满整个地址空间,其中有:a≥x。c.所述的数据存储及处理电路掉电时,NAND闪存存储器丢失闪存RAM中未完成编程写入并存储的数据及FPGA内部的FIFO缓存存储器丢失的部分采集数据,而铁电存储器中正好完整保存了这些丢失的数据。这样就可以进行或实现丢失的部分采集数据的恢复工作。d.FPGA通过总线切换先读完NAND闪存存储器中存储的数据,再通过指令切换总线读取铁电存储器中存储的数据,铁电存储器存储的数据与闪存存储器存储的数据进行比较确定数据的匹配点,将两者数据融合从而获得掉电前采集的完整数据,避免了采用NAND闪存存储器及FIFO缓存器在掉电时丢失的数据。
根据以上所述的数据存储及处理电路,技术特点还有:a.所述的数据存储及处理电路掉电后,首先读取铁电存储器存储最后的b个字节数据构成数组TAc(b),根据TAc(b)找出写过数据的铁电存储器地址单元的数据构成c个数组TDc(k)和NAND闪存存储器每次突发掉电前写入的最后一页数据构成c个数组SCc(nR),其中:c为铁电存储器在NAND闪存存储器存满前上电的次数,c<a,所述的c选取1、或2、…、a之整数,k为铁电存储器一个循环存储地址单元数据的容量,R为一片NAND闪存存储器中RAM的容量。b.将数组TDc(k)的数据融合到数组SCc(nR)后面,j从1开始每次加1直到c,所述的j选取1、或2、…、c之整数,分别对每次上电做融合计算,选定m=nR,从TDc(k)中选定TDj(k)数组,其中:选取1≤i≤k,即选取i=1、或2、…、k之整数,从i起始连续选定m个字节,当i+m<k时,TDj中选定的数组TD_X(m)为TDj(i)、TDj(i+1)…、TDj(m+i-1);当i+m>k时,TDj中选定的数组TD_X(m)为TDj(i)、…、TDj(k)、TDj(1)、…、TDj(m+i-k-1),与SCj(nR-m+1)、SCj(nR-m+2)、…、SCj(nR)的数据按顺序一一对应进行比较,i从1开始每次加1顺次比较,当i=k还未完全匹配,就将上一次选定m减去R,直到m=R为止。c.当对应数据完全相同时,记录下两者相等时刻的i值并停止搜索,当i+m<k时,将TDj(m+i+1)、TDj(m+i+2)、…、TDj(k)、TDj(1)、…、TDj(i-1)的数据融合添加到闪存数据SCj(nR)的后面,当i+m>k时,将TDj(m+i-k)、TDj(m+i-k+1)…、TDj(k)、…、TDj(1)、…、TDj(i-1)融合添加到闪存数据SCj(nR)的后面,完整补足丢失的采集数据。
根据以上所述的数据存储及处理电路,技术特点还有:所述的NAND闪存存储器和铁电存储器均是非易失性存储介质的存储器。所述的非易失性存储介质的存储器为三星公司的K9F1G08、K9F2G08、K9F4G08、K9k8G08,micron公司的MT29F1G08、MT29F16G、MT29F32G等构成,铁电存储器为Ramtron公司的FM25L16、FM1608、FM18L08、FM20L08、FM22L16,富士的MB85R256、MB85R1002、MB85R2001等构成。
本发明的数据存储及处理电路的优点有:1.有效解决了突发掉电时丢失NAND闪存存储器内部RAM中未编程数据和用于NAND闪存存储器写的数据缓冲FIFO存储器中数据的问题,可实现大容量记录仪完整存储掉电前采集的所有数据;2.具备在NAND存储器记录满之前多次断电重启续存功能;3.可方便的在原有存储电路FPGA外部扩展铁电存储器,FPGA内部增加控制逻辑来实现,具备易扩展特性。这种数据存储及处理电路值得采用和推广。
附图说明
本发明的说明书附图共有4幅:
图1是数据存储及处理电路的结构框图。
图2数据读取及融合主流程图;
图3数据融合子流程图;
图4数据匹配及匹配数据子流程图。
在各图中采用了统一标号,即同一物件在各图中用同一标号。在各图中:1.同步数据;2.格式变换;3.输入数据总线;4.写缓冲器;5.铁电数据总线;6.铁电存储器;7.读缓冲器;8.铁电存储器读写控制及地址总线;9.铁电存储器读写控制及地址发生器;10.铁电存储器读数据控制总线;11.通信接口;12.记录仪数据总线;13.FPGA;14.闪存读写控制总线;15.闪存n的控制及数据总线;16.闪存n;17.闪存控制及FIFO缓存器;18.闪存2的控制及数据总线;19.闪存2;20.闪存1;21.闪存1的控制及数据总线;22.闪存数据总线;23.闪存数据缓冲器;24.开始;25.初始化;26.读取铁电存储器中的NAND闪存存储器上电起始记录地址;27.读取铁电存储器中c组数据TDc(k);28.读取NAND闪存储器中c组数据并将每片闪存最后一页数据组成SCc(nR);29.数据融合;30.结束;31.开始;32.执行j=1语句;33.执行m=nR语句;34.执行m=m-R语句;35.判断m=0语句;36.数据匹配;37.找到匹配点;38.判断j>c;39.j=j+1;40.匹配数据;41.结束;42.开始;43.执行i=1语句;44.判断i+m<k语句;45.执行TD_X=TDj(i)、TDj(i+1)…、TDj(m+i-1),SC=SCj(nR-m+1)、SCj(nR-m+2)、…、SCj(nR)语句;46.判断TD_X=SC语句;47.执行i=i+1语句;48.判断i>k语句;49.结束;50.将数据TDj(m+i)、TDj(m+i+1)、...、TDj(k)、TDj(1)、...、TDj(i-1)融合到SCj(nR)的后面;51.将数据TDj(m+i)、TDj(m+i+1)、...、TDj(k)、TDj(1)、...、TDj(i-1)融合到SCj(nR)的后面;52.判断TD_X=SC语句;53.执行TD_X(m)=TDj(i)、…、TDj(k)、TDj(1)、…、TDj(m+i-k-1),SC=SCj(nR-m+1)、SCj(nR-m+2)、…、SCj(nR)语句。
具体实施方式
本发明的数据存储及处理电路非限定实施例如下:
实施例一.数据存储及处理电路
该例的这种数据存储及处理电路,是避免采集存储电路突发掉电时丢失NAND闪存缓冲RAM中数据和FPGA内部用于闪存写入数据的FIFO缓存器中数据的数据存储及处理电路,技术特点在于:该例的数据存储及处理电路在FPGA及其系统软件的控制下,铁电存储器同步循环存储与写入闪存存储通道中一样的数据,掉电时NAND闪存丢失其RAM中未完成编程写入并存储的数据,同时FPGA内部丢失FIFO中缓存的部分采集数据,而铁电存储器中正好完整保存了这些丢失数据,读取存储在数据存储及处理电路中的数据后,将铁电存储器中的数据通过处理融合到闪存记录的数据后面,补足采集数据在掉电时丢失的那些数据,在NAND闪存存储器记录满之前实现多次断电后均能补足每次断电前的采集数据并重新上电继续存储数据。所述的NAND闪存是“与非”结构的闪存名称,所述的RAM是随机存取存储器,所述的FPGA是现场可编程门阵列,所述的FIFO是先进先出缓存器。所述的铁电存储器的写、读操作完全独立于NAND闪存存储器的写、读、擦除操作,通过增加FPGA内部的控制逻辑单元,在外部连接一片铁电存储器即可在原有的电路基础上方便实现。该例的数据存储及处理电路具体结构由图1示出,在图1中:1是同步数据,2是格式变换,3是输入数据总线,4是写缓冲器,5是铁电数据总线,6是铁电存储器,7是读缓冲器,8是铁电存储器读写控制及地址总线,9是铁电存储器读写控制及地址发生器,10是铁电存储器读数据控制总线,11是通信接口,12是记录仪数据总线,13是FPGA,14是闪存读写控制总线,15是闪存n的控制及数据总线,16是闪存n,17是闪存控制及FIFO缓存器,18是闪存2的控制及数据总线,19是闪存2,20是闪存1,21是闪存1的控制及数据总线,22是闪存数据总线,23是闪存数据缓冲器。该例的数据存储及处理电路由FPGA作控制器,1片铁电存储器和若干片NAND闪存存储器和FPGA内部FIFO缓存存储器共同组成,所述的若干片包括有n片NAND闪存存储器,其中n选择为1、或2、或3、或4的自然整数。该例的1片铁电存储器存储量>n片NAND闪存存储器中RAM的容量+FPGA内部FIFO缓存存储器之总存储量。该例的铁电存储器总容量为T,总容量T包括:按地址分成a个循环存储地址单元与剩余地址空间,该例的剩余地址空间有b个字节的、并构成与a个循环存储地址单元对等个数的、电路掉电重启时NAND闪存存储器起始地址的存储单元,其中除a、b之外还有剩余地址空间,该例的铁电存储器总容量T为a个循环存储地址单元+b地址字节数+剩余地址空间,a选择为1、或2的自然整数,b为地址单元数a乘以n片NAND闪存存储器的地址字节数,b中每连续n片NAND闪存存储器的地址字节数与铁电存储器存储地址单元a中一个循环存储地址单元对应,铁电存储器中每个循环存储地址单元的容量为k,k大于或等于n片NAND闪存中RAM容量和FPGA内部的FIFO缓存器容量的总和,各个存储器有独立控制总线结构,铁电存储器的控制总线与闪存、FIFO缓存的存储器控制总线相互独立,但都共用输入数据总线和读数据总线,铁电存储器与闪存写入数据的FIFO缓存存储器同步进行数据存储,铁电存储器循环将数据写入存储地址空间内,各类存储器分时独立进行数据读取。该例的数据存储及处理电路上电开始存储前,FPGA读取铁电存储器最后的b个字节数据,判断对应单元的值是否为非零,如为非零则该铁电存储器存储地址单元a已经存储满,如果为零,说明铁电存储器存储地址单元a未存储满,找出存储过数据的最大地址单元ax,当判断NAND闪存存储器未存满时,FPGA查找n片NAND闪存写入最后一页数据的地址并加1后将其存储到对应bx+1的地址中,数据循环写入铁电存储器的ax+1地址空间内,NAND闪存存储器在上一次存储数据地址后继续存储数据直到存储满整个地址空间,其中有:a≥x,该例的x选取1、或2之整数。该例的数据存储及处理电路掉电时,NAND闪存存储器丢失闪存RAM中未完成编程写入并存储的数据及FPGA内部的FIFO缓存存储器丢失的部分采集数据,而铁电存储器中正好完整保存了这些丢失的数据。这样就可以进行或实现丢失的部分采集数据的恢复工作。FPGA通过总线切换先读完NAND闪存存储器中存储的数据,再通过指令切换总线读取铁电存储器中存储的数据,铁电存储器存储的数据与闪存存储器存储的数据进行比较确定数据的匹配点,将两者数据融合从而获得掉电前采集的完整数据,避免了采用NAND闪存存储器及FIFO缓存器在掉电时丢失的数据。图2示出数据存储及处理电路的软件程序之一,即数据读取及融合主流程图,在图2中:24是开始,25是初始化,26是读取铁电存储器中的NAND闪存存储器上电起始记录地址,27是读取铁电存储器中c组数据TDc(k),28是读取NAND闪存储器中c组数据并将每片闪存最后一页数据组成SCc(nR),29是数据融合,30是结束。图3所示的是数据存储及处理电路的软件程序之一,即数据融合子流程图,在图3中:31是开始,32是执行j=1语句,33是执行m=nR语句,34是执行m=m-R语句,35是判断m=0语句,36是数据匹配,37是找到匹配点,38是判断j>c,39是j=j+1;40是匹配数据,41为结束。图4示出数据存储及处理电路的软件程序之一,即数据匹配及匹配数据子流程图,在图4中:42是开始,43是执行i=1语句,44是判断i+m<k语句,45是执行TD_X=TDj(i)、TDj(i+1)…、TDj(m+i-1),SC=SCj(nR-m+1)、SCj(nR-m+2)、…、SCj(nR)语句,46是判断TD_X=SC语句,47是执行i=i+1语句,48是判断i>k语句,49是结束。50是将数据TDj(m+i)、TDj(m+i+1)、...、TDj(k)、TDj(1)、...、TDj(i-1)融合到SCj(nR)的后面,51是将数据TDj(m+i)、TDj(m+i+1)、...、TDj(k)、TDj(1)、...、TDj(i-1)融合到SCj(nR)的后面,52是判断TD_X=SC语句,53是执行TD_X(m)=TDj(i)、…、TDj(k)、TDj(1)、…、TDj(m+i-k-1),SC=SCj(nR-m+1)、SCj(nR-m+2)、…、SCj(nR)语句。该例的数据存储及处理电路掉电后,首先读取铁电存储器存储最后的b个字节数据构成数组TAc(b),根据TAc(b)找出写过数据的铁电存储器地址单元的数据构成c个数组TDc(k)和NAND闪存存储器每次突发掉电前写入的最后一页数据构成c个数组SCc(nR),其中:c为铁电存储器在NAND闪存存储器存满前上电的次数,c<a,该例的c选取1、或2之整数,k为铁电存储器一个循环存储地址单元数据的容量,R为一片NAND闪存存储器中RAM的容量,R选择为1024、或2048。将数组TDc(k)的数据融合到数组SCc(nR)后面,j从1开始每次加1直到c,所述的j选取1、或2的c之整数,分别对每次上电做融合计算,选定m=nR,从TDc(k)中选定TDj(k)数组,其中:选取1≤i≤k,即选取i=1、或2、…、k之整数,该例里当FIFO容量取8192,R=2048,n=4,的时候,k等于4×2048+8192=16384。NAND闪存存储器的地址为3个字节时,当有掉电重启地址信息
TA1=[0x02,0x40,0x00,0x02,0x40,0x00,0x02,0x40,0x00,0x02,0x40,0x00],
TA2=[0x04,0x00,0x01,0x04,0x00,0x01,0x03,0x00,0x01,0x03,0x00,0x01],
表示掉电2次,并得到掉电后重新记录的起始地址。从i起始连续选定m个字节,当i+m<k时,TDj中选定的数组TD_X(m)为TDj(i)、TDj(i+1)…、TDj(m+i-1);当i+m>k时,TDj中选定的数组TD_X(m)为TDj(i)、…、TDj(k)、TDj(1)、…、TDj(m+i-k-1),与SCj(nR-m+1)、SCj(nR-m+2)、…、SCj(nR)的数据按顺序一一对应进行比较,i从1开始每次加1顺次比较,当j=1,i=200时,TD_X与SC对应每一个字节都相等,将TD1(8392)、TD1(8393)、…、TD1(16384)、TD1(1)、…、TD1(191)的数据融合添加到闪存数据SC1(8192)的后面,即SC1(8193)=TD1(8392),SC1(8194)=TD1(8393)、…、SC1(16193)=TD1(1)、…、SC1(16384)=TD1(191)。接着j=2,i从1开始每次加1顺次比较,取m=8192,当i=k还未完全匹配,m减去2048取6144,i从1开始每次加1顺次比较,当i=k还未完全匹配,m减去2048取4096,这时i=16300时,TD_X与SC对应每一个字节都相等,将TD2(8392)、TD2(8393)、…、TD2(16384)、TD2(1)、…、TD2(191)的数据融合添加到闪存数据SC2(8192)的后面,即SC2(8193)=TD2(4012),SC2(8194)=TD2(4013)、…、SC2(16193)=TD2(1)、…、SC2(20480)=TD2(16299)。停止搜索,将数组SC1的数据和数组SC2的数据分别添加到NAND闪存第一次和第二次掉电前除NAND闪存存储器除最后一页数据的数组后,完整补足两次掉电时丢失的采集数据。第一次掉电前NAND闪存存储器停止记录地址为TA1=[0x01,0x40,0x00,0x01,0x40,0x00,0x01,0x40,0x00,0x01,0x40,0x00],数据除去最后一页后容量为4×0x004000×2048字节=134217728字节,把融合后的SC1添加到134217728字节即完整补足第一次掉电时丢失的采集数据。第二次掉电前NAND闪存存储器停止记录的地址为
TA2=[0x03,0x00,0x01,0x03,0x00,0x01,0x02,0x00,0x01,0x02,0x00,0x01],数据除去最后一页后容量为(2×(0x010002-0x004002+1)+2×(0x010001-0x004002+1))×2048字节=402657280字节,把融合后的SC2添加到402657280字节即完整补足第二次掉电时丢失的采集数据。该例的NAND闪存存储器和铁电存储器均是非易失性存储介质的存储器。所述的非易失性存储介质的存储器如三星公司的K9F1G08、K9F2G08、K9F4G08、K9k8G08,micron公司的MT29F1G08、MT29F16G、MT29F32G等构成,铁电存储器如Ramtron公司的FM25L16、FM1608、FM18L08、FM20L08、FM22L16,富士的MB85R256、MB85R1002、MB85R2001等构成。
实施例二.数据存储及处理电路
该例的数据存储及处理电路结构由图1示出,数据存储及处理电路的软件程序之一部分,由图2~图4示出。该例的数据存储及处理电路与实施例一的数据存储及处理电路不同点有:1.该例的若干片为n片NAND闪存存储器,n选择为5、或6、或7、或8的自然整数。2.该例的铁电存储器循环存储地址单元a选择为3、或4的自然整数。3.该例的x为每次未存满铁电存储器循环存储地址单元a-x个,有a≥x。4.该例的c为铁电存储器在NAND闪存存储器存满前上电的次数,有c≤a。5.该例里k最大是24576,NAND闪存存储器的地址为3个字节时,当有掉电重启地址信息
TA1=[0x02,0x50,0x00,0x02,0x50,0x00,0x02,0x50,0x00,0x02,0x50,0x00],
TA2=[0x04,0x00,0x01,0x04,0x00,0x01,0x03,0x00,0x01,0x03,0x00,0x01],
TA3=[0x0B,0x60,0x01,0x0B,0x60,0x01,0x0B,0x60,0x01,0x0B,0x60,0x01],
TA4=[0x11,0xA0,0x01,0x11,0xA0,0x01,0x11,0xA0,0x01,0x11,0xA0,0x01],
表示掉电4次,并得到掉电后重新记录的起始地址。6.该例的m=R、2R、…、7R、8R(该例n最大为8)。该例数据存储及处理电路其余未述的,全同于实施例一中所述的,不再重述。
实施例三.数据存储及处理电路
该例的数据存储及处理电路结构用图1示出,数据存储及处理电路的软件程序之一部分,由图2~图4示出。该例的数据存储及处理电路与实施例一、实施例二的数据存储及处理电路不同点有:1.该例的若干片为n片NAND闪存存储器,n选择为9、或10、或11、或12的自然整数。2.该例的a选择为5、或6的自然整数。3.该例的x为每次未存满铁电存储器循环存储地址单元a-x个,有a≥x。4.该例的c为铁电存储器在NAND闪存存储器存满前上电的次数,有c≤a。5.该例里k最大是32768,NAND闪存存储器的地址为3个字节时,当有掉电重启地址信息
TA1=[0x02,0x40,0x00,0x02,0x40,0x00,0x02,0x40,0x00,0x02,0x40,0x00],
TA2=[0x04,0x00,0x01,0x04,0x00,0x01,0x03,0x00,0x01,0x03,0x00,0x01],
TA3=[0x07,0x80,0x01,0x07,0x80,0x01,0x07,0x80,0x01,0x06,0x80,0x01],
TA4=[0x15,0x10,0x02,0x14,0x10,0x02,0x14,0x10,0x02,0x14,0x10,0x02],
TA5=[0x21,0x80,0x02,0x21,0x80,0x02,0x21,0x80,0x02,0x21,0x80,0x02],
TA6=[0x76,0x80,0x03,0x76,0x80,0x03,0x76,0x80,0x03,0x75,0x80,0x03],
表示掉电6次,并得到掉电后重新记录的起始地址。6.该例的m=R、2R、…、11R、12R(该例n最大为12)。该例的数据存储及处理电路其余未述的,全同于实施例一、实施例二中所述的,不再重述。
实施例四.数据存储及处理电路
该例的数据存储及处理电路结构用图1示出,数据存储及处理电路的软件程序之一部分,由图2~图4示出。该例的数据存储及处理电路与实施例一~实施例三的数据存储及处理电路不同点有:1.该例的若干片为n片NAND闪存存储器,n选择为13、或14、或15、或16的自然整数。2.该例的a选择为7、或8的自然整数。3.该例的x为每次未存满铁电存储器循环存储地址单元a-x个,有a≥x。4.该例的c为铁电存储器在NAND闪存存储器存满前上电的次数,有c≤a。5.该例的m=R、2R、…、15R、16R(该例n最大为16)。6.该例里当FIFO容量取8192,R=1024,n=16的时候,k等于16×1024+8192=24576,该例里k最大是24576,NAND闪存存储器的地址为3个字节时,当有掉电重启地址信息
TA1=[0x02,0x40,0x00,0x02,0x40,0x00,0x02,0x40,0x00,0x02,0x40,0x00],
TA2=[0x04,0x00,0x01,0x04,0x00,0x01,0x03,0x00,0x01,0x03,0x00,0x01],
TA3=[0x07,0x80,0x01,0x07,0x80,0x01,0x07,0x80,0x01,0x06,0x80,0x01],
TA4=[0x15,0x10,0x02,0x14,0x10,0x02,0x14,0x10,0x02,0x14,0x10,0x02],
TA5=[0x21,0x80,0x02,0x21,0x80,0x02,0x21,0x80,0x02,0x21,0x80,0x02],
TA6=[0x76,0x80,0x03,0x76,0x80,0x03,0x76,0x80,0x03,0x75,0x80,0x03],
TA7=[0x11,0xF0,0x03,0x11,0xF0,0x03,0x11,0xF0,0x03,0x11,0xF0,0x03],
TA8=[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x000,0x00,0x00,0x00],
表示掉电7次,并得到掉电后重新记录的起始地址。该例的数据存储及处理电路其余未述的,全同于实施例一~实施例三中所述的,不再重述。
Claims (4)
1.一种数据存储及处理电路,是避免采集存储电路突发掉电时丢失NAND闪存缓冲RAM中数据和FPGA内部用于闪存写入数据的FIFO缓存器中数据的数据存储及处理电路,特征在于:所述的数据存储及处理电路由作为控制器FPGA,1片铁电存储器和n片NAND闪存存储器和FPGA内部FIFO缓存存储器共同组成,所述的n片NAND闪存存储器,其中n选择为1、或2、或3、…、或16的自然整数,所述的数据存储及处理电路在FPGA的控制下,铁电存储器同步循环存储与写入闪存存储通道中一样的数据,掉电时NAND闪存丢失其RAM中未完成编程写入并存储的数据,同时FPGA内部丢失FIFO中缓存的部分采集数据,而铁电存储器中正好完整保存了这些丢失数据,读取存储在数据存储及处理电路中的数据后,将铁电存储器中的数据通过处理融合到闪存记录的数据后面,补足采集数据在掉电时丢失的那些数据,在NAND闪存存储器记录满之前实现多次断电后均能补足每次断电前的采集数据并重新上电继续存储数据,所述的铁电存储器总容量为T,总容量为T包括:按地址分成a个循环存储地址单元与剩余地址空间,所述的剩余地址空间有b个字节的、并构成与a个循环存储地址单元对等个数的、电路掉电重启时NAND闪存存储器起始地址的存储单元,其中除a、b之外还有剩余地址空间,a选择为1、或2、或3、…、或8的自然整数,b为地址单元数a乘以n片NAND闪存存储器的地址字节数,b个字节分成a个字节组,每个字节组包含连续n片NAND闪存存储器的地址字节数,每一个字节组存放的n片闪存的地址与铁电存储器中a个循环存储地址单元中的一个循环存储地址单元对应,铁电存储器中每个循环存储地址单元的容量为k,k大于或等于n片NAND闪存中RAM容量和FPGA内部的FIFO缓存器容量的总和,各个存储器有独立控制总线结构,铁电存储器的控制总线与闪存、FIFO缓存的存储器控制总线相互独立,但都共用输入数据总线和读数据总线,铁电存储器与闪存写入数据的FIFO缓存存储器同步进行数据存储,铁电存储器循环将数据写入存储地址空间内,各类存储器分时独立进行数据读取。
2.根据权利要求1所述的数据存储及处理电路,特征在于:
1).所述的数据存储及处理电路上电开始存储前,FPGA读取铁电存储器最后的b个字节数据,根据对应单元的值是否为非零,找出存储过数据的最大地址单元ax,当判断NAND闪存存储器未存满时,FPGA查找n片NAND闪存写入最后一页数据的地址并加1后将其存储到对应bx+1的地址中,数据循环写入铁电存储器的ax+1地址空间内,NAND闪存存储器在上一次存储数据地址后继续存储数据直到存储满整个地址空间,其中有:a≥x;
2).所述的数据存储及处理电路掉电时,NAND闪存存储器丢失闪存RAM中未完成编程写入并存储的数据及FPGA内部的FIFO缓存存储器丢失的部分采集数据,而铁电存储器中正好完整保存了这些丢失的数据;
3).FPGA通过总线切换先读完NAND闪存存储器中存储的数据,再通过指令切换总线读取铁电存储器中存储的数据,铁电存储器存储的数据与闪存存储器存储的数据进行比较确定数据的匹配点,将两者数据融合从而获得掉电前采集的完整数据。
3.根据权利要求2所述的数据存储及处理电路,特征在于:
1).所述的数据存储及处理电路掉电后,首先读取铁电存储器存储最后的b个字节数据构成数组TAc(b),根据TAc(b)找出写过数据的铁电存储器地址单元的数据构成c个数组TDc(k)和NAND闪存存储器每次突发掉电前写入的最后一页数据构成c个数组SCc(nR),其中:c为铁电存储器在NAND闪存存储器存满前上电的次数,c<a,k为铁电存储器一个循环存储地址单元数据的容量,R为一片NAND闪存存储器中RAM的容量;
2).将数组TDc(k)的数据融合到数组SCc(nR)后面,j从1开始每次加1直到j等于c,分别对每次掉电后数据做融合计算,选定m=nR,从TDc(k)中选定TDj(k)数组,其中:选取1≤i≤k,从i起始连续选定m个字节,当i+m≤k时,TDj中选定的数组TD_X(m)为TDj(i)、TDj(i+1)…、TDj(m+i-1);当i+m>k时,TDj中选定的数组TD_X(m)为TDj(i)、…、TDj(k)、TDj(1)、…、TDj(m+i-k-1),与SCj(nR-m+1)、SCj(nR-m+2)、…、SCj(nR)的数据按顺序一一对应进行比较,i从1开始每次加1顺次比较,当i=k还未完全匹配,就将上一次选定m减去R,重新匹配直到m=R为止;
3).当对应数据完全相同时,记录下两者相等时刻的i值并停止搜索,当i+m<k时,将TDj(m+i+1)、TDj(m+i+2)、…、TDj(k)、TDj(1)、…、TDj(i-1)的数据融合添加到闪存数据SCj(nR)的后面,当i+m>k时,将TDj(m+i-k)、TDj(m+i-k+1)、…、TDj(i-1)融合添加到闪存数据SCj(nR)的后面,完整补足丢失的采集数据。
4.根据权利要求3所述的数据存储及处理电路,特征在于:所述的NAND闪存存储器和铁电存储器均是非易失性存储介质的存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511007611.XA CN105405465B (zh) | 2015-12-29 | 2015-12-29 | 数据存储及处理电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511007611.XA CN105405465B (zh) | 2015-12-29 | 2015-12-29 | 数据存储及处理电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105405465A CN105405465A (zh) | 2016-03-16 |
CN105405465B true CN105405465B (zh) | 2019-07-23 |
Family
ID=55470901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511007611.XA Active CN105405465B (zh) | 2015-12-29 | 2015-12-29 | 数据存储及处理电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105405465B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649142B (zh) * | 2016-12-02 | 2019-09-06 | 北京航天长征飞行器研究所 | 一种具有断电续存功能的高速存储器 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677571A (zh) * | 2004-03-12 | 2005-10-05 | 株式会社瑞萨科技 | 非易失性存储设备 |
CN1833291A (zh) * | 2003-08-27 | 2006-09-13 | 因芬奈昂技术股份有限公司 | 具有高速缓存数据接口的高密度闪存 |
CN1991791A (zh) * | 2005-12-27 | 2007-07-04 | 三星电子株式会社 | 使用非易失性存储器作为高速缓存的存储设备及运行方法 |
CN101458668A (zh) * | 2008-12-19 | 2009-06-17 | 成都市华为赛门铁克科技有限公司 | 缓存数据块的处理方法和硬盘 |
CN101604548A (zh) * | 2009-03-26 | 2009-12-16 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘及数据存储方法 |
CN103324578A (zh) * | 2013-06-20 | 2013-09-25 | 深圳市瑞耐斯技术有限公司 | 一种nand闪存设备及其随机写入方法 |
CN103810113A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失存储器和动态随机存取存储器的融合内存系统 |
CN104199786A (zh) * | 2014-08-26 | 2014-12-10 | 上海动联信息技术股份有限公司 | 一种高可靠性断电保护方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7173863B2 (en) * | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
-
2015
- 2015-12-29 CN CN201511007611.XA patent/CN105405465B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1833291A (zh) * | 2003-08-27 | 2006-09-13 | 因芬奈昂技术股份有限公司 | 具有高速缓存数据接口的高密度闪存 |
CN1677571A (zh) * | 2004-03-12 | 2005-10-05 | 株式会社瑞萨科技 | 非易失性存储设备 |
CN1991791A (zh) * | 2005-12-27 | 2007-07-04 | 三星电子株式会社 | 使用非易失性存储器作为高速缓存的存储设备及运行方法 |
CN101458668A (zh) * | 2008-12-19 | 2009-06-17 | 成都市华为赛门铁克科技有限公司 | 缓存数据块的处理方法和硬盘 |
CN101604548A (zh) * | 2009-03-26 | 2009-12-16 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘及数据存储方法 |
CN103324578A (zh) * | 2013-06-20 | 2013-09-25 | 深圳市瑞耐斯技术有限公司 | 一种nand闪存设备及其随机写入方法 |
CN103810113A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失存储器和动态随机存取存储器的融合内存系统 |
CN104199786A (zh) * | 2014-08-26 | 2014-12-10 | 上海动联信息技术股份有限公司 | 一种高可靠性断电保护方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105405465A (zh) | 2016-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
KR101615567B1 (ko) | 스토리지 버스 인터페이스용 피씨엠 메모리 | |
CN103765392B (zh) | 存储器装置的损耗均衡 | |
JP2020003838A (ja) | メモリシステム | |
CN104798055B (zh) | 存储器控制器、数据存储装置和存储器控制方法 | |
CN101957796A (zh) | 存储系统及信息处理设备 | |
CN104268095A (zh) | 一种存储器及基于该存储器进行数据读/写操作的方法 | |
US20140297921A1 (en) | Method of Partitioning Physical Block and Memory System Thereof | |
TWI652577B (zh) | 資料儲存裝置及非揮發式記憶體操作方法 | |
CN102722455B (zh) | 一种闪存设备中数据存储的方法及装置 | |
US20180129602A1 (en) | Garbage collection method for data storage device | |
CN111158579B (zh) | 固态硬盘及其数据存取的方法 | |
KR100882740B1 (ko) | 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치 | |
CN101097781A (zh) | 非易失性存储器及其确定数据有效性的方法和设备 | |
US20140328127A1 (en) | Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same | |
CN108733324A (zh) | 一种固态硬盘的数据读写方法、装置、设备及存储介质 | |
JP2009503745A5 (zh) | ||
CN109471819A (zh) | 为来自主机的读取请求提供短的读取响应时间的存储设备 | |
CN101944011B (zh) | 运行程序的装置、芯片和方法 | |
US8711610B2 (en) | Non-volatile memory array and device using erase markers | |
CN105405465B (zh) | 数据存储及处理电路 | |
CN107203341A (zh) | 基于闪存的数据存储方法、装置以及闪存芯片 | |
KR20120088454A (ko) | 비휘발성 메모리 시스템 및 비휘발성 메모리 장치와, 이를 위한 프로그램 방법 | |
US8209474B1 (en) | System and method for superblock data writes | |
CN105608024B (zh) | 数据存储及处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |