具有混合核结构的处理器及有关方法与流程

文档序号:11620523阅读:230来源:国知局
具有混合核结构的处理器及有关方法与流程

本发明有关于处理器的结构,例如处理单元装置(如中央处理器单元(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)等等)的结构,更具体地,有关于具有混合核(hybridcore)结构的处理器及有关方法。



背景技术:

传统电子装置(例如传统手机)具有处理器(例如cpu)以控制其多个操作。在实现传统电子装置的过程中,在使用传统高性能cpu(如高端cpu)和使用传统低功耗cpu(如低端cpu)之间存在着权衡,这是由于传统高性能cpu通常比传统低功耗cpu消耗更多电力,而传统低功耗cpu通常比传统高性能cpu的性能更低。根据相关技术,提出的具有缓存监听(cachesnooping)通道的多组异构结构(multi-clusterheterogeneousarchitecture)可有助于解决此问题。其中,缓存窥探通道可例如相关技术中的高速缓存一致性互连(cachecoherentinterconnect,cci)(如cci-400)。然而,这会引入进一步的问题(如副作用)例如,实现上述缓存窥探通道会导致相关成本增加。又例如,在实现上述缓存窥探通道时,处理器电路会变得复杂,从而导致线路阻塞。因此,需要一种创新结构来增强电子装置的总体性能并减少副作用。



技术实现要素:

有鉴于此,本发明提供一种具有混合核结构的处理器及有关方法。

本发明提供一种处理器,包括:混合核,用于配置为该混合核的多个不同模式中的多个不同设置,且其中,该多个不同的设置包括:第一设置,其中,该混合核的第一模式中的该第一设置使该混合核用作第一核,且对应于该第一设置的该第一核用于读取和执行该处理器的多个程序指令;以及第二设置,其中,该混合核的第二模式中的该第二设置使该混合核用作第二核,且对应于该第二设置的该第二核用于读取和执行该处理器的程序指令;其中,对应于该第二设置的该第二核共享对应于该第一设置的该第一核的一部分电路。。

本发明还提供一种用于执行处理器操作模式控制的方法,包括:检测是否发生触发事件以产生检测结果,用于控制该处理器的混合核,其中,该混合核配置为该混合核的多个不同模式中的多个不同设置,且该多个不同的设置包括:第一设置,其中,该混合核的第一模式中的该第一设置使该混合核用作第一核,且对应于该第一设置的该第一核用于读取和执行该处理器的多个程序指令;以及第二设置,其中,该混合核的第二模式中的该第二设置使该混合核用作第二核,且对应于该第二设置的该第二核用于读取和执行该处理器的程序指令;其中,对应于该第二设置的该第二核共享对应于该第一设置的该第一核的一部分电路;以及根据该检测结果,执行该混合核的模式切换以将该混合核配置为该多个不同设置中的特定设置。

本发明提供的处理器可增强电子装置的总体性能并减少副作用。

附图说明

图1为根据本发明一个实施例具有混合核结构的处理器的示意图;

图2为根据本发明一个实施例执行处理器操作模式控制的方法的流程图;

图3为根据本发明一个实施例的关于图2所示方法的处理器管线的示意图;

图4为根据本发明一个实施例的关于图2所示方法的处理器管线的示意图;

图5为根据本发明一个实施例关于图2中所示方法的一些管线级的示意图;

图6为根据本发明另一实施例具有上述混合核结构的处理器的示意图;

图7为根据本发明另一实施例具有上述混合核结构的处理器的示意图;

图8为根据本发明一个实施例图2所示方法的工作流程的示意图;

图9为根据本发明另一个实施例图2所示方法的工作流程的示意图。

具体实施方式

为了说明本发明的目的特征和优势,后续将详细描述本发明的实施例和附图在说明书及后续的申请专利范围当中使用了某些词汇来指称特定的元件。所属领域中技术人员应可理解,电子装置制造商可能会用不同的名词来称呼同一个元件。本说明书及后续的申请专利范围并不以名称的差异来作为区分元件的方式,而是以元件在功能上的差异来作为区分的准则。在通篇说明书及后续的请求项当中所提及的「包含」系为一开放式的用语,故应解释成「包含但不限定于」。以外,「耦接」一词在此系包含任何直接及间接的电气连接手段。因此,若文中描述一第一装置耦接到一第二装置,则代表该第一装置可直接电气连接于该第二装置,或透过其他装置或连接手段间接地电气连接至该第二装置。

