处理工作负载的方法及其多处理器系统与流程

文档序号:11276124阅读:192来源:国知局
处理工作负载的方法及其多处理器系统与流程

交叉引用

本发明要求如下优先权:编号为62/308,996,申请日为2016年3月16日的美国临时专利申请;编号为62/366,650,申请日为2016年7月26日的美国临时专利申请。上述美国临时专利申请在此一并作为参考。

本发明涉及一种处理工作负载的方法及其多处理器系统。特别地,本发明涉及一种具有不同性能及功耗特性的处理器的多处理器系统以及处理其中工作负载(workload)的方法。



背景技术:

许多现代多处理器系统包含多种类型的处理器,例如,“大”(b型)及“小”(l型)多处理器系统。相对来说,l型处理器具有节电与低性能特征,而b型处理器具有耗电与高性能特征。典型地,b型与l型处理器具有相同指令集结构(instructionsetarchitecture,isa),从而可在上述两种处理器类型中执行相同指令集。该系统的一个优点是系统工作负载的性能需求与处理器的处理能力相匹配,从而优化系统的功率效率。

例如,在业界广泛采用big.littletm处理系统,用于在功耗优化情况下提供高性能。big.little处理系统包含b型处理器与l型处理器,两种处理器运行相同的isa。然而,b型处理器与l型处理器在以下结构方面具有不同的硬件设计:解码带宽、管道深度(pipelinedepth)、执行顺序(按序与非按序)、分支预测(branchprediction)等。

许多big.little处理系统允许b型处理器与l型处理器在不同频率上同时运行。为了在不同频率上启用处理器(其连接存储器),需要在每个处理器与互联模块(连接至存储器)之间增加异步桥(asynchronousbridge)(例如,adb-400)。异步桥的增加导致附加的硬件成本以及系统延迟。

另一方面,对于所有处理器类型使用相同频率的情况,同时运行系统可让步于不同处理器类型的性能。因此,亟需改善多处理器系统的功耗与性能管理,其中,上述多处理器系统包含不同类型或不同特性的处理器。



技术实现要素:

有鉴于此,本发明揭露一种处理工作负载的方法及其多处理器系统。

根据本发明实施例,提供一种处理工作负载的多处理器系统,包含:第一处理器集合,包含第一组标准单元,并且工作在第一频率范围中;第二处理器集合,包含第二组标准单元,并且工作在第二频率范围中,其中,该第一处理器集合与该第二处理器集合具有相同寄存器转换级电路描述,该第一组标准单元中的单元具有该第二组标准单元中不同特性的对应单元,并且该第一频率范围包含高于该第二频率范围中最大频率的一个或多个频率;以及时钟生成器,为该第一处理器集合与该第二处理器集合提供相同频率。

根据本发明另一实施例,提供一种处理工作负载的方法,应用于多处理器系统,该方法包含:确定该工作负载中的线程数量;以及基于该线程数量以及该工作负载是否超出阈值,启用第一处理器集合与第二处理器集合中的一个或多个处理器,使其按照相同频率处理该工作负载,其中,该第一处理器集合包含第一组标准单元,并且工作在第一频率范围中;该第二处理器集合包含第二组标准单元,并且工作在第二频率范围中,其中,该第一处理器集合与该第二处理器集合具有相同寄存器转换级电路描述,该第一组标准单元中的单元具有该第二组标准单元中不同特性的对应单元,并且该第一频率范围包含高于该第二频率范围中最大频率的一个或多个频率。

本发明提供的处理工作负载的方法及其多处理器系统可改善系统性能。

附图说明

图1是根据本发明实施例描述的系统示意图;

图2是根据本发明实施例描述的procb与procl的各自工作频率范围示意图;

图3是根据本发明实施例描述的生成procb与procl的设计进程示意图;

图4是根据本发明实施例描述的包含dvfs管理器的系统示意图;

图5是根据本发明实施例描述的线程调度器执行的方法流程图;

图6是根据本发明实施例描述的多处理器系统处理工作负载的方法流程图。

具体实施方式

在说明书及权利要求书当中使用了某些词汇来指称特定的元件。所属技术领域的技术人员应可理解,硬件制造商可能会用不同的名词来称呼同一个元件。本说明书及权利要求书并不以名称的差异作为区分元件的方式,而是以元件在功能上的差异作为区分的准则。在通篇说明书及权利要求项中所提及的“包含”为一开放式的用语,故应解释成“包含但不限定于”。此外,“耦接”一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或通过其它装置或连接手段间接地电气连接至第二装置。

接下来的描述是实现本发明的最佳实施例,其是为了描述本发明原理的目的,并非对本发明的限制。可以理解地是,本发明实施例可由软件、硬件、固件或其任意组合来实现。

本发明实施例提供在高性能并兼顾功率效率情况下处理工作负载的多处理器系统及其方法。多处理器系统包含具有不同功耗及性能的处理器。值得注意的是,本发明所用的术语“多处理器系统”是包含多个处理器的系统,并且每个处理器可包含一个或多个核心。在实施例中,每个处理器可相当于中央处理单元(cpu)。替换地,一个或多个处理器可为特定功能处理器。可作为一个或多个集群安排并管理上述多处理器。

图1是根据本发明实施例描述的系统100的示意图。系统100是多处理器系统;具体地,多处理器系统包含具有不同功耗及性能的处理器。本发明中简化对系统100的描述。可以理解的是,为了简化描述,系统100可包含多个在图1中已省略的元件。

在图1的实施例中,系统100包含多个处理器,例如,一个或多个处理器(简称为procb)110以及一个或多个处理器(简称为procl)120。每个procb110比每个procl120具有更高性能并且消耗更多电量。因此,procb110可用作“大”处理器,并且procl120可作为“小”处理器。procb110与procl120从一个或多个电源113处接收供电。在示例中,电源113包含稳压器,例如,开关式稳压器(即,降压式变换器),或者包含线性稳压器,例如低压差线性稳压(ldo)电路。在实施例中,procb110与procl120可共享相同电源113并且接收相同电压。替换地,procb110与procl120可从具有不同电压的多个独立电源113接收供电。此外,procb110与procl120中的每一个可根据从时钟生成器112接收的时钟信号,在不同频率下工作。可以理解的是,系统100可包含任意数量的procb110与procl120。

系统100也可包含探听控制单元(snoopcontrolunit)130或者其他元件以管理在处理器110、120以及存储器140(例如,动态随机存取存储器或者其他易失性或非易失性存储器)中高速缓存之间的高速缓存一致性(coherency)。系统100也可包含多个i/o单元160,例如,显示器、键盘、触控屏幕、触控面板、扬声器、麦克风等。上述i/o单元160的部分或全部可存取存储器140。

图2是根据本发明实施例描述的procb110与procl120的各自工作频率范围示意图。术语“工作频率”涉及处理器工作的频率。在本实施例中,配置每个procb110工作在第一频率范围,并且配置每个procl120工作在第二频率范围。第一频率范围与第二频率范围彼此重叠,这意味着在不使用异步桥(例如,adb-400)与探听控制单元130以及存储器140进行通信情况下,procb110与procl120可同时工作在相同频率。在图2的实施例中,第一频率范围包含整个第二频率范围;此外,第一频率范围包含高于第二频率范围最大频率的一个或多个频率。因此,procb110的工作频率可大于第二频率范围的最大频率。对于最小频率,第一频率范围与第二频率范围的最小频率可相同(例如,0ghz或另一频率)或者不同。

在实施例中,procb110具有默认工作频率freqb,并且procl120具有默认工作频率freql,其中freqb>freql。例如,freqb等于2.0ghz并且freql等于1.5ghz。procb110可使用大于freqb的部分第一频率范围中频率(例如,频率fb)运行高性能操作;相似地,procl120可使用大于freql的部分第二频率范围中频率(例如,频率fa)运行高性能操作。本发明将结合图4具体描述高性能操作,其中图4描述了动态电压频率调整(dynamicvoltageandfrequencyscaling,dvfs)。

如前所示,procb110具有比procl120更高的处理能力,但消耗更多电量。虽然procb110与procl120皆包含在多处理器系统中以执行具有不同性能需求的任务,但是它们不同于上述b型处理器与l型处理器。在本发明中,procb110与procl120是相同类型处理器。这是因为procb110与procl120不仅实施相同isa,而且具有相同硬件结构;具体地,根据相同的寄存器转换级电路(register-transferlevel,rtl),生成procb110与procl120。procb110与procl120之间的主要不同在于用于实施相同rtl设计的不同标准单元库。此外,在procb110与procl120之间,标准单元的布局布线(placingandrouting)是不同的。

图3是根据本发明实施例描述的生成procb110与procl120的设计进程300的示意图。设计进程300解释了procb110与procl120之间的不同。从rtl级描述(rtldescription)310开始,合成器(synthesizer)320使用第一标准单元库321合成rtl描述310以生成第一网表(netlist)331。合成器320进一步使用第二标准单元库322合成rtl描述310以生成第二网表332。第一网表331与第二网表332分别描述procb110与procl120中电路的连接。布局布线工具集合340处理第一网表331,其从第一标准单元库321中布局标准单元,并且在标准单元之间布线以形成procb110的设计规格351。相似地,布局布线工具集合340处理第二网表332,其从第二标准单元库322中布局标准单元,并且在标准单元之间布线以形成procl120的设计规格352。在集成电路制程中,根据设计规格351制作procb110,并且根据设计规格352制作procl120。

在实施例中,第一标准单元库321与第二标准单元库322提供具有相同功能但不同特征的两组标准单元,其中上述不同特征是按照相对于工作频率的动态功耗来区分的。尤其是,第一标准单元库321中的单元比第二标准单元库322中的单元消耗更多电量并且具有更佳处理能力。因此,虽然procb110与procl120具有相同功能以及相同rtl级硬件结构,但procb110与procl120的性能与功耗彼此不同。

图4是根据本发明实施例描述的包含dvfs管理器410的系统100的示意图。dvfs管理器410基于性能需求(例如,工作负载)确定procb110与procl120的工作频率与电压水平。当系统100的性能需求增大(例如,工作负载增大)时,dvfs管理器410增大系统100中启用处理器的工作频率。相反地,当系统100的性能需求减小(例如,工作负载减小)时,dvfs管理器410减小系统100中启用处理器的工作频率。如本发明所述,当给处理器供电(即,开启)时,启用处理器。在替换实施例中,当给处理器供电时启用处理器,并且处理器处于准备接收所派任务的状态。在实施例中,dvfs管理器410可向时钟生成器112发信号以调整处理器的工作频率。参考图2,如果启用处理器包含至少一个procl120,则dvfs管理器410可在第二频率范围内调整处理器的工作频率。如果启用处理器仅包含一个或多个procb110,而不包含procl120,则dvfs管理器410可在第一频率范围内调整处理器的工作频率。

值得注意的是,procb110与procl120可工作在相同频率。参考图2,在启用procb110与procl120的场景中,procb110需要工作在第二工作范围,即,低于默认频率freqb的频率。即使当dvfs管理器410按比例增大procl120的频率时,上述情况也可能发生。尤其是,如果启用procb110与procl120,并且dvfs管理器410将procl120的频率增大至fa,则procb110也将工作在频率fa,其中,频率fa低于其默认频率freqb。

再次参考图2,在实施例中,procb110与procl120皆工作在其各自默认频率freqb与freql以及相同的默认电压v1。在仅启用一个或多个procb110的第一场景中,dvfs管理器410将每个procb110的性能增大至工作在频率fb以及电压v2(其中,v2>v1)。在启用至少一个procl120的第二场景中,dvfs管理器410可将procl120的性能增大至工作在频率fa以及电压v2。如果在第二场景中,启用procb110与procl120并且两者共享相同电源,则两个处理器将接收procl120所需的相同高电压。即,即使较低电压v1可以满足procb110工作在频率fa,但procb110与procl120两者将工作在频率fa与电压v2,。然而,如果在第二场景中procb110与procl120使用独立电源,则procb110可工作在频率fa与电压v1以节省电量,与此同时,procl120工作在频率fa与电压v2。

此外,系统100可包含线程调度器(threadscheduler)420,以为每个处理器安排任务线程。线程调度器420可根据工作负载数量以及工作负载中线程数量,确定启用哪个或哪些处理器。本发明结合图5详细描述线程调度器420的操作。

在实施例中,dvfs管理器410与线程调度器420的每一个皆可为处理器110与120执行的核心进程。替换地,可使用硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件及/或固件的结合实施dvfs管理器410及/或线程调度器420。

