会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 专利权 / 第I章 / 受理局 / 形式要求 / 缺陷 / DRAM缺陷的内核掩蔽

DRAM缺陷的内核掩蔽

阅读:286发布:2021-02-26

IPRDB可以提供DRAM缺陷的内核掩蔽专利检索,专利查询,专利分析的服务。并且公开了用于内核掩蔽动态随机存取存储器(DRAM)缺陷的系统、方法和计算机程序。一种这样的方法包括:检测并纠正与动态随机存取存储器(DRAM)中的物理地址相关联的单比特错误;从所述DRAM接收与所述物理地址相关联的错误数据;将所接收的错误数据存储在位于非易失性存储器中的故障地址表中;以及如果与所述物理地址相关联的错误的数量超过错误计数阈值,则停用与所述物理地址相对应的内核页。,下面是DRAM缺陷的内核掩蔽专利的具体信息内容。

1.一种用于内核掩蔽动态随机存取存储器(DRAM)缺陷的方法,所述方法包括:检测并纠正与动态随机存取存储器(DRAM)中的物理地址相关联的单比特错误;

从所述DRAM接收与所述物理地址相关联的错误数据;

将所接收的错误数据存储在位于非易失性存储器中的故障地址表中;以及如果与所述物理地址相关联的错误的数量超过错误计数阈值,则停用与所述物理地址相对应的内核页。

2.根据权利要求1所述的方法,其中,所述单比特错误由所述DRAM检测和纠正。

3.根据权利要求1所述的方法,其中,从所述DRAM接收所述错误数据包括:操作系统向所述DRAM查询错误数据。

4.根据权利要求1所述的方法,其中,所接收的错误数据标识与故障码字地址相对应的DRAM堆、列和行地址。

5.根据权利要求4所述的方法,其中,将所接收的错误数据存储在所述故障地址表中包括:对与所述故障码字地址相关联的错误的数量进行更新。

6.根据权利要求1所述的方法,其中,停用与所述物理地址相对应的所述内核页包括:生成坏页列表并将所述坏页列表存储在所述非易失性存储器中,所述坏页列表标识持有将要从存储器分配中排除的所述物理地址的内核页。

7.根据权利要求6所述的方法,还包括:

将所述内核页的内容转移到新的空内核页;以及

移除所述内核页未来不再使用。

8.根据权利要求6所述的方法,还包括:

在设备启动时,读取在所述非易失性存储器中存储的所述坏页列表;以及将所述坏页列表中标识的所述内核页从操作系统空闲页块列表中排除。

9.根据权利要求6所述的方法,还包括:

在设备启动时,从不同于所述DRAM和所述非易失性存储器的存储器执行主引导加载器;

从所述非易失性存储器读取所述坏页列表;以及

通过排除所述坏页列表中标识的所述内核页来确定无错DRAM的连续块。

10.根据权利要求9所述的方法,还包括:

从所述无错DRAM执行辅助引导加载器;

从所述无错DRAM加载操作系统;

所述操作系统对排除了所述坏页列表中标识的所述内核页的空闲块列表进行配置。

11.根据权利要求1所述的方法,其中,停用与所述物理地址相对应的所述内核页包括:从所分配的DRAM中排除所述内核页。

12.一种用于内核掩蔽动态随机存取存储器(DRAM)缺陷的系统,所述方法包括:用于检测并纠正与动态随机存取存储器(DRAM)中的物理地址相关联的单比特错误的单元;

用于从所述DRAM接收与所述物理地址相关联的错误数据的单元;

用于将所接收的错误数据存储在位于非易失性存储器中的故障地址表中的单元;以及用于如果与所述物理地址相关联的错误的数量超过错误计数阈值,则停用与所述物理地址相对应的内核页的单元。

13.根据权利要求12所述的系统,其中,所述用于从所述DRAM接收所述错误数据的单元包括:用于向所述DRAM查询错误数据的单元。

14.根据权利要求12所述的系统,其中,所接收的错误数据标识与故障码字地址相对应的DRAM堆、列和行地址。

15.根据权利要求14所述的系统,其中,所述用于将所接收的错误数据存储在所述故障地址表中的单元包括:用于对与所述故障码字地址相关联的错误的数量进行更新的单元。

16.根据权利要求12所述的系统,其中,所述用于停用与所述物理地址相对应的所述内核页的单元包括:用于生成坏页列表并将所述坏页列表存储在所述非易失性存储器中的单元,所述坏页列表标识持有将要从存储器分配中排除的所述物理地址的内核页。