图1为根据本发明一个实施例具有混合核结构的处理器100的示意图。例如,通信装置100可包括至少一混合核(例如一或多个混合核)(例如混合核105)。如图1所示,混合核105配置为该混合核105的多个不同模式中的多个不同设置,其中,上述不同设置可包括第一设置和第二设置。例如,混合核105的第一模式中的第一设置可使该混合核105用作第一核110(例如大核(bigcore)),且对应于该第一设置的该第一核110用于读取和执行该处理器100的多个程序指令。又例如,混合核105的第二模式中的第二设置可使该混合核105用作第二核120(例如小核(smallcore)),且对应于该第二设置的该第二核120用于读取和执行该处理器100的多个程序指令。此外,对应于该第二设置的该第二核120可共享对应于该第一设置的该第一核110的一部分电路。例如,对应于该第二设置的该第二核120的全部(whole)在对应于该第一设置的该第一核110的内部,其中,该第二核120小于该第一核110。

实际上,处理器100可实现为cpu。此仅用于说明目的,并非意在限制本发明。根据本发明的一些实施例,处理器110还可实现为gpu。根据本发明的另一些实施例,处理器110可包括cpu和gpu的组合,例如,cpu和gpu集成在处理器100中。

此外,对应于该第一设置的该第一核110可包括多个管线级(pipelinestage);且对应于该第二设置的该第二核120可共享该多个管线级内一个管线级中的至少一处理电路。此仅用于说明目的,并非意在限制本发明。

根据本发明的一些实施例,对应于该第一设置的该第一核110可包括多个管线级(如上述的多个管线级)。例如,该多个管线级内的特定管线级可包括多个处理电路,该多个处理电路用于执行对应于该第一设置的该第一核110的并行处理;其中,对应于该第二设置的该第二核120共享该多个处理电路内的特定处理电路。更具体地,当该混合核105用作该第二核120时,该特定管线级可为对应于该第一设置的该第一核110内的无序执行管线级;且该特定处理电路为对应于该第二设置的该第二核120内的有序执行管线级。

根据这些实施例中的一部分实施例,该多个管线级内的另一个管线级可包括多个其他处理电路,且对应于该第二设置的该第二核120可共享该多个其他处理电路内的至少一处理电路。在一个实施例中,当该混合核105用作该第二核120时,该另一个管线级可为对应于该第一设置的该第一核110内的顺序解码管线级;且该多个其他处理电路内的前述至少一处理电路可为对应于该第二设置的该第二核120内部的顺序解码管线级的至少一处理电路。例如,该多个其他处理电路可包括多个指令取回电路。此仅用于说明目的,并非意在限制本发明。根据这些实施例中的另一部分实施例,当该混合核105用作该第二核120时,该另一个管线级为对应于该第一设置的该第一核110内部的顺序提交管线级(commitpipelinestage),且该多个其他处理电路内部的前述至少一处理电路可成为对应于该第二设置的该第二核120内部的顺序提交管线级的至少一处理电路。

根据本发明的一些实施例,在该第一模式和该第二模式的每种模式中,对应于该第一设置的该第一核110的该部分电路(即与对应于该第二设置的该第二核120共享的该部分)可为打开的。在一个示例中,在该第二模式中,对应于该第一设置的该第一核110的另一部分电路可为关闭的。在另一个示例中,在该第一模式中,对应于该第一设置的该第一核110的该部分电路(即与对应于该第二设置的该第二核120共享的该部分)和对应于该第一设置的该第一核110的该另一部分电路两者都可为打开的。此仅用于说明目的,并非意在限制本发明。在一些实施例中,对应于该第一设置的第一核110可包括对应于该第一设置的该第一核110的该部分电路(即与对应于该第二设置的该第二核120共享的该部分)和对应于该第一设置的该第一核110的该另一部分电路。在一些实施例中,前述的混合核105的不同设置可包括多于两个设置。例如,混合核105可设置为处于混合核105的第三模式中的混合核105的第三设置。该混合核105的第三设置可使该混合核用作第三核(例如,中等核),且对应于该混合核105的第三设置的该第三核用于读取和执行该处理器100的多个程序指令。

