CN109564459B - 用于自动自适应电压控制的方法和设备 - Google Patents

用于自动自适应电压控制的方法和设备 Download PDF

Info

Publication number
CN109564459B
CN109564459B CN201780046784.3A CN201780046784A CN109564459B CN 109564459 B CN109564459 B CN 109564459B CN 201780046784 A CN201780046784 A CN 201780046784A CN 109564459 B CN109564459 B CN 109564459B
Authority
CN
China
Prior art keywords
bclk
processing device
rate
curve
voltage
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
Application number
CN201780046784.3A
Other languages
English (en)
Other versions
CN109564459A (zh
Inventor
A·古尔
D·J·拉格兰德
O·内森
N·舒尔曼
E·纳坦森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN109564459A publication Critical patent/CN109564459A/zh
Application granted granted Critical
Publication of CN109564459B publication Critical patent/CN109564459B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Power Sources (AREA)

Abstract

一种处理设备,包括:电源管理单元,该电源管理单元用于接收要应用于处理设备的基本时钟(BCLK)频率速率;并且使用参考电压/频率曲线确定对应于BCLK频率速率的电压,其中基于处理设备的参考BCLK频率速率生成参考V/F曲线。

Description

用于自动自适应电压控制的方法和设备
技术领域
本公开的实现总体上涉及处理设备,并且更具体地,涉及用于在处理设备中提供自动自适应电压控制的方法和设备。
背景
可以通过使用“超频”来实现提高计算机系统的性能。处理单元制造商可以基于处理单元的物理限制来建立默认基本时钟(BCLK)速率。此默认BCLK速率提供整个处理器单元使用的一致时间周期,并确定处理单元执行操作的速率。超频涉及基于默认BCLK速率将BCLK频率增加到默认BCLK频率以上,以便以更高的速度运行处理单元。
附图说明
根据以下给出的详细描述并且根据本公开的各个实现的附图,将更全面地理解本公开。然而,附图不应被认为是将本公开限制于特定实现,而是仅用于解释和理解。
图1示出了根据本公开的实现的芯片上系统(SoC)的框图,该芯片上系统(SoC)包括实现功率单元的处理系统。
图2A是示出根据本公开的实现的实现电源管理单元的一种实现的曲线图的示例。
图2B是示出根据本公开的实现的实现电源管理单元的另一实现的曲线图的示例。
图2C是示出根据本公开的实现的实现电源管理单元的其他的实现的曲线图的示例。
图3是示出根据本公开的实现的用于电源管理单元的操作的方法的流程图。
图4A是示出用于处理器的微架构的框图,其中,本公开的一个实现可以用于所述微架构中;
图4B是示出根据本发明的至少一个实现实现的有序流水线和寄存器重命名级、乱序发布/执行流水线的框图;
图5示出了根据本公开的一个实现的用于处理器的微架构的框图;
图6是示出可以使用本公开的实现的系统的框图;
图7是系统的框图,在该系统中,可以操作本公开的实现;
图8是系统的框图,在该系统中,可以操作本公开的实现;
图9是根据本公开的实现的芯片上系统(SoC)的框图;
图10是根据本公开的SoC设计的实现的框图;以及
图11示出了计算机系统的一种实现的框图。
具体实施方式
本文公开了用于提供适应于计算机系统(这里可以称为“系统”)中的基本时钟超频的电源管理单元的实现。超频是指基于默认BCLK频率速率(例如,在处理器上执行操作的速率)将处理单元(在本文中也称为“处理器”或“处理设备”)的BCLK频率增加到默认BCLK频率之上,以便以比默认BCLK频率速率高的BCLK频率速率运行处理单元。
当前,电压计算基于锁相环(PLL)比(其也可以被称为倍频器),当在超频期间改变BCLK频率时,这可能导致不正确的(较低的)电压。PLL比测量内部CPU时钟速率与外部提供的时钟的比,并且乘以每个外部时钟周期的CPU的周期数。一种适应超频频率的传统方法是设置固定电压,该电压通常是高电压,并且当处理器从一个频率切换到另一个频率时不会改变。然而,通过设置固定的高电压而不管实际频率,处理器在长时间内保持在高电压电平,这对于处理器来说是低效的。另一种适应超频频率的传统方法是使用电压偏移。然而,计算电压偏移是困难且低效的,因为它是用于测量处理器使用的许多不同电压的试错用例。
本公开的实现通过在芯片上系统(SoC)设备中实现电源管理单元来减轻上述的缺陷和其他的缺陷。在一个实现中,电源管理单元连续地接收BCLK频率并且确定BCLK频率与参考电压(V)/频率(F)曲线中的参考BCLK频率之间的差。当确定差超过阈值时,电源管理单元计算每个频率的电压。因此,电源管理单元基于接收到的BCLK频率和参考V/F曲线计算新的V/F曲线。使用新的V/F曲线修改处理器以使用为接收到的BCLK频率生成的电压进行操作。在新的V/F曲线中,当处理器的工作负荷较低或处理器正在经历空闲时间周期时,电压按比例缩小,这提高了处理器的可靠性和性能。这样,本公开的实现简化了BCLK频率的使用,BCLK频率不同于参考BCLK频率,不牺牲功率效率并且不会加速处理器的不必要老化。
图1根据本公开的实现示出了包括处理系统的芯片上系统(SoC)100。SoC 100可以包括经由总线系统接口106彼此连接的功能单元(诸如中央处理单元(CPU))或处理器102和存储器104。处理器102可以使用存储器104执行用于系统应用和用户应用的任务,以存储与用于执行系统应用和用户应用的任务的程序相关联的指令和数据。处理器102可以包括一个或多个处理器或处理单元(例如,处理核或核),每个处理器或处理单元可以执行其自己的单独任务。
SoC 100还可以包括电源管理单元110和锁相环(PLL),它们都经由总线系统接口106耦合到BCLK生成组件150。在一个实现中,电源管理单元110是电源控制单元。BCLK生成组件150可以包括用于控制发送到处理器102的各种组件的基本时钟频率的一个或多个定时设备。在一个实现中,BCLK生成组件150可以生成不同的组件组的不同的BCLK频率,包括生成处理器102的各种处理核的不同的(独立的)BCLK频率。
在一个实现中,BCLK生成组件150生成连续BCLK频率信号152,该BCLK频率信号152包括BCLK频率速率。BCLK频率信号152中的BCLK频率速率可以支持超频。在一个实现中,PLL乘法器单元108和电源管理单元110接收BCLK频率信号152。电源管理单元110生成PLL信号154。PLL信号154是PLL比,该PLL信号154测量处理器102的每个BCLK频率与BCLK频率信号152中的BCLK频率速率的比。在一个实现中,BCLK频率速率是默认BCLK频率速率。默认的BCLK频率速率是确定处理器核频率的一个因素。处理器时钟频率是基于整数比值乘以BCLK频率。在一个实现中,默认BCLK频率速率是用户定义的值。默认的BCLK频率速率可以用软件指定或编程到处理器中。默认BCLK频率速率可以以MHz或MHz的分数指定。在一个实现中,可以在初始化时指定默认BCLK频率速率,然而,既能在重置时也能在操作系统中实时地更改它。
在一个实现中,电源管理单元110将BCLK频率信号152中的BCLK频率速率的值与默认BCLK频率速率进行比较。在一个实现中,使用若干不同对的以兆赫(MHz)测量的BCLK频率和参考电压(以伏特测量)来计算处理器102的参考BCLK频率速率的参考V/F曲线,并将所述对定义为参考V/F曲线的参考值。在一个实现中,参考BCLK频率从较低值到较高值的范围内的值中来选择。在一个实现中,相应的参考电压在从较低值到较高值的范围内的值中来确定。在一个实现中,在处理器的制造期间,通过使用覆盖频率的最小值、最大值和中间值的各种频率和电压在CPU上运行测试内容来计算参考电压。在一个实现中,对剩余的BCLK频率(即,未被选择作为参考BCLK频率)进行数据插值以计算参考V/F曲线,在下文进一步详细地描述。
在一个实现中,电源管理单元110确定BCLK频率信号152中每个BCLK频率的电压值。在一个实现中,电源管理单元110基于PLL信号154中的PLL比、从V/F曲线中检索的电压数组(以升序)以及在BCLK频率信号152中的BCLK频率速率来确定BCLK频率的电压值。
如以上所讨论的,PLL乘法器组件108还可通信地耦合到电源管理单元以接收包括PLL比的PLL信号154。在一个实现中,PLL乘法器组件108基于从电源管理单元110接收到的PLL比和BCLK频率信号152中的BCLK频率速率确定处理器102的BCLK频率。PLL乘法器组件108将PLL比与BCLK频率速率相乘以计算处理器102的BCLK频率。PLL乘法器组件108将包括BCLK频率的时钟频率信号156发送到处理器102。
在一个实现中,PLL信号154中的PLL比包括参考V/F曲线中的参考BCLK频率的最小PLL比值和最大PLL比值。在一个实现中,PLL比范围包括最小PLL比值和大于最小PLL比值但小于最大PLL比值的值。电源管理单元110迭代经过参考V/F曲线的BCLK频率范围,除了频率范围中的最后频率值之外,以升序确定倍频器的PLL比的索引值。因此,电源管理单元110通过PLL乘法器单元108迭代PLL信号154,并因此在所有可能的BCLK频率上迭代,只要得到的BCLK频率低于最大BCLK频率即可。在一个实现中,只要BCLK频率值在由参考V/F曲线上的两个不同BCLK频率参考值限定的范围内,该索引值就保持相同。在一个实现中,该索引值针对BCLK频率值而改变,该BCLK频率值落在由两个不同BCLK频率参考值限定的范围之外。V/F曲线是分段线性图,并且算法(如下面详细讨论的)确定参考V/F曲线(使用100MHz BCLK构建,如下文所述)中的哪个线/段保持所请求的频率。段号表示索引值。
电源管理单元110还通过将索引值与BCLK频率值相乘来确定每个参考频率范围的基频。在一个实现中,只要BCLK频率值在由参考V/F曲线上的两个不同BCLK频率参考值限定的范围内,该基频就保持相同。在一个实现中,该基频针对落在由两个不同BCLK频率参考值限定的范围之外的BCLK频率值而改变。
电源管理单元110针对电压范围确定每参考BCLK频率速率的电压阶跃/Δ(Vstep)。通过在参考V/F曲线中减去两个不同的参考电压(最小和最大电压值)来确定电压范围的值。通过将电压范围的值除以PLL比范围中的值来确定Vstep。通过减去与相应BCLK频率相关联的两个不同PLL比来确定PLL比范围中的值。如上所述,BCLK频率的PLL比可以是由用户指定的预定值。在一个实现中,只要BCLK频率值在由两个不同频率参考值限定的范围内,该Vstep就保持相同。在一个实现中,该Vstep针对落在由两个不同频率参考值限定的范围之外的BCLK频率值而改变。
电源管理单元110确定每个参考电压范围的基础电压。在一个实现中,基础电压是电压范围中的较低电压值。在一个实现中,只要BCLK频率值在由参考V/F曲线上的两个不同频率参考值限定的范围内,该基础电压就保持相同。在一个实现中,该基础电压针对落在由两个不同BCLK频率参考值限定的范围之外的BCLK频率值而改变。电源管理单元110确定BCLK频率的电压值。通过将基准电压添加到二进制操作来确定BCLK频率的电压值。二进制操作包括从BCLK频率中减去基频以获得Δ频率,该Δ频率除以具有(例如100)值的参考BCLK频率速率,并且乘以Vstep。因此,为处理器的BCLK频率信号152中的BCLK频率速率生成电压值。对于处理器中的每个不同BCLK频率,该电压值是不同的。电源管理单元110针对不同的BCLK频率重复上述过程,以创建高达并包括最大PLL比的新V/F曲线202,从而为BCLK频率信号152中的BCLK频率速率生成新的V/F曲线。
在一个实现中,可以根据以下伪代码来表示由电源管理单元110实现的过程。电源管理单元110的输入是V[n]、R[n]和BCLK。V[n]是按升序排列的电压数组,R[n]是以升序排列的n个PLL(倍频器)比的数组,BCLK是BCLK频率。从电源管理单元110的输入导出常数最小PLL比minR=R[1]和最大PLL比maxR=R[n]。电源管理单元110的输出是电压Vout[maxR],对应于处理器的BCLK。
电源管理单元110可以针对不同的BCLK速率重复上述过程,以计算每个处理器102的新V/F曲线,以便以它们相应的BCLK速率运行操作。
以下呈现的表1示出了使用100MHz的BCLK速率的不同BCLK频率值的参考V/F曲线的示例。如所示出的,在下面的表1中,输入PLL比包括四个值,8、16、32和40,相应的计算出的BCLK频率包括四个值,800MHz、1600MHz、3200MHz和4000MHz,并且相应的计算出的电压值包括四个值分别为0.6V、0.7V、0.95V和1.2V。在一个实现中,对于不是在800MHz至4,000MHz范围内的BCLK频率的余下BCLK频率进行数据插值,以便计算另一参考V/F曲线,如下面关于下面的表2进一步详细描述的。
表1
参考V/F曲线
计算
表2
以上呈现的表2示出了使用100MHz的BCLK速率的不同BCLK频率值的参考V/F曲线的示例。如所示出的,在上面的表2中,输入PLL比包括从8到40的值,相应的输入BCLK频率包括从800MHz到4000MHz的值,以及从0.6V到1.2V的相应电压值。针对不同BCLK频率计算的电压的一些示例是对于1200MHz为0.65V,对于2000MHz为0.7625V,对于3600MHz为1.075V。
图2A示出了根据本公开的实现的在表1中计算的参考V/F曲线202的曲线图200的示例。参考V/F曲线202的参考BCLK速率的示例是100MHz。如图2A中的曲线图200所示,使用先前被选择并被定义为参考值的四个不同的BCLK频率(以MHz测量)/电压对(以伏特测量)来计算参考V/F曲线202。如图所示,BCLK频率从800MHz至4,000MHz的范围中选择,并且电压从0.6V至1.2V的范围中选择。另外,如图所示,在曲线图200中,四对不同的先前选择的参考BCLK频率/参考电压对是(800MHz,0.6V)、(1600MHz,0.7V)、(3200MHz,0.95V)、和(4000MHz,1.2V)。在一个实现中,对于不是在800MHz至4,000MHz范围内的参考BCLK频率的余下BCLK频率进行数据插值,以便计算另一参考V/F曲线,如下面关于图2B进一步详细描述的。
图2B是根据本公开的实现的曲线图230的示例,该曲线图230示出了使用表2中示出的BCLK频率和电压值的参考V/F曲线232。如图2B中的曲线图230所示,为范围从800MHz到4,000MHz的BCLK频率生成具有大约三十三对不同的BCLK频率(以MHz测量)和电压(以伏特测量)、包括四个先前选择和定义为图2A的参考V/F曲线202的参考值的参考V/F曲线。如图所示,基于100MHz的BCLK速率选择BCLK频率。
在一个实现中,电源管理单元110确定接收到的BCLK频率信号152中的BCLK速率高于默认BCLK速率。如上所述,当时钟频率增加到高于时钟的默认时钟速率以便以更高的速度运行处理器时,则发生超频。在一个实现中,电源管理单元110确定接收到的BCLK频率信号152中的BCLK速率的值与默认BCLK速率之间的差。在一个实现中,BCLK频率信号152中的BCLK速率的值与默认BCLK速率之间的差超过阈值。该阈值可以在0.1%至1%的范围内。在一个实现中,当确定接收到的BCLK速率和参考BCLK速率之间的差超过阈值时,电源管理单元计算新的V/F曲线。在一个实现中,电源管理单元110确定不同BCLK频率值的电压值。对于其中接收到的BCLK速率和参考BCLK频率速率之间的差大于阈值(例如,阈值数或阈值百分比)的所有不同的BCLK频率值,电源管理单元110确定电压值。在一个实现中,电源管理单元110从图2B中的参考V/F曲线重新采样V/F值,以从参考V/F曲线计算每个BCLK频率的新V/F曲线,并且进一步对参考V/F曲线中不在参考BCLK频率范围内的余下BCLK频率进行数据插值,如下面关于表3和图2C详细描述的。
在一个实施方式中,电源管理单元110将电压请求信号158发送到电压调节器110。电压请求信号158包括电压调节器110的指令,以将处理器102的电压调节为默认BCLK参考速率的特定值。电压调节器110生成电压调节信号160,以将处理器102的电压维持在该特定值,而不管处理器102的BCLK频率的增加。例如,返回参考表2和图2B,用于调节电压的特定值为在4,000MHz的BCLK频率下的1.2V。因此,不管BCLK频率增加到4,000MHz以上,处理器的电压将保持在1.2V。
以下呈现的表3示出了使用150MHz的BCLK速率的不同BCLK频率值的新V/F曲线的示例。如表2所示,150MHz的BCLK速率高于处理器的100MHz的默认BCLK速率。如上所述,对于其中接收到的BCLK速率与默认BCLK频率速率之间的差大于阈值(例如,阈值数或阈值百分比)的所有不同的BCLK频率值,电源管理单元110确定电压值。在表3的示例中,150MHz的BCLK速率与默认BCLK速率之间的差是50MHz,该差被确定为大于阈值。因此,接收到的150MHz的BCLK速率的新V/F曲线被确定。如所示出的,在下面的表3中,输入PLL比包括从8到40范围并且包括8、40的值以及从1200MHz到6,000MHz范围并且包括1200MHz、6000MHz的相应的输入BCLK频率,以及从0.65到1.2V的范围并且包括0.65、1.2V的相应的电压值。针对不同BCLK频率计算的电压的一些示例是对于1200MHz为0.65V,对于2,400MHz为0.825V,对于3600MHz为1.075V。另外,如下表3所示,对于高于4,000MHz的BCLK频率,电压值保持在1.2V的恒定值。因此,即使当BCLK频率高于4,000MHz,电压调节器110也将处理器102的电压维持在1.2V。
新V/F曲线计算
表3
图2C是根据本公开的实现的曲线图240的示例,该曲线图240示出了使用表3中示出的BCLK频率和电压值的新V/F曲线242。如图2C中的曲线图240所示,针对150MHz的BCLK速率生成新的V/F曲线242。如所示出的,新的V/F曲线242非常类似于参考V/F曲线232,直到电压达到1.2V,BCLK频率约为4,000MHz,其中即使当BCLK频率继续增加到4,000MHz以上,电压仍保持在1.2V。如上所述,对于不在图2B中的参考V/F曲线的BCLK频率范围内的余下BCLK频率,进行数据插值。因此,在如图2C所示的新V/F曲线的示例中,对于余下的BCLK频率(诸如高于4,000MHz的值,该值不在800MHz至4,000MHz的参考BCLK频率中)插值诸如电压的数据。这种数据插值包括将电压保持在1.2V,以使BCLK频率值高于4,000MHz,如图2C所示。在一个实现中,可以计算其他类型的数据插值以生成新的V/F曲线。
图3是根据本公开的实现的在处理设备的计算机系统中提供BCLK感知自适应电压以用于超频的方法的流程图。方法300可以由处理逻辑执行,该处理逻辑可以包括硬件(例如,电路系统、专用逻辑、可编程逻辑、微代码等)、软件(诸如在处理系统、通用计算机系统或专用机器上运行的指令)、固件、或其组合。在一个实现中,方法300可以部分地由关于图1描述的电源管理单元110执行。
为了简化说明,方法300被描绘和描述为一系列动作。然而,根据本公开的动作可以以各种顺序和/或同时发生,并且可以与本文未呈现和描述的其他动作一起发生。此外,可以不全部地执行所示出的动作而实现根据所公开的主题的方法300。另外,本领域技术人员将理解和意识到方法300可以可替代地经由状态图或事件表示为一系列相关状态。
参考图3,在框302处,接收包括BCLK频率速率的BCLK频率信号。在框304处,将接收到的BCLK频率速率与参考V/F曲线中的参考(默认)BCLK频率速率进行比较。如上所述,参考BCLK频率速率可以是用户指定的值。如上所述,参考BCLK频率值从V/F曲线确定。可以使用若干不同对的参考BCLK频率(以MHz测量)和参考电压(以伏特测量)来计算参考V/F曲线,其中所述对被定义为参考V/F曲线的参考值。
随后,在框306处,确定接收到的BCLK频率速率与参考BCLK频率速率的差是否大于阈值。在一个示例中,阈值是阈值数。在另一示例中,阈值是阈值百分比。在框306处,当确定接收到的BCLK频率速率与参考BCLK频率速率的差不高于阈值时,则方法300返回到框302以接收下一个BCLK频率信号。在一个实现中,阈值可以在0.1%至1%的范围内。在一个实现中,(例如,由于超频)BCLK频率速率被确定为高于参考BCLK频率速率。如上所述,当时钟频率增加到高于时钟的默认时钟速率以便以更高的速度运行处理器时,则发生超频。在框306处,当确定接收到的BCLK频率速率与参考BCLK频率速率之间的差大于阈值时,则方法300前进到框308。在框308处,针对处理器的对应的多个BCLK频率计算多个电压。在一个实现中,使用如上所述的过程计算电压值。在框310处,基于多个所计算的电压和对应的BCLK频率计算新的V/F曲线。如上所述,在一个实现中,对于落在参考V/F曲线中的BCLK频率范围之外的BCLK频率,将新V/F曲线的电压值进行插值。在框312处,处理器被修改以使用新V/F曲线中所计算的电压值在接收到的BCLK频率速率下操作。因此,然后处理器可以利用新的V/F曲线来使用接收到的BCLK频率速率的电压进行操作。
图4A是示出根据本公开的一些实现的由处理设备400实现的有序流水线和寄存器重命名级、乱序发布/执行流水线的框图。图4A中的实线框示出有序流水线,而虚线框示出寄存器重命名、乱序发布/执行流水线。在图4A中,处理器流水线400包括获取级402、长度解码级404、解码级406、分配级408、重命名级410、调度(也称为分派或发布)级412、寄存器读取/存储器读取级414、执行级416、写回/存储器写入级418、异常处理级422以及提交级424。在一些实现中,402到324级的排序可以与所图示的不同,并且并不局限于在图4A中示出的特定排序。
图4B是示出根据本公开的一个实现的用于处理器400的微架构的框图,该处理器400实现包括异构核的处理设备。具体地,处理器400描绘了根据本公开的至少一个实现的要被包括在处理器中的有序架构核和寄存器重命名逻辑、乱序发布/执行逻辑。
处理器400包括耦合到执行引擎单元450的前端单元430,并且所述执行引擎单元和前端单元都耦合到存储器单元470。处理器400可以包括精简指令集计算(RISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核或混合或可替代核类型。作为又另一选项,处理器400可以包括专用核,诸如,例如,网络或通信核、压缩引擎、图形核等。在一个实现中,处理器400可以是多核处理器或可以是多处理器系统的一部分。
前端单元430包括耦合到指令高速缓存单元434的分支预测单元432,该指令高速缓存单元434耦合到指令转换后备缓冲器(TLB)436,该指令转换后备缓冲器436耦合到指令获取单元438,该指令获取单元438耦合到解码单元440。解码单元440(也称为解码器)可以对指令进行解码,并且生成从原始指令中解码出的、或以其他方式反映原始指令或从原始指令衍生出的一个或多个微操作、微代码入口点、微指令、其他指令或其他控制信号作为输出。解码器440可以使用各种不同的机制来实现。合适机制的示例包括但不限于:查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。指令高速缓存单元434可以进一步耦合到存储器单元470。解码单元440耦合到执行引擎单元450中的重命名/分配器单元452。
执行引擎单元450包括耦合到引退单元454的重命名/分配器单元452、以及一组一个或(多个)调度器单元456。引退单元454可以包括用于根据本发明的实现的处理设备的电源管理单元403。(多个)调度器单元456表示任何数量的不同调度器,包括保留站(RS)、中央指令窗等。(多个)调度器单元456耦合到(多个)物理寄存器堆单元458。(多个)物理寄存器堆单元458中的每一个表示一个或多个物理寄存器堆,其中不同的物理寄存器堆存储一个或多个不同的数据类型,诸如标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点等、状态(例如,作为要被执行的下一指令的地址的指令指针)等。(多个)物理寄存器堆单元458与引退单元454重叠以示出可以实现寄存器重命名和乱序执行的各种方式(例如,使用(多个)重排序缓冲器和(多个)引退寄存器堆;使用(多个)未来堆,(多个)历史缓冲区,以及(多个)引退寄存器堆;使用寄存器映射和寄存器池等)。
在一个实现中,处理器400可以与关于图1描述的处理器102相同。
通常,架构寄存器从处理器的外部或从程序员的角度来看是可见的。寄存器不限于任何已知具体类型的电路。各种不同类型的寄存器是合适的,只要它们能够存储和提供如本文所描述的数据即可。合适的寄存器的示例包括但可能不限于专用物理寄存器、使用寄存器重命名的动态分配的物理寄存器、专用和动态分配的物理寄存器的组合等。引退单元454和(多个)物理寄存器(多个)堆单元458耦合到(多个)执行集群460。所述(多个)执行群集560包括一组一个或多个执行单元462和一组一个或多个存储器存取单元464。执行单元462可以执行各种操作(例如,移位、加法、减法、乘法)并对各种类型的数据(例如,标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点)进行操作。
虽然一些实现可以包括专用于特定功能或功能集合的多个执行单元,但是其他实现可以只包括一个执行单元或包括全都执行全部功能的多个执行单元。(多个)调度器单元456、(多个)物理寄存器堆单元458、以及(多个)执行集群460被示为可能是多个,因为某些实现为某些类型的数据/操作创建单独的流水线(例如,标量整数流水线、标量浮点/紧缩整数/紧缩浮点/向量整数/向量浮点流水线、和/或各自具有其自己的调度器单元、物理寄存器堆单元和/或执行集群的存储器存取流水线-并且在单独的寄存器存取流水线的情况下,实现其中仅该流水线的执行集群具有(多个)存储器存取单元464的特定实现)。还应当理解,在使用单独的流水线的情况下,这些流水线中的一个或多个可以是乱序发出/执行,而其他流水线可以是有序发出/执行。
一组存储器存取单元464耦合到存储器单元470,举几个示例,该存储器单元470可以包括数据预取器480、数据TLB单元472、数据高速缓存单元(DCU)474、以及2级(L2)高速缓存单元476。在一些实现中,DCU 474也被称为第一级数据高速缓存(L1高速缓存)。DCU 474可以处理多个未完成的高速缓存未命中并且继续服务进入的存储和加载。它还支持维持高速缓存一致性。数据TLB单元472是用于通过映射虚拟和物理地址空间来提高虚拟地址转换速度的高速缓存。在一个示例性实现中,存储器存取单元464可以包括加载单元、存储地址单元和存储数据单元,加载单元、存储地址单元和存储数据单元均耦合到存储器单元470中的数据TLB单元472。L2高速缓存单元476可以耦合到一个或多个其他级的高速缓存并且最终耦合到主存储器。
在一个实现中,数据预取器480通过自动预测程序将要消耗哪个数据来推测性地将数据加载/预取到DCU 474。预取可以是指在处理器实际要求数据之前,将存储在存储器层级的一个存储器位置(例如,较低级高速缓存或存储器)中的数据传送到更靠近(例如,得出较低访问等待时间)处理器的较高级存储器位置。更具体地,预取可以指在处理器发出对正在返回的特定据的需求之前将数据从较低级的高速缓存/存储器中的一个提前检索到数据高速缓存和/或预取缓冲器。
处理器400可支持一个或多个指令集(例如,x86指令集(具有已经添加了较新版本的一些扩展)、加利福尼亚州桑尼维尔市(Sunnyvale)MIPS技术公司的MIPS指令集、加利福尼亚州桑尼维尔市(Sunnyvale)的ARM控股公司的ARM指令集(具有诸如NEON之类的任选的附加扩展))。
应当理解,核可以支持多线程(执行并行的两组或多组并行操作或线程)),并且可以以各种方式来完成所述多线程,所述各种方式包括时间分片多线程、同步多线程(其中,单个物理核为物理核正同步多线程的各线程中的每一个线程提供逻辑核)、或其组合(例如,时间切片的提取和解码以及此后诸如超线程化技术中的同步多线程)。
虽然在乱序执行的上下文中描述了寄存器重命名,但应当理解,可以在有序架构中使用寄存器重命名。然而处理器的所示实现还包括单独的指令和数据高速缓存单元以及共享的L2高速缓存单元,但替代性实现可以具有用于指令和数据两者的单个内部高速缓存,例如1级(L1)内部高速缓存、或多级内部高速缓存。在一些实现中,系统可以包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组合。可替代地,所有高速缓存都可以在所述核和/或处理器的外部。
图5示出了根据本公开的一个实现的用于包括混合核的处理器500的微架构的框图;在一些实现中,可以实施根据一个实现的指令来对具有字节、字、双字、四字等大小的数据元素以及诸如单精度和双精度整数和浮点数据类型等的数据的数据类型的数据元素进行操作。在一个实现中,有序前端501是处理器500的一部分,处理器500获取要执行的指令并准备它们稍后在处理器流水线中使用。
前端501可以包括若干个单元。在一个实现中,指令预取器526从存储器获取指令并将它们馈送给指令解码器528,该指令解码器528进而对这些指令进行解码或解释。例如,在一个实现中,解码器将接收到的指令解码成机器可以执行的称为“微指令”或“微操作”(也称为微op或uops)的一个或多个操作。在其他实现中,根据一个实现,解码器将指令解析为操作码和相应的数据以及被微架构用于执行操作的控制字段。在一个实现中,跟踪高速缓存530采用经解码的uop并且将它们组装为程序有序序列或在uop队列534中跟踪以用于执行。当跟踪高速缓存530遇到复杂指令时,微代码ROM 532提供完成操作所需的uop)。
一些指令被转换为单个微操作(micro-op),而其他指令需要若干个微操作(micro-ops)来完成整个操作。在一个实现中,如果完成指令需要多于四个微操作(micro-ops),则解码器528访问微代码ROM 532以执行指令。对于一个实现,指令可以被解码成用于在指令解码器528处理的少量的微操作(micro ops)。在另一实现中,如果需要多个微操作(micro-ops)来完成,则可以将指令存储在微代码ROM 532内。跟踪高速缓存530指的是入口点可编程逻辑阵列(PLA),用于根据来自微代码ROM 532的一个实现确定用于读取微代码序列以完成一个或多个指令的正确微指令指针。微代码ROM 532完成用于指令的排序微操作(micro-ops)之后,机器的前端501从跟踪高速缓存530重新获取微操作(micro-ops)。
乱序执行引擎503是指令准备执行的地方。乱序执行逻辑具有许多缓冲器,所述多个缓冲器用于使指令流平滑并重新排序,以在指令顺着流水线进行并被安排执行时优化性能。分配器逻辑分配每个uop执行所需的机器缓冲器和资源。寄存器重命名逻辑将逻辑寄存器重命名到寄存器堆中的条目上。在指令调度器:存储器调度器、快速调度器502、慢速/通用浮点调度器504和简单浮点调度器506前面,分配器还为两个uop队列(一个用于存储器操作,一个用于无存储器操作)之一中的每个uop分配条目。uop调度器502、504、506基于其依赖输入寄存器操作数源的准备状态以及uop需要完成其操作执行资源的可用性来确定uop何时准备好执行。一个实现的快速调度器502可以在主时钟周期的每一半上进行调度,而其他调度器可以仅在每个主处理器时钟周期调度一次。调度器仲裁分派端口以调度uop用于执行。
寄存器堆508、510位于调度器502、504、506与执行块511中的执行单元512、514、516、518、520、522、524之间。存在单独的寄存器堆508、510,分别用于整数操作和浮点操作。一个实现的每个寄存器堆508、510还包括旁路网络,该旁路网络可以绕过或仅将尚未写入到寄存器堆中的已完成结果转发给新的依赖uop。整数寄存器堆508和浮点寄存器堆510还能够与其他寄存器堆进行数据通信。对于一个实现,整数寄存器堆508被分成两个单独的寄存器堆,一个寄存器堆用于数据的低阶32位,第二寄存器堆用于数据的高阶32位。一个实现的浮点寄存器堆510具有128位宽的条目,因为浮点指令通常具有宽度为从54位至128位的操作数。
执行块511包含实际上在其中执行指令的执行单元512、514、516、518、520、522、524。该部分包括寄存器堆508、510,所述寄存器堆存储微指令需要执行的整数和浮点数据操作数值。一个实现的处理器500由多个执行单元组成:地址生成单元(AGU)512、AGU 514、快速ALU 516、快速ALU 518、慢速ALU 520、浮点ALU 522、浮点移动单元524。对于一个实现,浮点执行块522、524执行浮点、MMX、SIMD和SSE、或其他操作。一个实现的浮点ALU 522包括64位乘64位浮点除法器以执行除法、平方根和剩余微ops。对于本发明的实现,涉及浮点值的指令可以用浮点硬件来处理。
在一个实现中,ALU操作前往高速ALU执行单元516、518。一个实现的快速ALU 516、518可以以半个时钟周期的有效等待时间执行快速操作。对于一个实现,大多数复杂整数操作转到慢速ALU 520,因为慢速ALU 520包括用于长等待时间类型的操作(诸如,乘法、移位、标志逻辑、以及分支处理)的整数执行硬件。存储器加载/存储操作由AGU 512、514执行。对于一个实现,在对64位数据操作数执行整数操作的上下文中描述了整数ALU 516、518、520。在替代实现中,ALU 516、518、520可以被实现为以支持包括16、32、128、256等的各种数据位。类似地,可以实现浮点单元522、524以支持具有各种宽度的位的操作数范围。对于一个实现,浮点单元522、524可以结合SIMD和多媒体指令在128位宽的紧缩数据操作数上操作。
在一个实现中,uop调度器502、504、506在父加载完成执行之前分派依赖的操作。在处理器500中推测性地调度和执行uop时,处理器500还包括用于处理存储器未命中的逻辑。如果数据高速缓存中的数据加载未命中,则可能存在流水线中飞行的已经因暂时不正确数据而离开调度器的依赖操作。重播机制跟踪并重新执行使用不正确数据的指令。仅仅依赖操作需要被重放,并且允许完成独立操作。处理器的一个实现的调度器和重放机制还被设计成捕获用于文本串比较操作的指令序列。
根据本公开的实现,处理器500还包括用于实现存储地址预测以进行存储器消歧的逻辑。在一个实现中,处理器500的执行块511可以包括用于实现存储地址预测以进行存储器消歧的存储地址预测器(未示出)。
处理器500可以包括耦合到执行块511的引退单元554。引退单元554可以包括用于根据本公开的实现的处理设备的电源管理单元505。
术语“寄存器”可以指代用作识别操作数的指令的一部分的机载处理器存储位置。换言之,寄存器可以是从处理器外部(从程序员的角度来看)可用的寄存器。然而,实现的寄存器不应限于特定类型的电路。而是,实现的寄存器能够存储和提供数据,并且执行本文所描述的功能。本文所描述的寄存器可以由处理器内的电路系统使用任何数量的不同技术来实现,诸如专用物理寄存器、使用寄存器重命名的动态分配的物理寄存器、专用和动态分配的物理寄存器的组合等。在一个实现中,整数寄存器存储三十二位整数数据。一个实现的寄存器堆还包含用于紧缩数据的八个多媒体SIMD寄存器。
对于以下讨论,寄存器被理解为设计成保持紧缩数据的数据寄存器,诸如使用来自加利福尼亚州圣克拉拉(Santa Clara)的英特尔公司的MMX技术实现的微处理器中的64位宽MMXTM寄存器(在某些情况下也称为“mm”寄存器)。这些MMX寄存器以整数形式和浮点形式获得,可以利用伴随SIMD和SSE指令的紧缩数据元素进行操作。类似地,与SSE2、SSE3、SSE4或更高版本(通常称为“SSEx”)技术相关的128位宽XMM寄存器也可以用于保持这样的紧缩数据操作数。在一个实现中,在存储紧缩数据和整数数据时,寄存器不需要对这两种数据类型进行区分。在一个实现中,整数和浮点包含在相同的寄存器堆或不同的寄存器堆中。此外,在一个实现中,浮点和整数数据可以存储在不同的寄存器或相同的寄存器中。
现在参考图6,示出的是可以使用本公开的实现的系统600的框图。如图6所示,多处理器系统600是点对点互连系统,且包括经由点对点互连650耦合的第一处理器670和第二处理器680。虽然仅以两个处理器670、680来示出,但应理解本公开的实现的范围不限于此。在其他实现中,在给定处理器中可以存在一个或多个附加处理器。在一个实现中,多处理器系统600可以实现如本文所描述的混合核。
处理器670和680被示出为分别包括集成存储器控制器单元672和682。处理器670还包括作为其总线控制器单元的一部分的点对点(P-P)接口676和678;类似地,第二处理器680包括P-P接口686和688。处理器670、680可以使用P-P接口电路678、688经由点对点(P-P)接口650交换信息。如图6所示,IMC 672和682将处理器耦合到相应的存储器、即存储器632和存储器634上,所述存储器可以是本地附接到对应处理器上的主存储器的一部分。
处理器670、680可以各自使用点对点接口电路676、694、686、698经由单独的P-P接口652、654来与芯片组790交换信息。芯片组690还可以经由高性能图形接口639与高性能图形电路638交换信息。
共享高速缓存(未示出)可以包括在任一处理器中或者在两个处理器外部,但经由P-P互连与处理器相连接,使得如果处理器被置于低功耗模式中,则任一或两个处理器的本地高速缓存信息可以被存储在所述共享高速缓存中。
芯片组690可经由接口696耦合到第一总线616。在一个实现中,第一总线616可以是外围组件互连(PCI)总线,或诸如PCI Express总线或另一种第三代I/O互连总线的总线,但本公开的范围不限于此。
如图6所示,各种I/O设备614可以连同总线桥接器618耦合到第一总线616,该总线桥接器618将第一总线616耦合到第二总线620。在一个实现中,第二总线620可以是低引脚数(LPC)总线。在一个实现中,各种设备可以耦合到第二总线620,所述设备包括例如键盘和/或鼠标622、通信设备627、以及可以包括指令/代码和数据630的存储单元628(诸如磁盘驱动器或者其他大容量存储设备)。进一步地,音频I/O 624可以耦合到第二总线620。应注意的是,其他架构是可能的。例如,替代图6的点对点架构,系统可以实现多站式总线或其他这样的架构。
现在参考图7,示出的是系统700的框图,本公开的一个实现可以在所述系统700中操作。系统700可以包括耦合到图形存储器控制器中枢(GMCH)715的一个或多个处理器710、720。图7中用虚线表示附加处理器715的可选性质。在一个实现中,处理器710、715实现根据本公开的实现的混合核。
每个处理器710、715可以是如上所述的电路、集成电路、处理器、和/或硅集成电路的某个版本。然而,应当注意的是,在处理器710、715中将不太可能存在集成图形逻辑和集成存储器控制单元。图7展示了GMCH 720可以耦合到存储器740,该存储器740可以是例如动态随机存取存储器(DRAM)。对于至少一个实现,DRAM可以与非易失性高速缓存相关联。
GMCH 720可以是芯片组、或者芯片组的一部分。GMCH 720可以与(多个)处理器710、715通信,并且控制(多个)处理器710、715与存储器740之间的交互。GMCH 720还可以充当(多个)处理器710、715与系统700的其他元件之间的加速总线接口。对于至少一个实现,GMCH 720经由多站式分支总线(诸如前端总线(FSB)795)与(多个)处理器710、715通信。
此外,GMCH 720耦合到显示器745(诸如平板显示器或触摸屏显示器)。GMCH 720可以包括集成图形加速器。GMCH 720进一步地耦合到输入/输出(I/O)控制器中枢(ICH)750,该控制器中枢(ICH)750可以用于将各种外围设备耦合到系统700。例如在图7的实现中示出的是外部图形设备760,该外部图形设备760可以是与另一个外围设备770一起耦合到ICH750的独立图形设备。
可替代地,在系统700中还可以存在附加的或不同的处理器。例如,(多个)附加处理器715可以包括与处理器710相同的(多个)附加处理器、与处理器710异构或不对称的(多个)附加处理器、加速器(诸如图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列、或任何其他处理器。就包括架构、微架构、热、功耗特性等的一系列指标度量而言,处理器710、715之间存在各种差异。这些差异可以有效地将其本身表现为处理器710、715之间的不对称性和异构性。对于至少一个实现,各种处理器710、715可以驻留在相同管芯封装中。
现在参考图8,示出的是系统800的框图,本公开的一个实现可以在所述系统800中操作。图8示出了处理器870、880。在一个实现中,处理器870、880可以实现以上所述的混合核。处理器870、880可以分别包括集成存储器和I/O控制逻辑(“CL”)872和882,并且分别经由点对点(P-P)接口878和888之间的点对点互连850彼此相互通信。如图所示,处理器870、880各自经由点对点互连852和854通过对应的P-P接口876到894以及886到898与芯片组890通信。对于至少一个实现,CL 872、882可以包括集成的存储器控制器单元。CL 872、882可以包括I/O控制逻辑。如所描绘的,存储器832、834耦合到CL 872、882,并且I/O设备814也耦合到控制逻辑872、882。传统I/O设备815经由接口896耦合到芯片组890。
实现可以以许多不同的系统类型来实现。图9是根据本公开的实现的SoC 900的框图。虚线框是关于更先进的SoC的可选特征。在图9中,(多个)互连单元912耦合到:应用处理器920,包括一组一个或多个核902A-N以及共享高速缓存单元906;系统代理单元910;总线控制器单元916;集成存储器控制器单元914;一组或一个或多个媒体处理器918,该媒体处理器918可以包括集成图形逻辑908,用于提供静止和/或视频相机功能的图像处理器924,用于提供硬件音频加速的音频处理器926,以及用于提供视频编码/解码加速的视频处理器928;静态随机存取存储器(SRAM)单元930;直接存储器存取(DMA)单元932;用于耦合到一个或多个外部显示器显示单元940。在一个实现中,存储器模块可以被包括在(多个)集成存储控制器单元914中。在另一个实现中,存储器模块可以包括在SoC 900的可用来访问和/或控制存储器的一个或多个其他组件中。应用处理器920可以包括用于实现混合核的存储地址预测器,如本文的实现中所描述的。
存储器层级结构包括核内的一个或多个级别的高速缓存、一组或者一个或多个共享高速缓存单元906、以及耦合到所述一组集成存储器控制器单元914的外部存储器(未示出)。所述一组共享高速缓存单元906可以包括一个或多个中级高速缓存,诸如级别2(L2)、级别3(L3)、级别4(L4)、或其他级别的高速缓存、终极高速缓存(LLC),和/或其组合。
在一些实现中,核902A-H中的一个或多个核能够进行多线程。系统代理910包括协调和操作核902A-N的那些组件。系统代理单元910可包括例如电源控制单元(PCU)和显示单元。PCU可以是或包括用于调节核902A-N和集成图形逻辑908的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
就架构和/或指令集而言,核902A-N可以是同构的或异构的。例如,一些核902A-N可以是有序的,而其他核是乱序的。作为另一示例,核902A-N中的两个或更多个可以能够执行相同的指令集,而其他核可以仅能够执行所述指令集的子集或执行不同的指令集。
应用处理器920可以是通用处理器,诸如可从加利福尼亚州圣克拉拉的英特尔公司获得的CoreTMi3、i5、i7、2Duo和Quad、XeonTM、ItaniumTM、AtomTM或QuarkTM处理器。可替代地,应用处理器920可以来自另一公司,诸如ARM控股有限公司(ARM HoldingsTM,Ltd)、MIPS等。处理器920可以是专用处理器,诸如例如网络或通信处理器、压缩引擎、图形处理器、协处理器、嵌入式处理器等。应用处理器920可以在一个或多个芯片上实现。处理器920可以是一个或多个基板的一部分,和/或在一个或多个基板上使用大量处理技术(诸如举例而言,BiCMOS、CMOS、或NMOS)中的任一种技术实现。
图10是根据本公开的芯片上系统(SoC)设计的实现的框图。作为具体的说明性示例,SoC 1000包括在用户设备(UE)中。在一个实现中,UE是指由终端用户用于通信的任何设备,诸如手持电话、智能电话、平板电脑、超薄笔记本、具有宽带适配器的笔记本、或任何其他类似的通信设备。通常,UE连接到基站或节点,所述UE本质上对应于GSM网络中的移动台(MS)。
这里,SOC 1000包括2个核—核1006和核1007。核1006和1007可以符合指令集架构,诸如基于英特尔架构核(Architecture CoreTM)的处理器、超微半导体有限公司(AMD)处理器、基于MIPS的处理器、基于ARM设计的处理器、或其客户,以及它们的授权方或兼容方。核1006和1007被耦合到高速缓存控制1008,该高速缓存控制1008与总线接口单元1009和L2高速缓存1010相关联,以与系统1000的其他部分进行通信。互连1010包括潜在地实现所描述的本公开的一个或多个方面的片上互连(诸如IOSF、AMBA或上文讨论的其他互连)。在一个实现中,核1006、1007可以实现如本文实现所描述的混合核。
互连1010向其他组件提供通信通道,诸如与SIM卡接口连接的用户身份模块(SIM)1030、用于保持引导代码以便由核1006和1007执行对SoC1000初始化和引导的引导ROM1035、用于与外部存储器(例如,DRAM 1060)接口连接的SDRAM控制器1040、用于与非易失性存储器(例如,闪存1065)接口连接的闪存控制器1045、用于与外围设备接口连接的外围控制1050(例如,串行外围接口)、用于显示和接收输入(例如,触摸使能的输入)的视频编解码器1020和视频接口1025、用于执行图形相关的计算的GPU 1015等。这些接口中的任何一个可以结合本文所述的本公开的各方面。此外,系统1000展示了用于通信的外围装置,如蓝牙模块1070、3G调制解调器1075、GPS 1080、以及Wi-Fi 1085。
图11示出了以计算系统1100的示例形式的机器的图形表示,其中可执行使得机器执行本文所讨论的方法中的任意一种或多种的指令集。在替代性实现中,机器可以连接(例如,联网)到LAN、内联网、外联网、或因特网中的其他机器。机器可以在客户端-服务器网络环境下以服务器或客户端设备的身份操作,或在点对点(或分布式)网络环境中作为对等机操作。所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络电器、服务器、网络路由器、交换机或桥、或者能够执行指定由数据处理系统执行的动作的一组指令(连续的或以其他方式)的任何机器。进一步,尽管仅示出了单个机器,单术语机器摂还可被认为包括任何机器的集合,其可独立地或结合地执行一组(或多组)指令来执行本文所讨论的方法中的任何一个或多个方法。
计算机系统1100包括处理设备1102、主存储器1104(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)(诸如同步DRAM(SDRAM)或DRAM(RDRAM)等)、静态存储器1106(例如,闪存、静态随机存取存储器(SRAM)等)、以及数据存储设备1118,这些经由总线1130彼此通信。
处理设备1102表示一个或多个通用处理设备,如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算机(RISC)微处理器、超长指令字(VLIW)微处理器、或实现其他指令集的处理器、或实现指令集组合的处理器。处理设备1102还可以是一个或多个专用处理设备,如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。在一个实现中,处理设备1102可以包括一个或多个处理核。处理设备1102被配置成执行处理逻辑1126,该处理逻辑1126用于执行本文所讨论的操作和步骤。在一个实现中,处理设备1102与关于图1所描述的处理器架构100相同,如本文用本公开的实现所描述的。
计算机系统1100可以进一步包括通信地耦合到网络1120的网络接口设备1108。计算机系统1100还可以包括视频显示单元1110(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备1112(例如,键盘)、光标控制设备1114(例如,鼠标)、以及信号生成设备1116(例如,扬声器)。此外,计算机系统1100可以包括图形处理单元1122、视频处理单元1128、以及音频处理单元1132。
数据存储设备1118可以包括机器可访问存储介质1124,在该存储介质1124上存储了实现本文所描述的功能方法论中的任何一种或多种(诸如实现如上所述的用于存储器消歧的存储地址预测)的软件1126。软件1126还可以在由计算机系统1100对其执行期间全部或至少部分地驻留在主存储器1104内作为指令1126和/或在处理设备1102内作为处理逻辑1126;主存储器1104和处理设备1102也构成机器可访问的存储介质。
机器可读存储介质1124还可以用于存储实现用于混合核(诸如根据本公开的实现所描述的)的存储地址预测的指令1126。虽然机器可访问存储介质1118在示例实现中被示出为单个介质,但术语“机器可访问存储介质”应当被视为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库、和/或相关联的高速缓存和服务器)。术语“机器可访问的存储介质”还应视为包括能够存储、编码或携带用于由机器执行的指令集并且使机器执行本公开的方法论中的任何一种或多种的任何介质。术语“机器可访问存储介质”应当相应地被视为包括但不限于固态存储器、以及光学介质和磁性介质。
以下示例涉及进一步的实现。
示例1是一种处理设备,该设备包括:电源管理单元,该电源管理单元用于接收要应用于处理设备的基本时钟(BCLK)频率速率;并且使用参考电压/频率曲线确定对应于BCLK频率速率的电压,其中基于处理设备的参考BCLK频率速率生成参考V/F曲线。
在示例2中,示例1的主题可以可选地包括:其中,电源管理单元用于将BCLK频率速率与处理设备的参考BCLK频率速率进行比较。
在示例3中,示例1-2的主题可以可选地包括:其中,电源管理单元用于确定BCLK频率速率的值与处理设备的参考BCLK频率速率的值之间的差。
在示例4中,示例1-3的主题可以可选地包括,其中在确定所述差大于阈值时,电源管理单元基于对应于BCLK频率速率的电压和参考V/F曲线生成新的V/F曲线。
在示例5中,示例1-4的主题可以可选地包括:其中,电源管理单元用于将处理设备的多个BCLK频率进行插值以生成包括锁相环(PLL)比的信号,其中PLL比是处理设备的多个BCLK频率速率中的每一个与BCLK频率的比。
在示例6中,示例1-5的主题可以可选地包括:其中,PLL比与BCLK频率速率相乘,以计算对应于BCLK频率速率的处理设备的BCLK频率。
在示例7中,示例1-6的主题可以可选地包括:其中,以对应于BCLK频率的PLL比来确定电压。
示例8是芯片上系统(SoC),该芯片上系统(SoC)包括:存储器;以及处理设备,该处理设备通信地耦合到存储器,该处理设备包括:电源管理单元,该电源管理单元用于接收要应用于处理设备的基本时钟(BCLK)频率速率;并且使用参考电压/频率曲线确定对应于BCLK频率速率的电压,其中基于处理设备的参考BCLK频率速率生成参考V/F曲线。
在示例9中,示例8的主题可以可选地包括:其中,电源管理单元用于将BCLK频率速率与处理设备的参考BCLK频率速率进行比较。
在示例10中,示例8-9的主题可以可选地包括:其中,电源管理单元用于确定BCLK频率速率的值与处理设备的参考BCLK频率速率的值之间的差。
在示例11中,示例8-10的主题可以可选地包括,其中在确定所述差大于阈值时,电源管理单元用于基于对应于BCLK频率速率的电压和参考V/F曲线生成新的V/F曲线。
在示例12中,示例8-11的主题可以可选地包括:其中,电源管理单元将处理设备的多个BCLK频率进行插值以生成包括锁相环(PLL)比的信号,其中PLL比是处理设备的多个BCLK频率中的每一个与BCLK频率速率的比。
在示例13中,示例8-12的主题可以可选地包括:其中,PLL比与BCLK频率速率相乘,以计算对应于BCLK频率速率的处理设备的BCLK频率。
在示例14中,示例8-13的主题可以可选地包括:其中,以处理设备的多个BCLK频率中的对应于BCLK频率的PLL比来确定电压。
示例15是一种方法,该方法包括:接收要应用于处理设备的基本时钟(BCLK)频率速率;并且使用参考电压/频率曲线确定对应于BCLK频率速率的电压,其中基于处理设备的参考BCLK频率速率生成参考V/F曲线。
在示例16中,示例15的主题可以可选地包括:进一步包括将BCLK频率速率与处理设备的参考BCLK频率速率进行比较。
在示例17中,示例15-16的主题可以可选地包括:进一步包括确定BCLK频率速率的值与处理设备的参考BCLK频率速率的值之间的差。
在示例18中,示例15-17的主题可以可选地包括:进一步包括在确定所述差大于阈值时,基于对应于BCLK频率速率的电压和参考V/F曲线生成新的V/F曲线。
在示例19中,示例15-18的主题可以可选地包括:进一步包括将处理设备的多个BCLK频率进行插值以生成包括锁相环(PLL)比的信号,其中PLL比是处理设备的多个BCLK频率中的每一个与BCLK频率速率的比。
在示例20中,示例15-19的主题可以可选地包括:其中,以处理设备的多个BCLK频率中的对应于BCLK频率的PLL比来确定电压。
示例21是非瞬态机器可读存储介质,该存储介质包括指令,该指令当由处理设备访问时使得处理设备执行包括接收要应用于处理设备的基本时钟(BCLK)频率速率的操作;并且使用参考电压/频率曲线确定对应于BCLK频率速率的电压,其中基于处理设备的参考BCLK频率生成参考V/F曲线。
在示例22中,示例21的主题可以可选地包括:其中,所述操作进一步包括将BCLK频率速率与处理设备的参考BCLK频率速率进行比较。
在示例23中,示例21-22的主题可以可选地包括:其中,所述操作进一步包括基于对应于BCLK频率速率的电压和参考V/F曲线生成新的V/F曲线。
在示例24中,示例21-23的主题可以可选地包括:其中,所述操作进一步包括将处理设备的多个BCLK频率进行插值以生成包括锁相环(PLL)比的信号,其中PLL比是处理设备的多个BCLK频率中的每一个与BCLK频率速率的比。
在示例25中,示例21-24的主题可以可选地包括:其中,以处理设备的多个BCLK频率中的对应于BCLK频率的PLL比来确定电压。
各种实现可具有以上所述的结构特征的不同组合。例如,上面描述的SOC的所有可选特征也可以相对于本文描述的处理器来实现,并且示例中的具体细节可用在一个或多个实现中的任何地方。
设计可以贯穿各个阶段,从产生到仿真到制造。表示设计的数据可以以许多方式来表示设计。首先,如在仿真中有用的,可以使用硬件描述语言或其他功能描述语言表示硬件。另外,可以在设计过程的一些阶段产生具有逻辑和/或晶体管栅极的电路级模型。此外,大多数设计在一些阶段达到表示硬件模型中各种设备的物理布置的数据级别。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定用于产生集成电路的掩模在不同掩模层上存在或不存在各种特征的数据。在任何设计的表示中,数据可以存储在任何形式的机器可读介质中。存储器或磁存储或光存储(诸如,盘)可以是用于存储信息的机器可读介质,所述信息是经由光波或电波来传输的,所述光波或电波被调制或以其他方式被生成以传输此类信息。当传输指示或携带代码或设计的电载波时,在执行电信号的复制、缓冲或重传的程度上,进行新的复制。因此,通信提供商或网络提供商可以至少暂时地在有形的机器可读介质上存储制品(诸如编码成载波的信息),从而将本公开的实现的技术具体化。
在此处使用的模块指的是硬件、软件和/或固件的任何组合。作为示例,模块包括硬件,如与非瞬态介质相关联的用于存储代码的微控制器,所述代码被适配成用于由微控制器执行。因此,在一个实现中,对模块的引用是指硬件,所述硬件具体被配置成标识和/或执行要保持在非瞬态介质中的代码。此外,在另一实现中,模块的使用指包括代码的非瞬态介质,所述代码具体地被适配成由微控制器执行以执行预定操作。并且如可以推断的,在又另一实现中,术语“模块”(在本示例中)可以指微控制器与非瞬态介质的组合。通常,被示出为单独的模块边界通常变化并且可能重叠。例如,第一和第二模块可以共享硬件、软件、固件或其组合,同时可能保留一些独立的硬件、软件或固件。在一个实现中,术语“逻辑”的使用包括硬件,诸如晶体管、寄存器,或其他硬件(诸如可编程逻辑设备)。
在一个实现中,使用短语“配置成(configured to)”是指安排、组合、制造、提供销售、导入和/或设计设备、硬件、逻辑或元件,从而执行指定或确定的任务。在本示例中,如果设计,耦合和/或互连以执行所述指定任务,则未被操作的设备或其元件仍被“配置成(configured to)”执行指定任务。仅作为说明性示例,逻辑门可以在操作期间提供0或1。但是,“配置成(configured to)”向时钟提供使能信号的逻辑门不包括可提供1或0的每个可能的逻辑门。相反,逻辑门是以某种方式耦合的,使得在操作期间1或0输出是启用时钟。再次注意到的是,术语“配置成(configured to)”的使用不需要操作,而是集中于设备、硬件和/或元件的潜在状态,其中在潜在状态中,设备、硬件和/或元件被设计成当该设备、硬件和/或元件运行时执行具体任务。
此外,在一个实现中,短语“用于(to)”、“能够/能够用于(capable of/to)”和或“能操作以(operable to)”的使用指的是以这样的方式设计的一些设备、逻辑、硬件和/或元件能够以指定方式使用设备、逻辑、硬件和/或元件。注意,在一个实现中,如以上“用于(to)”、“能够用于(capable to)”或“能操作以(operable to)”的使用是指设备、逻辑、硬件和/或元件的潜在状态,其中,设备、逻辑、硬件和/或元件不操作但是被设计成能够以特定方式使用设备。
如本文中使用的值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑值或逻辑的值的使用也称为简单地代表二进制逻辑状态的1和0。例如,1是指高逻辑电平,并且0是指低逻辑电平。在一个实现中,存储单元(诸如晶体管或闪存单元)可以能够保持单个逻辑值或多个逻辑值。然而,计算机系统中值的其他表示已被使用。例如,十进制数字十也可以表示为二进制值910和十六进制字母A。因此,值包括能够在计算机系统中保持的信息的任何表示。
此外,状态可以由值或值的一部分表示。作为示例,第一值(诸如逻辑一)可以代表默认或初始状态,而第二值(诸如逻辑零)可以代表非默认状态。另外,在一个实现中,术语“重置”和“设置”分别是指默认的和更新的值或状态。例如,默认值可能包括高逻辑值(即,重置),而更新的值可能包括低逻辑值(即,设置)。注意,可利用值的任意组合来表示任意数量的状态。
上面阐述的方法、硬件、软件、固件或代码的实现可经由存储在机器可访问、机器可读、计算机可访问或计算机可读的介质上的、可由处理元件执行的指令或代码来实现。非瞬态机器可访问/可读介质包括以由机器(诸如,计算机或电子系统)可读的形式提供(即,存储和/或传输)信息的任何机制。例如,非瞬态机器可访问介质包括:随机存取存储器(RAM),如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁存储介质或光存储介质;闪存设备;电存储设备;光存储设备;声学存储设备;用于保持从瞬态(传播的)信号(例如,载波、红外信号、数字信号)接收到的信息的其他形式的存储设备等,它们与可以从中接收信息的非瞬态介质区分开来。
用于对逻辑进行编程以执行本公开的实现的指令可以存储在系统中的存储器内,例如DRAM、高速缓存、闪存或其他存储装置。此外,指令可以经由网络或借助于其他计算机可读介质被分配。因此,机器可读介质可以包括用于存储或传输以机器(例如,计算机)可读的形式的信息的任何机制,但是不限于软盘、光盘、紧致盘(Compact Disc)、紧致盘只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于经由电、光、声音、或其他形式的传播信号(例如,载波、红外信号、数字信号等)在互联网上传输信息的有形机器可读存储装置。因此,计算机可读介质包括适用于存储或传输机器(例如,计算机)可读形式的电子指令或信息的任何类型的有形机器可读介质。
贯穿本说明书,对“一个实现”或“一实现”的引用意味着结合该实现描述的特定特征、结构或特性被包括在本发明的至少一个实现中。因此,在本说明书通篇的多个位置中的短语“在一个实现中”或“在一实现中”的出现不一定全部指向同一实现。此外,在一个或多个实现中,可以以任何合适的方式来组合具体特征、结构、或特性。
在上述说明书中,已经参考特定示例性实现给出了详细描述。然而,在不偏离所附权利要求中阐述的本公开的更广精神和范围的情况下,将显然的是可对其进行各种修改和改变。因此,说明书和附图应被认为是说明性而非限制性意义。此外,实现和其他示范性语言的前述使用不一定指代相同的实现或相同的示例,而是可指不同且有区别的实现,以及可能指相同的实现。

Claims (22)

1.一种处理设备,包括:
电源管理单元,用于:
接收要应用于所述处理设备的基本时钟(BCLK)速率;以及
使用参考电压/频率V/F曲线确定对应于所述BCLK速率的、用于操作所述处理设备的电压,其中基于所述处理设备的参考BCLK速率生成所述参考V/F曲线;
基于对应于所述BCLK速率的所述电压和所述参考V/F曲线来生成新的V/F曲线,以便确定用于操作所述处理设备的新的电压。
2.如权利要求1所述的处理设备,其特征在于,所述电源管理单元用于将所述BCLK速率与所述处理设备的所述参考BCLK速率进行比较。
3.如权利要求1所述的处理设备,其特征在于,所述电源管理单元用于确定所述BCLK速率的值与所述处理设备的所述参考BCLK速率的值之间的差。
4.根据权利要求3所述的处理设备,其特征在于,在确定所述差大于阈值时,所述电源管理单元用于基于对应于所述BCLK速率的所述电压和所述参考V/F曲线生成新的V/F曲线。
5.如权利要求1所述的处理设备,其特征在于,所述电源管理单元用于将所述处理设备的多个BCLK频率进行插值以产生包括锁相环(PLL)比的信号,其中所述PLL比是所述处理设备的多个BCLK频率中的每一个与所述BCLK速率的比。
6.如权利要求5所述的处理设备,其特征在于,所述PLL比与所述BCLK速率相乘,以计算对应于所述BCLK速率的所述处理设备的BCLK频率。
7.如权利要求6所述的处理设备,其特征在于,以对应于所述BCLK频率的PLL比确定所述电压。
8.一种芯片上系统(SoC),包括:
存储器;以及
处理设备,所述处理设备通信地耦合到所述存储器,其中所述处理设备,包括:
电源管理单元,用于:
接收要应用于所述处理设备的基本时钟(BCLK)速率;以及使用参考电压/频率V/F曲线确定对应于所述BCLK速率的、用于操作所述处理设备的电压,其中基于所述处理设备的参考BCLK速率生成所述参考V/F曲线;
基于对应于所述BCLK速率的所述电压和所述参考V/F曲线来生成新的V/F曲线,以便确定用于操作所述处理设备的新的电压。
9.如权利要求8所述的SoC,其特征在于,所述电源管理单元用于将所述BCLK速率与所述处理设备的所述参考BCLK速率进行比较。
10.如权利要求9所述的SoC,其特征在于,所述电源管理单元用于确定所述BCLK速率的值与所述处理设备的所述参考BCLK速率的值之间的差。
11.根据权利要求10所述的SoC,其特征在于,在确定所述差大于阈值时,所述电源管理单元用于基于对应于所述BCLK速率的所述电压和所述参考V/F曲线生成新的V/F曲线。
12.如权利要求8所述的SoC,其特征在于,所述电源管理单元将所述处理设备的多个BCLK频率进行插值以产生包括锁相环(PLL)比的信号,其中所述PLL比是所述处理设备的多个BCLK频率中的每一个与所述BCLK速率的比。
13.如权利要求12所述的SoC,其特征在于,所述PLL比与所述BCLK速率相乘,以计算对应于所述BCLK速率的所述处理设备的BCLK频率。
14.根据权利要求12所述的SoC,其特征在于,以对应于所述处理设备的所述多个BCLK频率中的BCLK频率的PLL比确定所述电压。
15.一种方法,包括:
接收要应用于所述处理设备的基本时钟(BCLK)速率;以及
使用参考电压/频率V/F曲线确定对应于所述BCLK速率的、用于操作处理设备的电压,其中基于所述处理设备的参考BCLK速率生成所述参考V/F曲线;
基于对应于所述BCLK速率的所述电压和所述参考V/F曲线来生成新的V/F曲线,以便确定用于操作所述处理设备的新的电压。
16.如权利要求15所述的方法,进一步包括:确定所述BCLK速率的值与所述处理设备的所述参考BCLK速率的值之间的差。
17.根据权利要求16所述的方法,进一步包括:在确定所述差大于阈值时,基于对应于所述BCLK速率的所述电压和所述参考V/F曲线生成新的V/F曲线。
18.如权利要求15所述的方法,进一步包括:将所述处理设备的多个BCLK频率进行插值以产生包括锁相环(PLL)比的信号,其中所述PLL比是所述处理设备的多个BCLK频率中的每一个与所述BCLK速率的比。
19.根据权利要求18所述的方法,其中,以对应于所述处理设备的所述多个BCLK频率中的BCLK频率的PLL比确定所述电压。
20.至少一种机器可读介质,所述机器可读介质包括多条指令,所述多条指令响应于在计算设备上被执行而使所述计算设备执行根据权利要求15至19中任一项所述的方法。
21.一种用于在所述处理设备中实现自动自适应电压控制的引擎的设备,所述设备被配置为执行权利要求15至19中的任一项所述的方法。
22.一种设备,包括:用于执行权利要求15至19中的任一项所述的方法的装置。
CN201780046784.3A 2016-08-29 2017-07-27 用于自动自适应电压控制的方法和设备 Active CN109564459B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/250,123 2016-08-29
US15/250,123 US10095302B2 (en) 2016-08-29 2016-08-29 Method and apparatus for automatic adaptive voltage control
PCT/US2017/044240 WO2018044442A1 (en) 2016-08-29 2017-07-27 A method and apparatus for automatic adaptive voltage control

Publications (2)

Publication Number Publication Date
CN109564459A CN109564459A (zh) 2019-04-02
CN109564459B true CN109564459B (zh) 2024-02-13

Family

ID=61242482

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780046784.3A Active CN109564459B (zh) 2016-08-29 2017-07-27 用于自动自适应电压控制的方法和设备

Country Status (4)

Country Link
US (1) US10095302B2 (zh)
EP (1) EP3504607B1 (zh)
CN (1) CN109564459B (zh)
WO (1) WO2018044442A1 (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104137024A (zh) * 2011-12-22 2014-11-05 英特尔公司 包括使用深降电模式的高能效处理器热节流的用于高能效且节能的方法、装置和系统
CN104813277A (zh) * 2012-12-19 2015-07-29 英特尔公司 用于处理器的功率效率的向量掩码驱动时钟门控

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3877518B2 (ja) 2000-12-13 2007-02-07 松下電器産業株式会社 プロセッサの電力制御装置
US7941675B2 (en) * 2002-12-31 2011-05-10 Burr James B Adaptive power control
US7953990B2 (en) * 2002-12-31 2011-05-31 Stewart Thomas E Adaptive power control based on post package characterization of integrated circuits
US7562233B1 (en) * 2004-06-22 2009-07-14 Transmeta Corporation Adaptive control of operating and body bias voltages
US7774625B1 (en) * 2004-06-22 2010-08-10 Eric Chien-Li Sheng Adaptive voltage control by accessing information stored within and specific to a microprocessor
TWI325101B (en) 2006-07-06 2010-05-21 Realtek Semiconductor Corp Automatic voltage control circuit
US8245070B2 (en) * 2008-12-30 2012-08-14 Intel Corporation Method for optimizing voltage-frequency setup in multi-core processor systems
TWI443495B (zh) 2011-09-08 2014-07-01 Asustek Comp Inc 電腦裝置及中央處理器的頻率調整方法
US8874949B2 (en) * 2011-12-22 2014-10-28 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including enhanced temperature based voltage control
US9563254B2 (en) 2011-12-22 2017-02-07 Intel Corporation System, method and apparatus for energy efficiency and energy conservation by configuring power management parameters during run time
US9383790B2 (en) * 2013-03-11 2016-07-05 Intel Corporation Internal communication interconnect scalability
US9405340B2 (en) * 2013-06-27 2016-08-02 Intel Corporation Apparatus and method to implement power management of a processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104137024A (zh) * 2011-12-22 2014-11-05 英特尔公司 包括使用深降电模式的高能效处理器热节流的用于高能效且节能的方法、装置和系统
CN104813277A (zh) * 2012-12-19 2015-07-29 英特尔公司 用于处理器的功率效率的向量掩码驱动时钟门控

Also Published As

Publication number Publication date
US10095302B2 (en) 2018-10-09
EP3504607A4 (en) 2020-04-15
CN109564459A (zh) 2019-04-02
EP3504607B1 (en) 2023-05-10
EP3504607A1 (en) 2019-07-03
US20180059763A1 (en) 2018-03-01
WO2018044442A1 (en) 2018-03-08

Similar Documents

Publication Publication Date Title
CN108475193B (zh) 用于字节排序指令和用于四位组排序的处理器、方法和系统
US9244827B2 (en) Store address prediction for memory disambiguation in a processing device
CN110199242B (zh) 基于使用参数配置处理器的基本时钟频率
US10296457B2 (en) Reducing conflicts in direct mapped caches
US20180232627A1 (en) Variable word length neural network accelerator circuit
US10216516B2 (en) Fused adjacent memory stores
US10489297B2 (en) Prefetching time allocation
US9871535B2 (en) Heterogeneous compression architecture for optimized compression ratio
US10409613B2 (en) Processing devices to perform a key value lookup instruction
TWI588740B (zh) 包括用於移位和(shift-sum)乘法器之指令及邏輯的處理器及系統,以及用於移位和乘法的方法
US10191749B2 (en) Scatter reduction instruction
US10445064B2 (en) Implementing logarithmic and antilogarithmic operations based on piecewise linear approximation
US10019262B2 (en) Vector store/load instructions for array of structures
US9829957B2 (en) Performance scalability prediction
US9792212B2 (en) Virtual shared cache mechanism in a processing device
US9753832B2 (en) Minimizing bandwith to compress output stream in instruction tracing systems
US20160224252A1 (en) Hybrid memory architecture
US10324857B2 (en) Linear memory address transformation and management
US9823984B2 (en) Remapping of memory in memory control architectures
CN109564459B (zh) 用于自动自适应电压控制的方法和设备
US20190041895A1 (en) Single clock source for a multiple die package
US10812075B2 (en) Dynamic on-die termination

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