CN107003709A - 包括实现指令集架构不同部分的多个不同处理器内核的处理器 - Google Patents
包括实现指令集架构不同部分的多个不同处理器内核的处理器 Download PDFInfo
- Publication number
- CN107003709A CN107003709A CN201580062019.1A CN201580062019A CN107003709A CN 107003709 A CN107003709 A CN 107003709A CN 201580062019 A CN201580062019 A CN 201580062019A CN 107003709 A CN107003709 A CN 107003709A
- Authority
- CN
- China
- Prior art keywords
- processor
- kernel
- state
- cores
- power management
- 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
- 238000012545 processing Methods 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 10
- 238000000034 method Methods 0.000 claims description 9
- 230000005611 electricity Effects 0.000 claims description 8
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 230000001052 transient effect Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 9
- 238000013461 design Methods 0.000 abstract description 8
- 238000005457 optimization Methods 0.000 abstract description 2
- 230000015654 memory Effects 0.000 description 42
- 238000007726 management method Methods 0.000 description 21
- 239000002609 medium Substances 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 230000008859 change Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000005055 memory storage Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 239000004744 fabric Substances 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000007727 signaling mechanism Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
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
- 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/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- 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/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
Abstract
在一个实施方案中,集成电路可包括一个或多个处理器。每个处理器可包括多个处理器内核,并且每个内核具有不同的设计/实施和性能水平。例如,一个内核可针对高性能而被实现,并且另一个内核可以较低最大性能来实现,但可针对效率最优化。另外,在一些实施方案中,由处理器所实现的指令集架构的一些特征可在构成处理器的内核中的唯一一个内核中实现。如果在不同的内核活动时此类特征由代码序列调用,则处理器可使内核交换至实现该特征的内核。另选地,可获取异常并执行异常处理程序,以识别特征并激活对应的内核。
Description
技术领域
本文所述的实施方案涉及处理器,并且更具体地涉及形成处理器的多个处理器内核。
背景技术
被包括在电子系统中的各种处理器执行用于提供一定数量的用户功能的软件。该处理器可包括系统中的中央处理单元(CPU)以及专用于特定任务诸如图形、媒体处理等的专用处理器。一般来讲,处理器被设计用于在多个操作点(供电电压幅值和时钟频率的设置)处进行操作。相比于较高操作点,较低操作点消耗较少的电力但也提供有限的功能。对于某些工作负荷,有限性能足够并且可使用较低操作点。对于其他工作负荷,需要较高操作点来提供足够的性能。
在一些系统中,经历各种工作负荷。设计一种可提供需求最高的工作负荷所需的性能同时还支持可向许多频繁执行的工作负荷提供足够性能的最低可能操作点的处理器成为挑战。在高操作点下操作的处理器可仅支持供电电压在电路停止正确运行之前降低至特定水平。必须进行折中并且通常将最低操作点提高直至设计可满足期望的高端操作点。在高端操作点继续提高时,越来越多的工作负荷能够在最低操作点处执行(并且许多工作负荷甚至可在更低的操作点处执行)。在此类工作负荷上不必要地消耗了电力,这可能成为移动系统中在有限能量源诸如电池上频繁操作的关键因素。
发明内容
在一个实施方案中,集成电路可包括一个或多个处理器。每个处理器可包括多个处理器内核,并且每个内核具有不同的设计/实施和性能水平。例如,可实现针对高性能的内核,但可具有该内核在其下正确操作的较高最小电压。另一内核可以较低最大性能实现,但可针对效率最优化,并且可在较低最小电压下正确操作。另外,在一些实施方案中,处理器所采用的指令集架构的一些特征可在构成处理器的内核中的唯一一个内核中实现(或者可由除至少一个内核之外的内核的子集来实现)。如果在不同的内核活动时此类特征由代码序列调用,则处理器可使内核交换至实现该特征的内核中的一个内核。另选地,可获取异常并执行异常处理程,以识别特征并激活对应的内核。
在一些实施方案中,使特定特征限制于一个内核或至少限制于少于所有内核可通过去除内核中的重复电路以处理相同的指令类型来提供区域有效具体实施。仅可能用于高性能代码的特征可仅在高性能内核中实现,这是因为该代码最有可能执行高性能代码。不太可能使用的特征(例如,针对向后兼容提供但不为较新代码所使用的特征)可在一个内核中实现,从而从区域角度来看可被有效支持。
该处理器可支持多个处理器状态(P状态)。每个P状态可规定操作点(例如,供电电压幅值和时钟频率的组合),并且每个P状态可被映射到处理器内核中的一个处理器内核。在操作期间,一个内核是活动的:当前P状态映射到的内核。如果选择新的P状态并且其被映射到不同的内核,则该处理器可使处理器状态自动地上下文切换到新选择的内核并且可在此内核上开始执行。在一个实施方案中,该处理器可检测新选择的内核是否支持在当前工作负荷所使用的特征,并且在不支持的情况下可采取纠正措施。
附图说明
下面的具体实施方式将参照附图进行描述,现在对附图进行简要说明。
图1为处理器集群的一个实施方案的框图。
图2为示出如图1所示的P内核和E内核的一个实施方案的效率与性能的图示。
图3为示出处理器电力管理单元改变处理器状态的一个实施方案的操作的流程图。
图4为示出处理器电力管理单元交换内核的一个实施方案的操作的流程图。
图5为示出在指令执行期间在活动内核的一个实施方案上操作的流程图。
图6为示出在指令执行期间在活动内核的另一个实施方案上操作的流程图。
图7为计算机可访问存储介质的框图。
图8为用于内核交换的上下文切换硬件的一个实施方案的框图。
图9为包括图1所示的处理器集群的一个实施方案的片上系统(SOC)的一个实施方案的框图。
图10是系统的一个实施方案的框图。
尽管本公开所述的实施方案可受各种修改形式和替代形式的影响,但其具体实施方案在附图中以举例的方式示出并在本文详细描述。然而,应当理解,附图和对其的详细描述并非旨在将实施方案限制于所公开的具体形式,相反,本发明旨在涵盖落入到所附权利要求的实质和范围内的所有修改形式、等价形式和替代形式。本文所使用的标题仅用于组织目的,并不旨在用于限制说明书的范围。如在整个专利申请中所使用的那样,以允许的意义(即,意味着具有可能性)而不是强制的意义(即,意味着必须)来使用“可以”一词。类似地,字词“包括”是指包括但不限于。
各种单元、电路或其他部件可被描述为“被配置为”执行一个或多个任务。在此类上下文中,“被配置为”是一般表示“具有”在操作期间执行一个或多个任务的“电路”的结构的宽泛表述。如此,即使在单元/电路/部件当前未接通时,单元/电路/部件也可被配置为执行任务。一般来讲,形成与“被配置为”对应的结构的电路可包括硬件电路和/或存储可执行以实现该操作的程序指令的存储器。该存储器可包括易失性存储器(诸如静态随机存取存储器或动态随机存取存储器)和/或非易失性存储器(诸如光盘或磁盘存储装置、闪存存储器、可编程只读存储器等)。类似地,为了描述中的方便,可将各种单元/电路/部件描述为执行一项或多项任务。此类描述应当被解释成包括短语“被配置为”。表述被配置为执行一个或多个任务的单元/电路/部件明确地旨在对该单元/电路/部件不调用35U.S.C.§112(f)的解释。
本说明书包括对“一个实施方案”的引用。短语“在一个实施方案中”或“在实施方案中”的出现不一定指相同的实施方案,尽管通常设想包括特征的任何组合的实施方案,除非在此明确地否认。特定特征、结构或特性可以与本公开一致的任何适当的方式结合。
具体实施方式
图1为处理器集群30的一个实施方案的框图。在例示的实施方案中,包括多个处理器32A-32n和二级(L2)高速缓存34。处理器32A-32n耦接至L2高速缓存34,该L2高速缓存进一步耦接以与包括集群30的系统的其他元件进行通信。在例示的实施方案中,L2高速缓存34包括处理器电源管理器36,该处理器电源管理器包括存储处理器32A-32n的P状态的P状态寄存器38。在各种实施方案中,每个处理器32A-32n可具有其自身的独立P状态,处理器32A-32n的群组可共享P状态,或者集群30可具有针对处理器32A-32n的共享的P状态。图1中更详细示出处理器32A包括至少两个处理器内核,性能内核(P内核)40和效率内核(E内核)42。其他实施方案可包括附加内核。每个内核40和42通过相应的电源开关44和46而被耦接至电源轨(VP)。因此,每个内核40和42可独立地上电或掉电。其他处理器诸如处理器32n可类似于处理器32A。
每个处理器32A-32n可以是实体,在系统中执行的软件可向该实体分配代码来执行。例如,软件可为操作系统(OS)的对系统中的硬件进行控制的一部分。软件可为调度待执行的代码的线程或任务调度器。OS还可基于所执行的代码的性能需求来向处理器32A-32n分配P状态。OS可追踪代码的行为以确定P状态,可静态地记录每个线程/任务的信息以选择P状态等,或它们的任何组合。除此之外或另选地,P状态还可受系统中的其他条件(热极限、可用电池电量等)的影响。
P内核40和E内核42可为由处理器32A-32n所采用的指令集架构(ISA)的不同设计、不同实施。以另一种方式来考虑,P内核40和E内核42可实现不同的微架构。P内核40可为试图在电力节省作为不太受重视的设计目标的情况下使性能最大化的激进设计。P内核40中的电路可以是激进式的,其可避免P内核40可在其下工作的最小供电电压如在一些P状态下所期望的一样低。另一方面,E内核42可实现较为保守的设计,从而能够在低于P内核40的最小电压下正确地操作。E内核42的性能在给定操作点下可低于P内核40,并且对于E内核42,电力节省可为更高度重视的目标。E内核42所占据的半导体区域可小于P内核40所占据的半导体区域。
更具体地,在一个实施方案中,E内核42和/或P内核40可实现由处理器32A-32n所采用的ISA的子集,其中ISA的一个或多个特征不被包括在该子集中。在一个实施方案中,P内核40可实现整个ISA并且E内核42可实现子集。在另一个实施方案中,P内核40和E内核42可各自实现不同的子集。子集可部分地重叠(例如,常用指令诸如整数指令可为每个子集的一部分)。
各种实施方案可以多种方式来选择从特定子集排除的特征。对于E内核42,可将不常使用并且实施起来开销大的特征(例如,根据所占据的半导体基板区域、功率消耗等)排除。例如,在一个实施方案中,ISA可限定给定操作数类型的多个操作数大小。在一个实施方案中,操作数类型可为整数并且大小可包括32位和64位。现代代码似乎趋向于64位整数代码。另一方面,用于同时支持64位和32位整数操作数大小的硬件可能很占空间并可施压于时间,这就可能导致较高的电力实施。因此,E内核42可实现64位整数硬件并且可排除对32位整数代码的支持。可类似地排除其他ISA特征。例如,ISA通常包括对操作数的矢量执行单指令多数据(SIMD)处理的矢量指令集。该矢量具体实施可为高功率和/或消耗空间的。最新ISA引入为促成循环矢量化的谓词矢量指令集。还可从E内核42中消除此类特征。一般来讲,ISA特征可包括一条指令、一组指令、操作数类型或大小、模式等。
每个可能的P状态可指定用于处理器32A-32n的操作点。例如,操作点可包括供电电压幅值VP和处理器32A-32n中的时钟的时钟频率。其他实施方案可以其他方式限定操作点,但通常操作点可指示处理器的性能和电力消耗。在一个实施方案中,P状态可为直接用作供电电压量值和时钟频率的一对值。在其他实施方案中,P状态可为用于获取供电电压量值和时钟频率的值(例如,至数值表的索引)。
如图1所示,该处理器32A包括P内核40和E内核42。由处理器32A所支持的每个P状态被映射到内核40和内核42中的一个内核。每个内核40和42可具有映射至其的多于一个P状态。
在由处理器32A-32n执行的代码改变和/或其他系统考虑因素需要P状态的变化时,P状态寄存器38可被更新(例如,由OS)。如果P状态从映射到内核40和内核42中的一个内核(“活动内核”)的当前P状态变为映射到内核40和内核42中的另一内核(“目标内核”)的新的P状态,集群30可在硬件中将处理器32A的处理器上下文从活动内核自动传输到目标内核。在P状态改变的时刻,目标内核可被断电。传输上下文的过程可包括使目标内核通电、重置并初始化目标内核、传输处理器上下文、以及使活动内核(使目标内核为活动内核)掉电。执行可在目标内核(当前活动内核)上继续。因此,在内核之间进行切换可对软件不可见。事实上,软件甚至可能并未“意识到”在处理器32A-32n中存在多个内核。
尽管图1中所示的示例在处理器32A中包括两个内核,但其他实施方案可包括多于两个内核。一个内核可为在最低P状态下操作的最高效内核,并且另一内核可针对沿性能/效率曲线的其他点进行最优化直到处理器中没有另一内核为多个内核中的最高性能内核。在各种实施方案中,可使用任何数量的内核。
一般来讲,处理器可为被配置为实现所限定的指令集架构(ISA)的任何电路。在各种实施方案中,存在并可利用各种ISA,诸如x86架构(也称为APX)、ARM架构、MIPS架构、PowerPC(现简称Power)等。处理器可采用包括上述多内核方法的多种微架构技术。每个内核也可实现各种微架构技术。一般来讲,微架构是指执行单元和用于实现ISA的其他电路的机构。示例可包括有序与无序执行、推测执行、分支预测、超标量、超管线式等。除各种其他技术之外,实施方案可实现微码技术。
该处理器32A-32n和/或处理器组合体30可用作系统中的任何处理器。例如,处理器可以是中央处理单元(CPU),该中央处理单元执行OS,以控制系统中的其他硬件并调度要执行的应用代码。CPU也可执行应用代码。该处理器可为专用处理器,诸如针对图形操作优化的图形处理单元(GPU)、针对信号处理优化的数字信号处理器(DSP)、在各种外围部件中进行软件执行的嵌入式处理器等。
在一个实施方案中,内核40和内核42中的形成处理器32A-32n的最多一个内核可在执行期间通电,在正传输处理器上下文时除外。给定处理器32A-32n可完全断电(所有内核掉电)。该处理器电源管理器36可被配置为使用电源开关44和46来控制处理器内核的通电/上电和处理器内核的断电/掉电。
在一些实施方案中,内核40和/或42可实现可存储经修改的数据(即,例如响应于存储在执行的处理器代码中已被写入高速缓存中、但尚未写入到存储器使得存储器中的数据不再是正确数据的数据)的数据高速缓存。除了传输处理器上下文之外,经修改的数据可从数据高速缓存刷新。具体地讲,数据可被刷新到L2高速缓存34,但仍可被存储在L2高速缓存34中,除非L2高速缓存34的正常操作使数据被清除。一旦最新活动内核执行,则经修改的数据可在L2高速缓存34中大受欢迎并且可以较低延时被移动到最新活动内核的高速缓存中。
该处理器电源管理器36可被配置为管理处理器集群30内的P状态转换。该处理器电源管理器36可被配置为将供电电压幅值变换传送到系统级电源管理器或直接传输到向系统供给电压的电力管理单元(PMU)。该处理器电源管理器36可被配置为与时钟产生硬件(图1中未示出)诸如锁相环(PLL)等进行交互。
该处理器上下文通常可包括任何软件可见的处理器状态。该状态通常可作为限定于ISA中的各种指令的操作数而被存储在能够访问的寄存器中。该状态可包括架构化寄存器,诸如各种类型(整数、浮点、向量等)的操作数寄存器。该寄存器还可包括处理器控制寄存器,诸如状态寄存器、处理器模式寄存器等。该寄存器还可包括被限定为包括用于特定单元的特定内容的专用寄存器。该寄存器还可包括特定于模型的寄存器,其存在可在架构上被指定而其内容可根据不同具体实施而不同。
L2高速缓存34可具有任何容量和构型。L2高速缓存34可包括处理器32A-32n中的高速缓存,排除或不包括该高速存储。
图2为示出内核40和42的一个实施方案的效率与性能的图示。虚线对应于E内核42并且实线对应于P内核40。效率绘制在竖直轴线上,并且性能绘制在水平轴线上。可以多种方式(例如,性能/瓦特)来测量效率。该性能可使用各种基准测试程序诸如Specint,SpecFlt,Dhrystone等来测量。该处理器32A的各种P状态沿图2中的曲线示出。与较高性能对应的P状态位于P内核曲线上,因为P内核针对性能进行优化,其中与较低性能/较高能量节省对应的P状态位于E内核曲线上,其在较低性能水平下更为高效但在较高性能水平下性能欠佳。
因此,在图2的示例中,P状态1,2和3被映射到E内核42并且P状态4,5,6和7被映射到P内核40。可支持任何数量的P状态并且可将任何数量映射到各种内核。在另一个实施方案中,可支持连续P状态设置。在此类实施方案中,可将图2中的曲线相交处的转折点限定在内核切换可能发生的位置处。
图3为示出处理器电源管理器36响应于写入到P状态寄存器38的新的P状态的操作的一个实施方案的流程图。然而,为了便于理解,框图以特定顺序示出,也可使用其他顺序。可在处理器电源管理器36中的组合逻辑中并行地执行框。框、框的组合和/或流程图作为一个整体可在多个时钟周期内为管线式的。该处理器电源状态管理器36可被配置为实现图3中所示的操作。
该活动内核可为当前正执行代码的内核40/42。在一些实施方案中,活动内核可为在当前P状态下在稳态操作期间通电的唯一内核。如果新的P状态未映射到活动内核(决策框50,“否”分支),则处理器电源状态管理器36可考虑有关工作负荷和目标内核的任何信息,以确定目标内核是否支持该工作负荷(决策框64)。例如,在被存储在非易失性存储器诸如闪存存储器中时某一代码可包括描述符,并且该描述符可指示该代码使用了哪些ISA特征。该处理器电源状态管理器36可根据描述符来确定代码所使用的特征。另选地,处理器32A-32n可跟踪由少于所有内核实现的ISA特征。跟踪状态可用于确定目标内核是否支持当前使用的特征。
如果正在执行的代码使用在目标内核上未实现的特征(决策框64,“否”分支),则处理器电源状态管理器36可不执行状态变化。在一个实施方案中,该处理器电源状态管理器36可在寄存器或其他软件可读位置记录没有状态变化,使得软件可确定状态变化未发生。在未执行状态变化的情况下,也可使用其他指示(例如,中断或其他信令机制)。在一些实施方案中,可不执行阻止状态变化的尝试并且可省略决策框64。相反,在于目标内核上执行代码时,可检测到不被支持的特征。如果正在执行的代码仅使用在目标内核上实现的特征(决策框64,“是”分支),则处理器电源状态管理器36可执行到新P状态映射到的内核的“内核交换”(框52)。
如果新的P状态映射到活动内核(决策框50,“是”分支),则在P状态改变时活动内核可保持活动并且执行可继续。如果新的P状态与当前P状态相比有所增大(决策框54,“是”分支),则供电电压幅值首先可增大以支持增大的频率。因此,该处理器电源状态管理器36可请求电压增大(框56)并等待电压增大完成(决策框58,“是”分支)。该处理器电源状态管理器36可通过等待指定时间段来确定电压增大完成,或者可接收指示电压增大何时完成的通信。在一个实施方案中,该处理器电源状态管理器36可向另一电源管理器(例如,在一个实施方案中,图9所示的SOC水平管理器)发送电压增大请求或可直接向供给电压的PMU发送电压请求。一旦电压增大完成,处理器电源管理器36便可增大时钟的频率(框60)。另一方面,如果新的P状态与当前P状态相比减小,则当前供电电压可支持新的(较低)频率。因此(决策框54,“否”分支),该处理器电源管理器36可更新时钟频率并请求新的供电电压,而无需等待电压变化完成(框62)。
图4为示出处理器电源管理器36执行内核交换的操作的一个实施方案的流程图。(来自图3的框52)然而,为了便于理解,框图以特定顺序示出,也可使用其他顺序。可在处理器电源管理器36中的组合逻辑中并行地执行框。框、框的组合和/或流程图作为一个整体可在多个时钟周期内为管线式的。该处理器电源状态管理器36可被配置为实现图4中所示的操作。
处理器电源管理器36可使活动内核转变到“安全”P状态(框70)。该安全P状态可为活动内核和目标内核两者在其下正确操作的状态。在该上下文中,目标内核可为新的P状态映射到的内核。在存在多于两个内核的实施方案中,安全P状态可根据哪个内核是活动内核、哪个内核是目标内核而不同。该安全P状态不需要是能够P状态寄存器36中选择的P状态。即,供电电压和频率的组合可不是映射到内核的所支持的组合中的一个组合。例如,在给出安全P状态下的供电电压幅值的情况下,P内核能够在较高频率下运行。然而,E内核无法以给定供电电压幅值在较高频率下运行。因此,安全P状态可包括较低时钟频率下的当前供电电压幅值。另选地,目标内核可不支持当前供电电压,并且安全P状态可包括不同供电电压幅值和时钟频率。至安全P状态的转变可类似于图3中的框54,56,58,60和62。
在一些实施方案中,图3和图4的操作可在硬件电路中实现。在其他实施方案中,操作可在硬件和软件的组合中实现或完全在软件中实现,该软件被存储在计算机可访问存储介质上并由处理器32A-32n执行。
该处理器电源管理器36可使目标内核上电(框72)。例如,在图1的实施方案中,处理器电源管理器36可关闭目标内核的电源开关,从而允许电力流到目标内核。该目标内核可在电力稳定之后重置。在一些实施方案中,该目标内核可完成重置之后初始化。一旦重置(以及初始化(如果适用))完成(决策框74,“是”分支),处理器电源管理器36便可开始将处理器上下文从活动内核传输到目标内核(框76)。在一个实施方案中,该内核可包括被配置为发送/接收处理器上下文的电路。在另一个实施方案中,该电路可位于处理器电源管理器36中。如先前所提及的,内核还可被配置为在上下文传输期间刷新高速缓存。一旦上下文传输完成(决策框78,“是”分支),处理器电源管理器便可使(先前)活动内核掉电并且目标内核可成为活动内核(框80)。可例如通过断开先前活动内核的电源开关来实现掉电。该处理器电源管理器36可使活动内核转变到新的P状态(框82)。至新的P状态的转变可类似于图3中的框54,56,58,60和62。
图5为示出在代码执行期间给定处理器32A-32n(并且更具体地,活动内核40/42)的操作的一个实施方案的流程图。然而,为了便于理解,框图以特定顺序示出,也可使用其他顺序。可在处理器32A-32n内的组合逻辑中并行地执行框。框、框的组合和/或流程图作为一个整体可在多个时钟周期内为管线式的。
代码中的每个指令可为ISA特征和/或可利用一个或多个ISA特征。如果活动内核实现用于给定指令的ISA特征(决策框100,“是”分支),则指令可被正常处理(框102)。另一方面,如果活动内核未实现至少一个特征(决策框100,“否”分支)而是另一内核实现了该特征(决策框104,“是”分支),则可执行到实现该特征的内核的内核交换(框52)。如果没有内核实现该特征(决策框100和104,“否”分支),则获取“未实现”异常使得软件可处理错误(框106)。
一般来讲,图5(和下文论述的图6)所示操作可在其通过处理器流水线处理时针对每个指令而执行。可在不同状态下检测各种特征。因此,图5和图6的流程图可针对执行的代码序列中的每个指令由处理器32A-32n并行地实现。
图6为在代码执行期间的给定处理器32A-32n(并且更具体地,活动内核40/42)的操作的另一实施方案。类似于图5的实施方案,图6的实施方案可确定活动内核是否实现代码所使用的ISA特性(决策框100),如果是则正常地处理代码(框102),确定另一内核是否实现特征(决策框104),并且如果在任何内核上未实现则接受未实现的异常(框106)。然而,在该实施方案中,如果另一内核实现了该特征(决策框104),则可接收内核交换异常(框108)。该内核交换异常不同于未实现的异常和由内核40/42所实现的其他异常。该内核交换异常可使得处理器执行内核交换异常处理程序,该内核交换异常处理程序可执行前述的内核交换52。类似地,在一些实施方案中,内核交换异常处理程序可在执行内核交换52的其他时间使用。
图7是计算机可访问存储介质200的一个实施方案的框图。一般来讲,计算机可访问存储介质可包括在使用期间可被计算机访问以向计算机提供指令和/或数据的任何存储介质。例如,计算机可访问存储介质可包括诸如磁性或光学介质的存储介质,例如,盘(固定或可拆卸)、磁带、CD-ROM、DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW、或蓝光。存储介质还可包括易失性或非易失性存储器介质诸如RAM(例如,同步动态RAM(SDRAM)、Rambus DRAM(RDRAM)、静态RAM(SRAM)等)、ROM、或闪存存储器。该存储介质可被物理地包括在存储介质将指令/数据提供到的计算机中。作为另外一种选择,该存储介质可连接至计算机。例如,该存储介质可经由网络或无线链路诸如网络附加的存储装置而与计算机连接。该存储介质可通过外围设备接口诸如通用串行总线(USB)而被连接。一般来讲,计算机可访问存储介质200可以非暂态方式来存储数据,其中非暂态在该上下文中可指不通过信号来传输指令/数据。例如,非暂态存储装置可为易失性(并且可能响应于掉电而丢失所存储的指令/数据)或非易失性的。
图7中的计算机可访问存储介质200可存储用于形成内核交换异常处理程序202的代码。该内核交换异常处理程序202可包括当由处理器32A-32n执行时实现针对内核交换异常处理程序的上述操作(例如,图6的框108和图4的框)的指令。载体介质可包括计算机可访问存储介质以及传输介质诸如有线或无线传输。
图8为处理器32A的一个实施方案的更详细框图。在例示的实施方案中,将P内核40和E内核42示出为包括上下文状态机90(即,图8中的90A和90B)的示例。内核40和42中状态机90的具体实施可不同,但它们可以类似的方式在逻辑方面进行操作。一般来讲,活动内核中的状态机90可使寄存器状态由活动内核输出至与状态机90耦接的上下文缓冲器92。寄存器的状态次序可为固定的,使得接收状态机可简单地读取数据并将其写入到正确的寄存器。在另一具体实施中,次序可为任意的并且每个寄存器可被分配能够通过寄存器内容写入到上下文缓冲器92的标识符,并由接收状态机使用以将正确的寄存器写入到接收内核内。
状态机可以多种方式实现:固定功能电路(例如,有限状态机)、处理器电源管理器36中的由处理器执行的微码(例如,向内核传输各种寄存器的命令)等。另外,活动处理器中的状态机90可刷新数据高速缓存到L2高速缓存34,如上文所提及的。
上下文缓冲器92可为先进先出缓冲器(FIFO),以从一个内核捕获上下文状态到另一内核。上下文缓冲器92可提供灵活性、处理跨时钟域问题等。在一个实施方案中,上下文缓冲器92可为处理器电源管理器36的一部分并以图8中的虚线示出。在另一个实施方案中,状态机90还可在处理器电源管理器36中实现。在此类实施方案中,处理器电源管理器36可具有对内核40和42中的寄存器状态的访问权限,或者可使得指令被执行以执行寄存器读取/写入,从而执行对寄存器状态的传输。
图9为耦接至存储器12的SOC 10的一个实施方案的框图。如名称所暗指的,SOC 10的部件可作为集成电路“芯片”而被集成到单个半导体基板上。在一些实施方案中,该部件可在系统中的两个或更多个芯片上实现。然而,SOC 10在本文将被用作示例。在例示的实施方案中,SOC 10的部件包括中央处理单元(CPU)复合体14(其可由图1所示的处理器集群30来实现)、外围部件18A-18B(更简单地说,“外围设备”18)、存储器控制器22、SOC电源管理器(PMGR)16和通信结构27。部件14,16,18A-18B和22可全部耦接到通信结构27。该存储器控制器22在使用期间可耦接到存储器12。
该存储器控制器22通常可包括用于从SOC 10的其他部件接收存储器操作并用于访问存储器12以完成存储器操作的电路。该存储器控制器22可被配置为访问任何类型的存储器12。例如,存储器12可以是静态随机存取存储器(SRAM)、动态RAM(DRAM)诸如同步的DRAM(SDRAM),其包括双倍数据率(DDR,DDR2,DDR3,DDR4等)DRAM。可支持低功率/移动型式的DDR DRAM(例如,LPDDR、mDDR等)。该存储器控制器22可包括存储器操作队列,以用于对这些操作进行排序(并且可能重新排序)并将这些操作呈现至存储器12。该存储器控制器22还可包括用于存储等待写到存储器的写数据和等待返回至存储器操作的源的读数据的数据缓冲器。在一些示例中,该存储器控制器22可包括用于存储最近访问的存储器数据的存储器高速缓存。例如,在SOC具体实施中,该存储器高速缓存可通过在预期很快要再次访问的情况下避免从存储器12重新访问数据以降低SOC中的功率消耗。在一些情况下,该存储器高速缓存也可被称为系统高速缓存,其与私有高速缓存诸如L2高速缓存或处理器中的高速缓存不同,该私有高速缓存仅服务于某些部件。此外,在一些实施方案中,系统高速缓存不需要位于存储器控制器22内。
该外围设备18A-18B可为被包括在SOC 10中的附加硬件功能的任何集合。例如,该外围设备18A-18B可包括视频外围设备,诸如被配置为处理来自相机或其他图像传感器的图像捕获数据的图像信号处理器、被配置为在一个或多个显示设备上显示视频数据的显示控制器、图形处理器单元(GPU)、视频编码器/解码器、缩放器、旋转器、混合器等。该外围设备可包括音频外围设备,诸如麦克风、扬声器、到麦克风和扬声器的接口、音频处理器、数字信号处理器、混音器等。该外围设备可包括用于SOC 10外部(例如,外围设备18B)的各种接口的接口控制器,包括诸如通用串行总线(USB)、外围部件互连(PCI)(包括PCI Express(PCIe))、串行口和并行口等的接口。该外围设备可包括网络外围设备,诸如媒体访问控制器(MAC)。可包括任何一组硬件。
该通信结构27可以是用于在SOC 10的部件间进行通信的任何通信互连器和协议。该通信构造27可为基于总线的,其包括共享总线配置、交叉杆配置、以及具有网桥的分级总线。该通信构造27还可为基于封装的,并且可利用网桥、交叉杆、点到点或其他互连件进行分级。
该SOC PMGR 16可被配置为控制从系统中PMU请求的供电电压幅值。可存在由PMU所产生的用于SOC 10的多个供电电压。例如,可产生用于CPU复合体14中的处理器32A-32n的VP电压,并且可产生用于SOC 10中的其他部件的VSOC电压。在一个实施方案中,VSOC可用于存储器控制器22、外围设备18、SOC PMGR 16和SOC 10的其他部件并且可采用基于电源域的电源门控。在一些实施方案中,可存在用于SOC 10的其余部分的多个供电电压。在一些实施方案中,还可存在用于CPU复合体14和/或SOC 10中各种存储器阵列的存储器供电电压。该存储器供电电压可用于供应给逻辑电路的电压(例如,VP或VSOC),其可具有比确保稳健存储操作所需的电压幅值低的电压幅值。SOC PMGR 16可在软件直接控制下(例如,软件可直接请求部件的上电和/或掉电)和/或可被配置为监控SOC 10并确定何时使各种部件上电和/或掉电。对于CPU复合体14,可将对VP的电压请求提供至SOC PMGR 16,该SOC PMGR可将该请求传送至PMU,以实现供电电压幅值的变化。
一般来讲,该部件可被称其为通电或断电。该部件可在其接收供电电压的情况下通电,这样部件可按照设计工作。如果部件被关闭,则其不接收供电电压并且不工作。该部件在其通电的情况下也可被称为上电,并且在其断电的情况下可被称为掉电。使部件上电可涉及向关闭的部件供给供电电压,并且使部件掉电可涉及终止向部件供给供电电压。类似地,任何子部件和/或SOC 10作为整体可被称为上电/掉电等。部件可为提供SOC 10内的指定功能并且具有到SOC 10其余部分的专用接口的预定义的电路块。因此,外围设备18A-18B、CPU复合体14、存储器控制器22和SOC PMGR 16可各自为部件的示例。
需注意,SOC 10的部件数量(以及图1所示部件,诸如CPU复合体14内的子部件的数量)可根据不同的实施方案而不同。可存在比图1中所示的数量更多或更少的每个部件/子部件。
接下来转向图10,其示出了系统150的一个实施方案的框图。在例示的实施方案中,该系统150包括耦接到一个或多个外围设备154和外部存储器12的SOC 10的至少一个示例。提供了向SOC 10提供供电电压并向存储器12和/或外围设备154提供一个或多个供电电压的PMU156。在一些实施方案中,可包括SOC 10的多于一个示例(也可包括多于一个存储器12)。
PMU 156通常可包括用于生成供电电压并用于将这些供电电压提供至系统的其他部件诸如SOC 10、存储器12、各种片外外围部件154诸如显示设备、图像传感器、用户接口设备等的电路。因此,PMU 156可包括可编程调压器、连接到SOC 10并且更具体地连接到SOCPMGR 16以接收电压请求的逻辑部件等。
根据系统150的类型,该外围设备154可包括任何期望的电路。例如,在一个实施方案中,该系统150可以是移动设备(例如个人数字助理(PDA)、智能电话等),并且外围设备154可包括用于各种类型的无线通信的设备,诸如wifi、蓝牙、蜂窝、全球定位系统等。该外围设备154还可包括附加存储装置,该附加存储装置包括RAM存储装置、固态存储装置或磁盘存储装置。该外围设备154可包括用户界面设备(诸如包括触摸显示屏或多点触摸显示屏的显示屏)、键盘或其他输入设备、麦克风、扬声器等。在其他示例中,系统150可以是任何类型的计算系统(例如台式个人计算机、膝上型电脑、工作站、网络机顶盒等)。
该外部储存器12可包括任何类型的存储器。例如,该外部存储器12可以是SRAM、动态RAM(DRAM)(诸如同步DRAM(SDRAM))、双倍数据速率(DDR,DDR2,DDR3等)SDRAM、RAMBUSDRAM、低功率版本的DDR DRAM(例如LPDDR,mDDR等)等等。该外部存储器12可包括存储器设备可被安装到的一个或多个存储器模块,诸如单列存储器模块(SIMM)、双列存储器模块(DIMM)等。另选地,该外部存储器12可包括以芯片上芯片或封装上封装具体实施而被安装在SOC 10上的一个或多个存储器设备。
一旦充分理解了以上公开,很多变型形式和修改形式对于本领域的技术人员而言将变得显而易见。本发明旨在将以下权利要求书被解释为涵盖所有此类变型形式和修改形式。
Claims (15)
1.一种处理器装置,包括:
多个处理器内核,其中:
所述处理器内核实现由所述处理器装置所采用的指令集架构的至少一部分;
所述指令集架构的至少第一特征在所述多个处理器内核中的第一处理器内核中未实现;
所述第一特征在所述多个处理器内核中的第二处理器内核中实现;并且
在给定时间点所述多个处理器内核中的最多一个处理器内核为活动的;和
耦接至所述多个处理器内核的处理器电源管理器,其中所述处理器电源管理器被配置为:
检测在所述第一处理器内核中执行的代码使用所述指令集架构的所述第一特征;并且
响应于检测到所述代码使用所述第一特征,激活所述第二处理器内核并去激活所述第一处理器内核。
2.根据权利要求1所述的处理器装置,其中:
所述处理器电源管理器能够利用多个处理器状态进行编程,其中所述多个处理器状态中的每个处理器状态映射到所述多个处理器内核中的一个处理器内核;
所述处理器电源管理器被配置为响应于所述处理器装置从当前处理器状态被编程到所请求的处理器状态而使得将处理器上下文从所述第二处理器内核传输到所请求的处理器状态映射到的所述第一处理器内核;并且
所述处理器电源管理器被配置为响应于所述代码正由使用所述第一特征的所述装置执行而阻止所述传输并继续使所述第二处理器内核为活动的。
3.根据权利要求1或2所述的处理器装置,其中:
所述第一处理器内核被配置为在所述代码的执行期间检测对所述第一特征的使用并且响应于检测到所述使用而发信号通知异常;
并且
所述处理器电源管理器被配置为响应于所述异常而激活所述第二处理器内核并去激活所述第一处理器内核。
4.根据权利要求3所述的处理器装置,其中所述处理器电源管理器被配置为响应于所述异常而使得将处理器上下文从所述第一处理器内核传输到所述第二处理器内核。
5.根据权利要求3或4所述的处理器装置,其中所述处理器电源管理器包括存储能够由所述处理器装置执行的多个指令的非暂态计算机可访问存储介质。
6.根据权利要求3-5中任一项所述的处理器装置,其中:
所述第一处理器内核被配置为检测所述指令集架构的第二特征未被所述多个内核中的任一内核实现;并且
所述第一处理器内核被配置为响应于检测到对所述第二特征的使用而发信号通知一不同的异常。
7.根据权利要求1-6中任一项所述的处理器装置,其中所述处理器电源管理器被配置为:
使所述第二处理器内核通电;并且
响应于将所述处理器上下文传输到所述第二处理器内核而使所述第一处理器内核掉电。
8.根据权利要求1-7中任一项所述的处理器装置,其中所述第一特征包括矢量指令集。
9.根据权利要求1-8中任一项所述的处理器装置,其中所述第一特征包括谓词矢量指令集。
10.根据权利要求1-9中任一项所述的处理器装置,其中所述指令集架构指定第一操作数类型的多个操作数大小,并且所述第一特征包括所述多个操作数大小中的第一操作数大小。
11.根据权利要求10中任一项所述的处理器装置,其中所述多个操作数大小中的最大操作数大小为由所述第一处理器内核实现的唯一操作数大小。
12.根据权利要求1-11中任一项所述的处理器装置,其中:
所述第一处理器内核实现所述指令集架构的子集;并且
所述第二处理器内核实现整个所述指令集架构。
13.一种方法,包括:
确定被编码到指令集架构的第一代码包括在形成处理器的多个处理器内核中的第一处理器内核上未实现的特征,其中所述特征在所述多个内核中的第二处理器内核上实现,其中在给定时间点所述多个处理器内核中的最多一个处理器内核为活动的;
响应于所述确定而激活所述第二处理器内核;
响应于所述确定而去激活所述第一处理器内核;以及
在所述第二处理器内核上执行所述第一代码。
14.根据权利要求13所述的方法,还包括:
响应于所述确定而将处理器上下文从所述第一处理器内核传输到所述第二处理器内核。
15.根据权利要求13或14所述的方法,还包括:
响应于所述确定而使所述第二处理器内核通电;以及
在所述传输之后,使所述第一处理器内核断电。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/548,912 US9958932B2 (en) | 2014-11-20 | 2014-11-20 | Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture |
US14/548,912 | 2014-11-20 | ||
PCT/US2015/054998 WO2016081090A1 (en) | 2014-11-20 | 2015-10-09 | Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107003709A true CN107003709A (zh) | 2017-08-01 |
CN107003709B CN107003709B (zh) | 2019-08-20 |
Family
ID=54361177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580062019.1A Active CN107003709B (zh) | 2014-11-20 | 2015-10-09 | 包括实现指令集架构不同部分的多个不同处理器内核的处理器 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9958932B2 (zh) |
EP (1) | EP3221764B1 (zh) |
KR (1) | KR101930183B1 (zh) |
CN (1) | CN107003709B (zh) |
TW (1) | TWI570548B (zh) |
WO (1) | WO2016081090A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112055862A (zh) * | 2018-05-04 | 2020-12-08 | 苹果公司 | 可扩展神经网络处理引擎 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9977699B2 (en) * | 2014-11-17 | 2018-05-22 | Mediatek, Inc. | Energy efficient multi-cluster system and its operations |
US9898071B2 (en) | 2014-11-20 | 2018-02-20 | Apple Inc. | Processor including multiple dissimilar processor cores |
US9958932B2 (en) | 2014-11-20 | 2018-05-01 | Apple Inc. | Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture |
US10417734B2 (en) | 2017-04-24 | 2019-09-17 | Intel Corporation | Compute optimization mechanism for deep neural networks |
US10417731B2 (en) * | 2017-04-24 | 2019-09-17 | Intel Corporation | Compute optimization mechanism for deep neural networks |
US10656700B2 (en) * | 2017-07-10 | 2020-05-19 | Oracle International Corporation | Power management in an integrated circuit |
KR102692869B1 (ko) * | 2019-08-05 | 2024-08-08 | 삼성전자주식회사 | 프로세서의 주파수를 제어하는 전자 장치와 이의 동작 방법 |
KR102717790B1 (ko) * | 2019-08-07 | 2024-10-16 | 삼성전자 주식회사 | 프로세서 코어들과 다양한 버전의 isa들을 이용하여 명령어들을 실행하는 전자 장치 |
KR102437625B1 (ko) * | 2020-06-19 | 2022-08-29 | 재단법인대구경북과학기술원 | 전자 장치 및 전자 장치의 전력 관리 방법 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080263324A1 (en) * | 2006-08-10 | 2008-10-23 | Sehat Sutardja | Dynamic core switching |
WO2013100996A1 (en) * | 2011-12-28 | 2013-07-04 | Intel Corporation | Binary translation in asymmetric multiprocessor system |
WO2013101069A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Core switching accelaration in asymmetric multiprocessor system |
CN103842959A (zh) * | 2011-10-03 | 2014-06-04 | 国际商业机器公司 | 在计算机系统中维持操作数活性信息 |
US20140181830A1 (en) * | 2012-12-26 | 2014-06-26 | Mishali Naik | Thread migration support for architectually different cores |
US20140298060A1 (en) * | 2013-03-26 | 2014-10-02 | Via Technologies, Inc. | Asymmetric multi-core processor with native switching mechanism |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7281055B2 (en) | 2002-05-28 | 2007-10-09 | Newisys, Inc. | Routing mechanisms in systems having multiple multi-processor clusters |
US7260702B2 (en) * | 2004-06-30 | 2007-08-21 | Microsoft Corporation | Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor |
JP2006185348A (ja) | 2004-12-28 | 2006-07-13 | Fujitsu Ltd | マルチプロセッサシステム及びロックフラグ操作方法 |
US7624250B2 (en) | 2005-12-05 | 2009-11-24 | Intel Corporation | Heterogeneous multi-core processor having dedicated connections between processor cores |
US7717350B2 (en) * | 2006-06-30 | 2010-05-18 | Advanced Micro Devices, Inc. | Portable computing platform having multiple operating modes and heterogeneous processors |
US7856562B2 (en) | 2007-05-02 | 2010-12-21 | Advanced Micro Devices, Inc. | Selective deactivation of processor cores in multiple processor core systems |
US20080307422A1 (en) | 2007-06-08 | 2008-12-11 | Kurland Aaron S | Shared memory for multi-core processors |
US8146106B2 (en) * | 2007-12-31 | 2012-03-27 | Intel Corporation | On-demand emulation via user-level exception handling |
US8819686B2 (en) | 2009-07-23 | 2014-08-26 | Empire Technology Development Llc | Scheduling threads on different processor cores based on memory temperature |
US8301932B2 (en) | 2009-11-16 | 2012-10-30 | Arm Limited | Synchronising between clock domains |
US8418187B2 (en) | 2010-03-01 | 2013-04-09 | Arm Limited | Virtualization software migrating workload between processing circuitries while making architectural states available transparent to operating system |
US8533505B2 (en) | 2010-03-01 | 2013-09-10 | Arm Limited | Data processing apparatus and method for transferring workload between source and destination processing circuitry |
US20110213935A1 (en) | 2010-03-01 | 2011-09-01 | Arm Limited | Data processing apparatus and method for switching a workload between first and second processing circuitry |
US20110265090A1 (en) * | 2010-04-22 | 2011-10-27 | Moyer William C | Multiple core data processor with usage monitoring |
US8751833B2 (en) | 2010-04-30 | 2014-06-10 | Arm Limited | Data processing system |
US8683243B2 (en) | 2011-03-11 | 2014-03-25 | Intel Corporation | Dynamic core selection for heterogeneous multi-core systems |
US8949836B2 (en) | 2011-04-01 | 2015-02-03 | International Business Machines Corporation | Transferring architected state between cores |
US8793686B2 (en) | 2011-06-08 | 2014-07-29 | Microsoft Corporation | Operating system decoupled heterogeneous computing |
WO2013036222A1 (en) | 2011-09-06 | 2013-03-14 | Intel Corporation | Power efficient processor architecture |
US9069553B2 (en) * | 2011-09-06 | 2015-06-30 | Marvell World Trade Ltd. | Switching tasks between heterogeneous cores |
WO2013101032A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Migrating threads between asymmetric cores in a multiple core processor |
WO2013162589A1 (en) | 2012-04-27 | 2013-10-31 | Intel Corporation | Migrating tasks between asymmetric computing elements of a multi-core processor |
US9342334B2 (en) * | 2012-06-22 | 2016-05-17 | Advanced Micro Devices, Inc. | Simulating vector execution |
US9569279B2 (en) * | 2012-07-31 | 2017-02-14 | Nvidia Corporation | Heterogeneous multiprocessor design for power-efficient and area-efficient computing |
DE102013108041B4 (de) | 2012-07-31 | 2024-01-04 | Nvidia Corporation | Heterogene Mehrprozessor-Anordnung für ein leistungseffizientes und flächeneffizientes Rechnen |
KR102005765B1 (ko) | 2012-12-17 | 2019-07-31 | 삼성전자주식회사 | 시스템-온 칩과, 이의 동작 방법 |
KR102082859B1 (ko) * | 2013-01-07 | 2020-02-28 | 삼성전자주식회사 | 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법 |
US20150007196A1 (en) | 2013-06-28 | 2015-01-01 | Intel Corporation | Processors having heterogeneous cores with different instructions and/or architecural features that are presented to software as homogeneous virtual cores |
US9495001B2 (en) | 2013-08-21 | 2016-11-15 | Intel Corporation | Forcing core low power states in a processor |
KR20150050135A (ko) | 2013-10-31 | 2015-05-08 | 삼성전자주식회사 | 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법 |
US20160283512A1 (en) * | 2014-03-26 | 2016-09-29 | Unisys Corporation | Distributed file storage in a continuous computing fabric environment |
US10120663B2 (en) * | 2014-03-28 | 2018-11-06 | Intel Corporation | Inter-architecture compatability module to allow code module of one architecture to use library module of another architecture |
US9513689B2 (en) * | 2014-06-30 | 2016-12-06 | Intel Corporation | Controlling processor performance scaling based on context |
US9958932B2 (en) | 2014-11-20 | 2018-05-01 | Apple Inc. | Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture |
US9898071B2 (en) | 2014-11-20 | 2018-02-20 | Apple Inc. | Processor including multiple dissimilar processor cores |
US20160154649A1 (en) | 2014-12-01 | 2016-06-02 | Mediatek Inc. | Switching methods for context migration and systems thereof |
US9928115B2 (en) | 2015-09-03 | 2018-03-27 | Apple Inc. | Hardware migration between dissimilar cores |
-
2014
- 2014-11-20 US US14/548,912 patent/US9958932B2/en active Active
-
2015
- 2015-10-09 CN CN201580062019.1A patent/CN107003709B/zh active Active
- 2015-10-09 KR KR1020177014597A patent/KR101930183B1/ko active IP Right Grant
- 2015-10-09 EP EP15787360.5A patent/EP3221764B1/en active Active
- 2015-10-09 WO PCT/US2015/054998 patent/WO2016081090A1/en active Application Filing
- 2015-10-26 TW TW104135132A patent/TWI570548B/zh active
-
2018
- 2018-03-26 US US15/935,274 patent/US10401945B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080263324A1 (en) * | 2006-08-10 | 2008-10-23 | Sehat Sutardja | Dynamic core switching |
CN103842959A (zh) * | 2011-10-03 | 2014-06-04 | 国际商业机器公司 | 在计算机系统中维持操作数活性信息 |
WO2013100996A1 (en) * | 2011-12-28 | 2013-07-04 | Intel Corporation | Binary translation in asymmetric multiprocessor system |
WO2013101069A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Core switching accelaration in asymmetric multiprocessor system |
US20140181830A1 (en) * | 2012-12-26 | 2014-06-26 | Mishali Naik | Thread migration support for architectually different cores |
US20140298060A1 (en) * | 2013-03-26 | 2014-10-02 | Via Technologies, Inc. | Asymmetric multi-core processor with native switching mechanism |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112055862A (zh) * | 2018-05-04 | 2020-12-08 | 苹果公司 | 可扩展神经网络处理引擎 |
CN112055862B (zh) * | 2018-05-04 | 2024-05-07 | 苹果公司 | 可扩展神经网络处理引擎 |
US11989640B2 (en) | 2018-05-04 | 2024-05-21 | Apple Inc. | Scalable neural network processing engine |
Also Published As
Publication number | Publication date |
---|---|
US9958932B2 (en) | 2018-05-01 |
CN107003709B (zh) | 2019-08-20 |
KR101930183B1 (ko) | 2018-12-17 |
EP3221764A1 (en) | 2017-09-27 |
TW201631438A (zh) | 2016-09-01 |
KR20170076767A (ko) | 2017-07-04 |
US10401945B2 (en) | 2019-09-03 |
US20160147290A1 (en) | 2016-05-26 |
EP3221764B1 (en) | 2021-07-21 |
TWI570548B (zh) | 2017-02-11 |
WO2016081090A1 (en) | 2016-05-26 |
US20180217659A1 (en) | 2018-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107003709B (zh) | 包括实现指令集架构不同部分的多个不同处理器内核的处理器 | |
CN110109527B (zh) | 动态电压裕度恢复 | |
TW201447580A (zh) | 用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統 | |
US11682445B2 (en) | Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training | |
CN106489108A (zh) | 控制系统存储器的温度 | |
CN107003710A (zh) | 包括多个相异的处理器核心的处理器 | |
CN105556503B (zh) | 动态的存储器控制方法及其系统 | |
CN102646446A (zh) | 硬件动态高速缓存电源管理 | |
CN107924219A (zh) | 遮蔽处理器的核的功率状态 | |
CN109564526A (zh) | 使用封装和线程提示信息的组合来控制处理器的性能状态 | |
US20130173902A1 (en) | Split deep power down of i/o module | |
CN117377943A (zh) | 存算一体化并行处理系统和方法 | |
CN107567614A (zh) | 用于对根据关键度被分组的指令的缕程的执行的多核处理器 | |
US20080244221A1 (en) | Exposing system topology to the execution environment | |
US12013780B2 (en) | Multi-partition memory sharing with multiple components | |
US10409513B2 (en) | Configurable low memory modes for reduced power consumption | |
CN108228484A (zh) | 针对处理器中的高速缓存利用的无效读取 | |
CN115705300A (zh) | 用于高速缓冲存储器的方法及其相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |