CN104798063B - 存储设备和主机设备 - Google Patents

存储设备和主机设备 Download PDF

Info

Publication number
CN104798063B
CN104798063B CN201380056820.6A CN201380056820A CN104798063B CN 104798063 B CN104798063 B CN 104798063B CN 201380056820 A CN201380056820 A CN 201380056820A CN 104798063 B CN104798063 B CN 104798063B
Authority
CN
China
Prior art keywords
region
data
overwrite
written
write
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.)
Active
Application number
CN201380056820.6A
Other languages
English (en)
Other versions
CN104798063A (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.)
Japanese Businessman Panjaya Co ltd
Kioxia Corp
Original Assignee
Toshiba Memory 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 Toshiba Memory Corp filed Critical Toshiba Memory Corp
Publication of CN104798063A publication Critical patent/CN104798063A/zh
Application granted granted Critical
Publication of CN104798063B publication Critical patent/CN104798063B/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/177Smart card
    • 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/7202Allocation control and policies

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

存储设备和主机设备
相关申请的交叉引用
本申请基于并要求2012年10月30日提交的第2012-238849号以及2013年8月9日提交的第2013-166804号日本专利申请的优先权,这两个日本专利申请的全部公开内容在此引入作为参考。
技术领域
在此描述的实施例一般地涉及存储设备和主机设备。
背景技术
诸如SDTM卡之类的存储设备被分类为多个类别,以便促进存储设备的性能和主机设备需要的性能之间的匹配。速度等级提供一种方法,该方法按照速度等级编号对存储设备的性能分类,并且计算存储设备的性能。
速度等级使用特定命令控制写入过程。为了在维持性能的同时执行存储器写入,在分配单元(以下称为AU或顺序写入区域)中执行顺序写入,该分配单元是存储设备的物理存储区域。需要从分配单元的开头写入数据。由于此原因,其中部分地写入数据的分配单元不能用于数据记录。因此,需要提供以下存储设备和主机设备:其能够使用其中部分地写入数据的分配单元,并且改进分配单元的利用效率。
附图说明
图1是示出应用实施例的存储系统的一个实例的框图;
图2是示出NAND闪存的用户区域管理单元的图;
图3是示出多文件记录的一个实例的图;
图4是示出应用于该实施例的命令格式的一个实例的图;
图5是示出使用命令设置顺序写入区域的一个实例的图;
图6是示出使用命令控制盖写区域的一个实例的图;
图7是示出使用命令控制设置数据区域的开头的一个实例的图;
图8是示出使用命令控制准备卡区域的一个实例的流程图;
图9A是示出在分配单元中写入的一个实例的图,并且图9B是示出建立序列的一个实例的流程图;
图10是示出其中图9B中所示的建立序列被表示为命令序列的一个实例的图;
图11是示出其中初始化卡,在根目录下创建子目录,并且创建文件的一个实例的图;
图12是具体地示出图11的操作的图;
图13是示出其中图11和12的操作被表示为命令序列的一个实例的图;
图14是示出其中图3中所示的操作被表示为命令序列的一个实例的图;
图15是示出视频等级的性能信息和AU大小信息的一个实例的图。
具体实施方式
一般而言,根据一个实施例,存储设备包括非易失性半导体存储器和控制单元。所述非易失性半导体存储器具有多个物理存储区域,所述多个物理存储区域包括可在外部存取的用户区域并且被分成多个管理单元。所述控制单元被配置为控制所述非易失性半导体存储器。所述控制单元接收具有用于指定顺序写入区域的第一参数的控制命令以及读取命令或写入命令,将所述读取命令或所述写入命令的地址所表示的管理单元分配为所述顺序写入区域,以及通过判断用于存取所述用户区域的存储器存取命令的地址是否指示在大小等于所述管理单元的所述顺序写入区域中的存取来更改存储器存取控制。
现在将参考附图描述所述实施例。
图1示意性地示出根据所述实施例的存储系统。
所述存储系统包括诸如SD卡之类的存储设备11(以下也称为卡)和主机设备20。
主机设备20和存储设备11通过SD总线接口26连接,以便使用命令通信。存储设备11可以通过SD总线接口向主机指示繁忙。繁忙指示意味着卡正在执行某个操作并且阻止主机发出下一个命令。
当连接到主机设备20时,存储设备11接收电力并且操作,以便执行对应于来自主机设备20的存取的处理。存储设备11包括控制器11a。
控制器11a例如包括主机接口(I/F)12、CPU 13、只读存储器(ROM)14、用作易失性存储器的随机存取存储器(RAM)15、缓冲器16以及存储接口(I/F)17。这些元件通过总线连接。存储接口17例如被连接到用作扩展功能单元的NAND闪存18和I/O 19。例如,可以将无线LAN设备等应用于扩展功能单元。
主机接口12在控制器11a和主机设备20之间执行接口处理。主机接口12包括寄存器12a。寄存器12a存储对于存储设备11而言唯一的数据,例如将在后面描述的AU的大小。寄存器12a还在执行期间存储状态。在通电时,从NAND闪存18读出默认设置并且在寄存器12a中设置。通过命令读出寄存器12a的内容,例如主机设备20发出的CMD13可以读取状态。
存储接口17在控制器11a和NAND闪存18或I/O 19之间执行接口处理。主机接口12、RAM 15、缓冲器16等的数据不仅可以通过CPU 13的数据传输进行传输,而且还通过硬件的DMA传输进行传输。
CPU 13控制整个存储设备11的操作。CPU 13将存储在ROM 14中的固件(控制程序等)或者记录在NAND闪存18中的固件加载到RAM 15中,并且执行预定处理。即,CPU 13在RAM15上创建各种表以及例如扩展寄存器,并且在从主机设备20接收到写入命令、读取命令或擦除命令时,存取NAND闪存18上的区域或者经由缓冲器16控制数据传输处理。
ROM 14存储固件,例如要由CPU 13使用的控制程序。某些固件片段可以在ROM 14中实现,而其余固件片段可以被存储在NAND闪存18中,提取到RAM 15并且执行。RAM 15被用作CPU 13的工作区域,并且存储控制程序、各种表和扩展寄存器。
缓冲器16在从主机设备20发送的数据要被写入NAND闪存18中时,临时存储预定数量的数据(例如,一页数据),或者在从NAND闪存18读出的数据要被发送到主机设备20时,临时存储预定数量的数据。干预缓冲器16使能SD总线接口和后端的异步控制。
NAND闪存18包括例如具有叠栅结构的存储单元或者具有MONOS结构的存储单元。
I/O 19具有用于数字照相机、PHS等的外围设备或接口的功能。例如,当应用无线LAN设备作为I/O 19时,即使没有无线通信功能的数字照相机也可以执行与外部服务器或外部PC(个人计算机)的无线数据通信。
作为主机设备20,例如数字照相机、PHS等适用。主机设备20包括主机控制器21、CPU 22、ROM 23、RAM 24以及例如硬盘25(包括SSD)。这些元件通过总线连接。
CPU 22控制整个主机设备20。ROM 23存储CPU 22的操作必需的固件。从存储设备(例如,HDD 25)读出的固件可以存储在RAM 24中,以便组成没有ROM 23的系统。RAM 24例如被用作CPU 22的工作区域。可由CPU 22执行的程序也在此加载和执行。硬盘(HDD)25保存各种数据。主机控制器21在其中存储设备11被连接的状态下,执行用于存储设备11的接口处理。主机控制器21还根据来自CPU 22的指令发出各种命令,这些命令将在后面描述。
此外,主机设备20具有存储管理软件,其被配置为识别格式化NAND闪存18的用户区域的文件系统,该文件系统例如存储在硬盘25中。存储管理软件基于文件名的扩展名或将被创建的文件的数据长度,确定在顺序写入区域还是在盖写区域中写入数据。
图2示出NAND闪存18的区域中可由用户使用的用户区域18a的管理单元。NAND闪存18的用户区域18a(其是可使用命令在外部存取的区域)被分成多个AU。基于NAND闪存18的物理边界(这些边界不等于用户区域中由文件系统管理的边界),确定AU1到AUn的每一个的大小。将AU大小乘以n(整数)将产生用户区域18a的整体存储容量。
通常在起始处的AU1中记录文件系统的信息,例如文件分配表(FAT)。由于此原因,不保证AU1的写入性能。(如果AU2是空闲AU,)AU2到AUn是被保证性能的记录区域,并且被指示为可记录区域。但是,用于记录目录表项或盖写的AU没有性能保证。如果AU大小很小,并且文件系统的信息例如记录在AU1到AUp中,则AU(p+1)到AUn是被保证性能的记录区域。
此外,每个AU被分成多个记录单元(以下称为RU)。对于其地址在RU边界上并且数据长度至少等于或大于RU大小的连续写入数据的顺序写入,性能得以保证。由于此原因,主机设备20需要在对应于RU的整数倍的单元中执行多块写入。这是因为需要特定数据长度以使卡中的流水线操作的效果显现在执行中。
图2指示一个AU由m个RU构成。假设SRU是RU的大小,并且SAU是AU的大小,则一个AU=NRU中的RU的数量m由SAU/SRU给出。
当针对任意AU执行顺序写入时的最差平均性能值由存储设备的写入性能信息PW表示。当AU大小超过4MB时,PW被定义为通过将AU分成4MB区域获得的4MB区域的最差平均性能值。
主机设备20可以例如从存储设备的寄存器12a读出PW和AU大小SAU,并且使用它们进行性能计算。RU大小被定义为固定值。
(写入多个文件时的性能估计)
可以从PW估计AU地址和AU大小所表示的区域的顺序写入的最小平均性能。因为PW和AU大小的值在设备之间改变,所以主机设备20需要通过从存储设备的寄存器12a读出PW和AU大小处理这种情况。
在此将描述具有性能PW=10MB/秒的存储设备的性能估计方法的一个实例。当使用时隙管理设备的存储器存取时间时,该设备可以被视为能够在为1秒的每个时隙内写入至少10MB的数据。当以4MB/秒的平均性能执行记录时,需要在1秒时隙内在某处写入4MB数据。
当分时写入三个文件时,可以通过调整在1秒时隙内的数据写入量,调整每个文件的写入性能。当以3MB/秒写入三个文件的每一个时,在1秒时隙内将它们各自分开作为3MB数据写入。可以将时隙的其余100毫秒分配给用于更新FAT的时间部分,作为主机设备侧的控制必需的裕度。即,主机设备可以通过确定要分配的时隙数量以及分时执行写入,计算和控制多个文件的写入性能。
(多文件记录的实例)
图3示出NAND闪存18的用户区域18a的多文件记录的一个实例。
参考图3,通过将在后面描述的命令(CMD20)“设置盖写区域(Set Over-WriteArea)”,分配盖写区域(OverW-Area)。通过CMD20“设置顺序写入AU(Set Sequential-WriteAU)”,分配要用于执行顺序写入的区域(以下称为顺序写入区域)。
可以通过CMD20“设置顺序写入AU”分配一个顺序写入区域。主机设备20可以在顺序写入区域中分开写入多个文件。
参考图3,在盖写区域(OverW-Area)的目录表项DIR1中创建三个文件表项FE1、FE2和FE3,并且在目录表项DIR2中创建文件表项FE4。
在顺序写入区域SeqW-AU中,文件1a是文件1的一部分并且基于RU被写入,同时使其与RU边界匹配。由于此原因,当写入文件1a时,至少保证性能PW
文件2和文件3的每一个具有等于或小于RU的大小,并且以小于RU的数据大小被写入。数据例如存在于小于RU边界的64KB边界上。当写入文件2和文件3时,因为数据长度小于RU大小,所以不保证性能PW
如果需要写入文件4,同时至少保证性能PW,则首先在文件3之后,将虚拟数据作为填充内容一直写入到RU边界。填充可以由主机执行或者由卡执行。接下来,文件4被写入,同时使其与RU边界匹配。即,因为文件4的数据基于RU被写入,同时使其与RU边界匹配,所以保证性能PW
接下来将作为文件1的其余部分的文件1b写入到文件4。当文件1b基于RU被写入,同时使其与RU边界匹配时,至少保证性能PW。即,主机设备20通过将文件1和文件4分为多个RU单元,管理它们的写入性能。
尽管未示出,但执行FAT更新以便关闭文件1。更新FAT区域和位图(未示出),并且更新DIR区域中包括文件表项1(FE1)的512个字节,从而将文件1的部分写入数据确定为文件系统。因此,主机可以从文件系统信息读出数据,一直到文件1的写入数据。
图4示出应用于该实施例的命令CMD20的格式的一个实例。
在图4所示的CMD20中,“S”是命令的起始位,“T”是表示传输方向的位,“索引”指示命令编号,其具有用于指定命令是控制命令(例如顺序写入)的位串。
“SCC”是表示速度等级控制的参数,其是用于指定命令的功能或操作的操作指定部分。“SCC”包括多个位,并且“SCC”的位设置CMD20的各种功能。
“OWAS”(盖写区域大小)是用于指定盖写区域大小的参数。
“CRC7”指示循环冗余校验码。
“E”是命令的结束位。
如上所述,在CMD20中,“SCC”的位例如设置“开始记录”、“更新DIR”、“更新CI”、“设置顺序写入AU”、“设置盖写区域”、“设置数据区域的顶部”以及“布置区域”。
(设置顺序写入AU)
CMD20“设置顺序写入AU”是用于分配顺序写入区域的命令。该CMD20“设置顺序写入AU”与将在后面描述的读取命令或写入命令结合使用。
当例如在建立序列中使用CMD20“设置顺序写入AU”以便准备记录时,允许例如1秒的繁忙时间作为命令的处理时间。当在数据记录期间使用该命令时,允许的繁忙时间例如被限制为10毫秒。
(设置盖写区域)
CMD20“设置盖写区域”是用于设置盖写区域的命令。使用与读取命令或写入命令组合的CMD20“设置盖写区域”和地址,指定盖写区域。在CMD20“设置盖写区域”中设置例如100毫秒的繁忙周期。不能在顺序写入区域中分配盖写区域。
注意,在使用CMD20和写入命令/读取命令的处理中,存储器存取控制例如可以是对表示写入命令正在被处理的繁忙时间的控制、对维护未写入区域中的数据的控制,或高速缓存控制(一种方法,其在缓冲器中写入数据并布置写入缓冲器中的数据,并且随后在闪存中写入数据,而不是直接在NAND闪存中写入数据)。在使用高速缓存的情况下,因为每次存取的写入繁忙时间大不相同,所以通过繁忙时间的平均值估计写入性能。
(设置数据区域的顶部)
CMD20“Set Top of Data Area(设置数据区域的顶部)”是用于与读取命令组合向卡通知文件系统的数据区域的命令。卡不需要分析文件系统,并且可以预测DIR区域和位图的位置。通过CMD20“设置数据区域的顶部”和读取命令,指定数据区域的起始地址。在CMD20“设置数据区域的顶部”中设置例如100毫秒的繁忙周期。
(布置区域)
CMD20“Arrange Area(布置区域)”是用于允许存储设备11在特定时间内准备一个区域的命令,并且通过取消CMD20的繁忙而表示完成准备。CMD20“布置区域”单独使用,这不同于CMD20的其它功能。当在建立序列中使用CMD20“布置区域”时,允许例如1秒的繁忙时间,并且当在数据记录中使用CMD20“布置区域”时,允许的繁忙时间例如被限制为250毫秒。
(“OWAS”:盖写区域大小)
“OWAS”是用于指定盖写区域大小的参数。
在该实施例中,具有两种指定盖写区域大小的方法。
(1)当CMD20的“OWAS”被设置为“0000b”时
在这种情况下,通过CMD20之后的CMD18的读取操作范围或者CMD25的写入操作范围,指定盖写区域的大小。
例如,当创建新的目录表项区域时,需要在该区域中写入数据“0”以便初始化。当主机设备20发出CMD20“设置盖写区域”+CMD25并且写入数据“0”时,可以将创建的目录表项区域分配为盖写区域。但是,在FAT系统中,不需要始终在所有位中写入“0”,并且可以通过该命令写入诸如表示当前目录的“.”和表示父目录的“..”之类的文件表项。
(2)当CMD20的“OWAS”被设置为“0001b”到“1111b”时,可以分配具有如图4中所示的大小的盖写区域。在这种情况下,读取大小(CMD18)和写入大小(CMD25)需要等于或小于“OWAS”的设置值。
支持该实施例的CMD20的存储设备可以接收常规命令,并且将其解释转换为该实施例的命令。这使得在某种程度上维护兼容性成为可能。
(开始记录)
CMD20“Start Recording(开始记录)”是用于指定第一顺序写入区域的命令。该“开始记录”可以直接作为“设置顺序写入AU”处理。该CMD20可以指示1秒的繁忙。
“开始记录”仅用于指定第一AU,而不是指定之后的顺序写入区域。由于此原因,需要将满足以下条件的AU分配为顺序写入区域。当多块写入命令CMD25指示要基于RU执行数据写入一直到最后区域,同时使其与RU边界匹配时,其写入目的地是分配的顺序写入区域,并且当下一个CMD25指示要基于RU从另一个AU的开头执行数据写入,同时使其与RU匹配时,将新写入的AU分配为顺序写入区域。
(更新DIR)
“Update DIR(更新DIR)”在CMD24/25之前发出,其更新是目录表项的一部分的512字节区域。
如果未将来自CMD24/25表示的地址的512字节区域分配为盖写区域,则至少将包括来自CMD24/25表示的地址的512字节区域的一个区域分配为盖写区域。
如果已经将来自CMD24/25表示的地址的512字节区域分配为盖写区域,则维持该分配,并且CMD20“更新DIR”不需要再执行任何处理。
(更新CI)
“Update CI(更新CI)”用于在写入诸如视频数据之类的流数据期间,写入小CI(连续信息)数据。在这种情况下,在CMD24/25之前发出“更新CI”以便写入CI数据的一部分,例如512字节数据。
下一个“更新CI”极有可能在下一个512字节区域中写入。因此,当为CI数据分配盖写区域时,优选地分配相对大的区域。
如果未将来自CMD24/25表示的地址的512字节区域分配为盖写区域,则至少将包括来自CMD24/25表示的地址的512字节区域的一个区域分配为盖写区域。
如果已经将来自CMD24/25表示的地址的512字节区域分配为盖写区域,则该CMD20不需要执行任何处理。
(CMD20的详细功能)
接下来将详细描述CMD20“设置顺序写入AU”、“设置盖写区域”、“设置数据区域的顶部”以及“布置区域”的功能。
(顺序写入区域的设置:设置顺序写入AU)
通常,因为规范,其中部分地写入数据的AU不能用于数据记录。由于此原因,当存储设备被断电然后被再次通电时,不能使用其中上次部分地写入数据的AU的空闲区域,并且AU利用效率降低。
在该实施例中,在初始化时,可以将已部分地使用的AU分配为顺序写入区域。
当提供使部分地使用的AU可用的指定方法时,可以改进AU利用效率。
因为主机设备20管理存储卡的区域管理,所以当卡被断电时,卡不需要保存分配的信息。根据该方法,在为卡提供电力之后,主机设备20可以重新指定与断电之前的区域相等的区域。
顺序写入区域一直有效,直到一个AU已被完全写入时。
通常,当发出随机写入时,顺序写入结束,并且不能针对AU执行其它写入。
在该实施例中,即使插入向另一个区域的随机写入,分配为顺序写入区域的AU也可以继续顺序写入。由于此原因,可以在顺序写入区域的空闲区域中执行其它写入,并且可以改进AU利用效率。
下面将参考图5详细描述顺序写入区域SeqW-AU的设置。
用于分配顺序写入区域SeqW-AU的命令格式如下所示。
CMD20“设置顺序写入AU”+CMDxx
该命令格式指定一个顺序写入区域SeqW-AU。
CMD20“设置顺序写入AU”和CMDxx的组合如下所示。
CMDxx是例如读取命令(CMD17)和多块写入命令(CMD25)的两个不同命令之一,并且CMDxx的地址指示AU的开头或中点。因此,可提供四种指定方法。
(情况1)
当CMD17从AU的起始地址读出512字节区域时,将AU分配为顺序写入区域。从顺序写入区域的开头写入数据。应该丢弃读取数据,因为其毫无意义。
(情况2)
当CMD17从AU的中间地址读出512字节区域时,将AU分配为顺序写入区域。从指定的地址写入数据。保留在指定的地址之前的区域中记录的数据。应该丢弃读取数据,因为其毫无意义。
(情况3)
当CMD25从AU的起始地址写入数据时,将AU分配为顺序写入区域。从AU的开头写入数据,并且从紧接在写入数据之后的地址写入后续数据。
(情况4)
当CMD25从AU的中间地址写入数据时,将AU分配为顺序写入区域。从AU的指定中间地址写入数据,并且从紧接在写入数据之后的地址写入后续数据。保留在指定的地址之前的区域中记录的数据。
(顺序写入区域的有效期)
当下一个CMD20“设置顺序写入AU”+CMDxx指定新区域时,顺序写入区域的有效性被取消。
当写入数据一直到分配的顺序写入区域的结尾时,分配被取消。
当存储设备11被断电时,可以保存或取消顺序写入区域的分配。即使在判断顺序写入区域中的写入不是顺序写入(发生盖写)时,也取消分配。如果主机分配另一个区域作为顺序写入区域,则也取消分配。
(盖写区域的设置:设置盖写区域)
如上所述,CMD20“设置盖写区域”是用于设置盖写区域的命令。随机写入数据可以临时保存在高速缓存中。但是,因为整个用户区域能够经历随机写入,所以缓存快照(cacheflash)的发生可以使处理时间非常长。由于此原因,存储设备11指示长时间繁忙,并且可能出现称为“瞬间假死(petit freeze)”的现象。具体地说,闪存的块大小(用作确定AU大小的基础的物理数据长度)越大,繁忙时间往往越长,因为用于管理数据的区域较广。在具有大块的闪存中,这造成特别严重的问题。
在该实施例中,指定盖写区域。这使得可以降低缓存快照的影响,并且即使在最糟糕的情况下,也可能简短地估计处理时间,并且防止卡指示长时间繁忙。
由于此原因,在该实施例中,可以分配多个盖写区域。此外,预先确定繁忙时间,并且确保分配需要的时间。
使用CMD20+读取/写入命令和地址,指定盖写区域。
为了指定盖写区域的大小,例如可使用以下两种方法。
(1)通过CMD20指定大小的方法
(2)通过经历读取/写入的数据区域指定大小的方法
当将大区域共同指定为盖写区域时,方法(1)(作为CMD20的参数OWAS描述)有效。当首次创建目录表项时,需要在已分配的区域中写入数据“0”以便初始化。因此,在这种情况下,方法(2)有效。
注意,当在未指定的区域中写入数据时,写入命令可能指示长时间繁忙。例如,针对未指定的区域,将最大繁忙时间设置为500毫秒,而针对盖写区域,将最大繁忙时间设置为250毫秒。这意味着用于盖写区域和未指定的区域的高速缓存控制方法是不同的。因此,当用于存取AU的命令的地址指示存取盖写区域时,存储设备更改存储器存取控制(例如高速缓存控制),以便以不同方式控制除盖写区域之外的区域。即,主机设备因此指定顺序写入区域和盖写区域,并且在区域中执行写入。这允许存储设备执行有效处理并且改进总体性能。
下面将参考图6详细描述盖写区域指定方法。
用于分配盖写区域的命令格式如下所示。
CMD20“设置盖写区域”+CMDxx
该格式指定一个盖写区域。例如,卡最多可以分配八个盖写区域。当指定八个或更多盖写区域时,最新八个区域作为盖写区域是有效的。
CMD20和CMDxx的组合如下所示。
CMDxx例如是多块读取命令CMD18或多块写入命令CMD25,并且具有两种不同的指定方法(所述命令可以是单写入命令CMD24或单读取命令CMD17)。
为了指定区域的大小,可使用通过将在后面描述的CMD20的参数指定大小的方法,或者通过CMDxx存取的区域指定大小的方法。
(情况1)
如图6中所示,当CMD25从AU的中间地址写入数据时,将AU的一部分分配为盖写区域,并且从指定的地址写入数据。通过CMD20的参数OWAS表示的设置值或者CMD25写入的数据长度,指定盖写区域。在指定的盖写区域中,保留除写入区域之外的区域中的数据。
(情况2)
如图6中所示,当CMD18从AU的中间地址读出512字节数据时,将AU的一部分分配为盖写区域,并且从指定的地址读出数据。通过CMD20的参数OWAS表示的设置值或者CMD18读取的数据长度,指定盖写区域。保留指定的盖写区域中的数据。
如上所述,当通过CMD20“设置盖写区域”+CMDxx添加盖写区域时,如果针对分配计数设置上限,则将最新分配的盖写区域维护为盖写区域,并且可以从分配中删除较旧的盖写区域,以便通过上限限制总分配计数。
当存储设备11被断电时,可以保存或取消盖写区域的分配。
(建立序列的改进:设置数据区域的顶部)
如上所述,CMD20“设置数据区域的顶部”是用于向卡通知文件系统的数据区域的命令。
主机设备20向卡通知表示文件系统的格式的数据区域的起始位置。因此,卡可以指定exFAT(扩展FAT)的位图区域和FAT区域。
在符合SD标准文件系统的exFAT中,主机设备20可以使用CMD20“设置数据区域的顶部”之后的读取命令,将位图读出到RAM 24,并且在RAM 24中形成位图的高速缓存。
通常,通过写入命令定义记录区域。因此,如果没有开始记录,则不能准备记录区域。
在该实施例中,通过读取命令的地址指定记录区域,从而能够进行准备。
如上所述,可以将一个区域分配为顺序写入区域,并且可以将多个区域分配为盖写区域。
主机设备20发出用于允许存储设备11准备区域的命令。存储设备11根据该命令指示准备期间的繁忙,从而向主机设备20通知准备正在进行中。
下面将参考图7详细描述指定数据区域的起始位置的方法。
图7示出NAND闪存18的存储器图。在符合SD标准文件系统的exFAT中,NAND闪存18的用户区域18a在数据区域的起始位置之前包括包含FAT的文件系统,并且在数据区域的第一4MB区域中包括位图区域。
主机设备20从存储设备11的文件系统格式搜索数据区域的起始地址,并且通过CMD20“设置数据区域的顶部”+CMD18指定数据区域的起始地址。
存储设备11可以从CMD18指定的地址,预测记录在文件系统区域中的目录信息的位置以及数据区域的第一4MB区域中的位图信息的位置。
注意,至于目录区域和位图区域,主机设备20不需要将这些区域设置为盖写区域,但可以根据设置数据区域的顶部的更简单过程,将这些区域设置为盖写区域。这些区域不包括在盖写区域分配的计数中。
(区域管理:区域管理方法)
通过数据类型和数据长度,区分要使用的区域。即,可以通过文件名的扩展名或文件属性,预测文件的数据长度。例如,可以将视频文件处理为长数据,并且可以将文本文件处理为假设要被重写的短数据。文件名的扩展名或文件属性可以被用作一种手段,以便预测数据长度,或者即使当数据长度不定时预测是否盖写。
可以将与文件系统关联的数据(例如,FAT、位图或目录表项)处理为短数据,并且将其记录在盖写区域中。
将可重写短数据记录在盖写区域中,并且将可记录长数据记录在顺序写入区域中。
另一方面,将假设不被重写的长数据或短数据记录在顺序写入区域中。
例如,将等于或大于RU=512KB的数据作为长数据处理。
将顺序写入区域的最小单位设置为64KB(通过页大小确定),并且将小于64KB的数据作为短数据处理。
短数据的顺序写入并不限于基于RU(数据大小是RU大小的倍数,并且地址在RU边界上)。
当基于RU写入数据时,性能等于或高于PW。尽管还可以以小于RU的单位写入数据,但性能变得低于PW。“PW变得较低”意味着存储设备指示的繁忙时间变得较长。对于在顺序写入区域中写入,存储设备确认地址是否是顺序地址以及写入数据是否存在于RU边界上,并且根据是否满足要产生性能PW的条件来控制繁忙时间。如果区域不是顺序写入区域,则性能PW没有限制,并且因此执行另一个繁忙控制。即,存储设备针对用于存取AU的命令,判断地址是否指示存取顺序写入区域,并且更改存储器存取控制,例如繁忙时间。
下面将参考图8详细描述区域管理方法。
如上所述,CMD20“布置区域”单独使用,这不同于其它CMD20。CMD20“布置区域”是用于允许存储设备11在特定时间内准备一个区域的命令,并且指示通过取消CMD20的繁忙而完成准备。
例如在建立序列中,在区域指定结束时发出CMD20“布置区域”。
如图8中所示,在建立完成之后,可以通过发出CMD20“设置盖写区域”+CMD25或CMD18,随时指定盖写区域(步骤S11)。然后,发出CMD20“布置区域”以便准备一个区域(步骤S12)。为了布置通过向盖写区域随机写入而缓存的数据,卡需要处理时间。可以通过CMD20“布置区域”确保处理时间,并且设计变得很容易。在这种情况下,允许的繁忙时间被限制为250毫秒,因为例如可以在主机设备中进行数据记录。
注意,如上所述,当组合CMD20和写入命令时,不仅执行写入写入数据,而且还执行将包括数据的区域分配为顺序写入区域或盖写区域。此外,针对CMD20的每个功能或者命令发出的每种情况,设置繁忙时间的最大值,以便主机设备可以估计写入性能预算。当使用CMD20指定盖写区域或顺序写入区域,并且多次执行写入时,卡可以进行控制以使每次写入的平均繁忙时间短于在除指定的区域之外的区域中多次写入的平均繁忙时间。即,使用CMD20的写入的平均繁忙时间可以被控制为短于不使用CMD20的写入的平均繁忙时间。
(建立序列)
图9A和9B示出使用CMD20的建立序列的一个实例。图10示出其中图9B中所示的建立序列被表示为命令序列的一个实例。在该实例中,指定一个顺序写入区域和三个盖写区域。
更具体地说,首先,初始化存储设备(卡)(步骤S21)。然后,通过CMD20“设置数据区域的顶部”+CMD18指定数据区域的起始地址,并且卡将DIR区域和位图区域分配为盖写区域(步骤S22)。接下来,通过CMD20“设置顺序写入区域”+CMD17,指定顺序写入区域(步骤S23)。接下来,通过CMD20“设置盖写区域”+CMD18、CMD20“设置盖写区域”+CMD25和CMD20“设置盖写区域”+CMD18,指定盖写区域(步骤S24、S25和S26)。最后,发出CMD20“布置区域”,并且在CMD20“布置区域”的繁忙指示期间准备存储设备11中的区域(步骤S27)。
使用上述操作,分配一个顺序写入区域和三个盖写区域。
注意,CMD20和写入命令或读取命令的组合并不限于图9B和10中所示的这些组合。通过组合CMD20和写入命令或读取命令,可以从AU的开头或中间点设置必需区域,如图9A中所示。
(文件创建的实例)
图11假设以下状态:其中在根目录下存在子目录DIR1,并且已经在子目录DIR1中创建文件X1、X2和X3。将描述以下情况:其中在该状态下初始化卡,在根目录下新创建子目录DIR2,在DIR1中创建文件1和文件2,并且在DIR2中创建文件3。
图12是具体地示出根据图11中所示的该实施例的文件创建的一个实例的图。图13将图12中所示的文件创建表示为命令序列。在图12和13中,相同的参考标号表示相同的部分。注意,未在图12中示出FAT、位图和根目录。
图12和13示出以下实例:其中指定两个顺序写入区域SeqW-AU1和SeqW-AU2以及用作两个盖写区域的目录表项1和目录表项2,并且在这些区域中写入数据。
首先,执行初始化序列以便初始化存储设备11(步骤S41)。
接下来,主机设备20分析文件系统的格式,发出CMD20“设置数据区域的顶部”+CMD18,并且指定通过所述格式指定的数据区域的起始地址(步骤S42)。在符合SD标准文件系统的exFAT中,CMD18读出的数据可以包括位图区域。主机设备20可以在系统存储器(RAM24)中缓存读出的位图。
主机设备20发出CMD20“设置顺序写入AU”+CMD18。存储设备11基于所述命令,在NAND闪存18中分配顺序写入区域SeqW-AU1(步骤S43)。可以按顺序从CMD18指定的地址位置到AU的结尾来写入数据。
然后,主机设备20分析文件系统的格式,并且发出CMD20“设置盖写区域”+CMD25(步骤S44)。因此,CMD18将已经创建的目录表项1分配为盖写区域。
主机设备20然后发出CMD20“布置区域”以便指示存储设备11准备一个区域(步骤S45)。存储设备11被允许例如使用1秒作为区域准备时间。
然后,在目录表项1中创建文件1的文件表项FE1,并且在顺序写入区域SeqW-AU1中写入文件1的部分数据文件1a(步骤S46和S47)。在该实例中,所有文件数据都基于RU被写入,同时使其与RU边界匹配。
接下来,在目录表项1中创建文件2的文件表项FE2,并且在顺序写入区域SeqW-AU1中写入文件2的部分数据文件2a(步骤S48和S49)。
接下来,主机设备20分析文件系统的格式,并且按顺序发出CMD20“设置盖写区域”+CMD25和CMD20“布置区域”(步骤S50和S51)。因此,CMD25将目录表项2新近分配为盖写区域。
然后,在目录表项2中创建文件3的文件表项FE3(步骤S52),并且在顺序写入区域SeqW-AU1中写入文件3的部分数据文件3a(步骤S53)。
接下来,在顺序写入区域SeqW-AU1中写入文件1的后续数据文件1b(步骤S54)。
在顺序写入区域SeqW-AU1中写入文件3的后续数据文件3b(步骤S55)。
在顺序写入区域SeqW-AU1中写入文件1的后续数据文件1c(步骤S56)。
在顺序写入区域SeqW-AU1中写入文件2的后续数据文件2b(步骤S57)。
当顺序写入区域SeqW-AU1被填满以达到其容量时,从顺序区域中排除区域SeqW-AU1。
然后,主机设备20发出CMD20“设置顺序写入AU”。存储设备11基于该命令,在NAND闪存18中新分配顺序写入区域SeqW-AU2(步骤S58)。
接下来,在顺序写入区域SeqW-AU2中写入文件1的后续数据文件1d(步骤S59)。步骤S59的第一CMD25表示区域SeqW-AU2的起始地址,并且从该处写入数据文件1d。将该逻辑地址(从外部存取的地址)分配给顺序写入区域SeqW-AU2。
根据上述实施例,可以使用CMD20的参数“设置顺序写入AU”、“设置盖写区域”、“设置数据区域的顶部”和“布置区域”指定顺序写入区域和盖写区域,并且可以在这些区域中写入数据。
此外,可以在初始化时将部分地写入的AU分配为顺序写入区域。由于此原因,可以使用AU中的空闲区域,并且可以改进AU利用效率。
(文件创建的另一个实例)
图14将图3中所示的文件创建的实例表示为命令序列。
参考图14,步骤S61、S62和S63与图13中的步骤S41、S42和S43相同。初始化存储设备11,指定通过所述格式指定的数据区域的起始地址,并且指定顺序写入区域SeqW-AU。
接下来,主机设备20发出CMD20“设置盖写区域”+CMD18、CMD20“设置盖写区域”+CMD18和CMD20“布置区域”,并且将已经创建的目录表项1和目录表项2指定为盖写区域(步骤S64、S65和S66)。
然后,在目录表项1中写入文件1的文件表项FE1(步骤S67),并且在顺序写入区域SeqW-AU中写入文件1的部分数据文件1a(步骤S68)。
然后在目录表项1中写入文件表项FE2和FE3(步骤S69和S70),并且在顺序写入区域SeqW-AU中写入文件2和文件3(步骤S70)。因为在写入文件2和文件3时不需要性能PW,所以以小于RU的大小写入数据。
接下来,为了至少在性能PW下写入后续数据,在文件3之后的区域中写入用作填充内容的虚拟数据一直到RU边界(步骤S73)。但是,填充并不始终是必需处理。存储设备11可以被配置为通过分析两个存储器写入命令的地址和数据长度,自动执行填充。存储设备11可以自动从文件4的写入地址开始顺序写入处理。
然后在目录表项2中写入文件表项FE4(步骤S74),并且在顺序写入区域SeqW-AU中写入文件4(步骤S75)。
接下来,在顺序写入区域SeqW-AU中写入文件1的后续数据文件1b(步骤S76)。为了确定文件系统上的文件1的数据,执行FAT更新(步骤S77)。在FAT更新中,第一写入指示更新FAT,第二写入指示更新位图,并且第三写入指示更新文件表项FE1。参考图14,当写入包括文件表项FE1的512字节数据时,更新文件表项FE1。
(视频等级的性能信息)
图15示出视频等级的新定义的性能信息(VG4、VG6、VG10、VG30)和视频等级的AU大小信息。
视频等级的AU大小由4MB×2n×3m(n=0、1、2、…、6;m=0、1、2)的组合表示。为了允许主机设备容易地管理区域,4MB被用作基本单位,并且AU大小由其倍数指定。NAND闪存18在一个存储单元中存储2位数据,或者在一个存储单元中存储3位数据。不仅存在具有二维结构的存储单元,而且还存在具有三维结构的存储单元(幂n、m)。由于此原因,上述表达可以涵盖必需的AU大小。
(如果保持电源,则也保存状态)
在该实施例中,在断电模式或休眠模式下保存已设置的顺序写入区域或盖写区域的信息。
由于此原因,当设备从断电模式或休眠模式返回时,可以再次使用紧接保持断电模式或休眠模式之前指定的区域信息和区域。
(现有速度等级命令的转换)
在该实施例中,扩展CMD20,从而定义“设置顺序写入AU”、“设置盖写区域”、“设置数据区域的顶部”和“布置区域”的新功能。因为新功能包括常规功能,所以已接收现有速度等级命令的存储设备可以将其功能转换成新功能。
即,实现CMD20的新功能的存储设备11针对现有命令“开始记录”、“更新DIR”和“更新CI”实施转换程序,并且可以在接收现有速度等级命令时执行处理,同时维持兼容性。
例如,当存储设备11接收到控制命令“开始记录”时,该控制命令的管理与“设置顺序写入AU”相同。然后通过之后的序列分配另一个顺序写入区域。存储设备11确认数据被写入,一直到顺序写入区域的结尾,用于该顺序写入区域的写入命令的写入是要基于RU执行的写入,同时使其与写入边界匹配。如果下一个写入命令指示要基于RU从另一个AU的开头执行写入,同时使其与写入边界匹配,则将新写入的用户区域分配为顺序写入区域。
在接收到指示文件系统位置的控制命令“更新DIR”时,存储设备11通过后续写入命令的地址分配盖写区域,将大小包括要由写入命令写入的区域的一个区域分配为盖写区域,并且如果该区域已经分配为盖写区域,则维持该分配。
在接收到指示要在记录流数据期间写入CI数据一部分的位置的控制命令“更新CI”时,存储设备11将具有被预测写入CI数据的特定大小并且包括要通过写入命令写入的区域的大小(512字节)的一个区域分配为盖写区域,并且如果该区域已经分配为盖写区域,则维持该分配。
实施上述转换程序,以便在接收到现有速度等级命令时,存储设备可以将其功能转换成新功能。
尽管描述了某些实施例,但这些实施例仅通过实例的方式提供,并且它们并非旨在限制本发明的范围。实际上,可以以各种其它形式体现在此描述的新颖实施例;此外,可以对在此描述的实施例的形式进行各种省略、替换和更改而不偏离本发明的精神。所附权利要求及其等同物旨在覆盖落入本发明的精神和范围内的这些形式和修改。
工业实用性
本发明的实施例例如用于存储卡。

Claims (13)

1.一种存储设备,包括:
非易失性半导体存储器,其具有多个物理存储区域,所述多个物理存储区域包括可在外部存取的用户区域并且被分成多个管理单元;以及
控制单元,其被配置为控制所述非易失性半导体存储器,
其中所述控制单元接收具有用于指定顺序写入区域的第一参数的控制命令以及读取命令或写入命令,将所述读取命令或所述写入命令的地址所表示的管理单元分配为所述顺序写入区域,以及通过判断用于存取所述用户区域的存储器存取命令的地址是否指示在大小等于所述管理单元的所述顺序写入区域中的存取来更改存储器存取控制,
其中将管理单元分成多个记录单元,所述存储器存取控制将控制繁忙时间以使平均写入性能高于性能指标,所述性能指标指示到所述顺序写入区域的最小平均写入性能,条件是针对所述顺序写入区域的所述写入命令的地址是不导致盖写的地址,所述写入命令的数据长度等于一个或多个记录单元并且数据位置在记录单元边界上,并且如果不满足所述条件,则所述存储器存取控制可以指示不满足所述性能指标的繁忙时间。
2.根据权利要求1的存储设备,
其中所述控制单元在所述管理单元中设置一个从所述读取命令的地址位置或从紧接所述写入命令写入的数据的位置到所述管理单元的结尾的区域,作为其中可以写入下一数据的区域,并且如果存储在在所述读取命令或所述写入命令指定的地址之前的区域中的数据存在,则保留所述数据。
3.根据权利要求1的存储设备,
还包括寄存器,其被配置为保存所述性能指标和管理单元的大小,其中可以在外部读出所述寄存器。
4.根据权利要求1的存储设备,
其中所述控制单元接收具有用于指定盖写区域的第二参数的控制命令以及所述读取命令或所述写入命令,将起始位置由所述读取命令或所述写入命令的所述地址表示的管理单元的一部分或全部分配为所述盖写区域,以及通过针对用于存取所述用户区域的所述存储器存取命令判断所述存储器存取命令的所述地址是否指示在所述盖写区域中的存取来更改所述存储器存取控制。
5.根据权利要求4的存储设备,
其中所述盖写区域的大小由以下之一确定:所述控制命令的第三参数,或者由所述读取命令或所述写入命令存取的数据区域的大小。
6.根据权利要求4的存储设备,
其中所述控制单元将在未分配的区域中写入时的最大繁忙时间设置为长于在指定的盖写区域或顺序写入区域中写入时的最大繁忙时间,并且执行所述存储器存取控制以指示不同的繁忙时间,以便能够使在所述未分配的区域中写入时的平均繁忙时间长于在所述指定的盖写区域或顺序写入区域中写入时的平均繁忙时间。
7.根据权利要求6的存储设备,
其中当维护所述存储设备的电源时,保存所述指定的顺序写入区域和盖写区域的分配信息。
8.根据权利要求7的存储设备,
其中可以分配数量不多于预定值的多个盖写区域,并且如果指定数量多于所述预定值的盖写区域,则将数量等于所述预定值的最新盖写区域分配为所述盖写区域。
9.根据权利要求4的存储设备,
其中所述控制单元接收具有用于指定文件系统的数据区域的第四参数的控制命令以及其地址指示所述文件系统的所述数据区域的起始地址的读取命令,并且基于所述读取命令的所述地址,将所述用户区域分配为盖写区域。
10.根据权利要求4的存储设备,
其中所述控制命令具有用于指定第一顺序写入区域的第五参数,以及
所述控制单元作为具有所述第一参数的所述控制命令来处理具有所述第五参数的所述控制命令。
11.根据权利要求10的存储设备,
其中当所述写入命令的写入指示数据长度等于一个或多个记录单元并且所述数据位置在所述记录单元边界上,写入目的地指示一直写入到所分配的顺序写入区域的结尾,以及下一个写入命令指示要从另一管理单元的开头执行写入并且所述写入命令的数据长度等于一个或多个记录单元且所述数据位置在所述记录单元边界上时,所述控制单元将新写入的用户区域分配为所述顺序写入区域。
12.根据权利要求10的存储设备,
其中在接收到指示文件系统的目录表项的位置的控制命令时,所述控制单元通过所述控制命令之后的所述写入命令的地址来确定所述盖写区域的起始位置,将大小包括要由所述写入命令写入的区域的一个区域分配为所述盖写区域,并且如果该区域已经被分配为所述盖写区域,则维持所述分配。
13.根据权利要求10的存储设备,
其中在接收到指示要在记录流数据期间写入除所述流数据之外的一部分小数据的位置的控制命令时,所述控制单元通过所述控制命令之后的所述写入命令的地址来确定所述盖写区域的起始位置,将大小包括要由所述写入命令写入的区域的一个区域分配为所述盖写区域,并且如果该区域已经被分配为所述盖写区域,则维持所述分配。
CN201380056820.6A 2012-10-30 2013-09-10 存储设备和主机设备 Active CN104798063B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2012-238849 2012-10-30
JP2012238849 2012-10-30
JP2013-166804 2013-08-09
JP2013166804A JP5976608B2 (ja) 2012-10-30 2013-08-09 メモリデバイス
PCT/JP2013/074959 WO2014069115A1 (en) 2012-10-30 2013-09-10 Memory device and host device

Publications (2)

Publication Number Publication Date
CN104798063A CN104798063A (zh) 2015-07-22
CN104798063B true CN104798063B (zh) 2019-01-11

Family

ID=49474661

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380056820.6A Active CN104798063B (zh) 2012-10-30 2013-09-10 存储设备和主机设备

Country Status (7)

Country Link
US (5) US9983794B2 (zh)
EP (2) EP3518112B1 (zh)
JP (1) JP5976608B2 (zh)
KR (1) KR101674335B1 (zh)
CN (1) CN104798063B (zh)
TW (1) TWI512463B (zh)
WO (1) WO2014069115A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3021208B1 (en) * 2014-11-14 2019-01-09 Dot Hill Systems Corporation Method and apparatus for processing fast asynchronous streams
CN105306282B (zh) * 2015-12-07 2019-09-24 联想(北京)有限公司 设备配置方法和设备配置装置
US10140055B2 (en) * 2015-12-21 2018-11-27 Memory Technologies Llc Ensuring that memory device actions are valid using reference values
JP2018022275A (ja) 2016-08-02 2018-02-08 東芝メモリ株式会社 半導体記憶装置
KR20180032391A (ko) * 2016-09-22 2018-03-30 에스케이하이닉스 주식회사 반도체 메모리 장치
CN108008908B (zh) * 2016-10-31 2020-08-07 比亚迪股份有限公司 一种管控sd卡上数据的方法和装置
JP6889566B2 (ja) * 2017-02-13 2021-06-18 キヤノン株式会社 記録装置およびその制御方法
KR102446733B1 (ko) * 2017-11-30 2022-09-23 삼성전자주식회사 스토리지 장치 및 스토리지 장치를 포함하는 전자 장치
TWI792073B (zh) * 2017-12-28 2023-02-11 慧榮科技股份有限公司 快閃記憶體控制器、安全數位卡、使用於快閃記憶體控制器的方法以及存取安全數位卡的主機
US10866746B2 (en) * 2017-12-28 2020-12-15 Silicon Motion Inc. Memory addressing methods and associated controller, memory device and host
JP2019191909A (ja) * 2018-04-25 2019-10-31 東芝メモリ株式会社 メモリシステムおよび制御方法
JP7252821B2 (ja) * 2019-04-17 2023-04-05 キヤノン株式会社 記録装置、記録方法、プログラム、及びメモリカード
US20230409470A1 (en) * 2022-06-15 2023-12-21 Western Digital Technologies, Inc. Scratchpad cache for gaming and iot hosts

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070043924A1 (en) * 2004-06-21 2007-02-22 Takafumi Ito Method for controlling memory card and method for controlling nonvolatile semiconductor memory
CN101019098A (zh) * 2004-09-15 2007-08-15 株式会社东芝 格式化非易失性半导体存储器的文件存储装置、主机设备、方法,以及在非易失性半导体存储器中写数据的方法
CN102193872A (zh) * 2010-03-17 2011-09-21 株式会社东芝 存储系统
CN102246151A (zh) * 2008-12-11 2011-11-16 株式会社东芝 存储器装置及其控制方法
CN102687125A (zh) * 2010-01-27 2012-09-19 株式会社东芝 存储器设备和主机设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006040264A (ja) * 2004-06-21 2006-02-09 Toshiba Corp メモリカードの制御方法および不揮発性半導体メモリの制御方法
JP4874588B2 (ja) 2004-07-12 2012-02-15 株式会社東芝 記憶デバイスおよびホスト機器
US7613874B2 (en) * 2004-10-14 2009-11-03 Lg Electronics, Inc. Recording medium, and a method and apparatus for overwriting data in the same
JP4817836B2 (ja) 2004-12-27 2011-11-16 株式会社東芝 カードおよびホスト機器
US7685389B2 (en) * 2005-10-21 2010-03-23 International Business Machines Corporation Apparatus, system, and method for setting protection states of protected partitions in storage media
KR100866625B1 (ko) * 2007-02-26 2008-11-03 삼성전자주식회사 Mmc 또는 sd 프로토콜을 사용하는 다수의 메모리장치들을 인터페이스하는 방법 및 시스템
JP5066209B2 (ja) 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
JP5728292B2 (ja) 2011-02-04 2015-06-03 株式会社東芝 メモリデバイス及びホストシステム
KR101856506B1 (ko) * 2011-09-22 2018-05-11 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 쓰기 방법
JP5832963B2 (ja) 2012-06-29 2015-12-16 株式会社東芝 メモリシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070043924A1 (en) * 2004-06-21 2007-02-22 Takafumi Ito Method for controlling memory card and method for controlling nonvolatile semiconductor memory
CN101019098A (zh) * 2004-09-15 2007-08-15 株式会社东芝 格式化非易失性半导体存储器的文件存储装置、主机设备、方法,以及在非易失性半导体存储器中写数据的方法
CN102246151A (zh) * 2008-12-11 2011-11-16 株式会社东芝 存储器装置及其控制方法
CN102687125A (zh) * 2010-01-27 2012-09-19 株式会社东芝 存储器设备和主机设备
CN102193872A (zh) * 2010-03-17 2011-09-21 株式会社东芝 存储系统

Also Published As

Publication number Publication date
EP3518112A1 (en) 2019-07-31
TW201416858A (zh) 2014-05-01
US20230161475A1 (en) 2023-05-25
CN104798063A (zh) 2015-07-22
KR101674335B1 (ko) 2016-11-08
JP5976608B2 (ja) 2016-08-23
US20190286334A1 (en) 2019-09-19
US20180232155A1 (en) 2018-08-16
EP2915051A1 (en) 2015-09-09
US10976930B2 (en) 2021-04-13
US10353586B2 (en) 2019-07-16
TWI512463B (zh) 2015-12-11
US9983794B2 (en) 2018-05-29
EP2915051B1 (en) 2019-11-27
JP2014112351A (ja) 2014-06-19
US20210191621A1 (en) 2021-06-24
US20150234598A1 (en) 2015-08-20
EP3518112B1 (en) 2021-11-17
KR20150063125A (ko) 2015-06-08
WO2014069115A1 (en) 2014-05-08
US11573701B2 (en) 2023-02-07

Similar Documents

Publication Publication Date Title
CN104798063B (zh) 存储设备和主机设备
CN104423894B (zh) 数据储存装置以及快闪存储器控制方法
US11704239B2 (en) Garbage collection method for storage medium, storage medium, and program product
KR100951107B1 (ko) 최적의 성능을 위한 파일 관리 방법
KR101038167B1 (ko) 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
JP6076506B2 (ja) ストレージ装置
CN106681842A (zh) 一种多进程系统中共享内存的管理方法及装置
CN104571954B (zh) 一种数据存储方法及装置
CN106662985A (zh) 主机管理的非易失性存储器
CN106610903A (zh) 层级化存储器系统、存储器控制器和去重及存储器层级化方法
US20160004459A1 (en) Storage system and storage control method
KR20180086120A (ko) 테일 레이턴시를 인식하는 포어그라운드 가비지 컬렉션 알고리즘
CN110321065A (zh) 存储装置及计算机系统
CN111538680A (zh) 基于逻辑饱和度选择用于垃圾收集的大容量存储装置流
KR20170052441A (ko) 중앙 집중 분산 시스템 및 그것의 동작 방법
CN108572932A (zh) 多平面nvm命令融合方法与装置
CN108170789A (zh) 一种基于分布式文件系统的分级存储方法以及相关装置
CN109388616A (zh) 一种智能卡文件系统的管理方法
CN108628759A (zh) 乱序执行nvm命令的方法与装置
CN105786724B (zh) 空间管理方法及装置
CN102169418B (zh) 一种资源受限设备和数据访问方法
CN107943422A (zh) 一种高速存储介质数据管理方法、系统及装置
CN111176571A (zh) 一种本地对象的管理方法、装置、设备及介质
CN109614046A (zh) 一种用以连续快速产生闪存接口讯号序列的方法
US10810132B1 (en) Object based extent mapping for flash memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20170719

Address after: Tokyo, Japan

Applicant after: TOSHIBA MEMORY Corp.

Address before: Tokyo, Japan

Applicant before: Toshiba Corp.

GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Tokyo, Japan

Patentee after: Kaixia Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: TOSHIBA MEMORY Corp.

Address after: Tokyo, Japan

Patentee after: TOSHIBA MEMORY Corp.

Address before: Tokyo, Japan

Patentee before: Japanese businessman Panjaya Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211022

Address after: Tokyo, Japan

Patentee after: Japanese businessman Panjaya Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: TOSHIBA MEMORY Corp.