用于多处理器动态不对称和对称模式切换的硬件装置和方法与流程

文档序号:11530670阅读:263来源:国知局
用于多处理器动态不对称和对称模式切换的硬件装置和方法与流程

本发明要求2014年10月16日递交的发明名称为“用于多处理器动态不对称和对称模式切换的硬件装置和方法(hardwareapparatusandmethodformultipleprocessorsdynamicasymmetricandsymmetricmodeswitching)”的第14/516,314号美国非临时专利申请案的在先申请优先权,该在先申请的内容好像全文复制一样以引入的方式并入本文本中。

本发明大体上涉及多处理器架构和系统,且具体而言,本发明涉及用于在不对称多处理模式与对称多处理模式之间切换的装置和方法。



背景技术:

多处理系统使用多个处理器(例如,中央处理单元(centralprocessingunit,cpu))来处理数据并执行所希望的功能。如将了解,术语“处理器”与术语“cpu”或“内核”同义地使用并且易于被本领域技术人员所理解。在现有技术中,存在两种主要类型的不同多处理系统:对称多处理(symmetricmulti-processing,smp)和不对称多处理(asymmetricmulti-processing,asmp)。

smp系统通常具有以下特征:共享所有系统资源、单个同步二级缓存接口(并且可能地异步二级缓存接口)、处理器在相同时钟频率和时钟电压下受到控制。这还通常意味着处理器/内核可同等地访问共享存储器系统(例如,二级缓存和存储器)。在smp中,时钟频率和电压不可个别地进行调节,因此无法在每内核/处理器的基础上改变时钟频率和电压。另外,二级缓存在所有内核当中共享,并且二级缓存频率不可在每内核基础上按比例调整。在大多数应用中(如果不是在所有应用中),smp中的处理器的工作负荷是不平衡的并且这导致较高的功耗。

相反,asmp系统通常具有以下特征:具有个别地用于处理器的不同的时钟频率和/或时钟电压,且二级缓存时钟频率可以独立地按比例调整。因此,处理器时钟频率和二级缓存频率可以基于工作负荷按比例调整(例如,相对于存储器密集型工作负荷的内核更快的二级缓存)。一般来说,asmp系统与smp系统相比在功率上更高效,但是可能因额外且更复杂的硬件而引起潜在更高的功耗。当一级缓存未命中率较高时,处理器将从二级缓存中提取数据。如果所请求的相关数据存储在二级缓存的较低时钟频率部分中,处理器必须等待数据。这导致较高时延和较高功耗。

转向图1,图示了具有使用asmp的多个处理器的处理系统100的基本架构。如将了解,虽然针对smp使用类似现有技术系统,但是如本领域一般技术人员易于理解的,处理器在单个时钟频率下操作并使用单个电源电压电平。

如图所示,处理系统100包含多处理器内核和缓存子系统105,所述子系统具有多个处理器110(110a、110b、110c、110d),所述多个处理器具有相对应的二级缓存存储器部分120(120a、120b、120c、120d)和跨时钟域(clockdomaincrossing,cdc)电路130(130a、130b、130c、130d)。虽然示出四个处理器110(以及相应存储器和电路),但是处理器的数目可以更少或更多,但是将包含至少两个。如将了解,每个处理器110可以包含一个或多个中央处理单元(centralprocessingunit,cpu)。

处理系统100进一步包含电源管理控制(powermanagementcontrol,pmic)电路140,用于产生多个电源电压信号以用于向对应的处理器、缓存和cdc供电。类似地,时钟产生电路150产生具有各种预定时钟频率的多个时钟信号以用于对应的处理器、缓存和cdc的计时操作。如将了解,pmic电路可以在与子系统105相同的衬底上或可以设置在另一衬底上(例如,在另一ic中)。

如上所述且本领域技术人员易于理解的是,不同smp和asmp架构/系统中的每一个具有各种优势或优点以及各种劣势或缺点。归因于每种类型的系统的复杂度和成本(在硬件和软件功能两者上),设计者通常必须基于特定应用而选择smp系统或asmp系统。

因此,需要一种能够操作并且提供smp系统和asmp系统这两种功能而无需具有双重多处理器内核、缓存和cdc子系统的多处理系统或架构。还需要一种用于控制和选择smp模式或asmp模式以减少功耗并提高效率的方法。



技术实现要素:

根据一个实施例,一种多处理系统包含多个处理器,每个处理器用于接收具有预定频率的时钟信号并接收具有预定工作电压的电源电压。控制器耦合到多个处理器并用于切换多个处理器在第一操作模式与第二操作模式之间的操作:当在第一操作模式中时,多个处理器执行对称多处理,当在第二操作模式中时,多个处理器执行不对称多处理。

根据另一实施例,提供一种装置,所述装置具有:多个处理器,用于执行多处理功能;控制器,用于控制多个处理器在第一模式和第二模式中的操作;时钟产生电路,耦合到控制器并且用于产生并输出多个时钟信号;以及处理器工作电压产生电路,耦合到控制器并且用于产生并输出多个处理器操作电源电压信号。切换电路设置在时钟产生电路与多个处理器之间并且用于接收多个时钟信号并将第二多个时钟信号输出到多个处理器,其中在第一操作模式期间,第二多个时钟信号各自具有相同的预定频率,并且在第二操作模式期间,第二多个时钟信号各自具有不同的预定频率。缓存存储器也耦合到多个处理器并配置用于与所述多个处理器一起使用。所述装置进一步包含跨时钟域(clock-domaincrossing,cdc)和旁路电路,其响应于控制器并耦合到多个处理器和缓存存储器,且进一步用于在第二操作模式期间在多个处理器与缓存存储器之间提供跨时钟域功能以及在第一操作模式期间提供旁路功能。

在另一实施例中,提供一种用于在对称多处理(symmetricmulti-processing,smp)模式与不对称多处理(asymmetricmulti-processing,asmp)模式之间切换具有多个处理器的处理系统的方法。所述方法包含接收在smp模式与asmp模式之间切换的指令并根据接收到的指令切换处理系统的操作模式。切换操作模式包含:当处理系统当前以smp模式操作时,产生各自具有不同asmp预定频率的多个asmp时钟信号,并将多个asmp时钟信号中的每个asmp时钟信号输入到多个处理器中的不同处理器,用于对应处理器在对应asmp预定频率下的操作;以及当处理系统当前以asmp模式操作时,产生具有smp预定频率的smp时钟信号,并将smp时钟信号输入到多个处理器中的每个处理器,用于每个处理器在smp预定频率下的操作。

附图说明

为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中相同的数字表示相同的对象,其中:

图1图示实例现有技术不对称多处理系统(asymmetricmultiprocessing,asmp);

图2是图示根据本发明的某些实施例的实例多处理系统的图;

图3a、3b和3c图示与根据本发明的图2中示出的系统一起使用的实例有限状态机(finitestatemachine,fsm)和过程;

图4是图示根据本发明的无干扰时钟的一个实施方案的图;

图5是根据本发明的跨时钟域(clockdomaincrossing,cdc)和旁路电路的方框图;

图6是图2中示出的实例多处理系统的另一实施例;

图6a图示与根据本发明的图6中示出的系统一起使用的有限状态机(finitestatemachine,fsm)的另一实施例;

图7是图示根据本发明的多处理系统的另一实施例的图;

图8是用于启动和控制smp/asmp模式切换的架构(方法或过程)的图;

图9图示根据本发明的实例动态模式切换方法或过程;

图10图示根据本发明的替代模式切换方法或过程;以及

图11图示根据本发明的实例静态模式切换方法或过程。

具体实施方式

本文中论述的图1至图7,以及在此专利文档中用来描述本发明的原理的各种实施例仅借助于说明,而不应以任何方式理解为对本发明范围的限制。本领域技术人员将理解,本文中描述的原理可以通过任何类型的布置合理的设备或系统来实施。

一般来说,本申请案描述一种具有多个处理器的可在对称多处理(symmetricalmulti-processing,smp)与不对称多处理(asymmetricalmulti-processing,asmp)这两个操作模式之间切换的处理系统。所述系统包含实现这两个模式之间的控制和切换的硬件装置。在硬件内,在从操作系统(operatingsystem,os)或其它软件/硬件接收到在smp与asmp之间切换的切换命令后,执行一连串或一系列动作以控制多个处理器和存储器的时钟和电压。切换命令的产生可以按需要基于一个或多个因素,例如负荷、缓存未命中率、功耗原因等。装置确保系统在从一个模式转换到另一个模式期间不发生故障,并且处理器/存储器的时钟无干扰地切换。所述装置/方法将软件/os干预减到最小并具有更快的模式切换速度。

如本文所使用,术语smp通常是指利用共享存储器系统(具有以相同时钟和供电电压操作的二级缓存存储器)使用在相同时钟(频率)和相同供电电压下操作的多个处理器/cpu/内核进行处理。术语asmp通常是指使用多个处理器/cpu/内核进行处理,其中至少两个处理器/cpu/内核在不同时钟(频率)和/或供电电压下操作。在asmp中,通常处理器各自使用不同的二级缓存存储器。然而,asmp也可包含共享同一个二级缓存存储器(被称为异构asmp)。

本申请案进一步描述用于在smp操作模式与asmp操作模式之间的模式切换(动态/静态或手动/智能)的各种方法(例如,产生切换命令)。在一种方法中,在轻负荷条件下或在一级缓存未命中率较高时选择smp模式。在重负荷条件和不平衡负荷条件下选择asmp。另外,引入学习模式,可以使用所述学习模式来实时促进快速模式选择。总体优势可以包含在负荷不平衡时的较低功率、具有更少缓存未命中的较佳性能、以及手动地或智能地切换模式的能力。

现转向图2,示出说明根据本发明的处理系统200的详图。如图所示,处理系统200包含多处理器内核和缓存子系统205,所述子系统具有多个处理器210(210a、210b、210c、210d),所述多个处理器具有相对应的二级缓存存储器部分220(220a、220b、220c、220d)和带旁路的跨域时钟(cross-domainclock,cdc)电路230(230a、230b、230c、230d)。虽然示出四个处理器210(以及相应存储器和电路),处理器的数目可以更少或更多,但是将包含至少两个。如将了解,每个处理器210可以包含一个或多个中央处理单元(centralprocessingunit,cpu)。

处理系统200进一步包含电源管理控制(powermanagementcontrol,pmic)电路240,用于产生多个电源电压信号以用于向对应的处理器、缓存和cdc供电。类似地,时钟产生电路250产生具有各种预定时钟频率的多个时钟信号以用于对应的处理器、缓存和cdc的计时操作。应理解,pmic电路240可以设置在或以其它方式位于与子系统205相同的衬底上(例如,相同的芯片/裸片中)或可以提供在另一衬底上(例如,在另一ic、芯片、裸片和/或封装中)或以其它方式提供在处理器210外部。

如图所示,处理系统200还包含控制器260(所述控制器也可以称为模式控制器)和时钟切换电路(或模块)270。如将理解,控制器260输出各种控制信号用于控制时钟产生电路250、pmic电路240、“带旁路的cdc电路”230和时钟切换电路270的功能和操作。

时钟产生电路250包含用于产生多个时钟信号所必需的电路和元件,包含:用于共同控制所有处理器210的操作速度的一个smp处理器时钟信号(clk)、用于共同控制所有缓存部分220的操作速度的一个smp存储器时钟信号(clkch)、启用四个处理器(210a、210b、210c、210d)中的每一个的操作速度的独立控制的四个asmp处理器时钟信号(clk0、clk1、clk2、clk3)、以及启用缓存存储器部分(220a、220b、220c、220d)中的每一个的操作速度的独立控制的四个asmp存储器时钟信号(clkch0、clkch1、clkch2、clkch3)。通过电路250无干扰地启用或停用任何这些时钟。时钟产生电路250还产生供控制器260使用的控制器时钟信号(clk_fsm)。

pmic电路240包含用于产生供子系统205的对应部分使用的多个操作电源电压或信号所必需的电路和元件。如图所示,pmic电路240产生并输出为每个对应组的处理单元供电的四个操作电源电压(v0、v1、v2、v3)。换句话说,操作电源电压v0为处理器210a、缓存存储器部分220a和带旁路的cdc电路230a供电,而供电电压v1为处理器210b、缓存存储器部分220b和带旁路的cdc电路230b供电,等等。如本领域技术人员将理解,当处理器/存储器在较高时钟速度下操作时,需要且可能必需也以较高电源电压操作所述处理器/存储器。另外,当不使用内核时,可以将其功率降级或停用时钟。

将理解,时钟产生电路250还可包含实现所产生时钟信号中的每一个的可编程性的功能和电路。在一个实施例中,时钟信号中的每一个可以针对许多可能频率中的一种可编程(例如,clk可以在例如300mhz到3ghz的范围之间可编程)。在另一实施例中,仅某些时钟信号可以是可编程的,而在其它实施例中,每个时钟信号的频率是预定且固定的。在又另一个实施例中,频率可以相对于彼此固定,但是可以可编程为一个组。

类似地,pmic电路240也可包含为所产生操作供电电压v0、v1、v2、v3中的每一个提供可编程性的功能和电路。在一个实施例中,每个电源可以针对许多可能电压电平中的一种可编程(例如,电压可以在例如0.5伏和3.3伏的范围之间可编程)。在另一实施例中,仅某些供电电压可以是可编程的,而在其它实施例中,每个电源的电压电平是预定且固定的。在又另一个实施例中,电压电平可以相对于彼此固定,但是可以可编程为一个组。虽然未示出,但在另一实施例中,除所示的四个操作供电电压之外还可以产生基极操作供电电压。在这种情况下,基极供电电压和另四个供电电压可以用作至复用电路(类似于时钟切换电路270中示出的复用器272)的输入。

在另一实施例(未示出)中,对应的处理器/二级缓存存储器对中的一个或多个可以具有不同电源电压信号-“分离轨”系统。在此系统中,二级缓存存储器和其相关联的处理器具有不同的供电电压轨道。如将了解,一个或多个(或所有)对可以具有分离轨供电电压。因此,在此实施例中,所产生的操作供电电压v0、v1、v2、v3可以被分离并包含单独的操作供电电压v0(处理器)和v0(缓存)等等。这些操作供电电压可以是独立地可编程的或可编程为一个或多个组。在此实施例中,系统200可进一步包含与cdc电路230分离或包含于cdc电路230内的电压域交叉电路(未示出)。

模式或切换控制器260包含有限状态机(finitestatemachine,fsm)262、一个或多个定时器264和一个或多个存储寄存器266(例如配置或状态寄存器)。控制器260用以响应于切换命令(select_asmp_mode)的确证而控制并执行一系列动作或过程。因此,在所示的实施例中,当切换命令确证/未确证时操作模式在asmp模式与smp模式之间切换。可以使用各种方法和机构来产生切换命令,下文相对于图8到11描述一些实例。

使用启用信号(enable_asmp_clks、enable_smp_clk),控制器260控制时钟产生模块250以在smp/asmp切换之前启用时钟。控制器260还控制pmic电路240模块以在切换之前(和在切换之后)对操作电源电压v0、v1、v2、v3进行编程或改变所述操作电源电压。在一个实施例中,如果pmic电路240在处理器外部(例如,芯片外),控制器260可以通过spmi/sbi/mipi等通信总线或接口与pmic电路240通信。如果pmic电路不是外部电路,可以使用其它通信路径。

应理解,可以响应于各种事件及通过处理系统200内或处理系统200外部的各种元件产生切换命令(select_asmp_mode)。在示出的实施例中,从多处理器内核和缓存子系统205产生切换命令,但在其它实施例中可以通过其它源产生切换命令。

当出现从smp时钟到asmp时钟的实际切换时(且反之亦然),控制器260产生asmp选择信号(select_asmp_clk),使用时钟切换电路270内的复用器272使asmp时钟信号选择性地复用到处理器。如所理解,用于asmp模式中的处理器/cpu内核210的时钟标示为clk0、clk1、clk2、clk3,而用于smp模式中的处理器/cpu内核210的时钟标示为clk。因此,select_asmp_clk信号无干扰地选择使用哪些时钟。在一个实施例中,当确证select_asmp_clk时(逻辑高或“1”),选择时钟信号clk0、clk1、clk2、clk3并将其分别输入到处理器/内核210a、210b、210c和210d。当未确证select_asmp_clk时(逻辑低或“0”),选择时钟clk并将其输入到所有处理器/内核210a、210b、210c和210d。根据fsm262通过使用一个或多个定时器264控制切换期间的各种事件和动作的定时。如将在下文更详细地描述,会使用时钟预热期和电压斜升/斜降期。这些值可以通过软件或其它方法预编程或预设并存储在控制器中的c/s寄存器或其它存储器位置(未示出)中。

如将了解,虽然并没有特别地以参考标号标识,但是可以包含各种其它逻辑电路,例如,电平转换器。通常在信号跨越电源域时使用电平转换器。

现转向图3a、3b和3c,图示了fsm262执行或实施的过程或方法300。如将了解,可以使用不同的配置、方法或结构(或其组合)或方法来实施fsm262的此过程/功能。例如,尽管在所示的实施例中实施为有限状态机(例如,硬件实施方案),但是可以替代地使用软件、具有固件的微控制器等以及其任何组合或通过本领域技术人员已知的任何其它方式/方法来实施控制器206的功能。fsm262有利地在更快速度下操作并将软件/os干预减到最小。在例外的情况下,例如,超时等,将产生对系统处理器的中断。

如图3a、3b和3c中所示,用fsm262的状态图表示的过程300包含各种状态和转换。在状态310中,处理系统200以smp模式操作。当接收到切换命令(select_asmp_mode)时,进入状态320(asmp_clk_wu),其中asmp时钟被启用和激活(使用asmp时钟启用信号)并进行“预热”。在完成预定预热时间段(定时器)后,进入状态330(v_smp_asmp_ramp_up),其中所有操作供电电压v、v0、v1、v2、v3(必要时)提高到预定最大电压电平(max)。预定最大电压电平等于(或高于)在asmp模式中的处理系统200的操作期间v1、v2、v3、v4将具有的最高电压电平。例如,如果四个处理器目前在1.5伏下(在smp模式中)操作,并且在asmp模式中,四个处理器将分别在1.2伏、1.9伏、1.7伏和1.7伏下操作,那么所有操作电源电压v1、v2、v3和v4提高到1.9伏(或更高)。

在这四个操作供电电压达到预定最大电压(max)之后,进入状态340(smp_asmp_clk_switch)。在此状态340中,时钟切换信号得到确证并且处理器210和存储器220的时钟(全部等于clksmp的频率)从smp时钟信号切换至asmp时钟信号。如图所示,复用器272被切换为输出对应的asmp时钟信号clk1、clk2、clk3、clk4而不是smp时钟信号clk。与此同时,带旁路的cdc电路230也被设置为旁路模式,使得asmp时钟信号能够绕过带旁路的cdc电路230中的时钟域电路。另外,此时,可以停用由时钟产生电路250产生的smp时钟信号。

