存储器控制器的制作方法

文档序号:6477499阅读:156来源:国知局
专利名称:存储器控制器的制作方法
技术领域
本公开涉及存储器控制器,并且更具体地涉及用于非易失性半导体存 储器的存储器控制器。
背景技术
这里提供的背景描述是用于一般地呈现本公开的上下文的目的的。当 前指定的发明人在本背景部分所描述的工作以及在提交时不能充当现有技 术的描述的各方面不被明确地或隐含地承认作为针对本公开的现有技术。
现在参考图1、 2A和2B,非易失性半导体存储器IO可以包括闪存、 静态随机存取存储器(SRAM)、氮化物只读存储器(NROM)、相变存 储器、磁RAM、多态存储器等。非易失性半导体存储器10可以包括一个 或多个阵列16。阵列16可以被布置为B个存储块18-1、 18-2,...,以及 18-B (总称为块18)。
在图2A中,每个块18包括P个页20-1、 20-2,以及20-P (总称 为页20)。在图2B中,每个页20可以包括与数据部分24相关联的多个 存储单元,并且可以包括与诸如错误检查与校正(ECC)数据或其它 (0)开销数据之类的开销数据部分26相关联的其它存储单元。
非易失性半导体存储器10通常与主机设备的存储器控制器通信。通 常,控制器利用硬连线(hardwired)块大小来对存储器编址。块中的页也 可以具有硬连线页大小。通常,数据和开销部分24和26中的若干存储单元也分别被硬连线。
仅作为示例,对于总计2千兆字节(GB)的存储器,典型的NAND 闪存阵列可以包括2048个块。每个块可以包括64个页中的128千字节 (kB)。每个页可以包括2112字节。在2112字节中,2048字节可与数据 部分相关联,而64字节可与开销部分相关联。每个存储单元可以存储一 比特。为了擦除存储在阵列中的数据,存储器控制器通常需要擦除整块和/ 或整页。
在图2C中,存储块48包括预定义的页50-1、 50-2,...,以及50-P
(总称为页50)。每个页50包括用于数据部分的Y个存储单元(存储单 元46-l、 46-2,...,以及46-Y)以及用于开销部分的Z个存储单元(存储 单元46- (Y+l) 、 46- (Y+2),…,以及46- (Y+Z),其中,对于特定 存储器控制器,Y和Z是固定值。在针对第一写数据块的第一写操作期 间,存储器控制器将数据写入页50-3的一部分以及页50-1和50-2中。在 针对第二写数据块的第二写操作期间,数据被写入页50-6的一部分以及页 50-4禾卩50-5中。页50-3和页50-6中余下的存储单元未被使用,这是低效 率的。此外,该存储器控制器必须与具有相同预定义配置的存储阵列一起 使用。

发明内容
一种非易失性(NV)存储器控制器,包括页配置模块,页配置模块 与包括B个存储块的NV存储阵列通信,每个存储块包括包含了多个存储 单元的P个页。该控制器选择性地调节与P个页中的至少一页相关联的存 储单元的数目,并且基于其生成存储器映射(memory map)。该控制器还 包括写模块或读模块的至少一个,写模块基于存储器映射选择性地将数据 写入NV存储阵列,读模块基于存储器映射选择性地从NV存储阵列读数 据。
在其它特征中,存储器映射存储P个页的每页中的存储单元的开始和 结束点。页配置模块选择性地调节存储在P个页的至少一页中的多个存储 单元的至少一个存储单元中的比特的数目。页配置模块还可以选择性地调节P个页的数目。页配置模块相对于P个页的至少一页中存储差错检查和
校正(ECC)数据的存储单元的数目来选择性地调节存储数据的存储单元 的数目。存储器映射存储所述P个页的至少一页中的数据部分和ECC部 分的存储单元的开始和结束点。
在其它特征中,类型确定模块确定NV存储阵列的存储类型,并且基 于存储类型生成存储器映射。页配置模块基于要存储在P个页的至少一页 中的数据的类型来选择性地配置所述P个页的至少一页中的存储单元。存 储器测试模块确定所述P个页的至少一页中的存储单元的差错率。页配置 模块基于差错率来确定比特的数目。页配置模块选择性地对P个页的至少 一页的数据部分中的每个存储单元设置第一数目的比特,并且选择性地对 所述P个页的至少一页的开销部分中的每个存储单元设置第二数目的比 特。第一数目和第二数目不同。
在其它特征中, 一种用于操作非易失性(NV)存储器控制器的方 法,包括选择性地调节与NV存储阵列的P个页中的至少一页相关联的 存储单元的数目。NV存储阵列包括B个存储块,每个存储块包括P个 页。该方法还包括基于对存储单元的数目的调节来生成存储器映射。该方 法还包括基于存储器映射选择性地向NV存储阵列写数据以及基于存储 器映射选择性地从NV存储阵列读数据中的至少一个。
在其它特征中,该方法包括将P个页的每页中的存储单元的开始和结 束点存储在存储器映射中。该方法还包括选择性地调节存储在P个页的至 少一页中的多个存储单元的至少一个存储单元中的比特的数目。该方法还 包括相对于P个页的至少一页中存储差错检査和校正(ECC)数据的存储 单元的数目来选择性地调节存储数据的存储单元的数目。
在其它特征中,该方法包括将所述P个页的至少一页中的数据部分和 ECC部分的存储单元的开始和结束点存储在存储器映射中。该方法还包括 确定NV存储阵列的存储类型并且基于存储类型生成存储器映射。该方法 还包括基于要存储到P个页的至少一页中的数据的类型来选择性地配置所 述P个页的至少一页中的存储单元。该方法还包括确定所述P个页的至少 一页中的存储单元的差错率。在其它特征中,该方法包括基于差错率来确定比特数目。该方法还包 括选择性地对P个页的至少一页中的数据部分中的每个存储单元设置第一 数目的比特。该方法还包括选择性地对所述P个页的至少一页的开销部分 中的每个存储单元设置第二数目的比特。第一数目和第二数目不同。
在其它特征中, 一种非易失性(NV)存储器控制器,包括页配置
装置,该页配置装置与包括B个存储块的NV存储阵列通信,每个存储块
包括p个页,每页包括多个存储单元。页配置装置选择性地调节与p个页 的至少一页相关联的存储单元的数目,并且基于其生成存储器映射。该控 制器还包括写装置和读装置的至少一个,写装置基于存储器映射选择性地 向存储阵列写数据,读装置基于存储器映射选择性地从存储阵列读数据。 在其它特征中,存储器映射存储p个页的每页中的存储单元的开始和 结束点。页配置装置选择性地调节存储在p个页的至少一页的多个存储单 元中的至少一个存储单元中的比特的数目。页配置装置相对于p个页的至
少一页中存储差错检查和校正(ECC)数据的存储单元的数目来选择性地 调节存储数据的存储单元的数目。存储器映射存储所述P个页的至少一页 中的数据部分和ECC部分的存储单元的开始和结束点。
在其它特征中,NV存储器控制器包括用于确定NV存储阵列的存储 类型的类型确定装置,其基于存储类型来生成存储器映射。页配置装置基 于要存储在P个页的至少一页中的数据的类型来选择性地配置所述P个页 的至少一页中的存储单元。 一种NV存储器系统包括该存储器控制器并且
还包括NV存储阵列。
在其它特征中,NV存储器控制器包括存储器测试装置,存储器测试 装置用于确定所述P个页的至少一页中的存储单元的差错率。页配置装置 基于差错率来确定比特的数目。页配置装置选择性地对P个页的至少一页 的数据部分中的每个存储单元的设置第一数目的比特,并且选择性地对所 述P个页的至少一页的开销部分中的每个存储单元设置第二数目的比特。 第一数目和第二数目不同。
在又一特征中,利用由一个或多个处理器执行的计算机程序来实现上 述系统和方法。计算机程序可以驻留在计算机可读介质上,计算机可读介质例如但不限于存储器、非易失性数据存储装置和/或其它合适的有形存储 介质。
被存储以供处理器用来控制非易失性(NV)存储器的计算机程序选
择性地调节与NV存储阵列的P个页的至少一页相关联的存储单元的数 目。NV存储阵列包括B个存储块,每个存储块包括P个页。该计算机程
序包括基于对存储单元的数目的调节来生成存储器映射。该计算机程序 还包括基于存储器映射选择性地向NV存储阵列写数据以及基于存储器
映射选择性地从NV存储阵列读数据中的至少一个。
在其它特征中,该计算机程序包括将P个页的每页中的存储单元的
开始和结束点存储在存储器映射中。该计算机程序还包括选择性地调节存 储在p个页的至少一页中的多个存储单元的至少一个存储单元中的比特的 数目。该计算机程序还包括相对于p个页的至少一页中存储差错检查和校
正(ECC)数据的存储单元的数目来选择性地调节存储数据的存储单元的数目。
在其它特征中,该计算机程序包括将所述p个页的至少一页中的数据
部分和ECC部分的存储单元的开始和结束点存储在存储器映射中。该计算 机程序还包括确定NV存储阵列的存储类型。该计算机程序还包括基于存 储类型生成存储器映射。该计算机程序还包括基于要存储到P个页的至少 一页中的数据的类型来选择性地配置所述P个页的至少一页中的存储单 元0
在其它特征中,该计算机程序还包括确定所述P个页的至少一页中的 存储单元的差错率。该计算机程序包括基于差错率来确定比特的数目。该 计算机程序还包括选择性地对P个页的至少一页中的数据部分中的每个存 储单元设置第一数目的比特。计算机程序还包括选择性地对所述P个页的 至少一页的开销部分中的每个存储单元设置第二数目的比特。第一数目和 第二数目不同。
在其它特征中, 一种存储器控制器,包括页配置模块,页配置模块与 包括B个存储块的存储阵列通信,每个存储块包括P个页。页配置模块选 择性地配置B个存储块的每个存储块的P个页中的存储单元,以使每个单元存储1至T比特。页配置模块还基于该配置来生成存储器映射。B、 P
和T是大于1的整数。该存储器控制器还包括写模块和读模块的至少一
个,写模块基于存储器映射选择性地向存储阵列写数据,读模块基于存储 器映射选择性地从存储阵列读数据。
在其它特征中,B个块中的一块的P个页的至少一页中的存储单元存 储第一数目的比特。B个块中的另一块的P个页的至少一页中的存储单元 存储第二数目的比特。第一数目和第二数目是不同的并且被存储在存储器 映射中。存储阵列包括第一部分,第一部分包含了 B个块中的至少一块。 与B个块中的至少一块的P个页相关联的存储单元被配置为存储一比特。 存储阵列包括第二部分,第二部分包含了B个块中的其它块。与B个块中 的其它块的P个页相关联的存储单元被配置为存储多于一比特。
在其它特征中,第一部分存储引导代码。第一部分还存储用于配置第 二部分的配置数据。存储器映射存储P个页的每页中的存储单元的开始和 结束位置。页配置模块基于由P个页的各页中的存储单元存储的比特数目 来选择P个页的各页中的存储单元的数目。存储器映射存储所述P个页的 至少一页中用于差错检查和校正(ECC)部分以及数据部分的存储单元的 开始和结束位置。页配置模块相对于ECC部分的至少一个部分中存储 ECC数据的存储单元的数目来选择性地调节存储数据的存储单元的数目。
在其它特征中,页配置模块基于要存储在P个页的至少一页中的数据 的类型来选择性地配置P个页的至少一页中的存储单元。存储器测试模块 确定P个页的至少一页中的存储单元的差错率。页配置模块基于差错率来 确定由P个页的至少一页存储的比特数目。
在其它特征中, 一种用于操作存储器控制器的方法包括配置B个存 储块中的每个存储块的P个页中的存储单元,以使每单元存储1至T比 特。该方法还包括基于该配置来生成存储器映射,其中,B、 P和T是大 于1的整数。该方法还包括基于存储器映射选择性地向存储阵列写数据 以及基于存储器映射选择性地从存储阵列读数据中的至少一个。
在其它特征中,该方法包括在B个块中的一块的P个页的至少一页中 的存储单元中存储第一数目的比特。该方法还包括在B个块中的另一块的P个页的至少一页中的存储单元中存储第二数目的比特。第一数目和第二
数目不同。该方法还包括将与存储阵列的第一部分中的B个块中的至少一 块的P个页相关联的存储单元配置为存储一比特。该方法还包括将与B个 块中的其它块的存储阵列的第二部分中的P个页相关联的存储单元配置为 存储多于一比特。
在其它特征中,该方法包括将引导代码存储在第一部分中。该方法还 包括将用于配置第二部分的配置数据存储在第一部分中。该方法还包括将 P个页的每页中的存储单元的开始和结束位置存储在存储器映射中。该方 法还包括基于P个页中各页的存储单元所存储的比特数目来选择P个页的 各页中的存储单元的数目。
在其它特征中,方法包括将P个页的至少一页中用于数据部分和差错 检査和校正(ECC)部分的存储单元的开始和结束位置存储在存储器映射 中。该方法还包括相对于ECC部分的至少一个部分中存储ECC数据的存 储单元的数目来选择性地调节存储数据的存储单元的数目。该方法还包括 基于要存储在P个页的至少一页中的数据的类型来选择性地配置P个页的 至少一页中的存储单元。
在其它特征中, 一种存储器控制器,包括用于与存储数据的存储装置 通信的页配置装置,存储装置包括B个存储块,每个存储块包括P个页。 页配置装置选择性地对B个存储块中的每个存储块的P个页中的存储单元 进行配置以使每个单元存储1至T比特,并且基于该配置来生成存储器映 射。B、 P禾n T是大于1的整数。该存储器控制器还包括写装置和读装置 中的至少一个,写装置基于存储器映射选择性地向存储阵列写数据,读装 置基于存储器映射选择性地从存储阵列读数据。
在其它特征中,B块中的一块的P个页的至少一页中的存储单元存储 第一数目的比特,并且B块中的另一块的P个页的至少一页中的存储单元 存储第二数目的比特。第一数目和第二数目不同并且被存储在存储器映射 中。存储装置包括第一部分,第一部分包括B个块中的至少一块。与B个 块中的至少一块中的P个页相关联的存储单元存储一比特。存储装置包括 第二部分,第二部分包括B个块中的其它块。与B个块中的其它块中的P200880019550.0 个页相关联的存储单元被配置为存储多于一比特。
在其它特征中,第一部分存储引导代码。第一部分还存储用于配置第 二部分的配置数据。存储器映射存储P个页的每页中的存储单元的开始和 结束位置。页配置装置基于由P个页的各页中的存储单元所存储的比特数 目来选择P个页的各页中的存储单元的数目。存储器映射存储P个页的至 少一页中用于数据部分和差错检查和校正部分(ECC)部分的存储单元的
开始和结束位置。页配置装置相对于ECC部分的至少一个部分中存储 ECC数据的存储单元的数目来选择性地调节存储数据的存储单元的数目。
在其它特征中,页配置装置基于要存储在P个页的至少一页中的数据 的类型来选择性地配置P个页的至少一页中的存储单元。存储器控制器包 括存储器测试装置,用于确定P个页的至少一页中的存储单元的差错率。 页配置装置基于差错率来确定由P个页的至少一页存储的比特的数目。
在又一特征中,利用由一个或多个处理器执行的计算机程序来实现上 述系统和方法。计算机程序可以驻留在一个或多个计算机可读介质上,计 算机可读介质例如但不限于存储器、非易失性数据存储装置和/或其它合适 的有形存储介质。
一种被存储以供处理器操作用来操作存储器的计算机程序,包括对
B个存储块中的每个存储块的P个页中的存储单元进行配置,以使每个单 元存储1至T比特。该计算机程序还包括基于该配置来生成存储器映射, 其中B、 P和T是大于1的整数。计算机程序还包括基于存储器映射选择 性地向存储阵列写数据以及基于存储器映射选择性地从存储阵列读数据中 的至少一个。
在其它特征中,该计算机程序包括在B个块中的一块的P个页的至少 一页的存储单元中存储第一数目的比特。该计算机程序还包括在B个块中 的另一块的P个页的至少一页中的存储单元中存储第二数目的比特。计算 机程序还包括将第一数目和第二数目存储在存储器映射中。第一数目和第 二数目不同。
在其它特征中,该计算机程序包括对与存储阵列的第一部分中的B个 块中的至少一块中的P个页相关联的存储单元进行配置以存储一比特。该计算机程序还包括对与B个块中的其它块中的存储阵列的第二部分中的P 个页相关联的存储单元进行配置以存储多于一比特。
在其它特征中,该计算机程序包括将引导代码存储在第一部分中。该 计算机程序还包括将用于配置第二部分的配置数据存储在第一部分中。该 计算机程序还包括将P个页的每页中的存储单元的开始和结束位置存储在 存储器映射中。该计算机程序还包括基于P个页的各页中的存储单元所存 储的比特数目来选择P个页的各页中的存储单元的数目。
在其它特征中,该计算机程序还包括将P个页的至少一页中用于数据
部分和差错检查和校正(ECC)部分的存储单元的开始和结束位置存储在 存储器映射中。该计算机程序还包括相对于ECC部分的至少一个部分中存 储ECC数据的存储单元的数目来选择性地调节存储数据的存储单元的数 目。该计算机程序还包括基于要存储在P个页的至少一页中的数据的类型 来选择性地配置P个页的至少一页中的存储单元。
将从此后提供的详细描述中清楚本公开的其它应用领域。应当明白, 表示本公开的优选实施例的详细描述和具体示例打算仅用于说明性的目 的,而不希望限制本公开的范围。


从详细描述和附图将更全面地理解本公开,在附图中
图1是根据现有技术的包括块的存储器的功能框图2A图示出了根据现有技术的存储器的块内的页;
图2B图示出了根据现有技术的页内的存储单元;
图2C图示出了根据现有技术布置在存储块中的存储单元;
图3A是根据本公开的具有可调节存储器控制器的存储器系统的功能 框图3B图示出了包括具有可变密度、页长度和/或开销的页的存储块; 图3C图示出了包括与数据部分和开销部分相关联的存储单元的页;
图3D是图3A的存储器系统的更详细的示例功能框图3E图示出了示例性存储器映射;图4A图示出了示例性存储块的页; 图4B图示出了块中的其它示例性页; 图5A是硬盘驱动器的功能框图5B是DVD驱动器的功能框图5C是高清晰电视机的功能框图; 图5D是车辆控制系统的功能框图; 图5E是蜂窝电话的功能框图; 图5F是机顶盒的功能框图;以及
图5G是移动设备的功能框图。
具体实施例方式
下面的描述实际上仅仅是示例性的,并且决不打算限制本公开、其应 用或使用。为了清楚的目的,在附图中将使用相同的标号来标识类似的元 件。如在这里所使用的,术语模块、电路和/或设备指专用集成电路
(ASIC)、电子电路、执行一个或多个软件或固件程序的(共享的、专用 的或成组的)处理器以及存储器、组合逻辑电路,和/或提供所描述的功能 的其它合适组件。应当明白,在不改变本公开的原理的情况下,可以以不 同顺序来执行方法中的步骤。
本公开描述了可以与具有不同配置的存储器以及可重新配置的存储器 一起操作的存储器控制器。例如,为了增大存储器存储量,存储阵列可以 包括存储多于一比特的存储单元。当存储器包括多比特存储单元时,不可 以使用具有硬连线块和页排列的存储器控制器。例如,如果每个存储单元 存储2比特,则每页需要传统存储阵列的存储单元的一半。换言之,当存 储在每个存储单元中的电平(level)或比特数M增大时,每页的存储单元 的大小或数目就减少1/M。如果存储器控制器被硬连线以用于固定的块和 页大小,则该存储器控制器将不能适应多比特存储单元。
另外,某些类型的数据可能不能适当地与传统控制器的预配置页大小 相配。由于必须以组来擦除页和/或块,因此,页的很多部分可能未被使 用,这是低效率的。本公开描述了一种可以调节或改变页长度和/或单元密度的存储器控制器。可变页长度是指改变一页或多页的存储单元的数目。 可变单元密度是指改变每个存储单元中所存储的比特的数目。
当具有传统设计的存储器控制器被设置来处理多比特存储单元时,这 些控制器则不能够处理具有单比特存储单元的传统存储器。每单元存储多 于一比特的存储单元趋向于具有较高的差错率。因此,为诸如纠错码
(ECC)之类的开销分配的比特数目可取决于每单元的比特数目而不同。 对于诸如相变存储器之类的某些类型的存储器,差错率可因集成电路不同 而不同。诸如相变存储器之类的一些存储器可以被配置为每存储单元存储 不同数目的比特。随着每单元的比特数目增大,差错率也可能趋向于增 大。
本公开公开了一种对存储块中的一页或多页进行选择性地配置以使其 具有可变存储单元开始位置/点以及结束位置/点或物理地址的存储器控制 器。块大小可以保持固定。该存储器控制系统还可以选择性地改变由每个 存储单元存储的密度(换言之,比特数目)。此外,还可以改变页中针对 数据部分分配的存储单元数目相对于为开销部分分配的存储单元数目之间 的关系。
现在参考图3A-3D,图示出了用于非易失性半导体存储器68的可调 节存储器系统66。在图3A中,主机设备70包括可调节存储器控制器 72。可调节存储器控制器72可以改变非易失性半导体存储器68中的每个 页中的存储单元的数目。可调节存储器控制器72可以改变每个页中针对 数据部分以及开销部分分配的存储单元的数目。可调节存储器控制器72 可以改变每个存储单元所存储的密度(比特数目)。
非易失性半导体存储器68可以包括一个或多个存储单元阵列78-1、 78-2,…,以及78-A (总称为阵列78)。阵列78可以以存储块80-1、 80-2,…,以及80-X (总称为块80)来布置。在图3B中,每个块80包括页 82-1、 82-2,...,以及82-Q (总称为页82)。可调节存储器控制器72可以 改变每个页的存储单元的数目、每个存储单元的比特数目和/或分别与数据 部分和开销部分相关联的存储单元的相对数目。在图3C中,每个页82包 括与数据部分90相关联的存储单元以及与开销部分92相关联的其它存储单元。
在图3D中,可调节存储器控制器72与存储器68通信。可调节存储 器控制器72包括生成存储器映射112的页配置模块110、类型确定模块 114和,/或存储器测试模块115。测试模块115可以通过写入己知值、将它 们读回来并将读回值与已知值相比较来确定各种密度的存储单元的差错 率。类型确定模块114可以用来确定连接到存储器68的存储器类型。类 型确定模块114可以使用任何方法,例如但不限于与存储器68通信并且 接收配置信息。配置信息可以存储在存储器68的具有标准或预定配置的 设置部分。可调节存储器控制器72可以读取该设置部分并且可以配置存 储器68的其余部分。
例如,存储器68的设置部分可以被配置来存储一比特或其它预定数 目的比特。页长度可以基于预定比特数目来设置。换言之,设置部分可以 具有标准或预定配置。存储器68的其余部分可以由页配置模块110基于 存储在设置部分的数据、代码或其它信息来配置。存储器68的设置部分 可在操作期间由页配置模块110写入,以允许改变配置。存储器映射或其 部分也可以存储在设置部分。
一旦确定了存储器类型,类型确定模块114可以将存储器配置信息传 输给页配置模块110。基于该信息,页配置模块110可以确定其余部分的 每个存储单元的比特数目。页配置模块110可以确定每页的开始和停止位 置或物理地址。页配置模块110还可以确定数据部分的比特或字节数目相 对于开销部分的比特或字节数目的关系。页配置模块110可以生成存储器 映射112。换言之,页配置模块110可以确定每页的开始和结束位置或地 址、存储单元的密度、每页的ECC/0字节的数目,并且基于它们生成存储 器映射112。
可调节存储器控制器72包括写模块118和读模块120,这些模块基于 存储器映射112从存储器68读数据以及向存储器68写数据。写模块118 和读模块120分别可以利用列和行选择模块(未示出)来选择存储器68 中的存储单元。在写操作期间,写模块118选择写目标单元,写目标单元 可以包括任意数目的存储单元,例如特定单元、单元行、单元列、单元块、单元页等。
一旦写目标单元被选择,写模块118就生成写信号。
在读操作期间,读模块120选择读目标单元,读目标单元可以包括任
意数目的存储单元,例如特定单元、单元行、单元列、单元块、单元页
等。 一旦读目标单元被选择,读模块120就读取读目标单元。
在图3E中,存储器映射112可以包括页中的存储单元的开始和结束 位置。存储器映射112还可以包括页中的数据部分以及开销部分的开始和 结束位置。
现在参考图4A,可调节存储器控制器72可以在保持页大小恒定的同 时重新配置每个单元的比特数目(单元密度),基于每个存储单元的比特 数目来增大/减小页大小,和/或改变用于数据部分和/或开销部分的存储单 元数目。如果单元密度改变,则存储器映射112可以用来标识一页或多页 和/或页群组、 一块或多块和/或块群组和/或整个存储器的单元密度。
一页或多页的数据部分可以包括R个存储单元,每个存储单元存储S 比特。 一个或多个开销部分可以包括W个存储单元,每个存储单元存储T 比特,其中S和T是大于O的整数。S可以等于T或不等于T。
虽然图4A示出了被布置为行的页的存储单元,然而,页的存储单元 可以不必在同一行中。现在参考图4B,页可以因页不同而具有不同长 度,并且可以包括一行或多行。
通过可配置的单元密度和/或页大小,存储器控制器可以与不同存储阵 列结构一起使用。这些差异可能是由设计(即,用于不同产品的单个解决 方案控制器)引起的或者可能是制造时的不确定性的结果(即, 一些存储 器可能能够获得较低的噪声和较高的精度,从而允许较高的密度)。
页配置模块可以基于要存储的数据的类型来设置每个页的密度和/或 ECC/0字节的数目。例如,与程序代码或其它对差错较敏感的数据相比, 诸如音乐和/或视频数据之类的数据能够处理较高的数据速率。
页配置模块可以基于要存储的数据的类型来改变密度。例如,视频和 音频可以由于它们承受差错的能力而具有较高的密度。诸如代码、数字数 据、用户文件等较敏感的数据可以以较低的密度来存储,以使得能够具有 较低的数据差错率。随着每个存储单元的比特数目的增大,差错率也趋向于增大。页配置 模块可以改变数据部分和开销部分的单元密度。因此,.页配置模块可以增 大用于可以承受较高差错率的数据的每个存储单元的比特数目。仅作为示 例,用于音频和视频数据的每个存储单元的比特数目可以较高。对于对差 错较敏感的数据,每个存储单元的比特数目可以被设置得较低。
现在参考图5A-5G,示出了包括本公开的教导的各种示例性实施方式。
现在参考图5A,可以在硬盘驱动器(HDD) 400的存储器中实现本公 开的教导。HDD 400包括硬盘配件(HDA) 401和HDD PCB 402。 HDA 401可以包括诸如存储数据的一个或多个盘片之类的磁介质403,以及读/ 写设备404。读/写设备404可以被布置在致动臂405上,并且可以在磁介 质403上读和写数据。另外,HDA 401包括旋转磁介质403的主轴马达 (spindle motor) 406,以及对致动臂405进行致动的音圈马达(voice-coil motor, VCM) 407。前置放大设备408在读操作期间放大由读/写设备404 生成的信号,并且在写操作期间向读/写设备404提供信号。
HDD PCB 402包括读/写通道模块(此后称为"读通道")409、硬盘 控制器(HDC)模块410、缓冲器411、非易失性存储器412、处理器413 以及主轴/VCM驱动器模块414。读通道409对从前置放大设备408接收 的以及发送给前置放大设备408的数据进行处理。HDC模块410控制 HDA 401的组件并且经由1/0接口 415与外部设备(未示出)通信。外部 设备可以包括计算机、多媒体设备、移动计算设备等。I/O接口 415可以 包括有线和/或无线通信链路。
HDC模块410可以接收来自HDA401、读通道409、缓冲器411、非 易失性存储器412、处理器413、主轴/VCM驱动器模块414和/或I/0接口 415的数据。处理器413可以处理数据,包括编码、解码、滤波和/或格式 化。经处理的数据可以被输出到HDA401、读通道409、缓冲器411、非 易失性存储器412、处理器413、主轴/VCM驱动器模块414和/或I/0接口 415。
HDC模块410可以利用缓冲器411和/或非易失性存储器412来存储与HDD 400的控制和操作相关的数据。缓冲器411可以包括DRAM、 SDRAM等。非易失性存储器412可以包括闪存(包括NAND和NOP、闪 存)、相变存储器、磁RAM或多态存储器,在多态存储器中,每个存储 单元具有两个以上状态。主轴/VCM驱动器模块414控制主轴马达406和 VCM 407。 HDD PCB 402包括向HDD 400的组件提供电能的电源416。
现在参考图5B,可以在DVD驱动器418或CD驱动器(未示出)的 存储器中实现本公开的教导。DVD驱动器418包括DVD PCB 419和DVD 配件(DVDA) 420。 DVD PCB 419包括DVD控制模块421、缓冲器 422、非易失性存储器423、处理器424、主轴/FM (进给马达(feed motor))驱动器模块425、模拟前端模块426、写策略模块427以及DSP 模块428。
DVD控制模块421控制DVDA 420的组件并且经由I/O接口 429与外 部设备(未示出)通信。外部设备可以包括计算机、多媒体设备、移动计 算设备等。1/0接口 429可以包括有线和/或无线通信链路。
DVD控制模块421可以接收来自缓冲器422、非易失性存储器423、 处理器424、主轴/FM驱动器模块425、模拟前端模块426、写策略模块 427、 DSP模块428和/或I/O接口 429的数据。处理器424可以处理数 据,包括编码、解码、滤波和/或格式化。DSP模块428执行信号处理,例 如视频和/或音频编码/解码。经处理的数据可以被输出到缓冲器422、非易 失性存储器423、处理器424、主轴/FM驱动器模块425、模拟前端模块 426、写策略模块427、 DSP模块428和/或I/0接口 429。
DVD控制模块421可以使用缓冲器422和/或非易失性存储器423来 存储与DVD驱动器418的控制和操作相关的数据。缓冲器422可以包括 DRAM、 SDRAM等。非易失性存储器423可以包括闪存(包括NAND和 NOR闪存)、相变存储器、磁RAM或多态存储器,在多态存储器中,每 个存储单元具有两种以上状态。DVD PCB 419包括向DVD驱动器418的 组件提供电能的电源430。
DVDA 420可以包括前置放大设备431、激光驱动器432以及光学设 备433,光学设备433可以是光读/写(ORW)设备或光只读(OR)设备。主轴马达434旋转光存储介质435,进给马达436致动与光存储介质 435有关的光学设备433。
当从光存储介质435读取数据时,激光驱动器向光学设备433提供读 功率。光学设备433检测来自光存储介质435的数据,并且将数据发送到 前置放大设备431。模拟前端模块426接收来自前置放大设备431的数 据,并且执行诸如滤波和A/D转换之类的功能。为了写入到光存储介质 435中,写策略模块427向激光驱动器432发送功率电平和定时信息。激 光驱动器432控制光学设备433将数据写入光存储介质435。
现在参考图5C,可以在高清晰电视机(HDTV) 437的存储器中实现 本公开的教导。HDTV 437包括HDTV控制模块438、显示器439、电源 440、存储器441、存储设备442、 WLAN接口 443和相关联天线444,以 及外部接口 445。
存储器441可以包括随机存取存储器(RAM)和/或诸如闪存、相变 存储器或多态存储器之类的非易失性存储器,在多态存储器中,每个存储 单元具有两种以上状态。存储设备442可以包括诸如DVD驱动器之类的 光存储设备和/或硬盘驱动器(HDD) 。 HDTV控制模块438经由WLAN 接口 443和/或外部接口 445与外面通信。电源440向HDTV 437的组件提 供电能。
现在参考图5D,可以在车辆446的存储器中实现本公开的教导。车 辆446可以包括车辆控制系统447、电源448、存储器449、存储设备450 以及WLAN接口 452和相关联天线453。车辆控制系统447可以是传动系 控制系统、车体控制系统、娱乐控制系统、防抱死制动系统(ABS)、导 航系统、信息通讯系统、车道偏离系统、自适应巡航控制系统等。
车辆控制系统417可以与一个或多个传感器454通信,并且生成一个 或多个输出信号456。传感器454可以包括温度传感器、加速度传感器、 压力传感器、转动传感器、空气流量传感器等。输出信号456可以控制引 擎操作参数、传输操作参数、悬架参数等。
电源488可以向车辆446的组件提供电能。车辆控制系统447可以将 数据存储在存储器449和/或存储设备450中。存储器449可以包括随机存取存储器(RAM)和/或诸如闪存、相变存储器或多态存储器之类的非易
失性存储器,在多态存储器中,每个存储单元具有两种以上状态。存储设
备450可以包括诸如DVD驱动器之类的光存储驱动器和/或硬盘驱动器 (HDD)。车辆控制系统417可以利用WLAN接口 452与外面通信。
现在参考图5E,可以在蜂窝电话458的存储器中实现本公开的教导。 蜂窝电话458包括电话控制模块460、电源462、存储器464、存储设备 466以及蜂窝网络接口 467。蜂窝电话458可以包括WLAN接口 468和相 关联天线469、麦克风470、诸如扬声器和/或输出插孔之类的音频输出 472、显示器474以及诸如键盘和/或点选设备之类的用户输入设备476。
电话控制模块460可以接收来自蜂窝网络接口 467、 WLAN接口 468、麦克风470和/或用户输入设备476的输入信号。电话控制模块460 可以处理信号,包括编码、解码、滤波和/或格式化,并且生成输出信号。 输出信号可以被传输到存储器464、存储设备466、蜂窝网络接口 467、 WLAN接口 468以及音频输出472中的一个或多个。
存储器464可以包括随机存取存储器(RAM)和/或诸如闪存、相变 存储器或多态存储器之类的非易失性存储器,在多态存储器中,每个存储 单元具有两种以上状态。存储设备466可以包括诸如DVD驱动器之类的 光存储驱动器和/或硬盘驱动器(HDD)。电源462可以向蜂窝电话458的 组件提供电能。
现在参考图5F,可以在机顶盒478的存储器中实现本公开的教导。机 顶盒478包括机顶盒控制模块480、显示器481、电源482、存储器483、 存储设备484以及WLAN接口 485和相关联天线486。
机顶盒控制模块480可以接收来自WLAN接口 485和外部接口 487的 输入信号,外部接口 487可以经由线缆、宽带因特网和/或卫星发送和接收 信息。机顶盒控制模块480可以处理信号,包括编码、解码、滤波和/或格 式化,并且生成输出信号。输出信号可以包括标准和/高清晰格式的音频和 /或视频信号。输出信号可以被传输到WLAN接口 485和/或显示器481。 显示器481可以包括电视机、投影仪和/或监视器。
电源482可以向机顶盒478的组件提供电能。存储器483可以包括随机存取存储器(RAM)和/或诸如闪存、相变存储器或多态存储器之类的 非易失性存储器,在多态存储器中,每个存储单元具有两种以上状态。存
储设备484可以包括诸如DVD驱动器之类的光存储驱动器和/或硬盘驱动 器(HDD)。
现在参考图5G,可以在移动设备489的存储器中实现本公开的教 导。移动设备489可以包括移动设备控制模块490、电源91、存储器 492、存储设备493、 WLAN接口 494和相关联天线495,以及外部接口 499。
移动设备控制模块490可以接收来自WLAN接口 494和/或外部接口 499的输入信号。外部接口 499可以包括USB接口、红外接口和/或以太网 接口。输入信号可以包括经压縮的音频和/或视频,并且可以与MP3格式 兼容。另外,移动设备控制模块490可以接收来自诸如键盘、触控板或各 个按钮之类的用户输入496的输入。移动设备控制模块490可以处理输入 信号,包括编码、解码、滤波和/或格式化,并且生成输出信号。
移动设备控制模块490可以将音频信号输出到音频输出497并将视频 信号输出到显示器498。音频输出497可以包括扬声器和/或输出插孔。显 示器498可以呈现图形用户界面,其可以包括菜单、图标等。电源491向 移动设备489的组件提供电能。存储器492可以包括随机存取存储器 (RAM)和/或诸如闪存、相变存储器或多态存储器之类的非易失性存储 器,在多态存储器中,每个存储单元具有两种以上状态。存储设备493可 以包括诸如DVD驱动器之类的光存储驱动器和/或硬盘驱动器(HDD)。 移动设备可以包括个人数字助理、媒体播放器、膝上型计算机、游戏机或 其它移动计算设备。
如可以理解的,同一块的页中的存储单元的密度可以具有相同的密 度。或者,同一块的页中的存储单元的密度可以不同。同样,同一块中的 页的页长度可以相同和/或不同。
现在,本领域技术人员可以从前面的描述理解到,本公开的广泛教导 可以被实现为多种形式。因此,虽然本公开包括特定示例,然而,本公开 的真实范围不应当被如此限制,这是因为本领域从业者在学习了附图、说 明书和所附权利要求后将清楚其它修改。
权利要求
1.一种存储器控制器,包括页配置模块,所述页配置模块与包括B个存储块的存储阵列通信,每个存储块包括P个页,所述页配置模块选择性地对所述B个存储块的每块的P个页中的存储单元进行配置以使每单元存储1至T比特,并且基于所述配置生成存储器映射,其中,B、P和T是大于1的整数;以及写模块和读模块的至少一个,所述写模块基于所述存储器映射选择性地向所述存储阵列写数据,所述读模块基于所述存储器映射选择性地从所述存储阵列读数据。
2. 如权利要求1所述的存储器控制器,其中,所述B个块中的一块的 P个页的至少一页中的存储单元存储第一数目的比特,并且所述B个块中 的另一块的P个页的至少一页中的存储单元存储第二数目的比特,并且其 中,所述第一数目和第二数目是不同的并且被存储在所述存储器映射中。
3. 如权利要求2所述的存储器控制器,其中,所述存储阵列包括第一 部分,所述第一部分包含了所述B个块中的至少一块,其中,与所述B个 块中的所述至少一块的P个页相关联的存储单元被配置为存储一比特,其 中,所述存储阵列包括第二部分,所述第二部分包含了所述B个块中的其 它块,并且其中,与所述B个块中的所述其它块的P个页相关联的存储单 元被配置为存储多于一比特。
4. 如权利要求3所述的存储器控制器,其中,所述第一部分存储引导 代码。
5. 如权利要求3所述的存储器控制器,其中,所述第一部分存储用于 配置所述第二部分的配置数据。
6. 如权利要求1所述的存储器控制器,其中,所述存储器映射存储所 述P个页的每页中的存储单元的开始和结束位置。
7. 如权利要求1所述的存储器控制器,其中,所述页配置模块基于由 所述P个页的各页中的存储单元所存储的比特的数目来选择所述P个页的 各页中的存储单元的数目。
8. 如权利要求1所述的存储器控制器,其中,所述存储器映射存储所述P个页的至少一页中用于差错检查和校正(ECC)部分以及数据部分的 存储单元的开始和结束位置。
9. 如权利要求8所述的存储器控制器,其中,所述页配置模块相对于 所述ECC部分的至少一个部分中存储ECC数据的存储单元的数目来选择 性地调节存储数据的存储单元的数目。
10. 如权利要求1所述的存储器控制器,其中,所述页配置模块基于 要存储在所述P个页的至少一页中的数据的类型来选择性地配置所述P个 页的至少一页中的存储单元。
11. 一种包括权利要求1的存储器控制器并且还包括所述存储阵列的 存储器系统。
12. 如权利要求1所述的存储器控制器,还包括存储器测试模块, 所述存储器测试模块确定所述P个页的至少一页中的存储单元的差错率。
13. 如权利要求12所述的存储器控制器,其中,所述页配置模块基于所述差错率来确定由所述P个页的所述至少一页存储的比特数目。
14. 一种非易失性(NV)存储器控制器,包括页配置模块,所述页配置模块与包括B个存储块的NV存储阵列通 信,每个存储块包括P个页,每页包括多个存储单元,所述页配置模块选 择性地调节与所述P个页的至少一页相关联的存储单元的数目,并且基于 其生成存储器映射;以及数据模块,所述数据模块基于所述存储器映射来处理关于所述NV存 储阵列的数据。
15. 如权利要求14所述的NV存储器控制器,其中,所述存储器映射 存储所述P个页的每页中的存储单元的开始和结束点。
16. 如权利要求M所述的NV存储器控制器,其中,所述页配置模块 选择性地调节所述P个页的数目。
17. 如权利要求14所述的NV存储器控制器,其中,所述页配置模块 选择性地调节存储在所述P个页的至少一页的多个存储单元中的至少一个 存储单元中的比特的数目。
18. 如权利要求14所述的NV存储器控制器,其中,所述页配置模块 相对于所述P个页的至少一页中的存储差错检查和校正(ECC)数据的存 储单元的数目来选择性地调节存储数据的存储单元的数目。
19. 如权利要求18所述的NV存储器控制器,其中,所述存储器映射 存储所述P个页的所述至少一页中的数据部分和ECC部分的存储单元的 开始和结束点。
20. 如权利要求14所述的NV存储器控制器,还包括类型确定模 块,所述类型确定模块确定所述NV存储阵列的存储类型,并且基于所述 存储类型生成所述存储器映射。
21. 如权利要求14所述的NV存储器控制器,其中,所述页配置模块 基于要存储在所述P个页的至少一页中的数据的类型来选择性地配置所述 P个页的所述至少一页中的存储单元的数目。
22. —种包括权利要求14的NV存储器控制器并且还包括所述NV存 储阵列的NV存储器系统。
23. 如权利要求17所述的NV存储器控制器,还包括存储器测试模 块,所述存储器测试模块确定所述P个页的所述至少一页中的存储单元的 差错率。
24,如权利要求23所述的NV存储器控制器,其中,所述页配置模块 基于所述差错率来确定所述比特的数目。
25. 如权利要求14所述的NV存储器控制器,其中,所述页配置模块 选择性地对所述P个页的至少一页的数据部分中的每个存储单元设置第一 数目的比特,并且选择性地对所述P个页的所述至少一页的开销部分中的 每个存储单元设置第二数目的比特。
26. 如权利要求25所述的NV存储器控制器,其中,所述第一数目和 第二数目不同。
27. 如权利要求14所述的NV存储器控制器,其中,所述页配置模块 包括写模块和读模块的至少一个,所述写模块基于所述存储器映射选择性 地向所述NV存储阵列写数据,所述读模块基于所述存储器映射选择性地 从所述NV存储阵列读数据。
全文摘要
一种存储器控制器,包括页配置模块,该页配置模块与包括B个存储块的存储阵列通信,每个存储块包括P个页。页配置模块选择性地对B个存储块的每块的P个页中的存储单元进行配置以使每单元存储1至T比特。页配置模块还基于该配置来生成存储器映射。B、P和T是大于1的整数。该存储器控制器还包括写模块和读模块的至少一个,写模块基于存储器映射选择性地向存储阵列写数据,读模块基于存储器映射选择性地从存储阵列读数据。
文档编号G06F12/02GK101681298SQ200880019550
公开日2010年3月24日 申请日期2008年4月10日 优先权日2007年4月10日
发明者潘塔斯·苏塔迪嘉 申请人:马维尔国际贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1