CN1834950A - 具有活动和非活动执行核心的多核处理器 - Google Patents

具有活动和非活动执行核心的多核处理器 Download PDF

Info

Publication number
CN1834950A
CN1834950A CNA2006100677811A CN200610067781A CN1834950A CN 1834950 A CN1834950 A CN 1834950A CN A2006100677811 A CNA2006100677811 A CN A2006100677811A CN 200610067781 A CN200610067781 A CN 200610067781A CN 1834950 A CN1834950 A CN 1834950A
Authority
CN
China
Prior art keywords
core
activity
polycaryon processor
execution cores
spare
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.)
Granted
Application number
CNA2006100677811A
Other languages
English (en)
Other versions
CN1834950B (zh
Inventor
特里格威·福萨姆
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
Priority to CN201310052020.9A priority Critical patent/CN103294557B/zh
Publication of CN1834950A publication Critical patent/CN1834950A/zh
Application granted granted Critical
Publication of CN1834950B publication Critical patent/CN1834950B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • 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
    • 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
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Microcomputers (AREA)

Abstract

公开了具有活动执行核心和非活动执行核心的多核处理器的实施方案。在一个实施方案中,一个装置包括在单个集成电路上具有多个执行核心的处理器以及多个核心标识寄存器。多个核心标识寄存器中的每一个对应于执行核心之一,用以标识该执行核心是否为活动的。

Description

具有活动和非活动执行核心的多核处理器
技术领域
本发明属于数据处理的领域,更具体地说,属于数据处理装置中的冗余性领域。
背景技术
通常,数据处理装置的冗余性已被用来提高容错能力、可靠性和产率。计算机已经由诸如数据存储盘一类的冗余元件来构建,以在发生硬件故障的情况下防止数据丢失。计算机还可以由诸如处理器芯片一类的冗余元件来构建,以对使用中发生故障的元件进行自动替换,或者通过以“锁步(lockstep)”方式执行指令,即通过冗余地执行指令而进行检错。一些计算机芯片,例如存储器包括可排列为阵列的电路系统,这些芯片已经由冗余列来构建,它们可被用来替换包括制造缺陷或者使用后发生故障的列。然而,处理器芯片内冗余性的使用已受到处理器中晶体管布局的稠密、不规则特性的限制。
发明内容
为解决以上技术问题,本发明公开了具有活动和非活动执行核心(core)的多核处理器及其相关方法和系统。根据本发明的一个方面,提供了一种装置,包括:在单个集成电路上具有多个执行核心的处理器;以及,多个核心标识寄存器,每个核心标识寄存器对应于所述多个执行核心中的一个核心,用以标识所述多个执行核心中对应的一个核心是否为活动的。
根据本发明的另一个方面,提供了一种方法,包括:确定多核处理器的备用核心将被激活;以及配置所述多核处理器以激活所述备用核心。
根据本发明的又一个方面,提供了一种方法,包括:调度第一程序以在多核处理器的第一核心上执行;在所述第一核心上执行所述第一程序;重配置所述多核处理器,以将所述第一核心的标识映射到第二核心;调度第二程序以在所述第一核心上执行;以及在所述第二核心上执行所述第二程序。
根据本发明的再一个方面,提供了一种系统,包括:动态随机访问存储器;在单个集成电路上具有多个执行核心的处理器;以及,多个核心标识寄存器,每个核心标识寄存器对应于所述多个执行核心中的一个核心,用以标识所述多个执行核心中对应的一个核心是否为活动的。
附图说明
在附图中以示例而非限制的方式图示说明了本发明。
图1根据本发明的实施方案图示了一种具有活动和非活动执行核心的多核处理器。
图2根据本发明的实施方案图示了一种包括重配置多核处理器以激活备用核心的方法。
图3根据本发明的实施方案图示了一种包括具有活动和非活动执行核心的多核处理器的系统。
具体实施方式
以下的说明部分描述了其中多核处理器具有活动和非活动执行核心的数据处理装置、方法和系统的实施方案。在以下描述中,可以阐述大量具体的细节,例如组件和系统配置,以提供对本发明更加完整的理解。然而,本领域的技术人员将会理解,没有这些具体的细节也可以实现本发明。此外,没有详细描述某些公知的结构、电路、技术等,以免不必要地模糊了本发明。
图1根据本发明的实施方案图示了多核处理器100。多核处理器是包括一个以上执行核心的单个集成电路。一个执行核心包括用于执行指令的逻辑。除了执行核心外,多核处理器在本发明的范围内还可以包括专用或共享资源的任意组合。专用资源可以是单个核心专用的资源,例如专用一级缓存(level one cache),或者可以是多个核心的任意子集专用的资源。共享资源可以是由所有核心共享的资源,例如共享二级缓存(level two cache)或者支持多核处理器和另一个组件之间接口的共享外部总线单元,或者可以是由多个核心的任意子集共享的资源。
多核处理器100具有五个执行核心110、120、130、140和150以及五个核心标识(ID)寄存器111、121、131、141和151。多核处理器100还包括由核心110、120、130、140和150通过内部总线180共享的缓存160和外部总线单元170。
执行核心110、120、130、140和150被设计成相同的。每个核心能够独立地执行与多核处理器100兼容的指令。然而,在该实施方案中,多核处理器100被设计用于一个只有三个执行核心的系统环境。多核处理器100的五个执行核心中有两个核心是希望用来提高容错能力、可靠性、产率或其他参数,如将会再下面进行的描述。因此,核心标识寄存器111、121、131、141和151可以标识核心110、120、130、140和150中的哪些是活动的。
例如,在一个实施方案中,在系统环境中预期出现在多核处理器100中的三个执行核心可以被芯片的剩余部分、其他硬件和软件识别为具有地址“0”、“1”和“2”的执行核心,核心地址“0”可以被存储在核心标识寄存器111中,核心地址“1”可以被存储在核心标识寄存器121中,核心地址“2”可以被存储在核心标识寄存器141中。因此,在这种情况下,核心标识寄存器111将核心110标识为活动的,核心标识寄存器121将核心120标识为活动的,并且核心标识寄存器141将核心140标识为活动的。核心标识寄存器111、121、131、141和151可以是可编程的,使得核心地址“0”、核心地址“1”和核心地址“2”中的每一个可以被存储在任意一个核心标识寄存器中。按照这种方式,多核处理器100的五个核心中的每一个都可以被标识为活动核心。那些不是活动的核心可以默认地被标识为非活动的,或者可替换地,可以通过在对应的核心标识寄存器中的“假(dummy)”值被标识为非活动的。
作为另一个实施例,在一个实施方案中,设计来在使用多核处理器100的系统上运行的软件,例如操作系统(“OS”)或虚拟机监视器(“VMM”)能够用包括标识核心的参数、操作数或地址的指令或命令来调度程序或指令在特定的核心上运行或者访问特定核心中的机器或模型专用寄存器(“MSR”)。在这种情况下,对应于所述参数或操作数的信息可以被存储在特定核心的核心标识寄存器中,从而将该核心标识为活动的。在一个替换的实施方案中,在软件和执行核心之间可以有一个固件或存储在非易失存储器中的其他代码的层,例如微码或者处理器抽象层(“PAL”),该层可以将标识核心的参数、操作数或地址翻译或映射成与存储在活动核心的核心标识寄存器中的信息相对应的另一个参数、操作数或地址。在另外一个替换的实施方案中,软件不能调度或访问一个特定的核心,相反,PAL可以基于活动核心的核心标识寄存器的内容来寻址活动核心,从而完成对特定核心的调度、配置和其他访问。
在其他实施方案中,可以由软件、PAL或其他固件以任意组合方式来共享或分割对特定核心的访问能力。例如,MSR中的具体位可以向操作系统或PAL来标识一个核心,但是PAL可以通过写或读可编程配置寄存器将一个MSR地址映射或翻译成一个不同的核心。在图1的实施方案中,核心130中MSR的内容可以基于核心130在管芯(die)上的位置将其标识为核心130,并且核心140中MSR的内容可以类似地将核心140标识为核心140。然而,PAL可以编程配置寄存器,在这种情况下即编程核心标识寄存器131,以重新映射对核心地址130到140的访问,使得寻址核心130的后续指令由PAL翻译为访问核心140而不是核心130。按照这种方式,核心130被标识为非活动核心,而核心140被标识为活动核心。
在以上实施方案的每一个当中,活动核心是在某一具体时间上正在执行指令或者可用于执行指令的核心,而非活动的、或者说备用的(spare)或冗余的核心是指在某一具体的时间上没有在执行指令或者不可用于执行指令的核心。基于对应的核心标识寄存器的内容,可以将活动核心与非活动核心区别开来,或者使活动核心可用于执行指令。
在图1的实施方案中,核心标识寄存器111、121、131、141和151是可编程的。因此,PAL或其他固件可以通过改变核心标识寄存器中一个或多个寄存器的内容来重配置多核处理器100。在本发明的范围内,这种重配置可以在任意时间上完成,即,可以在多核处理器100被售出或内置到系统中之前或之后。如果重配置涉及程序或进程正在上面运行的活动核心,那么PAL可以仿真一个从旧的活动核心到新的活动核心的上下文切换,或者PAL可以调用OS完成从旧的活动核心到新的活动核心的上下文切换。
在多核处理器100中将执行核心从非活动的重配置为活动的,或者从活动的重配置为非活动的,这种能力可以提供很多可单独实现或一同实现的优点,并使得多核处理器100非常适用于多种应用。
首先,多核处理器100的制造者可以测试每个核心以发现制造缺陷,并且通过将有缺陷的核心配置为非活动的而提高产率。PAL可以访问的非易失存储器,例如封装上(on-package)的闪存,可以被用来存储状态位,这些状态位指示了核心中的任何一个是否为功能不正常的。该非易失存储器在本发明的范围内还可以包括或者不包括PAL。这一优点随着每个管芯晶体管数量的增加而变得更加可贵,并使得更多的核心、缓存及其他资源可被放置在单个管芯上。添加非活动核心的相对成本将会降低,并且可被用来抵消因晶体管密度和管芯尺寸的增加而造成的产率的潜在下降。
其次,通过提供用功能正常的非活动核心来自动替换在现场中发生故障的活动核心的能力,就可以改进由多核处理器100构建的系统的可靠性、可用性和可服务性。这一替换可以通过使用PAL或其他固件自动测试寻找核心故障或预示将要发生的核心故障的高错误率,或者接收有关核心故障或高错误率的报告,并且如果检测或预测出故障则自动重配置多核处理器100而对用户透明。这一优点可以被多核处理器100的制造者充分用来减小“老化(burn-in)”操作的时间、温度、电压或其他应力,其中制造者执行所述“老化”操作是为了减少早期天折的发生。老化中类似这样的减小将是很有价值的,因为随着晶体管尺寸和工作电压的减小,老化操作要不这样做就可能大大降低现场中的生命期。
第三,多核处理器100的销售者可以通过激活不同数量的核心用于不同的应用,而创造出从单个部件开始的一条产品系列(product line)。例如,一个产品系列可以包括具有三个活动核心的、高价格、高性能的多核处理器100,也可以包括具有一个活动核心的低价格、低性能的多核处理器100。
第四,由多核处理器100构建的系统通过让用户动态地选择将要激活的核心数量,可以支持“按需提供能力(capacity on demand)”。例如,通过向系统发送加密的PAL配置文件,可以支持顾客购买一个附加的核心。
第五,用于多核处理器100的PAL代码可以根据任何已知的技术配置两个核心以锁步方式运行。让非活动核心可用于有选择地以锁步方式运行代码的关键部分,这样可以提供更高的容错能力,而与连续地以锁步方式运行代码时相比对功率和性能的影响更小。
第六,当多核处理器100被用在服务器系统中时,非活动核心可被激活为用于服务管理的服务处理器,以监控系统的运行,处理引导、初始化、测试、错误、重配置、系统分区、以及资源在用户之间的分配。与使用一个单独芯片上的额外处理器的情况相比,使用多核处理器100中的备用核心之一可以提供对多核处理器100中的活动核心及其他资源的运行情况的更大可视性。
这些优点和应用,或者任何其他优点、应用或因素可以在本发明的实施方案中被考虑,以选择活动核心和非活动核心的数量。虽然图1的实施方案包括三个活动核心和两个非活动核心,但是在本发明的范围内任意数量的核心、任意数量的活动核心、以及任意数量的非活动核心都是可能的。例如,另一个实施方案可以包括八个活动核心和一个非活动核心。
此外,本发明的实施方案可以包括与冗余的、非活动的、或者选择性活动或动态活动的电路或特征有关的公知技术。例如,在一些实施方案中,公知的功率管理技术可被用来门禁掉(gate off)非活动核心的时钟或电源。
图2根据本发明的实施方案图示了包括重配置多核处理器以激活备用核心的方法。在框210中,用于测试多核处理器的执行核心的功能性的测试例程被启动。该测试例程可以从测试器存储器、诸如PAL或微码的非易失存储器、或者在多核处理器内或多核处理器可访问的任何其他存储器中被加载或运行。在框211中,在第一执行核心中检测到缺陷。在框212中,将一个值写入非易失存储器,以指示第一执行核心是有缺陷的。在框213中,测试例程被终止。
在框220中,开始配置例程,以配置多核处理器的活动和非活动执行核心。该配置例程可以是在PAL、OS或者与多核处理器兼容的任何其他固件或软件中的一个例程。在框221中,读取非易失存储器以确定第一核心是有缺陷的。在框222中,第一执行核心被配置为非活动的。框222例如可以通过将一个与非活动核心的地址相对应的值写入第一核心标识寄存器来完成。在框223中,第二执行核心被配置为活动的。框223例如可以通过将一个与活动核心的地址相对应的值写入第二核心标识寄存器来完成。在框224中,第三执行核心被配置为非活动的。框224例如可以通过将一个与非活动核心的地址相对应的值写入第三核心标识寄存器来完成。在框225中,配置例程被终止。
在框230中,发起对多核处理器的活动核心的访问。所述访问可以是程序或进程的调度、MSR的读或写、或者可以由OS、VMM、PAL或任何其他软件或固件来执行的任何其他类型访问。在框231中,所述访问指向第二核心。框231例如可以通过根据第二核心标识寄存器的内容寻址第二核心来完成。在框232中,例如通过在第二核心上执行被调度用于第二核心的程序而完成所述访问。
在框240中,OS、VMM、PAL或其他软件或固件请求或者确定将在多核处理器上执行的指令将以锁步方式运行。在框241中,第三执行核心被配置为活动的。框241例如可以通过PAL或其他固件将一个与活动核心的地址相对应的值写入第三核心标识寄存器而完成。在框242中,多核处理器被配置为以锁步方式运行第二和第三执行核心。在框243中,以锁步方式在第二和第三执行核心上运行指令。在框244中,第三执行核心被配置为非活动的。框244例如可以通过PAL或其他固件将一个与非活动核心的地址相对应的值写入第三核心标识寄存器而完成。
在框250中,在第二核心上启动一个程序或进程。该程序或进程可以是被设计为在多核处理器上运行的任何程序或进程,包括用于测试核心的功能性的PAL测试例程。在框251中,在该程序或进程中发生错误。在框252中,该错误被报告给PAL或其他固件。
在框260中,PAL或其他固件确定第三核心将被激活。所述确定可以是基于PAL接收到有关第二核心上错误的报告(如在框252中),PAL监视有关第二核心上错误的报告的速率,PAL确定第二核心上瞬时错误的数量已超过了预定阈值,PAL另外检测到在第二核心上的错误或超过阈值的错误率,任何硬件、固件、软件或用户确定第二核心或任何活动核心将被去激活(deactivated),任何硬件、固件、软件或用户确定一个额外的核心将被激活,或者任何其他因素。在框261中,在第二执行核心上运行的任何程序、进程或指令流被暂停,第二执行核心的状态被提取并保存到存储器中,并且第二执行核心被配置为非活动的。框261例如可以包括由PAL或其他固件将一个与非活动核心的地址相对应的值写入第二核心标识寄存器,或者还可以包括将一个有关第二执行核心有缺陷的指示存储在非易失存储器中。在框262中,第三执行核心被配置为活动的。框262例如可以包括由PAL或其他固件将一个与活动核心的地址相对应的值写入第三核心标识寄存器。例如,在框262中写入第三核心标识寄存器的值可以与在框223中写入第二核心标识寄存器的值相同。换言之,或者以任何其他方式,可以给予第三执行核心以前面与第二执行核心相关联的身份。可替换地,写入第三执行核心标识寄存器的值可以是另外与第二核心的地址相关联的任何其他值,或者可以是与活动核心相关联的任何其他值。框262还可以包括将保存自第二执行核心的状态加载到第三执行核心中。
在框270中,发起对多核处理器的活动核心的访问。该访问可以是程序或进程的调度、MSR的读或写、或者可以由OS、VMM、PAL或任何其他软件或固件来执行的任何其他类型访问。具体地说,所述访问可以与框230的访问完全相同,例如OS调度曾在框230中被调度在相同核心上执行的程序,PAL访问曾在框230中访问过的相同MSR,或者对与框230中相同核心的任何其他访问。可替换地,访问可以不包括对特定核心的身份的任何引用。在框271中,访问指向第三核心。框271例如可以通过根据第三核心标识寄存器的内容寻址第三核心来完成。可替换地或者以联合的方式,框271可以通过PAL或其他固件读取第二核心标识寄存器的内容,确定第二核心是非活动的,将与访问相关联的地址从第二核心翻译成第三核心,将访问重新映射到第三核心,或者这些动作的组合来完成。在框272中,例如通过在第三核心上执行调度用于第二核心的程序而完成所述访问。
在本发明的范围内,可以按不同的顺序来执行图2中图示的方法,可以省略所图示的步骤,添加额外的步骤,或者将重新排序、省略后或额外的步骤组合起来。
图3根据本发明的实施方案图示了包括具有活动和非活动核心的多核处理器100的系统300。系统300还包括非易失存储器310和系统存储器320,它们可以直接地,通过一条或更多条总线,通过任何其他组件(例如存储器控制器或系统逻辑),或者通过直接连接、总线或其他组件的任意组合被耦合到多核处理器100。
非易失存储器310可以是任何类型的非易失存储器或持久存储器,例如基于半导体的可编程只读存储器或闪存。非易失存储器310可被用来存储PAL、用于指示执行核心是否有缺陷的状态寄存器、以及在系统300未加电时应被保留的任何其他指令或信息。
系统存储器320可以是任何类型的存储器,例如静态或动态随机访问存储器或者磁盘存储器或光盘存储器。系统存储器320可被用来存储将由多核处理器100执行的指令以及将由多核处理器100对其进行操作的数据、或者具有任意形式的这类信息,例如操作系统软件、应用软件或用户数据。
系统300除了处理器100、非易失存储器310和系统存储器320之外还可以包括任何其他总线(例如外围总线)或者组件(例如输入/输出设备)。
可以在从创建到仿真到加工的不同阶段上设计处理器100或者根据本发明的实施方案设计的任何其他组件或者组件的一部分。代表设计的数据可以以多种方式来表示设计。首先,在仿真中很有用的是,可以使用硬件描述语言或另一种功能描述语言来表示硬件。另外地或可替换地,可以在设计过程的某些阶段产生逻辑和/或晶体管门电路形式的电路级模型。此外,大多数设计在某一阶段上达到了可以用代表各种器件的物理放置的数据来建模的级别。在使用传统的半导体加工技术的情况下,代表器件放置模型的数据可以是为用来生产集成电路的掩模指定各种部件在不同掩模层存在与否的数据。
设计无论如何表示,所述数据都可以被存储在任何形式的机器可读介质中。被调制或者以其他方式生成来传输这种信息的光波或电波、存储器、或者磁或光存储介质(例如盘)都可以是所述的机器可读介质。这些介质中的任何一种都可以“传送”或“指示”所述设计或者用在本发明的实施方案中的其他信息,例如错误恢复例程中的指令。当指示或传送信息的电载波被发送,达到进行电信号的拷贝、缓冲或重传的程度时,新的拷贝产生。因而,通信提供者或网络提供者的行为可以是产生可实施本发明技术的制品(例如载波)的拷贝的行为。
这样,已描述了具有活动和非活动执行核心的多核处理器。虽然在附图中示出并已描述了某些实施方案,但是应当理解,这样的实施方案仅仅是对本广义发明的示例说明而非限制,本发明不限于所示出并描述的特定结构和布置,因为本领域的普通技术人员在研究了本公开之后可以作出多种其他修改。在快速增长而又难以预见未来进展的这一技术领域中,在技术进步的推动下,可以很容易地在布置和细节上对公开的实施方案作出修改,而不会偏离本公开的原理或者所附权利要求书的范围。

Claims (20)

1.一种装置,包括:
在单个集成电路上具有多个执行核心的处理器;以及
多个核心标识寄存器,每个核心标识寄存器对应于所述多个执行核心中的一个核心,用以标识所述多个执行核心中对应的一个核心是否为活动的。
2.如权利要求1所述的装置,其中所述多个执行核心是多个相同的执行核心。
3.如权利要求1所述的装置,其中所述多个执行核心中的一个核心被配置为非活动的。
4.如权利要求3所述的装置,还包括存储指令的非易失存储器,所述指令在由所述处理器执行时将所述多个执行核心中所述的一个核心重配置为活动的。
5.如权利要求1所述的装置,其中所述多个核心标识寄存器中的第一寄存器可编程为将所述多个执行核心中的第一核心从非活动的改变为活动的。
6.如权利要求5所述的装置,其中所述多个核心标识寄存器中的第二寄存器可编程为将所述多个执行核心中的第二核心从活动的改变为非活动的。
7.一种方法,包括:
确定多核处理器的备用核心将被激活;以及
配置所述多核处理器以激活所述备用核心。
8.如权利要求7所述的方法,其中确定备用核心将被激活的步骤包括确定所述多核处理器的活动核心将被替换。
9.如权利要求8所述的方法,还包括配置所述多核处理器反激活所述活动核心。
10如权利要求9所述的方法,还包括将所述活动核心标注为有缺陷的。
11.如权利要求9所述的方法,还包括保存所述活动核心的状态。
12.如权利要求11所述的方法,还包括将所述活动核心的状态加载到所述备用核心中。
13.如权利要求7所述的方法,其中确定备用核心将被激活的步骤包括确定所述多核处理器的活动核心将与所述备用核心一起以锁步方式执行。
14.如权利要求13所述的方法,其中配置所述多核处理器激活所述备用核心的步骤包括配置所述活动核心和所述备用核心以锁步方式执行。
15.如权利要求7所述的方法,其中配置所述多核处理器激活所述备用核心的步骤包括修改与所述备用核心相对应的核心标识寄存器的内容。
16.一种方法,包括:
调度第一程序以在多核处理器的第一核心上执行;
在所述第一核心上执行所述第一程序;
重配置所述多核处理器,以将所述第一核心的标识映射到第二核心;
调度第二程序以在所述第一核心上执行;以及
在所述第二核心上执行所述第二程序。
17.如权利要求16所述的方法,其中重配置所述多核处理器,以将所述第一核心的标识映射到第二核心的步骤包括改变与所述第二核心相对应的核心标识寄存器的内容。
18.如权利要求16所述的方法,还包括确定所述第一核心将被替换。
19.如权利要求18所述的方法,其中确定所述第一核心将被替换的步骤包括检测在所述第一程序的执行中的错误。
20.一种系统,包括:
动态随机访问存储器;
在单个集成电路上具有多个执行核心的处理器;以及
多个核心标识寄存器,每个核心标识寄存器对应于所述多个执行核心中的一个核心,用以标识所述多个执行核心中对应的一个核心是否为活动的。
CN2006100677811A 2005-03-15 2006-03-15 具有活动和非活动执行核心的多核处理器 Expired - Fee Related CN1834950B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310052020.9A CN103294557B (zh) 2005-03-15 2006-03-15 具有活动和非活动执行核心的多核处理器

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/081,306 2005-03-15
US11/081,306 US20060212677A1 (en) 2005-03-15 2005-03-15 Multicore processor having active and inactive execution cores

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201310052020.9A Division CN103294557B (zh) 2005-03-15 2006-03-15 具有活动和非活动执行核心的多核处理器

Publications (2)

Publication Number Publication Date
CN1834950A true CN1834950A (zh) 2006-09-20
CN1834950B CN1834950B (zh) 2013-03-27

Family

ID=37002698

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201310052020.9A Active CN103294557B (zh) 2005-03-15 2006-03-15 具有活动和非活动执行核心的多核处理器
CN2006100677811A Expired - Fee Related CN1834950B (zh) 2005-03-15 2006-03-15 具有活动和非活动执行核心的多核处理器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201310052020.9A Active CN103294557B (zh) 2005-03-15 2006-03-15 具有活动和非活动执行核心的多核处理器

Country Status (3)

Country Link
US (1) US20060212677A1 (zh)
JP (1) JP2006260568A (zh)
CN (2) CN103294557B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008101386A1 (fr) * 2007-01-31 2008-08-28 Maipu Communication Technology Co., Ltd. Procédé de récupération d'une exception à noyau unique dans un système à plusieurs noyaux
CN101217467B (zh) * 2007-12-28 2010-10-27 杭州华三通信技术有限公司 核间负载分发装置及方法
CN101996087A (zh) * 2010-12-02 2011-03-30 北京星河亮点通信软件有限责任公司 多核处理器阵列程序的动态加载系统及方法
CN101403982B (zh) * 2008-11-03 2011-07-20 华为技术有限公司 一种多核处理器的任务分配方法和系统
CN107924385A (zh) * 2015-08-21 2018-04-17 密克罗奇普技术公司 具有可选择处理器核心的集成电路装置
CN109960398A (zh) * 2011-03-11 2019-07-02 英特尔公司 用于异构多核心系统的动态核心选择
CN110083494A (zh) * 2011-12-30 2019-08-02 英特尔公司 在多核心环境中管理硬件错误的方法和装置

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2894709A1 (fr) * 2005-12-13 2007-06-15 Gemplus Sa "detecteur de destruction anormale de secteur memoire"
JP4653841B2 (ja) * 2006-02-28 2011-03-16 インテル・コーポレーション 多数コアプロセッサの信頼性強化
JP5003097B2 (ja) * 2006-10-25 2012-08-15 ソニー株式会社 半導体チップ
JP5100310B2 (ja) * 2006-10-31 2012-12-19 株式会社半導体エネルギー研究所 半導体装置
EP2078263B1 (en) 2006-10-31 2019-06-12 Semiconductor Energy Laboratory Co, Ltd. Semiconductor device
JP2008123031A (ja) * 2006-11-08 2008-05-29 Toyota Motor Corp 共有メモリ管理装置及び該装置を備えたマルチプロセッサシステム
JP2008152594A (ja) * 2006-12-19 2008-07-03 Hitachi Ltd マルチコアプロセッサ計算機の高信頼化方法
US8412981B2 (en) * 2006-12-29 2013-04-02 Intel Corporation Core sparing on multi-core platforms
US20080228971A1 (en) * 2007-03-13 2008-09-18 Rothman Michael A Device modeling in a multi-core environment
US8055822B2 (en) * 2007-08-21 2011-11-08 International Business Machines Corporation Multicore processor having storage for core-specific operational data
US8544006B2 (en) * 2007-12-19 2013-09-24 International Business Machines Corporation Resolving conflicts by restarting execution of failed discretely executable subcomponent using register and memory values generated by main component after the occurrence of a conflict
US8495636B2 (en) * 2007-12-19 2013-07-23 International Business Machines Corporation Parallelizing single threaded programs by performing look ahead operation on the single threaded program to identify plurality of instruction threads prior to execution
US8719624B2 (en) * 2007-12-26 2014-05-06 Nec Corporation Redundant configuration management system and method
US7802042B2 (en) 2007-12-28 2010-09-21 Intel Corporation Method and system for handling a management interrupt event in a multi-processor computing device
US20090172232A1 (en) * 2007-12-28 2009-07-02 Zimmer Vincent J Method and system for handling a management interrupt event
US7962771B2 (en) * 2007-12-31 2011-06-14 Intel Corporation Method, system, and apparatus for rerouting interrupts in a multi-core processor
TW200933385A (en) * 2008-01-22 2009-08-01 Sonix Technology Co Ltd Microcontroller having dual-core architecture
US8010822B2 (en) * 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US7941698B1 (en) * 2008-04-30 2011-05-10 Hewlett-Packard Development Company, L.P. Selective availability in processor systems
US8037350B1 (en) * 2008-04-30 2011-10-11 Hewlett-Packard Development Company, L.P. Altering a degree of redundancy used during execution of an application
US20090309243A1 (en) * 2008-06-11 2009-12-17 Nvidia Corporation Multi-core integrated circuits having asymmetric performance between cores
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
US7958341B1 (en) 2008-07-07 2011-06-07 Ovics Processing stream instruction in IC of mesh connected matrix of processors containing pipeline coupled switch transferring messages over consecutive cycles from one link to another link or memory
US8327114B1 (en) 2008-07-07 2012-12-04 Ovics Matrix processor proxy systems and methods
US7870365B1 (en) 2008-07-07 2011-01-11 Ovics Matrix of processors with data stream instruction execution pipeline coupled to data switch linking to neighbor units by non-contentious command channel / data channel
US8145880B1 (en) 2008-07-07 2012-03-27 Ovics Matrix processor data switch routing systems and methods
US8131975B1 (en) 2008-07-07 2012-03-06 Ovics Matrix processor initialization systems and methods
US8140825B2 (en) * 2008-08-05 2012-03-20 International Business Machines Corporation Systems and methods for selectively closing pages in a memory
JP4709268B2 (ja) * 2008-11-28 2011-06-22 日立オートモティブシステムズ株式会社 車両制御用マルチコアシステムまたは内燃機関の制御装置
US8122269B2 (en) * 2009-01-07 2012-02-21 International Business Machines Corporation Regulating power consumption in a multi-core processor by dynamically distributing power and processing requests by a managing core to a configuration of processing cores
US9063825B1 (en) * 2009-09-21 2015-06-23 Tilera Corporation Memory controller load balancing with configurable striping domains
US8381004B2 (en) * 2010-05-26 2013-02-19 International Business Machines Corporation Optimizing energy consumption and application performance in a multi-core multi-threaded processor system
US20110320766A1 (en) * 2010-06-29 2011-12-29 Youfeng Wu Apparatus, method, and system for improving power, performance efficiency by coupling a first core type with a second core type
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
US8479042B1 (en) * 2010-11-01 2013-07-02 Xilinx, Inc. Transaction-level lockstep
US8443230B1 (en) * 2010-12-15 2013-05-14 Xilinx, Inc. Methods and systems with transaction-level lockstep
EP2659620B1 (en) * 2010-12-29 2018-10-17 Citrix Systems Inc. Systems and methods for scalable n-core statistics aggregation
JP5293752B2 (ja) * 2011-01-14 2013-09-18 日本電気株式会社 制御装置、及びファームウェア更新方法とそのプログラム
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
US20140325183A1 (en) * 2011-11-28 2014-10-30 Freescale Semiconductor, Inc. Integrated circuit device, asymmetric multi-core processing module, electronic device and method of managing execution of computer program code therefor
DE102012201185A1 (de) * 2012-01-27 2013-08-01 Siemens Aktiengesellschaft Verfahren zum Betreiben mindestens zweier Datenverarbeitungseinheiten mit hoher Verfügbarkeit, insbesondere in einem Fahrzeug, und Vorrichtung zum Betreiben einer Maschine
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
US10990407B2 (en) 2012-04-24 2021-04-27 Intel Corporation Dynamic interrupt reconfiguration for effective power management
CN103376877B (zh) * 2012-04-26 2017-12-01 深圳市中兴微电子技术有限公司 一种多核处理器时钟控制装置及控制方法
US8799710B2 (en) * 2012-06-28 2014-08-05 International Business Machines Corporation 3-D stacked multiprocessor structures and methods to enable reliable operation of processors at speeds above specified limits
US10581763B2 (en) 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9967106B2 (en) 2012-09-24 2018-05-08 Brocade Communications Systems LLC Role based multicast messaging infrastructure
US8949659B2 (en) * 2012-10-18 2015-02-03 International Business Machines Corporation Scheduling workloads based on detected hardware errors
DE102012219176A1 (de) * 2012-10-22 2014-04-24 Siemens Aktiengesellschaft Kommunikationsnetzwerk und Verfahren zum Betreiben eines Kommunikationsnetzwerkes
US9135126B2 (en) * 2013-02-07 2015-09-15 International Business Machines Corporation Multi-core re-initialization failure control system
JP6029737B2 (ja) * 2013-02-15 2016-11-24 三菱電機株式会社 制御装置
WO2014185906A1 (en) * 2013-05-15 2014-11-20 Empire Technology Development, Llc Core affinity bitmask translation
JP6399916B2 (ja) * 2014-01-20 2018-10-03 キヤノン株式会社 情報処理装置およびその制御方法
KR102033434B1 (ko) * 2014-01-28 2019-10-17 한국전자통신연구원 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치 및 방법
US9395797B2 (en) 2014-07-02 2016-07-19 Freescale Semiconductor, Inc. Microcontroller with multiple power modes
KR20170030481A (ko) * 2014-07-08 2017-03-17 인텔 코포레이션 로직 코어 블록들 및 메모리 리던던시들의 공동-최적화를 통해 면적 감소를 달성하기 위한 기술들
US9190989B1 (en) 2014-10-07 2015-11-17 Freescale Semiconductor, Inc. Integrated circuit power management
US9619349B2 (en) * 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
US9710273B2 (en) 2014-11-21 2017-07-18 Oracle International Corporation Method for migrating CPU state from an inoperable core to a spare core
JP6393628B2 (ja) 2015-01-21 2018-09-19 日立オートモティブシステムズ株式会社 車両制御装置
US10761925B2 (en) * 2015-03-24 2020-09-01 Nxp Usa, Inc. Multi-channel network-on-a-chip
US10372493B2 (en) * 2015-12-22 2019-08-06 Intel Corporation Thread and/or virtual machine scheduling for cores with diverse capabilities
US10552270B2 (en) * 2016-12-22 2020-02-04 Intel Corporation Systems and methods for in-field core failover
US11042681B1 (en) * 2017-03-24 2021-06-22 Ansys, Inc. Integrated circuit composite test generation
US10509692B2 (en) * 2017-05-31 2019-12-17 2236008 Ontario Inc. Loosely-coupled lock-step chaining
EP3428748B1 (de) * 2017-07-13 2020-08-26 Siemens Aktiengesellschaft Verfahren und anordnung zum betrieb von zwei redundanten systemen
US11010330B2 (en) * 2018-03-07 2021-05-18 Microsoft Technology Licensing, Llc Integrated circuit operation adjustment using redundant elements
US20190042351A1 (en) * 2018-04-02 2019-02-07 Intel Corporation Self-healing in a computing system using embedded non-volatile memory
CN109508260B (zh) * 2018-10-31 2021-11-12 西北工业大学 一种自修复处理器对锁步系统的可靠性建模与分析方法
KR20220071178A (ko) 2019-09-27 2022-05-31 인텔 코포레이션 소프트웨어 정의 실리콘 보안을 위한 시스템, 방법 및 장치
WO2021062242A1 (en) * 2019-09-27 2021-04-01 Intel Corporation Software defined silicon implementation and management
US11977612B2 (en) 2020-07-07 2024-05-07 Intel Corporation Software defined silicon guardianship
US20220206875A1 (en) * 2020-12-24 2022-06-30 Intel Corporation Software visible and controllable lock-stepping with configurable logical processor granularities

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4191996A (en) * 1977-07-22 1980-03-04 Chesley Gilman D Self-configurable computer and memory system
US5179715A (en) * 1987-03-11 1993-01-12 Toyo Communication Co., Ltd. Multiprocessor computer system with process execution allocated by process managers in a ring configuration
US4800302A (en) * 1987-07-17 1989-01-24 Trw Inc. Redundancy system with distributed mapping
US5903717A (en) * 1997-04-02 1999-05-11 General Dynamics Information Systems, Inc. Fault tolerant computer system
JP2000181890A (ja) * 1998-12-15 2000-06-30 Fujitsu Ltd マルチプロセッサ交換機及びその主プロセッサ切替方法
US6653859B2 (en) * 2001-06-11 2003-11-25 Lsi Logic Corporation Heterogeneous integrated circuit with reconfigurable logic cores
US6779065B2 (en) * 2001-08-31 2004-08-17 Intel Corporation Mechanism for interrupt handling in computer systems that support concurrent execution of multiple threads
JP3982353B2 (ja) * 2002-07-12 2007-09-26 日本電気株式会社 フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US7676655B2 (en) * 2004-06-30 2010-03-09 Sun Microsystems, Inc. Single bit control of threads in a multithreaded multicore processor
US7606995B2 (en) * 2004-07-23 2009-10-20 Hewlett-Packard Development Company, L.P. Allocating resources to partitions in a partitionable computer

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008101386A1 (fr) * 2007-01-31 2008-08-28 Maipu Communication Technology Co., Ltd. Procédé de récupération d'une exception à noyau unique dans un système à plusieurs noyaux
CN101217467B (zh) * 2007-12-28 2010-10-27 杭州华三通信技术有限公司 核间负载分发装置及方法
CN101403982B (zh) * 2008-11-03 2011-07-20 华为技术有限公司 一种多核处理器的任务分配方法和系统
US8763002B2 (en) 2008-11-03 2014-06-24 Huawei Technologies Co., Ltd. Method, system, and apparatus for task allocation of multi-core processor
CN101996087A (zh) * 2010-12-02 2011-03-30 北京星河亮点通信软件有限责任公司 多核处理器阵列程序的动态加载系统及方法
CN101996087B (zh) * 2010-12-02 2013-12-04 北京星河亮点技术股份有限公司 多核处理器阵列程序的动态加载方法
CN109960398A (zh) * 2011-03-11 2019-07-02 英特尔公司 用于异构多核心系统的动态核心选择
US11755099B2 (en) 2011-03-11 2023-09-12 Intel Corporation Dynamic core selection for heterogeneous multi-core systems
CN109960398B (zh) * 2011-03-11 2023-11-07 英特尔公司 用于异构多核心系统的动态核心选择
CN110083494A (zh) * 2011-12-30 2019-08-02 英特尔公司 在多核心环境中管理硬件错误的方法和装置
CN110083494B (zh) * 2011-12-30 2023-07-25 英特尔公司 在多核心环境中管理硬件错误的方法和装置
CN107924385A (zh) * 2015-08-21 2018-04-17 密克罗奇普技术公司 具有可选择处理器核心的集成电路装置

Also Published As

Publication number Publication date
CN103294557A (zh) 2013-09-11
JP2006260568A (ja) 2006-09-28
CN1834950B (zh) 2013-03-27
US20060212677A1 (en) 2006-09-21
CN103294557B (zh) 2018-04-27

Similar Documents

Publication Publication Date Title
CN1834950B (zh) 具有活动和非活动执行核心的多核处理器
US7917689B2 (en) Methods and apparatuses for nonvolatile memory wear leveling
CN101118503B (zh) 再分配处理环境的物理处理器的方法和系统
CN110825319B (zh) 基于块状态确定可用性的存储器系统及操作方法
CN101369247B (zh) 创建存储器缺陷映射表并使用该映射表优化性能的方法
CN1894662B (zh) 作为用于执行引导码的ram的处理器缓存存储器
CN100570563C (zh) 在具有动态逻辑分区的计算环境中管理计算机存储器
TWI475384B (zh) 用以建置記憶體缺陷對映圖之系統與方法
CN1920797A (zh) 存储器访问控制装置
CN101233489A (zh) 具有多个处理器的计算机系统中的自适应进程分派
CN101236530A (zh) 高速缓存替换策略的动态选择方法
US9336082B2 (en) Validating persistent memory content for processor main memory
US20080184006A1 (en) Method and System for Preloading Page Using Control Flow
CN110895449B (zh) 用于在存储器系统中管理有效数据的装置和方法
US20080109612A1 (en) Dynamic Code Relocation for Low Endurance Memories
CN113672430A (zh) 运行虚拟机的系统、操作其的方法、介质和存储器件
CN101620573B (zh) X86体系结构内存管理单元虚拟化方法
US20120226849A1 (en) Virtual computer system, area management method, and program
WO2023009467A1 (en) Methods and apparatus for managing register free lists
KR20200117032A (ko) 하이브리드 메모리 시스템
US7293207B2 (en) Method for testing memory in a computer system utilizing a CPU with either 32-bit or 36-bit memory addressing
US8819494B2 (en) Automatically changing parts in response to tests
US7051242B2 (en) Method and apparatus for improving yield by decommissioning optional units on a CPU due to manufacturing defects
CN108984347B (zh) 一种基于Linux系统的嵌入式设备重启状态记录方法
US8521988B2 (en) Control system and control method of virtual memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130327

Termination date: 20180315

CF01 Termination of patent right due to non-payment of annual fee