CN102169462B - 基于NAND Flash的数据记录方法与记录控制器 - Google Patents
基于NAND Flash的数据记录方法与记录控制器 Download PDFInfo
- Publication number
- CN102169462B CN102169462B CN201110106864.8A CN201110106864A CN102169462B CN 102169462 B CN102169462 B CN 102169462B CN 201110106864 A CN201110106864 A CN 201110106864A CN 102169462 B CN102169462 B CN 102169462B
- Authority
- CN
- China
- Prior art keywords
- nand flash
- data
- address
- write
- controller
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000006243 chemical reaction Methods 0.000 claims abstract description 16
- 238000003860 storage Methods 0.000 claims description 36
- 238000012795 verification Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 17
- 238000012937 correction Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 11
- 230000007547 defect Effects 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 5
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 4
- 238000002679 ablation Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 2
- 238000007726 management method Methods 0.000 abstract description 25
- 230000009191 jumping Effects 0.000 abstract description 3
- 238000013524 data verification Methods 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 15
- 238000013461 design Methods 0.000 description 13
- 238000013507 mapping Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000010438 heat treatment Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- BBKDWPHJZANJGB-IKJXHCRLSA-N quizalofop-P-tefuryl Chemical compound O=C([C@H](OC=1C=CC(OC=2N=C3C=CC(Cl)=CC3=NC=2)=CC=1)C)OCC1CCCO1 BBKDWPHJZANJGB-IKJXHCRLSA-N 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000035939 shock Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- WCJYTPVNMWIZCG-UHFFFAOYSA-N xylylcarb Chemical compound CNC(=O)OC1=CC=C(C)C(C)=C1 WCJYTPVNMWIZCG-UHFFFAOYSA-N 0.000 description 2
- LZIAMMQBHJIZAG-UHFFFAOYSA-N 2-[di(propan-2-yl)amino]ethyl carbamimidothioate Chemical compound CC(C)N(C(C)C)CCSC(N)=N LZIAMMQBHJIZAG-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 1
- 230000001684 chronic effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000001373 regressive effect Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 238000011079 streamline operation Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种基于NAND Flash的数据记录方法与记录控制器包括:硬件坏块管理方法:发生突发坏块时,无延时跳入下一个已经与匹配好了的有效块继续记录,最后将发生坏块之前页的数据滞后回写到跳入的有效块;硬件均衡方法:擦写操作都接着上次的擦写地址开始,使NANDFlash每块的擦写次数都接近均等;IO扩展方法:转换数据位宽和切换控制信号使单片NANDFlash驱动器可以控制多片多组NAND Flash。控制器包括FRAM控制器,顶层状态控制器,损耗均衡器,接口切换模块,预匹配模块,地址生成模块,寄存器组,数据校验模块,标准FIFO接口,标准SRAM接口,命令控制接口和NAND Flash驱动器。整个控制器可挂接到嵌入式处理器的PLB总线上,也可以通过命令控制接口和外部模块进行控制信号和状态信号的数据交换。
Description
技术领域
本发明涉及NAND Flash数据记录控制器的实现,特别是高速高可靠NAND Flash数据记录控制器的实现。采用大规模现场可编程门阵列(Field Programable Gate Array,FPGA)作为实现平台,实现数据在单片NAND Flash或NAND Flash阵列中的高速记录存储、读出和擦除,同时在不影响记录性能的情况下实现有效的坏块管理。
背景技术
数据记录技术,一直是国内、外在航空、航天、航海等领域研究的关键技术之一。实际应用中,需要将采集到的高速实时数据(比如高分辨率图像数据)实时地记录下来以便事后处理。随着采集数据精度的提高以及记录参数的增多,需要记录的数据量急剧增加、数据传输速率也越来越高。这使记录设备在实时、超大容量、可靠性等方面的研究成为了热点。
目前大多数的数据记录***都是基于磁记录技术,但磁记录设备的核心部件磁带机或硬盘有以下缺点:
1.读写速度慢。硬盘采用盘片高速旋转、磁头作径向移动的数据读取方式,因此在硬盘中执行一次数据读写操作的时间周期分为三部分:寻道时间、旋转等待延时和数据传输时间。无论读写数据的大小,前两个步骤是必须执行的,而这两个步骤一般都耗时5ms以上。
2.不稳定。硬盘的机械结构导致硬盘故障率较高。磁头磨损,悬臂变形,硬盘在受到震动后外壳、盘面或马达的微小的变形都将导致硬盘工作性能的不稳定。目前普通硬盘在非工作状态下仅可承受百g左右的冲击力,因此在移动设施或震动较大场合等复杂状态下,传统硬盘都不太适用。是在实际应用中,设备产生的晃动都会严重影响机械硬盘盘片旋转的稳定性,从而导致数据采集的可靠性大大降低。
3.功耗大发热大。硬盘中盘片的机械旋转和磁头的径向运动均会在很大程度上导致硬盘功耗增大。此外,随着对硬盘存取速度要求的不断提高,硬盘的转速也在不断地提高,这会导致两方面的后果:一是功耗的上升,大功耗对于加重了在特殊环境中如机载空载设备的功耗负担;二是热量的不断提高,这要求有更好的散热措施,否则硬盘工作的可靠性将急剧下降。增加散热设备会增加记录设备的重量和复杂度,从另一方面降低了记录设备的可靠性。
相比于机械硬盘,基于半导体存储技术的存储芯片具有以下优点:
1.读写速度快。存储芯片执行一次数据读写的周期比传统硬盘短,在已存储芯片执行一次数据访问的周期大致为15us-30us,比起传统硬盘的要5ms快得多。
2.抗震性好。存储芯片内部不存在任何机械活动部件,不会发生机械故障,也不怕碰撞、冲击、震动,因此即使在剧烈震动的情况下也能正常工作。
3.工作温度范围大。机械硬盘只能在5-55摄氏度范围内工作,而一些存储芯片可以达到工业级工作温度甚至宇航级,范围甚至达到了-40-85摄氏度甚至更宽。
4.发热低、噪音小。由于没有传统机械硬盘中的马达,存储芯片工作时的噪音几乎为分贝,并且存储芯片发热量小,基于此设计的记录设备工作时的发热量也大大地减小。
5.体积小。相比传统的机械硬盘,存储芯片体积更小,重量更轻。这对载重严格要求的机载或星载应有极大的意义。
因此自九十年代初,各航天大国开始就研制的固态记录器(Solid State Reorder,简称SSR),使用半导体存储芯片作为存储介质,其存储密度高、无转动部件、可靠性高、体积小、重量轻,较磁记录设备更适于应用在航天航空领域,因而逐渐成为空间飞行器的数据记录器的主流方案。
半导体存储器件,常见的有DRAM、SRAM、FLASH MEMORY、EPROM、EEPROM、ROM等等。
1.ROM具有高密度、高可靠性、数据非丢失性等特性,但是其出厂后内容就不能更改,所以根本不能用作记录器的存储介质。
2.EPROM具有数据非丢失性、高密度、可重写等特性,但是不能在***在线时重写,必须将其从***中移出、用紫外线擦除后方能重写,所以也不能用记录器的存储介质。
3.EERPOM是数据非丢失性的,并且支持***在线重写,但由于擦除和写入时需要高压电脉冲,而且擦写的时间较长,所以在***的正常工作状态下,EERPOM仍然只能工作在读出状态。EERPOM可作ROM使用,不可用作记录器的存储介质。
4.DRAM最基本的存储单元是CMOS晶体管,由电容驱动,通过充放电来存储数据,它的优点在于其具有高密度和存取速度快的特性,但是其数据的丢失性使其要求有持续的供电电源(掉电丢失数据),且需要辅以必要的刷新控制电路,所以比较耗电。
5.SRAM的存储单元实际上是个触发器,数据可以在不掉电的情况下一直保持,不需要刷新,它的功耗也比DRAM低,速度也更快,但是,SRAM存储密度很低,所以现在SRAM多用在小存储容量***中(也属于掉电丢失数据的存储器)。
6.FLASH的存储单元是由一个晶体管构成,因此具有极高的容量密度。与DRAM和SRAM不同的是它具有掉电数据不丢失的特性,这样不仅可以大大降低功耗,而且可以保证数据存储的可靠性,所以FLASH闪存可以代替现在的磁介质存储器。
根据实现的技术架构的不同,闪存芯片可以分为NOR、NAND、DINOR、AND等几种类型。
NOR技术(亦称为Linear技术)闪速存储器是最早出现的闪存芯片,由Intel公司在1988年开发成功。它的出现彻底改变了原先由EPROM和EEPROM一统天下的局面。和其它的存储介质相比,它的可靠性高,随机读取速度快,非常适用于擦除和编程操作较少而直接执行代码,尤其是纯代码存储的场合,如PC的BIOS固件、移动电话、硬盘驱动器的控制存储器等。
NOR技术闪存芯片具有以下特点:
1.程序和数据可存放在同一芯片上,拥有独立的数据总线和地址总线,能决速随机读取,允许***直接从闪存芯片中读取代码执行,而无需先将代码下载至RAM中再执行;
2.可以单字节或单字编程,但不能单字节擦除,必须以块为单位或对整片执行擦除操作,在对存储器进行重新编程之前需要对块或整片进行预编程和擦除操作;
3.传输效率很高,在1-4MB的小容量时具有很高的成本效益,但是较低的写入和擦除速度大大影响了它的性能。
由于NOR技术闪存芯片的擦除和编程速度较慢,而块尺寸又较大,因此擦除和编程操作所花费的时间很长,在纯数据存储和文件存储的应用中,NOR技术显得力不从心。不过,仍有支持者在以写入为主的应用,如Compact Flash卡中继续看好这种技术。
NAND技术闪存芯片具有以下特点:
1.以页为单位进行读和编程操作,1页为256或512Byte;以块为单位进行擦除操作,1块为4K,SK,16KByte或更大。
2.具有块编程和块擦除的功能,其块擦除时间是2ms,而NOR技术的块擦除时间为几百ms。
3.数据、地址采用同一总线,实现串行读取。不能按字节随机编程。
4.芯片尺寸小,引脚少,是位成本最低的固态存储器。
5.芯片包含有无效块。无效块不会影响有效块的性能,但设计者需要将失效块在地址映射表中屏蔽起来。
NAND技术闪存芯片能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。因此,它是实现大容量数据存储器的理想数据存储介质。
但是用NAND flash来设计记录器时,面临如下问题:
1.NAND flash由若干存储块构成,每个块由若干页构成。NAND flash读写是以页为单位,不能按位写入;并且不支持覆盖写入,重新写入必须先以块为单位擦除,且擦除操作非常耗时。
2.NAND flash的命令、数据和地址线共用一个8位(部分NAND flash是16位)I/O端口,通过时分复用方式实现命令、数据和地址切换,时序要求严格。这增加了***控制的复杂度。
3.由于制造工艺和成本原因,任何厂家的NAND flash在出厂时就含有坏块(即无效块,invalid block),并且坏块数量在使用当中还会增加。构成阵列时,坏块分布变的更加复杂,***要有相应的坏块管理的方案,来识别、管理坏块,防止数据写入坏块或读到坏块中的内容,要做到在坏块管理同时不影响记录性能,非常困难。
如何解决坏块问题和提高写入速度是基于NAND flash设计图像记录***的核心问题。常用的方法是用软件方式建立一个闪存转换层FTL(Flash Translation Layer)进行坏块表维护管理。如固态硬盘(SSD),将坏块地址用另外的好块物理地址来映射,建立逻辑地址和好块物理地址映射表,并存放在NAND flash第一页或第二页中。软件方式的坏块管理,需要将坏块表载入到内存中,再由CPU来检索维护映射表,耗时长,效率低;映射表存放在NANDflash中可靠性低,因为存放映射表的物理块超过一定擦写次数,本身会变成坏块。因此,软件方式不适合高速高可靠NAND Flash记录控制器设计。用硬件可以获得极高的性能。
在原来的硬件方式实现的NAND Flash记录控制器设计方案中,在坏块处理方案方面有以下三种类型:
1.不做坏块管理,数据写入错误时不做处理,这种方式可靠性最低,只适用于数据容错性相当强的记录场合。
2.只做简单的坏块管理,有如下两种方案;
方案一:在初始化时扫描坏块,记录或读取时跳过坏块地址。对使用时产生的突发坏块不做处理,缺点是如果遇到突发坏块,可靠性会降低。
方案二:在初始化时扫描坏块,记录或读取时跳过坏块地址。在记录数据时同时产生校验码与原数据一起记录到NAND Flash中。使用时产生的突发坏块不做处理,在读出数据时根据校验码来恢复出错数据。这种方式的缺点是,NAND Flash发生坏块时,该块极不稳定,容易出现多位错误,而校验码的纠错能力很有限,只能恢复出1位或几位出错数据。特别是在如宇宙空间中强辐射使用场合,这种方案还是不可靠。
3.用CAM(内容可访问存储器)来匹配的坏块信息,对坏块信息进行分类检索,用和NANDFlash芯片同数量的SRAM来备份数据,如果遇到突发坏块,将SRAM中的数据通过第二总线写入NAND Flash的好块中。这种方式的优点是可靠性高,缺点是,匹配的坏块信息至少要花费5个时钟周期,降低了写入性能;使用了和NAND flash等量的SRAM芯片做数据备份和双总线结构,电路板上可贴片空间大大减少,有效存储容量和写入速度受到限制,而且增加了***功耗和成本。
同时,原来硬件方式实现的NAND Flash记录控制器设计方案还具有如下缺点:
1.无法实现嵌入式应用和非嵌入式应用的切换,适应性和灵活性差。
2.没有在硬件底层做简单有效的损耗均衡,记录器的寿命受到影响。
3.不具有NAND Flash交叉写入和交叉并行写入控制功能,只能使用多组NAND Flash进行组间流水线操作,在FPGA管脚资源一定的情况下,记录的并行度受到影响,写入带宽很难继续提高。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于NAND Flash的高速高可靠数据记录方法与记录控制器。
本发明的目的是通过以下技术方案实现:
一种基于NAND Flash的高速高可靠数据记录方法,该方法包括:
硬件管理坏块方法:
对NAND Flash中每个块,用二进制1表示无效块、用0表示有效块,或用0表示无效块、用1表示有效块,组成二进制序列作为坏块表;先建立初始坏块表,在NAND Flash使用过程中发生突发坏块时,将缓存中的数据重新写入到下一个有效块相应页中,该页地址为前面突发坏块中写入出错时的页地址;当记录任务结束后,将之前已经写入突发坏块中的数据拷贝到下一个有效块的对应页中,并更新坏块表,拷回出错前的数据来保持读写带宽不变;坏块表存储在非易失存储器中;在读、写、擦除加载地址之前,根据坏块表预匹配出下一有效块的物理地址,加载地址时始终加载的是有效块的物理地址;
损耗均衡方法:每次写入结束后,记录下最后写入的物理地址,擦除标志保持为0,下次写入时,接着上次写入的物理地址开始写,擦除操作只擦除最后写入的物理地址以及该物理地址之前的块,并将擦除标志置1,之后写入时,把最后擦除的物理地址的下个地址作为写入的初始地址;
IO扩展方法:在NAND Flash控制器和NAND Flash阵列接口之间加入一个IO扩展层,使硬件管理坏块方法和损耗均衡方法可以用在NAND Flash阵列的场合;IO扩展层完成数据宽度转换,控制信号的切换以及NAND flash组的切换;将NAND Flash忙信号进行线与后接入控制器或分别将各片NAND Flash的忙信号接入IO扩展层中进行与操作后再送入控制器,NAND Flash阵列的每组控制信号并联后通过IO扩展层接入到单片NAND Flash控制器中;NANDFlash控制器的读、写、擦除模块各输出一个数据的方向信号和数据状态信号;IO扩展层根据数据方向信号、状态信号和当前操作命令进行如下操作:写入数据操作时,同一组NANDFlash加载相同的写命令和写地址,加载写入数据阶段,将数据位宽进行分割,不同数据位段同时写入各片NAND Flash,在读状态阶段,将同一组各片NAND Flash输出状态数据的高两位相、以及低三位相与的结果送给NAND Flash控制器;读数据操作时,同一组NAND Flash加载相同的读命令和读地址,在读数据阶段,将各片NAND Flash读出数据进行拼接输出,在读状态阶段,将同一组各片NAND Flash输出状态数据的高两位相、以及低三位相与的结果送给NAND Flash控制器;擦除操作时,同一组NAND Flash加载相同的擦除命令和擦除地址,在读状态阶段,将同一组各片NAND Flash输出状态数据的高两位相、以及低三位相与的结果送给NAND Flash控制器;当一组NAND Flash的地址达到最后地址时,自动切换组片选信号,使下一组NAND Flash成为当前操作NAND Flash组。
本发明还可以:
硬件管理坏块方法,所述建立初始坏块表的过程为:读取NAND Flash芯片的坏块标志,将结果转换为0、1二进制流,按照NAND Flash地址顺序排列,暂存到寄存器或RAM中,当数据满足非易失存储器的最小写入单位时,写入到非易失存储器中。
寄存器或RAM,在FPGA内部,其大小为非易失存储器最小写入单位的倍数。
非易失存储器,是铁电存储器FRAM或NOR Flash,位容量大于所用NAND flash芯片内存储块数量。
硬件管理坏块方法,所述在使用过程中发生突发坏块时,滞后拷回出错前的数据来保持读写带宽不变并更新坏块表的具体处理步骤为:
(a)NAND Flash某块写入数据时,写到某页,状态寄存器返回错误,突发坏块产生,此时已经预匹配出下一有效块物理地址偏移,保持页地址不变;同时保存突发坏块地址于寄存器中作为回写步骤的源物理块地址,并保存此时页地址于寄存器中作为回写步骤的源物理页地址和目标物理页地址;
(b)根据预匹配的偏移信息改变块地址为下一有效块的物理地址,不中断写入过程,将缓存中数据写入该有效块的同地址页;在寄存器中更新该有效块的地址,作为回写步骤的目标物理块地址;
(c)以1表示坏块时,将刚才出现的坏块在坏块表暂存寄存器中相应位置1,以0表示坏块时,将刚才出现的坏块在坏块表暂存寄存器中相应位置0;
(d)若当前有效块也变为坏块时,重复步骤(b)和(c),若顺利写入则进入步骤(e);
(e)将坏块表暂存寄存器中的数据和回写信息写入FRAM或NOR Flash中,完成坏块表的及时更新和回写信息的及时备份;
(f)当写入任务结束后,根据寄存器中回写地址信息将NAND Flash源地址中第一页开始到发生错误的页之间页中的数据拷贝到目标块地址中对应的页中;
(g)清空FRAM或NOR Flash中回写信息备份,***进入空闲状态。
预匹配,在***初始化阶段就从FRAM中取出对应坏块信息和初始地址进行匹配比较,若该块是坏块,则偏移加一,直到找到有效块,输出最终偏移;当NAND flash进入忙状态,继续预匹配出下一个有效块的物理地址偏移;根据偏移信息和当前物理地址,在下一个NANDFlash加载地址之前就可以产生下一有效块的物理地址。
损耗均衡方法,所述擦除标志,为0时表示记录的地址为最后写入的物理地址,为1时表示记录的地址是最后擦除的物理地址,最后写入或擦除的物理地址,连同擦除标志先记录在寄存器中,再存入FRAM或NOR Flash中。
IO扩展方法,所述IO扩展层,其特征在于,数据位宽可以由全局配置,最低可以配置为单片NAND Flash的数据位宽。
一种基于NAND Flash的数据记录控制器,该控制器包括:
顶层状态控制器12:控制读、写、擦除、回写、坏块扫描和空闲状态之间的状态转换以及数据记录控制器1中各模块的调度,并通过IPIF14IP接口或命令控制接口15和外部进行控制信息交换;
FRAM控制器23:与顶层状态控制器12、和预匹配模块20相连,并通过标准SRAM接口24和外部FRAM相连;控制FRAM的读写时序将坏块表、回写信息、任务信息的读出或写入;
损耗均衡器25:与顶层状态控制器12以及预匹配模块20相连,每次写入或擦除操作结束后,在寄存器中记录下最后操作的物理地址,所述地址通过顶层状态控制模块12控制FRAM控制器23写入FRAM中,下次写入或擦除操作时,从FRAM中读出上次最后操作的物理地址,传送给预匹配模块20,以保证每次记录数据都从写入或擦除次数最少的NAND Flash存储块开始;
接口切换模块13:连接顶层状态控制器12、IPIF14IP接口和命令控制接口15,当记录控制器1应用在嵌入式***中时,接口切换模块13将顶层状态控制器12和外部的数据交换通道切换到IPIF模块14,嵌入式处理可以通过PLB总线对记录控制器1进行控制;当记录控制器1应用在非嵌入式***中时,接口切换模13块将顶层状态控制器12和外部的数据交换通道切换命令控制接口15上,外部***可以通过命令控制接口15对记录控制器1进行控制;
寄存器组121:用于存放记录控制器1的控制信息、状态信息和地址信息;
预匹配模块20:根据损耗均衡模块25输出的起始地址和FRAM控制器23输出的坏块表,进行匹配比较,若该块是坏块,则偏移加一,直到找到有效块,将最终的地址偏移传送给地址生成模块19;
地址生成模块19:与顶层状态控制器12、预匹配模块20以及NAND Flash驱动器18相连,根据预匹配模块20送入地址偏移信息,在NAND Flash加载地址之前,屏蔽掉坏块地址,产生有效块的物理地址;
错误校验模块16:该模块根据待写入的数据产生校验纠错码,校验纠错码通过NANDFlash驱动器18写入NAND Flash页内的扩展页非坏块标志单元中,在读NAND Flash数据时,同时读出校验纠错码对数据进行检错纠错;
NAND Flash驱动器18:产生驱动NAND Flash的具体时序,包括子模块有:写驱动子模块181、读驱动子模块182、擦除驱动子模块183、回写copy back驱动子模块184、读NANDFlash ID驱动子模块186、读NAND Flash状态驱动子模块187、坏块扫描驱动子模块185和NAND Flash复位驱动子模块188;
IO转换模块21:连接NAND Flash驱动器18和NAND Flash接口22,完成数据宽度转换,控制信号的切换以及NAND flash组的切换,使只能控制单片NAND Flash的驱动器可以并行控制多片多组NAND Flash;在加载命令地址时切换成各片NAND Flash的控制线和数据总线并联;在从NAND Flash写入或读出数据时,切换成NAND Flash的控制线并联,NAND Flash数据总线和外部输入或输出数据总线的不同数据线相连;读NAND Flash状态时,切换成NANDFlash的控制线并联,各片NAND Flash数据总线输出的状态信息进行合并后再传出给顶层状态控制器12;当一组NAND Flash的地址达到最后地址时,自动切换组片选信号,使下一组NAND Flash成为当前操作NAND Flash组;
标准FIFO接口17:与外部FIFO连接,记录控制器1通过此接口和外部进行读写数据交换;
标准SRAM接口24:与外部FRAM连接,记录控制器1通过此接口和外部FRAM进行坏块信息、备份数据交换。
顶层状态控制器(12)还完成外部传入的控制命令锁存、地址信息锁存、内部各模块复位、坏块发生时的中断产生。
FRAM控制器(23)的工作状态受顶层状态控制器(12)的控制;FRAM控制器驱动FRAM芯片的时序参数由全局配置。
地址生成模块(19)根据全局配置调整地址生成方式,支持写、读、擦除、交叉写、交叉并行写、交叉擦除interleave erase以及交叉读的地址生成方式。
错误校验模块(16)由全局配置该模块是否启用,校验模块的校验方式可以是循环冗余校验CRC或错误纠正码ECC,由全局配置校验模块校验方式、位宽和并行工作的校验模块数。
NAND Flash驱动器(18)的写驱动子模块(181)的写入方式由全局配置成交叉写interleave write或交叉并行写interleave two plane write;由全局配置是否启用写、读、擦除、回写或复位的状态返回;由全局配置是否启用片选忽略CE don't care。
NAND Flash驱动器的坏块扫描驱动子模块(185)为可选模块,其功能由顶层状态控制器(12)控制NAND Flash驱动器(18)的读驱动子模块(182)实现。
IO转换模块(21)由全局配置转换位宽,最小位宽为单片NAND Flash的位宽,此时IO转换模块(21)为直通状态,不进行位宽转换和控制信息切换。
损耗均衡器(25)由全局配置是否开启。
本发明还可以:
完成外部传入的控制命令锁存、地址信息锁存、内部各模块复位、坏块发生时的中断产生。
FRAM控制器23的工作状态受顶层状态控制器12的控制;FRAM控制器驱动FRAM芯片的时序参数可以由全局配置。
地址生成模块19,可以根据全局配置调整地址生成方式,支持写、读、擦除、交叉写、交叉并行写、交叉擦除interleave erase以及交叉读的地址生成方式。
错误校验模块16,可以由全局配置该模块是否启用,校验模块的校验方式可以是循环冗余校验CRC或错误纠正码ECC,可以由全局配置校验模块校验方式、位宽和并行工作的校验模块数。
NAND Flash驱动器18的写驱动子模块181的写入方式可以由全局配置成交叉写interleave write或交叉并行写interleave two plane write;可以由全局配置是否启用写、读、擦除、回写或复位的状态返回;可以由全局配置是否启用片选忽略CE don't care。坏块扫描驱动子模块185,其特征在于为可选模块,其功能可以由顶层状态控制器12控制NAND Flash驱动器18的读驱动子模块182实现。
IO转换模块21,可以由全局配置转换位宽,最小位宽为单片NAND Flash的位宽,此时IO转换模块21为直通状态。
与现有技术相比,本发明能够获得的技术效果为:
1:加入可以全局配置的IO转换模块21实现了单片NAND Flash驱动器18控制多片多组NAND Flash,降低了FPGA资源的使用,并且提高了控制器的可裁剪性和可扩展性。
2:NAND Flash驱动器18加入了多种驱动方式并可以全局配置其驱动时序参数,使记录器可以支持多种NAND Flash芯片以及多种NAND Flash阵列组织方式。如:使用交叉并行写入(interleave two plane write)驱动方式,则可以不用多组NAND Flash进行组间流水,而可以将所有NAND Flash并接成一组,大大提高了写入带宽。
3:大大提高了记录控制器的可靠性:FRAM是无限次擦写的非易失存储器,使用FRAM对坏块表信息、回写地址备份和任务信息存储,可靠性非常高。同时通过及时备份回写地址信息,可以防止突然断电造成数据记录错位的情况发生。发生突发坏块时,不中断记录任务,无延时跳入下一个已经与匹配好了的有效块继续记录,最后将发生坏块之前页的数据滞后回写到跳入的有效块,保证了坏块管理不影响写入性能,同时还保证了数据的完整可靠。
4:支持低功耗管理,全局可以配置NAND Flash的片选忽略(CE don't care)时序。在驱动NAND Flash时,可以在NAND Flash片选信号CE可以忽略时,关闭片选,在记录、读取数据时可以降低功耗20%以上。
5:支持嵌入式应用和非嵌入式应用,本发明加入了IPIF14(IP接口),整个记录控制器1可以作为一个IP CORE挂接到嵌入式处理器的PLB总线上,CPU可以实现对该记录控制器的控制和管理。非嵌入式应用时,该记录控制器1可以通过命令控制接口15和外部模块进行控制信号和状态信号的数据交换。
6:用硬件的方式实现了适用于连续数据记录应用的NAND Flash芯片损耗均衡,擦写操作都接着上次的擦写地址开始,保证了NAND Flash每块的擦写次数都接近均等,可以有效延长NAND Flash芯片的使用寿命。
7:坏块管理性能优越,而且本发明的坏块管理方法不会影响记录控制器的写入性能。该坏块管理方法检索8个物理块坏块信息仅耗时2个时钟周期;预匹配和正确物理地址生成耗时都为0个时钟周期;突发坏块发生时***写入速度不受影响;完成记录任务后,滞后回写在最差情况下耗时也仅22.28036ms(记录控制器时钟33MHz,NAND Flash芯片为三星K9WBG08U1M SLC NAND flash芯片),即用户发送停止记录指令后的瞬间就已经完成了已经写入坏块数据的回写,不会影响用户体验。
附图说明
图1是NAND Flash记录控制器的结构图;
图2是NAND Flash记录控制器的硬件描述语言实现模块的层次图;
图3是基于非嵌入式应用的NAND Flash记录控制器的一个实例结构图;
图4是坏块信息存储快速索引结构图;
图5是预匹配模块的结构图;
图6是发生突发坏块时坏块管理流程图;
图7是非嵌入式应用时实现NAND Flash记录控制器的资源占用情况一览表;
图8是基于嵌入式应用的NAND Flash记录控制器的一个实例结构图;
图9是嵌入式应用时实现NAND Flash记录控制器的资源占用情况一览表;
附图1标记说明如下:
1--NAND Flash记录控制器,
12--顶层状态控制器,
20--预匹配模块,
24--标准SRAM接口,
25--损耗均衡器,
14--IP接口IPIF,
121--寄存器组,
21--IO转换模块,
22--NAND Flash接口,
17--标准FIFO接口,
13--接口切换模块,
15--命令控制接口,
19--地址生成模块,
18--NAND Flash驱动器,
16--错误校验模块,
23--FRAM控制器,
181--写驱动子模块,
182--读驱动子模块,
183--擦除驱动子模块,
184--回写(copy back)驱动子模块,
186--读NAND Flash ID驱动子模块,
187--读NAND Flash状态驱动子模块,
185--坏块扫描驱动子模块,
188--NAND Flash复位驱动子模块。
附图3标记说明如下:
31--本发明,
32--***控制逻辑,
33--NAND Flash阵列,
34--铁电随机存储器FRAM,
35--读写FIFO,
36--光纤接口,
37--CCD相机。
附图8标记说明如下:
81--多端口存储控制器MPMC,
82--嵌入式处理器PPC440,
83--CAMERALINK控制器,
84--CCD相机,
85--本发明,
86--NAND Flash阵列,
87--媒体访问控制MAC,
88--串口控制器,
89--通用端口控制器,
810--内存。
具体实施方式
本发明中,所有模块都是用硬件描述语言在FPGA中实现,结合图1和图2具体说明本发明的硬件描述语言的编写结构。plbv46_slave_single.vhd,soft_reset.vhd,interrupt_control.vhd,三个文件是XILINX公司提供给用户使用的,以帮助用户快速实现PLB总线接口功能。plbv46_slave_single.vhd主要实现NAND Flash记录控制器1的PLB总线接口协议,soft_reset.vhd实现NAND Flash记录控制1软件复位功能,interrupt_control.vhd负责NAND Flash记录控制器1的中断控制。User_logic.v实现了IPIC(IP连接)功能,将NAND Flash记录控制器1的控制信号、地址信号和中断信号接入到了PLB总线接口中;Transition_logic_layer_main.v实现了接口切换模块13、顶层状态控制模块12、寄存器组121、地址生成模块19、命令控制接口15、标准FIFO接口17和预匹配模块20;Wear-leveling.v实现了均衡模块25;Fram_controller.v实现了FRAM控制器模块23和标准SRAM接口24;Nand_logic_layer.v实现了IO转换模块21和NAND Flash驱动器18,其中擦除驱动子模块183由Ease.v实现,读NAND Flash驱动子模块182由Read.v实现,写数据驱动子模块181由Write.v实现,读NAND Flash ID驱动子模块186由Read_id.v实现,NAND Flash芯片复位驱动子模块188由Reset.v实现,坏块扫描驱动子模块185由Invalid_block_scan.v实现;坏块扫描驱动子模块185是一个可选模块,其功能可以由顶层状态控制模块12连续调用读NAND Flash驱动子模块182实现。独立设计坏块扫描驱动子模块185的目的是为了减少控制耗时,提高坏块扫描速度,同时可以独立工作并与其他模块并行工作,提高记录控制器1的控制性能。Error_detect.v实现了错误校验模块16和校验方式的切换,其中循环冗余校验(Cyclical Redundancy Check,CRC)功能由CRC_module.v实现,错误纠正码(Error Correcting Code,ECC)功能由ECC_module.v实现。在ECC_module.v子模块中,GenerateECC.vhd实现错误纠正码的产生,Errorlocation.vhd实现错误定位,Controlfsm.vhd实现状态转换控制。在容错性强的使用场合,可以在全局配置中选择关闭错误校验模块16,可以减小功耗和减少FPGA的资源使用量。
实际使用时,本发明需要外部控制信号、状态信号和IPIF(IP接口)14或命令控制接口15相连;外部数据信号要和标准FIFO接口17相连;外部FRAM和标准SRAM24接口相连;NAND Flash和NAND Flash接口22相连。该发明用在嵌入式***中时,接口切换模块将控制状态信号通道与IPIF14连接,非嵌入式应用时,接口切换模块将控制状态信息通道与命令控制接口15连接。由于本发明主要会应用在多片多组NAND Flash的场合,本发明设计了IO转换模块。要控制多片多组NAND Flash,目前比较普遍的是用一个单片NAND Flash控制器驱动并行的一组,多组就要用多个单片NAND Flash控制器,多个这样的控制器会占用较多的FPGA资源,会增加设计成本。本发明设计的IO扩展方法能实现用一个单片NAND Flash控制器控制多片多组NAND Flash。改方法的具体描述如下:
在NAND Flash控制器和NAND Flash阵列接口之间加入一个IO扩展层,完成数据宽度转换,控制信号的切换以及NAND flash组的切换。将NAND Flash忙信号进行线与后接入控制器或分别将各片NAND Flash的忙信号接入IO扩展层中进行与操作后再送入控制器,NANDFlash阵列的每组控制信号并联后通过IO扩展层接入到单片NAND Flash控制器中。NANDFlash控制器的读、写、擦除模块各输出一个数据的方向信号和数据状态信号。IO扩展层根据数据方向信号、状态信号和当前操作命令进行如下操作:写入数据操作时,同一组NANDFlash加载相同的写命令和写地址,加载写入数据阶段,将数据位宽进行分割,不同数据位段同时写入各片NAND Flash,在读状态阶段,将同一组各片NAND Flash输出状态数据的高两位相或操作低三位相与操作,并将结果送给NAND Flash控制器;读数据操作时,同一组NAND Flash加载相同的读命令和读地址,读数据阶段,将各片NAND Flash读出数据进行拼接输出,在读状态阶段,将同一组各片NAND Flash输出状态数据的高两位相或低三位相与的结果送给NAND Flash控制器;擦除操作时,同一组NAND Flash加载相同的擦除命令和擦除地址,在读状态阶段,将同一组各片NAND Flash输出状态数据的高两位相或低三位相与的结果送给NAND Flash控制器;当一组NAND Flash的地址达到最后地址时,自动切换组片选信号,使下一组NAND Flash成为当前操作NAND Flash组。
下面结合附图与具体实施方式对本发明作进一步详细说明。
实施例1:
本实例以非嵌入式应用为例,将CCD相机的图像数据记录在NAND Flash阵列中,并通过光纤接口读出记录的数据,之后进行擦除操作。技术场景为:***使42片三星K9WBG08U1MSLC NAND flash芯片并行相连,每片4GB,含16384块,每块64页,每页(4K+128)B。***总容量168GB,坏块管理保留容量为8GB,***有效图像存储容量为160GB。FRAM使用Ramtron公司FM20L08铁电存储器,容量为128KB。FPGA采用Xilinx VIRTEX-5XC5VFX70T芯片。图像来自Pantera SA2M30高清CCD相机,图像帧频为120frame/s,分辨率为1600×1200pixels,灰度级为10bits。实例中***模块采用Verilog硬件语言设计。
下面结合附图3详细说明本实例各模块的连接关系和控制关系。
CCD相机7通过CAMERALINK接口将数据送人FPGA中的读写FIFO5中,FIFO5与本发明1的标准FIFO接口相连,本发明1与FPGA外部的FRAM4和NAND Flash阵列相连,通过命令控制接口和控制逻辑模块2相连。首次使用时,控制逻辑模块2给本发明发送坏块扫描命令,建立坏块表。记录数据时,控制逻辑模块2先复位写FIFO,然后使能写FIFO处于工作状态,同时发写命令控制本发1进入写数据状态。记录过程中控制逻辑模块2实时监控写FIFO是否溢出。停止记录任务时,控制逻辑模块2发停止命令给本发明1,同时控制写FIFO停止工作,本发明进入空闲状态。从NAND Flash阵列中读出数据时,控制逻辑模块2先复位读FIFO5,然后使能读FIFO5处于工作状态,同时启动配置有光纤协议的Rocket IO通道6,然后发读命令控制本发明1进入读数据状态。从本发明1读出的数据写入读FIFO5,FIFO5与光纤协议的Rocket IO通道6相连,数据通过光纤接口读出。在擦除NAND Flash阵列、坏块扫描、读NAND Flash ID以及复位NAND Flash芯片的操作时,控制逻辑模块2给本发明1发送命令相应的命令即可,然后等待本发明1的返回信号。
下面结合附图1详细说明本发明的工作过程。
1、建立初始坏块表:
首次使用时,要在FRAM中先建立初始坏块表。在收到外部控制逻辑模块的坏块扫描命令后,顶层状态控制器12控制坏块扫描驱动子模块185对读取NAND Flash中各块中第一页和第二页中存放坏块标志的页内地址的值。如果是非FFh,则用二进制“1”来标记在8位寄存器中,表示该块为坏块;如果是FFh,则用二进制“0”标记在8位寄存器中。这样大大减小了坏块表的大小。假如一片NAND flash有212(4096)个存储块,传统的方式建立映射表大小至少为:12(bits)x4096x2=12(KB),而简化后表大小只有1(bit)x4096=0.5(KB)。然后将此表通过控制器存储到FRAM(铁电随机存储器,Ferroelectric Nonvolatile RAM)中。FRAM具有非易失性,掉电后可以有效保存数据10年以上,并且可无限次擦写。FRAM非常适合用来存储坏块信息表这类重要数据。坏块扫描驱动子模块185对NAND flash阵列的扫描结果变成“0,1”表示,并组装成8位,在8位寄存器中完成一次组装就由顶层状态控制器12控制FRAM控制器模块23写入FRAM中。完成了坏块扫描后,坏块表也就在FRAM中建立好了,然后顶层状态控制器12产生以后完成信号通过命令控制接口传出给外部的控制逻辑模块。
为缩短坏块表检索时间,本发明设计了如下存储结构:如图4所示,将NAND flash坏块物理地址(13位)高10位补零7位,作为FRAM地址;低3位作为该地址中8位坏块信息数据的索引位,即该索引下的FRAM数据位为“1”。例如,NAND flash块物理地址“10D0h”-“10D7h”(13bits)中,地址为“10D5h”的块为坏块,二进制为“1000011010101b”。前10位补零7位为“00000001000011010b”作为FRAM写入地址。后3位“101b”标识“0-7”位中的“5”这一位为“1”,即在FRAM中写入该地址的8位坏块信息为“00100000b”。
这种结构的好处是,在FPGA中,对地址数据的截取和补零操作非常容易实现,并且操作无时钟延时。同时,根据NAND FLASH的物理地址可以动态索引到FRAM中存放坏块信息的地址信息和坏块信息。相反,也可以通过FRAM的地址和对应数据内容,快速索引得到对应NAND FLASH坏块的物理地址。
2、记录数据:
收到外部控制逻辑模块的写命令后,顶层状态控制器12控制写数据驱动子模块181通过标准FIFO接口17读取外部的FIFO中的数据,此数据同时送入错误校验模块16计算纠错码,纠错码的计算方式可以配置成CRC或ECC。数据和纠错码在写数据驱动子模块181的控制下写入地址生成模块19提供的NAND Flash地址中。其中纠错码写在NAND Flash中多余区(spare area)的地址中。当收到外部控制逻辑模块的停止命令,顶层状态控制器12控制各个模块进入空闲状态,等待下一个命令。损耗均衡模块25记录下最后写入的物理地址,擦除标志保持为0,下次写入时,向地址生成模块19提供此地址,使下次写入时接着这次写入的物理地址开始写。若过记录过程中发生了突发坏块,无延时跳入下一个已经与匹配好了的有效块继续记录,最后将发生坏块之前页的数据滞后回写到跳入的有效块。
这里结合附图5和附图1详细说明地址的产生过程:在读写擦除过程中,要求NAND flash物理地址根据坏块表实时生成,才能实现坏块管理不影响写入速度。FRAM中记录了完整NANDflash阵列的坏块信息表。如图5所示,在FRAM中坏块信息表上开辟一个宽度为8位滑动窗口(用FRAM控制器模块23实现),在本发明初始化阶段就将窗口中坏块信息C和损耗均衡模块25提供的初始地址通过预匹配模块20进行预匹配,并产生第一个有效块的偏移信息。损耗均衡模块25在每次写入结束后,记录下最后写入的物理地址,擦除标志保持0,下次写入时,接着上次写入的物理地址开始写,擦除操作只擦除最后写入的物理地址以及以前的块并将擦除标志置1,之后写入时,把最后擦除的物理地址的下个地址作为写入的初始地址。当NAND flash阵列读、写及擦除操作发生时,在加载地址阶段,地址发生器根据地址偏移信息和初始地址信息将有效块物理地址加载到地址总线上。当NAND flash进入忙状态,预匹配模块20又根据窗口中的信息表和当前物理地址匹配出下一有效块的物理地址偏移。当用到窗口中最后一位消息,在预匹配的同时,地址发生器产生窗口滑动控制信号。如此循环,预匹配完成了坏块地址提前匹配,并保证了下一个好块的物理地址偏移在使用之前产生。在FPGA中,预匹配模块20与读、写和擦除等驱动模块并行工作。对于驱动模块来说,需要地址时,始终可以无延时地得到好块的物理地址。
这里结合附图6和附图1详细说明本发明的坏块的管理过程:
在对NAND flash某块执行写入或擦除操作前,该块为好块,但是在执行到块中某页时,发生写入错误,此块突然变为坏块,称此块为突发坏块。在记录时,为了保证数据的完整性,必须寻找新的好块,把数据重新写入。传统的方法是将发生错误之前所有页中的数据立即回写到其他好块中,处理完毕后再继续存储接收的图像数据。回写操作具有独占性,这时不允许其他操作,所以这个过程会导致写入速度下降。本发明设计了基于滞后回写机制的坏块管理方法,其工作过程如图6所示。
步骤1:向块n写入数据时,写到m页,读状态驱动子模块187读出NAND Flash状态寄存器里状态值为写入错误,突发坏块产生。此时预匹配模块20已经预匹配出下一有效块物理地址偏移,保持页地址不变;同时保存突发坏块地址于寄存器中作为回写步骤的源物理块地址,并保存此时页地址于寄存器中作为回写步骤的源物理页地址和目标物理页地址;
步骤2:不中断写入过程,将缓存中数据写入下一好块(假设该块为块n+1)中的页m。在回写模块184的回写地址寄存器中,保存块n和块n+1的块地址,分别作为回写的源物理块地址和目标物理块地址,同时保存页m的页地址(两个块中的页m地址相同,因此只需保存一次错误页地址);
步骤3:将从8位坏块窗口中块n对应的寄存器置“1”,由FRAM控制器23中将其写入FRAM,完成坏块信息表更新。若当前有效块也变为坏块时,重复步骤1和2,若顺利写入则进入步骤5;
步骤4:在步骤3的同时,不中断后续的写入操作。当记录任务结束,启动回写模块;
步骤5:将坏块表暂存寄存器中的数据和回写信息写入FRAM或Flash中,完成坏块表的及时更新和回写信息的及时备份;
步骤6:当写入任务结束后,回写模块184根据回写地址寄存器中的地址信息,将块n中页0到页m-1的数据拷贝到块n+1中相应的页,清空FRAM中回写信息备份,***进入空闲状态。
3、读出数据:
收到外部控制逻辑模块的读命令后,顶层状态控制器12控制读数据驱动子模块182读取NAND Flash中记录的数据,送入错误校验模块16中。错误校验模块16根据从NAND flash中读出的纠错码和图像数据,对图像数据进行检错纠错。检错纠错后的数据通过标准FIFO接口17写入外部FIFO中。读NAND Flash的地址由地址生成模块19提供,地址生成的具体过程前面已经详细说明。外部控制逻辑模块送入停止读数据时,顶层状态控制器12控制控制各模块进入空闲状态。如果数据已经全部从NAND Flash读出了,外部控制逻辑模块还没有送入停止命令,则送出数据已全部读出状态信号。
4、擦除数据:
收到外部控制逻辑模块的擦除命令后,顶层状态控制器12控制擦除驱动子模块182进行NAND Flash擦除操作。损耗均衡模块25将最后写入的地址提供给地址生成模块19,生成的擦除的地址为最后写入的物理地址以及以前的块地址,地址生成的具体过程前面已经详细说明,唯一不同的是,生成的地址只有块地址,而且是累减的。擦除完毕后,送出擦除完毕信号。同时损耗均衡模块25将擦除标志置1,之后的写入操作时,把最后擦除的物理地址的下个地址作为写入的初始地址提供给地址生成模块19。
5、读NAND Flash ID:
收到外部控制逻辑模块的读ID命令后,顶层状态控制器12控制读ID驱动子模块186读取NAND Flash的ID信息。得到的ID信息通过命令控制接口15送出给外部的控制逻辑模块。
6、复位NAND Flash:
收到外部控制逻辑模块的复位NAND Flash命令后,顶层状态控制器12控制复位驱动子模块188进行NAND Flash复位操作。复位完成后,复位成功信号通过命令控制接口15送出给外部的控制逻辑模块。
图7为该实施例中本发明应用在非嵌入式设计中占用的FPGA的资源量。
实施例2:
该实施例中,本发明应用在嵌入式设计中,实现将CCD相机的图像数据记录在NAND Flash阵列中,并通过千兆网读出记录的数据。其技术场景为:***使用42片三星K9WBG08U1M SLCNAND flash芯片并行相连,每片4GB,含16384块,每块64页,每页(4K+128)B。***总容量168GB,坏块管理保留容量为8GB,***有效图像存储容量为160GB。FRAM使用Ramtron公司FM20L08铁电存储器,容量为128KB。图像来自Pantera SA2M30高清CCD相机,图像帧频为120frame/s,分辨率为1600×1200pixels,灰度级为10bits。FPGA采用XilinxVIRTEX-5XC5VFX70T芯片。嵌入式CPU采用FPGA中PPC440硬核1,01A版本,工作频率400MHz,PLB总线工作频率为100MHz。内存控制器采用MPMC IP核,内存为DDR240032位,容量为256MB。媒体访问控制MAC采用Hard_Ethernet_MAC IP核,MAC和PHY的连接通信方式为SGMII。操作***为standalone裸***。实例中***NPI控制模块采用Verilog硬件语言设计。
下面结合图8进一步说明本发明在该嵌入式***中的工作过程。
PPC4402通过MC接口与多端口存储控制器MPMC1相连,与外部内存10相连。内存10用于存放***的软件代码和对图像数据进行缓存。PPC4402通过PLB总线(4.6版本)与串口控制器8、媒体访问控制MACHard_Ethernet_MAC7和通用端口控制器9相连。媒体访问控制MACHard_Ethernet_MAC7的数据信号通过DMA方式和多端口存储控制器MPMC1。本发明的命令控制信号通过IPIF(IP接口)也连接在PLB总线上,PPC4402通过PLB总线就可以访问本发明的的寄存器组。PPC4402可以设置本发明的寄存器组的值来达到控制本发明的目的。
CCD相机接入CAMERALINK控制器3,图像数据通过PLB总线写进内存缓存,PPC4402通过PLB总线设置本发明寄存器命令为记录数据。本发明通过NPI接口从内存中直接取出数据写入NAND Flash阵列中。写入的具体过程和实施例1中相同,不再赘述。PPC4402也通过PLB总线控制CAMERALINK控制器3的启用和关闭。NPI访问采用64位64字突发(burst)方式,以达到内存访问的最大吞吐带宽,在本实施例中,实际内存访问带宽达到1004Mbytes/S。
从NAND Flash中读出数据时,PPC4402给本发明发送读数据命令,本发明将读出的数据通过NPI接口直接写入内存进行缓存。本实施例中,使用了开源轻量级TCP/IP协议栈LWIP,模式为RAW模式。PPC4402控制软件的发送包句柄地址为存放NAND Flash读出数据的内存地址,将内存中的缓存数据通过网口传出去。
本发明将读写擦除的结果通过中断方式通知PPC4402。
本实施例中,本发明数据写入、读出、擦除、读ID、NAND Flash芯片等操作与实施例1中相同。唯一不同的是本发明的命令控制通道切换到了IPIF上,通过PLB总线接收CPU的命令。
图9为该实施例中本发明应用在嵌入式设计中占用的FPGA的资源量。
以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (18)
1.一种基于NAND Flash的数据记录方法,特征在于该方法包括:
硬件管理坏块方法:
对NAND Flash中每个块,用二进制1表示无效块、用0表示有效块,或用0表示无效块、用1表示有效块,组成二进制序列作为坏块表;先建立初始坏块表,在NAND Flash使用过程中发生突发坏块时,将缓存中的数据重新写入到下一个有效块相应页中,该页地址为前面突发坏块中写入出错时的页地址;当记录任务结束后,将之前已经写入突发坏块中的数据拷贝到下一个有效块的对应页中,并更新坏块表,拷回出错前的数据来保持读写带宽不变;坏块表存储在非易失存储器中;在读、写、擦除加载地址之前,根据坏块表预匹配出下一有效块的物理地址,根据坏块表和初始地址预匹配出下一有效块的偏移信息,加载地址时始终加载的是有效块的物理地址;
损耗均衡方法:每次写入结束后,记录下最后写入的物理地址,擦除标志保持为0,下次写入时,接着上次写入的物理地址开始写,擦除操作只擦除最后写入的物理地址以及该物理地址之前的块,并将擦除标志置1,之后写入时,把最后擦除的物理地址的下个地址作为写入的初始地址;
IO扩展方法:在NAND Flash控制器和NAND Flash阵列接口之间加入一个IO扩展层,使硬件管理坏块方法和损耗均衡方法可以用在NAND Flash阵列的场合;IO扩展层完成数据宽度转换,控制信号的切换以及NAND flash组的切换;将NAND Flash忙信号进行线与后接入控制器,或分别将各片NAND Flash的忙信号接入IO扩展层中进行与操作后再送入控制器,NAND Flash阵列的每组控制信号并联后通过IO扩展层接入到单片NAND Flash控制器中;NANDFlash控制器的读、写、擦除模块各输出一个数据的方向信号和数据状态信号;IO扩展层根据数据方向信号、状态信号和当前操作命令进行如下操作:写入数据操作时,同一组NANDFlash加载相同的写命令和写地址,加载写入数据阶段,将数据位宽进行分割,不同数据位段同时写入各片NAND Flash,在读状态阶段,将同一组各片NAND Flash输出状态数据的高两位相或、以及低三位相与的结果送给NAND Flash控制器;读数据操作时,同一组NAND Flash加载相同的读命令和读地址,在读数据阶段,将各片NAND Flash读出数据进行拼接输出,在读状态阶段,将同一组各片NAND Flash输出状态数据的高两位相或、以及低三位相与的结果送给NAND Flash控制器;擦除操作时,同一组NAND Flash加载相同的擦除命令和擦除地址,在读状态阶段,将同一组各片NAND Flash输出状态数据的高两位相或、以及低三位相与的结果送给NAND Flash控制器;当一组NAND Flash的地址达到最后地址时,自动切换组片选信号,使下一组NAND Flash成为当前操作NAND Flash组。
2.根据权利要求1中的基于NAND Flash的数据记录方法,其特征在于,所述建立初始坏块表的过程为:读取NAND Flash芯片的坏块标志,将结果转换为0、1二进制流,按照NANDFlash地址顺序排列,暂存到寄存器或RAM中,当数据满足非易失存储器的最小写入单位时,写入到非易失存储器中。
3.根据权利要求2中的基于NAND Flash的数据记录方法,其特征在于,在FPGA内部,寄存器或RAM的大小为非易失存储器最小写入单位的倍数。
4.根据权利要求1或2或3中的基于NAND Flash的数据记录方法,其特征在于,所述非易失存储器是铁电存储器FRAM或Flash,位容量大于所用NAND flash芯片内存储块数量。
5.根据权利要求1中的基于NAND Flash的数据记录方法,其特征在于,所述拷回出错前的数据来保持读写带宽不变的具体处理步骤为:
(a)NAND Flash某块写入数据时,写到某页,状态寄存器返回错误,突发坏块产生,此时已经预匹配出下一有效块物理地址偏移,保持页地址不变;同时保存突发坏块地址于寄存器中作为回写步骤的源物理块地址,并保存此时页地址于寄存器中作为回写步骤的源物理页地址和目标物理页地址;
(b)根据预匹配的偏移信息改变块地址为下一有效块的物理地址,不中断写入过程,将缓存中数据写入该有效块的同地址页;在寄存器中更新该有效块的地址,作为回写步骤的目标物理块地址;
(c)以1表示坏块时,将刚才出现的坏块在坏块表暂存寄存器中相应位置1,以0表示坏块时,将刚才出现的坏块在坏块表暂存寄存器中相应位置0;
(d)若当前有效块也变为坏块时,重复步骤(b)和(c),若顺利写入则进入步骤(e);
(e)将坏块表暂存寄存器中的数据和回写信息写入FRAM或NOR Flash中,完成坏块表的及时更新和回写信息的及时备份;
(f)当写入任务结束后,根据寄存器中回写地址信息将NAND Flash源地址中第一页开始到发生错误的页之间页中的数据拷贝到目标块地址中对应的页中;
(g)清空FRAM或NOR Flash中回写信息备份,***进入空闲状态。
6.根据权利要求5中的基于NAND Flash的数据记录方法,其特征在于,步骤(a)中的预匹配在***初始化阶段就从FRAM或NOR Flash中取出对应坏块信息和初始地址进行匹配比较,若该块是坏块,则偏移加一,直到找到有效块,输出最终偏移;当NAND flash进入忙状态,继续预匹配出下一个有效块的物理地址偏移;根据偏移信息和当前物理地址,在下一个NAND Flash加载地址之前就可以产生下一有效块的物理地址。
7.根据权利要求1中的基于NAND Flash的数据记录方法,其特征在于,所述擦除标志为0时表示记录的地址为最后写入的物理地址,为1时表示记录的地址是最后擦除的物理地址。
8.根据权利要求1中的基于NAND Flash的数据记录方法,其特征在于,最后写入或擦除的物理地址连同擦除标志先记录在寄存器中,再存入FRAM或NOR Flash中。
9.根据权利要求1中的基于NAND Flash的数据记录方法,其特征在于,所述IO扩展层的数据位宽可以由全局配置,最低可以配置为单片NAND Flash的数据位宽。
10.一种基于NAND Flash的数据记录控制器,特征在于该控制器包括:
顶层状态控制器(12):控制读、写、擦除、回写、坏块扫描和空闲状态之间的状态转换以及数据记录控制器(1)中各模块的调度,并通过IP接口IPIF(14)或命令控制接口(15)和外部进行控制信息交换;
FRAM控制器(23):与顶层状态控制器(12)和预匹配模块(20)相连,并通过标准SRAM接口(24)和外部FRAM相连;控制FRAM的读写时序将坏块表、回写信息、任务信息的读出或写入;
损耗均衡器(25):与顶层状态控制器(12)以及预匹配模块(20)相连,每次写入或擦除操作结束后,在寄存器中记录下最后操作的物理地址,所述地址通过顶层状态控制模块(12)控制FRAM控制器(23)写入FRAM中,下次写入或擦除操作时,从FRAM中读出上次最后操作的物理地址,传送给预匹配模块(20),以保证每次记录数据都从写入或擦除次数最少的NAND Flash存储块开始;
接口切换模块(13):连接顶层状态控制器(12)、IP接口IPIF(14)和命令控制接口(15),当记录控制器(1)应用在嵌入式***中时,接口切换模块(13)将顶层状态控制器(12)和外部的数据交换通道切换到IPIF模块(14),嵌入式处理可以通过PLB总线对记录控制器(1)进行控制;当记录控制器(1)应用在非嵌入式***中时,接口切换模(13)块将顶层状态控制器(12)和外部的数据交换通道切换命令控制接口(15)上,外部***可以通过命令控制接口(15)对记录控制器(1)进行控制;
寄存器组(121):用于存放记录控制器(1)的控制信息、状态信息和地址信息;
预匹配模块(20):根据损耗均衡器(25)输出的起始地址和FRAM控制器(23)输出的坏块表,进行匹配比较,若该块是坏块,则偏移加一,直到找到有效块,将最终的地址偏移传送给地址生成模块(19);
地址生成模块(19):与顶层状态控制器(12)、预匹配模块(20)以及NAND Flash驱动器(18)相连,根据预匹配模块(20)送入地址偏移信息,在NAND Flash加载地址之前,屏蔽掉坏块地址,产生有效块的物理地址;
错误校验模块(16):该模块根据待写入的数据产生校验纠错码,校验纠错码通过NANDFlash驱动器(18)写入NAND Flash页内的扩展页非坏块标志单元中,在读NAND Flash数据时,同时读出校验纠错码对数据进行检错纠错;
NAND Flash驱动器(18):产生驱动NAND Flash的具体时序,包括子模块有:写驱动子模块(181)、读驱动子模块(182)、擦除驱动子模块(183)、回写copy back驱动子模块(184)、读NAND Flash ID驱动子模块(186)、读NAND Flash状态驱动子模块(187)、坏块扫描驱动子模块(185)和NAND Flash复位驱动子模块(188);
IO转换模块(21):连接NAND Flash驱动器(18)和NAND Flash接口(22),完成数据宽度转换,控制信号的切换以及NAND flash组的切换,使只能控制单片NAND Flash的驱动器可以并行控制多片多组NAND Flash;在加载命令地址时切换成各片NAND Flash的控制线和数据总线并联;在从NAND Flash写入或读出数据时,切换成NAND Flash的控制线并联,NAND Flash数据总线和外部输入或输出数据总线的不同数据线相连;读NAND Flash状态时,切换成NAND Flash的控制线并联,各片NAND Flash数据总线输出的状态信息进行合并后再传出给顶层状态控制器(12);当一组NAND Flash的地址达到最后地址时,自动切换组片选信号,使下一组NAND Flash成为当前操作NAND Flash组;
标准FIFO接口(17):与外部FIFO连接,记录控制器(1)通过此接口和外部进行读写数据交换;
标准SRAM接口(24):与外部FRAM连接,记录控制器(1)通过此接口和外部FRAM进行坏块信息、备份数据交换。
11.根据权利要求10中的基于NAND Flash的数据记录控制器,其特征在于,顶层状态控制器(12)还完成外部传入的控制命令锁存、地址信息锁存、内部各模块复位、坏块发生时的中断产生。
12.根据权利要求10中的基于NAND Flash的数据记录控制器,其特征在于,FRAM控制器(23)的工作状态受顶层状态控制器(12)的控制;FRAM控制器驱动FRAM芯片的时序参数由全局配置。
13.根据权利要求10中的基于NAND Flash的数据记录控制器,其特征在于,地址生成模块(19)根据全局配置调整地址生成方式,支持写、读、擦除、交叉写、交叉并行写、交叉擦除interleave erase以及交叉读的地址生成方式。
14.根据权利要求10中的基于NAND Flash的数据记录控制器,其特征在于,错误校验模块(16)由全局配置该模块是否启用,校验模块的校验方式可以是循环冗余校验CRC或错误纠正码ECC,由全局配置校验模块校验方式、位宽和并行工作的校验模块数。
15.根据权利要求10中的基于NAND Flash的数据记录控制器,其特征在于,NAND Flash驱动器(18)的写驱动子模块(181)的写入方式由全局配置成交叉写interleave write或交叉并行写interleave two plane write;由全局配置是否启用写、读、擦除、回写或复位的状态返回;由全局配置是否启用片选忽略CE don't care。
16.根据权利要求10中的基于NAND Flash的数据记录控制器,其特征在于,NAND Flash驱动器的坏块扫描驱动子模块(185)为可选模块,其功能由顶层状态控制器(12)控制NANDFlash驱动器(18)的读驱动子模块(182)实现。
17.根据权利要求10中的基于NAND Flash的数据记录控制器,其特征在于,IO转换模块(21)由全局配置转换位宽,最小位宽为单片NAND Flash的位宽,此时IO转换模块(21)为直通状态,不进行位宽转换和控制信息切换。
18.根据权利要求10中的基于NAND Flash的数据记录控制器,其特征在于,损耗均衡器(25)由全局配置是否开启。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110106864.8A CN102169462B (zh) | 2011-04-27 | 2011-04-27 | 基于NAND Flash的数据记录方法与记录控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110106864.8A CN102169462B (zh) | 2011-04-27 | 2011-04-27 | 基于NAND Flash的数据记录方法与记录控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102169462A CN102169462A (zh) | 2011-08-31 |
CN102169462B true CN102169462B (zh) | 2014-03-05 |
Family
ID=44490626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110106864.8A Expired - Fee Related CN102169462B (zh) | 2011-04-27 | 2011-04-27 | 基于NAND Flash的数据记录方法与记录控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102169462B (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609334B (zh) * | 2012-01-09 | 2016-05-04 | 晨星软件研发(深圳)有限公司 | 非易失闪存擦除异常存储块修复方法和装置 |
CN103226524B (zh) * | 2012-01-31 | 2017-07-04 | 上海华虹集成电路有限责任公司 | 对Nandflash的坏块和空块进行统一管理的FIFO*** |
CN102841878B (zh) * | 2012-08-10 | 2015-03-11 | 无锡普智联科高新技术有限公司 | 基于plb总线的isa接口ip核 |
CN102929790A (zh) * | 2012-10-15 | 2013-02-13 | 株洲南车时代电气股份有限公司 | 一种数据存储***和方法 |
CN102929795B (zh) * | 2012-10-31 | 2015-08-26 | 飞天诚信科技股份有限公司 | 一种NandFlash坏块管理方法 |
CN103856210B (zh) * | 2012-11-28 | 2017-09-12 | 艺伦半导体技术股份有限公司 | 一种控制fpga编程新地址的方法、装置及编程电路 |
JP6005533B2 (ja) * | 2013-01-17 | 2016-10-12 | 株式会社東芝 | 記憶装置および記憶方法 |
JP2014186761A (ja) * | 2013-03-21 | 2014-10-02 | Toshiba Corp | 半導体記憶装置、コントローラ、及びメモリシステム |
CN103218177A (zh) * | 2013-04-19 | 2013-07-24 | 杭州电子科技大学 | 具有数据均衡处理功能的NAND Flash存储*** |
CN103605309B (zh) * | 2013-11-25 | 2016-01-20 | 北京航空航天大学 | 一种四通道大容量波形存储***的构建方法 |
CN103927794B (zh) * | 2014-05-06 | 2016-03-02 | 航天科技控股集团股份有限公司 | 汽车行驶记录仪行车记录快速存储及检索***与方法 |
CN104464821B (zh) * | 2014-10-10 | 2017-07-28 | 记忆科技(深圳)有限公司 | 一种防止MLC Nand Flash出现UECC问题的方法 |
TWI608488B (zh) * | 2015-03-25 | 2017-12-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及資料存取方法 |
CN104765695A (zh) * | 2015-04-03 | 2015-07-08 | 上海交通大学 | 一种nand flash坏块管理***及方法 |
CN104778973B (zh) * | 2015-04-20 | 2018-08-14 | 陕西航天导航设备有限公司 | 一种基于CPLD的外部flash数据存储接口应用方法 |
CN105005453B (zh) * | 2015-07-17 | 2018-05-22 | 上海卫星工程研究所 | 星载nand flash固存坏区管理*** |
CN106527957B (zh) * | 2015-09-09 | 2019-05-28 | 深圳市凯路创新科技有限公司 | 嵌入式数据采集终端的循环记录和采集方法 |
CN105427406B (zh) * | 2015-12-02 | 2018-04-17 | 北京七维航测科技股份有限公司 | 航空数据记录设备 |
CN106776752B (zh) * | 2016-11-22 | 2020-10-23 | 南京拓攻自动驾驶技术研究院有限公司 | 一种应用于无人机飞行数据的嵌入式文件存储***及方法 |
KR102409760B1 (ko) * | 2017-03-17 | 2022-06-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
US10732896B2 (en) * | 2017-06-12 | 2020-08-04 | Western Digital Technologies, Inc. | Method and system for reading data during control sync operations |
CN107247563A (zh) * | 2017-07-06 | 2017-10-13 | 济南浪潮高新科技投资发展有限公司 | 一种nand flash芯片的块信息标识实现方法 |
KR102474035B1 (ko) * | 2017-08-18 | 2022-12-06 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN107591179B (zh) * | 2017-09-11 | 2020-09-15 | 中国科学院上海微***与信息技术研究所 | 一种扩展存储器操作次数的电路结构及方法 |
CN107678420B (zh) * | 2017-09-30 | 2020-01-31 | 北京理工大学 | 一种发动机数据在线存储方法 |
CN107908572B (zh) * | 2017-11-21 | 2021-08-27 | 四川巧夺天工信息安全智能设备有限公司 | 一种重组NAND-Flash芯片数据的方法 |
CN108363549A (zh) * | 2017-12-27 | 2018-08-03 | 北京兆易创新科技股份有限公司 | 一种Nand flash元件及其通信控制方法和装置 |
CN108255540B (zh) * | 2017-12-27 | 2021-02-05 | 北京兆易创新科技股份有限公司 | 一种Nand flash元件及其载入控制方法和装置 |
CN108804032B (zh) * | 2018-05-16 | 2021-05-18 | 山东华芯半导体有限公司 | 一种自适应磨损均衡垃圾回收加速装置和方法 |
CN108762685B (zh) * | 2018-06-04 | 2021-06-22 | 平安科技(深圳)有限公司 | Io挂死识别方法、装置、计算机装置及存储介质 |
CN109783411B (zh) * | 2018-12-20 | 2022-05-17 | 成都旋极历通信息技术有限公司 | 一种基于fpga的flash阵列控制方法及控制器 |
CN112148365B (zh) * | 2019-06-26 | 2024-04-05 | 珠海零边界集成电路有限公司 | 一种控制模块、方法及微控制器芯片 |
CN111240598B (zh) * | 2020-01-15 | 2021-07-13 | 西安交通大学 | 一种基于软硬件结合方式的大容量快速NandFlash存储实现方法 |
CN111897766B (zh) * | 2020-06-19 | 2023-05-30 | 西安微电子技术研究所 | 一种星载固态存储器及边记边擦的数据处理方法 |
CN111782142B (zh) * | 2020-06-19 | 2024-04-05 | 科大智能电气技术有限公司 | 一种基于分时处理的Flash存储方法 |
CN111915477B (zh) * | 2020-08-08 | 2022-09-06 | 湖南非雀医疗科技有限公司 | 一种彩色超声多普勒转置存储的地址轮换方法 |
CN112802530B (zh) * | 2021-01-12 | 2023-11-21 | 成都佰维存储科技有限公司 | Nand测试方法、装置、可读存储介质及电子设备 |
CN113254339B (zh) * | 2021-05-27 | 2024-02-02 | 山东华芯半导体有限公司 | 一种nand驱动程序测试***及方法 |
CN113176970B (zh) * | 2021-06-28 | 2021-10-22 | 中国核动力研究设计院 | 基于FPGA的nor flash坏块管理***及方法 |
CN113703671B (zh) * | 2021-07-23 | 2023-09-22 | 郑州云海信息技术有限公司 | 一种数据块擦除方法及相关装置 |
CN115080471A (zh) * | 2022-06-29 | 2022-09-20 | 成都九洲迪飞科技有限责任公司 | 基于FPGA的nand flash接口控制器及读写方法 |
CN117251116B (zh) * | 2023-11-14 | 2024-02-20 | 苏州元脑智能科技有限公司 | 非易失性存储器的擦写方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369252A (zh) * | 2008-09-16 | 2009-02-18 | 浙江大学 | 基于nand闪存文件***中静态数据损耗均衡的方法 |
JP2009087094A (ja) * | 2007-09-28 | 2009-04-23 | Fuji Xerox Co Ltd | 記憶媒体制御装置 |
CN101533670A (zh) * | 2009-04-23 | 2009-09-16 | 北京握奇数据***有限公司 | 实现存储设备损耗均衡的方法及存储设备 |
CN101777026A (zh) * | 2009-01-09 | 2010-07-14 | 成都市华为赛门铁克科技有限公司 | 一种存储管理方法、硬盘及存储*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100771519B1 (ko) * | 2006-10-23 | 2007-10-30 | 삼성전자주식회사 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법 |
-
2011
- 2011-04-27 CN CN201110106864.8A patent/CN102169462B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009087094A (ja) * | 2007-09-28 | 2009-04-23 | Fuji Xerox Co Ltd | 記憶媒体制御装置 |
CN101369252A (zh) * | 2008-09-16 | 2009-02-18 | 浙江大学 | 基于nand闪存文件***中静态数据损耗均衡的方法 |
CN101777026A (zh) * | 2009-01-09 | 2010-07-14 | 成都市华为赛门铁克科技有限公司 | 一种存储管理方法、硬盘及存储*** |
CN101533670A (zh) * | 2009-04-23 | 2009-09-16 | 北京握奇数据***有限公司 | 实现存储设备损耗均衡的方法及存储设备 |
Non-Patent Citations (2)
Title |
---|
大容量存储中NAND Flash坏块的管理方法;宁飞;《电子测试》;20101231(第12期);全文 * |
宁飞.大容量存储中NAND Flash坏块的管理方法.《电子测试》.2010,(第12期),64-67页. |
Also Published As
Publication number | Publication date |
---|---|
CN102169462A (zh) | 2011-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102169462B (zh) | 基于NAND Flash的数据记录方法与记录控制器 | |
US8412880B2 (en) | Memory system controller to manage wear leveling across a plurality of storage nodes | |
EP2347418B1 (en) | Logical unit operation | |
TWI385519B (zh) | 資料寫入方法及使用此方法的快閃儲存系統與其控制器 | |
EP2646919B1 (en) | Transaction log recovery | |
US9423960B2 (en) | Methods of operating memory devices within a communication protocol standard timeout requirement | |
CN112035381B (zh) | 一种存储***及存储数据处理方法 | |
CN101494086B (zh) | 快闪存储器储存装置、快闪存储器控制器及其切换方法 | |
KR102114109B1 (ko) | 데이터 저장 장치 | |
CN101667157A (zh) | 闪存数据传输方法、闪存储存***及控制器 | |
CN104317753A (zh) | 存储设备及其数据读写方法 | |
US9990134B2 (en) | Command tunneling in a hybrid data storage device | |
CN114746834A (zh) | 基于分区状态的分区附加命令调度 | |
CN103885724A (zh) | 基于相变存储器的存储***结构及其损耗均衡算法 | |
CN109815157B (zh) | 编程命令处理方法与装置 | |
CN102129353A (zh) | 闪存储存***、闪存控制器与数据写入方法 | |
TWI415128B (zh) | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 | |
CN102362263A (zh) | Ssd控制器与ssd控制器的操作方法 | |
US20150161038A1 (en) | System and Method of Operation for High Capacity Solid-State Drive | |
WO2021230003A1 (ja) | メモリモジュール | |
CN201156432Y (zh) | 一种实现nor flash坏块管理的控制电路 | |
CN102456401B (zh) | 区块管理方法、存储器控制器与存储器储存装置 | |
TWI537726B (zh) | 資料讀取方法、快閃記憶體控制器與儲存系統 | |
CN113419674B (zh) | 数据编程管理方法、存储器及其控制器,以及计算机*** | |
CN103678159A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140305 Termination date: 20160427 |