在完成这些事件之后,进入状态350(v_smp_asmp_ramp_dn),所述状态触发操作电源电压v1、v2、v3、v4的斜降过程。因为所有处理器210(和存储器220)在max操作电源电压(在以上实例中为1.9伏)下操作,并且在asmp模式中v1、v2、v3和v4的期望操作电源电压不同(在以上实例中分别为1.2伏、1.9伏、1.7伏、和1.7伏),所以v1、v3和v4的电压电平降低到asmp模式中期望的电压电平。

在操作电源电压斜降(例如,设置为在asmp模式中的每个处理器的期望电压电平)之后,进入状态360。在此状态中,处理系统200现在以asmp模式操作,其中210a/220a、210b/220b、210c/220c和210d/220d等对应的处理器/存储器组合中的每一个分别根据时钟和电压信号组合clk0/v0、clk1/v1、clk2/v2、clk3/v3操作。

应理解,在不同实施例中,可以省略或绕过fsm262执行的一个或多个步骤。例如,如果所有电压相同,则可以无需并可以省略v_smp_asmp_ramp_up和v_smp_asmp_ramp_dn状态。在此实例中,这将减少任何模式切换时延。在一些其它实施例中,必须在切换时钟之前使时钟电压斜升。

如前面所指出,可以使用本文中所描述的方法通过软件/os预定时钟电压和频率值,并且可以在开始切换之前将时钟电压和频率值预存储或编程到控制器中的c/s寄存器(或其它存储器位置)中。在另一实施例中,系统可以基于实时操作特性或参数在操作期间(根据若干可能的值中的一个)确定时钟电压和/或频率值。接着可将这些值(或这些值的标识符)存储在c/s寄存器(或一些其它存储器位置)中。

当从asmp模式切换至smp模式时遵循类似的过程。在状态360中,处理系统200以asmp模式操作。当接收到切换命令(select_asmp_mode-未确证)时,进入状态370(smp_clk_wu),其中smp时钟(clk)被启用和激活(使用smp时钟启用信号)并进行“预热”。在完成预定预热时间段(定时器)后,进入状态380(v_asmp_smp_ramp_up),其中所有操作供电电压v0、v1、v2、v3(必要时)提高到预定最大电压电平(max)。预定最大电压电平等于(或高于)v1、v2、v3、v4目前在asmp模式中供应的最高电压电平(或在所述电平高于v1、v2、v3和v4的所有电平时等于期望的smp电压电平v_smp)。例如,如果四个处理器目前在1.2伏、1.9伏、1.7伏和1.7伏下操作(在asmp模式中),并且在smp模式中,四个处理器将分别在1.5伏下(v_smp)操作,那么所有操作电源电压v1、v2、v3和v4提高到1.9伏(或更高)。

在这四个操作供电电压达到预定最大电压(max)之后,进入状态30(asmp_smp_clk_switch)。在此状态390中,时钟切换信号得到确证并且处理器210和存储器220的时钟(全部可能不同于smp时钟信号clk的频率)从asmp时钟信号clk0、clk1、clk2、clk3切换至smp时钟信号clk。如图所示,复用器272被切换为输出smp时钟信号(clk)而不是asmp时钟信号。与此同时,带旁路的cdc电路230也被设置为使用时钟域电路操作(并停用旁路模式),使得smp时钟信号能够行进通过带旁路的cdc电路230中的时钟域电路。另外,此时,可以停用由时钟产生电路250产生的asmp时钟信号。

在完成这些事件之后,进入状态395(v_asmp_smp_ramp_dn),所述状态触发操作电源电压v1、v2、v3、v4的斜降过程。因为所有处理器210(和存储器220)在max操作电源电压(在以上实例中为1.9伏)下操作,并且在smp模式中的期望操作电源电压为低于当前电压电平(在此实例中为1.9伏)的v_smp(在以上实例中为1.5伏),所以所有操作电源电压v1、v2、v3和v4降低到在smp模式中期望的v_smp电平(1.5伏)。

在操作电源电压斜降(例如,设置为在smp模式中的每个处理器的期望smp电压电平)之后,进入状态310。在此状态中,处理系统200现在以smp模式操作,其中210a/220a、210b/220b、210c/220c和210d/220d等对应的处理器/存储器组合中的每一个根据单个时钟和电压信号组合clk/v_smp操作。

应理解,在不同实施例中,可以省略或绕过fsm262执行的一个或多个步骤。例如,如果所有电压相同,则可以无需并可以省略v_asmp_smp_ramp_up和v_asmp_smp_ramp_dn状态。在此实例中,这将减少任何模式切换时延。在一些其它实施例中,必须在切换时钟之前使时钟电压斜升。

现转向图4,示出(图2中示出的)时钟复用器272的一个电路实施方案。在此实施例中,时钟复用器272是“无干扰的”,这意味着在切换期间不存在干扰。可以针对时钟复用器272使用其它合适的电路实施方案,并且本领域一般技术人员将容易理解的是,可以使用其它电路执行无干扰复用器切换。

