Nand闪存控制器及其写入控制方法

文档序号:6384432阅读:385来源:国知局
专利名称:Nand闪存控制器及其写入控制方法
NAND闪存控制器及其写入控制方法技术领域
本申请涉及一种NAND闪存控制器。
背景技术
闪存(flash)是一种常见的非易失性存储器。根据存储单元的连接方式不同,闪 存分为NOR闪存和NAND闪存。NOR闪存的存储单元是并行连接的,且具有独立的地址线和 数据线,可以直接寻址每一个存储单元。NAND闪存的存储单元是串行连接的,且地址线和数 据线共用,不能直接寻址每一个存储单元。
NAND闪存被分为若干块(block),每个块被分为若干页(page),每个页包含若干 字节(byte),每个字节为8比特(bit)。NAND闪存以页为单位进行读取和写入,以块为单位 进行擦除。NAND闪存依赖FN隧穿(Fowler-Nordheim Tunneling)效应写入和擦除数据,其 平均写入/擦除循环次数在10万次左右(SLC型)、I万次左右(MLC型)、1000次左右(TLC 型)。其中SLC型、MLC型、TLC型分别表示每个存储单元可存储I个、2个和3个比特。
请参阅图1,这是NAND闪存控制器的一个示例。NAND闪存100与主机300之间由 NAND闪存控制器200进行连接。所述NAND闪存100用于存储数据和校验码。所述主机300 是计算或媒体装置,包括计算机、手机、平板电脑、数码相机等。
所述NAND闪存控制器200包括
——闪存接口单元201,通过NAND闪存总线与NAND闪存100相连接,并接受系统 接口单元205的控制对NAND闪存100进行数据存储操作,包括读取、写入、擦除等。常见的 NAND闪存100的接口类型包括Normal、Toggle、ONFI等。
——数据缓存单元202,接受系统接口单元205的控制,缓存向NAND闪存100写入 的数据以及从NAND闪存100读取的数据,从而可靠地保护写入和读取过程中的临时数据。
—ECC编码单元203,接受系统接口单元205的控制,执行编码算法,为数据生成 校验码。
—ECC解码单元204,接受系统接口单元205的控制,执行解码算法,根据校验码 判断数据是否出错,并在出错时对数据纠错。
ECC表示Error Checking and Correction(差错检测与修正),常用的ECC编码和 解码算法包括 Hamming(汉明)、RS(Reed_Solomon,里德-所罗门)、BCH(Bose、Ray-Chaudhuri 与 Hocquenghem)等。
——系统接口单元205,通过系统总线与主机300相连接,接收并处理主机300发 出的命令,对闪存接口单元201、数据缓存单元202、ECC编码单元203、ECC解码单元204进 行控制,实现NAND闪存控制器200与主机300的数据读写交互。
为了延长NAND闪存的使用寿命,目前普遍采用损耗均衡(wear-leveling)算法。 该算法一方面管理所有可用的空闲块,选择擦除次数最少的空闲块用于下一次写入操作; 另一方面管理所有可用的可擦除块,试图平衡所有可用的可擦除块的损耗。
然而,NAND闪存在同一个块中的不同页的写入/擦除循环次数也是不同的,差别甚至可达I个数量级以上。采用损耗均衡算法只能以块为单位进行一定程度上的均衡使 用,无法有效地以页为单位进行均衡使用。发明内容
本申请所要解决的技术问题是提供一种NAND闪存控制器及其写入控制方法,可 以对NAND闪存的写入操作以页为单位进行均衡管理,从而有效控制每个页的写入/擦除循 环次数,最大化地延长NAND闪存的使用寿命。
为解决上述技术问题,本申请NAND闪存控制器的写入控制方法包括如下步骤
第I步,对于首次使用的、或者未存储任何数据的NAND闪存,通过全局扫描将所有 页分类为误比特率高的页地址空间、误比特率低的页地址空间之一;
第2步,为NAND闪存上的所有可用页建立页属性链表,其中包括所有可用页的页 地址和所述分类信息;
第3步,标记当前待写入数据是重要数据、或是非重要数据;
第4步,在当前待写入数据是非重要数据的情况下,标记当前逻辑地址为写入频 率高、或是写入频率低;
第5步,根据当前待写入数据是否为重要数据、以及当前逻辑地址的写入频率高 低,查找页属性链表得到当前待写入数据的页地址。
实现上述写入控制方法的NAND闪存控制器包括系统接口单元;所述系统接口单 元包括
—缺陷扫描模块,用来对NAND闪存进行缺陷检测,并将所有页面根据误比特率 分为两类,还生成页属性链表;
——数据标记模块,用来标记当前待写入数据的重要性;
——逻辑地址标记模块,用来统计当前逻辑地址在以往进行过写入操作的次数, 并标记当前逻辑地址的写入频率;
——物理地址分配模块,根据当前待写入数据的重要性和当前逻辑地址的写入频 率,通过查找页属性链表得到当前待写入数据的实际存储的物理地址;
——页属性链表,包括NAND闪存的所有可用页的页地址和分类信息。
本申请为NAND闪存提供了一种写入控制方法,通过动态地分配写入数据的物理 地址,使NAND闪存的各页面的写入/擦除循环次数保持均衡,从而实现延长NAND闪存的使 用寿命。


图1是NAND闪存控制器的结构示意图2是本申请NAND闪存控制器的写入控制方法的流程图3是实现本身申请所述的写入控制方法的系统接口单元的结构示意图。
图中附图标记说明
100为NAND闪存;200为NAND闪存控制器;201为闪存接口单元;202为数据缓存 单元;203为ECC编码单元;204为ECC解码单元;205、205’为系统接口单元;300为主机; 501为缺陷扫描模块;502为数据标记模块;503为逻辑地址标记模块;504为物理地址分配模块;505为页属性链表。
具体实施方式
请参阅图2,这是本申请NAND闪存控制器的写入控制方法的一个实施例。其包括 如下步骤
第I步,对于首次使用的、或者未存储任何数据的NAND闪存100,通过全局扫描发 现存储功能缺陷。
具体做法为先向NAND闪存100的所有页写入固定数据,再读取所有页的数据; 将读取数据与写入数据做比较,统计出每页的错误比特数。将错误比特数>第一阈值的页 地址划归为误比特率高的页地址空间,将错误比特数< 第一阈值的页地址划归为误比特率 低的页地址空间。错误比特数=第一阈值的页地址或者划归为误比特率高的页地址空间, 或者划归为误比特率低的页地址空间。
例如,第一阈值的确定方法是以512字节为单位,每512字节容忍4比特错误; NAND闪存的页大小是512字节的几倍,第一阈值就是该倍数乘以4比特。例如对页大小是 4K字节的NAND闪存,4K字节是512字节的8倍,那么第一阈值就定为32比特。
优选地,用于产生所述固定数据的算法包括有March、March C> March C+等。
第2步,为NAND闪存100上的所有可用页建立页属性链表。所述页属性链表中包 括所有可用页的页地址和分类信息。所述分类信息只有两种属于误比特率高的页地址空 间、属于误比特率低的页地址空间。
以ECC编码单元203编码后数据大小为ECC编码单位,所述可用页表示第I步测 试时该页的所有ECC编码单位的错误比特数小于或等于ECC解码单元204所能纠正的ECC 编码单位的比特数的页。如果有页的任何一个或多个ECC编码单位的错误比特数大于ECC 解码单元204所能纠正的ECC编码单位的比特数,就属于不可用页。
例如,NAND闪存100的页大小为4096字节,ECC编码单元203的编码单位为2048 字节。那么每页就分为两个ECC编码单位。假设ECC解码单元204对每个ECC编码单位的 纠错能力是24比特。那么一页的两个ECC编码单位在第I步测试时的错误比特数均小于 或等于24比特,该页就是可用页;否则就是不可用页。
显然,可用页与不可用页的判断条件应该比误比特率高的页地址空间、误比特率 低的页地址空间的判断条件更为严格。否则,页属性链表上的所有可用页就都属于误比特 率低的页地址空间了。
第3步,标记当前待写入数据是重要数据、或是非重要数据。
标记原理依据主机300的操作系统或者用户设定。
优选地,操作系统文件和文件系统文件尽管改写的频率较低,也应当被标记为重 要数据。
第4步,存储在NAND闪存100中的数据具有两个地址——逻辑地址和物理地址。 逻辑地址是主机300分配给数据的。物理地址是数据在NAND闪存100中实际存储的页地 址。逻辑地址与物理地址之间存在映射关系。在逻辑地址不变的前提下,数据的物理地址 可能发生改变,但是这种物理地址的改变对于主机300是透明的。
待写入数据是指主机300准备向NAND闪存100中写入的数据,自然地,主机300也为待写入数据分配了逻辑地址。当前待写入数据被分配到的就是当前逻辑地址。
在当前待写入数据是非重要数据的情况下,统计以往向当前逻辑地址进行写入操 作的次数,标记写入次数> 第二阈值的当前逻辑地址为写入频率高,标记写入次数< 第二 阈值的当前逻辑地址为写入频率低。写入次数=第二阈值的当前逻辑地址或者标记为写入 频率闻,或者标记为与入频率低。
第二阈值由用户自行标记,较优实施算法是LFU (最不经常使用,Least FrequentlyUsed)或 LRU (最近最少使用,Least Recently Used)。
第5步,根据当前待写入数据是否为重要数据、以及当前逻辑地址的写入频率高 低,查找页属性链表得到当前待写入数据的页地址。
查表规则为为重要数据分配误比特率低的页地址空间;非重要数据中,为写入 频率高的当前逻辑地址映射误比特率低的页地址空间,为写入频率低的当前逻辑地址映射 误比特率高的页地址空间。
优选地,本申请总是为非重要数据的当前逻辑地址默认映射误比特率高的页地址 空间。只有非重要数据的当前逻辑地址的以往写入次数>第二阈值后,才为非重要数据的 当前逻辑地址改为映射映射误比特率低的页地址空间,同时将默认映射的误比特率高的页 地址空间释放。
用来实现上述写入控制方法的NAND闪存控制器仅需在系统接口单元进行改动, 图3给出了可以实现上述写入控制方法的系统接口单元的一个实施例。
所述系统接口单元205’包括
—缺陷扫描模块501,用来对NAND闪存100进行缺陷检测,并将所有页面根据误 比特率分为两类,还生成页属性链表205。这两种分类为误比特率低的页地址空间、误比 特率高的页地址空间。
——数据标记模块502,用来标记当前待写入数据的重要性。该标记分为两种重 要数据、非重要数据。
——逻辑地址标记模块503,用来统计主机300为当前待写入数据所分配的当前 逻辑地址在以往进行过写入操作的次数,并标记当前逻辑地址的写入频率。该标记分为两 种与入频率低、与入频率闻。
—物理地址分配模块504,根据当前待写入数据的重要性和当前逻辑地址的写 入频率,通过查找页属性链表505得到当前待写入数据的实际存储的物理地址,并将物理 地址与当前逻辑地址建立映射。
——页属性链表505,包括NAND闪存100的所有可用页的页地址和分类信 息。该分类信息分为两种误比特率低的页地址空间、误比特率高的页地址空间。链表 (Linkedlist)是一种常见的基础数据结构。
NAND闪存器件的存储特性是某些特定页的误比特率高,其他页的误比特率低。本 申请正是根据这一特性设计了一种NAND闪存控制器及其写入控制方法,通过动态地分配 写入数据的物理地址,使NAND闪存的各页面的写入/擦除循环次数保持均衡,从而能够大 大提高NAND闪存的可靠性,延长NAND闪存的使用寿命,降低NAND闪存的使用成本。
以上仅为本申请的优选实施例,并不用于限定本申请。对于本领域的技术人员来 说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内 。
权利要求
1.ー种NAND闪存控制器的写入控制方法,其特征是,包括如下步骤 第I步,对于首次使用的、或者未存储任何数据的NAND闪存,通过全局扫描将所有页分类为误比特率高的页地址空间、误比特率低的页地址空间之ー; 第2步,为NAND闪存上的所有可用页建立页属性链表,其中包括所有可用页的页地址和所述分类信息; 第3步,标记当前待写入数据是重要数据、或是非重要数据; 第4步,在当前待写入数据是非重要数据的情况下,标记当前逻辑地址为写入频率高、或是写入频率低; 第5步,根据当前待写入数据是否为重要数据、以及当前逻辑地址的写入频率高低,查找页属性链表得到当前待写入数据的页地址。
2.根据权利要求1所述的NAND闪存控制器的写入控制方法,其特征是,所述方法第I步采用的分类方法为先向NAND闪存的所有页写入固定数据,再读取所有页的数据;将读取数据与写入数据做比较,统计出每页的错误比特数;将错误比特数 > 第一阈值的页地址划归为误比特率高的页地址空间,将错误比特数 < 第一阈值的页地址划归为误比特率低的页地址空间;错误比特数=第一阈值的页地址或者划归为误比特率高的页地址空间,或者划归为误比特率低的页地址空间。
3.根据权利要求2所述的NAND闪存控制器的写入控制方法,其特征是,用于产生所述固定数据的算法包括March、March C、March C+。
4.根据权利要求2所述的NAND闪存控制器的写入控制方法,其特征是,所述第一阈值为4比特X页大小/512字节。
5.根据权利要求2所述的NAND闪存控制器的写入控制方法,其特征是,所述可用页是指该页的所有ECC编码单位的错误比特数均低于ECC解码单元所能纠正的ECC编码单位的比特数的页。
6.根据权利要求1所述的NAND闪存控制器的写入控制方法,其特征是,所述方法第3步中,操作系统文件和文件系统文件总是标记为重要数据。
7.根据权利要求1所述的NAND闪存控制器的写入控制方法,其特征是,所述方法第4步采用的标记方法为统计当前逻辑地址在以往进行过的写入操作次数,标记写入次数>第二阈值的当前逻辑地址为写入频率高,标记写入次数 < 第二阈值的当前逻辑地址为写入频率低;写入次数=第二阈值的当前逻辑地址或者标记为写入频率高,或者标记为写入频率低。
8.根据权利要求7所述的NAND闪存控制器的写入控制方法,其特征是,所述第二阈值的标记算法包括LFU、LRU。
9.根据权利要求1所述的NAND闪存控制器的写入控制方法,其特征是,所述方法第5步采用的查表规则为为重要数据分配误比特率低的页地址空间;非重要数据中,为写入频率高的当前逻辑地址映射误比特率低的页地址空间,为写入频率低的当前逻辑地址映射误比特率高的页地址空间。
10.一种实现写入控制方法的NAND闪存控制器,包括系统接ロ単元;其特征是,所述系统接ロ单元包括 ——缺陷扫描模块,用来对NAND闪存进行缺陷检測,并将所有页面根据误比特率分为·两类,还生成页属性链表; —数据标记模块,用来标记当前待写入数据的重要性; —逻辑地址标记模块,用来统计当前逻辑地址在以往进行过写入操作的次数,并标记当前逻辑地址的写入频率; —物理地址分配模块,根据当前待写入数据的重要性和当前逻辑地址的写入频率,通过查找页属性链表得到当前待写入数据的实际存储的物理地址; —页属性链表,包括NAND闪存的所有可用页的页地址和分类信息。
全文摘要
本申请公开了一种NAND闪存控制器的写入控制方法,包括如下步骤第1步,对于首次使用的、或者未存储任何数据的NAND闪存,通过全局扫描将所有页分类为误比特率高的页地址空间、误比特率低的页地址空间之一。第2步,为NAND闪存上的所有可用页建立页属性链表,其中包括所有可用页的页地址和所述分类信息。第3步,标记当前待写入数据是重要数据、或是非重要数据。第4步,标记当前逻辑地址为写入频率高、或是写入频率低。第5步,根据当前待写入数据是否为重要数据、以及当前逻辑地址的写入频率高低,查找页属性链表得到当前待写入数据的页地址。本申请可以对NAND闪存的写入操作以页为单位进行均衡管理,延长NAND闪存的使用寿命。
文档编号G06F12/02GK103049389SQ20121054657
公开日2013年4月17日 申请日期2012年12月14日 优先权日2012年12月14日
发明者黄秀荪, 李琳, 黎骅, 毛天然 申请人:锐迪科科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1