CN104133789A - 用于调整带宽的设备和方法 - Google Patents
用于调整带宽的设备和方法 Download PDFInfo
- Publication number
- CN104133789A CN104133789A CN201410181509.0A CN201410181509A CN104133789A CN 104133789 A CN104133789 A CN 104133789A CN 201410181509 A CN201410181509 A CN 201410181509A CN 104133789 A CN104133789 A CN 104133789A
- Authority
- CN
- China
- Prior art keywords
- bandwidth
- processor
- dynamic context
- response
- collecting
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Power Sources (AREA)
- Memory System (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种用于调整带宽的设备和方法。提供了一种用于调整带宽的方法、带宽调节器和设备。用于调整带宽的方法包括:确定处理器的动态上下文;基于确定的动态上下文,调节处理器和存储器之间的带宽。
Description
本申请要求于2013年11月7日提交到韩国知识产权局的第10-2013-0134908号韩国专利申请的权益以及于2013年4月30提交到美国专利商标局的第61/817,420号美国临时专利申请的权益,其中,为了所有目的这两个专利申请的整个公开通过引用合并于此。
技术领域
以下描述涉及一种用于调整带宽的设备和方法,例如涉及这样一种用于调整带宽的计算设备、带宽调节器和方法,其中,该计算设备、带宽调节器和方法基于处理器的动态上下文,通过使在外部存储器中设置的多个输入和输出端子中的一个或更多个激活或失活,来动态地调节外部存储器的带宽。
背景技术
计算设备可包括一个或更多个处理器以及一个或更多个外部存储器,其中,从一个或更多个外部存储器获得数据或者将数据从处理器发送到一个或更多个外部存储器。为了执行需要处理大量数据的应用,除了处理器之外,还需要外部存储器。例如,包括图像处理、音频处理、三维(3D)图形处理等的应用的执行可能会需要至外部存储器(诸如耦接到处理器的片外存储器(off-chip memory))的数据传输以及来自外部存储器的数据传输。
然而,片外存储器带宽容量可能受到各种因素的限制。如果提供的片外存储器带宽不能维持应用需要的数据传输速率,则处理器的性能可能基于可用带宽而下降。此外,由这种计算设备使用的外部存储器的带宽的增加造成输入和输出存储器功率增加,并且造成计算设备的功耗增加。
发明内容
提供本发明内容来介绍简化形式的概念的选择,以下在具体实施方式中对所述简化形式的概念的选择进行进一步描述。此发明内容不意于标识所要求保护的主题内容的关键特征或必要特征,也不意于用作对确定所要求保护的主题内容的范围的帮助。
在一个总体方面,一种用于调整带宽的方法包括:收集与处理器的动态上下文相应的信息;基于收集的信息来确定处理器的动态上下文;通过基于确定的动态上下文使多个输入和输出端子中的至少一个端子激活或失活来动态地调节带宽。
动态地调节带宽可包括:响应于根据动态上下文确定扩展带宽,使所述多个输入和输出端子中的至少一个失活的端子激活。
动态地调节带宽可包括:响应于根据动态上下文确定减小带宽,使所述多个输入和输出端子中的至少一个激活的端子失活。
收集的信息可以是缓存缺失率。
动态地调节带宽可包括:将收集的缓存缺失率与预定阈值进行比较,并且响应于收集的缓存缺失率大于预定阈值,确定扩展带宽。
动态地调节带宽可包括:将收集的缓存缺失率与预定阈值进行比较,并且响应于收集的缓存缺失率小于预定阈值,确定减小带宽。
收集的信息可以是由处理器处理的每循环指令的数量。
动态地调节带宽可包括:将收集的每循环指令与预定阈值进行比较,并且响应于收集的每循环指令的数量小于预定阈值,确定扩展带宽。
动态地调节带宽可包括:将收集的每循环指令与预定阈值进行比较,并且响应于收集的每循环指令的数量大于预定阈值,确定减小带宽。
该方法的总体方面可还包括:在动态地调节带宽之后,响应于处理器的动态上下文没有响应调节的带宽,将调节的带宽返回到默认带宽。
返回可包括:基于与在带宽被调节之后收集的处理器的动态上下文相应的信息,确定动态上下文的响应性(responsiveness)。
该方法的总体方面可还包括:在将带宽动态地调节以达到最大级别并且确定由于动态调节没有造成动态上下文的改进之后,将调节的带宽返回到默认带宽。
在另一总体方面,一种带宽调节器包括:信息收集器,被配置为收集与处理器的动态上下文相应的信息;端口开关,被配置为通过基于收集的信息确定处理器的动态上下文,通过使多个输入和输出端子中的至少一个端子激活或失活,来动态地调节带宽。
响应于根据动态上下文确定扩展带宽,端口开关可被配置为使所述多个输入和输出端子中的至少一个失活的端子激活。
响应于根据动态上下文确定减小带宽,端口开关可被配置为使所述多个输入和输出端子中的至少一个激活的端子失活。
收集的信息可以是缓存缺失率。
在将收集的缓存缺失率与预定阈值进行比较之后,响应于收集的缓存缺失率大于预定阈值,端口开关可确定扩展带宽。
在将收集的缓存缺失率与预定阈值进行比较之后,响应于收集的缓存缺失率小于预定阈值,端口开关可确定减小带宽。
收集的信息可以是由处理器处理的每循环指令的数量。
在将收集的每循环指令与预定阈值进行比较之后,响应于收集的每循环指令的数量小于预定阈值,端口开关可确定扩展带宽。
在将收集的每循环指令与预定阈值进行比较之后,响应于收集的每循环指令的数量大于预定阈值,端口开关可确定减小带宽。
该调节器的总体方面可还包括:带宽返回器,被配置为在带宽被动态地调节之后,响应于处理器的动态上下文没有响应调节的带宽,将调节的带宽返回到默认带宽。
带宽返回器可被配置为:基于与在带宽被调节之后收集的处理器的动态上下文相应的信息,确定动态上下文的响应性。
在将带宽动态地调节以达到最大级别并且确定由于动态调节没有造成动态上下文的改进之后,带宽调节器可被配置为将调节的带宽返回到默认带宽。
在另一总体方面,一种用于调整带宽的方法包括:确定处理器的动态上下文;基于动态上下文,调节处理器和存储器之间的带宽,而无需改变电压或频率。
调节可包括:为了基于动态上下文扩展带宽,使多个输入和输出端子中的至少一个失活的端子激活。
调节可包括:为了基于动态上下文减小带宽,使多个输入和输出端子中的至少一个激活的端子失活。
可基于缓存缺失率确定动态上下文。
可基于由处理器处理的每循环指令的数量来确定动态上下文。
该方法的总体方面可还包括:在调节带宽之后,响应于处理器的动态上下文没有响应调节的带宽,将调节的带宽返回到默认带宽。
返回可包括:基于在带宽被调节之后确定的动态上下文来确定动态上下文的响应性。
在另一总体方面,一种设备包括:端口开关,被配置为通过基于处理器的动态上下文使多个输入和输出端子中的至少一个端子激活或失活,来动态地调节处理器和存储器之间的带宽。
该设备的总体方面可还包括:信息收集器,被配置为收集用于确定处理器的动态上下文的信息。
该设备的总体方面可还包括:带宽返回器,被配置为响应于确定动态上下文没有响应由端口开关进行的带宽的调节,将调节的带宽返回到默认带宽。
该设备的总体方面可还包括:处理器和存储器,其中,存储器是片外存储器。
信息收集器可被配置为收集缓存缺失率或由处理器处理的每循环指令的数量中的至少一个,作为用于确定处理器的动态上下文的信息。
从下面的详细描述、附图和权利要求,其他特征和方面将是清楚的。
附图说明
图1是示出包括处理器、外部存储器和带宽调节器的计算设备的示例的示图。
图2是示出用于调整计算设备的存储器带宽的方法的示例的流程图。
图3A至图3D是示出可在图2中示出的用于调整存储器带宽的方法中使用的调节操作的示例的流程图。
图4是示出用于调整计算设备的存储器带宽的方法的示例的另一流程图。
图5是示出带宽调节器的示例的示图。
图6是示出带宽调节器的另一示例的示图。
图7是示出包括带宽调节器的设备的示例的示图。
贯穿附图和详细描述,除非另外描述或假设,否则相同的附图标号将被理解为表示相同的元件、特征和结构。附图可不被按比例缩放,并且为了清楚、示出和方便,在附图中元件的相对尺寸、比例和描绘可被夸大。
具体实施方式
提供以下详细描述以帮助读者获得对这里描述的方法、设备和/或系统的全面理解。然而,对这里描述的系统、设备和/或方法的各种改变、修改和等同形式对本领域的普通技术人员来说将是显而易见的。所描述的处理步骤和/或操作的进展是示例;然而,步骤和/或操作的顺序不限于这里阐述的顺序,并且可按照本领域公知的形式被改变,除非步骤和/或操作必须按照特定顺序发生。另外,为了增加清楚和简明,可省略对于本领域的普通技术人员公知的功能和构造的描述。
这里描述的特征可被实现为不同形式,并且不应被解释为受这里描述的示例的限制。相反,已经提供这里描述的示例,使得此公开将是彻底和完整的,并且这些示例将向本领域的普通技术人员传达本公开的全部范围。
下文中,将参照附图对计算设备、用于调整计算设备的存储器带宽的方法以及带宽调节器进行详细描述。
图1是示出包括处理器、外部存储器和带宽调节器的计算设备的示例的示图。
参照图1,计算设备100包括处理器10、外部存储器30和带宽调节器50。
计算设备100可以是用于执行需要处理大量数据(诸如图像处理、音频处理或三维图形处理)的应用的设备。例如,计算设备100可以是视频信号处理设备、音频信号处理设备或高速计算机之一。可选择地,计算设备100可被实现为包括处理器10、外部存储器30和带宽调节器50的片上系统(SoC)。带宽调节器50是调节外部存储器的带宽的存储器带宽调节器。
处理器10支持对外部存储器30的访问,并且可处理从外部存储器30发送的数据。处理器10可以是用于处理大量数据(例如,图像处理、音频处理或三维图形处理)的处理器。例如,处理器10可以是中央处理单元(CPU)、图形处理单元(GPU)或数字信号处理器(DSP)中的任何一个。处理器10可通过各种方法将关于内部事件的信息提供到外部。例如,处理器10可通过在特定事件发生的点调整特定寄存器值来将事件信息提供到外部。由这种处理器提供的事件信息可被用作动态上下文信息。
外部存储器30是片外存储器。外部存储器30可存储计算设备100的操作所需的各种程序和数据。在此示例中,外部存储器30包括用于将数据发送到处理器10以及从处理器10发送数据的多个输入和输出端子。输入和输出端子是指用于数据传输的输入和输出端口、输入和输出管脚等。根据示例,外部存储器30可仅在输入和输出端子被激活的同时能够将数据发送到处理器10。外部存储器30可以是具有有效地支持处理器10的高存储器带宽的存储器装置。例如,外部存储器30可以是3D堆栈DRAM。
带宽调节器50通过根据处理器10的动态上下文使外部存储器30的多个输入和输出端子中的每个输入和输出端子激活或失活,来动态地调节外部存储器30的带宽,而无需调整处理器的电压或带宽。将参照图5和图6对带宽调节器50进行详细描述。
计算设备100通过在输入和输出端子处调整外部存储器30的带宽来执行精细调节。计算设备100可根据对于应用工作负荷的存储器带宽需求来进一步动态地调整外部存储器30的带宽。通过动态地调整带宽,能够减小由具有高带宽的外部存储器消耗的泄漏能量。因此,可通过使用动态调节方法来减小在计算设备100上执行应用需要的功耗。
图2是示出用于调整计算设备的存储器带宽的方法的示例的流程图。参照图2,用于调整计算设备的存储器带宽的方法包括210中的收集动态上下文信息以及230中的调节带宽。
210中的收集动态上下文信息包括:收集表示或对应于处理器10的操作或状态的信息。处理器10的操作或状态可被称为处理器10的动态上下文。例如,动态上下文信息可包括关于在处理器10内发生的特定事件的信息或者关于正在由处理器10处理的特定事件的信息。由处理器10提供用于调节的关于特定事件的信息。在另一示例中,动态上下文信息可包括关于处理器10的缓存缺失率的信息。在另一示例中,动态上下文信息可包括关于由处理器10进行的缓冲器存储器访问的信息。
根据示例,210中的收集动态上下文信息可包括:通过读取存储在处理器10的特定寄存器中的值来收集动态上下文信息。根据另一示例,210中的收集动态上下文信息可包括:由基本输入和输出系统(BIOS)或由操作系统(OS)中的预安装的装置来收集动态上下文信息。根据另一示例,210中的收集动态上下文信息可包括:从单独提供的装置接收动态上下文信息。
230中的调节带宽可包括:通过使在外部存储器30中设置的多个输入和输出端子中的至少一个端子激活或失活来调节外部存储器30的带宽。输入和输出端子的激活可表示接通输入和输出端子,输入和输出端子的失活可表示断开输入和输出端子。输入和输出端子可被称为输入和输出端口或被简称为端口。
在图2中示出的示例中,基于对收集的动态上下文信息的分析,可确定数据传输需要更宽带宽还是更窄带宽。响应于确定需要更宽带宽,通过使多个输入和输出端子中的至少一个失活的输入和输出端子激活,带宽可被扩展与由新激活的一个或更多个输入和输出端子贡献的带宽相应的量。相反,对收集的动态上下文信息的分析可引起对较窄的带宽足以实现处理器和外部存储器之间的数据传输的确定。响应于这样的确定,通过使在外部存储器中设置的多个输入和输出端子中的至少一个激活的输入和输出端子失活,带宽可被减小与新失活的一个或更多个输入和输出端子相应的量。
对于带宽调节,还存在用于仅调整频率或者调整电压连同频率的方法。然而,在以低电压驱动的电路中,电压摆动宽度窄,从而带宽调节范围小,使得带宽精确调节难。因此,在通过仅可变地改变频率或者通过改变电压连同频率来调整带宽的方法中,带宽调节的级数通常限于很少。
相比之下,根据图2中示出的用于调整带宽的方法,通过以管脚为单位打开和关闭多个输入和输出端子,可以以高超的精确度调节带宽的扩展和减小。例如,在包括多个输入和输出端子的现有3D堆栈DRAM中,最小带宽和最大带宽之间的带宽级数达到数千。此外,根据图2中示出的示例,可经由逻辑电路来实施用于通过以管脚为单位打开和关闭多个输入和输出端子来调节带宽的方法,与通过调整电压来调整带宽的方法相比,该方法的简单之处在于可使用预安装的三态管脚。
图3A是示出根据参照图2描述的用于调整存储器带宽的方法的调节操作230的示例的流程图。
参照图3A,调节操作230可包括:在231a中基于收集的动态上下文信息来确定处理器10的动态性能的改变。此外,调节操作230可包括:在233a中通过基于在231a中做出的确定来使在外部存储器30中设置的多个输入和输出端子中的每一个激活或失活来调节外部存储器30的带宽。
基于在231a中对收集的动态上下文信息的分析,可根据处理器10的动态性能的改变来确定需要更宽的带宽。在这样的事件中,可在233a中通过使多个输入和输出端子中的失活的输入和输出端子中的至少一部分激活来执行带宽的动态调节。通过激活一个或更多个失活的输入和输出端子,带宽被扩展与由新激活的输入和输出端子贡献的附加带宽相应的量。带宽扩展改善了在输入和输出端子发生的数据传输瓶颈效应,并导致增强了总体处理性能。
相似地,基于在231a中对收集的动态上下文信息的分析,可基于处理器10的动态性能来确定更窄的带宽对于数据传输是足够的。在这样的事件中,可在233a中通过使多个输入和输出端子中的至少一个激活的输入和输出端子失活来执行带宽的动态调节。带宽被减小失活之前由新失活的输入和输出端子贡献的量。带宽减小降低了在输入和输出端子处的数据传输所涉及的功耗,从而导致总体处理性能的增强。
图3B是示出在参照图2描述的用于调整存储器带宽的方法中的调节操作230的另一示例的流程图。
参照图3B,调节操作230可包括:在231b中将收集的缓存缺失率与预定阈值进行比较以检测处理器10的动态性能的改变,其中,由因为外部存储器30而增加的数据等待时间引起了所述处理器10的动态性能的改变。此外,调节操作230可包括:在233a中通过基于所述确定使在外部存储器30中设置的多个输入和输出端子中的每一个激活或失活来调节外部存储器30的带宽。基于在231b中收集的缓存缺失率与阈值的比较结果,可根据处理器10的动态性能来确定需要更宽的带宽用于有效数据传输。在这样的事件中,在233b中通过使多个输入和输出端子中的失活的输入和输出端子中的至少一部分激活来动态地调节带宽。带宽被扩展与新激活的一个或更多个输入和输出端子的贡献相应的量。带宽扩展减轻了在输入和输出端子发生的数据传输瓶颈效应,并从而导致总体处理性能的增强。
例如,对比阈值更大的缓存缺失率的检测指示由于用于将数据发送到外部存储器30并从外部存储器30发送数据的不充足的带宽而增加了数据等待时间。数据等待时间的增加导致动态性能的降低。因此,在缓存缺失率大于阈值的事件中,确定处理器10的动态性能已经降低。因此,通过使失活的输入和输出端子中的至少一部分新激活,带宽可被增加由新激活的输入和输出端子贡献的量。
在另一示例中,调节操作230可包括:将按照连续方式最近收集的特定数量的缓存缺失率与预定阈值进行比较。在针对特定数量的时间间隔或更多的时间间隔缓存缺失率大于阈值的事件中,可确定处理器10的动态性能已经降低。例如,如果最近收集的五个缓存缺失率中的三个缓存缺失率大于阈值,可确定处理器10的动态性能已经降低。通过将多个缓存缺失率与阈值进行比较以确定动态性能的改变,能够比在将单个缓存缺失率与阈值进行比较的示例中更精确地检测处理器10的动态性能的改变。
相似地,基于在231b中收集的缓存缺失率与阈值的比较结果,可基于处理器10的动态性能来确定更窄的带宽对于数据传输是足够的。响应于这样的确定,在233b中的带宽调节中,通过使多个输入和输出端子中的激活的输入和输出端子中的至少一部分失活,带宽可被减小与新失活的输入和输出端子的贡献相应的量。带宽减小降低了输入和输出端子的功耗,从而导致总体处理性能的增强。
图3C是示出在参照图2描述的用于调整存储器带宽的方法中的调节操作230的另一示例的流程图。
参照图3C,调节操作230可包括:根据预定标准计算在特定部分中收集的每循环指令的平均值,并感测计算的平均值的改变,以根据处理器10的平行操作性能的改变来确定处理器10的动态性能的改变。调节操作230可包括:在233c中通过基于动态性能的改变使在外部存储器30中设置的多个输入和输出端子中的一个或更多个激活或失活来动态地调节外部存储器30的带宽。
在操作231c中,收集的每循环指令(IPC)的改变可指示处理器10的动态性能的降低。因此,可确定需要更宽的带宽用于有效数据传输。响应于对需要更宽的带宽的确定,在233b中通过使多个输入和输出端子中的失活的输入和输出端子中的至少一部分激活来动态地调节带宽,从而将带宽扩展与新激活的输入和输出端子的贡献相应的量。带宽扩展减轻了在输入和输出端子发生的数据传输瓶颈效应,并导致总体处理性能的增强。
例如,在231c中,基于收集的每循环指令,根据预定标准计算在特定部分中收集的每循环指令的平均值,并且响应于感测到每循环指令的计算的平均值的减小,可确定处理器10的动态性能已经降低。例如,响应于最近收集的五个每循环指令的平均值小于先前的平均值,可确定处理器10的动态性能已经降低。在可选方案中,响应于最近收集的五个每循环指令的平均值小于预定参考IPC值,可确定处理器10的动态性能已经降低。响应于对处理器10的动态性能降低的确定,可通过进一步激活输入和输出端子的功率来增加外部存储器30的带宽。在233c中,可通过使多个输入和输出端子中的失活的输入和输出端子的至少一部分激活来动态地调节带宽,从而将带宽扩展与新激活的输入和输出端子的贡献相应的量。带宽扩展减轻了在输入和输出端子发生的数据传输瓶颈效应,从而增强了总体处理性能。
相似地,基于每循环指令的平均值的增加,可在231c中确定处理器10的动态性能已经提高。基于所述确定,并通过考虑处理器10的功耗和动态性能之间的权衡,可确定更窄的带宽是足够的。在这样的事件中,可在233c中通过使多个输入和输出端子中的激活的输入和输出端子中的至少一部分失活来调节带宽。带宽被减小与新失活的输入和输出端子相应的量。带宽减小导致在输入和输出端子的更低的功耗,并导致总体处理性能的增强。
图3D是示出在图2中示出的用于调整存储器带宽的方法中的调节操作的另一示例的流程图。调节操作230可包括:基于关于收集的两个或更多个动态上下文的信息来确定处理器10的动态性能的改变,并基于所述确定动态地调节外部存储器30的带宽。例如,在图3D中,基于关于两个动态上下文的信息(缓存缺失率和每循环指令)来确定处理器10的动态性能的改变。
参照图3D,调节操作230可包括:在231bd中将收集的缓存缺失率与预定阈值进行比较以确定由因为外部存储器30而导致的数据等待时间的增加引起的处理器10的动态性能的改变。此外,基于收集的每循环指令的改变,可在231cd中确定处理器10的动态性能的改变。
基于在231bd和231cd中获得的确定,在232中对扩展带宽还是减小带宽或者是否不需要调节带宽做出选择。
例如,响应于在232中对扩展带宽的确定,在233d中,可通过使多个输入和输出端子中的一个或更多个失活的输入和输出端子激活来将带宽扩展与新激活的输入和输出端子相应的量,以动态地调节带宽。带宽扩展减轻了在输入和输出端子发生的瓶颈效应,并导致总体处理性能的增强。
相似地,响应于在232中对减小带宽的确定,可通过使多个输入和输出端子中的一个或更多个激活的输入和输出端子失活来将带宽减小与新失活的输入和输出端子相应的量。带宽减小降低了输入和输出端子的功耗,并导致总体处理性能的增强。
此外,响应于在232中对保持当前带宽而不调节带宽的确定,在234d中保持当前带宽,而不扩展或减小当前带宽。
图4是示出用于调整计算设备的存储器带宽的方法的示例的另一流程图。
参照图4,用于调整计算设备的存储器带宽的方法包括:在210中收集动态上下文信息;在230中调节带宽;在250中将带宽返回到默认。由于在210中的动态上下文信息的收集和在230中的带宽的调节与以上参照图2和图3A到图3D所描述的操作相同,因此下文中将仅详细描述在250中将带宽返回到默认。
在通过调节外部存储器的带宽不改变处理器的动态性能的事件中,在250中,外部存储器的带宽可被返回到默认带宽。换句话说,响应于对存储器带宽的改变与处理器10的动态性能不相关的确定,外部存储器30的带宽被返回到默认带宽。例如,由于基于收集的缓存缺失率检测到的高缓存缺失率,带宽可被调节达到最大级别。在随后收集的缓存缺失率仍然被保持为大于阈值的级别的事件中,确定基于收集的缓存缺失率确定的处理器10的动态性能与存储器带宽不相关。因此,外部存储器30的存储器带宽可被返回到默认带宽。通过将扩展的带宽返回到默认带宽而不管处理器10的动态性能的改变如何,也可减小或消除由带宽的扩展引起的功耗,从而提高总体功率效率。
在另一示例中,基于收集的每循环指令,外部存储器30的带宽可被调节达到最大级别。作为响应,可连续减小随后计算的每循环指令的平均值。在这样的事件中,确定存储器带宽与基于收集的每循环指令确定的处理器10的动态性能的改变不相关,并且外部存储器30的存储器带宽可被返回到默认带宽。
根据示例的用于调整带宽的方法还可被实施为非暂时性计算机可读记录介质上的计算机可读代码。计算机可读记录介质是可存储随后可由计算机系统读取的数据的任何数据存储装置。
图5是示出带宽调节器的示例的示图。
参照图5,带宽调节器包括动态上下文信息收集器51和端口开关53。
动态上下文信息收集器51收集关于表示或对应于处理器10的动态上下文的至少一个动态上下文的信息。动态上下文信息收集器51可以是预安装在BIOS或操作系统中的装置,或者可以是单独提供的用于收集动态上下文信息的装置。例如,动态上下文信息可以是由处理器10提供的关于处理器的特定事件的信息。在另一示例中,动态上下文信息可以是缓存缺失率或每循环指令中的至少一个。
端口开关53可通过基于收集的动态上下文信息使在外部存储器30中设置的多个输入和输出端子中的至少一个端子激活或失活来调节外部存储器30的带宽。可针对多个输入和输出端子中的每一个来执行激活或失活。例如,通过断开存储器接口上的输入和输出端子,端口开关53可使输入和输出端子失活。此外,通过接通输入和输出端子,端口开关53可激活输入和输出端子。
在一个示例中,端口开关53通过将收集的缓存缺失率与预定阈值进行比较来确定处理器10的动态性能的改变。例如,高缓存缺失率导致数据等待时间的增加。因此,响应于收集的缓存缺失率高于预定阈值,可确定处理器10的动态性能已经降低。相似地,低缓存缺失率导致数据等待时间的减少。因此,响应于收集的缓存缺失率低于预定阈值,可确定处理器10的动态性能已经提高。基于关于处理器10的动态性能的确定,端口开关53可通过使在外部存储器30中设置的多个输入和输出端子中的每一个激活或失活来调节外部存储器30的带宽。
在另一示例中,端口开关53基于每循环指令的平均值预先确定处理器10的动态性能的改变。例如,可根据预定标准计算在特定部分中收集的每循环指令的平均值,并可确定计算的平均值的改变。此外,端口开关53可通过使在外部存储器30中设置的多个输入和输出端子中的每一个激活或失活来调节外部存储器30的带宽。
在另一示例中,端口开关53可基于收集的两个或更多个动态上下文(包括例如缓存缺失率、每循环指令等)的信息来确定处理器10的动态性能的改变。基于所述确定,端口开关53可调节外部存储器30的带宽。
如上所述,带宽调节器50可通过在输入和输出端子处调节外部存储器30的带宽来精确地调节外部存储器30的带宽。此外,通过考虑处理器10的动态上下文来调节外部存储器30的带宽,带宽调节器50可根据对于应用工作负荷的存储器带宽需求来动态地调节外部存储器30的带宽。作为结果,可减小由具有高带宽的外部存储器30消耗的泄漏能量,从而减小应用执行所导致的功耗。
图6是示出带宽调节器的示例的另一示图。
参照图6,带宽调节器50包括动态上下文信息收集器51、端口开关53和用于将带宽返回到默认带宽的带宽返回器55。由于动态上下文信息收集器51和端口开关53与上面参照图5描述的相同,因此下文中将仅详细描述用于将带宽返回到默认带宽的带宽返回器55。
在基于收集的动态上下文信息调节外部存储器30的带宽之后处理器10的动态性能没有改变的事件中,用于将带宽返回到默认带宽的带宽返回器55可将外部存储器30的带宽返回到默认带宽。换句话说,响应于对如基于收集的动态上下文信息确定的存储器带宽与处理器10的动态性能不相关的确定,带宽返回器55将外部存储器30的带宽返回到默认带宽。
例如,基于收集的缓存缺失率,可调节带宽使得带宽达到最大级别。在随后收集的缓存缺失率仍然处于高于阈值的级别的事件中,确定基于收集的缓存缺失率确定的处理器10的动态性能的改变与存储器带宽不相关。因此,带宽返回器55可将外部存储器30的存储器带宽返回到默认带宽。
在另一示例中,基于收集的每循环指令,可调节带宽使得带宽达到最大级别。在随后计算的每循环指令的平均值连续减小的事件中,确定存储器带宽与基于收集的每循环指令确定的处理器10的动态性能的改变不相关。因此,带宽返回器55将外部存储器30的存储器带宽返回到默认带宽。
带宽返回器55可通过使用端口开关53将存储器带宽返回到默认带宽。
如上所述,通过考虑动态上下文在输入和输出端子调节外部存储器的带宽,能够根据基于应用工作负荷的存储器带宽需求动态地调整存储器带宽。
此外,能够减小由具有高带宽的外部存储器消耗的泄漏能量,从而减小执行应用中的功耗。
图7是示出包括带宽调节器的设备的示例的示图。所述设备可以是计算设备的一部分。在该示例中,所述设备包括系统级芯片710,所述系统级芯片710包括处理器720和外部存储器730。外部存储器730和处理器720可经由输入和输出端子交换数据。用于调整带宽的计算可包括:收集关于处理器720的动态上下文信息,并将丢失的缓存缺失率或由处理器720执行的每循环指令的平均值与预定阈值进行比较。然而,根据本公开的带宽调节器的实现不限于图7中示出的示例。尽管在图7中示出的示例包括系统级芯片,但是在另一示例中,可利用系统级封装、印刷电路板或其它已知技术来实现带宽调节器。
如上所述,输入和输出端子的数量的增加以及3D堆栈DRAM的使用可提高存储器带宽。然而,功耗可随着存储器带宽的增加而增加。通过根据工作负荷特性动态地调节带宽,能够在数据传输中增强性能并减小功耗。
可使用硬件组件和软件组件来实现这里所述的单元。例如,硬件组件可包括麦克风、放大器、带通滤波器、音频数字转换器和处理装置。可使用一个或更多个通用或专用计算机(例如,处理器、控制器和算术逻辑单元、数字信号处理器、微计算机、现场可编程阵列、可编程逻辑单元、微处理器或能够以预定义的方式响应并执行指令的任何其它装置)来实现处理装置。处理装置可运行操作系统(OS)以及在OS上运行的一个或更多个软件应用。处理装置还可响应于软件的执行来访问、存储、操作、处理和创建数据。数据可被存储在存储器中。为了简洁的目的,对处理装置的描述被用作单数;然而,本领域技术人员将认识到,处理装置可包括多个处理元件和多种类型的处理元件。例如,处理装置可包括多个处理器或者处理器和控制器。此外,不同处理配置是可行的,诸如并行处理器。
软件可包括计算机程序、代码段、指令或它们中的一些组合,以独立或共同地指示或配置处理装置进行期望的操作。软件和数据可被永久或临时地实施在任何类型的机器、组件、物理或虚拟装备、计算机存储介质或装置中或者能够将指令或数据提供给处理装置或者提供由处理装置解释的指令或数据的传播信号波中。软件还可分布于联网的计算机系统中,从而软件按照分布式方式被存储和执行。软件和数据可由一个或更多个非暂时性计算机可读记录介质存储。非暂时性计算机可读记录介质可包括可存储随后可由计算机系统或处理装置读取的数据的任何数据存储装置。非暂时性计算机可读记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光学数据存储装置。另外,完成在此公开的示例的功能程序、代码和代码段可被示例所述领域的编程技术人员基于和使用附图中的流程图和框图以及在此提供的它们的相应描述容易地解释。
虽然本公开包括特定示例,但是本领域的普通技术人员将理解的是,在不脱离权利要求及其等同物的精神和范围的情况下,可在这些示例中做出形式和细节上的各种改变。这里描述的示例将被认为仅是描述性意义,而不是为了限制的目的。对每个示例中的特征或方面的描述将被视为可适用于其它示例中的相似的特征或方面。如果以不同的顺序执行描述的技术,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式组合和/或被其他组件或其等同物代替或补充,则可实现合适的结果。因此,本公开的范围不由详细描述限定,而由权利要求及其等同物限定,并且在权利要求及其等同物的范围内的所有改变将被理解为包括在本公开中。
Claims (36)
1.一种用于调整带宽的方法,包括:
收集与处理器的动态上下文相应的信息;
基于收集的信息来确定处理器的动态上下文;
通过基于确定的动态上下文使多个输入和输出端子中的至少一个端子激活或失活来动态地调节带宽。
2.如权利要求1所述的方法,其中,动态地调节带宽的步骤包括:响应于根据动态上下文确定扩展带宽,使所述多个输入和输出端子中的至少一个失活的端子激活。
3.如权利要求1所述的方法,其中,动态地调节带宽的步骤包括:响应于根据动态上下文确定减小带宽,使所述多个输入和输出端子中的至少一个激活的端子失活。
4.如权利要求1所述的方法,其中,收集的信息是缓存缺失率。
5.如权利要求4所述的方法,其中,动态地调节带宽的步骤包括:将收集的缓存缺失率与预定阈值进行比较,并且响应于收集的缓存缺失率大于预定阈值,确定扩展带宽。
6.如权利要求1所述的方法,其中,动态地调节带宽的步骤包括:将收集的缓存缺失率与预定阈值进行比较,并且响应于收集的缓存缺失率小于预定阈值,确定减小带宽。
7.如权利要求1所述的方法,其中,收集的信息是由处理器处理的每循环指令的数量。
8.如权利要求7所述的方法,其中,动态地调节带宽的步骤包括:将收集的每循环指令与预定阈值进行比较,并且响应于收集的每循环指令的数量小于预定阈值,确定扩展带宽。
9.如权利要求7所述的方法,其中,动态地调节带宽的步骤包括:将收集的每循环指令与预定阈值进行比较,并且响应于收集的每循环指令的数量大于预定阈值,确定减小带宽。
10.如权利要求1所述的方法,还包括:在动态地调节带宽之后,响应于处理器的动态上下文没有响应调节的带宽,将调节的带宽返回到默认带宽。
11.如权利要求10所述的方法,其中,返回的步骤包括:基于与在带宽被调节之后收集的处理器的动态上下文相应的信息,确定动态上下文的响应性。
12.如权利要求1所述的方法,还包括:在将带宽动态地调节以达到最大级别并且确定由于动态调节没有造成动态上下文的改进之后,将调节的带宽返回到默认带宽。
13.一种带宽调节器,包括:
信息收集器,被配置为收集与处理器的动态上下文相应的信息;
端口开关,被配置为通过基于收集的信息确定处理器的动态上下文,通过使多个输入和输出端子中的至少一个端子激活或失活,来动态地调节带宽。
14.如权利要求13所述的带宽调节器,其中,响应于根据动态上下文确定扩展带宽,端口开关被配置为使所述多个输入和输出端子中的至少一个失活的端子激活。
15.如权利要求13所述的带宽调节器,其中,响应于根据动态上下文确定减小带宽,端口开关被配置为使所述多个输入和输出端子中的至少一个激活的端子失活。
16.如权利要求13所述的带宽调节器,其中,收集的信息是缓存缺失率。
17.如权利要求16所述的带宽调节器,其中,在将收集的缓存缺失率与预定阈值进行比较之后,响应于收集的缓存缺失率大于预定阈值,端口开关确定扩展带宽。
18.如权利要求16所述的带宽调节器,其中,在将收集的缓存缺失率与预定阈值进行比较之后,响应于收集的缓存缺失率小于预定阈值,端口开关确定减小带宽。
19.如权利要求16所述的带宽调节器,其中,收集的信息是由处理器处理的每循环指令的数量。
20.如权利要求13所述的带宽调节器,其中,在将收集的每循环指令与预定阈值进行比较之后,响应于收集的每循环指令的数量小于预定阈值,端口开关确定扩展带宽。
21.如权利要求13所述的带宽调节器,其中,在将收集的每循环指令与预定阈值进行比较之后,响应于收集的每循环指令的数量大于预定阈值,端口开关确定减小带宽。
22.如权利要求13所述的带宽调节器,还包括:带宽返回器,被配置为在带宽被动态地调节之后,响应于处理器的动态上下文没有响应调节的带宽,将调节的带宽返回到默认带宽。
23.如权利要求22所述的带宽调节器,其中,带宽返回器被配置为:基于与在带宽被调节之后收集的处理器的动态上下文相应的信息,确定动态上下文的响应性。
24.如权利要求22所述的带宽调节器,其中,在将带宽动态地调节以达到最大级别并且确定由于动态调节没有造成动态上下文的改进之后,带宽调节器被配置为将调节的带宽返回到默认带宽。
25.一种用于调整带宽的方法,包括:
确定处理器的动态上下文;
基于动态上下文,调节处理器和存储器之间的带宽,而无需改变电压或频率。
26.如权利要求25所述的方法,其中,调节的步骤包括:为了基于动态上下文扩展带宽,使多个输入和输出端子中的至少一个失活的端子激活。
27.如权利要求25所述的方法,其中,调节的步骤包括:为了基于动态上下文减小带宽,使多个输入和输出端子中的至少一个激活的端子失活。
28.如权利要求25所述的方法,其中,基于缓存缺失率确定动态上下文。
29.如权利要求25所述的方法,其中,基于由处理器处理的每循环指令的数量来确定动态上下文。
30.如权利要求25所述的方法,还包括:在调节带宽之后,响应于处理器的动态上下文没有响应调节的带宽,将调节的带宽返回到默认带宽。
31.如权利要求30所述的方法,其中,返回的步骤包括:基于在带宽被调节之后确定的动态上下文来确定动态上下文的响应性。
32.一种设备,包括:
端口开关,被配置为通过基于处理器的性能使多个输入和输出端子中的至少一个端子激活或失活,来动态地调节处理器和存储器之间的带宽。
33.如权利要求32所述的设备,还包括:信息收集器,被配置为收集用于确定处理器的性能的信息。
34.如权利要求32所述的设备,还包括:带宽返回器,被配置为响应于确定处理器的性能没有响应由端口开关进行的带宽的调节,将调节的带宽返回到默认带宽。
35.如权利要求32所述的设备,还包括:处理器和存储器,其中,存储器是片外存储器。
36.如权利要求33所述的设备,其中,信息收集器被配置为收集缓存缺失率或由处理器处理的每循环指令的数量中的至少一个,作为用于确定处理器的性能的信息。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361817420P | 2013-04-30 | 2013-04-30 | |
US61/817,420 | 2013-04-30 | ||
KR10-2013-0134908 | 2013-11-07 | ||
KR1020130134908A KR102157326B1 (ko) | 2013-04-30 | 2013-11-07 | 컴퓨팅 장치, 컴퓨팅 장치의 메모리 대역폭 조정 방법 및 메모리 대역폭 조정기 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104133789A true CN104133789A (zh) | 2014-11-05 |
CN104133789B CN104133789B (zh) | 2018-11-09 |
Family
ID=50693444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410181509.0A Active CN104133789B (zh) | 2013-04-30 | 2014-04-30 | 用于调整带宽的设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9588570B2 (zh) |
EP (1) | EP2800007B1 (zh) |
JP (1) | JP6395432B2 (zh) |
CN (1) | CN104133789B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2547939B (en) * | 2016-03-04 | 2020-04-22 | Advanced Risc Mach Ltd | Cache power management |
US11016695B2 (en) * | 2016-12-20 | 2021-05-25 | Intel Corporation | Methods and apparatus to perform memory copy operations |
CN114006820B (zh) * | 2020-07-28 | 2023-09-05 | 中移(苏州)软件技术有限公司 | 一种传输带宽调整方法及设备、计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050182885A1 (en) * | 2004-02-16 | 2005-08-18 | Fujitsu Limited | Semiconductor integrated circuit |
US20050283339A1 (en) * | 2004-06-18 | 2005-12-22 | Ichiki Homma | Performance analyzing method using hardware |
CN101076770A (zh) * | 2004-09-28 | 2007-11-21 | 英特尔公司 | 根据可用并行数目改变每条指令能量的方法和设备 |
US20080002585A1 (en) * | 2006-06-29 | 2008-01-03 | Safranek Robert J | Dynamic link width modulation |
US20100080132A1 (en) * | 2008-09-30 | 2010-04-01 | Sadagopan Srinivasan | Dynamic configuration of potential links between processing elements |
US20120173907A1 (en) * | 2011-12-30 | 2012-07-05 | Jaideep Moses | Method, apparatus, and system for energy efficiency and energy conservation including dynamic c0-state cache resizing |
US20120233477A1 (en) * | 2011-03-11 | 2012-09-13 | Youfeng Wu | Dynamic core selection for heterogeneous multi-core systems |
US20140086070A1 (en) * | 2012-09-24 | 2014-03-27 | Gurjeet S. Saund | Bandwidth Management |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002259327A (ja) * | 2001-02-28 | 2002-09-13 | Hitachi Ltd | バス制御回路 |
JP3742364B2 (ja) * | 2002-06-28 | 2006-02-01 | 株式会社東芝 | クロック周波数の制御方法および電子機器 |
US20070091922A1 (en) | 2005-10-21 | 2007-04-26 | Steven Elliot | Method and apparatus for adaptive bandwidth control with a bandwidth guarantee |
JP4837456B2 (ja) * | 2006-06-28 | 2011-12-14 | パナソニック株式会社 | 情報処理装置 |
US20100174858A1 (en) | 2009-01-05 | 2010-07-08 | Taiwan Semiconductor Manufacturing Co., Ltd. | Extra high bandwidth memory die stack |
US8018752B2 (en) * | 2009-03-23 | 2011-09-13 | Micron Technology, Inc. | Configurable bandwidth memory devices and methods |
US8478928B2 (en) | 2009-04-23 | 2013-07-02 | Samsung Electronics Co., Ltd. | Data storage device and information processing system incorporating data storage device |
KR101525589B1 (ko) | 2009-04-23 | 2015-06-03 | 삼성전자주식회사 | 데이터 저장 장치 및 그것을 포함하는 정보 처리 시스템 |
KR101617377B1 (ko) | 2009-11-06 | 2016-05-02 | 삼성전자주식회사 | 동적 전압 주파수 스케일링 방법 |
-
2014
- 2014-04-28 US US14/263,309 patent/US9588570B2/en active Active
- 2014-04-29 EP EP14166449.0A patent/EP2800007B1/en active Active
- 2014-04-30 JP JP2014094104A patent/JP6395432B2/ja active Active
- 2014-04-30 CN CN201410181509.0A patent/CN104133789B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050182885A1 (en) * | 2004-02-16 | 2005-08-18 | Fujitsu Limited | Semiconductor integrated circuit |
US20050283339A1 (en) * | 2004-06-18 | 2005-12-22 | Ichiki Homma | Performance analyzing method using hardware |
CN101076770A (zh) * | 2004-09-28 | 2007-11-21 | 英特尔公司 | 根据可用并行数目改变每条指令能量的方法和设备 |
US20080002585A1 (en) * | 2006-06-29 | 2008-01-03 | Safranek Robert J | Dynamic link width modulation |
US20100080132A1 (en) * | 2008-09-30 | 2010-04-01 | Sadagopan Srinivasan | Dynamic configuration of potential links between processing elements |
US20120233477A1 (en) * | 2011-03-11 | 2012-09-13 | Youfeng Wu | Dynamic core selection for heterogeneous multi-core systems |
US20120173907A1 (en) * | 2011-12-30 | 2012-07-05 | Jaideep Moses | Method, apparatus, and system for energy efficiency and energy conservation including dynamic c0-state cache resizing |
US20140086070A1 (en) * | 2012-09-24 | 2014-03-27 | Gurjeet S. Saund | Bandwidth Management |
Also Published As
Publication number | Publication date |
---|---|
EP2800007B1 (en) | 2020-04-29 |
US9588570B2 (en) | 2017-03-07 |
CN104133789B (zh) | 2018-11-09 |
JP2014219978A (ja) | 2014-11-20 |
EP2800007A3 (en) | 2015-08-26 |
JP6395432B2 (ja) | 2018-09-26 |
EP2800007A2 (en) | 2014-11-05 |
US20140325248A1 (en) | 2014-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11687139B2 (en) | Multi-level CPU high current protection | |
CN110008149B (zh) | 融合式存储器件及其操作方法 | |
CN106598184B (zh) | 在处理器中执行跨域热控制 | |
CN102177551B (zh) | 与标准存储器模块管脚兼容的存储器模块中的独立可控制和可重新配置的虚拟存储器设备 | |
CN102597912B (zh) | 用于平台功率节省的协调设备和应用程序中断事件 | |
CN107646106B (zh) | 具有每个活动加权和多个节流下降阈值的功率管理电路 | |
EP2685632A2 (en) | Thermal control apparatus and methodology | |
CN107408018B (zh) | 用于在固态驱动器中适应垃圾收集资源分配的机制 | |
US8890880B2 (en) | Graphics pipeline scheduling architecture utilizing performance counters | |
US20140092106A1 (en) | Clamping of dynamic capacitance for graphics | |
EP2620838A1 (en) | Automatic partial array self-refresh | |
CN104133789A (zh) | 用于调整带宽的设备和方法 | |
CN110583018A (zh) | 用于片上系统中的智能数据/帧压缩的系统和方法 | |
US11853111B2 (en) | System and method for controlling electrical current supply in a multi-processor core system via instruction per cycle reduction | |
US10452574B2 (en) | Read performance on a SATA storage device behind a host bus adapter | |
CN111523655A (zh) | 处理装置及方法 | |
CN113805814A (zh) | 缓存管理方法、装置、存储设备和可读存储介质 | |
CN106155923A (zh) | 内存共享的方法和装置 | |
US11893240B2 (en) | Reducing latency in pseudo channel based memory systems | |
CN117234744B (zh) | 一种多芯片系统性能优化方法、系统、电子设备及介质 | |
US11888318B2 (en) | Transient load management for a system-on-chip meeting an activity threshold | |
US20240211019A1 (en) | Runtime-learning graphics power optimization | |
WO2024021657A1 (zh) | 存储控制方法、装置、设备、存储介质、芯片及存储器 | |
JP2024525376A (ja) | サイクル当たりの命令の低減を介してマルチプロセッサコアシステムにおける電流供給を制御するためのシステム及び方法 | |
CN117590925A (zh) | 集成电路及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |