新颖的低成本、低功率高性能SMP/ASMP多处理器系统的制作方法

文档序号:11530458阅读:399来源:国知局
新颖的低成本、低功率高性能SMP/ASMP多处理器系统的制造方法与工艺

相关申请案交叉申请

本发明要求2014年12月22日递交的发明名称为“新颖的低成本、低功率高性能smp/asmp多处理器系统(anovellowcost,lowpowerhighperformancesmp/asmpmultiple-processorsystem)”第14/580,044号美国非临时专利申请案的在先申请优先权,该在先申请是2014年10月16日递交的发明名称为“用于多处理器动态不对称和对称模式切换的硬件装置和方法(hardwareapparatusandmethodformultipleprocessorsdynamicasymmetricandsymmetricmodeswitching)”的第14/516,314号先前美国专利申请案的部分继续申请,所述两个专利申请案好像全文复制一样以引入的方式并入本文。

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



背景技术:

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

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

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

转向图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系统。现有技术多处理器系统使用asmp或smp。

因此,需要一种能够操作并同时提供smp系统和asmp系统这两种功能而无需具有双重多处理器内核、缓存和cdc子系统的多处理系统或架构。



技术实现要素:

根据一个实施例,提供一种包含多处理器(multi-processor,mp)处理系统的多处理系统,其具有多个处理器,包含:第一处理器,第一处理器用于接收具有第一预定频率的第一时钟信号和具有第一预定工作电压的第一电源电压并根据第一时钟信号和第一电源电压操作;以及第二处理器,第二处理器用于接收第一时钟信号或具有与第一预定频率不同的第二预定频率的第二时钟信号并根据第一时钟信号或第二时钟信号操作,并且接收具有与第一预定工作电压不同的第二预定工作电压的第二电源电压并根据第二电源电压操作。控制器耦合到至少第二处理器并用于第二处理器在第一操作模式与第二操作模式之间的切换操作。当在第一操作模式中时,第二处理器接收第一时钟信号和第一电源电压并根据第一时钟信号和第一电源电压操作,当在第二操作模式中时,第二处理器接收第二时钟信号和第二电源电压并根据第二时钟信号和第二电源电压操作,其中第一处理器进一步用于在第一操作模式和第二操作模式两者期间仅接收第一时钟信号和第一电源电压并根据第一时钟信号和第一电源电压操作。

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

在另一实施例中,提供一种用于在对称多处理(symmetricmultiprocessing,smp)模式与不对称多处理(asymmetricmultiprocessing,asmp)模式之间切换多个处理器的方法。所述方法包含:当第一处理器操作时,始终根据具有第一预定频率的第一时钟信号和具有第一预定工作电压的第一电源电压操作第一处理器;接收模式选择信号;以及响应于模式选择信号以第一操作模式或第二操作模式操作第二处理器。在第一操作模式中,根据第一时钟信号和第一电源电压操作第二处理器,而在第二操作模式中,根据具有与第一预定频率不同的第二预定频率的第二时钟信号并根据具有与第一预定工作电压不同的第二预定工作电压的第二电源电压操作第二处理器。

在再一实施例中,提供一种用于以多处理模式操作具有多个处理器的处理系统的方法,其中至少两个处理器以对称多处理(symmetricmultiprocessing,smp)模式或不对称多处理(asymmetricmultiprocessing,asmp)模式操作。所述方法包含:以smp模式操作至少两个处理器,其中所述至少两个处理器接收具有第一预定频率的smp时钟信号并接收具有第一电压的smp操作电源电压,所述至少两个处理器包括第一处理器和第二处理器;接收从smp模式切换至asmp模式的指令;以及将所述至少两个处理器的操作从smp模式切换至asmp模式。切换操作包含:产生具有与第一预定频率不同的第二预定频率的asmp时钟信号;产生在与第一电压不同的第二电压下的asmp操作电源电压;将asmp时钟信号和asmp操作电源电压输入到第二处理器;并且其后在第二预定频率和第二电压下操作第二处理器以及在第一预定频率和第一电压下操作第一处理器。

