目前许多厂商竞相开发多核心处理器的相关技术,使得多核心处理器逐 渐成为市场趋势。
然而,目前多核心处理器系统即使搭配了支持多处理器的
操作系统。若 是应用程序未经改写或重新编译,而只能以单一程序(Process)或单一线程 (Thread)执行时,则这个应用程序只会被分配到其中的单一处理核心执行。 此时,就算没有其它处理程序需要执行,其它处理核心也只是处于闲置(idle) 中,而不会
加速运算的执行。或者,若是程序在写作或编译时并未针对多处 理器架构做最佳化处理,使得数据间仍具有关连性而非完全独立。此时,其 中一个处理核心便可能需要等待接收其它处理核心的输出结果才能开始执行 所负责的运算,使得这些处理核心无法同时完全发挥运算能
力。也就是说, 这类应用程序的执行速度将会受限于单一核心的运算速度,而非多核心处理 器整体运算能力。
传统上,直接更换较高
频率的多核心处理器对于此类单一程序虽然能提 供相对上较佳的效能。然而,处理器的功率也随之大量提高。这是因为半导 体的功率消耗(P)是与运算时的操作频率(f)成等比例提升(亦即,P=c ×f×V2,其中c为处理器的
半导体特性参数,V为处理器的工作
电压)。非仅 如此,当处理器的内部核心越多,消耗的功率亦会随之提高(如下表一所示)。 故,整个系统也因此需要保留额外的
电流供应以及较佳的
散热能力。
表一
(多核心处理器在不同操作频率时的功率消耗差异比较)
操作频率 单处理核心 双处理核心 四处理核心 原始操作频率为f时 X 2X 4X
操作频率提升25%为1.25×f 时 1.25X 2.5X 5X 功耗差异 0.25X 0.5X X
其中,X表示单一处理核心在原始操作频率下的功率消耗。
因此,尽管该些处理核心理论上具有倍数于单处理器的运算能力,但遭 遇运算
瓶颈集中于单一处理核心的情形时,多核心处理器其整体效能的提升 仍有所局限,无法表现出预期中相较于单核心处理器的多工处理优势。
图1所示为本发明一实施例的多核心处理器系统的方块图。这个多核心 处理器系统100包括多核心处理器110、电源供应电路120、控制单元130、 时钟信号发生器140、及侦测单元150,其中多核心处理器110至少包括第一 处理核心111以及第二处理核心112。
上述多核心处理器110、电源供应电路120、控制单元130、时钟信号发 生器140、及侦测单元150皆组设在多核心处理器系统100的主机板(图中 未示)上。上述电源供应电路120分别与多核心处理器110的第一处理核心 111及第二处理核心112电性连接,以提供这些处理核心111,112所需的电 源。在本实施例中,电源供应电路120可以利用电压调节模块(Voltage Regulator Module,VRM)来达成。
上述控制单元130分别与多核心处理器110、电源供应电路120、时钟信 号发生器140、及侦测单元150电性连接,其中控制单元130并与多核心处 理器110的第一处理核心111、及第二处理核心112电性连接。时钟信号发 生器140分别与多核心处理器110的第一处理核心111、及第二处理核心112 电性连接。
本实施例所提供的控制单元130可控制电源供应电路120输出给这些处 理核心111,112的供电量。控制单元130亦可分别控制这些处理核心111,112 的内部倍频及电源状态(Power State)。此外,控制单元130更可通过内部 集成电路(Inter-integrated Circuit,I2C)总线来控制时钟信号发生器140, 以控制时钟信号发生器140提供至这些处理核心111,112的工作频率(又称 外频)。在其它实施例中,控制单元130亦可通过其它
接口来控制时钟信号发 生器140所产生的工作频率。藉此,控制单元130便可分别调整这些处理核 心111,112的主频。
值得一提的是,在本实施例中,控制单元130可为南桥芯片(South Bride Chip)。在其它实施例中,控制单元130亦可为超级输入输出芯片(Super IO Chip)或者其它等效的
芯片组。
上述侦测单元150电性连接这些处理核心111,112的电源输入接脚、及 控制单元130,以侦测这些处理核心111,112的负载电流或电压,使得控制 单元130能够判断这些处理核心111,112的负载。进一步说,侦测单元150 可以使用电源供应电路120的多个电压调节模块中的脉宽调变
控制器(PWM Controller)的工作模式,或以功率
放大器(Operational Amplifier)搭配 多个精密
电阻实现的比较电路来实施。例如:多核心处理器系统可利用脉宽 调变控制器的工作周期讯号或阻抗组件的比较电路设计来侦测负载电流,并 将侦测结果输出给控制单元130,以实现利用硬件监测手段来达成监测各个 处理核心111,112使用率。
另外,值得一提的是,目前安装在计算机上的操作系统通常会内建有任 务管理器(Task Manager)提供CPU的负载(或称CPU使用率(CPU Utilization))等信息。此外,使用者也可使用自订的应用程序(Application) 藉此来得知CPU负载。因此,在本发明的其它实施例中,多核心处理器系统 100亦可利用一软件监测手段来监测各个处理核心111,112的负载,例如: 利用上述操作系统或应用程序来实时得知各个处理核心111,112使用信息, 以判断这些处理核心111,112的负载,进而对这些处理核心111,112作适 当的效能调整(下详述)。有关对处理核心111,112的效能调整的说明,容 后详述。
再者,本发明一实施例所提供的多核心处理器系统100可以支持多工运 算,安装在多核心处理器系统100的操作系统也能利用效能计数器 (Counter),来追踪每个处理核心所负责的指令运算,藉以侦测多核心处理 器110的多工程度(Multi-Threadedness)。
例如:操作系统的效能计数器可以统计在一段时间内,
计算机程序中的 一连串指令运算所对应的单执行绪以及多执行绪的比例,以作为多工程度。 举例来说,当多工程度越高,表示执行此计算机程序时,多核心处理器110 越仰赖处理核心111,112的多工处理能力(负载集中情形也越少发生);反 之,多工程度越低,表示执行此计算机程序时越直接相关于单一处理核心的 效能(负载集中情形也越常发生)。因此,本实施例所提供的控制单元130能 依据多工程度来调整负载量不同的各处理核心的运作效能,以增加多核心处 理器110的整体处理效率。
图2所示为本发明第一实施例的多核心处理器的效能调整方法流程图。 在步骤S205中,可利用上述的硬件监测手段或软件监测手段来侦测多核心处 理器110的多工程度以及这些处理核心111,112的负载,以获得一侦测结果。
在步骤S210中,根据步骤S205的侦测结果来判断负载(或运算瓶颈) 是否集中在单一处理核心。亦即,控制单元130根据侦测结果来判断第一处 理核心111的负载与第二处理核心112的负载的差值是否大于一预设值。
值得注意的是,在本实施例中,运算瓶颈与负载集中意指相同的状态。 也就是说,对于这些处理核心111,112的其中一个处理核心(例如为处理核 心111)而言,无论是该处理核心(处理核心111)处于单工运算(多工程度 低),或者另一处理核心在等待该处理核心(处理核心111)的运算结果,对 于该处理核心(处理核心111)而言,瞬间的负载是仅集中在该处理核心(处 理核心111)上,亦即运算瓶颈在该处理核心(处理核心111)。
举例来说,若第一处理核心111的负载大于第二处理核心112的负载, 且其负载差值大于预设值,则控制单元130判断出负载集中在第一处理核心 111;此时则继续执行步骤S215,S220。
在步骤S210中,若控制单元130判断负载没有集中在单一处理核心,则 控制单元130不对多核心处理器110进行调整动作,并继续维持多核心处理 器110目前的操作设定(例如一初始设定或其它操作设定),然后继续执行步 骤S205。
在步骤S215中,根据多核心处理器110的多工程度来调整低负载处理核 心的内部倍频或电源状态。控制单元130可改变低使用率处理核心的电源状 态(下文详述)或是降低低使用率处理核心的内部倍频,以降低多核心处理 器110的功耗。在步骤S220中,根据多核心处理器110的多工程度来调整高 负载处理核心的内部倍频。控制单元130可藉由内建的查询表来调整处理核 心的操作设定,以使各处理核心达到所需的内部倍频或电源状态。查询表例 如包含如下表二所示的相关数据。
表二
多工程度 低负载处理核心 的电源状态 低负载处理核心 的内部倍频 高负载处理核心 的内部倍频 高于30% C0 R R 20~30% C1 R-2 R+1 10~20% C2 R-4 R+2 低于10% C3 R-6 R+3
其中,各处理核心的内部倍频可在如1.5到20之间的数值切换(视所使 用的处理器)。R表示初始设定下所使用的内部倍频(如12),而R+1表示大 于R的上一阶内部倍频(如13),R-1表示小于R的下一阶内部倍频(如11, R-2则为10),其余依此类推。
此外,C0~C3表示各个处理核心(Processing Core)的电源状态(Power State),其中C0意指处理核心的电源状态为正常模式(C0-Active),C1意 指处理核心的电源状态为暂停模式(C1-Halt),C2意指处理核心的电源状态 为时钟停止模式(C2-Stop Clock),C3意指处理核心的电源状态为深度睡眠 模式(C3-Deep Sleep)。当然,在其它实施例中,本实施例所提供的处理核 心111,112的电源状态亦可切换至超深睡眠模式(C4-Deeper Sleep)。
甚者,控制单元130更可通过增强型速度调节技术(Enhanced Intel Speed-Step Technology,EIST)来调整处理核心111,112运算速度,以大 幅降低供电给处于低负载的处理核心111,112,藉此改善系统高热及高耗电 问题。
承上所述,若控制单元130判断出第一处理核心111为高负载,第二处 理核心112相对的为低负载,且在步骤S205中得知多核心处理器110的多工 程度为15%时,控制单元130便可将第二处理核心112的内部倍频由R(以 步骤S205中这些处理核心111,112处于多工程度高于30%的初始设定为例) 降低至R-4,或者将其电源状态由C0切换至C2(步骤S215),然后将第一处 理核心111的内部倍频由R提高至R+2(步骤S220),藉此来增加高负载处理 核心的运算效能以缩短负载集中情形的时间并节省低负载处理核心的无谓功 耗。
若多工程度落于其它范围时,控制单元130同样可根据多工程度来对照 表二进行不同幅度的调整动作,将这些处理核心111,112调整至查询表中多 工程度所对应的操作设定。例如多工程度为25%时,虽然负载集中于单一处 理核心,但相较多工程度为15%的情形,因多工程度较高,表示负载集中情 形的持续时间可能较短,所以对高负载及低负载处理核心的内部倍频或电源 状态的调整幅度可较小,使多核心处理器110长时间下的平均处理效率较佳。 反之,例如多工程度为9%时,对高负载及低负载处理核心的内部倍频或电 源状态的调整幅度便较多工程度为15%的情形来得更大。
在步骤S225中,继续侦测多核心处理器110的多工程度以及这些处理核 心111,112的负载,并将侦测结果输出至控制单元130,使得控制单元130 可以判断运算瓶颈是否已解决(步骤S230)。若运算瓶颈未解决,则继续执 行步骤S225。若运算瓶颈已解决,则执行步骤S235,藉由控制单元130的控 制来恢复初始设定,继而继续执行步骤S205。
在其它实施例中,若运算瓶颈未解决,控制单元130亦可判断处理核心 之间的负载差值是否有较调整前减少;若是,则可维持对于这些处理核心111, 112的第一次调整后的操作设定,并同样继续执行步骤S225。或者,对于若 处理核心之间的负载差值是仍大于预设值的情形,则继续执行步骤S215, S220来再次调整这些处理核心111,112的操作设定。
图3所示为依照本发明第二实施例的多核心处理器的效能调整方法流程 图。首先,在步骤S303中,设定多核心处理器处于一初始操作设定。在第二 实施例中,控制单元130可内建例如包含如下表三所示的相关数据的查询表。 其中,各符号同前述表二中的定义,在此遂不赘述。初始操作设定例如为第 1操作设定,多核心处理器110内的所有处理核心都设定在原始的内部倍频 (R)与正常运作的电源状态(C0)。
表三
操作设定 低负载处理核心 的电源状态 低负载处理核心 的内部倍频 高负载处理核心 的内部倍频 第1操作设定 C0 R R 第2操作设定 C1 R-2 R+1 第3操作设定 C2 R-4 R+2 第4操作设定 C3 R-6 R+3
与图2不同之处在于,第二实施例采取了不同方式来进行处理核心的调 整动作。如图3所示,若在步骤S310中判断出负载集中于单一处理核心,则 继续执行步骤S315来判断多核心处理器110其多工程度的大小范围。例如: 当判断出多工程度高于一第一预设值(如30%)时,则执行步骤S320;当判 断出多工程度低于一第二预设值(如10%)时,则执行步骤S330;而当判断 出多工程度介于第一及第二预设值之间时,则维持目前操作设定,并回到步 骤S305。
在执行步骤305时,多核心处理器110可能处于第1操作设定(由步骤 S303而来)或经步骤S321,S322,S331,S332调整后处于其它操作设定。 若采用第一实施例的方式,控制单元130是仅根据包含表二的查询表来直接 将各处理核心调整至多工程度所对应的操作设定。但在第二实施例中,对于 相同的多工程度,会因多核心处理器110在侦测时所处的操作设定不同而有 不同的调整动作。
例如:侦测出多工程度为9%时,在第一实施例的步骤S215中将直接把 低负载处理核心的内部倍频调整至R-6或将电源状态调整至C3,并将高负载 处理核心的内部倍频调整至R+3(请参阅表二),不论多核心处理器110侦测 时所处的操作设定。但在第二实施例中,当多工程度低于10%时,会先执行 步骤S330来判断多核心处理器目前的操作设定是否为第4操作设定。若为第 1至第3操作设定则进入步骤S331。
以执行步骤S305的侦测动作时多核心处理器110为第1操作设定为例, 由步骤S330进入步骤S331后,将把低负载处理核心的内部倍频从R降低至 R-2(而非直接调整至R-6),或将其电源状态从C0调降至C1(而非C3)。类 似地,接着在步骤S332中,将把高负载处理核心的内部倍频从R提高至R+1 (而非R+3)。换言之,控制单元130将这些处理核心111,112从表三中的 第i(1)操作设定调整至第i+1(2)操作设定,然后继续程序执行,并继续执行 步骤S305,S310。
多核心处理器110以第i+1操作设定运作下,若经步骤S305,S310,S315 判断出仍有负载集中情形,且多工程度仍低于10%时,因操作设定尚未调至 第4操作设定,故执行步骤S331,S332以将处理核心111,112从第i+1操 作设定再提高至第i+2操作设定。反之,若经步骤S305,S310,S315判断出 仍有负载集中情形,且多工程度例如为35%时,因操作设定尚未调至第1操 作设定,故由步骤S320进入步骤S321,S322以将处理核心111,112从第 i+1操作设定调降至第i操作设定。其中,执行步骤S320与S330的判断动 作,其目的是为了确保多核心处理器110会在控制单元130所支持的数种操 作设定下运作。以表三为例,多核心处理器110将会在第1操作设定至第4 操作设定间运作。
另一方面,若经步骤S305,S310,S315判断出仍有负载集中情形,但多 工程度介于第一与第二预设值之间(如10~30%)时,则维持目前的操作设 定,然后直接返回步骤S305。也就是说,依照多工程度的大小范围来将处理 核心111,112从侦测时的操作设定趋近或趋离第1操作设定作渐次调整,或 也可能维持目前的操作设定。主要因为多工程度可能会有频繁的小幅度变动, 或会有短时间内的急遽升降;此时,若直接对应多工程度来改变各处理核心 的内部倍频或电源状态,处理核心可能会在两操作设定间频繁切换,或需以 较长的切换时间切换至差异甚大的另一操作设定,而影响多核心处理器110 在长时间下的整体平均效能。因此,可以第二实施例的调整方式来渐次调整 操作设定,或于第一及第二预设值之间的弹性范围内维持目前的操作设定来 控制各处理核心。
当然,调整这些处理核心111,112的运作效能时亦能对工作频率(外频) 进行调整动作。一般来说,处理核心111,112的外频可为50、60、66.6、 75、83.3、95、100、112、124、133、...、333MHz等等。也就是说,控制单 元130也能以类似表二及表三中内部倍频的调整方式来改变各处理核心的外 频。此外,控制单元130也能控制电源供应电路120分别供给这些处理核心 111,112的电源大小,以因应其主频的变动。
综上所述,本发明实施例可以利用硬件监测手段或软件监测手段来侦测 多核心处理器110的多工程度以及其处理核心111,112的负载。藉此,控制 单元130可依据多工程度对负载量不同的处理核心作适当的效能调整,以增 加多核心处理器110的整体效能且兼顾省电需求。
本发明上述实施例所揭露的多核心处理器的效能调整方法,是能够依照 多核心处理器的多工程度来调整各处理核心的操作设定,以使多核心处理器 的整体效能达到最佳化而缩短运算瓶颈的时间。
综上所述,虽然本发明已以较佳实施例揭露如上,然其并非用以限定本 发明。任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围 内,当可作各种的更动与润饰。因此,本发明的保护范围当视
权利要求书所 界定者为准。