CN101796499B - 具有群集id和群集内id的逻辑apic id的创建 - Google Patents

具有群集id和群集内id的逻辑apic id的创建 Download PDF

Info

Publication number
CN101796499B
CN101796499B CN200880107214.1A CN200880107214A CN101796499B CN 101796499 B CN101796499 B CN 101796499B CN 200880107214 A CN200880107214 A CN 200880107214A CN 101796499 B CN101796499 B CN 101796499B
Authority
CN
China
Prior art keywords
processor
identification number
logic
group
apic
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.)
Expired - Fee Related
Application number
CN200880107214.1A
Other languages
English (en)
Other versions
CN101796499A (zh
Inventor
S·D·考什基
K·K·蒂鲁瓦卢尔
J·B·克罗斯兰
S·穆思拉萨纳卢尔
R·S·帕塔萨拉蒂
L·P·霍德
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 CN201310013671.7A priority Critical patent/CN103077138B/zh
Publication of CN101796499A publication Critical patent/CN101796499A/zh
Application granted granted Critical
Publication of CN101796499B publication Critical patent/CN101796499B/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Power Sources (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

在一些实施例中,设备包含逻辑中断标识号创建逻辑以接收物理处理器标识号,并通过使用物理处理器标识号创建逻辑处理器标识号。每一个逻辑处理器标识号对应于其中一个物理处理器标识号,并且逻辑处理器标识号各包含处理器群集标识号和群集内标识号。处理器群集标识号各形成为包含来自在适当位置移位的对应物理处理器标识号的一组位,并且群集内标识号各响应于对应物理处理器标识号位中其它位的值形成。描述了其它实施例。

Description

具有群集ID和群集内ID的逻辑APIC ID的创建
技术领域
本发明的实施例一般涉及处理器的中断。
背景技术
高级可编程中断控制器(APIC)是根据可编程过程或优先级接收中断请求并提供中断输出的可编程中断控制器(PIC)。本地APIC用在处理器(诸如微处理器)中。I/O APIC用在芯片组装置(诸如输入/输出(I/O)控制集线器(ICH))和外围装置中。外围装置的示例包括耦合到ICH的装置,其与外围部件互连(PCI)标准之一或PCI Express(PCIe)标准之一、诸如由
Figure GSB00000710046200011
2006年12月20日提供的PCI
Figure GSB00000710046200012
基本规范版本2.0兼容。xAPIC是扩展APIC,其类似于早期的APIC,但具有一些附加特征,并且在xAPIC架构中,本地和I/O APIC通过系统总线而不是通过APIC总线通信。另外的扩展xAPIC包含附加扩展和特征。
处理器封装可包含多于1个核,每一个核可包含多于1个处理器。物理模式中断是中断装置通过物理标识号指定处理器或者广播到所有处理器的中断。逻辑模式中断是中断装置通过逻辑标识号指定处理器的中断。APIC中断传递包含定向中断(单个处理器目标)、多播(多个处理器目标)和广播(所有处理器)。在最低优先级中断中,使用过程来选择处于最低处理器优先级的处理器以响应该中断。最低优先级可以在芯片组中判定——经常以专门的方式,或使用处理器优先级的过期数据。因为优先级信息经常不可靠,所以一些芯片组仅选择特定处理器(诸如通过循环技术(round robin technique)),并以广播方式向该处理器提供中断,其中其它处理器也接收中断,但不响应它们。
逻辑模式在定向中断中提供了明显更大的灵活性,并且是微软Windows和一些Linux压缩包装操作系统所用的模式。xAPIC架构的逻辑模式给操作系统软件提供了在初始化逻辑APIC标识号(ID)方面的灵活性,该ID是系统中每个处理器的独特标识符。(处理器还具有物理APIC ID。)其它处理器以及装置或IOxAPIC使用这个ID向这个处理器发送中断。给定在初始化逻辑xAPIC ID方面的灵活性,在平台的实际物理拓扑与如何分配ID之间没有关系。虽然操作系统初始化允许操作系统在给处理器分组方面具有更大的灵活性,但是在平台级,这使定向逻辑模式中断路由变得复杂。通过广播中断并在中断匹配本地处理器逻辑的本地APIC ID时使本地处理器逻辑接受该中断来进行逻辑模式中断的路由。
让每个处理器检查每个中断导致了性能和功率低效。例如,在广播方法下,每个处理器尽管在该处理器处于低功率状态时也检查看看中断是否被定向到该处理器。由于中断发生得相当经常,使得处理器难以停留在深低功率状态。另外,性能降低了,原因在于,在向中断未定向的封装发送中断时,在互连上存在业务量。在一种方法下,操作系统已经试图使处理器的逻辑群集用于同一封装中的处理器,其方式是通过按处理器启动的顺序分配逻辑ID。如果依赖这种方法,那么它仅提供了部分解决方案,并且仍使用广播。从而,存在用于创建可以有效的方式路由到处理器的逻辑APIC的需要。
附图说明
根据下面给出的具体实施方式和本发明实施例的附图将更全面理解本发明,然而,这不应认为是将本发明局限于所描述的具体实施例,而只是用于说明和理解。
图1是根据本发明的一些实施例包含多核处理器封装、输入/输出集线器和装置的系统的框图表示。
图2是根据本发明的一些实施例包含多核处理器封装、输入/输出集线器和装置的系统的框图表示。
图3是供本发明一些实施例之用的电路板上插座(socket)的框图表示。
图4是供本发明一些实施例之用的物理APIC ID寄存器的框图表示。
图5是供本发明一些实施例之用的逻辑APIC ID寄存器的框图表示。
图6是逻辑APIC ID创建逻辑的框图表示。
图7例示了供本发明一些实施例之用的根据物理APIC ID生成逻辑APIC ID。
图8例示了根据本发明一些实施例的每个封装具有四个核且每个核具有两个逻辑处理器的两插座系统的物理和逻辑APIC ID。
图9是供本发明一些实施例之用的具有多个条目的APIC重定向表的框图表示。
图10是供本发明一些实施例之用的APIC重定向表条目的框图表示。
具体实施方式
在一些实施例中,系统根据处理器物理ID创建每个处理器的逻辑APIC ID。逻辑APIC ID包含处理器群集ID和群集内的处理器号(群集内ID)。逻辑APIC ID创建成使得群集内的所有处理器都包含在同一处理器封装中。这帮助减少了互连上的业务量,原因在于,中断可只定向到一个处理器封装,而不是广播到所有处理器封装。另外,这降低了功耗,原因在于,其它处理器封装中的处理器(或者在一些情况下同一处理器封装内的其它群集)不接收中断,并且因此不必确定中断是否定向到它们。在一些情况下,这防止处理器必须从休眠状态出来。
在一些实施例中,逻辑目的标识号可包含可用来响应于中断的处理器。处理器选择逻辑选择其中一个可用处理器接收中断。
在以下论述中,物理APIC ID是物理处理器标识号的示例,而逻辑APIC ID是逻辑处理器标识号的示例。逻辑APIC ID创建逻辑是逻辑标识号创建逻辑的示例。
1.系统概述
图1例示了可用在本发明一些实施例中的系统,但是其它实施例可包含包括不同细节的系统。参考图1,系统包含多处理器封装,该封装至少包含耦合到输入/输出集线器(IOH)12的处理器封装0和处理器封装1。IOH 12包含IOH I/O APIC 14、重定向逻辑18和处理器选择逻辑20。包含PCIe I/O APIC 28的PCIe装置26通过中断接口电路30耦合到IOH 12。装置36(诸如键盘和鼠标)通过IOH I/O APIC 14提供中断。IOH I/O APIC 14、I/O PCIe APIC 28和本地APIC 72-1...72-4和78-1...78-4可以是各种类型的APIC,诸如xAPIC或扩展xAPIC。备选地,可以使用APIC之外的其它中断控制器。
封装0包含核0和1以及在本文称为非核42的附加电路。核0包含处理器70-1和70-2,这些处理器分别包含本地APIC 72-1和72-2,而核1包含处理器70-3和70-4,这些处理器分别包含本地APIC 72-3和72-4。封装1包含核2和3以及称为非核52的附加电路。核1包含处理器76-1和76-2,这些处理器分别包含本地APIC 78-1和78-2,而核3包含处理器76-3和76-4,这些处理器分别包含本地APIC 78-3和78-4。封装0和1将包含未具体例示的各种部件。存储器64(诸如主存储器DRAM)耦合到非核42,而存储器66耦合到非核52。存储器60(包含保存操作系统(OS)的硬盘驱动器)耦合到IOH 12。在存储器60与IOH12之间可存在中间部件。BIOS存储器62耦合到IOH 12。
处理器70-1、70-2、70-3和70-4分别具有物理APIC ID P0、P1、P2和P3。处理器70-1、70-2、70-3和70-4分别具有物理APIC ID P0、P1、P2和P3。逻辑APIC ID创建逻辑(图6中)分别基于物理ID P0、P1、P2和P3以及P16、P17、P18和P19提供逻辑APIC ID L0、L1、L2和L3以及L16、L17、L18和L19。(当然,P0...P4和P16...P19以及L0...L3和L16...L19表示ID位,并不是字母“P”或“L”和数字。)在一些实施例中,封装0和1包含多于2个核(例如见图8),并且一个核可包含多于2个处理器。在所例示的实施例中,在P3与P16之间的物理ID中以及在L3与L16之间的对应逻辑ID中存在间隙。这个的原因是,在这些实施例中,群集包含16个处理器的ID,而无论是否存在16个实际处理器。处理器封装可包含1个芯片(管芯)或多于1个芯片。处理器封装可包含0个、1个或多于1个存储器芯片。
重定向逻辑18从装置26接收值(例如16位值),并向封装0或封装1提供中断。可以在各种地方判定哪个处理器用于响应于中断。例如,根据该实施例,可以在IOH 12中的处理器选择逻辑20中,和/或在非核中的处理器选择子逻辑(诸如非核42中的处理器选择子逻辑46或非核52中的处理器选择子逻辑56)中进行判定。子逻辑48中的过滤器48和子逻辑56中的过滤器58可用于例如基于功率状态(c状态)和/或处理器优先级从考虑处理器中滤出。在处理器选择逻辑20中可使用类似过滤器。在一些实施例中,没有处理器选择逻辑20,而是只有处理器选择子逻辑。
图2类似于图1,并且例示了具有IOH APIC 114、重定向逻辑118、处理器选择逻辑120和中断接口电路130的IOH 112,它们可类似于或等同于图1中的IOH APIC 14、重定向逻辑18、处理器选择逻辑20和中断接口电路30。图2还例示了包含处理器群集0和处理器群集1的处理器封装0、包含处理器群集2和处理器群集3的处理器封装1、包含处理器群集2(N-1)和处理器群集2(N-1)+1的处理器封装N-1。处理器封装0、1...N-1通过互连142-0、142-1...142-N-1耦合到IOH 112。在一些实施例中,存在分开的互连以将处理器分开,而在其它实施例中,只有一组互连用于每个处理器封装,或一组中断用于每个群集。中断的群集ID指示哪个群集要接收中断。
例如,假设群集ID是0000000000000010b(其中b指示二进制)。那将指示群集2要接收中断。相比中断被广播到所有处理器的方法,这涉及较少功率并涉及互连上的较少业务量。不在互连142-0和142-N-1上发送中断,因此在这些互连上有较少业务量,这有助于带宽和功率降低。再者,群集0、1、3、2(N-1)和2(N-1)+1中的处理器不必检查中断是否定向到它们,这降低了功率(特别是在处理器必须从深低功率状态出来以确定中断是否定向到它的情况下)。不同群集中的处理器之间因为地点可能也存在较少的高速缓存线业务量。其它实施例在处理器封装中可包含甚至更多的处理器群集。其它部件(诸如非核,如果包含的话)在图2中未示出。可存在附加部件,诸如IOH与处理器封装之间的桥。另外,系统中可存在多于1个IOH。
图3例示了包含插座的电路板190(诸如印刷电路板),插座包含插座0以容纳处理器封装0,插座N-1以容纳处理器封装N-1,以及插座194以容纳IOH芯片。在一些实现中,电路板190包含用于处理器封装和用于各种其它芯片的附加插座,但是在其它实现中,电路板190只包含2个插座。本文所用的术语“插座”涵盖了用于将芯片耦合到电路板的各种技术。
2.APIC ID初始化
在一些实施例中,物理APIC ID例如在从复位状态出来时通过硬件和/或微代码静态地初始化/锁存,并保持到下一加电循环(power cycle)为止。图4例示了保存32位物理APIC ID的寄存器110,在一些实施例中APIC ID包含在对应的本地APIC中。
在逻辑模式中所用的逻辑APIC ID在处理器群集内被划分成两个字段——16位宽群集ID和16位宽逻辑ID。逻辑ID的16个最高有效位含有目的群集的地址或标识号,而较低16位标识群集内的各个本地APIC单元。逻辑ID部分可以是群集中每个处理器1位的位屏蔽——例如,位0将设置用于处理器群集中的处理器0,位1用于处理器群集中的处理器1,等等。图5例示了保存32位逻辑APIC ID的寄存器112,其中位16到31保存群集ID,而位0到15保存群集内逻辑ID。作为实际问题,许多系统将具有少量的处理器群集,使得例如只需要1位或2位来标识群集ID。在不同的实施例中,其余位可以进行不同地处理。例如,其中一些位在一些系统中省略了,而在其它系统中使用了。
通过初始化算法,可基于平台拓扑在逻辑APIC ID与物理APIC ID之间建立永久关系。这给路由结构提供了特定处理器封装(插座)的知识,以与进行广播相反的方式路由中断。
在处理器群集可装有限制为16个处理器的情况下,如果在处理器封装中存在多于16个处理器,那么每个封装将存在多个群集。如果在群集中存在少于16个处理器,那么可使用APIC ID的填充。
逻辑APIC ID创建逻辑216根据物理APIC ID创建逻辑APIC ID。逻辑APIC ID创建逻辑216可以用硬件、软件或微代码或者它们的组合来实现。硬件可以在非核或本地APIC中,或者其它地方。在一些实施例中,得出逻辑APIC ID,使得对物理APIC ID的较低4位(即1<<物理APIC ID[3:0])“解码”,以在群集内提供16位逻辑ID。物理APIC ID的其余16位然后形成逻辑xAPIC ID的群集ID部分。由此使用如下公式,根据本地xAPIC ID导出逻辑xAPIC ID:
逻辑APIC ID=[(物理APIC ID[19:4]<<16)||(1<<物理APIC ID[3:0])]
在该公式中,符号‖意思是“或”,但可以用加代替,并且将获得相同的结果。
这个公式可以类似如下的方式重新阐述:
逻辑ID=(1<<本地xAPIC ID[3:0])    //群集内逻辑ID
‖(本地xAPIC ID[19:4]<<16)        //群集ID
图7例示了在得出逻辑APIC的过程示例中将寄存器210中的物理APIC ID转换成寄存器212中的逻辑APIC ID。位20-31可以省略,或者用于各种目的。
图8示出了通过处理器封装0和1中的物理APIC ID获得逻辑APICID的示例,每个处理器封装包含各有2个处理器的4个核。由于每个封装存在少于16个处理器,因此每个封装只有1个群集。参考封装0,处理器P0的物理APIC ID显示为00000b。“b”用于二进制。第一个0来自群集ID,并指示该群集是封装0中的群集。为了在图中节省空间,在图8中未例示来自群集ID的其它位。四个加下划线的0在群集内ID中,并指示物理APIC ID是0(没有列出所有0)。在以上论述的过程之后,通过在群集内逻辑ID中的最低有效位(LSB)中以“1”开始,其它的包含0,然后将“1”移位物理ID的前4位中发现的量,来创建逻辑APIC ID。由于处理器P0的物理ID的前4位是0000,所以“1”不移位,并且因此逻辑ID是0001h(其中“h”是指十六进制)。十六进制用于允许在图8中例示大数。群集ID(0)保持与物理ID的位4-19中的相同。在处理器P1的情况下,物理ID的4个LSB是0001,因此“1”被移位1位,使得群集ID对于群集0是0,而逻辑ID是0002h,这是通过将1移位1位引起的。例如,在处理器P5的情况下,将“1”向左移位5位,这用十进制表示是32,或者用十六进制表示是20。对封装1遵循相同原则,只是群集ID在物理和逻辑APIC ID中都是1。
例如根据实现的方便,初始化可发生在多个时间点。什么时候可发生初始化的示例包括:当从复位状态出来时,当初始化物理APIC ID时,或者在操作系统第一次读取逻辑APIC ID的时候。填充APIC ID的以上算法如果需要的话可以确保每个APIC群集都限制于单个处理器封装。
3.处理器选择逻辑和重定向
处理器选择逻辑从可用的选项中选择处理器接收中断。让本地APIC接收中断是处理器接收中断的一个示例。在现有技术中,已经通过最低优先级方案为中断选择了处理器。然而,如下面所说明的,在判定哪个处理器要接收中断时,可以考虑不同于或者除了处理器优先级之外还有的因素。
操作系统可选择群集和群集内可用于中断的至少一个处理器。这个信息可直接或间接包含在由诸如图1中装置26的装置所提供的中断中。例如,在直接实现中,中断可包含16位字段,以位映像方式一位用于群集中的每个处理器(但是在可能不使用某些位的情况下,可能存在少于16个处理器)。当“1”在与处理器相关联的位置时,该处理器是可用的,这种位置在以上论述的公式中和图8中用于根据物理APIC ID提供逻辑APIC ID。这可称为逻辑目的ID。作为一个示例,逻辑目的ID位屏蔽可以是00101101,其指示处理器P0、P2、P3和P5可用于中断。这假定在群集中存在8个处理器,因此未示出左边的最高8位。当然,可以颠倒“0”和“1”的角色,因此0表示可用的处理器,而1表示不可用的处理器。上面论述的处理器选择逻辑可以选择哪个可用处理器要接收中断。注意,虽然通常只有一个处理器接收中断,但在某些情况下,中断可定向到多于1个处理器。
作为备选,来自装置36的中断可以包含索引(诸如16位索引),其提供到重定向表中的索引,这可包含在图1的重定向逻辑19中。参考图9,重定向表230例如包含用于不同索引值的64位条目。条目234是一个示例。图10示出了根据一些实施例的示例条目234的细节,但是在其它实施例中,它可以不同。参考图10,位48-63指示群集ID,其在图10的示例中指示群集2要接收中断。结合图2看示例。仍参考图10,逻辑目的ID列出了可用处理器供处理器选择逻辑(或子逻辑)考虑。目的ID位屏蔽011b指示处理器P0和P1可用,而其它处理器不可用。为了便于例示,在图10中只示出了16位中的3位。作为另一个示例,目的位屏蔽可以是00101101b,其指示处理器P0、P2、P3和P5可用,而P1、P4、P6和P7不可用。在这个示例中没有处理器P8-P15。可能只有一个处理器可用。位0-31可以给出各种类型的路由信息,诸如是否涉及定向中断(direct interrupts)。图10中示出了“最低优先级”,但是可以考虑所提到的其它因素,诸如功率状态,使得严格来说,它可能不被认为是最低优先级选择。
存在可用于基于处理器功率状态和优先级的知识在群集内路由中断的几种可能实现。“非核”中的一个可能实现将使用处理器功率状态知识和优先级来提供中断路由,以实现将性能结论(performanceimplication)考虑进去的两种功率已知中断路由(power aware interruptrouting)。非核将具有处理器C状态(功率节省状态)的知识——这些例如称为C0、C1、C2...C6——其中C0是处理器(或核)正在运行代码的状态,而C1...C6是处理器停止的空闲状态:C1是最低功率节省状态,而C6是较高功率节省状态。再者,进入C1的等待时间(以及微架构边界效应)可以是最低的,而对于C6,那些是最高的。为了从较深C状态(诸如C6)提供最高值,可以期望考虑已经进入C6状态的处理器停留在那个状态的时间为最长可能的间隔。在这个可能实现中,非核将通过(1)标识最低标号的C状态的处理器,并(2)在这些处理器当中找到具有最低优先级的处理器作为中断的目标,来标识目标。有多种可实现这些方法的方式。一种实现可保持封装中处理器在各种C状态的位映射(bitmap),将这些位映射对照进来的目标位映射进行比较,并拾取该位映射中最高或最低APIC ID作为目标(An implementation can retain abitmap of the processors in a package in various C-states,AND theseagainst the incoming target bit map and pick the highest or lowest APIC IDin that bitmap as the target)。可以使用其它实现细节。
附加信息和实施例
本文提到的“逻辑”可以用电路、软件或微代码或者它们的组合实现。
实施例是本发明的实现或示例。说明书中提到“实施例”、“一个实施例”、“一些实施例”或“其它实施例”是指结合这些实施例所描述的特定特征、结构或特性包含在至少一些实施例中,但不一定包含在所有实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现不一定都指相同实施例。
当说元件“A”耦合到元件“B”时,元件A可以直接耦合到元件B,或者例如通过元件C间接耦合。
当说明书或权利要求书提到部件、特征、结构、过程或特性A“引起”部件、特征、结构、过程或特性B,是指“A”是“B”的至少部分原因,但是可能还有至少一个其它部件、特征、结构、过程或特性帮助引起“B”。同样,A响应B,不是指它就不响应C。
如果说明书提到“可以”、“可能”或者“能够”包含部件、特征、结构、过程或特性,则该特定部件、特征、结构、过程或特性不是必须被包含。如果说明书或权利要求书提到“一个”元件,则并不意味着只有一个元件。
本发明不限于本文描述的具体细节。实际上,在本发明的范围内可以进行以上说明书和附图的许多其它改变。由此,是包含对其任何修改的如下权利要求书来限定本发明的范围。

Claims (19)

1.一种用于创建逻辑处理器标识号的方法,包括:
接收物理处理器标识号;以及
通过使用所述物理处理器标识号创建逻辑处理器标识号,其中每一个所述逻辑处理器标识号对应于其中一个所述物理处理器标识号,并且其中所述逻辑处理器标识号各包含处理器群集标识号和群集内标识号,并且其中所述处理器群集标识号各形成为包含来自在适当位置移位的对应物理处理器标识号的一组位,并且所述群集内标识号各响应于对应物理处理器标识号的位中其它位的值形成。
2.如权利要求1所述的方法,其中所述群集内标识号各自通过将值移位包含在对应物理处理器标识号某些位中的量来形成。
3.如权利要求1所述的方法,其中每一个所述逻辑处理器标识号(逻辑ID)是根据包含对应物理处理器标识号(物理ID)的如下公式形成的:
逻辑ID=[(物理ID[19:4]<<16)||(1<<物理ID[3:0])]。
4.如权利要求1所述的方法,其中所述逻辑处理器标识号和所述物理处理器标识号中相应标识号被定向到处理器封装中的处理器。
5.如权利要求4所述的方法,其中所述处理器各包含本地高级可编程中断控制器(APIC)。
6.如权利要求1所述的方法,其中所述逻辑处理器标识号是逻辑高级可编程中断控制器(APIC)标识号(ID),并且所述物理处理器标识号是物理APIC ID。
7.如权利要求6所述的方法,其中所述逻辑高级可编程中断控制器标识号和所述物理APIC ID是xAPIC ID。
8.如权利要求6所述的方法,其中所述逻辑高级可编程中断控制器标识号和所述物理APIC ID是扩展xAPIC ID。
9.一种用于创建逻辑处理器标识号的方法,包括:
为处理器分配物理中断标识号;以及
通过使用所述物理处理器标识号创建逻辑处理器标识号,其中每一个所述逻辑处理器标识号对应于其中一个所述物理处理器标识号,并且其中所述逻辑处理器标识号各包含处理器群集标识号和群集内标识号,并且其中所述处理器群集标识号各形成为包含来自在适当位置移位的对应物理处理器标识号的一组位,并且所述群集内标识号各响应于对应物理处理器标识号的位中其它位的值形成。
10.如权利要求9所述的方法,其中所述群集内标识号各通过将值移位包含在对应物理处理器标识号某些位中的量来形成。
11.如权利要求9所述的方法,其中每一个所述逻辑处理器标识号(逻辑ID)是根据包含对应物理处理器标识号(物理ID)的如下公式形成的:
逻辑ID=[(物理ID[19:4]<<16)||(1<<物理ID[3:0])]。
12.如权利要求9所述的方法,其中在高级可编程中断控制器中创建所述逻辑处理器标识号。
13.一种用于创建逻辑处理器标识号的方法,包括:
接收各定向到第一处理器封装的处理器的第一群集其中一个处理器的第一组物理处理器标识号;以及
创建各定向到所述第一群集其中一个处理器的第一组逻辑处理器标识号,并且其中所述第一组逻辑处理器标识号各包含处理器群集标识号和群集内标识号,所述处理器群集标识号形成为包含来自在适当位置移位的所述第一组物理处理器标识号的对应标识号的一组位,并且所述群集内标识号各响应于所述第一组物理处理器标识号的对应标识号的位中其它位的值形成;以及
接收各定向到第二处理器封装的处理器的第二群集其中一个处理器的第二组物理处理器标识号;以及
创建各定向到所述第二群集其中一个处理器的第二组逻辑处理器标识号,并且其中所述第二组逻辑处理器标识号各包含处理器群集标识号和群集内标识号,所述处理器群集标识号形成为包含来自在适当位置移位的所述第二组物理处理器标识号的对应标识号的一组位,并且所述群集内标识号各响应于所述第二组物理处理器标识号的对应标识号的位中其它位的值形成。
14.如权利要求13所述的方法,其中所述第一组逻辑处理器标识号的所述群集内标识号各自通过将值移位包含在所述第一组物理处理器标识号的对应标识号的某些位中的量来形成,并且所述第二组逻辑处理器标识号的所述群集内标识号各自通过将值移位包含在所述第二组物理处理器标识号的对应标识号的某些位中的量形成。
15.如权利要求13所述的方法,其中每一个所述逻辑处理器标识号(逻辑ID)是根据包含对应物理处理器标识号(物理ID)的如下公式形成的:
逻辑ID=[(物理ID[19:4]<<16)||(1<<物理ID[3:0])]。
16.如权利要求13所述的方法,其中所述第一群集的处理器中的所述处理器各包含本地高级可编程中断控制器(APIC)。
17.如权利要求16所述的方法,其中所述第一组物理处理器标识号是本地APIC标识号。
18.如权利要求13所述的方法,其中所述逻辑处理器标识号是逻辑高级可编程中断控制器(APIC)标识号(ID),并且所述物理处理器标识号是物理APIC ID。
19.如权利要求13所述的方法,包括:
接收各定向到所述第一处理器封装的处理器的第三群集其中一个处理器的第三组物理处理器标识号;以及
创建各定向到所述第三群集其中一个处理器的第三组逻辑处理器标识号,并且其中所述第三组逻辑处理器标识号各包含处理器群集标识号和群集内标识号,所述处理器群集标识号形成为包含来自在适当位置移位的所述第三组物理处理器标识号的对应标识号的一组位,并且所述群集内标识号各响应于所述第三组物理处理器标识号的对应标识号的位中其它位的值形成。
CN200880107214.1A 2007-09-06 2008-08-28 具有群集id和群集内id的逻辑apic id的创建 Expired - Fee Related CN101796499B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310013671.7A CN103077138B (zh) 2007-09-06 2008-08-28 具有群集id和群集内id的逻辑apic id的创建

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/850782 2007-09-06
US11/850,782 US7627706B2 (en) 2007-09-06 2007-09-06 Creation of logical APIC ID with cluster ID and intra-cluster ID
US11/850,782 2007-09-06
PCT/US2008/074638 WO2009032757A2 (en) 2007-09-06 2008-08-28 Creation of logical apic id with cluster id and intra-cluster id

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201310013671.7A Division CN103077138B (zh) 2007-09-06 2008-08-28 具有群集id和群集内id的逻辑apic id的创建

Publications (2)

Publication Number Publication Date
CN101796499A CN101796499A (zh) 2010-08-04
CN101796499B true CN101796499B (zh) 2013-03-06

Family

ID=40429655

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201310013671.7A Expired - Fee Related CN103077138B (zh) 2007-09-06 2008-08-28 具有群集id和群集内id的逻辑apic id的创建
CN200880107214.1A Expired - Fee Related CN101796499B (zh) 2007-09-06 2008-08-28 具有群集id和群集内id的逻辑apic id的创建

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201310013671.7A Expired - Fee Related CN103077138B (zh) 2007-09-06 2008-08-28 具有群集id和群集内id的逻辑apic id的创建

Country Status (6)

Country Link
US (1) US7627706B2 (zh)
JP (1) JP5124647B2 (zh)
CN (2) CN103077138B (zh)
DE (1) DE112008002402T5 (zh)
GB (1) GB2465125B (zh)
WO (1) WO2009032757A2 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8032681B2 (en) * 2007-09-06 2011-10-04 Intel Corporation Processor selection for an interrupt based on willingness to accept the interrupt and on priority
US8190864B1 (en) * 2007-10-25 2012-05-29 Oracle America, Inc. APIC implementation for a highly-threaded x86 processor
US8103816B2 (en) * 2008-10-28 2012-01-24 Intel Corporation Technique for communicating interrupts in a computer system
US7996548B2 (en) * 2008-12-30 2011-08-09 Intel Corporation Message communication techniques
US8260996B2 (en) * 2009-04-24 2012-09-04 Empire Technology Development Llc Interrupt optimization for multiprocessors
US8321614B2 (en) * 2009-04-24 2012-11-27 Empire Technology Development Llc Dynamic scheduling interrupt controller for multiprocessors
US8356130B2 (en) * 2009-08-14 2013-01-15 Advanced Micro Devices, Inc. Mechanism for recording undeliverable user-level interrupts
US8234431B2 (en) * 2009-10-13 2012-07-31 Empire Technology Development Llc Interrupt masking for multi-core processors
US10108630B2 (en) 2011-04-07 2018-10-23 Microsoft Technology Licensing, Llc Cluster unique identifier
US8688883B2 (en) 2011-09-08 2014-04-01 Intel Corporation Increasing turbo mode residency of a processor
US8949474B1 (en) * 2011-11-21 2015-02-03 Marvell International Ltd. Method for inter-chip and intra-chip addressing using port identifiers and address mapping
FR2996935B1 (fr) * 2012-10-16 2016-01-15 Bull Sas Procede et dispositif de traitement d'interruptions dans un systeme multiprocesseur
US9043521B2 (en) 2012-11-13 2015-05-26 Intel Corporation Technique for communicating interrupts in a computer system
CN103699428A (zh) * 2013-12-20 2014-04-02 华为技术有限公司 一种虚拟网卡中断亲和性绑定的方法和计算机设备
CN106445650B (zh) * 2015-08-05 2019-10-25 华为技术有限公司 一种中断处理方法、ioapic及计算机系统
US10915330B2 (en) * 2017-12-19 2021-02-09 Advanced Micro Devices, Inc. Pseudo-random logical to physical core assignment at boot for age averaging
TWI759677B (zh) 2019-02-14 2022-04-01 美商萬國商業機器公司 用於具有回退之經引導中斷虛擬化之方法、電腦系統及電腦程式產品
WO2020164935A1 (en) 2019-02-14 2020-08-20 International Business Machines Corporation Directed interrupt virtualization with running indicator
BR112021016093A2 (pt) 2019-02-14 2021-10-26 International Business Machines Corporation Interrupção dirigida para virtualização de multiníveis
WO2020165666A1 (en) * 2019-02-14 2020-08-20 International Business Machines Corporation Directed interrupt virtualization with blocking indicator
CN110865951B (zh) * 2019-11-05 2021-03-23 中国人民解放军国防科技大学 一种支持单根双处理器中断通信的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613128A (en) * 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
US5724527A (en) * 1995-12-28 1998-03-03 Intel Corporation Fault-tolerant boot strap mechanism for a multiprocessor system
US6665761B1 (en) * 1999-07-28 2003-12-16 Unisys Corporation Method and apparatus for routing interrupts in a clustered multiprocessor system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2855298B2 (ja) * 1990-12-21 1999-02-10 インテル・コーポレーション 割込み要求の仲裁方法およびマルチプロセッサシステム
JPH06230985A (ja) * 1993-02-02 1994-08-19 Hitachi Ltd タスク制御回路、及びマイクロプロセッサ
SG48803A1 (en) * 1993-04-19 1998-05-18 Intel Corp Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
US6687818B1 (en) * 1999-07-28 2004-02-03 Unisys Corporation Method and apparatus for initiating execution of an application processor in a clustered multiprocessor system
US6983339B1 (en) * 2000-09-29 2006-01-03 Intel Corporation Method and apparatus for processing interrupts of a bus
US7320065B2 (en) * 2001-04-26 2008-01-15 Eleven Engineering Incorporated Multithread embedded processor with input/output capability
US7039740B2 (en) * 2002-07-19 2006-05-02 Newisys, Inc. Interrupt handling in systems having multiple multi-processor clusters
US7051137B2 (en) * 2002-10-31 2006-05-23 Intel Corporation Event delivery
US7191349B2 (en) 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
US8984199B2 (en) 2003-07-31 2015-03-17 Intel Corporation Inter-processor interrupts
US7222203B2 (en) * 2003-12-08 2007-05-22 Intel Corporation Interrupt redirection for virtual partitioning
US7089341B2 (en) * 2004-03-31 2006-08-08 International Business Machines Corporation Method and apparatus for supporting interrupt devices configured for a particular architecture on a different platform
US7496706B2 (en) * 2004-06-30 2009-02-24 Intel Corporation Message signaled interrupt redirection table
US7689747B2 (en) * 2005-03-28 2010-03-30 Microsoft Corporation Systems and methods for an augmented interrupt controller and synthetic interrupt sources
TW200708969A (en) * 2005-08-24 2007-03-01 Tyan Computer Corp ID allocating method for advanced programmable interrupt controller
US20070239917A1 (en) 2005-12-09 2007-10-11 Ryuji Orita Interrupt routing within multiple-processor system
US8286162B2 (en) * 2005-12-30 2012-10-09 Intel Corporation Delivering interrupts directly to a virtual processor
US20080162762A1 (en) 2006-12-29 2008-07-03 Gilbert Neiger Interrupt remapping based on requestor identification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613128A (en) * 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
US5724527A (en) * 1995-12-28 1998-03-03 Intel Corporation Fault-tolerant boot strap mechanism for a multiprocessor system
US6665761B1 (en) * 1999-07-28 2003-12-16 Unisys Corporation Method and apparatus for routing interrupts in a clustered multiprocessor system

Also Published As

Publication number Publication date
US20090070551A1 (en) 2009-03-12
CN101796499A (zh) 2010-08-04
GB2465125B (en) 2012-08-08
DE112008002402T5 (de) 2010-07-15
WO2009032757A2 (en) 2009-03-12
CN103077138A (zh) 2013-05-01
WO2009032757A3 (en) 2009-05-07
GB2465125A (en) 2010-05-12
GB201003693D0 (en) 2010-04-21
JP2010538373A (ja) 2010-12-09
JP5124647B2 (ja) 2013-01-23
US7627706B2 (en) 2009-12-01
CN103077138B (zh) 2016-05-04

Similar Documents

Publication Publication Date Title
CN101796499B (zh) 具有群集id和群集内id的逻辑apic id的创建
CN102609311B (zh) 用于选择接收中断的处理器的装置、方法和系统
JP4128956B2 (ja) デュアル・インライン・メモリモジュール・フォーマットにおいて一連のマルチアダプティブプロセッサを採用したクラスタ型コンピュータ用スイッチ/ネットワークアダプタポート
US9116869B2 (en) Posting interrupts to virtual processors
US8626955B2 (en) Directing packets to a processor unit
US20120005392A1 (en) Information processing system
CN101159765B (zh) 网络接口方法、装置和系统
US8032681B2 (en) Processor selection for an interrupt based on willingness to accept the interrupt and on priority
WO2014152315A1 (en) Method and apparatus to avoid deadlock during instruction scheduling using dynamic port remapping
US10922252B2 (en) Extended message signaled interrupts (MSI) message data
US7613850B1 (en) System and method utilizing programmable ordering relation for direct memory access
KR20170122758A (ko) 듀얼 모드 인터럽트를 갖는 마이크로컨트롤러 또는 마이크로프로세서
US10346049B2 (en) Distributed contiguous reads in a network on a chip architecture
US10203962B2 (en) Tigersharc DSP boot management chip and method
CN110647355B (zh) 数据处理器和数据处理方法
CN116401188B (zh) 基于fpga的处理方法、电路以及电子设备
CN113032298B (zh) 用于保序的计算装置、集成电路装置、板卡及保序方法
CN110286743A (zh) 一种数据中心节电方法、终端、计算机可读存储介质
CN116701249A (zh) 页表转换方法、页表转换器、soc及电子设备

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130306

Termination date: 20130828