根据另一实施例,提供一种多处理器(multi-processor,mp)处理系统,其具有多个处理器,包含第一处理器和第二处理器,第一处理器和第二处理器各自用于接收具有第一预定频率的第一时钟信号和具有第一预定工作电压的第一电源电压并根据第一时钟信号和第一电源电压操作;第三处理器,第三处理器用于接收第一时钟信号或具有与第一预定频率不同的第二预定频率的第二时钟信号并根据第一时钟信号或第二时钟信号操作,并且接收具有与第一预定工作电压不同的第二预定工作电压的第二电源电压并根据第二电源电压操作;以及第四处理器,第四处理器用于接收第一时钟信号或具有与第一预定频率不同的第三预定频率的第三时钟信号并根据第一时钟信号或第三时钟信号操作,并且接收具有与第一预定工作电压不同的第三预定工作电压的第三电源电压并根据第三电源电压操作。控制器耦合到至少第三和第四处理器并用于第三和第四处理器在第一操作模式与第二操作模式之间的切换操作。当在第一操作模式中时,第三处理器和第四处理器各自接收第一时钟信号和第一电源电压并根据第一时钟信号和第一电源电压操作,当在第二操作模式中时,第三处理器接收第二时钟信号和第二电源电压并根据第二时钟信号和第二电源电压操作,而第四处理器接收第三时钟信号和第三电源电压并根据第三时钟信号和第三电源电压操作。第一处理器和第二处理器进一步用于在第一操作模式和第二操作模式两者期间仅接收第一时钟信号和第一电源电压并根据第一时钟信号和第一电源电压操作。

在再一实施例中,提供一种在对称多处理(symmetricmultiprocessing,smp)模式与不对称多处理(asymmetricmultiprocessing,asmp)模式之间切换多个处理器的方法。所述方法包含:在第一处理器和第二处理器的操作期间,始终根据具有第一预定频率的第一时钟信号和具有第一预定工作电压的第一电源电压操作第一处理器和第二处理器;接收模式选择信号;以及响应于模式选择信号同时以第一操作模式或第二操作模式操作第三处理器和第四处理器。在第一操作模式中,根据第一时钟信号和第一电源电压操作第三处理器和第四处理器,而在第二操作模式中,根据具有与第一预定频率不同的第二预定频率的第二时钟信号并根据具有与第一预定工作电压不同的第二预定工作电压的第二电源电压操作第三处理器,以及根据具有与第一预定频率不同的第三预定频率的第三时钟信号并根据具有与第一预定工作电压不同的第三预定工作电压的第三电源电压操作第四处理器。

在又另一个实施例中,提供一种在具有多个处理器的多处理器系统中处理的方法。所述方法包含:在多处理器系统内仅使用多个处理器内的第一有效处理器来处理;确定应激活第二处理器以用于多处理器系统内的处理;响应于确定,激活第二处理器;在多处理器系统内根据对称多处理(symmetricmultiprocessing,smp)模式或不对称多处理(asymmetricmultiprocessing,asmp)模式使用第一有效处理器和第二有效处理器来处理。当在smp模式中时,第一有效处理器和第二有效处理器各自根据具有第一预定频率的第一时钟信号和具有第一预定电压的第一电源电压操作,而当在asmp模式中时,第一有效处理器根据第一时钟信号和第一电源电压操作,第二处理器根据具有与第一预定频率不同的第二预定频率的第二时钟信号并根据具有与第一预定工作电压不同的第二预定工作电压的第二电源电压操作。所述方法还包含接收模式选择信号,并取决于模式选择信号进行第一有效处理器和第二有效处理器从smp模式到asmp模式或从asmp模式到smp模式的切换操作。

在另一实施例中,提供一种具有包含第一处理器和第二处理器的多个处理器的多处理器(multi-processor,mp)处理系统。控制器耦合到至少第二处理器并用于:响应于激活/去激活信号而激活或去激活第二处理器;在激活第二处理器后,控制在多处理器系统内根据对称多处理(symmetricmultiprocessing,smp)模式或不对称多处理(asymmetricmultiprocessing,asmp)模式使用第一处理器和第二处理器的处理。当第一处理器和第二处理器各自根据具有第一预定频率的第一时钟信号和具有第一预定电压的第一电源电压操作时界定smp模式,而当第一处理器根据第一时钟信号和第一电源电压操作,且第二处理器根据具有与第一预定频率不同的第二预定频率的第二时钟信号并根据具有与第一预定工作电压不同的第二预定工作电压的第二电源电压操作时界定asmp模式。控制器还用于接收模式选择信号,并取决于模式选择信号进行第一处理器和第二处理器从smp模式到asmp模式或从asmp模式到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示出根据本发明的实例静态模式切换方法或过程;

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

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

图14a和14b是示出图12中示出的处理系统的两个实施例的简化方框图;

图15示出处于smp模式和asmp模式的具有四个处理器/内核的系统中的多处理配置的不同实例;

图16是用于启动和控制smp/asmp模式切换的替代架构(方法、过程、系统)的图;

图17示出mp系统的替代实施例或架构;

图18是示出基于任务负荷何时应激活额外处理器(或何时应去激活多个有效处理器中的一个)的曲线图;以及

图19是与smp/asmp模式选择/切换过程整合的用于添加/移除处理器的过程的一般流程图。

具体实施方式

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

已发现当将一组处理器/内核的操作从完全smp系统切换至完全asmp系统时,与提供此smp/asmp动态切换功能相关联的成本和复杂度(硬件/软件)会很重要。对于较小的设备(例如,移动应用中的移动设备、手持设备、智能电话等,而不是超级计算设备和应用),已经通过调查和测试确定在大多数用途中可以使用两个(或更少)处理器/内核来充分地处理多处理任务/功能。在大多数这些应用中,两个处理器/内核将以不平衡负荷运行从而导致较高的功耗。

因此,将为有利的是具有低成本、低功率和高性能的多处理系统,所述系统能够以asmp方式操作,但是其中处理器/内核中的仅单个处理器/内核(或子集)用于并支持不同时钟频率和/或不同操作电源电压之间的动态切换,其余的处理器/内核配置在相同时钟频率和相同电源电压下。例如,如果多处理器系统包含两个处理器/内核,那么第一处理器/内核在第一时钟频率(不能动态改变)和第一电源电压(不能动态改变)下操作,而第二处理器/内核可在所述第一频率和第一电源电压(与第一处理器/内核相同)下操作或在不同频率和不同电源电压下操作之间切换。这也可以适用于具有三个或更多个处理器/内核的系统,其中处理器/内核(或子集)中的至少一个具有此动态切换能力。

还可为有利的是具有一种用于在一组处理器/内核中控制和选择至少一个处理器/内核以在与所述组中的所有其它处理器/内核相同的时钟频率和电源电压下操作(由此总体以smp模式操作)或在与其它处理器/内核不同的时钟频率和电源电压下操作(由此总体以asmp模式操作)的方法。此类系统和方法能减少实施成本和功耗并提高效率。

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

如本文所使用,术语smp通常是指使用共享存储器系统(具有以相同时钟和供电电压操作的二级缓存存储器)使用在相同时钟(频率)和相同供电电压下操作的多个处理器/cpu/内核进行处理。术语asmp通常是指使用多个处理器/cpu/内核进行处理,其中的至少两个处理器/cpu/内核在不同时钟(频率)和/或供电电压下操作。在asmp中,通常处理器各自使用不同的二级缓存存储器。然而,asmp也可包含共享同一个二级缓存存储器(被称为异构asmp)。在另一方面中,术语asmp是指使用多个处理器/cpu/内核的多处理,其中每个处理器/cpu/内核用于使用至少第一时钟频率和第一电源电压或第二时钟频率和第二电源电压进行操作。还预期超过两个此类时钟/电压的组合。在这个方面中,所有处理器/cpu/内核(两个或更多个)可以用于以smp模式(全部使用相同时钟频率和电压)或asmp模式(全部使用不同时钟频率和电压)操作。

如将了解,本发明还提供图12到19中描述的smp/asmp系统的各种其它实施例,所述系统类似于关于图1到11描述的那些系统,不同之处在于在这些实施例中,可动态切换或编程对处理器/内核的仅一个子集(至少一个,不到全部)的时钟频率和电源电压输入以接收不同时钟频率和/或供电电压电平。

本申请案进一步描述用于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之外,处理系统200设置于或以其它方式位于单个集成半导体衬底/裸片上(或在设置在多衬底ic封装内的多个半导体衬底内)。在另一实施例中,pmic电路240也可以包含于单个集成半导体衬底/裸片上。

如图所示,处理系统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模式中的期望操作电源电压为v_smp(在以上实例中为1.5伏),其低于当前电压电平(在此实例中为1.9伏),所以所有操作电源电压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。如将了解,fsm262a的过程/功能与fsm262的过程/功能相同,除排除了状态机中的状态360以外。图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)存储卡等。

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

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

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

图12到19中描述的实施例类似于图1到11中描述的那些实施例,然而,asmp模式通常是指这样的多处理:使用一组(多个)内核,其中能够使用与组内的其它内核相同时钟频率和相同电源电压操作的至少一个内核(或更多,但不到全部内核)被动态地切换或用于使用不同时钟频率和电源电压。以此方式,该组内核以smp模式或asmp模式操作,但是该组中的至少一个(并非全部)内核具有不同的时钟频率和电源电压。

如将了解,本文中所使用的术语“内核”可以指单个处理器、cpu或处理内核。该定义还可以扩展成描述或指代具有多个处理器、cpu或处理内核的“内核”。因此,本文中术语“内核”的使用不限于单个处理元件,而是可包含一组相同的处理元件。另外,术语“内核”、“处理器”和“cpu”可以在本文中可互换地使用且在本文中可互换地使用。

除在smp模式与asmp模式之间动态切换之外,所描述的这些各种实施例还可在其中在一组内核内接通/关掉一个或多个内核的不同方法和系统中使用。

现转向图12,示出说明根据本发明的处理系统1200的详图。

一般来说,处理系统1200包含可在smp和asmp这两种操作模式之间切换的一组(多个)处理器。在smp模式中,所有处理器使用相同的时钟频率和电源电压操作,而在asmp模式中(在下文描述的不同实施例中),至少一个第一处理器用于使用(1)与其余处理器的时钟频率和电源电压不同的时钟频率和电源电压或(2)与其它处理器相同的时钟频率和电源电压操作。

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

如图所示,处理系统1200包含多处理器内核和缓存子系统1205,所述子系统具有包含1210a(cpua)、1210c(cpuc)、1210d(cpud)和1210b(cpub)的多个处理器1210,所述多个处理器具有相对应的二级缓存存储器部分1220(1220a和1220b)、跨域时钟(cross-domainclock,cdc)电路1230a和带旁路的cdc电路1230b。虽然示出四个处理器1210(以及相应存储器和电路),但是处理器的数目可以更少或更多,但是将包含至少两个。如将了解,每个处理器1210可以包含一个或多个处理器。

处理系统1200进一步包含电源管理控制(powermanagementcontrol,pmic)电路1240,用于产生至少两个电源电压信号(例如,v0、v1)以用于向处理器、缓存和cdc供电。类似地,时钟产生电路1250产生具有各种预定时钟频率的多个时钟信号以用于处理器、缓存和cdc的计时操作。

在一个实施例中,除pmic电路1240之外,处理系统1200设置于或以其它方式位于单个集成半导体衬底/裸片上(或在设置在多衬底ic封装内的多个半导体衬底内)。在另一实施例中,pmic电路1240也可以包含于单个集成半导体衬底/裸片上。

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

时钟产生电路1250包含用于产生多个时钟信号所必需的电路和元件,包含:用于总体控制所有处理器210的操作速度的一个smp处理器时钟信号(clk)、用于控制缓存部分1220a的操作速度的一个smp存储器时钟信号(clkch)、使得能够独立控制处理器1210b的操作速度的至少一个asmp处理器时钟信号(clk0)、以及使得能够独立控制缓存存储器部分1220b的操作速度的至少一个asmp存储器时钟信号(clkch0)。通过电路1250无干扰地启用或停用任何这些时钟。时钟产生电路1250还产生供控制器1260使用的控制器时钟信号(clk_fsm)。

pmic电路1240包含用于产生供子系统1205的对应部分使用的多个操作电源电压或信号所必需的电路和元件。如图所示,pmic电路1240产生并输出为处理器供电的至少两个操作电源电压(v0、v1)。如图所示,操作电源电压v0为处理器1210a、1210c、1210d和与这些处理器相关联的缓存存储器部分1220a供电。操作电源电压v1为处理器1210b、其相关联的缓存存储器部分1220b和带旁路的cdc电路1230b供电等。如本领域技术人员将理解,当处理器/存储器在较高时钟速度下操作时,需要且可能必需也以较高电源电压操作所述处理器/存储器。另外,当不使用内核时,可以将其功率降级和/或停用时钟。例如,可以停用处理器1210b的操作电源电压v1和/或可以停用处理器1210b的时钟输入(例如,没有输入时钟)。

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

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

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

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

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

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

处理系统1200中示出的大多数元件将与图2的处理系统200中示出的对应元件相同或类似(例如,1210b与210b相同或类似等等)。如将了解,虽然并没有特别地以参考标号标识,但是可以包含各种其它逻辑电路,例如,电平转换。通常在信号跨越电源域时使用电平转换。

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

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

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

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

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

取决于select_asmp_mode信号,系统1300将以asmp模式(1320)或smp模式(1330)操作。当在smp模式1330中时,内核a(元件1210a、1220a、1230a)、内核c(元件1210c、1220a、1230a)、内核d(元件1210d、1220a、1230a)以及内核b(元件1210b、1220b、1230b)以相同的时钟信号/频率和电源电压(clk/vdd)操作。当在asmp模式1320中时,内核a、c和d以相同的时钟信号/频率和电源电压(clk1/vdd1)操作,而内核b以与内核a、c和d不同的时钟信号/频率和电源电压(clk2/vdd2)操作。本文中已经描述了smp/asmp模式(和模式切换)的细节。

应理解,图13的架构(方法或过程)1300的描述和元件与图8的架构(方法或过程)1300中示出的对应元件相同/类似,但是具有不同的时钟和电压配置。

现转向图14a和14b,示出图12中示出的处理系统1200的替代和简化方框图。

在图14a中,内核a、c和d(1210a、1210c、1210d)耦合到单个操作供电电压1405(vdd)并耦合到单个时钟信号1410(clk),而内核b(1210b)耦合到操作供电电压1415(vddb)并耦合到时钟信号1420(clkb)。在此配置中,可以通过由单独的输入/输出终端供应的单独的电压轨提供vddb电源1410。

在图14b中,内核a、c和d(1210a、1210c、1210d)以类似方式耦合到单个操作供电电压1405(vdd)并耦合到单个时钟信号1410(clk)。内核b(1210b)以类似方式耦合到操作供电电压1415(vddb)并耦合到时钟信号1420(clkb)。然而,内核b耦合到衍生自供电电压1405的操作供电电压1430(vddb)。稳压器1440接收vdd、产生供电电压vddb并(取决于选择的模式)输出vddb或vdd到内核b。稳压器1440可以是芯片上的,并且包含旁路模式或功能(未示出),例如低压差(lowdropout,ldo)稳压器或开关电源(switch-modepowersupply,smps)。因此,vddb1312衍生自vdd。在旁路模式中,vddb=vdd。另外,可以通过停用稳压器1440由此关闭内核b将vddb功率降级。如将了解,可以使用复用器实施稳压器的旁路功能并通过状态机或其它软件过程控制稳压器的旁路功能。

如将了解,在一个实施例中,在图12中示出,两个供电电压vdd、vddb和两个时钟信号clk、clkb分别是两个操作供电电压v0、v1和两个时钟信号clk、clk0。

除示意性组件之外,上文相对于图12到14的系统所描述的用于实施smp模式与asmp模式之间的切换的硬件和方法、上文相对于图8到11所描述的用于启动和控制smp与asmp之间的模式切换的实例方法和过程也可以应用于这些系统。必要时,本领域技术人员将能够易于修改那些实例方法和过程,以使得所述实例方法和过程适当和/或适用于图12到14中描述的系统(以及下文描述的那些系统)。

下文在图15中描述具有四(4)个处理器/内核(a、b、c、d)的系统中的多处理的各种实例。这些实例仅是出于说明性目的,并可以使用不同的实施方案、方法和标准,包含具有多于或少于4个处理器/内核(不同数目的处理器/内核)和/或使再多一个处理器/内核闲置(断电、睡眠模式等)的系统。例如,当处理要求为低时,可以关闭一个或多个选择处理器/内核。一般来说,图15示出在asmp模式1320或smp模式1320中使用不同数目的处理器/内核(内核a、b、c和d)的实例。这些内核对应于图12的系统中示出的内核。

方框1510a、1510b和1510c示出以smp模式(1330a、1330b、1330c)操作的处理器/内核的三个不同配置。类似地,1500a、1500b和1500c示出以asmp模式(1320a、1320b、1320c)操作的处理器/内核的三个不同配置。

方框1510a示出以smp模式操作的具有第一处理器/内核配置的系统,其中内核c和d已关闭且内核a和b正运行。在smp模式中,内核a和b在相同时钟频率和供电电压(clk/vdd)下操作,并且内核b还用于接收clk/vdd(例如,clk、clkch,且v1等于v0,见图12)。方框1500a示出这种相同的但是处于asmp模式的处理器/内核配置。在asmp模式中,内核a和b在不同的时钟频率和供电电压下操作,其中内核a在clk1/vdd1下操作,内核b在clk2/vdd2(例如,clk0、clkch0,且v1不同于v0,见图12)下操作。

方框1510b示出以smp模式操作的具有第二处理器/内核配置的系统,其中内核d已关闭且内核a、c和b正运行。在smp模式中,内核a、c和b在相同时钟频率和供电电压(clk/vdd)下操作,并且内核b还用于接收clk/vdd(例如clk、clkch,且v1等于v0,见图12)。方框1500b示出这种相同的但是处于asmp模式的处理器/内核配置。在asmp模式中,内核a和c在相同时钟频率和供电电压clk1/vdd1下操作,内核b在不同的时钟频率和供电电压clk2/vdd2(例如,clk0、clkch0,且v1不同于v0,见图12)下操作。

方框1510c示出以smp模式操作的具有第三处理器/内核配置的系统,其中所有内核a、b、c和d正运行。在smp模式中,内核a、c和d在相同时钟频率和供电电压(clk/vdd)下操作,并且内核b还用于接收clk/vdd(例如clk、clkch,且v1等于v0,见图12)。方框1500c示出这种相同的但是处于asmp模式的处理器/内核配置。在asmp模式中,内核a、c和d在相同时钟频率和供电电压clk1/vdd1下操作,内核b在不同的时钟频率和供电电压clk2/vdd2(例如,clk0、clkch0,且v1不同于v0,见图12)下操作。

在一个实施例中,当仅需要两个处理器/内核时,系统将使用内核a(或内核c或内核d)和内核b,从而为该组提供灵活性以在smp模式与asmp模式之间进行切换。当需要额外处理能力时,可以使用其余的内核中的一个或两个,同样仍为该组提供灵活性以在smp模式与asmp模式之间进行切换。如将了解,可以响应于上文描述的任何标准或信息进行smp模式与asmp模式之间的切换。另外,在本文中描述的任何实施例(并改变clk和vdd)中,在smp模式与asmp模式之间进行切换所实施的方法/过程可以与相对于图3a、3b和3c描述的方法/过程相同或类似。虽然这会要求一些修改或重新设置,但是本领域一般技术人员将能够使用图3a、3b和3c作为指导来实施模式之间的切换。

系统1200的架构相比于系统200明显减少了与smp/asmp动态切换相关联的成本以及硬件/软件复杂度。例如,在具有四个处理器/内核的mp系统中,对根据系统1200(其中仅一个处理器可动态配置)配置的系统的附加成本是相较于根据系统200(其中所有四个处理器可动态配置)配置的系统的附加成本的约三分之一。

测试和调查已经显示,在大多数情况下,可以通过两个处理器满足处理要求,并且在大多数情况下这两个处理器将以不平衡的负荷运行。在以两个处理器内核a和b操作的系统1200中(见图12、以及图15中示出的配置1320a和1330a),smp模式与asmp模式之间的适当切换可以使电源效率最佳。类似地,为了获得最大性能,所有四个处理器内核a、b、c和d可以具有最大时钟频率和电源电压的smp模式操作,这具有灵活性、功率降低而同时在需要时维持相同高端性能。系统1200提供了android/ios/windows等移动高级操作系统(highleveloperatingsystem,hlos)的低成本、低功率和高性能之间的有益权衡,并且还适合中低层市场。

本领域一般技术人员将易于理解,如图12到15中所示的“内核”(例如,a、b、c、d)中的一个或多个还可以各自在每个内核内包含两个或更多个处理器。在此类实施例中,每“组”处理器根据功能划分为不同实体(或“内核”)。例如,内核a可以包含三个处理器,而内核可以包含两个处理器。在smp模式中,五个处理器全部在相同时钟频率和电源电压下操作。在asmp模式中,内核b中的处理器总体切换为不同的时钟频率和电源电压。如将了解,可以基于或至少部分地基于激活/去激活系统中的处理器的决策来进行在smp模式与asmp模式之间切换的决策。下文相对于图18到19进一步对此进行说明。

现转向图16,示出类似于图13中示出的架构(例如,方法、过程、系统)1300的替代实施例1600。类似地,模式选择可以基于期望的处理或应用程序的类型以及其它信息或因素。

系统1600与1300之间的主要区别在于,在系统1600中,存在两个或更多个处理器/内核(内核b、内核e等),其可动态配置以在与所有其它处理器/内核相同的时钟频率和供电电压下操作(smp模式)或在与其它处理器/内核中的一些不同的时钟频率和供电电压下操作(asmp模式)。换句话说,存在与图13的系统1300中的内核b类似的多个处理器/内核。

当在asmp模式中时,整组可以分类为包含两个子组1610和1620。在子组1610中,子组内的所有处理器/内核(例如,内核a、内核c等)仅在单个时钟频率和供电电压下操作,意味着每个处理器/内核将在一种时钟频率和供电电压(clk1/vdd1)下操作。在子组1620中,所述子组内的处理器/内核(例如,内核b、内核e等)中的每一个在与clk1/vdd1不同的时钟频率和供电电压(例如,clk2/vdd2)下操作。因此,子组1620内的处理器/内核可动态选择以在某一多个时钟频率和供电电压(例如,clk1/vdd1、clk2/vdd2等)下操作,而子组1610内的处理器/内核在指定时钟频率和供电电压(clk1/vdd2)下静态地操作。

当在smp模式中时,所有处理器/内核在相同时钟频率和供电电压(clk/vdd)下操作。应理解,在实践中,clk/vdd与clk1/vdd1相同。

如同系统1300一样,取决于select_asmp_mode信号,系统1600将以asmp模式(1320)或smp模式(1330)操作。当在smp模式1330中时,所有内核(例如,a、b、c、e等)以相同的时钟信号/频率和电源电压(clk/vdd)操作。当在asmp模式1320中时,子组1610内的内核(例如,内核a、c等)以相同时钟信号/频率和电源电压(clk1/vdd1)操作,而子组1620内的内核(例如,内核b、e等)以与子组1610中的内核不同的时钟信号/频率和电源电压(vclk2/vdd2)操作。本文中已经描述了smp/asmp模式(和模式切换)的细节。类似地,可以基于或至少部分地基于激活/去激活系统中的处理器的决策来进行在smp模式与asmp模式之间切换的决策。下文相对于图18到19进一步对此进行说明。

