CN101639808A - 非易失性存储设备中的数据管理方法及非易失性存储系统 - Google Patents

非易失性存储设备中的数据管理方法及非易失性存储系统 Download PDF

Info

Publication number
CN101639808A
CN101639808A CN200910145882A CN200910145882A CN101639808A CN 101639808 A CN101639808 A CN 101639808A CN 200910145882 A CN200910145882 A CN 200910145882A CN 200910145882 A CN200910145882 A CN 200910145882A CN 101639808 A CN101639808 A CN 101639808A
Authority
CN
China
Prior art keywords
data
memory device
dump
sector
assigned
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.)
Granted
Application number
CN200910145882A
Other languages
English (en)
Other versions
CN101639808B (zh
Inventor
张俊镐
李辰华
郑云在
崔相勋
金男勋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN101639808A publication Critical patent/CN101639808A/zh
Application granted granted Critical
Publication of CN101639808B publication Critical patent/CN101639808B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2236Copy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Abstract

一种非易失性存储设备中的数据管理方法及非易失性存储系统。该数据管理方法包括将缓冲在第一存储设备中的数据指派到至少两个不同的组,以传送到第二存储设备。所述不同的组中的至少一个具有被指派给其的至少两个单元的数据。以逐个组的方式根据与所述不同的组中的每一个分别相关的各自的优先级依次将数据从第一存储设备传送到第二存储设备,以使得指派给具有较高优先级的组的数据单元在指派给具有较低优先级的组的数据单元之前被传送到第二存储设备。也公开了相关系统和方法。

Description

非易失性存储设备中的数据管理方法及非易失性存储系统
技术领域
本发明涉及非易失性存储系统。更具体地,本发明涉及非易失性存储系统中的数据管理方法。
背景技术
闪速存储器被广泛地用在计算机、存储卡等中。近年来随着便携式信息设备(诸如蜂窝电话、PDA、数字照相机等等)的使用变得越来越广泛,闪速存储器已被用作替换传统硬盘的存储设备。上述移动设备可能需要大容量存储设备以便提供各种功能(例如,记录和/或重放全动视频)。为满足这样的要求,已经开发出在一个存储单元中存储两个或多个数据比特的多比特存储设备。存储多比特数据的存储单元可以被称为多电平单元(MLC),而存储1比特数据的存储单元可以被称为单电平单元(SLC)。在采用MLC配置的闪速存储设备的情况下,可以增加可用容量,但是写数据所花的时间也将增加。相反,在采用SLC配置的闪速存储设备中,与MLC闪速存储设备相比可用容量可能相对较低,但是与MLC闪速存储设备相比写数据所花的时间可以相对较短。也就是说,与采用MLC配置的闪速存储设备相比,采用SLC配置的闪速存储设备可以以相对较高的速度工作。此外,混合NAND闪速存储设备已被开发,其可以能够有选择地使用MLC或SLC存储单元。具体地,一些设备可以在单个封装中包括SLC存储器芯片和MLC存储器芯片,以便改善性能和节省成本。例如,设备可以包括既相对较高速度和昂贵的非易失性存储器(例如,SLC)又包括相对低速的和廉价的非易失性存储器(例如,MLC)。在这样的设备中,性能可能受数据写入方法和数据管理方法的影响。一般说来,写入速度相对较快的非易失性存储器可以被频繁地更新,并且相对小尺寸的热数据可以被记录在该非易失性存储器里。相对慢的写入速度的非易失性存储器的降低的性能和/或擦除数限制可以由相对迅速的写入速度的非易失性存储器补偿。
由于MLC技术的进步,3比特和4比特MLC存储器已被开发出来。但是,当存储在一个存储单元中的比特数增加时,可能会出现问题。例如,非易失性存储器的擦除计数可能减小。
与其他存储器相比,闪速存储器可以提供诸如相对低的成本且相对迅速的读取速度的优点。然而,可能在将数据写入闪速存储器中之前进行擦除操作,并且要被写(或编程)的数据的单元典型地小于要被擦除的数据的单元。这样的特征可能使得难以使用闪速存储器作为主存储器。此外,当闪速存储设备被用作辅助存储设备时,这样的特征可能妨碍硬盘的文件系统的直接使用。因此,可以使用闪速转换层(FTL,Flash Translation Layer)来提供文件系统和闪速存储器之间的兼容性。FTL可以执行将由文件系统产生的逻辑地址映射为要被擦除的闪速存储器的物理地址的角色。典型的FTL技术可以是记录(log)块映射技术。记录块映射技术可以是使用有限数目的记录块作为写入缓冲器的块映射方法。FTL的上述地址映射功能可以使得主机能够将闪速存储器识别为硬盘驱动器(或SRAM)。这意味着,从主机的角度,可以按照与硬盘驱动器相同的方式来访问闪速存储器。
FTL的一个功能可以与映射技术有关。在下述文献中公开了映射技术的例子:题为“FLASH FILE SYSTEM”的美国专利No.5,404,485;题为“METHOD OF DRIVING REMAPPING IN FLASH MEMORY AND FLASHMEMORY ARCHITECTURE SUITABLE THEREFOR”的美国专利No.6,381,176;题为“INCREMENTAL MERGE METHODS AND MEMORYSYSTEMS USING THE SAME”的美国专利No.7,529,879,这些公开通过引用而被合并于此。
发明内容
本发明的实施例提供可以提高包括不同的非易失性存储器的存储系统的速度和/或寿命的数据管理方法。
根据一些实施例,一种在包括第一存储设备和第二存储设备的存储系统中管理数据的方法包括以预定的数据单元将数据编程到第一存储设备中。例如,该数据可以被配置用于以扇区的单元传送。被编程在第一存储设备中的多个数据根据转储刷新(flush)顺序以逐个组的方式被转储刷新到第二存储设备的至少一个记录块中,其中多个数据中的数据被指派给分别具有不同的各自的转储刷新优先级的至少两个不同的组。所述不同的组中的至少一个具有被指派给其的多个数据中的至少两个单元的数据。
在一些实施例中,该多个数据可以是多个扇区数据,该多个扇区数据中的一个或多个可以根据其逻辑扇区号被包括在不同的组中的一个组中。例如,包括在相同的组中的多个扇区数据中的扇区数据可以具有与第二存储设备的相同的数据块对应的逻辑扇区号。
在一些实施例中,在转储刷新顺序中的不同的组的各自的转储刷新优先级可以根据多个扇区数据中的多少个数据被包括在不同的组中的每一个中来确定。此外,包括在相同的组中的多个扇区数据的每一个可以根据其逻辑扇区号具有与其相关的各自的优先级。
在一些实施例中,在转储刷新顺序中的不同的组中的至少一个的各自的转储刷新优先级可以根据在确定各自的转储刷新优先级时所述至少一个记录块被指派到的第二存储设备的数据块来确定。例如,包括具有与第二存储设备的数据块对应的逻辑扇区号的多个扇区数据中的至少一个的组可以具有转储刷新顺序中的最高优先级,而且可以是被转储刷新到第二存储设备的第一组。
根据进一步的实施例,一种存储系统中的数据转储刷新方法,其将第一存储设备中缓冲的多个数据传送到第二存储设备中,该方法包括:选择要传送到第二存储设备的多个数据中的一个数据;以及检测多个数据中的具有与多个数据中所选择的一个数据相同的第二存储设备的目标块的至少一个附加数据。在移动多个数据中的剩余数据之前将多个数据中的被选择的和检测的数据移动到被指派给该目标块的第二存储设备的记录块中。
在一些实施例中,该多个数据可以是多个扇区数据,而且多个扇区数据中的被选择的和检测的扇区数据可以按照具有较低逻辑扇区号的扇区数据被首先移动的顺序依次被移动到记录块中。可以重复该选择、检测、和移动步骤,直到第一存储设备中缓冲的多个扇区数据被传送到第二存储设备中。
在一些实施例中,多个数据中所选择的一个数据可以是根据第一存储设备的缓冲顺序的多个数据中的第一个数据。
根据更进一步的实施例,一种信息处理系统包括:第一存储设备,被配置为以扇区单元依次存储从主机设备提供的数据;第二存储设备,被配置为存储从第一存储设备传送给其的多个扇区数据;和控制器,被配置为提供主机与第一和第二存储设备之间的接口。该控制器被配置为根据转储刷新顺序以逐个组的方式将来自于第一存储设备的多个数据转储刷新到第二存储设备中,其中多个扇区数据中的扇区数据被指派给分别具有不同的各自的转储刷新优先级的不同的组。所述不同的组中的至少一个具有被指派给其的多个数据的至少两个单元。
在一些实施例中,第一和第二存储设备可以被包括在非易失性存储卡中。
在一些实施例中,可以根据记录块映射方法管理第二存储设备中的数据,而且该控制器可以被配置为将该多个扇区数据转储刷新到第二存储设备的至少一个记录块中。
在一些实施例中,多个数据中的数据可以根据第二存储设备的数据块大小被指派给不同的组。
在一些实施例中,包括多个数据中的较大数量的数据的组可以具有转储刷新顺序中的较高转储刷新优先级。
在一些实施例中,包括具有与该第二存储设备的至少一个记录块被指派到的第二存储设备的数据块对应的逻辑扇区号的多个数据中的至少一个的组可以具有转储刷新顺序中的最高优先级,而且可以被控制器首先转储刷新。
在一些实施例中,包括多个数据中的较大数量的数据的组可以具有转储刷新顺序中的较低转储刷新优先级。
在一些实施例中,该控制器可以是主机驱动程序,被配置为将多个数据中的数据指派到分别具有各自的转储刷新优先级的不同的组中。
在一些实施例中,该控制器可以是存储控制器,其包括闪速转换层,被配置为将多个数据中的数据指派到分别具有各自的转储刷新优先级的不同的组中。该闪速转换层可以根据在由闪速转换层确定各自的转储刷新优先级时第二存储器的至少一个记录块被指派到的第二存储设备的数据块来确定不同的组中的至少一个的各自的转储刷新优先级。
在一些实施例中,第一存储设备可以是单电平闪速存储设备,第二存储设备可以是多电平闪速存储设备。
根据进一步的实施例,在一种数据管理方法中,缓冲在第一存储设备中的数据被指派到至少两个不同的组中以传送到第二存储设备。所述不同的组中的至少一个具有被指派给其的至少两个单元的数据。以逐个组的方式根据与所述不同的组中的每一个相关的各自的优先级将数据从第一存储设备传送到第二存储设备,以使得指派给具有较高优先级的组的数据单元在指派给具有较低优先级的组的数据单元之前被传送到第二存储设备。
在一些实施例中,所述不同的组中的每一个的各自的优先级是基于指派给其的数据单元的数量。
在一些实施例中,指派给相同的组的数据单元包括与第二存储设备的相同的数据块对应的逻辑扇区号。
在一些实施例中,该数据可以被传送到第二存储设备的至少一个记录块。所述不同的组中的至少一个的各自的优先级可以基于在确定各自的优先级时至少一个记录块被指派到的第二存储设备的数据块来确定。例如,包括具有与至少一个记录块被指派到的第二存储设备的数据块对应的逻辑扇区号的数据的组可以具有最高优先级。
附图说明
图1是示出根据一些实施例的数据转储刷新操作的框图。
图2是示出根据一些实施例的信息处理系统的框图。
图3是示出图2的转储刷新方法的框图。
图4是示出经由图2中的主机驱动程序对逻辑扇区号进行分组的框图。
图5A是示出基于图4的分组的根据一些实施例的转储刷新过程的图。
图5B是示出FIFO转储刷新过程的图。
图6是示出根据一些实施例的包括支持分组和转储刷新操作的闪速转换层的信息处理系统的框图。
图7是示出由图6中的闪速转换层执行的转储刷新过程的图。
图8是基于图7的组的交换合并(merge)操作的图。
图9是示出根据其它实施例的转储刷新方法的图。
图10是示出根据一些实施例的电子装置的框图。
具体实施方式
现在将参考示出本发明的实施例的附图更完整地描述本发明。然而,本发明可以被实施为许多不同的形式,并且不应当被理解为限于这里阐述的实施例。相反,提供这些实施例以使得本公开是彻底且完全的,并且将本发明的范围完全传达给本领域技术人员。在附图中,为了清楚,层和区的厚度被放大。相似的数字始终指代相似的元件。
应当理解,当称一个元件或层“在...上”、“连接到”、“耦接到”另一个元件或层时,其能够直接在另一元件或层上、连接到或耦接到另一个元件或层上,或者也可以存在插入元件或层。相反,当称一个元件“直接在...上”、“直接连接到”、或“直接耦接到”另一元件或层时,则不存在插入元件或层。这里所用的,术语“和/或”包括相关列出条目的一个或多个的任意和所有组合。
应当理解,尽管这里可能使用术语第一、第二、第三等来描述各种元件、部件、区域、层和/或区段,但是这些元件、部件、区域、层和/或区段不应当被这些术语所限制。这些术语可以仅用于将一个元件、组件、区域、层和部件和另一个区域、层或部件区分开来。因此,在不脱离这些示范性实施例的教导的情况下,下面讨论的第一元件、组件、区域、层或部件可以被称为第二元件、组件、区域、层或部件。
这里所用的术语仅仅是为了描述具体的示范性实施例,不意欲是限制性的。正如这里所用的,单数形式“一”、“一个”和“这个”可以意欲也包括复数形式,除非上下文清楚地指明是单数。还应当理解,用于本说明书中的术语“包括”和/或“包含”指定了既定特征、整数、步骤、操作、元件和/或部件的存在,但是不排除一个或更多的其它特征、整数、步骤、操作、元件、部件、和/或它们的分组的存在或增加。
除非另有定义,这里所用的所有术语(包括技术和科学术语)具有和本领域技术人员通常理解的相同的意思。还应当理解,诸如在通常使用的词典中定义的那些术语应当被理解为具有和在相关技术的内容中的意思一致的意思,并且不应当被解释为理想化的或超出正规认识的,除非这里做了特别的定义。
如这里所描述的,包括SLC和MLC存储设备的系统可以被用作具有不同的存储器区的存储系统的例子,以便描述根据一些实施例的属性和功能。此外,这里可以参考扇区单元作为要被传送的预定的数据单元来描述示范性的实施例。然而,非易失性存储设备的页单元或其它固有数据传输单元也可以被用作要被传送的数据单元。其它方面可以被本领域技术人员容易地理解。此外,不同的存储器区可以包括不同类型的非易失性存储器。例如,本发明的一些实施例可以提供包括不同类型的存储设备的存储系统,这些存储设备例如PRAM和闪速存储器、NOR闪速存储器和NAND闪速存储器等等。
图1是示出根据一些实施例的数据转储刷新操作的框图。参考图1,信息处理系统10可以包括主机20和存储卡50。存储卡50响应于来自主机20的命令CMD将来自于主机20的数据存储在第一非易失性存储器模块30中。在转储刷新操作期间,存储卡50重排依次存储在第一非易失性存储器30中的扇区数据C、2、A、1和B以便分成组G1和G2,并且将扇区数据的组G1和G2存储在第二非易失性存储器模块40中。
主机20是使用存储卡50作为存储设备的设备。例如,主机20可以是个人计算机、数字照相机、PDA、和/或便携式媒体再现设备。主机20可以执行用户应用程序和主机驱动程序。用户应用程序可以执行用户指示的特定功能。当用户应用程序向存储卡50写入或者从中读出数据时,主机驱动程序根据给定的协议作为主机10和存储卡50的接口。大多数系统可以使用硬盘驱动器(HDD)作为大容量存储设备。因此,从主机20传送到存储卡50的数据可以根据应用于HDD的方式(例如,以扇区单元)被传送。主机20可以使用各自与扇区数据对应的逻辑扇区号来控制存储卡50内的数据传送。因此,主机20可以通过控制逻辑扇区号来执行对于扇区数据的分组和重排操作。然而,在一些实施例中,存储卡50可以代替主机20执行扇区分组和重排操作。
存储卡50可以包括第一和第二非易失性存储器30和40。来自于主机20的数据可以被依次存储在第一非易失性存储器30中,在转储刷新操作期间,存储在第一非易失性存储器30中的数据可以被“转储刷新”到第二非易失性存储器40中,这里所用的“转储刷新”操作是指将数据单元从第一和第二存储器30和40中的一个复制或重新安置到另一个。在一些实施例中,记录块映射方法(也称为“记录映射技术”)可以被用于存储卡50中的地址映射。然而,如果按照与扇区被输入到第一非易失性存储器30中的相同的顺序来转储刷新数据,则在第二非易失性存储器40的记录块之间可能会引起过多的合并操作。因此,本发明的一些实施例可以将合并操作数和/或擦除数减小到低于经由主机20的主机驱动程序或传统存储卡50的闪速转换层FTL可能实现的数目。在特定实施例中,按照FIFO方式输入到第一非易失性存储器30中的扇区数据C、2、A、1和B可以被分成组G1和G2。组G1和G2的扇区数据可以根据分别与其相关的各自的优先级逐个组地被转储刷新到第二非易失性存储器40中,这可以减小将数据传送到第二非易失性存储器40所执行的合并操作数。这里举例描述使用记录块映射方法的存储卡,但是本发明的实施例可以被应用于使用其它地址映射方法的存储卡。
图2是示出根据一些实施例的信息处理系统的框图。图2示出了其中主机100的主机驱动程序120执行用于将扇区数据重排到具有不同的优先级的组中的操作的示范性实施例。
如图2所示,当用户应用程序将数据写入存储卡160时,主机驱动程序120可以根据给定协议与存储卡160实现接口。主机驱动程序120可以被提供为主机110的驱动程序以支持与存储卡160的接口。然而,在一些实施例中,这样的功能可以用硬件来实现。主机驱动程序120可以以扇区单元管理来自于存储卡160的数据,这里也被称为扇区单元。主机驱动程序120可以将逻辑扇区号加到每个扇区以便支持扇区单元的数据交换。然而,主机驱动程序120可以不考虑存储卡160中的硬件信息。例如,主机驱动程序120可以不考虑与擦除数、合并映射方式、地址映射方式、磨损均衡等等有关的状态来提供数据。因此,主机驱动程序120可以不知道第一和第二非易失性存储器140和150中的每个存储块的扇区号、与当前记录块对应的数据块号等等。因而,主机驱动程序120能够通过逻辑扇区号来对要被转储刷新的扇区数据进行分组,例如,通过第40单元或第50单元。具体地,如果扇区数据是通过第40单元分组的,则与第0扇区和第39扇区之间的逻辑扇区号对应的扇区数据可以被分组。同样地,与第40扇区和第79扇区之间的逻辑扇区号对应的所有扇区可以构成另一个组。确定一个组的最大尺寸的扇区大小可以基于第二非易失性存储器150的块大小来定义。如果这样的信息没有被主机驱动程序120获得,则一个组的最大尺寸可以由主机驱动程序120中设置的缺省值来确定。
主机驱动程序120可以将要被转储刷新的扇区单元的数据的逻辑扇区号分为多个组。分成的组可以基于包括的扇区单元数据的数目而具有不同的转储刷新优先级。此外,相同组中的扇区数据可以根据逻辑扇区号以不同的优先级被转储刷新。根据一些实施例,在主机驱动程序120的控制下进行的数据转储刷新策略如下:
(1)为相对较大的组(或具有较多数量的分配(allot)的扇区的组)的数据的传送分组逻辑扇区号和/或授予优先级;
(2)以FIFO方式传送数据,其中数据将在具有相同大小或包括相同的扇区数的组之间传送;
(3)首先传送具有较低扇区号的扇区数据,其中数据将在相同组的扇区之间传送。
存储卡160可以根据主机驱动程序120确定的传送次序将缓冲在第一非易失性存储器140中的数据传送到第二非易失性存储器150中。存储控制器130可以控制存储卡160和主机110之间的数据交换。第一非易失性存储器140可以是具有相对快速的写入速度的存储设备或存储器区,例如SLC存储设备。第二非易失性存储器150被用作大容量存储器介质,缓冲在第一非易失性存储器140中的数据可以在转储刷新操作中被传送到第二非易失性存储器150。第二非易失性存储器150不局限于任何特定的地址映射方法;但是,这里以举例方式使用记录块映射方法描述第二非易失性存储器150。而且,这里在主机驱动程序120的逻辑扇区号被控制的假定下描述转储刷新操作。但是,本发明不限于此,本发明的实施例可以包括控制从主机110到第一非易失性存储器130的输入次序以便按照主机驱动程序120分组的次序来传送。下面将更详细地描述从第一非易失性存储器140到第二非易失性存储器150的数据的转储刷新。
图3是示出参考图2的上述转储刷新方法的框图。在图3的实施例中,第一非易失性存储器140是SLC闪速存储器,第二非易失性存储器150是MLC闪速存储器。
第一非易失性存储器140可以具有快速的写入速度。因而,输入数据可以被快速地存储在第一非易失性存储器140中。一般说来,可以使用第一非易失性存储器140(可以担当写入缓冲器)存储频繁更新的主机数据(例如元数据)。第一非易失性存储器140的数据区可以被布置为使得依次对多个扇区进行编程。从第0扇区141到第M-1扇区145输入的数据可以被依次编程。扇区141到145的每一个不被覆写。在所有的扇区141到145都充满输入数据时,可以将数据从第一非易失性存储器140转储刷新到第二非易失性存储器150中。
可以根据记录块映射方法利用存储块单元管理第二非易失性存储器150中的数据。第二非易失性存储器150可以包括可以担当缓冲器的记录块151和152、以及从记录块向其传送有效数据的数据块153-157。尽管图中未示出,还可以包括各自指示擦除的存储块的空闲块,并且该空闲块可以根据需要被分配给记录块。
转储刷新操作可以如下进行。在下面例子中,第二非易失性存储器150的每个数据块具有50个扇区。因此,扇区数据可以通过第50单元分组。在扇区数据是通过第50单元分组的情况下,第0扇区和第49扇区之间的扇区数据可以构成一个组。同样地,第50扇区和第99扇区之间的扇区数据可以构成另一个组。
在转储刷新操作中从第一非易失性存储器140传送的数据可以首先被编程到记录块151和152的任意一个中。在示范性实施例的情况下,转储刷新数据可以按照多个组单元被传送。对于分组,相同的组中的存储单元参考非易失性存储器150的数据块的大小来定义。例如,假定具有逻辑扇区号1、34、159、160、188和144的扇区被转储刷新。扇区1和34对应于第二非易失性存储器150的第0块153。扇区159、160和188对应于第二非易失性存储器150的第3块156。扇区144对应于第2块155。因而,根据主机驱动程序120的数据转储刷新策略,对应于第3数据块的扇区159、160和188被选为第一组(Group1),其包括最大数目的扇区。扇区1和34被选为第二组(Group2),而扇区144被选为第三组(Group3),其包括最小数目的扇区。转储刷新操作可以从第一组(Group1)开始。
从以上描述可以理解,主机驱动程序120可以对逻辑扇区号进行分组并设置优先级。在转储刷新操作中,借助于主机驱动程序120,根据分组的逻辑扇区号和设置的优先级,缓冲在第一非易失性存储器140中的数据可以被传送到第二非易失性存储器150。换句话说,缓冲在第一非易失性存储设备140中的数据可以被逐个组地转储刷新,以使得指派给具有较高优先级的组的数据在指派给具有较低优先级的组的数据之前被传送到第二存储设备150。
图4是示出借助于图2的主机驱动程序分组逻辑扇区号的框图。扇区可以按以下顺序被缓冲在第一非易失性存储器140中:53、159、1、188、54、111、和162。扇区159、162、和188由主机驱动程序120指派或分配给Group1。扇区53和54被分配给Group2。仅仅一个扇区被包括在Group3中,但是具有较低逻辑扇区号的扇区(在这种情况下为扇区1)被分配到其中。最后的扇区111被分配给Group4。第一组(Group1)可以被首先转储刷新。在组Group1到Group4的每一个内,具有相对低的扇区号的扇区与具有相对较高的扇区号的扇区相比,具有较高的优先级。因此,扇区可以按照159、162、188、53、54、1和111的转储刷新次序被重排,以提供与第一存储设备中的缓冲顺序不同的转储刷新顺序。
转储刷新次序的重排可以由主机驱动程序120来进行。扇区数据可以根据该重排的转储刷新次序从第一非易失性存储器140传送到第二非易失性存储器150。因此,如图4所示,包括更多扇区的组具有较高的转储刷新优先级,而每个组内的较低编号的扇区具有较高的转储刷新优先级。
图5A是示出根据一些实施例的转储刷新过程的图。参考图5A,示出了记录块LOG BLOCK0和LOG BLOCK1以及以扇区单元提供的转储刷新数据。在这个例子中,假定当前记录块LOG BLOCK0被分配给数据块Block0,记录块LOG BLOCK1被分配给数据块Block3。阴影的块指示其中传送的扇区数据被编程的记录块。记录在每个记录块中的块号与记录块被分配给的数据块的号对应。在此状态下,从包括较多扇区数的组的扇区到包括较少扇区数的组的扇区依次进行转储刷新操作。下面将更详细地描述转储刷新操作。
首先,根据由通过主机驱动程序120布置或指派的转储刷新顺序指示的优先级,将第一组Group1的扇区159从第一非易失性存储器140移动到第二非易失性存储器150。扇区159可以对应于其中存储第二非易失性存储器150的与逻辑扇区号150到199对应的扇区的数据块Block3。由于记录块LOG BLOCK1被分配或分派(allocate)给数据块Block3,因此扇区159可以被编程到记录块LOG BLOCK1中(S10)。然后,将第一组Group1的扇区162从第一非易失性存储器140移动到第二非易失性存储器150。扇区162对应于其中存储与逻辑扇区号150到199对应的扇区的数据块Block3。由于记录块LOG BLOCK1被分配给数据块Block3,因此扇区162被编程到记录块LOG BLOCK1中(S20)。然后,将第一组Group1的扇区188从第一非易失性存储器140传送到第二非易失性存储器150。扇区188被包括在其中存储与逻辑扇区号150到199对应的扇区的数据块Block3中。由于记录块LOG BLOCK1被分配给数据块Block3,因此扇区188被编程到记录块LOGBLOCK1中(S30)。当包括在一个组中的扇区单元的转储刷新数据被移动时,由于没有分配附加记录块,因此不执行合并操作。
在来自于第一组Group1的数据的数据传送之后,对于第二组Group2的扇区53和54执行数据转储刷新操作。将扇区53从第一非易失性存储器140传送到第二非易失性存储器150。扇区53对应于其中存储第二非易失性存储器150的与逻辑扇区号50到99对应的扇区的数据块Block1。但是,记录块LOG BLOCK0和LOG BLOCK1中没有一个被分配给数据块Block1。因而,执行合并操作以获得擦除的块作为记录块。具体地,通过合并数据块Block0和分配给当前数据块Block0的记录块LOG BLOCK0来获得一个擦除的空闲块。获得的空闲块被指派给记录块LOG BLOCK0,其被分配给数据块Block1。输入扇区53被编程到分配给数据块Block1的记录块LOG BLOCK0中(S40)。然后,通过将包括在与扇区53相同的组中的扇区54编程到记录块LOG BLOCK0中而不用另外的合并操作,来完成第二组Group2的数据传送操作(S50)。
在来自于第二组Group2的数据的传送之后,对于与第三组Group3对应的扇区1执行数据转储刷新操作。扇区1对应于其中存储第二非易失性存储器150的与逻辑扇区号0到49对应的扇区的数据块Block0。但是,因为当前没有记录块被分配给数据块Block0,因此经由合并操作可以获得擦除的块作为记录块。具体地,通过合并数据块Block3和分配给当前数据块Block3的记录块LOG BLOCK1来获得一个擦除的空闲块。获得的空闲块被指派给记录块LOG BLOCK1,其被分配给数据块Block0。通过将输入扇区1编程到记录块LOG BLOCK1中来完成第三组group3的数据传送(S60)。
在来自于第三组Group3的数据的传送之后,对于与第四组Group4对应的扇区111执行数据转储刷新操作。扇区111对应于其中存储第二非易失性存储器150的与逻辑扇区号100到149对应的扇区的数据块Block2。但是,因为当前没有记录块被分配给数据块Block2,因此经由合并操作可以获得擦除的块作为记录块。通过合并数据块Block0和分配给当前数据块Block0的记录块LOG BLOCK1来获得一个擦除的空闲块。获得的空闲块被指派给记录块LOG BLOCK1,其被分配给数据块Block2。通过将输入扇区111编程到记录块LOG BLOCK1中来完成第四组Group4的数据传送(S70)。
按照根据一些实施例的转储刷新操作,当传送相同组中的扇区数据时,可以不需要合并操作。合并操作发生在组之间需要擦除的记录块的时间点。也就是说,如果参考四个组进行转储刷新操作,则通过三次合并操作获得记录块。结果,通过对转储刷新数据进行分组有可能降低获得或得到新记录块的频率。因而,可以减小合并操作数量和擦除计数。
图5B是示出根据FIFO方式执行的转储刷新过程的图。参考图5B,示出了第二非易失性存储器150的记录块LOG BLOCK0和LOG BLOCK1以及以扇区单元提供的转储刷新数据。在这个例子中,假定当前记录块LOGBLOCK0被分配给数据块Block0,记录块LOG BLOCK1被分配给数据块Block3。在此状态下,第一非易失性存储器140的转储刷新数据可以按照第一非易失性存储器140的输入次序被传送到第二非易失性存储器150。下面将更详细地描述这样的转储刷新操作。
在步骤S110,首先输入到第一非易失性存储器140的扇区53被传送到第二非易失性存储器150。扇区53对应于其中存储第二非易失性存储器150的与逻辑扇区号50到99对应的扇区的数据块Block1。但是,由于当前没有记录块被分配给数据块Block1,因此记录块LOG BLOCK0与数据块Block0合并。通过合并操作获得的空闲块可以被指派给记录块LOG BLOCK0,其被分配给数据块Block1。一旦记录块BLOCK0已被分配给数据块Block1,则扇区53被编程到记录块LOG BLOCK0中(S110)。然后,将扇区159从第一非易失性存储器140移动到或转换到第二非易失性存储器150。扇区159对应于其中存储第二非易失性存储器150的与逻辑扇区号150到199对应的扇区的数据块Block3。由于记录块LOG BLOCK1被分配给数据块Block3,因此扇区159可以不用合并操作而被编程到记录块LOG BLOCK1中(S120)。然后,将扇区1从第一非易失性存储器140移动到或转换到第二非易失性存储器150。扇区1对应于其中存储第二非易失性存储器的与逻辑扇区号0到49对应的扇区的数据块Block0。但是,当前没有记录块被分配给数据块Block0。这样,分配给数据块Block1的记录块LOG BLOCK0与数据块Block1合并。通过合并操作获得的空闲块被指派给记录块LOG BLOCK0,其被分配给数据块Block0。一旦记录块BLOCK0已被分配给数据块Block1,则将扇区1编程到记录块LOG BLOCK0中(S130)。扇区188的数据传送可以在步骤S140中进行。扇区188对应于其中存储第二非易失性存储器150的与逻辑扇区号150到199对应的扇区的数据块Block3。由于记录块LOGBLOCK1被分配给数据块Block3,因此扇区188可以不用合并操作而被编程到记录块LOG BLOCK1中(S140)。
扇区54的数据传送可以在步骤S150中进行。扇区54对应于存储第二非易失性存储器150的与逻辑扇区号50到99对应的扇区的数据块Block1。因为当前没有记录块被分配给数据块Block0,因此将分配给数据块Block3的记录块LOG BLOCK1与数据块Block3合并。通过合并操作获得的擦除的空闲块被指派给记录块LOG BLOCK1,其被分配给数据块Block1。一旦获得分配给数据块Block1的记录块LOG BLOCK1,则将扇区54编程到记录块LOG BLOCK1中(S150)。然后,扇区111的数据传送在步骤S160中执行。扇区111对应于其中存储与第二非易失性存储器150的与逻辑扇区号100的149对应的扇区的数据块Block2。因为当前没有记录块被分配给数据块Block2,因此将分配给数据块Block1的记录块LOG BLOCK1与数据块Block1合并。通过合并操作获得的空闲块被指派给记录块LOG BLOCK1,其被分配给数据块Block2。一旦获得分配给数据块Block2的记录块LOGBLOCK1,则将扇区111编程到记录块LOG BLOCK1中(S160)。扇区162的数据传送在步骤S170中执行。扇区162对应于其中存储第二非易失性存储器150的与逻辑扇区号150到199对应的扇区的数据块Block3。因为当前没有记录块被分配给数据块Block3,因此将分配给数据块Block0的记录块LOG BLOCK0与数据块Block0合并。通过合并操作获得的空闲块被指派给记录块LOG BLOCK0,其被分配给数据块Block3。一旦记录块LOG BLOCK0已被分配给数据块Block3,则将扇区162编程到记录块LOG BLOCK0中(S170)。因而,根据在不对要被转储刷新的数据进行分组和/或优先级重排的情况下执行的图5B的数据转储刷新操作,更频繁地使用合并操作以获得空闲块。具体地,如图5B所示,执行五个合并操作。这样,可以增加擦除数并且可以降低写入速度。
但是,如图5A所示,根据本发明的一些实施例的转储刷新操作可以仅仅执行三次合并操作,而不是在图5B的FIFO转储刷新操作(其中转储刷新数据没有被分组并且优先次序没有被重排)中执行的五次合并操作。因此,在本发明的一些实施例中,通过借助于主机驱动程序120对转储刷新数据的逻辑扇区号进行分组和/或重排优先级次序,有可能减小擦除计数和/或提高写入速度。
图6是示出根据一些实施例的包括支持分组和转储刷新操作的闪速转换层的信息处理系统的框图。参考图6,转储刷新数据的分组和重排可以由存储卡250而不是主机210来执行。存储卡250包括存储控制器220,其被配置为在存储卡250和主机210之间实现接口。此外,存储控制器220可以包括闪速转换层(FTL)225作为存储控制器220的组成元件或功能中的一个。在这样的信息处理系统200中,转储刷新数据分组和重排可以由存储控制器220执行,而且具体地由FTL 225执行。
在图6的一些实施例中,主机210可以不执行转储刷新数据分组操作和/或优先级重排操作。因此,基于逻辑扇区号的控制操作可以不由主机210执行。相反,可以用一般方式将扇区数据和写入命令发送给存储卡250。
存储卡250可以包括具有FTL 225的配置或功能的存储控制器220、第一非易失性存储器230、和第二非易失性存储器240。第一和第二非易失性的存储器230和240的配置和/或操作可以类似于参考图2所讨论的。但是,存储控制器220还可以执行诸如上述的分组和重排操作的功能的功能。具体地,FTL 225可以执行转储刷新数据分组操作和优先级重排操作。由于FTL225也可以执行地址映射操作和/或诸如磨损均衡、碎片(garbage)收集等等的功能,因此主机210可以不必实时地获得存储卡250的总体信息。因此,借助于FTL 225来执行转储刷新数据分组操作和/或优先级重排操作可以是有效的,FTL 225可以存取存储卡250的特有信息,例如每块的扇区数、当前分配或指派的记录块号等等。由图6的FTL 225执行的数据转储刷新策略如下:
(1)以扇区单元对存储在第一非易失性存储器230中的要被转储刷新的数据进行分组,并且基于第二非易失性存储器240的每个块的扇区数量来确定每个组的大小;
(2)首先传送组当中的能够被存储在分配给第二非易失性存储器240的记录块中的数据;
(3)除能够被存储在当前分配的记录块中的组之外,向具有指派给其的较多数量的扇区的组给予优先;
(4)在包括的扇区的大小或数量相同的组的情况下,以FIFO方式传送数据;
(5)与具有较高逻辑扇区号的扇区数据相比,向具有较低逻辑扇区号的扇区数据给予优先。
根据图6的FTL 225的转储刷新策略,能够被编程到当前分配的记录块中的组的数据被首先传送。
图7是示出借助于图6的闪速转换层225执行的转储刷新过程。参考图7,在第二非易失性存储器240中,记录块LOG BLOCK0和记录块LOGBLOCK 1由FTL 225分别分配给数据块Block0和数据块Block3。该条件下,FTL 225基于第二非易失性存储器240的存储块的尺寸,将转储刷新数据分成多个扇区组。在其中包括转储刷新数据的多个扇区组可以与图4所示的扇区组相同。但是,可以与图5A的转储刷新过程不同地确定组当中的转储刷新优先级。FTL 225可以存取当前记录块的全部分派信息。因此,FTL 225可以基于当前记录块已被分配或指派给的数据块的数目来确定对于每个扇区组的优先级。也就是说,与数据块Block0和/或数据块Block3对应的扇区组被首先传送,因为记录块LOG BLOCK0当前被分配给数据块Block0,而记录块LOG BLOCK1当前被分配给数据块Block3。下面将更详细地描述图7的转储刷新过程。
首先,对应于数据块Block0(记录块LOG BLOCK0当前被分配给其)的扇区组可以是第三组Group3。因而,第三组Group3的扇区1可以不用合并操作被编程到第二非易失性存储器240的记录块LOG BLOCK0中(S210)。
在步骤S220,将对应于数据块Block3(记录块LOG BLOCK1当前被分配给其)的扇区组从第一存储器230传送到第二存储器,对应于数据块Block3的扇区组可以是第一组Group1。因此,第一组Group1的扇区159、162、和188可以不用合并操作而被依次编程到第二非易失性存储器240的记录块LOG BLOCK1中(S220、S230、S240)。
在从第一组Group1传送数据之后,根据将较高优先级授予包括较大数目的扇区的组的转储刷新策略,传送来自于第二组Group2的数据。第二组Group2的扇区53和54对应于第二非易失性存储器240的数据块Block1。但是,由于当前记录块LOG BLOCK0和LOG BLOCK1都没有被分配给数据块Block1,因此借助于合并操作获得用于记录块的擦除块。通过合并记录块LOG BLOCK0和数据块Block0来获得该个擦除的空闲块。获得的空闲块被指派给记录块LOG BLOCK0,其被分配给数据块Block1。然后输入扇区53可以被编程到分配给数据块Block1的记录块LOG BLOCK0中(S250)。通过将扇区54编程到记录块LOG BLOCK0中来完成来自第二组Group2的数据传送,而不用进一步的合并操作(S260)。
在第二组Group2中的扇区被移动后,可以传送第四组Group4中的扇区111。扇区111对应于第二非易失性存储器240的数据块Block2。但是,记录块LOG BLOCK0和LOG BLOCK1当前被分别分配给数据块Block1和Block3。由于当前没有记录块被分配给数据块Block2,因此经由合并操作获得擦除的块作为记录块。FTL 225可以通过合并记录块LOG BLOCK1和数据块Block3来获得擦除的空闲块。获得的空闲块被指派给记录块LOGBLOCK1,其被分配给数据块block2。从而完成来自包括扇区111的第四组Group4的数据传送(S270)。
根据图7中描述的由FTL 225管理的转储刷新操作,四个扇区组Group1到Group4的转储刷新操作可以需要两个合并操作,因为优先级是由FTL 225基于记录块的当前分派来确定的。结果,直到传送开头两个组之后才执行合并操作。与图5A中描述的转储刷新过程相比,由于由FTL 225执行分组和优先级确定,因此需要的合并操作的数目减小了。
图8是示出可以应用于图7的任何一组的交换合并操作的图。参考图8,示出了一种在转储刷新数据的传送之后基于记录块当前被分配给的数据块来将记录块切换成数据块的方法。也就是说,可以执行交换合并操作,其中,通过将存储在与当前记录块对应的数据块中的数据与要被转储刷新的扇区组组合来配置一个存储块单元,下面将更详细地描述。
在图8中,由FTL 225分组的扇区组Groupm包括扇区50到95以及98和99,未包括在扇区组Groupm中的扇区96和97之前已被记录在数据块Block1中。FTL 225首先将扇区50到95记录在分配给数据块Block1的记录块LOG BLOCK1中(①)。FTL 225将扇区96和97从记录块LOG BLOCK1被分配给的数据块Block1传送到记录块LOG BLOCK1(②)。FTL 225将扇区组Groupm的扇区98和99传送到记录块LOG BLOCK1中(③)。因此,与相同的目标块对应的所有扇区被编程到记录块LOG BLOCK1中,在该记录块中,扇区98和99被编程。因而,执行交换合并操作,其中,记录块LOG BLOCK1的地址被指派给数据块Block1,而没有附加的合并操作(④)。
根据上述交换合并操作,通过变更地址而不是将数据从记录块传送到数据块,来进行合并操作。因而,使用根据一些实施例的交换合并操作,可以减小用于数据传送所需的时间。
图9是示出根据一些其它实施例的转储刷新方法的图。参考图9,可以不执行缓冲在第一非易失性存储器230中的扇区数据的分组和/或通过重排实现的优先级的授予。取而代之的是,当执行转储刷新操作时,以FIFO方式扫描包括在相同的组中的扇区作为选择用于转储刷新的扇区。根据扫描操作选择并依次转储刷新包括在相同的组中作为要被转储刷新的扇区的扇区。因而,可以减小为获得记录块而执行的附加合并操作的数目,下面进行进一步的详细描述。
首先,如果第一非易失性存储器230不具有空闲存储器或剩余数据区,则进行数据转储刷新操作。根据扇区被编程到第一非易失性存储器230的次序,首先转储刷新扇区159。在移动扇区159之前,确定是否有要被转储刷新的附加的扇区包括在与扇区159相同的组中。也就是说,对于具有扇区号150到199的扇区,扫描要被转储刷新的扇区(①)。扇区188和162被识别为扫描的结果,并且被传送到被分配或关联(associate)到数据块Block3的记录块LOG BLOCK1(②)。当传送扇区1时,对于与扇区1相同的组的扇区,扫描要被转储刷新的剩余扇区。也就是说,对于具有扇区号0到49的扇区,扫描要被转储刷新的扇区(③)。由于不存在与扇区1相同组的扇区,扇区1被编程到分配的记录块LOG BLOCK0(④)。如上所述,在转储刷新的时间点扫描要被转储刷新的扇区,并在剩余扇区之前将相同组中的扇区传送到第二非易失性存储器240的记录块。
尽管并没有参考用于执行上述扫描操作的设备具体描述图9的操作,但是应当理解,上述操作可以由这里图1、2和6所述的设备中的任何一个来执行,例如存储卡250的存储控制器220和/或主机110的主机驱动程序120。
图10是示出根据一些实施例的电子装置的框图。该电子装置可以是例如数字照相机。参考图10,数字照相机300可以包括存储卡310。根据示范性实施例的数字照相机300可以包括存储卡310,其包括用于数据存储的第一和第二非易失性存储器312和313。数字照相机300包括用于与存储卡310实现接口的卡控制器320。数字照相机300还包括MCU 330和照相机图像处理器340,其电连接到总线。照相机图像处理器340处理从图像传感器350提供的图像信号,该图像传感器350从镜头感测光学图像。数字照相机300还包括显示器360,其处理图像信号以提供可见图像。还可以提供电池370以为数字照相机300供电。尽管图中未示出,但是应当理解,根据实施例的系统还可以包括应用芯片组、移动DRAM等等。
根据图10的实施例的存储卡310可以是MMC卡、SD卡、微SD卡、存储棒、ID卡、PCMCIA卡、芯片卡、USB卡、智能卡、CF卡等等。
非易失性存储器312和313被配置为即使在断电时也保持其中存储的数据。非易失性存储器312和313可以被广泛地用作例如蜂窝电话、PDA、数字照相机、便携式游戏控制台、和/或MP3播放器的移动设备中的数据存储器和/或代码存储器。包括非易失性存储器312和313以及闪速控制器311的存储卡310还可以被用于家用电器中,例如HDTV、DVD、路由器、和/或GPS设备。
这里描述的存储卡还可以被实现为系统。实现的系统可以是被包括作为其它设备的一部分的计算系统,并且可以根据包括在该系统中的设备的需要执行特定的计算操作,这与通用计算机不同。这样的系统还可以包括具有中央处理器的操作系统,并且可以通过操作系统执行应用以执行特定功能。一般说来,该系统可以被配置为控制例如军用设备、工业设备、通信设备、机顶盒、DTV、和/或数字照相机的电子设备。
上述公开的主题将被认为是说明性的,而不是限制性的,并且所附的权利要求书意欲覆盖落入本发明的真实精神以及范围的所有这样的修改、增强及其他实施例。因而,以法律允许的最大程度,本发明的范围将由以下权利要求书和它们的等价物的最宽泛的可允许的解释来确定,而不应该被前述详细说明限制或局限。
对相关申请的交叉引用
本申请要求于2008年6月17日向韩国特许厅提交的韩国专利申请No.10-2008-0056980的优先权,通过引用将其公开的全部内容合并于此。

Claims (27)

1、一种在包括第一存储设备和第二存储设备的存储系统中管理数据的方法,该方法包括:
以预定单元将数据编程到第一存储设备中;以及
根据转储刷新顺序以逐个组的方式将被编程在第一存储设备中的多个数据转储刷新到第二存储设备的至少一个记录块中,其中所述多个数据中的数据被指派到分别具有各自不同的转储刷新优先级的至少两个不同的组,其中所述不同的组中的至少一个具有被指派给其的多个数据的至少两个单元。
2、如权利要求1所述的方法,其中,该多个数据包括多个扇区数据,而且其中根据其逻辑扇区号将该多个扇区数据中的一个或多个包括在所述不同的组中的一个中。
3、如权利要求2所述的方法,其中,包括在相同的组中的多个扇区数据中的扇区数据具有与第二存储设备的相同的数据块对应的逻辑扇区号。
4、如权利要求1所述的方法,其中,在转储刷新顺序中的所述不同的组的各自的转储刷新优先级是根据多个数据中的多少个单元被包括在所述不同的组中的每一个中来确定的。
5、如权利要求4所述的方法,其中,包括在相同的组中的多个数据的每一个根据其逻辑扇区号具有与其相关的各自的优先级。
6、如权利要求1所述的方法,其中,在转储刷新顺序中的所述不同的组中的至少一个的各自的转储刷新优先级是根据在确定各自的转储刷新优先级时所述至少一个记录块被指派到的第二存储设备的数据块来确定的。
7、如权利要求6所述的方法,其中,包括具有与第二存储设备的数据块对应的逻辑扇区号的所述多个数据中的至少一个的组包括转储刷新顺序中的最高优先级,而且被首先转储刷新到第二存储设备中。
8、一种存储系统中的数据转储刷新方法,其将缓冲在第一存储设备中的多个数据传送到第二存储设备中,该方法包括:
选择要传送到第二存储设备的多个数据中的一个;
检测多个数据中具有与多个数据中所选择的一个数据相同的第二存储设备的目标块的至少一个附加数据;以及
在移动多个数据中的剩余数据之前,将多个数据中的选择的和检测的数据移动到被指派给该目标块的第二存储设备的记录块中。
9、如权利要求8所述的方法,其中,该多个数据包括多个扇区数据,以及其中该移动步骤包括:
按照多个扇区数据中的被选择和检测的数据当中具有较低逻辑扇区号的扇区数据被首先移动的顺序,将多个扇区数据中的被选择和检测的扇区数据依次移动到记录块中。
10、如权利要求9所述的方法,其中,重复所述选择、检测、和移动步骤,直到缓冲在第一存储设备中的多个扇区数据被传送到第二存储设备中。
11、如权利要求8所述的方法,其中,多个数据中的被选择的一个数据包括根据第一存储设备的缓冲顺序的多个数据中的第一个数据。
12、一种信息处理系统,包括:
第一存储设备,被配置为以预定单元按照缓冲顺序依次存储从主机设备提供的数据;
第二存储设备,被配置为存储从第一存储设备传送给其的多个数据;和
控制器,被配置为提供主机与第一和第二存储设备之间的接口,并根据转储刷新顺序以逐个组的方式将来自于第一存储设备的多个数据转储刷新到第二存储设备中,其中多个数据中的数据被指派到分别具有不同的各自的转储刷新优先级的至少两个不同的组,其中不同的组中的至少一个具有被指派给其的多个数据的至少两个单元。
13、如权利要求12所述的信息处理系统,其中,第一和第二存储设备被包括在非易失性存储卡中。
14、如权利要求13所述的信息处理系统,其中,根据记录块映射方法管理第二存储设备中的数据,而且其中该控制器被配置为将该多个数据转储刷新到第二存储设备的至少一个记录块中。
15、如权利要求14所述的信息处理系统,其中,多个数据中的数据根据第二存储设备的数据块大小被分配到不同的组。
16、如权利要求15所述的信息处理系统,其中,在不同的组当中,包括多个数据中的较大数量的数据的组具有转储刷新顺序中的较高转储刷新优先级。
17、如权利要求15所述的信息处理系统,其中,在不同的组当中,包括具有与该第二存储设备的至少一个记录块被指派给其的第二存储设备的数据块对应的逻辑扇区号的多个数据中的至少一个的组包括转储刷新顺序中的最高优先级,并且被控制器首先转储刷新。
18、如权利要求17所述的信息处理系统,其中,包括多个数据中的较大数量的数据的组具有转储刷新顺序中的较低转储刷新优先级。
19、如权利要求13所述的信息处理系统,其中,该控制器包括主机驱动程序,其被配置为将多个数据中的数据指派到分别具有各自的转储刷新优先级的不同的组中。
20、如权利要求14所述的信息处理系统,其中,该控制器包括存储控制器,其包括闪速转换层,被配置为将多个数据中的数据指派到分别具有各自的转储刷新优先级的不同的组中。
21、如权利要求20所述的信息处理系统,其中,该闪速转换层根据在由闪速转换层确定各自的转储刷新优先级时第二存储器的至少一个记录块被指派到的第二存储设备的数据块,来确定不同的组中的至少一个的各自的转储刷新优先级。
22、如权利要求12所述的信息处理系统,其中,第一存储设备是单电平闪速存储设备,第二存储设备是多电平闪速存储设备。
23、一种数据管理方法,包括:
将缓冲在第一存储设备中的数据指派到至少两个不同的组中以传送到第二存储设备,以使得不同的组中的至少一个具有被指派给其的至少两个数据单元;以及
以逐个组的方式根据与不同的组中的每一个分别相关的各自的优先级依次将数据从第一存储设备传送到第二存储设备,以使得指派给具有较高优先级的组的数据单元在指派给具有较低优先级的组的数据单元之前被传送到第二存储设备。
24、如权利要求23所述的方法,其中,所述不同的组中的每一个的各自的优先级是基于指派给其的数据单元的数量。
25、如权利要求23所述的方法,其中,指派给相同的组的数据的单元包括与第二存储设备的相同的数据块对应的逻辑扇区号。
26、如权利要求25所述的方法,其中,所述传送数据的步骤包括:
将数据传送到第二存储设备的至少一个记录块,
其中不同的组中的至少一个的各自的优先级是基于在确定各自的优先级时所述至少一个记录块被指派到的第二存储设备的数据块来确定的。
27、如权利要求26所述的方法,其中,包括具有与至少一个记录块被指派到的第二存储设备的数据块对应的逻辑扇区号的数据的单元的组包括最高优先级。
CN200910145882.XA 2008-06-17 2009-06-17 非易失性存储设备中的数据管理方法及非易失性存储系统 Active CN101639808B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020080056980A KR101497074B1 (ko) 2008-06-17 2008-06-17 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
KR56980/08 2008-06-17

Publications (2)

Publication Number Publication Date
CN101639808A true CN101639808A (zh) 2010-02-03
CN101639808B CN101639808B (zh) 2017-04-12

Family

ID=41414629

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910145882.XA Active CN101639808B (zh) 2008-06-17 2009-06-17 非易失性存储设备中的数据管理方法及非易失性存储系统

Country Status (3)

Country Link
US (1) US8392662B2 (zh)
KR (1) KR101497074B1 (zh)
CN (1) CN101639808B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844234A (zh) * 2015-12-04 2017-06-13 成都华为技术有限公司 数据写入方法及装置、双活系统
CN109521950A (zh) * 2017-09-20 2019-03-26 三星电子株式会社 存储设备、其操作方法及包括存储设备的存储系统
CN114911426A (zh) * 2022-07-15 2022-08-16 北谷电子有限公司 一种数据存储方法、存储器件和高空车

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110018157A (ko) * 2009-08-17 2011-02-23 삼성전자주식회사 플래시 메모리 장치의 액세스 방법
US8473680B1 (en) * 2009-09-18 2013-06-25 Marvell International Ltd. Hotspot detection and caching for storage devices
JP5091940B2 (ja) * 2009-12-28 2012-12-05 京セラドキュメントソリューションズ株式会社 画像形成装置および不揮発性メモリ書き込み方法
JP5520098B2 (ja) * 2010-03-24 2014-06-11 スパンション エルエルシー データ処理方法、プログラムおよびシステム
US9355109B2 (en) * 2010-06-11 2016-05-31 The Research Foundation For The State University Of New York Multi-tier caching
US8850160B2 (en) 2010-08-23 2014-09-30 Apple Inc. Adaptive write behavior for a system having non-volatile memory
KR20120088452A (ko) * 2011-01-31 2012-08-08 에스케이하이닉스 주식회사 반도체 메모리 장치 및 데이터 프로그래밍 방법
CN102999437B (zh) * 2011-09-19 2015-12-16 群联电子股份有限公司 数据搬移方法、存储器控制器与存储器储存装置
JP5790532B2 (ja) * 2012-02-13 2015-10-07 セイコーエプソン株式会社 電子機器、及びメモリー制御方法
KR101923157B1 (ko) 2012-02-22 2018-11-28 삼성전자주식회사 메모리 시스템 및 그것의 프로그램 방법
JP2014206884A (ja) * 2013-04-15 2014-10-30 株式会社フィックスターズ 情報処理装置、情報処理方法、およびプログラム
US9135113B2 (en) 2013-10-08 2015-09-15 Apple Inc. Recovery from programming failure in non-volatile memory
US9535628B2 (en) 2013-10-10 2017-01-03 Apple Inc. Memory system with shared file system
US10318205B2 (en) 2014-01-30 2019-06-11 Hewlett Packard Enterprise Development Lp Managing data using a number of non-volatile memory arrays
US9965383B2 (en) * 2014-08-05 2018-05-08 Netapp, Inc. File system indirection technique for directly managing solid state devices
CN113590504A (zh) * 2016-06-29 2021-11-02 北京忆恒创源科技股份有限公司 存储日志帧以及日志条目的固态硬盘
US10884926B2 (en) 2017-06-16 2021-01-05 Alibaba Group Holding Limited Method and system for distributed storage using client-side global persistent cache
US10678443B2 (en) 2017-07-06 2020-06-09 Alibaba Group Holding Limited Method and system for high-density converged storage via memory bus
US10564856B2 (en) * 2017-07-06 2020-02-18 Alibaba Group Holding Limited Method and system for mitigating write amplification in a phase change memory-based storage device
US10642522B2 (en) 2017-09-15 2020-05-05 Alibaba Group Holding Limited Method and system for in-line deduplication in a storage drive based on a non-collision hash
JP2019061458A (ja) * 2017-09-26 2019-04-18 京セラドキュメントソリューションズ株式会社 電子機器およびログアプリケーション
US10789011B2 (en) 2017-09-27 2020-09-29 Alibaba Group Holding Limited Performance enhancement of a storage device using an integrated controller-buffer
US10860334B2 (en) 2017-10-25 2020-12-08 Alibaba Group Holding Limited System and method for centralized boot storage in an access switch shared by multiple servers
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10891239B2 (en) 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10831404B2 (en) 2018-02-08 2020-11-10 Alibaba Group Holding Limited Method and system for facilitating high-capacity shared memory using DIMM from retired servers
US11379155B2 (en) 2018-05-24 2022-07-05 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
WO2020000136A1 (en) 2018-06-25 2020-01-02 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of i/o requests
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US10871921B2 (en) 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
US10747673B2 (en) 2018-08-02 2020-08-18 Alibaba Group Holding Limited System and method for facilitating cluster-level cache and memory space
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10852948B2 (en) 2018-10-19 2020-12-01 Alibaba Group Holding System and method for data organization in shingled magnetic recording drive
US10795586B2 (en) 2018-11-19 2020-10-06 Alibaba Group Holding Limited System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
US10769018B2 (en) 2018-12-04 2020-09-08 Alibaba Group Holding Limited System and method for handling uncorrectable data errors in high-capacity storage
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US10884654B2 (en) 2018-12-31 2021-01-05 Alibaba Group Holding Limited System and method for quality of service assurance of multi-stream scenarios in a hard disk drive
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US10860420B2 (en) 2019-02-05 2020-12-08 Alibaba Group Holding Limited Method and system for mitigating read disturb impact on persistent memory
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10783035B1 (en) 2019-02-28 2020-09-22 Alibaba Group Holding Limited Method and system for improving throughput and reliability of storage media with high raw-error-rate
US10891065B2 (en) 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11074124B2 (en) 2019-07-23 2021-07-27 Alibaba Group Holding Limited Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
US11113188B2 (en) * 2019-08-21 2021-09-07 Microsoft Technology Licensing, Llc Data preservation using memory aperture flush order
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
KR20210076505A (ko) 2019-12-16 2021-06-24 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11042307B1 (en) 2020-01-13 2021-06-22 Alibaba Group Holding Limited System and method for facilitating improved utilization of NAND flash based on page-wise operation
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US10872622B1 (en) 2020-02-19 2020-12-22 Alibaba Group Holding Limited Method and system for deploying mixed storage products on a uniform storage infrastructure
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11144250B2 (en) 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
KR20230094588A (ko) * 2021-12-21 2023-06-28 에스케이하이닉스 주식회사 복수의 존들에 대응하는 데이터를 관리하는 메모리 시스템 및 그 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040024971A1 (en) * 2000-09-21 2004-02-05 Zohar Bogin Method and apparatus for write cache flush and fill mechanisms
US20070283086A1 (en) * 2006-06-06 2007-12-06 Seagate Technology Llc Write caching random data and sequential data simultaneously
US20080120488A1 (en) * 2006-11-20 2008-05-22 Samsung Electronics Co., Ltd. Apparatus and method of managing nonvolatile memory

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
KR19990013057A (ko) 1997-07-31 1999-02-25 윤종용 단일 비트 데이터와 다중 비트 데이터를 동일한 칩에 선택적으로 저장하는 플래시 메모리 장치의 독출 및 기입 방법
KR100644602B1 (ko) * 2000-10-11 2006-11-10 삼성전자주식회사 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
JP2003022687A (ja) 2001-07-09 2003-01-24 Mitsubishi Electric Corp 半導体記憶装置
KR100568115B1 (ko) * 2004-06-30 2006-04-05 삼성전자주식회사 점진적 머지 방법 및 그것을 이용한 메모리 시스템
US7277982B2 (en) * 2004-07-27 2007-10-02 International Business Machines Corporation DRAM access command queuing structure
JP4586469B2 (ja) * 2004-09-15 2010-11-24 ソニー株式会社 メモリ制御装置、メモリ制御方法、プログラム
US7409473B2 (en) * 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
KR100732628B1 (ko) 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
EP1929482B1 (en) 2005-09-29 2013-06-12 Trek 2000 International Ltd Portable data storage using slc and mlc flash memory
US7882301B2 (en) * 2007-05-09 2011-02-01 Stmicroelectronics S.R.L. Wear leveling in storage devices based on flash memories and related circuit, system, and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040024971A1 (en) * 2000-09-21 2004-02-05 Zohar Bogin Method and apparatus for write cache flush and fill mechanisms
US20070283086A1 (en) * 2006-06-06 2007-12-06 Seagate Technology Llc Write caching random data and sequential data simultaneously
US20080120488A1 (en) * 2006-11-20 2008-05-22 Samsung Electronics Co., Ltd. Apparatus and method of managing nonvolatile memory

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844234A (zh) * 2015-12-04 2017-06-13 成都华为技术有限公司 数据写入方法及装置、双活系统
CN106844234B (zh) * 2015-12-04 2020-01-03 成都华为技术有限公司 数据写入方法及装置、双活系统
CN109521950A (zh) * 2017-09-20 2019-03-26 三星电子株式会社 存储设备、其操作方法及包括存储设备的存储系统
CN109521950B (zh) * 2017-09-20 2023-05-26 三星电子株式会社 存储设备、其操作方法及包括存储设备的存储系统
CN114911426A (zh) * 2022-07-15 2022-08-16 北谷电子有限公司 一种数据存储方法、存储器件和高空车

Also Published As

Publication number Publication date
US20090310412A1 (en) 2009-12-17
CN101639808B (zh) 2017-04-12
KR101497074B1 (ko) 2015-03-05
KR20090131146A (ko) 2009-12-28
US8392662B2 (en) 2013-03-05

Similar Documents

Publication Publication Date Title
CN101639808A (zh) 非易失性存储设备中的数据管理方法及非易失性存储系统
US7516295B2 (en) Method of remapping flash memory
US11914873B2 (en) Flash memory controller
US9329995B2 (en) Memory device and operating method thereof
US8356136B2 (en) Block management method of a non-volatile memory
JP5728672B2 (ja) ハイブリッドメモリ管理
US8144515B2 (en) Interleaved flash storage system and method
KR101465789B1 (ko) 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US8127072B2 (en) Data storage device and method for accessing flash memory
KR100780963B1 (ko) 메모리 카드 및 메모리 카드의 구동 방법
US20150220432A1 (en) Method and apparatus for managing at least one non-volatile memory
JP4273106B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US11068204B2 (en) Memory device with multiple physical spaces, multiple non-volatile memory arrays, multiple main data, multiple metadata of multiple types of commands, and access method thereof
KR102365581B1 (ko) 선호된 사용자 데이터에 대한 개선된 기입 성능을 갖는 데이터 저장소
US20210406169A1 (en) Self-adaptive wear leveling method and algorithm

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