电子装置、用于管理电子装置中的存储器的设备和方法

文档序号:6586169阅读:120来源:国知局
专利名称:电子装置、用于管理电子装置中的存储器的设备和方法
技术领域
本申请大体上涉及一种计算机系统,更具体地讲,涉及一种用于计算机系统的闪
速存储器管理。
背景技术
闪速存储器是可以电擦除并再编程的非易失性计算机存储器。闪速存储器主要 用在用于在计算机和其他数字产品之间数据的一般存储和传输的存储卡和USB闪存驱动 器中。闪速存储器是一种以大块来擦除和编程的特殊类型的电可擦除可编程只读存储器 (EEPROM)。在早期的闪速存储装置中,需要一次擦除整个芯片。闪速存储器的成本远小于 可按字节(byte)编程的EEPROM的成本。因此,闪速存储器已经变成在需要大量的非易失 性固态存储情况下的主要技术。示例性应用包括PDA(个人数字助理)、膝上型计算机、数字 音频播放器、数字相机、移动电话。闪速存储器还在游戏控制台市场中受到欢迎,其中,通常 用闪速存储器代替EEPROM或电池供电的静态随机存取存储器(SRAM)用于游戏存档数据。闪速存储器是非易失性的,这意味着不需要功率来保持存储在芯片中的信息。另 外,虽然不如用于PC中的主存储器的易失性动态随机存取存储器(DRAM)快速,但是闪速存 储器提供了快速的读取存取时间,此外,闪速存储器提供了比硬盘更好的动力学抗冲击性。 闪速存储器的另一特征为当被封装在“存储卡”中时,闪速存储器非常耐久,能够承受很大 的压力、极端的温度甚至浸入在水中。虽然在技术方面为一种EEPR0M,但是术语“EEPR0M”通常用于特指可以以小的块 (通常为字节)进行擦除的非闪速EEPR0M。因为擦除循环很慢,所以当写入大量数据时,在 闪速存储器擦除中使用的很大的块大小使其与旧式EEPROM相比具有显著的速度优势。NAND闪存架构是在诸如紧凑型闪存卡的存储卡中使用的两种闪存技术之一(另 一种是NOR)。NAND门闪存使用用于写入的隧道注入和用于擦除的隧道释放。NAND闪速存 储器形成现今可用的已知作为USB闪存驱动器的可移动式USB存储装置和大多数存储卡形 式的核心。它还可以用在MP3播放器中,并为数字相机提供图像存储。NAND最佳地适合于 需要高容量数据存储的闪存装置。NAND闪存装置提供达512MB的存储空间,并提供与NOR 架构相比更快的擦除、写入和读取能力。闪速存储器的一个限制在于,虽然闪速存储器可以以随机存取的方式一次读取或 编入一个字节或一个字(word),但是闪速存储器必须一次擦除一个“块”。这样通常将块中 的所有的位(bit)设置为一(1)。最初在新近擦除的块的情况下,该块内的任何位置均可 以被编程。然而,一旦有一位被设置为零(0),则仅通过擦除整个块才可以将其改回一(1)。 换句话说,闪速存储器提供随机存取式读取操作和编程操作,但是不能提供任意性的随机 存取式重写操作或擦除操作。通常,一次擦除并重写整个块。传统的用于NAND闪存装置的存储器管理系统用于诸如文件系统或代码的需求加 载的功能。这使得难以在有效使用闪速存储器(下文中,称为闪存或NAND闪存)和随机存 取存储器(RAM)的情况下实现读写(RW)和零初始化(ZI)数据的需求加载的存储器管理。传统的嵌入式系统不考虑存储器管理处理中的交换(swapping)。在诸如但不限于Linux 的高级系统中,使用RAM和闪存页之间的静态映射。当使用静态映射时,闪存大小必须与来 自交换区域的数据的大小相同。将闪存大小保持为等于来自交换区域的数据使得NAND闪 存块的寿命降低。

