中央处理单元控制方法、电子系统控制方法及电子系统的制作方法

文档序号:10579018阅读:351来源:国知局
中央处理单元控制方法、电子系统控制方法及电子系统的制作方法
【专利摘要】用于控制第一CPU及第二CPU的CPU控制方法。该方法包含:(a)如果第一CPU运行以执行第一功能,使用第一CPU执行第一代码组,第一代码组包含至少一个代码;以及(b)如果第二CPU运行以执行第一功能,使用第二CPU执行第二代码组,第二代码组包含至少一个代码。第一代码组被优化以用于第一CPU,第二代码组被优化以用于第二CPU,以及第一代码组包含不同于第二代码组的代码的至少一个代码。
【专利说明】
中央处理单元控制方法、电子系统控制方法及电子系统
[0001] 相关申请的交叉引用
[0002] 本申请要求美国临时申请号为61/983,601、申请日为2014年4月24日,以及美国临 时申请号为61/984,959、申请日为2014年4月28日的优先权,其全部内容被合并引用到该申 请中。
技术领域
[0003] 本发明涉及中央处理单元控制方法、电子系统(electronic system)控制方法及 包含使用该方法的电子系统,以及更具体地,涉及一种中央处理单元(Central Processing Unit,CPU)控制方法、电子系统控制方法及可以优化不同CPU的电子系统。
【背景技术】
[0004] -些电子系统可包含多个CPU,以满足不同的需求。例如,一个CPU运行时提供更多 功能,以及另一 CPU运行时节省更多能源。对于那些电子系统,在执行相同功能时,CPU执行 相同的代码。
[0005] 然而,在执行一些特定的代码组合时,CPU可以有更好的性能。如果在执行相同功 能时,所有CHJ执行相同的代码,CPU可能没有优化的性能。

【发明内容】