应了解,尽管子组1620内的所有内核总体在相同clk2/vdd2下操作,但是在另一实施例中,那些内核可以个别地用于在所述组内的多个不同的时钟频率和供电电压下操作(例如子组1620自身也可以具有本地smp和asmp模式)。

现转向图17,示出说明其它实施例或架构的两个mp系统1710和1720。所述系统包含n数目个内核,其个别地用于(动态可切换)在多个不同频率下操作,其中n为2或更多。

系统1710包含在第一固定时钟频率/供电电压clk1/vdd1下操作的内核a和c。内核d在第二时钟频率/供电电压clk2/vdd2下操作,而内核b在第三时钟频率/供电电压clk3/vdd3下操作。根据本文中的教示,当系统处于smp模式时,所有时钟频率和供电电压在系统处于smp模式中时相等,所有时钟频率和供电电压等于clk1/vdd1。当在asmp模式中时,时钟频率/电压对clk1/vdd1、clk2/vdd2和clk3/vdd3不相等。系统1720类似于系统1710,但是示出内核e也用于在第一固定clk1/vdd1下操作。因此,系统1710、1720包含第一组处理器(在固定clk1/vdd1下操作)和第二组处理器,在第二组处理器中每个个别处理器可动态切换以在固定clk1/vdd1下操作(在smp模式中)或在不同的时钟频率/供电电压(例如,clk2/vdd2、clk3/vdd3)下操作。

如将了解,系统1710、1720中可以包含任何n数目个可个别动态切换的(clk/vdd)内核和/或可以包含任何数目的固定的(clk1/vdd1)内核。虽然未具体示出,但是系统1710、1720的动态切换功能可以用与图12中所阐述的类似方式实施(含有本领域技术人员已知的必要修改),也可以用如此文档中所描述的其它方式实施。

下文现在描述关于附图中示出和描述的系统1200的各种操作实例或方法。

在第一个一般操作方案中,当一个或三个或更多个内核有效时,选择smp模式并且所有有效处理器在相同时钟频率和供电电压下操作。当两个内核有效时,有效处理器中的一个是内核b且另一个有效处理器是内核a、内核c或内核d,并且这两个有效处理器可以在需要时(基于根据图9到11和/或根据其它图或本文中的描述而描述的过程和方法)在smp模式与asmp模式之间切换。

在第二个一般操作方案中,当两个内核有效(一个有效内核是内核b)时,两个有效内核用于以asmp模式操作。当三个或更多个内核有效时,有效内核用于以smp模式操作。

在第三个操作方案中,当两个内核有效(一个有效内核是内核b)时,两个有效内核最初用于以asmp模式操作。通过处于asmp模式的两个有效内核,可以在smp模式与asmp模式之间(基于根据图9到11和/或根据其它图或本文中的描述而描述的过程和方法)切换内核。

在本文中引入且描述的另一概念是针对处理器/内核的负荷和利用。在多处理器/内核系统中,并非始终需要所有处理器/内核。当处理要求低时,可以仅需要一个或几个处理器,当处理要求高时,可以需要更多处理器。此概念可以引入或整合到模式选择过程中,或模式选择过程可以至少部分地基于处理计算要求所需的处理器的数量。

在本文中所描述的系统中,可以提供另外的功能(未具体示出),使得每个内核能够停用时钟和/或功率降级以使处理器/内核处于睡眠模式、停用或关机。这通过(在更少数目的处理器可以应对处理要求时)断开不需要的处理器而使得减小功耗。

可以实施各种过程或方法以确定需要多少处理器来满足当前计算要求。一旦进行了此确定,就可以例如以下段落中描述的任何适当的顺序和/或优先顺序接通/关掉内核。

基于各种计算因素和要求(例如,负荷、队列长度、任务、线程、相依性、cpu请求及其类似物等),可以根据需要打开/关闭处理器。在图18中示出的一个实施例中,基于任务负荷确定何时应激活额外处理器(或何时应去激活多个有效处理器中的一个)。随着任务负荷1810增大,达到一个点(向上迁移阈值1820),在此点处期望激活额外处理器来处理增大的负荷。当达到向上迁移阈值1820时,在线引入另一处理器。使用两个有效处理器,任务负荷1810开始减小。当达到一个点(向下迁移阈值1830)时,在此点处期望去激活有效处理器中的一个,因为可以通过一个处理器来处理当前负荷。如图所示,设置两个阈值1820、1830以提供迟滞功能。

以下描述示出应用于系统1200(具有如图12中所示的特定内核a、b、c和d)的此概念。当可以通过单个内核满足处理要求时,使用内核a、c或d中的任一个并关闭其它内核。当处理要求需要两个内核时,使用内核b以及使用内核a、c或d中的任一个并关闭其它两个内核。然而,应了解,当确定需要两个内核时无论哪个单个内核有效都应可能保留为有效内核中的一个。当两个内核有效(一个是内核b)时,使用本文中所描述的各种标准,例如缓存未命中或学习系统,以确定是否在smp模式与asmp模式之间进行切换(例如,切换至较低功率)。

当处理要求需要三个内核时,使用内核b以及使用内核a、c或d中的两个。当三个内核有效(一个是内核b)时,可以使用本文中所描述的各种标准,例如缓存未命中或学习系统,以确定是否在smp模式与asmp模式之间进行切换(例如,切换至较低功率)。类似地,在计算要求需要所有四个内核的情况下,可以在必要时实施smp模式与asmp模式之间的切换。

现转向图19,示出与smp/asmp模式选择过程整合的用于添加/移除处理器的过程1900的一般流程图。取决于所使用的特定架构(例如,内核的数目)和所期望的功能或应用,可以对示出的过程作出各种重新设置或修改。如将了解,并未示出可在此类过程中使用的所有步骤或元件。

在单个处理器操作时示出过程1900。当仅需要单个处理器时,mp系统在单个固定的clk1/vdd1下以smp模式操作(步骤1910)。在处理操作期间的某一时刻,确定是否需要第二处理器来处理提高的处理要求(或出于一些其它原因)(步骤1915)。可以定期或响应于操作信息作出此确定。

响应于需要另一处理器的确定,根据设计者期望,过程1900沿着三个可能路径1920a、1920a、1920c中的一个进行。这三个替代方案是关于在激活第二处理器后两个有效处理器将默认:(1)smp模式(1920a)、(2)asmp模式(1920b)、还是(3)根据操作系统要求或过程模式选择信息起作用并确定应选择smp模式或asmp模式(1920c)。

如果选择默认smp模式(1920a),那么第二处理器自动地用于接收clk1/vdd1(当第一处理器也以clk1/vdd1操作时)并根据clk1/vdd1操作。相反,如果选择默认asmp模式(1920b),那么第二处理器自动地用于接收与clk1/vdd1(当第一处理器以clk1/vdd1操作时)不同的clk2/vdd2并根据clk2/vdd2操作。如果选择第三默认过程(1920c),系统将执行“初始”smp/asmp模式选择/切换过程(未示出)以确定是否激活第二处理器,使得两个处理器开始以smp模式或asmp模式操作。

一旦两个处理器均有效,且(1)以默认smp模式操作、(2)以默认asmp模式操作、或(3)以选中的smp或asmp模式操作,所述过程继续smp/asmp模式选择/切换过程(步骤1930)。在此过程中,mp系统根据各种操作参数(如本文中在上文所描述的在长度上)确定是否在smp模式/asmp模式之间动态切换。

同时,系统继续评估对更多或更少计算处理功率等的需要,并且可以确定处理要求是否处于可以使两个有效处理器中的一个不使用的级别(步骤1940)。如果不是,那么过程继续实施选择/切换过程1930。如果是,过程返回至使用单个处理器(在smp模式中)(步骤1910)。过程还可以确定处理要求是否处于需要第三处理器的级别(步骤1950)。如果不是,那么过程继续实施选择/切换过程1930。如果是,过程进行并激活第三处理器(步骤1960)。如果目前有效的两个处理器处于asmp模式,那么它们被切换至smp模式并且所有三个处理器以smp模式操作。

在另一实施例中(另外参考图15和16),可以通过一步法或两步法执行smp模式/asmp模式之间的切换同时又打开/关闭处理器中的一个。例如,假设系统根据图15中的1500a示出的配置操作(即,asmp模式,具有2个内核)。当负荷增加且操作系统确定需要第三处理器时,系统可以直接从1500a配置切换为1510b配置(即,smp模式,具有3个内核)。这是一步式切换,一步式切换比两步式切换更快。在两步式切换中,两个有效处理器将首先切换至smp模式(第一步骤),随后将激活第三处理器。这通过从1500a转换至1510a、接着从1510a转换至1510b示出。如将了解,可以在至少响应于激活/去激活处理器而发生模式切换时实施一步式切换或两步式切换。

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

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

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

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

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

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

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

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

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

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

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