图5是根据本发明实施例描述的线程调度器420执行的方法500的流程图。在本实施例中,线程调度器420位于包含一个procb110与多个procl120的系统100中。方法500开始于启用线程调度(步骤510),线程调度器420确定系统中线程数量是否是一个(步骤520),例如,单线程。如果仅有单线程,则线程调度器420进一步确定工作负载是否大于阈值(th)(步骤530)。如果工作负载大于th(即,繁重工作量),则接着系统100启用procb110,并且线程调度器420将上述线程分配至具有工作频率freqb的procb110(步骤540)。结合图2,freqb是procb110的默认工作频率。如果工作负载不大于th(即,轻工作负载),则接着系统100启用procl120,并且线程调度器420将上述线程分配至具有工作频率freql的procl120(步骤550)。结合图2,freql是procl120的默认工作频率。

如果在步骤520,确定存在多个线程,在步骤560,比较系统中线程数量与procl120的数量。如果线程数量不大于procl120数量,则系统100启用一个或多个procl120处理工作负载。例如,系统100启用与线程数量相同的多个procl120,并且线程调度器420将每个线程分配至工作在频率freql的procl120(步骤550)。如果线程数量大于procl120数量,则接着系统100启用所有处理器procl120以及上述一个处理器procb110,并且线程调度器420可将线程分配至一个procb110与所有procl120,其中所有处理器工作在频率freql(步骤570)。

在替换实施例中,系统可包含多个procb110以及多个procl120,其中,procb110的数量标为num_procb并且procl120的数量标为num_procl。如果系统100中存在多个线程,并且线程数量num_thread≤num_procb以及num_thread≤num_procl,则如果工作负载较大(例如,工作负载>th),线程调度器420将每个线程分配至工作在频率freqb的procb110;或者如果工作负载较小(例如,工作负载≤th),线程调度器420将每个线程分配至工作在频率freql的procl120。然而,如果num_thread>num_procb并且num_thread>num_procl,则线程调度器420将线程分配至procb110与procl120两者,其中,所有处理器工作在频率freql。

值得注意的是,可将方法500应用于执行dvfs的场景。因此,在图5,可使用第一频率范围中的任意频率(例如,图2中的fb)替换默认频率freqb,并且可使用第二频率范围中的任意频率(例如,图2中的fa)替换默认频率freql。

图6是根据本发明实施例描述的多处理器系统处理工作负载的方法600的流程图。多处理器系统(例如,图1的系统100)可执行方法600。方法600开始于系统100确定工作负载中线程数量(步骤610)。基于线程数量以及工作负载是否超过阈值,系统100启动第一处理器集合与第二处理器集合中的一个或多个处理器,使其在相同频率下处理工作负载(步骤620)。第一处理器集合包含第一组标准单元,并且使其工作在第一频率范围;第二处理器集合包含第二组标准单元,并且使其工作在第二频率范围。第一处理器集合与第二处理器集合具有相同rtl描述。第一组标准单元中的单元具有与第二组标准单元中不同特性的相应单元。此外,第一频率范围包含高于第二频率范围最大频率的一个或多个频率。

在替换实施例中,硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如,运行在处理装置的指令)、固件或其结合可执行方法500与600。

图5与6的流程图操作可参考图1与图4进行描述。然而,可以理解的是,相比于图1与图4的实施例,本发明其他实施例可执行图5与图6的流程图操作,并且图1与图4可执行不同于图5与图6的流程图操作。根据本发明特定实施例,图5与图6的流程图显示了执行操作的特定顺序,但可以理解的是,上述顺序仅为示例,替换实施例可按照不同顺序执行上述操作,并且可合并特定操作、省略特定操作等。

呈现上述描述以允许本领域技术人员根据特定应用以及其需要的内容实施本发明。所述实施例的各种修改对于本领域技术人员来说是显而易见的,并且可将上述定义的基本原则应用于其他实施例。因此,本发明不局限于所述的特定实施例,而是符合与揭露的原则及新颖特征相一致的最宽范围。在上述细节描述中,为了提供对本发明的彻底理解,描述了各种特定细节。然而,本领域技术人员可以理解本发明是可实施的。

上述的本发明实施例可在各种硬件、软件编码或两者组合中进行实施。可将软件代码或固件代码发展为不同的程序语言与不同的格式或形式。也可为了不同的目标平台编译软件代码。然而,根据本发明执行任务的软件代码与其他类型配置代码的不同代码样式、类型与语言不脱离本发明的精神与范围。

在不脱离本发明精神或本质特征的情况下,可以其他特定形式实施本发明。描述示例被认为说明的所有方面并且无限制。因此,本发明的范围由权利要求书指示,而非前面描述。所有在权利要求等同的方法与范围中的变化皆属于本发明的涵盖范围。

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