CN106293894A - 执行事务性功率管理的硬件设备和方法 - Google Patents
执行事务性功率管理的硬件设备和方法 Download PDFInfo
- Publication number
- CN106293894A CN106293894A CN201610362190.0A CN201610362190A CN106293894A CN 106293894 A CN106293894 A CN 106293894A CN 201610362190 A CN201610362190 A CN 201610362190A CN 106293894 A CN106293894 A CN 106293894A
- Authority
- CN
- China
- Prior art keywords
- power
- affairs
- processor
- core
- perform
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- 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
- G06F1/3243—Power saving in microcontroller unit
-
- 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
-
- 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
-
- 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
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- 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
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30083—Power or thermal control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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
Abstract
本文描述了与事务性功率管理有关的方法和设备。在一个实施例中,硬件设备包括:具有核的硬件处理器;多个功率域,以响应于用于每个功率域的功率管理命令而转变到多个功率状态之一;以及功率事务单元,指派第一功率管理命令为第一功率事务,以及第二功率管理命令为第二功率事务以便并发执行,在第一功率事务与第二功率事务之间不存在冲突时,执行第一功率事务和第二功率事务的提交,以及在第一功率事务与第二功率事务之间存在冲突时,执行第一功率事务的中止和第二功率事务的提交。
Description
技术领域
本公开内容一般涉及电子器件,并且更具体地,本公开内容的实施例涉及具有执行事务性功率管理的功率事务单元的硬件处理器。
背景技术
处理器(或处理器集合)执行来自指令集(例如指令集体系结构(ISA))的指令。指令集是与编程有关的计算机体系结构的一部分,并且通常包括原生数据类型、指令、寄存器体系结构、寻址模式、存储器体系结构、中断和异常处理及外部输入和输出(I/O)。
附图说明
本公开内容通过示例示出附图的图形,并且并不限于附图的图形;附图中,相同的附图标记表示类似的元素,并且其中:
图1示出根据本公开内容的实施例的硬件设备。
图2示出根据本公开内容的实施例的集成电路。
图3示出根据本公开内容的实施例的集成电路。
图4示出根据本公开内容的实施例的用于不具有功率事务的系统的功率管理代码。
图5示出根据本公开内容的实施例的用于具有功率事务的系统的功率管理代码。
图6示出根据本公开内容的实施例的具有原子功率事务和不具有原子功率事务的计时(timing)示意图。
图7示出根据本公开内容的实施例的流程图。
图8示出根据本公开内容的实施例的流程图。
图9A是根据本公开内容的实施例的示出示范有序流水线和示范寄存器重命名、无序发布/执行流水线的框图。
图9B是根据本公开内容的实施例的示出有序体系结构核的示范实施例和要包括在处理器中的示范寄存器重命名、无序发布/执行体系结构核两者的框图。
图10A是根据本公开内容的实施例的单个处理器核连同其到管芯上互连网络的连接和其二级(L2)高速缓存的本地子集的框图。
图10B是根据本公开内容的实施例的在图10A中的处理器核的部分的展开图。
图11是根据本公开内容的实施例的可具有多于一个核,可具有集成存储器控制器和可具有集成图形的处理器的框图。
图12是根据本公开内容的一个实施例的系统的框图。
图13是根据本公开内容的实施例的更具体的示范系统的框图。
图14示出的是根据本公开内容的实施例的第二更具体的示范系统的框图。
图15示出的是根据本公开内容的实施例的片上系统(SoC)的框图。
图16是根据本公开内容的实施例的对比将源指令集中的二进制指令转换成目标指令集中二进制指令的软件指令转换器的使用的框图。
具体实施方式
在下面的描述中,陈述了许多特定细节。然而,要理解的是,本公开内容的实施例可不具有这些特定细节而实施。在其它实例中,公知的电路、结构和技术未详细显示以免模糊对此描述的理解。
说明书中对“一个实施例”、“一实施例”、“示例实施例”等的引用指示所描述的实施例可包括特定特征、结构或特性,但每个实施例可不必须包括特定特征、结构或特性。另外,此类短语不必须表示同一实施例。此外,在结合实施例描述特定特征、结构或特性时,认为结合无论是否明确描述的其它实施例影响此类特征、结构或特性是在本领域技术人员的认知之内。
(例如硬件)处理器(或处理器的集合)执行来自指令集(例如指令集体系结构(ISA))的指令。指令集是与编程有关的计算机体系结构的一部分,并且通常包括原生数据类型、指令、寄存器体系结构、寻址模式、存储器体系结构、中断和异常处理及外部输入和输出(I/O)。应注意的是,本文中的术语指令可表示宏指令,例如,提供到处理器以便执行的指令,或者表示微指令,例如,从将宏指令解码的处理器的解码单元(解码器)得到的指令。处理器(例如,具有解码和/或执行指令的一个或更多个核)可对数据进行操作(例如在执行算术、逻辑或其它功能中)。
硬件处理器(例如,作为计算系统的一部分)可例如根据高级配置和功率接口(ACPI)规范,在功率状态之间转变一个或更多个其组件(例如,核和/或装置)的功率。在一个实施例中,可在多操作状态、闲置状态或关闭状态之一为组件供电。例如,第一功率状态可以是最大功率和频率,并且第二功率状态可以是更低功率和频率(例如,但不是闲置)。功率状态转变可占用多个时钟周期(例如,由于多个指令被执行而引起功率状态转变)以执行从第一状态到第二状态的转变(例如在请求时)。功率可由电池或其它电源提供。通过在没有操作要执行(例如无指令要由处理器的核执行)时,将处理器和/或其装置(例如,显示器、输入/输出(I/O)端口等)置于各种功率状态(例如闲置或关闭状态),功率管理单元可保存功率。在某些实施例中,功率管理单元可通过做出功率状态确定和/或转变来管理功耗。另外地或备选地,功率管理可由操作系统(OS)(例如借助于在OS与将使其功率状态转变(例如,修改)的装置之间的驱动程序通信)来实现。
在本公开内容的某些实施例中,功率管理可利用与软件(例如,OS和/或应用程序)共存的处理器(例如,一个或多个低功率微控制器)。在本公开内容的某些实施例(例如,针对能效)中,OS可分散在其域内的功率控制,例如,让每个装置域控制其自己的状态。然而,从功率管理流程角度而言,由于功率管理(例如,转变)命令例如通过功率管理单元发布和/或执行,这可导致争用和竞争状况。这可通过采用一个或多个锁(例如,使用信号量或其它方法)以例如,在另一功率转变(例如,过程)发生时中止或取消一个功率转变请求来解决。这可引起能效低,例如,如果针对整个功率转变而保持锁(例如,或装置级控制或装置的集合或用于平台)。本公开内容的某些实施例可提供可扩展功率管理,例如不利用锁。本公开内容的某些实施例可提供不利用粗粒度锁或同步功率管理,例如,在OS中或者通过功率管理单元(例如,处理器的功率管理控制器(PMC)或存储器控制器单元(SCU))或两者的组合。本公开内容的某些实施例可提供功率管理而无需通过OS置入(例如,高级、粗粒度)锁,其中,一次只可发送一个功率转变(例如,请求)到硬件。
本公开内容的某些实施例包括执行事务性功率管理的方法和功率管理设备(例如,一个或多个处理器和/或一个或多个片上系统(SOC))。例如,(例如,装置、组件和/或功率域的)每个功率状态转变可表示为事务。在一个实施例中,通过接收例如发送到功率管理单元的控制输入(例如,用于每个功率域的输入)的功率管理命令,可请求功率状态转变(例如,从一个状态到不同状态)。本公开内容的某些实施例包括使功率管理命令并行的方法和功率管理设备。本公开内容的某些实施例包括执行事务性功率管理的方法和事务性存储器(例如,管理)设备。根据本公开内容的功率管理可包括功率管理硬件、软件、固件或其任何组合。
在一个实施例中,根据原子性、一致性、隔离和耐久性(ACID)属性的一个、全部属性或任何组合来保证事务。原子性(例如,是原子的)可通常表示事务为“全有或全无”。例如,如果事务的一部分失败,则整个事务失败,并且数据(对所述数据进行操作)保持不变。原子系统可保证在每一和每个种情况中的原子性,例如,包括功率失败、错误和崩溃。在事务外,提交的事务显得(例如,通过其对对数据的操作的影响)不可见(“原子”),并且中止的事务(例如,未提交的)显得未曾发生。一致性可通常表示任何事务将把数据从一个有效状态带到另一状态。例如,根据所有定义的规则,例如,包括约束、级联、触发和其任何组合,任何写入的数据将是有效的。这可不完全保证事务的正确性,例如,其可以是应用级代码的责任,但可保证任何编程错误将不导致违反任何定义的规则。隔离可通常表示事务(例如,线程)的并发执行,导致与如果那些事务例如一个接一个连续执行而将获得的相同系统状态。并发控制可提供隔离。例如,取决于并发控制方法,不完整事务的效果可对其它一个或多个事务不可见。耐久性可通常表示一旦事务已提交,它便将保持如此,例如,甚至如果功率损耗、崩溃或错误发送。例如,为防止功率损耗,事务(或其影响)可记录在非易失性(例如,持久性)存储器中。
本公开内容的某些实施例包括将一个或多个功率状态转变表示为一个或多个事务的方法和功率管理设备。这可允许得到装置(例如,处理器、片上系统(SoC)和/或平台)的功率状态在语义上准确的(例如,多处理器)视图。另外,将功率状态转变表示为功率事务可允许建模、指定和验证功率管理转变的更有序、语义上准确的方法。在某些实施例中,将功率管理转变实现为事务性存储器序列可允许得到装置、SoC和/或平台的功率状态在语义上准确的多处理器视图。另外,将功率状态转变表示为事务可带来建模、指定和验证功率(管理)转变的更有序、语义上准确的方法。在某些实施例中,将功率转变表示为事务可以是在硬件、固件和软件中指定功率序列的有力方式,例如,语义上相关的表示有助于装置、SoC和/或平台的功率管理验证。
在一个实施例中,功率管理设备和方法可将代码的区域(例如,一个或几个线程)宣布为(例如,单个)事务。事务可执行并且以原子方式提交所有结果到存储器(例如,在事务成功时),或者中止并取消所有结果(例如,如果事务失败)。可根据例如上面讨论的原子性、一致性、隔离和耐久性(ACID)属性执行事务。事务可安全地并行执行,例如,以替换诸如锁和信号量的技术。某些实施例也可包括性能益处,例如,由于锁可以是不利的(pessimistic),并且假设加锁线程将写入到数据,因此,其它线程的进展可受阻。在本文中没有锁的一个实施例中,均访问共同资源(例如,相同存储器地址或寄存器)的两个事务可并行继续,并且如果事务之一写入(例如,冲突写入)到共享资源,回滚(例如,事务之一或两者的中止)才可发生。
功率管理设备和方法可接收对功率状态转变(例如,指示要转变到哪个装置或域和/或新功率级别)的多个请求(例如,来自硬件、OS或驱动程序)。在一个实施例中,可通过功率管理命令(例如,在处理器上执行以完成转变的指令的线程)请求功率状态转变。在一个实施例中,功率管理命令可从请求方(例如,OS)发送到要转变的装置(例如,控制输入)。可将功率状态转变宣布为事务,例如,指派为功率事务的功率管理命令(例如,线程)。因此,可将功率状态转变(例如,引起功率状态转变的操作)作为(单个)功率事务来对待,使得功率管理设备和方法在操纵(例如,更改功率状态)控制功率状态转变和/或作为功率状态转变一部分的数据结构(例如,保持在存储器、寄存器、数据输入等中)时不发布锁。在一个实施例中,功率状态事务包括在尝试对数据结构进行任何修改前开始一个或多个状态转变操作,对数据结构的副本(例如,参考版本)进行其更改(例如,在高速缓存中),并且在操作完成时,如果未发生冲突,则提交事务。在事务期间,功率事务单元(例如,系统)可跟踪(例如,记录)执行了读取和/或写入的那些操作的所有数据结构。在提交功率事务前,功率事务单元可检查没有其它事务(例如,其操作)对事务使用的数据结构进行任何更改。如果没有更改,则可提交事务。如果存在更改,则可中止事务,例如使得所有其更改撤消。在一个实施例中,例如可在不同策略(例如,使用一个或多个锁)下重试或取消中止的事务(例如,其一个或多个操作)。因此,对多个装置的功率状态转变尝试可与功率状态事务并行发生。在一个实施例中,装置和/或域包括功率管理寄存器,以在接收写入功率管理命令到寄存器中时引起功率状态转变,例如,功率管理命令可以是指示装置的新功率状态的一个或多个比特。在一个实施例中,软件(例如,OS)请求功率状态转变,例如,在检测到装置(和/或功率域)没有正在被利用后,它可指示闲置或关闭该装置。装置可包括在处理器外的一个或多个组件(例如,外设),例如,不与处理器一起在管芯上。多个装置可包括共享资源,例如,由相同时钟控制或在相同功率域中的那些装置(例如,由供电设备的相同功率轨供电)。OS可指示或检测到将使用哪个或哪些功率域,以便执行功率管理命令(例如,线程)。例如,功率事务提示(例如,参照下面图5的“原子”)可包括在代码中以向OS或硬件指示功率管理命令(例如,请求功率状态转变)将要作为事务对待。
作为一个示例,第一装置(例如,USB集线器)和第二装置(例如,网络适配器)每个可处在活跃功率状态,并且功率管理命令可被发送(例如,从其相应驱动程序),以使每个转变到闲置或关闭功率状态。第一功率管理命令(例如,用于USB集线器)和第二功率管理命令(例如,用于网络适配器)可例如由OS发送,并且由处理器或SoC的功率事务单元接收。功率事务单元可例如根据原子性、一致性、隔离和/或耐久性(ACID)属性,检测到对于每个功率管理命令的请求的功率状态转变将是功率事务。功率事务单元(例如,在硬件、软件、固件或其组合中)可例如允许功率状态转变的并发(例如,并行)执行,但尚未提交它们。即使在那些装置由共享资源供电时,这也可发生。例如,可跟踪通过第一功率命令(例如,线程)和第二功率命令(例如,线程)发生的任何读取和/或写入(例如,到一个或多个控制输入和/或一个或多个输出)。在一个实施例中,如果第一功率事务和第二功率事务不存在(例如,冲突)更改,则然后可提交它们(例如,使装置供电成闲置或关闭功率状态)。如果在两个装置共享影响两者的共同功率资源(例如域)的情况下存在冲突更改,例如,一个装置闲置,并且另一装置在关闭状态,则可例如根据冲突解决策略,中止事务之一或两者。冲突解决策略的一个示例是提交写入资源的第一事务,并且中止第二事务。冲突解决策略的另一示例是将提交具有最高功率状态的事务,并且中止更低功率状态事务。其它冲突解决策略可例如包括但不限于重试(例如,延迟)中止的事务,例如,在提交另一事务后。在一个实施例中,每个功率事务(例如,针对相应线程)可继续直到检测到在并发执行线程之间的冲突为止。本文中的某些实施例允许没有反对(against)并发执行(例如,不提交)多个功率转变的锁。
注意的是,本文中的图没有描绘电源(例如,电池或非电池)或电源连接。本领域技术人员将领会的是,这是为了不模糊图中的某些细节。注意的是,本文中的双箭头可不要求双向通信,例如,它可指示单向通信(例如,向或从该组件或装置)。在本文中的实施例中可利用通信路径的任何或所有组合。
图1示出根据本公开内容的实施例的硬件设备100。在一个实施例中,硬件设备100可以是SoC。所描绘的硬件设备100包括硬件处理器102。虽然描绘了硬件处理器的某些组件,例如,多级高速缓存和多个核,可利用一个或多个其它处理器而不脱离例如本文中讨论的那些精神的本公开内容的精神。所描绘的核A (102A)包括第一级指令高速缓存(L1I)104A、第一级数据高速缓存106A和2级高速缓存(L2) 108A。所描绘的核B (102B)包括第一级指令高速缓存(L1I) 104B、第一级数据高速缓存(L1D)106B 和2级高速缓存(L2) 108B。所描绘的核C (102C)包括第一级指令高速缓存(L1I) 104C、第一级数据高速缓存 (L1D)106C和2级高速缓存(L2) 108C。所描绘的核D (102D)包括第一级指令高速缓存(L1I)104D、第一级数据高速缓存106D (L1D)和2级高速缓存(L2) 108D。所描绘的硬件核A和B包括共享3级高速缓存(L3) 110。所描绘的硬件核C和D包括共享3级高速缓存(L3) 112。所描绘的处理器102包括共享4级高速缓存(L4) 114。虽然描绘了四个核,但可利用单个核或任何多个处理器核。虽然描绘了四级高速缓存,但可利用单级或任何多个级的高速缓存。
在一个实施例中,每个核具有其自己的功率域。在一个实施例中,多个核(例如,核A和核B)具有共享功率域。在一个实施例中,整个高速缓存可具有其自己的功率域。例如,用于L3高速缓存110的功率转变可使得用于某些或所有其它高速缓存的功率转变。
可根据高速缓存相干协议,利用例如作为高速缓存一部分的高速缓存相干单元,例如,修改(M)、独占(E)、共享(S)和无效(I) (MESI)四态协议或修改(M)、独占(E)、共享(S)、无效(I)和转发(F) (MESIF)五态协议。
在本文中的实施例中可利用通信路径的任何或所有组合。例如,处理器102(例如,其核)可例如通过网络(描绘为环形网络116)与其它装置进行通信。
根据本公开内容的某些实施例,可包括一个或多个(例如,功率)事务单元。每个核可包括(例如,功率)事务单元,例如在其相应核中的一个或多个(功率)事务单元120A、120B、120C和120D。另外地或备选地,处理器或SoC可包括单独的(例如,功率)事务单元。所描绘的硬件设备包括功率事务单元120,例如用于存储逻辑以执行本文中的公开内容。虽然描绘了某些其它组件,但这些是示例,并且可利用其它组件和/或某些所描绘的组件可在硬件设备中不存在。所描绘的组件包括可将显示信号发送到显示器126的图形单元124(例如,可以是图形处理器)、存储装置128(例如,可以是在管芯上或在管芯外的数据存储装置)、通用异步接收器和传送器(UART) 130、低功率子系统(LPSS) 132以及通用串行总线(USB)134。图形单元124可以是硬件处理器102的一部分。
可包括功率管理单元122,例如以管理到装置的功率流。功率事务单元可包括在功率管理单元中。在一个实施例中,每个装置(例如,其组件)可包括其自己的功率域。在一个实施例中,多个装置或一个或多个装置的组件共享单个功率域。
作为一个示例,第一装置(例如,USB 134)和第二装置(例如,UART 130)每个可处在活跃(active)功率状态,并且功率管理命令可被发送(例如,从其相应驱动程序),以使每个装置转变到关闭(或闲置)功率状态。第一功率管理命令(例如,用于USB 134)和第二功率管理命令(例如,用于UART 130)可例如由OS发送,并且由功率事务单元(例如,事务单元120)接收。功率事务单元可例如根据原子性、一致性、隔离和/或耐久性(ACID)属性,检测到(例如,从来自OS的指示)用于每个功率管理命令的请求的功率状态转变将是功率事务。功率事务单元(例如,在硬件、软件、固件或其组合中)可例如允许功率状态转变的并发(例如,并行)执行,但尚未提交它们。即使在那些装置由共享资源(例如,是相同功率域的成员)供电时,这种情况也可发生。例如,可跟踪通过第一功率命令(例如,线程)和第二功率命令(例如,线程)发生的任何读取和/或写入(例如,到一个或多个控制输入和/或一个或多个输出)。可形成要修改的数据的副本(例如,参考版本),并且可将其存储在高速缓存(例如,处理器的高速缓存或事务单元120的单独高速缓存)中。在一个实施例中,如果第一功率事务和第二功率事务不存在冲突(例如,冲突更改),则然后可提交它们(例如,使USB 134和UART130装置供电成关闭(或闲置)功率状态)。如果在两个装置共享影响两者的共同功率资源(例如域)的情况下存在冲突(例如,冲突更改),例如,一个装置将闲置,并且另一装置将在关闭状态,则可例如根据冲突解决策略,中止事务之一或两者。
在另一个实施例中,单个装置可将其功率转变宣布为功率事务。例如,在功率状态转变(例如,从活跃状态到关闭或闲置)的过程中的装置(例如,USB 134)可接收中断(例如,外设已插入USB 134中)。功率事务单元可检测到此,并且然后例如中止(例如,不提交)在处理的(in-flight)功率状态转变,并且转而返回到活跃状态。
转到图2和3,图2用于描述实施例,其中,集成电路(例如,其处理器核)不包括对硬件存储器事务(例如,事务性存储器)的支持,并且图3用于描述实施例,其中,集成电路(例如,其处理器核)确实包括对硬件存储器事务(例如,事务性存储器)的支持。
图2示出根据本公开内容的实施例的集成电路200。处理器核0-N每个描绘为包括(例如,专用)指令高速缓存(LC)和(例如,专用)数据高速缓存(DC)。此外,集成电路可包括高速缓存相干性控制器236以保持在(例如,数据)高速缓存中的(例如,全局)高速缓存相干性。虽然某些装置和组件在图2中描绘,但这些是可选的。例如,虽然描绘了“北复合体”功率域和“南复合体”功率域,但可利用任何功率域。总线216可用于通信。
高速缓存相干性控制器236和讨论的其它修改可允许事务性功率管理。集成电路200(例如,SoC)包括功率管理单元(PUNIT) 240和功率管理控制器(PMC) 242,例如其中的每个或两者可以是离散处理器核。PMC 242可例如响应于来自PUNIT 240的功率管理命令,控制到域(例如,南复合体)的功率。
在不支持硬件存储器事务(例如,事务性存储器)的系统中,硬件功率事务例如可如下实现。在高速缓存系统中可包括针对每个高速缓存条目(例如,高速缓存行)的事务字段(例如,比特)。可包括数据结构(例如,用于每个PUNIT和PMC)以跟踪事务历史和/或任何冲突。可访问数据结构以测试(例如,确定)元素(例如,装置)是否为集合(例如,共享功率域或其它共享资源)的成员。在所描绘的实施例中,数据结构是用于PUNIT 240的Bloom滤波器240A和用于PMC 242的Bloom滤波器242A。Bloom滤波器可以是(例如,空间有效的)概率数据结构,其用于测试元素(例如,装置)是否为集合(例如,共享功率域或其它共享资源)的成员。在一个实施例中,假正匹配可以是可能的,但假负是不可能的,例如,对元素的其查询返回或“元素可能在集合中”或“元素肯定不在集合中”。PUNIT和PMC可利用数据结构(例如,Bloom滤波器)提供对冲突解决和排序(ordering)提交的支持。可将数据结构(例如,Bloom滤波器)作为(例如,存储器映射的)寄存器(例如,寄存器244和246)访问。可访问PUNIT和PMC的功率管理寄存器(未描绘)以引起功率转变。数据结构(例如,寄存器244和246)例如可经例如要由软件使用来定义事务边界,配置如何处理冲突(和任何重试)等的事务应用编程接口(API)被显露到软件中。本文中的某些实施例因此可提供事务性功率管理的可扩展硬件和软件实现(例如,对于要作为事务对待的功率指令的序列)。将功率状态转变表示为事务可带来建模、指定和验证功率管理转变的更有序、语义上准确的方法。
图3示出根据本公开内容的实施例的集成电路300(例如,SoC)。在此示例中,(例如,所有)处理器核(例如,包括功率管理控制器)包括对硬件存储器事务(例如,事务性存储器)的支持,并且因此可允许事务性功率管理。集成电路的组件可具有跨所有组件(例如,所有处理器核,包括功率管理单元(PUNIT) 340和功率管理控制器(PMC) 342)的(例如,存储器和功率)事务的(例如,全局地)同步视图。例如,系统(例如,SoC)可包括存储器事务单元(例如,引擎)和/或功率事务单元(例如,引擎)。可不利用数据结构(例如,Bloom滤波器)。编译器可包括对允许功率状态转变的事务的支持。可利用编译器中对存储器事务的支持以允许事务性功率管理。装置驱动程序可注释用于功率管理事务的其代码。此框架可帮助OS和其它组件更具跨多核SoC的可扩展性和可移植性,例如,不必须提供加锁、同步等的点解决方案。总线316可用于通信。对于图2和3,针对北复合体和南复合体中的每个列示的组件和装置只是示例。
在一个实施例中,系统(例如,具有多个核)可通过具有保证用于标记为事务的代码的序列(例如跨所有处理器核(和存储器))的ACID语义的硬件,来支持用于该代码的序列的硬件事务性存储器。这通常可被称为跨所有核的事务的全局同步视图,例如以便在一个核正执行标记为事务性的代码流(例如,线程)时,如果该代码正访问一些数据(例如,在存储器中),则存在内置硬件支持以确保维持该段代码(和存储器)的事务性语义(例如跨所有核)。在此类系统的一个示例中,(例如,所有)主机驱动程序可在处理器(例如,IA)核上运行(例如,一般针对操作访问并且使用主存储器),并且尝试进行事务性功率管理(例如,用于标记为事务性的功率管理命令(代码))的任何主机驱动程序的集合例如在那些命令由一个或多个核和/或一个或多个功率管理单元(例如,具有存储器访问的控制器)执行时,保证保持事务性语义。
支持存储器事务的系统的某些实施例可用于支持功率事务,例如,在功率管理命令是读取和/或写入存储器(例如,寄存器)的情况下。例如,ISA的功率管理指令可具有指示它是事务的其字段。
本公开内容的某些实施例包括对以下的一个或更多个的硬件和/或软件(例如,运行时间)支持:例如在移动装置中的将特定功率管理命令(例如,序列)实现为事务(例如,序列)的处理器核及(例如,微)控制器,像PUNIT、PMC和无线电端口控制器单元(RPCU)。软件功率事务可提供用于将功率管理命令封装为事务的抽象概念,例如,这可通过编译器中的功率编译指示实现以允许软件注释软件(例如,OS和/或驱动程序)代码中的功率管理序列。编译器翻译可将软件提供的功率提示(例如,图5中的“原子”)转换成对针对硬件事务性存储器的基础体系结构支持特定的事务性存储器指令序列。以上所述可扩展成也具有(例如,微)控制器支持硬件事务性存储器,例如,用于功率管理的单独核或处理器。处理器中的硬件(功率)事务支持可提供装置和平台和/或SoC的功率状态的统一视图。此框架可允许OS和其它组件更具跨多个核装置(例如,SoC)的可扩展性和可移植性,例如,不必须提供加锁、同步等的点解决方案。例如,在图5中所示的示例中,线程T1和T2可通过绕原子块封装线程,来执行对共享功率资源601中共享功率状态寄存器的访问。在事务执行完成并且提交时,其影响可对其它事务可见。否则,事务可被中止,并且没有其影响可对其它事务可见。
本文中的某些实施例包括指示将访问共享对象的代码的(例如,标记)部分为例如将以原子方式执行的事务。
图4示出根据本公开内容的实施例的用于没有功率事务的系统的功率管理代码400。图4示出在没有功率事务的情况下,系统可延迟第二功率转变,直至第一功率转变已完成为止。在针对没有功率事务的功率状态转变的一个实施例中,内核或装置驱动程序可例如基于对发布功率管理命令的平台支持,向单个装置或多个装置发布功率管理命令(例如,功率状态转变请求)。然而,多个锁和/或同步原语(primitive)可用于跨OS、装置驱动程序、固件和硬件配合(orchestrate)此复杂状态机,导致错误(例如,故障)、竞争状况、锁定/饥饿(starvation)、非可移植代码及平台特定解决方案。此外,例如由于没有功率事务的挂起和恢复的高迟滞,执行没有功率事务的功率状态转变的时间可10倍或更多于使用功率事务时的时间量。
图5示出根据本公开内容的实施例的用于具有功率事务的系统的功率管理代码500。所描绘的代码包括例如根据原子性、一致性、隔离和/或耐久性(ACID)属性的一个或更多个属性,宣布(例如,通过“原子”)功率管理命令(例如,线程T1和T2两者)将作为事务对待。在一个实施例中,计算系统(例如,编译器)将那些线程作为可并发执行的事务对待,例如,除非存在有冲突,否则提交两者。
图6示出根据本公开内容的实施例的具有用于T1和T2的原子功率事务和不具有用于T1和T2的原子功率事务的计时示意图600。图6示出与由于它们不是事务而连续完成(例如,至少t1 + t2)的功率管理命令(例如,非原子T1和T2)相比,对于原子功率事务,两个线程可并发执行,例如,使用时间t1和t2分别执行(并且如果通过其对用于共享功率资源601的一个或多个功率控制寄存器的访问没有引起冲突,则提交)。在一个实施例中,每个功率管理命令(例如,线程)在单独核上执行。在一个实施例中,核可用作功率管理单元。
图7示出根据本公开内容的实施例的流程图700。所描绘的流程图700包括:提供包括硬件处理器的硬件设备的多个功率域,以响应于用于每个功率域的功率管理命令而转变到多个功率状态之一,702;指派第一功率管理命令为第一功率事务,以及第二功率管理命令为第二功率事务以便并发执行,704;在第一功率事务与第二功率事务之间没有冲突时,执行第一功率事务和第二功率事务的提交,706;以及在第一功率事务与第二功率事务之间存在冲突时,执行第一功率事务的中止和第二功率事务的提交,708。
图8示出根据本公开内容的实施例的流程图800。所描绘的流程包括例如从软件(例如,OS)到固件,一直到硬件的示例功率事务。在一个实施例中,图形的流程图800可表示图1、2和/或3中的电路。PMIC可表示功率管理集成电路。
在一个实施例中,硬件设备包括:具有核的硬件处理器;多个功率域,以响应于用于每个功率域的功率管理命令而转变到多个功率状态之一;以及功率事务单元,以指派第一功率管理命令为第一功率事务,以及第二功率管理命令为第二功率事务以便并发执行,在第一功率事务与第二功率事务之间没有冲突时,执行第一功率事务和第二功率事务的提交,以及在第一功率事务与第二功率事务之间存在冲突时,执行第一功率事务的中止和第二功率事务的提交。第一功率事务和第二功率事务每个可包括多个指令。硬件设备可还包括多个功率状态寄存器以接收用于每个域的功率管理命令。冲突可以是第一功率事务写入到第二功率事务已写入的功率状态寄存器。功率事务单元可不发布锁。冲突可以是第一功率事务和第二功率事务写入用于共享功率域的冲突功率管理命令。在存在冲突时,响应于第二功率事务的执行的功率域的转变可只在第二功率事务提交后对其它事务可见。硬件设备可还包括存储器事务单元,以在核上第一线程和在硬件处理器的第二核上第二线程的并发执行后,除非第一线程和第二线程将修改同一存储器地址,否则执行第一线程和第二线程的提交。
在另一实施例中,方法包括:提供包括硬件处理器的硬件设备的多个功率域,以响于应用于每个功率域的功率管理命令而转变到多个功率状态之一;指派第一功率管理命令为第一功率事务,以及第二功率管理命令为第二功率事务以便并发执行;在第一功率事务与第二功率事务之间没有冲突时,执行第一功率事务和第二功率事务的提交;以及在第一功率事务与第二功率事务之间存在有冲突时,执行第一功率事务的中止和第二功率事务的提交。第一功率事务和第二功率事务每个可包括多个指令。方法可还包括在功率状态寄存器接收用于每个域的功率管理命令。冲突可以是第一功率事务写入到第二功率事务已写入的功率状态寄存器。方法可还包括不发布锁。冲突可以是第一功率事务和第二功率事务写入用于共享功率域的冲突功率管理命令。在存在有冲突时,响应于第二功率事务的执行的功率域的转变可只在执行第二功率事务的提交后对其它事务可见。方法可还包括在硬件处理器上第一线程和第二线程的并发执行后,除非第一线程和第二线程将修改同一存储器地址,否则执行第一线程和第二线程的提交。
在又一实施例中,一种非暂时性机器可读存储介质具有存储的程序代码,程序代码在由机器处理时,使得方法被执行,方法包括:提供包括硬件处理器的硬件设备的多个功率域,以响应于用于每个功率域的功率管理命令而转变到多个功率状态之一;指派第一功率管理命令为第一功率事务以及第二功率管理命令为第二功率事务以便并发执行;在第一功率事务与第二功率事务之间没有冲突时,执行第一功率事务和第二功率事务的提交;以及在第一功率事务与第二功率事务之间存在有冲突时,执行第一功率事务的中止和第二功率事务的提交。第一功率事务和第二功率事务每个可包括多个指令。方法可还包括在功率状态寄存器接收用于每个域的功率管理命令。冲突可以是第一功率事务写入到第二功率事务已写入的功率状态寄存器。方法可还包括不发布锁。冲突可以是第一功率事务和第二功率事务写入用于共享功率域的冲突功率管理命令。在存在冲突时,响应于第二功率事务的执行的功率域的转变可只在执行第二功率事务的提交后对其它事务可见。方法可还包括在硬件处理器上第一线程和第二线程的并发执行后,除非第一线程和第二线程将修改同一存储器地址,否则执行第一线程和第二线程的提交。
在另一实施例中,硬件设备包括:具有核的硬件处理器;多个功率域,以响应于用于每个功率域的功率管理命令而转变到多个功率状态之一;以及执行以下操作的部件:指派第一功率管理命令为第一功率事务,以及第二功率管理命令为第二功率事务以便并发执行,在第一功率事务与第二功率事务之间没有冲突时,执行第一功率事务和第二功率事务的提交,以及在第一功率事务与第二功率事务之间存在有冲突时,执行第一功率事务的中止和第二功率事务的提交。
在又一实施例中,设备包括存储代码的数据存储装置,代码在由硬件处理器执行时,使得硬件处理器执行本文中公开的任何方法。设备可如在具体实施方式中描述的一样。方法可如在具体实施方式中描述的一样。
指令集可包括一个或更多个指令格式。给定的指令格式可定义各种字段(例如,比特的数量、比特的位置)以除其它之外,指定要执行的操作(例如,操作码)和一个或多个操作数(将对所述操作数执行操作)和/或其它一个或多个数据字段(例如,掩码)。一些指令格式还通过指令模板(或子格式)的定义进一步进行分解。例如,可将给定指令格式的指令模板定义成具有指令格式的字段的不同子集(包括的字段一般为相同顺序,但由于包括有更少的字段,因此,至少一些字段具有不同比特位置),和/或定义成具有以不同方式解释的给定字段。因此,ISA的每个指令使用给定指令格式(并且,如果已定义,则在该指令格式的指令模板的一个给定模板中)表述,并且包括用于指定操作和操作数的字段。例如,示范ADD指令具有特定操作码和指令格式,指令格式包括指定该操作码的操作码字段和选择操作数(源1/目的地和源2)的操作数字段;并且指令流中此ADD指令的出现将在选择特定操作数的操作数字段中具有特定内容。称为高级向量扩展(AVX)(AVX1和AVX2)并且使用向量扩展(VEX)编码方案的SIMD扩展的集合已发行和/或公布(例如,参阅2015年4月的Intel® 64和IA-32体系结构软件开发员的手册;并且参阅2014年10月的Intel®体系结构指令集扩展编程参考)。
示范核体系结构、处理器和计算机体系结构
处理器核可以以不同方式,为不同目的并且在不同处理器中实现。例如,此类核的实现可包括:1)预期用于通用计算的通用有序核;2)预期用于通用计算的高性能通用无序核;3)预期主要用于图形和/或科学(吞吐量)计算的专用核。不同处理器的实现可包括:1) CPU,包括预期用于通用计算的一个或更多个通用有序核和/或预期用于通用计算的一个或更多个通用无序核;以及2)协处理器,包括预期主要用于图形和/或科学(吞吐量)的一个或更多个专用核。此类不同处理器导致不同计算机系统体系结构,其可包括:1)在与CPU分开的芯片上的协处理器;2)与CPU在同一封装中的单独管芯上的协处理器;3)与CPU在相同管芯上的协处理器(在此情况下,此类协处理器有时称为专用逻辑,如集成图形和/或科学(吞吐量)逻辑,或者称为专用核);以及4)片上系统,可在相同的管芯上包括所描述的CPU(有时称为一个或多个应用核或一个或多个应用处理器),上述协处理器和另外的功能性。紧跟着示范处理器和计算机体系结构的描述,接下来描述示范核体系结构。
示范核体系结构
有序和无序核框图
图9A是根据本公开内容的实施例的示出示范有序流水线和示范寄存器重命名、无序发布/执行流水线两者的框图。图9B是根据本公开内容的实施例的示出有序体系结构核的示范实施例和要包括在处理器中的示范寄存器重命名、无序发布/执行体系结构核的框图。在图9A-B中的实线框示出有序流水线和有序核,而可选添加的虚线框示出寄存器重命名、无序发布/执行流水线和核。假定有序方面是无序方面的子集,将描述无序方面。
在图9A中,处理器流水线900包括获取阶段902、长度解码阶段904、解码阶段906、分配阶段908、重命名阶段910、调度(也称为分派或发布)阶段912、寄存器读取/存储器读取阶段914、执行阶段916、回写/存储器写入阶段918、异常处理阶段922及提交阶段924。
图9B显示处理器核990,包括耦合到执行引擎单元950的前端单元930,并且两者均耦合到存储器单元970。核990可以是精简指令集计算(RISC)核、复杂指令集计算(CISC)核、超长指令字(VLIM)核或混合或备选核类型。作为又一选择,核990可以是专用核,如网络或通信核、压缩引擎、协处理器核、通用计算图形处理单元(GPGPU)核、图形核或诸如此类。
前端单元930包括耦合到指令高速缓存单元934的分支预测单元932,单元934耦合到指令翻译后备缓冲器(TLB) 936,其耦合到指令获取单元938,其耦合到解码单元940。解码单元940(或解码器或解码器单元)可将指令(例如,宏指令)解码,并且生成作为输出的一个或更多个微操作、微代码输入点、微指令、其它指令或其它控制信号,它们从原指令解码或者它们以其它方式反映原指令或者从原指令得到。解码单元940可使用各种不同机制实现。适合机制的示例包括但不限于查表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。在一个实施例中,核990包括存储用于某些宏指令的微代码的微代码ROM或其它介质(例如,在解码单元940中或者以其它方式在前端单元930内)。解码单元940耦合到执行引擎单元950中的重命名/分配器单元952。
执行引擎单元950包括耦合到引退单元954和一个或更多个调度器单元(一个或多个)956的集合的重命名/分配器单元952。一个或多个调度器单元956表示任何数量的不同调度器,包括预留站、中央指令窗口等。一个或多个调度器单元956耦合到一个或多个物理寄存器文件单元958。一个或多个物理寄存器文件单元958中的每个表示一个或更多个物理寄存器文件,这些文件中的不同文件存储一个或更多个不同数据类型,如标量整数、标量浮点、压缩整数、压缩浮点、向量整数、向量浮点、状态(例如,作为要执行的下一指令的地址的指令指针)等。在一个实施例中,一个或多个物理寄存器文件单元958包括向量寄存器单元、写掩码(write mask)寄存器单元和标量寄存器单元。这些寄存器单元可提供体系结构向量寄存器、向量掩码寄存器和通用寄存器。一个或多个物理寄存器文件单元(一个或多个)958由引退单元954重叠以示出其中可实现寄存器重命名和无序执行的各种方式(例如,使用一个或多个重排序缓冲器和一个或多个引退寄存器文件;使用一个或多个将来文件、一个或多个历史缓冲器和一个或多个引退寄存器文件;使用寄存器映射和寄存器池等)。引退单元954和一个或多个物理寄存器文件单元(一个或多个)958耦合到一个或多个执行集群960。一个或多个执行集群960包括有一个或更多个执行单元962的集合和有一个或更多个存储器访问单元964的集合。执行单元962可执行各种操作(例如,移位、加法、减法、乘法),并且对各种类型的数据执行(例如,标量浮点、压缩整数、压缩浮点、向量整数、向量浮点)。虽然一些实施例可包括专用于特定功能或功能的集合的多个执行单元,但其它实施例可只包括全部执行所有功能的多个执行单元或一个执行单元。一个或多个调度器单元956、一个或多个物理寄存器文件单元(一个或多个)958和一个或多个执行集群960显示为可能是复数,这是因为某些实施例创建用于某些类型的数据/操作的单独的流水线(例如,标量整数流水线、标量浮点/压缩整数/压缩浮点/向量整数/向量浮点流水线和/或存储器访问流水线,每个具有其自己的调度器单元、一个或多个物理寄存器文件单元和/或执行集群 - 并且在单独的存储器访问流水线的情况下,实现了其中仅此流水线的执行集群具有一个或多个存储器访问单元964的某些实施例)。也应理解的是,在使用单独流水线的情况下,一个或更多个这些流水线可以是无序发布/执行,并且其余的流水线是有序的。
存储器访问单元964的集合耦合到存储器单元970,其包括耦合到数据高速缓存单元974的数据TLB单元972,数据高速缓存单元974耦合到2级(L2)高速缓存单元976。在一个示范实施例中,存储器访问单元964可包括负载单元、存储地址单元和存储数据单元,其中的每个耦合到存储器单元970中的数据TLB单元972。指令高速缓存单元934还耦合到存储器单元970中的2级(L2)高速缓存单元976。L2高速缓存单元976耦合到一个或更多个其它级的高速缓存,并且最终耦合到主存储器。
通过示例,示范寄存器重命名、无序发布/执行核体系结构可如下实现流水线900:1)指令获取938执行获取阶段902和长度解码阶段904;2)解码单元940执行解码阶段906;3)重命名/分配器单元952执行分配阶段908和重命名阶段910;4)一个或多个调度器单元956执行调度阶段912;5)一个或多个物理寄存器文件单元(一个或多个)958和存储器单元970执行寄存器读取/存储器读取阶段914;执行集群960执行执行阶段916;6)存储器单元970和一个或多个物理寄存器文件单元(一个或多个)958执行回写/存储器写入阶段918;7)各种单元可涉及异常处理阶段922;以及8)引退单元954和一个或多个物理寄存器文件单元(一个或多个)958执行提交阶段924。
核990可支持一个或更多个指令集(例如,x86指令集(更新版本已添加一些扩展)、加利福尼亚州Sunnyvale的MIPS Technologies, 的MIPS指令集、加利福尼亚州Sunnyvale的ARM Holdings的ARM指令集(具有诸如NEON的可选另外扩展)),包括本文中描述的一个或多个指令。在一个实施例中,核990包括支持压缩数据指令集扩展(例如,AVX1、AVX2)的逻辑,由此允许使用压缩数据执行由许多多媒体应用使用的操作。
应理解的是,核可支持多线程(执行两个或更多个并行的操作或线程的集合),并且可以以多种方式进行此,包括时间片多线程、同时多线程(其中,单个物理核提供用于物理核正同时进行多线程的每个线程的逻辑核)或其组合(例如,如在Intel®超线程技术中的时间片获取和解码及之后的同时多线程)。
虽然在无序执行的上下文中描述了寄存器重命名,但应理解的是,可在有序体系结构中使用寄存器重命名。虽然处理器的所示出的实施例也包括单独的指令和数据高速缓存单元934/974及共享L2高速缓存单元976,但备选的实施例可具有诸如,例如1级(L1)内部高速缓存的用于指令和数据两者的单个内部高速缓存,或多个级的内部高速缓存。在一些实施例中,系统可包括内部高速缓存和在核和/或处理器外的外部高速缓存的组合。备选地,所有高速缓存可在核和/或处理器的外部。
特定示范有序核体系结构
图10A-B示出更具体的示范有序核体系结构的框图,该核将是芯片中的几个逻辑块(包括相同类型和/或不同类型的其它核)之一。取决于应用,逻辑块通过高带宽互连网络(例如,环形网络)与一些固定功能逻辑、存储器I/O接口和其它必需的I/O逻辑进行通信。
图10A是根据本公开内容的实施例的单个处理器核连同其到管芯上互连网络1002的连接和具有其二级(L2)高速缓存1004的本地子集的框图。在一个实施例中,指令解码单元1000支持具有压缩数据指令集扩展的x86指令集。L1高速缓存1006允许对到标量和向量单元中的高速缓冲存储器的低迟滞访问。虽然在一个实施例中(为简化设计),标量单元1008和向量单元1010使用单独的寄存器集(分别为标量寄存器1012和向量寄存器1014),并且在其之间传送的数据写入到存储器,并且然后从1级(L1)高速缓存1006中回读,但本公开内容的备选实施例可使用不同方案(例如,使用单个寄存器集,或者包括允许在两个寄存器文件之间传送数据的通信路径而没有写入和回读)。
L2高速缓存1004的本地子集是全局L2高速缓存的一部分,全局L2高速缓存划分成单独的本地子集,每个处理器核一个子集。每个处理器核具有到L2高速缓存1004的其自己的本地子集的直接访问路径。与访问其自己的本地L2高速缓存子集的其它处理器核并行,由处理器核读取的数据存储在其L2高速缓存子集1004中,并且能够被快速访问。由处理器核写入的数据存储在其自己的L2高速缓存子集1004中,并且如果需要,则从其它子集中刷新(flush)。环形网络确保共享数据的相干性。环形网络是双向的,允许诸如处理器核、L2高速缓存和其它逻辑块的代理在芯片内相互进行通信。每个环形数据路径在每个方向是1012比特宽。
图10B是根据本公开内容的实施例的在图10A中的部分处理器核的展开图。图10B包括L1高速缓存1004的L1数据高速缓存1006A部分以及有关向量单元1010和向量寄存器1014的更多细节。具体而言,向量单元1010是16宽向量处理单元(VPU)(参见16宽ALU1028),它执行整数、单精度浮点、双精度浮点指令的一个或更多个指令。VPU通过混合单元1020支持对寄存器输入的混合、通过数值转换单元1022A-B支持数值转换,并且通过复制单元1024支持关于存储器输入的复制。写掩码寄存器1026允许预测得到的向量写入。
图11是根据本公开内容的实施例的可具有多于一个核,可具有集成存储器控制器并且可具有集成图形的处理器1100的框图。在图11中实线框示出具有单个核1102A、系统代理1110、一个或更多个总线控制器单元1116的集合的处理器1100,而可选添加的虚线框示出具有多个核1102A-N、系统代理单元1110中的一个或更多个集成存储器控制器单元(一个或多个)1114的集合及专用逻辑1108的备选处理器。
因此,处理器1100的不同实现可包括:1) CPU,其中专用逻辑1108是集成图形和/或科学(吞吐量)逻辑(可包括一个或更多个核),并且核1102A-N是一个或更多个专用核(例如,通用有序核、通用无序核、两者的组合);2)协处理器,其中核1102A-N是预期主要用于图形和/或科学(吞吐量)的多个专用核;以及3)协处理器,其中核1102A-N是大量通用有序核。因此,处理器1100可以是通用处理器、协处理器或专用处理器,诸如,例如网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元)、高吞吐量的集成众核(MIC)协处理器(包括30或更多个核)、嵌入式处理器或诸如此类。处理器可在一个或更多个芯片上实现。处理器1100可以是使用例如BiCMOS、COMS或NMOS的多个处理技术的任何技术的一个或更多个衬底的一部分,和/或可在一个或更多个衬底上实现。
存储器层次结构包括核内的一个或更多个级的高速缓存、一个或更多个共享高速缓存单元1106的集合和耦合到集成存储器控制器单元1114集的外部存储器(未示出)。共享高速缓存1106的集合可包括诸如2级(L2)、3级(L3)、4级(L4)或其它级的高速缓存的一个或更多个中间级高速缓存、末级高速缓存(LLC)和/或其组合。虽然在一个实施例中,基于环形的互连单元1112将集成图形逻辑1108、共享高速缓存单元1106的集合和系统代理单元1110/一个或多个集成存储器控制器单元1114互连,但备选实施例可使用任何数量的公知技术用于将此类单元互连。在一个实施例中,在一个或更多个高速缓存单元1106与核1102A-N之间保持相干性。
在一些实施例中,一个或更多个核1102A-N能够进行多线程。系统代理1110包括协调和操作核1102A-N的那些组件。系统代理单元1110例如可包括功率控制单元(PCU)和显示单元。PCU可以是或者包括用于调节核1102A-N和集成图形逻辑1108的功率状态所需的逻辑和组件。显示单元用于驱动一个或更多个外部连接的显示器。
核1102A-N可在体系结构指令集方面是同构或异构的;也就是,两个或更多个核1102A-N可以能够执行相同指令集,而其它核可只能够执行该指令集的子集或不同指令集。
示范计算机体系结构
图12-15是示范计算机体系结构的框图。本领域中熟知的用于膝上型计算机、桌上型计算机、手持式PC、个人数字助理、工程工作站、服务器、网络装置、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形装置、视频游戏装置、置顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持式装置及各种其它电子装置的其它系统设计和配置也是适合的。通常,能够结合如本文中公开的处理器和/或其它执行逻辑的各种各样的系统或电子装置一般是适合的。
现在参照图12,所示出的是根据本公开内容的一个实施例的系统1200的框图。系统1200可包括耦合到控制器集线器1220的一个或多个处理器1210、1215。在一个实施例中,控制器集线器1220包括图形存储器控制器集线器(GMCH) 1290和输入/输出集线器(IOH)1250(其可以在单独芯片上);GMCH 1290包括存储器和图形控制器,存储器1240和协处理器1245耦合到它们;IOH 1250耦合输入/输出(I/O)装置1260到GMCH 1290。备选地,存储器和图形控制器之一或两者集成在处理器内(如本文中所描述的),存储器1240和协处理器1245直接耦合到处理器1210,以及与IOH 1250一起在单个芯片中的控制器集线器1220。存储器1240可包括(例如,存储器和/或功率)转变模块1240A,例如以存储代码,所述代码在被执行时,使得处理器执行本公开内容的任何方法。
另外处理器1215的可选性质在图12中通过虚线表示。每个处理器1210、1215可包括本文中描述的一个或更多个处理核,并且可以是某一版本的处理器1100。
存储器1240例如可以是动态随机存取存储器(DARAM)、相变存储器(PCM)或两者的组合。对于至少一个实施例,控制器集线器1220经诸如前端总线(FSB)的多分支总线、诸如快速通路互连(QPI)的点对点接口或类似连接1295与一个或多个处理器1210、1215进行通信。
在一个实施例中,协处理器1245是专用处理器,诸如,例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器或诸如此类。在一个实施例中,控制器集线器1220可包括集成图形加速器。
在包括体系结构特性、微体系结构特性、热消耗特性、功率消耗特性及诸如此类的品质指标谱(spectrum of metrics of merit)方面,在物理资源1210、1215之间能够存在多种差别。
在一个实施例中,处理器1210执行控制通用类型的数据处理操作的指令。指令内嵌入的可以是协处理器指令。处理器1210将这些协处理器指令识别为属于应由附连协处理器1245执行的类型。相应地,处理器1210在协处理器总线或其它互连上将这些协处理器指令(或表示协处理器指令的控制信号)发布到协处理器1245。一个或多个协处理器1245接受并且执行接收到的协处理器指令。
现在参照图13,图中所示出是根据本公开内容的实施例的第一更具体的示范系统1300的框图。如图13中所示出的,多处理器系统1300是点对点互连系统,并且包括经点对点互连1350耦合的第一处理器1370和第二处理器1380。每个处理器1370和1380可以是某一版本的处理器1100。在本公开内容的一个实施例中,处理器1370和1380分别是处理器1210和1215,而协处理器1338是协处理器1245。在另一实施例中,处理器1370和1380分别是处理器1210,协处理器1245。
示出处理器1370和1380分别包括集成存储器控制器(IMC)单元1372和1382。处理器1370也包括作为其总线控制器单元的一部分的点对点(P-P)接口1376和1378;类似地,第二处理器1380包括P-P接口1386和1388。处理器1370、1380可经使用P-P接口电路1378和1388的点对点(P-P)接口1350交换信息。如图13中所示出的,IMC 1372和1382将处理器耦合到相应存储器,即存储器1332和存储器1334,其可以是本地附连到相应处理器的主存储器的一部分。
处理器1370、1380可各自经使用点对点接口电路1376、1394、1386、1398的单独P-P接口1352、1354与芯片集1390交换信息。芯片集1390可以可选地经高性能接口1339与协处理器1338交换信息。在一个实施例中,协处理器1338是专用处理器,诸如,例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器或诸如此类。
共享高速缓存(未示出)可或者包括在处理器中或者在两个处理器外,还经P-P互连与处理器连接,使得如果处理器被置于低功率模式中,则任一或两个处理器的本地高速缓存信息可存储在共享高速缓存中。
芯片集1390可经接口1396耦合到第一总线1316。在一个实施例中,第一总线1316可以是外设组件互连(PCI)总线,或诸如PCI Express总线或另一第三代I/O互连总线的总线,尽管本公开内容的范围并不那样限制。
如图13中所示出的,各种I/O装置1314可连同将第一总线1316耦合到第二总线1320的总线桥1318,耦合到第一总线1316。在一个实施例中,诸如协处理器、高吞吐量MIC处理器、GPGPU的、加速器(诸如,例如图形加速器和数字信号处理(DSP)单元)、现场可编程门阵列或任何其它处理器的一个或更多个另外的处理器(一个或多个)1315耦合到第一总线1316。在一个实施例中,第二总线1320可以是低引脚数(LPC)总线。在一个实施例中,各种装置可耦合到第二总线1320,例如包括键盘和/或鼠标1322、通信装置1327和诸如磁盘驱动器或其它海量存储装置的可包括指令/代码和数据1330的存储单元1328。此外,音频I/O 1324可耦合到第二总线1320。注意的是,其它体系结构是可能的。例如,系统可实现多分支总线或其它此类体系结构,而不是图13的点对点体系结构。
现在参照图14,所示出的是根据本公开内容的实施例的第二更具体的示范系统1400的框图。图13和14中的相同的元素使用相同的附图标记,并且已经从图14中省略了图13的某些方面以免模糊图14的其它方面。
图14示出处理器1370、1380可分别包括集成存储器和I/O控制逻辑(“CL”)1372和1382。因此,CL 1372、1382包括集成存储器控制器单元,并且包括I/O控制逻辑。图14示出不但存储器1332、1334耦合到CL 1372、1382,而且I/O装置1414也耦合到控制逻辑1372、1382。遗留I/O装置1415耦合到芯片集1390。
现在参照图15,所示出的是根据本公开内容的实施例的SoC 1500的框图。图11中的类似元素使用相同的标号。并且,虚线框是关于更先进的SoC的可选特征。在图15中,一个或多个互连单元1502耦合到:应用处理器1510,它包括一个或更多个核202A-N的集合和一个或多个共享高速缓存单元1106;系统代理单元1110;一个或多个总线控制器单元1116;一个或多个集成存储器控制器单元1114;一个或更多个协处理器1520的集合,协处理器1520可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元1530;直接存储器存取(DMA)单元1532;以及用于耦合到一个或更多个外部显示器的显示单元1540。在一个实施例中,一个或多个协处理器1520包括专用处理器,诸如,例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、嵌入式处理器或诸如此类。
本文中公开的(例如,机制的)实施例可在硬件、软件、固件中实现,或者在此类实现方案的组合中实现。本公开内容的实施例可实现为在可编程系统上执行的计算机程序或程序代码,可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元素)、至少一个输入装置以及至少一个输出装置。
诸如图13中所示出的代码1330的程序代码可应用到输入指令以执行本文中描述的功能,并且生成输出信息。输出信息可以以熟知的方式应用到一个或多个输出装置。出于本申请的目的,处理系统包括具有处理器的任何系统,诸如,例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器。
程序代码可以用面向过程或对象的高级编程语言来实现,以便与处理系统进行通信。程序代码也可以如果需要,用汇编或机器语言来实现。实际上,本文中描述的机制在范围上不限于任何特定的编程语言。在任何情况下,语言可以是编译或解释语言。
至少一个实施例的一个或几个方面可通过在表示处理器内各种逻辑的机器可读介质上存储的代表性指令来实现,指令在由机器读取时,使得机器制造逻辑以执行本文中所描述的技术。称为“IP核”的此类表示可存储在有形的机器可读介质上,并且提供到各种客户或生产设施以加载到实际形成逻辑或处理器的制造机器中。
此类机器可读存储媒体可包括但不限于通过机器或装置制造或形成的物品的非暂时性、有形布置,包括:存储媒体(例如硬盘)、包括软盘、光盘、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)和磁光盘的任何其它类型的盘;半导体装置,例如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、可擦写可编程只读存储器(EPROM)、闪存存储器、电可擦写可编程只读存储器(EEPROM)的随机存取存储器(RAM);相变存储器(PCM);磁卡或光卡;或适于用于存储电子指令的任何其它类型的媒体。
相应地,本公开内容的实施例也包括非暂时性、有形机器可读媒体(包含指令或者包含设计数据,如硬件描述语言(HDL)),它定义本文中描述的结构、电路、设备、处理器和/或系统特征。此类实施例也可称为程序产品。
仿真(包括二进制翻译、代码变形等)
在一些情况下,指令转换器可用于将指令从源指令集转换到目标指令集。例如,指令转换器可将指令翻译(例如,使用静态二进制翻译、包括动态编译的动态二进制翻译)、变形、仿真或以其它方式转换成要由核处理的一个或更多个其它指令。指令转换器可在硬件、固件、软件或其组合中实现。指令转换器可在处理器上,在处理器外或者部分在处理器上,并且部分在处理器外。
图16是根据本公开内容的实施例的对比将源指令集中的二进制指令转换成目标指令集中二进制指令的软件指令转换器的使用的框图。在所示出的实施例中,指令转换器是软件指令转换器,尽管备选地,指令转换器可在软件、固件、硬件或其各种组合中实现。图16示出可使用x86编译器1604对用高级语言1602的程序进行编译,以生成可由具有至少一个x86指令集核的处理器1616在本机执行的x86二进制代码1606。具有至少一个x86指令集核的处理器1616表示能够通过兼容执行或以其它方式处理(1) Intel x86指令集核的指令集的实质部分或(2)定向为在具有至少一个x86指令集核的Intel处理器上运行的应用或其它软件的对象代码版本,与具有至少一个x86指令集核的Intel处理器执行实质上相同功能,以便与具有至少一个x86指令集核的Intel处理器实现实质上相同结果的任何处理器。x86编译器1604表示可操作来生成x86二进制代码1606(例如,对象代码)的编译器,代码1606能够通过或不通过另外的链接处理,在具有至少一个x86指令集核的处理器1616上执行。类似地,图16示出可使用备选指令集编译器1608对用高级语言1602程序进行编译,以生成备选指令集二进制代码1610,代码1610可由不具有至少一个x86指令集核的处理器1614(例如,具有执行加利福尼亚州Sunnyvale的MIPS Technologies的MIPS指令集,和/或执行加利福尼亚州Sunnyvale的ARM Holdings的ARM指令集的核的处理器)在本机执行。指令转换器1612用于将x86二进制代码1606转换成可由不具有x86指令集核的处理器1614在本机执行的代码。此转换的代码不可能与备选指令集二进制代码1610相同,因为能够进行此操作的指令转换器难以制造;然而,转换的代码将实现一般操作,并且由来自备选指令集的指令组成。因此,指令转换器1612表示通过仿真、模拟或任何其它过程,允许不具有x86指令集处理器或核的处理器或其它电子装置执行x86二进制代码1606的软件、固件、硬件或其组合。
Claims (19)
1.一种硬件设备,包括:
具有核的硬件处理器;
多个功率域,以响应于用于每个功率域的功率管理命令而转变到多个功率状态之一;以及
执行以下操作的功率事务单元:
指派第一功率管理命令为第一功率事务,以及第二功率管理命令为第二功率事务以便并发执行,
在所述第一功率事务与所述第二功率事务之间不存在冲突时,执行所述第一功率事务和所述第二功率事务的提交,以及
在所述第一功率事务与所述第二功率事务之间存在冲突时,执行所述第一功率事务的中止和所述第二功率事务的提交。
2.如权利要求1所述的硬件设备,其中所述第一功率事务和所述第二功率事务每个包括多个指令。
3.如权利要求1所述的硬件设备,还包括多个功率状态寄存器以接收用于每个域的所述功率管理命令。
4.如权利要求3所述的硬件设备,其中所述冲突是所述第一功率事务写入到所述第二功率事务已写入的功率状态寄存器。
5.如权利要求1所述的硬件设备,其中所述功率事务单元将不发布锁。
6.如权利要求1所述的硬件设备,其中所述冲突是所述第一功率事务和所述第二功率事务写入用于共享功率域的冲突功率管理命令。
7.如权利要求1所述的硬件设备,其中,在存在冲突时,响应于所述第二功率事务的执行的功率域的转变只在所述第二功率事务的所述提交后对其它事务可见。
8.如权利要求1-7任一项所述的硬件设备,还包括存储器事务单元,以在所述核上第一线程和在所述硬件处理器的第二核上第二线程的并发执行后,除非所述第一线程和所述第二线程将修改同一存储器地址,否则执行所述第一线程和所述第二线程的提交。
9.一种方法,包括:
提供包括硬件处理器的硬件设备的多个功率域,以响应于用于每个功率域的功率管理命令而转变到多个功率状态之一;
指派第一功率管理命令为第一功率事务,以及第二功率管理命令为第二功率事务以便并发执行;
在所述第一功率事务与所述第二功率事务之间不存在冲突时,执行所述第一功率事务和所述第二功率事务的提交;以及
在所述第一功率事务与所述第二功率事务之间存在冲突时,执行所述第一功率事务的中止和所述第二功率事务的提交。
10.如权利要求9所述的方法,其中所述第一功率事务和所述第二功率事务每个包括多个指令。
11.如权利要求9所述的方法,还包括在功率状态寄存器接收用于每个域的所述功率管理命令。
12.如权利要求11所述的方法,其中所述冲突是所述第一功率事务写入到所述第二功率事务已写入的功率状态寄存器。
13.如权利要求9所述的方法,其中不发布锁。
14.如权利要求9所述的方法,其中所述冲突是所述第一功率事务和所述第二功率事务写入用于共享功率域的冲突功率管理命令。
15.如权利要求9所述的方法,其中,在存在冲突时,响应于所述第二功率事务的执行的功率域的转变只在执行所述第二功率事务的所述提交后对其它事务可见。
16.如权利要求9-15任一项所述的方法,还包括在所述硬件处理器上第二线程和第一线程的并发执行后,除非所述第一线程和所述第二线程将修改同一存储器地址,否则执行所述第一线程和所述第二线程的提交。
17.一种硬件设备,包括:
具有核的硬件处理器;
多个功率域,以响应于用于每个功率域的功率管理命令而转变到多个功率状态之一;以及
执行以下操作的部件:
指派第一功率管理命令为第一功率事务,以及第二功率管理命令为第二功率事务以便并发执行,
在所述第一功率事务与所述第二功率事务之间不存在冲突时,执行所述第一功率事务和所述第二功率事务的提交,以及
在所述第一功率事务与所述第二功率事务之间存在冲突时,执行所述第一功率事务的中止和所述第二功率事务的提交。
18.一种机器可读介质,包括程序代码,所述程序代码在被执行时使得机器执行如权利要求9-15任一项所述的方法。
19.一种机器可读介质,包括程序代码,所述程序代码在被执行时使得机器执行如权利要求16所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/752896 | 2015-06-27 | ||
US14/752,896 US9733689B2 (en) | 2015-06-27 | 2015-06-27 | Hardware apparatuses and methods to perform transactional power management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106293894A true CN106293894A (zh) | 2017-01-04 |
CN106293894B CN106293894B (zh) | 2020-05-19 |
Family
ID=56080322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610362190.0A Active CN106293894B (zh) | 2015-06-27 | 2016-05-27 | 执行事务性功率管理的硬件设备和方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US9733689B2 (zh) |
EP (1) | EP3109728A1 (zh) |
JP (1) | JP6272942B2 (zh) |
KR (1) | KR101804677B1 (zh) |
CN (1) | CN106293894B (zh) |
BR (1) | BR102016012083A2 (zh) |
DE (1) | DE102016006399A1 (zh) |
TW (1) | TWI733672B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463242A (zh) * | 2016-06-06 | 2017-12-12 | Arm 有限公司 | 授权组件功率控制 |
CN110300070A (zh) * | 2018-03-23 | 2019-10-01 | 瞻博网络公司 | 基于条件的功率状态的选择性修改 |
CN110770709A (zh) * | 2017-06-28 | 2020-02-07 | Arm有限公司 | 地址转译数据无效化 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10216245B2 (en) * | 2015-12-22 | 2019-02-26 | Cray Inc. | Application ramp rate control in large installations |
US20190303777A1 (en) | 2018-03-30 | 2019-10-03 | Provino Technologies, Inc. | Protocol level control for system on a chip (soc) agent reset and power management |
KR20200135780A (ko) | 2018-03-30 | 2020-12-03 | 프로비노 테크놀로지스, 아이엔씨. | 인터커넥트와 연관된 가상 채널을 통한 트랜잭션의 부분들 중재하기 |
EP4352589A1 (en) * | 2021-07-16 | 2024-04-17 | Google LLC | Power sequencer for power state management |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681937A (zh) * | 2012-05-15 | 2012-09-19 | 浪潮电子信息产业股份有限公司 | 一种缓存一致性协议正确性验证方法 |
US20130073878A1 (en) * | 2011-09-19 | 2013-03-21 | Sonics, Inc. | Apparatus and methods for an interconnect power manager |
US20140115270A1 (en) * | 2012-10-24 | 2014-04-24 | Texas Instruments Incorporated | Multi processor bridge with mixed endian mode support |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3906015B2 (ja) * | 2000-07-12 | 2007-04-18 | 株式会社東芝 | クロック周波数切り替え機能を有するlsi、計算機システム及びクロック周波数切り替え方法 |
US7685365B2 (en) * | 2004-09-30 | 2010-03-23 | Intel Corporation | Transactional memory execution utilizing virtual memory |
US9785462B2 (en) | 2008-12-30 | 2017-10-10 | Intel Corporation | Registering a user-handler in hardware for transactional memory event handling |
US8423802B2 (en) * | 2010-04-07 | 2013-04-16 | Andes Technology Corporation | Power scaling module and power scaling unit of an electronic system having a function unit in a standby state which is insensitive to change in frequency or voltage during synchronization |
US8601288B2 (en) | 2010-08-31 | 2013-12-03 | Sonics, Inc. | Intelligent power controller |
JP5636276B2 (ja) * | 2010-12-27 | 2014-12-03 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP5833434B2 (ja) * | 2011-12-28 | 2015-12-16 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US8984313B2 (en) | 2012-08-31 | 2015-03-17 | Intel Corporation | Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator |
US8959576B2 (en) * | 2013-03-14 | 2015-02-17 | Intel Corporation | Method, apparatus, system for qualifying CPU transactions with security attributes |
US9928264B2 (en) * | 2014-10-19 | 2018-03-27 | Microsoft Technology Licensing, Llc | High performance transactions in database management systems |
-
2015
- 2015-06-27 US US14/752,896 patent/US9733689B2/en active Active
-
2016
- 2016-05-09 JP JP2016094197A patent/JP6272942B2/ja not_active Expired - Fee Related
- 2016-05-24 TW TW105116129A patent/TWI733672B/zh active
- 2016-05-24 EP EP16171196.5A patent/EP3109728A1/en not_active Withdrawn
- 2016-05-25 DE DE102016006399.8A patent/DE102016006399A1/de not_active Withdrawn
- 2016-05-27 CN CN201610362190.0A patent/CN106293894B/zh active Active
- 2016-05-27 BR BR102016012083-7A patent/BR102016012083A2/pt not_active IP Right Cessation
- 2016-05-27 KR KR1020160065505A patent/KR101804677B1/ko active IP Right Grant
-
2017
- 2017-08-15 US US15/678,025 patent/US10768680B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130073878A1 (en) * | 2011-09-19 | 2013-03-21 | Sonics, Inc. | Apparatus and methods for an interconnect power manager |
CN102681937A (zh) * | 2012-05-15 | 2012-09-19 | 浪潮电子信息产业股份有限公司 | 一种缓存一致性协议正确性验证方法 |
US20140115270A1 (en) * | 2012-10-24 | 2014-04-24 | Texas Instruments Incorporated | Multi processor bridge with mixed endian mode support |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463242A (zh) * | 2016-06-06 | 2017-12-12 | Arm 有限公司 | 授权组件功率控制 |
CN107463242B (zh) * | 2016-06-06 | 2023-05-23 | Arm 有限公司 | 授权组件功率控制 |
CN110770709A (zh) * | 2017-06-28 | 2020-02-07 | Arm有限公司 | 地址转译数据无效化 |
US11615032B2 (en) | 2017-06-28 | 2023-03-28 | Arm Limited | Address translation data invalidation |
CN110770709B (zh) * | 2017-06-28 | 2023-10-20 | Arm有限公司 | 地址转译数据无效化 |
CN110300070A (zh) * | 2018-03-23 | 2019-10-01 | 瞻博网络公司 | 基于条件的功率状态的选择性修改 |
CN110300070B (zh) * | 2018-03-23 | 2022-12-30 | 瞻博网络公司 | 基于条件的功率状态的选择性修改 |
Also Published As
Publication number | Publication date |
---|---|
US10768680B2 (en) | 2020-09-08 |
TWI733672B (zh) | 2021-07-21 |
BR102016012083A2 (pt) | 2017-12-12 |
EP3109728A1 (en) | 2016-12-28 |
DE102016006399A1 (de) | 2016-12-29 |
KR101804677B1 (ko) | 2017-12-04 |
US9733689B2 (en) | 2017-08-15 |
JP6272942B2 (ja) | 2018-01-31 |
JP2017016639A (ja) | 2017-01-19 |
CN106293894B (zh) | 2020-05-19 |
US20160378160A1 (en) | 2016-12-29 |
US20180059766A1 (en) | 2018-03-01 |
TW201716923A (zh) | 2017-05-16 |
KR20170001577A (ko) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106293894A (zh) | 执行事务性功率管理的硬件设备和方法 | |
CN109375949B (zh) | 一种具有多个核的处理器 | |
CN106575218A (zh) | 持久性存储屏障处理器、方法、系统和指令 | |
CN105453041B (zh) | 用于高速缓存占据确定和指令调度的方法和装置 | |
CN104050023B (zh) | 用于实现事务存储器的系统和方法 | |
CN106708753A (zh) | 在使用共享虚拟存储器的处理器中加速操作的装置和方法 | |
CN105786665B (zh) | 用于测试事务性执行状态的系统 | |
CN106716434A (zh) | 具有独立的用户域与管理程序域的存储器保护密钥架构 | |
CN108268282A (zh) | 用以检查和存储对存储器地址是否在持久存储器中的指示的处理器、方法、系统和指令 | |
CN104813278B (zh) | 对二进制转换的自修改代码以及交叉修改代码的处理 | |
CN108351830A (zh) | 用于存储器损坏检测的硬件装置和方法 | |
CN109564552A (zh) | 增强基于每页当前特权等级的存储器访问许可 | |
CN107003837A (zh) | 用于推测性编译器优化的轻量级受限事务存储器 | |
TW202314486A (zh) | 原子式儲存至寬於原生支援資料寬度之記憶體資料的處理器、方法、系統與指令 | |
CN109690552A (zh) | 用于判定是否将受保护容器页的加密副本加载到受保护容器存储器中的处理器、方法、系统和指令 | |
CN104813279B (zh) | 用于减少具有步幅式访问模式的向量寄存器中的元素的指令 | |
CN107667358A (zh) | 用于在多个拓扑结构中使用的相干结构互连 | |
CN104025027B (zh) | 结构访问处理器、方法、系统和指令 | |
CN108710582A (zh) | 用于基于局部性的指令处理的选择性启用的系统、设备和方法 | |
CN108694056A (zh) | 用于基于二进制翻译的微处理器的混合原子性支持 | |
CN106575284A (zh) | 用于内核模块的多核存储器数据记录器 | |
CN105027137B (zh) | 用于针对增强型安全检查的页走查扩展的装置和方法 | |
CN109661656A (zh) | 用于利用条件所有权请求的智能存储操作的方法和装置 | |
CN104246694A (zh) | 聚集页错误信令和处理 | |
CN109416672A (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 |