根据本发明的一些实施例,该处理器100可包括多个混合核,且该混合核105可为该多个混合核内部的一个特定混合核,且其中该多个混合核内部的另一个混合核在不同模式中可配置为不同设置。在一个实施例中,该多个混合核内部的任意两个混合核彼此相等。此仅用于说明目的,并非意在限制本发明。在一个实施例中,该另一个混合核的前述不同设置可包括:该另一个混合核的第三设置和该另一个混合核的第四设置。例如,在该另一个混合核的第三模式中,该另一个混合核的该第三设置可使该另一混合核用作对应于该另一个混合核的第三设置的第三核(例如,大核),且对应于该第三设置的该第三核用于读取和执行该处理器100的多个程序指令.在另一个示例中,在该另一个混合核的第四模式中,该另一个混合核的该第四设置可使该另一混合核用作第四核(例如,小核),且对应于该第四设置的该第四核用于读取和执行该处理器100的多个程序指令。此外,对应于该第四设置的该第四核可共享对应于该第三设置的该第三核的一部分电路。在一个示例中,该另一个混合核的对应于该第四设置的该第四核的全部在该另一个混合核的对应于该第三设置的该第三核的内部,其中,对应于该第四设置的该第四核小于对应于该第三设置的该第三核。

图2为根据本发明一个实施例执行处理器操作模式控制的方法200的流程图,其中,该处理器可例如图1中所示的处理器100。图2中所示的方法200可适用于上述的具有混合核的任意处理器,例如图1中所示的处理器100。在一个示例中,可由运行相应于方法200的程序代码的处理器执行方法200的一或多个操作。其中,处理器核可为处理器100内当前活跃的核。此仅用于说明目的,并非意在限制本发明。方法200可描述如下。

在步骤210中,处理器100可检测是否发生触发事件以产生检测结果,以用于控制该处理器100的混合核(例如,处理器100的混合核105,或者图1所示实施例和图2所示实施例中提及的其他混合核),其中,步骤210中提及的该混合核配置分别为该混合核的多个不同模式中的多个不同设置。、

在一个实施例中,该混合核的该多个不同的设置可包括上述的第一设置,也可更包括上述的第二设置。在一个示例中,该混合核的第一模式中的该第一设置(例如图1所示实施例中提到的该混合核的前述第一模式中的前述第一设置)可使该混合核用作第一核(例如第一核110(如大核)),且对应于该第一设置的该第一核110用于读取和执行该处理器100的多个程序指令。在另一个示例中,混合核的第二模式中的该第二设置(例如图1所示实施例中提到的该混合核的前述第二模式中的前述第二设置)可使该混合核用作第二核(例如第二核120(如小核)),且对应于该第二设置的该第二核120用于读取和执行该处理器100的多个程序指令。请注意,对应于该第二设置的该第二核120可共享对应于该第一设置的该第一核110的一部分电路。在一个示例中,对应于该第二设置的该第二核120的全部在对应于该第一设置的该第一核110的内部,其中,该第二核120小于该第一核110。

在步骤220中,根据该检测结果,处理器100可执行步骤210中所述的该混合核(例如,混合核105,或者图1所示实施例和图2所示实施例中提到的其他混合核)的模式切换以将该混合核配置为该多个不同设置中的特定设置。

在一个示例中,步骤210中所述的该触发事件可指示该处理器100的计算容量不足(例如,在检测到步骤210中所述的该触发事件发生时该处理器100的计算容量不足)。在一个示例中,在步骤220中,在步骤210中的该混合核处于该第二模式的情形中,处理器100可执行混合核的模式切换以切换至该第一模式,以配置该混合核为该第一设置。此仅用于说明,并非意在限制本发明。根据一些实施例,在处理器100内部的核的数目大于一时,处理器100可打开处理器100的多个核内部的另一核(例如另一混合核或普通核),其中,在步骤210中所述的混合核可暂时保持在所述的该第二模式中。根据本发明的一些实施例,在在处理器100内部的核的数目大于一时,处理器100可执行处理器100内部的另一核(例如另一混合核)的模式切换,其中,在步骤210中所述的混合核可暂时保持在所述的该第二模式中。

在另一示例中,步骤210中所述的该触发事件可指示该处理器100的计算容量不足(例如,在检测到步骤210中所述的该触发事件发生时该处理器100的计算容量不足)。在一个示例中,在步骤220中,在步骤210中的该混合核处于关闭的情形中,处理器100可执行混合核的模式切换以切换至该第二模式,以配置该混合核为该第二设置。此仅用于说明,并非意在限制本发明。根据一些实施例,在处理器100内部的核的数目大于一时,处理器100可打开处理器100的多个核内部的另一核(例如另一混合核或普通核),其中,在步骤210中所述的混合核可暂时保持在所述的关闭模式中。根据本发明的一些实施例,在处理器100内部的核的数目大于一时,处理器100可执行处理器100内部的另一核(例如另一混合核)的模式切换,其中,在步骤210中所述的混合核可暂时保持在所述的该关闭模式中。