17.根据权利要求16所述的系统,还包括:

用于在设备启动时,读取在所述非易失性存储器中存储的所述坏页列表的单元;以及用于将所述坏页列表中标识的所述内核页从操作系统空闲页块列表中排除的单元。

18.根据权利要求16所述的系统,还包括:

用于在设备启动时,从不同于所述DRAM和所述非易失性存储器的存储器执行主引导加载器的单元;

用于从所述非易失性存储器读取所述坏页列表的单元;以及用于通过排除所述坏页列表中标识的所述内核页来确定无错DRAM的连续块的单元。

19.根据权利要求18所述的系统,还包括:

用于从所述无错DRAM执行辅助引导加载器的单元;

用于从所述无错DRAM加载操作系统的单元;

用于对排除了所述坏页列表中标识的所述内核页的操作系统空闲块列表进行配置的单元。

20.根据权利要求12所述的系统,其中,停用与所述物理地址相对应的所述内核页包括:从所分配的DRAM中排除所述内核页。

21.一种体现在存储器中并可由处理器执行用于内核掩蔽动态随机存取存储器(DRAM)缺陷的计算机程序,所述计算机程序包括被配置为进行以下操作的逻辑单元:检测并纠正与动态随机存取存储器(DRAM)中的物理地址相关联的单比特错误;

从所述DRAM接收与所述物理地址相关联的错误数据;

将所接收的错误数据存储在位于非易失性存储器中的故障地址表中;以及如果与所述物理地址相关联的错误的数量超过错误计数阈值,则停用与所述物理地址相对应的内核页。

22.根据权利要求21所述的计算机程序,其中,所述单比特错误由所述DRAM检测和纠正。

23.根据权利要求21所述的计算机程序,其中,所述被配置为从所述DRAM接收所述错误数据的逻辑单元包括:被配置为向所述DRAM查询错误数据的逻辑单元。

24.根据权利要求21所述的计算机程序,其中,所接收的错误数据标识与故障码字地址相对应的DRAM堆、列和行地址。

25.根据权利要求24所述的计算机程序,其中,所述被配置为将所接收的错误数据存储在所述故障地址表中的逻辑单元包括:被配置为对与所述故障码字地址相关联的错误的数量进行更新的逻辑单元。

26.根据权利要求21所述的计算机程序,其中,所述被配置为停用与所述物理地址相对应的所述内核页的逻辑单元包括:被配置为生成坏页列表并将所述坏页列表存储在所述非易失性存储器中的逻辑单元,所述坏页列表标识持有将要从存储器分配中排除的所述物理地址的内核页。

27.根据权利要求26所述的计算机程序,还包括:被配置为在设备启动时,读取在所述非易失性存储器中存储的所述坏页列表的逻辑单元;以及被配置为将所述坏页列表中标识的所述内核页从操作系统空闲页块列表中排除的逻辑单元。

28.根据权利要求26所述的计算机程序,还包括:被配置为在设备启动时,从不同于所述DRAM和所述非易失性存储器的存储器执行主引导加载器的逻辑单元;

被配置为从所述非易失性存储器读取所述坏页列表的逻辑单元;以及被配置为通过排除所述坏页列表中标识的所述内核页来识别无错DRAM的连续块的逻辑单元。

29.根据权利要求28所述的计算机程序,还包括:被配置为从所述无错DRAM执行辅助引导加载器的逻辑单元;

被配置为从所述无错DRAM加载操作系统的逻辑单元;

被配置为生成排除了所述坏页列表中标识的所述内核页的空闲块列表的逻辑单元。

30.根据权利要求21所述的计算机程序,其中,所述被配置为停用与所述物理地址相对应的所述内核页的逻辑单元包括:被配置为从所分配的DRAM中排除所述内核页的逻辑单元。

31.一种用于掩蔽动态随机存取存储器(DRAM)缺陷的系统,所述系统包括:动态随机存取存储器(DRAM)系统;

纠错码(ECC)模块,其用于检测并纠正与所述DRAM中的故障码字地址相关联的比特错误;以及中央处理单元(CPU),其执行包括坏页掩蔽模块的操作系统,所述坏页掩蔽模块包括被配置为进行以下操作的逻辑单元:经由所述DRAM系统和所述ECC模块中的一个或多个来接收与所述故障码字地址相关联的错误数据;

将所接收的错误数据存储在位于非易失性存储器中的故障码字地址表中;以及如果与相应的故障码字地址相关联的错误的数量超过错误计数阈值,则停用与所述故障码字地址相对应的内核页。

32.根据权利要求31所述的系统,其中,所述ECC模块位于所述DRAM系统中,并且所述CPU位于电耦合到所述DRAM系统的片上系统(SoC)上。

33.根据权利要求31所述的系统,其中,所述被配置为接收所述错误数据的逻辑单元包括:被配置为向所述DRAM系统查询错误数据的逻辑单元。

34.根据权利要求31所述的系统,其中,所述被配置为将所接收的错误数据存储在所述故障码字地址表中的逻辑单元包括:被配置为对与所述故障码字地址相关联的错误的数量进行更新的逻辑单元。

35.根据权利要求31所述的系统,其中,所述被配置为停用与所述故障码字地址相对应的所述内核页的逻辑单元包括:被配置为生成坏页列表并将所述坏页列表存储在所述非易失性存储器中的逻辑单元,所述坏页列表标识持有所述故障码字地址的内核页。

36.根据权利要求35所述的系统,还包括:

被配置为在设备启动时,读取在所述非易失性存储器中存储的所述坏页列表的逻辑单元;以及被配置为将所述坏页列表中标识的所述内核页从操作系统空闲页块列表中排除的逻辑单元。

37.根据权利要求35所述的系统,还包括:

被配置为在设备启动时,从只读存储器(ROM)和静态随机存取存储器(SRAM)中的一个执行主引导加载器的逻辑单元;

被配置为从所述非易失性存储器读取所述坏页列表的逻辑单元;以及被配置为通过排除所述坏页列表中标识的所述内核页来识别无错DRAM的连续块的逻辑单元。

38.根据权利要求37所述的系统,还包括:

被配置为从所述无错DRAM执行辅助引导加载器的逻辑单元;

被配置为从所述无错DRAM加载操作系统的逻辑单元;

被配置为生成排除了所述坏页列表中标识的所述内核页的空闲块列表的逻辑单元。

39.根据权利要求31所述的系统,其中,所述被配置为停用与相应的故障码字地址相对应的所述内核页的逻辑单元包括:被配置为从所分配的DRAM中排除所述坏页列表中标识的所述内核页的逻辑单元。

40.根据权利要求31所述的系统,所述系统体现在便携式计算设备中。

说明书全文

DRAM缺陷的内核掩蔽

背景技术

[0001] 动态随机存取存储器(DRAM)制造工艺技术持续缩小以适应对更小芯片上更大存储器容量的不断增加的需求。DRAM工艺技术的常见量度是半间距,这指的是DRAM芯片中的单元之间的距离的一半。当前的DRAM工艺技术生产半间距在20–30纳米(nm)的范围中的DRAM芯片,尽管预计工艺技术的提升将在不久的将来缩小到小于20nm。
[0002] 尽管更密集的DRAM芯片提供所需的性能和设计优势,但不断缩小的几何形状产生许多挑战。例如,当DRAM工艺技术持续缩小,将使单元电容成比例减小,这增加了单元晶体管的泄漏。单元保持跨越DRAM管芯的正常分布将不会收紧,并且在整个DRAM管芯上将持续表现出“尾部”,其中一些单元在单元保持方面与均值相比具有很大的方差。可靠保持这些“尾部”中的数据可能需要刷新频率的显著增加或者,替换地,需要错误恢复方案(如,块错误纠正)。可能需要块错误纠正连同刷新来读-纠正-写存储在DRAM中的数据。在后一种情况下,损耗设备的寿命可能导致错误的累积。纠正DRAM上多个同时发生的错误需要很大的硅面积。另外,增加刷新频率对可用存储器带宽造成不利影响,并且还增加待机功耗。
[0003] 因此,尤其随着当DRAM工艺技术持续缩小,需要提供具有成本效益的且高效的方式来解决有缺陷的DRAM单元问题的改进的系统和方法。

发明内容

