CN101118783A - 带有闪存坏块控制系统的电子数据闪存卡 - Google Patents
带有闪存坏块控制系统的电子数据闪存卡 Download PDFInfo
- Publication number
- CN101118783A CN101118783A CNA2007101487005A CN200710148700A CN101118783A CN 101118783 A CN101118783 A CN 101118783A CN A2007101487005 A CNA2007101487005 A CN A2007101487005A CN 200710148700 A CN200710148700 A CN 200710148700A CN 101118783 A CN101118783 A CN 101118783A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- memory device
- data
- flash
- storage unit
- 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.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种包括可通过主机访问的电子数据闪存卡,这种电子数据闪存卡由连接至闪存设备的闪存控制器和输入-输出接口电路构成。在一个实施方案中,闪存卡采用USB接口电路和主机通讯。闪存控制器包括仲裁器,用于建立逻辑地址和物理块地址之间的映射和执行块管理操作,块管理操作包括:在可用块中存储重新分配的数据、把过期块中的有效数据重新放置到上述可用块中并把逻辑块地址重新分配给上述可用块物理块地址、搜索闪存设备的坏块并用保留块替换、有效数据被重新放置到可用块中后擦除过期块进行回收以及块的擦除计数损耗平衡等。此外,各闪存设备都设有内部缓冲区用于加速块管理操作。
Description
技术领域
本发明涉及电子数据闪存卡,更具体地说,是关于闪存设备带有闪存块控制系统的电子数据闪存卡。
背景技术
机密数据文件通常存储在软盘中,或者通过需要口令或者安全加密的网络传送。机密文档则通过安全封印发送。然而,口令、加密、安全封印都有可能遭到破坏(被解密),从而给机密数据文件和机密文档带来危险,导致机密信息被未授权访问。
随着闪存技术变得越来越先进,闪存正逐步取代在移动系统中作为存储介质的传统磁盘的地位。和软盘或磁性介质硬盘相比,闪存具有以下一些显著优点:高阻抗和低功率耗散。由于闪存的物理尺寸小,更加有利于移动系统的发展。相应地,闪存的发展也得益于其与移动系统的兼容性和低功耗。
然而,闪存也有其固有限制。首先,已编程的闪存单元必须经过擦除才能进行再次编程。同时,闪存单元只有有限的使用寿命;即,闪存单元在失效前只能进行有限次数的擦除操作。例如,NAND闪存单元典型的最大擦除次数为一百万次。相应地,由于“写入前擦除”的特点,闪存存取速度较慢,而且反复的擦除操作将会损坏闪存单元。
闪存设备的存储单元阵列由典型的基本结构构成,即分为“扇区”或“页面”,并由“扇区”或“页面”构成“块”。一个扇区由512个字节(小块格式)或2112个字节(大块格式)构成一个数据段,由16个字节或64个字节构成一个备用段。一个块由一组扇区构成,例如:16、32、64或更多扇区,扇区数量根据具体情况确定。如果其中某个扇区包含一个或多个无效存储单元(即,编程或擦除操作过程中,一个或多个存储单元无法实现既定的最小操作状态),则认为这是一个“坏”块。如果一个块的全部存储单元都功能完好,则认为这是一个“好”块。
闪存设备可能一开始就有大量坏块(例如,10%)。此外,闪存设备原来的好块也可能在制造商规定的使用寿命之内变成坏块。这些坏块将在闪存设备的写入或擦除操作中表现出来。不幸的是,不断增加的坏块发生率极大地降低了闪存系统的性能。
大部分闪存系统(例如,电子数据闪存卡)同时使用多个闪存设备,并通过在多个闪存设备阵列中搜索可用好块的方法来解决坏块问题。存储在坏块中的有效数据(或分配给坏块的数据)需要重新分配或重新放置在一个或多个可用好块中。传统方法在系统全部闪存设备中搜索具有可用好扇区的可用好块,在搜索过程中,典型的重新分配/重新放置过程包括一个把数据传输外部缓冲区的过程(即,存储到闪存设备之外)。如果找到了足够数量的可用好扇区,再把该数据写回这些块中。
上述传统重新分配/重新放置过程可能会出现的一个问题,即如果一个或多个闪存设备达到容量极限(即,没有剩余可用好块),则闪存系统必须继续搜索其它闪存设备,直到搜索到具有足够数量的可用好扇区的可用好块。这可能导致外部缓冲区拥塞,从而导致闪存系统的总体性能的降低。
闪存设备中可用好块的数量随着闪存设备存储量越来越接近容量和过期(无效)块数量的增加而减少。过期块是指包含过期扇区的好块,过期扇区是指存储过有数据而该数据又被更新过的扇区。数据被更新后,过期数据仍保留在过期扇区中,被更新数据则被写入新扇区,该新扇区即成为包含有效数据的有效扇区。有效数据包括被更新数据和未被更新数据。相应地,过期块数量将随着文件修改或删除而增加。
过期块通常通过“垃圾回收”操作循环使用。在“垃圾回收”操作过程中,过期块将被擦除以便再次执行写入操作。过期块可能同时包含过期数据和有效数据。有效数据必须在过期块被擦除前复制到可用好块中。在垃圾回收操作中,过期块中的有效数据将复制到外部缓冲区,然后执行可用好块搜索程序,在全部闪存设备中搜索和定位可用好块。一旦可用好块搜索成功,外部缓冲区中的有效数据将被复制回可用好块中。和重新分配/重新放置过程相同,传统的垃圾回收操作也可能发生外部缓冲区拥塞问题,导致闪存系统总体性能的降低。
另一个坏块解决方案为包括块替换过程的“损耗平衡”操作。在该操作中,有效数据将从一个块向另一个块转移,从而使数据分布更加均匀。然而,该操作同样包括外部缓冲区操作和多个设备中可用好块的搜索操作过程。如上所述,该操作也可能导致外部缓冲区拥塞,导致闪存系统总体性能的降低。
通常,传统方法没有解决在多个闪存设备中搜索可用好块所需的附加处理时间的问题,并且这些问题目前还没有一个很好的解决方案。已知的解决方案同样没有解决搜索过程中外部缓冲区潜在的拥塞问题。然而,这些限制都将影响坏块管理、垃圾回收和损耗平衡的效率。
发明内容
我们提供了一套改进的闪存控制系统和方法。该系统和方法必须能解决处理坏块、垃圾回收和损耗平衡过程中可用好块搜索所需处理时间的问题。同时,该系统和方法必须简单可行、成本合理并且可以通过当前技术方便地实现。
本发明主要针对包含闪存设备的电子数据闪存卡、指纹传感器、输入/输出接口电路和处理单元。电子数据闪存卡可通过主机(外部计算机)访问,例如个人计算机,笔记本电脑或其它电子主机设备。由于电子数据闪存卡的便携性和耐用性,个人数据可以用加密形式存储在闪存设备中,这样只有通过诸如卡身上的指纹传感器之类的安全措施才能访问,确保不被未授权人员误用。
一种电子数据闪存卡,可通过建立通讯连接被主机访问,由以下各部分构成:
卡身;
一个或多个安装于卡身的闪存设备,闪存设备包含数个非易失性存储单元用于存储数据文件;
安装于卡身的输入/输出接口电路,用于建立和主机之间的通讯;
安装于卡身的闪存控制器,与所述的闪存设备和所述的输入/输出接口电路之间的电气连接,其中闪存控制器由以下各部分构成:
(a)闪存控制器的处理单元根据闪存检测算法代码确定某闪存设备是否被支持的方法,
(b)识别闪存设备无效存储单元的仲裁方法,以及把物理块地址指派给相关逻辑块地址的仲裁方法,其中,各所述物理块地址对应多个闪存设备存储单元;
(c)可选操作方法:
可编程模式:在该模式下,上述闪存控制器激活输入/输出接口电路以接收来自主机的数据文件,并且把数据文件储存到上述闪存设备的第一物理文件地址(通过上述仲裁方法被指派给第一逻辑块地址),上述可编程模式由从主机发送至闪存控制器的相关写入命令启动;
数据读取模式:在该模式下,上述闪存控制器接收主机发出的读取命令和第一逻辑块地址,并激活上述输入/输出接口电路读取第一物理地址的数据文件传送给主机;
数据复位模式:该模式下,数据文件将从闪存设备被擦除。
所述的仲裁方法包括该闪存设备中功能存储单元搜索的方法,和把一个或多个无效存储单元相关的第一逻辑块地址重新分配给功能存储单元相关的第二物理块地址的方法。
所述的仲裁方法还包括识别先前被指派给所述第一逻辑块地址的无效存储单元的方法,识别第二物理块地址所指向的功能正常且未被指派的存储单元的方法,以及把所述第一逻辑块地址重新分配给第二物理块地址的方法。
所述的仲裁方法还包括识别第一逻辑块地址中被更新数据文件的方法,把第一逻辑块地址重新分配给第二物理块地址的方法,以及把被更新的数据文件存储到第二物理块地址所指向的存储单元的方法。
所述的仲裁方法还包括在被更新数据文件被存储到第二物理块地址所指向的存储单元后,从第一物理块地址指向的存储单元中擦除过期数据的方法,以及把第一物理块地址重新分配给第二逻辑块地址的方法。
所述的仲裁方法还包括第一物理块地址所指向的存储单元的第一擦除计数和第二物理块地址所指向的存储单元的第二擦除计数的比较方法,以及当第一擦除计数大于第二擦除计数时,把数据文件从第一物理块地址的存储单元向第二物理块地址的存储单元传输的方法。
上述第五种仲裁方法中,所述的闪存设备包括一个内部缓冲区,其中闪存控制器部分包含在把上述数据存储到所述第二物理块地址所指向的存储单元之前,在所述内部缓冲区临时存储上述数据文件的方法。
本发明中,所述的闪存设备包含第一闪存设备和第二闪存设备。
所述的第一闪存设备包含第一组存储单元,第二闪存设备包含第二组存储单元,其中,第一组存储单元大于或等于第二组存储单元。采用的所述仲裁方法包括在第一闪存设备中至少执行编程操作,数据读取操作或数据复位操作中的一项,并且同步在第二闪存设备中至少执行编程操作,数据读取操作或数据复位操作中的一项的方法。
所述的闪存设备包括一个内部缓冲区,其中闪存控制器部分包含在把上述数据存储到所述第一物理块地址所指向的存储单元之前,在所述内部缓冲区临时存储上述数据文件的方法。
所述的闪存控制器至少支持对第一闪存设备和第二闪存设备进行双通道并行访问和交错式访问两种方法的其中之一。
本发明的电子数据闪存卡,所述的输入/输出接口电路为USB接口电路,该USB接口电路包含采用BOT协议传输数据的方法。
本发明的电子数据闪存卡,所述的输入/输出接口电路可采用SD接口电路、MMC接口电路、CF接口电路、MS接口电路、PCI-Express接口电路、IDE接口电路或SATA接口电路。
本发明中,闪存控制器作为处理单元的一部分控制闪存设备的操作。处理单元与闪存设备和输入/输出接口电路相连接。闪存控制器逻辑包括闪存类型算法,用于检测该闪存设备是否为闪存控制器逻辑所支持的闪存类型。通过将闪存检测算法代码动态部分连同机密数据存储在至少一个闪存设备中,不但电子数据闪存卡只读存储器(ROM)的大小可以降低,而且新的闪存类型无需硬件调整而仅需调整存储于闪存中闪存类型检测算法代码的动态部分即可被支持,这样既降低了总体成本又消除了不必要的开发时间。
本发明的一种实施方案,电子数据闪存卡的处理单元可以通过选择工作在以下三个工作状态下:可编程模式、数据读取模式、复位模式。当处理单元处于可编程模式时,处理单元激活输入/输出接口电路接收来自主机的机密数据文件,并把数据文件储存在闪存设备中。当处理单元处于数据读取模式时,处理单元激活输入/输出接口电路把数据文件传输到主机中。当处理单元处于数据复位模式时,数据文件(以及参考用指纹数据)将从该闪存设备中被擦除。
在本发明实施方案中,处理单元为一个微处理器,该微处理器可以是8051、8052、80286、RISC、ARM、MIPS或数字信号处理器(DSP)。
在本发明另一个实施方案中,USB闪存设备和主机之间采用批量传输(BOT)协议高速传输数据。由于BOT传输的命令、数据、状态不但依赖于默认控制终端点还依赖于批量终端点,所以BOT协议是一种比CBI协议更加高效而且快速的传输协议。
在本发明另一个实施方案中,电子数据闪存卡(或其他闪存系统)包含带有处理器的闪存控制器,该处理器负责和系统连接的多个闪存设备的块管理操作。这些块管理操作包括坏块识别、过期块回收、损耗平衡操作。本发明中,处理器利用来自仲裁逻辑的数据,在块管理操作中,把可用好块搜索限制在某个特定的闪存设备中,而不像传统方法那样在全部闪存设备中进行搜索。此外,在某个闪存设备中搜索可用好块时,处理器将利用该闪存设备的内部缓冲区储存有效数据。通过把可用好块搜索限制在一个特定闪存设备中,并使用指定闪存设备的内部缓冲区,本发明可减少可用好块搜索时间并消除对外部缓冲区使用的需要,从而可以避免外部缓冲区拥塞,提高传统闪存系统的性能。相应地,块管理操作的速度将有显著提高。
附图说明
图1为本发明第一个实施方案的带有指纹识别能力的电子数据闪存卡方框图。
图2为本发明第二个实施方案的电子数据闪存卡电路原理方框图。
图3为本发明第三个实施方案的电子数据闪存卡采用的处理单元方框图。
图4为本发明第四个实施方案的电子数据闪存卡电路原理方框图。
图5为本发明第五个实施方案的闪存系统方框图。
图6为本发明图5所示的闪存系统仲裁逻辑、寄存器文件、映射表之间接口的详细方框图。
图7为传统块管理操作方框图。
图8为本发明的块管理操作方框图。
图9为本发明闪存坏块方法管理高级流程图。
图10为本发明闪存设备的详细方框图,该详细方框图可用于实现图6和图8所示的闪存设备。
图11为本发明的数据访问方法流程图。
图12为本发明的坏块替换方法流程图。
图13为本发明的垃圾回收操作方法流程图。
图14为本发明的损耗平衡操作方法流程图。
具体实施方式
参看图1,根据本发明实施方案,电子数据闪存卡10可通过接口总线13、读卡器12或其它接口机制(图中未示)被外部计算机(主机)9访问,电子数据闪存卡10包括卡身1、处理单元2、一个或多个闪存设备3、指纹传感器4、输入/输出接口电路5、可选显示单元6、可选电源(例如,电池)7、可选功能键8。
闪存设备3安装于卡身1上,以已知方式储存了一个或多个数据文件、参考口令以及通过扫描电子数据闪存卡10的一个或多个授权用户指纹获得的参考指纹数据。只有授权用户能访问所储存的数据文件。该数据文件可以为图片文件或文本文件。
指纹传感器4安装于卡身1上,通过扫描电子数据闪存卡10的用户指纹产生指纹扫描数据。指纹传感器4可参考本发明人共同拥有的美国专利“带有指纹识别能力的集成电路卡”,专利号为6,547,130,本发明采用该专利的技术方案。上述指纹传感器专利包括一个扫描单元阵列,该阵列定义了指纹扫描区域。指纹扫描数据包括通过扫描相应的扫描单元阵列线而获得的大量扫描线数据。扫描单元阵列线按照行和列的方式进行扫描。各扫描单元若检测到持卡人指纹脊则产生第一逻辑信号,若检测到指纹持卡人指纹谷则产生第二逻辑信号。
输入/输出接口电路5安装于卡身1上,激活后,接口总线13或读卡器12通过适当的插口建立和主机9之间的通讯。在本发明的一个实施方案中,输入/输出接口电路5包含一个通用串行总线(USB)、PCMCIA或RS232接口电路和控制逻辑结构,可与连接至或安装于主机9的插口相连。在另一个实施方案中,输入/输出接口电路5包含安全数字(SD)接口电路、多媒体卡(MMC)接口电路、袖珍闪存(CF)接口电路、记忆棒(MS)接口电路、PCI-Express接口电路、电子集成驱动器(IDE)接口电路、串行先进技术附件(SATA)接口电路,这些电路通过接口总线13或读卡器12和主机9连接。
处理单元2安装于卡身1上,通过卡身1上的导电线路与与闪存设备3、指纹传感器4和输入/输出接口电路5连接。在本发明的一个实施方案中,处理单元2可采用英特尔公司的8051、8052或80286微处理器。在其它实施方案中,处理单元2采用RISC、ARM、MIPS或其它数字信号处理器(DSP)。本发明中,处理单元2至少受部分储存在闪存设备3中的程序控制,这样处理单元2可以通过选择在以下三种模式下工作:(1)可编程模式:在该模式下,处理单元2激活输入/输出接口电路5接收来自主机9的数据文件和参考指纹数据,并把数据文件和参考指纹数据储存在闪存设备3中;(2)数据读取模式:在该模式下,处理单元2激活输入/输出接口电路5把存储于闪存设备3中的数据文件传输到主机9中;(3)数据复位模式:在该模式下,数据文件和参考指纹数据将从闪存设备3中擦除。操作中,主机9通过接口总线13或读卡器12和输入/输出接口电路5发送写入和读取请求到电子数据闪存卡10上的处理单元2,处理单元2通过闪存控制器(图中未示)从一个或多个闪存设备3读取或向其写入数据。在本发明的一个实施方案中,为了进一步确保安全,一旦检测到存储于闪存设备3的数据文件自上一次授权访问后超过了预设的时间极限,处理单元2将自动启动复位操作。
可选电源7安装于卡身1上,并与卡身1上的处理单元2和其它相关单元相连,为其提供电源。
可选功能键8安装于卡身1上,并与处理单元2连接,通过选择可使处理单元2工作于编程、数据读取或数据复位模式。功能键8可用于输入处理单元2的口令。处理单元2把输入的口令和存储在闪存设备3中的参考口令进行比较,若输入口令和参考口令一致,则启动电子数据闪存卡10的授权操作。
可选显示单元6安装于卡身1上,与处理单元2相连并受其控制,用于显示与主机9之间交换的数据文件以及电子数据闪存卡10的操作状态。
以下为本发明的部分优点:首先,电子数据闪存卡体积小、容量大,所以数据传输方便;其次,由于指纹的唯一性,电子数据闪存卡只允许授权人员访问卡上储存的数据文件,从而提高了安全性。
图2为本发明优选实施方案的电子数据闪存卡10A方框图,其中省略了指纹传感器和相关用户识别程序部分。为了降低集成成本,电子数据闪存卡10A包括一个高度集成的处理单元2A、输入/输出接口电路5A和闪存控制器21。输入/输出接口电路5A包括一个收发器模块,串行接口引擎块、数据缓冲器、寄存器和中断逻辑。输入/输出接口电路5A和内部总线相连,使输入/输出接口电路5A各个单元都能和闪存控制器21的各单元通讯。闪存控制器21包括一个微处理器单元、只读存储器(ROM)、RAM、闪存控制器逻辑、错误校正代码逻辑、通用输入/输出(GPIO)逻辑。在本发明的一个实施方案中,GPIO逻辑和数个LED相连,用于状态指示,例如:电源良好,闪存读取/写入中等,或和其它I/O设备相连。闪存控制器21和一个或多个闪存设备3相连。
在本实施方案中,主机9A设有功能键8A,在电子数据闪存卡10A操作过程中,通过接口总线或读卡器和处理单元2A连接。功能键8A用于选择电子数据闪存卡10A的工作模式:编程、数据读取或数据复位模式。功能键8A同时可用于向主机9A输入口令。处理单元2A把输入的口令和存储在闪存设备3中的参考口令进行比较,若输入口令和参考口令一致,则启动电子数据闪存卡10A的授权操作。
同时在本实施方案中,主机9A设有显示单元6A,在操作电子数据闪存卡10A的过程中,通过接口总线或读卡器与处理单元2A连接。单元6A用于显示与主机9A交换的数据文件以及电子数据闪存卡10A的操作状态。
图3为处理单元2A的详细框图。电子数据闪存卡10A设有功率调节器22,用于向一个或多个处理单元2A供电。电源根据电子数据闪存卡10A相关单元不同的要求提供不同电压的电源。电容器(图中未示)可用于提高电源稳定性。电子数据闪存卡10A设有复位电路23,用于向处理单元2A提供复位信号。上电后,复位电路23向全部单元发送复位信号。当内部电压达到稳定水平后,撤销复位信号,由电阻器和电容器(图中未示)保证足够长的复位调整时间。电子数据闪存卡10A同时包括一个石英晶体振荡器(图中未示),向处理单元2A内的PLL提供基频。
在本发明的实施方案中,输入/输出接口电路5A、复位电路23、功率调节器22被集成或部分集成在处理单元2A内。这种高集成度大大减少了所需的空间、复杂度和制造成本。
紧密性和成本对移动设备至关重要,例如这里所涉及的电子数据闪存卡。现代IC封装可以在一个IC封装中集成采用不同技术和材料的离散IC元件。例如,输入/输出接口电路为模拟和数字混合电路,可与处理单元集成到MCP(多芯片封装)中。复位电路和功率调节器为模拟电路,也可与处理单元同时集成到MCP(多芯片封装)中。
混合信号IC技术本质上允许同时集成模拟和数字电路。因此,更高度的集成技术可纳入处理单元2A模具中,包括输入/输出接口电路5A、闪存控制器21、复位电路23和功率调节器22。
在优选的实现方案中,通过利用多芯片封装技术或混合信号IC技术,实现处理单元2、输入/输出接口电路5、功率调节器22和复位电路23集成或部分集成。
闪存技术的进步促使了各种类型闪存设备的出现,以满足对不同性能、成本和容量的需求。例如,对于相同的形状系数,多层单元(MLC)闪存设备比单层单元(SLC)闪存设备具有更高的容量。AND或Super-AND闪存则被发明用于避开NAND闪存的知识产权问题。同时,大页面(2K字节)闪存比小页面(512字节)闪存具有更好的写入性能。此外,闪存的快速发展使得设备的容量不断提高。为了支持这些不同类型的闪存,闪存控制器必须能够相应地进行检测和访问。
在本发明的思想和范围之内,可同时或独立实现上述各新颖特点。例如,图4为本发明另一个实施方案的电子数据闪存卡10C(或电子数据储存介质、集成电路卡)。根据上述一个或多个实施方案,电子数据闪存卡10C可通过接口总线或读卡器(即通讯连接装置)被主机9A访问,由卡身1C、处理单元2C和一个或多个闪存设备3C构成,其中处理单元2C由闪存控制器21C和输入/输出接口电路5C构成。电子数据闪存卡10C可以是上述电子数据闪存卡10A的功能子系统,也可以是其他应用系统的功能子系统。
闪存设备3C受闪存控制器21C产生的命令控制,并在闪存设备中储存数据文件。
处理单元2C通过上述输入/输出接口电路与闪存设备连接。处理单元2C中的闪存控制器21C通过一个或多个上述方法控制闪存设备3C。在本发明的一个实施方案中,闪存控制器21C通过执行闪存类型算法(利用存储于只读存储器(ROM)(图中未示)的闪存控制器逻辑静态部分)确定闪存设备3C是否被支持;如果是“新”的闪存类型,则读取存储于闪存设备3C中的闪存控制器逻辑动态部分。
另一方面,激活输入/输出接口电路5C后,通过接口连接装置和主机9A建立BOT通讯。主机和闪存设备(以下也称为“USB设备”)USB接口电路之间有四种类型的USB软件通讯数据流:控制、中断、批量和同步。控制传输是主机通过控制管道向USB设备发送的数据流,用于向USB设备提供配置和控制信息。中断传输为小数据量、非周期性、固定等待时间、设备发起的通讯,通常用于通知主机USB设备所请求的服务。如果没有实时性要求,通过USB接口电路移动的大块数据可采用批量传输。同步传输在同步数据工作时使用。同步传输在主机和USB设备之间提供周期性和连续性的通讯。USB接口电路通常支持两种数据传输协议:CBI协议和BOT协议。海量储存类CBI传输规范适用于全速软盘驱动,而不适用于高速设备或软盘驱动以外的其它设备(由USB规范确定)。在本发明实施方案中中,aUSB闪存设备和主机之间传输高速数据只采用BOT协议。由于BOT传输的命令、数据、状态同时传输到批量终端点和默认控制终端点,所以BOT是一种比CBI协议更加高效和快速的传输协议。
根据前述实现方案,当处理单元2C可通过选择工作于可编程模式下时,处理单元2C激活输入/输出接口电路5C以接收来自主机9A的数据文件,并根据主机9A发送至闪存控制器21C的写入命令,把数据文件储存到闪存设备3C中;当处理单元2C工作于数据读取模式下时,处理单元2C根据主机9A发送至闪存控制器21C的读取命令和访问存储于闪存设备3C的数据文件的命令接收闪存设备3C中的数据,并激活输入/输出接口电路5C把数据文件传输至主机9A;当处理单元2C工作于数据复位模式下时,数据文件将从闪存设备3C中被擦除。
本发明中智能处理单元2C的优点包括:
(1)高集成度,大大减少了所需空间、复杂度和制造成本;
(2)通过把软件程序和数据保存在闪存中,降低了控制器成本;
(3)采用先进的闪存控制逻辑,提高了闪存的存取速度。
以下为本发明中所使用的术语定义:
块:基本存储器擦除单元。各块包含一定数量的扇区,例如16、32、64等。如果某个扇区发生写入错误,则整个块即被确认为坏块,并且该块内其它全部有效扇区将被重新放置到另一个块中。
扇区:块的子单元。典型的扇区由两个段构成--数据段和备用段。过期扇区:在编程过程中存储了数据,而该数据又随后被更新的扇区。数据被更新后,过期数据被保留在过期扇区中,而更新后的数据则被写入新扇区,新扇区即成为有效扇区。
无效块:包含过期扇区的块。
有效扇区:在编程过程中存储了数据并且该数据为当前(未过期)数据的扇区。
损耗平衡:为了延长闪存的使用寿命而均匀分配各闪存块擦除次数的方法。闪存块只能承受有限次的擦除操作。例如,典型的NAND闪存的最大擦除次数为一百万次。
备用块:闪存中的保留空间。备用块使闪存系统可以提前准备处理坏块。
簇:为了改善存储性能,操作系统用作文件访问指针的多个数据扇区。在小容量存储器操作中,一个簇通常由两个数据扇区构成,簇为最小的文件大小单元。典型的存储器小块的簇大小为1k字节(即各扇区大小为512字节),存储器大块的簇大小为4k字节(即各扇区大小为2,112字节)。FAT:保存指向文件地址指针的文件分配表。簇是FAT指向的最小单元。例如,FAT16是指簇的地址为16位。
目录和子目录:操作系统所定义的文件指针。
主引导记录(MBR):用于储存根目录指针和相关引导文件(如果可引导)的固定位置。该固定位置为第一个块的最后一个扇区,如果第一个是坏块,则为第二个块的最后一个扇区。
包:USB基本事务单元的可变长度格式。一个常规的符合USB规范的事务通常由三个包--令牌包、数据包和握手包。令牌包有IN,OUT和SETUP三种格式。数据包的大小可变,例如,USB1.1版为64字节,USB2.0版为512字节。握手包有ACK或NAK格式,用于通知主机事务是否完成。
帧:批量事务处理,如果USB流量为低,则对占有帧具有高优先级。如果USB流量为高,批量事务也能等待后续帧。
终端点:三个终端点包括控制、批量输入和批量输出。控制终端点用于系统初始枚举。批量输入终端点用作主机系统读取数据管道。批量输出终端点用作主机系统写入数据管道。
命令块包(CBW):一个命令块包包含一个命令块和相关信息,例如数据传输长度(例如512字节,从第8字节至第11字节)。CBW开始于包边界,结束于第31字节(字节0to30),以小包形式传送。全部CBW传输都应按照从最低有效位(字节0)向最高有效位的顺序排列。
命令状态包(CSW):CSW开始于包边界。精简块命令(RBC)SCSI协议:10字节命令描述符。
图5为本发明另一个实施方案的电子数据闪存卡(存储器系统)100方框图。闪存系统100通过接口转换逻辑102和主机系统52相连,接口转换逻辑102负责为微处理器104处理数据和时序校准。根据不同的应用环境,接口转换逻辑102兼容多种格式,例如USB、PCI-Express、CF、SD、MMC、MS、IDE等。主机系统52可以是个人计算机(PC)、数码照相机、MP3播放器等。
微处理器104在闪存系统100内部执行读取、写入、擦除操作、块管理操作和其他内务操作。块管理操作包括复制和擦除操作,通过后台运行,即,对主机系统52隐蔽。只读存储器(ROM)106用于储存微处理器104操作执行代码。
微处理器104通过仲裁逻辑106对闪存系统100的各闪存设备110a、110b和110c分别执行块管理操作。仲裁逻辑可通过硬件逻辑或可编程逻辑设备实现(例如,现场可编程门阵列(FPGAs))。
寄存器文件112为闪存设备110a-c分配逻辑块地址。映射表114提供了闪存设备110a-c相关的信息索引。这些信息包括逻辑块地址、设备编号、物理块地址、有效位和过期位。闪存接口控制器116与闪存110a-c连接,执行来自处理器104的命令。这类命令包括读取、写入和擦除操作。
图6为本发明图5所示闪存系统100的仲裁逻辑108、寄存器文件112和映射表114之间的详细方框图。主机系统52向闪存系统100发送逻辑块地址302。逻辑块地址302包含一个扇区偏移地址。
寄存器文件112负责在各逻辑块地址302和特定的闪存设备编号之间建立联系。例如,若逻辑块地址在第一地址范围之内,则指向闪存设备编号110a,若逻辑块地址在第二地址范围之内,则指向闪存设备编号110b,以此类推。仲裁逻辑108发送逻辑块地址和相关设备编号至映射表114。各闪存设备地址容量预先编程保存在相应的寄存器114a-114c中供逻辑块地址指派。一旦各特定的闪存设备的物理块地址(PBA)被仲裁逻辑108确定,全部读取/写入操作都将在设备内部被执行。
映射表114把各逻辑块地址翻译成相应的物理块地址,并把设备编号和物理块地址输出至闪存接口控制器116。索引映射表114由一个或多个查询表(LUT)构成,可通过易失性随即访问存储器(RAM)实现,例如静态RAM(SRAM)。在本发明的一个实现方案中,闪存设备110a、110b和110c分别对应映射表114a、114b和114c。例如,表114a储存闪存设备110a的物理块地址信息,表114b储存闪存设备110b的物理块地址信息,而表114c则储存闪存设备110c的物理块地址信息。映射表114把逻辑块地址翻译成由仲裁逻辑108提供的特定设备编号物理块地址。映射表114同时还提供有效位的值。有效位的值在上电过程中被置零。上电后,闪存110首先被扫描以重建映射表114。
在初始化过程中,特定扇区最大量的擦除操作被编程写入寄存器文件112用于地址仲裁。闪存接口控制器116向特定的闪存设备110发送一系列时序信号,执行闪存设备110块管理相关的写入和擦除操作。
由于闪存设备110a-c的各寄存器可以独立编程,闪存系统100的各个闪存设备110a-c可以具有不同的数据储存容量。甚至可以采用不同品牌的闪存设备。这种灵活性降低了总体制造成本。在各闪存设备110a-c内部的页面大小,即各物理扇区的字节数应相同(例如,512字节或2112字节)。
图7为传统块管理操作方框图。从图中可以看出,有效数据存储在闪存设备A中块404的扇区402a、402b和402c中。在一个块管理操作(例如,坏块替换、过期块回收或损耗平衡)过程中,如果扇区402a,402b和402c变成坏块、过期或需要进行损耗平衡,存储在扇区402a、402b和402c中的有效数据将被重新放置。块管理操作通常被称为内务操作。这些操作通常以后台方式完成,以方便后续写入操作。本例中的块管理操作为坏块替换操作。
从图中可以看出,有效数据首先被重新放置(即复制)到外部缓冲区406中。然后在其他闪存设备中执行可用好块(即功能块)搜索程序。传统的闪存系统把多个闪存设备当作统一的全局单元处理。相应地,全部闪存设备的块都按照全局地址方案分配地址,这样,全部闪存设备都将进行搜索。如果在另一个闪存设备B的块408中搜索到可用好扇区,则把有效数据复制到闪存设备B的好扇区中。在其他块管理操作中,外部缓冲区406起相同的作用。
图8是为本发明的块管理操作方框图。从图中可以看出,有效数据存储在闪存设备504中的块503的扇区502a、502b和502c中。在块管理操作过程中,存储在扇区502a、502b和502c的有效数据将被重新放置。
在本发明中,各闪存设备执行独立的块管理操作,并在各闪存设备边界内部执行。换句话说,在块管理操作过程中,存储在闪存设备110a中的有效数据被重新放置在同一个闪存设备内部的最佳位置(即,数据不是转移到其他闪存设备110b或110c中)。传统块管理操作把有效数据重新放置在不同的闪存设备中,与传统块管理操作相比,本发明通过把有效数据重新放置操作限制在同一闪存设备之内,提高了总体系统的性能。传统块管理操作存在的问题是可用好块的搜索范围太大,需要搜索多个闪存设备。此外,传统块管理操作要求使用外部缓冲区(例如,图7所示的页面缓冲区406)。把有效数据从一个闪存设备传输到外部缓冲区,然后再传输到另一个闪存设备将增加总体操作时间。本发明通过对各闪存设备执行独立的块管理操作来解决该问题,这样块管理操作可以在各闪存设备的内部执行。
本发明的另一个优点是块管理操作可以在多个闪存设备内部同步发生,从而进一步提高了闪存系统的性能。例如,第一个数据重新放置操作可以在第一个闪存设备内执行,同时第二个数据重新放置操作在第二个闪存设备内执行。同时也使不同闪存设备可同步擦除和编程。系统并行性的提高显著提高了闪存系统的性能。
本实施方案中的块管理操作为坏块替换操作。如果扇区502a、502b和502c变成坏扇区,则存储在扇区502a,502b和502c的有效数据将被重新放置。在本实施方案中,有效数据将被复制到内部缓冲区506中。内部缓冲区506是在闪存设备504内部功能正常的易失性存储器扇区。在本发明的一个实现方案中,易失性存储器扇区的块被预留用于向各闪存设备提供内部缓冲区506,这样可以减少对外部搜索的需求(即在闪存设备的边界之外的搜索)。可用好块搜索在闪存设备504内部其它部分中执行。各闪存设备的全部块地址都根据分布式地址方案分配,如图8所示,同时全部搜索都被限制在闪存设备的边界之内。
搜索到好块之后,有效数据将被复制到一个或多个好块中。无论哪种情况,相比于图7所示的传统多芯片搜索方法,单芯片搜索大大降低了搜索时间。同时,由于坏块操作发生在闪存设备504内部,有效数据重新放置时间大大减少。本发明消除了对外部缓冲区的需求。相应地,由于无需把有效数据转移到外部闪存设备504,重新放置时间也大大减少。
本发明的其他块管理操作过程中,内部缓冲区506也起相同的作用。另一个方案时,在块管理操作过程中,有效数据无需先被存储到内部缓冲区506中而被直接重新放置到好扇区中。
本发明中,各闪存设备作为独立寻址单元工作,并且块管理操作在各闪存设备边界之内发生。相应地,本发明的另一个优点是在同一个闪存系统之内可以使用不同容量的闪存设备。
图9是本发明的闪存块管理方法高级流程图。首先,在具有数个闪存设备的闪存系统中启动至少一项操作,参考步骤602。在本实施方案中为块管理操作。下一步,在闪存设备之内搜索目标块,参考步骤604。下一步,有效数据在闪存设备内部从源块向目的块被重新放置,参考步骤606。相应地,多个闪存设备可同时执行块管理操作。在多个闪存设备执行块管理操作过程中,各闪存设备都在各自内部执行独立的块管理操作。各闪存设备都能进行独立、同步的块管理操。
图10为本发明的闪存设备700的详细方框图,该方框图可用于实现图5所示的闪存设备。闪存设备700被分配了一个逻辑块地址范围,逻辑块地址的范围由图5所示的仲裁逻辑108决定。闪存设备700的物理块地址从零开始一直增加到闪存设备700的最大容量。图中画出了示列块706a、706b、706c和706d。706a和706b分别为第一和第二个物理块地址块而706d为最后一个物理块地址块。
在本实施方案中,扇区(通常称为页面)701包含528个字节,其中包括512个字节的数据段和16个字节的备用段。闪存设备700的数据结构由物理块地址706a、706b、706c和706d的数据段702和备用段704构成。各段都有一定的字节数,该字节数由具体应用决定。例如,数据段可以包含512字节、2112字节或更多字节,备用段可以包含16、64或更多字节。
数据段702储存原始数据,而备用段704储存存储器管理相关信息。备用段704包括有效扇区段710、过期扇区段712、坏块指示段714、擦除计数段716、错误校正代码(ECC)段718和逻辑块地址扇区地址段720。有效扇区段710用于指示是否扇区中的数据可被有效读取。过期扇区段712为标志段,用于指示扇区中的数据是否过期标志。若发生了后续的写入或擦除操作,则过期标志可以被修改。坏块指示段714用于指示坏块。在本发明的一个实施方案中,把0值存储于坏块指示段714用于指示该块已被损坏。若尝试写入特定扇区或擦除特定块失败,则认为该块为坏块。在具体的实现方案中,坏块指示由工厂设置确定。闪存系统的固件通过扫描各块的第一扇区来确定数据是否能被访问。完整的扫描信息随后被保存到各闪存设备最后的块中。
在本实施方案中,用两个字节(16位)来记录各块(16扇区)的坏块信息。用两个扇区(1024字节)记录闪存设备(最多512个块)的坏块信息。为了达到更高的可靠性,储存了八份完全相同的坏块信息备份,以避免在标志记录过程中发生扇区变坏事故。为了实现快速访问,这些八份备份都存储在各闪存设备的最后一个块位置706d中。坏扇区指示段714被保存在最后块706d中,以便更方便地被闪存系统的固件读取。
擦除计数段716用于记录一个块将在该闪存设备整个使用寿命内被擦除的次数。擦除计数段716包含三个字节,最多可记录1600万次块擦除操作。ECC段718包含六个ECC字节,以确保数据一致性。众所周知,EEC是一种非常先进的方法,用于错误检测和校正。逻辑块地址扇区段720用于电源备份和系统重入。由于闪存系统的映射表存储在易失性存储器中,因此在掉电过程中,无法保存有效扇区的信息。在系统初始化和停电时,逻辑块地址扇区地址段720用于重构映射表。逻辑块地址扇区地址段720记录了先前的写入操作、有效扇区和过期扇区信息以便重构映射表。设定了新的数据结构后,闪存系统的固件可以修复悬空簇。这可以通过校核存储在闪存设备中闪存阵列的FAT表实现。
图11为本发明数据访问方法流程图。闪存系统初始化后,通过查询闪存阵列识别号(ID)确定闪存设备中闪存阵列的容量,参考步骤802。同时,扫描各闪存设备的物理块地址以确定现有坏扇区(步骤802)。该判断可以通过读取坏块指示段实现。
逻辑块地址的范围通过编程写入闪存控制器的寄存器文件,参考步骤804。给定一个闪存设备,由于该闪存设备中部分空间被预留用于坏块替换,所以物理块地址的范围比逻辑块地址的范围大。例如,把闪存阵列的10%用作保留空间是比较合理的。
下一步,从主机系统接收逻辑块地址扇区地址、数据和命令,参考步骤806。采用簇数据缓冲和写入后高速缓冲策略以提高闪存系统的性能。下一步,由映射表确定闪存设备编号和物理块地址,参考步骤808。下一步,分析来自主机系统的命令,参考步骤810。如果该命令是读取命令,则执行读取操作,参考步骤812。然后,校核读取操作获得的数据,参考步骤814。利用ECC段字节中保存的信息校核数据。如果数据校核正确,则把数据返还主机系统,参考步骤816。如果读取操作得到的数据不正确,则执行EEC操作来校正数据,参考步骤818。
如果该命令为写入命令(参考步骤810为“是”),则执行写入操作。写入操作所需要的时间明显比执行读取操作所需要的时间长。例如,写入操作所需的时间可能比读取操作所需时间的长20倍。首先,检查自由扇区(即,可用扇区),参考步骤820。如果自由扇区的数量低于自由扇区的阈值,则通过垃圾回收操作回收块,参考步骤822。
如果自由扇区的数量不低于自由扇区的阈值,则把数据写入该闪存设备,参考步骤824。写入操作完成后,即可确定写入操作是成功还是失败,参考步骤826。如果写入操作成功,则结束写入操作,参考步骤828。如果写入操作失败,意味着该块是坏块,则执行坏块操作,参考步骤830。
通常,若某个块是坏块,则该扇区中的数据不可靠。即使一个块中只有一个扇区为坏扇区,这个块就将被确定为坏块。为了确保数据的可靠性,数据将不再赋值到坏块中,而是重新分配至好块中。相应地,储存在坏块中有效扇区的数据将被转移到好块中供进一步参考。该操作称为坏块替换。闪存设备将在内部发出回拷命令用于减少事务处理时间。
图12为本发明的坏块替换方法流程图。坏块中坏扇区的位置被记录在闪存设备的最后两个块的保留区中,参考步骤902。在本发明的一个实现方案中,各块都由16个扇区组成。另有十六个位分别与着十六个扇区相关联。这些位用于指示坏扇区。相应地,如果某个位为0,则表明相关的扇区为坏扇区,而整个块即被确认为坏块。这些位的编程方式是通过读取整个扇区的值,然后把原值和位值相加,最后写入来实现。为了确保正确性,固件将生成四个备份。全部八个块(4×2块)都位于各闪存设备的最后空间中。在扇区的使用寿命期限内,每个位将被设置一次,用于指示坏扇区的位置。
下一步,确定是否有写入命令,参考步骤904。如果读取操作失败且没有写入命令,坏块扇区中的有效数据即被确认,参考步骤906。如果有写入命令(参考步骤904为“是”),则在同一个设备之内执行可用扇区搜索操作,参考步骤908。如果没有足够数量的可用扇区,则执行垃圾回收操作,参考步骤910,直到有足够数量的可用扇区。如果有足够数量的可用扇区,映射表的逻辑块地址将被更新,参考步骤912。下一步,写入操作完成,参考步骤914。写入操作完成后,坏块中扇区的有效数据被确定,参考步骤906。若写入或擦除操作失败,则执行该操作。
下一步,确定好块的目的扇区,用于重新分配坏块的有效数据,参考步骤916。下一步,有效数据被重新放置(即,复制)到目标扇区中,参考步骤918。在重新放置过程中,在闪存设备内部执行回拷操作,以避免外部通信并提高闪存系统的性能。下一步,闪存控制器中的映射表被更新以反映变化供以后数据访问用,参考步骤920。下一步,确定是否全部来自坏块的有效数据都已经被转移到好块中,参考步骤922。如果没有,操作循环回到块906。如果全部有效数据都已经被转移,则坏块替换操作结束。
图13为本发明的垃圾回收操作方法流程图。垃圾回收操作是在各闪存设备边界之内执行的单芯片操作。相应地,多个垃圾回收操作可以同步在各闪存设备内部发生。首先,在闪存设备内部进行搜索,以定位含有最多过期扇区的过期块,参考步骤1002。特别地,固件通过扫描整个过期扇区段以确定各块过期扇区的数量。搜索结果存储在寄存器中。寄存器用于指示含有最多过期扇区的过期块。例如,用四个寄存器指示含有最多过期扇区的四个过期块。扫描结果和逻辑块地址的值被同时保存用于更新地址映射表。同时,不同的寄存器组被同时用于记录该设备中含有最多过期扇区的四个有效块。目的是在把有效扇区重新放置到目标(有效)块中之后擦除一个过期(源)块。这四个寄存器组用于提供最匹配的源块和目标选择。
下一步,确定源块中有效扇区的数量,参考步骤1004。下一步,确定有效扇区的地址,参考步骤1006。这些地址指向的有效扇区被称为目的扇区。下一步,执行回拷操作把有效数据从过期(源)块向目标扇区进行复制,参考步骤1008。在回拷操作中,有效数据可以临时存储在内部缓冲区中。
下一步,确定在垃圾回收操作中是否出现了坏扇区,参考步骤1010。如果出现了坏扇区,则执行坏块重新放置操作,参考步骤1012。如果没有出现坏扇区,源块(含有最多过期扇区的块)将被擦除并且这个块各个位的值将被设为1,参考步骤1014。下一步,确定擦除操作是否失败,参考步骤1016。如果擦除操作失败,则执行坏块重新放置操作,参考步骤1018。如果擦除操作没有失败,则过期块的垃圾回收操作完成,映射表被更新以反映修改供后续写入操作用,参考步骤1020。下一步,擦除计数段中被擦除块的擦除计数增加,参考步骤1022。
图14为本发明的损耗平衡操作方法流程图。在没有来自主机系统的数据传输请求时,损耗平衡操作将后台运行。损耗平衡操作过程中有可能会收到来自主机系统的数据传输请求。损耗平衡操作通常把有效数据从低擦除计数的块移向高擦除计数的块。低擦除计数的块将被擦除,其擦除计数将增加。这一操作过程可以通过降低块的最高擦除计数使其接近平均设备擦除计数的方法来平衡块的擦除计数。该过程同时推迟了给定块达到其最大擦除计数的时间。
首先,固件读取各块擦除计数段中的擦除计数,并确定各闪存设备的平均设备擦除计数,参考步骤1102。然后确定全部闪存设备的平均全局擦除计数,同样参考步骤1102。平均设备擦除计数值存储在各闪存设备的寄存器中,参考步骤1104。对于各闪存设备,如果平均设备擦除计数大于设备阈值计数寄存器的值,则设备阈值计数将被更新为该值。同理,如果平均全局擦除计数大于全局阈值计数寄存器的值,全局阈值计数将被更新为该值。这些值今后都将被用到,参考步骤1104。在本发明的一个实现方案中,指定了三个寄存器用于保存各闪存设备的擦除计数值。第一个寄存器储存特定的闪存设备的平均擦除计数,称为设备擦除计数。第二个寄存器储存特定的闪存设备的平均擦除计数,称为设备阈值计数。第三个寄存器储存全部闪存设备的平均擦除计数值,称为全局阈值计数。例如,设备阈值计数可设为5,000,全局阈值计数可设为20,000。这两个值同时被预编程成为闪存系统初始化的一部分。
下一步,确定闪存设备的设备阈值计数是否大于或等于全局阈值计数,参考步骤1106。如果不是,确定该设备的设备擦除计数是否大于或等于设备阈值计数,参考步骤1108。如果不是,损耗平衡操作结束。如果是,确定设备中具有最高擦除计数的块,参考步骤1110。下一步,确定设备中具有最低擦除计数块,参考步骤1112。下一步,具有最低擦除计数的块中的有效数据被重新放置到另一个块中,参考步骤1114。下一步,具有最低擦除计数的块被擦除,同时其擦除计数增加,参考步骤1116。下一步,具有最高擦除计数的块中的有效数据被重新放置到具有最低擦除计数的块中,参考步骤1118。下一步,更新映射表,参考步骤1120。下一步,设备阈值计数增加,参考步骤1122。损耗平衡操作结束。
一个闪存设备的块管理操作可能同时牵涉到多个闪存设备,此时有效数据通过外部从一个闪存设备向另一个设备被重新放置。这从本质上提高闪存设备系统的总体性能。在另一个特定的实施方案中,如果某个特定的闪存设备进行块管理操作,其擦除计数高于其他闪存设备,有效数据可通过外部从一个闪存设备向另一个执行重新放置操作,以达到不同闪存设备之间的平衡。在本发明中,既包括内部重新放置又包括外部重新放置。
返回步骤1106,如果闪存设备的设备阈值计数大于或等于全局阈值计数,则确定设备中具有最高擦除计数的块,参考步骤1128。下一步,确定具有最低平均擦除计数的闪存设备,参考步骤1130。下一步,确定设备中具有最低擦除计数的块,参考步骤1132。下一步,具有最低擦除计数的块中的有效数据被重新放置到另一个块中,参考步骤1134。下一步,具有最低擦除计数的块被擦除,其擦除计数增加,参考步骤1136。下一步,具有最高擦除计数的块中的有效数据被为重新放置到具有最低擦除计数的块中,参考步骤1138。在本发明的一个实施方案中,有效数据被移动到另一个闪存设备中。下一步,更新映射表,参考步骤1140。下一步,全局阈值计数增加,参考步骤1142。损耗平衡操作结束。
本发明中的闪存控制器可以执行多块数据访问。传统闪存设备内置一个512字节的页面寄存器。写入闪存设备的数据首先要写入该页面寄存器,然后才能写入闪存阵列。传统的闪存控制器及其固件控制着闪存系统访问周期。传统闪存控制器每次只能传输一个块(512字节)的数据到闪存设备的页面寄存器中。如果512个字节的页面寄存器已被写入,则不能对该闪存设备进行其他访问。相应地,传统闪存控制器使用单块数据访问技术,这限制了闪存系统的性能。
在本发明中,闪存控制器采用大小为2048字节或更大的页面寄存器。本发明中的闪存控制器为多块访问控制器,通过同时向闪存设备发送多块数据来写入页面寄存器。与传统的单块数据传输控制器相比,该控制器显著提高了数据传输的性能。
本发明中的闪存控制器可同时进行双通道处理,从而进一步改善了闪存系统的性能。双通道计数可提供第二通道,或“自由通道”,用于执行闪存控制器和闪存设备之间的事务。传统闪存控制器采用单存储器总线结构,多个闪存设备同时与总线连接。然而,传统的单通道架构限制了传统闪存控制器的性能。
在本发明中,至少采用了两条存储器总线。各条存储器总线都和独立的闪存设备相连。存储器控制器可以同时或单独访问各闪存设备。结果,操作执行可达到采用双通道处理的两倍速度。此外,各存储器总线还可以进一步扩展为多条存储器总线结构。
本发明的闪存控制器还可进行交错式操作。传统闪存控制器采用单存储器总线结构,多个闪存设备同时与总线连接。然而,传统闪存控制器每次只能访问一个闪存设备,而这限制了系统的性能。
本发明中,至少采用了一个或两个存储器控制信号(例如片选和忙)。此外,共享的存储器总线至少有两个闪存设备与之相连。当一个闪存设备为读忙或写忙时,本发明中的闪存控制器可访问另一个闪存设备。相应地,本发明中的闪存控制器充分利用了共享存储器总线,从而显著提高了性能。此外,通过共享存储器IO和控制信号,减少了闪存控制器的管脚数量。这使闪存系统的成本实现了最小化。
在本发明中,在单个闪存设备的存储器访问周期中同时集成多块访问技术,多存储器交错技术和多通道操作技术,使其达到了最佳性能。
本发明提出的系统和方法具有诸多优点。例如,大大提高了闪存控制器在块管理操作过程中的搜索可用好块的速度。同时,消除了闪存控制器对外部缓冲区的需求。此外,闪存控制器支持多块数据访问、双通道处理和多存储单元交错式访问。相应地,大大提高了块管理操作执行速度。
本发明主要介绍了闪存块管理系统和方法。该系统和方法提出了一种配有处理器的闪存控制器,用于执行闪存系统操。这里的操作是指块管理操作,具体包括坏块处理、过期块回收和损耗平衡操作。处理器利用来自仲裁逻辑的数据,对闪存系统中特定的闪存设备执行这些操作。由于这些操作都发生在特定的闪存设备内部,处理器可以利用来自仲裁逻辑的数据把可用好块搜索限定在特定的闪存设备内部。同时,在有效数据被重新放置前的搜索过程中,处理器可以利用闪存设备的内部缓冲区来储存有效数据。结果,可用好块搜索时间大大减少,同时消除了对外部缓冲区的需求。相应地,块管理操作的执行速度将显著提高。
虽然本说明书介绍的是带有或不带有指纹识别功能的电子数据闪存卡,在本发明思想和范围之内,本发明同样适用于其他类型的存储器系统。此外,虽然本文所介绍的是USB标准,在本发明思想和范围之内,本发明同样适用于其他标准。此外,本发明的方案可通过硬件、软件、包含程序指令的计算机可读介质或其组合实现。相应地,通过相关技术对本发明进行的修改仍在以下权利要求的思想和范围之内。
Claims (14)
1.一种电子数据闪存卡,可通过建立通讯连接被主机访问,由以下各部分构成:
卡身;
一个或多个安装于卡身的闪存设备,闪存设备包含数个非易失性存储单元用于存储数据文件;
安装于卡身的输入/输出接口电路,用于建立和主机之间的通讯;
安装于卡身的闪存控制器,与所述的闪存设备和所述的输入/输出接口电路之间的电气连接,其中闪存控制器由以下各部分构成:
(a)闪存控制器的处理单元根据闪存检测算法代码确定某闪存设备是否被支持的方法,
(b)识别闪存设备无效存储单元的仲裁方法,以及把物理块地址指派给相关逻辑块地址的仲裁方法,其中,各所述物理块地址对应多个闪存设备存储单元;
(c)可选操作方法:
可编程模式:在该模式下,上述闪存控制器激活输入/输出接口电路以接收来自主机的数据文件,并且把数据文件储存到上述闪存设备的第一物理文件地址(通过上述仲裁方法被指派给第一逻辑块地址),上述可编程模式由从主机发送至闪存控制器的相关写入命令启动;
数据读取模式:在该模式下,上述闪存控制器接收主机发出的读取命令和第一逻辑块地址,并激活上述输入/输出接口电路读取第一物理地址的数据文件传送给主机;
数据复位模式:该模式下,数据文件将从闪存设备被擦除。
2.根据权利要求1所述的电子数据闪存卡,所述的闪存设备包含第一闪存设备和第二闪存设备。
3.根据权利要求2所述的电子数据闪存卡,所述的第一闪存设备包含第一组存储单元,第二闪存设备包含第二组存储单元,其中,第一组存储单元大于或等于第二组存储单元。
4.根据权利要求2所述的电子数据闪存卡,采用的所述仲裁方法包括在第一闪存设备中至少执行编程操作,数据读取操作或数据复位操作中的一项,并且同步在第二闪存设备中至少执行编程操作,数据读取操作或数据复位操作中的一项的方法。
5.根据权利要求1所述的电子数据闪存卡,所述的仲裁方法包括该闪存设备中功能存储单元搜索的方法,和把一个或多个无效存储单元相关的第一逻辑块地址重新分配给功能存储单元相关的第二物理块地址的方法。
6.根据权利要求1所述的电子数据闪存卡,所述的闪存设备包括一个内部缓冲区,其中闪存控制器部分包含在把上述数据存储到所述第一物理块地址所指向的存储单元之前,在所述内部缓冲区临时存储上述数据文件的方法。
7.根据权利要求1所述的电子数据闪存卡,所述的仲裁方法还包括识别先前被指派给所述第一逻辑块地址的无效存储单元的方法,识别第二物理块地址所指向的功能正常且未被指派的存储单元的方法,以及把所述第一逻辑块地址重新分配给第二物理块地址的方法。
8.根据权利要求1所述的电子数据闪存卡,所述的仲裁方法还包括识别第一逻辑块地址中被更新数据文件的方法,把第一逻辑块地址重新分配给第二物理块地址的方法,以及把被更新的数据文件存储到第二物理块地址所指向的存储单元的方法。
9.根据权利要求8所述的电子数据闪存卡,所述的仲裁方法还包括在被更新数据文件被存储到第二物理块地址所指向的存储单元后,从第一物理块地址指向的存储单元中擦除过期数据的方法,以及把第一物理块地址重新分配给第二逻辑块地址的方法。
10.根据权利要求1所述的电子数据闪存卡,所述的仲裁方法还包括第一物理块地址所指向的存储单元的第一擦除计数和第二物理块地址所指向的存储单元的第二擦除计数的比较方法,以及当第一擦除计数大于第二擦除计数时,把数据文件从第一物理块地址的存储单元向第二物理块地址的存储单元传输的方法。
11.根据权利要求10所述的电子数据闪存卡,所述的闪存设备包括一个内部缓冲区,其中闪存控制器部分包含在把上述数据存储到所述第二物理块地址所指向的存储单元之前,在所述内部缓冲区临时存储上述数据文件的方法。
12.根据权利要求2所述的电子数据闪存卡,所述的闪存控制器至少支持对第一闪存设备和第二闪存设备进行双通道并行访问和交错式访问两种方法的其中之一。
13.根据权利要求1所述的电子数据闪存卡,所述的输入/输出接口电路为USB接口电路,该USB接口电路包含采用BOT协议传输数据的方法。
14.根据权利要求1所述的电子数据闪存卡,所述的输入/输出接口电路可采用SD接口电路、MMC接口电路、CF接口电路、MS接口电路、PCI-Express接口电路、IDE接口电路或SATA接口电路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/471,000 US7690031B2 (en) | 2000-01-06 | 2006-09-07 | Managing bad blocks in flash memory for electronic data flash card |
US11471000 | 2006-09-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101118783A true CN101118783A (zh) | 2008-02-06 |
Family
ID=39054843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101487005A Pending CN101118783A (zh) | 2006-09-07 | 2007-09-03 | 带有闪存坏块控制系统的电子数据闪存卡 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101118783A (zh) |
TW (1) | TWI351605B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102248919A (zh) * | 2010-04-15 | 2011-11-23 | 株式会社电装 | 车辆用导航装置 |
CN102428455A (zh) * | 2009-04-08 | 2012-04-25 | 谷歌公司 | 快闪存储器数据存储装置中的数据分条 |
CN102918597A (zh) * | 2010-03-25 | 2013-02-06 | 桑迪士克科技股份有限公司 | 非源同步接口的输入/输出的增强 |
CN101770428B (zh) * | 2009-01-07 | 2013-02-27 | 慧国(上海)软件科技有限公司 | 非易失性存储器操作方法及使用该方法的数据储存系统 |
CN104077079A (zh) * | 2013-03-27 | 2014-10-01 | 郑智文 | 闪存转接器及闪存储存装置 |
CN104615550A (zh) * | 2015-01-27 | 2015-05-13 | 华为技术有限公司 | 一种存储设备坏块的处理方法、装置及存储设备 |
CN105279115A (zh) * | 2014-06-20 | 2016-01-27 | 慧荣科技股份有限公司 | 闪存控制装置、闪存控制系统以及闪存控制方法 |
CN105335097A (zh) * | 2014-08-04 | 2016-02-17 | 联想企业解决方案(新加坡)有限公司 | 基于剩余授权在闪存设备之间控制磨损 |
CN106325777A (zh) * | 2016-08-24 | 2017-01-11 | 浪潮(北京)电子信息产业有限公司 | 一种逻辑单元管理方法及系统 |
CN107506148A (zh) * | 2017-08-29 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种固态硬盘虚拟块弃用的方法与装置 |
CN107622023A (zh) * | 2016-07-13 | 2018-01-23 | 希捷科技有限公司 | 限制数据存储设备中的访问操作 |
CN107967125A (zh) * | 2017-12-20 | 2018-04-27 | 北京京存技术有限公司 | 闪存转换层的管理方法、装置及计算机可读存储介质 |
CN108628755A (zh) * | 2017-03-17 | 2018-10-09 | 爱思开海力士有限公司 | 存储器系统 |
CN109582216A (zh) * | 2017-09-28 | 2019-04-05 | 慧荣科技股份有限公司 | 数据储存装置与存储器装置的数据处理方法 |
CN111290970A (zh) * | 2018-12-06 | 2020-06-16 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111737160A (zh) * | 2019-03-25 | 2020-10-02 | 西部数据技术公司 | 存储管理中多个副本的优化处理 |
CN112052129A (zh) * | 2020-07-13 | 2020-12-08 | 深圳市智微智能科技股份有限公司 | 计算机磁盘检测方法、装置、设备及存储介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8412880B2 (en) * | 2009-01-08 | 2013-04-02 | Micron Technology, Inc. | Memory system controller to manage wear leveling across a plurality of storage nodes |
TWI427476B (zh) * | 2009-02-24 | 2014-02-21 | Silicon Motion Inc | 快閃記憶體的存取方法及快閃記憶體裝置 |
TWI626540B (zh) * | 2017-03-22 | 2018-06-11 | 慧榮科技股份有限公司 | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 |
TWI805231B (zh) | 2022-02-18 | 2023-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
TW202334821A (zh) | 2022-02-18 | 2023-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
TWI802279B (zh) * | 2022-02-18 | 2023-05-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
-
2007
- 2007-09-03 CN CNA2007101487005A patent/CN101118783A/zh active Pending
- 2007-09-05 TW TW96132994A patent/TWI351605B/zh not_active IP Right Cessation
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770428B (zh) * | 2009-01-07 | 2013-02-27 | 慧国(上海)软件科技有限公司 | 非易失性存储器操作方法及使用该方法的数据储存系统 |
CN102428455A (zh) * | 2009-04-08 | 2012-04-25 | 谷歌公司 | 快闪存储器数据存储装置中的数据分条 |
CN102918597B (zh) * | 2010-03-25 | 2016-05-04 | 桑迪士克科技股份有限公司 | 非源同步接口的输入/输出的增强 |
CN102918597A (zh) * | 2010-03-25 | 2013-02-06 | 桑迪士克科技股份有限公司 | 非源同步接口的输入/输出的增强 |
CN102248919A (zh) * | 2010-04-15 | 2011-11-23 | 株式会社电装 | 车辆用导航装置 |
CN104077079A (zh) * | 2013-03-27 | 2014-10-01 | 郑智文 | 闪存转接器及闪存储存装置 |
CN105279115A (zh) * | 2014-06-20 | 2016-01-27 | 慧荣科技股份有限公司 | 闪存控制装置、闪存控制系统以及闪存控制方法 |
US10049005B2 (en) | 2014-06-20 | 2018-08-14 | Silicon Motion Inc. | Flash memory control apparatus utilizing buffer to temporarily storing valid data stored in storage plane, and control system and control method thereof |
CN105335097A (zh) * | 2014-08-04 | 2016-02-17 | 联想企业解决方案(新加坡)有限公司 | 基于剩余授权在闪存设备之间控制磨损 |
CN105335097B (zh) * | 2014-08-04 | 2021-03-02 | 联想企业解决方案(新加坡)有限公司 | 基于剩余授权在闪存设备之间控制磨损 |
WO2016119617A1 (zh) * | 2015-01-27 | 2016-08-04 | 华为技术有限公司 | 一种存储设备坏块的处理方法、装置及存储设备 |
CN109783017B (zh) * | 2015-01-27 | 2021-05-18 | 华为技术有限公司 | 一种存储设备坏块的处理方法、装置及存储设备 |
CN104615550A (zh) * | 2015-01-27 | 2015-05-13 | 华为技术有限公司 | 一种存储设备坏块的处理方法、装置及存储设备 |
CN109783017A (zh) * | 2015-01-27 | 2019-05-21 | 华为技术有限公司 | 一种存储设备坏块的处理方法、装置及存储设备 |
CN107622023A (zh) * | 2016-07-13 | 2018-01-23 | 希捷科技有限公司 | 限制数据存储设备中的访问操作 |
CN106325777A (zh) * | 2016-08-24 | 2017-01-11 | 浪潮(北京)电子信息产业有限公司 | 一种逻辑单元管理方法及系统 |
CN108628755A (zh) * | 2017-03-17 | 2018-10-09 | 爱思开海力士有限公司 | 存储器系统 |
CN108628755B (zh) * | 2017-03-17 | 2023-05-02 | 爱思开海力士有限公司 | 存储器系统 |
CN107506148B (zh) * | 2017-08-29 | 2020-03-24 | 郑州云海信息技术有限公司 | 一种固态硬盘虚拟块弃用的方法与装置 |
CN107506148A (zh) * | 2017-08-29 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种固态硬盘虚拟块弃用的方法与装置 |
CN109582216A (zh) * | 2017-09-28 | 2019-04-05 | 慧荣科技股份有限公司 | 数据储存装置与存储器装置的数据处理方法 |
CN107967125A (zh) * | 2017-12-20 | 2018-04-27 | 北京京存技术有限公司 | 闪存转换层的管理方法、装置及计算机可读存储介质 |
CN111290970A (zh) * | 2018-12-06 | 2020-06-16 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111290970B (zh) * | 2018-12-06 | 2023-04-07 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111737160A (zh) * | 2019-03-25 | 2020-10-02 | 西部数据技术公司 | 存储管理中多个副本的优化处理 |
CN112052129A (zh) * | 2020-07-13 | 2020-12-08 | 深圳市智微智能科技股份有限公司 | 计算机磁盘检测方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TW200813713A (en) | 2008-03-16 |
TWI351605B (en) | 2011-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101118783A (zh) | 带有闪存坏块控制系统的电子数据闪存卡 | |
CN100487678C (zh) | 带有闪存控制器的电子数据闪存卡 | |
CN101399075A (zh) | 具多样闪存单元坏块管理的电子数据闪存卡 | |
US7690031B2 (en) | Managing bad blocks in flash memory for electronic data flash card | |
US7702831B2 (en) | Flash memory controller for electronic data flash card | |
US20080071978A1 (en) | Electronic data flash card with various flash memory cells | |
US7318117B2 (en) | Managing flash memory including recycling obsolete sectors | |
US8166233B2 (en) | Garbage collection for solid state disks | |
US7299316B2 (en) | Memory flash card reader employing an indexing scheme | |
US8166258B2 (en) | Skip operations for solid state disks | |
US8055833B2 (en) | System and method for increasing capacity, performance, and flexibility of flash storage | |
US8108590B2 (en) | Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear | |
US7676640B2 (en) | Flash memory controller controlling various flash memory cells | |
TWI408551B (zh) | 快閃記憶體儲存系統及其控制器與資料處理方法 | |
JP5495074B2 (ja) | 論理ユニット動作 | |
US20080256352A1 (en) | Methods and systems of booting of an intelligent non-volatile memory microcontroller from various sources | |
US20050204187A1 (en) | System and method for managing blocks in flash memory | |
CN1938670A (zh) | 双媒体存储装置 | |
CN101398785A (zh) | 具有多样闪存单元的电子数据闪存卡 | |
CN101859278A (zh) | 用于闪存的数据储存方法及储存系统 | |
CN102999437A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080206 |