利用等级聚合的内存扩展的利记博彩app

文档序号:6361313阅读:231来源:国知局
专利名称:利用等级聚合的内存扩展的利记博彩app
技术领域
本公开一般而言涉及计算机,更具体而言涉及计算机内存。
背景技术
由于工作负荷增大,计算机(特别是服务器)对内存容量要求在迅速增长。例子包括虚拟化的日益普及以及由服务器所存储和计算的数据量增大,前者超额认购了多个用户之间的计算机物理内存,后者需要更大的内存以避免访问磁盘。希望在不降低系统性能的情况下扩展内存。


图1示出了可以实现这里所述实施例的计算机系统的一个示例。图2是根据一个实施例的用在图1的计算机系统中的一种内存系统的方框图。图3是根据一个实施例的用在图1的计算机系统中的另一种内存系统的框图。图4是示出了根据一个实施例的图2和图3的内存系统中的等级聚合处理的流程图。贯穿附图的若干视图,相应的标号代表相应的部分。
具体实施例方式综述在一个实施例中,一种方法一般包括从内存控制器接收对于访问在内存模块中存储的内存的请求,所述请求针对多个逻辑等级之一;在等级聚合器中将所述逻辑等级映射到所述内存模块中的多个物理等级之一;并根据所述映射将所述请求转发到所述内存模块之一。所述内存模块中的两个或更多个模块相结合以表示所述内存控制器中的逻辑等级的数量,这样使得在所述逻辑等级与所述物理等级之间存在一对一映射。在另一个实施例中,一种装置一般包括等级聚合器,所述等级聚合器用于从内存控制器接收对于访问在内存模块中存储的内存的请求,所述请求针对多个逻辑等级之一;将所述逻辑等级映射到内存模块中的多个物理等级之一;并根据所述映射将所述请求转发到所述内存模块之一。所述内存模块中的两个或更多个模块相结合以表示所述内存控制器中的逻辑等级的数量,这样使得在所述逻辑等级与所述物理等级之间存在一对一映射。所述装置进一步包括用于与所述内存控制器和所述内存模块通信的接口。 在又另一个实施例中,一种装置一般包括内存模块,所述内存模块包括多个物理等级;内存控制器,用于发送对于访问所述内存模块中的内存的请求,所述请求针对多个逻辑等级之一;以及等级聚合器,用于将所述逻辑等级映射到所述物理等级之一,并根据所述映射将所述请求转发到所述内存模块之一。所述内存模块中的两个或更多个模块相结合以表示所述内存控制器中的逻辑等级的数量,这样使得在所述逻辑等级与所述物理等级之间存在一对一映射。
示例性实施例提出了下说明,以使本领域的普通技术人员能够作出和使用实施例。具体实施例和应用的说明仅作为示例而提供,各种修改对于本领域的技术人员来说将容易变得清楚。在不脱离实施例的范围的情况下,这里所述的一般原理可以适用于其他应用。因此,实施例不应限于所示实施例,而应被赋予与这里所述原理和特征相一致的最广的范围。为了清晰的目的,与实施例相关的技术领域中已知的技术材料有关的细节未作详细说明。这里所述实施例使用等级聚合提供扩展的内存。以下说明了如何利用常规系统对动态随机地址内存(DRAM)进行编址和访问,以及这如何随等级倍增和等级聚合而变化的概述。DRAM使用芯片选择(CS)、存储体地址(bank address, BA)、行地址和列地址位被编址。存储体、行和列地址位选择DRAM的等级(rank)内的位置。CS线选择希望的等级。器件密度的增大可通过增加更多的行或列位或通过增加更多的存储体进行调节。在常规的系统中,密度每增大一倍需要增加一个行地址位。存储体的数量、列位和页面大小对于一具体宽度的所有双数据速率3 (DDR3)密度都保持固定。DRAM可被定位在双列直插式内存模块(DIMM)上。这里使用术语逻辑DIMM (LDIMM)和物理DIMM (PDIMM)。逻辑DIMM是内存控制器所认为的内存系统的等级、存储体、行位和列位的数量方面的配置。内存控制器基于该模型生成内存访问。以下相对于图2和图3详细说明逻辑和物理DIMM。等级倍增使用较低密度DRAM的两个或四个物理等级模拟较高密度DRAM的一个逻辑等级。该模拟是通过使用较大数量的行位来解码另外的芯片选择而实现的。在2009年7月9日公布的美国专利申请公开N0.2009/0177853中说明了等级倍增的一个示例。等级倍增提供在相同逻辑等级背后的两个或更多个物理DRAM设备。作为逻辑等级内的主传输流,等级倍增不知道它正在访问哪个物理DRAM设备。随后的流访问因此可以在两个设备上被分开;其中第一访问被发送到一个设备上,并且在第一事务之后随即第二访问被发送到另一个设备。对单个DRAM的流访问被优化,使得只有流的第一访问生成前导码。这意味着在一个流内,没有为第二前导码分配的时间间隙。这引起数据总线争用,因为第二设备的前导码与第一设备的源同步数据时钟重叠。为了确保不发生这样的冲突,假定每个流访问均需要提供对于通过切换DRAM设备而生成新前导码所需的时间间隙。该间隙是通过将最小列存取选通(CAS)至CAS从突发长度(BL)/2增大到(BL/2+2)周期来提供的,其中一个周期用于第二设备的前导码,第二周期用于处理DRAM设备定时失配。因此,使用等级倍增的系统上的内存访问的最小CAS至CAS间隔从BL/2周期增大到(BL/2+2)周期。这为数据通路增加了两个周期“泡沫”,其结果是当突发长度为八时流传输性能降低50%。这里所述的等级聚合实施例在不对流访问造成损失的情况下提供了扩展的内存。在一个实施例中,多个物理等级结合成内存控制器能够调度的最大数量的逻辑等级。这保持了内存控制器中的逻辑等级与内存的物理等级之间的一对一映射。等级聚合因此消除了上述关于等级倍增的缺点,并且提供了比等级倍增更佳的流性能。与常规的内存系统相t匕,等级聚合通过使用较低等级的物理DIMM允许逻辑上最大容量的双列直插式内存模块(DIMM)。这提供了成本和内存容量的优点。例如,使用两个较小DIMM看起来作为一个逻辑上较大的DIMM提供了比购买单个较大DIMM较便宜的解决方案。而且,这些实施例使得有可能利于多个物理DIMM建立比最大容量的常规物理DIMM更大的逻辑DIMM。现在参照附图,首先参照图1,示出了一个计算机系统10,在该系统中可以实现这里所述的实施例。计算机系统10可以是例如服务器、路由器、交换机或其他网络设备。计算机系统10还可以是个人计算机、个人数字助理(PDA)或任何其他计算装置。图1所示的计算机系统10包括一个或多个输入设备12 (例如键盘、鼠标、跟踪设备、触摸屏或用于与用户接口交互作用的其他设备)、一个或多个输出设备14(例如显示器、扬声器)和网络接口 16。计算机系统10进一步包括子系统,诸如处理器17 (例如中央处理器(CPU))、内存系统18、静态内存20和存储装置22。如以下详细所述,内存系统18包括内存控制器、易失性内存和用于执行等级聚合的等级聚合器32。静态或非易失性内存20可以存储基本输入输出系统(BIOS)以充当系统硬件与系统软件之间的接口,并在计算机系统10启动时初始化系统硬件。存储装置22可以包括固定存储装置(例如硬盘驱动器)和可移除存储装置(例如CD-ROM驱动器)。可在一个或多个有形介质中将逻辑编码以供处理器17执行。内存18和存储装置22可被用于存储和取回指令及数据结构(例如软件)。计算机存储介质还可以包括DVD或其他光存储装置、盒式磁带、磁带或磁盘存储装置或可用于存储可由计算机访问的信息的任何其他介质。计算机系统10的系统总线结构在图1中以箭头24表示。然而,这些箭头只是说明了用于连接子系统的一种可能的互联方案。例如,可以使用局域总线将处理器17连接到内存系统18。应理解的是图1所示的计算机系统只是适合与这些实施例一起使用的计算机系统的一个示例,并且在不脱离这些实施例的范围的情况下还可以使用具有不同的子系统配置的其他计算机体系结构。图2是根据一个实施例的内存系统18的框图。内存系统18包括内存控制器30、等级聚合器32和内存模块38。内存控制器30耦合到处理器17 (在图1中示出)。处理器17可以访问在内存模块38内存储的指令并处理与图1的计算机系统10的操作相关的指令。内存模块38可以存储由处理器17或由在计算机系统10上运行的应用或操作系统访问的指令或任何其他软件代码、记录或其他数据。内存控制器30可以从处理器17接收对于访问内存模块38的请求。如本领域的技术人员所熟知的,可以使用通信协议进行处理器17与内存控制器30之间的通信。内存控制器30可以通过一个通信协议从处理器17接收内存访问请求,并使用不同的通信协议(例如DDR)通过通信信道35将所述请求传达给等级聚合器32。在图2所示的示例中,内存控制器30在信道40与等级聚合器32接口。在一个实施例中,信道40被逻辑细分,并且等级聚合器32利用该逻辑细分来对应于两个逻辑DMM(LDIMM0,LDMM1)。信道40的每个逻辑分区包括四个芯片选择(O- > 3和4- > 7)。内存模块包括接口 42以适应内存访问请求。内存访问的示例包括激活一行单元,读取或写入一个内存单元,预充一行内存单元,刷新一个内存单元或任何其他内存访问操作。在一个实施例中,每个内存模块均是被配置为托管多个内存设备(例如DRAM)的DIMM。每个DIMM包括被称作等级的一组或多组内存单元。每个等级可以包括一个或多个由内存单元组成的存储体,每个由内存单元组成的存储体包括由行和列组成的阵列,行与列的交叉处为内存单元的位置和地址。
在一个实施例中,等级聚合器32为专用集成电路(ASIC)。如本领域的技术人员所熟知的,等级聚合器32提供命令路径逻辑并且与系统计时交互作用。命令路径逻辑提供用于生成芯片选择的地址和命令解码逻辑和数据通路导引逻辑。等级聚合器32还可以包括配置寄存器,配置寄存器允许芯片选择与在启动时间内将被改变的物理DMM之间的静态映射。在一个实施例中,等级聚合器32实现电子设备工程联合委员会(JEDEC)DDR3协议的地址/控制部分。等级聚合器32包括与内存控制器30通信的DDR3接口 40和与物理DI丽通信的DIMM DDR3接口 42。等级聚合器32还包括至少用于临时存储逻辑等级与物理等级之间的映射的内存。在图2和图3所示的示例中,内存系统18被配置在一个信道上支持两个逻辑DMM。图2示出了两个逻辑DIMM(DIMM0,DJMM1),每个逻辑DIMM包括四个单等级(SR) DIMM。图3示出了具有双等级(DR)DIMM的等级聚合。图3中的每个逻辑DIMM(DIMM0,DEMM1)包括两个DR DIMM46。在这些示例中,等级聚合被用于模拟当插入四个SR物理DIMM(图2)或两个SR物理DMM(图3)时的四等级(QR)逻辑DMM。如果内存信道只充有一个SR DMM或DR DIMM,如在常规的系统中那样,那么内存控制器的最大数量的物理等级将被使用。由于内存控制器30能够对QR DMM进行编址,因此有可能将两个SR DMM伪装为单个DR DMM,将四个SR DMM伪装为单个QR DMM(图2),或将两个DR DIMM伪装为单个QR DIMM(图3)。并非像等级倍增那样使用高端地址位将一个逻辑等级倍增为多个物理等级,等级聚合将多个物理等级结合成一个较大逻辑等级表示,因此保持了逻辑等级到物理等级的一对一映射。因此保持了一对一关系,内存控制器中的每个逻辑等级访问DRAM的单个物理等级。等级聚合允许逻辑芯片选择与物理芯片选择之间的一对一映射。这与等级倍增不同,在等级倍增的情况下需要基于另外的行位通过ASIC生成物理等级。利用等级聚合,无需使用高端地址位将一个逻辑芯片选择分开用于多等级物理DIMM。这提高了性能,因为内存控制器完全控制着物理DIMM,而不是对于将哪个物理DIMM作为目标具有不确定性。以下表I列出了对于每个信道两个逻辑DIMM的多达八个等级的内存系统的配置和处理器芯片选择输出。在该示例中,CSO至CS3连接到逻辑DIMM0,并且CS4至CS7连接到逻辑DMM1。表I中的逻辑配置编号12对应于图2和图3所示的示例。
权利要求
1.一种方法,包括: 从内存控制器接收对于访问在内存模块中存储的内存的请求,所述请求针对多个逻辑等级之一; 在等级聚合器中将所述逻辑等级映射到所述内存模块中的多个物理等级之一,其中所述内存模块中的两个或更多个模块相结合以表示所述内存控制器中的所述逻辑等级的数量,这样使得在所述逻辑等级与所述物理等级之间存在一对一映射;并且 根据所述映射将所述请求转发到所述内存模块之一。
2.根据权利要求1所述的方法,其中所述内存模块包括双列直插式内存模块,并且所述内存模块中的等级的数量对应于有效芯片选择的数量。
3.根据权利要求1所述的方法,其中所述内存模块包括至少一个逻辑内存模块,所述逻辑内存模块包括两个双等级双列直插式内存模块。
4.根据权利要求1所述的方法,其中所述内存模块包括至少一个逻辑内存模块,所述逻辑内存模块包括四个单等级双列直插式内存模块。
5.根据权利要求1所述的方法,其中所述内存模块包括至少一个逻辑内存模块,所述逻辑内存模块包括两个单等级双列直插式内存模块。
6.根据权利要求1所述的方法,其中所述内存模块包括两个逻辑内存模块,所述逻辑内存模块包括与所述内存控制器中的一个双数据速率信道相关联的八个物理内存模块。
7.根据权利要求1所述的方法,其中所述内存模块包括两个逻辑内存模块,所述逻辑内存模块包括与所述内存控制器中的一个双数据速率信道相关联的四个物理内存模块。
8.一种装置,包括: 等级聚合器,用于: 从内存控制器接收对于访问在内存模块中存储的内存的请求,所述请求针对多个逻辑等级之一; 将所述逻辑等级映射到所述内存模块中的多个物理等级之一,其中所述内存模块中的两个或更多个模块相结合以表示所述内存控制器中的所述逻辑等级的数量,这样使得在所述逻辑等级与所述物理等级之间存在一对一映射;并且 根据所述映射将所述请求转发到所述内存模块之一;以及 接口,用于与所述内存控制器和所述内存模块通信。
9.根据权利要求8所述的方法,其中所述内存模块包括双列直插式内存模块,并且所述内存模块中的等级的数量对应于有效芯片选择的数量。
10.根据权利要求8所述的装置,其中所述内存模块包括至少一个逻辑内存模块,所述逻辑内存模块包括两个双等级双列直插式内存模块。
11.根据权利要求8所述的装置,其中所述内存模块包括至少一个逻辑内存模块,所述逻辑内存模块包括四个单等级双列直插式内存模块。
12.根据权利要求8所述的装置,其中所述内存模块包括至少一个逻辑内存模块,所述逻辑内存模块包括两个单等级双列直插式内存模块。
13.根据权利要求8所述的装置,其中所述内存模块包括两个逻辑内存模块,所述逻辑内存模块包括与所述内存控制器中的一个双数据速率信道相关联的四个物理内存模块。
14.一种装置,包括:内存模块,所述内存模块包括多个物理等级; 内存控制器,用于发送对于访问在所述内存模块中内存的请求,所述请求针对多个逻辑等级之一;以及 等级聚合器,用于将所述逻辑等级映射到所述物理等级之一,并根据所述映射将所述请求转发到所述内存模块之一,其中所述内存模块中的两个或更多个模块相结合以表示所述内存控制器中的所述逻辑等级的数目,这样使得在所述逻辑等级与所述物理等级之间存在一对一映射。
15.根据权利要求14所述的装置,其中所述内存模块包括双列直插式内存模块,并且所述内存模块中的等级的数量对应于有效芯片选择的数量。
16.根据权利要求14所述的装置,其中所述内存模块包括至少一个逻辑内存模块,所述逻辑内存模块包括两个双等级双列直插式内存模块。
17.根据权利要求14所述的装置法,其中所述内存模块包括至少一个逻辑内存模块,所述逻辑内存模块包括四个单等级双列直插式内存模块。
18.根据权利要求14所述的装置,其中所述内存模块包括至少一个逻辑内存模块,所述逻辑内存模块包括两个单等级双列直插式内存模块。
19.根据权利要求14所述的装置,其中所述内存模块包括两个逻辑内存模块,所述逻辑内存模块包括与所述内存控制器中的一个双数据速率信道相关联的八个物理内存模块。
20.根据权利要求14所述的装置,其中所述内存模块包括两个逻辑内存模块,所述逻辑内存模块包括与所述内存控制器中的一个双数据速率信道相关联的四个物理内存模块。
全文摘要
在一个实施例中,一种方法包括从内存控制器接收对于访问在内存模块中存储的内存的请求,所述请求针对多个逻辑等级之一;在等级聚合器处将所述逻辑等级映射到所述内存模块中的多个物理等级之一;并根据所述映射将所述请求转发到所述内存模块之一。所述内存模块中的两个或更多个模块相结合以表示所述内存控制器中的逻辑等级的数量,这样使得在所述逻辑等级与所述物理等级之间存在一对一映射。还公开了一种用于等级聚合的装置。
文档编号G06F13/16GK103154917SQ201180037644
公开日2013年6月12日 申请日期2011年5月27日 优先权日2010年6月4日
发明者杰伊·埃文·斯科特·彼得森, 菲利普·马内拉 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1