CN107533458A - 基于存储器寄存器中断的信令和消息传递 - Google Patents

基于存储器寄存器中断的信令和消息传递 Download PDF

Info

Publication number
CN107533458A
CN107533458A CN201680022778.XA CN201680022778A CN107533458A CN 107533458 A CN107533458 A CN 107533458A CN 201680022778 A CN201680022778 A CN 201680022778A CN 107533458 A CN107533458 A CN 107533458A
Authority
CN
China
Prior art keywords
register
memory
receiver
node
status register
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.)
Pending
Application number
CN201680022778.XA
Other languages
English (en)
Inventor
J.陶里赫斯
M.施兰斯克
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN107533458A publication Critical patent/CN107533458A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

在示例中,基于存储器寄存器中断的信令和消息传递可以包括:在接收器的控制寄存器处从发送器接收信号号码;以及由接收器的存储器寄存器中断管理设备将该信号号码复制到该接收器的相关联的状态寄存器。此外,基于存储器寄存器中断的信令和消息传递可以包括:与来自状态寄存器的信号号码无关地生成到接收器的中央处理单元的中断;以及基于该中断来触发接收器的中断处置器以执行与该信号号码相关联的动作。

Description

基于存储器寄存器中断的信令和消息传递
背景技术
消息传递可以允许实体交换信息。消息可以被描述为从发送器到接收器的一片数据。消息的示例可以包括电子邮件。接收器可以定义队列,传入消息可以在该队列中排队。当发送器向接收器发送消息时,发送器可以通过介质来发射消息,并且消息可以在接收器的队列中排队。接收器可以检查队列,并从队列中检索消息。就这一点而言,可以使用信令以例如经由通知来向接收器告知消息正在队列中等待。
附图说明
本公开的特征是作为示例而图示的,而不局限于以下(一个或多个)附图中,在附图中,相似的标号指示相似的元件,其中:
图1图示出根据本公开的示例的基于存储器寄存器中断的信令和消息传递装置;
图2图示出根据本公开的示例的用于图1的基于存储器寄存器中断的信令和消息传递装置的环境;
图3图示出根据本公开的示例的用于基于存储器寄存器中断的信令和消息传递的方法的流程图;以及
图4图示出根据本公开的示例的计算机***。
具体实施方式
出于简明和说明性目的,通过主要参考示例来描述本公开。在以下描述中,阐述了众多具体细节以便提供对本公开的透彻理解。然而将显而易见的是,可以在不限于这些具体细节的情况下实践本公开。在其它实例中,没有详细描述一些方法和结构,以便不会不必要地使本公开模糊不清。
遍及本公开,术语“一”和“一个”意图标示至少一个特定元件。如本文中使用的,术语“包括”意指包括但不限于,术语“包含”意指包含但不限于。术语“基于”意指至少部分地基于。
关于消息传递,中断可以被描述为提供输入/输出(I/O)设备或***设备以向中央处理单元(CPU)发送信号的设施。I/O总线(诸如***组件互连(PCIe))可以定义中断设施,并承载标识该中断的源的多个分离的中断向量号码。需要信令的每个I/O设备可以被指派有中断向量号码。用于I/O设备的设备驱动器可以将中断处置器附接到该设备驱动器被指派给的中断向量号码,其中中断处置器是处置信号且对信号作出响应的操作***(OS)内核中的一组机器可读指令。当I/O设备需要通过CPU进行的维修时,I/O设备可以在I/O总线上向CPU发送中断,CPU可以停止正由CPU执行的过程并且CPU可以执行相关联的中断处置器。
用于中断的向量号码可以标识该中断的源。中断可以包括消息信号通知的中断,其中在包括中断向量号码的总线上作为命令而承载中断。在接收到中断时,中断处置器可以处理与该中断相关联的多个事件。例如,如果该中断与队列相关联,则中断处置器可以移除相关联的队列中的多个项目。中断可以包括由CPU外部的设备生成的硬件中断以及由CPU上的机器可读指令生成的陷阱(或“基于机器可读指令的中断”)。
在计算机***中,消息传递可以例如经由CPU指令而被实现为机器可读指令。在存储器消息传递中,可以使用存储器写入和读取操作来实现入队和出队操作。在多处理器***中,消息传递可以依赖于底层存储器和高速缓存一致性以维持消息队列跨处理器的一贯性。
关于用于存储器消息传递的信令,对接收队列进行轮询可能引入与在以高速率执行时的CPU开销或者在以低速率执行轮询的情况下消息递送的相对高等待时间有关的技术挑战。此外,用于存储器消息传递的信令可能一般不使用硬件中断或陷阱,这是由于这样做可能引入与基于有限数目的信号的灵活性和基于附加复杂度的性能有关的技术挑战。
为了解决关于信令和消息传递的实现的上文提到的技术挑战,本文中公开了基于存储器寄存器中断的信令和消息传递装置以及用于基于存储器寄存器中断的信令和消息传递的方法。
本文中公开的装置和方法可以适用于多种环境,诸如计算机***或包括多个节点的***(后文中标示为“基于节点的***”)。就这一点而言,该装置和方法的示例在本文中是关于基于节点的***而公开的,但一般也可以适用于计算机***和其它此类***。
针对基于节点的***,如本文中公开的那样,每个节点可以作为计算机来操作,并且每个节点可以包括其自身的操作***和与所有处理器核一致的本地存储器域。每个节点可以包括其自身的电源和其自身的故障域,以使得如果一个节点失效或被关闭,则该节点将不会直接影响其它节点。此外,每个节点可以包括其自身的分离的内核,其中信令和消息传递可以不使用该内核中的公共队列,而是取而代之,可以在节点之间直接执行信令和消息传递。
针对基于节点的***,如本文中公开的那样,节点可以使用高速存储器结构而连接。高速存储器结构的示例可以包括针对基于节点的***而开发的下一代存储器互连(NGMI)或其它此类存储器结构。存储器结构可以将不同处理器连接到大的全局存储器池。存储器结构可以支持全局存储器上的存储器操作。存储器结构接口可以将节点连接到该结构的其余部分和其它节点,并且在NGMI的情况下,存储器结构接口可以被标示为Z-BRIDGE。
针对基于节点的***,如本文中公开的那样,本文中公开的装置和方法可以提供用于实现信令和消息传递的一组存储器中断构造。就这一点而言,针对本文中公开的装置和方法,可以使用存储器寄存器来实现信令和消息传递。针对基于节点的***,该组存储器中断构造可以提供一个节点以向另一个节点发送中断。就这一点而言,这样的跨节点中断可以用于多种信令目的。
针对本文中公开的装置和方法,存储器寄存器中断可以通过远程节点写入I/O空间中的特定存储器寄存器而触发,这导致向本地CPU递送中断。本文中公开的装置和方法可以利用结构命令和接收器节点存储器空间中的一组存储器I/O寄存器。当写入一存储器位置时,生成到接收器节点的本地CPU之一的中断。
针对本文中公开的装置和方法,存储器寄存器中断管理设备可以被描述为虚拟I/O设备。存储器寄存器中断管理设备可以管理存储器寄存器中断,且被映射到接收器节点的本地存储器中。存储器寄存器中断管理设备可以通过I/O总线向接收器节点的中断控制器发送中断。存储器寄存器中断管理设备可以是多功能I/O设备,且可以映射到多个硬件中断向量。每个硬件中断向量可以由用于接收器节点的特定位置处的存储器中的一对寄存器(即,如本文中公开的那样,状态寄存器和控制寄存器)来表示。寄存器可以是被映射到接收器节点的本地存储器空间中(例如,I/O空间中)的存储器,且通过存储器结构而被暴露以允许被其它节点远程访问。远程节点可以经由存储器结构写入到接收器节点的控制寄存器。
针对本文中公开的装置和方法,每对寄存器可以包括控制寄存器和状态寄存器,并且寄存器可以被配置有硬件中断向量。控制寄存器可以由各种发送器使用,并且状态寄存器可以由接收器节点使用。当写入到控制寄存器时,存储器寄存器中断管理设备可以更新状态寄存器并生成中断,其中硬件中断向量是与寄存器位置相关联的号码。
针对本文中公开的装置和方法,可以使用单个寄存器,其将充当用于写入的控制寄存器和用于读取的状态寄存器二者。然而,使用两个寄存器可以减少存储器争用且可以用于高速缓存优化。控制和状态寄存器可以处于分离的高速缓存线路中。
针对本文中公开的装置和方法,存储器中断可以承载信号号码,其中信号号码可以由发送器节点在控制寄存器中写入且由接收器节点在状态寄存器中读取。信号号码可以被直接映射到硬件中断向量(然而,硬件中断向量的数目可能是有限的)。因此,针对本文中公开的装置和方法,可以每寄存器位置使用单个硬件中断向量,并且可以针对每个硬件中断向量执行信号号码的解复用。这些方面可以提供***的可扩缩性的增加并允许存储器中断的适当虚拟化。
针对本文中公开的装置和方法,可以在不修改存储器模型(线性字节阵列)、结构命令或CPU指令集(读取、写入和原子指令)的情况下在接收Z桥中实现存储器寄存器中断。此外,可以支持多种存储器位置,因此该实现更加可扩缩并且可以定义更多的中断向量号码。
针对本文中公开的装置和方法,可能不需要计及Z桥中的每个写入。例如,寄存器(即,如本文中公开的那样,状态寄存器和控制寄存器)可以在存储器层级中嵌套,用于寄存器的地址范围可以在用于路由存储器请求的现有地址选择树的树叶处,并且,可以向存储器寄存器中断管理设备告知目的地为该存储器寄存器中断管理设备的写入请求。就这一点而言,可以隐藏硬件中断向量不让发送器节点发现,并且可以将所选数目的硬件中断向量映射到不同存储器寄存器对,从而提供中断设施的增加的保护。本文中公开的装置和方法可以支持信号号码以促进可扩缩性。
针对本文中公开的装置和方法,存储器寄存器中断可以例如通过提供消息传递以选择性地使用轮询、以最小化针对不频繁消息的等待时间并且通过避免轮询开销(例如,关于中断减轻)来提供与性能有关的益处。存储器寄存器中断可以被实现成适应于存储器结构的现有存储器模型。此外,接收器节点可以定义如所需要的那样多的存储器中断,并且在包括信号号码的情况下,可以支持相对大数目的分离信号。
根据示例,基于存储器寄存器中断的信令和消息传递装置可以包括接收器的控制寄存器,用以从发送器接收信号号码或包括一组信号号码的位掩码。针对信号号码,存储器寄存器中断管理设备可以将信号号码复制到接收器的相关联的状态寄存器,并与来自状态寄存器的信号号码无关地生成到接收器的CPU的中断。针对包括该组信号号码的位掩码,存储器寄存器中断管理设备可以将位掩码与相关联的状态寄存器的值进行组合,并将组合的结果写入状态寄存器和控制寄存器中,并与状态寄存器的内容无关地生成到CPU的中断。
根据示例,针对信号号码,存储器寄存器中断管理设备可以基于硬件中断向量来生成中断,将包括状态寄存器的高速缓存线路注入到CPU的高速缓存中,并且中断处置器可以读取包括状态寄存器的高速缓存线路以执行与信号号码相关联的动作,并且针对包括该组信号号码的位掩码,存储器寄存器中断管理设备可以基于硬件中断向量来生成中断,将包括状态寄存器的高速缓存线路注入到CPU的高速缓存中,并且中断处置器可以读取包括状态寄存器的高速缓存线路以执行与状态寄存器的内容相关联的动作。
根据示例,状态寄存器可以被实现在接收器的存储器中,并且控制寄存器可以被实现为接收器的输入/输出存储器区域的一部分,其中输入/输出存储器区域可以与存储器寄存器中断管理设备相关联,并且其中输入/输出存储器区域可以不同于接收器的存储器。
根据示例,存储器寄存器中断管理设备可以通过使用位掩码“或(OR)”操作将位掩码与相关联的状态寄存器的值进行组合。
根据示例,存储器寄存器中断管理设备可以通过确定在状态寄存器的更新之前的状态寄存器的内容是否等于0来与状态寄存器的内容无关地生成到中央处理单元的中断,响应于在状态寄存器的更新之前的状态寄存器的内容等于0的确定,中断控制器可以生成中断,而响应于在状态寄存器的更新之前的状态寄存器的内容不等于0的确定,中断控制器可以不生成中断。
根据示例,接收器可以是一组节点中的接收器节点,发送器可以是该组节点中的发送器节点,该组节点中的每一个节点可以执行独立的操作***,并且该组节点中的每一个节点可以通过存储器结构而与该组节点中的其它节点互连。
图1图示出根据本公开的示例的基于存储器寄存器中断的信令和消息传递装置(后文中也称为“装置100”)的布局。图2图示出根据本公开的示例的装置100的环境,例如包括基于节点的***200。
参考图1和图2,装置100可以包括本地存储器102,其包括多个寄存器。寄存器可以被划分成包括控制寄存器104(0)–104(ni)和状态寄存器106(0)–106(ni)的寄存器对。与寄存器相关联的接收器110(针对图2的示例,也定名为“接收器节点110”)的存储器寄存器中断管理设备108可以执行诸如下述内容之类的操作:将在接收器110的控制寄存器(例如,如图1中所示的控制寄存器104(0))处接收到的信号号码(在图1和图2中定名为“SIG-NUM”)复制到接收器110的相关联的状态寄存器(例如,如图1中所示的状态寄存器106(0))。
信号号码可以是从发送器112(针对图2的示例,也定名为“发送器节点112”)接收的。
存储器寄存器中断管理设备108可以基于与寄存器位置相关联的硬件中断向量且与状态寄存器中的信号号码无关地生成到接收器110的CPU 114的中断。
关于到CPU 114的中断的生成,存储器寄存器中断管理设备108可以映射与信号号码相关联的硬件中断向量(在图1和图2中定名为“HW-ID”)。接收器110的中断控制器116可以使用该硬件中断向量以生成到CPU 114的中断。
中断控制器116和/或CPU 114可以基于中断来触发接收器110的中断处置器118。中断处置器118可以从状态寄存器读取信号号码以执行与信号号码相关联的动作。例如,中断处置器118可以读取状态寄存器中的值,且然后基于信号号码的值来例如在应用120上执行适当的动作。
如本文中公开的,参考图2,装置100可以被实现在多种环境中,该多种环境诸如是计算机***或如图2中图示出的基于节点的***200。基于节点的***200可以包括通过高速存储器结构204互连的多个节点。高速存储器结构204的示例可以包括针对基于节点的***200而开发的NGMI或其它此类存储器结构。每个节点可以包括存储器结构接口206,其中存储器结构接口可以将节点连接到该结构的其余部分和其它节点,并且在NGMI的情况下,存储器结构接口可以被标示为Z-BRIDGE。基于节点的***200可以包括当节点向可定名为接收器节点(例如,接收器110)的接收节点发送信号号码时可定名为发送器节点的多个节点(例如,针对图2的示例,节点112(1)–112(n))。
装置100的元件可以是存储在非暂时性计算机可读介质上的机器可读指令。就这一点而言,装置100可以包括或者可以是非暂时性计算机可读介质。另外或替换地,装置100的元件可以是硬件或者机器可读指令和硬件的组合。例如,该装置可以以硬件实现,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它此类格式。
根据示例,存储器寄存器中断可以使用包括控制寄存器104和状态寄存器106的一对寄存器,其中控制寄存器和状态寄存器包括信号号码的值。该类型的存储器寄存器中断可以定名为具有个体递送的存储器寄存器中断。
针对具有个体递送的存储器寄存器中断,发送器节点(例如,发送器节点112(1)–112(n)中的一个)可以将期望的信号号码(例如,如图1中图示出的SIG-NUM)写入期望的接收器节点110的控制寄存器(例如,控制寄存器104(0)–104(ni)中的一个)中。当将非零值写入控制寄存器中时,存储器寄存器中断管理设备108可以将该非零值复制到状态寄存器(例如,相关联的状态寄存器106(0)–106(ni)中的一个),并(例如,经由中断控制器116)生成到CPU 114的中断。就这一点而言,存储器寄存器中断管理设备108可以是被具体设计成实现本文中公开的操作的硬件设备。存储器寄存器中断管理设备108可以通过I/O总线向中断控制器116发送中断,中断控制器116然后将中断转发到中断处置器118。就这一点而言,中断控制器116可以是被具体设计成实现本文中公开的操作的硬件设备。中断可以触发中断处置器118。中断处置器118可以读取状态寄存器中的值,且然后基于信号号码的值来例如在应用120上执行适当的动作。例如,中断处置器118可以唤醒一直等待的特定应用或任务。针对消息传递,中断处置器118可以读取队列中的消息并在另一队列中推送该消息。一旦执行了适当的动作,中断处置器118就可以将0写入状态寄存器(即,被中断处置器118用来读取值的状态寄存器)中,并且存储器寄存器中断管理设备108可以清除相关联的控制寄存器。
由于可能有多个发送器节点同时尝试发信号通知相同的存储器中断,因此为了防止较早的信号被覆写,发送器节点可以使用控制寄存器上的“比较和调换”原子操作(CAS)。CAS操作指定:如果中断控制寄存器的在先值为0,则应当进行调换。如果在先中断还未被接收器节点读取,则寄存器不为0,并且CAS操作将失败。在这种情况下,存储器寄存器中断管理设备108也可以防止由与不同的发送器相关联的不同的信号号码覆写该信号号码。在失败尝试的情况下,发送器节点可以重复信号操作,直到发送器节点最终成功为止。如果先前中断被接收器节点读取,则控制寄存器为0,并且CAS操作成功并设置新信号号码的值。
使用原子操作以访问存储器中断可以允许多个发送器节点跨非一致性存储器结构204并发地请求远程中断服务。当提交了近乎同时的请求时,单个发送器节点成功且可以接收中断处理,而其它发送器节点等待直到服务返回到非忙碌状态。
针对如本文中公开的具有个体递送的存储器寄存器中断,如果中断是待决的,则每个发送器节点都可能需要重试,这可能增加关于发送器节点对中断的处理的复杂度和存储器结构204上的开销。此外,针对具有个体递送的存储器寄存器中断,具有相同信号号码的两个接续的中断可以被视为两个分离的事件。
根据示例,如本文中公开的那样,存储器寄存器中断可以使用一对控制寄存器和状态寄存器,但是信号号码可以被编码为存储器寄存器中的位位置。该类型的存储器寄存器中断可以定名为具有联合的存储器寄存器中断。
针对如本文中公开的具有联合的存储器寄存器中断,发送器(例如,发送器节点112(1)–112(n)中的一个)可以将包括该组期望的信号号码的位掩码写入期望的接收器节点110的控制寄存器(例如,控制寄存器104(0)–104(ni)中的一个)中。 例如,信号号码“5”可以由第5个位来表示,并且对应的位掩码为2^5=32。存储器寄存器中断管理设备108可以使用位掩码“或(or)”操作将所写入的值(即,包括该组期望的信号号码的位掩码)与状态寄存器的值进行组合,并将结果写入状态寄存器和控制寄存器二者中。例如,如果信号号码“5”和信号号码“1”被组合,则位掩码为2^5 or 2^1 = 34。存储器寄存器中断管理设备108因此可以仿真原子“或(or)”操作,并且在写入之后,状态寄存器可以包括已经处于状态寄存器中的所有信号号码以及所有新写入的信号号码。根据示例,如果状态寄存器已经包括信号号码“5”,则状态寄存器包括值2^5=32。如果信号号码“1”被写入到控制寄存器,则控制寄存器包括2^1=2。状态寄存器和控制寄存器二者将被更新有组合值(32 or 2) = 4。根据另一示例,如果状态寄存器已经包括信号号码“5”和“1”,则状态寄存器包括值2^5 or 2^1=34。如果信号号码“5”被写入到控制寄存器,则控制寄存器包括2^5=32。全部两个寄存器将被更新有组合值(34 or 32) = 34。
在更新状态寄存器之后,如果在该更新之前的状态寄存器值是0,则存储器寄存器中断管理设备108可以生成中断。在更新状态寄存器之后,如果在该更新之前的状态寄存器值不是0,则不生成中断(即,先前生成了中断,并且中断处置器118尚未对其作出响应和读取状态寄存器)。中断处置器118可以读取状态寄存器中的值、清除状态寄存器中的值且然后基于位掩码中的该组信号号码来执行适当的动作。
中断处置器118可以作为单个原子操作而读取状态寄存器和清除状态寄存器,以避免丢失信号号码。就这一点而言,状态寄存器可以在每次其被读取时清除其自身。替换地,中断处置器118可以使用原子“调换”操作以读取状态寄存器并以原子方式将状态寄存器设置成0。
关于具有联合的存储器寄存器中断,发送器节点可以在无需重试的情况下使用写入操作,这可以简化发送器节点机器可读指令并减小存储器结构204上的开销。如果多个发送器节点正在尝试同时写入不同信号号码,则可以将信号号码一起添加在位掩码中。如果多个发送器节点正在尝试同时写入相同信号号码,则可以联合信号号码并且生成单个中断。
如果接收器节点由于中断减轻而未读取状态寄存器,则不生成新的中断并且信号号码可以被累积从而等待被读取。关于中断减轻,默认地,存储器寄存器中断管理设备108可以处于中断模式中,从而等待中断。当中断到达时,中断处置器118可以禁用该中断并继续进行到轮询模式。在轮询模式中,存储器寄存器中断管理设备108可以以频繁的有规律的间隔检查状态寄存器是否需要被维修。可以分批处理分组接收,以最小化上下文切换和高速缓存处罚。如果不再接收到分组,则中断处置器118可以重新启用中断并恢复到中断模式,从而消除状态寄存器的频繁轮询的开销。
关于具有联合的存储器寄存器中断,如果需要附加的信号号码,则可以按需使用多个寄存器对和硬件中断向量以增加信号号码的数目。每一对寄存器可以支持等于寄存器中的位数(标示为nb)的数目的信号号码。 如果寄存器对的数目为npr,则信号号码的总数为nb * npr。这可能受可用硬件中断向量的数目限制,其中每个寄存器对可以消耗一个硬件中断向量。替换地,一些信号号码可能被不同函数共享。例如,当两个应用共享相同信号号码时,当该信号号码被断言时,中断处置器调用全部两个应用。替换地,单个硬件中断向量可以被多个寄存器对共享,这增加了更多寄存器对和中断解复用(即,多次读取而非单次读取)的需要。就这一点而言,如本文中公开的,在信号号码的总数为nb * npr的情况下,所有寄存器对可以使用相同硬件中断向量,但是当中断处置器被触发时,中断处置器读取所有寄存器,这是由于中断处置器不知道哪个寄存器被写入。
关于状态寄存器的读取,中断处置器118可以读取状态寄存器以解码信号号码。
为了提高读取状态寄存器以解码信号号码的效率,作为第一选项,可以省略状态寄存器的读取。为了清除中断,中断处置器可以写入0,该写入操作可以被流水线化,并且中断处置器不等待其完成。该选项使信号号码变为不可用的,并且因此,如果针对该存储器中断定义了单个信号号码,则可以使用该选项。
为了提高读取状态寄存器以解码信号号码的效率,作为第二选项,可以将存储器寄存器中断管理设备108并入到高速缓存一致性协议中。就这一点而言,状态寄存器可以被配置为可高速缓存的。存储器寄存器中断管理设备108可以使用高速缓存一致性协议以确认CPU不具有陈旧的值。当生成中断时,存储器寄存器中断管理设备108可以以主动的方式将包含状态寄存器的高速缓存线路注入到CPU的高速缓存中。当中断处置器118读取状态寄存器时,可以随适当的经更新的值从高速缓存返回读取请求。就这一点而言,替换地,当存储器寄存器中断管理设备生成中断时,存储器寄存器中断管理设备可以使包括状态寄存器的高速缓存线路无效。这将迫使按照需要而经由高速缓存一致性协议从状态寄存器106读取高速缓存线路。
为了提高读取状态寄存器以解码信号号码的效率,作为第三选项,可以将存储器用于状态寄存器来替代被映射到管理设备的I/O存储器中的寄存器。控制寄存器仍可以为与存储器寄存器中断管理设备108相关联的I/O存储器区域的一部分,且仍被配置为不可高速缓存的。针对每个控制寄存器,状态寄存器可以被分配在本地节点的标准存储器中,其中状态寄存器可以被预留且由机器可读指令来配置,并且状态寄存器是可高速缓存的。每次控制寄存器被写入时,存储器寄存器中断管理设备108都可能需要更新存储器中的状态寄存器。存储器寄存器中断管理设备108可以是高速缓存一致性协议的一部分,并执行写入操作,如同存储器寄存器中断管理设备108是另一CPU那样。如果状态寄存器被CPU高速缓存,则可以更新高速缓存中的值并且可以将高速缓存标记为写回。如果没有CPU已经高速缓存过状态寄存器,则可能需要更新实际的存储器位置,然而由于这可能不太可能发生,因此可以更新高速缓存并且不将写入发送到主存储器。当中断处置器118读取状态寄存器时,可以随适当的经更新的值从CPU高速缓存之一返回读取请求。类似地,每次要清除状态寄存器时,存储器寄存器中断管理设备108都可以通过高速缓存一致性协议来实现写入操作,并清除控制寄存器。
图3图示出用于实现基于存储器寄存器中断的信令和消息传递的方法300的流程图,其对应于上面详细描述了其构造的基于存储器寄存器中断的信令和消息传递装置100的示例。作为示例而非限制,方法300可以在参考图1和图2的基于存储器寄存器中断的信令和消息传递装置100上实现。可以在其它装置中实践方法300。
参考图1-3,针对方法300,在块302处,该方法可以包括:在接收器(例如,接收器节点110)的控制寄存器(例如,控制寄存器104(0))处从发送器(例如,发送器节点112(1)–112(n)中的一个)接收信号号码。
在块304处,该方法可以包括:由接收器的存储器寄存器中断管理设备108将该信号号码复制到接收器的相关联的状态寄存器(例如,状态寄存器106(0))。
在块306处,该方法可以包括:与来自状态寄存器(例如,状态寄存器106(0))的信号号码无关地生成到接收器的CPU(例如,CPU 114)的中断。
在块308处,该方法可以包括:基于该中断来触发接收器的中断处置器118以执行与信号号码相关联的动作(例如,如本文中公开的那样,与应用120相关联的动作)。
根据示例,针对方法300,接收器可以是一组节点中的接收器节点,发送器可以是该组节点中的发送器节点,该组节点中的每一个节点可以执行独立的操作***,并且该组节点中的每一个节点可以通过存储器结构(例如,高速存储器结构204)而与该组节点中的其它节点互连。
根据示例,针对方法300,存储器结构可以是非一致性存储器结构。
根据示例,方法300可以进一步包括:确定该信号号码是否包括非零值;以及响应于该信号号码包括非零值的确定,防止由与不同的发送器(例如,发送器节点112(1)–112(n)中的不同的发送器节点)相关联的不同的信号号码覆写该信号号码。
根据示例,针对方法300,与来自状态寄存器的信号号码无关地生成到接收器的中央处理单元的中断可以进一步包括:由存储器寄存器中断管理设备108将硬件中断向量(例如,HW-ID)映射到信号号码;以及由接收器的中断控制器116使用该硬件中断向量以生成到接收器的中央处理单元114的中断。
根据示例,针对方法300,进一步对于执行与信号号码相关联的动作,该方法可以包括:由中断处置器118将零值写入状态寄存器中;以及由存储器寄存器中断管理设备108清除相关联的控制寄存器。
根据示例,针对方法300,针对分别包括控制寄存器和状态寄存器的包括控制寄存器和相关联的状态寄存器的多对寄存器,该方法可以包括:将该多对寄存器中的每一对寄存器映射到不同的中断。
根据示例,针对方法300,当从发送器到接收器的消息被添加到接收器的队列时,该信号号码可以对应于与该消息相关联的信号。
图4示出了可与本文中描述的示例一起使用的计算机***400。计算机***400可以表示通用平台,其包括可处于服务器或另一计算机***中的组件。计算机***400可以被用作用于装置100的平台。计算机***400可以通过处理器(例如,单个或多个处理器)或其它硬件处理电路来执行本文中描述的方法、功能和其它过程。这些方法、功能和其它过程可以体现为存储在计算机可读介质上的机器可读指令,该计算机可读介质可以是非暂时性的,诸如硬件存储设备(例如,RAM、ROM、EPROM、EEPROM、硬盘驱动器以及闪速存储器)。
计算机***400可以包括处理器402,处理器402可以实现或执行下述机器可读指令:该机器可读指令执行本文中描述的方法、功能和其它过程中的一些或全部。可以在通信总线404上传送来自处理器402的数据和命令。计算机***还可以包括:主存储器406,诸如RAM,用于处理器402的机器可读指令和数据可以在运行时期间驻留在其中;以及辅数据储存器408,其可以是非易失性的且存储机器可读指令和数据。存储器和数据储存器是计算机可读介质的示例。存储器406可以包括基于存储器寄存器中断的信令和消息传递实现模块420,其包括在运行时期间驻留在存储器406中且由处理器402执行的机器可读指令。基于存储器寄存器中断的信令和消息传递实现模块420可以包括图1和图2中示出的装置100的元件。
计算机***400可以包括I/O设备410,诸如键盘、鼠标、显示器等。计算机***可以包括用于连接到网络的网络接口412。可以在计算机***中添加或替换其它已知电子组件。
本文中已描述和图示出的内容是示例连同其变型中的一些。本文中使用的术语、描述和附图仅通过说明的方式而阐述,而不意在作为限制。许多变型在意图由所附权利要求(及其等同物)限定的主题的精神和范围内是可能的,在所附权利要求(及其等同物)中,所有术语都在其最宽泛合理意义上释义,除非以其它方式指示。

Claims (15)

1.一种用于实现基于存储器寄存器中断的信令和消息传递的方法,所述方法包括:
在接收器的控制寄存器处从发送器接收信号号码;
由所述接收器的存储器寄存器中断管理设备将所述信号号码复制到所述接收器的相关联的状态寄存器;
与来自所述状态寄存器的所述信号号码无关地生成到所述接收器的中央处理单元的中断;以及
基于所述中断来触发所述接收器的中断处置器以执行与所述信号号码相关联的动作。
2.根据权利要求1所述的方法,其中,
所述接收器是一组节点中的接收器节点,
所述发送器是该组节点中的发送器节点,
该组节点中的每一个节点执行独立的操作***,并且
该组节点中的每一个节点通过存储器结构而与该组节点中的其它节点互连。
3.根据权利要求1所述的方法,其中,所述存储器结构是非一致性存储器结构。
4.根据权利要求1所述的方法,进一步包括:
进一步对于执行与所述信号号码相关联的所述动作,由所述中断处置器将零值写入所述状态寄存器中;以及
由所述存储器寄存器中断管理设备清除相关联的控制寄存器。
5.根据权利要求1所述的方法,进一步包括:
针对分别包括所述控制寄存器和所述状态寄存器的包括控制寄存器和相关联的状态寄存器的多对寄存器,将所述多对寄存器中的每一对寄存器映射到不同的中断。
6.根据权利要求1所述的方法,其中,当从所述发送器到所述接收器的消息被添加到所述接收器的队列时,所述信号号码对应于与所述消息相关联的信号。
7.一种基于存储器寄存器中断的信令和消息传递装置,包括:
控制寄存器,其接收包括一组信号号码的位掩码;以及
存储器寄存器中断管理设备,其:
将所述位掩码与相关联的状态寄存器的值进行组合,
将所述组合的结果写入所述状态寄存器和所述控制寄存器中,以及
与所述状态寄存器的内容无关地生成到中央处理单元的中断。
8.根据权利要求7所述的基于存储器寄存器中断的信令和消息传递装置,其中,所述存储器寄存器中断管理设备通过使用位掩码“或”操作来将所述位掩码与所述相关联的状态寄存器的值进行组合。
9.根据权利要求7所述的基于存储器寄存器中断的信令和消息传递装置,其中,所述存储器寄存器中断管理设备通过下述操作来与所述状态寄存器的内容无关地生成到所述中央处理单元的所述中断:
确定在所述状态寄存器的更新之前的所述状态寄存器的内容是否等于0,
响应于在所述状态寄存器的所述更新之前的所述状态寄存器的内容等于0的确定,生成所述中断,以及
响应于在所述状态寄存器的所述更新之前的所述状态寄存器的内容不等于0的确定,不生成所述中断。
10.根据权利要求7所述的基于存储器寄存器中断的信令和消息传递装置,其中,针对分别包括所述控制寄存器和所述状态寄存器的包括控制寄存器和相关联的状态寄存器的多对寄存器,将所述多对寄存器中的每一对寄存器映射到不同的中断。
11.根据权利要求7所述的基于存储器寄存器中断的信令和消息传递装置,其中,当从发送器到接收器的消息被添加到所述接收器的队列时,所述位掩码对应于与所述消息相关联的信号。
12.一种基于存储器寄存器中断的信令和消息传递装置,包括:
接收器的控制寄存器,其从发送器接收信号号码或包括一组信号号码的位掩码;以及
针对所述信号号码,
存储器寄存器中断管理设备,其:
将所述信号号码复制到所述接收器的相关联的状态寄存器,以及
与来自所述状态寄存器的所述信号号码无关地生成到所述接收器的中央处理单元(CPU)的中断,以及
针对包括该组信号号码的所述位掩码,
所述存储器寄存器中断管理设备执行下述操作:
将所述位掩码与所述相关联的状态寄存器的值进行组合,并且将所述组合的结果写入所述状态寄存器和所述控制寄存器中,以及
与所述状态寄存器的内容无关地生成到所述CPU的中断。
13.根据权利要求12所述的基于存储器寄存器中断的信令和消息传递装置,其中,
针对所述信号号码,
所述存储器寄存器中断管理设备执行下述操作:
基于硬件中断向量来生成所述中断,以及
将包括所述状态寄存器的高速缓存线路注入到所述CPU的高速缓存中,以及
中断处置器读取包括所述状态寄存器的所述高速缓存线路以执行与所述信号号码相关联的动作,以及
针对包括该组信号号码的所述位掩码,
所述存储器寄存器中断管理设备执行下述操作:
基于所述硬件中断向量来生成所述中断,以及
将包括所述状态寄存器的所述高速缓存线路注入到所述CPU的所述高速缓存中,以及
所述中断处置器读取包括所述状态寄存器的所述高速缓存线路以执行与所述状态寄存器的内容相关联的动作。
14.根据权利要求12所述的基于存储器寄存器中断的信令和消息传递装置,其中,
所述状态寄存器被实现在所述接收器的存储器中,并且
所述控制寄存器被实现为所述接收器的输入/输出存储器区域的一部分,其中所述输入/输出存储器区域与所述存储器寄存器中断管理设备相关联,并且其中所述输入/输出存储器区域不同于所述接收器的所述存储器。
15.根据权利要求12所述的基于存储器寄存器中断的信令和消息传递装置,其中,
所述接收器是一组节点中的接收器节点,
所述发送器是该组节点中的发送器节点,
该组节点中的每一个节点执行独立的操作***,并且
该组节点中的每一个节点通过存储器结构而与该组节点中的其它节点互连。
CN201680022778.XA 2016-02-04 2016-02-04 基于存储器寄存器中断的信令和消息传递 Pending CN107533458A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/016534 WO2017135950A1 (en) 2016-02-04 2016-02-04 Memory register interrupt based signaling and messaging

Publications (1)

Publication Number Publication Date
CN107533458A true CN107533458A (zh) 2018-01-02

Family

ID=59500409

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680022778.XA Pending CN107533458A (zh) 2016-02-04 2016-02-04 基于存储器寄存器中断的信令和消息传递

Country Status (4)

Country Link
US (1) US10565004B2 (zh)
EP (1) EP3286637B1 (zh)
CN (1) CN107533458A (zh)
WO (1) WO2017135950A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112052108A (zh) * 2019-06-05 2020-12-08 富士通株式会社 并行处理设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230142399A1 (en) * 2021-11-08 2023-05-11 Intel Corporation Processor interrupt expansion feature

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4935894A (en) * 1987-08-31 1990-06-19 Motorola, Inc. Multi-processor, multi-bus system with bus interface comprising FIFO register stocks for receiving and transmitting data and control information
US5123094A (en) * 1990-01-26 1992-06-16 Apple Computer, Inc. Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
US5379428A (en) * 1993-02-01 1995-01-03 Belobox Systems, Inc. Hardware process scheduler and processor interrupter for parallel processing computer systems
CN1140383A (zh) * 1995-06-19 1997-01-15 摩托罗拉公司 专用选呼解码器综合到控制器中的方法和装置
EP0875827A2 (en) * 1997-04-08 1998-11-04 International Business Machines Corporation Source and destination initiated interrupt system for message arrival notification
US6247091B1 (en) * 1997-04-28 2001-06-12 International Business Machines Corporation Method and system for communicating interrupts between nodes of a multinode computer system
US6295573B1 (en) * 1999-02-16 2001-09-25 Advanced Micro Devices, Inc. Point-to-point interrupt messaging within a multiprocessing computer system
US20020004886A1 (en) * 1997-09-05 2002-01-10 Erik E. Hagersten Multiprocessing computer system employing a cluster protection mechanism
US6460105B1 (en) * 1998-04-29 2002-10-01 Stmicroelectronics Limited Method and system for transmitting interrupts from a peripheral device to another device in a computer system
US20020174165A1 (en) * 2001-05-18 2002-11-21 Nec Corporation Cluster system, computer and program
US6647431B1 (en) * 1997-12-31 2003-11-11 Nortel Networks Limited Method and apparatus for handling I/O messages
CN1128406C (zh) * 1998-12-17 2003-11-19 国际商业机器公司 数据处理***及其中断处理方法
US6799317B1 (en) * 2000-06-27 2004-09-28 International Business Machines Corporation Interrupt mechanism for shared memory message passing
CN1604060A (zh) * 2003-09-30 2005-04-06 国际商业机器公司 用于处理中断的方法和装置
US20060047877A1 (en) * 2004-08-31 2006-03-02 Advanced Micro Devices, Inc. Message based interrupt table
CN100456251C (zh) * 2003-07-31 2009-01-28 英特尔公司 一种涉及处理器间中断的方法、处理器和***
CN101739368A (zh) * 2008-11-07 2010-06-16 中兴通讯股份有限公司 一种中断加速装置和中断处理***
CN101872330A (zh) * 2009-11-04 2010-10-27 杭州海康威视数字技术股份有限公司 多pcie设备***中断处理方法
CN102077181A (zh) * 2008-04-28 2011-05-25 惠普开发有限公司 用于在多核处理器中和在某些共享存储器多处理器***中产生并输送处理器间中断的方法和***
US20130290984A1 (en) * 2012-04-29 2013-10-31 Texas Instruments Incorporated Method for Infrastructure Messaging

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689713A (en) * 1995-03-31 1997-11-18 Sun Microsystems, Inc. Method and apparatus for interrupt communication in a packet-switched computer system
US6170025B1 (en) 1997-08-29 2001-01-02 Intel Corporation Distributed computer system supporting remote interrupts and lock mechanism
US6205508B1 (en) 1999-02-16 2001-03-20 Advanced Micro Devices, Inc. Method for distributing interrupts in a multi-processor system
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

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4935894A (en) * 1987-08-31 1990-06-19 Motorola, Inc. Multi-processor, multi-bus system with bus interface comprising FIFO register stocks for receiving and transmitting data and control information
US5123094A (en) * 1990-01-26 1992-06-16 Apple Computer, Inc. Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
US5379428A (en) * 1993-02-01 1995-01-03 Belobox Systems, Inc. Hardware process scheduler and processor interrupter for parallel processing computer systems
CN1140383A (zh) * 1995-06-19 1997-01-15 摩托罗拉公司 专用选呼解码器综合到控制器中的方法和装置
EP0875827A2 (en) * 1997-04-08 1998-11-04 International Business Machines Corporation Source and destination initiated interrupt system for message arrival notification
US6247091B1 (en) * 1997-04-28 2001-06-12 International Business Machines Corporation Method and system for communicating interrupts between nodes of a multinode computer system
US20020004886A1 (en) * 1997-09-05 2002-01-10 Erik E. Hagersten Multiprocessing computer system employing a cluster protection mechanism
US6647431B1 (en) * 1997-12-31 2003-11-11 Nortel Networks Limited Method and apparatus for handling I/O messages
US6460105B1 (en) * 1998-04-29 2002-10-01 Stmicroelectronics Limited Method and system for transmitting interrupts from a peripheral device to another device in a computer system
CN1128406C (zh) * 1998-12-17 2003-11-19 国际商业机器公司 数据处理***及其中断处理方法
US6295573B1 (en) * 1999-02-16 2001-09-25 Advanced Micro Devices, Inc. Point-to-point interrupt messaging within a multiprocessing computer system
US6799317B1 (en) * 2000-06-27 2004-09-28 International Business Machines Corporation Interrupt mechanism for shared memory message passing
EP1276045A2 (en) * 2001-05-18 2003-01-15 Nec Corporation Cluster system, computer and program
US20020174165A1 (en) * 2001-05-18 2002-11-21 Nec Corporation Cluster system, computer and program
CN100456251C (zh) * 2003-07-31 2009-01-28 英特尔公司 一种涉及处理器间中断的方法、处理器和***
CN1604060A (zh) * 2003-09-30 2005-04-06 国际商业机器公司 用于处理中断的方法和装置
US20060047877A1 (en) * 2004-08-31 2006-03-02 Advanced Micro Devices, Inc. Message based interrupt table
CN102077181A (zh) * 2008-04-28 2011-05-25 惠普开发有限公司 用于在多核处理器中和在某些共享存储器多处理器***中产生并输送处理器间中断的方法和***
CN101739368A (zh) * 2008-11-07 2010-06-16 中兴通讯股份有限公司 一种中断加速装置和中断处理***
CN101872330A (zh) * 2009-11-04 2010-10-27 杭州海康威视数字技术股份有限公司 多pcie设备***中断处理方法
US20130290984A1 (en) * 2012-04-29 2013-10-31 Texas Instruments Incorporated Method for Infrastructure Messaging

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112052108A (zh) * 2019-06-05 2020-12-08 富士通株式会社 并行处理设备

Also Published As

Publication number Publication date
US20190050253A1 (en) 2019-02-14
EP3286637A4 (en) 2018-06-13
US10565004B2 (en) 2020-02-18
WO2017135950A1 (en) 2017-08-10
EP3286637B1 (en) 2023-04-05
EP3286637A1 (en) 2018-02-28

Similar Documents

Publication Publication Date Title
CN101365999B (zh) 发送完成事件批处理
US7404190B2 (en) Method and apparatus for providing notification via multiple completion queue handlers
TWI239187B (en) System and method for managing and validating remote keys which correspond to outstanding data transactions
CN104871493B (zh) 用于高性能计算网络中的通信信道故障切换的方法和设备
US9400821B2 (en) Memory bus protocol to enable clustering between nodes of distinct physical domain address spaces
US8249072B2 (en) Scalable interface for connecting multiple computer systems which performs parallel MPI header matching
CN103647807A (zh) 一种信息缓存方法、装置和通信设备
US20070041383A1 (en) Third party node initiated remote direct memory access
CN109690512A (zh) 具有触发操作的gpu远程通信
CN103368848A (zh) 信息处理设备、算术装置和信息传递方法
CN104094231A (zh) 用于支持无限带网络中的虚拟机的动态迁移的***和方法
CN102209104A (zh) 减小通信协议中的分组大小
US11983437B2 (en) System, apparatus and method for persistently handling memory requests in a system
AU2021269201B2 (en) Utilizing coherently attached interfaces in a network stack framework
US20150378961A1 (en) Extended Fast Memory Access in a Multiprocessor Computer System
CZ20032079A3 (cs) Způsob a zařízení pro přenos přerušení z periferního zařízení na hostitelský počítačový systém
CN105453056B (zh) 用于在多高速缓存环境中管理高速缓冲存储器的方法和装置
CN101421791B (zh) 用于主机和***设备之间通信的队列深度管理的方法
TW200419348A (en) High speed memory cloning facility via a source/destination switching mechanism
US8656129B2 (en) Aggregate symmetric multiprocessor system
CN100405333C (zh) 用于处理多处理器***中的存储器访问的方法和装置
CN107533458A (zh) 基于存储器寄存器中断的信令和消息传递
WO2013165379A1 (en) Reflective memory bridge for external computing nodes
US7360008B2 (en) Enforcing global ordering through a caching bridge in a multicore multiprocessor system
CN109964211A (zh) 用于半虚拟化网络设备队列和存储器管理的技术

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180102

WD01 Invention patent application deemed withdrawn after publication