具有基于石墨烯的晶体管的异构多核处理器的制造方法

文档序号:10475889阅读:571来源:国知局
具有基于石墨烯的晶体管的异构多核处理器的制造方法
【专利摘要】本发明描述的技术一般地关于使用包括含石墨烯的计算元件的处理器同时最小化或者减小与石墨烯计算元件相关联的高泄漏能量的影响的方法和系统。而且,本公开的实施例提供了用于调度由包括设置在多个处理器组中的含石墨烯的计算元件的芯片多处理器处理的指令的系统和方法。
【专利说明】
具有基于石墨烯的晶体管的异构多核处理器
【背景技术】
[0001]除非本文中另外指出,本文中所描述的材料不是本申请中权利要求的现有技术并且并不能因包含在本部分中而承认是现有技术。
[0002]依据摩尔定律,能够实际包含在集成电路中的晶体管数量大约每两年翻一番。这一趋势已经持续了超过半个世纪,并且预计会持续直到至少2015年或2020年。然而,简单地将更多的晶体管添加至单线程处理器不再得到显著更快的处理器。反而,提升的系统性能已经通过将多个处理器核集成在单个芯片上以生成芯片多处理器、以及通过在芯片多处理器的多个处理器核之间共享进程而获得。系统性能和功率使用率能够利用具有配置用于多个指令集或者用于处理指令集的不同子集的核元件的芯片多处理器而进一步增强。
[0003]挺述
[0004]根据本公开的至少一些实施例,一种芯片多处理器包括,布置在管芯上且包括含石墨烯的计算元件的一个或多个高速处理器核。该高速处理器核被配置为,在管芯上与一个或多个高速处理器核相比包括更低百分比的含石墨烯的计算元件的所有其它处理器核配置为被门控时,该高速处理器核操作。该芯片多处理器进一步包括布置在管芯上且与一个或多个高速处理器核相比包括更低百分比的含石墨烯的计算元件的、一个或多个另外的处理器核。
[0005]根据本公开的至少一些实施例,一种调度通过芯片多处理器处理的指令的方法,所述芯片多处理器包括设置在多个处理器组中的含石墨烯的计算元件,所述方法包括:确定多个处理器组中的一组或多组运行来自应用的第一指令块的时间成本、能量成本以及热成本中的至少一个;以及确定多个处理器组中的一组或多组运行来自应用的第二指令块的时间成本、能量成本以及热成本中的至少一个。该方法可以进一步包括确定与应用的运行从多个处理器组中的任一组向多个处理器组中的任意其它组转换相关联的环境转换(context)成本,该环境转换发生在第一指令块由多个处理器组中的第一组运行之后且在第二指令块由多个处理器组中的第二组运行之前;以及,基于所确定的时间成本、能量成本以及热成本中的至少一个和基于所确定的环境转换成本,选择多个处理器组中的一组运行第一指令块,并选择多个处理器组中的一组运行第二指令块。
[0006]根据本公开的至少一些实施例,一种调度通过芯片多处理器处理的指令的方法,所述芯片多处理器包括设置在多个处理器组中的含石墨烯的计算元件,所述方法包括:确定每一组多个处理器组运行来自应用的第一指令块的时间成本、能量成本以及热成本中的至少一个;以及,基于所确定的时间成本、能量成本以及热成本中的至少一个,选择多个处理器组中的第一组运行第一指令组。该方法可以进一步包括确定每一组多个处理器组运行来自应用的第二指令块的时间成本、能量成本以及热成本中的至少一个;以及,基于所确定的时间成本、能量成本以及热成本中的至少一个,选择多个处理器组中的第二组运行第二指令组,第二组多个处理器组的选择在第一组多个处理器组已经开始运行第一指令块之后执行。
[0007]前面的概述仅仅是示例性的,而不意在以任何方式进行限制。通过参考附图以及下面的详细说明,除了上文所描述的示例性方案、实施例和特征之外,另外的方案、实施例和特征将变得明显。
【附图说明】
[0008]通过下面结合附图给出的详细说明和随附的权利要求,本公开的前述特征以及其它特征将变得更加明显。这些附图仅描绘了依照本公开的多个实施例,因此,不应视为对保护范围的限制。本公开将通过利用附图结合附加的具体描述和细节进行说明。
[0009]图1是关于在由三个不同配置的芯片多处理器执行时特定计算机程序的相对运行时间的示例的图表,其中三个不同配置的芯片多处理器为:未优化用于并行处理的处理器、优化用于并行处理的芯片多处理器、以及含石墨烯的芯片多处理器;
[0010]图2显示芯片多处理器(CMP)的示例性实施例的框图;
[0011]图3显不CMP的不例性实施例的另一框图;
[0012]图4是示出用于在CMP中的各组处理器核之间分配软件应用运行的示例性动态程序控制处理的图表;
[0013]图5是用于调度通过具有多组处理器核的CMP处理的指令的示例性方法的流程图;
[0014]图6是概括用于调度通过包括含石墨烯的计算元件的CMP处理的指令的示例性方法的另一流程图;以及
[0015]图7是一种执行用于调度通过包括含石墨烯的计算元件的CMP所处理指令的方法的计算机程序产品的示意性实施例的框图;以及
[0016]图8是示出设置用于在CMP中管理可编程逻辑电路的示例性计算设备的框图,所有可编程程序逻辑电路根据本文中所描述的至少一些实施例被布置。
【具体实施方式】
[0017]在下面的详细说明中,将参考附图进行说明,附图构成了详细说明的一部分。在附图中,除非上下文指出,否则相似的符号通常表示相似的部件。在详细说明、附图和权利要求中所描述的示例性实施例不意在限制。在不偏离本文呈现的主题的精神或范围的条件下,可以使用其它实施例,并且可以做出其它改变。将易于理解的是,如本文大致描述且如图中所图示的,本公开的方案能够以宽范围的不同配置来布置、替代、组合和设计,所有这些都在本文中明确地构思出,并且构成了本公开的一部分。
[0018]本公开一般地尤其涉及与芯片多处理器相关的方法、装置、系统、设备和/或计算机程序产品。
[0019]简言之,本文描述的技术大致包括与包括含石墨烯的计算元件的处理器的使用相关的方法和系统,同时最小化或者以另外减轻与石墨烯计算元件相关联的高泄漏能量的影响。而且,本公开的实施例提供用于调度通过包括设置在多处理器组中的含石墨烯的计算元件的芯片多处理器处理的指令的系统和方法。
[0020]存在朝向包括相对大数量处理器核的大规模芯片多处理器的趋势,可以预期在不久的将来核计数会高达数百或数千。这种处理器能够极大地减少用于具有高并行性级的应用的处理时间,例如多个计算能够同时运行或者彼此并行运行的应用。然而,大多数应用一般是“顺序的”(例如,不适于并行处理),或者大部分是实质上顺序的。有限的加速在通过使用芯片多处理器运行这种顺序应用中是可行的,而不管能够由其支持的并行处理的数量。例如,如果一个应用的50%是顺序的,即使其余代码的运行时间被简化至单个时钟周期,高于2倍因子的加速也是不可能的。这一效果在图1中示出。
[0021]图1是示出关于在由三个不同配置的芯片多处理器执行时特定计算机程序的相对运行时间的示例的图表,三个不同配置的芯片多处理器为:未优化用于并行处理的处理器、优化用于并行处理的芯片多处理器、以及含石墨烯的芯片多处理器。运行方案110描述了在使用未优化用于并行处理的处理器时计算机程序关于时间的运行,运行方案120描述了在使用优化用于并行处理的芯片多处理器时计算机程序关于时间的运行,并且运行方案130描述了在使用一个实施例的含石墨烯的芯片多处理器时计算机程序关于时间的运行。
[0022]为了说明性的目的,计算机程序包括单个顺序处理区段101和单个并行处理区段102,虽然一般计算机程序能够包括多个这两种区段。顺序处理区段101中的指令能够被顺序执行。例如,顺序处理区段101可以包括高密度条件句,由此使得顺序处理区段101中的计算机程序的并行处理不适用或者不可实行。相反,并行处理区段102中的指令能够被并行执行,但对计算机程序的执行没有显著的不利影响,反而可以改善计算机程序的运行。
[0023]运行方案110示出了,当计算机程序由未优化处理器运行时,总运行时间IlOA在该示例中可以为100秒:50秒的时间1lA用于运行顺序时间区段101以及50秒用于运行并行处理区段102。如图所示,顺序处理区段101可以利用单个计算线程115顺序执行。并行处理区段102也可以利用单个计算线程116顺序执行,因为计算机程序是通过未优化用于并行处理的处理器运行的,无法执行并行处理。
[0024]运行方案120示出了,当计算机程序由优化用于并行处理的芯片多处理器运行时,运行时间120A小于运行方案110的总运行时间110A(例如,100秒),但大于运行顺序处理区段101的时间101A(例如,50秒)。例如,假定优化用于并行处理的芯片多处理器包括五个核,每个核配置为运行并行计算线程126中的一个,运行方案120的运行时间为60秒:50秒用于通过计算线程115运行顺序时间区段101,10秒用于通过并行计算线程运行并行处理区段102。显然,在该特定示例中,通过使用优化用于并行处理的芯片多处理器,总运行时间120A没有减少到低于运行时间101A,即使能够使用不限制数量的计算线程126。
[0025]运行方案130示出了,当计算机程序由在一个实施例中可使用的含石墨烯的芯片多处理器运行时,运行时间130A能够显著少于运行方案110的总运行时间I1A或者运行方案120的总运行时间120A。而且,根据本公开的实施例,运行时间130A能够显著小于在运行方案110和120中用于运行顺序处理区段101的时间101A。这是因为多处理器的含石墨烯的处理器核可以配置为大大减少完成顺序处理区段101运行的时间。在本公开的一些实施例中,含石墨烯的处理器核可以配置为,比包括较少(或者不包括)含石墨烯的处理器核快大约10至100倍地执行顺序处理区段101。以下描述根据本公开的一个或多个实施例配置的含石墨烯的处理器核的各种示例。由此,即使当使用与在运行方案120中使用的相同数量的并行计算线程126、并行处理区段102由含石墨烯的处理器核运行时,运行时间130A能够显著少于运行方案120的总运行时间120A。例如,当运行顺序处理区段101的时间1lA构成总运行时间120A的大部分时,运行时间130A的持续时间可以是总运行时间120A的小部分,例如十分之一或更小,由此提供10倍或更高的性能改善。
[0026]根据本公开的实施例,除了利用非石墨烯的硅晶体管以及其它非石墨烯的计算元件的一个或多个其它处理器核之外,芯片多处理器包括利用至少一些石墨烯计算元件(例如晶体管)的一个或多个含石墨烯处理器核。石墨烯晶体管可以是晶体管的通道使用石墨烯形成的硅晶体管。石墨烯是碳的同素异形体,其结构可以是在蜂巢晶格中密集封装的二维单片SP2-结合的碳原子。通常,所有其它组件能够与互补金属氧化物半导体(CMOS)晶体管的组件大致相同。因此,石墨烯和CMOS晶体管在单个处理器中的集成可以相对简单和便宜。石墨烯晶体管具有多个期望的性质,包括与硅晶体管的兼容性、高迀移率(与其它晶体管相比高至少10倍)、以及另外的特征尺寸可扩展性。因此,石墨烯晶体管能够容易地制造,其以比其它晶体管高得多的速度操作,例如,在太赫兹频域中。由此,含石墨烯的处理器的使用能够大大降低高度顺序软件应用的运行时间,如图1中所示。此外,石墨烯晶体管可以具有比硅晶体管显著低的开关能量,使得它们适于在能量消耗可能成为问题的移动设备或者其它情况中使用。
[0027]然而,石墨烯晶体管可以具有比硅晶体管显著高的泄漏量,例如在大约100,000-5,000,000倍量级的能量泄漏量。而且,能量泄漏量可以随着晶体管中的温度按指数规律增加,并且由此保持石墨烯晶体管的低操作温度可以是有用的。根据本公开的实施例,当运行具有高度指令级并行性的应用时,包括在含石墨烯芯片多处理器中的一个或多个含石墨烯处理器核通常被门控或者以其它方式被禁用或置于简化操作模式,其中软件应用的指令级并行性的程度可以大致被认为是能够在单个时钟周期中运行的操作数量。一个或多个含石墨烯的处理器核可以在应用的运行将得益于大致顺序运行时而使用。通过这一方式,对于顺序运行,与含石墨烯的处理器核相关联的热量和泄漏能量可以最小化,同时操作性能能够大大提尚。
[0028]图2显示根据本公开的至少一些实施例设置的芯片多处理器(CMP)200的示例实施例的框图。CMP200可以是由单个集成电路管芯209形成的多核处理器,并且能够被配置为,使用形成在管芯上的多个处理器核执行并行处理任务(例如,处理多个线程)。例如,CMP200可以包括一个含石墨烯的处理器核201以及两个或多个其它处理器核202,其中其它处理器核202不包括含石墨烯的计算元件或者与含石墨烯的处理器核201相比包括相对较少的含石墨烯的计算元件。在图2所示的实施例中,CMP200包括单个含石墨烯处理器核201以及八个其它处理器核202,然而含石墨烯处理器核201和其它处理器核202的其它组合可以形成在集成电路管芯209上。如图所示,CMP200可以物理地和/或可操作地耦接至任务管理器220、系统时钟230以及在一些实施例中耦接至操作系统(0S)260。为了清楚起见,可以存在于集成电路管芯209上的、包括在CMP200中的额外共享资源(例如LI和L2高速缓存、I/O端口、总线接□等等)可以从图2中省略。
[0029]含石墨烯的处理器核201可以是包括由石墨烯形成的计算元件的任意技术上可行的处理器或处理器核。其中,这些计算元件可以包括含石墨烯的组合元件(例如晶体管)和/或含石墨烯的顺序元件(例如触发器)。例如,含石墨烯的处理器核201可以包括规定百分比的石墨烯门,例如通道可以部分或全部由石墨烯形成的晶体管,并且由此被配置为比其它处理器核202快得多地运行软件指令或其它计算机可读指令。
[0030]在一些实施例中,含石墨烯的处理器核201的大致所有计算元件可以由石墨烯形成。在其它实施例中,含石墨烯处理器核201中的组合元件(例如晶体管)可以由石墨烯形成。在其它实施例中,含石墨稀处理器核201的特定计算元件可以由石墨稀形成,这些计算元件被选择用以改善含石墨烯处理器核201的性能,同时最小化或者以其它方式减少含石墨烯处理器核201的泄漏能量。这种选择的计算元件可以包括组合元件、顺序元件和/或两者的组合。在含石墨烯处理器核201中具有较少的含石墨烯的计算元件可以显著减少其泄漏能量,同时具有较多含石墨烯的计算元件可以提高其性能。由此,在这种实施例中,在操作中最常使用的晶体管和其它计算元件通常可以由石墨烯形成,并且较不频繁使用的计算元件通常可以不由石墨烯形成。对于含石墨烯处理器核201的特定集成电路配置,仿真软件能够在设计处理期间使用,以确定哪个计算元件在统计学上是含石墨烯处理器核201中最多和最少使用的。
[0031 ] 其它处理器核201中的每一个可以是任意技术上可行的处理器或处理器核,其不包括由石墨烯形成的计算元件或者另外相对于含石墨烯处理器核包括较少含石墨烯的计算元件。非石墨烯计算元件可以包括由半导体技术和材料(例如硅、砷化镓等)形成的组合元件和/或顺序元件。因此,其它处理器202中的每一个都能够以与含石墨烯处理器核201相比显著更低的速度操作,但能够与集成电路209的一个或多个其它处理器核202并行使用,而不会引起大量泄漏能量(或者具有减少的泄漏能量)。
[0032]任务管理器250可以是调度模块,其能够被配置为向含石墨烯处理器核201和其它处理器核202分配任务。由此,任务管理器250还可以负载门控(gating)含石墨烯处理器核201和/或一个或多个其它处理器核202,例如,断开向其供应的电能。任务管理器250可以基于由CMP200运行的软件应用中指令级并行性的当前确定的程度以及或者替换地基于其它因素进行这种功率门控。特别地,当在这种软件应用中确定高度指令级并行性(此后称为“并行性”)时,任务管理器220可以被配置为门控含石墨烯处理器核201,并将与软件应用的运行相关联的任务分配至合适数量的其它处理器核202。例如,当CMP200正在运行包括大量并行操作的软件应用的一部分时(例如图1中的并行处理区段102),任务管理器250可以将任务分配至多个其它处理器核202。替换地,当在软件应用中确定极少或没有并行性时,任务管理器250可以将大部分或所有任务导向含石墨烯处理器核201进行运行。例如,在确定没有并行操作的示例中,例如当运行图1中的顺序处理区段101的计算线程115时,所有或大致所有与软件应用相关联的任务可以分配给含石墨烯处理器核201,由此大大提高CMP200的性能。
[0033]在一些实施例中,一个或多个其它处理器核202的集成电路配置(例如晶体管、触发器等的设置)可以与含石墨烯处理器核201的集成电路配置大致相同。在这种实施例中,CMP200的设计和测试能够大大简化。在其它实施例中,所有其它处理器核202可以彼此大致相同。在另外的实施例中,不同组的其它处理器核202可以每组具有共同的集成电路配置,每一组的集成电路配置被选择用于最佳或者以其它方式改善不同应用或不同类别应用的处理。例如,CMP200中一个这种组的其它处理器核202可以包括图形处理单元(GPU)。在这种实施例中,含石墨烯处理器核201可以具有与一个特定组的其它处理器核202的集成电路配置大致相同的集成电路配置,只是含石墨烯的处理器核201在其集成电路配置中包括含石墨稀的计算元件。
[0034]在图2中所示的实施例中,任务管理器250在图2中示出为独立构造。在其它实施例中,任务管理器250的功能可以分布在0S260和CMP200之间,或者可以经由形成在集成电路管芯209上的电路执行。应当注意,在一些实施例中,由于芯片多处理器中的功率门控可以大致不由物理开关执行,可能仍然存在与已经被任务管理器250 “门控”的CMP200中的处理器或处理器核相关联的有限但极少量泄漏能量。
[0035]系统时钟230可以如图2中所示耦接至CMP200,或者作为CMP200的一个或多个组件集成到CMP200中。在一些实施例中,含石墨烯的处理器核201可以以与其它处理器核202相比高得多的频率被时钟控制。换言之,其它处理器核202可以进行几个循环来完成计算,而含石墨烯的处理器核201仅进行系统时钟230的单个时钟周期就可完成计算。在其它实施例中,系统时钟230可以包括多个时钟实体,用于为CMP200的含石墨烯处理器核201和其它处理器核202中的每一个提供合适的时钟信号。由此,在一个实施例中,较高频率的时钟信号可以被提供至含石墨烯处理器核201,较低频率的时钟信号可以被提供至其它处理器核202。在其它处理器核202包括多组处理器或处理器核且每组以不同时钟频率操作的实施例中,合适的时钟信号可以被提供至每一组。
[0036]图3显示根据本公开的至少一些实施例设置的CMP300的示例实施例的框图。CMP300可以是由单个集成电路管芯309形成的多核处理器,并且在配置和操作方面可以与CMP200大致类似,只是CMP300可以包括多组布置在管芯309上的基于石墨烯的处理器核,其中每组处理器核包括被配置为以指定处理器速度操作的处理器。而且,每一组处理器核所具有的与该组相关联的处理器速度,可以与每一组其它处理器组的不同。在图3中所示的实施例中,CMP300包括第一组超快速处理器301、第二组快速处理器302(具有与第一组相比更低的处理速度)、以及第三组最慢速处理器303(其具有与第一和第二组相比更慢的速度)。在其它实施例中,CMP300可以包括多余或少于三组含石墨烯的处理器,其中每一组处理器核被配置为以不同速度操作。
[0037]第一组超快速处理器301、第二组快速处理器302以及第三组最慢速处理器303可以均被配置为,以指定速度运行软件指令或者其它计算机可读指令。在一些实施例中,每组的指定时钟周期期间可以是最快速组含石墨烯处理器的不同整数倍。例如,在一些实施例中,超快速处理器301中的每一个可以由相对高百分比的含石墨烯的计算元件配置,从而使得超快速处理器301中的每一个能够以在CMP300中可得到的最高时钟频率运行指令。在这种实施例中,快速处理器302中的每一个可以由与超快速处理器301相比更低百分比的含石墨烯的计算元件配置,从而使得快速处理器302中的每一个能够通过使用指定时钟周期期间而运行指令,该指定时钟周期期间是超快速处理器301的指定时钟周期期间的两倍。由此,快速处理器302中的每一个可以被配置为以比超快速处理器301更低的时钟频率操作。类似地,每个最慢速处理器303可以由最低百分比的含石墨烯的计算元件配置(在一些实施例中,这可以如O %含石墨烯的计算元件这样低),从而使得超快速处理器301中的每一个能够通过使用指定时钟周期期间运行指令,该指定时钟周期期间是超快速处理器301的指定时钟周期期间的三倍。
[0038]在操作中,当CMP300运行具有相对高并行性的指令时,合适数量的最慢速处理器303可以被使用,同时快速处理器302和超快速处理器301功率被门控。当CMP300运行具有极少或不具有并行性的指令时,合适数量的超快速处理器301可以被使用,同时快速处理器302和最慢速处理器303功率被门控。例如,当执行软件应用的大致顺序部分时,合适数量可以是一,从而使得单个超快速处理器301被使用。当CMP300运行具有适中并行性的指令时,合适数量的快速处理器302可以被使用,同时CMP中所有或者大部分其余处理器功率可以被门控。通过这种方式,CMP300的性能能够被优化或者以其它方式被改善用于任意特定工作负载。特定地,基于由CMP300运行的指令的性质(例如,并行性的程度)以及基于一个或多个指定操作约束条件,CMP300的泄漏能量能够被最小化或者CMP的有效处理速度能够被最大化。
[0039]在一些实施例中,用于优化或者以其它方式改善CMP300的性能的操作约束条件可以包括容许时间延迟、用于运行某些指令的能量预算、以及用于处理器或处理器组的热预算。例如,在视频流应用或者其它多媒体应用中,视频的适当的播放等涉及以特定间隔被提供给用户的帧和声音,甚至提供这种内容的最小延迟可能严重影响观看体验。因此,在一些实施例中,容许时间延迟可以在CMP300中使用,用于确定第一组超快速处理器301、第二组快速处理器302和第三组超慢速处理器303中的哪一个被用于运行软件应用的指定部分。在这种实施例中,CMP300能够被配置为选择处理器用于使用,从而使得指定指令能够以小于容许时间延迟(例如与视频的帧频相关联的时间)完成。另外,CMP300能够进一步被配置为选择处理器用于使用,从而使得由CMP300使用以运行指定指令的能量(例如泄漏能量和开关能量的结合)被最小化或者以其它方式被减少。由此,在这种实施例中,CMP300被配置为通常选择利用最低能量成本以指定时间执行可应用操作的CMP300中的处理器组。在其它实施例中,例如当CMP300与能量使用受关注的移动设备相关联时,CMP300可以配置为选择利用最低能量成本执行可应用操作的处理器组。在另外的实施例中,CMP300可以被配置为基于时间延迟和能量成本的组合选择一组处理器。在其它实施例中,CMP300可以被配置为门控已超出热预算或阈值温度的处理器或处理器组。其它配置和/或其组合也是可能的。基于用于运行特定指令的容许时间延迟、热预算和/或能量预算,在CMP中选择处理器组的方法以下结合图4-7描述。
[0040]在一些实施例中,超快速处理器301可以被布置在集成电路管芯309的边缘上以促进热损耗。因为超快速处理器301通常包括与CMP300中的其它处理器相比更高百分比的含石墨烯的计算元件,超快速处理器301可以在用于运行指令时生成显著更多的热。在一些实施例中,如图3中所示,超快速处理器301可以被定位在集成电路管芯309的一个或多个转角处,以进一步提高操作期间的热损耗。
[0041]在一些实施例中,超快速处理器301的过热可以通过设置低泄漏处理器核(例如集成电路管芯309上的较慢速处理器303)来避免,从而使得没有超快速处理器301被布置为邻近任何其它超快速处理器核301。因为较慢速处理器303通常包括较少或不包括含石墨烯的计算元件,较慢速处理器303可能生成与CMP300中其它处理器相比显著更少的泄漏能量,并且能够被用于将超快速处理器301彼此热隔离。在这种实施例中,较慢速处理器303还可以被设置为热隔离其它高泄漏能量处理器,例如快速处理器302,如图3中所示。图3中应当注意,较慢速处理器303被设置在集成电路管芯309上,从而使得没有超快速处理器301或快速处理器302彼此邻近。然而,更低泄漏能量处理器被布置在具有更高泄漏能量的两个或多个处理器之间的CMP300的任何其它配置也落入本公开的范围。
[0042]在一些实施例中,软件应用的顺序或大致顺序部分(例如图1中的顺序处理区段101)能够被分布在CMP300中多个含石墨烯、高速、高泄漏能量处理器(例如超快速处理器301)之间。如前所述,顺序处理区段101中缺少并行性阻止超过一个超快速处理器301同时运行顺序处理区段101的指令。然而,因为任意超快速处理器301能够以大致相等的速度运行顺序处理区段101,顺序处理区段101的部分能够由不同的超快速处理器301以极小的延迟损失顺序运行。由此,在运行顺序处理区段101的超快速处理器301达到非理想温度和泄漏能量之前,CMP300能够将顺序处理区段101的运行转换至另一个超快速处理器301。通过这种方式,顺序处理区段101能够构成软件应用的相对大部分,并且仍然以含石墨烯、高速度、高泄漏能量处理器的提高的速度运行,而不会出现过热或非理想的高泄漏能量。在这些实施例中,将顺序处理区段101的运行从一个超快速处理器301转换至另一个超快速处理器301可以基于当时正在运行顺序处理区段101的超快速处理器301的测量或估计温度。替换地,将顺序处理区段101的运行从一个超快速处理器301转换至另一个超快速处理器301可以基于时间间隔,并且因此被重复执行,例如周期性地执行。
[0043]如上所述,在一些实施例中,超快速处理器301、快速处理器302以及最慢速处理器303可以由其中包含百分之几的含石墨烯的计算元件来限定。然而,实践中,CMP300中含石墨烯的处理器的速度可以通常是由石墨烯形成的处理器计算元件的百分比的间接函数。这是因为特定处理器中的计算元件可以不是全部具有相同利用频率。换言之,在处理器典型操作期间,处理器中组合和顺序元件的一些路径可以与其它路径相比使用更多。由于即使布置在处理器的不用路径中时,含石墨烯的计算元件也可以典型地有助于处理器的泄漏能量,处理器中含石墨烯的计算元件具有比非石墨烯计算元件更高利用率通常是有用的。通过这种方式,处理器性能的增益相对于与含石墨烯的计算元件相关联的额外泄漏能量被最大化。
[0044]因为处理器中由石墨烯形成的计算元件的百分比可能不是处理器的处理速度的精确指标,CMP300中含石墨烯的处理器的速度通常可以不仅仅基于计算元件的百分比来确定。反而,根据本公开的一些实施例,CMP300中含石墨烯的处理器的处理速度,可以通过使用感兴趣的含石墨烯处理器运行特定软件应用、以及直接测量处理器的性能来确定。在其它实施例中,通过仿真CMP300中感兴趣的处理器的操作,可以估计CMP300中含石墨烯的处理器的处理速度。仿真可以包括使用数学上近似编码指令的基准应用,该编码指令可以通过CMP300的一个或多个处理器运行。由此,超快速处理器301、快速处理器302以及最慢速处理器303的速度能够通过使用仿真(或者通过测量实际处理器的性能)而确定,并且在配置中被适当调整,从而使得CMP300能够通过改善的与软件应用相关联的并行性程度的速度以及能量泄漏运行软件应用。
[0045]如上所述,在一些实施例中,CMP300可以包括多组处理器或者处理器核,其中每组包括被配置为以指定处理器速度操作的处理器。因此,基于哪组处理器被用于运行,CMP300可以以各种方式运行软件应用和/或软件应用的一部分。例如,为了运行具有相对高并行性程度的软件应用的一部分,CMP300可以选择第一组超快速处理器301、第二组快速处理器302或者第三组最慢速处理器303。第一组超快速处理器301具有CMP300中最快速的处理器,但可能不适应更高的并行性程度。相反,第三组最慢速处理器303具有CMP300中最慢速处理器,但可能适应更高的并行性程度。通常,第三组最慢速处理器303可以适于运行软件应用具有较高并行性级的部分,但在一些示例中,超快速处理器301的更高速度可以使得第一组超快速处理器301成为在集合运行速度方面的相对最优选择。由此,在一些实施例中,CMP300可以被配置为选择一组处理器来基于该组处理器的集合运行速度、以及与将要运行的软件应用的该部分相关联的并行性级运行软件应用的一部分。
[0046]如上所述,CMP300能够使用不同组的处理器来运行软件应用的特定部分。由此,由CMP300运行的软件应用可以被分成不同的部分,例如代码块,其中每一块能够由被选择用于以相对优化的时间延迟和/或泄漏能量来执行的一组处理器运行。在一些实施例中,凸优化过程可以被用于基于每一代码块中的并行性程度、以及基于与每一组处理器相关联的处理速度和泄漏能量,而将不同代码块的运行分配至CMP300中的不同处理器组。在一些实施例中,静态调度可以被用于这种分配,并且在下面结合图4和5描述。在其它实施例中,动态调度可以被用于这种分配,并且在下面结合图4和6描述。
[0047]图4是示出根据本公开的一个或多个实施例,用于在CMP中的各组处理器核之间分配软件应用运行、的示例性动态程序控制处理400的图。例如,动态程序控制处理400可以在CMP300中的第一组超快速处理器301、第二组快速处理器302、以及第三组最慢速处理器303之间分配软件应用或者其它计算机可读指令的运行。图4中示出的动态程序控制处理可以应用于静态调度方案或者动态调度方案,每一种都会在以下描述。
[0048]动态程序控制处理400有助于通过满足一个或多个指定操作约束条件,使用CMP300中的各组处理器运行软件应用。例如,在运行软件程序中,动态程序控制处理400能够被用于最小化或者以其它方式减小、与运行软件程序相关联的能量成本或时间延迟。替换地或另外地,动态程序控制处理400能够被用于最小化运行软件应用的能量成本,同时在小于指定的最大时间段的期间内完成软件程序的运行。而且,作为时间延迟和能量成本的替换或者除了这两者之外,动态程序控制处理400能够被用于满足一个或多个其它操作约束条件。
[0049]在动态程序控制处理400中,软件应用可以被分成多个块B1-Bm,其每一个包括构成软件应用的代码的非重叠部分。块B1-Bm中的每一个能够由CMP(例如CMP300)中的不同处理器组V1-Vn运行,其中各组处理器在图4中被标记为节AV1-Vn。在CMP300中,处理器组V1可以对应于第一组超快速处理器301,处理器组%可以对应于第二组快速处理器302,并且处理器组Vn可以对应于第三组最慢速处理器303。在其它实施例中,例如当CMP包括10多个或100多个处理器或者处理器核时,η可以是相对大的数字,例如10、20或更多。这是因为这种CMP可以由10、20或者更多不同组的处理器配置,每一组处理器包括具有相对于其它组处理器中与处理器相关联的石墨烯百分比或者计算的处理速度独特的石墨烯百分比或者计算的处理速度的处理器。
[0050]例如,为了动态程序控制处理400的应用中的灵活性,处理器组%可以包括单个超快速处理器,该超快速处理器包括CMP中最高百分比的含石墨烯的计算元件和/或最短延迟时间;处理器组%可以包括两个超快速处理器,每一个超快速处理器包括CMP中第二最高百分比的含石墨烯的计算元件和/或第二最短延迟时间等等。在一些实施例中,处理器组%的指定时钟周期期间可以是处理器组%的指定时钟周期期间的整数倍,例如2。在这些实施例中,其它处理器组(例如处理器组V3、处理器组¥?等)的指定时钟周期期间每一个都是处理器组Vi的指定时钟周期期间的逐渐增加的整数倍,例如3、4、n等。由此,对于块B1-Bm中更高的并行性程度,CMP中的一组处理器可以被选择,使得能够充分利用并行性。在一些实施例中,逐渐更大数量的处理器和/或与处理器组V1-Vjg关联的时钟周期期间可以增加了不同于一的整数值,如上述示例中所描述的。由此,处理器组V2的时钟周期期间可以是处理器组%的时钟周期期间的两倍,处理器组V3的时钟周期期间可以是处理器组V1的时钟周期期间的四倍,处理器组V4的时钟周期期间可以是处理器组化的时钟周期期间的八倍,以此类推。
[0051 ] 动态程序控制处理400还可以包括起始节点401、结束节点402以及多个成本向量O(I ,l/l)-0(m-l,η/η)。成本向量0(1,l/l)-0(m_l,η/η)每一个均量化两个节点之间环境转换相关联的成本,其中“环境转换”可以指代软件应用的运行从动态程序控制处理400的第一节点向第二节点的转换。通常,环境转换可以在第一节点已经完成块中的一个的运行之后、且紧随的块被运行之前发生。由此,在成本向量0(j,k/l)的表示法中:m =软件块的数量,η =节点的数量(S卩,不同处理器组的数量),j =已完成的块数,因此其从I变化至m-l;k =起始节点(S卩,运行已完成的块的处理器组),其从I变化至η;以及1=目标节点(S卩,软件应用的运行正要转换朝向的处理器组),且其从I变化至η。例如,成本向量0(3,1/2)量化与软件程序的运行从起始节点1(即处理器组V1)向目标节点2(即,处理器组V2)转换的成本,在块B3之后正被转换的运行已经由起始节点I完成、且块B4运行之前。
[0052]在一些实施例中,成本向量0(1,l/l)-0(m-l,η/η)可以每一个都量化与运行从起始节点向目标节点转换相关联的时间延迟成本。在一些实施例中,成本向量0(1,l/l)-0(m-1,n/n)可以每一个都量化与运行从起始节点向目标节点转换相关联的能量成本。在一个特定实施例中,成本向量0(1,l/l)-0(m-l,n/n)可以每一个都量化与运行从起始节点向目标节点转换相关联的时间延迟成本以及能量成本。通常,成本向量0(1,l/l)-0(m-l,n/n)中每一个的值可以与将数据从起始节点发送至目标节点相关联的时间和/或能量成本成比例。当然,当在第一块和第二块的运行之间没有发生环境转换(例如,相同的处理器组运行第一块和第二块)时,成本向量的值可以为零。如成本向量表示法所说明的,k = I的任意成本向量的值为零。
[0053]动态程序控制处理400可以使用与运行软件应用的每一块的每个处理器组化^目关联的成本向量0(1,l/l)-0(m-l,n/n)以及运行成本,以量化从起始节点401至结束节点402的每个可能运行路径的时间延迟成本和能量成本。之后,动态程序控制处理400可以选择从起始节点401到结束节点402的最优路径,指定CMP中的哪个处理器组V1-Vn运行块B1-Bm中的每一个。图4中的这种路径可以通过动态程序控制处理400选择,以满足一个或多个操作约束条件,例如最小时间延迟、最小能量成本等。
[0054]在一些实施例中,例如在与视频相关的应用中,动态程序控制处理400可以在运行软件应用或者在一些实施例中运行软件应用的特定部分或子程序中选择未超过容许时间延迟的路径。在这种实施例中,动态程序控制处理400可以进一步被配置为,在不超过容许时间延迟的前提下,选择还最小化能量消耗的路径。在其它实施例中,例如在能量预算不是问题的计算设备中,动态程序控制处理400可以被配置为选择最小化时间延迟的路径,而不考虑能量预算。在这种实施例中,动态程序控制处理400可以进一步包括CMP中处理器的测量或预测温度,以进一步排除一些可能的运行路径。例如,环境转换成本能够通过对软件应用中的所有或者大多数块使用CMP中相同的处理器组而避免,因此很多低能量消耗运行路径可以包括极少或者不包括环境转换。然而,因为处理器组¥1-¥?中的大多数或者所有可以包括含石墨烯的计算元件,如果含石墨烯的计算元件被使用延长的时间段就会发生过热。因此,在选择最优运行路径时,动态程序控制处理400还可以包括容许处理器温度作为操作约束条件。
[0055]在操作中,动态程序控制处理400可以首先计算每一处理器组V1-Vn运行软件应用的块Bi的运行成本以及所有成本向量0(1,l/l)-0(m-l,n/n)。这些成本向量可以量化块Bi运行之后从每一处理器到每一其它处理器组环境转换成本。动态程序控制处理400可以之后存储所计算的运行成本以及成本向量0(1,1/1 )-0(m-l,n/n)。在一些实施例中,动态程序控制处理400可以存储特定组合,例如运行成本和具有小于特定的期望时间和/或能量成本的成本向量的组合。在这种实施例中,劣势(例如,高成本)组合的消除能够大大减小动态程序控制处理400提供最优方案所需的计算的复杂性和数量。如上所述,在一些实施例中,估计的处理器温度也可以作为动态程序控制处理400的部分进行计算,其能够进一步指出由于非理想处理器温度而能够被视为劣势的组合。而且,其它操作约束条件可以被计算和使用,以确定未被存储的劣势组合。
[0056]运行成本/成本向量组合存储之后,动态程序控制处理400可以之后针对软件应用的块B2重复上述处理。在未针对之前的块(在这一情况中为块B1)存储劣势组合的实施例中,针对每一处理器¥1^11运行成本和成本向量0(2,l/l)-0(2,n/n)的所有可能组合通常可能不被计算。这是因为劣势组合的排除可能消除块B2运行的一些可能组合。例如,当与转换环境至特定处理器组(例如处理器组V3)相关联的所有成本向量被包括在劣势组合中时,可能不需要计算针对下一块(在这一情况中为块B2)、包括处理器组V3的任意组合。这一处理可以之后针对软件应用的每一其余块重复进行。
[0057]考虑到如上所述的非劣势组合,动态程序控制处理400能够之后根据指定操作约束条件(例如时间延迟、能量延迟、时间延迟-能量延迟乘积等)确定最优路径。通常,这种问题的解决方案可以是具有运行时间二次方的优化问题,并且能够由本领域普通技术人员受益于本公开而容易地解决。
[0058]在一些实施例中,动态程序控制处理400可以被应用于静态调度方案。例如,动态程序控制处理400可以由图2中的任务管理器250执行。在这种实施例中,CMP中软件应用运行的最优路径可以在编译时刻被确定。由于这种编译时刻的实施,优化所需的大致所有信息可以在动态程序控制处理400被用来确定运行软件应用的最优路径时被知晓:每一块的指令级并行性、由每一处理器组V1-Vn运行块B1-Bm的估计成本、每一成本向量0(1,1/1)-0(m-l,n/n)等。因此,最优路径能够以大致确定性的方式被发现。然而,用于确定这种最优路径的动态程序控制处理400的应用可以向运行软件应用的处理添加一些时间和能量延迟,因为编译软件应用的处理可能进行得更加复杂和耗时,并且通常在软件应用运行之前完成。
[0059]图5阐明了根据本公开的一个实施例的用于调度通过具有多组处理器核的芯片多处理器调度处理的指令的示例方法500的流程图。方法500可以包括由方框501、502、503和/或504中的一个或多个示出的一个或多个操作、功能或动作。虽然方框以连续顺序示出,这些方框也可以以并行、和/或与本文中描述的那些不同的顺序执行。而且,各种方框可以组合成更少的方框、划分成额外的方框、和/或根据期望的实施方式而消除。表示其它操作、功能或动作的额外的方框可以提供在其它实施例中。虽然方法500结合图2中的CMP200和图3中的CMP300描述,其它CMP可以被配置为执行方法500。
[0060]方法500可以在方框501“确定处理第一指令块的时间成本和/或能量成本”开始。方框501之后可以是方框502“确定处理第二指令块的时间成本和/或能量成本”,方框502之后可以是方框503“确定环境转换成本”,且方框503之后可以是方框504“选择处理器组运行第一指令块以及选择处理器组运行第二指令块”。
[0061 ]在一些实施例中,在方框501之前,任务管理器或者与CMP相关联的其它指令调度实体例如是图2中的任务管理器250,可以将软件应用分离成连续的块,例如图4中的块B1-Bm。在其它实施例中,这种块可以已经在软件应用中限定。
[0062]在方框501中,任务管理器或者与CMP相关联的其它指令调度实体确定CMP中的每一组多个处理器组运行来自应用的第一指令块的时间成本(例如,时间延迟)、能量成本(例如,特定能量消耗)、热成本(例如,估计处理器温度升高)和/或其它成本中的至少一个。通常并且如以上结合图3所述,在给定的多个处理器组中的一组中,所有处理器可以具有大致相等百分比的含石墨烯的计算元件。而且,不同百分比的含石墨烯的计算元件可以与每一组(例如,针对多个处理器组中的每一组)相关联,与处理器组相关联的含石墨烯的计算元件的百分比可以不同于与任意其它的多个处理器组相关联的含石墨烯的计算元件的百分比。
[0063]在方框502中,任务管理器或其它指令调度实体确定多个处理器组中的每一组运行来自应用的第二指令块的时间成本、能量成本、热成本和/或其它成本中的至少一个。
[0064]在方框503中,任务管理器或其它指令调度实体确定与将应用的运行从任一组多个处理器组向任意其它多个处理器组转换相关联的环境转换成本。在方法500中,环境转换可以发生在第一指令块由第一组多个处理器组运行之后但在第二指令块由第二组多个处理器组运行之前。通常,方框502和503可以针对软件应用的所有其余块重复进行,从而使得所有或者大部分可能的环境转换成本以及与多个处理器组中的每一组运行软件应用中的每一块相关联的所有或者大部分时间、能量和/或热成本可以被考虑。
[0065]在方框504,任务管理器或其它指令调度实体选择多个处理器组中的一组运行第一指令块以及多个处理器组中的一组运行第二指令块。通常,选择实体还可以选择多个处理器组中的哪一组运行软件应用指令的其余块中的每一个,由此确定CMP能够运行软件应用的最优运行路径。方框504中作出的选择可以基于方框501和502中确定的时间、能量和/或热成本,并且基于方框503中确定的环境转换成本。通常,考虑到方框501-503中确定的信息,这种问题的解决方案是标准的优化问题。
[0066]应当注意,方法500能够被配置为静态调度方案。因此,在一些实施例中,方法500可以在软件应用的编译期间被执行。
[0067]在一些实施例中,动态程序控制处理400可以被应用于动态调度方案,并且可以由图2中的任务管理器250或者与特定CMP相关联的任意其它指令调度实体执行。在这种实施例中,运行CMP中软件应用的最优路径可以不在编译时刻被确定。反而,最优指令调度可以在软件应用运行期间针对软件应用的一块被确定,例如在软件应用的紧接着的前块被运行的同时。通过这一方式,CMP可能不会经历与延长的且更复杂的编译处理相关联的时间、能量和/或热成本。例如,在图4中的块B1由处理器组V1-Vn中的一个运行时,最优用于运行块B2的下一处理器组可以被选择。
[0068]而且,与静态调度方案相比,使用这种动态调度方案调度软件应用的指令能够更加适用。具体地,软件应用的每一指令块的调度可以基于软件应用的实际运行被修改,而在静态调度中,通常基于每一指令块和其它信息的统计分析可以作出某些关于软件应用中每一块的指令级并行性的假定。因此,在动态调度方案中,存在于软件应用中指令级并行性的实际程度能够在调度下一指令块时被考虑:无论何时一些操作在一个时钟循环期间没有被调度,下一时钟周期中的运行能够被转换至能够处理更多操作的处理器组;无论何时当前激活处理器组中的处理器包括一个或多个不用的处理器,下一时钟周期中的运行能够被转换至包括较少处理器的处理器组。作为比较,在静态调度方案中,针对所有指令块的最优调度可以同时被确定,但可能部分地基于估计的并行性。
[0069]应当注意,由于动态调度的每个操作通常非常快地作出,例如在单个时钟周期中,高度优化方案可能没有被确定。与静态调度方案不同,通过所有处理器组运行的所有可能运行路径和成本向量可能针对所有软件块不被量化和比较。反而,针对非常有限数量的块(典型地为下一块)的运行成本和环境转换成本可能在可用时间内被计算和考虑。
[0070]图6阐明了根据本公开的一个实施例的、概括用于调度通过包括含石墨烯的计算元件的芯片多处理器处理的指令的示例方法600的流程图。方法600可以包括由方框601、602、603和/或604中的一个或多个示出的一个或多个操作、功能或动作。虽然方框以连续顺序示出,但这些方框也可以以并行、和/或与本文中描述的那些不同的顺序执行。而且,各种方框可以组合成更少的方框、划分成额外的方框、和/或根据期望的实施方式而消除。表示其它操作、功能或动作的额外的方框在其它实施例中可以提供。虽然方法600结合图2中的CMP200和图3中的CMP300描述,其它CMP可以被配置为执行方法600。
[0071]方法600可以在方框601“确定处理第一指令块的时间成本和/或能量成本”开始。方框601之后可以是方框602“选择第一组多个处理器组运行第一指令块”,方框602之后可以是方框603“确定处理第二指令块的时间成本和/或能量成本”,且方框603之后可以是方框604“选择第二组多个处理器组运行第二指令块”。
[0072]在一些实施例中,在方框601之前,任务管理器(例如图2中的任务管理器250)或者与CMP相关联的其它指令调度实体可以将软件应用分离成连续的块,例如图4中的块m-Bm。在其它实施例中,这种块可以已经在软件应用中限定。
[0073]在方框601中,任务管理器或者与CMP相关联的其它指令调度实体,确定多个处理器组中的每一组运行来自软件应用的第一指令块的时间成本、能量成本、热成本和/或其它成本中的至少一个。
[0074]在方框602中,任务管理器或者其它指令调度实体选择第一组多个处理器组运行第一指令块。通常,该选择基于方框602中确定的确定时间、能量成本、热成本和/或其它成本中的至少一个。
[0075]在方框603中,任务管理器或者其它指令调度实体确定多个处理器组中的每一组运行来自应用的第二指令块的时间成本、能量成本、热成本和/或其它成本中的至少一个。第二指令块通常可以是紧接着方框601和602中提及的第一指令块的指令块。在一些实施例中,任务管理器或其它指令调度实体还可以在方框603中确定环境转换成本,例如图4中的成本向量 0(1,1/1 )-0(1, η/η)。
[0076]在方框604中,任务管理器或其它指令调度实体选择第二组多个处理器组运行第二指令块,其中第二组多个处理器组的选择可以在第一组多个处理器组已经开始运行第一指令块之后执行。换言之,方框604通常与第一组多个处理器组运行第一指令块同时发生。应当注意,第一组多个处理器组和第二组多个处理器组可以是相同的处理器组,例如当前激活处理器组中的处理器数量与当前运行指令块中并行性的程度相匹配时。在一些实施例中,该选择还可以基于方框603中确定的环境转换成本。通常,方框603和604的过程可以继续,直至软件应用中的所有块被运行。
[0077]方框604中作出的第二组多个处理器组的选择,可以基于多个处理器中的第一个运行第一指令块时,在芯片多处理器上运行的应用的并行性级。例如,在第一指令块由第一组多个处理器组运行时与第一指令块相关联的一个或多个操作未被调度时,第二组多个处理器组可以是具有比第一组多个处理器组更多处理器的处理器组。通过这种方式,运行下一指令块(例如第二指令块)的并行性扩展到充分利用当前存在于软件应用中的并行性程度。替换地或者另外地,当第一组多个处理器组中的一个或多个处理器包括一个或多个不用的处理器时,第二组多个处理器组可以是具有比第一组多个处理器组更少处理器的处理器组。通过这种方式,更快速处理器可以被用于运行下一指令块。
[0078]如前所述,本公开的实施例能够通过使用容许时间延迟、用于运行某些指令的能量预算和/或用于处理器或处理器组的热预算作为操作约束条件,优化或以其它方式改善C M P的性能。应当注意存在可以用于改善C M P性能的各种其它优化技术,例如降压(A.P.Chandrakasan,M.Potkonjak,R.Mehra,J.Rabaey,R.Brodersen,^Optimizing PowerUsing Transformat1ns,,,IEEE Transact1ns on CADjVol.14,N0.1,pp.12-31,January
1995 );多个且可变的供应电压(1.Hong , D.Kirovski,G.Qu,M.Potkonjak,Μ.B.Srivastava,"Power Optimizat1n of Variable Voltage Core-based Systems,,,IEEE Transact1n on CAD,Vol.18,N0.12,pp.1702-1714,December 1999)、(1.Hong,M.B.Srivastava,M.Potkonjak,^On-Line Scheduling of Hard Real-Time Tasks onVariable Voltage Processor",Internat1nal Conference on Computer-AidedDesign,pp.653-656,November 1998)、(I.HongjG.Qu,M.Potkonjak,M.B.Srivastava,"Synthesis Techniques for Low-Power Hard Real-Time Systems on Variable VoltageProcessor^,Real-Time System Symposium,pp.178-187,December 1998);多个阈值电压(K.Usami,M.1garashi,F.Minami,T.1shikawa,Μ.Kanzawa,Μ.1chidajK.Nogami,〃Automated low-power technique exploiting multiple supply voltages applied toa media processor,,,IEEE Journal of Solid-State Circuits,Vol.33,N0.3,pp.463-472,March 1998);自适应体偏压(J.ff.Tschanz,J.T.Kao,S.G.Narendra , R.Nair ,D.A.Antoniadis,A.P.Chandrakasan,V.De.^Adaptive body bias for reducing impactsof die-to-die and within-die parameter variat1ns on microprocessor frequencyand leakage,,,IEEE Journal of Solid-State CircuitsjVol.37,N0.11,pp.1396-1402,November 2002);时钟门控(Q.Wu,M.Pedram,X.Wu,"Clock_gating and its applicat1nto low power design of sequential circuits,,IEEE Transact1ns on Circuits andSystems I!Fundamental Theory and Applicat1ns ,Vol.47,N0.3,pp.415-420,March2000);门尺寸调整(0.Coudert,"Gate sizing for constrained delay/power/areaoptimizat1n",IEEE Transact1ns on Very Large Scale Integrat1n(VLSI)Systems,Vol.5 ,N0.4 ,pp.465-472 ,December 1997);重新定时(M.Potkon jak,M.B.Srivastava,〃Behav1ral Optimizat1n Using the Manipulat1n of Timing Constraints,,,IEEETransact1n on CAD,Vol.17,N0.10, pp.936-9 47, October 1998);以及模板映射(M-R-CorazaojM-KhalafjL-GuerrajM-PotkonjakjJ-Rabaeyj^Performance Optimizat1nusing Template Mapping for Datapath-1ntensive High-Level Synthesis",IEEETransact1n on CADjVol.15,N0.8,pp.877-888,August 1996)0
[0079]例如,如果CMP的供应电压提高,CMP的整体延迟可以减小,同时转换和泄漏能量增加。或者,如果阈值电压提高,整体延迟也可以增大,同时转换和泄漏能量可以减小。
[0080]以上提及的技术可以与本文描述的实施例正交,并且在一些实施例中,其可以结合一个或多个实施例使用用于增强效果。另外,一些优化技术(例如动态程序控制)可以以最小的修改直接应用于延迟和能量成本。
[0081]图7是实施用于调度通过包括设置在多个处理器组中的含石墨烯的计算元件的CMP所处理指令的方法的计算机程序产品700的示意性实施例的框图。计算机程序产品700可以包括信号承载介质704。信号承载介质704可以包括一组或多组可执行指令702,当通过例如计算设备的处理器执行时,这些指令可以提供至少上文结合图2-6描述的功能。
[0082]在一些实施方式中,信号承载介质704可以包含非暂态计算机可读介质708,例如但不限于硬盘驱动器、压缩盘(⑶)、数字视频盘(DVD)、数字磁带、存储器等。在一些实施方式中,信号承载介质704可以包含可记录介质710,例如但不限于存储器、读/写(R/W)CD、R/WDVD等等。在一些实施方式中,信号承载介质704可以包含通信介质706,例如但不限于数字和/或模拟通信介质(例如,光纤线缆、波导、有线通信链路、无线通信链路等)。计算机程序产品700可以被记录在非暂态计算机可读介质708或者另一类似的可记录介质710上。
[0083]图8是示出根据本公开的至少一些实施例的、设置用于管理芯片多处理器中可编程逻辑电路的示例计算设备800的框图。在一种非常基本的配置802中,计算设备800典型地包括一个或多个处理器804以及系统存储器806。存储器总线808可以被使用,以用于在处理器804和系统存储器806之间通信。
[0084]根据期望的配置,处理器804可以为包括但不限于微处理器(μΡ)、微控制器(μΟ、数字信号处理器(DSP)或其任意组合中的任意类型。处理器804可以包括一级或多级高速缓存,如一级高速缓存810和二级高速缓存812、处理器核814以及寄存器816。示例性处理器核814可以包括算数逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP Core)或其任意组合。处理器804可以包括可编程逻辑电路,例如但不限于FPGA、可修补ASIC、CPLD以及其它。处理器804可以类似于图2中的CMP200或者图3中的CMP300。示例性存储器控制器818也可以与处理器804—同使用,或者在一些实施例中,存储器控制器818可以为处理器804的内部部件。
[0085]根据期望的配置,系统存储器806可以为包括但不限于易失存储器(如RAM)、非易失存储器(如R0M、闪存等等)或其任意组合的任意类型。系统存储器806可以包括操作系统820、一个或多个应用822和程序数据824。应用822可以包括被分成块的一个或多个应用,如上结合图4所述。程序数据824可以包括对计算设备800的操作有用的数据。在一些实施例中,应用822可以被布置为与程序数据824—同在操作系统820中运行。这一描述的基本配置802在图8中由内部虚线内的那些组件示出。
[0086]计算设备800可具有附加的特征或功能以及附加的接口以便于基本配置802与任何所需的设备和接口之间的通信。例如,总线/接口控制器890可用于便于基本配置802与一个或多个数据存储设备892之间经由存储接口总线894的通信。数据存储设备892可以是可移除存储设备896、非可移除存储设备898或者其组合。可移除存储设备和非可移除存储设备的示例包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘设备、诸如压缩盘(CD)驱动器或数字多功能盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)和磁带驱动器,仅列举了几个。示例的计算机存储媒介可以包括以用于诸如计算机可读指令、数据结构、程序模块或其它数据的信息存储的任何方法或技术实现的易失性和非易失性的媒介以及可移除和非可移除的媒介。
[0087]系统存储器806、可移除存储设备896和非可移除存储设备898是计算机存储媒介的示例。计算机存储媒介包括但不限于RAM、R0M、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储设备、磁盒、磁带、磁盘存储设备或其它磁存储设备、或者可用于存储所需信息并且可由计算设备800存取的任何其它媒介。任意这样的计算机存储媒介可以是计算设备800的部分。
[0088]计算设备800还可以包括接口总线840,该接口总线用于方便从各接口设备(例如,输出设备842、外围设备接口 844和通信设备846)经由总线/接口控制器830到基本配置802的通信。示例的输出设备842包括图形处理单元848和音频处理单元850,其可配置为经由一个或多个A/V端口 852与诸如显示器或扬声器的各外部设备通信。示例的外围设备接口 844包括串行接口控制器854或并行接口控制器856,其可配置为经由一个或多个I/O端口 858与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其它外围设备(例如,打印机、扫描仪等)的外部设备通信。示例的通信设备846包括网络控制器860,其可被布置为便于经由一个或多个通信端口864通过例如但不限于光纤、长期进化(LTE)、3G、WiMax的网络通信链路与一个或多个其它计算设备862的通信。
[0089]网络通信链路可以是通信媒介的一个示例。通信媒介通常可通过计算机可读指令、数据结构、程序模块、或诸如载波或其它传输机制的调制数据信号中的其它数据来具体化,并且可以包括任何信息输送媒介。“调制数据信号”可以是使得其特性中的一个或多个以将信号中的信息编码的方式设定或改变的信号。通过举例而不是限制的方式,通信媒介可以包括诸如有线网络或直接线连接的有线媒介,以及诸如声波、射频(RF)、微波、红外线(IR)和其它无线媒介的无线媒介。如本文所使用的术语“计算机可读媒介”可以包括存储媒介和通信媒介两者。
[0090]计算设备800可实现为诸如手机、个人数据助理(PDA)、个人媒体播放器设备、无线网页观看设备、个人头戴式设备、专用设备或包括上述功能中的任一种的混合设备的小形状要素的便携式(或移动)电子设备的一部分。计算设备800还可实现为包括膝上型计算机和非膝上型计算机配置两者的个人计算机。
[0091]本公开的实施例使得能够使用包括含石墨烯的计算元件的处理器,同时最小化或者以其它方式减小与石墨烯计算元件相关联的高泄漏能量的影响。而且,本公开的实施例提供了用于调度通过包括设置在多个处理器组中的含石墨烯的计算元件的CMP处理的指令的系统和方法。
[0092]在系统方案的硬件实现和软件实现之间存在极小的区别;硬件或软件的使用通常是(但并不总是,因为在一些背景下硬件和软件之间的选择会变得重要)表示成本相对于效率权衡的设计选择。存在各种可以实现本文所描述的处理和/或系统和/或其它技术的媒介物(例如,硬件、软件和/或固件),并且优选的媒介物将随着部署过程和/或系统和/或其它技术的背景而变化。例如,如果实施者判定速度和精度最重要,则实施者可以选择主硬件和/或固件媒介物;如果灵活性最重要,则实施者可以选择主软件实现;或者,另外可选地,实施者可以选择硬件、软件和/或固件的一些组合。
[0093]前面的详细说明已经通过使用框图、流程图和/或示例阐述了设备和/或过程的各个实施例。在这些框图、流程图和/或示例包含一项或多项功能和/或操作的程度上,本领域技术人员将理解的是可以通过各种各样的硬件、软件、固件或几乎其任意组合来单独地和/或统一地实现这些框图、流程图或示例内的每项功能和/或操作。在一个实施例中,本文所描述的主题的多个部分可经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它集成格式来实现。然而,本领域技术人员将理解的是,在本文公开的实施例的一些方案可以整体地或部分地等同地实现为集成电路、在一个或多个计算机上运行的一个或多个计算机程序(例如,实现为在一个或多个计算机系统上运行的一个或多个程序)、在一个或多个处理器上运行的一个或多个程序(例如,实现为在一个或多个微处理器上运行的一个或多个程序)、固件、或几乎任何组合,并且根据本公开的内容,设计电路和/或编写用于软件和/或固件的代码将落入本领域技术人员的技能范围内。另外,本领域技术人员将理解的是,本文所描述的主题的机制能够以各种形式分布为程序产品,并且本文所描述的主题的示例性实施例适用,无论实际上用于实施分布的特定类型的信号承载介质如何。信号承载介质的示例包括但不限于以下:可记录型介质,诸如软盘、硬盘驱动器、压缩盘(CD)、数字视频盘(DVD)、数字带、计算机存储器等;以及传输型介质,诸如数字和/或模拟通信介质(例如,光纤线缆、波导、有线通信链路、无线通信链路等)。
[0094]本领域技术人员将理解的是,在本领域内常见的是以本文阐述的方式来描述设备和/或过程,此后利用工程实践将这些所描述的设备和/或过程集成到数据处理系统中。也即,本文所描述的设备和/或过程的至少一部分可以通过合理量的实验集成到数据处理系统中。本领域技术人员将理解的是,典型的数据处理系统通常包括如下中的一种或多种:系统单元壳体、视频显示设备、诸如易失性和非易失性存储器的存储器、诸如微处理器和数字信号处理器的处理器、诸如操作系统的计算实体、驱动器、图形用户接口、和应用程序、诸如触摸板或触摸屏的一个或多个交互设备、和/或包括反馈环和控制电动机(例如,用于感测位置和/或速度的反馈;用于移动和/或调整部件和/或量的控制电动机)的控制系统。典型的数据处理系统可利用任何合适的商业上提供的部件来实现,诸如在数据计算/通信和/或网络计算/通信系统中常见的部件。
[0095]本文所描述的主题有时说明了包含在不同的其它部件内的不同部件或与不同的其它部件连接的不同部件。应理解的是,这些所描绘的体系结构仅是示例性的,并且实际上可以实施实现相同功能的许多其它体系结构。在概念意义上,实现相同功能的任何部件的布置有效地“关联”,使得实现期望的功能。因此,在此处组合以实现特定功能的任何两个部件可视为彼此“关联”,使得实现期望的功能,无论体系结构或中间部件如何。同样,任意两个如此关联的部件还可视为彼此“可操作地连接”、或“可操作地耦合”,以便实现期望的功能,并且能够如此关联的任意两个部件还可视为彼此“能够可操作地耦合”以实现期望的功能。能够可操作耦合的具体示例包括但不限于能够物理配合和/或物理交互的部件和/或能够无线交互和/或无线交互的部件和/或逻辑交互和/或能够逻辑交互的部件。
[0096]关于本文中使用的基本上任何复数和/或单数术语,本领域技术人员能够根据上下文和/或应用适当地从复数变换成单数和/或从单数变换成复数。为了清晰的目的,本文中明确地阐明了各单数/复数的置换。
[0097]本领域技术人员将理解,一般地,本文所使用的术语,尤其是随附权利要求(例如,随附权利要求的主体)中所使用的术语,通常意图为“开放式”术语(例如,术语“包括”应当解释为“包括但不限于”,术语“具有”应解释为“至少具有”,术语“包含”应解释为“包含但不限于”,等等)。本领域技术人员还理解,如果意图表达引导性权利要求记述项的具体数量,该意图将明确地记述在权利要求中,并且在不存在这种记述的情况下,不存在这样的意图。例如,为辅助理解,下面的随附权利要求可能包含了引导性短语“至少一个”和“一个或多个”的使用以引导权利要求记述项。然而,这种短语的使用不应解释为暗指不定冠词“一”或“一个”引导权利要求记述项将包含该所引导的权利要求记述项的任何特定权利要求局限于仅包含一个该记述项的实施例,即使当同一权利要求包括了引导性短语“一个或多个”或“至少一个”以及诸如“一”或“一个”的不定冠词(例如,“一”和/或“一个”应当解释为表示“至少一个”或“一个或多个”);这同样适用于对于用于引导权利要求记述项的定冠词的使用。另外,即使明确地记述了被引导的权利要求记述项的具体数量,本领域技术人员将理解到这些记述项应当解释为至少表示所记述的数量(例如,没有其它修饰语的裸记述“两个记述项”表示至少两个记述项或两个以上的记述项)。此外,在使用类似于“A、B和C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。在使用类似于“A、B或C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B或C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。本领域技术人员将进一步理解,呈现两个以上可选项的几乎任何分离词和/或短语,无论是在说明书、权利要求或附图中,都应理解为设想包括一项、任一项或两项的可能性。例如,术语“A或B”将理解为包括“A”或“B”或“A和B”的可能性。
[0098]虽然本文已经公开了各种方面和实施例,其它方面和实施例对于本领域技术人员而言将是显而易见的。本文已经为了说明的目的公开了各种方面和实施例并且不意在限制,真正的范围和精神是通过随附的权利要求表示的。
【主权项】
1.一种芯片多处理器,其包括: 一个或多个高速处理器核,其布置在管芯上并包括含石墨烯的计算元件;以及 多个另外的处理器核,其布置在所述管芯上,并包括与所述一个或多个高速处理器核相比更低百分比的含石墨稀的计算元件, 其中所述一个或多个高速处理器核被配置为,在所述多个另外的处理器核中的至少一些被配置为被门控时操作。2.根据权利要求1所述的芯片多处理器,其中所述一个或多个高速处理器核包括第一组多个基于石墨烯的处理器核,所述第一组的每一个基于石墨烯的处理器核包括大致相同百分比的含石墨稀的计算元件。3.根据权利要求2所述的芯片多处理器,其中所述多个另外的处理器核包括第二组处理器核以及第三组处理器核,所述第二组中的每一个处理器核包括相对于所述第一组更低百分比的含石墨烯的计算元件,并且所述第三组中的每一个处理器核包括相对于所述第二组更低百分比的含石墨稀的计算元件。4.根据权利要求3所述的芯片多处理器,其进一步包括任务管理器,其被耦接至所述第一、第二和第三处理器组,并且被配置为基于被调度用于在所述芯片多处理器上运行的应用的并行性级,选择一个或多个所述处理器组用于操作,其中所述任务管理器被配置为,对于所述应用的较低并行性级选择所述第一处理器组、以及对于所述应用的较高并行性级选择所述第三处理器组。5.根据权利要求4所述的芯片多处理器,其中所述任务管理器被进一步配置为,基于包括在所述处理器组中的含石墨烯的计算元件的百分比或者与所述处理器组相关联的时钟速度中的至少一个,选择一个或多个所述处理器组。6.根据权利要求2所述的芯片多处理器,其中所述第一组多个基于石墨烯的处理器核中的一个或多个高速处理器核被配置为顺序操作。7.根据权利要求6所述的芯片多处理器,其中所述第一组多个基于石墨烯的处理器核中的一个或多个高速处理器核的激活处理器核的操作,基于所述激活处理器核的操作温度,被转移至所述第一组多个基于石墨烯的处理器核中的一个或多个高速处理器核的另一个。8.根据权利要求2所述的芯片多处理器,其中所述多个另外的处理器核中的至少一个,被布置在所述第一组多个基于石墨烯的处理器核中的一个或多个高速处理器核的两个或更多个之间。9.根据权利要求8所述的芯片多处理器,其中所述多个另外的处理器核被设置在所述管芯上,从而使得所述第一组多个基于石墨烯的处理器核中的一个或多个高速处理器核、都没有邻近任何其它布置在所述管芯上的所述一个或多个高速处理器核进行布置。10.根据权利要求3所述的芯片多处理器,其中所述第一组中多个基于石墨烯的处理器核中的至少一个被布置在所述管芯的边缘上。11.根据权利要求1所述的芯片多处理器,其中所述一个或多个高速处理器核被配置为,在所述另外的处理器核中的至少一些被配置为操作时被门控。12.根据权利要求2所述的芯片多处理器,其中所述第一组多个基于石墨烯的处理器核被配置为,在所有所述多个另外的处理器核被门控时操作。13.根据权利要求1所述的芯片多处理器,其中所述多个另外的处理器核的操作基于以下中的一个:比所述一个或多个高速处理器核的频率时钟更低的频率时钟;以及与执行一个操作的一个或多个高速处理器核相关联的时钟的多个时钟周期的使用。14.根据权利要求1所述的芯片多处理器,其中所述含石墨烯的计算元件包括门和顺序元件中的一个或多个。15.—种调度由包括设置在多个处理器组中的含石墨烯的计算元件的芯片多处理器处理的指令的方法,所述方法包括: 确定多个处理器组中的一组或多组运行来自应用的第一指令块的时间成本以及能量成本中的至少一个; 确定所述多个处理器组中的一组或多组运行来自所述应用的第二指令块的时间成本以及能量成本中的至少一个; 确定与所述应用的运行从任一组所述多个处理器组向任意其它组所述多个处理器组转换相关联的环境转换成本,其中所述环境转换发生在所述第一指令块由第一组所述多个处理器组运行之后、且所述第二指令块由第二组所述多个处理器组运行之前;以及 基于所确定的时间成本、能量成本以及环境转换成本中的至少一个,选择所述多个处理器组中的一组来运行所述第一指令块、并选择所述多个处理器组中的一组来运行所述第二指令块。16.根据权利要求15所述的方法,其中,在给定的一组所述多个处理器组中,所有处理器都具有大致相等百分比的含石墨烯的计算元件,并且,对于所述多个处理器组中的每一组,与所述处理器组相关联的含石墨烯的计算元件的百分比、不同于所述多个处理器组中任意其它组相关联的含石墨烯的计算元件的百分比。17.根据权利要求15所述的方法,其中所述选择进一步基于减少所述芯片多处理器处理所述第一指令块和所述第二指令块的时间。18.根据权利要求17所述的方法,其中在不超出特定的能量成本的条件下,所述芯片多处理器处理所述第一指令块和所述第二指令块的时间被减少。19.根据权利要求15所述的方法,其中所述选择进一步基于减少所述芯片多处理器处理所述第一指令块和所述第二指令块的能量成本。20.根据权利要求19所述的方法,其中所述能量成本包括与所述一个或多个多个处理器组中的每一组运行所述第一指令块相关联的开关能量、以及与所述一个或多个所述多个处理器组中的每一组运行所述第一指令块相关联的泄漏能量。21.根据权利要求15所述的方法,其中选择所述多个处理器组中的一组运行所述第一指令块以及选择所述多个处理器组中的一组运行所述第二指令块,包括执行动态程序控制处理,从而使得所述芯片多处理器的能量消耗被减少为低于目标阈值,同时所述应用在目标时间延迟内运行。22.根据权利要求15所述的方法,其中确定一组或多组所述多个处理器组运行来自所述应用的所述第一指令块的时间成本和能量成本中的至少一个,包括计算使用降压、多个且可变电源电压、多个阈值电压、自适应体偏压、时钟门控、门尺寸调整、重新定时和模板映射中的至少一个的影响。23.—种由包括设置在多个处理器组中的含石墨烯的计算元件的芯片多处理器调度待处理指令的方法,所述方法包括: 确定每一组所述多个处理器组中运行来自应用的第一指令块的时间成本以及能量成本中的至少一个; 基于所确定的每一组所述多个处理器组运行所述第一指令块的时间成本以及能量成本中的至少一个,选择所述多个处理器组中的第一组以运行所述第一指令块; 确定每一组所述多个处理器组运行来自所述应用的第二指令块的时间成本以及能量成本中的至少一个; 基于所确定的每一组所述多个处理器组运行所述第二指令块的时间成本以及能量成本中的至少一个,选择所述多个处理器组中的第二组运行所述第二指令块,所述多个处理器组中的第二组的选择在所述多个处理器组中的所述第一组已经开始运行所述第一指令块之后被执行。24.根据权利要求23所述的方法,其进一步包括,确定与所述应用的运行从所述多个处理器组中所述第一组向所述多个处理器组中任意其它组转换相关联的环境转换成本,其中所述环境转换发生在所述第一指令组由所述多个处理器组中所述第一组运行之后,且所述多个处理器组中所述第二组的选择至少部分地基于所确定的环境转换成本。25.根据权利要求23所述的方法,其中所述多个处理器组中所述第二组的选择,基于所述多个处理器组中所述第一组运行所述第一指令块的同时在所述芯片多处理器上运行所述应用的并行性级。
【文档编号】G06F15/16GK105830046SQ201380078893
【公开日】2016年8月3日
【申请日】2013年8月15日
【发明人】M·波特科尼亚克
【申请人】英派尔科技开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1