CN115687196B - 用于对多通道存储器进行控制的方法和装置 - Google Patents
用于对多通道存储器进行控制的方法和装置 Download PDFInfo
- Publication number
- CN115687196B CN115687196B CN202211713987.2A CN202211713987A CN115687196B CN 115687196 B CN115687196 B CN 115687196B CN 202211713987 A CN202211713987 A CN 202211713987A CN 115687196 B CN115687196 B CN 115687196B
- Authority
- CN
- China
- Prior art keywords
- channel
- memory
- channels
- currently used
- data
- 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.)
- Active
Links
Images
Classifications
-
- 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
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
本申请提出了用于对多通道存储器进行控制的方法和装置。所述方法包括:接收通道数改变指令,其中,所述通道数改变指令指示将当前使用的存储器的通道数改变成所需的通道数,所需的通道数是根据所述多通道存储器中的多个通道的存储器的当前的带宽利用率和容量使用率被确定的;将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址,其中,同一数据在当前使用通道的存储器中所在的通道地址所映射到的物理地址与所述同一数据在所述所需通道数的存储器中所在的通道地址所映射到的物理地址是相同的。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及用于对多通道存储器进行控制的方法和装置、存储介质以及计算机程序产品。
背景技术
随着计算机技术的发展,各种高性能计算机被广泛使用。对于各种高性能计算机的处理器(例如,CPU(Central Processing Unit, 中央处理单元)、GPU(GraphicsProcessing Unit,图形处理单元),TPU(Tensor Processing Unit, 张量处理单元)、NPU(Neural network Processing Unit, 神经网络处理单元)等)而言,为了提高运算性能,需要提高存储器(例如,DDR(Double Data Rat,双倍速率)存储器)的带宽以与之匹配。在频率和工艺确定的情况下,通过增加存储器的通道数量来提高存储器的带宽。每个通道通常都用独立的配套组件(例如,DDR物理层接口单元、DDR颗粒等),因此随着通道数量的增加,随之带来的功耗也大大增加,散热问题也变得棘手。特别是当处理器处于非极限运算的场景下,对存储器的带宽需求可能小于最大带宽的50%,例如在仅显示桌面的情况下,对存储器的带宽需求更低,可能小于10%。然而,每个通道仍然会消耗很大的功耗,既影响相关设备或存储器芯片的寿命,也造成了资源的浪费。
发明内容
有鉴于此,本公开提供用于对多通道存储器进行控制的方法和装置、存储介质以及计算机程序产品,期望克服上面提到的部分或全部缺陷以及其它可能的缺陷。
根据本公开的第一方面,提供了一种用于对多通道存储器进行控制的方法。所述方法包括:接收通道数改变指令,其中,所述通道数改变指令指示将当前使用的存储器的通道数改变成所需的通道数,所需的通道数是根据所述多通道存储器中的多个通道的存储器的当前的带宽利用率和容量使用率被确定的,以及其中,带宽利用率表示所述多个通道的存储器的当前使用带宽与所述多个通道的存储器的最大总带宽的比值,容量使用率表示所述多个通道的存储器的当前使用容量与所述多个通道的存储器的总容量的比值;将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址,其中,同一数据在当前使用通道的存储器中所在的通道地址所映射到的物理地址与所述同一数据在所述所需通道数的存储器中所在的通道地址所映射到的物理地址是相同的。
在一些实施例中,所述多通道存储器中的多个通道的存储器的当前的带宽利用率和容量使用率通过如下方式被确定:将所述多通道存储器的通道划分为多个分组,每个分组中包括多个通道的存储器;针对每个相应的分组,确定相应分组中的多个通道的存储器的当前的带宽利用率和容量使用率。
在一些实施例中,所述多个通道的存储器的通道数等于,并且其中,所需的通道数通过如下方式被确定:确定使得所述当前的带宽利用率和容量使用率均小于1/时的k的最大值;确定所述多个通道的通道数除以得到的商m,并将m作为所需的通道数,其中k为不小于零的整数,以及p和m为正整数。
在一些实施例中,所述多个通道的存储器的通道数不等于,并且其中,所需的通道数通过如下方式被确定:确定使得所述当前的带宽利用率和容量使用率均小于1/时的k的最大值;确定所述多个通道的通道数除以得到的商m,并将大于或等于m的最小整数n作为所需的通道数,其中k为不小于零的整数,p为正整数,以及m为正数。
在一些实施例中,所述多个通道的存储器的通道数为8。
在一些实施例中,将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址,包括:响应于所需的通道数小于当前使用的存储器的通道数,则将当前使用通道的存储器中的数据迁移到当前使用通道的第一部分通道的存储器中,其中,第一部分通道的通道数等于所需的通道数,并且当前使用通道中第一部分通道之外的通道为第二部分通道;将所述当前使用通道的存储器中数据所在的通道地址所映射的物理地址重新映射到所述第一部分通道的存储器的通道地址,其中同一数据在当前使用通道的存储器中所在的通道地址所映射的物理地址与所述同一数据在所述第一部分通道的存储器中所在的通道地址所映射的物理地址是相同的;关闭所述当前使用通道中的所述第二部分通道。
在一些实施例中,所述方法还包括:根据时隙配置信息,确定时隙控制模式,所述时隙控制模式用于指示所述第一部分通道的存储器的每个控制周期中的工作模式和休眠模式的切换模式;根据所述时隙控制模式控制所述第一部分通道的存储器,使得所述第一部分通道的存储器在休眠模式下进入低功耗状态,以及在工作模式下处理命令缓冲器在第一部分通道的存储器的休眠模式下缓存的针对第一部分通道的存储器的访问请求。
在一些实施例中,所述第一部分通道的存储器包括多个通道,所述方法还包括:获取目标存储器的工作模式,其中,所述目标存储器为所述第一部分通道的存储器中的任意一个,所述工作模式包括同步模式和顺序模式中的一个,所述同步模式指示目标存储器与第一部分通道的存储器中其它通道的存储器同步进入工作模式和休眠模式,顺序模式指示所述目标存储器与第一部分通道的存储器中其它通道的存储器按指定顺序进入工作模式和休眠模式;其中,所述根据所述时隙控制模式控制所述第一部分通道的存储器,包括:根据所述时隙控制模式和工作模式控制所述目标存储器,使得所述目标存储器在休眠模式下进入低功耗状态,以及在工作模式下处理命令缓冲器在目标存储器的休眠模式下缓存的针对目标存储器的访问请求。
在一些实施例中,将当前使用通道的存储器中的数据迁移到当前使用通道的第一部分通道的存储器中,包括:将当前使用通道的第一部分通道的存储器中的数据迁移到所述当前使用通道中所述第二部分通道的存储器中的未被使用的通道地址上;将所述当前使用通道中所述第二部分通道的存储器中的数据迁移到当前使用通道的第一部分通道的存储器中。
在一些实施例中,第一部分通道的通道数为至少两个,并且其中,将当前使用通道的第一部分通道的存储器中的数据迁移到所述当前使用通道中所述第二部分通道的存储器中的未被使用的通道地址上,包括:将所述至少两个第一部分通道的存储器中的数据并行迁移到所述第二部分通道的存储器中的未被使用的通道地址上,其中所述数据被迁移到所述第二部分通道的存储器的通道数等于所述第一部分通道的通道数。
在一些实施例中,将所述当前使用通道中所述第二部分通道的存储器中的数据迁移到当前使用通道的第一部分通道的存储器中,包括:将所述第二部分通道的存储器中的数据迁移到所述第一部分通道的存储器中,使得同一数据在所述第一部分通道的存储器中所在的通道地址相对于被迁移的其它数据所在通道地址的次序与在所述当前使用通道的存储器中相同。
在一些实施例中,将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址,包括:响应于所需的通道数大于当前使用的存储器的通道数,则开启所述多个通道中当前使用通道之外的第三部分通道,使得所述当前使用通道和所述第三部分通道所组成的第四部分通道的通道数等于所需的通道数;将当前使用通道的存储器中的数据迁移到第四部分通道的存储器中;将当前使用通道的存储器中数据所在的通道地址所映射的物理地址重新映射到第四部分通道的存储器的通道地址,其中同一数据在第四部分通道的存储器中所在的通道地址所映射的物理地址与所述同一数据在所述当前使用通道的存储器中所在的通道地址所映射的物理地址是相同的。
在一些实施例中,将当前使用通道的存储器中的数据迁移到第四部分通道的存储器中,包括:将当前使用通道的存储器中的数据迁移到所述第三部分通道的存储器中;将所述第三部分通道的存储器中的部分数据迁移到所述当前使用通道的存储器中,使得同一数据在所述第四部分通道的存储器中所在的通道地址相对于被迁移的其它数据所在通道地址的次序与在所述当前使用通道的存储器中相同。
根据本公开的第二方面,提供了一种用于对多通道存储器进行控制的装置。所述装置包括:指令接收模块,被配置成接收通道数改变指令,其中,所述通道数改变指令指示将当前使用的存储器的通道数改变成所需的通道数,所需的通道数是根据所述多通道存储器中的多个通道的存储器的当前的带宽利用率和容量使用率被确定的,以及其中,带宽利用率表示所述多个通道的存储器的当前使用带宽与所述多个通道的存储器的最大总带宽的比值,容量使用率表示所述多个通道的存储器的当前使用容量与所述多个通道的存储器的总容量的比值;数据迁移模块,被配置成将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址,其中,同一数据在当前使用通道的存储器中所在的通道地址所映射到的物理地址与所述同一数据在所述所需通道数的存储器中所在的通道地址所映射到的物理地址是相同的。
根据本公开的第三方面,提供了一种存储介质,所述存储介质存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行如上面所述的任意方法。
根据本公开的第四方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,计算机可执行指令在被执行时实现如上面所述的任意方法。
在本公开要求保护的用于对多通道存储器进行控制的方法和装置中,能够根据多个通道的存储器的当前的带宽利用率和容量使用率来确定所需的通道数,并将当前使用的存储器的通道数改变成所需的通道数,从而实现根据实际需求对所使用的存储器通道的数量的灵活且动态的控制,使得在满足对存储器的带宽和容量需求的同时,使用最合适或者最少数量的存储器通道以便最大化的节省存储器带来的功耗。同时,在改变通道数的过程中,将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址(即,数据迁移和地址重映射),这使得不会造成数据丢失和影响计算机系统的正常使用(例如,不需要重启计算机系统,以及运行中的程序不会发生错误等)。
根据下文描述的实施例,本公开的这些和其它优点将变得清楚,并且参考下文描述的实施例来阐明本公开的这些和其它优点。
附图说明
现在将更详细并且参考附图来描述本公开的实施例,其中:
图1图示了相关技术中的多个存储器通道情形下的地址映射方式;
图2示出了相关技术中对多个DDR通道的存储器进行访问的示意性原理框架图;
图3图示了根据本公开的一个实施例的用于对多通道存储器进行控制的方法的示例性流程图;
图4图示了根据本公开的一个实施例的实现数据迁移和地址重映射的示例性方法的流程图;
图5A-5F图示了根据本公开的实施例的所需的通道数小于当前使用的存储器的通道数时的数据迁移的示意图;
图6图示了根据本公开的一个实施例的同一段物理地址与不同通道数的存储器的通道地址的映射关系示意图;
图7图示了根据本公开的一个实施例的实现数据迁移和地址重映射的示例性方法的流程图;
图8A-8F图示了根据本公开的实施例所需的通道数大于当前使用的存储器的通道数时的数据迁移的示意图;
图9图示了根据本公开的一个实施例的一种用于对多通道存储器进行控制的装置的示例性结构框图;
图10图示了根据本公开的实施例的对多个DDR通道进行访问的示意性原理框架图;
图11图示了一个示例系统,其包括代表可以实现本文描述的各种技术的一个或多个系统和/或设备的示例计算设备。
具体实施方式
下面的描述提供了本公开的各种实施例的特定细节,以便本领域的技术人员能够充分理解和实施本公开的各种实施例。应当理解,本公开的技术方案可以在没有这些细节中的一些细节的情况下被实施。在某些情况下,本公开并没有示出或详细描述一些熟知的结构或功能,以避免这些不必要的描述使对本公开的实施例的描述模糊不清。在本公开中使用的术语应当以其最宽泛的合理方式来理解,即使其是结合本公开的特定实施例被使用的。
在计算机系统中,存储器的每个存储单元通常都具有唯一的物理地址以便被计算机系统所识别。在存在多个存储器通道的情形下,存储单元的物理地址被映射到具体的通道地址,以便计算机系统可以寻址到具体存储单元,以读取其中的数据或者向其写入数据。图1图示了相关技术中的多个存储器通道情形下的地址映射方式。如图1所示,图1左侧示出了存储单元的物理地址(PA),右侧示出了8个存储器通道(CH0-CH7),存储单元的物理地址在多个存储器通道间以交织(或者交替)的方式映射到通道地址(例如,PA处的0-1f到CH0-7处的0-1f的一一对应的映射)。图1中的存储器可以例如是DDR存储器,每个存储单元(单元格或者小方块)的粒度可以是32字节、64字节、128字节、256字节或其他值,物理地址以交织(或者交替)的方式分配到不同的DDR通道。
图2示出了相关技术中对多个DDR通道的存储器进行访问的示意性原理框架图。如图2所示,多个主设备(例如,片内的CPU或者GPU等等)通过总线访问多个通道的DDR,这里例如是8个通道的DDR。 DDRC指的是DDR的控制器,其作用是将读写请求等转化为DDR的命令,产生信号的时序。PHY指的是DDR物理层接口单元,其功能是处理时序,是让DDR地址命令以及数据按照协议规定正确传输的通道。DDR指的是DDR颗粒或器件,就是板载的或片外的存储芯片。当多个主设备在访问一段连续的物理地址时,8个DDR通道并行工作,提供最大的带宽。
下面以DDR为例说明在这种地址映射方式下,低功耗的实现一般有如下几种方法。
方案1、降低存储器的工作频率。这种方案能够根据具体的应用场景动态地改变频率,动态地降低功耗。即使DDR工作在最低频率时,(例如,上面所述的PHY和DDR颗粒等)仍然处于工作模式,仍然存在较大的功耗。
方案2、使存储器进入低功耗模式。这种方案只能对DDR完全没有带宽需求(比如计算机睡眠,休眠等模式)时,让所有的DDR通道,包括上面所述的PHY和DDR颗粒,都进入低功耗模式。这时DDR的功耗消耗很低,但所有DDR通道都无法接收命令,如果需要接收命令,需要花费较长的退出时间。所以这种方案无法应用到对带宽的需求较小但持续不断的场景。
方案3、关闭存储器的时钟。这种方案与方案2类似,在DDR进入低功耗模式后,通过关闭DDR的时钟,进一步节省PHY和DDR 颗粒的功耗。其缺点仍然是无法在带宽需求量较小但持续不断的场景使用。
方案4、关闭存储器的电源。这种方案是完全关闭PHY和颗粒的电源,处于完全不耗电的模式。但在该模式下,DDR中缓存的数据会丢失,同时与方案2和3类似,所有的DDR通道的电源都将关闭,无法接收命令。一般仅休眠或关机情况下使用。
图3图示了根据本公开的一个实施例的用于对多通道存储器进行控制的方法300的示例性流程图。所述方法300例如在如图2所示的片内(片内系统)实施,并且包括如下步骤。
在步骤310,接收通道数改变指令,其中,所述通道数改变指令指示需要将当前使用的存储器的通道数改变成所需的通道数,所需的通道数是根据所述多通道存储器中的多个通道的存储器的当前的带宽利用率和容量使用率被确定的,以及其中,带宽利用率表示所述多个通道的存储器的当前使用带宽与所述多个通道的存储器的最大总带宽的比值,容量使用率表示所述多个通道的存储器的当前使用容量与所述多个通道的存储器的总容量的比值。当前使用的存储器的通道数可以大于或者小于所需的通道数。无论当前通道数是多少,只要不同于所需要的通道数,都需要进行当前通道数到所需通道数的改变。
这里所述的多个通道的存储器可以是多通道存储器中的全部通道的存储器,也可以是一部分通道的存储器,这里不做具体限定。例如,多通道存储器中共有16个通道的存储器,则这里的多个通道的存储器可以是8个通道的存储器或者16个通道存储器等等。发明人发现,将多个通道的通道数设置为8是有利的,能够极大提高对多通道存储器进行控制的便利性和可操作性。
在一些实施例中,所述多通道存储器中的多个通道的存储器的当前的带宽利用率和容量使用率通过如下方式被确定:将所述多通道存储器的通道划分为多个分组,每个分组中包括多个通道的存储器;针对每个相应的分组,确定相应分组中的多个通道的存储器的当前的带宽利用率和容量使用率。例如,可以将16个通道的存储器划分为两个分组,每个分组包括8个通道的存储器。然后针对每个分组,确定相应分组中8个通道的存储器的当前的带宽利用率和容量使用率,进而可以针对每个分组中的8个通道的存储器进行单独控制。在这种情形下,可选地,可以增加一级内存管理单元来实现对各个分组的管理。这能够简化对多通道存储器的控制和管理的复杂性。
在一些实施例中,所述通道数改变指令可以是从片外CPU或者片内CPU发出的。片外CPU或者片内CPU可以检测所述多通道存储器中的多个通道的存储器的当前的带宽利用率和容量使用率,然后根据当前的带宽利用率和容量使用率确定所需的通道数。这里可以以任何合适的来确定所需的通道数,并不是限制性的。如果确定当前使用的存储器的通道数与所需的通道数不同,则可以发出通道数改变指令以指示将当前使用的存储器的通道数改变成所需的通道数。这里所述的带宽利用率表示所述多个通道的存储器的当前使用带宽与所述多个通道的存储器的最大总带宽的比值,容量使用率表示所述多个通道的存储器的当前使用容量与所述多个通道的存储器的总容量的比值。
为了提高控制的可操作性,可以通过如下方式来确定所需的通道数。在一些实施例中,在所述多个通道的存储器的通道数等于时,确定使得所述当前的带宽利用率和容量使用率均小于1/时的k的最大值;然后,确定所述多个通道的通道数除以得到的商m,并将m作为所需的通道数,其中k为不小于零的整数,以及p和m为正整数。
作为示例,所述多个通道的存储器的通道数为8(即,),假设所述当前的带宽利用率和容量使用率为0.4,此时可以确定小于1/时的k的最大值为1(即,小于1/2),进而确定所述多个通道的通道数除以得到的商m为4。因此,此时所需的通道数为4。同理,可以确定,所述当前的带宽利用率和容量使用率小于1/时的k的最大值为2(即,小于1/4)时,所需的通道数为2;所述当前的带宽利用率和容量使用率小于1/时的k的最大值为3(即,小于1/8)时,所需的通道数为1。
在一些实施例中,在所述多个通道的存储器的通道数不等于时,确定使得所述当前的带宽利用率和容量使用率均小于1/时的k的最大值;然后,确定所述多个通道的通道数除以得到的商m,并将大于或等于m的最小整数n作为所需的通道数,其中k为不小于零的整数,p为正整数,以及m为正数。
作为示例,所述多个通道的存储器的通道数为7(其为奇数,且不等于),假设所述当前的带宽利用率和容量使用率为0.4,此时可以确定小于1/时的k的最大值为1(即,小于1/2),进而确定所述多个通道的通道数除以得到的商m为3.5。此时,大于或等于m的最小整数n为4,因此,所需的通道数为4。作为示例,所述多个通道的存储器的通道数为10(其为偶数,但不等于),假设所述当前的带宽利用率和容量使用率为0.4,此时可以确定小于1/时的k的最大值为1(即,小于1/2),进而确定所述多个通道的通道数除以得到的商m为5。此时,大于或等于m的最小整数n为5,因此,所需的通道数为5。
在步骤320,将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址,其中,同一数据在当前使用通道的存储器中所在的通道地址所映射到的物理地址与所述同一数据在所述所需通道数的存储器中所在的通道地址所映射到的物理地址是相同的。
改变通道数包括减少通道数或者增加通道数。作为减少通道数的示例,在确定所需的通道数是4的情况下,可以进行8个通道(当前通道数)到4个通道的转换。在确定所需的通道数是2的情况下,可以进行8个通道或者4个通道(当前通道数)到2个通道的转换。在确定所需的通道数是1的情况下,可以进行8个通道或者4个通道或者2个通道(当前通道数)到1个通道的转换。作为增加通道数的示例,在确定所需的通道数是2的情况下,可以进行1个通道(当前通道数)到2个通道的转换。在确定所需的通道数是4的情况下,可以进行1个通道或者2个通道(当前通道数)到4个通道的转换。在确定所需的通道数是8的情况下,可以进行1个通道或者2个通道或者4个通道(当前通道数)到8个通道的转换。
这里的转换包括将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址。而且,同一数据在当前使用通道的存储器中所在的通道地址所映射到的物理地址与所述同一数据在所述所需通道数的存储器中所在的通道地址所映射到的物理地址是相同的。这样,在计算机系统通过物理地址访问存储器中的数据的时候,相同的物理地址访问到的数据是相同的。
通过上面描述的用于对多通道存储器进行控制的方法,能够根据多个通道的存储器的当前的带宽利用率和容量使用率来确定所需的通道数,并将当前使用的存储器的通道数改变成所需的通道数,从而实现根据实际需求对所使用的存储器通道的数量的灵活且动态的控制,使得在满足对存储器的带宽和容量需求的同时,使用最合适或者最少数量的存储器通道以便最大化的节省存储器带来的功耗。同时,在改变通道数的过程中,将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址(即,数据迁移和地址重映射),这使得不会造成数据丢失和影响计算机系统的正常使用(例如,不需要重启计算机系统,以及运行中的程序不会发生错误等)。
图4图示了根据本公开的一个实施例的实现数据迁移和地址重映射的示例性方法400的流程图。如图4所示,所述方法400可以用于实施方法300中的步骤320,适用于所需的通道数小于当前使用的存储器的通道数的情形并且包括如下步骤。
在步骤410,将当前使用通道的存储器中的数据迁移到当前使用通道的第一部分通道的存储器中,其中,第一部分通道的通道数等于所需的通道数。当前使用通道中第一部分通道之外的通道为第二部分通道。
在所需的通道数小于当前使用的存储器的通道数的情况下,意味着需要减少使用的通道数,则将当前使用通道的存储器中的数据迁移到当前使用通道的第一部分通道的存储器中。这里,第一部分通道的通道数就是所需的通道数,当前使用通道中第一部分通道之外的通道称为第二部分通道。例如,当前使用的通道数为4个,例如CH0-CH3,所需的通道数为2,则可以将当前使用通道的存储器中的数据迁移到当前使用通道的第一部分通道的存储器(例如,CH0-CH1,当前这不是限制性的)。CH2-CH3为第二部分通道。
在一些实施例中,在将当前使用通道的存储器中的数据迁移到当前使用通道的第一部分通道的存储器中时,可以先将当前使用通道的第一部分通道的存储器中的数据迁移到所述当前使用通道中所述第二部分通道的存储器中的未被使用的通道地址上;然后将所述当前使用通道中所述第二部分通道的存储器中的数据迁移到当前使用通道的第一部分通道的存储器中。
图5A-5F图示了所需的通道数小于当前使用的存储器的通道数时的数据迁移的示意图。图5A示出了将当前使用通道(8个通道)的存储器中的数据迁移到当前使用通道的第一部分通道(4个通道)的存储器的情形,图5B示出了将当前使用通道(8个通道)的存储器中的数据迁移到当前使用通道的第一部分通道(2个通道)的存储器的情形,图5C示出了将当前使用通道(8个通道)的存储器中的数据迁移到当前使用通道的第一部分通道(1个通道)的存储器的情形,图5D示出了将当前使用通道(4个通道)的存储器中的数据迁移到当前使用通道的第一部分通道(2个通道)的存储器的情形,图5E示出了将当前使用通道(4个通道)的存储器中的数据迁移到当前使用通道的第一部分通道(1个通道)的存储器的情形,图5F示出了将当前使用通道(2个通道)的存储器中的数据迁移到当前使用通道的第一部分通道(2个通道)的存储器的情形。
以图5D为例,在将当前使用通道(4个通道,CH0-CH3)的存储器中的数据迁移到当前使用通道的第一部分通道(2个通道,CH0-CH1)的存储器中时,可以先将当前使用通道的第一部分通道(CH0-CH1)的存储器中的数据(如图5中稠密网格小方块所表示的)迁移到所述当前使用通道中所述第二部分通道(CH2-CH3)的存储器中的未被使用的通道地址上;然后将所述当前使用通道中所述第二部分通道(CH2-CH3)的存储器中的数据(包括稠密网格小方块所表示的数据和稀疏网格小方块所表示的数据两部分)迁移到当前使用通道的第一部分通道(CH0-CH1)的存储器中。其它图示出了类似的数据迁移,这里不再重复。
在一些实施例中,第一部分通道的通道数为至少两个,并且将当前使用通道的第一部分通道的存储器中的数据迁移到所述当前使用通道中所述第二部分通道的存储器中的未被使用的通道地址上,包括:将所述至少两个第一部分通道的存储器中的数据并行迁移到所述第二部分通道的存储器中的未被使用的通道地址上,其中所述数据被迁移到所述第二部分通道的存储器的通道数等于所述第一部分通道的通道数。以图5B为例,第一部分通道的通道数为2,则在将当前使用通道的第一部分通道(如图5B中的CH0和CH1)的存储器中的数据迁移到所述当前使用通道中所述第二部分通道的存储器中的未被使用的通道地址上时,将所述第一部分通道的存储器(CH0和CH1)中的数据并行迁移到所述第二部分通道(CH2-CH7)的存储器中的未被使用的通道地址(如图5B中的CH4和CH5通道的通道地址)上,其中所述数据被迁移到所述第二部分通道的存储器的通道数等于所述第一部分通道的通道数。以这种方式,能够实现多个存储器通道并行处理的目的,以减少数据迁移的时间。
由图5B可知,此过程迁移的数据量为(S/4),带宽2X,花费的时间为S/8X,其中S为存储器中的总数据量,X为一个通道的带宽。类似地,在图5A中,迁移的数据量为(S/2),带宽为4X,花费的时间为S/8X;以及在图5C中,迁移的数据量为(S/8),带宽为1X,花费的时间为S/8X。其它图中类似,这里不再赘述。
在一些实施例中,将所述当前使用通道中所述第二部分通道的存储器中的数据迁移到当前使用通道的第一部分通道的存储器中,包括:将所述第二部分通道的存储器中的数据迁移到所述第一部分通道的存储器中,使得同一数据在所述第一部分通道的存储器中所在的通道地址相对于被迁移的其它数据所在通道地址的次序与在所述当前使用通道的存储器中相同。仍以图5B为例,在将所述第二部分通道(CH2-CH7)的存储器中的数据迁移到第一部分通道的存储器(CH0和CH1)时,在将所述第二部分通道(CH2-CH7)的存储器中的数据迁移到所述第一部分通道(CH0和CH1)的存储器中的同时,使得同一数据在所述第一部分通道的存储器中所在的通道地址相对于被迁移的其它数据所在通道地址的次序与在所述当前使用通道的存储器中相同。话句话说,如果一个数据在所述当前使用通道的存储器中的通道地址(称为第一通道地址)在所有被迁移的数据所在的通道地址中排第2位,在该数据被迁移到第一部分通道的存储器后,即便其所在的通道地址已经改变,但新的通道地址(称为第二通道地址)仍然在被迁移的所有数据所在通道地址中排第2位。当然,此时第一通道地址和第二通道地址都被映射到同一物理地址。这实现了一种高效的数据迁移和地址映射方式。
由图5B可知,此过程迁移的数据量为S,带宽2X,花费的时间为S/2X。类似地,在图5A中,迁移的数据量为S,带宽为4X,花费的时间为S/4X;以及在图5C中,迁移的数据量为S,带宽为1X,花费的时间为S/1X。其它图中类似,这里不再赘述。
在步骤420,将所述当前使用通道的存储器中数据所在的通道地址所映射的物理地址重新映射到所述第一部分通道的存储器的通道地址,其中同一数据在当前使用通道的存储器中所在的通道地址所映射的物理地址与所述同一数据在所述第一部分通道的存储器中所在的通道地址所映射的物理地址是相同的。
图6图示了同一段物理地址与不同通道数的存储器的通道地址的映射关系示意图,其中同一数据(图6中小方块所示的)在不同通道数的存储器中所在的通道地址所映射的物理地址是相同的。例如,图6中粗线小方块3所表示的数据,虽然处于不同的通道中(因此具有不同的通道地址),但它们都被映射到相同的物理地址(细线小方块3所在的物理地址)。因此,例如在将8通道改变为4通道时,在将8通道存储器中的数据迁移到4通道存储器中的同时,需要将8通道存储器中的数据所在通道地址所映射的物理地址重新映射到4通道存储器的通道地址,使得同一数据在8通道存储器中所在的通道地址所映射的物理地址与所述同一数据在4通道存储器中所在的通道地址所映射的物理地址是相同的。
在步骤430,关闭所述当前使用通道中的所述第二部分通道。所述关闭所述当前使用通道中的所述第二部分通道可以包括将第二部分通道的存储器断电,当然这不是限制性的,也可以使第二部分通道的存储器降低工作频率或者进入低功耗模式等。
由于已经将当前使用通道的存储器中的数据迁移到第一部分通道的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述第一部分通道的存储器的通道地址,因此可以关闭所述当前使用通道中的所述第二部分通道,以便不影响计算机系统的正常使用的前提下最大化的节省存储器带来的功耗。
图7图示了根据本公开的一个实施例的实现数据迁移和地址重映射的示例性方法700的流程图。如图7所示,所述方法700可以用于实施方法300中的步骤320,适用于所需的通道数大于当前使用的存储器的通道数的情形并且包括如下步骤。
在步骤710,开启所述多个通道中当前使用通道之外的第三部分通道,使得所述当前使用通道和所述第三部分通道所组成的第四部分通道的通道数等于所需的通道数。
在所需的通道数大于当前使用的存储器的通道数的情况下,意味着需要增加使用的通道数,则需要额外开启所述多个通道中当前使用通道之外的第三部分通道。这里所述的开启包括对第三部分通道的存储器供电,当然这不是限制性的,也可以使第三部分通道的存储器提升工作频率或者进入正常功耗模式等。这里的第四部分通道的通道数就是所需的通道数。例如,当前使用的通道数为2个,例如CH0-CH1,所需的通道数为4,则可以开启所述多个通道中当前使用通道之外的第三部分通道(例如CH2-CH3),使得所述当前使用通道和所述第三部分通道所组成的第四部分通道(在该示例中为CH0-CH3)的通道数等于所需的通道数。
在步骤720,将当前使用通道的存储器中的数据迁移到第四部分通道的存储器中。以上述示例为例,将CH0-CH1通道的存储器中的数据迁移到CH0-CH3通道的存储器中。第四部分通道的通道数即为所需的通道数。
在一些实施例中,将当前使用通道的存储器中的数据迁移到第四部分通道的存储器中,包括:将当前使用通道的存储器中的数据迁移到所述第三部分通道的存储器中;以及将所述第三部分通道的存储器中的部分数据迁移到所述当前使用通道的存储器中,使得同一数据在所述第四部分通道的存储器中所在的通道地址相对于被迁移的其它数据所在通道地址的次序与在所述当前使用通道的存储器中相同。
图8A-8F图示了所需的通道数大于当前使用的存储器的通道数时的数据迁移的示意图。图8A示出了将当前使用通道(4个通道)的存储器中的数据迁移到第四部分通道(8个通道)的存储器的情形,图8B示出了将当前使用通道(2个通道)的存储器中的数据迁移到第四部分通道(8个通道)的存储器的情形,图8C示出了将当前使用通道(1个通道)的存储器中的数据迁移到第四部分通道(8个通道)的存储器的情形,图8D示出了将当前使用通道(2个通道)的存储器中的数据迁移到第四部分通道(4个通道)的存储器的情形,图8E示出了将当前使用通道(1个通道)的存储器中的数据迁移到第四部分通道(4个通道)的存储器的情形,图8F示出了将当前使用通道(1个通道)的存储器中的数据迁移到第四部分通道(2个通道)的存储器的情形。
以图8B为例,在将当前使用通道(2个通道,CH0-CH1)的存储器中的数据迁移到当前使用通道的第四部分通道(8个通道,CH0-CH7)的存储器中时,可以先将当前使用通道(CH0-CH1)的存储器中的数据迁移到所述第三部分通道(CH2-CH7)的存储器中;然后,将所述第三部分通道(CH2-CH7)的存储器中的部分数据(如图8B中的稠密网格小方块所表示的数据)迁移到所述当前使用通道的存储器中(CH0-CH1)。在迁移后,同一数据在所述第四部分通道的存储器中所在的通道地址相对于被迁移的其它数据所在通道地址的次序与在所述当前使用通道的存储器中相同。话句话说,如果一个数据在所述当前使用通道的存储器中的通道地址(称为第三通道地址)在所有被迁移的数据所在的通道地址中排第2位,在该数据被迁移到第四部分通道的存储器后,即便其所在的通道地址已经改变,但新的通道地址(称为第四通道地址)仍然在被迁移的所有数据所在通道地址中排第2位。如图8B中,小方块7所表示的数据在所述当前使用通道的存储器中的通道地址在所有被迁移的数据所在的通道地址中排第8位,则在迁移到第四部分通道的存储器后,虽然其所在的通道地址已经改变,但仍然在被迁移的所有数据所在通道地址中排第8位。其它图示出了类似的数据迁移,这里不再重复。
在步骤730,将当前使用通道的存储器中数据所在的通道地址所映射的物理地址重新映射到第四部分通道的存储器的通道地址,其中同一数据在第四部分通道的存储器中所在的通道地址所映射的物理地址与所述同一数据在所述当前使用通道的存储器中所在的通道地址所映射的物理地址是相同的。这同样实现了一种高效的数据迁移和地址映射方式。
同样可以参照图6所示,同一段物理地址与不同通道数的存储器的通道地址的映射关系示意图,其中同一数据(图6中小方块所示)在不同通道数的存储器中所在的通道地址所映射的物理地址是相同的。例如,图6中粗线小方块3所表示的数据,虽然处于不同的通道中(因此具有不同的通道地址),但它们都被映射到相同的物理地址(细线小方块3所在的物理地址)。因此,例如在将4通道改变为8通道时,在将4通道存储器中的数据迁移到8通道存储器中的同时,需要将4通道存储器中的数据所在通道地址所映射的物理地址重新映射到8通道存储器的通道地址,使得同一数据在4通道存储器中所在的通道地址所映射的物理地址与所述同一数据在8通道存储器中所在的通道地址所映射的物理地址是相同的。
在所需通道数大于当前使用的存储器的通道数的情况下,可以使用第四部分通道,将当前使用通道的存储器中的数据迁移到第四部分通道的存储器中,并且将当前使用通道的存储器中数据所在的通道地址所映射的物理地址重新映射到第四部分通道的存储器的通道地址,这增加了存储器通道使用的灵活性,从而实现根据实际需求对所使用的存储器通道的数量的灵活且动态的控制,使得在满足对存储器的带宽和容量需求的同时,使用最合适或者最少数量的存储器通道以便最大化的节省存储器带来的功耗。同时,在改变通道数的过程中,不会影响计算机系统的正常使用(例如,不需要重启计算机系统,以及运行中的程序不会发生错误等)。
在一些可选的实施例中,所述方法还包括:根据时隙配置信息,确定时隙控制模式,所述时隙控制模式用于指示所述第一部分通道的存储器的每个控制周期中的工作模式和休眠模式的切换模式;根据所述时隙控制模式控制所述第一部分通道的存储器,使得所述第一部分通道的存储器在休眠模式下进入低功耗状态,以及在工作模式下处理命令缓冲器在第一部分通道的存储器的休眠模式下缓存的针对第一部分通道的存储器的访问请求。
时隙配置信息可以包括用于确定时隙控制模式的各类配置信息,例如,包括休眠时隙个数、工作时隙个数、以及时隙单位中的至少一个。例如,时隙配置信息可以包括休眠时隙个数、工作时隙个数、以及时隙单位,且休眠时隙个数、工作时隙个数、以及时隙单位分别被设置为固定值。休眠时隙个数表示休眠时隙的个数,工作时隙个数表示工作时隙的个数,时隙单位是一个休眠时隙或工作时隙的时长单位。低功耗状态可以是DDR颗粒(或者DDR器件)与DDR PHY(DDR物理层接口单元)一起进入低功耗状态。
根据该时隙配置信息,确定时隙控制模式可以为:一个控制周期包括一次休眠模式和一次工作模式,在工作模式下对第一部分通道的存储器执行刷新操作并且处理针对第一部分通道的存储器的访问请求。第一部分通道的存储器的每个控制周期中的工作模式和休眠模式的切换模式可以定义出工作模式和休眠模式的进入和退出条件。在一些可选的实施例中,所述方法还包括:在工作时隙期间向第一部分通道的存储器发送刷新指令,以指示第一部分通道的存储器执行刷新操作。
示例性地,一个控制周期包括的时隙个数为休眠时隙个数以及工作时隙个数之和,每个时隙的时长单位为时隙单位,第一部分通道的存储器的每个控制周期中的工作模式的时长为工作时隙个数与时隙单位的乘积,休眠模式时长为休眠时隙个数与时隙单位的乘积。
基于该时隙控制模式,可以控制所述第一部分通道的存储器交替处于工作模式和休眠模式,其中,所述第一部分通道的存储器在休眠模式下进入低功耗状态,此时发送至第一部分通道的存储器的访问请求可以缓存在对应的处理命令缓冲器中,并在第一部分通道的存储器进入工作模式的情况下,控制第一部分通道的存储器处理命令缓冲器在第一部分通道的存储器的休眠模式下缓存的针对第一部分通道的存储器的访问请求。
在一些可选的实施例中,响应于单位时间段内第一部分通道的存储器的访问请求的数量大于第一阈值、相邻单位时间段中的访问请求的数量的变化程度小于第二阈值并且访问请求所需的带宽小于第一部分通道的存储器的总带宽,可以获取时隙配置信息,以确定时隙控制模式,并基于时隙控制模式控制所述第一部分通道的存储器,本公开对根据时隙配置信息,确定时隙控制模式,根据时隙控制模式控制所述第一部分通道的存储器的适用条件不做具体限制。
通过这种方式,可以以较高的控制灵活度进一步降低第一部分通道的存储器的功耗。
在一些可选的实施例中,所述第一部分通道的存储器包括多个通道,所述方法还包括:获取目标存储器的工作模式,其中,所述目标存储器为所述第一部分通道的存储器中的任意一个,所述工作模式包括同步模式和顺序模式中的一个,所述同步模式指示目标存储器与第一部分通道的存储器中其它通道的存储器同步进入工作模式和休眠模式,顺序模式指示所述目标存储器与第一部分通道的存储器中其它通道的存储器按指定顺序进入工作模式和休眠模式。其中,所述根据所述时隙控制模式控制所述第一部分通道的存储器,包括:根据所述时隙控制模式和工作模式控制所述目标存储器,使得所述目标存储器在休眠模式下进入低功耗状态,以及在工作模式下处理命令缓冲器在目标存储器的休眠模式下缓存的针对目标存储器的访问请求。
示例性地,在所述第一部分通道的存储器包括多个通道的情况下,还可以分别控制每个通道的工作模式,并结合时隙控制模式和工作模式控制所述目标存储器。
通过这种方式,可以以较高的控制灵活度、根据需要进一步降低第一部分通道的存储器的功耗,例如,第一部分通道的存储器的所有的通道同时进入工作模式和休眠模式,可以减少系统延时,适合延时敏感的场景使用。第一部分通道的存储器的所有的通道依次或顺序进入工作模式,可以降低最大功耗,适合功耗敏感的场景使用。
图9图示了根据本公开的一个实施例的一种用于对多通道存储器进行控制的装置900的示例性结构框图。如图9所示,所述用于对多通道存储器进行控制的装置900包括指令接收模块910、数据迁移模块920。
所述指令接收模块910被配置成成接收通道数改变指令,其中,所述通道数改变指令指示将当前使用的存储器的通道数改变成所需的通道数,所需的通道数是根据所述多通道存储器中的多个通道的存储器的当前的带宽利用率和容量使用率被确定的,以及其中,带宽利用率表示所述多个通道的存储器的当前使用带宽与所述多个通道的存储器的最大总带宽的比值,容量使用率表示所述多个通道的存储器的当前使用容量与所述多个通道的存储器的总容量的比值。
数据迁移模块920被配置成将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址,其中,同一数据在当前使用通道的存储器中所在的通道地址所映射到的物理地址与所述同一数据在所述所需通道数的存储器中所在的通道地址所映射到的物理地址是相同的。
应当指出,这里所述的模块可以是集成电路或片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅中的其它实现或组件,这里并不是限制性的。这里所述每个模块的功能性可以被实施在单个模块中、实施在多个模块中或作为其它模块的一部分被实施。例如,被说明成由单个模块执行的功能性可以由多个不同的模块来执行。因此,对特定模块的引用仅被视为对用于提供所描述的功能性的适当模块的引用,而不是表明严格的逻辑或物理结构或组织。因此,上面特征所述限定的各种功能可以被实施在单个模块中,或者可以在物理上和功能上被分布在不同的模块或电路之间。例如,数据迁移模块920可以被实施为两个模块,第一模块可以用来将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,第二模块可以用来将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址。
图10图示了根据本公开的实施例的对多个DDR通道进行访问的示意性原理框架图。如图10所示,多个主设备(例如,片内的CPU或者GPU等等)通过总线访问多个通道的DDR,这里例如是8个通道的DDR。同样地, DDRC指的是DDR的控制器,其作用是将读写请求等转化为DDR的命令,产生信号的时序。PHY指的是DDR物理层接口单元,其功能是处理时序,是让DDR地址命令以及数据按照协议规定正确传输的通道。DDR指的是DDR颗粒或器件,就是板载的或片外的存储芯片。
如图10所示,在本实施例,存在Mem Ctrl模块、Mem Mig模块以及Adr Mig模块。MemCtrl模块例如可以是计算机程序模块,其可以处于驱动软件(SW)中并被主机CPU执行(当然,也可以被片内系统的CPU执行)以用于所述多通道DDR中的多个通道的DDR的当前的带宽利用率和容量使用率,并据此确定所需的通道数。当所需的通道数与当前使用的存储器的通道数不同时,向片内系统(例如,芯片)发出通道数改变指令。当然,也可以直接根据上级软件的设置发出通道数改变指令,以指定所需的通道数。Mem Mig模块可以是处于片内系统中的硬件单元或者硬件逻辑,其可以在片内系统接收到通道数改变指令(可以由Mem Mig模块接收,或者其它的额外的模块接收,这不是限定性的)后将当前使用通道的DDR中的数据迁移到所需通道数的DDR中。Adr Mig模块同样可以是处于片内系统中的硬件单元或者硬件逻辑,其可以将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址。从图10可见,Mem Mig模块以及Adr Mig模块执行的功能与数据迁移模块920执行的功能是基本相同的。
图11图示了示例系统1100,其包括代表可以实现本文描述的各种技术的一个或多个系统和/或设备的示例计算设备1110。计算设备1110可以是例如服务提供商的服务器、与服务器相关联的设备、片上系统、和/或任何其它合适的计算设备或计算系统。
如图示的示例计算设备1110包括彼此通信耦合的处理系统1111、一个或多个计算机可读介质1112以及一个或多个I/O接口1113。尽管未示出,但是计算设备1110还可以包括系统总线或其他数据和命令传送系统,其将各种组件彼此耦合。系统总线可以包括不同总线结构的任何一个或组合,所述总线结构诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任何一种的处理器或局部总线。还构思了各种其他示例,诸如控制和数据线。
处理系统1111代表使用硬件执行一个或多个操作的功能。因此,处理系统1111被图示为包括可被配置为处理器、功能块等的硬件元件1114。这可以包括在硬件中实现为专用集成电路或使用一个或多个半导体形成的其它逻辑器件。硬件元件1114不受其形成的材料或其中采用的处理机构的限制。例如,处理器可以由(多个)半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质1112被图示为包括存储器/存储装置1115。存储器/存储装置1115表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置1115可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储装置1115可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。计算机可读介质1112可以以下面进一步描述的各种其他方式进行配置。
一个或多个I/O接口1113代表允许用户使用各种输入设备向计算设备1110输入命令和信息并且可选地还允许使用各种输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置为检测物理触摸的容性或其他传感器)、相机(例如,可以采用可见或不可见的波长(诸如红外频率)将不涉及触摸的运动检测为手势)等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备1110可以以下面进一步描述的各种方式进行配置以支持用户交互。
计算设备1110还包括应用逻辑1116。应用逻辑1116可以例如是用于对多通道存储器进行控制的装置900的软件实例或固件,并且与计算设备1110中的其他元件相组合地实现本文描述的技术。
本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。一般地,这些模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等。本文所使用的术语“模块”,“功能”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的特征是与平台无关的,意味着这些技术可以在具有各种处理器的各种计算平台上实现。
所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或者跨某种形式的计算机可读介质传输。计算机可读介质可以包括可由计算设备1110访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
与单纯的信号传输、载波或信号本身相反,“计算机可读存储介质”是指能够持久存储信息的介质和/或设备,和/或有形的存储装置。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移动和不可移动介质和/或以适用于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据)的方法或技术实现的存储设备之类的硬件。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储装置、硬盘、盒式磁带、磁带,磁盘存储装置或其他磁存储设备,或其他存储设备、有形介质或适于存储期望信息并可以由计算机访问的制品。
“计算机可读信号介质”是指被配置为诸如经由网络将指令发送到计算设备1110的硬件的信号承载介质。信号介质典型地可以将计算机可读指令、数据结构、程序模块或其他数据体现在诸如载波、数据信号或其它传输机制的调制数据信号中。信号介质还包括任何信息传递介质。术语“调制数据信号”是指这样的信号,该信号的特征中的一个或多个被设置或改变,从而将信息编码到该信号中。作为示例而非限制,通信介质包括诸如有线网络或直接连线的有线介质以及诸如声、RF、红外和其它无线介质的无线介质。
如前所述,硬件元件1114和计算机可读介质1112代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其在一些实施例中可以用于实现本文描述的技术的至少一些方面。硬件元件可以包括集成电路或片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅中的其它实现或其他硬件设备的组件。在这种上下文中,硬件元件可以作为执行由硬件元件所体现的指令、模块和/或逻辑所定义的程序任务的处理设备,以及用于存储用于执行的指令的硬件设备,例如,先前描述的计算机可读存储介质。
前述的组合也可以用于实现本文所述的各种技术和模块。因此,可以将软件、硬件或程序模块和其它程序模块实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件1114体现的一个或多个指令和/或逻辑。计算设备1110可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,例如通过使用处理系统的计算机可读存储介质和/或硬件元件1114,可以至少部分地以硬件来实现将模块实现为可由计算设备1110作为软件执行的模块。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备1110和/或处理系统1111)可执行/可操作以实现本文所述的技术、模块和示例。
在各种实施方式中,计算设备1110可以采用各种不同的配置。例如,计算设备1110可以被实现为包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等的计算机类设备。计算设备1110还可以被实现为包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等移动设备的移动装置类设备。计算设备1110还可以实现为电视类设备,其包括具有或连接到休闲观看环境中的一般地较大屏幕的设备。这些设备包括电视、机顶盒、游戏机等。
本文描述的技术可以由计算设备1110的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。功能还可以通过使用分布式系统、诸如通过如下所述的平台1122而在“云”1120上全部或部分地实现。
云1120包括和/或代表用于资源1124的平台1122。平台1122抽象云1120的硬件(例如,服务器)和软件资源的底层功能。资源1124可以包括在远离计算设备1110的服务器上执行计算机处理时可以使用的应用和/或数据。资源1124还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。
平台1122可以抽象资源和功能以将计算设备1110与其他计算设备连接。平台1122还可以用于抽象资源的分级以提供遇到的对于经由平台1122实现的资源1124的需求的相应水平的分级。因此,在互连设备实施例中,本文描述的功能的实现可以分布在整个系统1100内。例如,功能可以部分地在计算设备1110上以及通过抽象云1120的功能的平台1122来实现。
本公开提供了一种存储介质,其上存储有计算机指令,计算机指令在被执行时实现上述的任一方法。
本公开提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机存储介质中。处理器从计算机存储介质读取该计算机指令,执行该计算机指令,以便执行上述各种可选实现方式中提供的任一方法。
应当理解,为清楚起见,参考不同的功能单元对本公开的实施例进行了描述。然而,将明显的是,在不偏离本公开的情况下,每个功能单元的功能性可以被实施在单个单元中、实施在多个单元中或作为其它功能单元的一部分被实施。例如,被说明成由单个单元执行的功能性可以由多个不同的单元来执行。因此,对特定功能单元的参考仅被视为对用于提供所描述的功能性的适当单元的参考,而不是表明严格的逻辑或物理结构或组织。因此,本公开可以被实施在单个单元中,或者可以在物理上和功能上被分布在不同的单元和电路之间。
将理解的是,尽管第一、第二、第三等术语在本文中可以用来描述各种设备、元件、部件或部分,但是这些设备、元件、部件或部分不应当由这些术语限制。这些术语仅用来将一个设备、元件、部件或部分与另一个设备、元件、部件或部分相区分。
尽管已经结合一些实施例描述了本公开,但是其不旨在被限于在本文中所阐述的特定形式。相反,本公开的范围仅由所附权利要求来限制。附加地,尽管单独的特征可以被包括在不同的权利要求中,但是这些可以可能地被有利地组合,并且包括在不同权利要求中不暗示特征的组合不是可行的和/或有利的。特征在权利要求中的次序不暗示特征必须以其工作的任何特定次序。此外,在权利要求中,词“包括”不排除其它元件,并且术语“一”或“一个”不排除多个。权利要求中的附图标记仅作为明确的例子被提供,不应该被解释为以任何方式限制权利要求的范围。
Claims (13)
1.一种用于对多通道存储器进行控制的方法,其特征在于,所述方法包括:
接收通道数改变指令,其中,所述通道数改变指令指示将当前使用的存储器的通道数改变成所需的通道数,所需的通道数是根据所述多通道存储器中的多个通道的存储器的当前的带宽利用率和容量使用率被确定的,以及其中,带宽利用率表示所述多个通道的存储器的当前使用带宽与所述多个通道的存储器的最大总带宽的比值,容量使用率表示所述多个通道的存储器的当前使用容量与所述多个通道的存储器的总容量的比值;
将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址,其中,同一数据在当前使用通道的存储器中所在的通道地址所映射到的物理地址与所述同一数据在所述所需通道数的存储器中所在的通道地址所映射到的物理地址是相同的;
其中,在所述多个通道的存储器的通道数等于2p时,所需的通道数通过如下方式被确定:
确定使得所述当前的带宽利用率和容量使用率均小于1/2k时的k的最大值;
确定所述多个通道的通道数除以2k得到的商m,并将m作为所需的通道数,其中k为不小于零的整数,以及p和m为正整数。
2.根据权利要求1所述的方法,其特征在于,所述多通道存储器中的多个通道的存储器的当前的带宽利用率和容量使用率通过如下方式被确定:
将所述多通道存储器的通道划分为多个分组,每个分组中包括多个通道的存储器;
针对每个相应的分组,确定相应分组中的多个通道的存储器的当前的带宽利用率和容量使用率。
3.根据权利要求1所述的方法,其特征在于,在所述多个通道的存储器的通道数不等于2p时,所需的通道数通过如下方式被确定:
确定使得所述当前的带宽利用率和容量使用率均小于1/2k时的k的最大值;
确定所述多个通道的通道数除以2k得到的商m,并将大于或等于m的最小整数n作为所需的通道数,其中k为不小于零的整数,p为正整数,以及m为正数。
4.根据权利要求1所述的方法,其特征在于,将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址,包括:
响应于所需的通道数小于当前使用的存储器的通道数,则:
将当前使用通道的存储器中的数据迁移到当前使用通道的第一部分通道的存储器中,其中,第一部分通道的通道数等于所需的通道数,并且当前使用通道中第一部分通道之外的通道为第二部分通道;
将所述当前使用通道的存储器中数据所在的通道地址所映射的物理地址重新映射到所述第一部分通道的存储器的通道地址,其中同一数据在当前使用通道的存储器中所在的通道地址所映射的物理地址与所述同一数据在所述第一部分通道的存储器中所在的通道地址所映射的物理地址是相同的;
关闭所述当前使用通道中的所述第二部分通道。
5.根据权利要求4所述的方法,其特征在于,将当前使用通道的存储器中的数据迁移到当前使用通道的第一部分通道的存储器中,包括:
将当前使用通道的第一部分通道的存储器中的数据迁移到所述当前使用通道中所述第二部分通道的存储器中的未被使用的通道地址上;
将所述当前使用通道中所述第二部分通道的存储器中的数据迁移到当前使用通道的第一部分通道的存储器中。
6.根据权利要求5所述的方法,其特征在于,第一部分通道的通道数为至少两个,并且其中,将当前使用通道的第一部分通道的存储器中的数据迁移到所述当前使用通道中所述第二部分通道的存储器中的未被使用的通道地址上,包括:
将所述至少两个第一部分通道的存储器中的数据并行迁移到所述第二部分通道的存储器中的未被使用的通道地址上,其中所述数据被迁移到所述第二部分通道的存储器的通道数等于所述第一部分通道的通道数。
7.根据权利要求5所述的方法,其特征在于,将所述当前使用通道中所述第二部分通道的存储器中的数据迁移到当前使用通道的第一部分通道的存储器中,包括:
将所述第二部分通道的存储器中的数据迁移到所述第一部分通道的存储器中,使得同一数据在所述第一部分通道的存储器中所在的通道地址相对于被迁移的其它数据所在通道地址的次序与在所述当前使用通道的存储器中相同。
8.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据时隙配置信息,确定时隙控制模式,所述时隙控制模式用于指示所述第一部分通道的存储器的每个控制周期中的工作模式和休眠模式的切换模式;
根据所述时隙控制模式控制所述第一部分通道的存储器,使得所述第一部分通道的存储器在休眠模式下进入低功耗状态,以及在工作模式下处理命令缓冲器在第一部分通道的存储器的休眠模式下缓存的针对第一部分通道的存储器的访问请求。
9.根据权利要求8所述的方法,其特征在于,所述第一部分通道的存储器包括多个通道,所述方法还包括:
获取目标存储器的工作模式,其中,所述目标存储器为所述第一部分通道的存储器中的任意一个,所述工作模式包括同步模式和顺序模式中的一个,所述同步模式指示目标存储器与第一部分通道的存储器中其它通道的存储器同步进入工作模式和休眠模式,顺序模式指示所述目标存储器与第一部分通道的存储器中其它通道的存储器按指定顺序进入工作模式和休眠模式;
其中,所述根据所述时隙控制模式控制所述第一部分通道的存储器,包括:
根据所述时隙控制模式和工作模式控制所述目标存储器,使得所述目标存储器在休眠模式下进入低功耗状态,以及在工作模式下处理命令缓冲器在目标存储器的休眠模式下缓存的针对目标存储器的访问请求。
10.根据权利要求1所述的方法,其特征在于,将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址,包括:
响应于所需的通道数大于当前使用的存储器的通道数,则:
开启所述多个通道中当前使用通道之外的第三部分通道,使得所述当前使用通道和所述第三部分通道所组成的第四部分通道的通道数等于所需的通道数;
将当前使用通道的存储器中的数据迁移到第四部分通道的存储器中;
将当前使用通道的存储器中数据所在的通道地址所映射的物理地址重新映射到第四部分通道的存储器的通道地址,其中同一数据在第四部分通道的存储器中所在的通道地址所映射的物理地址与所述同一数据在所述当前使用通道的存储器中所在的通道地址所映射的物理地址是相同的。
11.根据权利要求10所述的方法,其特征在于,将当前使用通道的存储器中的数据迁移到第四部分通道的存储器中,包括:
将当前使用通道的存储器中的数据迁移到所述第三部分通道的存储器中;
将所述第三部分通道的存储器中的部分数据迁移到所述当前使用通道的存储器中,使得同一数据在所述第四部分通道的存储器中所在的通道地址相对于被迁移的其它数据所在通道地址的次序与在所述当前使用通道的存储器中相同。
12.一种用于对多通道存储器进行控制的装置,其特征在于,所述装置包括:
指令接收模块,被配置成接收通道数改变指令,其中,所述通道数改变指令指示将当前使用的存储器的通道数改变成所需的通道数,所需的通道数是根据所述多通道存储器中的多个通道的存储器的当前的带宽利用率和容量使用率被确定的,以及其中,带宽利用率表示所述多个通道的存储器的当前使用带宽与所述多个通道的存储器的最大总带宽的比值,容量使用率表示所述多个通道的存储器的当前使用容量与所述多个通道的存储器的总容量的比值;
数据迁移模块,被配置成将当前使用通道的存储器中的数据迁移到所需通道数的存储器中,并将所述当前使用通道的存储器中数据所在通道地址所映射到的物理地址重新映射到所述所需通道数的存储器的通道地址,其中,同一数据在当前使用通道的存储器中所在的通道地址所映射到的物理地址与所述同一数据在所述所需通道数的存储器中所在的通道地址所映射到的物理地址是相同的;
其中,在所述多个通道的存储器的通道数等于2p时,所需的通道数通过如下方式被确定:
确定使得所述当前的带宽利用率和容量使用率均小于1/2k时的k的最大值;
确定所述多个通道的通道数除以2k得到的商m,并将m作为所需的通道数,其中k为不小于零的整数,以及p和m为正整数。
13.一种存储介质,其特征在于,所述存储介质存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行如权利要求1-11中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211713987.2A CN115687196B (zh) | 2022-12-30 | 2022-12-30 | 用于对多通道存储器进行控制的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211713987.2A CN115687196B (zh) | 2022-12-30 | 2022-12-30 | 用于对多通道存储器进行控制的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115687196A CN115687196A (zh) | 2023-02-03 |
CN115687196B true CN115687196B (zh) | 2023-04-14 |
Family
ID=85055491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211713987.2A Active CN115687196B (zh) | 2022-12-30 | 2022-12-30 | 用于对多通道存储器进行控制的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115687196B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105531682A (zh) * | 2014-08-15 | 2016-04-27 | 联发科技股份有限公司 | 管理多通道存储设备以具有改进的通道切换响应时间的方法及相关的存储控制系统 |
US10162522B1 (en) * | 2016-09-30 | 2018-12-25 | Cadence Design Systems, Inc. | Architecture of single channel memory controller to support high bandwidth memory of pseudo channel mode or legacy mode |
CN109600315B (zh) * | 2017-09-30 | 2022-06-14 | 阿里巴巴集团控股有限公司 | 数据通道的流控方法和调整方法 |
CN112463665B (zh) * | 2020-10-30 | 2022-07-26 | 中国船舶重工集团公司第七0九研究所 | 一种用于多通道显存交织模式的切换方法及装置 |
-
2022
- 2022-12-30 CN CN202211713987.2A patent/CN115687196B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115687196A (zh) | 2023-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797180B2 (en) | Apparatus and method to provide cache move with non-volatile mass memory system | |
US7454639B2 (en) | Various apparatuses and methods for reduced power states in system memory | |
US20170162235A1 (en) | System and method for memory management using dynamic partial channel interleaving | |
KR101459866B1 (ko) | 온 더 플라이 메모리 컨트롤러 맵핑 | |
EP2657846A1 (en) | Managing operational state data in memory module | |
US11073896B2 (en) | Storage device and a power control method for storage device | |
US10878880B2 (en) | Selective volatile memory refresh via memory-side data valid indication | |
EP3069345B1 (en) | System and method for reducing memory i/o power via data masking | |
US11776614B2 (en) | Memory system, data processing system and method of operating the same | |
WO2016160163A1 (en) | Mechanism to adapt garbage collection resource allocation in a solid state drive | |
US20200293198A1 (en) | Memory system | |
US8484418B2 (en) | Methods and apparatuses for idle-prioritized memory ranks | |
US10303241B2 (en) | System and method for fine-grained power control management in a high capacity computer cluster | |
CN115687196B (zh) | 用于对多通道存储器进行控制的方法和装置 | |
US20220171551A1 (en) | Available memory optimization to manage multiple memory channels | |
US20190243439A1 (en) | System and method of controlling power down mode of memory device | |
US20240028223A1 (en) | Memory system | |
US10642337B2 (en) | Active power management in a computing device subsystem based on micro-idle duration | |
KR20240025293A (ko) | 메모리 장치 | |
CN116529821A (zh) | 用于刷新便携式计算设备的存储器的方法和系统 | |
CN117762835A (zh) | 存储器、存储控制装置、片上系统、芯片及终端 | |
CN115686383A (zh) | 存储器的控制方法和控制器以及芯片系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |