多核存储器模块中的功率下降模式的动态利用的制作方法

文档序号:6479982阅读:177来源:国知局
专利名称:多核存储器模块中的功率下降模式的动态利用的制作方法
技术领域
本发明的实施例涉及存储器模块,且具体而言,涉及基于程序的动态操作使得存储器模块的独立虚拟存储器设备进入不同操作模式的方法。
背景技术
在现代计算机系统中,对于存储器容量和带宽的需求保持增长。微处理器的近来的性能扩展取决于增加每芯片内核的数量,并且多核和很多内核的单芯片多处理器 (“CMP”)通过每处理器多个存储器控制器而要求甚至更高的存储器带宽和容量。因此,主存储器模块的功率预算变得与当前计算机系统中的处理器的功率预算相似,或者甚至高于当前计算机系统中的处理器的功率预算。
然而,典型的存储器模块是能量低效的。例如,当多个存储器模块连接到处理器的存储器控制器时,存储器模块的待机能量是总的主存储器能量使用的重要部分。当存储器模块并不积极响应于存储器请求时,大多数存储器模块是空闲的,在它们等待下一次存储器请求的同时使用待机能量,这是能量的低效使用。在很多当前存储器芯片中提供多种功率下降(power-down)模式以节省待机能量,且系统软件和硬件均使用这些功率下降模式来节省待机能量。然而,节省的功率量有限,因为相同的功率下降模式必须应用于模块中的所有存储器芯片。
希望使得能够对存储在存储器系统中的信息进行访问的存储器系统和方法,所述存储器系统节省能量而不明显牺牲系统性能。

发明内容
本发明的各个实施例涉及使得存储器控制器能够基于动态程序行为针对存储器模块的虚拟存储器设备选择特定操作模式的方法。在一个实施例中,用于确定存储器模块的每个虚拟存储器设备的操作模式的方法包括选择提供标准的度量,按照该标准,在多核处理器上的一个或多个应用的执行过程中,优化存储器模块的性能和/或能量效率。对于每个虚拟存储器设备,该方法还包括在一定的时间段内收集与虚拟存储器设备相关的使用信息,基于所述度量和使用信息确定虚拟存储器设备的操作模式,以及使得虚拟存储器设备进入该操作模式。


