将数据块存储到多个非易失存储器的闪存块的方法和系统的制作方法

文档序号:6567035阅读:127来源:国知局
专利名称:将数据块存储到多个非易失存储器的闪存块的方法和系统的制作方法
技术领域
本发明涉及一种用于将逻辑数据块存储到与至少一个公共数据I/O总线相连的多个非易失存储器的闪存块的方法和系统,由此将缺陷闪存块的数据存储于别处。
技术背景对于(专业的)电影以及对实时数字高带宽视频信号(例如HDTV 信号、数字显影电影摄影技术)的视频记录或重放,需要非常快速的 存储器。可以将基于NAND闪存的系统用于流HD视频数据的存储。 在物理上以面向页的模式来访问闪存设备,由此一个"页"包括例如 1024个数据字和相关错误校正代码(ecc)。NAND闪存具有两个基本缺点-写存取相当慢;-具有无屏蔽的生产缺陷,并在其使用期间招致更多缺陷。所需 错误处理属于用户的职责。在特定闪存上,只可以对特定大小的数据块执行擦除操作。在下 文中,这些数据块由术语"闪存块"表示。例如,闪存块由64个页组 成。由于对闪存设备(例如NAND设备)的缺陷检测发生在例如擦除 操作期间,页中的缺陷使得整个闪存块不可用。这种缺陷闪存块不能 为文件系统所用。例如, 一种用于在操作期间解决偶发性缺陷的已知方法是通过相 应的信道编码或数据重传引入冗余。发明内容针对流视频的记录,相关文件系统必须提供表示为实时条件下未 使用的存储空间中的"逻辑块号码"的地址值,并且必须处理未寻址 的缺陷存储块。在高清晰度视频记录系统中,由于慢速写存取,必须 采用大量交织和并行的闪存设备。这意味着,将并行访问若干闪存设 备并且顺序访问同一总线上的所有设备,以维持所需流带宽。然而,上面所提到的用于引入冗余的方法具有需要存储设备的额 外带宽的缺点。但是在基于闪存的流视频记录系统中,增加闪存设备 的带宽是最关键并且最消耗资源的,因为这将导致对额外并行度的需 求,即额外系统大小、功率损耗和成本。可以使用20MHz的总线时钟来访问NAND闪存。写操作是最需 要实时的。在整页都进入存储设备之后,发布"程序"命令(即写命 令),该命令发起将数据从闪存内部页寄存器拷贝到实际的闪存单元。 这种页程序操作在最坏情况下需要700/zs。在这个时间段期间,不能访问页寄存器。然而,在该时间期间数据可以转移到同一总线上的其 他闪存中的页寄存器。在这个700//s的时间段内,当使用总线交织时, 可以将数据转移到与同一总线相连的10-15个其他闪存中。在针对页的每个程序或写操作之后,不管操作是否成功(即是否 出现缺陷),典型的NAND闪存提供状态信息。本发明所要解决的问题是在由于存储数据块缺陷的写错误的情 况下,为基于闪存的存储系统提供相应的错误处理。这个问题由权利 要求1中所公开的方法来解决。在权利要求2中公开了一种利用该方 法的存储系统。根据本发明,使用上述错误报告机制。不仅将视频数据写入非易 失闪存中,而且将其写入与闪存并行操作的一个或多个易失SRAM或 DRAM存储器中。对SRAM或DRAM的并行访问并不重要,因为与 闪存相比,这种存储设备提供了更为充足的带宽。将视频数据保存在 非易失存储器中,直到保存相应数据的闪存报告其程序或写操作成功 为止。 一旦上述情况发生,则可以覆写易失存储器中的数据,以节省 存储容量。如果闪存已经报告了错误,则将数据的相应逻辑块标记为 "坏的",并在到达整个记录所有数据的末端之前不再覆写该数据。此 时,到闪存的总线闲置,并且可以将整个带宽用于首先将闪存块中带
标记数据从相应的闪存(即已经报告了缺陷的闪存)拷贝到闪存内的多余闪存块,然后将相应的错误页从SRAM或DRAM存储器拷贝到 相应的多余闪存块中的相应页。有利地,这种将流数据并行存储到易失RAM (SRAM或DRAM)的行为不浪费带宽。优选地,逻辑文件系统块和物理存储块不具有相同的大小。逻辑 文件系统块是来自整个存储系统中所使用的所有闪存设备中的一个闪 存块的组合。当使用文件系统表时,这种逻辑文件系统块变成最小的 可寻址系统实体。文件系统将分开的表用于坏块重新映射和文件分配 (FAT)。使用"块间接表"将坏块映射保持在单一闪存等级上,每一 闪存设备一个块间接表。只有写入闪存是基于页执行的,由此所有闪存中的相同的页数N 形成了存储系统的逻辑页N。本发明有利于在不需要闪存的额外带宽的情况下对记录过程中 所获得的闪存缺陷的完全透明的屏蔽。这节省了系统大小、功率损耗 和成本。必须将额外SRAM/DRAM集成到存储系统中,但是这种额 外存储器很可能由于其他原因已存在。原理上,本发明方法适用于将逻辑数据块存储到存储系统,该存 储系统包括与至少一个公共数据I/O总线相连的多个非易失存储器, 其中,所述非易失存储器中的每一个都可以通过存储页物理地访问, 存储页中的每一个都包括多个数据字,所述非易失存储器中的每一个 都可以通过闪存块逻辑地访问,闪存块中的每一个都包括所述存储页 中的多页,所述方法包括以下步骤-将页数据块存储到多个非易失存储器的闪存块中,并且以循环 缓冲槽访问序列将页数据块并行存储到易失存储装置中的相应的缓冲 槽,由此所述易失存储器中的分别使用的存储容量小于所述非易失存 储器中的存储容量,以及由此,在写最后的空闲缓冲槽之后,所述序 列再次开始覆写第一缓冲槽。以及由此,如果所述非易失存储器中的一个或多个发信号通知 在记录当前页数据块时,该页数据块中出现错误,则相应地对所述易
失存储装置中的相应的当前缓冲槽-或相关表条目作标记,并在所述序 列的随后轮次中跳过所述带标记的缓冲槽,从而使其中所存储的数据保持不变;-在将数据记录到所述非易失存储器之后,将包含错误页数据的 所述易失存储装置中的闪存块数据拷贝到相应的闪存的空闲闪存块, 然后检查所述易失存储装置中的哪些缓冲槽或者哪些相关表条目带标 记,并将相应的页数据块数据从所述易失存储装置中的所述带标记的 缓冲槽拷贝到所述非易失存储器中的所述空闲闪存块中的相应页。原理上,本发明的存储系统将逻辑数据块存储在与至少一个公共 数据I/O总线相连的多个非易失存储器中,其中,所述非易失存储器 中的每一个都可以通过存储页物理地访问,存储页中的每一个都包括 多个数据字,所述非易失存储器中的每一个都可以通过闪存块逻辑地 访问,闪存块中的每一个都包括所述存储页中的多页,所述存储系统 包括-多个非易失存储器; -易失存储装置;-装置,用于将页数据块存储到多个非易失存储器的闪存块中, 并且以循环缓冲槽访问序列将页数据块并行存储到易失存储装置中的 相应的缓冲槽,由此所述易失存储装置中分别使用的存储容量小于所 述非易失存储器中的存储容量,以及由此在已经写入最后空闲缓冲槽 之后,所述序列再次开始覆写第一缓冲槽。以及其中,如果所述非易失存储器中的一个或多个发信号通知 在记录当前页数据块时,该页数据块中出现错误,则相应地对所述易 失存储装置中的相应的当前缓冲槽-或相关表条目作标记,并在所述序 列的随后轮次中跳过所述带标记的缓冲槽,从而使其中所存储的数据 保持不变;-装置,在将数据记录到所述非易失存储器之后,将包含错误页 数据的所述易失存储装置中的闪存块数据拷贝到相应闪存的空闲闪存 块,然后检查所述易失存储装置中的哪些缓冲槽或者哪些相关表条目 带标记,并将相应的页数据块数据从所述易失存储装置中的所述带标记的缓冲槽拷贝到所述非易失存储器中的所述空闲闪存块中的相应 页。在相应的从属权利要求中公开了本发明的有利的附加实施例。


参考附图,对本发明的示例性实施例进行描述,附图示出了 图.l本发明的存储系统的方框图;图2对要记录的数据的并行捕捉原理,以及对其余闪存块的顺序 拷贝;图3 SRAM存储器组织原理和地址序列。
具体实施方式
可以使用以下NAND闪存Samsung K9K2G16U0M-YCB000 (2Gbit, l[beta]bit oriented) , K9W4G08U0M画YCB000 (4Gbit, 8bit oriented), Toshiba TH58NVG2S3BFT00 (4Gbit, 8bit oriented) and MICRON MT29G08AAxxx (2Gbit, 8bit oriented), MT29G16AAxxx (2Gbit, l[beta]bit oriented)。图1中示出了针对存储设备的连接的总线结构。每条总线BSO、 BS1、…、BSN-I的特征在于28个闪存DO、 Dl、 D2、…、DN-2、 DN画I, 由此8条总线并行操作,总共相等于224个闪存设备。每条总线BSO、 BS1、 ...、 BSN-I可以向存储设备写入16位字100..15或者从存储设备 读取16位字100..15,并操作于20MHz。将这些数据输入/输出用于输 入命令、地址和数据,并用于在读取操作期间输出数据。在取消选择 该芯片或者输出无效时,1/0管脚拉高。RY/i^是指示设备操作状态的就绪/忙输出。当RY/i^为低,则 指示了程序、擦除或随机读取操作在进行中,并在完成时返回高状态。 RY/i^是开漏输出端,并且在取消选择该芯片或者使输出无效时不拉 高。可以将设备操作和/或来自IO0..15的数据的状态用于确定是否出 现写缺陷。
而是读使能信号,而Wi是写使能信号。读使能输入是连续数据 输出控制以及,当读使能输入为活跃时,将数据驱动到I/O总线上。 在读使能的下降沿之后(这也使得内部列地址计数器递增i),数据有 效。写使能输入控制对i/0 口的写操作。在写使能脉冲的上升沿锁存 命令、地址和数据。命令锁存使能输入CLE控制发送给命令寄存器的命令的活跃路 径。当高为有效时,在写使能信号的上升沿,通过I/0端口将命令锁 存到命令寄存器中。地址锁存使能输入ALE控制到内部地址寄存器的地址的活跃路 径。在ALE为高的写使能信号的上升沿锁存地址。^、函、^、 ...、 SSS-2禾卩SiS-l表示芯片使能输入端,并 且用于设备的选择控制。当设备处于忙状态时,忽略CE高,并且设 备不返回程序或擦除操作的备用模式。存储器或宏控制器单元MCTRL使用上面所列出的信号来控制所 有闪存设备。控制器MCTRL接收用于记录的视频数据VD,或者输 出己记录的视频数据VD用以重放。额外存储装置RAM (SRAM和/ 或DRAM)与控制器单元MCTRL相连,并存储当前视频数据、所需 文件系统以及缺陷块重新映射表。当写入时,在每个闪存块中逐页地或者逐闪存块地访问每个闪 存。每一页逐存储器地访问一次存储器的内存库。优选地采用SRAM (例如2*208"),以保持接口连接尽可能简 单。将SRAM组织为80MHz的64比特总线-因此提供了相等的带宽。 所有缓冲管理都发生在逻辑文件系统块等级上,由此逻辑块远大于闪 存快。在对页等级的每次写操作之后,闪存报告其错误状态。SRAM可以拥有高达16个的逻辑文件系统块。由此,该系统可 以屏蔽至少16个缺陷,或者甚至多个缺陷落入同一逻辑文件系统。当 考虑到闪存设备的错误统计时,有利地,本发明的存储系统的故障之 间的所产生的平均时间远超过用户所关注的。还可以将相同的SRAM 用于保存上面所提到的文件系统和错误处理表。图2在其顶部示出了将待记录的(页)视频数据VD并行写入闪
存以及SRAM中。在其底部,图2描述了在记录到闪存期间发生写错 误的情况下,将(页)视频数据从SRAM拷贝到其余闪存块。在已经 完成相应的数据记录操作之后,立即执行该拷贝操作。图3中的SRAM存储组织原理示出了多个缓冲槽,每个缓冲槽包 含逻辑页数据块LFSB。使用输入视频数据来逐槽地填满SRAM中相 应的存储区域,此处理由当前缓冲地址序列CBAS描述。在写入最后 的空闲缓冲槽之后,该序列再次开始覆写第一缓冲槽。如果闪存内存 库发信号通知在记录当前逻辑页数据块时,闪存块中产生错误,则 相应地对SRAM中相应的当前槽(或相应的表)作标记。灰色或阴影 槽标记了包含与相关闪存中的缺陷闪存块相对应的数据的逻辑页数据 块FSBD。 SRAM槽访问序列将在随后的轮次中跳过带标记的缓冲槽 (以及所有其他带标记的槽),以保持这里所存储的数据不变。在已经将数据记录到闪存内存库DO、 Dl、 D2、 ...、 DN-2、 DN-1 之后,将文件分配和坏块重新映射表用于检查闪存中的哪些闪存块可 以存储另外的视频数据。在下文中,将包含一个或多个页错误的闪存 块中所存储的视频数据拷贝到闪存的相应的空闲(无缺陷)闪存块中。 然后,立即将SRAM中所存储的所需无错误页数据从SRAM中的带 标记槽拷贝到闪存块数据中的相应的错误页,将该闪存块数据刚刚被 存储在闪存中的空闲闪存块之前。根据上述逻辑块分层,逻辑文件系统块包含28M字节,而典型的 现有技术中的文件系统的特征在于千字节范围内的块大小。例如,该 文件系统只包含2048个逻辑块。可以存储在存储系统中的文件的最大 数是255加上一个表示空逻辑块列表的附加文件。然而,典型数量<20。 在最差情况下,这将表示每个文件的末尾部分填满可能导致未使用空 间量达到总存储容量的12.5%,但在实际上<2%的值更加符合实际。在从存储系统中读取视频数据时,由逻辑文件系统所控制,从闪 存中读出代替的闪存块数据,而不是错误的闪存块。
权利要求
1.一种用于将逻辑数据块存储到存储系统的方法,所述存储系统包括与至少一个公共数据I/O总线(IO0..15)相连的多个非易失存储器(D0、D1、D2、...、DN-1),其中,所述非易失存储器中的每一个都能够通过存储页物理地访问,所述存储页中的每一个都包括多个数据字,所述非易失存储器中的每一个都能够通过闪存块逻辑地访问,所述闪存块中的每一个都包括所述存储页中的多页,所述方法包括以下步骤-将(MCTRL)页数据块存储到多个非易失存储器的闪存块中,并且以循环缓冲槽访问序列(CBAS)将页数据块并行地存储到易失存储装置(RAM)中的相应的缓冲槽,由此所述易失存储装置中分别使用的存储容量小于所述非易失存储器中的存储容量,以及由此,在写最后的空闲缓冲槽之后,所述序列再次开始覆写第一缓冲槽,以及由此,如果所述非易失存储器中的一个或多个发信号通知在记录当前页数据块时,该页数据块中出现错误,则相应地对所述易失存储装置(RAM)中的相应的当前缓冲槽或相关表条目作标记(FSBD),并在所述序列的随后轮次中,跳过所述带标记的缓冲槽,从而使其中所存储的数据保持不变;-在将数据记录到所述非易失存储器之后,将包含错误页数据的所述易失存储装置中的闪存块数据拷贝到相应的闪存的空闲闪存块,然后检查(MCTRL)所述易失存储装置中的哪些缓冲槽或者哪些相关表条目带标记,并将相应的页数据块数据从所述易失存储装置中的所述带标记的缓冲槽拷贝到(MCTRL)所述非易失存储器中的所述空闲闪存块中的相应页。
2. —种用于将逻辑数据块存储到与至少一个公共数据I/O总线 (IO0..15)相连的多个非易失存储器(D0、 Dl、 D2.....DN-1)的存储系统,其中,所述非易失存储器中的每一个都能够通过存储页物 理地访问,所述存储页中的每一个都包括多个数据字,所述非易失存储器中的每一个都能够通过闪存块逻辑地访问,所述闪存块中的每一个都包括所述存储页中的多页,所述存储系统包括 -多个非易失存储器(D0、 Dl、 D2、 ...、 DN-1);-易失存储装置(RAM);-装置(MCTRL),用于将页数据块存储到多个非易失存储器的 闪存块中,并且以循环缓冲槽访问序列(CBAS)将页数据块并行存 储到易失存储装置(RAM)中的相应的缓冲槽,由此所述易失存储装 置中分别使用的存储容量小于所述非易失存储器中的存储容量,以及 由此在已经写入最后空闲缓冲槽之后,所述序列再次开始覆写第一缓 冲槽,以及其中,如果所述非易失存储器中的一个或多个发信号通知 在记录当前页数据块时,该页数据块中出现错误,则相应地对所述易失存储装置(RAM)中的相应的当前缓冲槽或相关表条目作标记 (FSBD),并在所述序列的随后轮次中跳过所述带标记的缓冲槽,从 而使其中所存储的数据保持不变;-装置(MCTRL),在将数据记录到所述非易失存储器之后,将 包含错误页数据的所述易失存储装置中的闪存块数据拷贝到相应闪存 的空闲闪存块,然后检査(MCTRL)所述易失存储装置中的哪些缓冲 槽或者哪些相关表条目带标记,并将相应的页数据块数据从所述易失 存储装置中的所述带标记的缓冲槽拷贝(MCTRL)到所述非易失存储 器中的所述空闲闪存块中的相应页。
3. 如权利要求1所述的方法,或权利要求2所述的系统,其中, 所述非易失存储器是NAND闪存。
4. 如权利要求1或3所述的方法,或权利要求2或3所述的系统, 其中,所述存储系统实时存储或重放流视频数据(VD)。
5. 如权利要求1、 3禾Q 4之一所述的方法,或权利要求2到4之一 所述的系统,其中,以循环连续的顺序执行对所述非易失存储器(DO、 Dl、 D2、…、DN-1)的访问。
6. 如权利要求3到5之一所述的方法或系统,其中,为了屏蔽所 述NAND闪存的存储单元中的缺陷,将块间接表(IRTBL)分配给所述NAND闪存中的每一个,所述块间接表(IRTBL)将逻辑数据块地 址值映射到与无缺陷闪存块相关的物理地址值。
7. 如权利要求6所述的方法或系统,其中,所述存储系统包括宏 或存储控制装置(MCTRL),所述宏或存储控制装置(MCTRL)控制 所述至少一个公共数据I/O总线(IO0...15),并且所述控制装置(MCTRL)与存储所述块间接表(IRTBL)的RAM存储装置(RAM) 相连。
8. 如权利要求1和3到7之一所述的方法,或如权利要求2到7 之一所述的系统,其中,所述RAM存储装置是SRAM存储器。
全文摘要
需要用于记录或重放实时数字HDTV信号的快速存储器。可以将基于NAND闪存的系统用于流HD视频数据的存储。然而,NAND闪存具有慢写存取,并且具有无屏蔽的生产缺陷。只能够对完整的物理数据块执行写或读操作,并且缺陷数据块不能为文件系统所用。使用大于物理数据块的逻辑文件系统块。根据本发明,利用NAND闪存的误差报告机制。不仅将视频数据写入非易失闪存,而且将其写入并行操作的易失SRAM或DRAM存储器中的相应的缓冲槽(LFSB)。将视频数据保持在易失存储器中,直到保存相应数据的闪存报告其程序或写操作成功。一旦发生上述情况,则可以覆写易失存储器内的数据,以节省存储容量。如果闪存已经报告了错误,则将数据中的相应块(FSBD)标记为坏的,并在到达整个记录所有数据(take)的末端之前不对该数据中的相应块进行覆写。此时,将带标记的视频数据从易失存储器拷贝到闪存内的其余闪存块。
文档编号G06F3/06GK101156129SQ200680011645
公开日2008年4月2日 申请日期2006年3月20日 优先权日2005年4月15日
发明者延斯·彼得·维滕堡, 汤姆森·布鲁内 申请人:汤姆森许可贸易公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1