具有活动和非活动执行核心的多核处理器的制作方法

文档序号:14270968阅读:131来源:国知局
具有活动和非活动执行核心的多核处理器的制作方法

技术领域

本发明属于数据处理的领域,更具体地说,属于数据处理装置中的冗余性领域。



背景技术:

通常,数据处理装置的冗余性已被用来提高容错能力、可靠性和产率。计算机已经由诸如数据存储盘一类的冗余元件来构建,以在发生硬件故障的情况下防止数据丢失。计算机还可以由诸如处理器芯片一类的冗余元件来构建,以对使用中发生故障的元件进行自动替换,或者通过以“锁步(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或者根据本发明的实施例设计的任何其他组件或者组件的一部分。代表设计的数据可以以多种方式来表示设计。首先,在仿真中很有用的是,可以使用硬件描述语言或另一种功能描述语言来表示硬件。另外地或可替换地,可以在设计过程的某些阶段产生逻辑和/或晶体管门电路形式的电路级模型。此外,大多数设计在某一阶段上达到了可以用代表各种器件的物理放置的数据来建模的级别。在使用传统的半导体加工技术的情况下,代表器件放置模型的数据可以是为用来生产集成电路的掩模指定各种部件在不同掩模层存在与否的数据。

设计无论如何表示,所述数据都可以被存储在任何形式的机器可读介质中。被调制或者以其他方式生成来传输这种信息的光波或电波、存储器、或者磁或光存储介质(例如盘)都可以是所述的机器可读介质。这些介质中的任何一种都可以“传送”或“指示”所述设计或者用在本发明的实施例中的其他信息,例如错误恢复例程中的指令。当指示或传送信息的电载波被发送,达到进行电信号的拷贝、缓冲或重传的程度时,新的拷贝产生。因而,通信提供者或网络提供者的行为可以是产生可实施本发明技术的制品(例如载波)的拷贝的行为。

这样,已描述了具有活动和非活动执行核心的多核处理器。虽然在附图中示出并已描述了某些实施例,但是应当理解,这样的实施例仅仅是对本广义发明的示例说明而非限制,本发明不限于所示出并描述的特定结构和布置,因为本领域的普通技术人员在研究了本公开之后可以作出多种其他修改。在快速增长而又难以预见未来进展的这一技术领域中,在技术进步的推动下,可以很容易地在布置和细节上对公开的实施例作出修改,而不会偏离本公开的原理或者所附权利要求书的范围。

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