CN102804155B - 向另一设备委托轮询操作 - Google Patents

向另一设备委托轮询操作 Download PDF

Info

Publication number
CN102804155B
CN102804155B CN201080025454.4A CN201080025454A CN102804155B CN 102804155 B CN102804155 B CN 102804155B CN 201080025454 A CN201080025454 A CN 201080025454A CN 102804155 B CN102804155 B CN 102804155B
Authority
CN
China
Prior art keywords
equipment
poll
interconnect
core
address
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.)
Active
Application number
CN201080025454.4A
Other languages
English (en)
Other versions
CN102804155A (zh
Inventor
M·E·埃斯皮希
Z·方
R·伊耶
D·J·哈里曼
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
Publication of CN102804155A publication Critical patent/CN102804155A/zh
Application granted granted Critical
Publication of CN102804155B publication Critical patent/CN102804155B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)
  • Computer And Data Communications (AREA)

Abstract

在一个实施例中,本发明包括一种用于处理从主机处理器接收的注册消息的方法,其中注册消息将相对于设备的轮询操作从主机处理器委托给另一部件。来自于该消息的信息可以存储在轮询表中,并且该部件可以发送读请求以对设备进行轮询,并且基于设备的状态向主机处理器报告轮询的结果。还描述并要求了其它实施例。

Description

向另一设备委托轮询操作
背景技术
现代计算机系统通常包括处理器和耦合在一起的各种其它部件。此外,许多系统包括一个或多个外围或输入/输出(IO)设备。
为了支持在处理器上执行的软件与可以由其它设备执行的操作之间的通信,可以使用不同的机制。一般的机制包括轮询方法和中断方法。然而,这些方法都不是最优的。使用轮询技术,软件在IO设备的任务是细粒度的情况下持续地对IO设备上的状态寄存器进行轮询,或者在IO设备的任务是粗粒度的情况下依赖于通过操作系统(OS)的异步中断。虽然轮询方法可以确保良好的性能,但是它也具有缺点。首先,需要知道完成状态的核心/线程必须(例如,经由忙循环操作)持续地检查存储器映射输入/输出(MMIO)状态寄存器,从而防止其自身进入低功率状态。第二,对不可缓存的MMIO地址进行重复轮询会导致系统互连上的大流量。总之,快速响应时间的代价是功率消耗(尤其针对超低功率环境而言是主要问题)和系统资源浪费。
中断方法避免了处理器对状态寄存器的忙循环。在等待的同时,核心/线程可以进行上下文切换以执行另一进程,或者进入低功率状态。IO设备上的任务的完成触发到OS的中断。然而,在典型的系统中,内核中断处理程序会引发数百个高速缓存未命中以及数以万计个时钟周期。中断处理的这种性能开销对于许多细粒度逻辑块来说是不可接受的。
因此,由于轮询抵消了使用IO设备获得的任何功率益处的大部分,而中断引入了严重的性能恶化,因此对于低功率应用而言,轮询和中断技术都不是令人满意的。
附图说明
图1是根据本发明的一个实施例的系统的框图。
图2是根据本发明的一个实施例的方法的流程图。
图3是根据本发明的另一实施例的系统的框图。
具体实施方式
在各种实施例中,可以实现轮询委托技术,其中互联在轮询和通知过程中用作代理。在一个实施例中,互连可以是输入/输出(IO)互连,然而本发明的范围并不限于这一点。使用该技术,互连为诸如中央处理单元(CPU)等的主机处理器轮询IO设备,并且使用诸如测试和保持操作等多个技术中的一个、或者通过对用户选择的存储器位置进行更新(这触发处理器从最佳功率状态退出),来将给定事件通知给应用程序软件。在一个实施例中,可以使用诸如MONITOR/MWAIT等的用户级指令来通知应用程序软件。在各种实施例中,轮询委托可以使响应时间如轮询一样短,并且使功耗/资源使用如基于中断的技术一样低,从而提供了IO设备状态的用户级通知,而不需要轮询或中断。
在一个实施例中,IO互连可以包括专用硬件来对IO设备的状态寄存器进行轮询。然后,一旦状态改变,则IO互连可以发出对由主机监视的存储器地址的写操作(例如,一致性写入)。该一致性写入将被该硬件检测到,并且使在该地址上等待的线程恢复执行。因此,在各种实施例中,处理器可以保持在低功率状态直到IO设备完成其任务,并且几乎如同其进行忙循环一样快地恢复执行。不需要对处理器核心、高速缓存、系统一致性互连或IO设备进行改变。
MONITOR/MWAIT指令对可以支持线程间同步。该指令对可以在所有的特权级处均是可用的。MONITOR可以用于使CPU设置CPU的监视硬件,以检测对有效地址范围(通常为高速缓存行)的存储。该地址范围属于一致性回写地址范围。在一个实施例中,高速缓存一致性硬件可以监视对该目的地址的写入。当发生该写入时,高速缓存一致性控制器将向处理器发送退出低功率状态的消息。在该设置之后,随后的MWAIT指令将处理器核心置于所选择的低功率状态(例如,时钟门控状态或功率门控状态)。当监视硬件检测到对该地址范围内的任意字节的存储时,停止的线程从MWAIT后面的指令恢复执行。从架构上讲,MWAIT的行为类似于空操作(NOP)。虽然MONITOR和MWAIT指令被设计为实现性能和功率最优的线程间同步,但是实施例也可以利用用于IO设备完成通知的指令。
现在参照图1,示出的是根据本发明的一个实施例的系统的框图。如图1所示,系统100可以是片上系统(SoC),该片上系统(SoC)包括互连在一起的各种部件并且可以提供用于根据本发明的实施例来处理轮询委托的机制。具体地,在图1的实施例中,SoC 100可以包括多个处理器核心,为了便于说明,仅示出了其中的一个核心,即核心110a
该一个或多个核心可以经由一致性互连115耦合到一个或多个高速缓存存储器120a。一致性互连115可以包括各种硬件、软件和/或固件,以实现诸如修改排他共享无效(MESI)协议等的高速缓存一致性协议,从而维持存储在系统中的信息的一致性。在一些实现中,一致性互连115可以是包括诸如协议层、链路层、以及可能的物理层等的各种层的分层协议(其中该系统不在单管芯上)。
继而,一致性互连115可以经由中心部件120耦合到存储器控制器130,该存储器控制器130继而可以耦合到例如动态随机存取存储器(DRAM)等的系统存储器。注意,由于这种存储器可以位于SoC外部,因此没有在图1中示出该存储器。
此外,一致性互连115可以耦合到IO互连140的上游侧,该I/O互连140可以具有给定的通信协议,诸如根据基于“PCI ExpressTM SpecificationBase Specification version 2.0”(2007年1月17日公布)(下文称为PCIeTMSpecification)的链路的“Peripheral Component Interconnect Express”(PCIExpressTM(PCIeTM))协议、或者其它这种协议。根据本发明的实施例,IO互连140可以包括轮询表150。虽然示出为存在于该互连中,但是其它实现可以将该缓冲器设置于与该互连紧密相关的其它位置。继而,可以是IO设备、知识产权(IP)块等的各种设备(例如,设备1600和1601)可以耦合到IO互连140的下游侧。
如图1所示,轮询表150存储包括例如条目156等的多个条目。每个条目可以包括:设备监视位置,诸如多个设备160之一中存在的状态寄存器的地址;存储器监视地址,其可以对应于系统存储器中的物理地址,该物理地址对应于MWAIT指令的监视位置;以及初始值,其可以是设备监视位置的初始值,例如,状态寄存器的初始值。因此,实施例本质上将IO设备上的每个状态寄存器与由CPU监视的对应存储器地址相关联。虽然在图1的实施例中示出了该特定实现,但是本发明的范围并不限于这一点。
现在参照图2,示出的是根据本发明的一个实施例的方法的流程图。具体地,图2示出了可以由代表主机处理器处理轮询委托的IO或其它互连的逻辑执行的流程图。在一些实现中,方法200可以通过状态机或其它互连逻辑来实现,然而其它实现也是可行的。如图2所示,可以通过从应用程序接收注册消息来开始方法200(框210)。在一个实施例中,注册消息可以包括由MMIO地址、真实物理存储器地址和初始值构成的元组。在一个实施例中,该注册消息可以包括:位置和备份被监视虚拟地址范围的被监视系统存储器的物理地址范围;用于获得要被监视的设备中的位置的状态(例如,状态寄存器)的MMIO地址;以及这种寄存器的初始值,该初始值还可以对应于存储在系统存储器的监视地址中的初始值。在一个实施例中,应用程序可以例如使用主机处理器进行系统调用,以将该信息传递到互连。
仍然参照图2,可以确定在互连的轮询表中条目是否可用(菱形215)。如果不可用,则可以将失败消息发送回主机(框220)。否则,可以将该信息存储在轮询表的条目中(框230)。因此,该信息可以对应于设备监视位置(即,对应于设备的完成状态寄存器的MMIO地址)、该寄存器的初始值以及存储器监视地址(其可以是例如由MONITOR/MWAIT指令对监视的系统存储器内的物理地址位置)。相应地,可以将成功消息从互连发送到主机处理器(框240)。
在操作期间,应用程序然后初始化被监视位置,发出MONITOR和MWAIT指令,从而使设备开始执行其任务。可以实现各种这样的任务,包括卸载专用函数、图形处理、物理处理等。作为一个示例,该函数可以是专用计算,诸如快速傅立叶变换(FFT)。因此,在执行MONITOR/MWAIT指令之前,该应用程序可以传递与FFT有关的各种信息,诸如点的数量、开始地址等。
相应地,在此时,主机处理器的一个或多个核心可以进入低功率状态,这可以是可配置的,其取决于设备要执行的操作的类型。
仍然参照图2,在设备开始执行其操作之后,互连可以在设备监视位置处执行轮询(框245)。在一个实施例中,轮询操作可以发出对轮询表中的每个寄存器地址的读操作,并且将取出的值与轮询表条目中的初始值进行比较,如参照菱形250所讨论的。可以理解,该轮询可以对存在于一个或多个设备中的多个位置进行轮询,即在轮询表中指示出的任何地址。可以针对每次轮询操作确定任何条目中的值是否从其初始值发生了改变(菱形250)。如果没有,则可以进行另一轮询的重复。如果发生了改变,则改为将控制传递至框260,在框260中,可以针对存储器监视地址发出关于该新值的写操作。在一个实施例中,互连可以发出对该地址的一致性写入,在一个实施例中,这可以使用消息信令中断(MSI)来实现。对存储器中的被监视地址的该一致性写入将使处理器核心从低功率状态唤醒,从而使暂停的线程继续执行。参照图2,在发出该写操作之后,可以确定是否已经接收到了对该条目的释放(菱形270)。在一个实施例中,当与轮询委托条目相关联的给定应用程序结束时,可以从OS接收到这种释放。因此,如果设备得知任务已完成,则该设备可以向IO互连发出回收请求。如果没有指示释放,则控制从菱形270传递回框245,在框245中,可以执行进一步的轮询。虽然在图2的实施例中示出了该特定实现,但是本发明的范围并不限于这一点。
可以利用OS的帮助来生成注册消息和释放消息。可以完全在用户模式中执行用户级MONITOR和MWAIT指令,并且轮询委托操作可以是纯硬件的。注意到,通常仅在应用程序初始化和清除阶段执行注册和释放。因此,其功率和性能并不是一个问题。相反,通常要执行很多次用户级的设置和轮询检测。因此,这两个步骤的功效实现了高效的系统功率和性能特性。
为了支持多个IP加速器,轮询表150可以是多条目转换表。在一个实施例中,每个条目156包含MMIO地址和链接到其的物理存储器地址。在一些实现中,轮询表中的条目的数量可以是很小的数量,例如N=8。在需要同时检查多于N个寄存器的极端情况下,用户线程可以总是直接地对寄存器进行轮询,而不是使用上述方法,然而也可以代替地使用虚拟化轮询表。
在一个实施例中,可以位于IO互连140中的PCI的消息信令中断(MSI-X)特征提供了允许设备160发出对系统存储器位置的写入的硬件。在MSI-X中,目标存储器位置是将导致中断的专用地址。在实施例中,回写存储器空间中的替代地址可以用作这种写入的目标。目标存储器位置的该性质对MSI-X硬件而言是透明的,其简单地将分组从IO互连传送到存储器系统。在一些实现中,由互连140执行的轮询可以引起对注册的状态寄存器地址的轮询,即使一些寄存器表示的设备没有进行活跃计算。这是因为在一些实现中,轮询委托逻辑145不知道其映射表中的有效条目是否表示不活跃的设备。可以使用不同的机制来向该逻辑提供这种信息。例如,可以由OS提供系统调用,以允许应用程序释放轮询表中的特定条目。可替换地,IO互连140可以拦截发送到IP块160的功率状态转换命令,使得其将知道哪些状态寄存器将不会在不久后的任何时间被更新。在这些实施例中,该信息可以包括在轮询表150的条目的状态部分中。然而,注意到,互连140对IO寄存器进行轮询的代价是相当低的,因此,公平轮询的功率和性能影响可以是最小的。
虽然本文针对可以是计算设备(诸如,嵌入式、便携式或移动设备)的主处理部件的片上系统(SoC)配置进行了描述,但是也可以在诸如多处理器计算机系统等的其它系统中使用其它实现,其中上述多处理器计算机系统具有耦合到一致性互连的处理器,该一致性互连继而可以经由一个或多个芯片组或其它部件耦合到IO互连。此外,可以在计算设备的多芯片架构中实现实施例。
现在参照图3,示出的是根据本发明的另一实施例的系统的框图。如图3所示,系统300可以是多芯片架构,即系统300包括:第一芯片100,其可以是第一SoC,并且其可以被配置为与图1的SoC相同;第二集成电路310,其可以提供外围设备的功能;以及存储器370,其可以是耦合到一个或多个芯片的DRAM。如图3所示,SoC 100可以经由互连305与IC 310进行通信,该互连305继而耦合到SoC 100的第一桥接器170和IC 310的第二桥接器320。继而,第二桥接器320可以耦合到IO互连330,该互连330继而可以耦合到例如PCIe设备340和通用串行总线(USB)设备350等的一个或多个外围设备。此外,IO互连330可以经由第三桥接器360通过串行网络接口(SONIC)/外部结构耦合到片外部件。在图3的实施例中,注意到,根据本发明的实施例,IO互连140和IO互连330均可以包括轮询表和轮询委托逻辑。虽然在图3的实施例中示出了该特定实现,但是其它实现当然也是可能的。
使用本发明的实施例,进程可以避免经历中断处理的长时间延迟,或者避免必须以高功率状态忙循环。在支持MONITOR/MWAIT或类似测试和设置功能的处理器上,轮询委托允许处理器进入功率和性能最优状态,同时仍然能够实现忙循环的快速响应时间。对于包括更细粒度的IP块的低功率SoC,实施例在功率和性能方面提供了近似最优的完成通知解决方案。
实施例可以以代码来实现,并且可以存储在存储有指令的存储介质上,该指令可以用于对系统进行编程,以执行这些指令。存储介质可以包括但不限于是:任何类型的盘,包括软盘、光盘、光盘只读存储器(CD-ROM)、可重写的光盘(CD-RW)以及磁光盘;半导体设备,诸如只读存储器(ROM)、随机存取存储器(RAM)(诸如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡;或者适于存储电子指令的任何其它类型的介质。
虽然参照有限数量的实施例描述了本发明,但是本领域技术人员将理解源自所描述实施例的许多修改和变形。期望所附权利要求覆盖落入本发明的真实精神和范围内的所有这种修改和变形。

Claims (20)

1.一种用于实现轮询委托的装置,包括:
核心,用于生成注册消息,以将轮询操作委托给输入/输出IO互连;
一致性互连,其耦合到所述核心;
所述IO互连,其耦合到所述一致性互连,所述IO互连包括轮询表,所述轮询表具有多个条目,每个所述条目具有:寄存器地址字段,用于存储在注册消息中接收的寄存器地址;目的地址字段,用于存储在所述注册消息中接收的系统存储器中的目的地址;以及初始值字段,用于存储与在所述注册消息中接收的所述寄存器地址相关联的初始值;以及
至少一个设备,其耦合到所述IO互连,用于为在所述核心上执行的应用程序执行操作,并且包括至少一个状态寄存器,所述IO互连用于响应于轮询表条目中的信息来对所述至少一个状态寄存器进行轮询,并且用于在所述至少一个状态寄存器的轮询值不同于所述初始值的情况下发出对所述目的地址的写事务。
2.如权利要求1所述的装置,其中,所述至少一个设备用于在所述操作完成之后将所述初始值更新为所述轮询值。
3.如权利要求1所述的装置,其中,所述装置包括形成在单个半导体管芯上的片上系统(SoC),并且所述至少一个设备包括知识产权块。
4.如权利要求1所述的装置,其中,所述IO互连包括轮询委托逻辑。
5.如权利要求4所述的装置,其中,所述轮询委托逻辑用于在预定的时间间隔向所述至少一个设备发出读请求,以执行所述轮询。
6.如权利要求5所述的装置,其中,所述轮询委托逻辑用于在响应于所述读请求而从所述至少一个设备接收的数据与所述初始值之间进行比较,并且用于在所述数据与所述初始值不同时执行所述写事务。
7.如权利要求1所述的装置,其中,所述核心用于在与所述轮询表中的条目对应的应用程序结束时向所述IO互连发送回收消息,以删除所述条目。
8.如权利要求1所述的装置,其中,所述核心用于执行第一指令以设置所述目的地址,并且用于执行第二指令以使所述核心进入低功率状态直到所述目的地址被更新。
9.如权利要求8所述的装置,其中,所述核心用于在执行所述第一指令和所述第二指令之前向所述IO互连发送所述注册消息。
10.一种用于实现轮询委托的系统,包括:
第一集成电路,包括:
至少一个核心,其包括:第一逻辑,用于执行第一指令以在存储器中设置监视地址;以及第二逻辑,用于在预定指令跟随所述第一指令时使所述至少一个核心进入低功率状态;
第一一致性互连,其耦合到所述至少一个核心;
第一输入/输出IO互连,其包括:
轮询表,用于存储包括下列各项的元组:耦合到所述第一IO互连的知识产权块中的寄存器的寄存器标识符、所述存储器中的所述监视地址、以及与所述寄存器相关联的初始值;以及
委托逻辑,用于从所述至少一个核心接收委托消息,并且基于所述元组获得所述寄存器的当前值,直到所述当前值不同于所述初始值,并且响应于所述不同,将数据写入所述监视地址;以及
所述知识产权块,其耦合到所述第一IO互连,所述知识产权块包括所述寄存器,并且用于为在所述至少一个核心上执行的应用程序执行操作;以及
所述存储器,其经由存储器互连耦合到所述第一集成电路,其中所述至少一个核心用于响应于所述数据被写入到所述存储器的所述监视地址而退出所述低功率状态,并且用于在跟随所述预定指令的下一条指令处继续执行所述应用程序。
11.如权利要求10所述的系统,其中,所述知识产权块用于在所述操作完成之后将所述初始值更新为所述当前值。
12.如权利要求10所述的系统,其中,所述至少一个核心用于在执行所述第一指令之前向具有所述元组的所述第一IO互连发送所述委托消息。
13.一种用于实现轮询委托的方法,包括:
在主机处理器和设备之间耦合的互连中接收来自所述主机处理器的注册消息,所述注册消息用于将相对于所述设备的轮询操作委托给所述互连;
将与设备监视位置、存储器监视地址、以及所述设备监视位置的初始值有关的信息存储在与所述互连相关联的轮询表中;以及
将读请求从所述互连发送到所述设备,以对所述设备进行轮询,并且如果从所述设备监视位置获得的设备值不同于所述初始值,则向所述主机处理器报告所述轮询的结果。
14.如权利要求13所述的方法,还包括从所述互连发出对系统存储器中的所述存储器监视地址的写请求,以报告所述结果。
15.如权利要求14所述的方法,还包括从所述互连向所述系统存储器发出消息信令中断,以发出所述写请求。
16.如权利要求15所述的方法,其中,在发送所述注册消息之后,将所述主机处理器置于低功率状态,并且响应于对所述存储器监视地址的所述写请求,所述主机处理器退出所述低功率状态。
17.如权利要求13所述的方法,其中,所述轮询表包括多个条目,每个所述条目包括设备监视位置、存储器监视地址以及初始值,并且所述方法还包括针对所述多个条目中的每个条目,向所述设备发送读请求。
18.如权利要求13所述的方法,还包括使用所述互连的轮询委托逻辑来发送所述读请求并且将所述初始值与所述设备值进行比较。
19.如权利要求13所述的方法,其中,所述设备监视位置对应于所述设备的状态寄存器,并且经由所述轮询表将所述状态寄存器与所述存储器监视地址相关联。
20.如权利要求13所述的方法,还包括经由应用程序来发起所述注册消息,并且为所述应用程序在所述设备上执行第一功能,其中所述应用程序用于在所述信息存储到所述轮询表中之后发起所述第一功能,并且用于使所述主机处理器进入低功率状态。
CN201080025454.4A 2009-06-11 2010-03-11 向另一设备委托轮询操作 Active CN102804155B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/482,614 US8364862B2 (en) 2009-06-11 2009-06-11 Delegating a poll operation to another device
US12/482,614 2009-06-11
PCT/US2010/027003 WO2010144164A1 (en) 2009-06-11 2010-03-11 Delegating a poll operation to another device

Publications (2)

Publication Number Publication Date
CN102804155A CN102804155A (zh) 2012-11-28
CN102804155B true CN102804155B (zh) 2015-07-15

Family

ID=43307351

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080025454.4A Active CN102804155B (zh) 2009-06-11 2010-03-11 向另一设备委托轮询操作

Country Status (4)

Country Link
US (2) US8364862B2 (zh)
CN (1) CN102804155B (zh)
DE (1) DE112010002425B4 (zh)
WO (1) WO2010144164A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9235458B2 (en) * 2011-01-06 2016-01-12 International Business Machines Corporation Methods and systems for delegating work objects across a mixed computer environment
US9052968B2 (en) 2011-01-17 2015-06-09 International Business Machines Corporation Methods and systems for linking objects across a mixed computer environment
EP2573948B1 (en) * 2011-09-23 2017-03-15 Nxp B.V. System and method for commissioning devices
EP2624081B1 (en) 2012-01-31 2018-01-10 Nxp B.V. Configuration method, configuration device, computer program product and control system
US9256573B2 (en) 2013-02-14 2016-02-09 International Business Machines Corporation Dynamic thread status retrieval using inter-thread communication
US10078356B2 (en) * 2015-08-20 2018-09-18 Intel Corporation Apparatus and method for saving and restoring data for power saving in a processor
US9898351B2 (en) * 2015-12-24 2018-02-20 Intel Corporation Method and apparatus for user-level thread synchronization with a monitor and MWAIT architecture
US10025727B2 (en) * 2016-02-05 2018-07-17 Honeywell International Inc. Relay mechanism to facilitate processor communication with inaccessible input/output (I/O) device
US10394747B1 (en) * 2017-05-31 2019-08-27 Mellanox Technologies Ltd. Implementing hierarchical PCI express switch topology over coherent mesh interconnect
US10564995B2 (en) 2017-06-07 2020-02-18 Red Hat, Inc. Dynamic control of halt polling based on receiving a monitoring instruction executed by a guest
CN111737173B (zh) * 2020-06-24 2022-03-22 浪潮(北京)电子信息产业有限公司 I2c总线通信控制方法、装置、系统及可读存储介质
CN113986803B (zh) * 2021-10-21 2024-05-28 山东云海国创云计算装备产业创新中心有限公司 一种i2c总线控制方法、装置、器件及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1508652A (zh) * 2002-12-18 2004-06-30 国际商业机器公司 关注功率的自适应轮询方法和系统
US6892312B1 (en) * 2001-10-30 2005-05-10 Lsi Logic Corporation Power monitoring and reduction for embedded IO processors
CN1776647A (zh) * 2004-11-16 2006-05-24 惠普开发有限公司 处理器中避免竞争的委派写入
CN1864356A (zh) * 2003-08-07 2006-11-15 蒂蒙系统公司 提供自适应轮询的通信系统
US7509540B1 (en) * 2001-03-28 2009-03-24 Shoregroup, Inc. Method and apparatus for maintaining the status of objects in computer networks using virtual state machines
US7516247B2 (en) * 2005-08-12 2009-04-07 Advanced Micro Devices, Inc. Avoiding silent data corruption and data leakage in a virtual environment with multiple guests
CN101442439A (zh) * 2008-12-17 2009-05-27 杭州华三通信技术有限公司 一种上报中断的方法和pci总线系统

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4598363A (en) * 1983-07-07 1986-07-01 At&T Bell Laboratories Adaptive delayed polling of sensors
DE69132280T2 (de) * 1990-09-17 2001-01-18 Cabletron Systems, Inc. System und Verfahren zur Modellierung eines Computer-Netzwerks
US5819028A (en) * 1992-06-10 1998-10-06 Bay Networks, Inc. Method and apparatus for determining the health of a network
US5586297A (en) * 1994-03-24 1996-12-17 Hewlett-Packard Company Partial cache line write transactions in a computing system with a write back cache
US5615323A (en) * 1994-11-04 1997-03-25 Concord Communications, Inc. Displaying resource performance and utilization information
US5903749A (en) * 1996-07-02 1999-05-11 Institute For The Development Of Emerging Architecture, L.L.C. Method and apparatus for implementing check instructions that allow for the reuse of memory conflict information if no memory conflict occurs
KR20000068979A (ko) * 1996-11-14 2000-11-25 존스 웨인 에이. 어플리케이션 프로그램을 위한 다이나믹 오브젝트를 구성하는 범용 소프트웨어 상태 머신 및 방법
US5862338A (en) * 1996-12-30 1999-01-19 Compaq Computer Corporation Polling system that determines the status of network ports and that stores values indicative thereof
US6009488A (en) * 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US6173356B1 (en) * 1998-02-20 2001-01-09 Silicon Aquarius, Inc. Multi-port DRAM with integrated SRAM and systems and methods using the same
US6148337A (en) * 1998-04-01 2000-11-14 Bridgeway Corporation Method and system for monitoring and manipulating the flow of private information on public networks
US6477667B1 (en) * 1999-10-07 2002-11-05 Critical Devices, Inc. Method and system for remote device monitoring
US6704842B1 (en) * 2000-04-12 2004-03-09 Hewlett-Packard Development Company, L.P. Multi-processor system with proactive speculative data transfer
US7028228B1 (en) * 2001-03-28 2006-04-11 The Shoregroup, Inc. Method and apparatus for identifying problems in computer networks
US8009584B1 (en) * 2001-06-11 2011-08-30 GlobalFoundries, Inc. System and method for implementing an IRC across multiple network devices
US7363474B2 (en) * 2001-12-31 2008-04-22 Intel Corporation Method and apparatus for suspending execution of a thread until a specified memory access occurs
US20040052258A1 (en) * 2002-07-08 2004-03-18 Clement Robertson Method and system for prioritizing UTOPIA CLAV status polling
US8762551B2 (en) * 2002-07-30 2014-06-24 Intel Corporation Point coordinator delegation in a wireless network
EP1387279B1 (en) * 2002-07-31 2008-05-14 Texas Instruments Inc. Cache coherency in a multi-processor system
US7213093B2 (en) * 2003-06-27 2007-05-01 Intel Corporation Queued locks using monitor-memory wait
US7353362B2 (en) * 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
US7539974B2 (en) 2003-10-24 2009-05-26 Microsoft Corporation Scalable synchronous and asynchronous processing of monitoring rules
KR100536293B1 (ko) * 2004-02-17 2005-12-12 박현주 칩 설계 검증 장치 및 방법
US20050240806A1 (en) * 2004-03-30 2005-10-27 Hewlett-Packard Development Company, L.P. Diagnostic memory dump method in a redundant processor
GB2414573B (en) * 2004-05-26 2007-08-08 Advanced Risc Mach Ltd Control of access to a shared resource in a data processing apparatus
US7451333B2 (en) * 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
US7257679B2 (en) * 2004-10-01 2007-08-14 Advanced Micro Devices, Inc. Sharing monitored cache lines across multiple cores
US7305526B2 (en) * 2004-11-05 2007-12-04 International Business Machines Corporation Method, system, and program for transferring data directed to virtual memory addresses to a device memory
US8144028B2 (en) * 2005-01-24 2012-03-27 Daniel Measurement And Control, Inc. Method and system of obtaining data from field devices
US7340568B2 (en) * 2005-02-11 2008-03-04 International Business Machines Corporation Reducing number of rejected snoop requests by extending time to respond to snoop request
US20060277594A1 (en) * 2005-06-02 2006-12-07 International Business Machines Corporation Policy implementation delegation
KR101133592B1 (ko) 2005-06-03 2012-04-05 삼성전자주식회사 폴링 메시지 처리 장치 및 그 방법
US20070150671A1 (en) * 2005-12-23 2007-06-28 Boston Circuits, Inc. Supporting macro memory instructions
US7523197B2 (en) * 2006-03-09 2009-04-21 International Business Machines Corporation Method for IP address discovery in rapidly changing network environment
US7797563B1 (en) * 2006-06-09 2010-09-14 Oracle America System and method for conserving power
US8301870B2 (en) * 2006-07-27 2012-10-30 International Business Machines Corporation Method and apparatus for fast synchronization and out-of-order execution of instructions in a meta-program based computing system
US8619652B2 (en) * 2006-12-04 2013-12-31 Samsung Electronics Co., Ltd. System and method for adaptive sleep of wirelessly networked devices
US7937535B2 (en) * 2007-02-22 2011-05-03 Arm Limited Managing cache coherency in a data processing apparatus
US20090019232A1 (en) * 2007-07-11 2009-01-15 Freescale Semiconductor, Inc. Specification of coherence domain during address translation
US8024499B1 (en) * 2008-01-17 2011-09-20 Juniper Networks, Inc. Systems and methods for automated sensor polling
JP5328225B2 (ja) * 2008-05-14 2013-10-30 キヤノン株式会社 デバイス監視装置及びその制御方法、デバイス監視システム、並びにプログラム
US7774522B2 (en) * 2008-11-17 2010-08-10 Applied Micro Circuits Corporation Cache stashing processor control messages
US8209559B2 (en) * 2008-12-24 2012-06-26 Intel Corporation Low power polling techniques
US8799587B2 (en) * 2009-01-26 2014-08-05 International Business Machines Corporation Region coherence array for a mult-processor system having subregions and subregion prefetching
US8631208B2 (en) * 2009-01-27 2014-01-14 Intel Corporation Providing address range coherency capability to a device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509540B1 (en) * 2001-03-28 2009-03-24 Shoregroup, Inc. Method and apparatus for maintaining the status of objects in computer networks using virtual state machines
US6892312B1 (en) * 2001-10-30 2005-05-10 Lsi Logic Corporation Power monitoring and reduction for embedded IO processors
CN1508652A (zh) * 2002-12-18 2004-06-30 国际商业机器公司 关注功率的自适应轮询方法和系统
CN1864356A (zh) * 2003-08-07 2006-11-15 蒂蒙系统公司 提供自适应轮询的通信系统
CN1776647A (zh) * 2004-11-16 2006-05-24 惠普开发有限公司 处理器中避免竞争的委派写入
US7516247B2 (en) * 2005-08-12 2009-04-07 Advanced Micro Devices, Inc. Avoiding silent data corruption and data leakage in a virtual environment with multiple guests
CN101442439A (zh) * 2008-12-17 2009-05-27 杭州华三通信技术有限公司 一种上报中断的方法和pci总线系统

Also Published As

Publication number Publication date
US20100318693A1 (en) 2010-12-16
DE112010002425B4 (de) 2015-02-19
DE112010002425T5 (de) 2012-08-30
CN102804155A (zh) 2012-11-28
US8364862B2 (en) 2013-01-29
US20130138843A1 (en) 2013-05-30
US8762599B2 (en) 2014-06-24
WO2010144164A1 (en) 2010-12-16

Similar Documents

Publication Publication Date Title
CN102804155B (zh) 向另一设备委托轮询操作
US8539245B2 (en) Apparatus and method for accessing a secure partition in non-volatile storage by a host system enabled after the system exits a first instance of a secure mode
US10514990B2 (en) Mission-critical computing architecture
US6421775B1 (en) Interconnected processing nodes configurable as at least one non-uniform memory access (NUMA) data processing system
US7761696B1 (en) Quiescing and de-quiescing point-to-point links
CN106663061B (zh) 用于可编程逻辑的存储器的虚拟化
US11392698B2 (en) Active side-channel attack prevention
CN109716305B (zh) 实现异步高速缓存维护操作的方法、计算设备以及介质
TW200525365A (en) Optimization of SMI handling and initialization
US11868306B2 (en) Processing-in-memory concurrent processing system and method
US20220269433A1 (en) System, method and apparatus for peer-to-peer communication
CN109314103B (zh) 用于远程现场可编程门阵列处理的方法和装置
US20220414020A1 (en) Software interface to xpu address translation cache
CN101676887A (zh) 一种基于ahb总线结构的总线监听方法及装置
US9330024B1 (en) Processing device and method thereof
US9448937B1 (en) Cache coherency
WO2021061374A1 (en) Multi-core processor and inter-core data forwarding method
US20050165974A1 (en) Computer apparatus and computer system
CN113010303A (zh) 一种处理器间的数据交互方法、装置以及服务器
CN117687928B (zh) 一种基于uvm的多处理器芯粒缓存一致性验证模组及方法
US20230280904A1 (en) Monitoring memory locations to identify whether data stored at the memory locations has been modified
US20240231834A1 (en) Boot initialization without home node involvement
CN115794670A (zh) 一种缓存系统及其管理方法
CN116501456A (zh) 用于利用一致性接口的队列管理的系统、方法和设备
Schaelicke et al. Intel Itanium Quad-Core Architecture for Enterprise

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