CN103294557B - 具有活动和非活动执行核心的多核处理器 - Google Patents
具有活动和非活动执行核心的多核处理器 Download PDFInfo
- Publication number
- CN103294557B CN103294557B CN201310052020.9A CN201310052020A CN103294557B CN 103294557 B CN103294557 B CN 103294557B CN 201310052020 A CN201310052020 A CN 201310052020A CN 103294557 B CN103294557 B CN 103294557B
- Authority
- CN
- China
- Prior art keywords
- core
- processor
- execution
- identification register
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2043—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
本申请是申请日为2006年3月15日,申请号200610067781.1、名称为“具有活动和非活动执行核心的多核处理器”的申请的分案申请。
技术领域
本发明属于数据处理的领域,更具体地说,属于数据处理装置中的冗余性领域。
背景技术
通常,数据处理装置的冗余性已被用来提高容错能力、可靠性和产率。计算机已经由诸如数据存储盘一类的冗余元件来构建,以在发生硬件故障的情况下防止数据丢失。计算机还可以由诸如处理器芯片一类的冗余元件来构建,以对使用中发生故障的元件进行自动替换,或者通过以“锁步(lockstep)”方式执行指令,即通过冗余地执行指令而进行检错。一些计算机芯片,例如存储器包括可排列为阵列的电路***,这些芯片已经由冗余列来构建,它们可被用来替换包括制造缺陷或者使用后发生故障的列。然而,处理器芯片内冗余性的使用已受到处理器中晶体管布局的稠密、不规则特性的限制。
发明内容
为解决以上技术问题,本发明公开了具有活动和非活动执行核心(core)的多核处理器及其相关方法和***。根据本发明的一个方面,提供了一种装置,包括:在单个集成电路上具有多个执行核心的处理器;以及,多个核心标识寄存器,每个核心标识寄存器对应于所述多个执行核心中的一个核心,用以标识所述多个执行核心中对应的一个核心是否为活动的。
根据本发明的另一个方面,提供了一种方法,包括:确定多核处理器的备用核心将被激活;以及配置所述多核处理器以激活所述备用核心。
根据本发明的又一个方面,提供了一种方法,包括:调度第一程序以在多核处理器的第一核心上执行;在所述第一核心上执行所述第一程序;重配置所述多核处理器,以将所述第一核心的标识映射到第二核心;调度第二程序以在所述第一核心上执行;以及在所述第二核心上执行所述第二程序。
根据本发明的再一个方面,提供了一种***,包括:动态随机访问存储器;在单个集成电路上具有多个执行核心的处理器;以及,多个核心标识寄存器,每个核心标识寄存器对应于所述多个执行核心中的一个核心,用以标识所述多个执行核心中对应的一个核心是否为活动的。
附图说明
在附图中以示例而非限制的方式图示说明了本发明。
图1根据本发明的实施例图示了一种具有活动和非活动执行核心的多核处理器。
图2根据本发明的实施例图示了一种包括重配置多核处理器以激活备用核心的方法。
图3根据本发明的实施例图示了一种包括具有活动和非活动执行核心的多核处理器的***。
具体实施方式
以下的说明部分描述了其中多核处理器具有活动和非活动执行核心的数据处理装置、方法和***的实施例。在以下描述中,可以阐述大量具体的细节,例如组件和***配置,以提供对本发明更加完整的理解。然而,本领域的技术人员将会理解,没有这些具体的细节也可以实现本发明。此外,没有详细描述某些公知的结构、电路、技术等,以免不必要地模糊了本发明。
图1根据本发明的实施例图示了多核处理器100。一般而言,多核处理器是包括一个以上执行核心的单个集成电路。一个执行核心包括用于执行指令的逻辑。除了执行核心外,多核处理器在本发明的范围内还可以包括专用或共享资源的任意组合。专用资源可以是单个核心专用的资源,例如专用一级缓存(level one cache),或者可以是多个核心的任意子集专用的资源。共享资源可以是由所有核心共享的资源,例如共享二级缓存(leveltwo 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.如权利要求1所述的处理器,其中所述多个执行核心中的一个执行核心为非活动的。
5.如权利要求4所述的处理器,还包括:
非易失存储器,用于存储指令,所述指令在由所述处理器执行时将所述多个执行核心中的一个执行核心重配置为活动的。
6.如权利要求1所述的处理器,其中所述第二核心标识寄存器可编程为将所述第二执行核心从非活动的改变为活动的。
7.如权利要求6所述的处理器,其中所述第一核心标识寄存器可编程为将所述第一执行核心从活动的改变为非活动的。
8.如权利要求1所述的处理器,其中识别第一活动核心的第一地址和识别第二活动核心的第二地址存储在所述多个核心标识寄存器中。
9.如权利要求1所述的处理器,其中在所述处理器上运行的虚拟机监视器发起对第一执行核心的访问。
10.一种数据处理方法,包括:
确定包括多个执行核心的多核处理器的备用执行核心将被激活;以及
配置所述多核处理器,以通过在对应于该备用执行核心的核心标识寄存器处存储地址以将所述备用执行核心识别为活动的从而将访问指向所述备用执行核心来激活所述备用执行核心。
11.如权利要求10所述的方法,其中确定备用核心将被激活的步骤包括确定所述多核处理器的第二活动核心将被替换。
12.如权利要求11所述的方法,还包括配置所述多核处理器去激活所述第二活动核心。
13.如权利要求12所述的方法,还包括将去激活的核心标注为有缺陷的。
14.如权利要求12所述的方法,还包括保存去激活的核心的状态。
15.如权利要求14所述的方法,还包括将去激活的核心的状态加载到所述备用核心中。
16.如权利要求10所述的方法,其中确定备用核心将被激活的步骤包括确定所述多核处理器的第二活动核心将与所述备用核心一起以锁步方式执行。
17.如权利要求16所述的方法,其中配置所述多核处理器激活所述备用核心的步骤包括配置所述第二活动核心和所述备用核心以锁步方式执行。
18.一种数据处理***,包括:
动态随机访问存储器;
处理器,耦合到所述动态随机访问存储器,并且包括:
在单个集成电路上的多个执行核心;以及
多个核心标识寄存器,所述多个核心标识寄存器中的每一个核心标识寄存器耦合到并且标识所述多个执行核心中的一个执行核心,其中所述多个核心标识寄存器包
括:
第一核心标识寄存器,耦合到所述多个执行核心中的第一执行核心,并且用于存储将所述第一执行核心标识为活动的第一地址,以及
第二核心标识寄存器,耦合到所述多个执行核心中的第二执行核心,并且用于存储将所述第二执行核心标识为非活动的值。
19.一种机器可读介质,所述机器可读介质存储有指令,所述指令在被机器执行时,使得所述机器执行如权利要求10-17中任一项所述的方法。
20.一种***,包括各自用于执行如权利要求10-17中任一项所述的方法中的对应步骤的多个装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/081,306 US20060212677A1 (en) | 2005-03-15 | 2005-03-15 | Multicore processor having active and inactive execution cores |
US11/081,306 | 2005-03-15 | ||
CN2006100677811A CN1834950B (zh) | 2005-03-15 | 2006-03-15 | 具有活动和非活动执行核心的多核处理器 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006100677811A Division CN1834950B (zh) | 2005-03-15 | 2006-03-15 | 具有活动和非活动执行核心的多核处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103294557A CN103294557A (zh) | 2013-09-11 |
CN103294557B true CN103294557B (zh) | 2018-04-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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006100677811A Expired - Fee Related CN1834950B (zh) | 2005-03-15 | 2006-03-15 | 具有活动和非活动执行核心的多核处理器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20060212677A1 (zh) |
JP (1) | JP2006260568A (zh) |
CN (2) | CN103294557B (zh) |
Families Citing this family (82)
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" |
US8074110B2 (en) * | 2006-02-28 | 2011-12-06 | Intel Corporation | Enhancing reliability of a many-core processor |
JP5003097B2 (ja) * | 2006-10-25 | 2012-08-15 | ソニー株式会社 | 半導体チップ |
EP2078263B1 (en) | 2006-10-31 | 2019-06-12 | Semiconductor Energy Laboratory Co, Ltd. | Semiconductor device |
JP5100310B2 (ja) * | 2006-10-31 | 2012-12-19 | 株式会社半導体エネルギー研究所 | 半導体装置 |
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 |
CN101236515B (zh) * | 2007-01-31 | 2010-05-19 | 迈普通信技术股份有限公司 | 多核***单核异常的恢复方法 |
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 |
JP5353712B2 (ja) * | 2007-12-26 | 2013-11-27 | 日本電気株式会社 | 冗長構成管理システムおよび方法 |
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 |
CN101217467B (zh) * | 2007-12-28 | 2010-10-27 | 杭州华三通信技术有限公司 | 核间负载分发装置及方法 |
US7962771B2 (en) * | 2007-12-31 | 2011-06-14 | Intel Corporation | Method, system, and apparatus for rerouting interrupts in a multi-core processor |
US20090187735A1 (en) * | 2008-01-22 | 2009-07-23 | 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 |
US8145880B1 (en) | 2008-07-07 | 2012-03-27 | Ovics | Matrix processor data switch routing systems and methods |
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 |
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 |
CN101403982B (zh) * | 2008-11-03 | 2011-07-20 | 华为技术有限公司 | 一种多核处理器的任务分配方法和*** |
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 |
US8392661B1 (en) * | 2009-09-21 | 2013-03-05 | Tilera Corporation | Managing cache coherence |
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 |
CN101996087B (zh) * | 2010-12-02 | 2013-12-04 | 北京星河亮点技术股份有限公司 | 多核处理器阵列程序的动态加载方法 |
US8443230B1 (en) * | 2010-12-15 | 2013-05-14 | Xilinx, Inc. | Methods and systems with transaction-level lockstep |
US8949414B2 (en) * | 2010-12-29 | 2015-02-03 | Citrix Systems, Inc. | Systems and methods for scalable N-core stats aggregation |
JP5293752B2 (ja) * | 2011-01-14 | 2013-09-18 | 日本電気株式会社 | 制御装置、及びファームウェア更新方法とそのプログラム |
US8683243B2 (en) * | 2011-03-11 | 2014-03-25 | Intel Corporation | Dynamic core selection for heterogeneous multi-core systems |
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 |
CN104137072A (zh) | 2011-12-30 | 2014-11-05 | 英特尔公司 | 在多核心环境中管理硬件错误的方法和装置 |
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 |
WO2013126066A1 (en) * | 2012-02-24 | 2013-08-29 | Hewlett-Packard Development Company, L.P. | Wear-leveling cores of a multi-core processor |
CN104169879B (zh) * | 2012-04-24 | 2019-01-04 | 英特尔公司 | 用于动态中断重新配置的方法和计算机*** |
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 |
WO2016007140A1 (en) * | 2014-07-08 | 2016-01-14 | Intel Corporation | Techniques to achieve area reduction through co-optimizing logic core blocks and memory redundancies |
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 |
US20170052799A1 (en) * | 2015-08-21 | 2017-02-23 | Microchip Technology Incorporated | Integrated Circuit Device With Selectable Processor Core |
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 | 西北工业大学 | 一种自修复处理器对锁步***的可靠性建模与分析方法 |
CN114424168A (zh) | 2019-09-27 | 2022-04-29 | 英特尔公司 | 用于软件定义的硅安全性的***、方法和装置 |
CN114341917A (zh) * | 2019-09-27 | 2022-04-12 | 英特尔公司 | 软件定义的硅实现和管理 |
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 |
Citations (2)
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 |
CN1495611A (zh) * | 2002-07-12 | 2004-05-12 | �ձ�������ʽ���� | 容错计算机***及其再同步方法和再同步程序 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
-
2005
- 2005-03-15 US US11/081,306 patent/US20060212677A1/en not_active Abandoned
-
2006
- 2006-03-14 JP JP2006069720A patent/JP2006260568A/ja active Pending
- 2006-03-15 CN CN201310052020.9A patent/CN103294557B/zh active Active
- 2006-03-15 CN CN2006100677811A patent/CN1834950B/zh not_active Expired - Fee Related
Patent Citations (2)
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 |
CN1495611A (zh) * | 2002-07-12 | 2004-05-12 | �ձ�������ʽ���� | 容错计算机***及其再同步方法和再同步程序 |
Also Published As
Publication number | Publication date |
---|---|
US20060212677A1 (en) | 2006-09-21 |
CN103294557A (zh) | 2013-09-11 |
CN1834950A (zh) | 2006-09-20 |
JP2006260568A (ja) | 2006-09-28 |
CN1834950B (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103294557B (zh) | 具有活动和非活动执行核心的多核处理器 | |
US9720797B2 (en) | Flash memory controller, data processing system with flash memory controller and method of operating a flash memory controller | |
CN100442237C (zh) | 访问逻辑分区中的存储器的方法和*** | |
CN101369247B (zh) | 创建存储器缺陷映射表并使用该映射表优化性能的方法 | |
CN1956101A (zh) | 用于处理存储阵列中的缺陷的方法和*** | |
US20130124932A1 (en) | Solid-State Disk Manufacturing Self Test | |
CN112667445B (zh) | 封装后的内存修复方法及装置、存储介质、电子设备 | |
US10067813B2 (en) | Method of analyzing a fault of an electronic system | |
CN103119554A (zh) | 提供平台无关的存储器逻辑 | |
CN1920797A (zh) | 存储器访问控制装置 | |
CN101458725B (zh) | 微控制器芯片及其调试方法 | |
MX2008011173A (es) | Aparato y metodo de prueba de arreglo de memoria de multiple puerto a-velocidad. | |
CN108351826A (zh) | 监视处理器的操作 | |
CN103164316B (zh) | 硬件监视器 | |
US8626965B2 (en) | Using a DMA engine to automatically validate DMA data paths | |
US7571357B2 (en) | Memory wrap test mode using functional read/write buffers | |
CN100585554C (zh) | 经由私有操作访问控制寄存器的***和方法 | |
TWI514400B (zh) | 記憶體裝置修護技術 | |
CN114446381B (zh) | eMMC故障分析方法、装置、可读存储介质及电子设备 | |
CN113672430A (zh) | 运行虚拟机的***、操作其的方法、介质和存储器件 | |
CN114765051A (zh) | 内存测试方法及装置、可读存储介质、电子设备 | |
US20110106522A1 (en) | virtual platform for prototyping system-on-chip designs | |
CN100487666C (zh) | 用于自动识别部件的多个组合的方法和装置 | |
US7293207B2 (en) | Method for testing memory in a computer system utilizing a CPU with either 32-bit or 36-bit memory addressing | |
US7051242B2 (en) | Method and apparatus for improving yield by decommissioning optional units on a CPU due to manufacturing defects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |