CN104246725A - 用于顺序写入的非易失性存储器设备 - Google Patents

用于顺序写入的非易失性存储器设备 Download PDF

Info

Publication number
CN104246725A
CN104246725A CN201380020709.1A CN201380020709A CN104246725A CN 104246725 A CN104246725 A CN 104246725A CN 201380020709 A CN201380020709 A CN 201380020709A CN 104246725 A CN104246725 A CN 104246725A
Authority
CN
China
Prior art keywords
write
management
data
block unit
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.)
Granted
Application number
CN201380020709.1A
Other languages
English (en)
Other versions
CN104246725B (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of CN104246725A publication Critical patent/CN104246725A/zh
Application granted granted Critical
Publication of CN104246725B publication Critical patent/CN104246725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

本发明包括非易失性存储器单元、控制单元和接口。控制单元接收写入请求,并且当接收数据的大小小于擦除管理单位的大小时,控制单元判定接收数据是否是用于通过顺序管理进行写入的对象,并且当接收数据是用于通过顺序管理进行写入的对象时,控制单元执行用于顺序写入具有小于擦除管理单位的大小的大小的接收数据的第一写入处理,并且当接收数据不是用于通过顺序管理进行写入的对象时,控制单元执行用于以写入管理单位写入具有小于擦除管理单位的大小的大小的接收数据的第二写入处理。

Description

用于顺序写入的非易失性存储器设备
技术领域
本发明涉及一种可以防止由小尺寸的存取造成的速度下降的非易失性存储器设备、非易失性存储器控制设备、及非易失性存储器控制方法。
背景技术
近来,NAND闪存已被广泛用作非易失性存储器。在使用NAND闪存的存储设备中,电子数据的写入速度根据写入大小改变。称为垃圾收集的处理对变化有很大的影响(参阅专利文献1和2)。由于与用于对NAND闪存执行写入操作的主机设备的存取(access,访问)独立地执行该操作,因此该操作与存取速度的瞬时和快速降低相关联。因此,有必要降低垃圾收集的频率以保持性能。
在一般的闪存设备中,将写入闪存中的数据分为两类,即,以块为单位和以页为单位,并进行管理。在块单位管理中执行其中闪存的块大小的整数倍(下文称为块单位)被假设为一个单位的管理,并且在页单位管理中执行其中相同闪存的页大小的整数倍(下文称为页单位)被假设为一个单位的管理。块包括多个页。因此,通常为(块单位>页单位)。
垃圾收集是一种操作,其中收集由页单位(page unit,页单元)管理的区域并被升格为通过块单位进行的管理。因此,当执行写入使得从最初就执行由块单位进行的管理时,可以防止垃圾收集的发生。这可以通过利用块单位的整数倍执行写入来实现。因此,在必须执行高速写入的情况下,通常使用以块单位的整数倍执行存取的方法。
引用列表
专利文献
专利文献1:JP 2007-193883A
专利文献2:JP 2007-58840A
发明内容
本发明要解决的问题
然而,近年来根据闪存混合(Flash Bender)的趋势,块大小和块中的页的数量趋于逐年增加。因此,可以预测主机设备的缓冲器大小(依次存取的最大存取大小)在不久的将来低于块单位(block unit,块单元)的大小。现有设备的缓冲器大小几乎不改变,并且新设备的缓冲器大小增加相应地引起成本增加。因此,需要一种技术来抑制由小尺寸写入造成的速度降低。
该问题并不特定于NAND闪存并且对其中存在主机设备的缓冲器大小低于非易失性存储器设备的管理单位的可能性的所有非易失性存储器来说是共同的。
因此,本发明的目的是提供一种其中能够防止由小尺寸存取引起垃圾收集并由此引起速度降低的非易失性存储器设备、非易失性存储器控制设备、及非易失性存储器控制方法。
问题的解决方案
为了解决上述问题,本发明内容是一种包括非易失性存储器单元、控制单元和接口的非易失性存储器设备。控制单元接收写入请求,当接收数据的写入大小小于擦除的管理单位时判定数据是否是顺序管理的写入的对象,当数据是顺序管理的写入的对象时执行顺序写入小于擦除的管理单位的接收数据的第一写入处理,并且当数据不是顺序管理的写入的对象时执行依据写入的管理单位写入小于擦除的管理单位的接收数据的第二写入处理。
本发明是一种非易失性存储器控制设备和控制方法,其接收写入请求,当接收数据的写入大小小于擦除的管理单位时判定数据是否是顺序管理的写入的对象,当数据是顺序管理的写入对象时执行顺序写入小于擦除的管理单位的接收数据的第一写入处理,并且当数据不是顺序管理的写入对象时执行依据写入的管理单位写入小于擦除的管理单位的接收数据的第二写入处理。
本发明是一种非易失性存储器控制设备和控制方法,其中定义主机侧的命令,其指示利用顺序管理将小于擦除的管理单位的数据写入非易失性存储器设备的特定区域。数据的大小小于擦除的管理单位。
本发明的效果
本发明可以减小垃圾收集的频率并防止速度降低,因为在特定区域中顺序写入要被判定为顺序写入对象的小于擦除的管理单位的数据。
附图说明
图1是本发明可以适用的示例性闪速存储器设备的框图。
图2是用于描述闪速存储器的存储区域的示意图。
图3是用于描述并行闪速存储器的存储区域(P块单位)的示意图。
图4是用于描述并行闪速存储器的存储区域(P页单位)的示意图。
图5是用于描述闪速存储器的物理地址空间的示意图。
图6是用于描述逻辑地址空间的示意图。
图7是用于描述执行了P块单位管理的数据的数据结构的示意图。
图8是用于描述执行了顺序管理的数据的数据结构的示意图。
图9是用于描述执行了P页单位管理的数据的数据结构的示意图。
图10是用于描述P块单位保持管理数据的数据结构的示意图。
图11是用于描述P块单位管理的管理数据的数据结构的示意图。
图12是用于描述顺序管理的管理数据的数据结构的示意图。
图13是用于描述P页单位管理的第一管理数据的数据结构的示意图。
图14是用于描述P页单位管理的第二管理数据的数据结构的示意图。
图15是写入处理的整个流程的流程图。
图16是用于描述P块单位中的写入的流程图。
图17是用于描述判定通过闪速存储器对其执行顺序写入的对象的判定方法的流程图。
图18是顺序管理登记命令的示例性表的示意图。
图19是顺序管理登记命令的处理的流程图。
图20是主机清楚表明写入的顺序性并且在主机设备不管理顺序管理登记命令的表的情况下的方法的处理的流程图。
图21是判定写入命令是否与过去的顺序管理登记命令一致的处理的流程图。
图22是主机设备管理顺序管理登记命令的表的方法中的顺序管理登记命令的处理的流程图。
图23是主机设备管理顺序管理登记命令的表的方法中的顺序管理登记删除命令的处理的流程图。
图24是P块单位管理写入的处理的流程图。
图25是顺序管理写入的处理的流程图。
图26是P页单位管理写入的处理的流程图。
图27是相互比较各个判定方法的表的示意图。
图28是比较传统方法与本发明的判定方法的表的示意图。
图29是用于描述写入方法的实例1的示意图。
图30是用于描述写入方法的实例2的示意图。
图31是用于描述写入方法的实例3的示意图。
图32是用于描述写入方法的实例4的示意图。
图33是用于描述在读取时处理L块单位的示意图。
图34是用于描述在读取时处理L块单位的示意图。
图35是用于描述在读取时处理L块单位的示意图。
图36是用于描述在读取时处理L块单位的示意图。
图37是用于描述在读取时处理L块单位的示意图。
图38是用于描述在顺序写入途中终止的情况下处理L块单位的示意图。
图39是用于描述在顺序写入途中终止的情况下处理L块单位的示意图。
图40是用于描述在顺序写入途中终止的情况下处理L块单位的示意图。
图41是用于描述在顺序写入途中终止的情况下处理L块单位的示意图。
图42是用于描述顺序管理登记命令表的配置方法的示意图。
具体实施方式
下文将要描述的实施例是本发明的优选实例,并给出在技术上优选的各个限制。然而,本发明的范围不限于该实施例,除非下文存在表明本发明受限的描述。
下文的描述将按照以下顺序。
<1、本发明的一个实施方式>
<2、对于其他应用>
<3、变形例>
<1、本发明的一个实施方式>
“概述”
下面将参照附图描述本发明的实施例。如图1中所示,在本发明的实施例中,闪速存储器设备1包括闪速存储器单元2、存储器控制单元3、和外部接口4。在闪速存储器单元2中制备有仅用于顺序管理写入的特定区域。存储器控制单元3具有以下机构,当外部接口4已经从主机设备11接收到小于闪速存储器单元2的块大小的顺序管理写入请求多次时,将所接收的数据顺序写入特定区域中。
在一般的闪速存储器设备中,基于块的管理单位(下文称为块单位)被用作擦除管理单位并且基于页的管理单位(下文称为页单位)被用作写入管理单位。针对各页单位管理小于块单位的大小的写入。通常,这些管理针对各写入存取独立执行。因此,即使当从主机设备发出小于多次的逻辑连续块单位的写入请求时,数据不一定是连续地写入到相同块单位。即,在一般的闪速存储器设备中,逻辑顺序存取不一定变成物理顺序存取。因此,当由页单位管理的数据被集体地由块单位管理时,必须复制碎片数据并将所复制的数据收集在相同块单位中。该操作称为垃圾收集。由于垃圾收集的操作独立于主机设备的请求执行,因此主机设备观察该操作为瞬时降低存取速度。
然而,当事先发现小于块单位大小的数据在多次命令的各次顺序写入时,通过执行将这些写入到同一块单位的顺序管理写入可以避免稍后写入的数据被升格到块单位管理的情况下的垃圾收集。这在本发明中被关注。因此,闪速存储器设备1的存储器控制单元3包括用于确定来自主机设备11的写入请求的顺序性并选择物理写入判定的机构。
“数据结构”
-物理地址空间和逻辑地址空间
首先,将描述本发明的闪速存储器设备1中包括的闪速存储器中的地址空间(物理地址空间)和用于经由外部接口4与主机设备11进行数据交换的虚拟地址空间(逻辑地址空间)。
如图2中所示,闪速存储器的存储区包括多个物理块,并且单个物理块包括多个物理页。物理块是擦除的最小单元,并且物理页是写入的最小单元。考虑到该物理配置,物理块被连续编号的物理块地址和各个物理块中的物理页被连续编号的物理页地址用于寻址闪速存储器。
为了提高速度,将多个闪存并行化。在并行操作的假设下,其中一个物理块选自各个闪存并收集所选的物理块的物理块被称为物理块单位(适当称为P块单位),并且被编号的物理块单位被称为本发明中如图3中所示的物理块单位地址。类似地,如图4中所示,从每个闪存收集同一P块单位中的一个物理页的物理页被称为物理页单位(适当称为P页单位),并且被编号的物理页单位被称为物理页单位地址。
闪速存储器存在个别差异,并且存在特定块的读取/写入擦除不起作用的情况(缺陷块)。为了避免对缺陷块执行操作,P块单位收集并包括没有缺陷的物理块。因此,同一P块单位中包括的物理块组的物理块地址可以彼此不同。当并行数为1时,P块单位和物理块的各自大小彼此一致并且P页单位和物理页的各自大小彼此一致。
通过使用上述元素配置的物理地址空间在图5中示出。物理地址空间包括多个P块单位(b个单位),并且一个P块单位包括多个P页单位(p个单位)。为了对应于逻辑地址空间的最小大小,将P页单位分为多个物理扇区(适当称为P扇区)(s个扇区)。为了通过使用这些地址指定闪速存储器中的物理地址,优选指定P块单位地址、P页单位地址、和P扇区地址。
如图6中所示,逻辑地址空间被配置使得它易于匹配上述提及的物理地址空间。逻辑地址空间包括多个逻辑块单位(适当称为L块单位)(b个单位),并且一个L块单位包括多个逻辑页单位(适当称为L页单位)(p个单位)。将L页单位分为寻址的最小大小。这被称为逻辑扇区(适当称为L扇区),并寻址L扇区。当指定一个逻辑地址时,与逻辑地址对应的L扇区、L页单位、和L块单位的组被唯一确定,如图6中所示。
-保存用户数据的P块单位的数据结构
将描述用于将数据(其在逻辑空间中)保存在物理空间中的数据结构。在本发明中,三个结构被制备作为该数据结构,即,P块单位管理、顺序管理、和P页单位管理。
(1)已执行P块单位管理的数据的数据结构
图7示出了保存已执行P块单位管理的数据的物理块单位。当特定L块单位填充有从零偏移至结束的数据并且所有L块单位中的数据都保存在相同P块单位中时,可以执行P块单位管理。P块单位中包括的每个物理页具有如图7中所示的元数据、对元数据的纠错码(ECC)信息、用户数据、和对用户数据的ECC信息。元数据包括表明执行P块单位管理的块类型、表明P块单位的生成的修订、和与P块单位的那些对应的L块单位地址和L页单位地址。根据上述P块单位管理的属性,P块单位中的所有物理页的L块单位地址变得相同并且L页单位地址变得与P块单位所属的P页单位地址相同。
(2)已执行顺序管理的数据的数据结构
图8示出了保存已执行顺序管理的数据的物理块单位。当特定L块单位填充有从零偏移至结束的数据并且所有数据都从零偏移顺序保存在相同P块单位中并且相同P块单位中不存在除上述数据之外的另外数据时,可以执行顺序管理。P块单位中包括的每个写入物理页具有如图8中所示的元数据、对元数据的ECC信息、用户数据、和对用户数据的ECC信息。元数据包括表明执行顺序管理的块类型、表明P块单位的生成的修订、和与P块单位的那些对应的L块单位地址和L页单位地址。根据上述顺序管理的属性,P块单位中的所有写入物理页的L块单位地址变得相同并且L页单位地址变得与P块单位所属的P页单位地址相同。另外,未写入物理页填充1。
(3)已执行P页单位管理的数据的数据结构
图9示出了保存已执行P页单位管理的数据的物理页单位。当不能执行P块单位管理和顺序管理时,执行P页单位管理。P块单位中包括的每个写入物理页具有如图9中所示的元数据、对元数据的ECC信息、用户数据、和对用户数据的ECC信息。元数据包括表明执行P页单位管理的块类型、表明P块单位的生成的修订、和与P块单位的那些对应的L块单位地址和L页单位地址。另外,未写入物理页填充1。
-保存管理数据的P块单位的数据结构
将描述用于将管理上述用户数据的数据(管理数据)保存在物理空间中的数据结构。图10首先示出了保存管理数据的P块单位。P块单位中包括的每个物理页具有如图10中所示的元数据、对元数据的ECC信息、管理数据、和对管理数据的ECC信息。元数据包括表明元数据是管理数据的块类型和表明P块单位的生成的修订。下面将分别描述管理上述三类用户数据的管理数据单元的配置方法。
(1)P块单位管理的管理数据的数据结构
图11示出了P块单位管理的管理数据。管理数据包括从零至lb-1的L块单位地址和与各个L块单位地址对应的P块单位地址的对。当没有对一个L块单位执行P块单位管理时,与L块单位对应的P块单位存储0xFFFF(0x表示其是十六进制符号)。
(2)顺序管理的管理数据的数据结构
图12示出了用于顺序管理的管理数据。管理数据包括一组多达e个L块单位地址、与各个地址对应的P块单位地址和已对地址执行顺序写入的最终P页单位地址。未通过垃圾收集等执行顺序管理的条目(entry,入口)的各个地址存储有0xFFFF。
(3)用于P页单位管理的管理数据的数据结构
图13和图14示出了P页单位管理的管理数据。管理数据被分为两类数据。第一管理数据包括L块单位地址和与各个L块单位地址对应的多行P块单位地址(注意,保存单个L块单位地址的数据的P块单位在P页单位管理中可以是多个)。L块单位地址的最大数量为d。未通过垃圾收集等执行P页单位管理的条目的各个地址存储有0xFFFF。第二管理数据包括属于相同L块单位的L页单位地址、与各个地址对应的P块单位地址和与地址对应的P页单位地址的组(针对分别通过使用第一管理数据管理的每个L块单位生成一个管理数据)。没有数据的条目的各个地址存储有0xFFFF。
-每个数据结构和垃圾收集中的块单位数量的限制
将描述为什么可以管理的最大块单位地址的数量分别在上述(2)和(3)中限于e和d的原因。在已执行P块单位管理的数据中,逻辑空间中的写入数量几乎与物理空间的消耗量一致,因为L块单位与P块单位一一对应并且每个块单位都填充有数据(由于管理数据是必须的,因此写入量与消耗量不完全一致)。
然而,在顺序管理和P页单位管理中,即使当逻辑空间中的写入量没有达到P块单位大小时,也要确保一个P块单位。即,物理空间中的消耗量变得大于逻辑空间中的写入量。写入量和消耗量的最大比大约为(L块单位大小/L扇区大小)。
因此,为了确保所有数据都保存在闪速存储器中,而不管主机设备使用逻辑空间的方式如何,有必要根据所确保的区域大小限制可以执行顺序管理和P页单位管理的P块单位的数量。这是上述(2)和(3)中的限制原因。
当管理数据的条目达到极限时,并且进一步地,当执行小于P块单位大小的写入时,必须执行操作以将已经生成的条目升格到P块单位管理。该操作称为垃圾收集。本发明的目的是通过将顺序管理添加到仅包括P块单位管理和P页单位管理的一般的闪速存储器控制器中来减小垃圾收集的频率。具体内容将在下面的“算法”中进行描述。
“算法”
将描述通过使用上述数据结构执行写入的算法。将参照图15中的流程图描述写入处理的整个流程。
步骤ST1:闪速存储器设备1从主机设备11接收到写入命令。
步骤ST2:通过使用来自写入判定的逻辑地址的管理数据获得写入目的地的P块单位组。
步骤ST3:在使用顺序管理登记命令的控制方法(下文要描述的判定方法2和3)的情况下,判定所获得的P块单位组是否与过去的顺序管理登记命令一致。
步骤ST4:当P块单位组与过去的顺序管理登记命令不一致时,在写入命令不被接受(received,受理)时终止该程序。
步骤ST5:当P块单位组与过去的顺序管理登记命令一致时或者在未使用顺序管理登记命令的控制方法(下文要描述的判定方法1)的情况下,从获得的P块单位组中取出一个未写入的P块单位。
步骤ST6:执行P块单位中的写入处理。
步骤ST7:判定所有数据的写入是否完成。当判定尚未完成所有数据的写入时,该程序返回步骤ST5。然后,执行P块单位中的写入处理。
步骤ST8:当在步骤ST7中判定所有数据的写入完成时,终止该程序。
下文将描述与顺序管理登记命令的整合性判定。
图16是表明P块单位中的写入的内容的流程图。将P块单位中的写入分为三种,即,P块单位管理写入、顺序写入、和P页单位管理写入。
步骤ST11:判定写入大小是否与P块单位大小一致。在写入大小与P块单位大小一致的情况下,执行P块单位管理写入。
步骤ST12:当步骤ST11中判定写入大小与P块单位大小不一致时,判定写入是否是顺序管理的对象。下文将描述判定方法。当已判定写入是顺序管理的对象时,执行顺序管理写入。在除上述之外的情况下,执行P页单位管理写入。
在本发明的一个实施方式中,将提出顺序写入的三种对象判定方法。这些方法中的每一种都具有具体的优缺点。因此,优选根据控制目使用这三种方法中的合适方法。
-判定方法1
这是闪速存储器设备1自动判定的方法。图17是表明该方法的流程的流程图。
步骤ST13:判定要写入的P块单位是否已经根据管理表被顺序管理。
步骤ST14:当步骤ST13中判定已经管理P块单位时,判定数据是否能在P块单位中顺序追加。判定方法根据实现具有任意性,并且例如,当写入已从靠近最终写入物理页的物理页开始时,可以考虑追加(appending,追记)可用的判定。
步骤ST15:当ST14中的判定结果表明可以追加数据时,判定P块单位是顺序管理写入对象,并返回“是”。
步骤ST16:当步骤ST14中判定不能追加数据时,执行顺序管理的终止处理。终止处理是使待写入的P块单位降格为P页单位管理。即,从顺序管理表中擦除P块单位的条目,并在P页单位管理表中生成P块单位的新条目。这里,当P页单位管理表中没有空闲空间时,通过使用垃圾收集将P页单位管理块升格到P块单位管理以便生成空闲空间。下文将描述垃圾收集方法。
步骤ST18:当已判定写入不是顺序管理写入对象时,返回“否”。
步骤ST17:当要写入的P块单位尚未顺序管理时,判定写入是否是可以被顺序管理的新写入。判定方法根据实现具有任意性,并且可以考虑可以对等于或大于P块单位大小的1/4的大小的新写入执行顺序管理的判定。
当可以执行顺序管理时,判定写入是顺序管理写入的对象。然后,该程序进入步骤ST15,并返回“是”。当不能执行顺序管理时,判定写入不是顺序管理写入的对象。然后,该程序进入步骤ST18,并返回“否”。
-判定方法2
这是主机清楚表明写入的顺序性的方法。该方法根据主机设备是否管理顺序管理表而分为两种。主机设备不对表进行管理的方法被称为方法2,主机设备对表进行管理的方法被称为方法3。首先将描述方法2。
在方法2中,在顺序写入之前通过顺序管理登记命令将L块单位登记在针对顺序管理登记命令的表中。图18示出管理表。该表利用与数据结构的管理表部分中描述的表的相同配置保存(参照图10)。管理表表明通过顺序管理登记命令是否登记从零至lb-1的各个L块单位。作为分别对应于状态的条目,当通过顺序管理登记命令登记L块单位时,存储1,并且当没有登记L块单位时,存储0。
图19是顺序管理登记命令的处理的流程图。
步骤ST21:闪速存储器设备1从主机设备11接收到登记命令。
步骤ST22:登记命令将L块单位用作参数,并判定L块单位是否未登记。
步骤ST23:当L块单位未登记时,将L块单位登记在针对顺序管理登记命令的表中。该程序终止于步骤ST24。
步骤ST25:当已经登记L块单位时,在命令不被接受时,终止该程序。
图20是表明方法2的判定的处理的流程图。
步骤ST26:在扫描用于顺序管理登记命令的表时判定是否已经登记L块单位。
步骤ST27:当已经登记L块单位时,判定写入是顺序管理写入的对象。然后,返回表明写入是顺序管理写入的对象的判定结果。
步骤ST28:当尚未登记L块单位时,判定写入不是顺序管理写入的对象。然后,返回“否”的结果。
当使用顺序管理登记命令时,必须针对每个写入命令判定写入是否与关于图15的步骤ST3所描述的过去的顺序管理登记命令一致。图21是判定的流程图。
步骤ST31:从要写入的P块单位组中取出与登记在针对顺序管理登记命令的表中的L块单位对应的一个P块单位。
步骤ST32:判定P块单位是否已被顺序管理。
步骤S33:当步骤ST32中判定结果为“否”时,判定写入是否是可被顺序管理的新写入。
步骤ST34:判定是否完成对所有登记P块单位的检查。
步骤ST35:当判定完成检查时,判定存在整合性。然后,返回“是”。
步骤ST36:当步骤ST32中判定P块单位已被顺序管理时,判定在顺序管理继续的情况下是否可以追加数据。当判定可以追加数据时,该程序进入步骤ST34。
步骤ST37:当步骤ST33中判定写入不是可以顺序管理的新写入时,判定不存在整合性(consistency,连贯性)。然后,返回“否”。类似地,当步骤ST36中判定在顺序管理继续情况下不能追加数据时,判定不存在整合性。然后,返回“否”。
以这种方式,从要写入的P块单位组中逐一取出与登记在针对顺序管理登记命令的表中的L块单位对应的P块单位,并判定是否可以对获得的P块单位连续执行顺序管理。当可以对所有检查对象连续执行顺序管理时,判定存在整合性,并且当不能对所有检查对象连续执行顺序管理时,判定不存在整合性。
-判定方法3
这是主机清楚表明写入的顺序性的方法,并且这是主机设备管理顺序管理表的方法。判定方法2和3之间的不同在于可以登记在针对顺序管理登记命令的表中的条目的数量限于图12中所示的e个条目。当在已经存在e个条目时发出顺序管理登记命令时,命令不被接受。图22是判定方法3中的顺序管理登记命令的处理的流程图。
步骤ST41:登记命令被接收。
步骤ST42:判定L块单位是否未登记。
步骤ST43:当L块单位不是未登记时,命令不被接受。
步骤ST44:当L块单位是未登记时,检查顺序管理表是否具有空闲空间。当判定不存在空闲空间时,命令不被接受(步骤ST43)。
步骤ST45:当步骤ST44中判定顺序管理表具有空闲空间时,将L块单位登记在顺序管理登记命令表中。
步骤ST46:终止对登记命令的处理。
当使用该方法时,进一步提供顺序管理登记删除命令。图23是关于删除命令的处理的流程的流程图。
步骤ST51:接收到删除命令。
步骤ST52:判定是否已经登记L块单位。
步骤ST53:当L块单位尚未登记时,命令不被受理。
步骤ST54:检查L块单位是否填充有(写入)至最终物理页的数据。
步骤ST55:当判定L块单位未填充有至最终物理页的数据时,将L块单位升格到P块单位管理。即,对升格来说垃圾收集是必须的。
步骤ST56:当步骤ST54中判定L块单位填充有至最终物理页的数据时或在步骤ST55的处理之后,从顺序管理登记命令表中删除L块单位。
步骤ST57:终止对登记删除命令的处理。
-P块单位管理写入
通过使用上述判定方法1至3,可以判定P块单位管理写入、顺序写入、或P页单位管理写入中的哪一个是对象写入。下文将描述这三种写入。首先将描述P块单位管理写入的方法。图24是P块单位管理写入的处理的流程图。
步骤ST60:在P块单位管理写入中,新获得未写入的P块单位。
步骤ST61:将数据写入所获得的P块单位。
步骤ST62:当写入完成时,将要写入的P块单位登记在P块单位管理表中,并终止该程序。
-顺序管理写入
图25是顺序管理写入的处理的流程的流程图。
步骤ST70:判定P块单位是否已被顺序管理。即,判定写入是新写入还是追加写入。
步骤ST71:当写入是新写入时,通过扫描顺序管理表来搜索空闲空间。
步骤ST72:当没有空闲空间时,通过使用垃圾收集来将顺序管理块升格到P块单位管理以便生成空闲空间。在使用方法3的情况下,在该阶段确实存在空闲空间,因为在命令的阶段除去了没有空闲空间的写入。
步骤ST73:将新P块单位登记在通过上述操作获得的空闲条目中。
步骤ST74:数据被新写入。
步骤ST75:当写入完成时更新顺序管理表,并终止该程序。
步骤ST76:当步骤ST70中判定写入是追加写入时,顺序追加该数据。更新顺序管理表。
步骤ST77:判定P块单位是否填充有至最终物理页的数据。
步骤ST78:当判定P块单位填充有至最终物理页的数据时,执行至P块单位管理的升格处理。然后,终止该程序。即,删除顺序管理表中的条目,并将写入的P块单位登记在P块单位管理表中。
当步骤ST77中判定P块单位尚未填充有至最终物理页的数据时,该程序进入步骤ST75。更新顺序管理表,并终止该程序。
-P页单位管理写入
图26是P页单位管理写入的处理的流程的流程图。
步骤ST80:关于该写入,首先判定是否已经对写入判定执行P页单位管理。
步骤ST81:当未执行P页单位管理时,通过扫描P页单位管理表来搜索空闲空间。
步骤ST82:当没有空闲空间时,通过使用垃圾收集来将P页单位管理块升格到P块单位管理,并生成空闲空间。
步骤ST83:将新P块单位登记在空闲条目中。
步骤ST84:新写入数据。
步骤ST85:当完成写入时更新P页单位管理表,并终止该程序。
步骤ST86:当写入已被管理时,进一步写入数据。然后,更新P页单位管理表,并终止该程序。
-垃圾收集
将描述垃圾收集。垃圾收集是将对其执行顺序管理和P页单位管理的数据升格到P块单位管理并在数据的管理表中生成空闲空间的操作。在针对数据结构的段落中描述了为什么需要该操作的原因。
首先,将描述用于将P页单位管理升格到P块单位管理的垃圾收集。首先,要升格的L块单位选自P页单位管理表,并通过扫描每个管理表来获得保存要升格的L块单位的数据的P块单位组。将与要升格的L块单位对应的数据从P块单位组复制至新的P块单位,并更新每个管理表。
接下来,将描述用于将顺序管理升格到P块单位管理的垃圾收集。首先,要升格的L块单位选自顺序管理表,并获得与所选L块单位对应的P块单位和写入的最终P页单位。此后,通过扫描每个管理表来获得保存写入的最终P页单位之后的未写入区域中的数据的P块单位组。将与要升格的L块单位对应的数据从通过上述操作获得的P块单位组复制至新的P块单位,并更新每个管理表。
如从方法的配置容易推断出,在要升格的L块单位填充有数据的情况下(写入的最终P页单位与P块单位的最终P页单位一致),要复制的P块单位被固定为执行顺序管理的一个P块单位。即,由于没有其他P块单位保存要升格的L块单位的数据,因此垃圾收集是不必要的。本发明的目的是根据属性来减少垃圾收集和抑制性能的劣化。
-方法1至3的比较
将描述上述判定方法1至3之间的差异。图27是示出了比较的表。传统方法是本发明中不执行顺序管理的情况。首先,方法1中的用于判定写入是否是顺序的主体是闪速存储器设备,然而在方法2和3中该主体是主机设备。
在方法2中,主机设备仅登记顺序管理表,并且闪速存储器设备控制顺序管理表。然而在方法3中,主机设备还删除顺序管理表(控制登记的数量)。即,在方法1和2中,可以控制顺序管理表的主体仅仅是闪速存储器设备,然而在方法3中,主机设备也可以控制顺序管理表。
通过使用三种方法中的任意一种,可以防止对顺序写入的垃圾收集。然而,在顺序写入在途中破坏的情况下以及在顺序管理表中没有空闲空间的情况下,以上不适用。在这两种情况下,在方法1中执行垃圾收集。在方法2中,由于在命令阶段不接受可以破坏顺序性的写入,因此此情况下也可以防止垃圾收集。然而,当顺序管理表中没有空闲空间时,执行垃圾收集。在方法3中,由于当顺序管理表中没有空闲空间时在命令阶段不接受写入,因此此情况下也可以防止垃圾收集。
“实施例的效果”
通过使用本发明,只要小于P块单位的写入是顺序存取,就可以避免由垃圾收集造成的速度降低。因此,即使当主机设备连续一点一点地写入数据时,也可以在不改变访问模式的情况下提供具有稳定性能的访问。另外同样,具有有限缓冲器大小的主机设备主要不能通过P块单位访问。相对于此主机设备,在传统连续写入的情况下不能避免垃圾收集。然而,可以通过使用本发明向主机设备提供具有稳定性能的存取。
此外,根据本发明,甚至就部分顺序的访问而言,可以通过使用关于顺序部分的技术来抑制顺序部分的垃圾收集。因此,本技术对其中对文件系统特定、几次交替写入数据和元数据的存取是有效的。由于由FAT代表的大量文件系统通常在该访问模式下执行写入,因此可以期望通过使用本发明来提高性能。
本发明不将顺序管理的P块单位的数量限制为1。因此,本发明可以适用于交替地且顺序地写入多个数据的点。当这种情况适用时,认为可以通过控制来防止元数据写入性能劣化,以顺序写入除数据之外的元数据。
通过使用本发明的方法3,主机设备可以局部控制闪速存储器设备的垃圾收集。当这种情况适用时,控制是可用的,其中通过对优选不发生速度降低的重要写入执行顺序指定来选择性避免垃圾收集。
为了使本发明和传统方法之间的差异清晰,下文将描述出现差异的写入的实例。例如,将描述传统方法和本发明相对于四种写入方法如何运作。图28中示出了下文要描述的操作实例的列表。
“各写入方法的描述”
下文将描述写入方法的实例1至4。为了简化描述,假设下文的实例1至4的所有写入是写入到过去尚未管理的新P块单位。同样,假设顺序管理表和P页单位管理表都可以保存四个以上条目(对应于假设使得d≥4,e≥4)。
-写入方法的实例1
图29表明写入方法的实例1。在实例1中,顺序管理表(参照图12)和P页单位管理表(参照图13)为空。按(1)、(2)、(3)和(4)的顺序对一个L块单位执行四次(L块单位/4)大小的写入。
-写入方法的实例2
图30表明写入方法的实例2。在实例2中,顺序管理表(参照图12)为空,并且P页单位管理表(参照图13)已满(没有空闲空间)。按(1)、(2)、(3)和(4)的顺序对一个L块单位执行四次(L块单位/4)大小的写入。
-写入方法的实例3
图31表明写入方法的实例3。在实例3中,顺序管理表(参照图12)为空,并且P页单位管理表(参照图13)已满(没有空闲空间)。按(1)和(2)的顺序对一个L块单位执行两次(L块单位/4)大小的写入。写入方法的实例3与实例1和2的不同之处在于(1)和(2)不是顺序写入。
-写入方法的实例4
图32表明写入方法的实例4。在实例4中,顺序管理表(参照图12)和P页单位管理表(参照图13)都已满(没有空闲空间)。按(1)、(2)、(3)和(4)的顺序对一个L块单位执行四次(L块单位/4)大小的写入。
-操作的描述
将描述传统方法和本技术适用于上述各写入方法的情况下的操作。
-写入方法1的情况
(传统方法)
1、当发出写入(1)的命令时,开始图15中的流程图的程序。在传统方法中,由于不执行顺序管理,因此作为第一分支的步骤ST3(存在与过去的顺序命令的整合性?)的结果变为“是”。该程序经历图15中的之后的操作,并且该程序进入P块中的写入处理。
2、图16是P块写入处理。由于写入(1)小于P块单位大小,因此作为第一分支的步骤ST11(写入大小与P块单位大小一致?)的结果为“否”。此外,在传统方法中不执行顺序管理,作为下一分支的步骤ST12(写入是顺序管理的对象?)的结果为“否”。因此,该程序进入3的P页单位管理写入处理。
3、图26是P页单位管理写入。由于假设写入(1)是对过去尚未管理的新P块单位的写入,因此作为第一分支的步骤ST80(P块单位已经进行P页单位管理?)的结果为“否”。由于P页单位管理表为空,因此步骤ST81(P页单位管理表具有空闲空间?)的结果为“是”。在不执行垃圾收集的情况下将写入(1)的内容登记在P页单位管理表中(步骤ST83),并且该程序经历之后的操作。然后,终止写入(1)。
4、当发出写入(2)的命令时,再次开始图15中的流程图的程序。此后,执行与上述1和2的操作类似的操作,并且该程序进入图26中的P页单位管理写入。是否对与写入(1)相同的P块单位执行写入(2)取决于传统方法的实现方法。当执行写入(2)时,作为第一分支的步骤ST80(P块单位已经进行P页单位管理?)的结果为“是”。在这种情况下,对与写入(1)相同的P块单位额外执行写入,并且该程序经历之后的操作。然后,终止写入(1)。
当对与写入(1)相同的P块单位不执行写入(2)时,作为第一分支的步骤ST80(P块单位已经进行P页单位管理?)的结果为“否”。由于假设(d≥4),因此步骤ST81(P页单位管理表具有空闲空间?)的结果为“是”。在不执行垃圾收集的情况下将写入(1)的内容登记在P页单位管理表中(步骤ST83),并且该程序经历之后的操作。然后,终止写入(2)。
5、当发出写入(3)的命令时,再次开始图15中的流程图的程序。此后,执行与上述4的操作类似的操作,并终止写入(3)。
6、当发出写入(4)的命令时,再次开始图15中的流程的程序。此后,执行与上述4的操作类似的操作,并终止写入(4)。
根据上文,在传统方法中,根据控制方法消耗一至四个P页单位管理表,并终止写入。
(技术1)
1、当发出写入(1)的命令时,开始图15中的流程图的程序。在技术1中,由于不执行使用顺序命令的顺序管理,因此作为第一分支的步骤ST3(存在与过去的顺序命令的整合性?)的结果变为“是”。该程序经历图15中的之后操作,并且该程序进入P块中的写入处理(步骤ST6)。
2、图16是P块写入处理。由于写入(1)小于P块单位大小,因此作为第一分支的步骤ST11(写入大小与P块单位大小一致?)的结果为“否”。为了获得下一分支的步骤ST12(写入是顺序管理的对象?)的判定结果,开始图17中的流程图的程序。
3、由于假设写入(1)是对过去尚未管理的新P块单位的写入,因此作为第一分支的步骤ST13(P块单位已被顺序管理?)的结果为“否”。作为下一个分支的步骤ST17(可以执行顺序管理的新写入?)的判定方法根据实现具有任意性。使用示例性的判定方法(假设等于或大于P块单位大小的1/4的新写入是顺序管理对象)。因此,该分支的步骤ST17的判定结果为“是”。因此,最终获得“是”,并且该程序返回图16。因此,图16中的步骤ST12(写入是顺序管理的对象?)的结果变为“是”,并且该程序转移到顺序管理写入。
4、图25中的流程图是顺序管理写入的流程。由于假设写入(1)是对过去尚未管理的新P块单位的写入,因此作为第一分支的步骤ST70(P块单位已被顺序管理?)的结果为“否”。由于顺序管理表为空,因此步骤ST71(顺序管理表具有空闲空间?)的结果为“是”。在不执行垃圾收集的情况下将写入(1)的内容登记在顺序管理表中(步骤ST73),并且该程序经历之后的操作。然后,终止写入(1)。
5、当发出写入(2)的命令时,再次开始图15中的流程图的程序。执行与上述1和2的操作类似的操作,并且开始图17中的流程图的程序。写入(2)是与写入(1)相同的L块单位中的写入。因此,参照顺序管理表,可以确认包括写入(2)的L块单位被登记。因此,作为第一分支的步骤ST13(P块单位已被顺序管理?)的结果变为“是”。
由于写入(2)是写入(1)的顺序连续,因此步骤ST14(在顺序管理继续的情况下可以追加数据?)的结果也为“是”。因此,最终获得“是”,并且该程序返回图16。因此,图16中的步骤ST12(写入是顺序管理的对象?)的结果变为“是”,并且开始图25中的顺序管理写入的流程图的程序。
由于写入(2)是与写入(1)在相同的L块单位中的写入,因此作为第一分支的步骤ST70(P块单位已被顺序管理?)的结果为“是”。因此,写入(2)顺序追加在与写入(1)相同的P块单位中(步骤ST76)。即使当将写入(1)添加到写入(2)时,写入大小小于P块单位大小。因此,作为下一个分支的步骤ST77(填充有至最终物理页的数据?)的结果变为“否”。该程序经历之后的操作。然后,终止写入(2)。
6、当发出写入(3)的命令时,再次开始图15中的流程图的程序。执行与上述5的操作类似的操作,并终止写入(3)。
7、当发出写入(4)的命令时,再次开始图15中的流程图的程序。此后,虽然执行与上述5的操作类似的操作,但是当写入(1)至(4)被加在一起时,写入大小变得与P块单位大小相同。因此,作为5的最终分支的步骤ST77(填充有至最终物理页的数据?)的结果变为“是”,并在执行至P块单位管理的升格处理之后终止写入(4)(步骤ST78)。
根据上文,在该技术中,在从写入(1)至写入(4)的时间段使用单个顺序管理表,并在升格到P块单位管理的最终处理中打开顺序管理表。然后,终止写入。
(技术2)
预处理。在技术2中,清楚表明在写入之前通过使用顺序管理登记命令来对包括写入(1)的L块单位执行顺序管理。图19中的流程图是顺序管理登记命令的流程。由于假设写入(1)是对过去尚未管理的新P块单位的写入,因此作为第一分支的步骤ST22(L块单位未登记?)的结果为“是”。因此,将L块单位登记在顺序管理登记命令表中(参照图18)(步骤ST23)。
1、当发出写入(1)的命令时,开始图15中的流程图的程序。为了判定作为第一分支的步骤ST3(存在与过去的顺序命令的整合性?),开始图21中的判定流程的程序。
2、由于在预处理中,将包括写入(1)的L块单位登记在顺序管理登记命令表中,因此取出与写入(1)对应的P块单位。由于假设写入(1)是对过去尚未管理的新P块单位的写入,因此步骤作为第一分支的ST32(P块单位已被顺序管理?)的结果为“否”。
由于写入(1)开始于L块单位的开头,因此作为下一个分支的步骤ST33(可以执行顺序管理的新写入?)的结果为“是”。此外,由于写入(1)的大小小于P块单位大小,因此在写入(1)的访问判定过程中除该P块单位之外不存在登记的P块单位。因此,步骤ST34(已检查所有登记P块单位?)的结果变为“是”,并且最终返回“是”(步骤ST35)。因此,图15中的步骤ST3(存在与过去的顺序命令的整合性?)的结果变为“是”,并且该程序经历之后的操作。然后,该程序转移到P块中的写入处理(步骤ST6)
3、图16是P块中的写入处理。由于写入(1)小于P块单位大小,因此作为第一分支的步骤ST11(写入大小与P块单位大小一致?)的结果为“否”。由于将包括写入(1)的L块单位登记在顺序管理登记命令表中,因此作为下一个分支的步骤ST12(写入是顺序管理的对象?)的结果变为“是”。然后,该程序转移到顺序管理写入。
4、图25是顺序管理写入的流程。由于假设写入(1)是对过去尚未管理的新P块单位的写入,因此作为第一分支的步骤ST70(P块单位已被顺序管理?)的结果为“否”。由于顺序管理表为空,因此步骤ST71(顺序管理表具有空闲空间?)的结果为“是”。在不执行垃圾收集的情况下将写入(1)的内容登记在顺序管理表中,并且该程序经历之后的操作。然后,终止写入(1)。
5、当发出写入(2)的命令时,再次开始图15中的流程图的程序。为了判定作为第一分支的步骤ST3(存在与过去的顺序命令的整合性?),开始图21中的判定流程图的程序。由于在预处理中,将包括写入(1)的L块单位登记在顺序管理登记命令表中,因此取出与写入(1)对应的P块单位。
由于已将写入(1)登记在顺序管理表中,因此作为第一分支的步骤ST32(P块单位已被顺序管理?)的结果为“是”。由于在写入(1)之后刚开始写入(2),因此步骤ST36(在顺序管理继续的情况下可以追加数据?)的结果也为“是”。
由于写入(2)的大小小于P块单位大小,因此在写入(2)的存取判定过程中除该P块单位之外不存在登记的P块单位。因此,步骤ST34(已检查所有登记P块单位?)的结果变为“是”,并且最终返回“是”。因此,图15中的步骤ST3(存在与过去的顺序命令的整合性?)的结果变为“是”,并且该程序经历之后的操作。然后,该程序转移到P块中的写入处理(步骤ST6)
6、图16是P块中的写入处理。由于写入(2)小于P块单位大小,因此作为第一分支的步骤ST11(写入大小与P块单位大小一致?)的结果为“否”。由于将包括写入(2)的L块单位登记在顺序管理登记命令表中,因此作为下一个分支的步骤ST12(写入是顺序管理的对象?)的结果变为“是”。然后,该程序转移到顺序管理写入。
7、图25是顺序管理写入的流程。由于写入(2)是与写入(1)在相同的L块单位中的写入,因此作为第一分支的步骤ST70(P块单位已经被顺序管理?)的结果为“是”。因此,写入(2)顺序追加在与写入(1)相同的P块单位中。即使当将写入(1)添加到写入(2)时,写入大小小于P块单位大小。因此,作为下一个分支的步骤ST77(填充有至最终物理页的数据?)的结果变为“否”。该程序经历之后的操作。然后,终止写入(2)。
8、当发出写入(3)的命令时,再次开始图15中的流程图的程序。此后,执行与上述5、6和7的操作类似的操作,并终止写入(3)。
9、当发出写入(4)的命令时,再次开始图15中的流程图的程序。此后,虽然执行与上述5、6和7的操作类似的操作,但是当写入(1)至(4)添加在一起时,写入大小变得与P块单位大小相同。因此,作为7的最终分支的步骤ST77(填充有至最终物理页的数据?)的结果变为“是”,并在执行至P块单位管理的升格处理之后终止写入(4)。“升格处理”是从顺序管理表和顺序管理登记命令表中删除包括写入(1)的L块单位的操作。
根据上文,在该技术中,在从写入(1)至写入(4)的时间段使用单个顺序管理表,并在最终处理中从顺序管理表和顺序管理登记命令表中删除包括写入(1)的L块单位以升格到最终P块单位管理。然后,终止写入。
(技术3)
预处理。在技术3中,清楚表明在写入之前通过使用顺序管理登记命令来对包括写入(1)的L块单位执行顺序管理。图22是顺序管理登记命令的流程。由于假设写入(1)是对过去尚未管理的新P块单位的写入,因此作为第一分支的步骤ST42(L块单位未登记?)的结果为“是”。由于顺序管理表为空,因此步骤ST44(顺序管理表具有空闲空间?)的结果也为“是”。因此,将L块单位登记在顺序管理登记命令表中(步骤ST45)。
以下写入处理与技术2中的完全相同。然而,在后处理中从顺序管理登记命令表中删除条目。
后处理。在技术3中,在执行写入之后,从顺序管理登记命令表中删除在预处理中登记的L块单位。图23是顺序管理表命令的流程。由于在预处理中登记了包括写入(1)的L块单位,因此作为第一分支的步骤ST52(登记的L块单位?)的结果为“是”。由于P块单位大小的写入在从写入(1)至(4)的时间段完成,因此步骤ST54(填充有至最终物理页的数据?)的结果为“是”。因此,在不执行升格处理的情况下从顺序管理登记命令表中删除包括写入(1)的L块单位(步骤ST56)。
根据上文,在该技术中,在从写入(1)至写入(4)的时间段使用单个顺序管理表,并在升格P块单位管理的最终处理中从顺序管理表中删除包括写入(1)的L块单位。然后,在后处理中从顺序管理登记命令表中删除包括写入(1)的L块单位,并终止写入。
-写入方法2的情况
(传统方法)
1、当发出写入(1)的命令时,开始图15中的流程图的程序。在传统方法中,由于不执行顺序管理,因此作为第一分支的步骤ST3(存在与过去的顺序命令的整合性?)的结果为“是”。该程序通过图15中的之后的操作,并且该程序进入P块中的写入处理(步骤ST6)。
2、图16是P块中的写入处理。由于写入(1)小于P块单位大小,因此作为第一分支的步骤ST11(写入大小与P块单位大小一致?)的结果为“否”。此外,在传统方法中不执行顺序管理,作为下一分支的步骤ST12(写入是顺序管理的对象?)的结果为“否”。因此,该程序进入3的P页单位管理写入处理。
3、图26是P页单位管理写入。由于假设写入(1)是对过去尚未管理的新P块单位的写入,因此作为第一分支的步骤ST80(P块单位已经进行P页单位管理?)的结果为“否”。在写入方法2中,由于P页单位管理表已满,因此步骤ST81(P页单位管理表具有空闲空间?)的结果为“否”。在通过执行垃圾收集(步骤ST82)在P页单位管理表中生成空闲空间之后,将写入(1)的内容登记在P页单位管理表中。然后,该程序经历之后的操作,并终止写入(1)。
4、当发出写入(2)的命令时,再次开始图15中的流程图的程序。此后,执行与上述1和2的操作类似的操作,并且该程序进入图26中的P页单位管理写入。是否对与写入(1)相同的P块单位执行写入(2)取决于实现方法。当执行写入(2)时,作为第一分支的步骤ST80(P块单位已经进行P页单位管理?)的结果为“是”。在这种情况下,对与写入(1)相同的P块单位额外执行写入,并且该程序经历之后的操作。然后,终止写入(1)。
当对与写入(1)相同的P块单位不执行写入(2)时,作为第一分支的步骤ST80(P块单位已经进行P页单位管理?)的结果为“否”。在这种情况下,由于P页单位管理表由于写入(1)再次填满,因此步骤ST81(P页单位管理表具有空闲空间?)的结果为“否”。在通过执行垃圾收集(步骤ST82)在P页单位管理表中生成空闲空间之后,将写入(2)的内容登记在P页单位管理表中。然后,该程序经历之后的操作,并终止写入(2)。
5、当发出写入(3)的命令时,再次开始图15中的流程图的程序。此后,执行与上述4的操作类似的操作,并终止写入(3)。
6、当发出写入(4)的命令时,再次开始图15中的流程图的程序。此后,执行与上述4的操作类似的操作,并终止写入(4)。
根据上文,在该技术中,根据控制方法垃圾收集发生一到四次。
(技术1)
技术1与写入方法1的情况完全相同。因此,在该技术中,在从写入(1)至写入(4)的时间段使用单个顺序管理表,并在升格到P块单位管理的最终处理中打开顺序管理表。然后,终止写入。
(技术2)
技术2与写入方法1的情况完全相同。因此,在该技术中,在从写入(1)至写入(4)的时间段使用单个顺序管理表,并在升格到P块单位管理的最终处理中打开顺序管理表。然后,终止写入。
(技术3)
技术3与写入方法1的情况完全相同。因此,在该技术中,在从写入(1)至写入(4)的时间段使用单个顺序管理表,并在升格到P块单位管理的最终处理中打开顺序管理表。然后,终止写入。
-写入方法3的情况
(传统方法)
1、当发出写入(1)的命令时,开始图15中的流程图的程序。在传统方法中,由于不执行顺序管理,因此作为第一分支的步骤ST3(存在与过去的顺序命令的整合性?)的结果变为“是”。该程序通过图15中的之后的操作,并且该程序进入P块中的写入处理(步骤ST16)。
2、图16是P块中的写入处理。由于写入(1)小于P块单位大小,因此作为第一分支的步骤ST11(写入大小与P块单位大小一致?)的结果为“否”。此外,在传统方法中不执行顺序管理,作为下一分支的步骤ST12(写入是顺序管理的对象?)的结果为“否”。因此,该程序进入3的P页单位管理写入处理。
3、图26是P页单位管理写入。由于假设写入(1)是对过去尚未管理的新P块单位的写入,因此作为第一分支的步骤ST80(P块单位已经进行P页单位管理?)的结果为“否”。在写入方法3中,由于P页单位管理表已满,因此步骤ST81(P页单位管理表具有空闲空间?)的结果为“否”。在通过执行垃圾收集(步骤ST82)在P页单位管理表中生成空闲空间之后,将写入(1)的内容登记在P页单位管理表中。然后,该程序通过之后的操作,并终止写入(1)。
4、当发出写入(2)的命令时,再次开始图15中的流程图的程序。此后,执行与上述1和2的操作类似的操作,并且该程序进入图26中的P页单位管理写入。是否对与写入(1)相同的P块单位执行写入(2)取决于实现方法。当执行写入(2)时,作为第一分支的步骤ST80(P块单位已经进行P页单位管理?)的结果为“是”。在这种情况下,对与写入(1)相同的P块单位额外执行写入,并且该程序通过之后的操作。然后,终止写入(1)。
当对与写入(1)相同的P块单位不执行写入(2)时,作为第一分支的步骤ST80(P块单位已经进行P页单位管理?)的结果为“否”。在这种情况下,由于P页单位管理表通过写入(1)再次填满,因此步骤ST81(P页单位管理表具有空闲空间?)的结果为“否”。在通过执行垃圾收集(步骤ST82)而在P页单位管理表中生成空闲空间之后,将写入(2)的内容登记在P页单位管理表中。然后,该程序通过之后的操作,并终止写入(2)。
根据上文,在该技术中,根据控制方法的垃圾收集发生一次或两次。
(技术1)
1、当发出写入(1)的命令时,开始图15中的流程图的程序。在技术1中,由于不执行使用顺序命令的顺序管理,因此作为第一分支的步骤ST3(存在与过去的顺序命令的整合性?)的结果变为“是”。该程序通过图15中之后的操作,并且该程序进入P块中的写入处理(步骤ST6)。
2、图16是P块中的写入处理。由于写入(1)小于P块单位大小,因此作为第一分支的步骤ST11(写入大小与P块单位大小一致?)的结果为“否”。为了获得步骤ST12(写入是顺序管理的对象?)的判定结果,开始图17中的流程图的程序。
3、由于假设写入(1)是对过去尚未管理的新P块单位的写入,因此作为第一分支的步骤ST13(P块单位已被顺序管理?)的结果为“否”。作为下一分支的步骤ST17(可以执行顺序管理的新写入?)的判定方法根据实现具有任意性。使用举例说明的判定方法(假设等于或大于P块单位大小的1/4的新写入是顺序管理对象)。因此,该分支的判定结果为“是”。因此,最终获得“是”,并且该程序返回图16。因此,图16中的步骤ST12(写入是顺序管理的对象?)的结果变为“是”,并且该程序转移到顺序管理写入。
4、图25是顺序管理写入的流程。由于假设写入(1)是对过去尚未管理的新P块单位的写入,因此作为第一分支的步骤ST70(P块单位已经被顺序管理?)的结果为“否”。由于顺序管理表为空,因此步骤ST71(顺序管理表具有空闲空间?)的结果为“是”。在不执行垃圾收集的情况下将写入(1)的内容登记在顺序管理表中,并且该程序通过之后的操作。然后,终止写入(1)。
5、当发出写入(2)的命令时,再次开始图15中的流程图的程序。此后,执行与上述1和2的操作类似的操作,并且开始图17中的流程图的程序。写入(2)是与写入(1)在相同的L块单位中的写入(参照图31)。因此,参照顺序管理表,可以确认包括写入(2)的L块单位被登记。因此,作为第一分支的步骤ST13(P块单位已经被顺序管理?)的结果为“是”。
由于写入(2)不是写入(1)的顺序继续,因此步骤ST14(在顺序管理继续的情况下可以追加数据?)的结果也为“否”。因此,执行顺序管理终止处理(步骤ST16)。该处理是使执行顺序管理的写入(1)降格到P页单位管理。从顺序管理表中删除包括写入(1)的L块单位并将其登记在P页单位管理表中。然而,由于P页单位管理表在写入方法3中已满,因此在执行垃圾收集一次并在P页单位管理表中生成空闲空间之后,将写入(1)的内容登记在P页单位管理表中。此后,最终获得“否”,并且该程序返回图16。因此,图16中的步骤ST12(写入是顺序管理的对象?)的结果变为“否”,并且该程序进行到图26中的P页单位管理写入。
6、是否对与写入(1)相同的P块单位执行写入(2)取决于实现方法。当执行写入(2)时,作为第一分支的步骤ST80(P块单位已经进行P页单位管理?)的结果为“是”。在这种情况下,对与写入(1)相同的P块单位额外执行写入,并且该程序通过之后的操作。然后,终止写入(1)。
当对与写入(1)相同的P块单位不执行写入(2)时,作为第一分支的步骤ST80(P块单位已经进行P页单位管理?)的结果为“否”。在这种情况下,由于P页单位管理表通过写入(1)再次填满,因此步骤ST81(P页单位管理表具有空闲空间?)的结果为“否”。在通过执行垃圾收集(步骤ST82)而在P页单位管理表中生成空闲空间之后,将写入(2)的内容登记在P页单位管理表中。然后,该程序通过之后的操作,并终止写入(2)。
根据上文,在该技术中,根据控制方法的垃圾收集发生一次或两次。
(技术2)
预处理。这种情况与写入方法1的技术2中的预处理完全相同。
1、写入(1)与写入方法1的技术2中的写入(1)完全相同。
2、当发出写入(2)的命令时,再次开始图15中的流程的程序。为了判定作为第一分支的步骤ST3(存在与过去的顺序命令的整合性?),开始图21中的判定流程图的程序。由于在预处理中,将包括写入(1)的L块单位登记在顺序管理登记命令表中,因此取出与写入(1)对应的P块单位。由于已将写入(1)登记在顺序管理表中,因此作为第一分支的步骤ST32(P块单位已经被顺序管理?)的结果为“是”。然而,由于写入(2)未在写入(1)之后立刻开始,因此步骤ST36(在顺序管理继续的情况下可以追加数据?)的结果也为“否”。因此,由于返回“否”,所以图15中的步骤ST3(存在与过去的顺序命令的整合性?)的结果变为“否”,并且命令不被接受。
根据上文,在该技术中命令不被接受。
(技术3)
预处理。这种情况与写入方法1的技术3中的预处理完全相同。
1、写入(1)与写入方法1的技术3中的写入(1)完全相同。
2、当发出写入(2)的命令时,再次开始图15中的流程的程序。为了判定作为第一分支的步骤ST3(存在与过去的顺序命令的整合性?),开始图21中的判定流程的程序。由于在预处理中,将包括写入(1)的L块单位登记在顺序管理登记命令表中,因此取出与写入(1)对应的P块单位。由于已将写入(1)登记在顺序管理表中,因此作为第一分支的步骤ST32(P块单位已经被顺序管理?)的结果为“是”。然而,由于写入(2)并不在写入(1)之后立刻开始,因此步骤ST36(在顺序管理继续的情况下可以追加数据?)的结果也为“否”。因此,由于返回“否”,因此图15中的步骤ST3(存在与过去的顺序命令的整合性?)的结果变为“否”,并且命令不被接受。
根据上文,在该技术中命令未被接受。
-写入方法4的情况
(传统方法)
该传统方法与写入方法2的情况完全相同。因此,在该技术中,根据控制方法的垃圾收集发生一到四次。
(技术1)
1至3、程序(procedures,过程)1至3与写入方法1的技术1中的程序相同。
4、图25是顺序管理写入的流程。由于假设写入(1)是对过去尚未管理的新P块单位的写入,因此作为第一分支的步骤ST70(P块单位已经被顺序管理?)的结果为“否”。由于顺序管理表已满,因此步骤ST71(顺序管理表具有空闲空间?)的结果为“否”。在通过执行垃圾收集(步骤ST72)而在顺序管理表中生成空闲空间之后,登记写入(1)的内容。然后,该程序通过之后的操作,并终止写入(1)。
5、以下程序与写入方法1的技术1中的程序完全相同。
根据上文,在该技术中,根据控制方法的垃圾收集发生一次。
(技术2)
预处理。这种情况与写入方法1的技术2中的预处理完全相同。
1至3、程序1至3与写入方法1的技术2中的程序相同。
4、图25是顺序管理写入的流程。由于假设写入(1)是对过去尚未管理的新P块单位的写入,因此作为第一分支的步骤ST70(P块单位已经被顺序管理?)的结果为“否”。由于顺序管理表已满,因此步骤ST71(顺序管理表具有空闲空间?)的结果为“否”。在通过执行垃圾收集(步骤ST72)在顺序管理表中生成空闲空间之后,登记写入(1)的内容。然后,该程序通过之后的操作,并终止写入(1)。
5、以下程序与写入方法1的技术1中的程序完全相同。
根据上文,在该技术中,根据控制方法的垃圾收集发生一次。
(技术3)
预处理。在技术3中,清楚表明在写入之前通过使用顺序管理登记命令来对包括写入(1)的L块单位执行顺序管理。图22是顺序管理登记命令的流程。由于假设写入(1)是对过去尚未管理的新P块单位的写入,因此作为第一分支的步骤ST42(L块单位未登记?)的结果为“是”。然而,由于顺序管理表已满,因此步骤ST44(顺序管理表具有空闲空间?)的结果为“否”。因此,命令不被接受(步骤ST43)。根据上文,在该技术中命令未被接受。
上文描述了图28中的所有情况。下文将描述这些情况的效果。
当写入方法1中使用传统方法时消耗一至四个P页单位管理表。另一方面,在技术1至3中只是暂时使用顺序管理表并且不消耗。当管理表变得已满时,触发垃圾收集。因此,在写入方法1中,与传统方法相比通过该技术来抑制垃圾收集。
顺序管理表自身完结(参照图12)。然而,表的每个条目都具有P页单位管理表中的图14中的表(参照图13),并且需要保存该表的较大区域。因此,顺序管理表容易具有大量条目(例如,假设d≥4,e≥4,容易放大e)。鉴于此,可以理解的是,与传统方法相比通过该技术来抑制垃圾收集。
当在写入方法2中使用传统方法时,发生垃圾收集。另一方面,在技术1至3中只是暂时使用顺序管理表并且不消耗,并且在技术1至3中不发生垃圾收集。因此,可以认为与传统方法相比也通过写入方法2中的技术来抑制垃圾收集。
当在写入方法3中使用传统方法时,发生垃圾收集。由于写入方法3不是顺序写入,因此在技术1中也发生垃圾收集。然而,通过使用技术2和3可能不接受命令。因此,写入方法3中可以根据该技术来提供抑制垃圾收集的方法。
当在写入方法4中使用传统方法时,发生垃圾收集。由于顺序管理表在写入方法4中已满,因此在技术1和2中也发生垃圾收集。然而,抑制垃圾收集的次数等于或小于传统方法中的次数。另外,当使用技术3时,命令可能不被接受。因此,可以认为写入方法4中的技术也提供抑制垃圾收集的方法。
<2、对于其他应用>
在写入方法3中,通过图18中的顺序管理登记命令表可以判定特定L块单位是否执行顺序写入。这是因为当将执行顺序管理登记命令的L块单位登记在图18中的顺序管理登记命令表中并完成顺序写入时,通过删除命令从图18中的顺序管理登记命令表中删除L块单位。
因此,在主机设备试图在顺序写入期间读取数据区域的情况下,控制“直到顺序写入被完成之前,写入内容不被判定,并返回在顺序写入之前已经写入的数据”是可用的。通过使用该控制,可以根据情况选择性地使用在顺序写入期间L块单位的处理。这种情况将参照附图进行描述。
首先,将描述读取时的L块单位的处理。图33示出了一种情况,其中向具有其中写入有数据的一个L块单位发出顺序管理登记命令并执行顺序写入(1)和(2)。在这种情况下,在不发出顺序管理删除命令的情况下,考虑对相同L块单位执行图34中的读取请求的情况。
此时,关于与执行读取请求的L块单位对应的数据,具有两种数据,即写入数据和顺序写入期间的数据。因此,闪速存储器设备可以将这两种数据任意用作要返回给主机的数据。图35至图37中示出了实例。
图35是返回关于存在顺序写入期间的数据之部分的顺序写入期间的数据并返回关于除上述之外的部分的写入数据的方法。图36是在忽略顺序写入期间的数据的情况下返回写入数据的方法。图37是返回关于存在顺序写入期间的数据之部分的顺序写入期间的数据并返回关于除以上之外的部分的空白数据(0xFF)的方法。
上述三种方法根据情况可以适用或可以不适用。例如,当对文件系统的管理数据执行顺序写入时,写入数据必须总是最新的。因此,优选的是,顺序写入立即反映,而不必等待完成顺序写入,并且图35和图37中所示的控制是优选的。另一方面,在在划分并写入应该被一次写入的大型数据的情况下,优选在写入所有划分数据之后反映所有划分数据。图36中表明的控制是优选的。
接下来,将描述顺序写入终止于途中的情况下的L块单位处理。在顺序写入如图38所示没有完成的情况下,考虑发出顺序管理删除命令的情况。在这种情况下,作为图23中的顺序管理删除命令中指示的分支的步骤ST54(填充有至最终物理页的数据?)的结果变为“否”,并且发生至P块单位管理(步骤ST55)的升格处理。在升格处理过程中,判定顺序写入期间的L块单位的内容,并对L块单位执行P块单位管理。此时,可以任意使用两种数据,即写入数据和顺序写入期间的数据。在图39至图41中示出了实例。
图39是使用有关存在顺序写入期间的数据的部分的顺序写入期间的数据并通过使用关于除以上之外的部分的写入数据生成新L块单位的方法,其中对新L块执行P块单位管理。图40是使用关于存在顺序写入期间的数据的部分的顺序写入期间的数据并通过使用关于除以上之外的部分的空白数据(0xFF)生成新L块单位的方法,其中对新L块执行P块单位管理。图41是在忽略顺序写入期间的数据的情况下通过只使用写入数据来生成新L块单位的方法,其中对新L块单位执行P块单位管理。
上述三种方法根据情况也可以适用或可以不适用。例如,优选在途中完成顺序写入之后残留数据尽可能大的情况下,图39的方法是适用的。在划分并写入大尺寸的数据,当旧数据在顺序写入期间混合到L块单位中时,难以区分旧数据和正写入的大型数据并发生混淆的情况下。因此,图40的方法是适用的。当在没有完成顺序写入的情况下不优选残留数据的一部分时,图41的方法是适用的。
如上所述,相对于读取和途中完成以任意处理顺序写入期间的L块单位。在本发明中,期望在安装时选择途中读取或完成中的一个并且在操作时一贯地使用所选的这一个。然而,在方法3中,向顺序管理登记命令给出顺序写入期间的L块单位处理作为参数。因此,在操作时可以动态地控制L块单位处理。图42表明上述情况的顺序管理登记命令表的配置方法。
图42是扩展图18的示意图。除了表明“是否根据顺序管理登记命令登记”的列之外,添加分别表示给出读取和途中完成的方法的两个参数的列。当执行顺序管理登记命令时,在顺序管理登记命令表中指定并登记这两个参数。因此,可以判定在读取和途中完成时使用图35至图37和图39至图41的哪种控制方法。
通过使用该判定方法,在操作时可以动态控制顺序写入期间的L块单位处理。例如,在摄像机被视为主机设备并且运动图片数据由照相机拍摄并存储的情况下,可以应用控制,其中拍摄数据的一部分由图36中的方法控制并且用于管理拍摄数据的文件系统的管理数据由图35的方法控制。
本发明可以具有以下配置。
(1)一种非易失性存储器设备,包括:
非易失性存储器单元;
控制单元;以及
接口,其中
控制单元被配置为接收写入请求;当接收数据的写入大小小于擦除的管理单位时判定数据是否是顺序管理的写入的对象;当数据是顺序管理的写入的对象时执行顺序写入小于擦除的管理单位的接收数据的第一写入处理;并且当数据不是顺序管理的写入的对象时执行依据写入的管理单位写入小于擦除的管理单位的接收数据的第二写入处理。
(2)根据(1)所述的非易失性存储器设备,其中
预先设定对其执行第一写入处理的特定区域。
(3)根据(1)所述的非易失性存储器设备,其中
根据基于过去的写入确定的写入请求的顺序性判定数据是否是顺序管理的写入的对象。
(4)根据(1)所述的非易失性存储器设备,其中
主机设备经由接口清楚表明数据是否是顺序管理的写入的对象。
(5)根据(1)所述的非易失性存储器设备,其中
主机设备经由接口清楚表明数据是否是顺序管理的写入的对象并且主机还管理写入区域的分配。
(6)一种非易失性存储器控制设备,被配置为接收写入请求;当接收数据的写入大小小于擦除的管理单位时判定数据是否是顺序管理的写入的对象;当数据是顺序管理的写入的对象时执行顺序写入小于擦除的管理单位的接收数据的第一写入处理;并且当数据不是顺序管理的写入的对象时执行依据写入的管理单位写入小于擦除的管理单位的接收数据的第二写入处理。
(7)一种非易失性存储器控制设备,其中
定义主机侧的命令,其指示利用顺序管理将小于擦除的管理单位的数据写入非易失性存储器设备的特定区域。
(8)根据(7)所述的非易失性存储器控制设备,其中
主机侧指示利用顺序管理写入并且还管理写入区域的分配。
(9)一种非易失性存储器控制方法,包括:接收写入请求;
当接收数据的写入大小小于擦除的管理单位时判定数据是否是顺序管理的写入的对象;
当数据是顺序管理的写入的对象时执行顺序写入小于擦除的管理单位的接收数据的第一写入处理;并且
当数据不是顺序管理的写入的对象时执行依据写入的管理单位写入小于擦除的管理单位的接收数据的第二写入处理。
(10)一种非易失性存储器控制方法,其中
定义主机侧的命令,其指示利用顺序管理将小于擦除的管理单位的数据写入非易失性存储器设备的特定区域。
(11)根据(10)所述的非易失性存储器控制方法,其中
主机侧指示利用顺序管理写入并且还管理写入区域的分配。
<3、变形例>
上文已具体描述了本发明的实施方式。本发明不限于上述的各个实施方式,并且可能存在基于本发明的技术构思的各种变形例。例如,上述实施方式中举例说明的配置、方法、程序、形状、材料和值仅仅是示例性的。如果需要,可以使用与该实施方式中那些不同的配置、方法、程序、形状、材料和值。
相对于本发明的实施方式,上文具体描述了闪速存储器被用作非易失性存储器的情况的实例。然而,上述非易失性存储器不限于闪速存储器。可以适用于可以配置物理地址空间的所有非易失性存储器,使得擦除单位的大小等于或大于写入单位的大小。当本发明适用于除闪速存储器之外的非易失性存储器时,本发明中的P块单位和P页单位可以分别被替换为本发明适用的非易失性存储器中的擦除单位和写入单位。
说明书标号列表
1  闪速存储器设备
2  闪速存储器单元
3  存储器控制单元
4  外部接口

Claims (11)

1.一种非易失性存储器设备,包括:
非易失性存储器单元;
控制单元;以及
接口,其中
所述控制单元被配置为接收写入请求;当接收数据的写入大小小于擦除的管理单位时,判定数据是否是顺序管理的写入的对象;当所述数据是所述顺序管理的写入的对象时,执行顺序写入小于所述擦除的管理单位的所述接收数据的第一写入处理;并且当所述数据不是所述顺序管理的写入的对象时,执行依据写入的管理单位写入小于所述擦除的管理单位的所述接收数据的第二写入处理。
2.根据权利要求1所述的非易失性存储器设备,其中
预先设定对其执行所述第一写入处理的特定区域。
3.根据权利要求1所述的非易失性存储器设备,其中
根据基于过去的写入确定的写入请求的顺序性来判定所述数据是否是所述顺序管理的写入的对象。
4.根据权利要求1所述的非易失性存储器设备,其中
主机设备经由所述接口清楚表明所述数据是否是所述顺序管理的写入的对象。
5.根据权利要求1所述的非易失性存储器设备,其中
主机设备经由所述接口清楚表明所述数据是否是所述顺序管理的写入的对象并且主机还管理写入区域的分配。
6.一种非易失性存储器控制设备,被配置为接收写入请求;当接收数据的写入大小小于擦除的管理单位时,判定数据是否是顺序管理的写入的对象;当所述数据是所述顺序管理的写入的对象时,执行顺序写入小于所述擦除的管理单位的所述接收数据的第一写入处理;并且当所述数据不是所述顺序管理的写入的对象时,执行依据写入的管理单位写入小于所述擦除的管理单位的所述接收数据的第二写入处理。
7.一种非易失性存储器控制设备,其中
定义主机侧的命令,所述命令指示利用顺序管理将小于擦除的管理单位的数据写入非易失性存储器设备的特定区域。
8.根据权利要求7所述的非易失性存储器控制设备,其中
所述主机侧指示利用所述顺序管理写入并且还管理写入区域的分配。
9.一种非易失性存储器控制方法,包括:接收写入请求;
当接收数据的写入大小小于擦除的管理单位时,判定数据是否是顺序管理的写入的对象;
当所述数据是所述顺序管理的写入的对象时,执行顺序写入小于所述擦除的管理单位的接收数据的第一写入处理;并且
当所述数据不是所述顺序管理的写入的对象时,执行依据写入的管理单位写入小于所述擦除的管理单位的所述接收数据的第二写入处理。
10.一种非易失性存储器控制方法,其中
定义主机侧的命令,所述命令指示利用顺序管理将小于擦除的管理单位的数据写入非易失性存储器设备的特定区域。
11.根据权利要求10所述的非易失性存储器控制方法,其中
所述主机侧指示利用所述顺序管理写入并且还管理写入区域的分配。
CN201380020709.1A 2012-04-25 2013-02-28 用于顺序写入的非易失性存储器设备 Active CN104246725B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012-100370 2012-04-25
JP2012100370 2012-04-25
PCT/JP2013/056201 WO2013161398A1 (ja) 2012-04-25 2013-02-28 シーケンシャル書き込みを行う不揮発性メモリ装置

Publications (2)

Publication Number Publication Date
CN104246725A true CN104246725A (zh) 2014-12-24
CN104246725B CN104246725B (zh) 2018-02-16

Family

ID=49482738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380020709.1A Active CN104246725B (zh) 2012-04-25 2013-02-28 用于顺序写入的非易失性存储器设备

Country Status (7)

Country Link
US (2) US10372367B2 (zh)
EP (1) EP2843562B1 (zh)
JP (2) JP5983739B2 (zh)
KR (1) KR20150015441A (zh)
CN (1) CN104246725B (zh)
TW (1) TWI605458B (zh)
WO (1) WO2013161398A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109273033A (zh) * 2017-07-17 2019-01-25 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器存储装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6326799B2 (ja) * 2013-12-11 2018-05-23 株式会社ニコン 電子機器
JP6139711B2 (ja) * 2014-02-03 2017-05-31 株式会社日立製作所 情報処理装置
CN105745628B (zh) * 2014-06-27 2017-09-05 华为技术有限公司 一种将数据写入闪存装置的方法、闪存装置和存储系统
US9940234B2 (en) * 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
CN114020482A (zh) * 2017-06-02 2022-02-08 伊姆西Ip控股有限责任公司 数据写入的方法和设备
TWI643065B (zh) 2017-12-20 2018-12-01 慧榮科技股份有限公司 用於動態執行記憶體回收資料儲存裝置與操作方法
JP7444091B2 (ja) 2021-01-29 2024-03-06 株式会社デンソー 転舵制御装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657468A (en) * 1995-08-17 1997-08-12 Ambex Technologies, Inc. Method and apparatus for improving performance in a reduntant array of independent disks
EP0882264B1 (en) * 1996-11-25 2006-03-22 Macronix International Co., Ltd. Flash memory mass storage system and associated method
CN1902599A (zh) * 2003-12-30 2007-01-24 桑迪士克股份有限公司 具有大型擦除区块的非易失性存储器系统的管理
CN1914689A (zh) * 2003-12-30 2007-02-14 桑迪士克股份有限公司 具有区块管理系统的非易失性存储器和方法
US20080235489A1 (en) * 2007-03-19 2008-09-25 Sergey Anatolievich Gorobets Systems for forcing an update block to remain sequential
TW201201017A (en) * 2010-01-27 2012-01-01 Toshiba Kk Memory device and host device

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1758027B1 (en) 2003-12-30 2010-07-14 SanDisk Corporation Non-volatile memory and method with control data management
DE102004038213A1 (de) * 2004-08-05 2006-03-16 Robert Bosch Gmbh Verfahren und Vorrichtung zum Zugriff auf Daten eines Botschaftsspeichers eines Kommunikationsbausteins
JP5162846B2 (ja) 2005-07-29 2013-03-13 ソニー株式会社 記憶装置、コンピュータシステム、および記憶システム
JP2007193883A (ja) 2006-01-18 2007-08-02 Sony Corp データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法
US7775213B2 (en) * 2006-07-06 2010-08-17 Qsum Biopsy Disposables, Llc Medical procedure draping systems
JP4299846B2 (ja) * 2006-07-28 2009-07-22 Necインフロンティア株式会社 クライアント・サーバ型分散システム、クライアント装置、サーバ装置及びそれらに用いるメッセージ暗号方法
KR100809319B1 (ko) * 2006-09-13 2008-03-05 삼성전자주식회사 플래시 메모리에서 연속한 섹터 쓰기 요청에 대해 원자성을제공하는 장치 및 방법
KR100771521B1 (ko) 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
JP5175703B2 (ja) * 2008-12-11 2013-04-03 株式会社東芝 メモリデバイス
JP4758518B2 (ja) 2009-06-18 2011-08-31 パナソニック株式会社 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ
US8364931B2 (en) * 2009-06-29 2013-01-29 Mediatek Inc. Memory system and mapping methods using a random write page mapping table
KR101662827B1 (ko) 2010-07-02 2016-10-06 삼성전자주식회사 쓰기 패턴에 따라 데이터 블록의 쓰기 모드를 선택하는 메모리 시스템 및 그것의 데이터 쓰기 방법
US8248883B1 (en) * 2010-08-31 2012-08-21 Xilinx, Inc. Non-volatile I/O device based memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657468A (en) * 1995-08-17 1997-08-12 Ambex Technologies, Inc. Method and apparatus for improving performance in a reduntant array of independent disks
EP0882264B1 (en) * 1996-11-25 2006-03-22 Macronix International Co., Ltd. Flash memory mass storage system and associated method
CN1902599A (zh) * 2003-12-30 2007-01-24 桑迪士克股份有限公司 具有大型擦除区块的非易失性存储器系统的管理
CN1914689A (zh) * 2003-12-30 2007-02-14 桑迪士克股份有限公司 具有区块管理系统的非易失性存储器和方法
US20080235489A1 (en) * 2007-03-19 2008-09-25 Sergey Anatolievich Gorobets Systems for forcing an update block to remain sequential
TW201201017A (en) * 2010-01-27 2012-01-01 Toshiba Kk Memory device and host device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109273033A (zh) * 2017-07-17 2019-01-25 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器存储装置
CN109273033B (zh) * 2017-07-17 2021-03-30 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器存储装置

Also Published As

Publication number Publication date
JP6206562B2 (ja) 2017-10-04
EP2843562A1 (en) 2015-03-04
KR20150015441A (ko) 2015-02-10
TWI605458B (zh) 2017-11-11
JP5983739B2 (ja) 2016-09-06
JP2016186828A (ja) 2016-10-27
TW201351420A (zh) 2013-12-16
JPWO2013161398A1 (ja) 2015-12-24
EP2843562B1 (en) 2021-03-31
CN104246725B (zh) 2018-02-16
EP2843562A4 (en) 2015-10-28
US11455112B2 (en) 2022-09-27
US10372367B2 (en) 2019-08-06
US20190339895A1 (en) 2019-11-07
WO2013161398A1 (ja) 2013-10-31
US20150120992A1 (en) 2015-04-30

Similar Documents

Publication Publication Date Title
CN104246725A (zh) 用于顺序写入的非易失性存储器设备
USRE42263E1 (en) Address conversion unit for memory device
CN101937319B (zh) 存储器系统及其映射方法
EP1435576B1 (en) Method and apparatus for block-oriented memory management provided in smart card controllers
US7783851B2 (en) Methods of reusing log blocks in non-volatile memories and related non-volatile memory devices
CN102693184B (zh) 处理具有非易失性存储器的系统的动态和静态数据
CN105095094B (zh) 内存管理方法和设备
US8095723B2 (en) Log-based flash translation layer and operating method thereof
US8645614B2 (en) Method and apparatus for managing data of flash memory via address mapping
US20120215965A1 (en) Storage Device and Computer Using the Same
CN101346703A (zh) 具有可块擦除单元的非易失性存储器
CN101187898A (zh) 管理非易失性存储器的设备和方法
KR20120068765A (ko) 메모리 관리 장치
CN102779095A (zh) 闪存装置、存储器控制装置、存储器控制方法及存储系统
KR100437609B1 (ko) 반도체 메모리 장치의 어드레스 변환 방법 및 그 장치
CN101625897A (zh) 用于快闪存储器的数据写入方法、储存系统与控制器
JP2010515128A (ja) 不揮発性メモリにおけるデータを管理する方法
CN102203737B (zh) 多线程访问多副本的方法和装置
JP2010237907A (ja) ストレージ装置および記録方法
CN101833519B (zh) 一种减少存储技术设备中地址映射表常驻内存的方法
CN102880553A (zh) 一种基于mcu的片外flash文件系统的读写方法
CN102023845A (zh) 一种基于状态机的Cache并发访问管理方法
CN118331491A (zh) 数据存储压缩方法、系统、存储器及存储介质
JP2008097543A (ja) メモリアクセス制御装置

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