发明内容
提供了一种用于管理电子装置中的存储器的设备。所述设备包括存储器管理单 元。存储器管理单元被配置为分配随机存取存储器的一部分和闪速存储器的一部分。存储 器管理单元执行在所述随机存取存储器和所述闪速存储器的一个或一个以上的块之间的 页的内容的交换操作。提供了一种电子装置。所述电子装置包括处理器、随机存取存储器、闪速存储器、 存储器管理单元。存储器管理单元被配置为分配所述随机存取存储器的一部分和所述闪速 存储器的一部分。存储器管理单元执行所述随机存取存储器和所述闪速存储器的一个或一 个以上的块之间的页的内容的交换操作。提供了一种存储器管理方法。所述方法包括将随机存取存储器的一部分分配为 第一交换区域。所述方法还包括将闪速存储器的一部分分配为第二交换区域。此外,所述 方法包括将页的内容从第一交换区域交换到第二交换区域;从第二交换区域加载新的页 的内容。在进行下文中的“具体实施方式
”部分之前,可以首先阐述在贯穿本专利文件使用 的特定的词语的定义术语“包括”和“包含”及其类似的术语意指没有限制情况下的包括;
术语“或”为包括性的,意指和/或;语句“与......相关”和“与其相关”及其类似的语句
可以意指包括有.......被包括在......内、与......互连、包含、被包含在......内、
连接到......或与......连接、结合到......或与......连接、可与......通信、
与......配合、交错、并列、靠近于.......接合到......或与......结合有、具有、具
有......性质等;术语“控制器”意指控制至少一个操作的装置、系统及其部件,这样的装
置可以以硬件、固件或软件或它们中的至少两种的一些组合来实现。应该注意,与任何特定 的控制器相关的功能可以本地或远程集中化或分布化。贯穿本专利文件提供了特定词语的 定义,本领域技术人员应该理解,在一些而非全部的示例中,这样的定义应用于被这样定义 的词语在之前及其后的使用。


为了更完整地理解本公开及其优点,现在将参照下面的结合附图的描述,其中,相 同的标号表示相同的部件图1示出根据本公开实施例的低端(low-end)装置中的存储器的简化示图;图2示出根据本公开实施例的存储器交换操作;图3示出根据本公开实施例的存储器管理交换处理;图4示出根据本公开实施例的页错误(fault)处理。
具体实施例方式在本专利文件中,图1至图4以及用于描述本公开的原理的各种实施例仅为举例 说明的方式在下面进行说明,且不应该被解释为以任何方式限制本公开的范围。本领域技 术人员应该理解,可以以任何适当布置的存储器管理系统来实现本公开的原理。本公开的实施例示出了在低端装置中使用的用于NAND闪存装置的存储器管理系 统,低端装置诸如但不限于具有有限的存储器的基于ARM7和ARM9的装置。诸如但不限于 基于ARM7的蜂窝电话之类的基于ARM7和ARM9的装置可以包括三十二兆字节(32MB)的闪 存、2MB的RAM、IOOMHz的中央处理单元(CPU)。存储器管理系统被配置为使用NAND闪存装置 来存储可改变的数据。存储器管理系统被配置为利用大小更小的闪存来执行与大型(例如, 高端(high-end))装置相同的功能。存储器管理系统被配置为使用闪存来补充RAM的大小。图1示出根据本公开实施例的低端装置中的存储器的简化示图。图1中示出的低 端装置中的存储器的实施例仅用于举例说明。在不脱离本公开的范围的情况下,可以使用 低端装置中的存储器的其他实施例。用于低端装置(下文中,称为“装置”)100的存储器包括RAM 105、闪存110、虚拟 存储器115。应该理解的是,虽然RAM 105、闪存110、虚拟存储器115在一起示出,但是RAM 105、闪存110、虚拟存储器115可以位于装置100中的不同的部分中。此外,RAM 105、闪存 110、虚拟存储器115中的一个或多个可以位于装置100的外部。RAM 105包括CODE/CONST执行区域120、交换区域125、堆栈130。闪存110包括 CODE区域135、RW初始数据区域140、闪存交换区域145、垃圾收集区域150、文件系统区域 155。CODE区域135包括用于闪存操作的指令。RW初始数据区域140包括与发生在虚拟存 储器115中有关的初始化数据。分区管理器(未示出)为了 RW和ZI需求加载对闪存进行 分区。虚拟存储器115包括CODE区域160、C0NST区域165、RW区域170和ZI区域175。虚 拟存储器115可以远大于RAM 105和闪存110。应该理解,在图1中示出的区域的相对大小并不代表与区域有关的实际大小关 系。例如,闪存交换区域145的大小实际上可以大于交换区域125或RW初始数据区域140。虚拟存储器115被配置为使得在装置100上运行的应用程序将RW区域170和ZI 区域175当作可用的存储器。因此,为了操作而从RAM 105分配交换区域125。另外,为了 更新存储器页(例如,存储状态数据)而分配闪存交换区域145。交换区域125和闪存交换 区域145的大小等于RW区域170和ZI区域175的大小。例如,如果RW区域170和ZI区 域175等于4MB,则交换区域125和闪存交换区域145必须至少等于4MB。因此,如果交换 区域125等于1MB,则闪存的一部分(例如,闪存交换区域145)必须至少等于3MB。为了存储“脏页”而分配垃圾收集区域150。脏页为在RAM 105中存在信息的页。 装置100的存储器管理单元(MMU) 180被配置为通过从闪存交换区域145去除脏页并将脏 页置于垃圾收集区域150中来执行垃圾收集。在一些实施例中,MMU 180被配置为在空闲 时间期间执行垃圾收集。考虑到正在进行或未来的交换操作,MMU 180执行垃圾收集以“清 洁”闪存交换区域145。MMU 180可以是响应于存储在计算机可读介质(例如,诸如RAM 105的存储器的一 部分)中的多条指令的特定处理器。另外,MMU 180可以在MMU 180内包括存储在计算机 可读介质中的多条指令。
当出现页错误时,在从闪存110加载新的内容之前,MMU 180将交换后的页从RAM 105存储到闪存中。例如,MMU 180将当前存储在交换区域125中的数据(例如,页)存储 到闪存交换区域145中。MMU 180使用闪存交换区域145中的最少被使用的块来存储这样 的数据。在一些实施例中,MMU 180将数据存储在垃圾收集区域150中。MMU 180使用垃圾 收集区域150中的最少被使用的块来存储这样的数据。此外,MMU 180生成用于闪存使用的数据库(未示出)。MMU 180将数据库存储在 闪存110中。当从闪存110将页内容加载到RAM 105中时,MMU 180首先检查是否引用了 (reference)相关内容。如果没有引用内容,则需求加载系统(DLS) 185将数据初始化。如 果先前引用过内容,则MMU 180从闪存交换区域145中的交换页加载所述内容。图2示出根据本公开实施例的存储器交换操作。图2中示出的存储器交换操作 200的实施例仅用于举例说明。在不脱离本公开的范围的情况下,可以使用存储器交换操作 200的其他实施例。交换区域125包括多个块。图2示出了包括在交换区域125中的多个块中的一个 交换区域块205。交换区域块205包括用于存储多个页的内容的多个扇区210a-210h。闪存交换区域145也包括多个块。图2示出了第一闪存交换区域块215、第二 闪存交换区域块220、第三闪存交换区域块240。闪存交换区域块215、220、240中的每个 闪存交换区域块均分别包括用于存储多个页的内容的多个扇区225a-225h、230a-230h、 245a-245h。在一个示例中,扇区210a_210d包括页的内容。另外,扇区225a_225e包括页的内 容。此外,扇区230g、230h以及扇区245a-245f也包括页的内容。在一些实施例中,在装置100上运行应用程序。应用程序需要特定量的存储器。装 置100可以将所需的存储器空间设置为虚拟存储器。例如,应用程序可以需要用于四(4) 页的内容的存储器空间。在一些这样的实施例中,装置从RW区域170和ZI区域175分配 虚拟存储器。MMU 180为了应用程序的使用而从闪存110分配扇区。MMU 180确定第一闪存交 换区域块215仅包括三(3)个可用扇区。此外,MMU 180确定第二闪存交换区域块220包 括六(6)个可用扇区。然而,MMU 180还确定从第二块220分配四(4)个扇区会导致第一 闪存交换区域块215中有三(3)个自由块并且第二闪存交换区域块220中有两(2)个自由 块。因此,MMU 180确定需要在从闪存110分配扇区之前执行存储器交换操作。因此,MMU 180复制包括在扇区230g和230h中的页。然后,MMU 180将复制的页 存储在225f和225g中。在将所述页存储在扇区225f和225g中之后,MMU 180从扇区230g 和230h擦除所述页。MMU 180可以通过擦除整个第二闪存交换区域块220来从扇区230g 和230h擦除所述页。然后,MMU180可以为了应用程序的使用而从第二闪存交换区域块220 分配存储器。在一些实施例中,扇区230g和230h中的页包括的内容与在扇区210a_210d中的 任意的扇区(诸如,以扇区210c和210d为例)中出现的内容相同。这样,将包括在扇区 230g和230h中的页称为脏页。在这样的实施例中,MMU 180确定存储在扇区230g和230h中的页为脏页。MMU180可以从第二闪存交换区域块220复制脏页。然后,MMU 180将复制的脏页存储在垃圾收 集区域块235中。垃圾收集区域块235可以为包括在垃圾收集区域150中的多个块之一。 这样,示出的一个垃圾区域块235仅出于示例目的。此外,当前包括在垃圾收集区域块235 中的一个或多个扇区可以包括页的内容。然后,MMU 180通过擦除整个第二闪存交换区域 块220来从扇区230g和230h擦除脏页。然后,MMU 180可以为了应用程序的使用从第二 闪存交换区域块220分配存储器。在一些实施例中,MMU 180将一个或多个页从交换区域块205交换到第一闪存交 换区域块215和第二闪存交换区域块220之一。MMU 180识别闪存交换区域145中最少被 擦除的一个或多个块(例如,第一闪存交换区域块215和第二闪存交换区域块220)。然后, MMU 180将一个或多个页从交换区域块205存储到最少被擦除的块。然后,MMU 180可以为 了应用程序的使用而从RAM 105分配存储器。图3示出根据本公开实施例的存储器管理交换处理。图3中示出的存储器管理交 换处理300的实施例仅用于举例说明。在不脱离本公开的范围的情况下,可以使用存储器 管理交换处理300的其他实施例。在步骤305中,MMU 180寻找具有最多的脏页的块。MMU 180评价还有哪个包括页 的内容块也位于RAM 105中(例如,在交换区域125中)。MMU180选择具有最多的脏页的 块,以使最多的空间(例如,扇区)可用。MMU180从具有最多脏页的块擦除脏位。在一些实 施例中,MMU 180将脏页传输到垃圾收集区域150。在这样的实施例中,MMU 180在从具有 最多的脏页的块擦除脏位之前将复制的脏页存储到垃圾收集区域150。例如,MMU 180可以确定位于块225a_225e中的所有的页为脏页(例如,在这些页 内的复制的内容也存在于RAM 105中)。MMU 180还可以确定位于块230g_230h中的页为 脏页。此外,MMU 180可以确定位于扇区245a-245c中的一个或多个页在先前已经进行过 交换。MMU 180将位于第一闪存交换区域块215中的页选择为将被擦除的页。MMU 180 选择第一闪存交换区域块215,这是因为位于第一闪存交换区域块215中的脏页的擦除使 得最多的存储器空间得以释放。MMU 180不选择第二闪存交换区域块220,这是因为仅会擦 除两(2)个块,而相对而言,会从第一闪存交换区域块215擦除五(5)个块。MMU 180也不 选择第三闪存交换区域块240,这是因为先前已经交换了一个或多个块。在步骤310中,MMU 180从RAM 105将有效页复制到闪存110。MMU180从交换区 域块205复制一个或多个页。然后,MMU 180将复制的页存储到第一闪存交换区域块215。 在一些实施例中,MMU 180基于从交换区域块205复制的页的数量来选择第二闪存交换区 域块220或第三闪存交换区域块240。然后,在步骤315中,MMU 180擦除从交换区域块205复制的页。然后,在步骤320 中,MMU 180更新存储器管理表(未示出)。图4示出根据本公开实施例的页错误处理。图4中示出的页错误处理400的实施 例仅用于举例说明。在不脱离本公开的范围的情况下,可以使用页错误处理400的其他实 施例。在步骤405中出现数据中止。当页错误(例如,数据中止)出现时,MMU180在从 闪存110加载新内容之前将交换的页从RAM 105存储到闪存Iio中。例如,MMU 180将当前存储在交换区域125中的数据(例如,页)存储到闪存交换区域145中。在一些实施例 中,MMU 180将数据存储在垃圾收集区域150中。MMU 180使用闪存交换区域145中的最少 被使用的块来存储这样的数据。在步骤410中,MMU 180得到RAM 105中的交换页。当从闪存110将页内容加载 到RAM 105中时,在步骤415中,MMU 180首先检查是否引用了相关内容。如果在步骤415 中没有引用所述内容,则在步骤420中,DLS 185使数据初始化。如果在步骤415中识别出 先前引用了内容,则在步骤430中,MMU 180从闪存交换区域145中的交换页加载内容。MMU 180还被配置为在空闲时间(例如,应用程序不需要使用存储器的时间段和/ 或当MMU 180不需要执行交换或页错误操作时的时间段)期间执行垃圾清理操作。MMU 180 周期性地或在空闲时间期间扫描位于闪存交换区域145中的多个块。MMU 180识别包括脏 页的块。MMU 180执行交换操作(参照图2具体说明)。如果需要,则MMU 180将内容(例 如,页的内容)从一个闪存交换区域块重新定位到另一闪存交换区域块。在移动内容之后, MMU 180擦除仅包括脏页的闪存交换区域块。在一些实施例中,MMU 180在擦除脏页之前将 脏页复制到垃圾收集区域150。因此,与RAM 105相比,装置100被配置为存储非常多数据的闪存110。如在此所 说明的,MMU 180可以被配置为利用RAM和NAND闪存的分配来优化存储器管理。MMU 180 可以集成到具有有限的RAM和有限的闪存的任何装置100中,诸如但不限于蜂窝电话、MP3 播放器、电视、个人数字助理、导航装置(诸如全球定位系统(GPS)装置)、数字记录器、ARM7 和ARM9装置。虽然已经利用示例性实施例描述了本公开,但是本领域技术人员可以得出各种改 变和修改。本公开意图包括落入权利要求范围内的这样的改变和修改。
9
权利要求
一种用于管理电子装置中的存储器的设备,所述装置包括存储器管理单元,所述存储器管理单元被配置为分配随机存取存储器的一部分和闪速存储器的一部分,其中,所述存储器管理单元执行在所述随机存取存储器和所述闪速存储器的一个或一个以上的块之间的页的内容的交换操作。
2.如权利要求1所述的设备,其中,所述存储器管理单元将闪速存储器的一部分分配 为垃圾收集区域。
3.如权利要求2所述的设备,其中,所述存储器管理单元将脏页传输到所述垃圾收集 区域。
4.如权利要求1所述的设备,其中,所述存储器管理单元识别所述闪速存储器中的第 一块,与所述闪速存储器中的第二块相比,所述第一块包括最多的脏页。
5.如权利要求4所述的设备,其中,所述存储器管理单元被配置为在所述交换操作期 间将从所述随机存取存储器复制的数据存储到所述第一块中。
6.如权利要求4所述的设备,其中,所述存储器管理单元被配置为在所述交换操作之后擦除复制的页的内容;更新存储器管理表。
7.如权利要求1所述的设备,其中,所述存储器管理单元被配置为响应于页错误来确 定是否对所述页错误中的页进行了引用。
8.一种电子装置,所述电子装置包括处理器;随机存取存储器;闪速存储器;存储器管理单元,所述存储器管理单元被配置为分配所述随机存取存储器的一部分和 所述闪速存储器的一部分,其中,所述存储器管理单元执行所述随机存取存储器和所述闪 速存储器的一个或一个以上的块之间的页的内容的交换操作。
9.如权利要求8所述的电子装置,其中,所述存储器管理单元将所述闪速存储器的一 部分分配为垃圾收集区域。
10.如权利要求9所述的电子装置,其中,所述存储器管理单元被配置为将脏页传输到 所述垃圾收集区域。
11.如权利要求8所述的电子装置,其中,所述存储器管理单元识别所述闪速存储器中 的第一块,与所述闪速存储器中的第二块相比,所述第一块包括最多的脏页。
12.如权利要求11所述的电子装置,其中,所述存储器管理单元被配置为在所述交换 操作期间将从所述随机存取存储器复制的数据存储到所述第一块中。
13.如权利要求11所述的电子装置,其中,所述存储器管理单元被配置为在所述交换操作之后擦除复制的页的内容;更新存储器管理表。
14.如权利要求8所述的电子装置,其中,所述存储器管理单元被配置为响应于页错误 来确定是否对所述页错误中的页进行了引用。
15.一种用在电子装置中的存储器管理方法,所述方法包括如下步骤将随机存取存储器的一部分分配为第一交换区域;将闪速存储器的一部分分配为第二交换区域; 将页的内容从第一交换区域交换到第二交换区域; 从第二交换区域加载新的页的内容。
16.如权利要求15所述的方法,所述方法还包括将闪速存储器的一部分分配为垃圾收 集区域。
17.如权利要求16所述的方法,所述方法还包括将脏页传输到垃圾收集区域。
18.如权利要求15所述的方法,其中,交换步骤还包括识别第二交换区域中的第一块,第一块与第二交换区域中的第二块相比包括最多的脏页;在所述交换操作期间,将从第一交换区域复制的数据存储到第一块中。
19.如权利要求15所述的方法,所述方法还包括 在交换页的内容之后擦除复制的页的内容;更新存储器管理表。
20.如权利要求15所述的方法,所述方法还包括响应于页错误来确定是否对所述页错 误中的页进行了引用。
全文摘要
本发明提供了一种用于管理低端电子装置中的存储器的设备和方法。所述设备包括存储器管理单元。存储器管理单元被配置为将随机存取存储器的一部分和闪速存储器的一部分分配为交换区域。所述存储器管理单元通过在随机存取存储器交换区域和闪速存储器交换区域的一个或多个块之间交换页的内容来执行交换操作。然后,可以从闪速存储器交换区域加载页的内容。存储器管理单元还将闪速存储器的一部分分配为垃圾收集区域。存储器管理单元将脏页从闪存交换区域传输到垃圾收集单元,以释放闪速存储器交换区域块。
文档编号G06F12/02GK101901190SQ20091025334
公开日2010年12月1日 申请日期2009年12月7日 优先权日2009年3月19日
发明者张帆, 沙特布莱特·星 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1