CN101278264B - 众核处理器的可靠计算 - Google Patents

众核处理器的可靠计算 Download PDF

Info

Publication number
CN101278264B
CN101278264B CN2006800359677A CN200680035967A CN101278264B CN 101278264 B CN101278264 B CN 101278264B CN 2006800359677 A CN2006800359677 A CN 2006800359677A CN 200680035967 A CN200680035967 A CN 200680035967A CN 101278264 B CN101278264 B CN 101278264B
Authority
CN
China
Prior art keywords
nuclear
many
core processor
task
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2006800359677A
Other languages
English (en)
Other versions
CN101278264A (zh
Inventor
S·伯卡尔
Y·霍斯科特
S-L·加弗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101278264A publication Critical patent/CN101278264A/zh
Application granted granted Critical
Publication of CN101278264B publication Critical patent/CN101278264B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1637Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)

Abstract

根据所公开的主题的实施例,可以对众核处理器中的核周期性地进行测试以获得和/或刷新它们的动态特征分析。核的动态特征分析可以包括与其最大运行频率、功耗、功率泄露、功能正确性和其他参数有关的信息,以及这些参数的趋势信息。一旦为每个核创建了动态特征分析,就可以根据它们的特性将众核处理器中的核分组为不同的仓。基于动态特征分析和分组信息,操作系统(“OS”)或其他软件可以将任务分配给最适合该任务的那些核。可以对众核处理器中的互连结构进行重新配置以保证所选择的核之间的高等级连接。此外,可以响应于环境改变将核重新分配和/或重新平衡给任务。

Description