[0006] 本发明的一个目的是提供一种CPU控制方法,以控制两个CPU执行不同的代码,尽 管这两个CPU执行相同的功能。
[0007] 本发明的一个目的是提供一种电子系统控制方法,以控制两个CPU执行不同的代 码,尽管这两个CPU执行相同的子功能。
[0008] 本发明的一个目的是提供一种电子系统,该电子系统包含能够执行不同的代码的 两个CPU,尽管这两个CPU执行相同的功能。
[0009] 本发明的一个实施例公开了一种CPU控制方法,以控制第一 CPU及第二CPU。该方法 包含:(a)如果第一CPU运行以执行第一功能,使用第一CPU执行第一代码组,第一代码组包 含至少一个代码;以及(b)如果第二CPU运行以执行第一功能,使用第二CPU执行第二代码 组,第二代码组包含至少一个代码。第一代码组被优化以用于第一 CPU,第二代码组被优化 以用于第二CPU,以及第一代码组包含不同于第二代码组的代码的至少一个代码。
[0010] 本发明的另一实施例公开了一种电子系统控制方法,用于控制包含第一 CPU及第 二CPU的电子系统。电子系统控制方法包含:(a)控制电子系统执行主功能,主功能包含至少 一个子功能;以及(b)当电子系统执行子功能时,执行以下步骤:(bl)确定第一CHJ与第二 CHJ中的哪个CPU正在运行;(b2)如果步骤(bl)确定第一CPU运行以执行子功能,使用第一 CPU执行第一代码组,第一代码组包含至少一个代码;(b3)如果步骤(bl)确定第二CPU运行 以执行子功能,使用第二CPU执行第二代码组,第二代码组包含至少一个代码。第一代码组 被优化以用于第一CPU,第二代码组被优化以用于第二CPU,以及第一代码组包含不同于第 二代码组的代码的至少一个代码。
[0011] 本发明的又一实施例公开了一种电子系统,其包含:第一CPU;第二CPU。如果第一 CPU运行以执行第一功能,第一CPU执行第一代码组。如果第二CPU运行以执行第一功能,第 二CHJ执行第二代码组。
[0012] 本发明的另一实施例公开了一种电子系统,用于执行包含至少一个子功能的主功 能。该电子系统包含:第一CPU,用于如果第一CPU运行以执行包含在主功能中的第一子功 能,执行第一代码组,第一代码组包含至少一个代码;以及第二CPU,用于如果第二CPU运行 以执行第一子功能,执行第二代码组,第二代码组包含至少一个代码。第一代码组包含不同 于第二代码组的代码的至少一个代码。
[0013] 鉴于上述实施例,尽管CPU执行相同的功能或相同的子功能,不同的CPU可以执行 不同的代码,因而可以优化CHJ的性能。
[0014] 在阅读下面的显示在不同附图中的优选实现方式的详细描述后,对于本领域普通 技术人员来说,本发明的这些和其它目的将变得显而易见。
【附图说明】
[0015] 图1是根据本发明一个实施例的CPU控制方法的流程示意图。
[0016] 图2是获取CPU信息的一个例子的概要示意图。
[0017] 图3是根据本发明另一实施例的第一 CPU或第二CPU如何执行不同代码的概要示意 图。
[0018] 图4及图5是根据本发明另一实施例的,控制电子系统中的第一CPU及第二CPU执行 不同代码的方法的流程示意图。
[0019] 图6是根据本发明一个实施例的电子系统控制方法的流程示意图。
[0020]图7是根据本发明一个实施例的电子系统的方块示意图。
【具体实施方式】
[0021] 提供了许多实施例,以作为例子解释本发明的概念。请注意,下面的实施例应用于 两个CPU(第一CPU及第二CPU)。然而,本发明可以应用于多于两个CPU。
[0022] 图1是根据本发明一个实施例的CPU控制方法的流程示意图。图1包含以下步骤:
[0023] 步骤101
[0024] 如果第一CPU运行以执行第一功能,转到步骤103。以及,如果第二CPU运行以执行 第一功能,转到步骤105。
[0025] 请注意,这里第一功能表示步骤103及步骤105执行相同的功能,以及并不表示步 骤103及步骤105仅用于执行一些特定的功能。
[0026] 在一个实施例中,确定第一CPU及第二CPU中哪个CPU正在运行的步骤,在步骤101 之前执行。
[0027] 步骤 103
[0028] 如果步骤101确定第一 CPU正在运行,使用第一 CPU执行第一代码组,第一代码组包 含至少一个代码。
[0029]步骤 105
[0030] 如果步骤101确定第二CPU正在运行,使用第二CPU执行第二代码组,第二代码组包 含至少一个代码。
[0031 ] 第一代码组包含不同于第二代码组的代码的至少一个代码。
[0032] 可以使用许多方法来决定执行图1所示方法的时机。例如,可在程序中设置至少一 个检验点,以及图1所示的方法可以在该检验点执行。
[0033] 第一CPU及第二CPU可以为不同的组合。例如,第一CPU及第二CPU可使用ARM? big. LITTLE?架构。在这个例子中,第一CPU是一个大核CPU,如CA57或CA17,以及第二CPU是 一个小核CPU,如CA53或CA7。在一个实施例中,第一CPU与第二CPU有不同的功率损耗。在另 一实施例中,第一CPU及第二CPU运行在不同的工作频率。在又一实施例中,第一CPU可以执 行比第二CPU更多的功能(即,第一CPU比第二CPU功率更高)。
[0034] 可以使用许多方法确定第一 CPU与第二CPU中哪个CPU正在运行。在一个实施例中, 第一 CPU及第二CPU使用上述ARM? big. LITTLE?架构,可以通过读取寄存器(register) 来获取第一CHJ与第二CPU中哪个CPU正在运行的信息(即,CPU信息)。
[0035] 图2是获取CPU信息的一个例子的概要示意图。如图2所示,在图1的步骤101之前, CPU信息CPI原始地存储在第二寄存器RE2。可以在内核空间(kernel space)读取第二寄存 器RE2,但是不能在用户空间(user space)读取第二寄存器RE2。在内核空间,CPU信息CPI可 以从第二寄存器RE2中读取,以及可以在图1的步骤101之前,将CPU信息CPI存储于第一寄存 器REl。可以在内核空间读取第一寄存器REl,也可以在用户空间读取第一寄存器REl。之后, 在用户空间,图1的步骤101从第一寄存器REl读取CPU信息CPI,以及基于CPU信息CPI确定哪 个CPU正在运行。请注意,图2所示的步骤并不限于应用于使用前述ARM?big.LITTLE?架 构的CPU。
[0036] 图3是根据本发明另一实施例的第一 CPU或第二CPU如何执行不同代码的概要示意 图。如图3所示,如果该程序是从第一CPU CPl迀移到第二CPU CP2,第二CPU CP2接收指针 PT,该指针指向第二功能表FT2。指针PT可以视为代码指示信息。第二功能表FT2可包含第二 代码组。通过这个方式,第二CPU CP2可以从第二功能表FT2中读取第二代码组。相反地,如 果该程序是从第二CPU CP2迀移到第一CPU CPl,第一CPU CPl接收指向第一功能表FTl的指 针PT。第一功能表FTl可包含第一代码组。通过这个方式,第一CPU CPl可以从第一功能表 FTl中读取第一代码组。在一个实施例中,第一功能表FTl以及第二功能表FT2都包含分别对 应于不同功能的多个代码组。
[0037] 图4及图5是根据本发明另一实施例的,控制电子系统中的第一CPU及第二CPU执行 不同代码的方法的流程示意图。在这些实施例中,CPU被优化以用于至少一个子功能而非全 部功能。
[0038]图4的实施例包含以下步骤:
[0039] 步骤 401
[0040] 电子系统开始执行主功能。主功能可包含多个子功能。例如,主功能"显示电影"可 包含子功能"显示音频数据"及"播放语音数据"。换句话说,主功能对应的主程序可包含对 应于至少一个子功能的至少一个子程序。在该实施例中,主功能包含三个子功能"子功能 八"、"子功能矿及"子功能(^。
[0041 ]步骤 403
[0042] 执行共同的代码。也就是说,在这个步骤中,第一CPU或第二CPU在运行时执行相同 的代码。
[0043] 步骤 405
[0044] 执行子功能A。
[0045] 步骤 407
[0046] 执行共同的代码。
[0047] 步骤 409 [0048]执行子功能B。
[0049]步骤411 [0050]执行子功能C。
[0051] 在一个实施例中,当子功能A、子功能B及子功能C开始,执行图1所示的方法。如图5 所示,步骤405、409及411都包含图1所示的步骤101、103及105。
[0052] 请注意,在图4及图5所示的实施例中,子功能的数量不限于3,以及可以忽略执行 共同的代码的步骤。因此,图4及图5所示的实施例可以概括为图6所示的电子控制系统控制 方法,其包含步骤:
[0053] 步骤 601
[0054]控制电子系统执行主功能,主功能包含至少一个子功能。
[0055] 步骤 603
[0056] 在电子系统执行子功能时,执行图1所示的步骤101、103及105。
[0057]图7是根据本发明一个实施例的电子系统的方块不意图。如图7所不,电子系统700 包含第一CPU CPl及第二CPU CP2。可以执行确定程序,以确定哪个CPU正在运行。确定程序 可以由第一CPU CPl或第二CPU CP2执行,或由独立于第一CPU CPl及第二CPU CP2的电路执 行。这样的情况下,第一CPU、第二CPU或独立于第一CPU CPl及第二CPU CP2的电路,可以视 为一个"确定装置"。这样的确定装置也可执行图1中的步骤101及103。
[0058]电子系统700的其它详细操作已经在前述实施例中描述,因而这里不再描述。
[0059] 鉴于上述实施例,不同的CPU可以执行不同的代码,因此CPU的性能可以得到优化。
[0060] 本领域技术人员将容易地看到,可在保留本发明教导的同时,做出装置和方法的 许多修改和替换。因此,上述公开内容应理解为仅由所附权利要求书的界限和范围限制。
【主权项】
1. 一种CPU控制方法,用于控制包括第一 CPU及第二CPU的多个不同CPU,其特征在于,包 含: (a) 如果所述第一CPU运行以执行第一功能,使用所述第一CPU执行第一代码组,所述第 一代码组包含至少一个代码;以及 (b) 如果所述第二CPU运行以执行所述第一功能,使用所述第二CPU执行第二代码组,所 述第二代码组包含至少一个代码; 其中,所述第一代码组被优化以用于所述第一CPU,所述第二代码组被优化以用于所述 第二CPU,以及所述第一代码组包含不同于所述第二代码组的代码的至少一个代码。2. 如权利要求1所述的CRJ控制方法,其特征在于,还包含: (c) 在步骤(a)之前,根据存储在第一寄存器中的CPU信息,确定所述第一 CPU与所述第 二CPU中哪个CPU正在运行。3. 如权利要求2所述的CRJ控制方法,其特征在于,还包含: 在步骤(c)之前,在内核空间,从第二寄存器获取所述CPU信息,以及将所述CPU信息存 储于所述第一寄存器; 其中,步骤(c)还包含: 在用户空间,从所述第一寄存器读取所述CRJ信息。4. 如权利要求1所述的CRJ控制方法,其特征在于,还包含: 检测CRJ之间的迀移; 当检测到CRJ迀移时,改变代码指示信息;以及 根据所述代码指示信息,读取特定的代码组。5. 如权利要求1所述的CRJ控制方法,其特征在于,还包含: 设置至少一个检验点;以及 在所述检验点确定所述第一 CRJ与所述第二CRJ中的哪个CRJ正在运行。6. -种电子系统控制方法,用于控制包含第一 CPU及第二CPU的电子系统,其特征在于, 包含: (a) 控制所述电子系统执行主功能,所述主功能包含至少一个子功能;以及 (b) 当所述电子系统执行所述子功能时,执行以下步骤: (bl)确定所述第一 CRJ与所述第二CRJ中的哪个CRJ正在运行; (b2)如果步骤(bl)确定所述第一 CPU运行以执行所述子功能,使用所述第一 CPU执行第 一代码组,所述第一代码组包含至少一个代码; (b3)如果步骤(bl)确定所述第二CPU运行以执行所述子功能,使用所述第二CPU执行第 二代码组,所述第二代码组包含至少一个代码; 其中,所述第一代码组被优化以用于所述第一CPU,所述第二代码组被优化以用于所述 第二CPU,以及所述第一代码组包含不同于所述第二代码组的代码的至少一个代码。7. 如权利要求6所述的电子系统控制方法,其特征在于,还包含: (c) 在步骤(bl)之前,根据存储在第一寄存器中的CPU信息,确定所述第一 CPU与所述第 二CPU中哪个CPU正在运行。8. 如权利要求7所述的电子系统控制方法,其特征在于,还包含: 在步骤(c)之前,在内核空间,从第二寄存器获取所述CPU信息,以及将所述CPU信息存 储于所述第一寄存器; 其中,所述步骤(C)还包含: 在用户空间,从所述第一寄存器读取所述CRJ信息。9. 如权利要求6所述的电子系统控制方法,其特征在于,还包含: 检测CRJ之间的迀移; 当检测到CRJ迀移时,改变代码指示信息;以及 根据所述代码指示信息,读取特定的代码组。10. 如权利要求6所述的电子系统控制方法,其特征在于,还包含: 设置至少一个检验点;以及 在所述检验点确定所述第一 CRJ与所述第二CRJ中的哪个CRJ正在运行。11. 一种电子系统,其特征在于,包含: 第一CRJ;以及 第二 CRJ; 如果所述第一 CPU运行以执行第一功能,所述第一 CPU执行第一代码组; 如果所述第二CHJ运行以执行所述第一功能,所述第二CRJ执行第二代码组; 其中,所述第一代码组被优化以用于所述第一CPU,所述第二代码组被优化以用于所述 第二CPU,以及所述第一代码组包含不同于所述第二代码组的代码的至少一个代码。12. 如权利要求11所述的电子系统,其特征在于,还包含: 确定装置,用于执行确定程序,以根据存储在第一寄存器中的CPU信息,确定所述第一 CHJ与所述第二CPU中的哪个CPU正在运行。13. 如权利要求12所述的电子系统,其特征在于,所述确定装置在内核空间从第二寄存 器获取所述CHJ信息,以及将所述CPU信息存储于所述第一寄存器;之后,所述确定装置在用 户空间,从所述第一寄存器读取所述CPU信息。14. 如权利要求11所述的电子系统,其特征在于,如果存在所述第一 CPU与所述第二CPU 之间迀移的程序,根据指向至少一个功能表的代码指示信息,所述第一 CHJ读取所述第一代 码组,所述第二CPU读取所述第二代码组。15. 如权利要求11所述的电子系统,其特征在于,还包含: 确定装置,用于执行确定程序,以确定所述第一 CHJ与所述第二CPU中的哪个CPU正在运 行; 所述确定装置设置至少一个检验点,以及在所述检验点执行所述确定程序,以确定所 述第一 CPU与所述第二CPU中的哪个CPU在运行。16. -种电子系统,用于执行包含至少一个子功能的主功能,其特征在于,包含: 第一CPU,如果所述第一CPU运行以执行包含在主功能中的第一子功能,用于执行第一 代码组,所述第一代码组包含至少一个代码;以及 第二CPU,如果所述第二CPU运行以执行所述第一子功能,用于执行第二代码组,所述第 二代码组包含至少一个代码; 其中,所述第一代码组包含不同于所述第二代码组的代码的至少一个代码。17. 如权利要求16所述的电子系统,其特征在于,还包含确定装置,所述确定装置用于 根据存储在第一寄存器中的CHJ信息,确定所述第一 CPU与所述第二CPU中的哪个CPU正在运 行。18. 如权利要求17所述的电子系统,其特征在于,还包含: 其中,在确定所述第一CPU与所述第二CPU中的哪个CPU正在运行之前,在内核空间,所 述确定装置从第二寄存器获取CHJ信息,以及将所述CPU信息存储于所述第一寄存器。19. 如权利要求16所述的电子系统,其特征在于,如果存在所述第一 CPU与所述第二CPU 之间迀移的程序,根据指向至少一个功能表的代码指示信息,所述第一 CHJ读取所述第一代 码组,以及所述第二CPU读取所述第二代码组。20. 如权利要求16所述的电子系统,其特征在于,还包含: 确定装置,用于设置至少一个检验点,以及用于在所述检验点确定所述第一CPU与所述 第二CPU中的哪个CPU正在运行。
【文档编号】G06F9/445GK105940376SQ201580002328
【公开日】2016年9月14日
【申请日】2015年4月24日
【发明人】魏淳航, 周宏霖, 尼古拉斯·秦辉·郑, 陈家明, 张雅婷, 廖凡磊
【申请人】联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1