CN103257943B - 集中式中断控制器 - Google Patents
集中式中断控制器 Download PDFInfo
- Publication number
- CN103257943B CN103257943B CN201310108147.8A CN201310108147A CN103257943B CN 103257943 B CN103257943 B CN 103257943B CN 201310108147 A CN201310108147 A CN 201310108147A CN 103257943 B CN103257943 B CN 103257943B
- Authority
- CN
- China
- Prior art keywords
- interrupt
- apic
- message
- processing unit
- logic
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
具有APIC逻辑的单个副本的集中式中断控制器为多定序器芯片或系统的所有处理单元提供APIC中断传送服务。该集中式中断控制器的中断定序器块根据公平模式调度该中断服务。该集中式中断控制器的至少一个实施例还包括防火墙逻辑,以便滤出选择的中断消息的传输。也描述和主张了其他的实施例。
Description
本申请是2006年11月27日提交的、申请号为200680041630.7的、发明名称为“集中式中断控制器”的申请的分案申请。
技术领域
本发明涉及控制中断的电子电路领域。更具体地,本发明涉及用于多个处理单元的集中式高级可编程中断控制器。
背景技术
作为任意计算机系统执行的基础,处理单元执行包括对于各个间歇“服务”的控制的一些操作,所述各个间歇“服务”通过耦合到所述计算机系统的外围设备来请求。输入/输出(“I/O”)外围设备,包括例如打印机、扫描仪和显示设备这样的计算机产品,需要主处理器的间歇服务以确保适当地运行。服务例如可以包括数据传送、数据捕获和/或控制信号。
每一个外围设备典型地具有一个不同的服务调度,其不仅依赖于设备的类型而且依赖于自身的编程运用。当运行一个或多个背景程序时,主处理器根据这些设备各自的需要,在这些设备中复用其服务活动。使用至少两种通知(advise)主机服务需求的方法:轮询和中断方法。在前一方法中,周期性地检查每一个外围设备以查看表示服务请求的标志是否被设置。在后一方法中,将设备服务请求路由到能够中断主机的中断控制器,强制分支从它的当前程序转移到特定的中断服务程序。该中断方法是有利的,因为主机不需要投入用于轮询的不必要的时钟周期。本发明采用了后一种方法。
随着多处理器计算机系统的出现,在处理器间动态分配中断的中断管理系统被实现。高级可编程中断控制器(“APIC”)是这样的多处理器中断管理系统的一个例子。应用于许多多处理器计算机系统中,APIC中断传送机制能够被用于检测来自于另一个处理器单元的或者来自于外围设备的中断请求,并且通知一个或多个处理器单元与该中断请求相对应的特定服务需要被执行。可以在Carson等人的名称为“多处理器可编程中断控制系统”的美国专利申请5283904中找到关于APIC中断传送系统的更多细节。
许多传统的APIC在设计中是硬件密集的,因此需要大量的门(也就是说,高的门计数)。在许多的多处理器系统中,每一个核心具有它自己专用的完全自包含(self-contained)于该核心中的APIC。对于其他的多处理器系统,每一个核心是具有多个逻辑处理器的同步的多线程核心。对于这样的系统,每一个逻辑处理器和一个APIC相关,这样使得每一个多线程核心包括多个APIC中断传送机制,其中的每一个均保持其自身的构架状态并且实施其自身的控制逻辑,该控制逻辑通常和每一个其他的APIC的控制逻辑一样。对于多处理器系统的任一种类型,多个APIC的管芯面积和漏泄功率消耗可能会不合意的那样大。此外,与用于在多处理器系统中传送中断的多个APIC的操作相关的动态功率消耗也可能会不合意的那样大。
附图说明
参考随后的附图可以理解本发明的实施例,其中相似的元件用相似的数字来表示。这些附图并不是限制的,而是用来解释多个处理单元的集中式APIC控制器的设备、系统和方法的所选择的实施例。
图1是说明为多个处理单元提供中断控制的集中式中断控制器的至少一个实施例的框图;
图2是说明集中式中断控制器的至少一个实施例的进一步细节的框图;
图3是说明多定序器系统的不同实施例的框图;
图4是说明用于多个核心的中断状态的中央储存库的至少一个实施例的框图;
图5是说明用于集中式中断控制器的中断定序器块的操作的至少一个实施例的状态转移图;
图6是说明能够执行所公开的技术的计算机系统的至少一个示例性实施例的框图。
具体实施方式
下面的论述描述了多个处理单元的集中式APIC的方法、系统和制造产品的实施例。这里所描述的机制能够和单核心或者多核心多线程系统一起使用。在下面的描述中,阐述了许多特定的细节,例如处理器类型,多线程环境、系统配置、以及在多定序器(multi-sequencer)系统中的定序器的数量和类型等,以提供对于本发明的更加详细的理解。然而本领域技术人员会认识到的是,在没有这些特定的细节的情况下也能够实施本发明。此外,没有详细地示出一些公知的构架、电路等,以避免不必要地使本发明变得模糊。
图1是说明包括集中式中断控制器110的系统100的至少一个实施例的框图。系统100包括多个核心104(0)-104(n)。图1的虚线和椭圆说明系统100能够包括任意数目(n)的核心,其中n≥2。本领域技术人员将认识到,系统的一个可替代实施例可以包括单个同步多线程(“SMT”)核心(例如n=1),如下面所解释的。
图1说明了单个集中式中断控制器110与核心104(0)-104(n)是物理隔离的。图1也说明了系统100的每一个核心104(0)-104(n)经由本地互连102耦合到集中式中断控制器110。集中式中断控制器110因此通过本地互连102与每一个处理核心进行交互。集中式中断控制器110的高级目的是以如下方式顺序地模拟多APIC的操作:即在系统100看来,那些APIC并行操作,如它们在传统的单核心APIC系统里所做的那样。
系统100的单核心104能够实现任意多线程模式,包括同步多线程(SMT)、事件切换多线程(SoeMT)和/或时间复用多线程(TMUX)。当来自一个以上硬件线程上下文(“逻辑处理器”)的指令在任意特定的时间点上同时在处理器304中运行时,其被称作SMT。另外,单核心多线程系统能够实施SoeMT,其中处理器流水线在多个硬件线程上下文之间被复用,但是在任意给定的时间,只有来自一个硬件线程上下文的指令能够在流水线中执行。对于SoeMT,如果线程切换事件是基于时间的,那么它是TMUX。尽管支持SoeMT和TMUX模式的单核心能够支持多线程,但在这里将它们称为“单线程”核心,因为在任意给定的时间只有来自一个硬件线程上下文的指令能够被执行。
每个核心104可以是一个能够执行单线程的单个处理单元。或者,一个或多个核心104可以是执行SoeMT或者TMUX多线程的多线程核心,从而使核心一次仅仅执行一个线程的指令。对于这样的实施例,核心104被称作“处理单元”。
对于至少一个替代性实施例,每一个核心104是多线程核心,例如SMT核心。对于SMT核心104,核心104的每一个逻辑处理器被称作“处理单元”。如这里所使用的,“处理单元”可以是能够执行线程的任意物理或逻辑单元。每一个处理单元可以包括下一指令指针逻辑以确定要被执行用于给定线程的下一条指令。像这样,处理单元在这里可互换地被称作“定序器”。
对于任一个实施例(单线程核心对多线程核心),每一个处理单元和它自身的中断控制器功能相关,尽管这些功能的逻辑不是自包含于每一个处理单元内,但是替代地由集中式中断控制器110来提供。如果任意核心104是SMT核心,每一个核心104的每一个逻辑处理器能够经由本地互连102耦合到集中式中断控制器110。
直接转到图3,如上面所描述的,处理单元(或“定序器”)可以是逻辑处理器或物理核心。在逻辑和物理处理单元之间的这种差异在图3中被说明。图3是说明能够执行所公开的技术的多定序器系统的实施例310,350的选择的硬件特征的框图。
图3说明了单核心多定序器多线程环境310的选择的硬件特征。图3也说明了多核心多线程环境350的选择的硬件特征,其中每一个定序器是一个单独的物理处理器核心。
在单核心多线程环境310中,单个物理处理器304作为多逻辑处理器(未示出)而出现,在这里被称作LP1至LPn,用于操作系统和用户程序。每一个逻辑处理器LP1至LPn各自保持着构架状态AS1-ASn的完整集。对于至少一个实施例,该构架状态包括数据寄存器、段寄存器、控制寄存器、调试寄存器以及大多数模式特定寄存器。逻辑处理器LP1-LPn共享物理处理器304的其他大部分资源,例如高速缓存、执行单元、分支预测器、控制逻辑以及总线。然而,每一个逻辑处理器LP1-LPn能够和它自身的APIC相关。
尽管能够共享许多硬件特征,但在多线程环境310中的每一个线程上下文能够独立地产生下一指令地址(并且执行,例如,来自于指令高速缓存、执行指令高速缓存或追踪(trace)高速缓存的预取指令)。因此,处理器304包括逻辑独立的下一指令指针以及预取逻辑320以为每一个线程上下文预取指令,尽管多个逻辑定序器能够在单个物理预取/解码单元322中被实现。对于单核心多线程实施例,词语“定序器”包括对于线程上下文的至少下一指令指针和预取逻辑320,以及对于该线程上下文的至少一些相关的构架状态312。应该注意的是单核心多线程系统310的定序器不需要是对称的。例如,相同物理核心的两个单核心多线程定序器能够在它们中每一个保持的构架状态信息的数量上不同。
因此,对于至少一个实施例,多定序器系统310是一个支持并行多线程的单核心处理器304。对于这样的实施例,每一个定序器是这样一种逻辑处理器,其具有其自身的指令下一指令指针和预取逻辑以及其自身的构架状态信息,尽管相同的物理处理器核心304执行所有的线程指令。对于这样的实施例,逻辑处理器保持它自身的构架状态的版本,尽管单个处理器核心的执行资源能够在同时执行的线程之间被共享。
图3也说明了多核心多线程环境350的至少一个实施例。这样的环境350包括两个或更多个单独的物理处理器304a-304n,每一个都能执行不同的线程/碎片(shred),以至于不同的线程/碎片的至少部分的执行能够在相同的时间上进行。处理器304a至304n的每一个处理器包括物理独立的预取单元322,以为其各自的线程或碎片预取指令信息。在每一个处理器304a-304n执行单独的线程/碎片的实施例中,预取/解码单元322实施一个单独的下一指令指针以及预取逻辑320。然而,在每一个处理器304a-304n支持多个线程上下文的实施例中,预取/解码单元322为每一个所支持的线程上下文实施不同的下一指令指针和预取逻辑320。在多处理器环境350中的附加的下一指令指针和预取逻辑320的可选特性在图3中用虚线来表示。
对于在图3中说明的多核心系统350的至少一个实施例,每一个定序器可以是一个处理器核心304,多个核心304a-304n驻留在单个芯片封装360中。每一个核心304a-304n是单线程或者多线程处理器核心。芯片封装360在图3中以虚线表示,以指示所示出的多核心系统350的单管芯实施例只是说明性的。对于其他的实施例,多核心系统的处理器核心能够驻留在单独的管芯上。也就是说,多核心系统可以是多插座对称多处理系统。
为了便于论述,下面的论述着重于多核心系统350的实施例。然而,这样的着重论述不应该被认为是限制的,因为下面所描述的机制能够在多核心或单核心多定序器环境中被执行。
回到图1,可以看到系统100的核心104(0)-104(n)能够通过本地互连102彼此耦合。本地互连102能够提供在核心间所需的所有通信功能(例如高速缓存查看(snoop)等等)。每一个核心104(0)-104(n)可以包括相对小的接口块以通过本地互连102发送和接收与中断相关的消息。通常,核心的这种接口相对简单,因为它不保持和中断相关消息的构架状态,也不把中断列入优先或者执行其他APIC相关的功能,该功能替代性地由这里描述的集中式中断控制器110来执行。
核心104(0)-104(n)能够驻留在单个管芯150(0)中。对于至少一个实施例,在图1中说明的系统100能够进一步包括可选的附加管芯。附加的一个或多个管芯(直到150(n))的可选特性在图1中用虚线和椭圆示出。图1说明了来自于另一个管芯(150(n))上的处理单元的中断消息能够通过系统互连106传送到第一个管芯(150(0))。集中式中断控制器106通过系统互连106耦合到任意其他管芯(直到150(n))以及外围I/O设备114。
本领域技术人员将认识到,图1中示出的管芯150的配置仅仅用于说明的目的,并且不应该被认为是限制。对于替代实施例,例如,150(0)和150(n)的元件能够驻留在硅的相同片上并且耦合到相同的本地互连102。相反地,每一个核心104没有必要驻留在相同的管芯上。每一个核心104(0)-104(n)和/或本地互连102可以不驻留在相同的管芯150上。
系统100的每一个核心104(0)-104(n)还可以进一步经由本地互连102耦合到其他系统接口逻辑112。这样的逻辑112可以包括,例如,允许定序器经由系统互连和其他的系统元件进行交互的高速缓存一致性逻辑或者其他接口逻辑。其他系统接口逻辑112可以经由系统互连106又耦合到其他系统元件116(例如,存储器)。
图2是说明集中式中断控制器110的至少一个实施例的进一步的细节的框图。通常,图2说明了,尽管集中式中断控制器110物理分离于系统的核心(参见例如图1的核心104(0)-104(n)),但是该集中式中断控制器110仍然保持每一个APIC实例的完整的构架状态,其中的一个和每一个定序器都相关。集中式中断控制器110管理所有的中断队列和优先化功能,其在传统的系统中通常被单核心专用的APIC所管理。如在下面以进一步的细节所解释的,集中式中断控制器110也可以作为在耦合到系统互连106的系统的其余部分和定序器之间的防火墙。
图2说明了包括集中式APIC的状态202的集中式中断控制器110。APIC的状态202包括通常和典型的APIC处理相关的构架状态。也就是说,APIC处理是对于应用程序员来说的一个构架化的可视特征,并且它并不意味着这样的接口被本公开所改变。不管系统是包括传统的APIC硬件(也就是说,每一个处理单元有一个自包含的APIC)还是这里所论述的集中式中断控制器,能够预见的是对于至少一个实施例,这样的硬件设计选择对于应用程序员来说应该是透明的。如此,对于一个系统,通过使用一个单个集中式中断控制器,可以减小面积、动态功率以及功率泄漏消耗,而且同时保持操作系统供应商和应用程序员所期望的相同的构架接口。
因此,保持作为块202上的APIC的状态信息的中央储存库的构架状态通常是为传统系统中的每一个APIC所保持的状态。例如,如果在系统中有8个定序器,集中式APIC的状态202可以包括8个条目的阵列,每一条目反映为传统系统中的定序器保持的构架APIC的状态。(下面对于图4的论述表明每一条目也可以包括特定的微构架状态)。
对于至少一个实施例,集中式APIC的状态202作为单独的存储器存储区域来实现,例如寄存器文件或者阵列。寄存器文件组织可以允许比将每个核心的APIC的状态实施为随机逻辑的先前方法更好的区域效率。
通常,集中式中断控制器110监视通过本地互连102和/或系统互连106接收到的中断消息的接收,并且将相关的消息存储在寄存器文件202的合适的条目中。对于至少一个实施例,这通过监视进入的消息的目的地址以及将消息存储在和目的地址相关的APIC实例条目中来实现。这样的功能能够通过进入的消息队列204、206来实现,如在下面以进一步的细节所解释的那样。
类似地,集中式中断控制器110能够监视外发的中断消息的产生并且能够将消息存储到寄存器文件202的合适条目中,直到这样的消息被服务和传送为止。对于至少一个实施例,这通过监视外发的消息的源地址以及将消息存储在和源地址相关的APIC实例条目中来实现。这样的功能可以通过外发的消息队列208、210来实现,如在下面以进一步的细节所解释的那样。
通常,集中式中断控制器110的中断定序器块214可以接着调度这样的未决中断消息,如对于服务在集中式APIC的状态202中所反映的那样。如在下面以进一步的细节所解释的那样,这可以根据一种公平模式来实现以至于没有定序器的未决中断活动被重复地忽略。中断定序器块214可以调用APIC中断传送逻辑212以执行该服务。
图2因此说明了包括APIC中断传送逻辑212的集中式中断控制器110。集中式中断控制器110不是为系统中的每一个定序器(例如,SMT核心的每一个单线程核心或者每一个逻辑处理器)复制APIC逻辑,而是提供APIC逻辑212的单个的、非冗余的副本以为系统的所有定序器提供中断服务。
例如,如果系统(例如图1的系统100)包括4个核心,每一个都支持8个并行SMT线程,那么系统传统地将需要APIC逻辑212的32个副本。替代地,图2说明的集中式中断控制器110使用APIC逻辑212的单份副本以提供中断控制器服务给在给定的时间里活动的所有32个线程。
因为系统的多个定序器能够在相同的时间具有未决的中断活动,APIC逻辑212可以是多个定序器的争用对象。集中式中断控制器110因此包括中断定序器块214。中断定序器块214“序列”服务系统中所有的中断,以为每一个定序器提供对APIC逻辑212的公平访问。本质上,集中式中断控制器110的中断定序器块214控制对单个APIC逻辑块212的访问。
因此,中断定序器块214控制定序器对共享APIC逻辑212的访问。该功能与传统的APIC系统形成了对比,传统的APIC系统为每一个定序器提供专用的APIC逻辑块,使得每一个定序器具有对于该APIC逻辑的即时专门访问。就中断优先化等而言,单个APIC逻辑块212可以为系统的每一个处理单元提供APIC的完整的构架需求。
对于系统的任意特定处理单元,通过APIC的中断源/目的可以是其他的处理单元或者外围设备。通过集中式中断控制器110在本地互连102上传送管芯内处理单元中断。来自于/到其他管芯上的外围设备或者处理单元的中断在系统互连106上传送。
图2说明了集中式中断控制器110包括4个消息队列,以处理在本地互连102和系统互连106上的进入和外发的中断消息:进入的系统消息队列204,进入的本地消息队列206,外发的本地消息队列208,以及外发的系统消息队列210。进入的本地消息队列206和外发的本地消息队列208耦合到本地互连102;而进入的系统消息队列204和外发的系统消息队列210耦合到系统互连106。队列204、206、208和210中的每一个都是一个包括数据存储和控制逻辑的微控制器队列。
参考图1,2和4对队列204、206、208和210的操作进行进一步的论述。图4提供了集中式APIC的状态202的至少一个实施例的更详细的视图。图4说明了集中式APIC的状态202能够包括构架状态302以及微构架状态301、303。如上面所述的,为定序器104(0)-104(n)中的每一个保持的构架状态302反映了传统的和定序器相关的APIC的状态。构架APIC的状态302的每一个条目410在这里被称作“APIC实例”。例如,APIC实例的进入的中断消息可以存储在和那个实例相关的构架APIC的状态302的条目410中。对于至少一个实施例,至多240条的进入的中断消息可以保持在APIC实例的条目410中。
除了构架状态302之外,集中式APIC的状态202可以包括和每一个APIC实例410以及通用微构架状态303相关的微构架状态301。通用的微构架状态303可以包括记分板(scoreboard)304以帮助中断定序器块214(见图2)来确定哪一个定序器需要访问APIC逻辑212(见图2)。对于至少一个实施例,记分板304对于系统中的每一个定序器可以保留一位。定序器的位的值可以表示定序器是否具有APIC逻辑212所需的任意的未决活动。对于至少一个实施例,记分板304可以被自动读取,因此中断定序器块214(图2)能够容易而快速地断定哪些定序器需要APIC逻辑212的注意。
在中断定序器块214的一个特征是公平地允许对APIC逻辑212进行访问的同时,记分板304允许采用公平模式而无需中断定序器块214浪费在当前不需要APIC逻辑212的处理的定序器上的处理资源。该记分板因此基于那些未响应的请求的处理的当前状态和进入的消息追踪哪一个APIC实例有工作要做。中断定序器块214针对活动的APIC实例从集中式APIC的状态202中读取当前的状态,采取适应于当前状态(如对于该特定的APIC实例410在构架状态302和微构架状态301中所记录的)的动作并且接着对于下一个具有未决工作(如在记分板304里的位所表示的)的APIC实例重复该过程。
当一个进入的中断消息跨过本地互连102而把同一管芯上的另一个定序器作为目标时,进入的本地消息队列206接收该消息并且确定它的目的地。中断消息能够将定序器中的一个、多个、无或者全部定序器作为目标。为了将中断排队,序列206能够为每一个目标定序器写入构架状态条目(例如参见图4的410)。在这样的情况下,如果这样的记分板条目还没有被设置,队列206也为目标定序器设置记分板条目,以表示中断活动是未决的并且单个APIC逻辑块212的服务对于目标定序器是需要的。
然而,图4说明了一些中断可以从进入的本地消息队列206直接转送(bypass)到外发的队列208和210,而不在集中式APIC的状态202中排队。例如对于并非对特定处理器专门寻址的广播消息,这是可以发生的。图4说明了类似的转送处理也可以发生在进入的系统消息队列204中(在下面对其进行论述)。
当进入的中断消息跨过系统互连106(来自于在另一个管芯上的定序器或I/O设备)而把定序器104(0)-104(n)中的一个作为目标时,类似于上面论述的对于队列206的处理也可以发生。进入的系统消息队列204接收该消息并且确定它的目的地。为了将中断排队以及相应地为任意目标定序器更新记分板条目412,序列206为每一个目标定序器写入构架状态条目410。当然,该进入的消息也可以像如上所论述的那样替代性地被转送。
一个或多个消息队列204、206、208和210能够实现外发和/或进入的消息的防火墙特征。关于这个防火墙特征,将图1和图2结合起来进行论述。
关于进入的消息,进入的系统消息队列204可以作为中断的防火墙以阻止对于消息的不必要的处理,该消息不把在和集中式中断控制器110相关的管芯150上的定序器作为目标。如在图1中所说明的,系统100可以包括多个多定序器管芯150(0)-150(n)。由特定管芯的定序器产生的中断可以经由系统互连106被传送到其他的管芯。类似地,由外围设备114产生的中断可以通过系统互连106被传送到管芯。
用于管芯150的集中式中断控制器110(并且,特别地,进入的系统消息队列204)可以确定这些消息的目的地地址是否包括在管芯150上的任意定序器(例如,核心或逻辑处理器)。如果该消息不把在和那个管芯相关的本地互连102上的任意核心或逻辑处理器作为目标,那么进入的系统消息队列204拒绝传递该消息到本地互连102上的任意定序器。在这种方式下,进入的系统消息队列避免了“唤醒”那些已被简单地确定为无需动作的核心/线程。这节省了功率并且保存了本地互连102的带宽,因为它消除了多个单独的定序器仅仅为了确定消息没有把它们作为目标而使其从功率节省状态“醒来”的需要。
即使一个或多个逻辑处理器不在功率节省状态,进入的系统消息队列204也能执行防火墙特征,以免得仅仅为了确定进入的中断消息不需要逻辑处理器的动作,而使逻辑处理器从其当前正在做的工作中中断。
对于至少一个实施例,防火墙也能针对外发的消息而被实现。这对于外发的系统消息,以及对于至少一些实施例的外发的本地消息都是真实的。对于至少一个实施例,本地消息的防火墙特征仅仅针对这样的系统实施,该系统的本地互连102支持允许目标中断消息被传送到特定定序器、而不是需要本地互连102上的每一条消息被广播到所有的定序器的特征。在这样的情况下,外发的本地消息队列208可以将本地互连102上的每一个中断消息作为单播或多播消息仅仅发送到该消息作为目标的定序器。在这样的方式下,没有作为目标的定序器无需中断它们的处理以确定它们的动作针对特定的中断消息是不需要的。可以将外发的系统消息简单地作为目标,因此无需将它们发送给没有作为目标的实体。
图2因此说明了,在进入的中断消息已经通过进入的消息队列204、206被放置在集中式APIC的状态202中以后,接着中断定序器块214可以提供在系统的定序器之间对APIC逻辑212的单个副本(见图2)的公平访问,以便为系统执行APIC处理。中断定序器块214可以在实质上通过顺序地遍历APIC的状态202以及对于下一个需要它的定序器提供对APIC逻辑212的访问来实现这样的公平模式。通过中断定序器块214实现的公平模式因此可以允许每一个定序器对中断传送块进行等同的访问。
对于至少一个实施例,通过使用记分板(见图4的304),通过APIC的状态202的条目的这种概念化的序列步进更为有效,其能够被自动查询,以确定哪一个活动定序器是需要APIC服务的“下一个”定序器。对于至少一个实施例,可以根据下面结合图5的以进一步的细节描述的方法可以控制该顺序的访问。
图5是说明了中断定序器块214(参见图2)的至少一个实施例所采用的方法500的状态图,采用该方法以提供系统的定序器之间的到APIC逻辑212(参见图2)的单个副本的公平访问,从而执行系统的APIC处理。下面围绕图5的论述将参考图2和图4。
通常,图5说明中断定序器块214针对活动的APIC实例从集中式APIC的状态202中读出当前的状态,并且采取适应于当前状态的动作,并且接着对于下一个具有未决工作的APIC实例重复该处理。
图5说明的方法500可以在状态502开始。在状态502,中断定序器块214查阅记分板304以确定哪一个(哪些)APIC实例有工作要做。如上面所陈述的,对于每一个APIC实例在记分板304上可能有一个条目412。对于至少一个实施例,条目412可以是一位条目。当针对该特定的APIC实例,进入的消息被写入到集中式APIC的状态202时,可以设置位412。
当然,本领域技术人员将认识到,记分板304是增强的性能,其不需要在所有的实施例中出现。对于至少一个可替代的实施例,例如,为了确定是否有任意活动的APIC实例需要服务,中断定序器块214可以以有序的方式(顺序的等等)遍历集中式APIC的状态202的每一个条目。
如果在记分板304中没有位被设置,那么没有定序器具有未决APIC事件。在这样的情况下,方法500可以从状态502转变到状态508。在状态508,方法500可以在APIC逻辑块212的至少一部分断电,以在逻辑块212不需要时保存电量。当断电完成时,方法500转变回到状态502以确定是否检测到任意的新的APIC活动。
在状态502,如果没有新的活动被检测到(也就是说,在记分板304中没有条目被设置),并且APIC逻辑212已经被断电,那么方法500可以从状态502转变到状态506以等待新的APIC活动。
在等待状态506期间,方法500可以周期性地评估记分板304的内容以确定任意的APIC实例是否已获得未决的APIC工作。如在记分板内容304中所反映的任意进入的APIC消息导致从状态506到状态502的转变。上面的对于进入的本地消息队列204以及进入的系统消息队列206的论述提供了如何更新构架的APIC的状态302以及对于至少一些实施例而言的记分板304的条目的描述,以反映APIC实例已获得未决的APIC工作。
方法500可以确定,在状态502,如果记分板304中的任何条目412被设置,那么至少一个APIC实例具有未决的APIC工作要做。如果超过一个的这样的条目被设置,那么中断定序器块214确定哪一个APIC实例接下来将要通过APIC逻辑212接收服务。对于至少一个实施例而言,中断定序器块214通过选择被设置的下一个记分板条目来执行这个确定。在这样的方式下,中断定序器块214通过顺序地选择访问APIC逻辑212的下一个活动的APIC实例而施加公平模式。
在状态502下选择APIC实例时,方法500从块502转变到块504。在块504,中断定序器块214为选择的虚拟APIC从集中式APIC的状态302中读取条目410。在这种方式下,中断定序器块214确定对于选择的APIC实例哪些APIC事件是未决的。多个APIC事件可以是未决的,并且因此反映在APIC条目410中。在状态504的每一个重复期间,对于一个APIC实例,只有一个未决事件被处理。因此,可以保持顺序的公平模式的循环(round-robin)类型。
对于相同的活动APIC实例,为了在多个未决中断事件中进行选择,中断定序器块214在状态504期间执行优先化处理。这样的优先化处理可以模仿传统系统中的专用的APIC执行的优先化模式。例如,APIC中断被定义为落入重要性的级别中。对于至少一个实施例,每一个APIC实例的构架状态条目410(图4)能够支持每个逻辑处理器的240个未决中断。其能够落入重要性的16个级别中,并且它们在16个优先化组中被分级。级别16-31的中断比起在级别32-47等的那些中断具有更高的优先级。中断的级别号越低,中断的优先级就越高。因此,中断定序器块214为APIC实例考虑240位,并且,如果超过一位被设置,那么它在状态504中仅仅选择一个事件(基于APIC的存在的构架优先化规则)。对于至少一个实施例,中断定序器块214调用APIC逻辑212以执行这个优先化。
方法500接着在状态504期间,为选择的事件调度或者执行合适的动作。例如,事件可以是正在等待中断消息的应答,该中断消息先前从多个外发的消息队列之一中被发送出去。可替代地,事件可以是外发的中断消息需要被发送。或者,对于多个定序器之一,进入的中断消息或应答需要被服务。中断定序器块214可以激活APIC逻辑212以在状态504下服务事件。
在应答正被等待的情况下,中断定序器块214可以查阅微构架状态303,以确定这样的应答正被等待。如果是这样,中断定序器块214查阅APIC的状态202的合适的条目,以确定在状态504下应答是否已经被接收。如果不是这样,退出状态504以便下一个定序器的事件可以被处理。
如果应答已经被接收,那么微构架状态303被更新以反映应答不再被等待。中断定序器块214也能在转回到状态502之前清除APIC实例的记分板304的条目。对于至少一个实施例,只有在当前被服务的事件是APIC实例的唯一的未决事件的情况下,记分板条目304才被清除。
如另一个例子,如果在状态504下要被服务的事件是中断消息的发送(通过本地互连102或者系统互连106),那么这样的事件能够像如下这样在状态504被服务。假定有上面描述的优先级处理的情况下,中断定序器块214从当前被服务的逻辑处理器的APIC实例中确定哪一个外发的消息需要被传送。该外发的消息接着被调度,和期望的目的地地址一起被传送到合适的外发的消息队列(外发的本地消息队列208或者外发的系统消息队列210)。
如果外发的消息在事件已经被充分服务之前需要附加的服务,例如应答的接收,那么集中控制器110可以更新微构架状态303以表示该事件需要进一步的服务。(通过本地互连102或者系统互连106的进入的应答可以在进入的消息队列204、206中入队,并且最终被更新到集中式APIC的状态202,因此在相关APIC实例的状态504的下一个重复期间,它们能够被处理。)方法接着从状态504转变到状态502。
图6说明了能够执行公开的技术的多线程计算系统900的至少一个示例性的实施例。计算系统900包括至少一个处理器核心904(0)以及存储系统940。系统900可以包括附加的核心(一直到904(n)),如通过虚线和椭圆所表示的那样。
存储系统940可以包括较大大的、相对较慢的存储器902,以及一个或多个较小的、相对较快的高速缓存,例如指令高速缓存944和/或数据高速缓存942。存储器902能够存储指令910和数据912以控制处理器904的操作。
存储系统940总体表示存储器,其可以包括各种形式的存储器,例如硬盘驱动器,CD-ROM,随机存取存储器(RAM),动态随机存取存储器(DRAM),静态随机存取存储器(SRAM),闪存以及相关的电路。存储系统940可以存储由数据信号表示的数据912和/或指令910,该数据信号能被处理器904执行。指令910和/或数据912可以包括用于执行这里所论述的任意或所有技术的代码和/或数据。
图6说明了每一个处理器904可以被耦合到集中式中断控制器110。每一个处理器904可以包括提供指令信息给执行核心930的前端920。预取的指令信息可以在高速缓存225中缓冲以等待由执行核心930执行。前端920可以以程序指令提供指令信息给执行核心930。对于至少一个实施例,前端920包括确定要被执行的下一个指令的预取/解码单元322。对于系统900的至少一个实施例,预取/解码单元322可以包括单独的下一指令指针以及预取逻辑320。然而,在每个处理器904都支持多个线程上下文的实施例中,预取/解码单元322为每一个支持的线程上下文实施不同的下一指令指针以及预取逻辑320。在图6中用虚线表示在多处理器环境中的附加的下一指令指针和预取逻辑320的可选特性。
这里所描述的方法的实施例可以用硬件、硬件模仿软件或其他软件、固件或这样的实现方法的组合来实现。针对包括至少一个处理器、数据存储系统(包括易失性和非易失性的存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备的可编程系统可以实现本发明的实施例。为了这个应用的目的,处理系统包括具有处理器(例如,数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或者微处理器)的任意系统。
程序可以被存储在可通过通用的或特定目的的可编程处理系统读取的存储媒体或设备(例如,硬盘驱动器、软盘驱动器、只读存储器(ROM)、CD-ROM设备、闪存设备、数字通用盘(DVD)或其他存储设备)上。当存储媒体或设备被处理系统读取以执行这里描述的过程时,可由处理系统中的处理器访问的指令用于配置和操作处理系统。也可以将本发明的实施例视为作为机器可读存储介质来实现,其被配置为和处理系统一起使用,其中该存储介质这样配置以使得处理系统以特定的和预先定义的方式操作以执行这里所描述的功能。
示例系统900是基于Intel公司出品的Pro、II、III、4、2微处理器、以及MobileIII处理器-M和Mobile4处理器-M的处理系统的代表,但也可以使用其他系统(包括具有其他微处理器、工程工作站、个人数字助理、其他手持设备以及机顶盒等等的个人计算机(PC))。对于一个实施例,示例性的系统能够执行微软公司出品的可用WindowsTM操作系统版本,但也可以使用其他的操作系统和例如图形用户界面。
尽管已经示出和描述了本发明特定的实施例,但对于本领域技术人员而言显而易见的是,可以对本发明进行各种各样的变更和修改而不背离所附权利要求的范围。例如,集中式APIC的状态202的至少一个实施例可以包括仅仅一个单独的读取端口和一个单独的写入端口。对于这样的实施例,为了获得对集中式APIC的状态202的访问,进入的系统消息队列204、进入的本地消息队列206、以及中断定序器块214可以利用判优逻辑(未示出)。
此外,例如,图5说明的方法500的至少一个实施例可以排除状态508。本领域技术人员将认识到,状态508仅仅提供了一个增强的性能(省电),但是在所附权利要求中,并不需要本发明的该实施例。
此外,例如,上面所述的在上文论述的集中式中断控制器110的至少一个实施例可以排除记分板304。对于这样的实施例,为了确定下一个APIC实例以从APIC逻辑212接收服务,中断定序器214可以顺序地遍历构架APIC的状态302的条目410。
因此,本领域技术人员将认识到在本发明的更广泛的方面,可以对本发明进行各种各样的变更和修改而不背离本发明的保护范围。所附的权利要求将在它们的范围内包括落在本发明真实范围内的所有这样的变更和修改。
Claims (20)
1.一种用于控制中断的设备,其包括:
APIC逻辑单元,其用于针对将中断消息传送到多个处理单元以及从多个处理单元传送中断消息,执行优先化以及控制功能,其中,在所述多个处理单元之间共享所述APIC逻辑单元;
存储区域,其保持所述多个处理单元的构架中断状态信息;以及
中断定序器单元,其耦合到所述存储区域,以查阅所述存储区域并确定所述多个处理单元的构架中断状态,并且,所述中断定序器单元耦合到所述APIC逻辑单元,以调度所述多个处理单元的中断事件以便由所述APIC逻辑单元进行处理。
2.如权利要求1所述的设备,还包括:
包括数据存储和控制逻辑的一个或多个输入的消息队列,其用于接收进入的中断消息,并将来自于所述中断消息的信息置入所述存储区域中;以及
包括数据存储和控制逻辑的一个或多个输出的消息队列,其用于发送外发的中断消息,
其中,所述处理单元不包括自包含的APIC中断传送逻辑。
3.如权利要求1所述的设备,其中:
所述APIC逻辑单元包括非冗余的电路。
4.如权利要求1所述的设备,其中:
所述中断定序器单元根据公平模式来调度所述多个处理单元的中断事件。
5.如权利要求4所述的设备,其中:
所述中断定序器单元根据所述存储区域的顺序遍历来调度所述多个处理单元的中断事件。
6.如权利要求1所述的设备,还包括:
记分板,其用于保持与哪一个处理单元具有未决中断事件相关的数据。
7.如权利要求2所述的设备,其中:
所述多个处理单元通过本地互连进行通信。
8.如权利要求7所述的设备,其中:
所述一个或多个输入的消息队列包括通过所述本地互连接收进入的中断消息的消息队列;以及
所述一个或多个输出的消息队列包括通过所述本地互连发送外发的中断消息的消息队列。
9.如权利要求7所述的设备,其中:
所述一个或多个输入的消息队列包括通过系统互连接收进入的中断消息的消息队列;以及
所述一个或多个输出的消息队列包括通过所述系统互连发送外发的中断消息的消息队列。
10.如权利要求2所述的设备,其中,所述一个或多个输出的消息队列还用于:
从所述存储区域获得与所述外发的中断消息相关的信息。
11.如权利要求2所述的设备,其中,所述一个或多个输出的消息队列还包括:
用于禁止传输一个或多个所述外发的中断消息的防火墙逻辑。
12.如权利要求2所述的设备,其中,所述一个或多个输入的消息队列还包括:
用于禁止将一个或多个所述进入的中断消息传输到一个或多个所述处理单元的防火墙逻辑。
13.一种用于控制中断的系统,其包括:
用于查阅存储阵列以确定多个处理单元的构架中断状态的模块;以及
用于调度所述多个处理单元的中断事件以便由非冗余APIC中断传送进行处理的模块,其中,用于非冗余APIC中断传送的模块用于针对将中断消息传送到多个处理单元以及从多个处理单元传送中断消息,执行优先化以及控制功能;
其中,所述用于调度的模块是根据公平模式调度中断,所述公平模式允许每一个处理单元均等地访问所述用于非冗余APIC中断传送的模块。
14.如权利要求13所述的系统,其中:
对于具有一个或多个未决中断事件的那些处理单元,所述公平模式是顺序的循环模式。
15.一种用于控制中断的系统,包括:
多个处理单元,其用于执行一个或多个线程;
存储器,其耦合到所述处理单元;以及
共享的中断控制器,用于为所述多个处理单元提供中断传送服务,所述共享的中断控制器包括:
APIC逻辑单元,其用于针对将中断消息传送到所述多个处理单元以及从所述多个处理单元传送中断消息,执行优先化以及控制功能,其中,在所述多个处理单元之间共享所述APIC逻辑单元;
存储区域,其保持所述多个处理单元的构架中断状态信息;以及
中断定序器单元,其耦合到所述存储区域,以查阅所述存储区域并确定所述多个处理单元的构架中断状态,并且,所述中断定序器单元耦合到所述APIC逻辑单元,以调度所述多个处理单元的中断事件以便由所述APIC逻辑单元进行处理。
16.如权利要求15所述的系统,其中,所述共享的中断控制器还包括:
包括数据存储和控制逻辑的一个或多个输入的消息队列,其用于接收进入的中断消息,并将来自于所述消息的信息置入所述存储区域中;以及
包括数据存储和控制逻辑的一个或多个输出的消息队列,其用于发送外发的中断消息,
其中,所述APIC逻辑单元包括非冗余的电路。
17.如权利要求15所述的系统,其中:
所述共享的中断控制器还为所述多个处理单元提供APIC中断传送服务。
18.如权利要求15所述的系统,其中:
所述处理单元不包括自包含的APIC中断传送逻辑。
19.如权利要求15所述的系统,其中:
所述共享的中断控制器还包括防火墙逻辑。
20.如权利要求15所述的系统,还包括:
在所述多个处理单元之间耦合的本地互连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310108147.8A CN103257943B (zh) | 2006-11-27 | 2006-11-27 | 集中式中断控制器 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006800416307A CN101305353B (zh) | 2006-11-27 | 2006-11-27 | 集中式中断控制器 |
CN201310108147.8A CN103257943B (zh) | 2006-11-27 | 2006-11-27 | 集中式中断控制器 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800416307A Division CN101305353B (zh) | 2006-11-27 | 2006-11-27 | 集中式中断控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103257943A CN103257943A (zh) | 2013-08-21 |
CN103257943B true CN103257943B (zh) | 2016-09-14 |
Family
ID=48961873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310108147.8A Expired - Fee Related CN103257943B (zh) | 2006-11-27 | 2006-11-27 | 集中式中断控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103257943B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI687868B (zh) * | 2018-02-12 | 2020-03-11 | 緯創資通股份有限公司 | 電腦系統及其中斷事件處理方法 |
CN117272412B (zh) * | 2023-11-21 | 2024-03-15 | 芯来智融半导体科技(上海)有限公司 | 中断控制寄存器保护方法、装置、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1195140A (zh) * | 1997-03-28 | 1998-10-07 | 国际商业机器公司 | 采用带有pico码的智能桥接器改进中断响应 |
US5892957A (en) * | 1995-03-31 | 1999-04-06 | Sun Microsystems, Inc. | Method and apparatus for interrupt communication in packet-switched microprocessor-based computer system |
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 |
-
2006
- 2006-11-27 CN CN201310108147.8A patent/CN103257943B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892957A (en) * | 1995-03-31 | 1999-04-06 | Sun Microsystems, Inc. | Method and apparatus for interrupt communication in packet-switched microprocessor-based computer system |
CN1195140A (zh) * | 1997-03-28 | 1998-10-07 | 国际商业机器公司 | 采用带有pico码的智能桥接器改进中断响应 |
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 |
Also Published As
Publication number | Publication date |
---|---|
CN103257943A (zh) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100399385B1 (ko) | 적응성인터럽트맵핑메카니즘및방법을사용하는다중처리시스템 | |
US20070106827A1 (en) | Centralized interrupt controller | |
CN101573690B (zh) | 线程排队的方法和装置 | |
US6944850B2 (en) | Hop method for stepping parallel hardware threads | |
JP5643903B2 (ja) | 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置 | |
US11360809B2 (en) | Multithreaded processor core with hardware-assisted task scheduling | |
TW200305820A (en) | A method and apparatus for suspending execution of a thread until a specified memory access occurs | |
US8468531B2 (en) | Method and apparatus for efficient inter-thread synchronization for helper threads | |
TW484065B (en) | Dynamic priority external transaction system | |
CN103019655B (zh) | 面向多核微处理器的内存拷贝加速方法及装置 | |
CN103257943B (zh) | 集中式中断控制器 | |
US10152329B2 (en) | Pre-scheduled replays of divergent operations | |
CN101305353B (zh) | 集中式中断控制器 | |
US11526767B2 (en) | Processor system and method for increasing data-transfer bandwidth during execution of a scheduled parallel process | |
JPH09244951A (ja) | 順不同に命令を実行するコンピュータのためのシステム | |
Yu et al. | Buffer on last level cache for cpu and gpgpu data sharing | |
JP2012009063A (ja) | 中央化された割り込みコントローラ | |
JP5710712B2 (ja) | 中央化された割り込みコントローラ | |
TWI823655B (zh) | 適用於智慧處理器的任務處理系統與任務處理方法 | |
JP2002342295A (ja) | マルチプロセッサシステム | |
Cetre et al. | Real-time high performance computing using a Jetson Xavier AGX | |
JP2001069161A (ja) | 衝突回避にトークンを使用した分散型サービス要求をスケジューリングするための方法とそれを実現するためのデータ処理装置 | |
Chaudhry et al. | A case for the multithreaded processor architecture | |
JP6055456B2 (ja) | 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置 | |
CN113094299A (zh) | 一种处理器数据存取微架构 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160914 Termination date: 20181127 |
|
CF01 | Termination of patent right due to non-payment of annual fee |