CN1330782A - 非均匀存储器存取(numa)数据处理系统的中断体系结构 - Google Patents
非均匀存储器存取(numa)数据处理系统的中断体系结构 Download PDFInfo
- Publication number
- CN1330782A CN1330782A CN99814454A CN99814454A CN1330782A CN 1330782 A CN1330782 A CN 1330782A CN 99814454 A CN99814454 A CN 99814454A CN 99814454 A CN99814454 A CN 99814454A CN 1330782 A CN1330782 A CN 1330782A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- interruption
- processor
- territory
- node
- 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.)
- Granted
Links
Images
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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
Abstract
非均匀存储器存取(NUMA)计算机系统包括至少二个通过节点互相连接的节点,其中至少一个节点包括用于为中断服务的处理器。把这些节点分割成多个外部中断域,从而总是把外部中断提交给其中出现该中断的外部中断域内的处理器。尽管每个外部中断域典型地只包含单个节点,可实现中断沟道效应或中断漏斗效应以路由外部中断从而提交给一处理器。一旦提交给处理器,可接着在任何处理器上执行中断处理软件以服务该外部中断。和现有技术相比,通过减小中断处理器的轮询链的尺寸可迅速为外部中断服务。除外部中断外,本发明的中断体系结构支持处理器间的中断(IPI),从而任何处理器可中断自己或者中断该NUMA计算机系统中的一个或多个其它处理器。
Description
本发明一般地涉及数据处理,并且具体地涉及非均匀存储器存取(NUMA)数据处理系统中的数据处理。更为具体地,本发明涉及用于NUMA数据处理系统的中断体系结构。
在计算机系统中,经常利用中断以警告处理器出现需要特殊处理的事件。例如可利用中断请求来自接收处理器的服务、报告错误状态或者简单地在部件之间传递信息。在单处理器计算机系统中,由于由单个处理器处理中断,中断支持是相对简单的。然而在多处理器计算机系统中,由于必须使用把中断路由到特定处理器或处理器组以进行处理的某种机制,产生附加的复杂性。
在常规对称多处理器(SMP)计算机系统中,利用软硬件二种机制以各种方式处理中断。SMP计算机系统典型地采用一个全局控制器根据中断的优先级以及(若存在的)正由各个处理器执行的进程的优先级选择为某中断服务的处理器。从而,中断控制器比较中断的优先级和正由处理器执行的进程的优先级,并且把正在执行优先级低于中断的进程的处理器选择为服务处理器。由于SMP中的处理器是相对紧耦合的,可以借助采用共享系统互连或者专用中断线路的设备完成进程优先级的判定以及中断到服务处理器的路由选择。
近来,已出现一种称为非均匀存储器存取(NUMA)的微处理器计算机系统拓朴。典型NUMA计算机系统可包括一个高等待时间节点互连,其连接着数个各含有局部系统存储器的多处理器节点。由于NUMA计算机系统中的多个处理器不紧耦合,不能在NUMA计算机系统中直接应用常规SMP中断维护和通信机制。从而很明显,NUMA计算机系统中需要一种中断处理机制,以提供中断路由选择和传递的有效机制。
一种非均匀存储器存取(NUMA)计算机系统包括至少二个由通过节点互连连接的节点,其中这些节点中的至少一个包括一个对中断服务的处理器。依据本发明,包含着软硬件二部分的NUMA计算机系统的中断体系结构把该NUMA计算机系统分割成多个外部中断域,从而总是把外部中断提交给其中出现该中断的外部中断域内的一个处理器。尽管每个这样的外部中断域典型地只包含单个节点,可实现中断沟道效应或中断漏斗效应以通过节点边界路由外部中断从而提交给某处理器。
一旦提交给某处理器,可接着在该系统内的任何处理器上执行中断处理软件以服务该外部中断。和现有技术各方法相比,本发明的中断体系结构能通过减小中断处理器的轮询链(树)的尺寸有益地使中断处理软件迅速为外部中断服务。
除外部中断外,本发明的中断体系结构支持处理器间的中断(IPI),从而任何处理器可中断自己或者中断该NUMA计算机系统中的一个或多个其它处理器。通过对全局存储器中的存储器变换寄存器进行写触发各IPI,这方便了越过节点边界传输IPI并且允许简单地通过对各个包含着被中断的处理器的节点发送一个写事务处理触发多播IPI。
本发明的中断体系结构可良好地在包含一些节点的小NUMA计算机系统和包含数百个节点的大系统之间扩缩。出于可扩缩性还在各节点内分布中断硬件,并且其中通过在共享通信通路(即局部总线和互连)上传送中断事务各硬件成分进行通信。
现仅以例子的方式在参照附图下说明本发明,附图是:
图1描述借助其可有益地应用本发明的NUMA计算机系统的示意
实施例;
图2表示可由图1中描述的NUMA计算机系统使用的物理存储变换的示范实施例;
图3A和3B分别描述依据本发明的中断源单元(ISU)内的中断源配置寄存器和未决中断寄存器的示意实施例;
图4示出依据本发明的中断目的地单元(IPU)的更详细方块图;
图5是依据本发明的ISU的操作的高层逻辑流程图;
图6是依据本发明的IDU的操作的高层逻辑流程图;
图7是配置依据本发明的中断资源的配置例程的示范实施例的高层逻辑流程图;以及
图8是描述依据本发明的第一级中断处理器(FLIH)软件的操作的高层逻辑流程图。
1.0NUMA计算机系统概述
现参照各附图尤其参照图1,图1中示出依据本发明的NUMA计算机系统的示意实施例。所描述的实施例例如可按工作站、服务器或主计算机实现。如所示,NUMA计算机系统6包括一些(N≥2)处理节点(8a-8n),它们通过节点互连22互连。每个处理节点8a-8n包括M(M≥0)个处理器10。若在一个处理节点内存在,处理器10a-10m最好是相同的并且可由能从纽约州的Armork镇的国际商用机器(IBM)公司购的Power PC系列(Power PC是IBM公司的一个商标)内的处理器构成。除了集体地用处理器核心12标志的用来执行程序指令的寄存器、指令流逻辑电路和执行单元之外,每个处理器10a-10m还包括一个用于把来自系统存储器18的数据升级到相关处理器核心12的单片高速缓存层次14。每个高速缓存层次14例如可包括层一(L1)高速缓存和层二(L2)高速缓存,它们的存储量分别在8-32千字节(KB)和1-16兆字节(MB)之间。由于可以由NUMA计算机系统6内的任何处理器10请求、存取和修改每个系统存储器18内存储的数据,NUMA计算机系统6最好实施高速缓存相关性协议(例如,“修改”、“排它”、“共享”、“无效”(MESI)或者其变型),以保持同一处理节点内的高速缓存之间的以及不同处理节点中的高速缓存之间的相关性。
如所示,处理节点8a-8n还包括各自的在本地互连16和节点互连22之间连接的节点控制器20。通过实现至少二种的功能,每个节点控制器20充当各远程处理节点8的本地代理。第一,每个节点控制器20窥探相关的本地互连16并且促进本地通信事务至远程处理节点8的传输。第二,每个节点控制器20窥探节点互连22上的通信事务并且控制相关本地互连16的有关通信事务。每个本地互连16上的通信是由仲裁器24控制的。仲裁器24根据各个处理器10生成的总线请求信号调节对各个本地互连16的访问并且为在各个本地互连16上窥探到的通信事务编译相关性响应。
通过各个存储器控制器(MC)17调节对NUMA计算机系统6的每个系统存储器18的访问。除了接收和服务由处理器10a-10m、节点控制器20以及处理节点8内的其它部件生成的读写请求的电路外,每个存储器控制器17包含一个中断目的地单元(IDU)19,如后面所说明,IDU 19包含一些促进路由选择和处理中断的寄存器和相关的逻辑电路。
局部互连16通过夹层总线桥路26和夹层总线30连接,夹层总线30例如可按外围部件互连(PCI)局部总线实现。夹层总线桥路26即提供一条通过其处理器10可直接访问I/O部件32和存储部件34中的变换到总线存储器和/或I/O地址空间的部件的低等待时间通路,又提供一条通过其I/O部件32和存储部件34可访问系统存储器18的高带宽通路。I/O部件32例如可包括:显示器部件、键盘、图形指点器以及用于和外部网络或附加部件连接的串行和并行端口。另一方面,存储部件34可包括为操作系统和应用软件提供非易失性存储的光盘或磁盘。
通过中断请求线路35,I/O部件32以及存储部件34(以及NUMA计算机系统6的其它非处理器部件)可出于任何数量的目的,包括信令接收某输入、报告出错状态等,产生中断。一个或多个中断源单元(ISU)收集这些中断,以下把这些中断称为外部中断以表示它们是由处理器10之外的部件生成的中断。尽管出于清晰分立地示出,可替代地把ISU28a和28b集成到构成夹层总线桥路26的芯片组中。如后面详细说明那样,ISU28把外部中断路由到IDU 19,IDU 19再通过某中断请求线路36把外部或其它中断呈交给本地处理器16供进行服务。
局部互连16和节点互连22各可用任何基于总线的广播结构、基于交换的广播结构、基于交换的非广播结构或者包括基于总线以及基于交换的部件的混合式互连体系结构实现。与采用哪种互连体系结构无关,局部互连16和节点互连22最好支持拆分事务,其意味着通信事务的地址部件和时间部分的计时是独立的。为了能识别属于各个通信事务的地址占有期和数据占有期,最好用相同的事务标记标志一起构成某事务的地址包和数据包。
最好通过串接部件在其内驻留的处理节点8的节点ID和部件的局部ID而构成全系统的部件ID,在整个NUMA计算机系统6内唯一地标识和局部互连16连接的每个处理器16和每个其它部件。例如,在其中最多存在四个处理节点8并且其中最多对每条局部互连16连接八个部件的实施例中,可采用五位的部件ID,其中二个高位用于节点ID而三个低位用于该部件的局部ID。最好在相关节点控制器20内的一个寄存器中保持每个节点ID并且最好在各个和局部互连16连接的部件内的部件标识寄存器中保持局部ID。可以有益地把每个这样的全系统的部件ID用作为由相关部件生成的每个事务标志的高位部分,从而保证整个NUMA计算机系统6中的事务标志的唯一性。1.1物理存储变换
现参照图2,其中示出一个示范物理存储变换,它可由NUMA计算机系统6的具有四个各含有一个系统存储器18的处理节点8的实施例采用。在图2中示出的实施例中,NUMA计算机系统6中的所有部件共享单个包含着通用存储器区52以及系统控制和外围区54二者的16吉字节(GB)的物理地址空间50。通用存储器区52中的每个物理地址只和一个系统存储器18中的单个物理单元相关。这样,通常可通过NUMA计算机6中的任何处理器10访问的通用存储器区52的总内容可以看成是在所有系统存储器18之中分区的。在示出的实施例中,通用存储器区52划分成多个512MB的段,其中每隔四个段向四个处理节点8中的每个节点分配一个段。存储其系统存储器18中的一具体数据的处理节点8称为是该数据的主节点;相反,其它处理节点8a-8n对于该具体数据被称为是远程节点。
仍参照图2,在该示出的实施例中含有2GB的物理地址的系统控制和外围区54包括256MB的系统控制区56、0.5GB的外围I/P空间58、1GB的外围存储器空间60和一个初始程序装入(IPL)区62。IPL区62含有保留用于分配给最多为256MB的IPL(即,引导)码的地址,IPL码典型地存储在只读存储器(ROM)中。IPL码会包括用于操作系统的装入程序,例如可以IBM公司购到的“先进交互执行”(AIX)程序。如所示,外围I/O空间58中的0.5GB划分成长度相等的段62,它们各分配到一个有关的处理节点8。类似地把外围存储器空间60分割成长度相等的256MB的段66,它们各分配给一个具体的处理节点8。
类似外围I/O空间58和外围存储器空间60,系统控制区56中的物理存储器空间包括一些各和一个有关的处理节点8相关的段70。在示出的实施例中,每个段70含有64MB的地址空间。除了供存储其它的按节点的控制信息的地址之外,每个系统控制区段70包括分配给相关处理节点8上的IDU 19和ISU 28的中断寄存器的物理地址。如后面进一步讨论那样,这些存储变换寄存器由本发明用于接收和路由外部中断、调用处理器间中断以及路由处理节点8之间的中断。2.0中断体系结构概述
本发明的中断体系结构至少设置三种不同类型的中断。第一,存在由处理器的内部操作触发的内部中断。例如可因程序异常或内部处理器寄存器的溢出/下溢触发内部中断。第二,如上面所述,可以由处理器外部的部件,例如I/O部件和系统时钟,产生外部中断。第三,本发明还支持处理器间中断(IPI),其由第一处理器生成用于中断第二处理器。
在本发明的一优选实施例中,NUMA处理系统6通过一种遵循并且扩充OpenPIC(开放处理器中断控制器)标准的中断体系结构提供对外部中断以及IPI的支持。OpenPIC例如在Advanced Micro Devices公司和Cyrix公司于1995年10月联合出版的Open ProgrammableInterrupt Controller(PIC)Register Interface Specification Revision 1.2中说明,该资料由本文收录作为参考。尽管OpenPIC兼容是优选的,本发明可应用于任何具有在整个系统中是唯一的存储变换中断控制寄存器的系统。
本发明的中断系统结构包括硬件成分和软件成分,下面对二者分别说明。2.1中断体系结构硬件
和典型地利用一个全局中断控制器为单个中断域服务的常规Open PIC以及其它SMP中断实现不同,NUMA计算机系统6的每个处理节点8最好形成它自己的外部中断域,其中每个外部中断域具有它自己的有关IDU 19以及一个或多个ISU 28,如图1中所示。ISU 28为中断源提供至中断系统的接口,而IDU 19提供中断系统和处理器10之间的接口。为了促进中断的有效处理并且使中断域之间的中断通信为最少,若处理节点8装备着配置成为中断服务的处理器10,利用在局部互连16(以及取决于实施,夹层总线30)上发送的中断包只把ISU28接收的外部中断传送给同一中断域(即,处理节点8)内的IDU 19。然而,通过IDU 19中的各个存储变换寄存器支持中断域之间的配置信息、处理器间中断、中断确认、中断命令结束和其它与中断有关的信息的通信,从而允许在每个处理节点8上全系统范围地使用中断资源。2.1.1中断源单元(ISU)组件
现参照图3A和3B,其中分别描述每个中断源单元(ISU)28中的中断源配置寄存器和中断未决寄存器的示意实施例。每个ISU 28最好对每个中断源包括至少一个的这种中断源配置寄存器并且为该ISU 28支持的所有中断源包括一个中断未决寄存器82。
首先参照图3A,每个中断源配置寄存器72包括一个识别用于该相关中断源的中断向量的向量字段73,一个可以为识别该中断向量存储附加位组的中断向量保留字段74以及一个指示该相关中断源生成的中断的优先级的优先级字段15。在示出的实施例中,中断优先级的范围从优先级为最低的0到优先级为最高的15。每个中断域内的各中断资源最好是唯一的。从而,每个中断域最好只具有一个一级中断,而在NUMA计算机系统6中可存在多达N个的一级中断。当然,可使用现有技术以允许单个处理节点8内的共享这些多个中断源的中断共享相同的中断级。
中断源配置寄存器72还包括:二个保留字段76和79,一个用于指示中断信号是用边缘触发还是用电平触发的读出位77,一个用于指示中断是低位有效(或负边缘)还是高位有效(或正边缘)的极性位78,一个指示向量字段73和优先级字段75是否正使用并且不能修改的活动(ACT)位80,以及一个使用和禁止ISU 28接收由相关中断源生成的中断的屏蔽(MSK)字段81。从而,响应经过一中断请求线路从某具体中断源接收中断,ISU 28可通过参照适当的中断源配置寄存器72确定对该中断源的中断的允许性和优先级并确定和该中断相关的中断向量的标识符。
一旦ISU28接收并考核-外部中断,ISU 28设置图3B的未决寄存器82中的一个位。和该中断源唯一相关的该位表示该中断源具有一个未决中断。这样,在图3B中示出的实施例中,每个ISU 28最多可支持16个中断源。2.1.2中断目的地单元(IDU)组件
现参照图4,其是处理节点8的存储器控制器17中的IDU 19的更详细方块图表示。所描述的IDU 19的该实施例是依从OpenPIC的并且包括三个不同的寄存器空间,即全局寄存器90、各处理器的寄存器92以及处理器间的中断(IPI)命令寄存器133,它们在各个处理节点的系统控制区段70内各位于由OpenPIC定义的对全局配置寄存器102中规定的基地址的偏移处。为了简化定址,最好基地址和处理节点的系统控制区段70的起点之间的偏移对于所有的IDU 19都是相同的。例如在包括处理节点8并且每个节点含有四个一起共享16 GB存储器空间的处理器的NUMA计算机系统6的示意实施例中,可在000000000h—3FFFFFFFFh的范围内定义位30—63,并且系统控制区56驻留在A30…A630 E0000000h-0EFFFFFFFh。如果通过A36…A37定义分配给处理节点8的节点号,并且节点号在b00-b11的范围内,具有节点号b01的处理节点8的系统控制区段70会位于在A30…A63 0E4000000h—OE4FFFFFFh。在所有的系统控制区段70内,IDU19中的各寄存器的基地址会位于一个相同的任意偏移,例如000C0000h,处。这样,通过相加0E4000000h和000C00000h产生0E4C00000h可得到节点号b01内的IDU 19的各寄存器的基地址。接着可如下利用OpenPIC定义的偏移对节点号601的IDU 19内的各个寄存器空间和各个寄存器定址:220000h =由全局配置寄存器102规定的从基地址到节点
b01处的处理器610的每个寄存器120的Open PIC
构建的偏移+0E4C00000h =节点号b01的IDU19内的各寄存器的基物理地址0E4C220000h =节点号b01处的处理器b10的每个处理器寄存器
120的物理地址0040h =从每个处理器的寄存器120到IPI命令端口0的
OpenPIC构建的偏移+0E4C220000h =节点号b01处的处理器b10的每个寄存器120的
物理地址0E4C220040h =节点号b01处的处理器b10的每个寄存器120的
物理地址
如图4中所示,每个IDU 19中的全局寄存器组包括:一个读和写的特征报告寄存器100,一个读和写的全局配置寄存器102,一个只读的厂商标识寄存器104,每个IPI命令端口(后面说明)一个的读和写处理器间中断(IPI)向量寄存器106,一个读和写的寄生向量寄存器108和一个读和写的处理器初始化寄存器110。全局寄存器组90是OpenPIC定义的并包含如下信息:
特征报告寄存器100:经该处理节点内的IPL码检测到的中断源的总数量以及用于该处理节点的支持处理器的总数量。
全局配置寄存器102:用于该处理节点的全局寄存器空间的基地址。
厂商标识寄存器104:标识含有IDU 19的集成电路芯片的厂商以及版本等级。
IPI向量寄存器106:用于该处理节点中的每个有关IPI寄存器的向量和优先级信息。
寄生向量寄存器108:当从一处理器接收中断确认并且该处理器不存在未决中断时回送的向量。
处理器初始化寄存器110:用于该处理节点中被支持的每个处理器的软件复位信号。
由于全局寄存器组90是由NUMA计算机系统6内的所有处理器10共享的,利用AIX操作系统的PAL层中的建立例程和处理例程以保持所有处理器节点8a-8n中的全局寄存器90之间的一致性。通过处理器10在它的局部互连16上启动N个独立的写事务,对除处理器初始化寄存器110之外的允许写的寄存器进行更新。本地存储器控制器17接收并服务指向本地IDU 19的写事务。通过本地节点控制器20把其余的写事务转发给其它处理节点8的互连控制器20,它们通过局部互连16转而把写事务发给各个相关的IDU 19。通过全局软件锁定调节对各全局寄存器组的访问,以确保任何时刻只有一个处理器10在更新全局寄存器组90。在更新全局寄存器组90期间,屏蔽所有中断直至在每个处理节点8处完成更新,以便避免发出带有陈旧设置的中断。从全局寄存器组90装入一个值只简单地需要对全局寄存器组90进行对本地拷贝的读,因为所有的全局寄存器组90是同步的。
仍参照图4,各处理器的寄存器组92包括M个寄存器组120,每组用于一个可由处理节点8支持的处理器10。各处理器的寄存器组92也是OpenPIC定义的,并且每个寄存器组120包括:一个读和写的当前任务优先级寄存器122,一个只读中断确认寄存器124以及一个只读的中断结束(EOI)寄存器126。如上面说明那样,可利用全局配置寄存器102中含有的基地址、处理器ID以及OpenPIC构建的偏移定位某具体处理器的寄存器组。各处理器的寄存器组120起如下作用:
当前任务优先级寄存器122:指示当未对中断服务下当前任务的相对任务优先级。为了对一处理器发出中断,其中断优先级必须高于该处理器的当前任务优先级。
中断确认寄存器124:当由软件读以确认中断时,硬件对相关的处理器提供未决中断的中断向量;若无未决的中断,会提供寄生中断向量。
中断结束(EOI)寄存器126:由软件写以便对发出EOI命令的处理器发出对服务中的最高中断的EOI。对一外部中断写EOI寄存器使存储器控制器17在局部互连上发出一个EOI中断事务。
每个IDU 19内的第三寄存器空间是一组为每一级IPI中断包括一个IPI命令寄存器的IPI命令寄存器133,在OpenPIC兼容系统中为四个寄存器。每个IPI命令寄存器133至少含有M个位,其中每个位位置对应于M个本地处理器10中之一的处理器ID。从而,如后面进一步讨论那样,对某IPI命令寄存器133内的一具体位位置写‘1’造成对规定的处理器10发出一个对应级上的IPI。中断处理软件在通用存储器空间中的主IPI命令寄存器组中集体地保存N组IPI命令寄存器133的状态。例如,若一示例NUMA计算机系统中的四个处理节点8中的每个节点最多支持8个处理器,所保持的4个IPI命令寄存器的主组可以每个寄存器具有32位,具中位0—7对应于处理节点0的处理器0—7,位8—15对应于处理节点1的处理器0—7,并类推。
除上面说明的全局寄存器90、各处理器的寄存器92和IPI命令寄存器133外,每个IDU 19还可包括全局时钟中断源组以及其它OpenPIC定义的或其它的寄存器。2.1.3中断源单元(ISU)的操作
现参照图5,其中描述依据本发明的ISU 28的操作的高层逻辑流程图。如所示,该过程响应ISU 28接收输入开始于框140并接着转到框142。若该输入是从总线(即,局部互连16或夹层总线30)接收的中断包,该过程进入后面说明的框152。然而,若该输入是一个外部中断(即,由某中断源断言一中断请求线路),该过程从框142转到框144,框144示出ISU 28访问适当的中断源配置寄存器72以对该中断分配一个级别。ISU 28接着通过参照中断源配置寄存器组72在框146判定当前是否屏蔽接收到的外部中断的级别上的中断,如上面所述,在任何给定时刻每个处理节点8内最多只有一个任何给定级别的中断是现用的。若接收到的外部中断的级别上的中断被屏蔽,ISU 28当前不采取进一步行动,并且该中断源必须继续断言该中断请求线路35或者晚些时候重新断言它。接着该过程返回到框142。然而,若在框146判定不屏蔽接收到的中断的级别上的中断,ISU 28经局部互连16(并可能通过夹层总线80)对本地IDU 19发出一个指示该中断的级别以及中断向量的中断包,如框150处所示。另外,ISU 28屏蔽接收到的中断的级别下的中断。该过程接着从框150返回到已说明过的框142。这样,除非如后面所说明使能中断沟道作用,通过其中出现该外部中断的处理节点8内的硬件向软件提交所有外部中断。
现参照框152,响应在总线上接收中断包,ISU 28判定在该中断包中规定的级别上是否有中断未决。若不,忽略将由一个不同ISU 28处理的该中断包,并且该过程返回到框142。若在框152判定该ISU28具有在该中断包中定义的中断级别上的未决的中断,则过程转到框160。框160描述判定已由ISU 28接收的总线中断事务是否是EOI或取消的中断事务。若是,该过程转到框162,框162表示ISU 28清除对该总线中断事务中规定的中断级别上的中断的屏蔽。接着该过程返回到上面已说明过的框142。
另一方面,若ISU 28在框160判定接收到的总线中断事务不是EOI或取消的中断事务,该过程进入框170,框170描述判定该总线中断事务是否是请求ISU 28在晚些时候重新发出一个规定级别上的中断的重新发出事务。若该总线中断包不是重新发出事务或其它定义的中断包,该过程进入框172,该框示出ISU 28执行适当的错误处理功能。然而,若该总线中断事务是重新发出事务,则该过程转到框174。框174描述ISU 28在如框150中示出重新对IDU 19发出该中断包之前等待一个取决于实现的时间间隔(例如,预定数量的时钟周期)。2.1.4中断目的地单元(IDU)的操作
现参照图6,其中示出IDU 19处理输入时的操作的高层逻辑流程图。如所示,响应IDU 19接收输入该过程开始于框180并且然后转到框182。框182表示IDU 19判定该输入是否是由某ISU 28发出的中断请求包。若不是,过程转到后面说明的框200。然而,若IDU 19接收的输入是由某ISU 28发出的中断请求包,过程转到框184,框184描述判定该中断请求包中规定的中断级别是否(1)大于目前不对中断服务的本地处理节点8中任何处理器10的当前任务优先级寄存器122中规定的优先级级别或者(2)足够高以从一处理器10的未决队列130中得到一个项。若不,过程转到框186。框186描述IDU 19在局部互连上发送一重新发出的中断包,其由一ISU 28接收并且如上面对图5说明那样处理。若未决队列130中的某中断所具有的级别低于新接收的中断的级别并且该未决队列130是满的,还可能必须如框188中描述那样类似地重新发出中断包,造成在有利于该新中断下从未决队列130中驱逐该未决中断。
在框184和188之后,过程转到框190,框190示出IDU 19断言在框184中该中断对其排列的处理器10的中断请求线路36。另外,如框192中所示,IDU 19为该中断的级别设置未决标志并且对相关的当前任务优先级寄存器122内的被中断处理器设置现用标志。接着过程返回到已说明过的框182。
回到框182,若IDU 19接收的输入不是中断请求包,IDU 19在框200判定接收到的输入事务是否是某本地处理器10在局部互连16上发送的用于确认接收中断的中断确认(ACK)事务。若不是,过程转到后面说明的框220。然而,若IDU 19接收的输入是中断确认事务,进程转到框202,框202描述IDU 19去断言中断请求线路36并且通过至少把该中断级别存储到一个服务队列项中把该未决中断从未决队列130送入该处理器的服务队列132。如框204中所示,IDU 19接着通过局部互连16向服务处理器10发送包含中断级别和中断向量的中断事务。若出于某原因,IDU 19在没有用于发送处理器10的未决中断时接收中断ACK事务,则对该处理器10提供寄生向量寄存器108中含有的寄生中断向量。过程然后返回到框182。
在对中断服务后,服务处理器10会对IDU 19发出一个中断结束(EOI)写事务,如图6中通过使过程从框182到框200到框220并再到框222所描述那样。框222示出IDU 19为EOI写事务中含有的中断级别清除未决标志。如框228处所示,IDU 19还对局部互连16发出一个EOI事务以清除源ISU 28的未决寄存器82中对该中断设置的位,如前面根据图5的框160和162讨论那样。如框224中所描述,若被中断处理器10的未决队列130中存在另一个中断,处理器10通知该排队的中断,如通过使过程转到已说明的框190所示那样。替代地,若该被中断的处理器10不再有未决的中断,IDU 19为被中断的处理器清除IDU 19上的现用标志,如框226处所示。然后过程返回框182。
仍参照图6,若IDU 19接收的输入事务不是中断请求、ACK事务或EOI事务,IDU 19在框240判定该输入事务是否是瞄向IPI命令寄存器133的写事务。若不是,过程转到框260—264,这些框示出IDU19在接收到的输入有效下进行其它处理并反之进行到合适的出错恢复活动。然而,若接收到的输入是瞄向IPI命令寄存器133的写事务,则ISU 19把该输入识别为用于IPI的触发器。
和上面讨论的外部中断不同,可由NUMA计算机系统6的任何处理器10生成IPI,并且IPI可以指向自己和/或NUMA计算机系统6中的一个或多个其它处理器10。为了在运行于不同处理器10上的进程之间异步传送消息,典型地采用这样的IPI。为了支持IPI,系统启动时执行的建立软件首先初始化四个被支持的IPI中的每个IPI的级别。接着,在NUMA计算机系统6的操作期间,源处理器10把一个或一组目标处理器选择为消息的受体,其中在该处理器的当前任务优先级寄存器122中指示每个目标处理器10的IPI阈值水平。源处理器10通过参照配置信息以及每个目标处理器10的IPI阈值水平确定使用什么样的IPI中断来中断选定的目标处理器(组)10。然后该源处理器10把该消息存储到可以利用和选定的IPI相关的IPI向量寄存器106予以访问的共享存储器单元。最后源处理器10向含有目标处理器8的每个处理节点8发出写事务,其中每个这样的写事务瞄向适当的IPI命令寄存器133。
如前面所讨论,该写事务正是IPU 19在图6的框240中译码的写事务。从框240,过程转到框242,框242示出判定指出的IPI命令寄存器133和什么样的优先级(级别)相关并且判定那些本地处理器10接收该级别的中断,例如借助参照IPI向量寄存器106。一旦确定本地目标处理器(组)10,IDU 19断言目标处理器(组)10的中断请求线路(组),为该IPI的中断级别设置未决标志并且为目标处理器(组)10设置现用标志,如框244和246中所示,然后过程返回框182。2.1.5中断沟道效应
对于NUMA计算机系统6的一些应用,在不增加NUMA计算机系统6的处理资源下添增一些资源,例如系统存储器18、I/O部件32或存储部件34,是有好处的。在这种情况下,最好是包括一个或多个不含有处理器10的节点8。然而,鉴于前面说明的把NUMA计算机系统6分割成按节点的中断域,需要某种在无处理器的节点8中处理中断源生成的外部中断的机制。依据本发明的一优选实施例,通过中断沟道效应实现对无处理器节点8生成的外部中断的处理。
为实现中断沟道效应,禁止本地IDU 19(若存在),并且把每个无处理节点8的节点控制器20置为转发方式,在转发方式下无处理器节点8的节点控制器20接收来自各本地ISU 28的中断包并且把这些中断包转发到指定的至少包括一个处理器10和一个IDU 19的“照管”节点8。这种转发方式例如可通过无处理器节点的系统控制区段70内一个方式寄存器控制,该方式寄存器在系统启动时由配置软件写并且它包括一个方式控制位和一个照管节点标识符。
响应接收在节点互连22上转发的中断事务,照管节点8的节点控制器20在它的局部互连16上运行中断事务。接着照管节点8处的IDU19认领中断包并把中断提交给本地处理器10以进行处理,如前面说明那样。照管节点8处的IDU 19生成的任何中断包还被发送到无处理器节点8处的各个源ISU 28。这样,利用中断沟道效应,在指定的照管节点8的中断域内包含远程无处理器节点8的各中断源和各ISU,并且利用处理照管节点8处生成的外部中断的相同类型的中断事务处理外部中断。通过节点互连22的点对点通信能力,可有利地在不妨碍域独立性下并发地存在多个“照管节点”“子节点”关系。
系统启动期间的中断沟道效应特殊情况称为中断漏斗效应。在中断漏斗效应下,NUMA计算机系统中的所有外部中断全都暂时指向第一个被配置的主处理器。在配置其余处理器并且从而它们能为中断服务后,进行中断域的分割。2.2中断软件
现参照图7,图中给出一个高层逻辑流程图,它示出用于配置依据本发明的中断资源的配置例程的一部分。如所描述,图7中示出的这部分的配置例程最好在初始加电自检和运行其它低层硬件初始化代码后开始于框300,并且接着进入框302。框302表示该配置例程确定NUMA计算机系统6的哪些节点8含有能生成外部中断的部件。接着在框304,该配置例程询问每个能产生外部中断的部件以确定每个这样的部件希望使用的中断级别。如果有的话,该配置例程解决各部件之间的冲突并且对部件的每个中断分配级别。过程从框304进入框310,框310描述该配置例程为每个有关的中断级别在通用存储器中建立一个数据结构,该数据结构所有能产生该中断级别的外部中断的部件、每个部件的节点ID以及每个部件的寄存器组的物理地址。取决于实现专用的细节,还可在每个数据结构内存储处理中断中使用的其它信息。
该配置例程接着配置每个节点8内的硬件,如框312—334中所描述。在该配置例程于框312选择一个节点8后,该配置例程判定该选定的节点8是否含有处理器10。若无,该配置例程如框330中所示通过禁止该选定节点8内的IDU 19实现中断沟道效应,并且例如对存储变换寄存器组写入值适当地配置ISU(组)28和节点控制器20。如上面所说明,节点控制器20的配置包括设定转发方式位和规定转发方式寄存器内的一个照管节点8。另外,配置寄存器最好把选定节点8的节点ID写入到节点控制器20的节点ID寄存器中。然后过程转到框334,框334描述该配置例程确定是否还有要配置的节点8。若有,过程回到框312,在框312配置寄存器选择下一个要处理的节点8。
再次参照框320,若该配置例程确定在框312选择的节点8含有处理器10,则进行转到框322。框322描述该配置例程配置该选定节点8内的处理器(组)10、IDU 19、ISU(组)28和节点控制器20。如所示,该配置最好包括把节点ID写入节点控制器20内的节点ID寄存器和把每个处理器自己的ID写入内部处理器ID寄存器。接着过程进入框334,并且若还有要处理的节点8,在框336继续其它建立和配置活动。
现参照图8,图中一高层逻辑流程图示出第一级中断处理器(FLIH)软件促进对IDU 19提交给处理器10的中断的服务的方式。如所示,响应IDU 19如前面根据图6讨论那样对一中断请求线路断言,该过程开始于框400。响应对该中断请求线路的断言,处理器10取异常并转移到第一级中断处理器,这开始于框402。框402示出处理器10在FLIH控制下运行,向IDU 19发送一个中断确认(ACK)事务以便获得该要服务的中断的中断级别和中断向量。FLIH还在框403判定该中断是IPI还是外部中断。若该中断是IPI,过程转到框405,框405表示服务处理器10从用于该规定的IPI级别的共享存储器单元读来自该中断处理器10的消息。接着过程进入后面说明的框40。
回到框403,响应确定提交给处理器10的中断为外部中断,该过程转到框404。在框404,FLIH屏蔽来自IDU 19的中断,若实施需要的话,并且得到对任何需要为该中断服务的专用中断资源的软件锁定。然后如框406中所示,FLIH把中断级别以及指向该中断级别的相关数据结构的指针传到第二级中断处理器(SLIH)。
如会由业内人士所理解,SLIH是执行为对特定部件产生的中断服务而需要的操作的中断处理例程。由于多个中断源可产生相同级别的中断,典型地把这些SLIH链接在一起以形成一个轮询链,从而当处理SLIH的轮询链时,该链中的每个SLIH查询它的关联部件(或部件组)以确定该部件是否是中断源,并且若是则执行为该中断服务所需的操作。本发明意识到中断处理等待时间重重地取决于轮询链的长度,而该长度进而取决于NUMA计算机系统中外部中断级别的数量以及潜在的中断源的数量。从而,若NUMA计算机系统6只具有16个外部中断级别并且NUMA计算机系统6内的潜在中断源的数量是大的,中断处理等待时间会是大的。为了提供改善的中断处理等待时间,本发明通过使一个或多个节点内的部件不作为中断源减少轮询链中的SLIH的数量。
在第一实施例中,通过由FLIH把中断级别变换到节点专用(或超集)中断级别减少轮询链中的SLIH的数量,其中节点专用中断级别是通过把接收中断的处理器10明白的在其上出现中断的节点ID和常规的中断级别相串接(或者相组合)形成的。每个这样的节点专用中断级别会具有一个由配置例程在存储器中建立的相关中断数据结构,其中该数据结构只列出该相关节点(即,中断域)内会产生该给定级别的外部中断的部件。从而,框406中对轮询链中的第一SLIH传送的中断级别会是节点专用中断级别,框406中提供给SLIH的指针会指向节点专用中断数据结构,并且轮询链会只包含和该节点专用中断数据结构中列出的部件相关的SLIH。该第一实施例的优点是可以在各中断服务资源不冲突下(或者必须得到对各中断服务资源锁定下)并发地在不同节点8内的处理器10上运行多个相同级别的中断处理程序,但是需要FLIH和各SLIH识别节点专用中断级别。
可替代地依据第二实施例减少轮询链中SLIH的数量,在该实施例中FLIH本身把中断数据结构的子集传送给SLIH,其中该子集中断数据结构只列出和向其提交该外部中断的处理器具有相同节点ID的部件。在不考虑别的节点处的部件下,各SLIH的轮询树大概会更短。这二种实施都可和前面说明的中断沟道效应一起使用,在这种情况下,供配置例程为一个中断域构建的数据结构会包含照管节点以及子节点内的部件。
在任何情况下,一旦控制传送到轮询链中的第一个SLIH,FLIH等待中断服务的完成,如框408中所示。重要的是,一旦把中断传送给SLIH的轮询链,操作系统可以调度这些SLIH以在NUMA计算机系统6中的任何处理器10上执行,并且可以响应负载平衡、数据相似性或者其它准则选择不同的处理器10执行。一旦完成和中断源相关的SLIH,控制返回到原始接收该中断的处理器10处的FLIH,该FLIH向规定该被服务中断的级别的IDU 19发出一个EOI事务,如框410中所示并如上面根据图6的框220所讨论那样。然后,该FLIH在框412终止。
如已经说明,本发明提供一种用于NUMA计算机系统的中断体系结构。该包括软硬件二种成分的中断体系结构可概括地说明为把NUMA计算机系统分割成多个外部中断域,从而总是把外部中断提交给在其中出现该中断的外部中断域内的一个处理器。尽管每个这样的外部中断域典型地只包括单个节点,可以实现中断沟道效应或中断漏斗效应以路由外部中断越过节点边界呈现给一处理器。一旦呈现给处理器,接着可以在该系统内的任何服务器上执行软件以为该外部中断服务。在现有技术方法相比,本发明的中断体系结构有利的通过减小中断处理器轮询链(树)的尺寸能使中断处理软件迅速地为外部中断服务。除外部中断外,本发明的中断体系结构支持处理器间的中断(IPI),借助于此任何处理器可中断自己或中断系统中的一个或多个其它处理器。本发明利用存储变换寄存器触发IPI,这促进IPI越过节点边界的传输并且允许简单地通过向每个包含着要中断的处理器的节点发送一个写事务触发多播IPI。重要的是,本发明的中断体系结构可很好地从含有几个节点的小NUMA计算机系统扩展到含有数百个节点的大系统。出于扩缩性还在每个节点内分布中断硬件,其中经共享通信通路(即,本地总线和互连)上传送的中断事务硬件成分彼此通信。
尽管根据OpenPIC兼容实施例说明了本发明,但应理解本发明不限于OpenPIC兼容系统。另外,尽管根据指向本发明的方法的计算机系统执行软件说明了本发明的各个方面,应理解本发明可替低地实现为和计算机系统一起使用的计算机系统。可通过信号承载介质向计算机系统提供定义本发明的各种功能的程序组,信号承载介质包括但不限于:不可写的存储介质(例如,CD-ROM)、可写的存储介质(例如,软盘、硬盘机、EEPROM)和诸如计算机及电话网的通信介质。从而应该理解,当带有或编码着指向本发明的各种功能的计算机可读指令时,这样的信号承载介质代表本发明的替代实施方式。
Claims (30)
1.一种数据处理系统,包括:
多个各包括多个互连处理节点中的至少一个节点的中断域,其中每个中断域包括至少一个能接收外部中断的处理器和至少一个能产生外部中断的中断源,所述多个中断域中的每个域具有各自的接收由所述至少一个中断源产生的外部中断并且把所述外部中断提交给所述至少一个处理器的中断硬件,其中所述至少一个处理器执行中断处理软件,所述中断处理软件既可对提交给和所述至少一个处理器在相同的中断域中的处理器的中断服务又可对提交给和所述至少一个处理器在不同的中断域中的处理器的中断服务。
2.权利要求1的数据处理系统,其中所述多个中断域中的每个域内的所述中断硬件包括一个只把中断提交给其中断域内的处理器的中断目的地单元以及至少一个接收来自各中断源的中断的中断源单元。
3.权利要求2的数据处理系统,其中所述中断目的地单元和所述中断源单元经共享的互连传递中断信息。
4.权利要求2的数据处理系统,其中对于所述多个中断域之中的至少一个中断域,至少一个中断源单元和所述中断目的地单元位于所述多个互连的处理节点中的不同的节点上。
5.权利要求4的数据处理系统,其中所述多个互连的处理节点中的所述含有所述至少一个中断源单元的节点不含有用于接收外部中断的处理器。
6.权利要求2的数据处理系统,其中所述多个中断域中的至少一个域包含多个中断源单元。
7.权利要求1的数据处理系统,其中每个中断域内的所述中断硬件含有一个用于在各中断域之间传递中断的可全局访问的存储变换寄存器。
8.权利要求7的数据处理系统,其中所述可全局访问的存储变换寄存器用于传递处理器间的中断。
9.权利要求7的数据处理系统,其中对每个所述中断域的所述可全局访问的存储变换寄存器分配一个各自的物理地址,并且每个中断域的可全局访问的存储变换寄存器的物理地址对分配给包含着所述可全局访问的变换寄存器的处理节点的存储器区具有统一偏移。
10.一种处理数据处理系统中的外部中断的方法,所述方法包括:
建立多个各包括多个互连处理节点中的至少一个节点的中断域,其中每个中断域包括至少一个能接收外部中断的处理器和至少一个的能产生外部中断的中断源,所述多个中断域中的每个域具有各自的中断硬件;
在所述多个中断域之中的一个具体中断域中,在所述中断硬件处接收由所述至少一个中断源产生的外部中断并且通过所述中断硬件把所述外部中断提交给所述至少一个处理器;
利用所述具体中断域的所述至少一个处理器执行中断处理软件,所述中断处理软件既可对提交给所述至少一个处理器的所述外部中断服务又可对提交给和所述具体中断域不同的所述多个中断域中的一个域内的处理器的外部中断服务。
11.权利要求10的方法,其中所述多个中断域中每个域内的所述中断硬件包括一个中断目的地单元和至少一个中断源单元,其中接收外部中断包括在所述至少一个中断源单元接收所述外部中断,并且其中提交所述外部中断包括利用所述中断目的地单元向所述至少一个处理器提交所述外部中断。
12.权利要求11的方法,还包括经共享的互连在所述中断目的地单元和所述中断源单元之间传递中断信息。
13.权利要求12的方法,其中对于所述多个中断域之中的至少一个中断域,经共享互连传递中断信息包括经互连所述多个处理节点中的至少二个的节点的共享互连传递中断信息。
14.权利要求13的方法,其中建立多个中断域包括建立至少一个其中所述多个互连的处理节点中的一个节点含有至少一个中断源单元但不含有用于接收外部中断的处理器的中断域。
15.权利要求11的方法,其中建立多个中断域包括在所述多个中断域中建立至少一个包含多个中断源单元的域。
16.权利要求10的方法,还包括利用所述中断硬件内的一个可全局访问的存储变换寄存器在各中断域之间传递中断。
17.权利要求16的方法,其中在各中断域之间传递中断包括在各种中断域之间传递处理器间的中断。
18.权利要求16的方法,还包括:
向每个所述中断域的所述可全局访问的存储变换寄存器分配一个各自的物理地址,其中每个中断域的可全局访问的存储变换寄存器的物理地址对分配给包含着所述可全局访问的存储变换寄存器的处理节点的存储器区具有统一偏移。
19.一种处理包含着多个互连节点的数据处理系统内的中断的方法,其中所述多个互连节点中的每个节点包含一个产生中断的部件并且多个节点中的各个部件能产生相同级别的中断,所述方法包括:
响应对进行服务的一处理器提交一中断,其中所述中断具有一个级别,得到能够产生所述级别的中断的部件的列表;以及
只轮询所述列表中的和所述处理器位于同一个中断域内的部件以识别所述列表中的哪个部件产生所述中断。
20.权利要求19的方法,还包括然后执行和所述识别的部件相关的一个中断处理器。
21.权利要求19的方法,还包括:
在提交所述中断之前,在可由所述多个互连节点中的所有节点访问的全局存储器空间中建立和存储所述列表。
22.权利要求21的方法,其中所述列表只包含单个中断域内的部件。
23.一种数据处理系统,包括:
多个互连的节点,其中所述多个互连节点中的每个节点包含一个产生中断的部件并且多个节点中的各个部件能产生相同级别的中断,其中所述多个互连节点中的至少一个的节点包含一个处理器;以及
存储在所述数据处理系统内的并可由所述处理器执行的中断处理器软件,其中响应向所述处理器提交具有一级别的中断,所述中断处理器软件得到能够产生所述级别的中断的部件的列表并且只轮询所述列表中的和所述处理器位于同一个中断域内的部件以识别所述列表中的哪个部件产生所述中断。
24.权利要求23的数据处理系统,其中所述中断处理器软件是第一级中断处理器,所述数据处理系统还包括存储在所述数据处理系统内的并可由所述处理器执行的第二级中断处理器,其中所述第二级中断处理器和所述部件相关,并且其中所述第一级中断处理器调用所述第二级中断处理器以服务所述识别的部件。
25.权利要求23的数据处理系统还包括一个可由所有的所述多个互连节点访问的全局存储存空间,其中在提交所述中断之前把所述列表存储在所述全局存储器空间中。
26.权利要求25的数据处理系统,其中所述列表只包含单个中断域内的部件。
27.一种供包含着多个互连节点的数据处理系统使用的程序产品,其中所述多个互连节点中的每个节点包含一个产生中断的部件并且多个节点中的各个部件能产生相同级别的中断,其中所述多个互连节点中的至少一个节点包含一个处理器,所述程序产品包括:
一个计算机可用的介质;以及
在所述计算机可用介质内编码的并可由该数据处理系统执行的中断处理器软件,其中响应向所述处理器提交具有一级别的中断,所述中断处理器软件得到能够产生所述级别的中断的部件的列表并且只轮询所述列表中的和所述处理器位于同一中断域内的部件以识别所述列表中的哪个部件产生所述中断。
28.权利要求28的程序产品,其中所述中断处理器软件是第一级中断处理器,所述程序产品还包括在所述计算机可用介质内编码的第二级中断处理器,其中所述第二级中断处理器和所述部件相关,并且其中所述第一级中断处理器调用所述第二级中断处理器以服务所述识别的部件。
29.权利要求27的程序产品还包括一个利用所述计算机可用介质编码的配置例程,在提交所述中断之前该例程在可由所有的所述多个节点访问的全局存储器空间中建立所述列表。
30.权利要求29的程序产品,其中所述配置例程在所述列表中只包含单个中断域内的部件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/213,998 | 1998-12-17 | ||
US09/213,998 US6148361A (en) | 1998-12-17 | 1998-12-17 | Interrupt architecture for a non-uniform memory access (NUMA) data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1330782A true CN1330782A (zh) | 2002-01-09 |
CN1128406C CN1128406C (zh) | 2003-11-19 |
Family
ID=22797380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN99814454A Expired - Fee Related CN1128406C (zh) | 1998-12-17 | 1999-11-30 | 数据处理系统及其中断处理方法 |
Country Status (13)
Country | Link |
---|---|
US (1) | US6148361A (zh) |
EP (1) | EP1141829B1 (zh) |
JP (1) | JP3606551B2 (zh) |
KR (1) | KR100457146B1 (zh) |
CN (1) | CN1128406C (zh) |
AT (1) | ATE232313T1 (zh) |
AU (1) | AU1397600A (zh) |
CA (1) | CA2349662C (zh) |
CZ (1) | CZ20012154A3 (zh) |
DE (1) | DE69905287T2 (zh) |
HU (1) | HUP0104536A3 (zh) |
PL (1) | PL348253A1 (zh) |
WO (1) | WO2000036505A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100397375C (zh) * | 2005-12-02 | 2008-06-25 | 北京中星微电子有限公司 | 多中断处理单元的中断处理的装置和方法 |
CN102077181A (zh) * | 2008-04-28 | 2011-05-25 | 惠普开发有限公司 | 用于在多核处理器中和在某些共享存储器多处理器系统中产生并输送处理器间中断的方法和系统 |
CN108549578A (zh) * | 2017-12-25 | 2018-09-18 | 贵阳忆芯科技有限公司 | 一种中断聚合装置及其方法 |
CN110832459A (zh) * | 2017-07-13 | 2020-02-21 | 日立汽车系统株式会社 | 车辆控制装置 |
WO2022036536A1 (en) * | 2020-08-18 | 2022-02-24 | Intel Corporation | Improving memory training performance by utilizing compute express link (cxl) device-supported memory |
CN117311833A (zh) * | 2023-11-29 | 2023-12-29 | 苏州元脑智能科技有限公司 | 一种存储控制方法、装置、电子设备及可读存储介质 |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6151688A (en) * | 1997-02-21 | 2000-11-21 | Novell, Inc. | Resource management in a clustered computer system |
US6546429B1 (en) * | 1998-09-21 | 2003-04-08 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that holds and reissues requests at a target processing node in response to a retry |
FR2792087B1 (fr) * | 1999-04-07 | 2001-06-15 | Bull Sa | Procede d'amelioration des performances d'un systeme multiprocesseur comprenant une file d'attente de travaux et architecture de systeme pour la mise en oeuvre du procede |
US6421775B1 (en) * | 1999-06-17 | 2002-07-16 | International Business Machines Corporation | Interconnected processing nodes configurable as at least one non-uniform memory access (NUMA) data processing system |
US6339832B1 (en) * | 1999-08-31 | 2002-01-15 | Accenture Llp | Exception response table in environment services patterns |
US6615253B1 (en) | 1999-08-31 | 2003-09-02 | Accenture Llp | Efficient server side data retrieval for execution of client side applications |
US6640244B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Request batcher in a transaction services patterns environment |
US6715145B1 (en) | 1999-08-31 | 2004-03-30 | Accenture Llp | Processing pipeline in a base services pattern environment |
US6571282B1 (en) | 1999-08-31 | 2003-05-27 | Accenture Llp | Block-based communication in a communication services patterns environment |
US6742015B1 (en) | 1999-08-31 | 2004-05-25 | Accenture Llp | Base services patterns in a netcentric environment |
US6636242B2 (en) | 1999-08-31 | 2003-10-21 | Accenture Llp | View configurer in a presentation services patterns environment |
US6601234B1 (en) | 1999-08-31 | 2003-07-29 | Accenture Llp | Attribute dictionary in a business logic services environment |
US6640238B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Activity component in a presentation services patterns environment |
US6502213B1 (en) * | 1999-08-31 | 2002-12-31 | Accenture Llp | System, method, and article of manufacture for a polymorphic exception handler in environment services patterns |
US6640249B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Presentation services patterns in a netcentric environment |
US6578068B1 (en) | 1999-08-31 | 2003-06-10 | Accenture Llp | Load balancer in environment services patterns |
US6601192B1 (en) | 1999-08-31 | 2003-07-29 | Accenture Llp | Assertion component in environment services patterns |
US6549949B1 (en) | 1999-08-31 | 2003-04-15 | Accenture Llp | Fixed format stream in a communication services patterns environment |
US6430643B1 (en) * | 1999-09-02 | 2002-08-06 | International Business Machines Corporation | Method and system for assigning interrupts among multiple interrupt presentation controllers |
US6591348B1 (en) * | 1999-09-09 | 2003-07-08 | International Business Machines Corporation | Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system |
US6564277B1 (en) * | 1999-09-30 | 2003-05-13 | Silicon Graphics, Inc. | Method and system for handling interrupts in a node controller without attached processors |
US6529999B1 (en) * | 1999-10-27 | 2003-03-04 | Advanced Micro Devices, Inc. | Computer system implementing system and method for ordering write operations and maintaining memory coherency |
US6591307B1 (en) * | 1999-11-09 | 2003-07-08 | International Business Machines Corporation | Multi-node data processing system and method of queue management in which a queued operation is speculatively cancelled in response to a partial combined response |
US6799317B1 (en) * | 2000-06-27 | 2004-09-28 | International Business Machines Corporation | Interrupt mechanism for shared memory message passing |
US6826619B1 (en) | 2000-08-21 | 2004-11-30 | Intel Corporation | Method and apparatus for preventing starvation in a multi-node architecture |
US6487643B1 (en) | 2000-09-29 | 2002-11-26 | Intel Corporation | Method and apparatus for preventing starvation in a multi-node architecture |
US6772298B2 (en) | 2000-12-20 | 2004-08-03 | Intel Corporation | Method and apparatus for invalidating a cache line without data return in a multi-node architecture |
US7234029B2 (en) * | 2000-12-28 | 2007-06-19 | Intel Corporation | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture |
US6791412B2 (en) | 2000-12-28 | 2004-09-14 | Intel Corporation | Differential amplifier output stage |
US6721918B2 (en) | 2000-12-29 | 2004-04-13 | Intel Corporation | Method and apparatus for encoding a bus to minimize simultaneous switching outputs effect |
TW499795B (en) * | 2001-03-19 | 2002-08-21 | Realtek Semiconductor Corp | PCI extended function interface and the PCI device using the same |
US20020178313A1 (en) * | 2001-03-30 | 2002-11-28 | Gary Scott Paul | Using software interrupts to manage communication between data processors |
US6775730B2 (en) * | 2001-04-18 | 2004-08-10 | Sony Corporation | System and method for implementing a flexible interrupt mechanism |
JP3807250B2 (ja) * | 2001-05-18 | 2006-08-09 | 日本電気株式会社 | クラスタシステム、コンピュータ及びプログラム |
US6988155B2 (en) * | 2001-10-01 | 2006-01-17 | International Business Machines Corporation | Aggregation of hardware events in multi-node systems |
US6968411B2 (en) * | 2002-03-19 | 2005-11-22 | Intel Corporation | Interrupt processing apparatus, system, and method |
US7130948B2 (en) * | 2002-08-02 | 2006-10-31 | Bian Qiyong B | Flexible interrupt handling methods for optical networking apparatuses with multiple multi-protocol optical networking modules |
US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
US8984199B2 (en) * | 2003-07-31 | 2015-03-17 | Intel Corporation | Inter-processor interrupts |
US7529875B2 (en) * | 2003-08-20 | 2009-05-05 | International Business Machines Corporation | Assigning interrupts for input/output (I/O) devices among nodes of a non-uniform memory access (NUMA) system |
US7117285B2 (en) * | 2003-08-29 | 2006-10-03 | Sun Microsystems, Inc. | Method and system for efficiently directing interrupts |
US20050198421A1 (en) * | 2004-03-08 | 2005-09-08 | Nalawadi Rajeev K. | Method to execute ACPI ASL code after trapping on an I/O or memory access |
DE602004007489D1 (de) * | 2004-05-11 | 2007-08-23 | Sgs Thomson Microelectronics | Unterbrechungsbehandlungssystem |
US20050283554A1 (en) * | 2004-06-22 | 2005-12-22 | General Electric Company | Computer system and method for queuing interrupt messages in a device coupled to a parallel communication bus |
TWI256591B (en) * | 2004-08-11 | 2006-06-11 | Benq Corp | Method of reducing interrupts |
US7386642B2 (en) * | 2005-01-28 | 2008-06-10 | Sony Computer Entertainment Inc. | IO direct memory access system and method |
US7680972B2 (en) * | 2005-02-04 | 2010-03-16 | Sony Computer Entertainment Inc. | Micro interrupt handler |
JP2006216042A (ja) * | 2005-02-04 | 2006-08-17 | Sony Computer Entertainment Inc | 割り込み処理のためのシステムおよび方法 |
JP4441592B2 (ja) * | 2006-02-16 | 2010-03-31 | セイコーエプソン株式会社 | 並列処理装置及び排他制御方法 |
US7424563B2 (en) * | 2006-02-24 | 2008-09-09 | Qualcomm Incorporated | Two-level interrupt service routine |
JP4971676B2 (ja) * | 2006-04-28 | 2012-07-11 | ルネサスエレクトロニクス株式会社 | 割り込み制御回路及び割り込み制御方法 |
US20080086575A1 (en) * | 2006-10-06 | 2008-04-10 | Annie Foong | Network interface techniques |
JP2008192128A (ja) * | 2007-01-11 | 2008-08-21 | Sony Corp | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
US8645668B2 (en) | 2007-01-11 | 2014-02-04 | Sony Corporation | Information processing apparatus, information processing method and computer program |
US8296490B2 (en) | 2007-06-29 | 2012-10-23 | Intel Corporation | Method and apparatus for improving the efficiency of interrupt delivery at runtime in a network system |
US8332595B2 (en) * | 2008-02-19 | 2012-12-11 | Microsoft Corporation | Techniques for improving parallel scan operations |
US8024504B2 (en) * | 2008-06-26 | 2011-09-20 | Microsoft Corporation | Processor interrupt determination |
US20090327556A1 (en) * | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Processor Interrupt Selection |
US7996497B2 (en) | 2008-06-30 | 2011-08-09 | International Business Machines Corporation | Method of handling duplicate or invalid node controller IDs in a distributed service processor environment |
US7996548B2 (en) | 2008-12-30 | 2011-08-09 | Intel Corporation | Message communication techniques |
US8645596B2 (en) * | 2008-12-30 | 2014-02-04 | Intel Corporation | Interrupt techniques |
US8140817B2 (en) * | 2009-02-24 | 2012-03-20 | International Business Machines Corporation | Dynamic logical partition management for NUMA machines and clusters |
US7996595B2 (en) * | 2009-04-14 | 2011-08-09 | Lstar Technologies Llc | Interrupt arbitration for multiprocessors |
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 |
US8478877B2 (en) * | 2010-02-24 | 2013-07-02 | Oracle International Corporation | Architecture-aware allocation of network buffers |
US8738860B1 (en) * | 2010-10-25 | 2014-05-27 | Tilera Corporation | Computing in parallel processing environments |
CN105302577B (zh) * | 2015-11-26 | 2019-05-07 | 上海兆芯集成电路有限公司 | 驱动执行单元的机器码产生方法以及装置 |
EP3286637B1 (en) * | 2016-02-04 | 2023-04-05 | Hewlett Packard Enterprise Development LP | Memory register interrupt based signaling and messaging |
US10496572B1 (en) * | 2017-03-06 | 2019-12-03 | Apple Inc. | Intracluster and intercluster interprocessor interrupts including a retract interrupt that causes a previous interrupt to be canceled |
US10838760B2 (en) * | 2017-11-29 | 2020-11-17 | Nxp Usa, Inc. | Systems and methods for interrupt distribution |
US11611617B2 (en) * | 2019-06-16 | 2023-03-21 | Purdue Research Foundation | Distributed data store with persistent memory |
US11556485B1 (en) | 2021-08-31 | 2023-01-17 | Apple Inc. | Processor with reduced interrupt latency |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4276594A (en) * | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
US4769768A (en) * | 1983-09-22 | 1988-09-06 | Digital Equipment Corporation | Method and apparatus for requesting service of interrupts by selected number of processors |
US4914571A (en) * | 1987-06-15 | 1990-04-03 | International Business Machines Corporation | Locating resources in computer networks |
JP2855298B2 (ja) * | 1990-12-21 | 1999-02-10 | インテル・コーポレーション | 割込み要求の仲裁方法およびマルチプロセッサシステム |
EP0602858A1 (en) * | 1992-12-18 | 1994-06-22 | International Business Machines Corporation | Apparatus and method for servicing interrupts in a multiprocessor system |
CA2123447C (en) * | 1993-09-20 | 1999-02-16 | Richard L. Arndt | Scalable system interrupt structure for a multiprocessing system |
US5568644A (en) * | 1995-05-05 | 1996-10-22 | Apple Computer, Inc. | Method and apparatus using a tree structure for the dispatching of interrupts |
US5606703A (en) * | 1995-12-06 | 1997-02-25 | International Business Machines Corporation | Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures |
-
1998
- 1998-12-17 US US09/213,998 patent/US6148361A/en not_active Expired - Fee Related
-
1999
- 1999-11-30 CN CN99814454A patent/CN1128406C/zh not_active Expired - Fee Related
- 1999-11-30 PL PL99348253A patent/PL348253A1/xx unknown
- 1999-11-30 DE DE69905287T patent/DE69905287T2/de not_active Expired - Lifetime
- 1999-11-30 HU HU0104536A patent/HUP0104536A3/hu unknown
- 1999-11-30 WO PCT/GB1999/003988 patent/WO2000036505A1/en active IP Right Grant
- 1999-11-30 CA CA002349662A patent/CA2349662C/en not_active Expired - Fee Related
- 1999-11-30 EP EP99973434A patent/EP1141829B1/en not_active Expired - Lifetime
- 1999-11-30 CZ CZ20012154A patent/CZ20012154A3/cs unknown
- 1999-11-30 KR KR10-2001-7006770A patent/KR100457146B1/ko not_active IP Right Cessation
- 1999-11-30 AU AU13976/00A patent/AU1397600A/en not_active Abandoned
- 1999-11-30 AT AT99973434T patent/ATE232313T1/de not_active IP Right Cessation
- 1999-11-30 JP JP34017199A patent/JP3606551B2/ja not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100397375C (zh) * | 2005-12-02 | 2008-06-25 | 北京中星微电子有限公司 | 多中断处理单元的中断处理的装置和方法 |
CN102077181A (zh) * | 2008-04-28 | 2011-05-25 | 惠普开发有限公司 | 用于在多核处理器中和在某些共享存储器多处理器系统中产生并输送处理器间中断的方法和系统 |
CN110832459A (zh) * | 2017-07-13 | 2020-02-21 | 日立汽车系统株式会社 | 车辆控制装置 |
CN110832459B (zh) * | 2017-07-13 | 2023-12-15 | 日立安斯泰莫株式会社 | 车辆控制装置 |
CN108549578A (zh) * | 2017-12-25 | 2018-09-18 | 贵阳忆芯科技有限公司 | 一种中断聚合装置及其方法 |
WO2022036536A1 (en) * | 2020-08-18 | 2022-02-24 | Intel Corporation | Improving memory training performance by utilizing compute express link (cxl) device-supported memory |
CN117311833A (zh) * | 2023-11-29 | 2023-12-29 | 苏州元脑智能科技有限公司 | 一种存储控制方法、装置、电子设备及可读存储介质 |
CN117311833B (zh) * | 2023-11-29 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种存储控制方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR100457146B1 (ko) | 2004-11-16 |
CA2349662A1 (en) | 2000-06-22 |
AU1397600A (en) | 2000-07-03 |
DE69905287T2 (de) | 2003-10-30 |
CA2349662C (en) | 2003-02-18 |
CZ20012154A3 (cs) | 2001-09-12 |
CN1128406C (zh) | 2003-11-19 |
DE69905287D1 (de) | 2003-03-13 |
EP1141829B1 (en) | 2003-02-05 |
HUP0104536A3 (en) | 2002-08-28 |
US6148361A (en) | 2000-11-14 |
HUP0104536A2 (hu) | 2002-03-28 |
KR20010087404A (ko) | 2001-09-15 |
JP3606551B2 (ja) | 2005-01-05 |
EP1141829A1 (en) | 2001-10-10 |
WO2000036505A1 (en) | 2000-06-22 |
JP2000181886A (ja) | 2000-06-30 |
ATE232313T1 (de) | 2003-02-15 |
PL348253A1 (en) | 2002-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1128406C (zh) | 数据处理系统及其中断处理方法 | |
CN100345124C (zh) | 利用共享专用高速缓存减少高速缓存失误率的方法和系统 | |
US9336168B2 (en) | Enhanced I/O performance in a multi-processor system via interrupt affinity schemes | |
US8850081B2 (en) | Method, system and apparatus for handling events for partitions in a socket with sub-socket partitioning | |
JP4567125B2 (ja) | データ・ストレージとデータ処理システムにおける書き込みキャッシュデータの転送方法及びその装置 | |
CN1786927B (zh) | 应用层高速缓存映像知晓和再分配的系统和方法 | |
CN102365625B (zh) | 用于虚拟机的虚拟非一致存储器体系结构 | |
CN1274123A (zh) | 分区系统的带有动态配置的外围元件互联槽控制装置 | |
US20090055831A1 (en) | Allocating Network Adapter Resources Among Logical Partitions | |
US7797588B2 (en) | Mechanism to provide software guaranteed reliability for GSM operations | |
TW457437B (en) | Interconnected processing nodes configurable as at least one non-uniform memory access (NUMA) data processing system | |
JPH1097490A (ja) | スケーラブル対称型マルチプロセッサにおいてバス幅またはバス・プロトコルを変更せずに割り込みを分散する方法および装置 | |
JP2000090061A (ja) | 並列処理コンピュ―タ・システムにおけるデ―タ通信方法 | |
US7739451B1 (en) | Method and apparatus for stacked address, bus to memory data transfer | |
CN101566976B (zh) | 信息处理装置和信息处理方法 | |
CN101421791B (zh) | 用于主机和外围设备之间通信的队列深度管理的方法 | |
US20060085573A1 (en) | Multi-context selection with PCI express to support hardware partitioning | |
CN1426560A (zh) | 具有不同资源访问方案的系统集成代理程序 | |
WO2000028418A1 (en) | Scheduling resource requests in a computer system | |
WO2001016761A2 (en) | Efficient page allocation | |
JP4963855B2 (ja) | ネットワークコンピューティングシステムおよびマルチプロセッサコンピュータ | |
JPH06324996A (ja) | 集積回路およびプログラマブル・マルチ・プロセッサ割り込みコントローラ・システム | |
JP2007264885A (ja) | マルチプロセッサコンピュータおよびネットワークコンピューティングシステム | |
US20210373926A1 (en) | Resource use method, electronic device, and computer program product | |
CN113176950B (zh) | 报文处理方法、装置、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
C10 | Entry into substantive examination | ||
PB01 | Publication | ||
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: 20031119 Termination date: 20091230 |