在另一示例中,步骤210中所述的该触发事件可指示该处理器100的至少一部分为空闲的(例如,在检测到步骤210中所述的该触发事件发生时该处理器100的至少一部分为空闲的)。在一个示例中,在步骤220中,在步骤210中的该混合核处于第一模式的情形中,处理器100可执行混合核的模式切换以切换至该第二模式,以配置该混合核为该第二设置。此仅用于说明,并非意在限制本发明。根据一些实施例,在处理器100内部的核的数目大于一时,处理器100可关闭处理器100的多个核内部的另一核(例如另一混合核或普通核),其中,在步骤210中所述的混合核可暂时保持在所述的第一模式中。根据本发明的一些实施例,在处理器100内部的核的数目大于一时,处理器100可执行处理器100内部的另一核(例如另一混合核)的模式切换,其中,在步骤210中所述的混合核可暂时保持在所述的第一模式中。

在另一示例中,步骤210中所述的该触发事件可指示该处理器100的至少一部分为空闲的(例如,在检测到步骤210中所述的该触发事件发生时该处理器100的至少一部分为空闲的)。在一个示例中,在步骤220中,在步骤210中的该混合核处于第二模式的情形中,处理器100可执行混合核的模式切换以切换至所述的关闭模式,以关闭该混合核。此仅用于说明,并非意在限制本发明。根据一些实施例,在处理器100内部的核的数目大于一时,处理器100可关闭处理器100的多个核内部的另一核(例如另一混合核或普通核),其中,在步骤210中所述的混合核可暂时保持在所述的第二模式中。根据本发明的一些实施例,在处理器100内部的核的数目大于一时,处理器100可执行处理器100内部的另一核(例如另一混合核)的模式切换,其中,在步骤210中所述的混合核可暂时保持在所述的第二模式中。

请注意,由于步骤210和220为循环执行,步骤210和220的操作可以循环索引执行。在一个实施例中,当循环索引变化时,步骤210中所述的触发事件可从多个触发事件中的一个改变为多个触发事件中的另一个,且当循环索引变化时,步骤220中执行的对应模式切换可为不同的。例如,当循环索引等于特定值时,步骤210中所述的触发事件可为多个触发事件中的一个触发事件,其中,可相应地执行相应于此示例的触发事件的模式切换。又例如,当循环索引等于另一值(不同于前述的特定值)时,步骤210中所述的触发事件可为多个触发事件中的另一个触发事件,其中,可相应地执行相应于此示例的触发事件的模式切换。

根据一些实施例,步骤210中所述的该触发事件可指示该处理器100的计算容量不足。更具体地,在步骤220中,在步骤210中的该混合核处于该关闭模式的情形中,处理器100可执行混合核的模式切换以切换至该第一模式,以配置该混合核为该第一设置。此仅用于说明,并非意在限制本发明。

根据一些实施例,步骤210中所述的该触发事件可指示该处理器100的至少一部分为空闲的。更具体地,在步骤220中,在步骤210中的该混合核处于该第一模式的情形中,处理器100可执行混合核的模式切换以切换至该关闭模式,以关闭该混合核。此仅用于说明,并非意在限制本发明。

图3为根据本发明一个实施例的关于图2所示方法200的处理器管线的示意图。例如,处理器100内部的核(例如步骤220中所述的混合核,或处理器100内的核的数目大于一的情形中的一个普通核)可包括图3中所示的处理器管线。此仅用于说明,并非意在限制本发明。

如图3所示,该处理器管线可包括多个处理电路,其中,多个处理电路包括多个指令取回电路、指令解码电路、执行电路、数据存取电路及写回(writeback)电路(为简洁,在图3中分别标记为“指令取回”、“指令解码”、“执行”、“数据存取”及“写回”)。该指令取回电路可用于执行指令取回,且因此可取回用于此处理器管线的指令,且该指令解码电路课用于执行指令解码,且因此可解码由该指令取回电路取回的该指令并适当地处理用于该处理器管线的指令。此外,执行电路可用于执行指令执行,更具体地,可根据从指令解码电路获取的解码结果执行指令。其中,数据存取电路可用于存取用于执行电路的数据(例如读数据或写数据)。此外,写回电路可用于输出用于此处理器管线的执行结果。例如,可将该输出数据写回至存储单元中。请注意,图3中所示的处理器管线可用作有关如上述指令的处理器100中的基本计算单元。

