《在多核心环境中管理硬件错误的方法和装置.pdf》由会员分享,可在线阅读,更多相关《在多核心环境中管理硬件错误的方法和装置.pdf(17页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104137072A43申请公布日20141105CN104137072A21申请号201180076125722申请日20111230G06F9/46200601G06F9/44200601G06F11/2220060171申请人英特尔公司地址美国加利福尼亚州72发明人R斯万森M布卢苏RB巴恩森N兰加纳桑D隆巴德74专利代理机构中国专利代理香港有限公司72001代理人杨美灵汤春龙54发明名称在多核心环境中管理硬件错误的方法和装置57摘要在多核心环境中管理硬件错误的方法和装置包括将处理器核心分配为主处理器核心组和备用处理器核心组。主处理器核心组由操作系统使用,以及备用处理器核。
2、心组专用于软件应用。当一个处理器核心错误发生时,可执行处理器核心交换,将故障的主处理器核心交换为备用处理器核心而不中断操作系统的执行。85PCT国际申请进入国家阶段日2014062786PCT国际申请的申请数据PCT/US2011/0681302011123087PCT国际申请的公布数据WO2013/101193EN2013070451INTCL权利要求书4页说明书7页附图5页19中华人民共和国国家知识产权局12发明专利申请权利要求书4页说明书7页附图5页10申请公布号CN104137072ACN104137072A1/4页21一种方法,包括将计算设备的多个处理器核心的至少一个处理器核心分配给。
3、处理器核心备用组;在所述计算设备上仅使用所述多个处理器核心中没有分配的处理器核心来执行操作系统;在所述计算设备上使用处理器核心的所述备用组执行软件应用;检测由所述多个处理器核心中的处理器核心导致的处理器核心错误;以及响应于已由没有分配的处理器核心引起所述处理器核心错误,在所述没有分配的处理器核心和处理器核心的所述备用组之间执行处理器核心交换。2权利要求1所述的方法,其中,分配至少一个处理器核心包括至少分配所述多个处理器核心的三分之一到处理器核心的所述备用组。3权利要求1所述的方法,其中,分配至少一个处理器核心包括配置所述计算设备的处理器寄存器用于处理器核心的所述备用组的使用。4权利要求3所述的。
4、方法,其中,配置处理器寄存器包括为所述多个处理器核心的每一个处理器核心建立寄存器标记,所述寄存器标记可用来指示相关联的处理器核心是否已被分配到处理器核心的所述备用组。5权利要求3所述的方法,其中配置处理器寄存器包括为所述多个处理器核心的每一个处理器核心建立寄存器标记,所述寄存器标记可用来指示相关联的处理器核心是否已经故障。6权利要求3所述的方法,其中配置处理器寄存器包括为所述多个处理器核心的每一个处理器核心建立中断寄存器标记,所述中断寄存器标记可用于引起任何来自所述相关联处理器核心的硬件中断发源只被广播到处理器核心的所述备用组中的其它处理器核心而不被广播到任何没有分配的处理器核心。7权利要求1。
5、所述的方法,进一步包括为所述没有分配的核心建立主处理器核心描述表,以及为处理器核心的所述备用组建立备用处理器核心描述表,所述主处理器核心描述表只包括所述没有分配的核心。8权利要求7所述的方法,进一步的,其中执行所述操作系统包括使所述操作系统仅受到所述主处理器核心描述表中的所列所述处理器核心的影响。9权利要求7所述的方法,进一步的,其中执行所述软件应用包括在所述软件应用和所述备用处理器核心描述表中所列的至少一个所述处理器核心之间建立消息通过接口。10权利要求1所述的方法,进一步包括响应于所述处理器核心错误产生系统管理中断;以及响应于由处理器核心的所述备用组的分配的处理器核心引起的所述处理器核心错。
6、误,将所述系统管理中断仅广播到处理器核心的所述备用组的所述分配的处理器核心。11权利要求1所述的方法,进一步包括确定处理器核心错误是否是由没有分配的处理器核心引起的。12权利要求11所述的方法,进一步包括响应于确定由没有分配的处理器核心引起所述处理器核心错误,指令所述软件应用重启。13权利要求12所述的方法,进一步包括响应于所述软件应用重启将处理器核心的所述备用组中的新处理器核心分配给所述软件应用。权利要求书CN104137072A2/4页314权利要求11所述的方法,进一步包括响应于确定所述处理器核心错误是由没有分配的处理器核心引起的,确定所述处理器核心错误是否是可恢复的;以及响应于确定所述。
7、处理器核心错误是不可恢复的,将控制从所述计算系统的固件返回到所述操作系统用于所述处理器核心错误的处理。15权利要求11所述的方法,进一步包括响应于确定所述处理器核心错误是由没有分配的处理器核心引起的,确定所述处理器核心错误是否是可恢复的;以及递增与引起所述处理器核心错误的所述没有分配的处理器核心相关联的错误计数器。16权利要求15所述的方法,进一步包括比较所述错误计数器与参考阈值;以及响应于所述错误计数器小于所述参考阈值,将控制从所述计算系统的固件返回到所述操作系统,以允许所述操作系统来重新尝试执行在所述处理器核心错误的产生之前的最后的软件指令。17权利要求15所述的方法,进一步包括比较所述错。
8、误计数器与参考阈值;以及响应于所述错误计数器等于所述参考阈值执行所述处理器核心交换。18权利要求1所述的方法,其中执行处理器核心交换包括用来自处理器核心的所述备用组的替换处理器核心来代替引起所述处理器核心错误的所述没有分配的处理器核心。19权利要求18所述的方法,其中代替所述没有分配的处理器核心包括用所述替换处理器核心代替所述没有分配的处理器而不中断所述操作系统的执行。20权利要求18所述的方法,其中代替所述没有分配的处理器核心包括将来自引起所述处理器核心错误的所述没有分配的处理器核心的上下文移动到所述替换处理器核心。21权利要求20所述的方法,其中移动来自引起所述处理器核心错误的所述没有分配。
9、的处理器核心的所述上下文给所述替换处理器核心包括将与所述替换处理器核心相关联的虚拟核心识别数设置为与引起所述处理器核心错误的所述没有分配的处理器核心相关联的虚拟核心识别数。22权利要求18所述的方法,其中代替所述没有分配的处理器核心包括更新处理器核心寄存器以便指示所述没有分配的处理器核心已经故障并且所述替换处理器核心不再分配给处理器核心的所述备用组。23权利要求18所述的方法,其中代替所述没有分配的处理器核心包括更新主硬件描述表以I移除引起所述处理器核心错误的所述没有分配的处理器核心以及II增加所述替换处理器核心,在所述主硬件描述表中,每一个所述没有分配的处理器核心被列出。24权利要求23所述。
10、的方法,其中代替没有分配的处理器核心包括更新备用硬件描述表以移除所述替换处理器,在所述备用硬件描述表中,处理器核心的所述备用组中的每一个处理器核心被列出。25一种计算设备,包括多个处理器核心;存储器;权利要求书CN104137072A3/4页4固件逻辑,用来I将所述多个处理器核心中的至少一个分配给处理器核心的备用组,II在所述存储器中建立备用处理器核心硬件描述表,其包括每一个分配的处理器核心,以及III在所述存储器中建立主处理器硬件描述表,其包括每一个没有分配的处理器核心;以及处理器控制逻辑,控制处理器寄存器来指所述示多个处理器核心中的每一个处理器核心是分配的处理器核心还是没有分配的处理器核心。
11、,其中,响应于已由没有分配的处理器核心引起处理器核心错误,所述固件逻辑和所述处理器控制逻辑中的至少一个用来在所述没有分配的处理器核心与所述分配的处理器核心之间执行处理器核心交换。26权利要求25所述的计算设备,其中所述固件逻辑用于至少分配所述多个处理器核心的三分之一到处理器核心的所述备用组。27权利要求25所述的计算设备,其中处理器寄存器包括寄存器标记,其可用于指示所述相关联的处理器核心是否已故障。28权利要求25所述的计算设备,其中所述处理器寄存器包括中断寄存器标记,其可用于引起任何来自所述相关联处理器核心的硬件中断发源只被广播到处理器核心的所述备用组中的其它处理器核心而不被广播到任何没有分。
12、配的处理器核心。29权利要求25所述的计算设备,其中仅所述主处理器核心硬件描述表中所列的所述分配的处理器核心可以由在计算设备上执行的操作系统使用。30权利要求25所述的计算设备,其中所述固件逻辑用于在所述计算设备上执行的软件应用与所述备用处理器核心描述表中所列的至少一个分配的处理器核心之间建立消息通过接口。31权利要求25所述的计算设备,其中所述处理器控制逻辑用于响应于由处理器核心的所述备用组的分配的处理器核心引起的所述处理器核心错误,将响应于所述处理器核心错误产生的系统管理中断仅广播到处理器核心的所述备用组中的所述分配的处理器核心。32权利要求25所述的计算设备,其中所述固件逻辑用于确定处理。
13、器核心错误是否是由没有分配的处理器核心引起的。33权利要求32所述的计算设备,其中所述固件逻辑用于响应于确定由没有分配的处理器核心引起所述处理器核心错误,指令在所述计算设备上执行的软件应用使用处理器核心的所述备用组来重启。34权利要求33所述的计算设备,其中所述处理器控制逻辑用于响应于软件应用的重启将处理器核心的所述备用组中的新处理器核心分配给所述软件应用。35权利要求32所述的计算设备,其中固件逻辑用于响应于确定所述处理器核心错误是由没有分配的处理器核心引起的,确定所述处理器核心错误是否是可恢复的;以及响应于确定所述处理器核心错误是不可恢复的,将控制返回到所述计算设备上执行的操作系统用于所述。
14、处理器核心错误的处理。36权利要求32所述的计算设备,其中所述固件逻辑用于响应于确定所述处理器核心错误是由没有分配的处理器核心引起的,确定所述处理器核心错误是否是可恢复的;以及权利要求书CN104137072A4/4页5递增与引起所述处理器核心错误的所述没有分配的处理器核心相关联的错误计数器。37权利要求36所述的计算设备,其中所述固件逻辑用于比较所述错误计数器与参考阈值;以及响应于所述错误计数器小于所述参考阈值,返回控制到在所述计算设备上执行的操作系统以允许所述操作系统来重新尝试执行在所述处理器核心错误的产生之前的最后的软件指令。38权利要求36所述的计算设备,其中所述固件逻辑用于比较所述错。
15、误计数器与参考阈值;以及响应于所述错误计数器等于所述参考阈值执行所述处理器核心交换。39权利要求1所述的计算设备,其中执行处理器核心交换包括用来自处理器核心的所述备用组的替换处理器核心代替引起所述处理器核心错误的所述没有分配的处理器核心。40权利要求39所述的计算设备,其中代替所述没有分配的处理器核心包括用所述替换处理器核心代替所述没有分配的处理器而不中断所述计算设备上的操作系统的执行。41权利要求39所述的计算设备,其中代替所述没有分配的处理器核心包括将来自引起所述处理器核心错误的所述没有分配的处理器核心的上下文移动到所述替换处理器核心。42权利要求41所述的计算设备,其中移动来自引起所述处。
16、理器核心错误的所述没有分配的处理器核心的所述上下文到所述替换处理器核心包括将与所述替换处理器核心相关联的虚拟核心识别数设置为与引起所述处理器核心错误的所述没有分配的处理器核心相关联的虚拟核心识别数。43权利要求39所述的计算设备,其中代替所述没有分配的处理器核心包括更新处理器核心寄存器以指示所述没有分配的处理器核心已经故障并且所述替换处理器核心不再分配给处理器核心的所述备用组。44权利要求39所述的计算设备,其中代替所述没有分配的处理器核心包括所述更新主硬件描述表以I移除引起所述处理器核心错误的所述没有分配的处理器核心以及II增加所述替换处理器核心。45权利要求44所述的计算设备,其中代替所述。
17、没有分配的处理器核心包括更新所述备用硬件描述表以移除所述替换处理器。46一种或多种机器可读介质,包括多个存储其上的指令,所述指令响应执行被执行导致计算设备执行权利要求124中任一项所述的方法。权利要求书CN104137072A1/7页6在多核心环境中管理硬件错误的方法和装置背景技术0001现有的高性能计算依赖于使用许多处理器核心来实现各种密集的和复杂的计算和处理。一些计算设备特定地为这些任务设计并且可能包括多个处理器插槽,同时每个处理器具有多个处理器核心。同样地,高性能计算系统可以利用五十个或更多个处理器核心或者线程来执行各种工作负荷。这样的系统可以包括“小核心”,“小”和“大”核心的组合,或。
18、者全是“大”核心。小核心可以被定义为较低性能的处理器核心,被设计用于高并行计算,而大核心被定义为通用的计算核心,例如通常那些在标准服务器计算设备中发现的那样。0002在多核心或许多核心系统中,单一处理器核心的故障可以导致包括任何其余的正常核心的整个系统的不可恢复的错误。整个系统的关键故障的可能性被大量的处理器核心所放大。例如,在具有五十个处理器核心的系统中,五十个处理器核心之一出现故障能引起整个系统的故障。另外,在处理器裸晶的一个位置中的一个处理器核心的故障可能会在相邻的核心和片上施加不适当的压力。进一步地,处理器核心的损失可能增加其余核心的工作负荷,这可能恶化处理器核心或片中的任何电流问题。。
19、一些系统包括软件措施来管理处理器核心错误。然而,这些软件措施典型地增加系统工作负荷并且没有考虑核心或片的布局以及其对系统上持续计算的健康度和吞吐量的影响。附图说明0003本文中描述的本发明以示例而非限制的方式以附图来阐述。为了阐述的简洁和清楚,附图中所述的元素不一定按比例绘制。例如,为了清楚起见,一些元素的尺寸可以相对于其它元素夸大比例。进一步的,在认为适当时,参考标记已在附图之间重复以便指示相应的或者类似的元素。0004图1是用于多核心环境中管理硬件错误的计算设备的至少一个实施例的简化框图;0005图2是图1的计算设备的软件环境的至少一个实施例的简化框图;0006图3是用于分配图1计算设备的。
20、处理器核心的方法的至少一个实施例的简化流程图;0007图4是用于执行图1的计算设备上的应用的方法的至少一个实施例的简化流程图;以及0008图5是用于管理图1的计算设备的硬件错误的方法的至少一个实施例的简化流程图。具体实施方式0009虽然本公开的概念容许各种修改和备选形式,但是其中特定示范实施例已在附图中以示例的方式示出并且将在本文中详细描述。然而,应该理解的是,不意在将本公开的概念限制到所公开的特定形式,而是相反,意在覆盖和本公开的内容以及附加的权利要求一致的所有的修改、等价和备选。说明书CN104137072A2/7页70010在以下的描述中,大量特定的细节比如逻辑实现、操作码、规定操作数的。
21、方式、资源分割/共享/复制实现、系统组件的类型和内部关联关系以及逻辑分割/集成选择被提出,以便提供本公开的更加全面的理解。然而,将被理解的是,本领域技术人员可以实践本发明的实施例而不需要这样的特定细节。在其它实施例中,控制结构、门级电路和完全软件执行序列没有被详细的描述以便不使本发明变得难懂。本领域的普通技术人员在所包含的描述下将能够实现合适的功能性而不需要过度试验。0011在说明书中“一个实施例”,“实施例”,“示例性实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或者特性,但是可能不一定每一个实施例都包括该特定的特征、结构或者特性。而且,这样的语句不一定指相同的实施例。进一步地,。
22、当特定的特征、结构或特性结合实施例被描述时,应该认为与其它实施例相关联实现这样的特征、结构或者特性属于本领域技术人员的知识范围内,而无论是否明确描述。0012本发明实施例可以在硬件、固件、软件或者其任何组合中执行。在计算机系统中实现的本发明实施例可以包括在组件之间的一个或者多个基于总线的互连和/或在组件之间的一个或多个点对点互连。本发明的实施例也可以实现为指令,该指令由短暂性或者非短暂性机器可读介质携带或者存储在短暂性或者非短暂性机器可读介质上,该介质可以被一个或多个处理器读取和执行。机器可读介质可以体现为机器例如计算设备可读形式的任何设备、机构或用于存储或传输信息的物理结构。例如,机器可读介。
23、质可以包括体现为只读存储器ROM;随机存取存储器RAM;磁盘存储介质;光存储介质;闪存设备;小型或者微型SD卡;存储棒;电信号以及其它。0013在附图中,示意性元素比如表示设备、模块、指令块和数据元素的那些的特定布置或顺序为了易于描述可以被示出。然而,本领域技术人员应该理解的是,附图中示意性元素的特定顺序或布置不意味着暗示处理的特殊顺序或序列或者处理的分离是需要的。进一步的,附图包含示意性元素不意味着暗示这样的元素在所有的实施例都是需要的或者由这样的元件所代表的特征不可以包含在一些实施例中,或者在一些实施例中由这样的元件所代表的特征不可以与其它元素组合。0014一般来说,用于代表指令块的示意性。
24、元素可以利用任何合适的机器可读指令的形式被执行,机器可读指令的合适的形式比如软件或固件应用、程序、功函数、模块、例程、处理、过程、插件、JAVA程序、微件、编码片段和/或其它,并且每一个这样的指令可以使用任意合适的编程语言、库、应用编程接口API,和/或其它软件开发工具来实现。例如,一些实施例可以利用JAVA、C和/或其它编程语言来实现。类似地,用于代表数据或信息的示意性元素可以使用任意合适的电子布置或结构来实现,合适的电子布置或结构比如寄存器、数据存储器、表、记录、数组、索引、散列、映射、树、列表、图表、文件任一文件类型的、文件夹、目录、数据库和/或其它。0015进一步地,在附图中,其中连接。
25、元素,比如实线或点划线或者箭头,都用来表示两个或者多个其它示意性元素之间或之中的连接、关系或者关联,任何这样连接元素的缺失不意味着暗示没有连接、关系或者关联可以存在。换句话说,元件之间的某些连接、关系或者关联可能没有在图中示出并不导致本发明公开内容的晦涩。另外,为了易于描述,单一连接元素可以被用于代表元件之间的多个连接、关系或者关联。例如,连接元素代表信号、数据或者指令的通信,本领域技术人员应该理解的是,这样的元素可以代表一个或者多个信说明书CN104137072A3/7页8号路径例如,总线,其可能被需要以用于影响通信。0016现在参考图1,计算设备100用于管理多核心环境中的硬件错误,多核心。
26、环境包括一个或多个多核心处理器102。每一个多核心处理器102包括一个或多个处理器核心104以致计算设备100包括两个或多个处理器核心。例如,在一些实施例中,计算设备100可以包括五十或更多处理器核心。在使用中,源于处理器核心104的计算设备100的硬件错误通过在处理器核心的主组202和备用组204之间分配处理器核心104来管理参见图2。这样做,正如下面所详细描述的那样,建立了主硬件描述表212参见图2和分离的备用硬件描述表214参见图2,其中主硬件描述表212代表主组202的处理器核心104中的每一个,分离的备用硬件描述表214代表备用组204的处理器核心104中的每一个。0017主硬件描述。
27、表212的处理器核心104受到在计算设备100上执行的操作系统的影响的同时,备用硬件描述表214的处理器核心104是“摘要的”或者否则不直接对于操作系统内核可访问。备用硬件描述表214的处理器核心104备用于和分配到在计算设备100上以计算请求响应的方式执行的软件应用例如,计算密集的应用上。为了这样做,在软件应用和备用组204的分配的处理器核心104之间建立了消息通过接口MPI。处理器核心错误一旦随着分配的处理器核心104之一而发生,相关联的中断就被限制到处理器核心104的备用组204即,中断不由处理器核心104的主组202接收。这样,相关联的软件应用或相关联软件应用的任务可以重启并且备用组2。
28、04的新处理器核心104可以被分配到软件应用或其任务。备选地,处理器核心错误一旦随着主硬件描述表212的处理器核心104之一而发生,就可以执行处理器核心交换,用来自备用组204的处理器核心104来代替主组202的故障/已故障的处理器核心104。在一个实施例中,处理器核心交换是基于处理器裸晶中故障/已故障的处理器核心104的位置来执行的以便使预期错误最小化以及使等待时间最小化例如,备用组204的替换处理器核心104可以基于主组202的故障/已故障的处理器核心104的裸晶位置来选择。另外,执行处理器核心交换而不影响操作系统,其通过使用内嵌的固件、硬件、系统软件等在主组202的处理器核心104上执行。
29、。为了这样做,正如下面所讨论的,计算设备100的上下文被中止,如在典型的系统管理模式SMM或者类似的错误处理状态中执行的。这样,即使在处理器核心故障的情况下,操作系统的执行也可以不被中断例如,操作系统不需要被重启。0018如图1所示,处理器102包括控制器106和处理器寄存器108,其可以包括为处理器102的内存储器的存储器位置。控制器106可以体现为用于控制对处理器核心104的操作和访问的控制电路和相关联的固件/微码。例如,如下面更加详细地讨论的,控制器106配置处理器寄存器108用于将处理器核心分配到备用组204以及管理对处理器核心104的主组202和备用组204的访问。另外,如下面更加详。
30、细地讨论的,处理器寄存器108包括用于每一处理器核心104的寄存器标记、位或其它指示符以便指示相应处理器核心104是否已故障或者正故障并控制或限制由相应处理器核心104对相应处理器组202、204引起的硬件中断的广播。0019计算设备100可以体现为任何类型的计算设备,比如移动计算设备、智能电话、计算平板、移动互联网设备、膝上计算机、数字助手、台式计算机、服务器和/或其它能够执行这里所描述的功能的计算设备。如图1所示,说明性计算设备100进一步包括I/O子系统110、存储器112、数据存储器114和一个或多个附加外围设备116。在一些实施例中,几个说明书CN104137072A4/7页9前述元。
31、件可能被并入在计算设备100的主板上,同时其它元件可以通过例如外围接口与主板通信的耦合。进一步地,应该理解的是,计算设备100可以包括其它组件、子组件和通常在多核心计算设备或系统中出现的设备,为了使描述清楚这些设备未在图1中示出。0020计算设备100的I/O子系统110可以体现为电路和/或组件以便于处理器102和/或计算设备100的其它组件的输入/输出操作。在一些实施例中,I/O子系统110可以包含例如存储器控制器集线器MCH或者“北桥”、输入/输出控制器集线器ICH或者“南桥”以及固件设备。在这样的实施例中,I/O子系统110的固件设备可以体现为例如存储器设备以用于存储基本输入/输出系统B。
32、IOS数据和/或指令和/或其它信息例如,计算设备100的引导期间使用的BIOS驱动器。然而,在其它实施例中,可以使用具有其它的配置的I/O子系统。例如,在一些实施例中,I/O子系统110可以体现为平台控制器集线器PCH。在这样的实施例中,存储器控制器集线器MCH可以被并入处理器102或者以其它方式与处理器102关联,并且处理器102可以与存储器112直接通信如图1中虚线所示。另外,在其它实施例中,I/O子系统110可以形成芯片上系统SOC的一部分,并且和处理器102以及计算设备100的其它组件一起并入在单个集成电路芯片上。0021处理器102通过多个信号路径通信耦合到I/O子系统110。这些信。
33、号路径和其它图1所示的信号路径可以体现为任何类型的能够易于在计算设备100的组件之间通信的信号路径。例如,信号路径可以体现为例如任何数量的点对点链路、线路、缆线、光导、印刷电路板迹线、通路、总线、插入设备和/或类似的。0022计算设备100的存储器112可以体现为或否则包括一个或多个存储器设备或数据存储位置,包括例如动态随机存取存储器设备DRAM、同步动态随机存取存储器设备SDRAM、双数据速率同步动态随机存取存储器设备DDRSDRAM、屏蔽只读存储器ROM设备、可擦除可编程ROMEPROM、电可擦除可编程ROMEEPROM设备、闪存设备和/或其它易失性和/或非易失性存储器设备。存储器112通。
34、过大量信号路径通信耦合到I/O子系统110。尽管在图1中仅示出单个存储器设备112,但在其它实施例中计算设备100可以包括附加存储器设备。各种数据和软件可以被存储在存储器112中。例如,形成由处理器102来执行的软件堆栈的一个或多个操作系统、应用、程序、库和驱动器在执行期间可以驻留在存储器112中。0023数据存储114可以体现为任何类型的设备或者多个设备,其配置成用于短期或者长期的数据存储,比如例如存储器设备和电路、存储卡、硬盘驱动器、固态驱动器或其它数据存储设备。例如,在计算设备100上执行的操作系统和各种软件应用可以被存储在数据存储114中。另外,由这些软件应用所产生的数据可以被存储在数。
35、据存储114上用于之后的取回并用于如软件应用所需要的用途。0024计算设备100的外围设备116可以包括任何数量的附加输入/输出设备、接口设备和/或其它外围设备。例如,外围设备116可以包括显示器、键盘、鼠标、扬声器和/或其它外围设备。外围设备116通过多个信号路径与I/O子系统110通信耦合由此允许I/O子系统110和/或处理器102接收来自外围设备116的输入以及发送输出给外围设备116。0025现在参考图2,在使用中,计算设备100建立了软件环境200。软件环境200包括一个或多个软件应用220,其在计算设备100的操作系统222上执行。软件应用220可以体现为任何类型的能够如下所述利用。
36、备用组204的处理器核心104的软件应用。例如,在一说明书CN104137072A5/7页10个实施例中,软件应用200包含计算密集、多线程应用。0026软件环境200也包括固件224,比如基础输入/输出系统BIOS固件,其控制应用220和操作系统222对处理器核心104的访问。为了这样做,如上所述,固件224建立主处理器核心描述表212,其说明性地体现为多改进式编程中断控制器APIC描述表MADT。当然,其它类型的硬件描述表、列表或数据集可以被使用在其它实施例中。主处理器核心描述表212识别主组202的每一个没有分配的处理器核心104。然而,备用组204的被分配的处理器核心104没有列在主处。
37、理器核心描述表212中。在初始化期间,操作系统222访问主处理器核心描述212以便识别那些可用于操作系统222的处理器核心104。因为备用组204的被分配的处理器核心104没有在主处理器核心描述表212中列出,备用组204的被分配的处理器核心104从操作系统222“摘要”出,以及如此操作系统222在普通操作期间不直接使用备用组204的处理器核心104。0027固件224也建立了备用处理器核心描述表214,其说明性的体现为虚拟消息通过接口VMPI表。再次,其它类型的硬件描述表、列表或数据集可以被用在其它实施例中。备用处理器核心描述表214识别处理器核心104的备用组204的分配的处理器核心104。
38、中的每一个。在应用220的执行期间,备用处理器核心描述表214的处理器核心104被分配到所需的软件应用220或软件应用220的单个任务/线程。0028为了易于与处理器核心104的交互,固件224也在操作系统222和主组202的处理器核心104之间建立改进式配置和功率接口ACPI,并在应用220和备用组204的处理器核心104之间建立消息通过接口MPI。操作系统222使用ACPI以便与主组202的处理器核心104通信并且应用220使用MPI以便与备用组204的处理器核心通信。0029软件环境200也包括一个或多个处理器微码226,其可以由处理器102的控制器106执行。微码226管理和控制对处理。
39、器核心104的访问。例如,如上所述,微码226保持处理器寄存器108以易于处理器核心104在主组202和备用组204之间的分配。尽管图2的说明性实施例中示出和描述为处理器微码226,但应该理解的是在其它实施例中BIOSSMM或者其它嵌入的操作编码可以被用于管理和控制对处理器核心104的访问。0030在图2所述的实施例中,处理器寄存器108包括大量的标记、位或者其它指示符,其可用于指示处理器核心104的状态并控制由其产生的错误处理。例如,处理器寄存器108包括备用核心标记230,其可以由微码226用于例如,“设置为”指示相应的处理器核心104已经被分配给备用组204。处理器寄存器108还包括故障。
40、核心标记232,其可以通过微码226用于指示相应处理器核心104已经故障或者正故障。另外,处理器寄存器108包括虚拟消息通过接口VMPI中断标记234,其可以由微码226用于指示由相应处理器核心104所引起的任何中断应该只被广播到备用组204的处理器核心104或者以其它方式仅可由备用组204的处理器核心104访问。0031如下更详细描述的那样,一旦处理器核心错误在计算设备100的操作期间发生,固件224和/或微码226就可以执行某些动作以易于计算设备100从硬件错误中恢复。例如,如果处理器核心错误由备用组204的处理器核心104引起的,则由其产生的硬件错误仅广播到备用组204的那些处理器核心1。
41、04以及由此是可恢复的。为了这样做,固件224指令应用220重启,这使得备用组204的新处理器核心104被分配到应用220。备选地,如果处理器核心错误是由主组202的处理器核心104引起的,则固件224/微码226可以执行处说明书CN104137072A106/7页11理器核心交换如果错误是可恢复的来用备用组204的处理器核心104替换主组202的已故障的/故障的处理器核心104。这样,处理器核心错误可以被处理而不中止或者重启操作系统222的执行。0032现在参考图3,在使用中,计算设备100可以执行方法300以便将处理器核心104分配为主组202和备用组204。方法300开始于块302,其中。
42、计算设备100执行预引导初始化过程例如,存储器112可以被初始化。在块304中,微码226配置处理器寄存器108用于处理器核心104的分配。为了这样做,如上所述,固件224或微码226可以配置处理器寄存器108以用来与备用核心标记230、故障核心标记232和VMPI中断标记234一起使用。微码226也可以设置备用核心标记230和VMPI中断标记234以用于分配给备用组204的那些处理器核心104。0033在块306中,固件224建立主处理器核心描述表212。如上所述,主处理器核心描述表212识别主组202的每一个没有分配的处理器核心104。类似地,在块308中,固件224建立备用处理器核心描述。
43、表214。再次,如上所述,备用处理器核心描述表214识别处理器核心104的备用组204主组202的每一个分配的处理器核心104。另外,在块310中,固件224建立错误处理器用于主处理器核心描述表212和备用处理器核心描述表214的处理器核心104例如,参见图5的方法500。0034现在参考图4,在计算设备100已执行方法300的初始化以及处理器核心分配过程之后,计算设备100可以加载操作系统222并且执行一个或多个软件应用220。为了这样做,计算设备100可以执行方法400以用于在计算设备100上执行软件应用。方法400开始于块402,其中操作系统122被加载到计算设备100上。在块404中,。
44、计算设备100确定是否执行软件应用220。如果是,则方法400前进到块406,其中计算设备100确定软件应用220是否要使用备用组204的分配的处理器核心104。如果否,则在块408中,使用来自主组202的处理器核心104来执行软件应用220。然而,如果软件应用220要使用备用组204的分配的处理器核心104,则方法400前进到块410,其中备用组204的一个或多个处理器核心被分配给软件应用220。计算设备100可以使用任何合适的方法或者算法例如,负载平衡算法来选择分配给软件应用220的备用组204的处理器核心104。随后,在块412中,使用备用组204的分配的处理器核心104来执行软件应用。。
45、应该理解的是,在一些实施例中,在计算设备100上执行的每一个软件应用220被分配有来自备用组204的处理器核心104。0035现在参考图5,在执行软件应用220期间,一个或多个硬件错误可能会发生。这样,计算设备100可以执行方法500来管理硬件错误。方法500开始于块502,其中计算设备100确定是否已发生硬件错误。在一些实施例中,响应于硬件错误产生系统管理中断SMI。如果硬件错误没有发生,方法500循环回到块502以便继续监视硬件错误。然而,如果硬件错误已经发生,则方法500前进到块504,其中计算设备100确定硬件错误是否是处理器核心错误。如果计算设备100确定硬件错误不是处理器核心错误例。
46、如,硬件错误可能是存储器错误,则方法500前进到块506,其中硬件错误被如常处理。0036然而,如果硬件错误被确定为处理器核心错误,则方法500前进到块508,其中计算设备100的固件224确定处理器核心错误是否由备用组204的处理器核心104引起。如果是,则处理器核心错误是可恢复的,并且方法500前进到块510,其中固件224通知软件应说明书CN104137072A117/7页12用220重启,并且在块514中固件返回控制到操作系统222。如上所述,当应用220被重启,备用组204的一个或多个新的处理器核心104将被分配给应用220即,不太可能在备用组204的相同的处理器核心104上执行该应。
47、用。另外,如上所述,如果处理器核心错误是由备用组204的处理器核心104所引起的,则作为处理器核心错误的结果产生的系统管理中断SMI仅广播到备用组的那些处理器核心104,而不广播到主组202的处理器核心104。0037返回参考块508,如果固件224确定处理器核心错误是由主组202的处理器核心104所引起的,则方法500前进到块516,其中固件224确定处理器核心错误是否是可恢复的错误。如果否,那么方法500则运行块518,其中控制被返回到操作系统222用于附加错误处理如果是可用的。然而,在块516中,如果固件224确定处理器核心错误是可恢复的错误,则方法500前进到块520,其中固件224更。
48、新与负责处理器核心错误的处理器核心104关联的错误跟踪计数器。错误跟踪计数器可以体现为任何类型的软件计数器或寄存器以用于跟踪由相应处理器核心104引起的处理器核心错误发生的次数。在块522,固件224确定相关联的处理器核心104的错误跟踪计数器是否已达到参考阈值例如,相应的处理器核心104已经产生的处理器核心错误的数量等于或者大于参考阈值。如果否,方则法500前进到块514,其中固件224返回控制给操作系统222以便允许操作系统222重新尝试执行最近执行的指令或程序。0038然而,如果相应处理器核心104的错误阈值已经达到,则方法500前进到块524,其中固件224/微码226执行处理器核心交。
49、换。也就是,已故障的或故障的处理器核心104即,引起处理器核心错误的处理器核心104被来自备用组204的处理器核心104替换。为了这样做,在块526中固件224更新主处理器核心描述表212以增加来自备用组204的替换处理器核心104。另外,固件224更新备用处理器核心描述表214来移除替换处理器核心104。固件224可以使用任何合适的方法或者算法以便选择备用组204的哪些处理器核心要用作替换核心。例如,在一个实施例中,固件224基于主组202的已故障或故障处理器核心104的裸晶位置选择备用组204的处理器核心来用作替换核心。0039在块526中,通过重设备用核心标记230来指示替换处理器核心1。
50、04不再分配给备用组204,微码226也更新处理器寄存器108。另外,微码226也可以设置已故障或者故障处理器核心104的故障核心标记232。进一步的,在块524中,固件224和/或微码226尝试移动故障处理器核心104的状态信息和上下文例如,寄存器设置等到替换处理器核心104中。然而,在一些情况下,故障处理器核心104的完整上下文不可以被获得。在块528中,固件224清除与替换处理器核心104相关联的错误计数器并且方法500循环返回到块502以监视另外的硬件错误。0040虽然本公开已经在附图和前述描述中被说明并描述,但这样的说明和描述的性质应认为是示例性的而不是限制,应该理解的是,仅示出并且。