众核处理器的可靠计算
技术领域
本公开通常涉及微处理器,更具体而言,涉及具有众多个核的处理器。
背景技术
众核(many-core)处理器在同一管芯上具有多个处理核。由于处理技术已经可以微缩在非常小的面积上实现,因此当前流行的通过提高处理器频率来实现高性能的设计方法受到急剧增加的功耗的严重限制。一种实现高性能的替换设计方法是将一个应用分散到以比通常的“大”核低的速度同时运行的众多个“小”核上。因为相比于“大”核,每个“小”核更简单、更小并且能耗也少得多,并且仍能实现较高的性能,所以这种基于众核的设计方法能够比基于大核的设计方法更高效地帮助管理功耗。
尽管众核处理器相比于具有单核或一些大核的处理器具有优势,但是由于处理技术已经可以微缩在小面积上实现,其也面临着许多挑战。例如,不管是静态还是动态的处理变化都可能使晶体管变得不可靠;由于存储节点上的电容较小并且电压较低,所以暂态错误率可能会较高;并且随着时间的流逝,晶体管会劣化,因此可靠度随时间会降低。这些挑战可能导致在工厂测试时运行良好的众核处理器的核随时间变得没有以前运行得那么好或者完全停止了运行。这使得传统处理器所使用的一次工厂测试和烧合(burn-in)在确保众核处理器随时间的计算可靠性方面并不十分高效。因此,人们希望在众核处理器的寿命期间能够周期性地测试众核处理器中的核的性能,并且能够使用这样获得的测试数据来提高其应用性能。
发明内容
根据本发明的第一个方面,一种众核处理器包括:多个处理核;互连结构;至少一个存储器模块,所述多个处理核和所述至少一个存储器模块耦合到所述互连结构;以及特征分析模块,用于周期性地执行对所述众核处理器中的每个核的特性进行动态特征分析的处理。
根据本发明的第二个方面,一种用于对众核处理器中的每个核的特性进行动态特征分析的方法包括:周期性地启动对所述众核处理器中的每个核的测试;在每次测试期间测量所述众核处理器中的每个核在不同电压和不同运行速度下的功耗数据;在每次测试期间测量所述众核处理器中的每个核在不同电压下的最大运行速度;以及至少部分基于在每次测试期间获取的所述功耗数据和所述最大运行速度,获取所述众核处理器中的每个核的可靠性信息。
根据本发明的第三个方面,一种计算系统包括:众核处理器,所述处理器包括如本发明的第一方面所述的特征分析模块,用于创建所述处理器中的每个核的动态特征分析;以及任务分配模块,用于接收任务,并至少部分基于所述任务的需求和所述处理器中的每个核的所述动态特征分析将所述任务应用分配给第一组核。
根据本发明的第四个方面,一种使用众核处理器来高效地执行任务的方法包括:接收任务;分析所述任务以确定所述任务的需求;基于所述任务的所述需求,将所述任务分配给所述众核处理器中的第一组核,其中,所述第一组核的特性使所述第一组核满足所述任务的需求,所述特性是通过本发明的第二方面获得的;以及使用所述第一组核执行所述任务。
附图说明
通过下面的对主题的详细描述,所公开的主题的特征和优点将会变得显而易见,其中:
图1说明了示例性的众核处理器;
图2示出了对众核处理器中的每个核周期性地执行动态特征分析(dynamic profiling)的动态特征分析装置的一个示例性方框图;
图3A-3B说明了在众核处理器中执行动态特征分析的实例;
图4示出了用于对众核处理器中的每个核执行动态特征分析的一个示例性处理的流程图;
图5示出了可以使用众核处理器的一个示例性计算系统;
图6示出了可以使用众核处理器的另一个示例性计算系统;
图7示出了可以使用众核处理器的又一个示例性计算系统;
图8示出了使用众核处理器中的每个核的动态特征分析来提高任务执行效果的系统的一个示例性方框图;
图9说明了用于管理众核处理器的性能和功耗的一个实例;以及
图10示出了使用众核处理器中的每个核的动态特征分析来提高任务执行效果的一个示例性处理的流程图。
具体实施方式
根据本申请中所公开的主题的实施例,可以周期性地测试众核处理器中的核以获取和/或刷新它们的动态特征分析。核的动态特征分析可以包括与其最大运行频率、功耗、功率泄露、功能正确性以及其他参数有关的信息。动态特征分析还可以包括这些参数的趋势信息,其指示核随时间的可靠性。这些参数可以由嵌入在众核处理器中的模块(例如运行速度测量模块、功耗测量模块、温度传感器以及功能正确性检验模块)来获取。与每个核的功能正确性有关的信息可以通过使用粗粒度冗余功能检验(“FRC”)方案和/或细粒度FRC方案来获取。每个核的动态特征分析可以存储在该核自己的存储器中或者与一些或所有核共享的存储器中。当首次获取动态特征分析时,其不包括趋势信息;但是从第二次周期性测试开始,就可以获取趋势信息并在以后的测试之后进行更新。
一旦为每个核创建了动态特征分析,则可以将众核处理器中的核根据其特性分组为不同的仓(bin)。例如,可以将具有最高运行频率的核标记为快核;将低功耗的核标记为低功耗核;将具有良好的趋势信息的核标记为可靠核等等。基于动态特征分析和分组信息,操作系统(“OS”)或中间软件层可以将任务分配给最适合该任务的那些核。例如,如果任务需要密集计算,则可以将该任务分配给快核。一旦为该任务选择了某些核,众核处理器中的互连结构将会被重新配置以保证所选择的核之间具有高等级的连接性,从而可以在所选择的核之间至少实现可接受的带宽和延迟。此外,OS可以响应于环境改变为任务重新分配核,并且互连结构可以相应地被重新配置。
说明书中对所公开主题的“一个实施例”或者“实施例”的引用表示结合该实施例描述的特定特征、结构或特性包含在所公开主题的至少一个实施例中。从而,说明书中各个地方出现的短语“在一个实施例中”并不一定全都指的是同一实施例。
图1说明了示例性众核处理器100的结构。处理器100包括:位于二维(2D)互连结构130上的8×8的核(例如,核110)的阵列。每个核可以具有其本地存储器(图中未示)。还有附加到互连结构130上的共享存储器(例如120)。与具有单核或仅一些核的处理器相比,众核处理器中核的数量较多。因此,与具有单核或仅一些核的处理器中的核相比,众核处理器中的每个核的尺寸较小。尽管图1示出了只具有64个核的示例性处理器100,但是众核处理器中核的数量是可以变化并且可以远远大于64的(例如,256、512或1024)。处理器100还包括输入/输出(I/O)互连(图中未示),以将每个核与外围设备(例如图形设备)连接。在一个实施例中,I/O互连可以围绕在处理器管芯中所有核的周围。在另一个实施例中,I/O互连可以嵌入在所述核之间。
通常,在处理器被封装后对其进行测试以保证其工作正常。然而,对于未来的众核处理器,由于是微缩在越来越小的面积上实现处理技术(例如,在35纳米(nm)或更精细的处理技术),这种一次性工厂测试可能不足以保证其质量。例如,核的最大运行频率可能由于劣化而降低。从而,人们希望能够周期性地测试众核处理器内的核并且根据测试数据改变处理器上运行的应用。周期性测试所产生的数据可以用来创建每个核的特征分析。该特征分析是动态的,因为其可以在每次测试后更新/刷新。每个核的动态特征分析可以包括与核的最大频率、功耗、功率泄露、功能正确性以及其他参数有关的信息。动态特征分析还可以包括这些参数的趋势信息。
图2示出了对众核处理器中的每个核周期性地执行动态特征分析的动态特征分析装置200的一个示例性方框图。装置200包括:功耗测量模块210、温度传感器220、运行速度测量模块230、功能正确性检验模块240、可靠性跟踪模块250以及控制器260。注意,除了图2中所示的部件之外,动态特征分析装置还可以包括用于测量核的其他参数的其他部件。动态特征分析装置中的部件可以以固件和/或硬件来实现,并且可以存储在众核处理器中。
功耗测量模块210可以通过运行功率病毒程序或其他耗费功率应用来测量核的功耗。功耗测量模块还可以通过测量核所耗用的电流、电压降或者甚至是核的温度来测量核的功耗。在一个实施例中,众核处理器可以具有一个功耗测量模块来在每次测试期间依次或并行地测量每个核的功耗。在另一实施例中,每个核可以具有功耗测量模块,或者多个核可以共享一个功耗测量模块。温度传感器220可以与功耗测量模块一起工作以测量由众核处理器中每个核的功耗所引起的温度上升和/或测量众核处理器中的每个核的功率泄露。可以通过核的泄漏电流来测量核的功率泄露。泄漏电流可以与核的温度和电压降结合使用来获取核的功率泄露和趋势信息。温度传感器220还可以用来确定众核处理器管芯中的温度变化,并识别管芯中的热点(hot spot)。这样所获取的信息可以指示哪些核产生了比其他核更多的热量,从而OS可以相应地为任务分配核,以避免任务集中在那些倾向于产生更多热量的核上。
运行速度测量模块230可以通过动态改变核的电压供应和锁相环(PLL)时钟频率来测量核的最大运行频率。通常,电压升高使得核的运行频率升高。通过逐步增加PLL时钟频率直到PLL时钟频率不能再升高为止,可以在能够提供给核的电压的上限下获得核的最大运行频率。核的动态特征分析可以保持一组运行频率,其中每个运行频率是某个电压值下的最大运行频率。运行频率测量模块可以与功耗测量模块和温度传感器协调以协作地测量核的功耗、功率泄漏以及最大运行频率。
功能正确性检验模块240可以通过使用核级功能检验方案来动态地检测任何错误或故障。当使用这种方案时,第二个核即“检验器”与“主”核锁步执行。检验器对主核的输出进行采样,将那些值与它自己内部计算的值进行比较,并且在出现不匹配时断言一个错误信号。检验器也可以进行其他操作。这样它不仅是例如在FRC方案中的一个冗余核,而且还可以同时执行其他有用的工作。当检验器的结果与主核的结果不匹配时,可以使用第三个核来重新运行该比较处理。如果第三个核的结果与检验器或者主核的结果匹配,则可以将检验器和主核中其结果与第三个核的结果不匹配的那个核确定为出错的核。在第三个核的结果与检验器或者主核的结果都不匹配的情况下,第三个核本身可能是有故障的,就可能需要第四个核来重新运行该比较处理。该处理可能继续,直到重新运行该计算处理的额外的核的结果与检验器或者主核的结果匹配为止。可以对出现故障的或者较慢的处理器进行标记以将其置入特定的故障仓中,从而进行适当的任务分配。
功能正确性检验模块可以以细粒度级别(例如,每一个或几个周期)或者以粗粒度级别(例如,每100个周期)来检验所述结果。功能正确性检验模块可以获取粗粒度信息,如失败的测试部分和出错数量等等,还可以获取细粒度信息,如哪些功能块或者指令发生错误。基于FRC的功能正确性检验可以在如图3A和3B所示的两个相邻的核之间执行。功能正确性检验的配对方式可以规则地改变(例如,从图3A中所示的配对方式改变为图3B中所示的配对方式)以降低故障核总是检验功能正常的核的机会。在另一实施例中,可以选择几个核来对处理器中的所有其他核执行基于FRC的功能正确性检验。所选择的这些核还执行它们自身之间的功能正确性检验(例如,它们自身之间的成对检验)。功能正确性检验模块可以确定如何执行检验,例如是否使用成对检验、何时改变配对或者是否选择几个核来进行检验。
功能正确性检验模块可以在规则的检验点处验证计算结果的正常运行期间来执行检验。对于非关键应用(其中功耗可能是比功能精确性更重要的因素),还可以在待机模式下执行这些检验。实例包括在便携设备上运行的图形应用。功能检验可以使用用户应用程序或者系统地检验核的每个功能模式的预定的测试例行程序。功能正确性检验期间发现的错误可以是暂态的或者静态的。可以通过重新进行同一检验来区分暂态错误和静态错误。如果重新检验之后错误消失,则这些错误是暂态的;否则它们就是静态的。虽然暂态错误可能没有静态错误的危害那样大,但是可以对更易出现暂态错误的核进行标记以更进一步地监控。
如图2中所示的可靠性跟踪模块250可以使用嵌入式例行程序来获取参数的趋势信息,所述参数例如是最大运行频率、功耗和功率泄漏、功能错误率等。第一次测试后并不能获得趋势信息。在第二次测试之后,可以将第二次测试的结果与第一次测试的结果进行比较以获取这些测试之间的改变信息。通常,由于获得了更多数据,所以趋势信息将随着时间而变得更加可靠。
控制器260可以协调动态特征分析装置200中的不同部件并控制这些部件的运行。例如,控制器可以触发动态特征分析的测试。一旦测试被触发,不同的部件(例如,功耗测量模块和运行速度测量模块)可以开始测量它们相应的参数。在一个实施例中,控制器可以自己周期性地触发动态特征分析的测试。在另一实施例中,OS可以请求控制器来触发测试。
此外,控制器可以在每次测试期间控制每个部件测量的时间。例如,控制器可以要求温度传感器等待直到测试应用(例如,耗费功率应用)在测量温度之前运行特定一段时间为止。控制器还可以在测试期间命令部件什么也不执行。例如,在第一次测试期间,控制器可以要求可靠性跟踪模块什么也不执行;控制器还可以请求可靠性跟踪模块每多次测试而不是每一次测试获取趋势信息。此外,控制器可以指示部件使用特定方法来获取希望的信息。例如,控制器可以指示功能正确性检验模块使用成对方法来进行检验并且在特定数量的测试之后改变配对。而且,控制器可以在不同部件之间协调以获取特定参数。例如,控制器可以在功耗测量模块、温度传感器和运行速度测量模块之间进行协调,以获取核的功耗、电压、功率泄露以及运行速度之间的关系。
尽管图2中未示出,但在动态特征分析期间获取的信息可以存储在众核处理器内的共享存储器中。可以将共享存储器的预定义扇区指定为存储所有核的动态特征分析。动态特征分析可以被OS和/或其他应用访问。
在一个实施例中,核的动态特征分析可以由如图3A-3B所示的相邻核来构建。例如,每个核可以具有能够用来测量其相邻核的功耗和功率泄漏的功耗测量模块。用于构建动态特征分析的配对方式可以规则地改变(例如,从图3A中所示的配对方式改变为图3B中所示的配对方式)以降低故障核为功能正常的核构建错误特征分析的机会。在另一实施例中,特定的核可以专门用作特征分析构建器。这些特征分析构建器为其他核彼此之间构建动态特征分析。
图4示出了用于为众核处理器中的每个核执行动态特征分析的一个示例性处理400的流程图。在方框410,启动测试。可以由OS周期性地(例如每个小时)或者在任意时间启动测试。在方框420,可以测量每个核的功耗。在方框430,可以测量每个核的最大运行速度。可以测量每个电压等级下的最大运行速度。在方框440,可以测量每个核的管芯区域的温度以识别热点和温度变化。在方框450,可以执行功能正确性检验。尽管在图4中出于说明目的而分别示出了方框420到450,但是这些方框涉及的功能可以依次执行、并行执行、或者以交错方式执行。此外,还可以执行其他动作以获取每个核的动态特征分析的更多参数或者这些参数之间的关系。
在方框460,可以从数据中推导出表征核的更多参数,所述数据是从方框420到450所执行的功能中获得的。注意,方框460处形成的功能可以与前面的方框(例如,方框420或者几个方框的组合)中执行的功能合并。在方框470,可以通过将在当前测试期间获得的参数与前面的测试所获得的参数进行比较来获得趋势信息。这是从第二次测试才开始执行的。可以由表征核的参数的趋势信息来指示核的可靠性。在方框480,可以获取和存储包括每个核的所有参数及这些参数的趋势信息的动态特征分析。注意,出于说明目的而将该方框与其他方框分别显示。实际中,可以在一旦获取这些参数时就对它们进行存储。
图5示出了可以使用众核处理器的一个示例性计算系统500。计算系统500可以包括与系统互连部件515相耦合的一个或多个处理器510。处理器510可以是具有动态特征分析装置来为每个核构建动态特征分析的众核处理器。动态特征分析可以通过动态特征分析装置本身启动的周期性测试来构建,或者通过OS所启动的测试来构建。每个动态特征分析可以包括与核的最大运行频率、功耗、功率泄露、功能正确性以及其他参数有关的信息。动态特征分析还可以包括这些参数的趋势信息。
计算系统500还可以包括与系统互连部件515相耦合的芯片组530。芯片组530可以包括一个或多个集成电路封装或芯片。芯片组530可以包括一个或多个设备接口535来支持向计算系统500的其他部件560发送数据和/或从计算系统500的其他部件560接收数据,所述其他部件560例如是BIOS固件、键盘、鼠标、存储设备、网络接口等。芯片组530可以耦合到外部部件互连(PCI)总线570。芯片组530可以包括向PCI总线570提供接口的PCI桥545。PCI桥545可以提供处理器510和其他部件560以及诸如音频设备580和盘驱动器590之类的外围设备之间的数据通路。尽管未示出,但是其他设备也可以耦合到PCI总线570。
此外,芯片组530可以包括与主存储器550相耦合的存储器控制器525。主存储器550可以存储数据以及由处理器510或系统中所包括的其他设备执行的指令序列。存储器控制器525可以响应于与处理器510以及计算系统500中的其他设备相关联的存储器事务来访问主存储器550。在一个实施例中,存储器控制器550可以位于处理器510中或者位于某些其他电路中。主存储器550可以包括提供可寻址的存储位置的各种存储器设备,存储器控制器525可以从所述可寻址的存储位置读取数据和/或向其写入数据。主存储器550可以包括一个或多个不同类型的存储器设备,如动态随机存取存储器(DRAM)设备、同步DRAM(SDRAM)设备、双数据速率(DDR)SDRAM设备或者其他存储器设备。
图6示出了可以使用众核处理器的另一个示例性计算系统600。系统600可以包括多个处理器,如处理器0 620A。系统600中的一个或多个处理器可以具有众多个核。众核处理器可以具有动态特征分析装置来为每个核构建动态特征分析。动态特征分析可以通过由动态特征分析装置本身启动的周期性测试来构建,或者通过OS所启动的测试来构建。每个动态特征分析可以包括与核的最大运行频率、功耗、功率泄露、功能正确性以及其他参数有关的信息。动态特征分析还可以包括这些参数的趋势信息。系统600中的处理器可以使用系统互连部件610互相连接。系统互连部件可以是前端总线(FSB)。每个处理器可以通过系统互连连接到输入/输出(IO)设备以及存储器630。
图7示出了使用众核处理器的又一示例性计算系统700。在系统700中,连接多个处理器(例如,720A、720B、720C和720D)的系统互连710是基于链接的点到点连接。每个处理器可以通过链接集线器(例如,730A、730B、730C和730D)连接到系统互连。在一些实施例中,链接集线器可以与存储器控制器共处,其能够协调到系统存储器/来自系统存储器的业务量。一个或多个处理器可以具有多个核。众核处理器可以具有动态特征分析装置来为每个核构建动态特征分析。动态特征分析可以通过动态特征分析装置本身启动的周期性测试来构建,或者通过OS所启动的测试来构建。每个动态特征分析可以包括与核的最大运行频率、功耗、功率泄露、功能正确性以及其他参数有关的信息。动态特征分析还可以包括这些参数的趋势信息。
图8示出了使用众核处理器中的每个核的动态特征分析来提高任务执行效果的一个示例性系统800的方框图。系统800可以包括用于众核处理器中的所有核的动态特征分析810、核成仓(binning)模块820、任务控制器830、重配置器840以及性能和功率管理器850。动态特征分析810可以是由如图2中所描述的动态特征分析装置构建和刷新的。动态特征分析可以存储在由众核处理器中的多个核所共享的存储器的指定扇区中。动态特征分析可由OS来访问。
核成仓模块820可以根据动态特征分析中的一个或多个核的表征参数将众核处理器中的核分组为一个或多个仓。例如,基于动态特征分析,可以将一些核指定为快核,将一些核指定为慢核,而将其他核保留为备用核。可以调整仓的数量以更好地控制特定仓中的核的数量。可以将随时间性能变差的核从快池(fast pool)移动到慢池(slow pool)中。当这种情况出现时,可以试着通过多种方式来将处理器的性能保持在其仓级。可以将备用核添加到快池中,或者可以使用电压调整或体偏置(body bias)调节技术来使现有的核运行在更高的频率。
在另一实例中,可以根据核的功耗等级或者根据诸如可靠性参数之类的其他参数来将核分组到仓中。而在另一实例中,可以将核分组为不同组的仓:一组仓是根据运行速度进行分组的,一组仓是根据功耗等级进行分组的,一组仓是根据可靠性参数进行分组的等等。在一个实施例中,可以在构建动态特征分析之后将核分组为不同组的仓。成仓处理可以由众核处理器中嵌入的软件/固件模块来执行。在另一实施例中,可以在OS接收到任务时执行建仓处理,以使得可以根据任务的具体需求将核分组为仓。例如,如果任务是计算非常密集的,则可以根据核的运行速度将这些核分组为仓;如果任务要依靠电池来执行,则可以根据核的功耗等级将这些核分组为仓。而在另一个实施例中,核成仓模块可以在为所有核构建了动态特征分析之后根据诸如运行速度和功耗之类的一些参数将核分组为多个基本仓;并且当接收到任务时可以在OS的指导下根据任务的具体需求将核分组为其他组仓。可以在任务完成后将为具体的一个任务(或多个任务)形成的仓拆除或保留。
由于在不同测试中核的特性可能改变,所以可能需要在每次测试之后对不同仓中的核重新分组;和/或可以将最初落入一个仓但是在新的测试之后不满足该仓的标准的核进行修整从而使其仍能保留在该仓中。例如,提高核的电压可以提高其运行速度,降低核的电压和/或速度可以降低核的功耗。
如图8中所示的任务分配器830可以基于核当前的动态特征分析将任务分配和/或动态重新分配给核。在一个实施例中,可以基于任务类别预先确定每个任务的需求。例如,如果任务是要实时处理大量数据,则该任务可能需要快核;如果任务是要在处理器依靠电池电力运行时被执行,则该任务可能需要具有较低等级功耗的核。在另一实施例中,OS可以对任务进行分析以确定其需求。基于每个任务的需求,任务分配器可以将任务分配给具有对应特性的核或者不同核的组合,以使得能够满足任务的需求。如果核特征分析在任务执行期间发生改变,则任务分配器可以动态地改变分配以保持该任务专属的性能等级。
重配置器840可以重新配置不同核之间的互连。可以将众核处理器(如图1中所示的众核处理器)中的互连结构重新配置以从核的每个仓中得到好处。由于核属于特定仓的资格可能随时间而改变,所以核之间的带宽和延迟将受到静态结构受大范围波动的影响。从而,人们希望具有灵活和动态可重新配置的结构。在每个检查点处,当仓中的核的混合发生改变时,如果需要保持高等级的连接性,则可以评估仓中多个核之间的可用带宽和延迟,并且重新配置结构。虽然核在管芯上的物理位置不会改变,但是组成该结构的开关可以被重新配置,以使得同一仓中的核逻辑上互相接近。多个核的可用性、备用核的池以及高连接性的结构使得能够以最小的性能下降来从故障中快速恢复。一旦测试识别出了特定核的问题,则解除该核的任务并将其移出活动的服务。来自备用池的核可以代替其位置。因此,还可以重新配置互连结构来减轻从服务中剔除故障核的影响。这显著地提高了处理器容忍由于变化和劣化而引起的故障的能力。
如图8中所示的性能和功率管理器850可以响应于变化的环境来将任务重新分配给核的不同组合或者重新平衡同一组核。将系统从电力电源供电改变为电池电源供电是需要将任务重新分配给泄漏较少、功耗较小小的核的一个实例。由大量耗费功率应用引起的系统负载的增加还使得重新平衡核之间的工作负荷成为必要。从而,在对核进行动态管理时,除了核特征分析本身之外,还需要考虑系统和环境因素。为具有性能需求的单核处理器平衡电压、频率、体偏置的技术也可以应用于具有额外的最优可变数量的可用核的众核环境。例如,可以使用速度步进技术来响应于情况的改变而重新平衡分配给任务的核,在这种条件下,可以分别通过降低或升高核的电压供应来降低或升高核的速度;并且可以通过降低核的运行速度和/或其电压供应来降低核的功耗。
图9说明了用于管理众核处理器的性能和功耗的一个实例。图的x轴表示GFLOP性能;y轴表示一组核所消耗的功率。图中的曲线表示对于不同数量的核,性能和功耗之间的关系。曲线910表示核的数量是64(例如,8×8)的情况;曲线920表示核的数量是80(例如,8×10)的情况;曲线930表示核的数量是96(例如,8×12)的情况。可以看出,使用的核越多,则性能越好,所消耗的功率也越小。这是因为当使用更多的核时,每个核可以以较低的电压并行运行以实现相同或者甚至更好的性能(与使用较少的核并且每个核以较高的电压运行的情况相比),并且从而可以降低总体的功耗。因此,当变化的环境需要降低功耗时,性能和功率管理器可以决定使用更多个核并且降低每个核的电压供应。
图10示出了用于使用众核处理器中的每个核的动态特征分析来提高任务执行效果的一个示例性处理1000的流程图。可以在构建了众核处理器中的核的动态特征分析之后执行处理1000。在方框1010,可以由OS接收任务。在方框1020,OS可以分析该任务以确定其需求(例如,性能和功率需求)。确定任务需求的一种示例性方法是查看要由该任务处理的数据。例如,如果有大量数据要实时处理,则该任务很可能需要快核。在一些情况下,OS可能不需要分析该任务来确定其需求,因为这些需求是基于一些预定任务类别而预先表征的(例如,可以将由电池供电的移动应用预先表征为需要低功耗的应用)。在方框1030,可以基于核的动态特征分析以及任务的需求而将众核处理器中的核分组为不同的仓。在一个实施例中,甚至可以在接收到任务之前部分或完全地执行在该方框处的成仓处理。
在方框1040,可以将任务分配给那些其特征可以使它们满足该任务的需求的核。在方框1050,可以对众核处理器中的互连结构进行重新配置以使得执行同一任务的核可以如此连接以提高可用带宽并且降低它们之间的延迟。在方框1060,可以执行该任务。在执行该任务的处理期间,变化的环境可能会触发将不同组核重新分配给该任务和/或重新平衡同一组核。
尽管已经参考图1-10中的方框和流程图描述了所公开的主题的示例性实施例,但是本领域一般技术人员很容易知道,还可以替代地使用实现所公开的主题的许多其他方法。例如,可以改变流程图中的方框的执行顺序,和/或可以改变、删去或合并所描述的方框/流程图中的一些方框。
在前面的描述中,已经描述了所公开的主题的各个方面。为了说明的目的,阐述了具体的数字、系统和配置以提供对主题的全面理解。但是,对于利用本公开优点的本领域技术人员来说显而易见的是,该主题也可以在不使用这些具体细节的情况下来实现。在其他实例中,可以省略、简化、合并或拆分公知的特征、部件或模块,以便不对所公开的主题造成混淆。
所公开主题的各个实施例可以以硬件、固件、软件或其组合来实现,并且可以参考或结合程序代码来描述,所述程序代码如指令、函数、进程、数据结构、逻辑、应用程序、设计表示或仿真格式、模拟、以及设计结构,所述程序代码在被机器访问时使得机器执行任务、定义抽象数据类型或低级硬件关联(hardware context)或者产生结果。
对于仿真而言,程序代码可以使用硬件描述语言或者其他本质上提供如何按期望那样执行所设计的硬件的模型的功能描述语言来表示硬件。程序代码可以是汇编或机器语言,或者可以被编译和/或解释的数据。此外,本领域公知将表述的任意形式的软件理解为进行动作或产生结果。这种表达只是陈述由处理系统执行程序代码以使得处理器执行动作或产生结果的一种简写方式。
可以将程序代码存储在例如易失性和/或非易失性存储器中,如存储设备和/或相关联的机器可读或机器可访问介质,包括固态存储器、硬盘驱动器、软盘、光存储装置、磁带、闪存、存储棒、数字视频盘、数字多用途盘(DVD)等,以及更多的外来介质,如机器可访问生物学状态保留存储装置。机器可读介质可以包括以机器可读的形式存储、发送或接收信息的任意机构,介质可以包括对程序代码进行编码的电、光、声或其他形式的传播信号或载波可以通过的有形介质,如天线、光纤、通信接口等。程序代码可以以分组、串行数据、并行数据、传播信号等形式传输,并且可以以压缩或加密格式使用。
程序代码可以在可编程机器上执行的程序中实现,所述可编程机器例如是移动或固定计算机、个人数字助理、机顶盒、蜂窝电话和传呼机,以及其他电子设备,每个所述可编程机器都包括有处理器、处理器可读的易失性和/或非易失性存储器、至少一个输入设备和/或一个或多个输出设备。程序代码可以应用于使用输入设备所输入的数据以执行所描述的实施例并且产生输出信息。输出信息可以应用于一个或多个输出设备。本领域普通技术人员可以知道,所公开的主题的实施例可以利用各种计算机系统配置来实现,所述计算机系统配置包括多处理器或众核处理器系统、小型计算机、大型计算机以及可以虚拟嵌入在任意设备中的常见的或微缩的计算机或处理器。所公开的主题的实施例还可以在分布式计算环境中实现,在分布式计算环境中,任务可以由通过通信网络链接的远程处理设备来执行。
尽管可以将操作描述为顺序的处理,但实际上,一些操作可以并行、并发和/或在分布式环境中执行,其中程序代码本地和/或远程存储以供单或多处理器机器访问。此外,在一些实施例中,可以在不脱离所公开的主题的精神的情况下重新安排操作的顺序。程序代码也可以由嵌入式控制器使用或与嵌入式控制器结合使用。
虽然已经参考说明性实施例描述了所公开的主题,但是本说明书并不是限制性的。对于所公开的主题所属领域的技术人员来说显而易见的是,对说明性实施例的各种修改以及主题的其他实施例均被视为落入所公开的主题的范围内。

Claims (21)

1.一种众核处理器,包括:
多个处理核;
互连结构;
至少一个存储器模块,所述多个处理核和所述至少一个存储器模块耦合到所述互连结构;以及
特征分析模块,用于周期性地执行对所述众核处理器中的每个核的特性进行动态特征分析的处理,其中,所述特征分析模块包括:
功耗测量模块,用于周期性地测量所述众核处理器中的每个核在不同电压和不同速度下的功耗;
运行速度测量模块,用于周期性地测量所述众核处理器中的每个核在不同电压下的最大速度;以及
可靠性跟踪模块,用于至少部分基于所测量的所述众核处理器中的每个核的功耗数据和最大速度来获取所述众核处理器中的每个核的可靠性信息。
2.如权利要求1所述的众核处理器,还包括:
至少一个温度传感器,用于测量温度分布,并识别所述众核处理器中的每个核的管芯区域和所述互连结构中的热点。
3.如权利要求2所述的众核处理器,其中,所述可靠性跟踪模块获取所述温度分布和所述热点随时间的趋势信息。
4.如权利要求1所述的众核处理器,还包括:
功能正确性检验模块,用于检验所述众核处理器中的每个核的功能正确性。
5.如权利要求4所述的众核处理器,其中,所述功能正确性检验模块至少以粗粒度级执行功能正确性检验。
6.如权利要求4所述的众核处理器,其中,所述可靠性跟踪模块获取所述众核处理器中的每个核的功能正确性随时间的趋势信息。
7.如权利要求1所述的众核处理器,还包括:
控制器,用于在对所述众核处理器中的每个核的特性进行动态特征分析的处理中,控制和协调至少所述功耗测量模块、所述运行速度测量模块以及所述可靠性跟踪模块。
8.一种用于对众核处理器中的每个核的特性进行动态特征分析的方法,包括:
周期性地启动对所述众核处理器中的每个核的测试;
在每次测试期间测量所述众核处理器中的每个核在不同电压和不同运行速度下的功耗数据;
在每次测试期间测量所述众核处理器中的每个核在不同电压下的最大运行速度;以及
至少部分基于在每次测试期间获取的所述功耗数据和所述最大运行速度,获取所述众核处理器中的每个核的可靠性信息。
9.如权利要求8所述的方法,还包括:
测量温度以获取所述众核处理器内的每个核的管芯区域和互连结构中的热点和温度变化;以及
进行功能正确性检验以获取所述众核处理器中的每个核的功能正确性信息。
10.如权利要求9所述的方法,其中,所述可靠性信息包括:
所述众核处理器内的每个核的所述管芯区域中的所述热点和温度变化以及所述功能正确性信息随时间的趋势信息。
11.如权利要求9所述的方法,还包括获取和存储所述众核处理器中的每个核的性能特征分析,所述性能特征分析包括所述众核处理器中的每个核的下列各项中的至少一项:
所述功耗数据;
所述最大运行速度;
所述功能正确性信息;
所述每个核的管芯区域中的所述热点和温度变化;以及
所述功耗数据、所述最大运行速度、所述功能正确性信息、所述每个核的管芯区域中的所述热点和温度变化中至少一项的趋势信息。
12.一种计算系统,包括:
众核处理器,所述众核处理器包括如权利要求1-7中的任何一项所述的特征分析模块,用于创建所述众核处理器中的每个核的动态特征分析;以及
任务分配模块,用于接收任务,并至少部分基于所述任务的需求和所述众核处理器中的每个核的所述动态特征分析将所述任务分配给第一组核。
13.如权利要求12所述的系统,其中,所述众核处理器还包括:
核成仓模块,其基于每个核的所述动态特征分析,使用核的至少一个特性作为标准来将所述众核处理器中的核分组为多个仓,所述多个仓由所述任务分配模块使用来将所述任务分配给所述第一组核。
14.如权利要求12所述的系统,还包括性能和功率管理器,用于:
响应于条件的改变,将所述任务重新分配给第二组核和/或重新平衡所述第一组核,所述第二组核包括至少一个与所述第一组核不同的核。
15.如权利要求14所述的系统,还包括重配置器,用于重新配置所述第一组核和所述第二组核中的至少一组内的互连。
16.如权利要求14所述的系统,其中,所述条件的改变包括:
所述第一组核中的至少一个核的条件的改变;和/或
环境的改变。
17.一种使用众核处理器来高效地执行任务的方法,包括:
接收任务;
分析所述任务以确定所述任务的需求;
基于所述任务的所述需求,将所述任务分配给所述众核处理器中的第一组核,其中,所述第一组核的特性使所述第一组核满足所述任务的所述需求,所述特性包括通过权利要求8获得的功耗数据、最大运行速度和可靠性信息;以及
使用所述第一组核执行所述任务。
18.如权利要求17所述的方法,还包括:
根据所述众核处理器中的核的至少一个特性,基于每个核的动态特征分析将所述众核处理器中的核分组为多个仓。
19.如权利要求17所述的方法,还包括:
响应于条件的改变,将所述任务重新分配给第二组核和/或重新平衡所述第一组核,所述第二组核包括至少一个与所述第一组核不同的核。
20.如权利要求19所述的方法,其中,所述条件的改变包括:
所述第一组核中的至少一个核的条件的改变;和/或
环境的改变。
21.如权利要求19所述的方法,还包括重新配置所述第一组核和所述第二组核中的至少一组内的互连。
CN2006800359677A 2005-09-28 2006-09-26 众核处理器的可靠计算 Active CN101278264B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/238,488 US7412353B2 (en) 2005-09-28 2005-09-28 Reliable computing with a many-core processor
US11/238,488 2005-09-28
PCT/US2006/037523 WO2007038530A2 (en) 2005-09-28 2006-09-26 Reliable computing with a many-core processor

Publications (2)

Publication Number Publication Date
CN101278264A CN101278264A (zh) 2008-10-01
CN101278264B true CN101278264B (zh) 2012-03-21

Family

ID=37895577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800359677A Active CN101278264B (zh) 2005-09-28 2006-09-26 众核处理器的可靠计算

Country Status (5)

Country Link
US (1) US7412353B2 (zh)
JP (4) JP5535481B2 (zh)
CN (1) CN101278264B (zh)
DE (1) DE112006002265B4 (zh)
WO (1) WO2007038530A2 (zh)

Families Citing this family (170)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698089B2 (en) * 2005-11-29 2010-04-13 International Business Machines Corporation Generation of software thermal profiles executed on a set of processors using processor activity
US7395174B2 (en) * 2005-11-29 2008-07-01 International Business Machines Corporation Generation of software thermal profiles executed on a set of processors using thermal sampling
US7848901B2 (en) 2005-11-29 2010-12-07 International Business Machines Corporation Tracing thermal data via performance monitoring
US7721128B2 (en) * 2005-11-29 2010-05-18 International Business Machines Corporation Implementation of thermal throttling logic
US7681053B2 (en) * 2005-11-29 2010-03-16 International Business Machines Corporation Thermal throttle control with minimal impact to interrupt latency
US7460932B2 (en) * 2005-11-29 2008-12-02 International Business Machines Corporation Support of deep power savings mode and partial good in a thermal management system
US7603576B2 (en) * 2005-11-29 2009-10-13 International Business Machines Corporation Hysteresis in thermal throttling
US7386414B2 (en) * 2005-11-29 2008-06-10 International Business Machines Corporation Generation of hardware thermal profiles for a set of processors
US7512513B2 (en) * 2005-11-29 2009-03-31 International Business Machines Corporation Thermal throttling control for testing of real-time software
US7490017B2 (en) * 2005-11-29 2009-02-10 International Business Machines Corporation Analytical generation of software thermal profiles
US7480586B2 (en) * 2005-11-29 2009-01-20 International Business Machines Corporation Thermal interrupt generation
US7512530B2 (en) * 2005-11-29 2009-03-31 International Business Machines Corporation Generation of software thermal profiles for applications in a simulated environment
US7376532B2 (en) * 2005-11-29 2008-05-20 International Business Machines Corporation Maximal temperature logging
US20070124618A1 (en) * 2005-11-29 2007-05-31 Aguilar Maximino Jr Optimizing power and performance using software and hardware thermal profiles
US20070204106A1 (en) * 2006-02-24 2007-08-30 James Donald Adjusting leakage power of caches
JP4653841B2 (ja) * 2006-02-28 2011-03-16 インテル・コーポレーション 多数コアプロセッサの信頼性強化
JP5040136B2 (ja) * 2006-03-27 2012-10-03 富士通セミコンダクター株式会社 チューニング支援装置、チューニング支援プログラム、チューニング支援プログラムを記録したコンピュータ読み取り可能な記録媒体およびチューニング支援方法
US7389195B2 (en) * 2006-03-31 2008-06-17 International Business Machines Corporation Uniform power density across processor cores at burn-in
US8037893B2 (en) * 2006-05-03 2011-10-18 International Business Machines Corporation Optimizing thermal performance using thermal flow analysis
US7596430B2 (en) * 2006-05-03 2009-09-29 International Business Machines Corporation Selection of processor cores for optimal thermal performance
US7552346B2 (en) * 2006-05-03 2009-06-23 International Business Machines Corporation Dynamically adapting software for reducing a thermal state of a processor core based on its thermal index
US20070260894A1 (en) * 2006-05-03 2007-11-08 Aguilar Maximino Jr Optimizing thermal performance using feed-back directed optimization
US7555666B2 (en) * 2006-05-04 2009-06-30 Dell Products L.P. Power profiling application for managing power allocation in an information handling system
US20080005591A1 (en) 2006-06-28 2008-01-03 Trautman Mark A Method, system, and apparatus for dynamic thermal management
GB2457752B (en) * 2006-06-30 2010-05-05 Intel Corp Leakage power estimation
US7844838B2 (en) * 2006-10-30 2010-11-30 Hewlett-Packard Development Company, L.P. Inter-die power manager and power management method
US8412981B2 (en) * 2006-12-29 2013-04-02 Intel Corporation Core sparing on multi-core platforms
KR100893527B1 (ko) * 2007-02-02 2009-04-17 삼성전자주식회사 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법
US8407451B2 (en) * 2007-02-06 2013-03-26 International Business Machines Corporation Method and apparatus for enabling resource allocation identification at the instruction level in a processor system
US8429663B2 (en) * 2007-03-02 2013-04-23 Nec Corporation Allocating task groups to processor cores based on number of task allocated per core, tolerable execution time, distance between cores, core coordinates, performance and disposition pattern
US20080244222A1 (en) * 2007-03-30 2008-10-02 Intel Corporation Many-core processing using virtual processors
US8094706B2 (en) * 2007-04-10 2012-01-10 International Business Machines Corporation Frequency-based, active monitoring of reliability of a digital system
US8490103B1 (en) * 2007-04-30 2013-07-16 Hewlett-Packard Development Company, L.P. Allocating computer processes to processor cores as a function of process utilizations
US8151122B1 (en) 2007-07-05 2012-04-03 Hewlett-Packard Development Company, L.P. Power budget managing method and system
US8180997B2 (en) * 2007-07-05 2012-05-15 Board Of Regents, University Of Texas System Dynamically composing processor cores to form logical processors
US7886172B2 (en) * 2007-08-27 2011-02-08 International Business Machines Corporation Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management
US8365184B2 (en) * 2007-08-31 2013-01-29 Apple Inc. Multi-core resource utilization planning
US7962774B2 (en) * 2007-10-04 2011-06-14 Wisconsin Alumni Research Foundation Over-provisioned multicore processor
US8458497B2 (en) * 2007-10-11 2013-06-04 Qualcomm Incorporated Demand based power control in a graphics processing unit
US8284205B2 (en) * 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
US8027798B2 (en) * 2007-11-08 2011-09-27 International Business Machines Corporation Digital thermal sensor test implementation without using main core voltage supply
US8578193B2 (en) * 2007-11-28 2013-11-05 International Business Machines Corporation Apparatus, method and program product for adaptive real-time power and perfomance optimization of multi-core processors
US7996346B2 (en) * 2007-12-19 2011-08-09 International Business Machines Corporation Method for autonomic workload distribution on a multicore processor
US7996648B2 (en) 2007-12-19 2011-08-09 Microsoft Corporation Coupled symbiotic operating systems
WO2009091829A1 (en) * 2008-01-14 2009-07-23 Bivio Networks, Inc. Systems and methods for asymmetric multiprocessing
US8800002B2 (en) * 2008-02-18 2014-08-05 Microsoft Corporation Inter-process networking for many-core operating systems
JP5211778B2 (ja) 2008-03-17 2013-06-12 富士通株式会社 ジョブ割当装置、並列計算機システム、ジョブ割当方法、及び、ジョブ割当プログラム
US7941637B2 (en) * 2008-04-15 2011-05-10 Freescale Semiconductor, Inc. Groups of serially coupled processor cores propagating memory write packet while maintaining coherency within each group towards a switch coupled to memory partitions
US20090288092A1 (en) * 2008-05-15 2009-11-19 Hiroaki Yamaoka Systems and Methods for Improving the Reliability of a Multi-Core Processor
US20090285261A1 (en) * 2008-05-17 2009-11-19 Lsi Corporation Integrated Circuit System Monitor
US20110213950A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20110213998A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20110213947A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20090309243A1 (en) * 2008-06-11 2009-12-17 Nvidia Corporation Multi-core integrated circuits having asymmetric performance between cores
US8726290B2 (en) * 2008-06-12 2014-05-13 Yahoo! Inc. System and/or method for balancing allocation of data among reduce processes by reallocation
US8296773B2 (en) * 2008-06-30 2012-10-23 International Business Machines Corporation Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance
WO2010010723A1 (ja) * 2008-07-22 2010-01-28 トヨタ自動車株式会社 マルチコアシステム、車両用電子制御ユニット、タスク切り替え方法
JP5299161B2 (ja) * 2008-08-22 2013-09-25 富士通株式会社 計算機装置および消費電力のサンプリング方法
US8261117B2 (en) * 2008-09-11 2012-09-04 International Business Machines Corporation Virtualization in a multi-core processor (MCP)
US8732716B2 (en) 2008-09-30 2014-05-20 International Business Machines Corporation Virtualization across physical partitions of a multi-core processor (MCP)
US9043795B2 (en) * 2008-12-11 2015-05-26 Qualcomm Incorporated Apparatus and methods for adaptive thread scheduling on asymmetric multiprocessor
JP2010211331A (ja) * 2009-03-06 2010-09-24 Nec Corp 業務管理システム、管理装置、業務管理方法、プログラム及び記録媒体
US9189282B2 (en) * 2009-04-21 2015-11-17 Empire Technology Development Llc Thread-to-core mapping based on thread deadline, thread demand, and hardware characteristics data collected by a performance counter
US8881157B2 (en) * 2009-09-11 2014-11-04 Empire Technology Development Llc Allocating threads to cores based on threads falling behind thread completion target deadline
US20110066830A1 (en) * 2009-09-11 2011-03-17 Andrew Wolfe Cache prefill on thread migration
US9569270B2 (en) * 2009-04-21 2017-02-14 Empire Technology Development Llc Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts
US8924975B2 (en) * 2009-07-23 2014-12-30 Empire Technology Development Llc Core selection for applications running on multiprocessor systems based on core and application characteristics
US8819686B2 (en) * 2009-07-23 2014-08-26 Empire Technology Development Llc Scheduling threads on different processor cores based on memory temperature
EP2457139A1 (en) * 2009-07-24 2012-05-30 Advanced Micro Devices, Inc. Altering performance of computational units heterogeneously according to performance sensitivity
US8738949B2 (en) * 2009-08-31 2014-05-27 Empire Technology Development Llc Power management for processor
JP5444964B2 (ja) * 2009-09-03 2014-03-19 日本電気株式会社 情報処理装置及びスケジューリング方法
EP2362297B1 (en) * 2010-02-25 2014-05-14 Telefonaktiebolaget L M Ericsson (publ) Technique for selecting a frequency of operation in a processor system
US8612984B2 (en) * 2010-04-28 2013-12-17 International Business Machines Corporation Energy-aware job scheduling for cluster environments
JP5345990B2 (ja) * 2010-08-27 2013-11-20 レノボ・シンガポール・プライベート・リミテッド 特定のプロセスを短時間で処理する方法およびコンピュータ
US8942932B2 (en) * 2010-08-31 2015-01-27 Advanced Micro Devices, Inc. Determining transistor leakage for an integrated circuit
US8495395B2 (en) * 2010-09-14 2013-07-23 Advanced Micro Devices Mechanism for controlling power consumption in a processing node
US9268611B2 (en) 2010-09-25 2016-02-23 Intel Corporation Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
US9063730B2 (en) * 2010-12-20 2015-06-23 Intel Corporation Performing variation-aware profiling and dynamic core allocation for a many-core processor
JP2012138020A (ja) * 2010-12-27 2012-07-19 Panasonic Corp マルチチップシステム、通信機器、映像音声装置および自動車
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US8561078B2 (en) * 2011-09-27 2013-10-15 Throughputer, Inc. Task switching and inter-task communications for multi-core processors
US20130117168A1 (en) 2011-11-04 2013-05-09 Mark Henrik Sandstrom Maximizing Throughput of Multi-user Parallel Data Processing Systems
US8468373B2 (en) * 2011-01-14 2013-06-18 Apple Inc. Modifying performance parameters in multiple circuits according to a performance state table upon receiving a request to change a performance state
US8872536B1 (en) * 2011-03-22 2014-10-28 Xilinx, Inc. Characterizing dies
US8745626B1 (en) * 2012-12-17 2014-06-03 Throughputer, Inc. Scheduling application instances to configurable processing cores based on application requirements and resource specification
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US9098561B2 (en) 2011-08-30 2015-08-04 Intel Corporation Determining an effective stress level on a processor
US8799693B2 (en) 2011-09-20 2014-08-05 Qualcomm Incorporated Dynamic power optimization for computing devices
US9098309B2 (en) 2011-09-23 2015-08-04 Qualcomm Incorporated Power consumption optimized translation of object code partitioned for hardware component based on identified operations
US8819484B2 (en) * 2011-10-07 2014-08-26 International Business Machines Corporation Dynamically reconfiguring a primary processor identity within a multi-processor socket server
US8595520B2 (en) 2011-10-12 2013-11-26 Qualcomm Incorporated System and method for determining thermal management policy from leakage current measurement
US8959224B2 (en) 2011-11-17 2015-02-17 International Business Machines Corporation Network data packet processing
US9239611B2 (en) * 2011-12-05 2016-01-19 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including balancing power among multi-frequency domains of a processor based on efficiency rating scheme
US9304570B2 (en) * 2011-12-15 2016-04-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including power and performance workload-based balancing between multiple processing elements
US8806243B2 (en) * 2011-12-28 2014-08-12 Intel Corporation Method of and apparatus for energy savings associated with a graphics core
CN110083494B (zh) * 2011-12-30 2023-07-25 英特尔公司 在多核心环境中管理硬件错误的方法和装置
KR101899811B1 (ko) * 2012-04-04 2018-09-20 엘지전자 주식회사 이동 단말기 및 그 제어 방법, 이를 위한 기록 매체
US8615763B2 (en) 2012-02-01 2013-12-24 Texas Instruments Incorporated System and method of task allocation in multiprocessing environment based on minimum density or maximum harmonicity that results in lower clock frequency
US8782466B2 (en) * 2012-02-03 2014-07-15 Hewlett-Packard Development Company, L.P. Multiple processing elements
US20140359350A1 (en) * 2012-02-24 2014-12-04 Jeffrey A PLANK Wear-leveling cores of a multi-core processor
US9720766B2 (en) * 2012-04-19 2017-08-01 Industry-Academic Cooperation Foundation Chosun University Self-healing, fault-tolerant FPGA computation and architecture
US9003218B2 (en) * 2012-05-21 2015-04-07 International Business Machines Corporation Power shifting in multicore platforms by varying SMT levels
US8977895B2 (en) 2012-07-18 2015-03-10 International Business Machines Corporation Multi-core diagnostics and repair using firmware and spare cores
US9569279B2 (en) 2012-07-31 2017-02-14 Nvidia Corporation Heterogeneous multiprocessor design for power-efficient and area-efficient computing
JPWO2014033941A1 (ja) * 2012-09-03 2016-08-08 株式会社日立製作所 計算機システムおよび計算機システムの制御方法
US9116703B2 (en) * 2012-10-15 2015-08-25 Advanced Micro Devices, Inc. Semi-static power and performance optimization of data centers
WO2014105058A1 (en) * 2012-12-28 2014-07-03 Intel Corporation Optimal logical processor count and type selection for a given workload on platform thermals and power budgeting constraints
US9575542B2 (en) * 2013-01-31 2017-02-21 Hewlett Packard Enterprise Development Lp Computer power management
US9494996B2 (en) * 2013-03-15 2016-11-15 Intel Corporation Processor having frequency of operation information for guaranteed operation under high temperature events
CN103197994B (zh) * 2013-04-26 2014-12-03 哈尔滨工业大学 基于片上网络的众核芯片管理结构容错的方法
US9405340B2 (en) * 2013-06-27 2016-08-02 Intel Corporation Apparatus and method to implement power management of a processor
US9317389B2 (en) 2013-06-28 2016-04-19 Intel Corporation Apparatus and method for controlling the reliability stress rate on a processor
DE102013214398A1 (de) 2013-07-23 2015-01-29 Siemens Aktiengesellschaft Überwachung von redundanten Komponenten
US9026681B2 (en) 2013-08-08 2015-05-05 Qualcomm Incorporated Flexible hardware module assignment for enhanced performance
US9218011B2 (en) 2013-08-28 2015-12-22 Qualcomm Incorporated Corner-case emulation tool for thermal power testing
US9652297B2 (en) * 2013-09-19 2017-05-16 Intel Corporation Techniques for distributed processing task portion assignment
KR101697647B1 (ko) * 2013-10-08 2017-02-01 한국전자통신연구원 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법
CN103645954B (zh) * 2013-11-21 2018-12-14 华为技术有限公司 一种基于异构多核体系的cpu调度方法、装置和系统
US10261875B2 (en) 2013-12-18 2019-04-16 Qualcomm Incorporated Runtime optimization of multi-core system designs for increased operating life and maximized performance
US9606843B2 (en) * 2013-12-18 2017-03-28 Qualcomm Incorporated Runtime optimization of multi-core system designs for increased operating life and maximized performance
US9703613B2 (en) * 2013-12-20 2017-07-11 Qualcomm Incorporated Multi-core dynamic workload management using native and dynamic parameters
JP6360387B2 (ja) * 2014-08-19 2018-07-18 ルネサスエレクトロニクス株式会社 プロセッサシステム、エンジン制御システム及び制御方法
KR102248787B1 (ko) * 2014-08-28 2021-05-06 삼성전자 주식회사 Gpu의 리소스에 대한 전력 소비 제어방법 및 장치
US9904339B2 (en) 2014-09-10 2018-02-27 Intel Corporation Providing lifetime statistical information for a processor
US9619289B2 (en) 2014-09-11 2017-04-11 Dell Products, L.P. Workload optimized server for intelligent algorithm trading platforms
JP6488630B2 (ja) * 2014-10-15 2019-03-27 富士通株式会社 電力測定装置及び電力測定方法
US20160188365A1 (en) * 2014-12-24 2016-06-30 Intel Corporation Computational unit selection
US9939834B2 (en) 2014-12-24 2018-04-10 Intel Corporation Control of power consumption
US9704598B2 (en) 2014-12-27 2017-07-11 Intel Corporation Use of in-field programmable fuses in the PCH dye
US10218779B1 (en) * 2015-02-26 2019-02-26 Google Llc Machine level resource distribution
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US11755484B2 (en) 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US11016770B2 (en) 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
US11126433B2 (en) 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
US10768936B2 (en) 2015-09-19 2020-09-08 Microsoft Technology Licensing, Llc Block-based processor including topology and control registers to indicate resource sharing and size of logical processor
KR20170069730A (ko) 2015-12-11 2017-06-21 삼성전자주식회사 온도 및 공간적인 위치에 따라 코어들의 동작들을 관리하는 연산 처리 장치, 및 연산 처리 장치를 포함하는 전자 장치
US10078544B2 (en) 2015-12-19 2018-09-18 Intel Corporation Apparatus and method for an on-chip reliability controller
CN106560794A (zh) * 2016-08-08 2017-04-12 柏建民 基于远程智能存储单元的分布式多处理器单元系统
US10216246B2 (en) * 2016-09-30 2019-02-26 Intel Corporation Multi-level loops for computer processor control
US10310548B2 (en) 2016-11-07 2019-06-04 Microsoft Technology Licensing, Llc Expected lifetime management
US10740167B2 (en) * 2016-12-07 2020-08-11 Electronics And Telecommunications Research Institute Multi-core processor and cache management method thereof
US10296464B2 (en) 2016-12-09 2019-05-21 Intel Corporation System, apparatus and method for dynamic profiling in a processor
CN108334405A (zh) * 2017-01-20 2018-07-27 阿里巴巴集团控股有限公司 频率异构cpu,频率异构实现方法、装置及任务调度方法
US11531552B2 (en) 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core
JP6798900B2 (ja) * 2017-02-14 2020-12-09 Necプラットフォームズ株式会社 制御装置、情報システムおよび制御方法
KR20180098904A (ko) * 2017-02-27 2018-09-05 삼성전자주식회사 컴퓨팅 장치 및 컴퓨팅 장치에 포함된 복수의 코어들에 전력을 할당하는 방법
JP6825449B2 (ja) * 2017-03-29 2021-02-03 富士通株式会社 情報処理装置,試験プログラムおよび試験方法
US10474619B2 (en) 2017-05-19 2019-11-12 General Electric Company Methods for managing communications involving a lockstep processing system
US10466937B2 (en) * 2017-11-28 2019-11-05 BAE Systems Information and Electronic Sustems Integration Inc. Method of implementing a high reliability flash memory recorder
EP3750296A4 (en) * 2018-02-05 2021-09-15 Cisco Technology, Inc. CONFIGURABLE STORAGE SERVER WITH MULTIPLE SOCKETS
US11010330B2 (en) * 2018-03-07 2021-05-18 Microsoft Technology Licensing, Llc Integrated circuit operation adjustment using redundant elements
CN114124930B (zh) 2018-04-25 2023-01-13 华为技术有限公司 配置文件传输方法、终端、服务器和存储介质
KR102663815B1 (ko) * 2018-06-01 2024-05-07 삼성전자주식회사 컴퓨팅 장치 및 이의 동작 방법
KR102592902B1 (ko) * 2018-09-05 2023-10-24 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US11940859B2 (en) * 2018-11-16 2024-03-26 Hewlett Packard Enterprise Development Lp Adjusting power consumption limits for processors of a server
CN109783224B (zh) * 2018-12-10 2022-10-14 平安科技(深圳)有限公司 基于负载调配的任务分配方法、装置及终端设备
US10831628B2 (en) * 2018-12-12 2020-11-10 Intel Corporation Hardware lockstep checking within a fault detection interval in a system on chip
CN110347563B (zh) * 2019-04-29 2023-08-08 网易(杭州)网络有限公司 多核处理器性能的确定方法、装置及存储介质
US11360827B2 (en) 2019-06-04 2022-06-14 Hewlett Packard Enterprise Development Lp Regulating core and un-core processor frequencies of computing node clusters
JP2021089601A (ja) * 2019-12-04 2021-06-10 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
US11250195B2 (en) * 2020-02-24 2022-02-15 Ansys, Inc. Method and system for ROM based dynamic thermal management analysis and control
CN114253701A (zh) * 2020-09-25 2022-03-29 超聚变数字技术有限公司 任务调度方法、装置以及计算机系统
US20240095133A1 (en) * 2022-09-06 2024-03-21 Nvidia Corporation Frequency adjustment for processors

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61105629A (ja) * 1984-10-29 1986-05-23 Fujitsu Ltd クロツク制御方式
JPH05100890A (ja) * 1991-10-04 1993-04-23 Toshiba Corp 制御装置信頼性診断システム
US6141762A (en) * 1998-08-03 2000-10-31 Nicol; Christopher J. Power reduction in a multiprocessor digital signal processor based on processor load
JP2000304816A (ja) * 1999-04-19 2000-11-02 Hitachi Ltd 診断機能付き論理集積回路および論理集積回路の診断方法
JP3674515B2 (ja) * 2000-02-25 2005-07-20 日本電気株式会社 アレイ型プロセッサ
JP2001318901A (ja) * 2000-05-09 2001-11-16 Nec Corp 2重化マルチプロセッサ方式
JP2002099432A (ja) * 2000-09-22 2002-04-05 Sony Corp 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
US7174194B2 (en) 2000-10-24 2007-02-06 Texas Instruments Incorporated Temperature field controlled scheduling for processing systems
US20030005380A1 (en) 2001-06-29 2003-01-02 Nguyen Hang T. Method and apparatus for testing multi-core processors
US6804632B2 (en) 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US7082600B1 (en) * 2002-11-04 2006-07-25 Savaje Technologies, Inc. Method and apparatus for integrating a computer application programming language runtime environment with an operating system kernel
US8185602B2 (en) * 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7055060B2 (en) 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor
US7191349B2 (en) 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
JP2004240669A (ja) * 2003-02-05 2004-08-26 Sharp Corp ジョブスケジューラおよびマルチプロセッサシステム
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US8037445B2 (en) * 2003-08-20 2011-10-11 Hewlett-Packard Development Company, L.P. System for and method of controlling a VLSI environment
JP5441305B2 (ja) * 2003-09-15 2014-03-12 エヌヴィディア コーポレイション 半導体機能回路のテストおよび構成のためのシステムおよび方法
US7401240B2 (en) * 2004-06-03 2008-07-15 International Business Machines Corporation Method for dynamically managing power in microprocessor chips according to present processing demands

Also Published As

Publication number Publication date
DE112006002265T5 (de) 2008-08-07
JP2014211910A (ja) 2014-11-13
JP2017076414A (ja) 2017-04-20
CN101278264A (zh) 2008-10-01
JP5535481B2 (ja) 2014-07-02
JP2012216232A (ja) 2012-11-08
WO2007038530A3 (en) 2007-11-29
JP2009510618A (ja) 2009-03-12
US20070074011A1 (en) 2007-03-29
DE112006002265B4 (de) 2011-02-17
WO2007038530A2 (en) 2007-04-05
US7412353B2 (en) 2008-08-12

Similar Documents

Publication Publication Date Title
CN101278264B (zh) 众核处理器的可靠计算
Hester et al. Flicker: Rapid prototyping for the batteryless internet-of-things
JP4688933B2 (ja) 状態情報を回復して保持するマルチコアプロセッサ
KR101469596B1 (ko) 스토리지 디바이스 펌웨어 및 제조 소프트웨어
CN104662530B (zh) 对于分布式数据存储和处理系统的调整(tune)
CN103744824B (zh) 一种出厂测试方法和测试系统
CN106575249A (zh) 针对片上系统(soc)和系统的低功率调试架构
CN103853639A (zh) 自测试芯片上功能逻辑块的芯片上集成的系统和方法
CN105144118A (zh) 应用测试和分析
EP3216027B1 (en) Test of semiconductor storage power consumption on basis of executed access commands
CN103748562A (zh) 测试、验证和调试架构
US9448872B2 (en) Hardware state data logger for silicon debug
Testoni et al. A Sensor Network with Embedded Data Processing and Data‐to‐Cloud Capabilities for Vibration‐Based Real‐Time SHM
CN102479123A (zh) 卡片操作系统的测试系统及测试方法
US11403202B2 (en) Power monitoring system for virtual platform simulation
CN109521960A (zh) 数据读写方法、装置和系统
CN104067234A (zh) 原位处理器重新表征
Valente et al. A flexible profiling sub-system for reconfigurable logic architectures
WO2020131859A1 (en) Communicating trace information between security zones
Meyer et al. Cost-effective lifetime and yield optimization for NoC-based MPSoCs
Ruffini et al. NORM: An FPGA-based non-volatile memory emulation framework for intermittent computing
Li et al. A learning-based approach towards automated tuning of ssd configurations
KR20140128852A (ko) 데이터 처리 지연에 대한 빠른 응답을 수행할 수 있는 데이터 저장 장치와 이를 이용한 데이터 처리 방법들
DeBonis et al. A Power API for the HPC Community.
Soriano Design Space Exploration of Microcontroller Memory Architectures for Intermittent Computing at the Edge

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant