CN102687125A - 存储器设备和主机设备 - Google Patents
存储器设备和主机设备 Download PDFInfo
- Publication number
- CN102687125A CN102687125A CN2011800051243A CN201180005124A CN102687125A CN 102687125 A CN102687125 A CN 102687125A CN 2011800051243 A CN2011800051243 A CN 2011800051243A CN 201180005124 A CN201180005124 A CN 201180005124A CN 102687125 A CN102687125 A CN 102687125A
- Authority
- CN
- China
- Prior art keywords
- data
- write
- command
- order
- stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10009—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves
- G06K7/10297—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves arrangements for handling protocols designed for non-contact record carriers such as RFIDs NFCs, e.g. ISO/IEC 14443 and 18092
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10544—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
- G06K7/10821—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
- G06K7/10861—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing of data fields affixed to objects or articles, e.g. coded labels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
根据一个实施例,控制存储器的控制器接收数据条目并且具有随机写入模式和顺序写入模式,当接收到开始命令时,控制器转换到顺序写入模式。处于顺序写入模式的控制器认出控制命令,并且通过控制命令或逻辑地址而识别部分地由数据条目形成的数据流中的一个。控制器还准备包括用于相应数据流的存储区域的空闲的单位区域,且按与数据条目的地址相同的次序将数据条目写入对应的单位区域中的连续存储区域中。当控制器接收到结束命令时,其对用于对应的数据流的单位区域进行结束处理。当完成了对所有数据流的结束处理或检测到随机写入请求时,处于顺序写入模式的控制器转换到随机写入模式。
Description
相关申请的交叉引用
本申请基于且要求2010年1月27日提交的序号为2010-015950和2010年8月23日提交的序号为2010-186481的在先日本专利申请的优先权的权益;通过引用将上述两个日本专利申请的全部内容并入到本文中。
技术领域
本文中描述的实施例涉及存储器设备和主机设备。
背景技术
目前,使用其中利用非易失性半导体存储器(例如闪速存储器)的存储器设备作为用于音乐数据和视频数据的记录介质。
附图说明
图1示例了根据本发明的第一实施例的主机设备和存储器卡(memorycard)的功能块;
图2示例了第一实施例的流控制器;
图3示例了存储器卡中的寄存器;
图4示例了存储器卡的存储器空间的配置;
图5示例了由主机认出的存储区域和存储器卡的存储区域;
图6示例了存储器卡中的地址比较单元;
图7示例了第一实施例的命令的实例;
图8示例了在第一实施例中顺序写入控制命令以及随后发送或接收的信号;
图9示例了随机写入模式下存储器卡和主机设备的一种状态;
图10示例了在图9的状态之后的状态;
图11示例了在图10的状态之后的状态;
图12示例了在第一实施例中从主机发送到存储器卡的命令;
图13示例了在顺序写入模式下存储器卡和主机的一种状态;
图14示例了在图13的状态之后的状态;
图15示例了在图14的状态之后的状态;
图16示例了在图15的状态之后的状态;
图17示例了在图16的状态之后的状态;
图18示例了在图17的状态之后的状态;
图19示例了在图18的状态之后的状态;
图20示例了在图19的状态之后的状态;
图21示例了在图20的状态之后的状态;
图22示例了在图21的状态之后的状态;
图23示例了在图22的状态之后的状态;
图24示例了在图23的状态之后的状态;
图25示例了在图24的状态之后的状态;
图26示例了在图25的状态之后的状态;
图27示例了在图26的状态之后的状态;
图28示例了在图27的状态之后的状态;
图29示例了提供四个AU缓冲区(buffer)的状态;
图30示例了在数据读取期间存储器卡和主机设备的一种状态;
图31示例了在图30的状态之后的状态;
图32示例了在图31的状态之后的状态;
图33示例了在本发明的第二实施例中在数据读取期间存储器卡和主机的一种状态;
图34示例了在图33的状态之后的状态;
图35示例了根据本发明的第三实施例的命令的实例;
图36示例了第三实施例中顺序写入控制命令以及随后发送或接收的信号;
图37示例了第三实施例中顺序写入控制命令以及随后发送或接收的信号;
图38示例了第三实施例中顺序写入控制命令以及随后发送或接收的信号;
图39示例了第三实施例的存储器卡的模式状态转变;
图40示例了第三实施例的存储器卡中的寄存器的实例;以及
图41示例了第三实施例中从主机发送到存储器卡的命令。
具体实施方式
通常,对存储器进行控制的控制器被并入到存储器设备中。控制器提供指令以在闪速存储器的未写入的存储区域中写入逻辑地址被分配给的数据。从存储器设备所***的主机的文件***请求该写入指令。控制器还管理由文件***分配给数据的逻辑地址与存储该数据的闪速存储器的存储区域的位置之间的关系。将NAND闪速存储器引用作为在存储器设备中使用的闪速存储器的典型实例。
用户可能想要通过主机设备了解存储器设备的性能。性能的实例包括存储器设备的记录速度、记录所需要的时间以及可记录的时间。例如,KOKAI公开号为2006-178923的日本专利申请公开了预测这样的性能的技术。
作为增加的存储器容量、改善的存储器设备性能以及用户想要记录的各种内容的结果,用户以多样化的方式来使用存储器设备。例如,存在并行记录诸如两个电视节目的两个移动影像的需求,或存在在拍摄移动影像的同时拍摄静态影像的需求。然而,由于不能在闪速存储器中盖写(overwrite)数据,所以可能需要复制(copy)数据。数据复制要求较长时间,因此涉及数据复制的写入速率较低。因此,不能响应于上述要求而实时地在存储器设备中并行地写入多段(a plurality of pieces)文件数据。
一般而言,根据一个实施例,公开了一种存储器设备。所述存储器设备包括非易失性半导体存储器和控制器。所述非易失性半导体存储器包括存储区域。所述控制器接收写入数据条目(item),具有随机写入模式和顺序写入模式,且在接收到开始命令时转换到所述顺序写入模式。处于所述顺序写入模式的所述控制器认出(recognize)控制命令、并且通过所述控制命令或逻辑地址而识别部分地由一个写入数据条目形成的一个数据流。处于所述顺序写入模式的所述控制器还准备空闲的单位区域,所述空闲的单位区域包括用于相应数据流的预定数目的存储区域,且处于所述顺序写入模式的所述控制器按与所述写入数据条目的地址相同的次序将数据条目写入对应的单位区域中的连续存储区域中。当处于所述顺序写入模式的所述控制器接收到结束命令时,其对用于一个对应的数据流的单位区域进行结束处理。当完成了对所有数据流的结束处理或检测到随机写入请求时,处于所述顺序写入模式的所述控制器转换到所述随机写入模式。
下面将通过参考附图来描述本发明的实施例。在下面的说明中,用相同的参考标号标明具有基本上相同的功能和配置的部件、并且仅当需要时才提供重叠的说明。参考标号的最后的字母用于区分彼此相似的部件,并且当不需要对部件进行彼此区分时,省略字母。
下面的实施例示例了为了体现本发明的技术构思的装置和方法,其并不对下面的实例的部件的材料、形状、结构和排列进行限制。在本发明的技术构思中,可以在权利要求中进行各种改变。
可以通过硬件、计算机软件或其组合来实现每个功能块。因此,每个块通常是从功能的观点来描述的,以被限定为硬件、计算机软件和其组合中的任意一个。以硬件还是软件的形式来执行功能取决于具体实施例或对整个***施加的设计限制。所属领域技术人员可以认识到,本发明中包括每个具体实施例中的各种技术的功能以及实现功能的任何技术。
下面,将存储器卡(特别是SD卡)描述作为根据本发明的实施例的存储器设备的实例。然而,在本发明中包括以下存储器和包含对存储器进行控制的控制器的任何存储器设备。
(第一实施例)
[1]配置
下面将参考图1到6来描述根据本发明的第一实施例的存储器卡的配置。图1示例了第一实施例的主机设备1和存储器卡2的主要功能块。主机设备(下文中称为主机)1包括微处理器单元(MPU)11、软件12、文件***13、流控制器14、SD接口15、只读存储器(ROM)16和随机存取存储器(RAM)17。
MPU 11控制整个主机1的操作。当将电力供应给主机1时,在RAM17上读出在ROM 16中存储的固件(即,控制程序(或命令))。MPU 11根据固件(命令)而执行预定处理。软件12和文件***13位于ROM 16或RAM 17上,并且软件12和文件***13各自包括程序,所述程序包含命令以使MPU 11执行预定处理。软件12包括应用和操作***,并且用户提供在存储器卡2中写入数据的指令以及通过软件12从存储器卡2读取数据的指令。软件12提供向文件***13写入数据或从文件***13读取数据的指令。文件***13是管理在所关注的存储介质中记录的文件数据的机构。文件***13在存储介质的存储区域中记录管理信息且使用所述管理信息来管理文件数据。
SD接口15包括主机1与存储器卡2之间的接口所需要的硬件和软件。主机1通过SD接口15而与存储器卡2进行通信。SD接口15定义在主机1与存储器卡2之间进行通信所需的各种协议。SD接口15包括可以由存储器卡2的SD接口41所认出的各种命令集。SD接口15还包括可被连接到SD接口41的硬件配置(引脚(pin)的设置和引脚的数目)。
流控制器14管理从主机1发送到存储器卡2的数据流。如图2所示,流控制器14包括缓冲区(buffer)21a到21d、用于延续信息(continuationinformation,CI)的缓冲区22a到22d、复用器23以及流控制单元24。流控制单元24至少包括速率确定单元25。缓冲区21a到21d的数目等于能够由主机1和存储器卡2所支持的并行写入的数据流的数目。图1中的缓冲区的数目是四,下文中将结合该四个缓冲区实例来给出说明。缓冲区21a到21d中的每一个被提供用于每个流,且在缓冲区21a到21d中临时保持流1至4的数据条目。将延续信息(CI)临时保持在用于CI的缓冲区22中。CI是指关于用于每个流的写入数据的大小相等分段(segment)的耦合顺序(coupling sequence)的信息。在被分割为用于每个流的预定大小的每个写入数据条目中管理CI。在每个流中管理IC,因此用于CI的缓冲区22可以在每个流中独立。主机1(例如根据程序的MPU 11)在分割写入数据时根据需要在用于CI的缓冲区22中保持关于被分割的写入数据的IC。
流控制单元24控制流控制器12。速率确定单元25基于关于存储器卡2的性能信息(稍后描述)以及每个流所需的传输速率,确定用于每个流的数据向存储器卡2的传输速率。流控制单元24基于所确定的用于每个流的传输速率和用于CI的缓冲区22的空余容量(empty capacity),控制复用器23。在流控制单元23的控制下,复用器23根据分时(time sharing)原则将缓冲区21和22中的所选的写入数据(写入数据的一部分)以及其它管理数据发送到SD接口15。
存储器卡2包括NAND闪速存储器31以及控制存储器31的控制器32。当存储器卡2连接到主机1时,或当对其中***有存储器卡2的关闭状态的主机1进行供电时,在对存储器卡2初始化之前并且在存储器卡2响应于来自主机1的访问而执行处理之前,将电力供应给存储器卡2。
存储器31以非易失方式存储数据,并且以被称为页的单位读取数据,所述页包括多个存储器基元(memory cell)。例如,存储器31包括NAND闪速存储器。为每个页分配独特的(unique)物理地址。存储器31以包括多个页的被称为物理块(擦除块)的单位擦除数据。可以以物理块为单位分配物理地址。
控制器32管理存储器31的数据存储状态。对存储状态的管理包括管理物理地址的哪个页(或物理块)保持物理地址的哪个数据的关系以及物理地址的哪个页(或物理块)处于擦除状态(在哪个页中没有保持数据或保持无效数据)。
控制器32包括SD接口41、MPU 42、RAM 44、ROM 43、NAND接口45和地址比较单元46。
SD接口41包括存储器卡2与主机1之间的接口所需要的硬件和软件。与SD接口15相似,SD接口41定义能够使存储器卡2和主机1进行彼此通信的各种协议,并且SD接口41包括各种命令集和硬件配置(引脚的设置和引脚的数目)。存储器卡2(例如,控制器32)通过SD接口41而进行与主机1的通信。SD接口41包括寄存器47。
MPU 42控制整个存储器卡2的操作。当将电力供应给存储器卡2时,将ROM 16中存储的固件(即,控制程序(或命令))读出在RAM 17上。MPU 42根据该固件(命令)执行预定处理。MPU 42根据控制程序而在RAM 44上产生各种表(稍后描述)并且响应于从主机1接收的命令而执行对存储器31的预定处理。
在ROM 43中存储由MPU 42执行的控制程序。将RAM 44用作MPU42的工作区域,并且在RAM 44中临时存储控制程序和各种表。例如,所述表包括转换表(逻辑-物理表),其描述特定页的物理地址,该特定页存储有特定逻辑地址通过文件***13而被分配给的数据。NAND接口45执行控制器32与存储器31之间的接口处理。
例如,存储器31中的存储区域包括根据所保持的数据的类型分类的***数据区域、机密数据区域、受保护的数据区域以及用户数据区域。***数据区域是指控制器32为了保持其操作所需的数据而在存储器31中确保的区域。在主机1不能访问的机密数据区域中保持在加密中使用的密钥信息和在认证中使用的机密数据。将重要数据和安全数据存储在受保护的数据区域中。主机1能够访问且使用用户数据区域,且例如,在用户数据区域中存储诸如AV内容文件和影像数据的用户数据段。在下面的说明中,当在存储器31的存储器空间的意义上使用存储器31的描述时,该描述将意味着用户数据区域。控制器32确保用户数据区域的一部分,以保持其操作所需的控制数据(例如,逻辑-物理表)。
如图3所示,寄存器47包括各种寄存器,例如卡状态寄存器、CID、RCA、DSR、CSD、SCR以及OCR。在寄存器中存储错误信息、存储器卡2的个体号码、相对卡地址、存储器卡2的总线驱动电压、存储器卡2的特性参数值、数据安排以及在存储器卡2的操作范围电压中存在限制的情况下的操作电压。
在寄存器47(例如,CSD)中存储存储器卡2的等级(class)、复制数据所需的时间以及AU尺寸。通过属于特定等级的存储器卡所保证的最低写入速率来限定等级。根据等级来限定最高写入速率。因此,主机1可以从寄存器47读出指示AU尺寸的数据以在管理存储器卡2时使用该信息,并且可以从寄存器47读出指示等级的数据以获知存储器卡2的最大写入性能。此外,例如,KOKAI公开号为2006-178923的日本专利申请中描述的性能信息可被存储在CSD中。
图4示例了存储器31的存储器空间的配置。如图4所示,存储器31包括常规存储器区域48和页缓冲区49。存储器区域48包括多个物理块BLK。每个物理块BLK包括多个页PG。每个页PG包括在多个串联连接的存储器基元晶体管中存储的比特队列(a series of bits)。
每个存储器基元包括具有所谓的层叠栅极结构的金属氧化物半导体场效应晶体管(MOSFET)。在每个基元晶体管中,阈值电压根据在浮栅晶体管中累积的电子的数目而变化,且根据阈值电压的差异来存储信息。可以将存储器31配置为使得基元晶体管采用不同阈值电压的两种或更多种状态,即,在存储器基元中存储多个值(多个比特)。
将属于相同行的基元晶体管的控制栅电极连接到相同的字线。在属于相同列的串联连接的基元晶体管的两端设置选择栅极晶体管。将选择栅极晶体管中的一个连接到位线。以串联连接的基元晶体管的集合为单位写入和读取数据,并且包括基元晶体管的集合的存储区域对应于一个页。
例如,每个页PG具有2112个字节,并且每个块BLK具有128个页。以块BLK为单位擦除数据。在页缓冲区49中临时保持来自存储器31的数据和去往存储器31的数据。
如图5所示且如上所述,存储器31以页PG为单位写入和读取数据,且以块BLK为单位擦除数据。另一方面,执行实时记录的应用软件12以记录单位(RU)为单位管理数据。RU对应于通过一个多块写入命令写入数据的单位。在写入命令之后,应用软件12向存储器卡2发送独特的逻辑地址被分配到的数据。控制器32将写入数据写入适当的页中。RU的尺寸是页容量的大小的整数倍。因此,在存储器卡2中,将具有RU尺寸的写入数据写入具有连续物理地址的多个页中。由于每个RU对应于由文件***管理的独特的逻辑地址,因此对RU的数据分配变为与对数据的逻辑地址分配同义。文件***13使用表管理被分割的数据条目之间的连接关系,并且使用该连接关系来连接被分割的数据条目以恢复原始数据。使用转换表(逻辑-物理表),控制器32管理逻辑地址与其中存储有该逻辑地址的数据的页的地址(物理地址)之间的关联。
应用软件12使用分配单位(AU)的概念来执行管理,所述分配单位包括属于预定范围的预定数目的连续RU。控制器32可以通过参考数据的逻辑地址的高位比特(higher-digit bit)而认出AU的边界。AU的尺寸是块(物理块)的容量尺寸的整数倍。因此,RU与自然数个页的尺寸相匹配,并且AU与自然数个块的尺寸相匹配。因此,通过将RU和AU作为存储器卡2中的数据读取/写入的单位来进行下面的说明。即,在关于存储器卡2的描述中使用的RU这个词意味着具有与RU相同尺寸的多个连续页,并且在关于存储器卡2的描述中使用的AU这个词意味着具有与AU相同尺寸的多个连续块。具体地,将应用软件12分配给RU的数据写入存储器卡2的特定RU中,并且存储器卡2使用表来管理应用软件12分配给数据的RU(逻辑地址)以及其中存储有该写入数据的存储器31中的RU。下文中,由应用软件12认出的AU和存储器31的AU可分别被称为逻辑AU和物理AU。
如图6所示,地址比较单元46包括寄存器写入控制器51、用于流的AU地址寄存器52a到52d、用于流的DIR地址寄存器53a到53d、用于流的AU地址寄存器的比较器54a到54d、以及用于流的DIR地址寄存器的比较器55a到55d。在图6的实例中,主机1和存储器卡2支持四个流。
寄存器写入控制器51通过SD接口41而接收从主机1发出的命令。AU地址寄存器52a到52d、DIR地址寄存器53a到53d以及地址比较器54a到54d和55a到55d从SD接口41接收写入数据条目应当被存储于其中的写入命令的RU地址(写入(RU)地址)。在AU地址寄存器52a到52d以及DIR地址寄存器53a到53d中,由寄存器写入控制器51指定的寄存器保持该写入RU地址或该写入RU地址所属于的AU地址。如上所述,可以从RU地址来指定RU地址的AU地址。寄存器52和53包括指示其中存储的地址是否有效的标志(flag)。
地址比较器54a到54d和55a到55d被连接,并且分别对应于地址寄存器52a到52d和53a到53d。地址比较器54和55将写入数据的AU地址与对应的地址寄存器52和53中保持的地址(或AU地址)进行比较。作为比较的结果,当被比较的地址相匹配时,地址比较器54a到54d和55a到55d分别输出所确定的(asserted)CA_S1、CA_S2、CA_S3、CA_S4、CD_S1、CD_S2、CD_S3以及CD_S4。稍后详细地描述地址比较单元46的具体操作。
[2]操作
将参考图7到32来描述主机和存储器卡的操作。
SD接口15和41被配置为能够认出图7中示例的命令。图7示意性地示例了第一实施例的顺序写入控制命令。如图7所示,顺序写入控制命令(CMD 20)至少包括索引部索引、操作指定部SCC、流号码部SN以及循环冗余检验(CRC)部CRC。索引部具有特定的比特行列(line of bits)以指定所述命令是顺序写入控制命令。操作指定部分SCC具有特定的比特序列以指定由顺序写入控制命令所承担(assume)的操作类型。顺序写入控制命令作为用以根据操作指定部SCC中的参数(argument)执行写入(记录)开始、目录项(directory entry)(DIR)生成(creation)、新AU写入、写入(记录)结束以及CI更新中的一个的命令。流号码部SN包括指定流1到4中的哪一个对应于顺序写入控制命令的参数。稍后描述每个命令的含义。CRC部具有CRC码。
图8示例了顺序写入控制命令以及随后在主机与存储器卡之间发送和接收的信号。如图8所示,在SD接口15和41中至少定义命令线(commandline)(CMD)和数据线(data line)(DAT[0])。当主机1在命令线上发送顺序写入控制命令时,存储器卡2在命令线上发送响应。当顺序写入控制命令被不能认出该命令的存储器卡接收时,存储器卡不发送响应。在发送响应时,存储器卡在数据线上将忙碌信号发送给主机1。根据顺序写入控制命令的功能来预先确定存储器卡在忙碌状态下可以保持的最大时间t忙碌(最大),并且图7示例了顺序写入控制命令的功能。
在忙碌状态解除之后,主机1在命令线上将写入命令(CMD 24和25)发送到存储器卡2。原则上,主机1在顺序写入控制命令之后发出写入命令。稍后将描述原因。存储器卡2在命令线上发送对写入命令的响应。然后,主机1在数据线上将写入数据发送到存储器卡2。
下面将描述主机1在存储器卡2中的数据写入。
[2-1]随机写入模式
通常,主机1处于随机写入模式。首先,将参考图9到图11来描述随机写入模式。图9到图11各自示例了随机写入模式下存储器卡2和主机1的一种状态。
在存储器卡2中,在AU 1的第一到第五RU和第八RU中分别存储数据条目1到5和8。没有向第六和第七RU分配数据。此时,主机1希望在AU 1的第三到第五RU中写入数据20到数据22(这对应于盖写)。然而,由于存储器31不能通过盖写数据来直接地执行更新指令,存储器31执行下面的操作。如图10所示,存储器卡2(控制器32)准备用于存储器卡2的内部处理的AU缓冲区。由在存储器卡2中包括的Au中的尚未与由主机1认出的AU相关联的AU来实现该AU缓冲区。存储器卡2将数据1和数据2分别复制到AU缓冲区中的与AU 1的未更新的RU相同的第一和第二RU。可以提供专用于随机写入模式的AU缓冲区,或者可以再使用(reuse)在顺序写入模式下确保的用于每个流的AU缓冲区,如稍后将描述的。这是因为,在顺序写入模式中使用的AU缓冲区没有在其它模式中的应用。
如图11所示,存储器卡2将数据20到数据22写入AU缓冲区1中的与AU 1的要被更新的RU相同的第三到第五RU中。然后,存储器卡2将AU1的数据8复制到AU缓冲区中的与AU 1的未更新的RU相同的第八RU。然后,存储器卡2执行对AU缓冲区1的固定处理。固定处理是指将AU缓冲区设定为适当的AU,即,逻辑-物理表被更新以指示AU缓冲区现在在文件***13所认出的AU中存储数据。同时,在固定处理之前已经存储了逻辑AU 1的数据的物理AU将被视为具有无效的数据。旧的物理AU的数据在预定时间被擦除而成为新的已擦除的AU。
响应于不需要更新的指令,相似地执行与更新请求相同的处理。即,假设在图9中擦除第三到第五RU且其它RU与图9的RU相同的实例,那么将数据1和数据2复制到AU缓冲区的第一和第二RU,将数据20到数据22写入第三到第五RU,将数据8复制到第八RU,随后执行固定处理。
在随机写入模式中,响应于更新或写入请求,RU中的除了要被更新的或写入的RU之外的数据条目通过向AU缓冲区的复制而被复制到AU。
[2-2]顺序写入模式
存储器卡2具有顺序写入模式。在顺序写入模式中,存储器卡2与随机写入模式不同地写入数据。在顺序写入模式中,存储器卡2总是将数据写入已擦除的AU中,使得数据的逻辑地址的序列与存储数据的RU的地址的序列相匹配,即,存储器卡2顺序地写入数据。
当接收到具有指定了在操作指定部SCCA中的数据写入的开始的参数的顺序写入控制命令时,存储器卡2转换为顺序写入模式。存储器卡2被配置为能够在顺序写入模式下在存储器卡中写入多个流。将参考图12到28来描述顺序写入模式。图12示例了按时间系列从主机发送到存储器卡2的命令。
在下面的说明中,将通过顺序写入控制命令的操作指定部SCC而被指定特定功能的顺序写入控制命令称为具有这种功能的命令。即,将指示写入开始、DIR生成、新AU写入、写入结束以及CI更新的顺序写入控制命令分别称为写入开始命令、DIR生成命令、新AU写入命令、写入结束命令以及CI更新命令。
如图13所示,在顺序写入模式中,主机1请求在AU1中写入用于流1的数据条目A1到A6。为此,主机1准备流1的写入开始(步骤S1)。具体地,主机1发出DIR生成命令(生成DIR)。由于作为第一个流的写入,DIR生成命令具有指示流1的参数(SN=1)。当接收到这个命令时,存储器卡2在其中确保用于流1的DIR的逻辑地址。
然后,主机1向存储器卡2发送写入命令和写入数据(这两者一起被图示为命令“写入DIR”)。前一个(last)DIR生成命令将写入命令指定为用于写入DIR,因此将该写入命令称为DIR写入命令。响应于DIR生成命令,将DIR数据写入在存储器卡2中准备的专用AU缓冲区中,并且对该AU缓冲区执行固定处理(结束处理)。
主机1可以认出写入命令要写入的数据用于哪个流。另一方面,由于写入命令不包括指定流号码的参数,存储器卡2不能从写入命令认出流号码。因此,顺序写入控制命令在用于新流的写入命令之前发出,并且由顺序写入控制命令清楚地指示由写入命令指向的流号码。基于流号码,存储器卡2可以获知写入命令要写入的数据用于哪个流。具体地,根据下面的方法使用地址比较单元46(图6)来执行处理。
当接收到顺序写入控制命令时,寄存器写入控制器51能够从顺序写入命令认出由随后的写入命令所指向的流。寄存器写入控制器51还能够从顺序写入控制命令的操作指定部中的参数认出由该顺序写入命令所请求的操作。当写入命令是DIR更新命令或写入开始命令(假设为写入开始命令的顺序写入控制命令)时,该写入命令是DIR写入命令或用以写入用于流的数据的命令(数据写入命令)。当接收到DIR写入命令时,寄存器写入控制器51基于对应的流而存储DIR地址寄存器52a到52d的一个中的DIR写入命令的写入地址的逻辑地址,并且将其标志设定为“有效”。相似地,当接收到数据写入命令时,寄存器写入控制器51基于对应的流而存储AU地址寄存器53a到53d的一个中的数据写入命令的写入地址的AU地址,并且将其标志设定为“有效”。每次地址比较单元51在顺序写入模式下接收到新的写入命令时,地址比较单元51将该写入命令中的写入地址或AU地址与在寄存器52和52中存储的地址进行比较。通过比较,存储器卡2能够指定由写入命令指向的流。当在图12的说明中发生比较时,描述详细的比较。
参考图12继续进行说明。步骤S2写入用于流1的数据。首先,主机1向存储器卡2发送具有指定流1的参数的写入开始命令(开始Rec)。当接收到该写入开始命令时,存储器卡2转换为顺序写入模式。在顺序写入模式下,存储器卡2准备专用于每个流的未写入的AU缓冲区,并且从所准备的AU缓冲区的最低地址的RU朝向更高位地址的RU顺序地写入所述写入数据条目。因此,当接收到该写入开始命令时,存储器卡2在其中准备用于流1的AU缓冲区1,如图14所示。由于所准备的AU缓冲区1在上一随机写入模式中的再使用,数据可以保留在所准备的AU缓冲区1中。在这种情况下,存储器卡2对AU缓冲区1执行固定处理,该固定处理包括在AU缓冲区1中有效数据的复制。在停用(disable)之前的固定处理的旧AU缓冲区1之后,存储器卡2将新擦除的AU用作在以后的处理中的新AU缓冲区1。当在固定处理后准备AU缓冲区时,忙碌时间长于在这两种模式下不使用AU缓冲区的情况或者长于用于流2到4的数据条目的记录开始的准备的情况。
然后,主机1发出写入命令(写入RU)。由于该写入命令紧接在写入开始命令之后,所以该写入命令用于写入实际数据(流数据)。存储器卡2从之前的写入开始命令的认出该数据写入命令用于流1。因此,寄存器写入控制器51(图6)在用于流1的AU地址寄存器52a中存储该数据写入命令的地址的AU地址,并且寄存器写入控制器51将其标志设定为“有效”。地址比较器54和55将写入地址的AU地址与在对应的地址寄存器52和53中的有效地址进行比较。在通常操作中,对于任意流,DIR写入地址所属于的AU地址与数据写入地址的AU地址不匹配。DIR和具有相同AU的数据意味着不能执行顺序写入且主机请求非法的(illegal)处理,于是存储器卡2终止处理。
在数据写入命令之后,主机1顺序地将用于流1的写入数据发送到存储器卡。注意,在附图中整体图示写入数据和写入命令。为了持续写入用于相同流的数据而不中断,可以在写入数据条目的序列的开始处仅发出写入命令。如图15所示,当接收到写入数据时,存储器卡2从AU缓冲区1的未写入的最低地址的RU朝向更高位地址的RU顺序地写入该写入数据。
如图12和16所示,主机1在流1的写入期间请求在AU2中写入用于流2的数据B1。为此,主机1准备流2的写入开始(步骤S3)。具体地,主机1发出用于流2的DIR生成命令。当接收到该命令时,存储器卡2在用于流2的DIR地址寄存器53b中存储在该命令中包括的写入(逻辑)地址,并且将其标志设定为“有效”。当接收到DIR写入命令时,存储器卡2在其中确保用于流2的DIR的AU。
使用从存储器卡2读出的等级信息,流控制单元24判断是否能够以软件(应用)12所请求的比特速率(bit rate)来与流1一起写入流2。当除了当前被写入的流1之外不接受流2的写入时,例如,主机1不写入流2,并且将上述内容通知给用户。主机1在接收到写入新流的请求时确定可接受多少个流。然而,由另一限制来固定可接受的流的数目的上限。即,通过主机1和存储器卡2所支持的缓冲区21和22的数目以及寄存器52和53的数目来确定可接受流的数目。下面的说明假设写入流2的请求是可接受的。
在DIR生成命令之后,主机1向存储器卡2发送用于流2的DIR写入命令和DIR数据。所有的地址比较器54和55将用于流2的DIR写入命令中的逻辑地址与地址寄存器52和53中的有效地址进行比较。对于正常操作,不应当发生匹配。存储器卡2在AU缓冲区或所分派的地址的AU中写入用于流2的DIR命令。
如图12和16所示,主机1请求在AU 1中写入用于流1的数据A7(步骤S4)。为此,主机1向存储器卡2发送用于流1的数据A7和数据写入命令。如上所述,由于写入命令仅具有在其参数中的地址信息,没有之前的顺序写入控制命令的单独写入命令不能指示其用于哪个流。为了处理这个问题,存储器卡2使用地址比较单元46来确定该写入命令所对应的流号码。即,地址比较器54和55将写入地址与在对应的寄存器52和53中的地址进行比较。作为比较的结果,地址比较器54a到54d中的存储了与写入地址相匹配的地址的一个地址比较器(在本实例中为比较器54a)将信号CA_S1到CA_S4中的一个(在本实例中为信号CA_S1)输出到MPU 42。通过该信号,存储器卡2获知对应于保持与写入地址(或写入地址的AU地址)相匹配的地址的地址寄存器52的流(在本实例中为流1)是由写入命令所指向的流。相应地,控制器32在用于流1的AU缓冲区1的未写入的最低地址的第七RU中写入数据A7。
如图12和17所示的,主机1继续用于流2的数据的写入(步骤S5)。为此,主机1发出用于流2的写入控制命令(SN=2)。当接收到该写入开始命令时,存储器卡2在存储器卡2中准备用于流2的缓冲区2。准备与由主机1和存储器卡2所支持的可并行写入的流的数目相同数目的用于流的AU缓冲区。然后,主机1向存储器卡2发送用于流2的数据B1和数据写入命令。该数据写入命令直接跟随清楚地指示流号码的数据写入开始命令。因此,存储器卡2认出该数据写入命令用于写入用于流2的数据,并且寄存器写入控制46在用于流2的AU地址寄存器52b中存储该写入地址的AU地址。在地址比较单元46中没有发生AU地址的匹配。然后,存储器卡2在AU缓冲区2的未写入的最低地址的第一RU中写入数据B1。
在数据B1的写入开始之后,用于流1和2的时间写入被并行处理。因此,主机1根据分时原则将用于流1的数据和用于流2的数据发送到存储器卡2。对于分时,由流控制器14(图2)的流控制单元24来确定用于流1和2的数据的比特速率。复用器23根据基于该确定的控制而顺序地将数据条目发送到存储器卡2。流控制单元24根据速率确定单元25来执行每个比特速率的确定。例如,在初始化存储器卡2时,速率确定单元25从存储器卡2读出等级信息和关于AU尺寸的信息,并存储这些信息。速率确定单元25使用根据应用(应用软件12)为每个流请求的比特速率以及等级信息(最低写入速度)来确定用于将每个流的数据从主机1发送到存储器卡2的比特速率。即,将用于各个流的数据量和发送的顺序确定为使得可以实现用于由应用请求的每个流的比特速率。由于需要这种确定,流控制单元24通常由软件来实现。可替换地,可由硬件来形成流控制单元24。
如图12和18所示,主机1请求在AU 1中写入用于流1的数据A8(步骤S6)。为此,主机1将数据写入命令和数据A8发送到存储器卡2。如上面参照图6所描述的,地址比较单元46比较写入地址的AU地址以认出数据A8用于流1。因此,如图18所示,存储器卡2在AU缓冲区1的未写入的最低地址的第八RU中写入数据A8。
由于数据A8的写入,在AU 1的所有RU中写入数据条目。为了继续用于流1的数据的写入,主机1请求产生用于流1的新AU缓冲区(步骤S7)。为此,如图12和19所示,主机1将用于流1的新AU写入命令(新AU)发送到存储器卡2。当接收到新AU写入命令时,存储器卡2对用于流1的当前AU缓冲区(AU缓冲区1)执行固定处理。结果,逻辑-物理表更新为指示AU缓冲区1现在对应于逻辑AU 1。然后,存储器卡2确保用于流1的新AU缓冲区(AU缓冲区3)。寄存器写入控制器51(图6)清除在用于流-1的AU地址寄存器52a中存储的AU地址和其标志。
然后,主机1请求在AU 3中写入用于流1的数据A9。为此,主机1将数据写入命令和数据A9发送到存储器卡2。通过之前的新AU写入命令,存储器卡2认出该数据写入命令用于写入用于流1的数据。因此,寄存器写入控制51(图6)在用于流1的AU地址寄存器52a中存储写入地址的AU地址,并且将其标志设定为“有效”。尽管地址比较器54和55执行比较,但不应当发生匹配。然后,如图20所示,存储器卡2在AU缓冲区3的未写入的最低地址的第一RU中写入数据A9。
然后,主机1在AU 3中写入用于流1的数据条目A10到A15,并且主机1在AU 2中写入用于流2的数据条目B2到B5。为此,速率确定单元25确定例如首先将用于流2的数据条目B2到B5发送到存储器卡2。基于该确定,主机1将数据写入命令和数据条目B2到B5发送到存储器卡2,如图12和21所示(步骤S8)。如通过上面参考图6所描述的,地址比较单元46比较写入地址的AU地址,从而认出数据条目B2到B5用于流2。因此,存储器卡2在AU缓冲区2的未写入的最低地址的第二RU中以及随后的第三RU到第五RU中分别写入数据条目B2到B5。
如图12和22中所示,主机1将数据写入命令和数据条目A10到A15发送到存储器卡2。如上面参照图6所描述的,地址比较单元46比较写入地址的AU地址,从而认出数据条目A10到A15用于流1。因此,存储器卡2在AU缓冲区3的未写入的最低地址的第二RU中以及随后的第三RU到第七RU中分别写入数据条目A10到A15。由此,将数据条目分配给用于对应流的AU缓冲区,并且为每个流维持顺序数据写入。因此,写入和读取数据所需的时间短于随机写入的情况。
如上所述,在用于CI的缓冲区22中保持CI。然而,CI有时会变得过大而不能根据缓冲区尺寸和流长度容纳在用于CI的缓冲区中。在这种情况下,在检测到流控制器14的用于CI的缓冲区被填满(fill)之后,主机1请求在存储器卡2中的为CI确保的缓冲区中写入当前CI的至少一部分(步骤S9)。为此,主机1将用于特定流(在本实例中为流1)的CI更新命令发送到存储器卡2。然后,主机1将写入命令和CI数据发送到存储器卡2。通过之前的CI更新命令,存储器卡2认出该写入命令用于写入CI数据(CI写入命令)。地址比较单元46如通常一样将写入地址(或写入地址的AU地址)与寄存器52和53中的地址进行比较;然而,除了所要求的非法序列,不应当出现匹配。如果出现匹配,则存储器卡2将向主机1发送错误信号并且由于主机1请求执行非法处理而终止处理。注意,不在地址寄存器中存储CI写入命令中的地址的AU地址。
当接收到CI数据时,存储器卡2在用于CI的缓冲区中写入CI数据。由于在顺序写入模式下还根据分时原则写入CI数据,则CI数据需要具有特定的尺寸或更小的尺寸。因此,即使当CI数据的写入没有完成,CI数据的写入也被中断。在另一时隙(time slot)由下一CI更新命令来写入剩余的CI数据,或在顺序写入模式结束之后写入剩余的CI数据。
如图12和23所示,主机1请求在AU 2中写入用于流2的数据B6。为此,主机1将数据写入命令和数据B6发送到存储器卡2。如上面参照图6所描述的,比较地址单元46比较写入地址的AU地址,从而认出数据B6用于流2。因此,存储器卡2在AU缓冲区2的未写入的最低地址的第六RU中写入数据B6。
假设数据B6是用于流2的最后数据,那么主机1将用于流2的写入结束命令(结束Rec)发送到存储器卡2,如图12和24所示(步骤S10)。当接收到写入结束命令时,与新AU写入命令相似地,存储器卡2对这样的AU缓冲区(AU缓冲区2)执行固定处理,该AU缓冲区当前对于指定的流是有效的。结果,逻辑-物理表被更新为指示AU缓冲区2现在对应于逻辑AU 2。在固定处理中,即使将数据分配给比在逻辑AU 2中最后使用的RU的位置更高的RU(在本实例中为第七和第八RU),该数据也不被复制到AU缓冲区(AU缓冲区2)。响应于写入结束命令,寄存器写入控制器51清除在用于相应的流(在本实施例中为流2)的地址寄存器中存储的AU地址和其标志。
在写入结束命令之后,主机1将用于由写入结束命令所指定的流(流2)的CI数据和CI更新命令发送到存储器卡2。然而,如上所述,由于在顺序写入模式下分时框架中写入了CI数据,所以CI数据的写入可能是未完成的。
然后,主机1请求在AU 3中写入用于流1的数据A16。为此,主机1将数据写入命令和数据A16发送到存储器卡2。如上面参照图6所描述的,地址比较单元46比较写入地址的AU地址,从而认出数据A16用于流1。因此,存储器卡2在AU缓冲区3的未写入的最低地址的第八RU中写入数据A16。
在AU缓冲区3的所有RU中写入了数据条目,因此主机1请求生成用于流1的新AU缓冲区(步骤S11)。为此,如图12和25所示,主机1将用于流1的新AU写入命令发送到存储器卡2。当接收到该新AU写入命令时,存储器卡2对用于流1的当前AU缓冲区(AU缓冲区3)执行固定处理,以准备用于流1的新AU缓冲区(AU缓冲区4)。此外,寄存器写入控制器51(图6)清除在用于流1的AU地址寄存器中存储的地址和其标志。
如图12和26所示,主机1请求在AU 4中写入用于流1的数据条目A17到A19。为此,主机1将数据写入命令和数据条目A17到A19发送到存储器卡2。通过该数据写入命令之前的新AU写入命令或比较地址单元46的比较,存储器卡2认出数据条目A17到A19用于流1。因此,存储器卡2在AU缓冲区4的未写入的最低地址的第一RU中和随后的第二和第三RU中分别写入数据条目A17至A19。
如图12所示,主机1请求更新FAT数据(步骤S12)。为此,主机1向存储器卡2发送写入命令(更新FAT)和用于FAT更新的FAT数据(步骤S12)。如所属领域技术人员所公知的,在数据写入期间的特定时机(timing)执行FAT更新,并且该FAT更新用于更新在该FAT更新之前已被写入的数据的最新FAT信息。存储器卡2支持顺序写入模式下的FAT更新,并且被配置为能够维持顺序写入而不受FAT更新的影响。例如,存储器卡2在专用于包括FAT的管理数据的AU缓冲区中的从最低地址的RU到更高地址的RU的RU中顺序地写入FAT数据条目。注意,在地址寄存器52和53中不存储FAT写入命令中的地址。因此,通常,在这种写入命令中的地址不应当与地址寄存器52和53的地址中的任意一个相匹配。如果发生匹配,则存储器卡2向主机1发送错误信号。
如图12所示,主机1请求在用于存储器卡2的CI的AU缓冲区中写入用于流2的CI数据的至少一部分(步骤S13)。为此,主机1向存储器卡2发送用于流2的CI更新命令、CI写入命令和CI数据。
如图12和27所示,主机1请求在AU 4中写入用于流1的数据条目A20到A22。为此,主机1将数据写入命令和数据条目A20到A22发送到存储器卡2。如上面参照图6所描述的,地址比较单元46比较写入地址的AU地址,从而认出数据条目A20到A22用于流1。因此,存储器卡2在AU缓冲区4的未写入的最低地址的第四RU中和随后的第五和第六RU中写入数据条目A20至A22。
假设数据A22是用于流1的最后数据,那么主机1将用于流1的写入结束命令发送到存储器卡2,如图12和28所示(步骤S14)。响应于该写入结束命令,存储器卡2对用于流1的当前AU缓冲区4执行固定处理。结果,逻辑-物理表被更新为指示AU缓冲区4现在对应于逻辑AU 4。
在接收到用于最后的流的写入结束命令之后,存储器卡2转换为随机写入模式。在向随机写入模式的转换之后,主机1将用于流1的CI写入命令和CI数据发送到存储器卡2,如图12所示。由于存储器卡2现在处于随机写入模式,对顺序写入模式下的写入时间的限制不会施加到存储器卡2。因此,当接收到CI写入命令和CI数据时,存储器卡2完成用于流1的CI的写入。在随机写入模式中发出该CI写入命令,因此不需要跟随顺序写入控制命令。
不需要为了在用于唯一的流的数据的写入之后将存储器卡2转换为随机写入模式而发出写入结束命令。即,在接收到用以请求诸如CI写入命令的随机写入的请求命令而没有顺序写入控制命令时,存储器卡2认出顺序写入命令的结束。与写入结束命令的接收相似地,存储器卡2对AU缓冲区执行固定处理。然而,该情况与写入结束命令的接收的不同之处在于,在未被写入的RU中的数据被复制以被维持。当指定随机写入模式而没有写入结束命令时,可以不清除用于其记录没有完成的流的地址寄存器52中的数据及其标志。在这种情况下,当接收到用于对应的流的写入结束命令时,存储器卡2清除地址52中的数据及其标志。
如图12所示,主机12将用于流2的CI写入命令和CI数据发送到存储器卡2。当接收到该命令和数据时,存储器卡2完成用于流2的CI的写入。
图12到图28的说明处理了其中记录两个流的实例。然而,通过与两个流的情况相似的原理,可以实现三个或四个流的记录。当并行写入四个流时,提供四个AU缓冲区,如图29所示。
下面将描述主机1和存储器卡2在尚未描述的状况下的操作。
当存在正被写入的两个或更多的流并且接收到与随机写入相对应的且指定写入地址的写入命令时,存储器卡2可被配置为将错误信号发送到主机1。由于多个流的记录应当以结束命令完成,这会导致由主机的1的非法控制所形成的请求。当主机1请求对处于顺序写入模式的存储器卡2的错误(非法)控制时,存储器卡2转换为随机写入模式。这种非法控制的实例包括用于顺序写入的请求和用于除了RU的整数倍的写入之外的写入的请求。注意,读取命令对写入序列没有影响。
当写入地址指示根目录区域时,在地址寄存器52和53中不存储该写入地址。因此,作为由地址比较单元46执行的比较的结果,指示在地址比较器54和55之间发生匹配的信号通常不被输出。因此,不在用于流记录的AU缓冲区中而在另一缓冲区(例如,专用于根目录的缓冲区)中写入用于根目录区域的写入数据。
将参考图30到图32来描述数据读取。图30到32顺序地示例了在数据读取期间存储器卡2和主机1的一种状态。
由于用户(主机1)可以访问固定处理的AU,在固定处理之后从AU读出的数据与常规存储器卡相类似。另一方面,可以在存储器卡2中正在记录用于流的数据的同时请求用于该流的记录数据的读取。即使在这种情况下,存储器卡2也被配置为能够在固定处理之前从AU读取数据。
如图30所示,在存储器31的AU(物理AU)1的第一到第八RU中分别存储被分配给属于逻辑地址组(逻辑AU)AU 1的逻辑地址的数据条目1至8。此时,假设主机1请求存储器卡2写入与逻辑AU 1的第一到第五RU相对应的逻辑地址被分配给的流数据条目11到15。结果,如图31所示,从用于该流(例如流1)的AU缓冲区1的RU 1顺序地写入数据条目11到15。此时,物理AU 1的固定处理尚未完成。如果主机1请求将逻辑AU 1的第一到第五RU读取到存储器卡2,则存储器卡2从AU缓冲区1读出与这些逻辑地址(对应于逻辑AU 1的第一到第五RU)对应的数据条目11到15。由于尚未执行固定处理,所以与逻辑AU 1的第一到第五RU对应的逻辑地址被分配给AU 1的数据条目1至5,但是存储器卡2不读出数据条目1到5。另一方面,如果主机1请求将逻辑AU 1的第六到第八RU读取到存储器卡2,则存储器卡2读出与逻辑AU 1的第六到第八RU的逻辑地址相对应的数据条目6至8。
与上述说明相似地执行固定处理,并且存储器卡2将逻辑-物理表更新为指示AU缓冲区1现在对应于逻辑AU 1,如图32所示。然后在特定时机擦除旧的物理AU 1。可以在固定处理之前通过上述控制来读出AU数据。
当在固定处理之前发生某种错误时,则AU缓冲区1变为无效。因此,不能读出AU缓冲区1中的数据。然而,逻辑AU 1和物理AU 1的关联仍然有效,因此可以恢复在写入开始之前的状态(如图30所示)。
如上所述,第一实施例的主机和存储器卡被配置为能够认出包括指定多个流中的一个的信息的顺序写入命令,且可以为每个流指定记录的开始或结束。当接收到开始命令时,存储器卡转换为顺序写入模式。在顺序写入模式中,按写入数据的逻辑地址的次序,将写入数据条目顺序地写入在包括未写入的RU的AU缓冲区中。由于为每个流专用地设置AU缓冲区,因此在对应的AU缓冲区的每个流中按逻辑地址的次序来排列写入数据条目。由此,存储器卡可指定写入数据的流以在专用于每个流的AU缓冲区中顺序地写入数据,从而第一实施例的主机和存储器卡能够并行地记录多个流。
(第二实施例)
在第一实施例中,在顺序写入模式中准备AU缓冲区。另一方面,在第二实施例中,在不用AU缓冲区的情况下执行顺序写入。
图33和34顺序地示例了第二实施例的存储器卡2和主机1在数据读取期间的一种状态。
如图33所示,在存储器31的物理AU 1的第一到第八RU中分别存储被分配有属于逻辑AU 1的逻辑地址的数据条目1至8。在这种状态下,主机1请求写入被分配有与逻辑AU 1的第一到第五RU相对应的逻辑地址的流数据条目11到15。为了实现该请求,主机1向存储器卡2发出新AU写入命令。
当接收到新AU写入命令时,存储器卡2准备新的已擦除的AU(例如,AU 2),如图34所示。存储器卡2还将逻辑-物理表更新为指示AU 2现在对应于逻辑AU 1。在AU 2中写入数据条目11到15。由于逻辑-物理表的更新已经结束,存储器卡2响应于来自主机1的读取数据条目11到15的请求,从AU 2读取数据条目11到15。响应于读取被分配有与逻辑AU 1的剩余第六到第八RU相对应的逻辑地址的数据条目的请求,存储器卡2读取不定数据(indefinite data)。替代不定数据,可以读出没有意义的数据或具有特定的固定值的数据。
在不使用专用缓冲区的第二实施例中,可以响应于数据写入请求而擦除当前对应的AU(在本实例中为AU 1),以在该擦除的AU中写入数据。然而,NAND闪速存储器通常被配置为使写入次数对于每个AU平均化(称为磨损均化)。因此,如上所述,准备新的AU(在本实例中为AU 2)。注意,如果当在替换后的(replaced)AU中正在写入数据时发生错误,则在没有内部缓冲区的情况下的数据写入不能恢复写入开始之前的状态(如图33所示)。
除了上述特征,第二实施例与第一实施例相同。
如上所述,与第一实施例类似,第二实施例的主机和存储器卡被配置为能够认出包括指定多个流中的一个的信息的顺序写入命令,并且可以使用这种配置为每个流指定记录的开始或结束。因此,获得与第一实施例相同的优点。
(第三实施例)
在第三实施例中,顺序写入模式包括单流模式和多流模式。此外,尽管在第一实施例中主机1必须在顺序写入控制命令之后发出写入命令,但在第三实施例中放松了该限制。
图35示意性地示例了第三实施例的顺序写入控制命令。在第三实施例中,SD接口15和41被配置为能够认出图35中示例的命令。第三实施例的顺序写入命令(CMD 20)与第一实施例的顺序写入命令的区别仅在于流号码部SN中的参数的类型。如图35中所示,与第一实施例相似,在流号码部中定义指定顺序写入控制命令指向流1到4中的哪一个的参数。此外,在流号码部中定义指令向单流模式的转换的参数。例如,当参数是“0000b(二进制表示)”时,指示单流模式,而当参数多于“0000b”时,指示多流模式且指定流号码。
图36示例了顺序写入控制命令以及随后在主机与存储器卡之间发送和接收的信号。如图36所示,当主机1在命令线上发送顺序写入控制命令时,存储器卡2在命令线上发送响应。当由不能认出该命令的存储器卡接收到该顺序写入控制命令时,该存储器卡不发送响应。存储器卡2在数据线上向主机1发送忙碌信号和响应。存储器卡在忙碌状态下可以保持的时间t忙碌(最大)与第一实施例的情况相似,并且根据顺序写入控制命令的功能的类型来预先确定时间t忙碌(最大)。图37和38示例了主机1和存储器卡2通过单向信号线连接的情况。信号线DI将信号从主机1发送到存储器卡2,并且信号线DO将信号从存储器卡2发送到主机1。图37和38分别对应于SPI和UHS-II。在图37中,通过信号电平(level)来指示忙碌时间段。例如,由紧接在响应之后的低电平来指示忙碌。在图38中,将指示忙碌的包(packet)发送到主机。主机1通过观察忙碌包来认出忙碌时间。图37和38的其它特征与图36的情况相同。如所描述的,可通过除了命令线之外的线来发送命令。
图39示例了第三实施例的存储器卡的模式状态转换。如图39所示,存储器卡2可以在随机写入模式、单流模式或多流模式下操作。例如,单流模式对应于在KOKAI序列号为2010-140268的日本专利申请中描述的一个模式。即,当转换为单流模式时,存储器卡2准备仅包括未写入的RU的AU缓冲区,按照写入数据条目的逻辑地址的顺序来在AU缓冲区的RU中写入所述写入数据条目,并且随后以预定时机执行固定处理。可替换地,与第二实施例相似,在不使用AU缓冲区的情况下,可以在新擦除的AU的固定处理之前,将逻辑-物理表反映(reflect)为指示旧AU被替换,随后在新替换的AU中进行写入。在单流模式下,顺序写入控制命令中的写入开始命令充当用于准备多流数据记录的命令,并且将随后的写入命令认出为请求顺序写入的命令。使用CI更新命令以写入与顺序写入期间的数据不同的CI数据,并且顺序写入的数据与CI数据不同。即,即使在单流模式下,当用于CI的缓冲区22被填满时,连续地发出CI更新命令和CI写入命令。
多流模式基本上对应于第一实施例的顺序写入模式。然而,多流模式与第一实施例的顺序写入模式不同之处在于以下点。在第三实施例中,写入开始命令和写入结束命令之后不需要跟随有顺序写入控制命令中的写入命令。例如,写入开始命令和写入结束命令之后可以跟随有生成目录或文件信息的处理。该限制的这种释放使多流模式与第一实施例的顺序写入模式不同。在第三实施例中,在写入用于第一流的数据时发出的写入开始命令仅用作多流数据记录的准备命令。即,写入开始命令指定流号码,因此其指示向多流模式转换。稍后详细描述多流模式下的操作。
当接收到指示向单流模式(SN=0)转换的顺序写入控制命令时,处于随机存取模式的存储器卡2转换为单流模式。当接收到随请求非顺序写入控制的序列发出的命令时,处于单流模式的存储器卡2转换到随机存取模式。这种序列包括用于不连续的逻辑地址的写入的请求。在从单流模式向随机写入模式转换期间,保持在将不被写入的部分中存储的数据。
当接收到指示向多流模式(SN>0)转换的顺序写入控制命令时,处于随机存取模式的存储器卡2转换为多流模式。当接收到用于最后的流的写入结束命令或被解释为请求随机写入的写入命令或如在第一实施例中描述的随请求错误的(非法)控制的序列的命令时,处于多流模式的存储器卡2转换为随机写入模式。
在从多流模式向随机写入模式的转换中,仅为下述区域复制必要的数据,在响应于新AU写入命令而生成的AU中没有指示对所述区域进行写入。必要数据的复制依赖于存储器卡的实现方式。例如,如果对AU进行分段以对其进行管理,则更新逻辑AU的分段中的数据可能要求在逻辑AU的剩余分段中的数据的复制。
寄存器47保持指示存储器卡2所处于的模式的信息。每次进行模式转换时,存储器卡2更新寄存器47的模式信息。如图40所示,还在卡状态寄存器或制造商独特的寄存器中保持模式信息,其中由存储器卡的制造商为独特的应用提供所述制造商独特的寄存器。例如,通过两个比特来表示模式信息,并且00、01和11分别意味着随机模式、单流模式和多流模式。例如,将模式信息处理(treat)为状态信息、并且主机1利用用于读取状态信息的现有命令从存储器卡2读取模式信息。除非主机1发出在正常序列中的命令,存储器卡2才会转换到随机模式。因此,可以使用模式信息来确认在主机1的调试期间主机1是否错误地执行控制。
下面将描述多流模式下的操作。图41示例了按时间序列从主机1发送到存储器卡2的命令。如图13所示,主机1请求写入用于初始流(流1)的数据。为此,如图41所示,主机1发出写入开始命令(步骤S21)。写入开始命令具有指示流1的参数,因此指示存储器卡2转换到多流模式。
然后,如图41所示,主机1生成用于流1的目录信息。为此,主机1执行第一实施例的步骤S1。即,主机1向存储器卡2顺序地发送用于流1的DIR生成命令、DIR写入命令和DIR数据。存储器卡2在AU缓冲区或所指示的地址的AU中写入用于流1的DIR数据。
如图41所示,主机1请求在AU 1中写入用于流1的数据条目A1到A6。为此,主机1发出新AU写入命令(步骤S22)。响应于该新AU写入命令而由存储器卡2执行的操作与第一实施例的情况相类似。该新AU写入命令指定流1。因此,如图14所示的并且与步骤S7相似,当接收到新的AU写入命令时,存储器卡2确保用于流1的AU缓冲区(AU缓冲区1),且寄存器写入控制器51(图6)清除用于流1的AU地址寄存器52a中存储的AU地址和其标志。在第三实施例中,在发出用于流的写入开始命令之后,在发出用于该流的数据的最初写入命令之前,发出用于改流的新AU写入命令。
然后,主机1向存储器卡2发送数据写入命令和用于流1的数据条目A1到A6(步骤S23)。步骤S23与来自第一实施例的步骤2中的写入开始命令的处理相同。即,通过之前的新AU写入命令,存储器卡2认出该数据写入命令用于流1的数据。寄存器写入控制器46保持写入地址的AU地址。然后,如图15所示,存储器卡2在AU缓冲区1的第一到第六RU中写入数据条目A1到A6。
如图16和41所示,在流1的写入期间,主机1请求在AU2中写入用于流2的数据B1。为了准备数据B1的写入,主机1执行第一实施例的步骤S3,以生成和写入用于流2的DIR。于是,如图17所示,主机1执行步骤S4,以在AU缓冲区1写入数据A7。
如图17和41所示,主机1继续用于流2的数据的写入。为此,与步骤S5相似地,主机1发出用于流2的写入开始命令(步骤S24)。然后,在发出了指定流2的新AU写入命令之后,主机1发出初始写入命令以写入用于新流(流2)的数据(步骤S25)。当接收到新AU写入命令时,存储器卡2确保用于流2的AU缓冲区(AU缓冲区2),并且寄存器写入控制器51清除在用于流2的AU地址寄存器52b中存储的AU地址及其标志。
然后,主机1将数据写入命令和用于流2的数据B1发送到存储器卡2(步骤S26)。步骤S26与第一实施例的步骤S5的后半部分中的处理相同。即,通过之前的新AU写入命令,存储器卡2认出该数据写入命令用于流2的数据。寄存器写入控制器46保持写入地址的AU地址。然后,存储器卡2在AU缓冲区2的第一RU中写入数据B1。此后的操作与第一实施例的步骤S6到S9中的那些步骤相同。
为了结束用于流2的数据的写入,主机1将用于流2的写入结束命令发送到存储器卡2,如图41所示(步骤S31)。在步骤S31中执行与第一实施例的步骤S10中的发出写入结束命令的处理相同的处理。即,执行固定处理以及地址寄存器的AU地址及其标志的清除。
在写入结束命令之后,主机1请求更新用于其数据写入已结束的流(流2)的CI数据。如上所述,写入命令不需要紧接在写入结束命令之后。因此,在发出用于流2的CI写入命令之前,主机1向存储器卡2发出用于流2的CI更新命令(步骤S32)。然后,主机1将CI写入命令和CI数据发送到存储器卡2。存储器卡2从之前的CI更新命令认出该写入命令用于写入CI数据并且在用于CI的缓冲区中写入CI数据。
与步骤S10的最后部分相似,在AU缓冲区3中写入用于流1的数据A16(步骤S33)。此后的操作与第一实施例的步骤S11至S15中的那些相同。
在第三实施例中,除了上述特征之外的特征与第一实施例中的情况相同。第二实施例也可被应用到第三实施例。即,在没有内部缓冲区的情况下写入数据。
如上所述,与第一实施例相似地,将第三实施例的主机和存储器设备配置为能够认出包括指定了多个流中的一个的信息的顺序写入命令,并且可以为每个流指定记录的开始和结束。因此,获得与第一实施例相同的优点。
此外,在第三实施例中,在写入开始命令和写入结束命令之后不需要跟随有写入命令。因此,可以以任意所选时机来写入和更新诸如CI更新和DIR更新的管理数据。
虽然已经描述了特定实施例,但这些实施例仅仅以实例的方式给出,并且不旨在限制本发明的范围。实际上,本文中描述的新颖实施例可以以各种其他形式被实施;此外,可以对本文中描述的实施例在形式上做出各种省略、替换和改变而不背离本发明的精神。所附权利要求及其等价物旨在涵盖落入本发明的范围和精神内的这样的形式或修改。
权利要求书(按照条约第19条的修改)
1.一种存储器设备,包括:
非易失性半导体存储器,其包括存储区域;以及
控制器,其接收写入数据条目,具有随机写入模式和顺序写入模式,且在接收到开始命令时转换到所述顺序写入模式,所述写入数据条目中的每一个对应于数据流中的一个,处于所述顺序写入模式的所述控制器:
认出控制命令,
通过所述控制命令或逻辑地址而识别一个写入数据条目所对应于的所述数据流中的一个,
准备空闲的单位区域,所述空闲的单位区域包括用于相应数据流的存储区域中的至少一个,
按与所述写入数据条目的地址相同的次序将写入数据条目写入对应的单位区域中的连续存储区域中,
当接收到结束命令时,对用于一个对应的数据流的单位区域进行结束处理,以及
当完成了对所有数据流的所述结束处理或检测到随机写入请求时,转换到所述随机写入模式。
2.根据权利要求1所述的设备,其中,
所述控制命令包括指定由所述控制命令所承担的指令的信息以及指定部分地由通过跟随所述控制命令的写入命令而写入的数据条目形成的一个数据流的信息,且
所述控制命令作为以下命令中的一个:用于由所述控制命令指定的一个数据流的所述开始命令、用于所指定的数据流的所述结束命令、指示准备用于数据记录的新单位区域的命令以及用于识别除了数据流之外的数据的写入的命令。
3.根据权利要求1所述的设备,其中,
所述控制器包括地址比较单元,
所述地址比较单元包括:
专用于相应数据流的寄存器,其存储由跟随所述控制命令的所述写入命令所指定的一个写入数据条目的目的地地址;以及
对应于相应寄存器的比较器,当由所接收的写入命令指定的目的地地址与在对应的寄存器中存储的目的地地址相匹配时,所述比较器输出信号,且
所述控制器将所接收的写入命令与用于一个这样的数据流的一个单位区域相关联,该数据流与输出所述信号的一个比较器相对应。
4.根据权利要求1所述的设备,其中,
所述单位区域包括在所述存储器中临时准备的缓冲区,
所述缓冲区包括预定数目的空闲存储区域,且
在对所述单位区域的所述结束处理完成之前,从所述设备的外部无法访问所述单位区域。
5.根据权利要求1所述的设备,其中,
所述单位区域包括所述预定数目的空闲存储区域,并且从所述设备的外部可访问所述单位区域。
6.根据权利要求1所述的设备,其中,
所述控制命令包括指定由所述控制命令所承担的指令的信息以及指定由所述控制命令所指向的一个数据流或部分地由通过跟随所述控制命令的写入命令而写入的数据条目形成的一个数据流的信息,且
所述控制命令作为以下命令中的一个:用于由所述控制命令指定的一个数据流的所述开始命令、用于所指定的数据流的所述结束命令、指示准备用于数据记录的新单位区域的命令以及用于识别除了数据流之外的数据的写入的命令。
7.根据权利要求6所述的设备,其中,
所述设备还具有第二顺序模式,在所述第二顺序模式下,按照与所述写入数据条目的逻辑地址相同的次序在所述单位区域的连续存储区域中连续地写入用于一个数据流的所述写入数据条目,且
所述开始命令包括:指示向所述顺序写入模式的转换并指定由所述开始命令所指向的一个数据流的信息,或指示向所述第二顺序写入模式的转换的信息。
8.根据权利要求6所述的设备,其中,
所述控制器包括地址比较单元,
所述地址比较单元包括:
专用于相应数据流的寄存器,其存储由跟随所述控制命令的所述写入命令所指定的一个写入数据条目的目的地地址;以及
对应于相应寄存器的比较器,当由所接收的写入命令指定的目的地地址与在对应的寄存器中存储的目的地地址相匹配时,所述比较器输出信号,且
所述控制器将所接收的写入命令与用于一个这样的数据流的一个单位区域相关联,该数据流与输出所述信号的一个比较器相对应。
9.根据权利要求6所述的设备,其中,
所述单位区域包括在所述存储器中临时准备的缓冲区,
所述缓冲区包括预定数目的空闲存储区域,且
在对所述单位区域的所述结束处理完成之前,从所述设备的外部无法访问所述单位区域。
10.根据权利要求6所述的设备,其中,
所述单位区域包括所述预定数目的空闲存储区域并且从所述设备的外部可访问。
11.一种主机设备,其被配置为在存储器设备中写入数据,所述存储器设备包括非易失性半导体存储器和控制器,所述非易失性半导体存储器包括存储区域,所述控制器控制所述存储器,所述主机设备包括:
软件,其对要在所述存储器中写入的数据进行分割以准备预定尺寸的写入数据条目,所述写入数据条目中的每一个对应于数据流中的一个;以及
接口,其发出开始命令和控制命令,所述开始命令指示所述存储器设备转换到顺序写入模式,在所述顺序写入模式下所述写入数据条目被写入为使得所述存储区域的地址的次序与在所述存储区域中写入的所述写入数据条目的逻辑地址的次序相同,所述控制命令在用以指示一个写入数据条目的写入的写入命令之前发出,且所述控制命令通过所述写入命令而指定要写入的数据条目所对应于的所述数据流中的一个。
12.根据权利要求11所述的设备,还包括流控制器,所述流控制器接收指示由所述存储器设备确保的最低写入速率的性能信息并且包括速率确定单元,所述速率确定单元使用所述性能信息确定用于相应数据流的比特速率以及在对每个流写入性能没有干扰的情况下能够在所述存储器设备中写入的数据流的数目。
13.根据权利要求12所述的设备,其中,
所述流控制器包括专用于相应数据流的数据缓冲区,以保持部分地构成相应数据流的写入数据条目,且
所述流控制器被配置为按分时原则发送所述数据缓冲区中的所述写入数据条目,以在所述存储器设备所支持的比特速率内实现为相应数据流确定的比特速率。
14.根据权利要求11所述的设备,其中,所述接口:
进一步被配置为发出结束命令,所述结束命令指示对用于一个对应的数据流的单位区域执行结束处理,且
通过发出用于所有数据流的所述结束命令或请求随机写入,使所述存储器设备转换为随机写入模式。
15.根据权利要求14所述的设备,其中,
所述控制命令包括指定由所述控制命令所承担的指令的信息以及指定部分地由通过跟随所述控制命令的写入命令而写入的数据条目形成的一个数据流的信息,且
所述控制命令作为以下命令中的一个:用于由所述控制命令指定的一个数据流的所述开始命令、用于所指定的数据流的所述结束命令、指示准备包括预定数目的所述存储区域的新空闲单位区域的命令以及用于识别除了数据流之外的数据的写入的命令。
16.根据权利要求14所述的设备,其中,
所述控制命令包括指定由所述控制命令所承担的指令的信息以及指定由所述控制命令所指向的一个数据流或部分地由通过跟随所述控制命令的写入命令而写入的数据条目形成的一个数据流的信息,且
所述控制命令作为以下命令中的一个:用于由所述控制命令指定的一个数据流的所述开始命令、用于所指定的数据流的所述结束命令、指示准备包括预定数目的所述存储区域的新空闲单位区域的命令以及用于识别除了数据流之外的数据的写入的命令。
17.根据权利要求16所述的设备,其中,
所述接口被配置为在所述顺序写入模式下在发出用以在所述存储器设备中写入部分地构成一个新数据流的写入数据条目的初始写入命令之前,发出指示准备新单位区域的命令。
18.根据权利要求16所述的设备,其中,
所述开始命令包括:指示向所述顺序写入模式的转换并指定由所述开始命令所指向的一个数据流的信息,或指示向第二顺序写入模式的转换的信息,其中在所述第二顺序写入模式下,按照与所述写入数据条目的逻辑地址相同的次序在所述单位区域的连续存储区域中连续地写入用于一个数据流的所述写入数据条目。
Claims (18)
1.一种存储器设备,包括:
非易失性半导体存储器,其包括存储区域;以及
控制器,其接收写入数据条目,具有随机写入模式和顺序写入模式,且在接收到开始命令时转换到所述顺序写入模式,处于所述顺序写入模式的所述控制器:
认出控制命令,
通过所述控制命令或逻辑地址而识别部分地由一个写入数据条目形成的数据流中的一个,
准备空闲的单位区域,所述空闲的单位区域包括用于相应数据流的预定数目的存储区域,
按与所述写入数据条目的地址相同的次序将写入数据条目写入对应的单位区域中的连续存储区域中,
当接收到结束命令时,对用于一个对应的数据流的单位区域进行结束处理,以及
当完成了对所有数据流的所述结束处理或检测到随机写入请求时,转换到所述随机写入模式。
2.根据权利要求1所述的设备,其中,
所述控制命令包括指定由所述控制命令所承担的指令的信息以及指定部分地由通过跟随所述控制命令的写入命令而写入的数据条目形成的一个数据流的信息,且
所述控制命令作为以下命令中的一个:用于由所述控制命令指定的一个数据流的所述开始命令、用于所指定的数据流的所述结束命令、指示准备用于数据记录的新单位区域的命令以及用于识别除了数据流之外的数据的写入的命令。
3.根据权利要求1所述的设备,其中,
所述控制器包括地址比较单元,
所述地址比较单元包括:
专用于相应数据流的寄存器,其存储由跟随所述控制命令的所述写入命令所指定的一个写入数据条目的目的地地址;以及
对应于相应寄存器的比较器,当由所接收的写入命令指定的目的地地址与在对应的寄存器中存储的目的地地址相匹配时,所述比较器输出信号,且
所述控制器将所接收的写入命令与用于一个这样的数据流的一个单位区域相关联,该数据流与输出所述信号的一个比较器相对应。
4.根据权利要求1所述的设备,其中,
所述单位区域包括在所述存储器中临时准备的缓冲区,
所述缓冲区包括预定数目的空闲存储区域,且
在对所述单位区域的所述结束处理完成之前,从所述设备的外部无法访问所述单位区域。
5.根据权利要求1所述的设备,其中,
所述单位区域包括所述预定数目的空闲存储区域,并且从所述设备的外部可访问所述单位区域。
6.根据权利要求1所述的设备,其中,
所述控制命令包括指定由所述控制命令所承担的指令的信息以及指定由所述控制命令所指向的一个数据流或部分地由通过跟随所述控制命令的写入命令而写入的数据条目形成的一个数据流的信息,且
所述控制命令作为以下命令中的一个:用于由所述控制命令指定的一个数据流的所述开始命令、用于所指定的数据流的所述结束命令、指示准备用于数据记录的新单位区域的命令以及用于识别除了数据流之外的数据的写入的命令。
7.根据权利要求6所述的设备,其中,
所述设备还具有第二顺序模式,在所述第二顺序模式下,按照与所述写入数据条目的逻辑地址相同的次序在所述单位区域的连续存储区域中连续地写入用于一个数据流的所述写入数据条目,且
所述开始命令包括:指示向所述顺序写入模式的转换并指定由所述开始命令所指向的一个数据流的信息,或指示向所述第二顺序写入模式的转换的信息。
8.根据权利要求6所述的设备,其中,
所述控制器包括地址比较单元,
所述地址比较单元包括:
专用于相应数据流的寄存器,其存储由跟随所述控制命令的所述写入命令所指定的一个写入数据条目的目的地地址;以及
对应于相应寄存器的比较器,当由所接收的写入命令指定的目的地地址与在对应的寄存器中存储的目的地地址相匹配时,所述比较器输出信号,且
所述控制器将所接收的写入命令与用于一个这样的数据流的一个单位区域相关联,该数据流与输出所述信号的一个比较器相对应。
9.根据权利要求6所述的设备,其中,
所述单位区域包括在所述存储器中临时准备的缓冲区,
所述缓冲区包括预定数目的空闲存储区域,且
在对所述单位区域的所述结束处理完成之前,从所述设备的外部无法访问所述单位区域。
10.根据权利要求6所述的设备,其中,
所述单位区域包括所述预定数目的空闲存储区域并且从所述设备的外部可访问。
11.一种主机设备,其被配置为在存储器设备中写入数据,所述存储器设备包括非易失性半导体存储器和控制器,所述非易失性半导体存储器包括存储区域,所述控制器控制所述存储器,所述主机设备包括:
应用软件,其对要在所述存储器中写入的数据进行分割以准备预定尺寸的写入数据条目;以及
接口,其发出开始命令和控制命令,所述开始命令指示所述存储器设备转换到顺序写入模式,在所述顺序写入模式下所述写入数据条目被写入为使得所述存储区域的地址的次序与在所述存储区域中写入的所述写入数据条目的逻辑地址的次序相同,所述控制命令在用以指示一个写入数据条目的写入的写入命令之前发出,且所述控制命令通过所述写入命令而指定部分地由要写入的数据条目形成的数据流中的一个。
12.根据权利要求11所述的设备,还包括流控制器,所述流控制器接收指示由所述存储器设备确保的最低写入速率的性能信息并且包括速率确定单元,所述速率确定单元使用所述性能信息确定用于相应数据流的比特速率以及在对每个流写入性能没有干扰的情况下能够在所述存储器设备中写入的数据流的数目。
13.根据权利要求12所述的设备,其中,
所述流控制器包括专用于相应数据流的数据缓冲区,以保持部分地构成相应数据流的写入数据条目,且
所述流控制器被配置为按分时原则发送所述数据缓冲区中的所述写入数据条目,以在所述存储器设备所支持的比特速率内实现为相应数据流确定的比特速率。
14.根据权利要求11所述的设备,其中,所述接口:
进一步被配置为发出结束命令,所述结束命令指示对用于一个对应的数据流的单位区域执行结束处理,且
通过发出用于所有数据流的所述结束命令或请求随机写入,使所述存储器设备转换为随机写入模式。
15.根据权利要求14所述的设备,其中,
所述控制命令包括指定由所述控制命令所承担的指令的信息以及指定部分地由通过跟随所述控制命令的写入命令而写入的数据条目形成的一个数据流的信息,且
所述控制命令作为以下命令中的一个:用于由所述控制命令指定的一个数据流的所述开始命令、用于所指定的数据流的所述结束命令、指示准备包括预定数目的所述存储区域的新空闲单位区域的命令以及用于识别除了数据流之外的数据的写入的命令。
16.根据权利要求14所述的设备,其中,
所述控制命令包括指定由所述控制命令所承担的指令的信息以及指定由所述控制命令所指向的一个数据流或部分地由通过跟随所述控制命令的写入命令而写入的数据条目形成的一个数据流的信息,且
所述控制命令作为以下命令中的一个:用于由所述控制命令指定的一个数据流的所述开始命令、用于所指定的数据流的所述结束命令、指示准备包括预定数目的所述存储区域的新空闲单位区域的命令以及用于识别除了数据流之外的数据的写入的命令。
17.根据权利要求16所述的设备,其中,
所述接口被配置为在所述顺序写入模式下在发出用以在所述存储器设备中写入部分地构成一个新数据流的写入数据条目的初始写入命令之前,发出指示准备新单位区域的命令。
18.根据权利要求16所述的设备,其中,
所述开始命令包括:指示向所述顺序写入模式的转换并指定由所述开始命令所指向的一个数据流的信息,或指示向第二顺序写入模式的转换的信息,其中在所述第二顺序写入模式下,按照与所述写入数据条目的逻辑地址相同的次序在所述单位区域的连续存储区域中连续地写入用于一个数据流的所述写入数据条目。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP015950/2010 | 2010-01-27 | ||
JP2010015950 | 2010-01-27 | ||
JP2010186481A JP2011175615A (ja) | 2010-01-27 | 2010-08-23 | ホスト装置およびメモリデバイス |
JP186481/2010 | 2010-08-23 | ||
PCT/JP2011/052189 WO2011093517A1 (en) | 2010-01-27 | 2011-01-27 | Memory device and host device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102687125A true CN102687125A (zh) | 2012-09-19 |
Family
ID=44319492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011800051243A Pending CN102687125A (zh) | 2010-01-27 | 2011-01-27 | 存储器设备和主机设备 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20120254524A1 (zh) |
EP (1) | EP2529306A1 (zh) |
JP (1) | JP2011175615A (zh) |
KR (1) | KR20120098850A (zh) |
CN (1) | CN102687125A (zh) |
TW (1) | TW201201017A (zh) |
WO (1) | WO2011093517A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104798063A (zh) * | 2012-10-30 | 2015-07-22 | 株式会社东芝 | 存储设备和主机设备 |
WO2017015891A1 (zh) * | 2015-07-29 | 2017-02-02 | 深圳市锐明技术股份有限公司 | 一种监控数据的写入方法及装置 |
CN106527963A (zh) * | 2015-09-11 | 2017-03-22 | 株式会社东芝 | 存储器***及主机装置 |
CN106681663A (zh) * | 2016-12-29 | 2017-05-17 | 记忆科技(深圳)有限公司 | 一种固态硬盘多流写入的方法 |
CN107430493A (zh) * | 2015-03-27 | 2017-12-01 | 英特尔公司 | 顺序写入流管理 |
CN108780422A (zh) * | 2016-03-31 | 2018-11-09 | 高通股份有限公司 | 在基于中央处理单元cpu的***中使用压缩指示符ci提示目录来提供存储器带宽压缩 |
CN109542801A (zh) * | 2018-11-02 | 2019-03-29 | 上海百功半导体有限公司 | 基于qlc nand闪存的写操作配置方法、存储控制器及存储设备 |
US11455112B2 (en) | 2012-04-25 | 2022-09-27 | Sony Group Corporation | Non-volatile memory device, non-volatile memory control device, and non-volatile memory control method |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5175703B2 (ja) * | 2008-12-11 | 2013-04-03 | 株式会社東芝 | メモリデバイス |
JP2012248258A (ja) * | 2011-05-31 | 2012-12-13 | Funai Electric Co Ltd | 光ディスク装置 |
US20130326169A1 (en) * | 2012-05-31 | 2013-12-05 | Amir Shaharabany | Method and Storage Device for Detection of Streaming Data Based on Logged Read/Write Transactions |
JP2014044490A (ja) * | 2012-08-24 | 2014-03-13 | Toshiba Corp | ホスト装置及びメモリデバイス |
KR102108839B1 (ko) | 2013-06-12 | 2020-05-29 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법 |
KR102074329B1 (ko) | 2013-09-06 | 2020-02-06 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 처리 방법 |
TWI585778B (zh) * | 2013-11-05 | 2017-06-01 | 威盛電子股份有限公司 | 非揮發性記憶體裝置的操作方法 |
US9600183B2 (en) | 2014-09-22 | 2017-03-21 | Intel Corporation | Apparatus, system and method for determining comparison information based on memory data |
US20160196089A1 (en) * | 2015-01-07 | 2016-07-07 | Netapp, Inc. | System and method for adaptive data transfers with limited resources |
US10324832B2 (en) | 2016-05-25 | 2019-06-18 | Samsung Electronics Co., Ltd. | Address based multi-stream storage device access |
US10509770B2 (en) | 2015-07-13 | 2019-12-17 | Samsung Electronics Co., Ltd. | Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device |
US10282324B2 (en) | 2015-07-13 | 2019-05-07 | Samsung Electronics Co., Ltd. | Smart I/O stream detection based on multiple attributes |
US11461010B2 (en) | 2015-07-13 | 2022-10-04 | Samsung Electronics Co., Ltd. | Data property-based data placement in a nonvolatile memory device |
US10656838B2 (en) | 2015-07-13 | 2020-05-19 | Samsung Electronics Co., Ltd. | Automatic stream detection and assignment algorithm |
US10296264B2 (en) | 2016-02-09 | 2019-05-21 | Samsung Electronics Co., Ltd. | Automatic I/O stream selection for storage devices |
US10866905B2 (en) | 2016-05-25 | 2020-12-15 | Samsung Electronics Co., Ltd. | Access parameter based multi-stream storage device access |
JP2018022275A (ja) | 2016-08-02 | 2018-02-08 | 東芝メモリ株式会社 | 半導体記憶装置 |
KR102229013B1 (ko) * | 2016-09-02 | 2021-03-17 | 삼성전자주식회사 | 자동 스트림 검출 및 할당 알고리즘 |
US10108345B2 (en) | 2016-11-02 | 2018-10-23 | Samsung Electronics Co., Ltd. | Victim stream selection algorithms in the multi-stream scheme |
JP2018088137A (ja) * | 2016-11-29 | 2018-06-07 | 東芝メモリ株式会社 | 半導体記憶装置 |
JP2018160189A (ja) | 2017-03-23 | 2018-10-11 | 東芝メモリ株式会社 | メモリシステム |
US20180321855A1 (en) | 2017-05-03 | 2018-11-08 | Samsung Electronics Co., Ltd. | Multistreaming in heterogeneous environments |
KR102549540B1 (ko) | 2017-09-22 | 2023-06-29 | 삼성전자주식회사 | 스토리지 장치 및 그 동작 방법 |
US10901907B2 (en) | 2017-10-19 | 2021-01-26 | Samsung Electronics Co., Ltd. | System and method for identifying hot data and stream in a solid-state drive |
US10719397B2 (en) * | 2018-06-08 | 2020-07-21 | Samsung Electronics Co., Ltd. | System, device and method for storage device assisted low-bandwidth data repair |
KR20210013483A (ko) | 2019-07-26 | 2021-02-04 | 삼성전자주식회사 | 불휘발성 메모리 모듈을 포함하는 스토리지 시스템 및 불휘발성 메모리 모듈의 동작 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005196477A (ja) * | 2004-01-07 | 2005-07-21 | Toyota Motor Corp | 意匠開発支援装置及び支援方法 |
JP2006099210A (ja) * | 2004-09-28 | 2006-04-13 | Matsushita Electric Ind Co Ltd | 記憶装置 |
CN1947100A (zh) * | 2004-04-20 | 2007-04-11 | 松下电器产业株式会社 | 非易失性存储***、非易失性存储装置、存储控制器、存取装置以及非易失性存储装置的控制方法 |
WO2009013877A1 (ja) * | 2007-07-20 | 2009-01-29 | Panasonic Corporation | メモリコントローラ、メモリカード、不揮発性メモリシステム |
JP2009070430A (ja) * | 2007-09-10 | 2009-04-02 | Hitachi Global Storage Technologies Netherlands Bv | ディスク・ドライブ装置及びディスクへデータを書き込む方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005196447A (ja) * | 2004-01-07 | 2005-07-21 | Toshiba Corp | メモリ制御装置およびそれを用いたメモリカード |
JPWO2005103903A1 (ja) * | 2004-04-20 | 2007-08-30 | 松下電器産業株式会社 | 不揮発性記憶システム |
JP5175703B2 (ja) * | 2008-12-11 | 2013-04-03 | 株式会社東芝 | メモリデバイス |
JP4758518B2 (ja) * | 2009-06-18 | 2011-08-31 | パナソニック株式会社 | 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ |
US20110258372A1 (en) * | 2009-07-29 | 2011-10-20 | Panasonic Corporation | Memory device, host device, and memory system |
-
2010
- 2010-08-23 JP JP2010186481A patent/JP2011175615A/ja active Pending
-
2011
- 2011-01-27 KR KR1020127017010A patent/KR20120098850A/ko not_active Application Discontinuation
- 2011-01-27 CN CN2011800051243A patent/CN102687125A/zh active Pending
- 2011-01-27 WO PCT/JP2011/052189 patent/WO2011093517A1/en active Application Filing
- 2011-01-27 TW TW100103183A patent/TW201201017A/zh unknown
- 2011-01-27 EP EP11737225A patent/EP2529306A1/en not_active Withdrawn
-
2012
- 2012-06-15 US US13/524,835 patent/US20120254524A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005196477A (ja) * | 2004-01-07 | 2005-07-21 | Toyota Motor Corp | 意匠開発支援装置及び支援方法 |
CN1947100A (zh) * | 2004-04-20 | 2007-04-11 | 松下电器产业株式会社 | 非易失性存储***、非易失性存储装置、存储控制器、存取装置以及非易失性存储装置的控制方法 |
JP2006099210A (ja) * | 2004-09-28 | 2006-04-13 | Matsushita Electric Ind Co Ltd | 記憶装置 |
WO2009013877A1 (ja) * | 2007-07-20 | 2009-01-29 | Panasonic Corporation | メモリコントローラ、メモリカード、不揮発性メモリシステム |
JP2009070430A (ja) * | 2007-09-10 | 2009-04-02 | Hitachi Global Storage Technologies Netherlands Bv | ディスク・ドライブ装置及びディスクへデータを書き込む方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11455112B2 (en) | 2012-04-25 | 2022-09-27 | Sony Group Corporation | Non-volatile memory device, non-volatile memory control device, and non-volatile memory control method |
US9983794B2 (en) | 2012-10-30 | 2018-05-29 | Toshiba Memory Corporation | Memory device and host device |
CN104798063A (zh) * | 2012-10-30 | 2015-07-22 | 株式会社东芝 | 存储设备和主机设备 |
CN104798063B (zh) * | 2012-10-30 | 2019-01-11 | 东芝存储器株式会社 | 存储设备和主机设备 |
US11573701B2 (en) | 2012-10-30 | 2023-02-07 | Kioxia Corporation | Memory device and host device |
US10353586B2 (en) | 2012-10-30 | 2019-07-16 | Toshiba Memory Corporation | Memory device and host device |
US10976930B2 (en) | 2012-10-30 | 2021-04-13 | Toshiba Memory Corporation | Memory device and host device |
CN107430493B (zh) * | 2015-03-27 | 2023-10-03 | 英特尔公司 | 顺序写入流管理 |
CN107430493A (zh) * | 2015-03-27 | 2017-12-01 | 英特尔公司 | 顺序写入流管理 |
WO2017015891A1 (zh) * | 2015-07-29 | 2017-02-02 | 深圳市锐明技术股份有限公司 | 一种监控数据的写入方法及装置 |
CN106527963A (zh) * | 2015-09-11 | 2017-03-22 | 株式会社东芝 | 存储器***及主机装置 |
CN106527963B (zh) * | 2015-09-11 | 2019-09-27 | 东芝存储器株式会社 | 存储器***及主机装置 |
CN108780422A (zh) * | 2016-03-31 | 2018-11-09 | 高通股份有限公司 | 在基于中央处理单元cpu的***中使用压缩指示符ci提示目录来提供存储器带宽压缩 |
CN106681663A (zh) * | 2016-12-29 | 2017-05-17 | 记忆科技(深圳)有限公司 | 一种固态硬盘多流写入的方法 |
CN109542801A (zh) * | 2018-11-02 | 2019-03-29 | 上海百功半导体有限公司 | 基于qlc nand闪存的写操作配置方法、存储控制器及存储设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2011093517A1 (en) | 2011-08-04 |
EP2529306A1 (en) | 2012-12-05 |
TW201201017A (en) | 2012-01-01 |
JP2011175615A (ja) | 2011-09-08 |
KR20120098850A (ko) | 2012-09-05 |
US20120254524A1 (en) | 2012-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102687125A (zh) | 存储器设备和主机设备 | |
US8310896B2 (en) | Memory system and method of writing into nonvolatile semiconductor memory | |
USRE49921E1 (en) | Memory device and controlling method of the same | |
EP1706869B3 (en) | Portable data storage device using a memory address mapping table | |
CN101231618B (zh) | 非易失性存储器装置的控制方法 | |
US20080195833A1 (en) | Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit | |
US20030065899A1 (en) | Memory system sectors | |
CN103282887A (zh) | 用于进行后台操作的控制器和方法 | |
JPWO2005103903A1 (ja) | 不揮発性記憶システム | |
WO2010146767A1 (ja) | 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ | |
CN115080472B (zh) | 支持非确定性命令的存储器子*** | |
US8914587B2 (en) | Multi-threaded memory operation using block write interruption after a number or threshold of pages have been written in order to service another request | |
JP4843222B2 (ja) | 半導体記憶装置の制御方法、メモリカード、及びホスト機器 | |
JPH11110305A (ja) | 記憶装置、データ処理システム並びにデータの書き込み及び読み出し方法 | |
JP3544476B2 (ja) | メモリ管理テーブル作成方法 | |
CN102193745B (zh) | 快闪存储器储存装置、其控制器与写入管理方法 | |
US20130036257A1 (en) | Memory system which can avoid unavailability due to operation error by user | |
JP2011076441A (ja) | 情報記録装置、情報記録方法及び情報記録用プログラム | |
EP1804166A2 (en) | Memory device and information processing apparatus | |
WO2024043087A1 (ja) | ホスト装置、不揮発性記憶装置およびメモリシステム | |
JP2001043143A (ja) | 記憶装置、データ処理システム並びにデータの書き込み及び読み出し方法 | |
JPS6113328A (ja) | データファイルのアクセス制御装置 | |
US6804728B2 (en) | I/O control device and I/O control method | |
JP2011118953A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120919 |