[0004] 公开了用于内核掩蔽动态随机存取存储器(DRAM)缺陷的系统、方法和计算机程序。一种这样的方法包括:检测并纠正与动态随机存取存储器(DRAM)中的物理地址相关联的单比特错误;从所述DRAM接收与所述物理地址相关联的错误数据;将所接收的错误数据存储在位于非易失性存储器中的故障地址表中;以及如果与所述物理地址相关联的错误的数量超过错误计数阈值,则停用(retire)与所述物理地址相对应的内核页。
[0005] 另一个实施例是用于掩蔽动态随机存取存储器(DRAM)缺陷的系统。一种这样的系统包括动态随机存取存储器(DRAM)系统、纠错码(ECC)模块以及中央处理单元(CPU)。所述ECC模块检测并纠正与所述DRAM中的故障码字地址相关联的比特错误。所述CPU执行包括坏页掩蔽模块的操作系统。所述坏页掩蔽模块包括被配置为进行以下操作的逻辑单元:经由所述DRAM系统和所述ECC模块中的一个或多个来接收与所述故障码字地址相关联的错误数据;将所接收的错误数据存储在位于非易失性存储器中的故障码字地址表中;以及如果与相应的故障码字地址相关联的错误的数量超过错误计数阈值,则停用与所述故障码字地址相对应的内核页。

附图说明

[0006] 在附图中,除非另外指示,否则相同的附图标记在各个视图中指代相同的部分。对于具有字母字符标示的附图标记,例如“102A”或“102B”,字母字符标示可以区分同一附图中存在的两个相同的部分或元素。当附图标记旨在涵盖所有附图中具有相同附图标记的所有部分时,可以省略附图标记的字母字符标示。
[0007] 图1是用于提供对DRAM缺陷的内核掩蔽的系统的实施例的框图。
[0008] 图2是示出图1中的DRAM系统的实施例的物理架构的更详细视图的框图。
[0009] 图3是示出用于实现用于图1的系统中的内核掩蔽DRAM缺陷的方法的某些方面的故障码字地址表的实施例的数据图。
[0010] 图4是示出用于实现用于图1的系统中的内核掩蔽DRAM缺陷的方法的某些方面的坏页列表的实施例的数据图。
[0011] 图5是示出在图1的系统中实现的用于内核掩蔽DRAM缺陷的方法的实施例的流程图。
[0012] 图6是用于内核掩蔽DRAM缺陷的系统的另一个实施例的框图。
[0013] 图7是示出在图1的系统中实现的用于内核掩蔽DRAM缺陷的设备启动方法的实施例的流程图。
[0014] 图8是包括图1的系统的便携式计算机设备的实施例的框图。
[0015] 图9是示出用于停用图5的流程图中的内核页的方法的实施例的流程图。

具体实施方式

[0016] 本文所使用的“示例性”一词意指“用作示例、实例或说明”。在本文中被描述为“示例性”的任何方面并不必然被解释为优选的或者比其它方面更有优势。
[0017] 在本说明书中,术语“应用”还可以包括具有可执行内容的文件,诸如:对象代码、脚本、字节代码、标记语言文件和补丁。此外,本文提及的“应用”还可以包括在性质上不可执行的文件,诸如可能需要打开的文档或需要访问的其它数据文件。
[0018] 术语“内容”还可以包括具有可执行内容的文件,诸如:对象代码、脚本、字节代码、标记语言文件和补丁。此外,本文提及的“内容”还可以包括在性质上不可执行的文件,诸如可能需要打开的文档或需要访问的其它数据文件。
[0019] 如在本说明书中所使用的,术语“组件”、“数据库”、“模块”、“系统”等旨在指代与计算机相关的实体,或者是硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但不限于是运行在处理器上的过程、处理器、对象、可执行程序,执行的线程、程序、和/或计算机。通过说明的方式,在计算设备上运行的应用和计算设备都可以是组件。一个或多个组件可以位于过程和/或执行的线程之内,并且组件可以位于一台计算机上和/或分布在两台或更多台计算机之间。此外,这些组件可以从具有其上存储有各种数据结构的各种计算机可读介质执行。组件可以通过本地的和/或远程的过程的方式,例如根据具有一个或多个数据分组的信号(例如,来自与本地系统、分布式系统中另一个组件进行交互的一个组件的数据,和/或通过信号的方式越过诸如互联网之类的网络与其它系统进行交互的一个组件的数据)来进行通信。
[0020] 在本说明书中,术语“通信设备”、“无线设备”、“无线电话”、“无线通信设备”和“无线手持设备”可互换使用。随着第三代(“3G”)无线技术和四代(“4G”)的出现,更多的可用带宽已使更多的便携式计算设备具有更加多种多样的无线能力。因此,便携式计算设备可以包括:蜂窝电话、寻呼机、PDA、智能电话、导航设备或具有无线连接或链路的手持计算机。
[0021] 图1示出了提供对DRAM缺陷的内核掩蔽的系统100。系统100可以在任何计算设备中实现,这些计算设备包括:个人计算机、工作站、服务器、便携式计算设备(PCD)(诸如蜂窝电话、便携式数字助理(PDA)、便携式游戏控制台、掌上型计算机或平板计算机)。如图1的实施例中所示,系统100包括电耦合到DRAM存储器系统104和非易失性存储器132的片上系统(SoC)102。非易失性存储器132可以包括任何非易失性存储器,诸如,举例来说,闪存、闪速驱动器、安全数字(SD)卡、固态驱动器(SSD)或其它类型。
[0022] SoC 102包括各种片上组件,其包括:经由SoC总线116来互连的中央处理单元(CPU)106、DRAM控制器108、静态随机存取存储器(SRAM)110、只读存储器(ROM)112以及存储控制器114。SoC 102可以包括从DRAM 104请求存储器资源的一个或多个存储器客户端。存储器客户端可以包括一个或多个处理单元(例如,中央处理单元(CPU)106、图形处理单元(GPU)、数字信号处理器(DSP)等)、视频编码器或请求对DRAM系统104的读/写访问的其它客户端。
[0023] SoC 102上的存储控制器114电耦合到非易失性存储器132。存储控制器114管理存储在非易失性存储器132上的数据。DRAM控制器108经由例如RAM总线电耦合到DRAM 104。DRAM控制器108管理去往和来自DRAM 104的数据的流动。DRAM控制器108通常包括用于向DRAM 104进行读和写的逻辑单元。
[0024] 系统100允许操作系统(O/S)120掩蔽掉DRAM单元阵列126中的缺陷或错误,从而向SoC 102上的存储器客户端提供无错的虚拟存储器。系统100使用纠错码(ECC)模块124和坏页掩蔽模块122来提供对DRAM缺陷的内核掩蔽。ECC模块124在DRAM操作(例如,读和/或写操作)期间检测双比特错误并纠正单比特错误。例如,在DRAM写操作期间,ECC模块124可以将写数据用作输入,然后生成冗余奇偶校验比特。组合的写数据和奇偶校验比特一起形成了被称为码字的单元,并且可以单独或一起存储在DRAM单元阵列126中。在读操作期间,ECC模块124可以使用取回的码字的数据部分来重新计算奇偶校验比特,然后将这些奇偶校验比特与在写操作期间存储的码字的奇偶校验比特部分进行比较。读操作重新计算的奇偶校验比特与所存储的奇偶校验比特之间的不匹配指示检测到错误。此外,奇偶校验比特可以足以在码字内提供单个错误纠正。
[0025] 应当明白的是,ECC模块124可以作为组件集成在DRAM 104(如图1中所示)或SoC 102中。坏页掩蔽模块122通常包括用于对与故障码字地址相关联的坏的物理页进行掩蔽的逻辑单元。坏页掩蔽模块122与ECC模块124对接,以用于接收与故障码字地址相关联的错误数据。本领域普通技术人员将明白的是,DRAM比特错误可以具有几种潜在原因,诸如,举例来说,隐藏的硅缺陷、充电的粒子或电磁波中断,或弱电容保持,其中任何一种原因可导致码字错误。
[0026] 参考图2,错误数据可以包括标识例如DRAM芯片207、DRAM芯片207中的堆(bank)209、堆209中的一个堆中的DRAM页211以及与码字213相对应的码字地址的信息。图2示出了DRAM系统104的示例性实施例,其包括一个或多个DRAM芯片207。如本领域中已知的,每个DRAM芯片207可以包括多个堆209,其中每个堆209定义多个DRAM页211。DRAM页211包括多个码字213。码字213包括DRAM单元阵列126中的多个比特215。图2示出了包括256个比特的数据并与物理地址(0x00000DAD0)相对应的码字213。
[0027] 如本领域中已知的,在操作中,ECC模块124可以检测并纠正故障比特,从而在尽管有故障比特的情况下实现成功的DRAM操作。ECC模块124可以将错误数据暂时存储在例如DRAM 104中的易失性寄存器/RAM中。错误数据可以包括涉及ECC故障的信息,诸如,举例来说,最近发生故障的码字的起始地址,以及错误是否被成功纠正。错误数据可能不是SoC软件可直接寻址的,但可经由DRAM控制器108向DRAM 104查询错误数据来获得。坏页掩蔽模块122、O/S 120、或CPU 106上运行的其它软件(例如,虚拟存储器管理器)从ECC模块124读取揭露故障码字地址301的错误数据,并将该错误数据存储在位于非易失性存储器132中的故障码字地址表130中。错误计数303可以跟踪该故障码字地址301已遇到错误的次数。当新位置具有错误时,故障码字地址表130中的条目的数量增加。当错误对于同一个码字地址301重复时,错误计数303递增。
[0028] 图3示出了故障码字地址表130的示例性实施例。表130可以包括用于列出与故障码字213(图2)相对应的地址的数据字段301。数据字段303包括故障码字地址的累积错误的错误计数。坏页掩蔽模块122可以被配置为:从ECC模块124接收错误数据,以及对故障码字地址表130进行更新,包括递增错误计数。应当明白的是,错误计数数据字段303使坏页掩蔽模块122能够确定坏的物理页。例如,如果码字地址213的错误计数超过预先确定的阈值,则DRAM 104中的物理位置可以由O/S 120定义为坏的物理页。如果超过了阈值,则坏页掩蔽模块122可以停用与故障码字地址相对应的内核页。如果该页当前在使用中,则可以向新的物理页和迁移到新的物理页的内容重新分配虚拟页。
[0029] 可以经由存储在非易失性存储器132中的坏页列表134的生成和管理来停用内核页。图4示出了示例性坏页列表134,其标识包含已经超过错误计数阈值的故障码字地址(字段307)的内核页起始地址(数据字段305)。在图3和图4的示例中,错误计数阈值=2个错误,在这种情况下,码字地址0x00000DAD0被标识为故障码字地址。可以更新坏页列表134以便在持有故障码字地址(0x00000DAD0)的数据字段305中列出内核页起始地址(0x00000D800)。
[0030] 如同下面更详细描述的,当向虚拟存储器分配物理页时,系统100可以访问坏页列表134来确定哪些页是坏的,并且将这些坏页排除在分配之外。例如,在包括230字节的1千兆字节DRAM芯片207中,存在218个页211,每一页具有212(4096字节)字节的大小。在这些218个页211中,存在已经或将要发生故障并且必须被移除未来不再使用的一部分(例如,大约0.01%)。可以使用相同的空闲页块列表、页表和用于规则的虚拟到物理映射的MMU 118,从操作系统120和坏页掩蔽模块122来控制对物理页的访问。将已经发现是坏的内核页起始地址305从操作系统的空闲页块列表中移除。以此方式,从不使用如坏页列表134中所定义的坏的物理页来分配虚拟存储器。
[0031] 图5示出了在系统100中实现的用于内核掩蔽DRAM缺陷的方法的实施例。在框502处,ECC模块124检测并纠正与DRAM操作相关联的码字213中的单比特错误。在框504处,与故障码字213相关联的错误数据可以由O/S 120、坏页掩蔽模块122或其它软件接收。错误数据可以存储(框506)在位于非易失性存储器132的故障码字地址表130(图3)中,或以其它方式被更新来递增错误计数(数据字段303)。如上所述,如果错误计数超过错误计数阈值,则可以停用与故障码字地址307相对应的内核页(框508),并且可以从存储器分配中排除该物理DRAM位置。
[0032] 图9示出了用于实现图5中的框508的用于停用内核页的方法的实施例。应当明白的是,当确定要停用内核页时,内核页可能在使用中或可能没有在使用中。在框902处,通过检查操作系统120页表来核查内核页是否在使用中,操作系统120页表包括:包含至物理存储器的所有映射的目录的软件结构。如果内核页在使用中,则在框904处,从空闲页块列表122分配新的空页。空闲页块列表122包括:包含所有未使用的并因此可用的物理存储器的目录的软件结构。使用先前的示例,由230个字节组成的1千兆字节的DRAM芯片207包含218个页。如果该存储器的一半是空闲可使用的(即,可用的),则空闲页块列表包含217个空闲页的目录。操作系统120每当分配存储器时,都咨询空闲页块列表122。在框906处,故障内核页的内容可以复制到新的空页。在框908处,可以更新页表,将对先前故障内核页的引用切换到新的空页。在框910处,不再允许故障内核页存在于空闲页块列表122上。
[0033] 图6和图7示出了用于基于坏页列表134来停用内核页的示例性实现。如图6中所示,O/S 120还可以包括主引导加载器602、辅助引导加载器604和虚拟存储器管理器606。虚拟存储器管理器606可以包括存储器分配组件,其用于生成并管理用于标识无错DRAM存储器的空闲页块列表122。
[0034] 主引导加载器602不从任何DRAM执行或使用任何DRAM。相反,其从SRAM 110和/或ROM 112运行。辅助引导加载器604访问坏页列表134并从非易失性存储器132取回坏物理页的列表。使用坏物理页的列表,辅助引导加载器604定位DRAM地址的连续区段(其包含零个坏页),并配置MMU 118来使用该区段作为无错主存储器127(图6)以用于辅助引导操作(诸如,举例来说,加载软件映像)。无错区段127可以具有任意大小,并且可以使用单个或多个较小的连续区段来形成。无错区段127可以位于DRAM单元阵列126中的任何地方。或者,可以通过以高速率刷新操作该部分来确保DRAM 104的预先确定的区域无错。
[0035] 辅助引导加载器604将O/S 120加载到无错区段,并且还将坏物理页信息传递到其它系统组件。O/S 120启动虚拟存储器管理器606,虚拟存储器管理器606可使用坏的物理页数据来访问整个存储器空间。此时,所有坏的物理页已经被标记为(不使用)并且从不被分配使用。如果需要的话,内核可以重新定位到其它物理位置。所有存储器客户端可与O/S 120通信来获得无错DRAM。
[0036] 图7示出了由系统100(图6)实现的用于内核掩蔽DRAM缺陷的方法的实施例。在框702处,并入有系统100的设备(例如,PCD 800)上电并且引导序列被启动。如本领域已知的,引导序列可以由基本输入/输出系统(BIOS)、O/S 120或CPU 106启动。在框704处,主引导加载器602由CPU 106从例如ROM 112和/或SRAM 110执行。对非易失性存储器132进行初始化(框706)并读取坏页列表134(框708)。在框710处,基于坏页列表134中的地址数据来识别无错DRAM的连续块。MMU 118被配置为从无错区段127加载和执行辅助引导加载器604(框
712)。在框714处,可以将O/S 120加载到无错区段127。在框716处,O/S 120启动并配置空闲页块列表122以排除坏页列表134中标识的坏的物理页。
[0037] 如同上面所提到的,系统100可以被并入到任何期望的计算系统中。图8示出了被并入示例性便携式计算设备(PCD)800中的系统100。将容易明白的是,系统100的某些组件包括在SoC 322(图8)上,而其它组件(例如,DRAM 104)是耦合到SoC 322的外部组件。SoC 322可以包括多核心CPU 802。多核心CPU 802可以包括:第零核心810、第一核心812和第N核心814。这些核心中的一个核心可以包括例如图形处理单元(GPU),而其它核心中的一个或多个核心包括CPU。
[0038] 显示控制器328和触摸屏控制器330可以耦合到CPU 802。转而,在片上系统322外部的触摸屏显示器806可以耦合到显示控制器328和触摸屏控制器330。
[0039] 图8还示出了视频编码器334(例如,逐行倒相(PAL)编码器、顺序传送彩色与存储(SECAM)编码器或国家电视系统委员会(NTSC)编码器)耦合到多核心CPU 602。另外,视频放大器336耦合到视频编码器334和触摸屏显示器806。此外,视频端口338耦合到视频放大器336。如图8中所示,通用串行总线(USB)控制器340耦合到多核心CPU 802。此外,USB端口342耦合到USB控制器340。存储器104和用户身份模块(SIM)卡346也可以耦合到多核心CPU 
802。存储器104可以位于SoC 322上或耦合到SoC 322(如图1中所示)。存储器104可以包括如上所述的DRAM存储器系统(图1)。
[0040] 此外,如图8中所示,数字相机348可以耦合到多核心CPU 802。在示例性方面中,数字相机348是电荷耦合器件(CCD)相机或互补金属氧化物半导体(CMOS)相机。
[0041] 如图8中进一步所示,立体声音频编码器-解码器(编解码器)350可以耦合到多核心CPU 802。此外,音频放大器352可以耦合到立体声音频编解码器350。在示例性方面中,第一立体声扬声器354和第二立体声扬声器356耦合到音频放大器352。图8示出了麦克风放大器358也可以耦合到立体声音频编解码器350。另外,麦克风360可以耦合到麦克风放大器358。在特定方面中,频率调制(FM)无线电调谐器362可以耦合到立体声音频编解码器350。
此外,FM天线364耦合到FM无线电调谐器362。此外,立体声耳机366可以耦合到立体声音频编解码器350。
[0042] 图8还示出射频(RF)收发机368可以耦合到多核心CPU 802。RF开关370可以耦合到RF收发机368和RF天线372。键盘204可以耦合到多核心CPU 802。此外,具有麦克风376的单声道耳机可以耦合到多核心CPU 602。此外,振动器设备378可以耦合到多核心CPU 802。
[0043] 图8还示出了电源380可以耦合到片上系统322。在特定方面中,电源380是向需要电力的PCD 800的各个组件提供电力的直流(DC)电源。另外,在特定方面中,电源是可再充电的DC电池或DC电源,其从连接到AC电源的交流(AC)至DC变压器得到。
[0044] 图8还指示PCD 800还可以包括可用于接入数据网络(例如,局域网、个域网或任何其它网络)的网卡388。网卡388可以是蓝牙网卡、WiFi网卡、个域网(PAN)卡、个域网超低功率技术(PeANUT)网卡、电视/有线/卫星调谐器、或本领域中公知的任何其它网卡。另外,网卡388可以被并入到芯片中,即,网卡388可以是芯片中的完整解决方案,并且可以不是单独的网卡388。
[0045] 如图8中所描绘的,触摸屏显示器806、视频端口338、USB端口342、相机348、第一立体声扬声器354、第二立体声扬声器356、麦克风360、FM天线364、立体声耳机366、RF开关370、RF天线372、键盘374、单声道耳机376、振动器378和电源380可以在片上系统322外部。
[0046] 应当明白的是,本文所描述的方法步骤中的一个或多个方法步骤可以作为计算机程序指令(诸如上述模块)存储在存储器中。这些指令可以由任何适当的处理器结合或配合相应模块来执行,以便执行本文所描述的方法。
[0047] 为了本发明如所述那样运作,本说明中所描述的过程或过程流中的某些步骤自然地先于其它步骤。然而,本发明并不受限于所描述的步骤的次序,如果这种次序或顺序并不改变本发明的功能的话。也就是说,应当认识到,在不脱离本发明的范围和精神的前提下,一些步骤可以在其它步骤之前、之后或与其它步骤并行(基本上同时)执行。在某些实例中,可以在不脱离本发明的情况下省略某些步骤或不执行某些步骤。此外,诸如“此后”、“然后”、“接下来”等等的词并不旨在限制这些步骤的次序。这些词语只是用于通过示例性方法的描述来引导读者。
[0048] 另外,编程领域的普通技术人员能够编写计算机代码或识别适当的硬件和/或电路,以便例如基于本说明中的流程图和相关联的描述来毫不困难地实现所公开的发明。
[0049] 因此,特定集合的程序代码指令或详细硬件设备的公开不应该被认为是要充分理解怎样实现和使用本发明所必要的。在上文的描述中并且结合可以示出各个过程流的附图更详细地解释了所要求保护的计算机实现的过程的创造性功能。
[0050] 在一个或多个示例性方面中,本文所描述的功能可以用硬件、软件、固件、或其任意组合来实现。如果用软件实现,则功能可以存储在计算机可读介质上或者作为计算机可读介质上的一个或多个指令或代码来发送。计算机可读介质包括计算机存储介质和通信介质二者,通信介质包括有助于将计算机程序从一个地点传输到另一个地点的任何介质。存储介质可以是可由计算机访问的任何可用介质。通过举例而非限制性的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、NAND闪存、NOR闪存、M-RAM、P-RAM、R-RAM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者可以用于以指令或数据结构形式的携带或存储期望的程序代码并可以由计算机访问的任何其它介质。
[0051] 此外,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤线缆、双绞线、数字用户线(DSL)、或者诸如红外线、无线电和微波之类的无线技术从网站、服务器、或其它远程源发送软件,则同轴电缆、光纤线缆、双绞线、DSL、或者诸如红外线、无线电和微波之类的无线技术包括在介质的定义中。
[0052] 如本文所使用的,磁盘(disk)和光盘(disc)包括压缩光盘(“CD”)、激光光盘、光盘、数字多功能光盘(“DVD”)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上述各项的组合也应该包括在计算机可读介质的范围之内。
[0053] 在不脱离本发明的精神和范围的前提下,替代的实施例对本发明所涉及领域的普通技术人员来说将变得显而易见。因此,虽然已经示出并详细描述了所选择的方面,但将理解的是:如同所附权利要求所定义的,可以在不脱离本发明的精神和范围的前提下进行各种替换和改变。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用