图4为根据本发明一个实施例的关于图2所示方法200的处理器管线的示意图。例如,处理器100内部的核(例如步骤220中所述的混合核,或处理器100内的核的数目大于一的情形中的一个普通核)可包括图4中所示的处理器管线。此仅用于说明,并非意在限制本发明。

如图4所示,该处理器管线中的每个可包括多个处理电路,其中,多个处理电路包括多个指令取回电路、指令解码电路、执行电路、数据存取电路及写回(writeback)电路(为简洁,在图4中分别标记为“指令取回”、“指令解码”、“执行”、“数据存取”及“写回”)。请注意,图4中所示的处理器管线可用于同时执行多个指令。请注意,图4中所示的处理器管线可用于同时执行多个指令。此外,由于图4中所示结构中的处理器管线的数目大于图3中所示结构中的处理器管线的数目,图4中所示的处理器管线的计算能力通常大于图3中所示的处理器管线的计算能力。此外,当需要时,数据可在图4的上半部分中所示的处理器管线和图4的下半部分中所示的处理器管线之间传输或交互。

图5为根据本发明一个实施例关于图2中所示方法200的一些管线级510、520及530的示意图。例如,处理器100内部的核(例如步骤220中所述的混合核,或处理器100内的核的数目大于一的情形中的一个普通核)可包括图5中所示的管线级510、520及530。此仅用于说明,并非意在限制本发明。

如图5所示,该管线级510可为上述的顺序解码管线级(为简洁,在图5中标记为“顺序解码”),管线级520可为上述的无序执行管线级(为简洁,在图5中标记为“无序执行”),以及管线级530可为上述的顺序提交管线级(为简洁,在图5中标记为“顺序提交”)。例如,管线级510可包括多个指令取回电路512a和512b(为简洁,在图5中分别标记为“指令取回”),例如图4中所示的指令取回电路或图3中所示的指令取回电路的多个拷贝,且管线级510可更包括多个指令解码电路514a和514b(为简洁,在图5中分别标记为“指令解码”),例如图4中所示的指令解码电路或图3中所示的指令解码电路的多个拷贝。

此外,管线级520可包括多个执行电路526a、526b、526c、526d及526e(为简洁,在图5中分别标记为“执行”),例如图4中所示的执行电路或图3中所示的执行电路的多个拷贝,且管线级520可更包括其他处理电路,例如寄存器重命名电路(registerrenamingcircuit)521(为简洁,在图5中标记为“寄存器重命名”)、预留站电路(reservationstationcircuit)522(为简洁,在图5中标记为“预留站”)、分支单元(branchunit)524、包含多个加载-存储单元528a和528b的加载-存储模块(load-storemodule)528(为简洁,在图5中分别标记为“加载-存储单元(数据存取)”)以及多个公共数据总线仲裁器(commondatabusarbiter)529-1和529-2。其中,加载-存储单元528a和528b可加载及/或存储数据,且可执行类似于图4中所示的数据存取电路的操作或图3中所示的数据存取电路的操作,且因此可被看作图2中所示结构的数据存取电路。通过寄存器重命名电路521、预留站电路522、分支单元524、包含多个加载-存储单元528a和528b的加载-存储模块528以及公共数据总线仲裁器529-1和529-2的辅助,管线级520可简便地对多个指令进行快速无序执行。

此外,管线级530可包括一些处理电路,例如,包括多个重排缓存电路532a和532b的重排缓存模块(reorderbuffermodule)532(为简洁,在图5中标记为“重排缓存(写回)”),其中,该重排缓存电路532a和532b用于输出用于多个处理器管线的管线级520的执行结果,其中,该多个处理器管线由图5中所示处理单元的至少一部分(例如一部分或全部)组成(例如流水线级510,、520及530的多个元件的至少一部分),且例如,重排缓存电路532a和532b可以正确的顺序适当地将输出数据写回上述的存储单元,且因此重排缓存电路532a和532b可被看作图5中所示结构的写回电路。

请注意,以图5中所示的前述至少一部分处理单元形成的处理器管线可用于同时执行多个指令,此外,由于图5中所示结构中执行电路的数目大于图4中所示结构中执行电路的数目,图5中所示的处理器管线的计算能力通常大于图4中所示的处理器管线的计算能力。此外,当需要时,数据可在图5所示结构的不同处理器管线之间传输或交互。

实际上,当需要时处理器10可关闭图5中所示处理单元的至少一部分(一部分或全部)(例如,流水线级510、520及530的元件的至少一部分)。例如,在步骤220中所述的混合核包括图5中所示的流水线级510、520及530时,第一核110可包括图5中所示处理单元的全部,而第二核120可包括图5中所示处理单元的一部分,例如对应于第一设置的第一核100与对应于第二设置的第二核100共享的该部分电路。然后,当该混合核用作第二核时,处理器100可关闭第一核110的不共享部分的电路(即,不与第二核120共享的该部分)。在一个示例中,对应于该第一设置的第一核110电路的共享部分可包括指令取回电路512a、指令解码电路514a、执行电路526a、加载-存储单元526a以及重排缓存电路532a。为简洁,在此不重复此实施例的类似描述。

图6为根据本发明另一实施例具有上述混合核结构的处理器600的示意图,其中,如图6所示的组605中存在四个混合核。在一个示例中,组605中的每个混合核可为图1中所示混合核105的拷贝。例如,图6中所示第一核610-0可为混合核105中的第一核110的拷贝,且图6中所示第二核620-0可为混合核105中的第二核120的拷贝。又例如,图6中所示第一核610-1可为混合核105中的第一核110的拷贝,且图6中所示第二核620-1可为混合核105中的第二核120的拷贝。又例如,图6中所示第一核610-2可为混合核105中的第一核110的拷贝,且图6中所示第二核620-2可为混合核105中的第二核120的拷贝。又例如,图6中所示第一核610-3可为混合核105中的第一核110的拷贝,且图6中所示第二核620-3可为混合核105中的第二核120的拷贝。

根据此实施例,处理器中的一个混合核(例如图1中所示实施例中所述的混合核,步骤220中所述的混合核或上述多个混合核内部的任意混合核)可配置为两或更多个预定义核(pre-definedcore)中的任意一个,例如此实施例中的一个大核或一个小核。因此,可存在处理器600的混合核配置的各种组合,其中,当需要时处理器600中一个混合核的至少一部分(例如一部分或全部)可暂时关闭或打开,而不管是否处理器600中另一混合核的至少一部分(例如一部分或全部)当前是关闭还是打开。处理器600的混合核配置的前述各种组合的示例可包括以下组合:

1.一个小核(例如处理器600中的四个混合核中的任意一个可配置为处理器600的第二核,其中,处理器600中的其他混合核可为临时关闭);

2.两个小核(例如处理器600中的四个混合核中的任意两个可分别配置为处理器600的第二核,其中,处理器600中的其他混合核可为临时关闭);

3.三个小核(例如处理器600中的四个混合核中的任意三个可分别配置为处理器600的第二核,其中,处理器600中的其他混合核可为临时关闭);

4.四个小核(例如处理器600中的四个混合核的全部可分别配置为处理器600的第二核);

5.一个大核(例如处理器600中的四个混合核中的任意一个可分别配置为处理器600的第一核,其中,其他混合核可为临时关闭);

6.两个大核(例如处理器600中的四个混合核中的任意两个可分别配置为处理器600的第一核,其中,其他混合核可为临时关闭);

7.三个大核(例如处理器600中的四个混合核中的任意三个可分别配置为处理器600的第一核,其中,其他混合核可为临时关闭);

8.四个大核(例如处理器600中的四个混合核中的全部可分别配置为处理器600的第一核);

9.一个大核加一或多个小核(例如处理器600中的四个混合核中的任意一个可配置为处理器600的第一核,且其他混合核中的至少一个可配置为处理器600的第二核,其中,如果存在任意剩余混合核,可临时关闭剩余混合核);

10.两个大核加一或两个小核(例如处理器600中的四个混合核中的任意两个可分别配置为处理器600的第一核,且其他混合核中的至少一个可配置为处理器600的第二核,其中,如果存在任意剩余混合核,可临时关闭剩余混合核);

11.三个大核加一个小核(例如处理器600中的四个混合核中的任意三个可分别配置为处理器600的第一核,且另一个混合核可配置为处理器600的第二核);以及

12.无核(例如处理器600中的四个混合核全部可为临时关闭)。

为简洁,在此不再重复此实施例的类似描述。

