具有减少的部分填充页面的数量的固态存储器的制作方法

文档序号:6334066阅读:249来源:国知局
专利名称:具有减少的部分填充页面的数量的固态存储器的制作方法
技术领域
本发明涉及一种例如按照目标(target)而组织的固态存储器,每个目标包含一 个或多个逻辑单元(LUN),每个逻辑单元包含一个或多个块,而每个块包含一个或多个页 面。这种器件例如是根据开放NAND闪存接口规范(ONFI)而设计的NAND闪存存储器件。
背景技术
从美国专利公开US2008/0183949中已知了这种器件,该美国专利公开描述了用 于对闪存存储器进行编程的方法。本领域技术人员将在该背景下的编程理解为在闪存存储 器单元中写入或者存储比特。通过一次编程一个页面的数据来对闪存存储器上的数据进行 编程。如果在数据流的末尾没有提供足够的数据来编程完整的页面,则在数据流的末尾所 编程的页面仅仅被部分地填充。如果要编程的数据流稍后继续,则在其他被完整地填充的 页面之间存在被部分填充的页面。这可能被认为是不充分的。通过以下方式来提供更好的 解决方案再次读出被部分填充的数据页面并且利用随后提供的要写入的数据来补足数据 并且然后将完整的数据页面编程到闪存存储器。以额外的读取和编程周期的代价来减少被 部分填充的页面。美国专利公开US2006/0136656描述了作为闪存存储器的最小可擦除单元的块。 其进一步描述了因为最小可擦除单元不是页面而是块,所以不能够容易地擦除被部分填充 的页面的问题。因此,闪存存储器被不必要地损耗。当在两个逻辑单元之间执行切换操作时,也出现被部分填充的页面的效应。当执 行从第一逻辑单元向第二逻辑单元的切换时,在输入缓冲器中剩余的数据被编程到第一逻 辑单元,并且在此之后进行向第二逻辑单元的切换。如果稍后数据被编程到第一逻辑单元, 则使用新的页面来编程该数据,并且因此在逻辑单元中出现被部分使用的页面。根据开放NAND闪存接口规范(0NFI),通过向目标发出具有对应的逻辑单元号 (LUN)、块地址和页面地址的编程页面命令来进行向NAND闪存器件写入数据。然后,通常是 几千字节的完整的存储器页面的数据被写入到所选择的逻辑单元的页面寄存器。当完整的 页面被写入页面寄存器时,逻辑单元开始将数据编程到它的存储器阵列。在编程期间,逻辑 单元忙,并且在完成了第一页面的编程之后,可以将下一页面写入逻辑单元的页面寄存器。 在完整的页面已经被写入页面寄存器并且已经开始页面编程之后,可以选择并且使用目标 的其他逻辑单元。ONFI规范还提供了编程不完整(partial)页面的可能性,但是这将意味 着额外的编程时间并且将降低可达到的带宽。根据ONFI规范定义以下编程指令页面编程将数据写入数据寄存器并且在完成数据阶段之后开始编程。页面缓存编程将数据写入数据寄存器并且在完成数据阶段之后,将数据寄存器 的内容复制到缓存寄存器并且开始编程。页面编程交错将数据写入一个LUN的多个数据寄存器并且当填充了最后的数据 寄存器时开始编程。
已知的页面编程流程用于将完整的数据页面写入到NAND器件的页面寄存器并且 开始对存储器阵列的编程。每个过程导致目标状态机和逻辑单元状态机的数个状态切换。 以下示出依赖于过程的状态机的状态切换
-> L_PP_Ilv_ffait L_PP_Ilv_ffaitL_PP_Ilv_ffait -> L_PP_Addr -> L PP WaitForData-> T_PP_I lvffait 向 NAND 器件写入 T_PP_IIvWait 命令 80h*- > T_PP_Addrffait向 NAND 器件写入 T_PP_AddrWait LUN地址,块地址-> T_PP_Addr 和页面地址 -> T_PP_LUN_Execute-> T_PP_LUN_Dataffait 向 NAND 器件写入 T_PP_LUN_DataWait 完整数据页面-> T_PP_LUN_DataPass -> T_PP_LUN_Dataffait 向 NAND 器件写入 T_PP_LUN_DataWait 命令 IOh- > T_PP_Cmd_DataPass - > L_PP_Prog-> T_Idle- > L_PP_Progffait-> L_PP_Sts -> L IdleL_PP_ffaitForData -> L_PP_AcceptData -> L_PP_ffaitForData L PP WaitForData*用于状态“T_PP_IlvWait”的编程操作的寻址周期意图具有与在之前的编程操 作中发出的块地址不同的交错块地址。如果在目标的独立的LUN中记录两个独立源的数据,则向用于第一独立源的第一 LUN首先发出上述的处理中的一个,并且在完成写入处理之后,向第二 LUN发出上述处理中 的一个,以将第二独立源的数据写入第二 LUN。当应该将独立并发流记录到闪存器件中时,有利的是将不同的流记录到不同的逻 辑单元中。利用这种常规的策略,文件管理更容易并且为记录输入数据流而保证了逻辑单 元的完整的带宽。如果各流的数据以比页面尺寸小的尺寸的块到达,则存在对在闪存器件 的外部布置的缓存中对每个流的数据进行缓存的需要、以及在用于一个逻辑单元的完整的 页面准备好被编程时将该数据写入NAND闪存器件的需要。依赖于流和逻辑单元的量,在存 储器件的外部需要大量的缓存存储器,而该器件内部的可用的页面寄存器保持未使用。

发明内容
本发明的目的是提供一种减少被部分填充的页面的问题的固态存储器以及一种 用于操作固态存储器的方法。本发明的另一目的是提供一种在将多个输入数据流被编程到 闪存器件的情况下,减少对于外部缓存存储器的需求并且利用内部页面寄存器的固态存储 器,、以及一种用于操作固态存储器的方法。为了将逻辑单元的页面寄存器用作对于对应的输入数据流的输入缓冲器,即使其 他逻辑单元上的页面可能尚未被完整填充,也必须依赖于当前的输入流的特性来切换激活 的逻辑单元。ONFI规范没有处理该问题并且未提供专用的机制。根据本发明,用于存储至少一个输入数据流的固态存储器在一个目标内具有多个 逻辑单元。每个逻辑单元具有用于向存储器编程数据的至少一个页面。固态存储器包含通 常被称为页面寄存器的内部缓冲存储器,用于在输入数据被编程到至少一个页面之前,暂 时存储输入数据流。此外,当执行在不同逻辑单元之间的切换操作时,内部缓冲存储器保存还没有被编程的数据。这具有以下优点在从第一逻辑单元切换到第二逻辑单元的情况下, 还不够完整填充页面的剩余数据不需要被编程而是被保存在页面存储器中。如果稍后,提 供了用于该逻辑单元的更多的数据,则该数据被添加到剩余数据中并且剩余数据和新数据 一起被编程为完整的页面。因为避免了编程仍不完整的页面,所以这增强了编程特定逻辑 单元的整体的比特率。由于编程完整的页面和编程不完整页面需要几乎相同的时间,所以 如果在任何可能的情况下小心地仅仅编程完整的页面,则编程特定的数据量需要较少的编 程周期。此外,避免了在固态存储器件中仅仅被部分填充数据的固态存储器件中的页面的 问题。固态存储器得到更高效的使用。有利地,将固态存储器组织为目标组,其中每个目标包含至少一个逻辑单元。每个 逻辑单元配备有用于暂时存储要被编程到该逻辑单元的输入数据的页面寄存器。此外,每 个逻辑单元包含至少一个块。按块来擦除存储器。每个块包含至少一个页面。一次编程要 被存储在一个页面中的数据。优选地,固态存储器的每个逻辑单元具有用于在数据被编程到页面之前暂时存储 输入数据流的内部缓冲器。该内部缓冲器的大小至少是一个页面的大小加上在可允许的最 高输入比特率的情况下在页面的编程周期期间所接收的数据的大小。由此SizeinternalBuffer ^ SizePage+T!Lmepageprogramcycle5^BitrateInputData这具有以下优点在页面的编程期间,还可以在内部缓冲器中接收用于编程下一 页面的数据。如果输入数据的比特率足够高,则例如两个页面大小的内部缓冲器可以在另 一页面的编程周期期间接收用于要编程的整个页面的数据。由此,减少了整体的等待时间 并且进一步增强了固态存储器的比特率。有利地,该存储器件是依据开放NAND闪存接口(ONFI)规范而操作的NAND闪存器 件。ONFI规范没有预见到用于在执行在不同的逻辑单元之间的切换的情况下避免被部分地 编程的页面以及用于在不完整页面编程的情况下减少编程时间并由此减少编程比特率的 具体算法。所提出的存储器件具有以下优点其本质上是依据ONFI规范的并且同时避免了 不完整页面。根据本发明的器件仅仅偏离了 ONFI标准的已知的实施方案。仍然使用ONFI 标准的编程指令。从本领域已知的实施方案的规则的偏离与ONFI标准不矛盾。由此,根据 本发明的器件仍可以被视为遵守ONFI标准。此外,因为每当合适时,就编程完整的页面,所 以减少了编程时间。除此以外,本发明涉及一种固态存储器件,其以面向页面的方式操作, 并且可应用于例如流传输应用(特别是并行的若干视频源的流传输),作为捕捉研究环境 (特别是用于捕捉并行的若干测量数据流或者类似环境)的测量数据的中央存储器件。优选地,该固态存储器是具有一个或多个相机的视频捕捉相机系统的一部分。由 相机发出的数据被提供给固态存储器件。有利地,该固态存储器在不同逻辑单元中存储由 不同相机捕捉的数据流。优选地,该相机系统被提供用于3D视频捕捉。在该情况下,生成 若干视频流(其中至少一个具有高的数据率)。必须并行地实时存储视频数据流。该固态 存储器对如上所述的相机系统提供了若干优点。在不同的逻辑单元中存储不同相机的数据 流具有以下优点提供了简单的文件结构并且依据层级存储器结构来组织数据。由此,特别 是在使用具有多于一个相机的相机系统(如对于例如3D捕捉所必须的那样)的情况下,必 须同时存储多个数据流。另外,由相机输出的数据流通常具有高的数据率。使用高清相机 (HD),一个相机的数据流例如可高达2G比特/s。根据本发明的固态存储装置特别有利于这样的系统,这是因为存储器件的输入数据率不通过写入和读取被部分填充的页面而被不必 要地减少。因为在具有多个相机的系统(其中在不同逻辑单元中存储不同相机的数据流) 中定期进行不同逻辑单元之间的切换并且不在一个周期中被写入的页面或者仅仅被部分 写入的页面的问题将频繁地出现,所以在这样的系统中益处大。除了 3D捕捉之外,电影工 业还关注多维捕捉。本发明还用于实时的多维环境的场景捕捉。优选地,实现了一种用于操作包括至少一个逻辑单元的固态存储器件的方法。每 个逻辑单元包括至少一个页面并且一次编程一个页面。在根据本发明的方法中,至少一个 输入数据流顺序被输入到固态存储器。该数据被暂时地存储在内部缓冲器(页面寄存器) 中。内部缓冲器例如是如上所述的缓冲器并且被分配给逻辑单元。执行检查内部缓冲器是 否包含足够用于要编程的一个完整页面的数据的步骤。如果内部缓冲器包含足够用于要编 程的一个完整页面的数据,则编程至少一个完整的页面。足够用于一个完整页面的数据可 以仅稍微多于用于一个完整的页面所必需的数据,但它也可以是足够填充若干完整的页面 的数据。如果在不同逻辑单元之间执行切换操作,则在内部缓冲器中保存当前激活的逻辑 单元的内部缓冲器的还未被编程的数据。然后执行逻辑单元之间的切换。这具有以下优点 在从第一逻辑单元切换到第二逻辑单元之前,未填充完整的页面的剩余数据无需被编程而 是被保存在内部缓冲器中,并且在完成切换之后仍然被保存。如果稍后提供了对于该逻辑 单元的更多的数据,则该数据被添加到剩余数据中并且剩余数据和新的数据一起被编程为 完整的页面。这减少了整体的编程时间,这是因为不完整页面的编程大约需要与完整页面 的编程相同的处理时间。由此,通过仅仅编程完整的页面,增强了编程带宽。此外,避免了 在固态存储器件中在一个编程周期期间中仅仅被部分地填充数据的页面的问题。固态存储 器得到更高效的使用。有利地,该方法用于在不同逻辑单元中存储由不同相机捕捉的输入数据流。在不 同逻辑单元中存储不同相机的数据流具有以下优点提供了简单的文件结构并且依据层级 存储器结构来组织数据。由此,特别是在使用具有多于一个相机的相机系统(如对于例如 3D捕捉所必须的那样)的情况下,必须同时存储多个数据流。另外,由相机输出的数据流通 常具有高的数据率。使用高清相机(HD),一个相机的数据流例如可高达2G比特/S。所提 供的固态存储装置特别有利于这样的系统,这是因为存储器件的输入数据率不通过写入和 读取被部分填充的页面而被不必要地减少。因为在具有多个相机的系统(其中在不同逻辑 单元中存储不同相机的数据流)中定期进行不同逻辑单元之间的切换并且不完整页面的 问题将频繁地出现,所以在这样的系统中益处大。除了 3D捕捉之外,电影工业还关注多维 捕捉。本发明还用于多维环境的场景捕捉。优选地,本方法根据开放NAND闪存接口(ONFI)规范来操作。有利地,在数据寄存 器中接收到用于一个逻辑单元的数据之后,并且在要执行逻辑单元的切换的情况下,使用 页面编程交错命令Ilh将目标设置为状态T_PP_Ilv_Wait。使用该命令,逻辑单元被设置为 状态L_PP_Ilv_Wait。随后,目标保持在状态T_PP_Ilv_Wait并且逻辑单元保持在状态L_ PP_Ilv_ffait直到LUN的数据寄存器被完整的页面填充。然后,使用命令IOh或者1 将这 些数据编程到页面。在使用命令IOh或者1 将完整的页面编程到逻辑单元之后,将目标 设置为状态T_PP_LUN_DataWait并且将逻辑单元设置为状态L_PP_WaitR)rData以防止目 标删除来自被寻址的逻辑单元的页面寄存器的数据。