图IA示出具有八个存储器芯片的存储器模块的等距视图。
图IB示出电路板上安装的存储器模块和存储器控制器的等距视图。
图2示出构成存储器芯片的八个存储体(bank)的示意性表示。
图3A示出传统存储器模块的示意性表示。
图3B示出将命令广播到传统存储器模块的所有存储器芯片的示例。
图4A示出根据本发明实施例配置的单个多核存储器模块的等距视图。
图4B示出根据本发明实施例的电路板上安装的多核存储器模块和存储器控制器的等距视图。
图5A-5D示出根据本发明的实施例配置的多核、双列直插存储器模块的一般示意性表示。
图6示出根据本发明的实施例配置的示例性多核、双列直插存储器模块的示意性表不。
图7示出根据本发明的实施例的电子地连接到存储器控制器的多核双列直插存储器模块。
图8A示出条形图,该条形图呈现针对根据本发明的实施例的图7中示出的多核双列直插存储器模块的每个虚拟存储器设备的使用信息。
图8B示出根据本发明的实施例的处于不同节能模式的图7中示出的多核双列直插存储器模块的三个虚拟存储器设备。
图9A示出图8A中示出的条形图,其中根据优化根据本发明实施例的图7中示出的多核双列直插存储器模块的总执行时间来调节阈值。
图9B示出根据本发明的实施例的处于节能模式的图7中示出的多核双列直插存储器模块的一个虚拟存储器设备。
图10示出根据本发明的实施例的用于使得存储器模块的虚拟存储器设备动态地进入功率下降模式的方法的控制流程图。
图11示出根据本发明的实施例的图IOA的方法的子例程的控制流程图。
具体实施例方式本发明的各种实施例涉及使得存储器控制器能够基于动态程序行为针对存储器模块的存储器芯片选择特定操作模式的方法。例如,存储器控制器可以配置成使得在一定的时间段内接收许多存储器请求的某些存储器芯片进入待机模式,从而当这些存储器芯片不在使用中时,它们可以快速地对存储器请求做出响应。与之对照,存储器控制器还可以使得在相同时间段内经历相对较低活动的其他存储器芯片进入许多节能模式之一。方法实施例是灵活的,因为系统性能可以与能量效率均衡。术语“性能”表示在一定的时间段内存储器系统执行的工作量。等待时间、响应时间和带宽是可用于比较在对存储器系统或其他存储器系统进行改变之前和之后的存储器系统的性能的度量。方法实施例允许给性能赋予比能量效率更高的优先级,方式是通过指导存储器控制器以与当给能量效率赋予比性能更高的优先级时存储器控制器将使得进入节能模式的存储器芯片相比,使得更少的存储器芯片进入节能模式。
本发明的方法实施例可以应用于传统存储器模块和多核存储器模块,其被设计为改善存储器系统的能量效率而对系统性能具有小的影响。多核存储器模块包括存储器芯片,所述存储器芯片被划分成称为“虚拟存储器设备”(“VMD”)的一个或多个存储器芯片的组。存储器芯片可以是动态随机存取存储器(“DRAM”)芯片。
详细描述按以下方式组织。在第一小节中描述传统存储器模块的一般性说明。在第二小节中描述多核存储器模块的说明。在第三小节中描述本发明的方法实施例。
存储器模块存储器模块典型地包括形成被称为“双列直插存储器模块”(“DIMM”)的存储单元的印制电路板上安装的若干DRAM芯片。图IA示出包括八个DRAM芯片的单个DIMM的等距视图。 然后在电路板上安装一个或多个DIMM,并且由存储器控制器控制该一个或多个DIMM。图IB 示出电路板106上安装的存储器102和存储器控制器104的等距视图。存储器102由插入四个DIMM插槽112-115的四个DIMM 108-111组成。存储器控制器104是计算机芯片或多核微处理器芯片的部分,其管理发送到DIMM 108-111以及从DIMM 108-111发送的命令和数据流,并且将存储器102与计算机系统的其他主要组件(例如中央处理单元)对接。每一 DIMM经由接口 118与存储器控制器104进行电通信。接口 118是载送从存储器控制器104 到存储器102的时钟信号和命令以及DMM 108-111与存储器控制器104之间的数据信号的总线。数据信号在DIMM 108-111中的DRAM芯片与存储器控制器104之间并行地发送。 接口 118可以支持单数据率(“SDR”)、双数据率(“DDR”)以及更高的数据率传送。SDR指的是每时钟周期发送数据一次,以及DDR指的是在计算机系统时钟信号的上升沿和下降沿都发送数据。存储器控制器104和DIMM 108-111可以被配置为根据SDR和DDR发送并且接收数据。在DDR中通过使用时钟的两个沿,数据信号在相同的极限频率操作,相比单数据率传输使得数据传输率加倍。
DRAM芯片将比特存储在由晶体管和电容器组成的被称为DRAM存储器单元的结构中。单个DRAM芯片中存在数十亿个单元,以及可以以被称为“存储体”的许多二维阵列的二维布置组织这些单元。图2示出构成DRAM芯片200的标为0_7的八个存储体的示意性表示。如图2的示例中所示,每一存储体经由交叉信号线连接到行解码器、感测放大器以及列解码器。例如,存储体0经由与χ轴平行走线的信号线(例如信号线204)连接到行解码器202。存储体0还经由与y轴平行走线的信号线(例如信号线210)连接到感测放大器 206和列解码器208。存储器单元位于信号线交点处。例如,存储器单元212位于信号204 和210交叉的点处。
从存储器控制器104发送到存储器102的命令包括READ(读)、WRITE(写)、ACTIVATE (激活)、REFRESH (刷新)和PRECHARGE (预充电)。命令由控制信号和地址信号组成。控制信号表示命令执行的操作,以及地址信号标识在其执行命令的DRAM芯片中的存储体地址和行地址或列地址。例如,ACTIVATE命令由激活控制信号和标识在DRAM芯片内的哪个存储体和行执行ACTIVATE命令的存储体地址和行地址组成。READ和WRITE命令由读取和写入控制信号以及标识在DRAM芯片中的哪个存储体和列执行READ和WRITE命令的存储体地址和列地址组成。
在两个步骤中访问DRAM芯片200的存储体中存储的数据。首先,存储器控制器(未示出)发送指定DRAM芯片200的行地址和存储体地址的ACTIVATE命令。将典型地是存储体的8K比特或16K比特的行中的所有比特激活到存储体内的感测放大器中。其次,发送指定存储体地址和列地址的一个或多个READ/WRITE命令。数据总线的大小和突发长度确定每READ/WRITE事务传送的比特的数量。突发长度是控制在数据块的单个突发事务或高速传输中执行的READ/WRITE操作的数量的常见的存储器有关的基本输入/输出系统设置。典型地,将突发长度设置为4或8。当DRAM芯片接收到例如存储器READ请求时,芯片通过跨接口 118的信号线提供数据来进行响应。突发长度确定响应于存储器READ请求发送的数据块的大小。具有64比特宽的数据总线(即64个单端信号线或128个差分信号线)和被配置为支持4的突发长度的DRAM芯片的存储器模块响应于来自存储器控制器的单个READ请求发送32字节(4x64比特=32字节)的数据块。另一方面,具有64比特宽的数据总线和被配置为支持8的突发长度的DRAM芯片的存储器模块响应于来自存储器控制器的单个READ 请求发送64字节(8x64比特=64字节)的数据块。
当在DRAM芯片的同一存储体中的两个不同行中读取数据时,在可以读取第二行中的数据之前,必须写回第一行,对位线充电,以及通过PRECHARGE命令以及ACTIVATE命令锁存第二行。PRECHARGE命令将该行写回到DRAM存储体,因为ACTIVATE命令破坏性地读取,所以这是必须的。在READ命令、WRITE命令、ACTIVATE命令和PRECHARGE命令中,存储体地址由小数量的比特给出。在同一存储体中,在第一 ACTIVATE和第二 ACTIVATE命令之间,这些命令操作一般花费大约50ns。因此,除非ACTIVATE命令与PRECHARGE命令之间存在很多READ/WRITE命令,否则命令/地址/数据总线经常保持空闲。然而,如果在不同存储体中读取数据,则因为两个不同存储体之间的ACTIVATE至ACTIVATE时间短了大约8ns, 所以可以流水线化到不同存储体的命令。因此,通过交错不同存储体中的请求可以实现更高的吞吐量,当ACTIVATE和PRECHARGE命令对之间不存在很多READ/WRITE命令时尤其如此。
图3A示出包括其中每一个具有8比特数据总线的8个DRAM芯片的传统DMM 300 的示意性表示。方向箭头302表示从存储器控制器(未示出)发送到称为寄存器304的可选设备的命令的分送。寄存器304位于存储器控制器与DRAM芯片之间的总线上。寄存器 304锁存来自存储器控制器的命令信号,然后以更好的信号质量和定时裕度将它们转发到每一 DRAM芯片,以减少存储器控制器上的电负载并且保持命令信号的稳定性。寄存器304 也可以缓冲命令,并且将时钟信号广播到DRAM芯片,以在每存储器控制器具有多个DIMM的系统中促进对不同DIMM的交叠访问。寄存器304通过总线将命令广播到所有8个DRAM芯片,如通过分支方向箭头306和308指示的那样。在其它传统存储器模块中,将命令广播到 DRAM芯片而不用寄存器304。
图:3B示出传统DIMM操作的示例。如图的示例中所示,DIMM 300内的所有DRAM 芯片从存储器控制器接收相同命令,并且激活阴影区域310表示的每一 DRAM芯片中的相同行。结果,DIMM 300内的所有DRAM芯片充当具有更宽数据路径和更大行的单个DRAM芯片。
如上参照图2描述的那样,DRAM芯片行的大小典型地是8 (或16K比特)。为了读取缓存线或者将缓存线写入DIMM,将READ/WRITE命令广播到所有DRAM芯片,并且每一 DRAM芯片激活相同行。换句话说,在由8个DRAM芯片组成的典型DIMM中,每一 DRAM芯片激活包括8K比特的相同行地址。因而,一次激活DI匪的DRAM单元的8 X 8Kbit或64Kbit, 这大于待读取或写入的缓存线的大小。典型的缓存线处于64字节或512比特的量级。因为典型地以缓存线粒度读取或写入READ/WRITE命令DIMM,所以对于单个READ或WRITE事务,超过99%的被激活的DRAM单元不被使用,这是能量的低效使用。
多核存储器模块多核存储器模块包含安装在印刷电路板上的分组成VMD的存储器芯片以及用于从存储器控制器接收命令的多路分配器寄存器(“多路分配器寄存器”)。在某些实施例中,存储器芯片可以是DRAM芯片。图4A示出根据本发明的实施例的包含布置在电路板412上的8 个DRAM芯片401-408和多路分配器寄存器410的单个多核双列直插存储器模块400的等距视图。DRAM芯片410-408可以分组成包含一个或多个DRAM芯片的VMD,其示例在下面更详细地描述。
与传统DIMM —样,一个或多个MCDIMM可以安装在电路板上且通过存储器控制器控制。图4B示出根据本发明的实施例的安装在电路板似4上的存储器420和存储器控制器 422的等距视图。存储器420包含分别插入DIMM插槽430-433的MCDIMM 426-429 MCDIMM 400具有存储器控制器422和存储器模块426-429的多路分配器寄存器之间的接口 434。 接口 434包括从存储器控制器422到存储器420载送命令信号的总线以及在存储器控制器 422和存储器420之间载送数据信号的数据总线。在该架构中,存储器控制器422发送的命令并不广播到存储器420的DRAM芯片。而是,存储器控制器420向MCDIMM 426-429的多路分配器寄存器发送命令。MCDIMM似6-4四中的每一个包括使得多路分配器寄存器能够直接向VMD发送命令的命令总线。
MCDIMM与多核处理器兼容。例如,多个应用可以在多核处理器中并发地运行,其中每个内核运行一个多线程应用,且多核处理器中的存储器控制器服务于仅仅一个应用的请求。
图5A示出根据本发明的实施例配置的MCDMM 500的一般示意性表示。MCDMM 500包括/ 个VMD,其中/ 是代表MCDIMM 500中的VMD的数目的整数。8个VMD在图5A中示出且由VMDi表示,其中下标左是范围从1到的整数。MCDMM 500配置成使得每个VMD 经由信号线的分离集合连接到多路分配器寄存器502。下面参考图5B和5C描述多路分配器寄存器502的两个不同实施例。例如,VMD0, VMD1, VMDi, VMDi+1、VMD^2和VMDyrf经由信号线集合504-509连接到多路分配器寄存器502。将VMD连接到多路分配器寄存器502的信号线的组合集合被称为“命令总线”。每个VMD可以由一个或多个存储器芯片(诸如DRAM芯片)组成。从存储器控制器(未示出)发送到MCDIMM 500的命令通过称为“命令路径”的信号线集合510到达多路分配器寄存器502。每个VMD在通过双头箭头(诸如双头箭头511) 在图5A中标识的分离数据总线上与存储器控制器交换数据。
图5B示出根据本发明的实施例配置的第一多路分配器寄存器525的示意性表示。 多路分配器寄存器525由寄存器512和多路分配器514组成。多路分配器寄存器525经由图5A的命令路径510从存储器控制器接收命令。命令是时分复用的。换句话说,每个命令被编码在比特流中,所述比特流在固定的持续时间时隙中从存储器控制器发送到多路分配器寄存器525。在图5B中,时分复用的命令的时隙由一系列矩形515-520表示。图5B中表示的每个命令包括意欲接收该命令的图5A中的VMD的索引。命令被发送到多路分配器寄存器525的顺序由存储器控制器确定。因而,在图5B中,命令以该顺序出现。嵌入在命令中的是标识待执行的特定种类的操作的控制信号、标识存储体、行或列的地址信号以及标识由存储器控制器分配为接收命令的特定VMD的VMD地址。例如,当命令要被发送到特定 VMD时,存储器控制器创建包括标识该VMD的VMD地址的命令。一般而言,VMD地址是包含 Iog2/ 个比特的比特串。
寄存器512是接收且临时存储命令的缓冲器。多路分配器514包括两个输入。如方向箭头522和5M所表示的,寄存器向一个输入发送命令且向另一输入发送VMD地址。多路分配器514使用VMD地址来选择通向由VMD地址标识的VMD的命令总线的信号线的适当集合。在图5B中,命令总线的信号线的η个集合中的6个通过对应于信号线集合504-509的方向箭头504-509表示,且使用图5A中示出的相关VMD的索引进行标记。注意,在处理后续命令之前,每个命令在特定时间间隔内被多路分配器寄存器525单独处理。
例如参考图5A-5B,考虑存储器控制器向VMDiS送命令左+1 519。在图5A中,命令左+1 519沿着命令路径510被发送到多路分配器寄存器525。如图5B所示,寄存器512 接收且临时存储命令519,且VMD地址和命令被发送到多路分配器514,其然后选择信号线的适当集合506来向图5A中的VMDm发送命令519。在发送命令i+1 519之后, 下一命令1 518以类似的方式被处理。
如图5B所示,多路分配器寄存器525可选地包括与每个信号线集合相关的计数器。当VMD的DRAM芯片不能支持与缓存线的READ或WRITE事务相关的长突发长度时,可能需要计数器。多路分配器寄存器将缓存线划分为缓存线片段且将命令转换为多个命令,每个命令对应于缓存线片段。因而,由计数器发送的对应命令在发送到VMD的每个缓存线片段之前。例如,当不能将VMD的一个或多个DRAM芯片的突发长度设置得足够长以覆盖缓存线时,计数器将列级别命令(例如READ或WRITE)转换为用于每一缓存线片段的若干READ/ WRITE命令,从而可以分离地读取每一缓存线片段或将每一缓存线片段写入到DRAM芯片。 每一计数器包括跟踪为划分的缓存线生成的命令的数量的计数设备。计数器执行的转换节省了来自存储器控制器的命令带宽。
图5C示出根据本发明的实施例配置的第二多路分配器寄存器527的示意性表示。 多路分配器寄存器527包含标为0至/7-1的/7个命令选择器以及广播总线528,对于图5A 中示出的《个VMD中的每一个都有一个命令选择器。如上面参考图5B所描述的,存储器控制器在命令路径510上向多路分配器寄存器527发送时分复用命令515-520。命令选择器经由支路529-534电子地连接到广播总线528,且每个命令选择器经由命令总线中的某个信号线集合连接到VMD之一。在图5C中,命令总线中的信号线的η个集合中的6个由对应于信号线集合504-509的方向箭头504-509表示且使用图5Α示出的相关VMD的索引进行标记。如图5C所示,每个命令被广播到所有的/7个命令选择器。每个命令选择器配置成提取嵌入在命令中的VMD地址以确定命令是否要被转发到对应的VMD或命令是否被寻址到不同VMD,在命令被寻址到不同VMD的情况下,命令被丢弃。因而,对于广播到所有个命令选择器的每个命令而言,该命令仅被命令选择器之一发送到对应的VMD。例如,多路分配器寄存器527接收命令/7-2 520且将其广播到所有/7个命令选择器0至/7-1。然而,因为命令 η-2 520包括VMDyrf的地址,所以命令选择器/7-2通过信号线集合508将命令/7-2 520发送到VMDyrf且其他命令选择器丢弃命令/7-2 520。注意,在处理后续命令之前,每个命令在特定时间间隔内被多路分配器寄存器527单独处理。
图5D示出根据本发明的实施例配置的示例性命令选择器/7-2的示意性表示。其他的/7-1个命令选择器被类似配置。命令选择器/7-2包含AND (与)门530、寄存器/计数器532以及随机存取存储器(“RAM”)定时控制534。命令在支路533上被输入到命令选择器/7-1。AND门530提取嵌入在每个命令中的VMD地址且接收系统时钟信号。AND门530配置成在提取的VMD地址匹配对应的VMDn_2的地址时向寄存器/计数器532发送选择信号。 AND门530接收时钟信号以确定寄存器/计数器何时锁存命令,且AND门530可以配置成在每个上升和/或下降时钟沿发送选择信号。寄存器/计数器532是在从AND门530接收到选择信号时临时存储命令且向对应的VMDyrf发送命令的缓冲器。寄存器/计数器532还包括如上面参考图5B所描述的执行缓存线和命令划分的计数器。RAM定时控制534控制寄存器/计数器532的计数器部分。
一般而言,AND门在所有输入信号对应于比特“1”时输出对应于比特“1”的信号且在输入信号中的至少一个对应于比特“0”时输出对应于比特“0”的信号,其中比特“1”和 “0”可以分别代表信号的高和低电压。命令选择器0至/7-1的AND门可以包括某些输入信号线上的反相器。反相器将与比特“0”相关的信号转变成与比特“ 1,,相关的信号且反之亦然。AND门包括某些输入信号线上的反相器以将代表对应VMD的VMD地址转变成包含全“1” 比特的比特流。AND门然后向寄存器/计数器532输出对应于比特“1”的选择信号。例如, 假设VMD _2的VMD地址包含比特流1L··· 1101。AND门530包括反相器536,其反转在线538 上进入AND门530的信号的电压。因而,如图5D所示,当嵌入在命令中的VMD地址匹配地址1Ρ··1101时,地址被转变成11··· 1111,且AND门530与时钟信号结合地向寄存器/计数器532输出代表比特“1”的选择信号,寄存器/计数器532锁存命令到信号线集合508上。 对于其他地址,进入AND门530的比特流包括至少一个“0”比特,且AND门530不输出信号或者输出对应于比特“0”的低信号。因而,寄存器/计数器532不锁存命令到信号线集合 508 上。
图6A示出根据本发明的实施例配置的MCDIMM 600的示意性表示。MCDIMM 600包括由VMDi标识的4个VMD以及多路分配器寄存器602,其中A是范围从0到3的整数。每个VMD包含两个DRAM芯片,且多路分配器寄存器602可以如上面参考图5B-5D描述的那样被配置和操作。命令总线MCDIMM 600包含将每个VMD的DRAM芯片连接到多路分配器寄存器602的四个信号线集合604-607。命令沿着命令路径608从存储器控制器(未示出)发送到多路分配器寄存器602。根据Iog2/ ,其中/7等于4,VMD可以被分配两比特VMD地址00、 01、10和11之一,所述地址包括在命令中以标识意欲接收该命令的VMD。每个VMD通过命令总线接收不同的命令且经由双头箭头(诸如双头箭头610)所表示的其自己的数据总线独立于其他VMD传输数据。
在图6A-6B的示例性MCDIMM 600中,每个存储器请求涉及两个DRAM芯片。DRAM 芯片对的等同阴影区域表示与不同命令相关的不同独立存储器请求。每个VMD通过命令总线接收命令且使用其自己的数据总线独立传输数据。因而,通过比传统DIMM (见伴随图3 的描述)激活更少的比特来节省能量。然而,与传统DIMM相比,因为数据总线大小小于传统 DMM中的数据总线大小,可能需要更多的时间来传送数据。例如,数据可以被划分成较小的串行化数据部分,其中每个部分通过VMD总线单独被发送到存储器控制器。以这种方式串行化数据增加了使用传统DIMM发送数据所需的时间量。该附加串行化等待时间问题可能对系统性能具有负面影响。
本发明的方法实施例下面参考动态地改变MCDIMM的各个VMD的能量消耗描述本发明的方法实施例。存储器芯片可以进入若干不同的操作模式。例如,存储器芯片可以响应于存储器请求而进入活动(active)模式。当存储器芯片不再处理存储器请求时,存储器芯片可以进入待机模式, 其中存储器芯片被提供以待机能量,该待机能量低于活动地处理存储器请求所需的能量, 但是高得足以维持内部存储器芯片组件的操作,使得存储器芯片能够快速响应于另一存储器请求。然而,当每存储器通道存在多个存储器模块时,处于待机模式中的存储器芯片消耗发送给存储器模块的总能量的显著部分。
通过使得临时不在使用中的存储器芯片进入节能模式可以节省待机能量。处于节能模式中的存储器芯片必须被加电(power up),这增加了响应时间。例如,功率下降模式是通过关闭很多内部存储器芯片组件来节省能量的一种节能模式,然而,存在与该模式相关的很多性能限制。当存储器芯片处于功率下降模式时,正常的存储器芯片访问是不可能的, 且存储器芯片必须被加电,因此进入和退出功率下降模式比进入和退出待机模式花费更多的时间。结果,使用功率下降模式典型地节省能量,但是导致较低的存储器系统性能。为了减小对存储器芯片加电所需的时间,很多存储器芯片还可以配置成具有多个功率下降模式。每个功率下降模式提供不同递增级别的能量节省。然而,能量节省的每个递增增加对应于对存储器芯片加电所需的更长的时间量。
本发明的方法实施例对于运行在多核处理器上的一个或多个应用可以是透明的, 因为挑选操作模式的决策可以完全由硬件做出,其还具有在运行时期间由编译器或一个或多个应用修改的灵活性。图7示出根据本发明的实施例的经由接口 704电子地连接到存储器控制器702的MCDMM 700。MCDMM 700包含如上参考图5A描述的那样配置的多路分配器寄存器706和个VMD。如图7所示,存储器控制器702配置有内部逻辑708和内部储存器710。关于每个VMD的使用的信息可以存储在内部储存器710中,且本发明的方法可以完全由存储器控制器内部逻辑708执行。
方法实施例包括在运行在多核处理器上的一个或多个应用的运行时期间优化存储器模块的性能和/或能量效率。计算机系统操作员、一个或多个应用或者操作系统选择提供标准的度量,按照该标准优化存储器模块的性能和/或能量效率。该度量可以是最小总执行时间(“ΤΕΤ”)、最小总能量消耗(“TEC”)、最小能量延迟乘积(“EDP”)或可以按照其来优化存储器模块的性能和/或能量效率的任意其他合适标准。设置度量以最小化一个或多个应用的TET允许所述应用几乎全带宽地访问存储器模块提供的存储容量。换句话说, 当存储器芯片并不活动地处理存储器请求时,不是使得存储器芯片进入功率下降模式,而是使得存储器芯片进入待机模式,从而存储器芯片能够快速响应于下一存储器请求。因而, TET是性能度量。另一方面,设置度量为TEC通过以下方式减小了针对每个存储器请求的容易可用的存储器芯片的数目使得这些存储器芯片进入节能模式,这减小了带宽且延迟了存储器响应时间但是提供了优于设置度量为TET的能量节省。设置度量为最小化EDP提供了 TET和TEC之间的折衷。EDP度量被定义为与存储器请求相关的能量和延迟的乘积。EDP 可用于在给定性能水平提供最小能量,或者针对相同的能量提供更多的性能。
一旦选择了度量,就确定在一个或多个应用的运行期间与每个VMD的使用有关的信息。使用信息被收集且存储在存储器控制器702中且可以包括以下项中的一个或多个 (1)当存储器控制器在一定的时间段内接收足够数量的存储器请求时每VMD的存储器请求的频率的记录;(2)在一定时间段内的存储器请求的数目与执行的指令数目的比率;(3)分配给优于另一操作模式而选择一个操作模式的惩罚;(4)编译器可以向存储器控制器702 提供关于与它处理的一个或多个应用相关的每VMD的存储器访问的频率的信息;以及(5) 运行时的一个或多个应用可以向存储器控制器702提供每VMD的存储器访问的频率的历史。
存储器控制器将用于每个VMD的使用信息与一个或多个阈值进行比较且通过向VMD发送适当的命令而使得VMD进入对应的操作模式。例如,当与VMD相关的使用信息小于阈值时,存储器控制器使得VMD进入对应的功率下降模式,且当与VMD相关的使用信息大于阈值时,存储器控制器使得VMD进入待机模式。根据被选择用于优化存储器模块的使用的度量选择所述阈值。例如,本发明的实施例包括当度量设置为TET时,节能模式可以被绕过或者阈值可以被设置为低,使得很少的VMD进入节能模式。另一方面,通过设置度量为TEC 或EDP,阈值比与TET相关的阈值相对更高,使得若干VMD能够进入节能模式。
本发明的实施例还包括运行在多核处理器上的一个或多个应用或者编译器向存储器控制器提供关于一个或多个应用的存储器访问模式或所需的存储器量的特性信息。特性信息和度量经由诸如操作系统或者虚拟机的运行时系统被发送到存储器控制器,所述虚拟机是类似于真实计算机的执行一个或多个应用的计算机的软件实现。运行时系统为存储器控制器解释度量和特性信息且可以指导存储器控制器选择用于应用的适当操作模式。 例如,假设系统操作员在多个应用并发地运行在多核处理器的内核中的情况下选择EDP度量,其中应用作者或编译器提供的特性信息将大多数应用标识为频繁存储器访问应用。结果,运行时系统可以指导存储器控制器将MCDIMM配置为不使用功率下降模式,而不收集关于存储器访问的数目的统计信息。而且,调度、监控和支持运行应用的运行时系统的其他元件或系统管理程序可以指导存储器控制器配置MCDIMM。
图8A示出呈现根据本发明的实施例的MCDI匪700的每个VMD的使用信息的条形图800。图800的每一条可以代表在一定的时间段内访问MCDIMM 700的VMD的频率或次数。图800包括分别代表阈值T1J2和7_的三个虚线801-803。所述阈值也与三个不同的功率下降模式PDMpPDM2和PDMmax相关。PDMmax通过关闭最大数量的内部存储器芯片组件比 PDM1和PDM2节省更多的功率,但是要求最长的延迟时间来加电;PDM1通过关闭最少的内部存储器芯片组件提供最少的能量节省,但是要求最短的延迟时间来加电;且PDM2提供PDMmax 和PDM1之间的能量节省且要求中间的延迟时间来加电。
图8A中示出的阈值Τλ、Τ2和Tmax 801-803可以代表通过设置度量为TEC或EDP确定的阈值。阈值代表可接受性能和能量效率之间的均衡。例如,条形图800揭示VMDpVMD2、 VMDk、VMDk+1、和VMDk_2全都具有超过阈值T1的使用信息。换句话说,存储器控制器在一个或多个应用运行的时候经常使用这些VMD。因而,不是使得这些VMD进入节能模式之一,当它们不活动地处理存储器请求时,存储器控制器使其进入待机模式。另一方面,如图8B所示, 与VMD1相关的使用信息小于Tfflax,与VMDlrf相关的使用信息大于Tfflax且小于T2,且与VMDlri相关的使用信息大于T2且小于1\。因而,为了节省能量,存储器控制器使得VMD1进入PDMmax, 使得VMDn_3进入PDM2,且使得VMDlri进入PDM1,直到VMD1、VMDlrf和VMDlri被加电以响应于存储器请求为止。
图9A示出条形图800,其表示图8A中示出的MCDIMM 700的每个VMD的使用信息, 但是阈值根据设置度量为TET而改变。注意表示与每个VMD相关的使用信息的条并未与图 8A中示出的条有所不同。然而,因为度量变为TET,图8A中表示的阈值TX、T2和变为在图9Α中由虚线901-903表示的阈值Τ,” Τ,2和Τ,隱。在该特定示例中,性能比能量效率更重要。因而,图9Α揭示出仅一个VMD落在阈值之下。具体而言,与VMD1相关的使用信息大于阈值Τ,2且小于阈值Τ,10存储器控制器使得VMD1进入功率下降模式PDM1达一定的时间段,直到VMD1被加电以用于存储器请求为止。当剩余VMD不活动地处理存储器请求时,存储器控制器使得这些VMD进入待机模式。
在某些实施例中,存储器控制器可以选择使用哪个操作模式。在某些实施例中,当存储器被很频繁地使用或者性能更关键时,存储器控制器不使用节能模式。
方法实施例是动态的,因为使用信息可以由存储器控制器定期地收集且与每个 VMD相关的使用信息在一个或多个应用运行的时候被更新。结果,基于当前使用信息,VMD 可以在一个或多个应用运行的时候被定期地切换到不同操作模式,而不禁用存储器访问。 另外,在某些实施例中,度量还可以在一个或多个应用运行的时候由计算机系统操作员改变。
图10示出根据本发明的实施例的用于动态地使得存储器模块的VMD进入操作模式的方法的控制流程图。在步骤1001,度量(诸如度量TET、TEC或EDP)被选择以优化与运行一个或多个应用相关的存储器性能和/或能量消耗。如上所述,度量可以由计算机系统操作员、一个或多个应用或者操作系统选择。在步骤1002,执行一个或多个应用。在步骤 1003,操作系统选择一个或多个内核来处理一个或多个应用。在步骤1004,基于一个或多个应用的存储器要求,操作系统选择MCDIMM的一个或多个VMD。在步骤1005,根据度量和 /或应用本身提供的特性信息,运行时系统可以指导存储器控制器到步骤1006且进入步骤 1006-1009中实施的方法的节能部分。否则,运行时系统可以指导存储器控制器跳过方法的节能部分。例如,当一个或多个应用提供的特性信息将所述应用标识为频繁存储器访问应用时,运行时系统可以指导存储器控制器跳过步骤1006-1009中实施的方法的节能部分。 在步骤1006的for循环中,针对存储器模块的每个VMD执行步骤1007-1008。在步骤1007, 如上面参考图7所描述的,存储器控制器在一定的时间段内收集和存储VMD使用信息。在步骤1008,存储器控制器基于度量和使用信息使得VMD进入操作模式,如下面在图11的控制流程图中描述的。例如,当VMD不活动地处理存储器请求时,存储器控制器可以使得VMD 进入待机模式或者很多节能模式之一,如上面参考图8-9所述的。在步骤1009,当所有VMD 都进入操作模式时,前进到1010,否则针对另一 VMD重复步骤1007和1008。在步骤1010 中,当一个或多个应用的运行没有结束时,本发明的实施例可以可选地包括步骤1011,否则当一个或多个应用结束运行时,前进到步骤1012,其中针对不同组的一个或多个应用或者相同组的一个或多个应用的后续运行,重复步骤1001-1009。在步骤1011,在一个或多个应用仍在运行的时候,计算机系统操作员可以改变度量。例如,计算机系统操作员可以在步骤 1001中初始设置度量为TET,且稍后在一个或多个应用运行的时候改变度量为TEC。
图11示出根据本发明的实施例的用于动态地使得VMD进入功率下降模式的方法的控制流程图。在该实施例中,如参考图8-9所述,假设存储器芯片具有在步骤1103、1105 和1107中表示的三个节能功率下降模式。在步骤1101,如上面参考图8-9所述,基于图10 的步骤1001中选择的度量确定对应于三个功率下降模式的阈值。存储器控制器使用在图 10的步骤1006中收集和存储的使用信息在步骤1102-1107中选择一个或三个功率下降模式。功率下降模式是上面参考图8A所述的PDMp PDM2 *PDMmax。在步骤1102,当使用信息小于阈值Tfflax时,前进到步骤1103,否则前进到步骤1104。在步骤1103,存储器控制器使得 VMD进入PDMmax。在步骤1104,当使用信息小于阈值T2时,前进到步骤1105,否则前进到步骤1106。在步骤1105,存储器控制器使得VMD进入PDM2。在步骤1106,当使用信息小于阈值1\时,前进到步骤1107,否则前进到步骤1108。在步骤1107,存储器控制器使得VMD进入PDM115在步骤1108,存储器控制器使得VMD进入待机模式。在其他实施例中,存储器芯片可以配置有一个、两个或四个或更多不同的功率下降模式。
为了解释的目的,前面的描述使用特定词汇来提供本发明的透彻理解。然而,本领域技术人员显而易见的是,为了实践本发明,并不需要具体细节。给出本发明具体实施例的前面描述,目的是进行说明和描述。它们并非意欲穷尽本发明或者将其限制为所公开的精确形式。显然,根据以上教导,很多修改和变化是可能的。示出并且描述实施例,以最佳地解释本发明的原理及其实际应用,由此使得本领域其他技术人员能够最佳地利用本发明以及具有适于所考虑的特定使用的各个修改的各个实施例。本发明的范围意欲由所附权利要求及其等同物所定义。
权利要求
1.一种确定用于存储器模块的每个虚拟存储器设备的操作模式的方法,包含 选择提供标准的度量(1001 ),按照该标准在多核处理器上的一个或多个应用的执行过程中优化所述存储器模块的性能和/或能量效率;以及对于每个虚拟存储器设备(1005)在一定的时间段内收集与所述虚拟存储器设备相关的使用信息(1006); 基于所述度量和使用信息确定所述虚拟存储器设备的操作模式(1007);以及使得所述虚拟存储器设备进入所述操作模式(1103,1105,1107,1108)。
2.根据权利要求1所述的方法,其中该度量还包含最小总执行时间、最小总能量消耗、最小能量延迟乘积或者能够按照其来优化存储器模块的性能和/或能量效率的另一合适标准。
3.根据权利要求1所述的方法,其中选择度量为最小总执行还包含对于不同时间段重复权利要求1的步骤。
4.根据权利要求1所述的方法,还包含在所述一个或多个应用的执行过程中改变度量;以及运行时系统,其配置成接收与所述一个或多个应用的存储器访问模式或所需存储量有关的特性信息和所述度量,解释该度量和特性信息,且指导存储器控制器使得每个虚拟存储器设备进入合适的操作模式。
5.根据权利要求1所述的方法,其中该使用信息还包含确定以下项中的一个或多个 当存储器控制器在该时间段内接收足够数目的存储器请求时存储器请求的频率; 在该时间段内的存储器请求的数目与执行的指令数目的比率;分配给优于另一操作模式而选择一个操作模式的惩罚;编译器向存储器控制器提供的与应用相关的存储器访问的频率;以及应用在运行时确定的且发送到存储器控制器的存储器访问的频率。
6.根据权利要求1所述的方法,其中选择度量还包含以下项之一 计算机系统操作员选择度量;一个或多个应用被编程为选择度量; 操作系统选择度量;以及系统管理程序或运行时系统的其他元件调度、监控且支持运行时应用。
7.根据权利要求1所述的方法,其中收集使用信息还包含存储器控制器(702)存储在该时间段内访问虚拟存储器设备的次数。
8.根据权利要求1所述的方法,其中确定用于虚拟存储器设备的操作模式还包含 基于度量确定至少一个阈值(1101);以及将使用信息与所述至少一个阈值进行比较(1102,1104,1106),其中当使用信息大于所述至少一个阈值时,使得该虚拟存储器设备进入待机模式(1108),否则使得该虚拟存储器设备进入节能模式(1103,1105,1107)。
9.根据权利要求8所述的方法,其中当节能模式还包含至少一个功率下降模式时,每个功率下降模式与所述至少一个阈值之一相关。
10.根据权利要求9所述的方法,其中当使用信息大于第一阈值且小于第二阈值时, 使得虚拟存储器设备进入与第二阈值相关的功率下降模式。
11.根据权利要求1所述的方法,其中该操作模式还包含当虚拟存储器设备不处理存储器请求且存储器模块的性能的优先级高于节省能量时的待机模式。
12.—种系统,包含 存储器控制器;以及存储器模块,其包含至少一个虚拟存储器设备和连接到每个虚拟存储器设备和存储器控制器的多路分配器寄存器,其中该存储器控制器基于在一定的时间段内收集的使用信息的水平和度量使得至少一个虚拟存储器设备进入操作模式。
13.根据权利要求13所述的系统,其中该虚拟存储器设备还包含一个或多个存储器芯片。
14.根据权利要求13所述的系统,其中该度量还包含最小总执行时间、最小总能量消耗、最小能量延迟乘积或者能够按照其来优化存储器模块的性能和/或能量效率的另一合适标准。
15.根据权利要求13所述的系统,其中操作模式还包含以下之一 节能模式;以及待机模式。
全文摘要
本发明的各个实施例涉及使得存储器控制器能够基于动态程序行为针对存储器模块的虚拟存储器设备选择特定操作模式的方法。在一个实施例中,用于确定存储器模块的每个虚拟存储器设备的操作模式的方法包括选择提供标准的度量(1001),按照该标准优化存储器模块的性能和/或能量效率。对于每个虚拟存储器设备(1005),该方法还包括在一定的时间段内收集与虚拟存储器设备相关的使用信息(1006),基于度量和使用信息确定虚拟存储器设备的操作模式(1007),以及使得虚拟存储器设备进入该操作模式。
文档编号G06F12/08GK102187323SQ200880131533
公开日2011年9月14日 申请日期2008年8月13日 优先权日2008年8月13日
发明者安廷镐, N·P·朱皮, J·B·莱弗里奇, R·S·施赖博 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1