存储器控制器的制作方法

文档序号:6381870阅读:179来源:国知局
专利名称:存储器控制器的制作方法
技术领域
本公开涉及存储器控制器,并且更具体地涉及用于非易失性半导体存储器的存储器控制器。
背景技术
这里提供的背景描述是用于一般地呈现本公开的上下文的目的的。当前指定的发明人在本背景部分所描述的工作以及在提交时不能充当现有技术的描述的各方面不被明确地或隐含地承认作为针对本公开的现有技术。现在参考图1、2A和2B,非易失性半导体存储器10可以包括闪存、静态随机存取存储器(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)数据或其它(O)开销数据之类的开销数据部分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-1、46-2,...,以及46-¥)以及用于开销部分的Z个存储单元(存储单元46-(Υ+1)、46-(Υ+2),...,以及46-(Υ+Ζ),其中,对于特定存储器控制器,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个页的至少一页中的存储单元。
在其它特征中,该计算机程序还包括确定所述P个页的至少一页中的存储单元的差错率。该计算机程序包括基于差错率来确定比特的数目。该计算机程序还包括选择性地对P个页的至少一页中的数据部分中的每个存储单元设置第一数目的比特。计算机程序还包括选择性地对所述P个页的至少一页的开销部分中的每个存储单元设置第二数目的比特。第一数目和第二数目不同。在其它特征中,一种存储器控制器,包括页配置模块,页配置模块与包括B个存储块的存储阵列通信,每个存储块包括P个页。页配置模块选择性地配置B个存储块的每个存储块的P个页中的存储单元,以使每个单元存储I至T比特。页配置模块还基于该配置来生成存储器映射。B、P和T是大于I的整数。该存储器控制器还包括写模块和读模块的至少一个,写模块基于存储器映射选择性地向存储阵列写数据,读模块基于存储器映射选择性地从存储阵列读数据。在其它特征中,B个块中的一块的P个页的至少一页中的存储单元存储第一数目的比特。B个块中的另一块的P个页的至少一页中的存储单元存储第二数目的比特。第一数目和第二数目是不同的并且被存储在存储器映射中。存储阵列包括第一部分,第一部分包含了 B个块中的至少一块。与B个块中的至少一块的P个页相关联的存储单元被配置为存储一比特。存储阵列包括第二部分,第二部分包含了 B个块中的其它块。与B个块中的其它块的P个页相关联的存储单元被配置为存储多于一比特。在其它特征中,第一部分存储引导代码。第一部分还存储用于配置第二部分的配置数据。存储器映射存储P个页的每页中的存储单元的开始和结束位置。页配置模块基于由P个页的各页中的存储单元存储的比特数目来选择P个页的各页中的存储单元的数目。存储器映射存储所述P个页的至少一页中用于差错检查和校正(ECC)部分以及数据部分的存储单元的开始和结束位置。页配置模块相对于ECC部分的至少一个部分中存储ECC数据的存储单元的数目来选择性地调节存储数据的存储单元的数目。在其它特征中,页配置模块基于要存储在P个页的至少一页中的数据的类型来选择性地配置P个页的至少一页中的存储单元。存储器测试模块确定P个页的至少一页中的存储单元的差错率。页配置模块基于差错率来确定由P个页的至少一页存储的比特数目。在其它特征中,一种用于操作存储器控制器的方法包括配置B个存储块中的每个存储块的P个页中的存储单元,以使每单元存储I至T比特。该方法还包括基于该配置来生成存储器映射,其中,B、P和T是大于I的整数。该方法还包括基于存储器映射选择性地向存储阵列写数据以及基于存储器映射选择性地从存储阵列读数据中的至少一个。在其它特征中,该方法包括在B个块中的一块的P个页的至少一页中的存储单元中存储第一数目的比特。该方法还包括在B个块中的另一块的P个页的至少一页中的存储单元中存储第二数目的比特。第一数目和第二数目不同。该方法还包括将与存储阵列的第一部分中的B个块中的至少一块的P个页相关联的存储单元配置为存储一比特。该方法还包括将与B个块中的其它块的存储阵列的第二部分中的P个页相关联的存储单元配置为存储多于一比特。在其它特征中,该方法包括将引导代码存储在第一部分中。该方法还包括将用于配置第二部分的配置数据存储在第一部分中。该方法还包括将P个页的每页中的存储单元的开始和结束位置存储在存储器映射中。该方法还包括基于P个页中各页的存储单元所存储的比特数目来选择P个页的各页中的存储单元的数目。在其它特征中,方法包括将P个页的至少一页中用于数据部分和差错检查和校正(ECC)部分的存储单元的开始和结束位置存储在存储器映射中。该方法还包括相对于ECC部分的至少一个部分中存储ECC数据的存储单元的数目来选择性地调节存储数据的存储单元的数目。该方法还包括基于要存储在P个页的至少一页中的数据的类型来选择性地配置P个页的至少一页中的存储单元。在其它特征中,一种存储器控制器,包括用于与存储数据的存储装置通信的页配置装置,存储装置包括B个存储块,每个存储块包括P个页。页配置装置选择性地对B个存储块中的每个存储块的P个页中的存储单元进行配置以使每个单元存储I至T比特,并且基于该配置来生成存储器映射。B、P和T是大于I的整数。该存储器控制器还包括写装置和读装置中的至少一个,写装置基于存储器映射选择性地向存储阵列写数据,读装置基于存储器映射选择性地从存储阵列读数据。在其它特征中,B块中的一块的P个页的至少一页中的存储单元存储第一数目的比特,并且B块中的另一块的P个页的至少一页中的存储单元存储第二数目的比特。第一数目和第二数目不同并且被存储在存储器映射中。存储装置包括第一部分,第一部分包括B个块中的至少一块。与B个块中的至少一块中的P个页相关联的存储单元存储一比特。存储装置包括第二部分,第二部分包括B个块中的其它块。与B个块中的其它块中的P个页相关联的存储单元被配置为存储多于一比特。在其它特征中,第一部分存储引导代码。第一部分还存储用于配置第二部分的配置数据。存储器映射存储P个页的每页中的存储单元的开始和结束位置。页配置装置基于由P个页的各页中的存储单元所存储的比特数目来选择P个页的各页中的存储单元的数目。存储器映射存储P个页的至少一页中用于数据部分和差错检查和校正部分(ECC)部分的存储单元的开始和结束位置。页配置装置相对于ECC部分的至少一个部分中存储ECC数据的存储单元的数目来选择性地调节存储数据的存储单元的数目。在其它特征中,页配置装置基于要存储在P个页的至少一页中的数据的类型来选择性地配置P个页的至少一页中的存储单元。存储器控制器包括存储器测试装置,用于确定P个页的至少一页中的存储单元的差错率。页配置装置基于差错率来确定由P个页的至少一页存储的比特的数目。在又一特征中,利用由一个或多个处理器执行的计算机程序来实现上述系统和方法。计算机程序可以驻留在一个或多个计算机可读介质上,计算机可读介质例如但不限于存储器、非易失性数据存储装置和/或其它合适的有形存储介质。一种被存储以供处理器操作用来操作存储器的计算机程序,包括对B个存储块中的每个存储块的P个页中的存储单元进行配置,以使每个单元存储I至T比特。该计算机程序还包括基于该配置来生成存储器映射,其中B、P和T是大于I的整数。计算机程序还包括基于存储器映射选择性地向存储阵列写数据以及基于存储器映射选择性地从存储阵列读数据中的至少一个。在其它特征中,该计算机程序包括在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是高消晰电视机的功能框图;图是车辆控制系统的功能框图;图5E是蜂窝电话的功能框图;图5F是机顶盒的功能框图;以及图5G是移动设备的功能框图。
具体实施例方式下面的描述实际上仅仅是示例性的,并且决不打算限制本公开、其应用或使用。为了清楚的目的,在附图中将使用相同的标号来标识类似的元件。如在这里所使用的,术语模块、电路和/或设备指专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的(共享的、专用的或成组的)处理器以及存储器、组合逻辑电路,和/或提供所描述的功能的其它合适组件。应当明白,在不改变本公开的原理的情况下,可以以不同顺序来执行方法中的步骤。本公开描述了可以与具有不同配置的存储器以及可重新配置的存储器一起操作的存储器控制器。例如,为了增大存储器存储量,存储阵列可以 包括存储多于一比特的存储单元。当存储器包括多比特存储单元时,不可以使用具有硬连线块和页排列的存储器控制器。例如,如果每个存储单元存储2比特,则每页需要传统存储阵列的存储单元的一半。换言之,当存储在每个存储单元中的电平(level)或比特数M增大时,每页的存储单元的大小或数目就减少l/Μ。如果存储器控制器被硬连线以用于固定的块和页大小,则该存储器控制器将不能适应多比特存储单元。另外,某些类型的数据可能不能适当地与传统控制器的预配置页大小相配。由于必须以组来擦除页和/或块,因此,页的很多部分可能未被使用,这是低效率的。本公开描述了一种可以调节或改变页长度和/或单元密度的存储器控制器。可变页长度是指改变一页或多页的存储单元的数目。可变单元密度是指改变每个存储单元中所存储的比特的数目。当具有传统设计的存储器控制器被设置来处理多比特存储单元时,这些控制器则不能够处理具有单比特存储单元的传统存储器。每单元存储多于一比特的存储单元趋向于具有较高的差错率。因此,为诸如纠错码(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的存储器中实现本公开的教导。HDD400包括硬盘配件(HDA)401和HDD PCB402。HDA401可以包括诸如存储数据的一个或多个盘片之类的磁介质403,以及读/写设备404。读/写设备404可以被布置在致动臂405上,并且可以在磁介质403上读和写数据。另外,HDA401包括旋转磁介质403的主轴马达(spindle motor)406,以及对致动臂405进行致动的音圈马达(voice-coilmotor,VCM) 407。前置放大设备408在读操作期间放大由读/写设备404生成的信号,并且在写操作期间向读/写设备404提供信号。HDD PCB402包括读/写通道模块(此后称为“读通道”)409、硬盘控制器(HDC)模块410、缓冲器411、非易失性存储器412、处理器413以及主轴/VCM驱动器模块414。读通道409对从前置放大设备408接收的以及发送给前置放大设备408的数据进行处理。HDC模块410控制HDA401的组件并且经由I/O接口 415与外部设备(未示出)通信。外部设备可以包括计算机、多媒体设备、移动计算设备等。I/O接口 415可以包括有线和/或无线通信链路。HDC模块410可以接收来自HDA401、读通道409、缓冲器411、非易失性存储器412、处理器413、主轴/VCM驱动器模块414和/或I/O接口 415的数据。处理器413可以处理数据,包括编码、解码、滤波和/或格式化。经处理的数据可以被输出到HDA401、读通道409、缓冲器411、非易失性存储器412、处理器413、主轴/VCM驱动器模块414和/或I/O接口415。HDC模块410可以利用缓冲器411和/或非易失性存储器412来存储与HDD400的控制和操作相关的数据。缓冲器411可以包括DRAM、SDRAM等。非易失性存储器412可以包括闪存(包括NAND和NOR闪存)、相变存储器、磁RAM或多态存储器,在多态存储器中,每个存储单元具有两个以上状态。主轴/VCM驱动器模块414控制主轴马达406和VCM407。HDD PCB402包括向HDD400的组件提供电能的电源416。现在参考图5B,可以在DVD驱动器418或⑶驱动器(未示出)的存储器中实现本公开的教导。DVD驱动器418包括DVD PCB419和DVD配件(DVDA)420。DVD PCB419包括DVD控制模块421、缓冲器422、非易失性存储器423、处理器424、主轴/FM(进给马达(feedmotor))驱动器模块425、模拟前端模块426、写策略模块427以及DSP模块428。DVD控制模块421控制DVDA420的组件并且经由I/O接口 429与外部设备(未示出)通信。外部设备可以包括计算机、多媒体设备、移动计算设备等。I/O接口 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/O 接口 429。DVD控制模块421可以使用缓冲器422和/或非易失性存储器423来存储与DVD驱动器418的控制和操作相关的数据。缓冲器422可以包括DRAM、SDRAM等。非易失性存储器423可以包括闪存(包括NAND和NOR闪存)、相变存储器、磁RAM或多态存储器,在多态存储器中,每个存储单元具有两种以上状态。DVD PCB419包括向DVD驱动器418的组件提供电能的电源430。DVDA420可以包括前置放大设备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的存储器中实现本公开的教导。HDTV437包括HDTV控制模块438、显示器439、电源440、存储器441、存储设备442、WLAN接口 443和相关联天线444,以及外部接口 445。存储器441可以包括随机存取存储器(RAM)和/或诸如闪存、相变存储器或多态存储器之类的非易失性存储器,在多态存储器中,每个存储单元具有两种以上状态。存储设备442可以包括诸如DVD驱动器之类的光存储设备和/或硬盘驱动器(HDD)。HDTV控制模块438经由WLAN接口 443和/或外部接口 445与外面通信。电源440向HDTV437的组件提供电能。现在参考图可以在车辆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.一种存储器控制器,包括类型确定模块,被配置为在所述存储器控制器操作期间,确定所述存储器控制器所连接的存储器的类型,其中,所述存储器包括包含多个页的存储器块,并且其中,每个页包括多个存储器单元;页配置模块,被配置为基于被确定为与所述存储器控制器连接的存储器的类型来生成存储器映射,其中,所述存储器映射针对存储器块中的每个页指定(i)用于存储数据的存储单元的数目以及(ii)用于存储开销的存储单元的数目,其中,所述多个页中的第一页中用于存储数据的存储单元的数目和用于存储开销的存储单元的数目被配置为与所述多个页中的第二页中用于存储数据的存储单元的数目和用于存储开销的存储单元的数目不同。
2.如权利要求1所述的存储器控制器,其中所述存储器映射还指定所述存储器块中每个页的数据部分的起始位置和结束位置,其中,每个页的数据部分包括用于存储数据的存储单元;并且所述存储器控制器还包括读模块,所述读模块被配置为基于所述存储器映射中指定的页的数据部分的起始位置和结束位置,来从每个页读取数据。
3.如权利要求2所述的存储器控制器,还包括写模块,所述写模块被配置为基于所述存储器映射中指定的页的数据部分的起始位置和结束位置,来向每个页写入数据。
4.如权利要求1所述的存储器控制器,还包括存储器测试模块,被配置为确定与所述存储器块中每个页的每个存储器单元相关联的差错率,其中,所述页配置模块还被配置为另外基于被确定为与每个存储器单元相关联的差错率来生成所述存储器映射。
5.一种包括如权利要求1所述的存储器控制器的设备。
6.如权利要求5所述的设备,其中,所述设备包括选自由硬盘驱动、DVD驱动、高清晰电视、车辆控制系统、蜂窝电话以及机顶盒构成的组的设备。
7.一种方法包括在存储器控制器操作期间,确定所述存储器控制器所连接的存储器的类型,其中,所述存储器包括包含多个页的存储器块,并且其中,每个页包括多个存储器单元;基于被确定为与所述存储器控制器连接的存储器的类型来生成存储器映射,其中, 所述存储器映射针对存储器块中的每个页指定(i)用于存储数据的存储单元的数目以及 (ii)用于存储开销的存储单元的数目,其中,所述多个页中的第一页中用于存储数据的存储单元的数目和用于存储开销的存储单元的数目被配置为与所述多个页中的第二页中用于存储数据的存储单元的数目和用于存储开销的存储单元的数目不同。
8.如权利要求1所述的方法,其中所述存储器映射还指定所述存储器块中每个页的数据部分的起始位置和结束位置,其中,每个页的数据部分包括用于存储数据的存储单元;并且所述方法还包括基于所述存储器映射中指定的页的数据部分的起始位置和结束位置来从每个页读取数据。
9.如权利要求1所述的方法,还包括基于所述存储器映射中指定的页的数据部分的起始位置和结束位置来向每个页写入数据。
10.如权利要求1所述的方法,还包括确定与所述存储器块中每个页的每个存储器单元相关联的差错率,其中,生成所述存储器映射还基于被确定为与每个存储器单元相关联的差错率。
11.一种在非暂时性计算机可读介质上有形存储的计算机程序,所述计算机程序包括指令,这些指令使得可编程处理器在存储器控制器操作期间,确定所述存储器控制器所连接的存储器的类型,其中,所述存储器包括包含多个页的存储器块,并且其中,每个页包括多个存储器单元;基于被确定为与所述存储器控制器连接的存储器的类型来生成存储器映射,其中, 所述存储器映射针对存储器块中的每个页指定(i)用于存储数据的存储单元的数目以及 (ii)用于存储开销的存储单元的数目,其中,所述多个页中的第一页中用于存储数据的存储单元的数目和用于存储开销的存储单元的数目被配置为与所述多个页中的第二页中用于存储数据的存储单元的数目和用于存储开销的存储单元的数目不同。
12.如权利要求11所述的计算机程序,其中所述存储器映射还指定所述存储器块中每个页的数据部分的起始位置和结束位置,其中,每个页的数据部分包括用于存储数据的存储单元;并且所述计算机程序还包括使得所述可编程处理器基于所述存储器映射中指定的页的数据部分的起始位置和结束位置来从每个页读取数据的指令。
13.如权利要求12所述的计算机程序,还包括使得所述可编程处理器基于所述存储器映射中指定的页的数据部分的起始位置和结束位置来向每个页写入数据的指令。
14.如权利要求11所述的计算机程序,还包括使得所述可编程处理器确定与所述存储器块中每个页的每个存储器单元相关联的差错率的指令,其中,用于生成所述存储器映射的指令还包括用于另外基于被确定为与每个存储器单元相关联的差错率来生成所述存储器映射的指令。
全文摘要
一种存储器控制器,包括类型确定模块,被配置为在所述存储器控制器操作期间,确定所述存储器控制器所连接的存储器的类型,其中,所述存储器包括包含多个页的存储器块,并且其中,每个页包括多个存储器单元;页配置模块,被配置为基于被确定为与所述存储器控制器连接的存储器的类型来生成存储器映射,其中,所述存储器映射针对存储器块中的每个页指定(i)用于存储数据的存储单元的数目以及(ii)用于存储开销的存储单元的数目,其中,所述多个页中的第一页中用于存储数据的存储单元的数目和用于存储开销的存储单元的数目被配置为与所述多个页中的第二页中用于存储数据的存储单元的数目和用于存储开销的存储单元的数目不同。
文档编号G06F12/02GK102999432SQ20121047372
公开日2013年3月27日 申请日期2008年4月10日 优先权日2007年4月10日
发明者潘塔斯·苏塔迪嘉 申请人:马维尔国际贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1