通过实施本发明的一或多个实施例,同一组可拥有异构的核,因此需要使用监听通道(snoopingchannel)以用于不同组之间的监听。其中,监听通道通常用于在不同组之间监听。因此,当执行模式切换时,仅需要刷新(flush)内部管线。因此,相比相关技术,本发明处理器(例如处理器600或处理器100)可减少不同模式之间的代码迁移(codemigration)损失,且通过仅刷新内部管线可简单地执行模式切换且然后切换至目标模式(例如第一模式或第二模式),且可更提供混合核配置的更多组合,例如图6中所示实施例中处理器600的混合核配置的上述各种的组合或图1和图2中描述的一些实施例中处理器100的混合核配置的各种的组合。例如,在芯片面积与相关技术中的相同的情形中,本发明处理器(例如处理器600或处理器100)的混合核配置的组合数目通常大于根据相关技术实施的传统核配置的组合数目。

图7为根据本发明另一实施例具有上述混合核结构的处理器700的示意图,其中,如图7的左半部分中所示组605中存在四个混合核。在一个示例中,图7的左半部分中所示组605中的四个混合核可与图6中所示组605中的四个混合核相同。此外,处理器700可包括另一组705和缓存监听通道730(例如,如前述cci-400的缓存一致互连(cachecoherentinterconnect,cci)),其中,组705可包括多个核,例如四核720-0、720-1、720-2及720-3。在一个示例中,图7的右半部分中所示的组705中的四核720-0、720-1、720-2及720-3可分别具有与图7的左半部分中所示的组605中的第二核620-0、620-1、620-2及620-3一样的大小,且因此在此实施例中被称为第二核。例如,在此实施例中,四核720-0、720-1、720-2及720-3可具有与第二核620-0、620-1、620-2及620-3几乎相同的计算能力。实际上,缓存监听通道730可用于执行组605和705内部一或多个组的监听。因此,组605和705内部一个组中的任意处理器核可知道组605和705内部其他组的缓存中的内容,且因此当需要时通过同时使用组605和705,处理器700可流畅地执行操作。

根据此实施例,组605中的一个混合核(例如图1中所示实施例中的混合核、步骤220中所述的混合核或上述多个混合核中的任一混合核)可配置为两或多个预定义核中的任意一个,例如此实施例中的一个大核或一个小核。因此,可存在组605的混合核配置的各种组合,其中,当需要时组605中一个混合核的至少一部分(例如一部分或全部)可暂时关闭或打开,而不管是否组605中另一混合核的至少一部分(例如一部分或全部)当前是关闭还是打开。组605的混合核配置的前述各种组合的示例可包括图6中所示实施例列出的所述组合。为简洁,在此不再重复此实施例的类似描述。

请注意,当需要时,可任意地使用组605的混合核配置的前述各种组合,而不管是否组705的至少一部分(例如一部分或全部)是关闭还是打开,其中存在组705的核配置的各种组合。因此,处理器700可通过混合组605的混合核配置的前述各种组合和组705的核配置的各种组合来提供更多组合。组705的核配置的所述各种组合可包括下列:

1.一个小核(例如组705中的四个混合核中的任意一个可临时打开,其他核可为临时关闭);

2.两个小核(例如组705中的四个混合核中的任意两个可分别临时打开,其他核可为临时关闭);

3.三个小核(例如组705中的四个混合核中的任意三个可分别临时打开,其他核可为临时关闭);

4.四个小核(例如组705中的四个混合核的全部可分别临时打开);

5.无核(例如组705中的四个混合核全部可为临时关闭)。

因此,处理器700通过混合组605的混合核配置的前述各种组合和组705的核配置的各种组合可提供多种组合。为简洁,在此不再重复此实施例的类似描述。

图8为根据本发明一个实施例图2所示方法200的工作流程800的示意图。例如,步骤210中所述的触发事件可指示上述任意实施例中的处理器(例如,处理器100、处理器600或处理器700)的计算容量不足。例如,在检测到步骤210中所述的该触发事件发生时该处理器的计算容量不足。根据此实施例,图8中所示工作流程800可用于增加该处理器的计算容量并增强处理器的性能。

在步骤810中,处理器(例如,处理器100、处理器600或处理器700)可检查其是否需要更多计算功率(或计算能力)。当检查到其需要更多计算功率(或计算能力)时,进入步骤820;否则,再进入步骤810。

在步骤820中,处理器可打开小核_n,其中,符号n表示循环的循环索引(loopindex),该循环包括图8中工作流程800内的步骤810、步骤820、步骤830、步骤840及步骤850。请注意,步骤820中的该小核_n可为混合核_n,该混合核n配置为其第二模式中的第二设置。根据此实施例,混合核_n可作为步骤220中所述混合核的示例。

