闪存存储器件中的动态存储器分配引起的自我逐出的避免制造技术

技术编号:7149566 阅读:302 留言:0更新日期:2012-04-11 18:40
便携闪存存储器件的操作固件被存储在相对大的文件存储存储器中,其是不可执行的。其被逻辑地解析成各覆盖以适合于可执行的存储器。各覆盖可以具有不同尺寸,以有效地组织函数调用同时最小化死空间或不需要分离应该在一个或一组频繁访问的覆盖中的函数。对于具有需要数据分配的函数的覆盖,数据分配可能引起该覆盖的逐出。该自我逐出完全或者在初始运行时间后被避免,并且逐出的覆盖被重新加载在为数据保留的区域之外的区域处。

【技术实现步骤摘要】
【国外来华专利技术】
本申请涉及闪存,并且更具体地涉及闪存存储器件的固件的管理。
技术介绍
闪存海量存储器件、也就是主要用于存储大量用户文件的器件通常利用NAND闪存作为主存储单元,而不是NOR或其他适当执行的存储器。这样的存储器件包括用于存储海量库的照片和音乐等且甚至最近被用作某些膝上型计算机中的主要存储器的数字存储卡和USB盘等。由于在NAND中可用的大量存储器,期望使用NAND来存储固件,尽管其不可从NAND执行。
技术实现思路
便携闪存存储器件的操作固件被存储在相对大的文件存储存储器中,其是不可执行的。其被逻辑地解析为各个覆盖(overlay)以适合于可执行的存储器。覆盖可以具有不同尺寸,以有效地组织函数调用同时最小化死空间(dead space)和应该在一个或一组频繁访问的覆盖内的函数的不必要的分离。对于具有需要数据分配的函数的覆盖,数据分配可能引起逐出(eviction)。该自我逐出完全或者在初始运行时间后被避免。本专利技术的一个方面涉及一种方法,包括将要由存储器控制器执行的固件存储在存储器系统的NAND闪存内。该方法还包括逻辑地将该固件排序到各覆盖中,所述各覆盖在大小方面不同;将所需的覆盖加载到RAM存储器中;以及基于覆盖内的函数在RAM存储器内的数据空间需要而在第一次加载覆盖时逐出所加载的覆盖,但是在第一次加载覆盖之后,保留RAM内的空间用于数据空间需要,由此消除逐出覆盖的需要。本专利技术的另一方面涉及一种在并入NAND闪存和存储器控制器的存储器系统中的方法。该方法包括将要由存储器控制器执行的固件存储在NAND闪存内;逻辑地将该固件排序到具有小于专用于固件执行的覆盖RAM存储器的最大量的大小的覆盖中,所述覆盖在大小方面不同;调用覆盖中存储的函数;将所述覆盖加载到存储器控制器的专用RAM存储器中;保存所选择的覆盖需要在覆盖RAM内的数据的空间分配的指示;以及随后利用该指示来避免所选择的覆盖的自我逐出。本专利技术的另一方面涉及一种在并入NAND闪存和存储器控制器的存储器系统中的方法。该方法包括将要由存储器控制器执行的固件存储在NAND闪存内;逻辑地将该固件排序到具有小于专用于固件执行的覆盖RAM存储器的最大量的大小的各覆盖中,所述各覆盖在大小方面不同;调用覆盖中存储的函数;将所述覆盖加载到存储器控制器的专用RAM存储器中;保存所选择的覆盖需要在覆盖RAM内的数据的空间分配的指示;以及随后利用该指示来避免所选择的覆盖的自我逐出。附图说明图IA是图示闪存存储器件100的框图。图IB是图示FMSD 100的RAM和闪存空间的一部分的框图。图IC是描述覆盖管理的流程图。图2A是图示初始覆盖加载处理的流程图。图2B是图示随后的覆盖加载处理的流程图。具体实施例方式软件程序被加载到电子设备可执行的存储器中并被执行。当软件程序大于设备的可执行存储器容量时,则使用软件覆盖(overlays)或虚拟存储器。虚拟存储器是经由通常采用以硬件实现的存储器管理单元的操作系统映射到物理存储器的地址空间。其在个人计算机和其他非受限的计算设备中很普遍。在虚拟存储器系统中,大程序被分解成小段,称为“页”。如需要,页从次级存储器被加载到为该程序预留的机器存储器的部分中。在存储卡和其他闪存存储器件中,虚拟存储器不实用并通常不实施。因此,利用软件覆盖。闪存存储器件的操作软件通常被称为固件。固件覆盖是当覆盖管理器需要时被调用到存储器中的程序段。调用的每个覆盖可以重写存储器中的现有覆盖。必须小心地管理存储器对各覆盖的动态分配。图IA图示了闪存存储器件(“FMSD”)100。FMSD包括闪存阵列108、存储器控制器104和主机接口 102。闪存阵列108是非执行的适当种类的闪存,优选地是NAND构造,并通常是EEPROM形式的。闪存阵列108用于存储海量的用户文件,并且是器件100的主数据存储仓(r印ository)。同样,期望利用大容量并存储固件或者用于具有阵列1089的FMSD 100的操作指令。存储器控制器104本身包括处理器和可执行随机存取存储器(“RAM”) (未示出)。FMSD 100还可以包括在存储器控制器之外的一个或多个RAM存储器。主机接口 102可以被配置为作为诸如安全数字或其他存储卡标准的存储卡的接触(contact),可以是通用串行总线(“USB”)连接器或者IEEE 1394 “火线(firewire) ”连接器等,或者在 FMSD 100被嵌入的情况下,可以是器件专用接口。闪存阵列108经由控制和数据线106耦接到存储器控制器104。运行存储器存储器件的固件被分解成适当大小以适合于要执行的RAM的覆盖。花费无数小时来确定哪些函数(function)调用应该最佳地进入各个覆盖中,来使得有效执行固件的任务,且由不必要地将各覆盖循环入和循环出RAM而导致的等待时间最小。例如, 如果第一覆盖中的函数调用第二覆盖中的另一函数并反之亦然,则系统将花费很多时间在这两个覆盖之间“反复”(thrashing)。尽管具有两个覆盖的此例子过于简化,但是关键点是如果不适当地管理覆盖管理,则可能花费很多时间仅在覆盖之间切换而不执行固件的全部函数。在诸如个人计算机的大的处理器控制的系统中,在通常处理速度比硬件盘或者其他数据存储机制的存储存取时间快得多并且大量RAM可用的情况下,这更不算问题。相对大量的可用RAM与在PC中可用的虚拟存储器管理技术等不是受限的系统环境的特征。并入了 NAND存储器的受限系统环境尤其有问题,因为固件非常大且复杂以至于不能管理NAND构造的存储操作。NAND存储器通常具有在质量上与在多个存储器晶片内或多个存储器晶片之间的其他区域不同的区域。为了节省成本,诸如存储卡的系统采用具有这样的可变质量区域的未检验(unproverONAND。这与可能仅采用测试过的良好NAND的系统不同,该测试过的良好NAND的系统意味着较差性能区域未被利用或者不存在。这种奢侈在必须以最小成本提供的较大容量器件中是不可得或不实际的。在这样的器件中,固件必须积极地管理NAND串的使用,以一直监视各个区域的性能并修改数据的读/写参数和物理 /逻辑映射,使得如果需要的话,绘出(mapout)不可靠的区域,并且将不会威胁或损失用户文件和数据。这导致(比利用测试过的良好NAND)甚至更大和更复杂的固件,这意味着覆盖管理和RAM使用由此至关重要。可以在任何时间调用在覆盖中存储的(固件)函数。不保证当调用该函数时包含该函数的覆盖将在RAM中。固件的自动覆盖管理器(“Α0Μ”)将处理每个调用,以便管理 “错误”情况,在该错误情况下,函数被调用但是却不存在于RAM中。在错误的情况下,AOM 将在定位该函数并调用它之前加载适当的覆盖。图IB图示了 FMSD 100的RAM和闪存空间的一部分。RAM的主代码区120包含具有描述符/项目1对『12虹的覆盖映射表(“0MT”)124。OMT是描述当前被加载在覆盖 RAM( "ORAM")中的覆盖的表。OMT 1 的每个项目12^-χ描述了 ORAM 130中的具体区域,也称为覆盖区130。124 OMT是到RAM中的覆盖的映射,并且总是改变。其定义了多少 RAM被分配给哪个覆盖以及RAM的哪个/哪些部分是空闲的。ORAM 130 包括本文档来自技高网...

【技术保护点】
1.一种在并入NAND闪存和存储器控制器的存储器系统中的方法包括:将要由存储器控制器执行的固件存储在NAND闪存内;逻辑地将该固件排序到具有小于专用于固件执行的覆盖RAM存储器的最大量的大小的各覆盖中,所述各覆盖在大小方面不同;调用覆盖中存储的函数;将所述覆盖加载到存储器控制器的专用RAM存储器中;保存所选择的覆盖需要在覆盖RAM内的用于数据的空间分配的指示;以及随后利用该指示来避免所选择的覆盖的自我逐出。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:瓦德齐姆·斯特拉克
申请(专利权)人:桑迪士克公司
类型:发明
国别省市:US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1