为了更好地理解本发明,现在将参照附图在以下的描述中更详细地解释本发明。 应理解本发明不限于这些示例性的实施例并且还可以方便地组合和/或修改所指定的特 征而不脱离本发明的范围。图1描绘了固态存储器件的层级结构。图2描绘了根据本发明的操作固态存储器件的方法。图3描绘了根据本发明的目标的状态图。图4描绘了根据本发明的逻辑单元的状态图。图5描绘了根据本发明的包括一个目标和两个逻辑单元的固态存储器的状态图。
具体实施例方式图1描绘了根据本发明的通过ONFI规范命令集操作的NAND闪存存储器的结构。 NAND闪存存储器被组织为目标。目标包含一个或多个逻辑单元LOGICAL UNIT 0,LOGICAL UNIT 1, . . . , LOGICAL UNIT L,每个逻辑单元 LOGICAL UNIT 0,LOGICAL UNIT 1,…, LOGICAL UNIT L 包含多个块 BLOCK 0,BLOCK 1, . . . BLOCK M,而每个块 BLOCK 0,BLOCK 1,. . . BLOCK M 包含多个页面 PAGE 0、PAGE 1,. . .,PAGE N。页面 PAGE 0、PAGEl,..., PAGE N典型地是读取或者写入单元。这意味着页面包含在一个步骤中可以读取或者写入 的数据的最小数量。块BLOCK 0, BLOCK 1,. . . BLOCKM典型地是擦除单元。这意味着块包 含在一个步骤中可以擦除的数据的最小数量。逻辑单元LOGICAL UNIT 0,LOGICAL UNIT 1,...,LOGICAL UNITL是独立操作的操作单元。每个逻辑单元LOGICAL UNIT 0,LOGICAL UNITl, ...,LOGICAL UNIT L包含用于暂时地存储要写入或者要读取的数据的页面寄存器 PAGE REGISTER。进一步,每个逻辑单元包含用于操作逻辑单元LOGICAL UNIT 0,LOGICAL UNIT 1,. . . , LOGICAL UNIT L 的控制器单元 CU_LU_0,CU_LU_1,. . .,CU_LU_L。目标 TARGET 进一步包含用于在目标级上控制器件的目标控制单元CU_TRG。图2描绘了根据本发明的器件的编程流程。在步骤Si,检查输入数据是否可用。如果输入数据可用(是),则在步骤S2将页面编程命令80h写入目标。在步骤S3, 将LUN地址、块地址、页面地址和列地址写入NAND闪存目标的页面寄存器。在步骤S4,将下 一数据字写入NAND闪存目标。然后,在步骤S5检查在闪存目标的页面寄存器中是否有完 整的页面可用。如果有完整的页面可用(是),则在步骤S8,使用页面编程IOh命令或者页面缓存 编程1 命令将数据存储在目标的相应的页面中。在步骤S9,页面地址和块地址递增。然 后,在步骤S10,将进一步的页面编程命令80h写入目标。在步骤S11,将LUN地址、块地址、 页面地址和列地址写入NAND闪存目标的页面寄存器。如果在步骤S5没有完整的页面可用(否),则执行步骤S6。在步骤Sll之后也执 行步骤S6。在步骤S6,检查是否存在剩余字节可用。如果存在剩余字节可用(是),则该方 法前进到步骤S4。如果不存在剩余字节可用(否),则在步骤S7将交错命令Ilh写入NAND 并且该方法前进到步骤Si。如果在步骤Sl没有输入数据可用(否),则在步骤S12检查是否到达记录的结尾。如果没有到达记录的结尾(否),则该方法进一步前进到步骤Si。如果到达记录的结 尾(是),则该方法在步骤S13检查是否在寄存器中留下未完成的页面。如果在寄存器中存在未完成的页面(是),则在步骤S14将页面编程命令80h写入 NAND目标并且在步骤S15将LUN地址、块地址、页面地址和列地址写入NAND闪存器件。然 后,该方法进一步前进到步骤S8。如果在步骤S13在寄存器中没有留下未完成的页面(否),则该方法前进,在步骤 S16使用页面编程IOh命令或者页面缓存编程1 命令将数据存储在目标的相应的页面中。 然后,该方法以步骤Sl重新开始。应注意,使用页面编程命令或者缓存页面编程命令在逻辑单元中的页面上存储数 据需要两个周期。在第一周期中,使用80h命令来初始化页面编程和缓存页面编程两者。在 第二周期中,发出IOh命令以进行页面编程,并且发出1 命令以进行缓存页面编程。图3描绘了根据本发明的目标状态图。单独考虑的根据本发明的目标状态图对 应于根据ONFI标准的目标状态图。初始状态是T_Idle。在接收到命令后,目标在状态 T_Cmd_Decode下解码所接收的命令。如果所解码的命令是页面编程80h命令,则目标切 换到状态T_PP_ExeCute。然后,目标将tLastCmd设置为80h。如果R/B#被清除为零,则 tbMatUS78hReg被设置为真。另外,所有的LUN被请求清除它们的页面寄存器。然后,在状 态T_PP_AddrWait下,目标等待寻址周期。在接收到寻址周期后,在状态T_PP_Addr下存储 所接收的寻址周期。如果需要进一步的寻址周期,则目标切换以接收下 一寻址周期。如果不需要进一步的寻址周期,则目标切换到状态T_PP_LUN_ExeCute。选择 由所接收的行地址所指示的LUN并且目标向该LUN发出编程。然后,目标在状态T_PP_LUN_ Dataffait下等待要从主机接收的数据字或者命令周期,并且在状态T_PP_LUN_DataPaSS下 将数据字传递到所选择的LUN。当在T_PP_LUN_DataWait接收到命令,目标切换到状态T_ PP_Cmd_Pass0然后,该命令被传递到相应的LUN。如果该命令是Ilh命令,则目标切换到状以等待下一命令被发出。如果该命令是页面编程80h,则根据上述方法将 下一字节写入LUN。另一方面,如果该命令是IOh或者1 命令,则目标返回到初始状态T_ Idle。
图4描绘了根据本发明的逻辑单元状态图。单独考虑的根据本发明的逻辑单元状 态图对应于根据ONFI标准的逻辑单元状态图。初始状态是L_Idle。在接收到对该LUN的 目标请求后,LUN切换到状态LJdlejargetRequest并且等待由目标发出的命令。如果目 标指示编程请求,则LUN切换到L_PP_ExeCute并且然后切换到L_PP_Addr以记录通过目标 所接收的地址。进一步,基于交错地址选择正确的页面寄存器并且根据所接收的列地址选 择页面寄存器中的列。然后,LUN在状态L_PP_WaitForData和L_PP_Ac(^ptData下接收通 过目标传递的数据。然后,在LUN接收到Ilh命令的情况下,LUN切换到状态L_PP_IlvWait, 直到目标对该LUN请求进一步的编程命令。在LUN在状态L_PP_WaitF0rData下接收到IOh 或者15h命令的情况下,LUN切换到状态L_PP_Prog,L_PP_ProgWait和L_PP_Sts并且将相 应的数据编程到相应的页面。 为了更详细地说明本发明,图5描绘了根据本发明的包括一个目标和两个逻辑单 元的固态存储器的状态图。由此,示出了目标状态和对应的逻辑单元LU1、LU2的可允许的 组合。应理解,该发明性方法还可以应用于包含多于两个逻辑单元的至少一个目标。为了简洁的目的,仅仅图示了以下状态其中,发出第一周期的页面编程命令或者页面缓存编程命 令80h、或者第二周期的页面编程命令或者页面缓存编程命令10h/15h、或者交错命令llh。 应理解,为了从目标和相应的LUN的第一状态切换到第二状态,还必须执行在第一和第二 状态之间的根据图3和图4的状态切换。如在ONFI规范中所述地执行状态切换。在初始状态S50中,目标处于空闲状态乙1(116。LUN也处于空闲状态1^_1(116。如 果接收到对于LUl的第一周期的页面编程命令80h,则激活状态S51。由此,目标切换到T_ PP_LUN_Dataffait并且LUl切换到L_PP_WaitForData。LU2还没有改变其状态。相应地, LUl现在准备好接收数据。在LUl中接收数据后,检查是否发出第二周期的页面编程IOh或 者页面缓存编程15h。在该情况下,将数据编程到第一逻辑单元LUl的页面并且状态机切 换回空闲状态S50。如果发出对于LUl的交错命令llh,则目标切换到T_PP_IlvWait并且 LUl切换到L_PP_IlvWait。LU2停留在L_idle状态。这对应于图5的S52。由此,可以对 于逻辑单元LUl或者LU2发出第一周期的进一步的页面编程命令80h。在对于LUl发出页 面编程命令80h的情况下,状态机切换回状态S51。在对于LU2发出页面编程命令80h的情 况下,状态机切换到状态S53。在向之前的第一逻辑单元发出交错命令Ilh的同时,向第二 逻辑单元发出第一周期的页面编程命令80h形成本方法的发明性特征的一部分。由此通过 粗体箭头来指示状态转换。然后,目标在状态T_PP_LUN_DataWait下等待来自主机的新的 数据或者新的命令,LUl在状态L_PP_IlvWait下等待,而LU2在状态L_PP_WaitForData下 等待接收数据。结果,在LU2切换到其等待数据的状态之前,LUl不被复位到空闲状态。由 此,当根据发明性方法从LUl切换到LU2时,不会丢失来自LUl的页面寄存器中的数据,这 是发明性方法的优点之一。在向LU2发出第一周期的命令后,到达状态S53,由此,在状态53中,专用于LU2的 第二周期的页面编程命令I0h、页面缓存编程命令1 或者交错命令Ilh是可允许的。发出 专用于LU2的页面编程命令IOh或者页面缓存编程命令1 导致目标的T_Idle状态和LU2 的L_Idle状态。这对应于图5的情况下的状态S54。从状态S54,可以对于LUl或LU2发 出第一周期的页面编程80h或页面缓存编程80h命令。在对LUl发出80h命令的情况下, 状态机切换到状态S51。在对LU2发出80h命令的情况下,则状态机切换到状态S53。如果在状态S53下向LU2发出交错命令llh,则目标切换到T_PP_I IvWait并且LU2 切换到L_PP_IlvWait。当LUl停留在L_PP_IlvWait状态时,状态机处于状态S59并且准备 接收对于LUl或者LU2的第一周期的下一请求。在向LUl发出80h命令的情况下,状态机 切换到状态S57以等待对于LUl的命令。从状态S59 (其是在接收到对于LU2的交错命令 后到达的)切换到状态S57 (其中状态机等待专用于LUl的第二周期的页面编程命令10h、 页面缓存编程命令1 或者交错命令llh)是本发明的一部分。如果通过对于LU2的交错 命令Ilh到达状态S59,则已知的方式将是在状态S59中接收对于LUl的第一周期的页面编 程命令80h。如已经如上所述的,状态机然后将切换回状态S53以等待对于LU2的命令。如果对于其他逻辑单元对应地发出命令,则状态S55、S56、S57和S58及其状态切 换对应于状态S51、S52、S53和SM及其状态切换。因此,省略了详细的描述。由此,根据本发明的编程流程使用交错页面编程Ilh使目标和LUN分别进入到等 待附加数据的状态T_PP_IlvWait和L_PP_IlvWait。这是根据图5的状态S52、S56和S59 的情况。根据本发明,使得能够向第一逻辑单元的页面寄存器写入小于一个页面尺寸的小的数据块、切换到另一逻辑单元并且在切换回第一逻辑单元之后继续向第一逻辑单元的页 面寄存器写入,并且然后向第一逻辑单元编程完整的页面。
[0116向NAND器件写入T_PP_IlvffaitL_PP_Ilv_ffait[0117命令80h*-> T_PP_Addrffait[0118向NAND器件写入T_PP_AddrffaitL_PP_Ilv_ffait[0119LUN地址,块地址-> T_PP_Addr-> L_PP_Addr[0120、页面地址和列地址 -> T_PP_LUN_Execute-> L_PP_ffaitForData[0121-> T_PP_LUN_Dataffait[0122向NAND器件写入T_PP_LUN_DataffaitL_PP_ffaitForData[0123附加数据直到-> T_PP_LUN_DataPass-> L_PP_AcceptData[0124已写入完整页面-> T_PP_LUN_Dataffait-> L_PP_ffaitForData[0125向NAND器件写入T_PP_LUN_DataffaitL_PP_ffaitForData[0126命令IOh-> T_PP_Cmd_Pass-> L_PP_Prog[0127-> T_Idle-> L_PP_Progffait[0128-> L_PP_Sts[0129-> L_Idle[0130*用于状态“T_PP_JlvWait”的页面编程操作的寻址周期具有与在之前的页面编程操乍中发出的交错块地址相同的交错块地址,但是列地址递增以将进一步的数据块放置在页面寄存器中的正确的位置。1权利要求
1.一种用于存储至少一个输入数据流的固态存储器,该固态存储器具有多个逻辑单 元(Logical_Unit_0, Logical_Unit_l,…,Logical_Unit_L),每个逻辑单元(Logical_ Unit_0, Logical_Unit_l, . . . , Logical_Unit_L)^hMM (PageO, Pagel,..., PageN),其特征在于,每个逻辑单元(Logical_Unit_0, Logical_Unit_l, . · ·,Logical, Unit_L)包含用于在将输入数据编程到至少一个页面G^ageO,I^age 1,... JageN)之前暂时 地存储输入数据流的内部缓冲存储器(Page_RegiSter),并且其中在执行向不同的逻辑单 元的切换操作时,该内部缓冲存储器(Pag^Register)保存还未被编程的数据。
2.根据权利要求1的固态存储器,其特征在于,每个逻辑单元包含至少一个作为该存 储器的最小可擦除单元的块,并且每个块包含至少一个作为该存储器的最小可编程单元的 页面。
3.根据权利要求1或2的固态存储器,其特征在于,逻辑单元的内部缓冲器中的至少一 个具有用于存储整个页面以及在可允许的最高输入比特率的情况下在页面的编程周期期 间接收的数据的最小尺寸。
4.根据权利要求1至3之一的固态存储器,其特征在于,所述存储器件是根据开放 NAND闪存接口规范而操作的NAND闪存器件。
5.一种包含一个或多个相机的相机系统,其特征在于,该相机系统包含根据权利要求 1至4中的任一项的固态存储器。
6.根据权利要求5的相机系统,其特征在于,该相机系统包含至少两个相机并且在不 同逻辑单元中存储由不同相机捕捉的数据流。
7.一种用于将至少一个数据流编程到固态存储器的方法,该固态存储器包括至少一个 逻辑单元,每个逻辑单元包括至少一个页面,一次编程一个页面,其特征在于以下步骤-顺序地将至少一个输入数据流输入到该固态存储器;-在逻辑单元中包含的内部缓冲器中存储与该逻辑单元相关联的数据;-检查缓冲器是否包含用于至少一个要编程的完整页面的数据;-如果检查步骤是肯定的,则编程至少一个页面;以及-如果在不同逻辑单元之间执行切换操作,则在内部缓冲存储器中保存还未被编程的 数据。
8.根据权利要求7的方法,还包括步骤-在不同逻辑单元中存储由具有不同相机的相机系统捕捉的输入数据流。
9.根据权利要求7或8的方法,还包括步骤-在数据寄存器中接收到数据之后,使用页面编程交错命令Ilh将目标设置为状态τ_ PP_Ilv_ffait并且将逻辑单元设置为状态L_PP_Ilv_Wait ;-将目标保持在状态T_PP_Ilv_Wait并且将逻辑单元保持在状态L_PP_Ilv_Wait直到 LUN的数据寄存器被完整的页面填充;以及-使用命令IOh或者1 将这些数据编程到页面,其中这些状态和命令符合ONFI标准。
10.根据权利要求7-9中的任一项的方法,还包括步骤-在使用命令IOh或者1 将完整的页面编程到逻辑单元之后,将目标设置为状态τ_ PP_LUN_Dataffait并且将逻辑单元设置为状态L_PP_WaitR)rData以防止目标删除来自被 寻址的逻辑单元的页面寄存器的数据,其中这些状态和命令符合ONFI标准。
全文摘要
本发明涉及一种包括多个逻辑单元的固态存储器。该固态存储器包含用于在将输入数据编程到至少一个页面之前暂时地存储输入数据流的内部缓冲器。如果执行从一个逻辑单元到另一个逻辑单元的切换,则该内部缓冲器保存还未被编程的数据。提出了一种操作这样的器件的方法。
文档编号G06F12/10GK102053924SQ20101051175
公开日2011年5月11日 申请日期2010年10月15日 优先权日2009年10月29日
发明者奥利弗·坎普亨克尔, 托马斯·布鲁恩, 迈克尔·德雷克斯勒 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1