在一个示例中,当此处理器内部存在至少四个混合核时,循环索引n可为区间[0,3]范围内的任意整数。例如,处理器可为图6中所示的处理器600,且混合核_n可表示处理器600中的对应混合核,因此,该小核_n(例如,小核0、小核1、小核2或小核3)可表示处理器600中的第二核620-n(例如,第二核620-0、620-1、620-2或620-3)。在另一个示例中,该处理器可为图7中所示的处理器700,且混合核_n可表示组605中的对应混合核,因此,该小核_n(例如,小核0、小核1、小核2或小核3)可表示组605中的对应第二核610-n(例如,第二核620-0、620-1、620-2或620-3)。

在步骤830中,处理器可检查是否需要更多计算功率(或计算能力)。当检查到处理器需要更多计算功率(或计算能力)时,进入步骤840;否则,再进入步骤830。

在步骤840中,处理器可刷新小核_n管线(即步骤820中该小核_n的管线)。因此,在模式切换期间可防止数据丢失或一些其他问题。

在步骤850中,处理器可从小核_n切换至大核_n。请注意,大核_n可为配置为第一模式中的第一设置的混合核_n。根据此实施例,混合核_n可作为步骤220中该混合核的示例。

在一个示例中,当此处理器内部存在至少四个混合核时,循环索引n可为区间[0,3]范围内的任意整数。例如,处理器可为图6中所示的处理器600,且混合核_n可表示处理器600中的对应混合核,因此,该大核_n(例如,大核0、大核1、大核2或大核3)可表示处理器600中的第一核610-n(例如,第一核610-0、610-1、610-2或610-3)。在另一个示例中,该处理器可为图7中所示的处理器700,且混合核_n可表示组605中的对应混合核,因此,该大核_n(例如,大核0、大核1、大核2或大核3)可表示组605中的对应第一核610-n(例如,第一核610-0、610-1、610-2或610-3)。

根据此实施例,图8中所示的工作流程800可包括一或多个步骤以控制循环索引n和相应的循环控制。例如,循环索引n可在执行步骤850的操作之后递增一,其中,循环索引n的初始值可设为零,以用于包括步骤810、步骤820、步骤830、步骤840及步骤850的循环。此外,图8中所示的工作流程800在循环索引n的值达到预设阈值的情形下终止。例如,当循环索引n的值在区间[0,3]的范围之外时,图8中所示工作流程800可终止。为简洁,在此不再重复关于此实施例的类似描述。

图9为根据本发明另一个实施例图2所示方法200的工作流程900的示意图。例如,步骤210中所述的触发事件可指示上述任意实施例中的处理器(例如,处理器100、处理器600或处理器700)为空闲的。例如,在检测到步骤210中所述的该触发事件发生时该处理器(例如,处理器100、处理器600或处理器700为空闲。根据此实施例,图9中所示工作流程900可用于节省处理器功率。

在步骤910中,处理器可检查其是否任何核是空闲的。当检查到处理器中的一个核(例如前述的混合核_n)为空闲时,进入步骤920;否则,再进入步骤910。

在步骤920中,处理器可关闭空闲的核(例如前述的混合核_n(在图9中标记为“大/小核_n配对”)),这是由于混合核n可包括大核_n且可包括小核_n。

请注意,在工作流程900中,“大/小核_n配对”的索引值并不设置为循环索引,这是由于当每次执行步骤910的操作时,应独立地确定特定核(例如混合核_n)。为简洁,在此不再重复关于此实施例的类似描述。

请注意,在不同实施例中,图2、8和9中所示的步骤可以不同顺序执行,且可从图2、8和9中所示的流程中移除或增加一或多个步骤。此外,在一些实施例中,尽管图1、6和7中所示的实施例中的任一个可配置为两种不同设置,混合核可在不同模式中配置为多于两个的设置。例如,混合核可在其不同模式中配置为三种设置。此外,图6中所示实施例中的混合核结构类似于图7中所示实施例中混合核结构的一部分,请注意在一些实施例中混合核结构可发生变化又或者彼此类似。再者,上述实施例的任何一个中的不同模式或不同设置可分别表示对应不同模式或对应不同设置的特征是彼此不同的,其中这些特征可包括性能、功耗、指令执行方式(例如无序或顺序)、芯片面积、工作频率、工作电压、热生成率、管线级数目或上述任意组合。

本发明虽以较佳实施例揭露如上,然其并非用于限定本发明的范围。相反地,任何所述领域的技术人员,在不脱离本发明的精神和范围内,当可做些许的改动与修饰。因此,本发明的保护范围以权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1