CN116529821A - 用于刷新便携式计算设备的存储器的方法和系统 - Google Patents
用于刷新便携式计算设备的存储器的方法和系统 Download PDFInfo
- Publication number
- CN116529821A CN116529821A CN202180075368.2A CN202180075368A CN116529821A CN 116529821 A CN116529821 A CN 116529821A CN 202180075368 A CN202180075368 A CN 202180075368A CN 116529821 A CN116529821 A CN 116529821A
- Authority
- CN
- China
- Prior art keywords
- memory
- refresh
- address
- size
- bank
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 585
- 238000000034 method Methods 0.000 title claims description 47
- 230000000977 initiatory effect Effects 0.000 claims description 32
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 5
- 101150074062 Tnfsf11 gene Proteins 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101100498823 Caenorhabditis elegans ddr-2 gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40618—Refresh operations over multiple banks or interleaving
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40615—Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/401—Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C2211/406—Refreshing of dynamic cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/401—Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C2211/406—Refreshing of dynamic cells
- G11C2211/4063—Interleaved refresh operations
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
Abstract
HLOS的内核可以发起一个或多个存储器刷新请求。每个存储器刷新请求可以具有第一存储器地址范围和大小值。资源功率管理器可以被耦合到内核并且被耦合到存储器。存储器可以具有多个存储器组。资源功率管理器可以从内核接收存储器刷新请求。资源功率管理器然后可以确定多个存储器组是对称还是不对称。如果存储器组对称,则资源功率管理器跨对称的存储器组均匀地并且以并行方式分配存储器刷新请求。如果存储器组不对称,则资源功率管理器然后将确定存储器刷新请求是否应当是以下中的一个:仅线性存储器刷新;交错与线性存储器刷新;或仅交错存储器刷新。
Description
相关技术的描述
便携式计算设备(“PCD”)正在成为人们个人和专业水平的必需品。这些设备可以包括移动电话、平板计算机、掌上计算机、便携式数字助理(“PDA”)、便携式游戏机和其他便携式电子设备。PCD通常包含集成电路或片上系统(“SoC”),集成电路或片上系统包括被设计成一起工作以向用户提供功能的许多组件或子系统。
例如,SoC可以包含各种存储器存储设备,诸如动态随机存取存储器(DRAM)。一系列DRAM芯片可以存在于SOC上并且该一系列DRAM芯片可以被称为存储器组,如本领域技术人员所理解的。PCD可以具有多个存储器组。
通常,DRAM内的多个存储器组在其操作期间需要被刷新。DRAM的这种刷新通常被称为部分阵列自刷新(PASR)。
PASR是通过利用双倍数据速率(DDR)DRAM中唯一需要的DRAM段来节省最大功率的最佳特征。每个DRAM存储器单元通常包括一个金属氧化物半导体场效应晶体管(MOSFET)和一个电容器,以使用外部电荷来存储一个比特(二进制数据)。由于电流会随着时间从电容器泄漏,因此必须定期刷新电容器以保持数据完整性。
自刷新操作(即PASR)通常将DRAM的时钟去激活以减少PCD的功耗,并且在DRAM内可以以特定间隔自动执行PASR。当DRAM长时间段未被访问(读取/写入)时,自刷新模式可以有效地保持数据完整性。功率节约是大多数PCD关注的问题,因为大多数PCD是电池供电的。
PASR的一个问题是常规DRAM以线性方式进行刷新,这意味着首先刷新第一存储器组,然后在刷新第一存储器组之后,然后刷新第二存储器组。PASR请求存在问题,因为它们会消耗PCD的功率,并且如果不能有效地执行多个请求,则可能会消耗大量的功率。
现有技术中存在的另一个问题是,DRAM的存储器组经常在其大小方面可能不对称。换句话说,DRAM的第一存储器组可以具有第一大小。同时,DRAM的第二存储器组可以具有大于第一大小的第二大小。因此,以有效方式跨两个或更多个大小不均的存储器组分配PASR请求可能存在问题。
因此,本领域需要一种方法和系统来克服与上述不对称存储器组之间的PASR请求的非交错相关联的问题,包括缺乏功率节约和/或存储器组的低效刷新。所需要的是一种可以提供对来自操作系统的内核的PASR请求进行有效交错的方法和系统,其中PASR请求在形成便携式计算设备的整个存储器的两个或更多个不对称存储器组之间进行交错。
发明内容
本文公开了用于刷新诸如PCD中的DRAM的存储器的系统、方法、计算机可读介质和其他示例。一种用于刷新具有不同大小的不对称存储器组的计算设备中的存储器的方法和系统可以包括:从内核接收存储器刷新请求。存储器刷新请求可以包括起始存储器地址和大小值。基于该大小值和起始存储器地址,可以计算结束存储器地址。
接下来,确定刷新请求的起始存储器地址值和结束存储器地址值是否都超过阈值。该阈值可以是基于形成不对称存储器配置的两个存储器组的最小大小。
然后,如果刷新请求的起始存储器地址值和结束存储器地址值都超过阈值,则可以基于存储器刷新请求,发起一个存储器组的仅线性刷新。
同时,该方法和系统可以包括:确定起始存储器地址是否小于或等于阈值,并且确定结束存储器地址是否大于阈值。如果起始存储器地址小于或等于阈值并且如果结束存储器地址大于阈值,则可以发起不对称存储器组的线性与交错存储器刷新。并且如果第一存储器地址和结束存储器地址都小于阈值,则可以发起不对称存储器组的仅交错存储器刷新。该方法和系统还可以包括:基于起始存储器地址,确定针对较小存储器组的存储器刷新的大小和较大存储器组的存储器刷新的大小。
一种用于刷新计算设备中的存储器的方法和系统可以包括操作系统,该操作系统具有用于发起离线或在线存储器刷新请求的内核。每个离线或在线存储器刷新请求可以具有起始存储器地址和大小值。资源功率管理器可以被耦合到内核并且被耦合到存储器。存储器可以具有多个存储器组。
资源功率管理器可以从内核接收存储器刷新请求。资源功率管理器然后可以确定多个存储器组是对称还是不对称。
如果存储器组对称,则资源功率管理器跨对称存储器组均匀地并且以并行方式分配存储器刷新请求。如果存储器组不对称,则资源功率管理器可以基于起始存储器地址和大小值,来确定结束存储器地址。然后,资源功率管理器将确定存储器刷新请求是否应当是以下中的一个:仅线性存储器刷新;交错与线性存储器刷新;或仅交错存储器刷新。
附图说明
在图中,相同的附图标记在各个视图中指代相同的部件,除非另有指示。对于具有诸如“102A”或“102B”的字母字符指定的附图标记,字母字符指定可以区分相同图中存在的两个相似部件或元件。当想要附图标记涵盖所有图中具有相同附图标记的所有部件时,可以省略附图标记的字母字符指定。
图1图示了可以包括片上系统的便携式计算设备(PCD)的部分,该片上系统具有中央处理单元(CPU)、资源功率管理器(RPM)、模式寄存器和动态随机存取存储器(DRAM);
图2A是形成DRAM的示例性对称存储器组的功能框图;
图2B是形成DRAM的示例性不对称存储器组的功能框图;
图3A是图示了由不对称存储器组以仅线性方式/方法完成来自内核的PASR请求的功能框图;
图3B是图示了由不对称存储器组以线性与交错方式完成来自内核的PASR请求的功能框图;
图3C是图示了由不对称存储器组以仅交错方式完成来自内核的PASR请求的功能框图;
图3D是图示了由对称存储器组以仅交错方式完成来自内核的PASR请求的功能框图;
图3E是图示了用于在便携式计算设备(PCD)的存储器组之间使部分阵列自刷新(PASR)请求交错的方法的逻辑流程图;
图3F是图3E的流程图的继续,并且它图示了由用于DRAM的不对称存储器组配置来完成PASR请求;
图3G是图3E的流程图的继续,并且它图示了由对称存储器配置来完成PASR请求;
图4是图示了针对示例性方法支持的不对称DRAM存储器配置的三种交错场景类型的表;
图5是图示了由对称DRAM存储器配置处理的PASR请求的表;
图6是根据示例性实施例的便携式计算设备的框图。
具体实施方式
本文使用的词语“示例性”意指“用作示例、实例或说明”。词语“说明性”在本文中可以与“示例性”同义使用。本文被描述为“示例性”的任何方面不一定被解释为优于或胜于其他方面。与本文中可以用于意指不经由中间元件连接的术语“直接连接”相比,术语“耦合”在本文中可以用于意指经由零个或多个中间元件连接。
现在参考图1,在说明性或示例性实施例中,便携式计算设备(PCD)600(也见图6)可以包括片上系统(602),片上系统(602)具有中央处理单元(CPU)604、资源功率管理器(RPM)601、模式寄存器688和位于芯片602上的内部DRAM 631。PCD 600还可以包括片外的外部DRAM 630,即位于SoC 602之外/外部的DRAM 630。
每个DRAM 631、630可以具有一个或多个存储器组(参见图2A-图2B),存储器组由多个存储器芯片202形成。仅举几例,每个DRAM 631、630可以是双倍数据速率(DDR)存储器、低功耗双倍数据速率(LPDDR)存储器、双倍数据速率2同步动态随机存取存储器(DDR2SDRAM)或双倍数据速率3同步动态随机存取存储器(DDR3SDRAM)。由组形成的其他存储器类型是可能的,并且被包括在本公开的范围内。
如下面将更详细解释的,用于每个DRAM 631、630的两个或更多个存储器组可以相对于彼此不对称。换句话说,在不对称配置中,每个存储器组可以具有相对于彼此不均匀的大小。例如,第一组rank0可以具有2.0吉字节(GB)的大小,而第二组rank1可以具有4.0吉字节(GB)的大小。(参见下面描述的图2B、图3A-图3C)。
根据其他示例性实施例,存储器组可以大小对称。换句话说,在对称配置中,存储器组可以具有相等的大小,诸如每个组具有4.0GB的存储器。存储器组的其他大小和组合是可能的,并且被包括在本公开的范围内。即,超出和低于2.0GB和4.0GB对称存储器组的其他大小是可能的并且被包括在内,如本领域技术人员所理解的。
CPU 604可以执行内核603。内核603是在用于PCD 600的高层级操作系统(HLOS)的核心处的计算机程序。内核603通常是HLOS的始终驻留在存储器中的部分,并且它通常有助于PCD 600的硬件和/或软件组件之间的交互。
内核603可以发起一个或多个部分阵列自刷新(PASR)请求。如前所述,PASR是通过利用双数据速率DRAM中唯一需要的DRAM段来节省最大功率的最佳特性。内核603通常向资源功率管理器(RPM)601发送PASR请求。RPM 601通常监测支持PCD 600的软件功能的硬件的功率消耗。
根据本发明的系统,RPM 601可以包括逻辑,和/或它可以执行对应于图3E-图3H中图示的逻辑流程图的计算机代码。具体地,RPM601可以执行对应于图3E-图3H的软件,该软件可以在可以形成内部DRAM 631或外部DRAM 630或两者的两个或更多个存储器组之间使来自内核603的PASR请求交错。即,RPM 601可以应用逻辑来确定如何在DRAM 631、630内的两个或更多个存储器组之间分配PASR请求,这可以减少功耗并且可以增加DRAM存储器刷新效率。
在不对称(或不平衡)存储器组配置的情况下,不能跨存储器组相等地分配数据。因此,数据以交错方式进行存储,直到较小组中的一个较小组被填充,而其余数据以线性方式被填充在较大组中。
虽然如图3E-图3H中图示的RPM 601的逻辑已经在软件方面进行了描述,但系统的部分可以以硬件、软件或它们的任意组合来进行实现。如果以硬件实现,则支持图3E-图3H的逻辑的设备可以包括本领域公知的以下技术中的任一种或其组合:分立电子组件、集成电路、具有适当配置的半导体设备和电阻性元件的专用集成电路等。这些硬件设备中的任一个硬件设备(无论是与其他设备或其他组件(诸如存储器)一起行动还是单独行动)也可以形成或包括用于执行所公开和图示的方法步骤的各种操作或步骤的组件或部件。
RPM 601可以接收来自内核603的PASR请求,并且确定如何在DRAM 631、630的两个或更多个存储器组之间划分PASR请求。在一些情况下,根据PASR请求的大小,RPM 601可以确定,对PASR请求进行交错可能不如以线性方式完成PASR请求那么有效。因此,在一些情况下,RPM 601可以确定PASR请求的仅线性完成更加高效,如将在下面更详细解释的。此外,RPM 601还可以确定PASR请求的第一部分应当以线性方式完成,而PASR请求的第二部分应当以交错方式完成,以便使用线性方案和交错方案两者来完成PASR请求。
在RPM 601确定它将如何分配来自内核603的PASR请求之后,RPM 601将向模式寄存器(MR)688发送适当的命令。MR 688定义DRAM的操作模式。MR 688可以驻留在具有外部DRAM 631的SoC中,或者它可以驻留在外部DRAM 630内。
通常,对于本文,MR 688具有多个可配置位,这些可配置位可以被动态更新以反映不断改变的系统要求。它们可以包括但不限于用于调整突发长度、突发类型、CAS延时、操作模式、延迟锁定循环(DLL)复位、写入恢复和断电模式中的选择的位,如本领域技术人员所了解的。MR 688可以在可以形成每个DRAM 631、630的存储器组之间分配PASR请求/命令。
现在参考图2A,该图是形成DRAM 631A-630A的示例性对称组的功能框图。根据该示例性实施例,第一存储器组rank0可以具有八个存储器芯片202a-202h。并且第一组rank0的这些芯片202中的每个芯片可以具有第一大小(即size1)。
类似地,DRAM 631A-630A的第二存储器组rankl也可以具有八个存储器芯片202i-202p。并且第二组rank1的这些芯片202中的每个芯片可以具有与第一存储器组rank0中的那些芯片202相同的第一大小(即size1)。因为两个组rank0和rank1具有相等的大小,所以它们在本公开中被称为“对称”存储器组,“对称”存储器组可以形成DRAM 631A和/或630A。
针对每个存储器组的示例性大小可以包括但不限于256兆字节(MB)、512MB、1GB、2GB、4GB、16GB等。比这些大或小的其他大小对于每个组都是可能的,并且被包括在本公开的范围内。此外,虽然图2A中图示了八(8)位宽的组,但其他组也是可能的,诸如四(4)位宽的组,该四(4)位宽的组将包括十六(16)个芯片202(未图示)。
现在参考图2B,该图是形成DRAM 631B和/或630B的示例性不对称组的功能框图。该图类似于图2A,因此这里将仅描述不同之处。
根据图2B的该示例性实施例,第一组rank0的每个芯片202具有第一大小/容量size1。同时,第二组rank1的每个芯片202具有第二大小/容量size2。该size2可以大于size1,反之亦然。因为每个存储器组rank0和rank1相对于彼此具有不同的大小,所以它们在本公开中被称为“不对称”存储器组,“不对称”存储器组可以形成DRAM 631B和/或630B。
现在参考图3A,该图是图示由不对称存储器组(rank0和rank1)以仅线性方式/方法完成来自内核603的PASR请求的功能框图300a。根据该示例性实施例和图3B-图3C中图示的示例性实施例,第一存储器组rank0可以具有2.0GB的大小。同时,第二存储器组rank1可以具有4.0GB的大小。如前所述,因为存储器组相对于彼此具有不同的大小,所以它们在本公开中被称为“不对称”存储器组。
根据图3A中所示的该示例性实施例,RPM 601确定来自内核603的2.0GB PASR请求应当以线性方式/线性方法来完成,这意味着只有一个存储器组(第二存储器组(rank1))用于完成PASR请求。
这意味着,如果PASR请求与存储器分配请求有关,则刷新第二组(rank1)的2GB的阴影区域。RPM 601选择第二组(rank1)的仅线性刷新,因为RPM 601发现两个条件为真:(1)PASR请求的起始存储器地址大于或等于两个可用存储器组的大小的最小值的两倍;以及(2)PASR请求的结束存储器地址也大于两个可用存储器组的大小的最小值的两倍。参见在下面更详细描述的图3F的判决步骤330。
如果PASR请求是由内核603结合存储器解除分配请求(即,释放存储器使用等)做出的,则第二存储器组(rankl)的2GB的阴影区域将不被刷新。根据该示例性实施例,第一存储器组(rank0)将不会完成PASR请求的任何部分。
现在参考图3B,该图是图示了由不对称存储器组(rank0和rank1)以线性与交错方式完成来自内核的PASR请求的功能框图300b。该示例性实施例类似于图3A中图示的实施例,因此这里将仅描述不同之处。
根据该示例性实施例,RPM 601已经确定应当以线性和交错方式来完成PASR请求的完成。即,RPM 601已经确定2.0GB PASR请求的第一部分应当由两个存储器组(第一rank0和第二rank1)以交错方式完成,而2.0GB PASR请求的第二部分应当仅由存储器组(rank1)(两个存储器组中的较大组)中的一个存储器组完成。
根据该示例性实施例,RPM 601使第一存储器组rank0的512MB(即,带阴影的512MB部分)完成2.0GB PASR请求的该部分。RPM 601然后使第二存储器组(rank1)的512MB来完成2.0GB请求的该第二部分(即,第二带阴影的512MB部分)。
最后,如图3B中所示,RPM 601使第二存储器组(rank1)的1.0GB完成2.0GB请求的第三和最后部分(即,带阴影的1GB部分)。注意,与图3A-图3C中图示的那些大小以及由RPM601确定的大小相比,由RPM 601创建的PASR请求的部分可以具有不同的大小。
现在参考图3C,该图是图示了由不对称存储器组(rank0和rank1)以仅交错方式完成来自内核的PASR请求的功能框图300c。该示例性实施例类似于图3B中图示的实施例,因此这里将仅描述不同之处。
在图3C中图示的该场景中,RPM 601已经确定完成源自内核603的PASR请求的最有效方式是,以使得PASR请求跨两个存储器组(rank0和rank1)进行交错和均等共享的方式来完成PASR请求。因此RPM 601已经将来自内核603的2.0GB PASR请求分成两个相等的1.0GB部分,该两个相等的1.0GB部分跨两个存储器组(rank0和rank1)均匀分配。以该方式,两个组(rank0和rank1)完成相同量的PASR请求。
现在参考图3D,该图是图示了由对称存储器组(rank0和rank1)以仅交错方式完成来自内核的PASR请求的功能框图300e。与图3A-图3C不同,存储器组(rank0和rank1)具有相同的存储器量-即它们的大小相同。根据该示例性实施例,每个组的大小是4.0GB。如本领域技术人员所理解的,存储器组(rank0和rank1)的更大或更小大小是可能的,并且被包括在本公开的范围内。
当两个或更多个存储器组(这里,图3D中所示的rank0和rank1)大小相等时,则RPM601确定完成来自内核603的任何PASR请求的最有效方式是,以(即,跨多个存储器组均等地共享的)仅交错方式来完成它。因此对于该2.0GB PASR请求示例,RPM 601会将请求分成两个相等的部分,这里每个1.0GB,并且在两个存储器组中的每个存储器组中执行每个1.0GBPASR请求。
现在参考图3E,该图是图示了用于在便携式计算设备(PCD)600(见图6)的存储器组之间使部分阵列自刷新(PASR)请求交错的方法300的逻辑流程图。步骤305是方法300的第一步骤。
在步骤305中,资源功率管理器(RPM)601(见图1)确定便携式计算设备600的存储器631、630的组配置。具体地,RPM 601确定PCD 600的存储器631、630(包括DRAM)是具有对称配置,还是具有不对称配置。
如上所述,当DRAM 631、630的存储器组大小相等时,存在对称配置。同时,当DRAM631、630的存储器组的大小不相等时,存在不对称配置。
接下来,在步骤310中,RPM 601将组配置存储在存储装置或存储器中。当RPM 601接收到刷新DRAM 631、630的部分阵列自刷新(PASR)请求时,该组配置可以由RPM 601稍后访问。
在步骤315中,由CPU 604执行的内核603可以发起PASR请求,并且将该请求传送到RPM 601。每个PASR请求通常将具有至少三(3)个参数:(i)请求的起始存储器地址;(ii)大小值,该大小值是应当刷新多少存储器;以及(iii)指示请求是存储器分配功能的一部分,还是存储器解除分配功能的一部分的数据元素。
当PASR请求是存储器分配请求的一部分时(即,保留将按照内核603指示的那样被使用的存储器),则形成请求的一部分的存储器地址范围指示:DRAM中的这些地址将被刷新。同时,当PASR请求是存储器解除分配请求的一部分时(即释放将不会按照内核603指示的那样被使用的存储器),则形成请求的一部分的存储器地址范围指示:DRAM中的这些地址将不会被刷新,而范围之外的其他地址可以被刷新。
接下来,在可选判决步骤320中,RPM 601可以确定PASR请求的大小值相对于DRAM631、630中存在的存储器组的大小是否是奇数大小。即,在用虚线突出显示的该可选判决步骤320中,RPM 601可以确定PASR请求的大小值是否与形成DRAM 631、630的存储器组的大小正好或均匀地匹配。
DRAM通常具有可以被放在PASR中的最小段大小,并且可以被放在PASR中的段大小取决于存储器组的密度和大小。因此,如果PASR请求使得两个组中的存储器地址范围不适配组的最小段大小的倍数,则这种请求通常会被RPM 601丢弃。
例如,如果第一存储器组(rank0)具有2GB的大小,并且第二存储器组(rankl)具有4GB的大小,则这意味着第二存储器组(rank0)的最小段大小具有0.5GB的大小,因为根据该示例性实施例,第二存储器组中的每个存储器组具有八(8)个段(即,4GB总大小÷8=0.5GB或512MB)。然而,如前所述,在不脱离本公开的范围的情况下,可以调整其他大小和组合以及存储器组和/或段的数目。
假设存在一个从内核603发出的、从零(0)的存储器地址开始的5.25GB大小的PASR请求。在该情况下,需要保留在PASR中的rank1大小为3.25,这不是rank1的最小段大小(0.5GB)的整数倍。因此,该请求通常将被RPM 601忽略。
因此,如果对可选判决步骤320的询问是肯定,这意味着PASR请求相对于形成DRAM631、630的存储器组的大小(即,针对每个组的最小段大小)是“奇数”/“非偶数”,则可以遵循“是”支路,其中方法300可以忽略该请求,然后返回到步骤315,在步骤315中,RPM 601等待来自内核603的PASR请求。判决步骤320被指定为可选的,因为,在一些示例性实施例中,RPM 601或内核603(或两者)可以被编程/被指示为仅发出“偶数”大小的PASR请求,这些请求均匀地适配形成DRAM 631、630的多个存储器组的大小。在这种情况下,可选步骤320可以被去除/消除。
如果对判决步骤320的询问是否定,这意味着PASR请求的大小值将均匀地适配DRAM 631、630的多个存储器组,则遵循“否”支路到判决步骤325。
在判决步骤325中,RPM 601确定存储器组是具有对称配置,还是具有不对称配置。该配置状态在先前步骤305中被确定。因此,如果DRAM 631、630具有不对称(“不均匀”)配置,则遵循“不对称”支路到图3F的步骤330。并且如果DRAM 631、630具有对称(“均匀”或“平衡”)配置,则遵循“对称”支路到图3G的步骤365。
现在参考图3F,该图是图3E的流程图的继续,并且开始于判决步骤330,这是RPM601在上面结合图3E描述的判决步骤325中做出的“不对称”配置确定的结果。在该判决步骤330中,RPM 101确定源自内核603的PASR请求中的起始存储器地址和结束存储器地址是否落在某些阈值之外,如下面将解释的。
判决步骤330的逻辑如下:
PASR Start_address是否>或=2*min(rank0_size,rank1_size)
以及End Address是否>2*min(rank0_size,rank1_size)
其中End Address=Start_address+PASR size。
值min(rank0_size,rank1_size)是不对称的两个存储器组模块的两个存储器组(rank0,rank1--见图3A-图3C)之间的最小大小。因此,对于图3A-图3C的2GB和4GB示例,该值min(rank0_size,rank1_size)将是值2GB,这是两个存储器组中的较小值。
那么我们考虑一个具体示例:假设内核603发出PASR请求,该PASR请求具有5GB的起始存储器地址,并且具有1GB的大小值。并且假设我们具有图3A-图3C中图示的不对称存储器配置,其中rank0=2GB并且rank1=4GB。
起始存储器地址=5GB。结束地址=5GB(起始地址)+大小(1GB)=6GB。因此,起始存储器地址5GB>2*min(rank0_size,rank1_size)=4GB min。并且结束地址6GB>4GB min。该示例对应于下面描述的图4中的表400的行405。这些值肯定满足条件判决步骤330,因此遵循“是”支路到步骤355,在步骤355中,RPM 601发起源自内核603的PASR请求的仅线性(见图3A)完成。
在步骤355内完成的用于PASR请求的线性完成的子步骤如下:RPM 601确定PASR请求的起始存储器地址,以使存储器组完成PASR请求。通常,对于PASR请求的仅线性完成,两个存储器组中较大的存储器组将完成PASR请求。该仅线性完成的逻辑如下:
处理PASR请求的单个组的PASR起始存储器地址:
If(rank0_size<rank1_size)
则:
PASR_start_address_rank1=PASR Request start address-rank0_sizerank1的PASR的大小=request_size
如果存储器rank0是两个组中较小的组,则它不处理PASR请求的任何部分。
Else(rank0_size>rank1_size)
则:
PASR_start_address_rank0=PASR Request start address-rank1_sizeRank0的PASR的大小=request_size
Rank1上没有PASR
因此,考虑图3A的示例和图4的表400的行405,rank1是两个存储器组中较大的组,并且它将完成整个PASR请求,该PASR请求具有5GB的起始存储器地址,并且具有1GB的PASR大小。将完成请求的rank1的起始存储器地址将由RPM 601确定。在该示例中,起始存储器地址将是5B-(减去)2GB(rank0的大小)=3GB(rank1中的起始存储器地址)。rank1存储器组将完成整个1GB大小的PASR请求。参见图400的表400的行405。
返回参考图3F的判决步骤330,如果对判决步骤330的询问是否定,这意味着PASR起始存储器地址和结束地址两者都小于(<)2*min(rank0_size,rank1_size),则遵循“否”支路到判决步骤335。在判决步骤335中,RPM 601确定PASR起始存储器地址和结束地址是否落在两个阈值之间,如先前在判决步骤330中所述。判决步骤330中描述的两个阈值与这里描述的用于判决步骤335的两个阈值非常相似,所以这里将仅解释不同之处。
具体地,判决步骤335的逻辑如下:
PASR Start_address是否<2*min(rank0_size,rank1_size)
以及End Address是否>2*min(rank0_size,rank1_size)
其中End Address=Start_address+PASR size。
值得注意的是,在该判决步骤335中,确定PASR Start_address是否小于(<)2*min(rank0_size,rank1_size)值。如上所述,在判决步骤330中,确定PASR Start_address是否大于(>)或等于(=)2*min(rank0_size,rank1_size)值。同时,判决步骤335的第二阈值与判决步骤330相同:End Address>2*min(rank0_size,rank1_size)。
那么我们考虑一个具体示例:假设内核603发出PASR请求,该PASR请求具有3GB的起始存储器地址,并且具有3GB的大小值。并且假设我们具有图3A-图3C中图示的不对称存储器配置,其中rank0=2GB并且rank1=4GB。
起始存储器地址=3GB。结束地址=3GB(起始地址)+大小(3GB)=6GB。因此,起始地址是3GB<2*min(rank0_size,rank1_size)=4GB min。结束地址6GB>4GB min。该示例对应于下面描述的图4中的表400的行415。这些值肯定满足条件判决步骤335,因此遵循“是”支路到步骤340,在步骤340中,RPM 601发起源自内核603的PASR请求的线性与交错(见图3B)完成。
在步骤340内完成的用于PASR请求的线性与交错完成的子步骤如下:RPM 601确定每个存储器组中的PASR请求的起始地址,然后它确定每个存储器组将完成多少PASR请求,因为每个组将处理PASR请求的不同大小的部分。步骤340中PASR请求的线性与交错完成逻辑如下:
每个组的PASR起始地址:
[PASR_start_address_rank0=PASR_start_address_rank1]=PASR RequestStart address/2。
换句话说,每个存储器组中的PASR请求的起始地址将是源自内核603的PASR请求中的初始起始地址的二分之一。接下来,RPM 601然后计算针对每个存储器组的PASR请求的大小:
每个组的PASR的大小
IF(rank0_size<rank1_size)
则:
rank0_PASR_size=rank0_size-PASR_start_address_rank0
rank1_PASR_size=request_size-rank0_pasr_size
-----------------------------------
Else(rank0_size>rank1_size):
则:
rank1_pasr_size=rank1_size-Pasr_start_address_rank1
rank0_pasr_size=request_size-rank1_pasr_size
因此,考虑图3B的示例和图4的表400的行415,rank0在大小上小于rank1。如上所述,来自内核的PASR请求具有3GB的起始地址,并且具有3GB的大小。因此,每个组(rank0和rank1)中的PASR请求的起始地址将是每个组的3GB/2=1.5GB起始地址。rank0_pasr_size=rank0_size(2GB)-PASR_start_address_rank0[1.5]=0.5GB将是rank0的PASR大小(参见图4中的表400的行415,第8列)。同时,rank1的rank1_pasr_size=request_size(3GB)-rank1_pasr_size(0.5GB)=2.5GB(参见图4中的表400的行415,第9列)。
因此,与现有技术相比,示出了“不对称线性+交错”类型的存储器刷新的图3B的示例更加有效,因为存储器刷新出现在所有存储器组中并且以并行但平衡的方式进行。同时,如前所述,现有技术中的存储器刷新将在每个组中分开出现,并且以顺序方式进行(不是并行的-即rank0首先刷新,然后rank1第二刷新)。
返回参考图3F的判决步骤335,如果对判决步骤335的询问是否定,这意味着PASR起始地址小于来自内核603的PASR请求起始地址,小于(<)2*min(rank0_size,rank1_size)值,但结束地址也小于(<)2*min(rank0_size,rank1_size),则遵循“否”支路到可选判决步骤345。判决步骤345被指定为可选,因为来自判决步骤335的“否定”输出意味着这种输出将始终满足判决步骤345,如下面将示出的。
在判决步骤345中,RPM 601确定PASR起始地址和结束地址两者是否都小于先前描述的两个阈值。判决步骤335中描述的两个阈值与这里描述的用于判决步骤345的两个阈值非常相似,因此这里将仅解释不同之处。
具体地,判决步骤345的逻辑如下:
PASR Start_address是否<2*min(rank0_size,rank1_size)
以及End Address是否<或=2*min(rank0_size,rank1_size)
其中End Address=Start_address+PASR size。
同时,在判决步骤330中,如上所述,RPM 601进行检查以确定PASR Start_address和End Address两者是否都大于上面列出的两个阈值。
那么我们考虑满足判决步骤345的一个具体示例:假设内核603发出PASR请求,该PASR请求具有2GB的起始地址,并且具有2GB的大小值。并且假设我们具有图3A-图3C中图示的不对称存储器配置,其中rank0=2GB,并且rank1=4GB。
PASR起始地址=2GB小于(<)2*min(rank0_size,rank1_size)=4GB。并且结束地址=2GB+2GB=4GB。该4GB的结束地址小于(<)或(=)4GB[=2*min(rank0_size,rank1_size)]。因此,满足判决步骤345的两个条件,并且方法300进行到步骤350,在步骤350中,完成PASR请求的仅交错完成。
在步骤350内完成的用于PASR请求的仅交错完成的子步骤如下:RPM 601确定每个存储器组中的PASR请求的起始地址,然后它确定每个存储器组将完成多少PASR。在步骤350中,PASR请求的该仅交错完成的逻辑如下:
每个组的PASR起始地址:
[PASR_start_address_rank0=PASR_start address rank1]=PASR RequestStart address/2
每个组的PASR的大小:
rank0_pasr_size=rank1_pasr_size=PASR_request_size/2
基本上,在步骤350中,RPM将来自内核603的PASR起始地址分成两半,并且将PASR请求的大小分成两半。具体地,参考图3C和图4的表400的行410,其中rank0具有2GB的大小,并且rank1具有4GB的大小,并且来自内核603的PASR起始地址是2GB,并且具有2GB的大小,rank0和rank1 PASR起始地址=1GB。同时,每个存储器组(rank0和rank1)将完成等量的PASR请求-总大小除以2=2GB/2=每个组1GB pasr大小。因此,与现有技术相比,示出了“不对称交错”类型的存储器刷新的图3C的示例更加高效,因为存储器刷新出现在所有存储器组中并且以并行但平衡的方式进行。同时,如前所述,现有技术中的存储器刷新将在每个组中分开出现,并且以顺序方式进行(不是并行的-即rank0首先刷新,然后rank1第二刷新)。
返回参考步骤340、350和355,在RPM 601完成这些步骤之后,方法300返回到图3E的步骤315,在步骤315中,RPM 601等待来自内核603的PASR请求。
现在参考图3G,该图是图3E的流程图的继续,并且它图示了由对称存储器配置完成PASR请求。具体地,图3G的流程图对应于图3E的判决步骤325的“对称”支路/输出。
在图3G的步骤365中,基于对称存储器单元(DRAM 631、630)中的组的大小和可用性,来自内核603的PASR请求均匀地并且以并行方式进行分配。RPM 601创建用于以均匀方式(对称交错)完成PASR请求的命令。在该步骤365中,RPM 601可以将PASR请求的起始地址分成两半,并且将请求的大小分成两半,使得每个组在相同的起始地址处开始其刷新操作,并且完成PASR请求的总大小值的一半。
图3G的步骤365对应于上面描述的图3D。因此,简要地返回参考图3D,PASR请求可以以并行方式完成。PASR请求可以在每个组(rank0和rank1)中的相同存储器地址处开始。因此,与现有技术相比,示出了“对称交错”类型的存储器刷新的图3D的示例更加高效,因为存储器刷新出现在所有存储器组中,并且以并行但平衡的方式进行。同时,如前所述,现有技术中的存储器刷新将在每个组中分开出现,并且以顺序方式进行(不是并行的-即rank0首先刷新,然后rank1第二刷新)。
在完成步骤365之后,方法300可以返回到步骤315(重新开始),其中RPM 601等待来自内核603的PASR请求。
图4是图示了由图3E-图3F中图示的示例性方法300支持的不对称DRAM存储器配置的三种类型的交错场景的表400。根据该示例,第一存储器组(rank0)具有2GB的大小,而第二存储器组(rank1)具有4GB的大小。此外,该示例中的每个存储器组具有八(8)个段。如前所述,在不脱离本公开的范围的情况下,可以调整其他大小和组合以及存储器组和/或段的数目。
第一行405图示了PASR请求的仅线性完成。先前结合上述图3F的步骤355描述了行405。第一行的第二列显示PASR请求具有5GB的PASR起始地址,而第三列显示PASR大小为1GB。
第一行405的第四列、第六列和第八列显示第一存储器组(rank0)不支持PASR请求的任何完成。同时,第一行405的第五列显示RPM 601确定第二存储器组(rank1)中的PASR请求的起始地址应当在3GB处。PASR请求的大小为1GB,因此将在rank1中刷新1GB,如第9列中所示(如果是分配PASR请求;或者如果是解除分配PASR请求则不刷新,如上所述的),第9列指示rank1中的PASR大小。
并且,基于PASR请求的3GB起始地址和rank1的段大小(每个段大小=512MB),继而在存储器解除分配PASR请求的情况下将刷新rank1的段6、7。同时,rank1中的其他6个段0-5不会基于该类型的请求(解除分配)进行刷新。
如上所述,内核603请求的存储器组的段将基于PASR请求的类型被刷新或不被刷新:是存储器分配PASR请求,还是存储器解除分配PASR请求。相对于PASR请求,每个存储器组的其他段的状态将保持不变。存储器分配PASR请求通常与存储器组的当前状态进行“或运算”,并且将被标记为刷新,而任何存储器解除分配PASR请求都会将对应的段标记为不被刷新。八段存储器组的当前状态通常由RPM 601用八位变量跟踪/维护。
作为示例:
对于存储器分配PASR请求:
current state[rank_id]=current_state[rank_id]或segments_request[rank_id]
否则
current state=current_state[rank_id]和(Not segment_request[rank_id])
在该示例下,对于存储器解除分配PASR请求,
如果current_state[rank1]=0x0,则新current_state[rank1]=0xC0(第6位和第7位置位)。并且如果后续的PASR请求是具有相同起始地址和大小的存储器分配请求,则新current_state[rank1]将是0x0(第6和第7位将被复位),而其他位保持不变。
表400的第二行410图示了PASR请求的仅交错完成。在上面结合图3F的步骤350描述了该行410。
第二行410的第二列显示PASR请求具有2GB的PASR起始地址,而第三列显示2GB的PASR大小。基于行410的第三列中的2GB PASR大小和rank0的大小,RPM 601确定肯定满足判决步骤345的仅交错条件。RPM 601在步骤350中确定每个存储器组(rank0和rank1)的PASR请求的起始地址应当是1GB,如第二行405的第四列和第五列中所示的。同样在步骤350中,RPM 101还将指定每个存储器组支持PASR请求的一半。由于PASR请求大小为2GB,如第三列中所示,继而RPM 101将使每个存储器组完成PASR请求的二分之一(=1GB),如第二行410的第八列和第九列中所示。
基于行410的第四列和第五列中所示的1GB的起始地址,并且基于每个存储器组完成的PASR请求的大小(对于该示例=1GB),并且基于每个存储器组的段大小,RPM 601确定rank0的段4、5、6、7(列6)和rank1的段2、3(列7)将被刷新(或不被刷新,这是基于PASR请求的类型-是存储器分配还是解除分配请求,如上所述)。
表400的第三行415图示了PASR请求的交错与线性完成。先前已经结合图3F的步骤340描述了该行410。
第三行415的第二列显示PASR请求具有3GB的PASR起始地址,而第三列显示3GB的PASR大小。RPM 601在步骤340中确定每个存储器组(rank0和rank1)的PASR请求的起始地址应当是1.5GB,如第二行405的第四列和第五列中所示。同样在步骤350中,RPM 101还将PASR请求分成两个不相等的部分。基于第一存储器组(rank0)中的该起始地址,这将确定PASR请求的多大部分将由第一存储器组(rank0)完成。由于rank0仅具有2GB,并且起始地址在1.5B处,因此1GB的仅1/2(512MB)将被rank0刷新,如第三行415的第八列中所示。这意味着rank0的仅6、7两个段将被刷新,如第六列中所示(或不被刷新,这是基于PASR请求的类型-是存储器分配还是解除分配请求,如上所述)。同时,对于该请求,第一存储器组(rank0)的段0-5不被刷新(或者它们被刷新,这是基于PASR请求的类型-是存储器分配还是解除分配请求,如上所述)。
同时,表400的行415中的PASR请求的其余部分(大小为2.5GB)将由第二存储器组(rank1)完成(如第九列中所示)。基于1.5GB的起始地址和第二存储器组的段每段512MB的大小,RPM 601在步骤340中计算出段3、4、5、6、7将完成PASR请求的1.5GB,如行415的第七列中所示。这意味着对于该请求,第二存储器组(rank1)的段0-2不会被刷新(或者在另一实例中它们可以被刷新,这是基于PASR请求的类型-是存储器分配还是解除分配请求,如上所述)。
图5A是图示由对称DRAM存储器配置处理的PASR请求的表500。该表500对应于图3G的步骤365。根据该示例性实施例,对称DRAM存储器配置包括两个存储器组(rank0和rank1),其中每个组具有4GB的总大小,并且每个组具有八个段。因此,每个组的每个段具有512MB的大小。
在表500中所示的示例中,PASR请求具有6GB的起始地址,并且具有2GB的PASR大小。资源功率管理器601在步骤365中将6GB的起始地址拆分成两半,使得PASR rank0和PASRrank1地址将在3GB处,如第四列和第五列中所示。由于每个组的段是512MB,并且起始地址为3GB,这意味着PASR请求将在每个存储器组的段6中开始(假设每个存储器组的段被编号为0-7)。并且由于每个存储器组将支持1GB刷新,如表500的第八列和第九列中所示,那么这也意味着每个存储器组的段7也将支持刷新,如表500的第七列和第八列中所示,其中列出了完成PASR存储器刷新请求的每个组的段6、7。
如图6中所示,可以在便携式计算设备(“PCD”)600中提供用于在存储器组之间使PASR请求交错的系统和方法的示例性实施例。PCD 600可以是上面结合图1描述的计算设备100的示例。
PCD 600可以包括SoC 602。SoC 602可以包括CPU 604、GPU 606、DSP 607、模拟信号处理器608和/或其他处理器。CPU 604可以包括多个核,诸如第一核604A、第二核604B等,至第N核604N。在SoC 602的一些示例中,CPU 604可以被称为应用处理器。
显示控制器610和触摸屏控制器612可以被耦合到CPU 604。SoC 602外部的触摸屏显示器614可以被耦合到显示控制器610和触摸屏控制器612。
PCD 600还可以包括耦合到CPU 604的视频解码器616。视频放大器618可以被耦合到视频解码器616和触摸屏显示器614。视频端口620可以被耦合到视频放大器618。通用串行总线(“USB”)控制器622也可以被耦合到CPU 604,并且USB端口624可以被耦合到USB控制器622。订户身份模块(“SIM”)卡626也可以被耦合到CPU 604。
一个或多个存储器可以被耦合到CPU 604。一个或多个存储器可以包括易失性和非易失性存储器。易失性存储器的示例包括静态随机存取存储器(“SRAM”)628和动态RAM(“DRAM”)630和631,也如上所述。这种存储器可以在SoC 602外部,诸如DRAM 630,或者在SoC 602内部,诸如DRAM 631。上述资源功率管理器(RPM)601可以被耦合到CPU 604和内部DRAM 631和外部DRAM 630。RPM 601可以执行和/或包含上面结合图3E-图3H中图示的流程图描述的逻辑。RPM 601可以是硬件或软件或两者。
同时,立体声音频CODEC 634可以被耦合到模拟信号处理器608。此外,音频放大器636可以被耦合到立体声音频CODEC 634。第一和第二立体声扬声器638和640可以分别被耦合到音频放大器636。此外,麦克风放大器642可以被耦合到立体声音频CODEC 634,并且麦克风644可以被耦合到麦克风放大器642。
频率调制(“FM”)无线电调谐器646可以被耦合到立体声音频CODEC 634。FM天线648可以被耦合到FM无线电调谐器646。此外,立体声耳机650可以被耦合到立体声音频CODEC 634。可以被耦合到CPU 604的其他设备包括一个或多个数字(例如,CCD或CMOS)相机652。此外,键盘660、具有麦克风662的单声道耳机和振动器设备664可以被耦合到模拟信号处理器608。
射频(RF)收发器或调制解调器654可以被耦合到模拟信号处理器608和CPU 604。RF开关656可以被耦合到调制解调器654和RF天线658。虽然在所示实施例中,调制解调器654被包括在具有CPU 604和各种其他处理器的相同SoC 602内,但在其他实施例中,这种调制解调器可以在这种SoC外部(例如,单独的芯片),并且本身可以被称为一种类型的SoC。
SoC 602可以具有一个或多个内部或片上热传感器670A,并且可以被耦合到一个或多个外部或片外热传感器670B。模数转换器(“ADC”)控制器672可以将由热传感器670A和670B产生的电压降转换成数字信号。电源674和功率管理集成电路(PMIC)676可以向SoC602提供功率。
固件或软件可以被存储在上述存储器(诸如DRAM 630或631、SRAM 628等)中的任何存储器中,或者可以被存储在处理器硬件可直接访问的本地存储器中,软件或固件在该处理器硬件上执行。这种固件或软件的执行可以控制任何上述方法的方面或配置任何上述系统的方面。具有以计算机可读形式存储在其中以供处理器硬件执行的固件或软件的任何这种存储器或其他非暂态存储介质可以是“计算机可读介质”的示例,如该术语在专利字典中所理解的那样。
本说明书中描述的过程或过程流程中的某些步骤自然先于其他步骤以使本发明如所描述的那样起作用。然而,如果这种顺序或序列不改变本发明的功能,则本发明不限于所描述的步骤的顺序。也就是说,认识到在不脱离本发明的范围和精神的情况下,一些步骤可以在其他步骤之前、之后或并行(基本上同时)执行。在一些情况下,在不脱离本发明的情况下,可以省略或不执行某些步骤。此外,诸如“此后”、“然后”、“接下来”的词语不旨在限制步骤的顺序。这些词仅用于通过示例性方法的描述来引导读者。
虽然在示例性实施例中计算设备可以是上述PCD 600,但是在其他实施例中计算设备可以是任何类型。对于本发明所属领域的普通技术人员来说,备选实施例将变得明显。例如,DRAM 630和/或631可以包括两个或更多个存储器组,诸如三个存储器组,或四个存储器组,或N个存储器组,其中N是整数。
因此,本发明的方法和系统可以被扩展到具有N个存储器组的DRAM,其中图3F的判决步骤330、335和345的阈值可以被调整如下:N*min(rank0_size,rank1_size,rank2_size..rankN-1_size),其中N是存储器组的数目。存储器组可以具有相等的大小,或具有不相等/不平衡/不对称的大小。使用对阈值的该调整,可以由RPM 601确定用于具有N个存储器组的DRAM的起始存储器地址和结束存储器地址。
在以下编号的条款中描述了实施方式示例:
1.一种用于刷新具有不同大小的不对称存储器组的计算设备中的存储器的方法,包括:
接收存储器刷新请求;
如果起始存储器地址和结束存储器地址超过阈值,则基于存储器刷新请求,发起一个存储器组的仅线性刷新;
如果起始存储器地址小于阈值并且如果结束存储器地址大于阈值,则发起不对称存储器组的线性与交错存储器刷新;以及
如果起始存储器地址和结束存储器地址两者小于阈值,则发起不对称存储器组的仅交错存储器刷新。
2.根据条款1所述的方法,还包括:基于作为存储器刷新请求的一部分的大小值,计算结束存储器地址。
3.根据条款1-2所述的方法,还包括:确定刷新请求的起始存储器地址值和结束存储器地址值是否超过阈值。
4.根据条款1-3所述的方法,还包括:确定起始存储器地址是否小于阈值,并且确定结束存储器地址是否大于阈值。
5.根据条款1-4所述的方法,其中发起一个存储器组的仅线性刷新还包括:标识一个存储器组的哪些段将被刷新。
6.根据条款1-5所述的方法,其中发起不对称存储器组的线性与交错刷新还包括:针对不对称存储器组中的每个存储器组,确定用于存储器刷新的起始存储器地址。
7.根据条款1-6所述的方法,还包括:基于起始存储器地址,确定针对较小存储器组的存储器刷新的大小和较大存储器组的存储器刷新的大小。
8.根据条款7所述的方法,其中针对较小存储器组的存储器刷新的大小,小于较大存储器组的存储器刷新的大小。
9.根据条款1-8所述的方法,其中发起不对称存储器组的仅交错存储器刷新还包括:针对不对称存储器组中的每个存储器组,确定用于存储器刷新的起始存储器地址。
10.一种用于刷新计算设备中的存储器的系统,包括:
操作系统,发起存储器刷新请求;以及
资源功率管理器,被耦合到操作系统并且被耦合到存储器,存储器具有多个存储器组;资源功率管理器从操作系统接收存储器刷新请求;资源功率管理器确定多个存储器组是对称还是不对称;如果存储器组对称,则资源功率管理器跨对称的存储器组均匀地并且以并行方式分配存储器刷新请求;如果存储器组不对称,则资源功率管理器基于起始存储器地址确定结束存储器地址,然后资源功率管理器确定起始存储器地址和结束存储器地址两者是否超过阈值。
11.根据条款10所述的系统,其中如果资源功率管理器确定起始存储器地址和结束存储器地址两者超过阈值,则资源功率管理器基于存储器刷新请求而发起一个存储器组的仅线性刷新。
12.根据条款10-11所述的系统,其中资源功率管理器确定起始存储器地址是否小于阈值,并且确定结束存储器地址是否大于阈值。
13.根据条款10-12所述的系统,其中如果资源功率管理器确定起始存储器地址小于阈值并且确定结束存储器地址大于阈值,则资源管理器发起不对称存储器组的线性与交错存储器刷新。
14.根据条款10-13所述的系统,其中如果资源功率管理器确定起始存储器地址和结束存储器地址小于阈值,则资源功率管理器发起不对称存储器组的仅交错存储器刷新。
15.根据条款10-14所述的系统,其中资源功率管理器发起一个存储器组的仅线性刷新还包括:资源功率管理器标识一个存储器组的哪些段将被刷新。
16.根据条款10-15所述的系统,其中资源功率管理器发起不对称存储器组的线性与交错刷新还包括:资源功率管理器针对不对称存储器组中的每个存储器组,确定用于存储器刷新的起始存储器地址。
17.根据条款10-16所述的系统,还包括:资源功率管理器基于起始存储器地址,确定针对较小存储器组的存储器刷新的大小和较大存储器组的存储器刷新的大小。
18.根据条款10-17所述的系统,其中针对较小存储器组的存储器刷新的大小,小于较大存储器组的存储器刷新的大小。
19.根据条款10-14所述的系统,其中资源功率管理器发起不对称存储器组的仅交错存储器刷新还包括:资源功率管理器针对不对称存储器组中的每个存储器组,确定用于存储器刷新的起始存储器地址。
20.一种用于刷新具有不同大小的不对称存储器组的计算设备中的存储器的系统,包括:
用于生成存储器刷新请求的部件;
用于基于存储器刷新请求在起始存储器地址和结束存储器地址超过阈值的情况下发起一个存储器组的仅线性刷新的部件;
用于在起始存储器地址小于或等于阈值并且结束存储器地址大于阈值的情况下发起不对称存储器组的线性与交错存储器刷新的部件;以及
用于在起始存储器地址和结束存储器地址两者小于阈值的情况下发起不对称存储器组的仅交错存储器刷新的部件。
21.根据条款20所述的系统,还包括用于基于大小值来计算结束存储器地址的部件,该大小值是存储器刷新请求的一部分。
22.根据条款20-21所述的系统,其中用于发起一个存储器组的仅线性刷新的部件还包括:用于标识一个存储器组的哪些段将被刷新的部件。
23.根据条款20-22所述的系统,其中用于发起不对称存储器组的线性与交错刷新的部件还包括:用于针对不对称存储器组中的每个存储器组,确定用于存储器刷新的起始存储器地址的部件。
24.根据条款20-23所述的系统,还包括:用于基于起始存储器地址来确定针对较小存储器组的存储器刷新的大小和较大存储器组的存储器刷新的大小的部件。
25.根据条款20-24所述的系统,其中针对较小存储器组的存储器刷新的大小,小于较大存储器组的存储器刷新的大小。
26.一种用于刷新具有不同大小的不对称存储器组的计算设备中的存储器的计算机可读介质,该计算机可读介质包括其上存储有计算机可执行形式的指令的非暂态计算机可读介质,该指令在由计算设备的处理系统执行时,将处理系统配置为:
从操作系统接收存储器刷新请求;
如果起始存储器地址和结束存储器地址超过阈值,则基于存储器刷新请求,发起一个存储器组的仅线性刷新;
如果起始存储器地址小于或等于阈值并且如果结束存储器地址大于阈值,则发起不对称存储器组的线性与交错存储器刷新;以及
如果起始存储器地址和结束存储器地址两者小于阈值,则发起不对称存储器组的仅交错存储器刷新。
27.根据条款25所述的计算机可读介质,其中结束存储器地址是基于作为存储器刷新请求的一部分的大小值来计算的。
28.根据条款25-27所述的计算机可读介质,其中指令还将处理系统配置为:确定刷新请求的起始存储器地址值和结束存储器地址值是否超过阈值。
29.根据条款25-28所述的计算机可读介质,其中指令还将处理系统配置为:确定起始存储器地址是否小于阈值,并且确定结束存储器地址是否大于阈值;
30.根据条款25-29所述的计算机可读介质,其中发起一个存储器组的仅线性刷新还包括:标识一个存储器组的哪些段将被刷新。
因此,尽管选择的方面已经被详细说明和描述,但是应当理解,在不背离如由所附权利要求限定的本发明的精神和范围的情况下,可以在其中进行各种替换和改变。
Claims (30)
1.一种用于刷新具有不同大小的不对称存储器组的计算设备中的存储器的方法,包括:
接收存储器刷新请求;
如果起始存储器地址和结束存储器地址超过阈值,则基于所述存储器刷新请求,发起一个存储器组的仅线性刷新;
如果所述起始存储器地址小于所述阈值并且如果所述结束存储器地址大于所述阈值,则发起所述不对称存储器组的线性与交错存储器刷新;以及
如果所述起始存储器地址和所述结束存储器地址两者小于所述阈值,则发起所述不对称存储器组的仅交错存储器刷新。
2.根据权利要求1所述的方法,还包括:基于作为所述存储器刷新请求的一部分的大小值,计算所述结束存储器地址。
3.根据权利要求1所述的方法,还包括:确定所述刷新请求的起始存储器地址值和结束存储器地址值是否超过阈值。
4.根据权利要求1所述的方法,还包括:确定所述起始存储器地址是否小于所述阈值,并且确定所述结束存储器地址是否大于所述阈值。
5.根据权利要求1所述的方法,其中发起所述一个存储器组的仅线性刷新还包括:标识所述一个存储器组的哪些段将被刷新。
6.根据权利要求1所述的方法,其中发起所述不对称存储器组的线性与交错刷新还包括:针对所述不对称存储器组中的每个存储器组,确定用于存储器刷新的起始存储器地址。
7.根据权利要求1所述的方法,还包括:基于所述起始存储器地址,确定针对较小存储器组的存储器刷新的大小和较大存储器组的存储器刷新的大小。
8.根据权利要求7所述的方法,其中针对所述较小存储器组的所述存储器刷新的所述大小,小于所述较大存储器组的所述存储器刷新的所述大小。
9.根据权利要求1所述的方法,其中发起所述不对称存储器组的仅交错存储器刷新还包括:针对所述不对称存储器组中的每个存储器组,确定用于存储器刷新的起始存储器地址。
10.一种用于刷新计算设备中的存储器的系统,包括:
操作系统,发起存储器刷新请求;以及
资源功率管理器,被耦合到所述操作系统并且被耦合到所述存储器,所述存储器具有多个存储器组;所述资源功率管理器从所述操作系统接收存储器刷新请求;所述资源功率管理器确定所述多个存储器组是对称还是不对称;如果所述存储器组对称,则所述资源功率管理器跨所述对称的存储器组均匀地并且以并行方式分配所述存储器刷新请求;如果所述存储器组不对称,则所述资源功率管理器基于起始存储器地址确定结束存储器地址,然后所述资源功率管理器确定所述起始存储器地址和所述结束存储器地址两者是否超过阈值。
11.根据权利要求10所述的系统,其中如果所述资源功率管理器确定所述起始存储器地址和所述结束存储器地址两者超过所述阈值,则所述资源功率管理器基于所述存储器刷新请求而发起一个存储器组的仅线性刷新。
12.根据权利要求10所述的系统,其中所述资源功率管理器确定所述起始存储器地址是否小于所述阈值,并且确定所述结束存储器地址是否大于所述阈值。
13.根据权利要求12所述的系统,其中如果所述资源功率管理器确定所述起始存储器地址小于所述阈值并且确定所述结束存储器地址大于所述阈值,则所述资源管理器发起所述不对称存储器组的线性与交错存储器刷新。
14.根据权利要求10所述的系统,其中如果所述资源功率管理器确定所述起始存储器地址和所述结束存储器地址小于所述阈值,则所述资源功率管理器发起所述不对称存储器组的仅交错存储器刷新。
15.根据权利要求14所述的系统,其中所述资源功率管理器发起所述一个存储器组的仅线性刷新还包括:所述资源功率管理器标识所述一个存储器组的哪些段将被刷新。
16.根据权利要求13所述的系统,其中所述资源功率管理器发起所述不对称存储器组的线性与交错刷新还包括:所述资源功率管理器针对所述不对称存储器组中的每个存储器组,确定用于存储器刷新的起始存储器地址。
17.根据权利要求16所述的系统,还包括:所述资源功率管理器基于所述起始存储器地址,确定针对较小存储器组的存储器刷新的大小和较大存储器组的存储器刷新的大小。
18.根据权利要求17所述的系统,其中针对所述较小存储器组的所述存储器刷新的所述大小,小于所述较大存储器组的所述存储器刷新的所述大小。
19.根据权利要求14所述的系统,其中所述资源功率管理器发起所述不对称存储器组的仅交错存储器刷新还包括:所述资源功率管理器针对所述不对称存储器组中的每个存储器组,确定用于存储器刷新的起始存储器地址。
20.一种用于刷新具有不同大小的不对称存储器组的计算设备中的存储器的系统,包括:
用于生成存储器刷新请求的部件;
用于基于所述存储器刷新请求在起始存储器地址和结束存储器地址超过阈值的情况下发起一个存储器组的仅线性刷新的部件;
用于在所述起始存储器地址小于或等于所述阈值并且所述结束存储器地址大于所述阈值的情况下发起所述不对称存储器组的线性与交错存储器刷新的部件;以及
用于在所述起始存储器地址和所述结束存储器地址两者小于所述阈值的情况下发起所述不对称存储器组的仅交错存储器刷新的部件。
21.根据权利要求20所述的系统,还包括用于基于大小值来计算所述结束存储器地址的部件,所述大小值是所述存储器刷新请求的一部分。
22.根据权利要求20所述的系统,其中所述用于发起所述一个存储器组的仅线性刷新的部件还包括:用于标识所述一个存储器组的哪些段将被刷新的部件。
23.根据权利要求20所述的系统,其中所述用于发起所述不对称存储器组的线性与交错刷新的部件还包括:用于针对所述不对称存储器组中的每个存储器组,确定用于存储器刷新的起始存储器地址的部件。
24.根据权利要求23所述的系统,还包括:用于基于所述起始存储器地址来确定针对较小存储器组的存储器刷新的大小和较大存储器组的存储器刷新的大小的部件。
25.根据权利要求24所述的系统,其中针对所述较小存储器组的所述存储器刷新的所述大小,小于所述较大存储器组的所述存储器刷新的所述大小。
26.一种用于刷新具有不同大小的不对称存储器组的计算设备中的存储器的计算机可读介质,所述计算机可读介质包括其上存储有以计算机可执行形式的指令的非暂态计算机可读介质,所述指令在由所述计算设备的处理系统执行时,将所述处理系统配置为:
从操作系统接收存储器刷新请求;
如果起始存储器地址和结束存储器地址超过阈值,则基于所述存储器刷新请求,发起一个存储器组的仅线性刷新;
如果所述起始存储器地址小于或等于所述阈值并且如果所述结束存储器地址大于所述阈值,则发起所述不对称存储器组的线性与交错存储器刷新;以及
如果所述起始存储器地址和所述结束存储器地址两者小于所述阈值,则发起所述不对称存储器组的仅交错存储器刷新。
27.根据权利要求25所述的计算机可读介质,其中所述结束存储器地址是基于作为所述存储器刷新请求的一部分的大小值来计算的。
28.根据权利要求25所述的计算机可读介质,其中所述指令还将所述处理系统配置为:确定所述刷新请求的所述起始存储器地址和所述结束存储器地址是否超过阈值。
29.根据权利要求25所述的计算机可读介质,其中所述指令还将所述处理系统配置为:确定所述起始存储器地址是否小于所述所述阈值,并且确定所述结束存储器地址是否大于所述阈值;
30.根据权利要求25所述的计算机可读介质,其中发起所述一个存储器组的仅线性刷新还包括:标识所述一个存储器组的哪些段将被刷新。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202041050957 | 2020-11-23 | ||
IN202041050957 | 2020-11-23 | ||
PCT/US2021/055863 WO2022108700A1 (en) | 2020-11-23 | 2021-10-20 | Method and system for refreshing memory of a portable computing device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116529821A true CN116529821A (zh) | 2023-08-01 |
Family
ID=78622055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180075368.2A Pending CN116529821A (zh) | 2020-11-23 | 2021-10-20 | 用于刷新便携式计算设备的存储器的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230386551A1 (zh) |
EP (1) | EP4248444A1 (zh) |
KR (1) | KR20230108274A (zh) |
CN (1) | CN116529821A (zh) |
WO (1) | WO2022108700A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008063251A2 (en) * | 2006-07-31 | 2008-05-29 | Metaram, Inc. | Memory circuit system and method |
US8397100B2 (en) * | 2010-03-15 | 2013-03-12 | International Business Machines Corporation | Managing memory refreshes |
-
2021
- 2021-10-20 EP EP21807403.7A patent/EP4248444A1/en active Pending
- 2021-10-20 KR KR1020237016226A patent/KR20230108274A/ko active Search and Examination
- 2021-10-20 WO PCT/US2021/055863 patent/WO2022108700A1/en active Application Filing
- 2021-10-20 US US18/249,925 patent/US20230386551A1/en active Pending
- 2021-10-20 CN CN202180075368.2A patent/CN116529821A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4248444A1 (en) | 2023-09-27 |
WO2022108700A1 (en) | 2022-05-27 |
KR20230108274A (ko) | 2023-07-18 |
US20230386551A1 (en) | 2023-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170162235A1 (en) | System and method for memory management using dynamic partial channel interleaving | |
KR101665611B1 (ko) | 컴퓨터 시스템 및 메모리 관리의 방법 | |
WO2019027544A1 (en) | PARTIAL REFRESH TECHNOLOGY TO SAVE THE MEMORY REFRESHMENT POWER | |
US9170635B2 (en) | Methods, systems, and devices for management of a memory system | |
US20140181558A1 (en) | Reducing power consumption of volatile memory via use of non-volatile memory | |
US10878880B2 (en) | Selective volatile memory refresh via memory-side data valid indication | |
US9336855B2 (en) | Methods and systems for smart refresh of dynamic random access memory | |
TWI744289B (zh) | 使用多個最後階層快取線提供記憶體帶寬壓縮之以一中央處理單元(cpu)為基礎之系統及方法 | |
US7196961B2 (en) | Memory control device | |
US10061709B2 (en) | Systems and methods for accessing memory | |
US20170109090A1 (en) | System and method for page-by-page memory channel interleaving | |
JP2019523945A (ja) | 奇数モジュラスメモリチャネルインターリービングのためのシステムおよび方法 | |
JP6276470B2 (ja) | ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためのシステムおよび方法 | |
CN106575273B (zh) | 用于扩展片上系统的存储器的系统和方法 | |
US20170108914A1 (en) | System and method for memory channel interleaving using a sliding threshold address | |
US20230274774A1 (en) | Effective DRAM Interleaving For Asymmetric Size Channels Or Ranks While Supporting Improved Partial Array Self-Refresh | |
US20170108911A1 (en) | System and method for page-by-page memory channel interleaving | |
CN111899774A (zh) | 存储器件和包括其的系统 | |
CN114616556B (zh) | 存储体组交错 | |
CN116529821A (zh) | 用于刷新便携式计算设备的存储器的方法和系统 | |
US20190243439A1 (en) | System and method of controlling power down mode of memory device | |
CN115687196B (zh) | 用于对多通道存储器进行控制的方法和装置 | |
US20160320972A1 (en) | Adaptive compression-based paging | |
KR20170063240A (ko) | 메모리 장치, 리프레쉬 방법 및 이를 포함하는 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |