一种多通道的nandflash控制器的制作方法

文档序号:6347608阅读:188来源:国知局
专利名称:一种多通道的nand flash控制器的制作方法
技术领域
本实用新型涉及一种闪速存储技术领域,特别涉及一种多通道的NAND FLASH控制
ο
背景技术
NAND型闪速存储器(NAND FLASH)是一种可在线进行电擦写的非易失半导体存储器,具有擦写速度快,功耗低,容量大,成本低等优点,广泛应用于U盘,固态硬盘,MP3,MP4 手机等电子产品中。不同于传统的EEPROM,NAND FLASH芯片中存储的数据必须通过专门的 NAND FLASH控制器进行读取、写入等操作。当一个NAND FLASH控制器对NAND FLASH芯片进行读入或是写入操作时,其具体的硬件连接方式如图1所示。NAND FLASH控制器与一片或是多片NANDFLASH芯片之间存在两组互联线,一组是控制总线,主要包含WRN,CEN, ALE, CLE, RBN等控制信号;另一组是数据总线,数据总线的宽度与通道数相关,若是一个通道,则数据总线的位宽为8bit,若是N个通道,则数据总线的宽度为8xN bit。数据总线上需要传送命令,地址和数据,其中命令与地址由NAND FLASH控制器传向NAND FLASH芯片;而数据的方向则是与具体的读取或是写入的操作相关。当写入操作时,数据由NAND FLASH控制器传向NAND FLASH控制芯片;读取操作时,数据由NAND FLASH芯片传向NAND FLASH控制器。这三种信息(命令,地址和数据) 在统一的数据总线上的传输是按照分时共享总线的方式完成的,具体的传输信息类型由控制总线中的CLE,ALE等控制信号标识。根据NAND FLASH的标准传输协议,在数据总线上传输的内容随每个具体的操作命令而不同,其格式序列如图2所示。在CSN,WRN, RDN, CLE和ALE等信号的控制下,数据总线上传输的内容依次为命令字10,物理地址11和数据12。其中,若在传输数据(1 期间的控制信号WRN为低,RDN为高,代表数据12由NAND FLASH控制器向NAND FLASH芯片进行写入操作;若在传输数据12期间的控制信号WRN为高,RDN为低,代表数据12由NAND FLASH控制器从NANDFLASH芯片进行读取操作;由于工艺加工的特殊性,特别近年来MLC工艺技术的不断普及,生产出来的NAND FLASH芯片总会存在一定的缺陷单元,这些缺陷单元存放的数据在被控制器读出时,会得到错误的结果。针对这种不可避免的生产缺陷错误,在NANDFLASH控制器中通常会设计相关的ECC纠错电路,在该ECC纠错电路能够实现对缺陷单元中的数据纠错。其基本的方式是, 在进行写入操作时,按照最小的写入数据块进行ECC运算,获得该数据块的ECC校验码,然后通过相同的数据写入通路将该部分校验码写入NAND FLASH芯片内对应存储区间的扩展区中。当通过NAND FLASH控制器进行读出操作时,该部分校验码会与保存的原始数据一起被通过NAND FLASH控制器读出,然后ECC纠错电路会利用该部分校验码检测出错误的数据,并进行纠正,然后将纠正后的数据输出给系统软件使用。由于ECC校验位字长是有限的,因此这种ECC电路的纠错能力也是有限的,当单位数据区间中的缺陷单元超过了 ECC纠错电路的纠错能力时,这个数据区间的是不安全的,必须被标识为坏块,不能被用于正常的数据存储。在具体的存储系统的应用中,应用程序对存储区间的使用是认为存储区间是连续的,可靠的,这种连续的可靠的由应用程序直接访问的存储空间被称为是逻辑地址区间,而因为存在坏块而导致的NAND FLASH芯片上不连续的存储区间被称为是物理区间。为了实现应用程序在存在有坏区的NAND FLASH中进行有效,可靠的存放,在NAND FLASH驱动程序中必须有一个称为FTL(Flash Translation Layer)的部件,该软件部件可以根据实际的 NAND FLASH芯片的坏区信息生成并维护着一个逻辑地址区间到物理区间的地址映射表,并根据该地址映射表实现逻辑地址区间到物理地址空间的映和转换。如图3所示,13-19代表应用程序所访问的逻辑地址区间,由逻辑地址进行寻址。20-27则为NANDFLASH芯片内部的物理地址区间,由具体的物理地址进行寻址。逻辑地址区间中每个标号对应的寻址空间与物理区间中每个标号对应的寻址空间的大小是相同的,为一个或多个物理块(BLOCK)的大小。其中区间20,21,23,24,沈,27为好区;而22和25为坏区;从左到右的箭头表示从逻辑空间到物理空间的块地址的映射关系,该映射关系由FTL软件进行管理、维护和使用。当应用程序要完成对逻辑地址区间的某个区域进行读取或写入操作时,FTL软件能够通过查表的方式将逻辑空间的地址转换为物理区间的地址,然后将该物理地址传递给 NAND FLASH芯片,通过NAND FLASH芯片实现对物理区间的具体地址进行相应的读写操作。现有技术一是采用单通道的NAND FLASH控制器对单片NAND FLASH芯片进行读写操作,即NAND FLASH芯片仅为一颗,其数据总线的宽度也仅为Sbit ;该方案中数据总线上传输的信息序列如图2所示,其逻辑地址与物理地址的映射关系如图3所示。通过软件部件FTL功能的实施,该技术方案能够避开对NANDFLASH芯片中的坏区而支持应用软件对 NAND FLASH芯片的读取和写入操作。但是,此方法由于同时只能对一颗NAND FLASH芯片进行读写操作,数据的传输只能是通过唯一的Sbit数据总线进行传输,因此其读写性能不高,特别是对大文件的读写操作,效率尤其低下。现有技术二采用了多通道(N个)的NAND FLASH控制器对多片NAND FLASH芯片进行并行读写。即NAND FLASH芯片可以是N颗,其数据总线的宽度为SxNbit;采用这种技术方案,可以实现同时对多颗NAND FLASH芯片进行读写操作,这在对NAND FLASH芯片的访问速度有了极大的提升。但是,对NAND FLASH芯片中坏块的管理是按照统一寻址的模式进行, FTL软件部件采用的逻辑地址和物理地址的映射关系如图4所示(以四通道为例),28-31 代表应用程序所访问的逻辑地址区间,每个标号对应的寻址空间为4个物理块(BLOCK)的实际空间,由逻辑地址进行寻址。32-39则为第一片NAND FLASH芯片的物理地址区间(对应通道1),40-47则为第二片NAND FLASH芯片的物理地址区间(对应通道2),48-55则为第三片NAND FLASH芯片的物理地址区间(对应通道3),56-63则为第四片NAND FLASH芯片的物理地址区间(对应通道4),每个标号对应一个实际的物理块,由具体的物理地址进行寻址,其中物理块34,45,51,63分别为第一片,第二片,第三片和第四片NAND FLASH芯片中的坏块。此方案中由于是对所有通道采用了统一的坏块管理模式,在每一次操作中,NAND FLASH控制器采用同一个物理地址,同时访问所有通道中的NAND FLASH芯片。因此,由NAND FLASH控制器发起的每一次操作所采用的物理地址对每个通道来讲都是相同的,同时访问所有通道中的NAND FLASH芯片的这个地址区间对应的物理块,一旦某个通道对应的NAND FLASH芯片有一个坏块,则在其他通道上与这个坏块相同物理地址的物理块无论好坏,均会被认为是坏块而被FTL维护的地址映射表所屏蔽。这种粗犷的坏块统一管理机制对所有NAND FLASH坏块分布相同的情况是有效的, 但随着半导体工艺加工缺陷的随机性,这种预期坏块分布完全相同的假设是不成立。一旦并联在一起使用的所有NAND FLASH芯片中的某一颗芯片存在坏块,则在其他NAND FLASH 芯片中与这个坏块相同地址的区域都被认为是坏块区域,这对有效的物理存储容量是很大的浪费,单颗芯片中的坏块区间越多,则整体存储容量的浪费就越大,并联NAND FLASH芯片越多,浪费就越大。因此,这种现有支持多通道模式的技术方案二对于性价比要求高的大容量存储系统有着致命的缺陷。

实用新型内容本实用新型的目的在于提供一种多通道的NAND FLASH控制器,其该控制器可并联操作的多片NAND FLASH芯片,并对每片NAND FLASH芯片的坏块区间进行分别管理。本实用新型通过这样的技术方案解决上述的技术问题一种多通道的NAND FLASH控制器,其与多个NAND FLASH芯片通讯连接,包括系统总线和片上总线接口,该控制器包括多个通道专用硬件,每个通道专用硬件内均包括一个数据缓冲区和与该数据缓冲区连接的ECC校验模块;存放各个通道的物理地址的地址寄存器;具有多通道不同地址输出端和输入端的数据序列状态机,其可从地址寄存器中获取物理地址并访问数据缓冲区或NAND FLASH芯片;用于控制数据序列状态机以及每个通道专用硬件内的ECC校验模块的硬件控制
ο本实用新型具有以下优点在对多通道NAND FLASH控制器的设计中,实现对每颗NAND FLASH芯片的坏块信息进行独立管理,避免因统一管理导致的对存储容量的浪费问题。在NAND FLASH控制器对多颗NAND FLASH芯片进行并行多通道读取和写入操作时,对每颗NAND FLASH芯片的操作地址是可以不同的。本发明所涉及的输出时序状态机为每个通道都设立了独立的地址寄存器,从而能够支持驱动软件同时对多个通道的不同区域的访问。

图1为NAND FLASH控制器和NAND FLASH芯片连接示意图;图2为图1中控制总线和数据总线的命令序列示意图;图3为现有技术一中单通道模式下逻辑地址区间和物理地址区间的映射关系图;图4为现有技术二中采取统一坏块管理方式下的多通道模式的逻辑地址区间和物理地址区间的映射关系图;图5为本实用新型提供的多通道的NAND FLASH控制器的硬件连接示意图;图6为本实用新型提供的多通道的NAND FLASH控制器采用多通道模式下的逻辑地址区间和物理地址区间的映射关系图。
具体实施方式
请参阅图1,本实用新型提供一种多通道的NAND FLASH控制器,其通过片上总线接口 67连接到系统总线66上,系统总线66上有两个主控模块MCU(Microcontroller Unit,微控制单元)64以及DMA控制器65。NAND FLASH控制器包括N个通道专用硬件、地址寄存器75、数据序列状态机74以及硬件控制器76。其中,每个通道专用硬件均包括一个数据缓冲区和ECC校验模块,数据缓冲区用于存放准备写入的数据,ECC校验模块用于对输出到本通道的每个字节的数据进行 ECC运算,得到ECC校验码。例如,第一通道专用硬件包括数据缓冲区68和ECC校验模块 69 ;第二通道专用硬件包括数据缓冲区70和ECC校验模块71,以此类推,此处不再敖述。硬件控制器76的输出端连接到数据序列状态机74,同时分别连接到每个通道专用硬件中的ECC校验模块的输入端,硬件控制器76根据软件的具体设置对数据序列状态机 74和各通道专用硬件的ECC校验模块进行相应的控制。地址寄存器75的输入端与片上系统总线接口 67连接,其输出端连接到数据序列状态机74。地址寄存器75存放各个通道的物理地址,其大小与所设计的通道数相关。本实用新型实施例中的数据序列状态机74具有多个通道不同地址并行输出的功能,同时还可对各个通道的数据缓冲区进行并行访问。数据序列状态机74根据硬件控制器76下发的读取数据指令从地址寄存器75中获取物理地址,产生控制总线和数据总线相应的时序波形实现对NANDFLASH芯片的读取访问,并自启动ECC校验模块对存放在数据缓冲区中错误数据进行校验;数据序列状态机74 根据硬件控制器76下发的写入数据指令从地址寄存器75中获取物理地址,产生控制总线和数据总线相应的时序波形,实现对NAND FLASH芯片的写入访问,并同时输入各个通道的 ECC校验码到各个通道NANDFLASH芯片中对应物理区间的扩展区中。当需要将特定的数据写入到某特定的逻辑地址区间时,包括如下步骤步骤一、先启动系统DMA控制器65,将需要写入的数据批量搬入对应通道的数据缓冲区等;步骤二、将写入的逻辑地址传递给运行在MCU 64中的FTL软件,FTL软件查询地址映射表获得相应的物理地址。由于本实用新型所涉及的坏块管理机制是对各个通道进行独立管理的,因此该查询结果可得到对应该逻辑地址区间的每个通道对应的NAND FLASH芯片的具体的物理地址,这些地址可以是不同的。步骤三、将上述各个通道的物理地址通过系统总线66以及片上总线接口 67写入地址寄存器75 ;步骤四、硬件控制器76向数据序列状态机74发出写入操作的指令,数据序列状态机74在收到写入指令后,将主动地从地址寄存器75获得各个通道的物理地址和从各个通道的数据缓冲区并行地获取数据,然后按照NAND FLASH定义的标准波形序列完成对NAND FLASH芯片的批量写入;与此同时各个通道的ECC校验模块对输出到本通道的每个字节的数据进行ECC运算,得到ECC校验码;步骤五、所述ECC校验码在本次批量写入结束后再由数据序列状态机74输出写入到各个通道NAND FLASH芯片中对应物理区间的扩展区中。[0040]当需要从某逻辑地址区间读取相应的数据时,包括如下步骤步骤一、由MCU 64内部的FTL软件查询地址映射表,查找特定的逻辑地址对应的物理地址,由于本实用新型所涉及的坏块管理机制是对各个通道进行独立管理的,因此该查询结果可得到对应该逻辑地址区间的每个通道对应的NANDFLASH芯片的具体的物理地址,这些地址可以是不同的;步骤二、通过系统总线66以及片上总线接口 67将所述的物理地址写入对地址寄存器75 ;步骤三、通过硬件控制器76向数据序列状态机74发出读取操作的指令,数据序列状态机74收到读取指令后,将主动地从地址寄存器75获得各个通道的物理地址,然后按照 NAND FLASH定义的标准波形序列完成对NAND FLASH芯片的批量读出操作,读出的数据包含了原始的有效数据和位于对应扩展区中ECC校验码,这些数据会被存放在各自通道的数据缓冲区中;步骤四、当数据序列状态机74完成了本次读取的命令序列后,将自动启动ECC校验模块对存放在数据缓冲区中错误数据就行纠正;步骤五、硬件控制器76发出请求给DMA控制器65,然后由DMA控制器65将数据缓冲区中的数据搬运到系统内存当中。本实用新型提供的多通道的NAND FLASH控制器,针对每个通道中对应NANDFLASH 芯片都有一个独立的坏区标识表,其标识了本通道对应NAND FLASH芯片的坏区信息。所以, 当NAND FLASH控制器在管理整个存储空间时,可根据每颗NAND FLASH芯片坏区标识表,形成统一的逻辑地址到物理地址的地址映射关系表。请参阅图6,其实以4通道的架构为例进行说明,其中77-80为逻辑地址区间,81-86为通道1对应的NAND FLASH的物理地址块,其中83为坏块,87-92为通道2对应的NAND FLASH的物理地址块,其中92为坏块,93-98为通道3对应的NAND FLASH的物理地址块,其中96为坏块,99-104为通道4对应的NANDFLASH 的物理地址块,其中没有坏块。逻辑地址区间的每个存储区间的容量为4个物理块的大小, 即每个逻辑存储区间与4个物理块对应,这4个物理块分布在4个通道中,每个通道提供一个好的物理块与其对应。逻辑地址区间77与物理地址块81,87,93和99对应;其中物理块 81,87,93和99分别来自于通道1,通道2,通道3和通道4上的NAND FLASH芯片的物理地址区间;逻辑地址区间79与物理地址块85,89,95和101对应;每组物理块的地址可以是相同的,如物理块81,87,93和99 ;也可以是不同的,如物理块85,89,95和101。本实用新型所描述的NAND FLASH控制器对NAND FLASH芯片的读取和写入操作的命令序列是采用硬件状态机的方式实现的,该硬件状态机按照具体的命令类型,控制从 NAND FLASH控制器到NAND FLASH芯片之间的所有连线信号,发出相应的命令数据序列。本实用新型所描述的NAND FLASH控制器可以支持包括2通道在内的多通道操作, 每个通道均包括一个独立的数据缓冲区和一个独立的ECC校验模块。本实用新型所涉及的ECC校验模块可从各个通道的数据缓冲区传入数据序列状态机74的同时进行ECC运算,得到ECC校验码,同时也可在数据从数据序列状态机74传入各个通道的数据缓冲区的同时进行ECC运算,并在数据传输完毕后对各自通道的数据进行纠错。本实用新型中运行在MCU 64上的FTL软件组件可对各通道中的NAND FLASH进行独立的坏块管理,其相应的地址映射表具有对应多通道的多块不同地址的而物理地址区间映射到一个逻辑地址区间。 以上所述仅为本实用新型的较佳实施方式,本实用新型的保护范围并不以上述实施方式为限,但凡本领域普通技术人员根据本实用新型所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围内。
权利要求1.一种多通道的NAND FLASH控制器,其与多个NAND FLASH芯片通讯连接,包括系统总线和片上总线接口,其特征在于该控制器包括多个通道专用硬件;存放各个通道的物理地址的地址寄存器;具有多通道不同地址输出端和输入端的数据序列状态机,其可从地址寄存器中获取物理地址并访问数据缓冲区或NAND FLASH芯片;用于控制数据序列状态机以及每个通道专用硬件内的ECC校验模块的硬件控制器。
2.如权利要求1所述的多通道的NANDFLASH控制器,其特征在于系统总线上包括微处理单元。
3.如权利要求2所述的多通道的NANDFLASH控制器,其特征在于地址寄存器的输入端与片上总线接口连接,用于保存各个通道的物理地址。
专利摘要本实用新型提供一种多通道的NAND FLASH控制器,其与多个NAND FLASH芯片通讯连接,包括系统总线和片上总线接口。该控制器包括多个通道专用硬件,每个通道专用硬件内均包括一个数据缓冲区和与该数据缓冲区连接的ECC校验模块;存放各个通道的物理地址的地址寄存器;具有多通道不同地址输出端和输入端的数据序列状态机,其可从地址寄存器中获取物理地址并访问数据缓冲区或NAND FLASH芯片;用于控制数据序列状态机以及每个通道专用硬件内的ECC校验模块的硬件控制器。
文档编号G06F13/16GK202003346SQ201020674560
公开日2011年10月5日 申请日期2010年12月22日 优先权日2010年12月22日
发明者余少华, 胡健, 胡兴微 申请人:上海宇芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1