转向图5,示出(图2中示出的)带旁路的cdc电路230的一个实施方案。应理解,在现有技术asmp系统(见图1)中,cdc电路130各自包含设置在对应的处理器210与二级缓存部分220之间的两个异步跨时钟域(clockdomaincrossing,cdc)电路131a、131b。如将了解,异步cdc电路131在本领域中是已知的,因此,本领域一般技术人员将理解如何实施此类功能。这些cdc电路和/或其功能也可以在本领域中称为时钟切换电路,或称为处理器与二级缓存之间的异步fifo桥。

如图5所示,带旁路的cdc电路230进一步包含与异步cdc电路131a相关联的第一复用器272a、第一分用器273a和第一旁路管线231a。如图5所示,第二复用器272b、第二分用器273b和第二旁路管线231b与异步cdc电路131b相关联。当在cdc电路230中在模式之间(例如,在cdc异步模式与同步旁路模式之间)切换时,cdc电路230执行“无干扰”切换以确保不发生因潜在干扰所致的故障。

本领域一般技术人员将理解,在smp模式(select_asmp_clk信号未得到确证)中,来自处理器(例如,210a)的数据在前往二级缓存(例如,220a)时绕过异步cdc电路131a,而来自二级缓存(例如,220a)的数据在前往处理器(例如,210a)时绕过异步cdc电路131b。相反,当在asmp模式(select_asmp_clk信号得到确证并且cache_clk和cpu_clk信号可以不同)中时,来自处理器(例如,210a)的数据在前往二级缓存(例如,220a)时通过异步cdc电路131a处理,而来自二级缓存(例如,220a)的数据在前往处理器(例如,210a)时通过异步cdc电路131b处理。异步cdc电路131a、131b用以确保根据预定义顺序的从一个时钟域到另一时钟域的数据传送,例如,首先接收到的数据首先输出。与一个时钟域中的时钟同步的传入数据将与另一时钟域中的时钟重新同步。异步fifo通常为接口处的数据缓存器提供一些时延。

当在同步模式中时,通常将根据cpu_clk自cpu_clk(例如,除以1或除以3)导出cache_clk。换句话说,它们可以相等,并且cpu_clk通常是cache_clk的整数倍(例如,cpu_clk=3*cache_clk)。两个时钟在本质上是同步的。数据通常以少得多的时延同步跨越接口。

复用器272a、272b可以与图4中所示的无干扰时钟复用器272相同。分用器273a、273b可以在本质上或电路上类似于复用器,但是执行分用功能。在一个优选实施例中,这些分用器也是无干扰的(执行无干扰切换)。

现转向图6,示出说明根据本发明的处理系统200a的另一实施例的详图。处理系统200a与图2中所示的处理系统200相同,不同之处在于:(1)clk_0信号用作当处于asmp模式时的clk_0信号和当处于smp模式时的clk(smp)信号两者;以及(2)clk_ch0信号用作当处于asmp模式时的clkch_0信号和当处于smp模式时的clkch(smp)信号两者。这样不需要与处理器/二级缓存对(210a、220a)相关联的前两个复用器272。另外,提供修改后的时钟产生模块250以实施这些时钟信号差异,并且还包含了修改后的fsm262a。

如将了解,图6中示出的处理系统200a进一步包含fsm262a执行或实施的过程或方法300a。如将了解,除了不需要状态机中的状态360以外,fsm262a的过程/功能与fsm262的过程/功能相同。图6a图示fsm262a并且与图3a中所示的fsm262相比,容易理解的是,所有其余的状态和转换基本上相同。如将了解,除了所论述的修改之外,fsm262a的过程或方法流程类似于图3b和3c中示出的fsm262的过程或方法流程。出于简洁的目的,本文中已经省略这些类似的过程或流程图。

现转向图7,示出说明根据本发明的另一处理系统200b的更具体实施例的详图。处理系统200b类似于图2中所示的处理系统200,除多处理器内核和缓存子系统205b包含特定架构外。图7图示并入特定架构-具有八个(8)处理器内核710(a到h)和两组(2)二级缓存720(a到b)的arm的big-little多处理器子系统的本发明教示的实例应用。基于两组二级缓存,系统200b仅需要两级处理器/二级缓存对。此外,其中示出的包含230、240、250、260和270的各种组件可以与图2中示出的那些组件相同,并且当考虑到处理器和缓存子系统205b的特定架构时这些组件可能需要略做修改。本领域技术人员将容易理解这些修改。另外,在其它实施例中描述的概念,例如在图6中示出的概念,也可以在图7的系统中实施。

除上文(相对于图1到8)所描述的用于实施smp与asmp之间的切换的说明性组件、硬件和方法之外,本发明还进一步描述启动和控制模式切换的实例方法和过程。

引入smp与asmp之间的动态模式切换,所述动态模式切换可以基于业务类型、处理器等待时间、负荷不平衡信息和/或功耗。如将了解,可以分析其它因素和其它类型的信息并形成改变(或维持)模式的决策基础。例如,可以在负荷轻时、或在负荷重因而使用了所有cpu内核时和/或在一级缓存未命中率高时选择smp模式,而针对重的和/或不平衡的负荷可以选择asmp模式。

也可以例如基于处理类型(例如,计算密集、时间关键、等)或特定应用或应用程序(例如,应用程序选择使用哪种模式)实施静态(即,手动)模式切换。

本文中还描述了可以用来实时促进智能模式选择的学习机构或过程。例如,学习系统可以确定smp或asmp模式是否将针对特定业务或处理情境消耗较低功率。

现转向图8,概念性地示出用于启动和控制smp/asmp模式切换的架构(方法或过程)800。模式选择可以基于期望的处理或应用程序的类型以及其它信息或因素。如图所示,处理或应用程序802可以是浏览器应用程序802a、流媒体应用程序802b、游戏应用程序802c或导航802d。还可以考虑其它因素/信息804。

举例来说,假设流媒体应用程序802b需要多处理,模式选择设备810确定应以smp模式还是asmp模式执行与所述应用程序相关联的处理任务。系统软件/os进行此确定并做出决策。系统可以分配单个处理器向控制器发布命令,但是通常在系统层级/os层级实施决策。此决策可以基于静态信息、动态信息或其组合。在一个实例中,可以预定所有视频编码应用程序将使用smp模式。在另一实例中,所有视频流媒体应用程序将使用asmp模式,除非cpu的当前负荷太重以致使用所有cpu内核。可以编程并使用其它变化形式以实施有关是否从一个模式切换至另一个模式的决策。

在一个实施例中,当要求单处理任务时可以查询查找表。在另一实施例中,当存在多处理任务时,功率比较可为用于选择模式的因素。例如,当用户在听音乐的同时正在写电子邮件,则可以选择asmp。

在确定应选择哪种模式之后,设备810发出关于select_asmp_mode控制信号的适当信号(例如,高/低)(见图2)。如将了解,当前的操作模式可以已经是选定的模式(且在此情况下select_asmp_mode信号将不转换)。

取决于select_asmp_mode信号,系统200将以asmp模式(820)或smp模式(830)操作。当在asmp模式中时,内核1(元件210a、220a、230a)、内核2(元件210b、220b、230b)、内核3(元件210c、220c、230c)以及内核4(元件210d、220d、230d)各自以独立的时钟信号/频率和电源电压操作。当在smp模式中时,内核1到内核4以相同的时钟信号/频率和电源电压操作。上文已经更充分地描述了smp和asmp模式(和模式切换)的细节。

现转向图9,示出根据本发明的实例模式切换方法或过程900。在系统200的操作期间,连续监控一级缓存(特定于处理器内核)未命中率(步骤902)。将未命中率与预定阈值进行比较(步骤904)。如果此未命中率高(超出阈值),过程确定系统200的当前处理模式是否是asmp且其它cpu的负荷是否重/轻(使用另一阈值)(步骤906)。如果是,系统200从asmp模式切换至smp模式(步骤908)。如果否,系统200继续处于asmp模式。

如果一级缓存未命中率不高,过程确定系统200的当前处理模式是否是smp且处理负荷是否重且不平衡(步骤910)。如果是,系统200从smp模式切换至asmp模式(步骤912)。如果否,系统200继续处于smp模式。

图9中所示的过程900还包含任选的智能学习过程。当系统200从asmp模式切换至smp模式(步骤908)或从smp模式切换至asmp模式(步骤912)时,将与对切换的确定相关的情境信息记录在学习系统数据库中(步骤920)。情境信息可以是系统做出切换模式的决策所使用的任何部分或全部信息。在示出的实例中,情境信息可以包含一级缓存未命中率和负荷信息(轻/重,平衡/不平衡)。

现转向图10,示出基于历史数据和来自先前经验的理解的替代模式切换方法或过程100的实例。在操作期间,系统200定期获得动态系统信息(例如,当前情境信息)并搜索学习系统数据库(步骤1002)。将当前情境信息与存储在学习系统数据库中的情境信息进行比较以确定是否存在匹配(步骤1004)。如果是,系统200根据与匹配情境信息相关联的信息在asmp模式与smp模式之间切换(步骤1006)。如将了解,这可以产生模式切换,但也可以使得维持当前模式操作。如果否,系统执行动态smp/asmp选择和学习系统训练,例如图9中描述的过程/方法。

图11图示根据本发明的实例静态模式切换方法或过程1100。一般来说,此过程基于静态或“手动”信息或因素1102确定系统200应以smp模式还是asmp模式操作。例如,可以基于大量信息或因素“静态地”分配哪种模式的确定,所述大量信息或因素例如用户配置文件1102a、应用程序管理1102b、功率节省模式1102c和其它信息或要求1102n。

系统200基于适用的信息或输入确定其应以smp模式还是asmp模式操作(1104)。例如,如果给定用户预置文件与特定模式相关联,意味着与给定用户相关联的处理应始终以特定模式来执行,那么系统200将在必要时切换至特定模式以进行处理。在另一实例中,如果特定应用程序应始终以一个模式来执行,那么系统200将以特定模式执行针对所述应用程序的处理,并且将在必要时切换。在又另一实例中,如果系统200被置于功率节省模式中,所述模式可要求系统200以asmp或smp模式操作,无论哪个模式均已经被编程为将节省功率的模式。

如图所示,系统200确定是否应以smp模式(或asmp模式)执行处理任务。如果应使用smp模式而系统目前并不处于smp模式,系统从asmp模式切换至smp模式(步骤1106)。类似地,如果应使用asmp模式(不是smp模式)而系统目前处于smp模式,系统从smp模式切换至asmp模式(步骤1108)。

如将了解,在一个实施例中,本文中所描述的系统、过程、方法和设备可以用于移动环境中,包含并入移动设备/小型计算设备或基站内等。此类设备可以例如用于传输和/或接收无线信号。所述设备可以是任何合适的终端用户设备,并且可以包含例如(或可以称为)用户设备/装置(userequipment,ue)、无线传输/接收单元(wirelesstransmit/receiveunit,wtru)、移动台,固定或移动用户单元、寻呼机、蜂窝电话、个人数字助理(personaldigitalassistant,pda)、智能电话,膝上型电脑,计算机,触摸板、无线传感器、可穿戴电子设备或消费型电子设备等此类设备。

设备将包含至少一个处理系统200(如本文所描述),所述处理系统实施设备的各种处理操作。这可以包含例如信号编码、数据处理、视频/音频处理、功率控制、输入/输出处理或针对设备预期的任何其它功能。

处理系统200还支持本文中所描述的方法和教示,并且可以包含另外的组件和处理器(例如,微控制器、数字信号处理器、现场可编程门阵列或专用集成电路)。

并入有处理系统200的设备还可包含至少一个收发器,用于调制数据或通过至少一个天线传输的其它内容。收发器还用于解调数据或通过至少一个天线接收到的其它内容。每个收发器包含产生用于无线传输的信号和/或处理无线接收到的信号的任何合适结构。每个天线包含用于传输和/或接收无线信号的任何合适结构。在设备中可以使用一个或多个收发器,且可以使用一个或多个天线。

这些设备还可包含一个或多个输入/输出设备以促进与用户的交互。每个输入/输出设备包含用于向用户提供信息或从用户接收信息的任何合适结构,例如扬声器、麦克风、小键盘、键盘、显示器或触摸屏。

另外,这些设备可以使用上文所描述的存储器,或可以包含其它存储器,用于存储由设备使用的、产生的或收集的指令和数据。例如,存储器可以存储由处理系统200执行的软件或固件指令。其它存储器可以包含任何合适的易失性和/或非易失性存储和检索设备。可以使用任何合适类型的存储器,例如随机存取存储器(randomaccessmemory,ram)、只读存储器(readonlymemory,rom)、硬盘、光盘、用户识别模块(subscriberidentitymodule,sim)卡、记忆棒、安全数字(securedigital,sd)存储卡等。

本领域技术人员已知关于移动/小型计算设备的额外细节。由此,为了清楚起见,此处省略这些细节。

在某些实施例中,一个或多个所述设备的部分或全部功能或过程由计算机可读程序代码构成的且内嵌于计算机可读媒体中的计算机程序来实施或提供支持。短语“计算机可读程序代码”包含任何类型的计算机代码,包含源代码、目标代码以及可执行代码。短语“计算机可读媒体”包含任何类型的能够由计算机访问的非易失性媒体,例如,只读存储器(readonlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、硬盘驱动器、光盘(compactdisc,cd)、数字化视频光盘(digitalvideodisc,dvd)或者任何其它类型的存储器。

为本专利文档中使用的特定词语和短语进行定义是有帮助的。术语“包含”和“包括”以及它们的派生词表示没有限制的包括。术语“或者”是包容性的,意为和/或。短语“与……关联”和“与其关联”以及其派生的短语意味着包括、被包括在内、与……互连、包含、被包含在内、连接到或与……连接、耦合到或与……耦合、可与……通信、与……配合、交织、并列、接近、被绑定到或与……绑定、具有、具有……属性,等等。术语“控制器”指任何设备、系统或者其至少控制一个操作的一部分。控制器可以通过硬件、固件、软件或者其中至少两者的组合而实现。与任何特定控制器相关的功能可以是集中式或分布式的,无论是本地还是远程。

虽然本发明就某些实施例和一般相关方法方面进行了描述,但是对本领域技术人员而言,对这些实施例和方法的各种变更和更改将是显而易见的。因此,实例实施例的上述描述不限定或约束本发明。如所附权利要求定义,在不偏离本发明的精神和范围的情况下,其它改变、替代以及变更也是可能的。

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