CN102567109B - 中断分配方案 - Google Patents
中断分配方案 Download PDFInfo
- Publication number
- CN102567109B CN102567109B CN201110402634.6A CN201110402634A CN102567109B CN 102567109 B CN102567109 B CN 102567109B CN 201110402634 A CN201110402634 A CN 201110402634A CN 102567109 B CN102567109 B CN 102567109B
- Authority
- CN
- China
- Prior art keywords
- processor
- interruption
- interrupt
- response
- interruptable controller
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/24—Interrupt
- G06F2213/2424—Interrupt packet, e.g. event
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
Abstract
本公开涉及中断分配方案。在一个实施例中,一种中断控制器可实现在多个处理器之间分配中断的中断分配方案。该方案可在确定哪个处理器应该接收给定中断时考虑各种处理器状态。例如,处理器状态可包括处理器是否处于休眠状态、中断是否被许可、处理器是否已响应先前中断等。中断控制器可实现用于检测中断正被延迟(例如,在被提供给处理器之后)的超时机制。中断可在超时期满时被重新评估,并且有可能被提供给另一处理器。中断控制器可被配置为响应于把中断的中断向量传送给响应处理器自动地并且原子地屏蔽中断。
Description
技术领域
本发明涉及中断控制器的领域。
背景技术
数字系统通常包括执行软件的一个或多个处理器和能够由软件控制的各种硬件装置。例如,数字系统包括:计算机系统,诸如桌上型计算机、膝上型计算机、上网型计算机、服务器、工作站等;移动装置,诸如蜂窝电话、个人数字助手、智能电话等;和其它专用装置。硬件装置可通常提供某种功能,诸如存储(例如,盘驱动器、闪存、光学驱动器等)、通信(例如,联网、无线操作等)和其它输入/输出功能(触摸屏、键盘、鼠标、显示器、音频等)。
硬件装置典型地被设计为在没有软件干预的情况下在一段时间期间工作。当需要软件干预时(例如,当需要执行与装置对应的驱动程序时),硬件装置可发信号通知中断。该中断可被传送到系统中的处理器之一,该处理器能够挂起任务的执行以执行与该中断对应的代码(例如,中断服务例程代码和/或驱动程序代码)。
当系统包括超过一个处理器时,给定中断需要被提供给处理器之一(并且仅被提供给处理器之一)。能够使用静态分配方案,其中,每个装置的中断被映射到特定处理器并且映射不会非常频繁地改变。也就是说,同一处理器通常服务于给定中断。如果目标处理器不能立即响应中断,则这种静态方案可导致较长的中断时延。如果多个处理器能够接收给定中断,则当这些处理器试图响应该中断时存在竞争状况。这种竞争状况能够减小系统的性能和/或功率效率。
发明内容
在一个实施例中,一种中断控制器可实现在多个处理器之间分配中断的中断分配方案。该方案可在确定哪个处理器应该接收给定中断时考虑各种处理器状态。例如,处理器状态可包括:处理器是否处于休眠状态、中断是否被许可、处理器是否已响应先前中断等。通过在分配中断时考虑处理器状态,在一些实施例中可减少中断时延。另一方面或者除此之外,中断控制器可实现用于检测中断被延迟(例如,在被提供给处理器之后)的超时机制。中断可在超时期满时被重新评估,并且可能被提供给另一处理器。
在实施例中,中断控制器可被配置为响应于把中断的中断向量传送给响应处理器自动地并且原子地(atomically)屏蔽中断。作为原子屏蔽的一部分,中断控制器可使来自处理器的中断确认串行化(serialize)。因此,在这种实施例中,每个中断被传送给一个处理器并且不超过一个处理器。
附图说明
下面的详细描述参考附图,现在简要地描述附图。
图1是包括处理器、中断控制器和发出中断的各种装置的系统的一个实施例的方框图。
图2是表示把中断路由至处理器的中断控制器的一个实施例的操作的流程图。
图3是表示响应于来自处理器的中断确认的中断控制器的一个实施例的操作的流程图。
图4是表示识别用于中断的合格处理器的中断控制器的一个实施例的操作的流程图。
图5是表示选择合格处理器的中断控制器的一个实施例的操作的流程图。
图6是更详细的中断控制器的一个实施例的方框图。
图7是图6中示出的屏蔽/SW Or电路的一个实施例的方框图。
图8是图6中示出的中断路由器电路的一个实施例的方框图。
图9是图6中示出的中断控制器中的超时的一个实施例的方框图。
图10是包括中断控制器的系统的另一实施例的方框图。
图11是系统的另一实施例的方框图。
具体实施方式
尽管本发明存在各种变型和替换形式,但在附图中作为示例显示其特定实施例并且在本文将会详细地描述特定实施例。然而,应该理解,附图及其详细描述并非意图把本发明限制于公开的特定形式,相反地,本发明应该包括落在由所附权利要求定义的本发明的精神和范围内的所有变型、等同物和替换物。本文使用的标题仅用于组织目的而非意图用于限制描述的范围。如整个本申请中所使用的,词语“可以”在允许的意义上使用(即,意味着具有可能性)而非在强制的意义上使用(即,意味着必须)。类似地,词语“包括”意味着包括但不限于。
各种单元、电路或其它部件可描述为“被配置为”执行一个任务或多个任务。在这种情况下,“被配置为”是配置的广义列举,通常是指“具有”在工作期间执行所述一个任务或多个任务的“电路”。如此,即使当单元/电路/部件当前未工作时,单元/电路/部件也能够被配置为执行任务。通常,形成与“被配置为”对应的配置的电路可包括实现操作的硬件电路。类似地,为了描述的方便,各种单元/电路/部件可描述为执行一个任务或多个任务。这种描述应该解释为包括词语“被配置为”。列举被配置为执行一个任务或多个任务的单元/电路/部件明确地不希望对该单元/电路/部件援引35 U.S.C.§112的第六段解释。
具体实施方式
以下描述用于处理系统中的中断的各种实施例。通常,中断可以是从装置(例如,外设装置)到处理器的通信,该通信使处理器挂起该处理器当前正在执行的代码的执行,以便执行与该中断对应的代码。来自装置的中断的通信可以具有各种形式(例如,信号的断言(assertion)、中断消息的发送等)。装置可使用中断来执行中断服务例程代码和/或驱动程序代码。一旦处理器已采取至少一些步骤处理中断,挂起的代码的处理可继续。在一些情况下,挂起的代码可保持挂起,直至中断被完全处理。在其它情况下,可采用延期的中断处理方案,其中,中断服务例程代码记录中断以供稍后处理,然后返回到挂起的代码。
中断控制器可从系统中的各种装置接收中断,并且可把中断提供给处理器。提供中断可通常表示把中断的指示发送给处理器。在一些实施例中,可通过向处理器断言中断请求信号来提供中断。在其它实施例中,可通过把识别中断的消息发送给处理器来提供中断。处理器可以以各种方式响应中断。例如,处理器可发送指示中断的接受的中断确认。中断确认可以以各种形式被发送。例如,中断确认可以是对被指定为中断确认寄存器的寄存器的寄存器读操作。中断确认可以是处理器的接口上的特定发送。在其它实施例中,处理器可发送中断的接受或拒绝。
在以下将会更详细地强调,在一些实施例中,中断控制器可考虑可能影响处理器接受中断(或者以低时延接受中断)的能力的各种处理器状态。因此,中断控制器可基于在给定中断时的各个处理器的处理器状态动态地识别接受给定中断的处理器。同一中断的随后发生可基于在随后发生时的不同的处理器状态被提供给不同的处理器。在一些实施例中,基于处理器状态选择处理器可导致更低的总体中断时延。通常,处理器状态可包括直接编程到处理器的状态(例如,中断许可/禁止、权限级别等)和/或直接应用于处理器的状态(例如,电源选通、时钟选通等)。
在一些实施例中,中断控制器可被配置为响应于正在由处理器接受的中断原子地屏蔽中断。以这种方式,中断控制器可避免把同一中断发送给超过一个处理器。另外,中断的源可以是电平敏感的,因此,中断可保持被断言直至源接收到所希望的处理。屏蔽可防止中断被再次报告,直至屏蔽明确地被软件改变。中断的自动屏蔽也可允许中断确认是无状态的。例如,中断控制器不需要知道处理器是否正忙于处理中断。因此,与其它中断机构相比,该中断控制器的设计可以简化。
图1是包括多个处理器60A-60B、中断控制器50、电源管理器52和多个外设64A-64B的系统5的一个实施例的方框图。外设64A-64B可耦接到中断控制器50并且可被配置为把中断用信号发送给中断控制器50(图1中的“中断”)。电源管理器52可包括脱机寄存器54并且可耦接到中断控制器50。特别地,脱机寄存器54的内容和与处理器60A-60B相关的附加处理器状态(图1中的“PState”)可由电源管理器52提供给中断控制器50。处理器60A-60B可耦接到电源管理器52并且耦接到中断控制器50。特别地,处理器60A-60B可分别把附加处理器状态(“PState”)提供给中断控制器50,并且处理器60A-60B可分别从中断控制器50接收中断请求(“IRQ”)。处理器60A-60B和中断控制器50可另外经中断控制器寄存器接口62(图1中的IC Reg接口)耦接。中断控制器50可进一步包括屏蔽寄存器56和至少一个超时寄存器58。
在实施例中,中断控制器50耦接以接收处理器60A-60B的PState,并被配置为在确定哪个处理器60A-60B应该被提供中断时包括PState。因此,根据与处理器关联的当前PState,可动态地为给定中断确定选择的处理器60A-60B。中断控制器50可把中断提供给选择的处理器60A-60B(例如,通过向图1中的选择的处理器60A-60B断言IRQ)。例如通过把中断确认(IAck)发送给中断控制器50,处理器60A-60B可接受中断。通过在把中断路由至给定处理器60A-60B的判决中包括处理器状态,可通过减少从把中断提供给处理器60A-60B到该处理器接受中断的时延来减少总体的中断处理的时延。
由中断控制器50监测的处理器状态可包括可能影响处理器响应中断的能力的任何状态。例如,来自电源管理器52的处理器状态可包括处理器的功率状态。如果处理器60A-60B处于低功率状态(诸如,休眠状态),则处理器可能需要时间转变到更高的功率状态(诸如,完全工作状态)以响应中断。因此,已经处于更高功率状态的处理器可能是提供中断的更好选择。来自电源管理器54的处理器状态可进一步包括来自脱机寄存器54的脱机状态。脱机状态可由在系统5上执行的软件编程。如果在脱机寄存器54中给定处理器被指示为脱机,则该处理器可能无法服务于中断,因此不可以被选择为被提供中断。
来自处理器60A-60B的处理器状态可包括中断当前在该处理器中是否被许可(enable)的指示。与当前许可中断的处理器相比,当前禁止中断的处理器不太可能快速接受提供的中断。在一个实施例中,处理器60A-60B可包括存储中断许可或中断禁止位的寄存器。这个位可由处理器60A-60B输出以用于外部监测。来自处理器60A-60B的其它处理器状态可包括例如处理器的权限状态的指示。处于低权限状态(例如,用户状态)的处理器可以执行应用代码,而处于更高权限状态(例如,管理程序状态)的处理器可以执行操作系统代码。与处于较高权限状态的处理器相比,处于较低权限状态的处理器可能是提供中断的更好选择。在各种实施例中可考虑任何其它处理器状态。
在支持处理器和中断控制器的虚拟化的实施例中,可考虑附加处理器状态以用于对中断路由。在这种环境中,外设装置(以及因此它的中断)可能专用于客机操作系统(OS)。也就是说,该装置可以被分派用于一个客机OS,并且不可由系统上执行的其它客机OS使用,直至该装置不再被分派给该客机OS。对于专用于客机OS的中断,如果中断被路由至已经执行该客机OS的处理器之一,则可能缩短中断时延。每个处理器可被配置为把正在该处理器上执行哪个客机OS的指示提供给中断控制器(例如,客机标签),并且中断控制器可被配置为在选择向其路由中断的处理器时考虑该指示。可支持超时以确定选择的处理器未响应中断,并且响应于超时可选择执行管理程序/虚拟机监测程序的处理器。如果没有处理器正在执行所希望的客机OS,则可使用其余路由规则选择处理器。在一些实施例中,不同的中断指示可用于中断管理程序/虚拟机监测程序(例如,对于管理程序/虚拟机监测程序和客机中的每一个可存在单独的IRQ)。在这种实施例中,当未在任何处理器上执行所希望的客机OS时可断言管理程序/虚拟机监测程序IRQ。
在实施例中,中断控制器50可支持一个或多个超时。响应于把中断提供给选择的处理器,中断控制器50可利用来自超时寄存器58的对应超时值初始化超时计数器。如果在选择的处理器未响应中断的情况下超时期满,则中断控制器50可重新评估中断并把中断提供给另一处理器。因此,如果最初选择的处理器在响应方面延迟,则可选择另一处理器并且该处理器可以进行响应。在一个实施例中,不从先前选择的处理器取消所述提供。因此,无论哪个处理器先响应,该处理器都可被提供中断。在其它实施例中,可从先前选择的处理器取消所述提供(例如,通过取消断言它的IRQ)。
超时可以是可软件编程的,并且可基于某些事件的预期时延。例如,如果中断在处理器中被禁止,则它们可以在典型的时间量(例如,20微秒)期间保持被禁止。超时可被编程为稍微长于该典型时间,从而如果中断在典型时间量期间被禁止,则处理器可在超时发生之前许可中断并接受中断。如果处理器处于低功率状态,则在处理器脱离低功率状态的同时可能逝去某时间量(例如,60毫秒)。超时可被编程为稍微长于这个时间量,从而处理器可在超时发生之前达到完全工作状态并接受中断。
在实施例中,可支持多个超时值并且多个超时值可被编程到超时寄存器58中。每个超时值可对应于处理器状态和相关联的中断接受时延。响应于选择向其提供中断的处理器,中断控制器50可利用与该处理器的状态对应的超时初始化超时计数器。在另一实施例中,超时值既可取决于选择的处理器的当前状态,又可取决于在当前选择的处理器超时的情况下可能选择的下一个处理器的当前状态。如果中断被提供给处理器并且在处理器执行中断确认之前超时期满,则处理器可被视为无响应并且处理器的未响应可能影响随后的中断路由操作。
除了针对每个处理器测量的超时值(例如,从IRQ断言到经中断确认的中断接受)之外,可针对每个中断测量超时。可测量从中断路由至给定处理器到服务于中断的中断超时。类似于以上讨论的处理器的超时期满,中断超时的期满可导致中断被重新评估并且中断被提供给不同的处理器。在一个实施例中,中断超时可以不使处理器被视为无响应,因此可以不影响随后的中断路由操作。
在一个实施例中,中断控制器50可响应于来自处理器的中断确认原子地屏蔽被传输给处理器的中断。中断控制器50可包括屏蔽寄存器56,屏蔽寄存器56可包括针对由中断控制器50支持的每个中断的屏蔽位。中断控制器50可将屏蔽位设置为屏蔽状态以屏蔽中断。屏蔽位也可以被设置为非屏蔽状态以便不屏蔽中断。在实施例中,屏蔽状态是置位状态并且非屏蔽状态是清零状态,但在其它实施例中可使用相反的状态分配。
为了原子地屏蔽中断,中断的屏蔽生效以使得即使尽快地接收到随后的中断确认也不会响应于该随后的中断确认提供中断。如果,例如,在中断控制器50中存在流水线,则在随后的中断确认可访问中断状态之前可以一直对屏蔽的生效执行流水线操作。在一个实施例中,中断控制器50可以使中断确认串行化,防止一个中断确认检测到由前一中断确认屏蔽的中断。需要注意的是,中断的原子屏蔽可独立于以上讨论的处理器状态意识中断路由而实现,并且也可以实现于单处理器实施例中。
如上所述,脱机状态可由系统5上(例如,处理器60A-60B上)执行的软件编程,以指示某些处理器不可用于中断。相比之下,处于低功率状态的处理器可能在接受中断时经历较长的时延,但低功率状态的处理器仍然可用于中断。在一个实施例中,中断控制器50不把中断提供给脱机处理器。可能存在各种通过使给定处理器脱机而使软件防止把中断路由至该给定处理器的原因。例如,处理器可能正在执行重要的代码序列,并且从简单性立场或者安全性立场可能希望防止中断。例如,代码列可以是启动代码序列。可视为重要的其它代码序列是访问敏感存储位置(诸如,存储机密的位置)的代码序列。其它例子可以与功率相关。也就是说,如果处理器脱机,则在整体上对于系统而言可能更加功率有效。在系统的热封套中可能没有足够的空间使处理器联机。也就是说,如果处理器联机,则温度可能增加太多。
如以上所讨论,中断控制器50可被配置为把中断提供给处理器。在示出的实施例中,可断言IRQ信号以提供中断。其它实施例可把中断消息发送给处理器,该处理器可捕捉并确认该消息。处理器可以以任何所希望的方式响应所述提供。例如,可发送以上讨论的中断确认(IAck)。处理器正在接受由中断控制器提供的中断的任何肯定确认可构成响应。其它实施例仍可明确地接受或拒绝提供的中断。
外设装置64A-64B可包括任何希望的输入/输出装置或系统5中所包括的其它硬件装置。例如,外设64A-64B可包括联网外设,诸如一个或多个联网媒体访问控制器(MAC)(诸如,以太网MAC或无线保真(WiFi)控制器)。包括各种音频处理装置的音频单元可以被包括在外设64A-64B中。一个或多个数字信号处理器可以被包括在外设64A-64B中。外设64A-64B可包括任何其它所希望的功能,诸如定时器、片上机密存储器、加密引擎等或者它们的任何组合。外设64A-64B可包括图形处理硬件、视频处理硬件、视频编码器/解码器和/或显示硬件。
每个外设装置64A-64B可以把一个或多个中断发送给中断控制器50。在示出的实施例中,每个外设装置64A-64B可包括用于把中断通过信号发送给中断控制器50的中断信号。一些装置可包括多个中断信号。另外,其它装置可使用中断消息传送中断和相关状态,如果存在中断和相关状态的话。
处理器60A-60B可实现任何指令集架构,并且可被配置为执行该指令集架构中定义的指令。处理器60A-60B可采用任何微架构,包括标量、超标量、流水线、超流水线、乱序、顺序、猜测、非猜测等或者它们的组合。处理器60A-60B可包括电路,并且可选地可实现微编码技术。处理器60A-60B不需要是对称的。也就是说,处理器60A-60B可以不同,可以执行不同的指令集等。例如,处理器60A-60B可包括通用中央处理单元(CPU)、专用处理器、嵌入式处理器、数字信号处理器等。
除了把PState提供给中断控制器50以及从中断控制器50接收IRQ之外,处理器60A-60B可实现接口62以与中断控制器50通信。接口62可在处理器60A-60B和中断控制器50之间传送寄存器访问操作(例如,读和写)。这些操作可包括可由中断控制器50解码的地址以识别正在读/写的寄存器。该地址可以是处理器60A-60B的存储地址空间的一部分(也就是说,寄存器可以是存储器映射的)。另一方面,该地址可以是配置空间、I/O空间或者任何其它地址空间的一部分。
寄存器访问操作之一可以是对IAck寄存器的读操作。IAck寄存器读操作可以是以上讨论的中断确认,并且响应于IAck寄存器读操作返回的数据可以是与正被传送给处理器的中断对应的中断向量。其它寄存器访问操作可以是脱机寄存器54和超时寄存器58的读或写。可以使用两种寄存器写操作更新屏蔽寄存器56。对置位屏蔽寄存器的写操作可在屏蔽寄存器中使一个或多个屏蔽位置位(例如,使识别的屏蔽位处于屏蔽状态)。对清零屏蔽寄存器的写操作可使一个或多个屏蔽位清零(例如,使识别的屏蔽位处于非屏蔽状态)。置位屏蔽寄存器和清零屏蔽寄存器可具有可由中断控制器50解码的不同地址以置位或清零屏蔽寄存器中的位。也就是说,置位屏蔽寄存器和清零屏蔽寄存器可能在物理上不存在,但是可以指定屏蔽寄存器上发生的操作。类似地,IAck寄存器可能在物理上不存在,但是可导致把中断向量传送给对该寄存器进行读操作的处理器。其它寄存器访问操作可读/写中断控制器50中的其它寄存器(图1中未示出)。
接口62可具有任何配置。例如,接口62可以是也用于发送来自处理器60A-60B的存储器操作和其它类型操作的通用接口(例如,总线、点到点互连等)。接口62可经过处理器60A-60B和中断控制器50之间的一个或多个其它单元。例如,在图10示出的实施例中,该接口可经过桥/DMA单元。
如上所述,处理器60A-60B可以处于各种功率状态。在完全工作状态下,处理器可以准备好执行指令并且可以接受中断。完全工作状态可包括可支持操作的多个电压/频率对(例如,取决于工作负荷、可用功率等)。也可以存在一种或多种低功率状态。在低功率状态下,处理器60A-60B可以是空闲的(未在执行指令)并且可能需要一段时间转变到完全工作状态。转变的时间段可取决于具体的低功率状态。例如,处理器可能是时钟选通的,其中,在该处理器中时钟不切换(toggle)。可能需要几个周期来重新启动时钟并使处理器准备执行。在另一低功率状态下,到处理器中的逻辑电路的电源可能是选通的,但处理器中的存储器阵列(诸如,高速缓存)可能仍然被供电。从这种电源选通状态返回到完全工作状态可包括为逻辑电路上电并等待电源稳定。在另一低功率状态下,到处理器逻辑电路和存储器阵列的电源可以是选通的。从这种电源选通状态返回可包括为电路上电,并且可还包括初始化存储器阵列。可存在其它低功率状态。各种低功率状态也可以在处理器中称为休眠状态。
需要注意的是,与中断的处理相关的系统5中的各种互连显示在图1中。然而,根据需要,可提供各种其它互连。另外,在系统5中可提供各种其它部件(例如,存储器控制器、耦接到存储器控制器的存储器等)。还需要注意的是,图1中表示的一个或多个部件和/或其它部件可集成在单个集成电路上作为片上系统。可以存在任何数量的图1中示出的各种部件(例如,任何数量的处理器60A-60B、任何数量的外设64A-64B等)。
现在参照图2,显示了表示把中断路由至处理器的中断控制器50的一个实施例的操作的流程图。尽管为了容易理解而按照特定次序显示方框,但可使用其它次序。方框可以在中断控制器50中的组合逻辑中并行地执行。可以在多个时钟周期上对方框、方框的组合和/或作为整体的流程图执行流水线操作。中断控制器50可被配置为执行图2中表示的操作。
使用与各个处理器60A-60B对应的PState,中断控制器50可被配置为识别哪些处理器60A-60B符合被提供中断的条件(方框70)。如果给定处理器的PState(可能与其它处理器的PState相比)指示把中断提供给该处理器是可接受的,则该处理器可能符合被提供中断的条件。某些处理器可能是不合格的。例如,已被提供了中断并且超时的处理器可能不符合中断的条件。除了接受中断之外,在执行拒绝中断的通信的实施例中,已拒绝了中断的处理器可能不合格。脱机的处理器可能不合格。另外,给定中断可能被指定以处理器60A-60B的子集为目标(例如,作为中断消息的一部分,或者经由与中断关联的可编程状态)。不作为目标的处理器可能不合格。
中断控制器50可被配置为选择合格的处理器之一(方框72),并把中断提供给选择的处理器(例如,向选择的处理器断言IRQ)(方框74)。中断控制器50可被配置为在一些实施例中可能基于选择的处理器的PState初始化针对选择的处理器的超时计数器(方框76)。中断控制器50可被配置为确定中断是否已被接受(判决方框78)。例如,中断控制器50可检测来自处理器的中断确认。如果中断被接受(判决方框78,“是”分支),则中断的路由可完成。如果中断还未被接受(判决方框78,“否”分支)并且当前被提供中断的处理器的超时未期满(判决方框80,“否”分支),则中断控制器50可继续检查超时和中断接受。如果中断还未被接受(判决方框78,“否”分支)并且检测到被提供中断的处理器的超时(判决方框80,“是”分支),则中断控制器50可认为该处理器不符合该中断的条件(方框82),并且可选择向其提供中断(方框74)的另一合格的处理器(方框72)。
接下来参照图3,示出了表示响应于中断确认(IAck)的中断控制器50的一个实施例的操作的流程图。尽管为了容易理解而按照特定次序显示方框,但可使用其它次序。方框可以在中断控制器50中的组合逻辑中并行地执行。可以在多个时钟周期上对方框、方框的组合和/或作为整体的流程图执行流水线操作。中断控制器50可被配置为执行图3中表示的操作。
中断控制器50可返回识别被路由至处理器的中断的中断向量(方框84)。如果超过一个中断被同时提供给处理器,则中断控制器50可选择提供的中断之一。例如,可选择最低编号的中断向量,或者可接受最高编号的中断。在另一例子中,可选择最早的中断。在中断之间实现优先级的实施例中,可选择最高优先级中断。可随机选择中断。中断控制器50也可以原子地屏蔽由中断向量识别的中断(方框86)。
接下来参照图4,示出了表示由中断控制器50识别合格处理器的一个实施例的流程图(图2的方框70)。尽管为了容易理解而按照特定次序显示方框,但可使用其它次序。方框可以在中断控制器50中的组合逻辑中并行地执行。可以在多个时钟周期上对方框、方框的组合和/或作为整体的流程图执行流水线操作。中断控制器50可被配置为针对系统中的每个处理器执行图4中表示的操作。
如果处理器脱机(如脱机寄存器中所指示)或者如果中断已被路由至处理器(判决方框90的“是”分支和判决方框92的“是”分支),则中断控制器可被配置为把该处理器识别为不合格(方框94)。如果不存在这种情况并且处理器处于休眠状态或其它低功率状态(判决方框96,“是”分支),则中断控制器50可被配置为把该处理器识别为合格并且把该处理器包括在合格组3中(方框98)。如果处理器未脱机、未被路由、并且未处于休眠状态(判决方框90、92和96,“否”分支),并且或者处理器无响应,或者中断在处理器中被禁止(判决方框100,“是”分支),则中断控制器50可被配置为把该处理器识别为合格并且把该处理器包括在合格组2中(方框102)。
如前所述,在一些实施例中,处理器60A-60B的子集可被识别为给定中断的目标。在这种实施例中,仅目标子集中所包括的处理器可以是合格的处理器。不在目标子集中的处理器可以按照与脱机处理器类似的方式被对待,因为它们不会被选择为被提供中断。
在实现中断的优先级的实施例中,优先级也可用作识别合格的处理器的因素。例如,如果处理器当前正在处理较高优先级中断,则该处理器可被视为不符合中断的条件(或者与一些其它处理器相比不太合格)。正在处理较低优先级中断的处理器可以被中断以处理更高优先级中断,因此可被视为对于更高优先级中断是合格的。
可按照次序或者按照偏好对合格的处理器的分组提供中断,其中,组1是最优选的;组2是次优选的;组3是合格的处理器中最不优选的。组1处理器不处于低功率状态,响应中断,并且不禁止中断,因此它们最可能以低时延接受提供的中断。组2处理器也不处于低功率状态,但可能无响应或者可能当前禁止中断。因此,平均而言,与组1相比,可预期更高的时延。组3处理器处于低功率状态,因此平均而言,对于这组可预期最高的时延。
基于以上讨论,图5的流程图可表示在中断控制器50中选择合格处理器的一个实施例(图2中的方框72)。尽管为了容易理解而按照特定次序显示方框,但可使用其它次序。方框可以在中断控制器50中的组合逻辑中并行地执行。可以在多个时钟周期上对方框、方框的组合和/或作为整体的流程图执行流水线操作。中断控制器50可被配置为执行图5中表示的操作。
如果组1不是空的(判决方框106,“否”分支),则中断控制器50可被配置为从组1选择处理器(方框108)。如果组1是空的而组2不是空的(判决方框106的“是”分支和判决方框110的“否”分支),则中断控制器50可被配置为从组2选择处理器(方框112)。如果组1和2是空的而组3不是空的(判决方框106和110的“是”分支以及判决方框114的“否”分支),则中断控制器50可被配置为从组3选择处理器(方框116)。在给定组内,可选择任何合格的处理器。例如,可选择最低编号的处理器,或者可选择最高编号的处理器。可随机选择处理器,或者可选择最近未被选择的处理器。
现在参照图6,示出了中断控制器50的一个实施例的方框图。在图6的实施例中,中断控制器50包括:寄存器接口单元120、屏蔽/软件(SW)OR单元122、中断路由器124和多个处理器调度器(诸如,处理器调度器126A-126B)。寄存器接口单元120可耦接到IC寄存器接口62以及屏蔽/SW OR单元122、中断路由器124并且可选地耦接到处理器调度器126A-126B。通常,寄存器接口单元120可耦接到可经接口62上的寄存器读/写操作控制或更新的中断控制器50中的任何其它部件。屏蔽/SW OR单元122可包括屏蔽寄存器56,可被耦接为接收来自系统中的各种中断源的中断,并且可耦接到中断路由器124。中断路由器124可被耦接为接收处理器的脱机状态和其它PState,可包括超时寄存器58,并且可耦接到处理器调度器126A-126B。每个处理器调度器126A-126B可被耦接为把IRQ信号提供给对应的处理器60A-60B。
屏蔽/SW OR单元122可被配置为把屏蔽应用于从中断源(例如,外设64A-64B)接收的中断,把屏蔽的中断提供给中断路由器124。在实施例中,屏蔽/SW OR单元122也可提供在处理器上执行软件以引起中断的机制(就好像对应的源已断言中断一样)。软件可发送接口62上的寄存器访问操作以实现所希望的中断。屏蔽/SW OR单元122可对软件中断与从各个源接收的实际中断执行逻辑OR以产生每个中断,并且可根据屏蔽寄存器56屏蔽进行了逻辑OR的中断以产生屏蔽的中断。其它实施例可以不执行软件OR并且可简单地屏蔽从中断源接收的中断以把屏蔽的中断提供给中断路由器124。
中断路由器124可接收屏蔽的中断,并且可被配置为基于脱机状态、PState、超时等把中断路由至处理器。也就是说,在一个实施例中,中断路由器124可执行图2的流程图。中断路由器可发信号通知与对其路由中断的处理器对应的处理器调度器126A-126B。
每个处理器调度器126A-126B可被配置为响应于从中断路由器124接收中断把IRQ信号断言给对应的处理器60A-60B。IRQ信号可以是一般的中断请求信号。各种处理器实现方式也可以支持专用中断或其它中断。例如,除了IRQ之外,一些实施例可支持低时延中断。除了图6中显示的外部装置中断之外,实施例可支持各种定时器中断。处理器调度器126A-126B可被配置为除了外部装置中断之外还调度IRQ信号的定时器中断,和/或可调度其它中断的定时器中断并且可调度其它类型的中断。
寄存器接口单元120可被配置为对来自接口62的寄存器访问操作解码,并与中断控制器50的其它部件交互以完成寄存器访问操作。对于寄存器读操作,寄存器接口单元120可被配置为把寄存器读操作读取的数据返回到启动(initiating)处理器。寄存器接口单元120可被配置为对寄存器访问操作的地址解码以确定哪个寄存器正被访问。另外,源处理器可进一步识别哪个寄存器正在被访问(例如,对于每个处理器的寄存器,诸如IAck命令的IAck寄存器)。
现在参照图7,示出了与一个中断对应的屏蔽/SW OR单元122的一部分的一个实施例的方框图。可以为每个其它中断提供类似的电路。图7中示出的电路是表示单元122的操作的一个实施例,并且可使用包括图7中示出的电路的任何布尔(Boolean)等同物的其它实现方式。图7的实施例包括屏蔽触发器130、OR门132、软件中断触发器134、OR门136和AND门138。
屏蔽触发器130可存储用于中断的屏蔽位(因此,与用于其它中断的类似触发器一起,可以是屏蔽寄存器56的一部分)。屏蔽位在这个实施例中可以置位以屏蔽中断,并且可以清零以便不屏蔽中断。因此,屏蔽触发器130的反相输出被提供给AND门138以屏蔽由OR门136输出的中断(硬件或软件产生的)。也就是说,如果屏蔽位置位,则屏蔽触发器130的反相输出清零并且AND门138的输出清零。如果屏蔽位清零,则屏蔽触发器130的反相输出置位并且中断经过AND门138作为屏蔽的中断。因此,在这个实施例中,中断是高电平有效的。其它实施例可使用低电平有效的中断并且可使用NAND门。OR门136对外部中断与软件中断触发器134的输出执行逻辑OR。因此,如果断言了外部(硬件)中断或者软件已断言了中断,则由OR门136输出的中断被断言。
响应于使这个中断被传送给确认处理器的IAck周期,或者响应于软件经对置位屏蔽寄存器的写操作设置屏蔽(OR门132),可在触发器130中置位屏蔽位。由中断控制器硬件响应于IAck周期自动置位屏蔽位可实现屏蔽位的原子置位。下一个IAck周期可因此接收不同的中断(由于这个中断现在被屏蔽),因此可正确地处理由多个处理器读取中断的竞争状况。也允许软件置位屏蔽位可允许软件有效地禁止中断。例如,在服务于中断之后,软件也可以使屏蔽位清零。
在示出的实施例中,软件可通过对置位屏蔽寄存器执行写操作来置位屏蔽寄存器56中的屏蔽位。写数据中的置位位可识别哪些屏蔽位要置位。寄存器接口单元120可对置位屏蔽寄存器写操作解码,并且可基于写数据断言SW置位屏蔽信号。类似地,软件可对清零屏蔽寄存器执行写操作,并且写数据中的置位位可识别哪些屏蔽位要清除。寄存器接口单元120可对清零屏蔽寄存器写操作解码,并且可基于写数据断言SW clr屏蔽信号。
以类似的方式,软件可利用置位中断寄存器写操作触发一个或多个中断。写数据可识别哪些屏蔽位要置位,并且寄存器接口单元120可断言对应的SW置位int信号以置位触发器134。为了清除软件产生的中断,软件可发出清除中断寄存器写操作。写数据可识别对哪些中断位清零(例如,利用在写数据中的相应的位位置的置位位),并且寄存器接口单元120可断言对应的SW clr int信号。
触发器130和134都表示为具有置位和清零输入。触发器可以以任何所希望的方式实现(例如,置位复位(SR)触发器、具有基于置位或清零输入来置位或清零触发器的逻辑的D触发器等)。
图8是针对中断之一的中断路由器124的一个实施例的方框图。可以为每个其它中断提供类似的电路。在图8的实施例中,中断路由器124可包括:路由选择电路140、超时控制单元142(包括超时寄存器58)和一组路由触发器144A-144B。可存在每处理器60A-60B一个路由触发器144A-144B。
路由选择电路140可接收脱机状态和PState以及来自屏蔽/SWOR单元122的屏蔽的中断。路由选择电路140可实现图2中表示的操作以识别合格的处理器(方框70)并选择合格的处理器(方框72)。在一些实施例中,路由选择电路140可实现图4和5中表示的实施例。路由选择电路140可输出SetRoute信号(被配置成服务于中断的每个处理器一个信号)。可断言针对选择的处理器的SetRoute信号,并且可取消断言其它SetRoute信号。每个SetRoute信号可耦接到各触发器144A-144B的置位输入,它们分别可以是输出到调度器126A-126B的信号。
在这个实施例中,中断可保持被路由至给定处理器,直至屏蔽的中断被取消断言(“中断取消断言”,耦接到每个触发器144A-144B的清零输入)。也就是说,中断保持被路由直至它被处理器接受。因此,即使中断超时并且中断被路由至另一处理器,它也保持被路由至“超时”处理器。以这种方式,如果处理器超时但随后准备好响应中断,则仍可以在随后的时间断言到该处理器的IRQ。其它实施例可在超时时或者在中断被提供给另一处理器的任何时间清除路由状态。
超时控制单元142可包括基于编程到寄存器58的超时值测量超时的电路。也就是说,超时控制单元可包括用于对针对处理器超时的IRQ断言和接受(或超时)之间的时间计数的计数器、以及用于对把中断路由至给定处理器和对服务于中断(或者中断的超时)之间的时间计数的计数器。如果检测到超时,则超时控制单元142可被配置为向路由选择电路140断言超时,路由选择电路140可重新评估该中断并选择对其路由中断的处理器。超时控制单元142可实现图2的方框76和80中表示的操作(并且路由选择140可响应于超时实现方框82)。
需要注意的是,超时控制单元142可对于每个中断实现2个计数器,并且可存在相对较大数量的中断。在实施例中,计数器可由各种超时共享以减少超时计数器的硬件成本。可实现该共享的实施例显示在图9中。在图9的实施例中,显示了自由运行的计数器150,该计数器150在输入到该计数器的时钟的每个时钟周期递增。基于应用于该计数器的时钟的频率和所希望的超时的范围,计数器150可在各种实施例中实现任何位数。
计数器150的位可耦接到复用器152和154。基于来自超时寄存器58的处理器超时控制复用器152,并且基于来自超时寄存器58的中断超时控制复用器154。更具体地讲,由复用器152和154选择的位可以是预期在请求的超时时间段内两次把状态改变为逻辑1的位。选择的位随后被分别提供给上升沿检测电路156和158,这产生报时(tick)信号。每次选择的位从逻辑0变为逻辑1时,断言报时信号。
来自电路156的报时信号可耦接到处理器超时控制单元142A。处理器超时控制单元142A可被配置为响应于来自对应处理器的IAck或者响应于取消断言的IRQ(OR门162和复用器164)把超时计数器160初始化为零。否则,选择复用器166的输出。复用器166可被配置为从计数器160选择当前值,除非报时信号被断言,针对处理器的IRQ被断言并且还未检测到超时(AND门168),在这种情况下,选择递增值。因此,如果IRQ被断言则报时信号的每次断言可引起超时计数器160递增,直至达到超时为止。
比较器170耦接到计数器160的输出,并且可被配置为把计数器与3进行比较。如果计数器是三,则可检测到超时。由于计数器150的计数器位被选择为在选择的超时时间段内两次切换为高电平,所以计数报时信号的三次报时可确保已超过超时。尽管在这种情况下超时可能并不完全准确,但在针对每个超时仅实现两位计数器160并共享自由运行计数器150的同时,对于中断控制器50的目的而言该准确性可以是足够的。处理器超时控制单元142A可断言该超时,指示处理器无响应。
通过使用来自电路158的报时信号,中断超时控制单元142B可类似于处理器超时控制单元142A。在中断超时控制单元142B的情况下,可从把中断路由至处理器到对服务于中断(例如,到屏蔽的中断取消断言)测量超时。响应于中断的取消断言或者把中断路由至任何处理器(OR门174)可通过复用器176把计数器172初始化为零。随后,在屏蔽的中断仍然被断言(AND门180)的同时,可响应于报时通过复用器178使计数器递增。当比较器182检测到计数器172已达到3时,可断言超时。
需要注意的是,尽管针对控制单元142A-142B(在这个实施例中,控制单元142A-142B可以都是图8中示出的超时控制单元142的一部分)在图9中表示了特定逻辑电路,但其它实施例可使用任何逻辑电路。特别地,可使用示出的电路的任何布尔等同物。另外,根据需要,在其它实施例中,更多的定时器可用于检测各种其它超时。
现在参照图10,示出了系统5的另一实施例的方框图。在图10的实施例中,系统5包括耦接到外部存储器12A-12B的集成电路(IC)10。在示出的实施例中,集成电路10包括中央处理单元(CPU)方框14,CPU方框14包括一个或多个处理器16和2级(L2)高速缓存18。其它实施例可不包括L2高速缓存18和/或可包括另外级别的高速缓存。另外,可设想包括超过两个处理器16和仅包括一个处理器16的实施例。集成电路10还包括一个或多个非实时(NRT)外设20的组和一个或多个实时(RT)外设22的组。在示出的实施例中,RT外设包括图像处理器24、一个或多个显示管26、翻译单元46和端口仲裁器28。其它实施例可根据需要包括更多或更少的图像处理器24、更多或更少的显示管26和/或任何另外的实时外设。图像处理器24可耦接以接收来自系统5中的一个或多个照相机的图像数据。类似地,显示管26可耦接到控制系统中的一个或多个显示器的一个或多个显示控制器(未示出)。图像处理器24可耦接到翻译单元46,翻译单元46可进一步耦接到端口仲裁器28。端口仲裁器28也可耦接到显示管26。在示出的实施例中,CPU方框14耦接到桥/直接存储器存取(DMA)控制器30,桥/直接存储器存取(DMA)控制器30可耦接到一个或多个外设装置32和/或一个或多个外设接口控制器34。桥/DMA控制器30可包括I/O处理器(IOP)184。外设装置32和外设接口控制器34的数量在各种实施例中可在从零到任何所希望的数量的范围中变化。图1中表示的系统5还包括图形单元36,图形单元36包括一个或多个图形控制器,诸如G0 38A和G1 38B。在其它实施例中,每个图形单元的图形控制器的数量和图形单元的数量可不同。如图1中所示,系统5包括耦接到一个或多个存储器物理接口电路(PHY)42A-42B的存储器控制器40。存储器PHY 42A-42B被配置为在集成电路10的管脚上与存储器12A-12B通信。存储器控制器40还包括一组端口44A-44E。端口44A-44B分别耦接到图形控制器38A-38B。CPU方框14耦接到端口44C。NRT外设20和RT外设22分别耦接到端口44D-44E。在其它实施例中,存储器控制器40中所包括的端口的数量可不同,存储器控制器的数量也可不同。在其它实施例中,存储器PHY 42A-42B和对应的存储器12A-12B的数量可以是一个或者超过两个。中断控制器50和电源管理器52也表示在图10中(并且可分别包括脱机寄存器54、屏蔽寄存器56和超时寄存器58,如图1中所示)。
在示出的实施例中,中断控制器50可从外设接口控制器34、外设32、图形单元38A-38B、RT外设22和NRT外设20接收中断。因此,在这个实施例中,外设接口控制器34、外设32、图形单元38A-38B、RT外设22和NRT外设20可以是图1中的外设64A-64B的例子。在其它实施例中,来自以上各装置的子集的中断可由中断控制器50接收。在示出的实施例中,处理器16中的任一个可服务于中断并且IOP 184可服务于中断。因此,在这个实施例中,处理器16和IOP 184可以是图1中的处理器60A-60B的例子。
另外,在这个实施例中,IC寄存器接口62可通过CPU方框14从处理器16到达桥/DMA控制器30,然后到达中断控制器50。更具体地讲,桥/DMA控制器30可包括掌控PIO操作的编程I/O(PIO)控制器。寄存器访问操作在这个实施例中可以是PIO操作。
在一个实施例中,每个端口44A-44E可以与特定类型的业务关联。例如,在一个实施例中,业务类型可包括RT通信、NRT通信和图形通信。除了以上业务类型的子集之外或者替代以上业务类型的子集,其它实施例可包括其它业务类型。每种类型的业务可具有不同的特征(例如,在要求和行为方面),并且存储器控制器可不同地处理业务类型以基于特征提供更高性能。例如,RT业务要求在特定时间量内服务于每个存储器操作。如果操作的时延超过该特定时间量,则在RT外设中可能发生错误操作。例如,图像数据可能在图像处理器24中丢失,或者对其耦接了显示管26的显示器上显示的图像可能在视觉上失真。例如,RT业务可能被表征为是等时的(isochronous)。另一方面,图形业务可以为相对较高的带宽,但对时延不敏感。诸如来自处理器16的NRT业务由于性能原因对时延更加敏感,但可忍受更高的时延。也就是说,通常在产生NRT业务的装置中不引起错误操作的情况下可以以任何时延服务于NRT业务。类似地,通常可以以任何时延服务于对时延不太敏感但具有更高带宽的图形业务。其它NRT业务可包括音频业务,音频业务为相对较低带宽并且通常可以以合理的时延服务于音频业务。多数外设业务也可以是NRT(例如,到诸如磁、光学或固态存储器的存储装置的业务)。通过提供与不同业务类型相关联的端口44A-44E,存储器控制器40可并行地暴露于不同的业务类型。
如上所述,RT外设22可包括图像处理器24和显示管26。显示管26可包括用于获取一个或多个图像帧并把帧混合以产生显示图像的电路。显示管26还可以包括一个或多个视频管线,并且视频帧可以与(相对)静态的图像帧混合以产生以视频帧速率显示的帧。显示管26的结果可以是在显示屏幕上显示的像素的流。像素值可以被发送给显示控制器以在显示屏幕上显示。图像处理器24可接收照相机数据并把数据处理为要在存储器中存储的图像。
返回到存储器控制器40,通常,端口可以是存储器控制器40上的用于与一个或多个源通信的通信点。在一些情况下,端口可专用于一个源(例如,端口44A-44B可分别专用于图形控制器38A-38B)。在其它情况下,端口可在多个源之间共享,例如,处理器16可共享CPU端口44C,NRT外设20可共享NRT端口44D,RT外设22(诸如,显示管26和图像处理器24可共享RT端口44E。端口可耦接到单个接口以与一个或多个源通信。因此,当源共享接口时,在接口的源侧可存在仲裁器以在源之间进行选择。例如,L2高速缓存18可用作针对存储器控制器40的CPU端口44C的仲裁器。端口仲裁器28可用作针对RT端口44E的仲裁器,类似的端口仲裁器(未示出)可以是针对NRT端口44D的仲裁器。端口上的单个源或者端口上的源的组合可称为代理。每个端口44A-44E耦接到接口以与其各自的代理通信。该接口可以是任何类型的通信介质(例如,总线、点到点互连等),并且可实现任何协议。在一些实施例中,端口44A-44E可全部实现相同接口和协议。在其它实施例中,不同端口可实现不同接口和/或协议。在其它实施例中,存储器控制器40可以具有单个端口。
在实施例中,每个源可以把服务质量(QoS)参数分配给由该源发送的每个存储器操作。QoS参数可识别存储器操作的请求的服务级别。相对于请求较低服务级别的存储器操作,可以对具有请求较高服务级别的QoS参数值的存储器操作给予优先权。每个存储器操作可包括流ID(FID)。FID可识别存储器操作作为存储器操作的流的一部分。存储器操作的流可通常是相关的,而来自不同流的存储器操作即使来自同一源也可能是不相关的。FID的一部分(例如,源字段)可识别源,FID的其余部分可识别流(例如,流字段)。因此,FID可类似于事务ID,并且一些源可简单地发送事务ID作为FID。在这种情况下,事务ID的源字段可以是FID的源字段,并且事务ID的序列号(该序列号识别来自同一源的事务之中的事务)可以是FID的流字段。在一些实施例中,不同的业务类型可具有不同的QoS参数的定义。也就是说,不同的业务类型可具有不同的QoS参数的组。
存储器控制器40可被配置为处理在每个端口44A-44E上接收的QoS参数,并且可使用相对QoS参数值相对于来自该端口的其它存储器操作以及相对于在其它端口上接收的其它存储器操作调度在端口上接收的存储器操作。更具体地讲,存储器控制器40可被配置为比较从不同的QoS参数(例如,RT QoS参数和NRT QoS参数)的组提取的QoS参数并且可被配置为基于QoS参数做出调度判决。
在一些实施例中,存储器控制器40可被配置为升级未决存储器操作的QoS级别。可支持各种升级机制。例如,存储器控制器40可被配置为响应于从具有指定更高QoS级别的QoS参数的同一流接收另一存储器操作来升级流的未决存储器操作的QoS级别。这种形式的QoS升级可称为带内升级,因为使用普通存储器操作发送方法发送的QoS参数也用作同一流中的存储器操作的隐含升级请求。存储器控制器40可被配置为推出来自同一端口或源但并非来自同一流的未决存储器操作作为指定更高QoS级别的新接收的存储器操作。作为另一例子,存储器控制器40可被配置为耦接到一个或多个代理的边带接口,并且可响应于在边带接口上接收到升级请求升级QoS级别。在另一例子中,存储器控制器40可被配置为跟踪未决存储器操作的相对年龄(age)。存储器控制器40可被配置为在某些年龄升级较老的存储器操作的QoS级别。发生升级的年龄可取决于较老的存储器操作的当前QoS参数。
处理器16可执行任何指令集架构,并且可被配置为执行该指令集架构中定义的指令。处理器16可采用任何微架构,包括标量、超标量、流水线、超流水线、不按次序、按照次序、推测、非推测等或者它们的组合。处理器16B可包括电路,并且可选地可实现微编码技术。处理器16可包括一个或多个1级高速缓存,因此高速缓存18是L2高速缓存。其它实施例可在处理器16中包括多级高速缓存,并且高速缓存18可以是层级中的下一级别。高速缓存18可采用任何大小和任何配置(组相联、直接映射等)。
图形控制器38A-38B可以是任何图形处理电路。通常,图形控制器38A-38B可被配置为把将要显示的目标呈现到帧缓冲器中。图形控制器38A-38B可包括图形处理器,图形处理器可执行图形软件以执行图形操作的一部分或者全部和/或某些图形操作的硬件加速。硬件加速和软件实现的量可因实施例而不同。
NRT外设20可包括由于性能和/或带宽原因而被提供了对存储器12A-12B的独立访问的任何非实时外设。也就是说,由NRT外设20执行的访问独立于CPU方框14,并且可以与CPU方框存储器操作并行地进行。其它外设(诸如,外设32和/或耦接到由外设接口控制器34控制的外设接口的外设)也可以是非实时外设,但是可能不需要对存储器的独立访问。NRT外设20的各种实施例可包括视频编码器和解码器、定标器/转子电路、图像压缩/解压缩电路等。
桥/DMA控制器30可包括用于把外设32和外设接口控制器34桥接到存储器空间的电路。在示出的实施例中,桥/DMA控制器30可通过CPU方框14把来自外设/外设接口控制器的存储器操作桥接到存储器控制器40。CPU方框14也可以保持桥接的存储器操作和来自处理器16/L2高速缓存18的存储器操作之间的一致性。L2高速缓存18也可以仲裁桥接的存储器操作,其中来自处理器16的存储器操作要在CPU接口上发送给CPU端口44C。桥/DMA控制器30也可以代表外设32和外设接口控制器34提供DMA操作以向存储器传送数据块和从存储器传送数据块。更具体地讲,DMA控制器可被配置为代表外设32和外设接口控制器34通过存储器控制器40执行向存储器12A-12B传送和从存储器12A-12B传送。DMA控制器可由处理器16编程以执行DMA操作。例如,DMA控制器可经描述符被编程。描述符可以是描述DMA传送的存储在存储器12A-12B中的数据结构(例如,源和目的地地址、大小等)。另一方面,DMA控制器可经DMA控制器中的寄存器(未示出)被编程。
外设装置32可包括任何所希望的输入/输出装置或集成电路10上所包括的其它硬件装置。例如,外设32可包括联网外设,诸如一个或多个联网媒体访问控制器(MAC)(诸如,以太网MAC或无线保真(WiFi)控制器)。包括各种音频处理装置的音频单元可以被包括在外设32中。一个或多个数字信号处理器可以被包括在外设32中。外设32可包括任何其它所希望的功能,诸如定时器、片上秘密存储器、加密引擎等或者它们的任何组合。
外设接口控制器34可包括用于任何类型的外设接口的任何控制器。例如,外设接口控制器可包括各种接口控制器,诸如通用串行总线(USB)控制器、快捷外设组件互连(PCIe)控制器、闪存接口、通用输入/输出(I/O)管脚等。
存储器12A-12B可以是任何类型的存储器,诸如动态随机访问存储器(DRAM)、同步DRAM(SDRAM)、双数据速率(DDR、DDR2、DDR3等)SDRAM(包括SDRAM的移动版本,诸如,mDDR3等,和/或SDRAM的低功耗版本,诸如,LPDDR2等)、RAMBUS DRAM(RDRAM)、静态RAM(SRAM)等。一个或多个存储器装置可耦接到电路板以形成存储器模块,诸如,单列直插存储器模块(SIMM)、双列直插存储器模块(DIMM)等。另一方面,这些装置可以与集成电路10按照叠层芯片(chip-on-chip)配置、叠层封装(package-on-package)配置或者多芯片模块配置安装在一起。
存储器PHY 42A-42B可处理到存储器12A-12B的低级物理接口。例如,存储器PHY 42A-42B可负责信号的定时、负责同步DRAM存储器的正确时钟等。在一个实施例中,存储器PHY 42A-42B可被配置为锁定于在集成电路10内提供的时钟并且可被配置为产生由存储器12使用的时钟。
需要注意的是,其它实施例可包括部件的其它组合(包括图1中示出的部件的子集或超集)和/或其它部件。尽管给定部件的一个实例可显示在图1中,但其它实施例可包括给定部件的一个或多个实例。类似地,在这个详细描述中,即使仅示出了给定部件的一个实例也可以包括给定部件的一个或多个实例,和/或即使示出了多个实例也可使用仅包括一个实例的实施例。
接下来参照图11,示出了系统350的一个实施例的方框图。在示出的实施例中,系统350包括耦接到外部存储器12(例如,图10中的存储器12A-12B)的集成电路10的至少一个实例。集成电路10也可以是包括图1中的一些或全部部件的集成电路。集成电路10耦接到一个或多个外设354和外部存储器12。还提供了电源356,电源356把电源电压提供给集成电路10,以及把一种或多种电源电压提供给存储器12和/或外设354。在一些实施例中,可包括集成电路10的超过一个实例(并且也可以包括超过一个外部存储器12)。
根据系统350的类型,外设354可包括任何所希望的电路。例如在,在一个实施例中,系统350可以是移动装置(例如,个人数字助手(PDA)、智能电话等),并且外设354可包括用于各种类型的无线通信的装置,诸如wifi、蓝牙、蜂窝、全球定位系统等。外设354还可以包括另外的存储器,包括RAM存储器、固态存储器或盘存储器。外设354可包括用户接口装置,诸如显示屏幕(包括触摸显示屏或多触摸显示屏)、键盘或其它输入装置、麦克风、扬声器等。在其它实施例中,系统350可以是任何类型的计算系统(例如,桌上型个人计算机、膝上型计算机、工作站、上网型计算机等)。
本发明还涉及一种系统,包括:用于接收来自包括中断控制器的系统中的装置的中断的装置;用于监测多个处理器的状态的装置;用于从系统中的多个处理器中选择一个处理器的装置,其中,所述选择至少部分地响应于所述多个处理器的状态;以及用于把中断路由至选择的处理器的装置。
优选地,所选择的处理器的状态包括许可中断。
优选地,所述多个处理器中的第一处理器处于低功率状态并且所选择的处理器不处于低功率状态。
优选地,所选择的处理器处于低功率状态,并且所述选择包括:即使第一处理器处于低功率状态也选择所选择的处理器。
优选地,该系统进一步包括:用于在没有从选择的处理器接收到中断确认的情况下针对所选择的处理器检测超时的装置;用于响应于超时指示所选择的处理器不合格的装置;用于从所述多个处理器中选择不同的处理器的装置;以及用于把中断提供给所述不同的处理器的装置。
一旦完全理解以上公开,许多修改和变型对于本领域技术人员而言将会是清楚的。下面的权利要求应该解释为包括所有这种修改和变型。
Claims (16)
1.一种中断控制器,包括:
被耦接成接收来自系统中的一个或多个装置的中断的电路;以及
中断路由器,耦接到所述电路并被配置为对于接收的第一中断从系统中的多个处理器中选择一个处理器,所述中断路由器被配置为使中断通过信号被发送给选择的处理器,并且所述中断路由器被配置为监测所述多个处理器的状态并响应于该状态来选择所选择的处理器,其中,所述中断路由器进一步被配置为响应于把中断通过信号发送给所选择的处理器来初始化超时计数器,并且所述中断路由器被配置为在没有来自所选择的处理器的响应的情况下响应于检测到对于该中断超时计数器期满来选择另一处理器,其中,所述中断路由器被配置为在没有来自所选择的处理器的响应的情况下响应于检测到对于该中断超时计数器期满来将所选择的处理器视为无响应,并且其中,所述中断路由器被配置为将无响应的处理器识别为对于后续中断是次优选的。
2.如权利要求1所述的中断控制器,其中,所述响应是中断确认响应。
3.如权利要求2所述的中断控制器,进一步包括被配置为利用识别第一中断的中断向量来响应所述中断确认响应的电路。
4.如权利要求3所述的中断控制器,其中,所述中断确认是为所述中断控制器定义的中断确认寄存器的读操作,其中,所述被配置为响应中断确认的电路是被耦接为接收寄存器访问操作的寄存器接口单元,并且响应于所述读操作返回的数据包括中断向量。
5.如权利要求1所述的中断控制器,其中,所述处理器状态包括处理器是否处于休眠状态。
6.如权利要求1所述的中断控制器,其中,所述处理器状态包括在处理器中是否许可中断。
7.如权利要求1所述的中断控制器,其中,所述处理器状态包括由软件编程的脱机状态。
8.如权利要求1所述的中断控制器,其中,所述处理器状态包括对正在处理器上执行虚拟化客机操作系统的指示。
9.一种中断控制系统,包括:
多个装置;
多个处理器;以及
中断控制器,耦接到所述多个装置和所述多个处理器,其中,所述中断控制器被配置为对于从所述多个装置之一接收的第一中断从所述多个处理器选择一个处理器,并且所述中断控制器被配置为把第一中断通过信号发送给所选择的处理器,其中,所述中断控制器被配置为监测所述多个处理器的状态,并响应于该状态选择所选择的处理器,其中,所述中断控制器进一步被配置为响应于把所述第一中断通过信号发送给所选择的处理器来初始化超时计数器,并且所述中断控制器被配置为在没有来自所选择的处理器的响应的情况下响应于检测到对于该中断超时计数器期满来选择另一处理器,其中,所述中断控制器被配置为在没有来自所选择的处理器的响应的情况下响应于检测到对于该中断超时计数器期满来将所选择的处理器视为无响应,并且其中,所述中断控制器被配置为将无响应的处理器识别为对于后续中断是次优选的。
10.如权利要求9所述的中断控制系统,其中,所述中断控制器进一步被配置为响应于接收到第一中断来初始化与第一中断对应的第二超时计数器,并且所述中断控制器被配置为在所述多个处理器之一未确认中断的情况下响应于检测到第二超时计数器期满而把中断路由至第二处理器。
11.一种中断控制方法,包括:
接收来自包括中断控制器的系统中的装置的中断;
监测多个处理器的状态;
从系统中的多个处理器中选择一个处理器,其中,所述选择至少部分地响应于所述多个处理器的状态;
把中断路由至所选择的处理器;
所述中断控制器响应于把所述中断通过信号发送给所选择的处理器来初始化超时计数器;
所述中断控制器在没有来自所选择的处理器的响应的情况下响应于检测到对于该中断超时计数器期满来选择另一处理器;
所述中断控制器在没有来自所选择的处理器的响应的情况下响应于检测到对于该中断超时计数器期满来将所选择的处理器视为无响应;以及
所述中断控制器将无响应的处理器识别为对于后续中断是次优选的。
12.如权利要求11所述的中断控制方法,其中,所选择的处理器的状态包括许可了中断。
13.如权利要求11所述的中断控制方法,其中,所选择的处理器不处于低功率状态,并且所述多个处理器中的另一处理器处于低功率状态。
14.如权利要求11所述的中断控制方法,其中,所选择的处理器处于低功率状态,并且所述选择包括:即使所述多个处理器中的另一处理器处于低功率状态也选择所选择的处理器。
15.一种中断控制系统,包括:
用于接收来自包括中断控制器的系统中的装置的中断的装置;
用于监测多个处理器的状态的装置;
用于从系统中的多个处理器中选择一个处理器的装置,其中,所述选择至少部分地响应于所述多个处理器的状态;
用于把中断路由至所选择的处理器的装置;
用于响应于把所述中断通过信号发送给所选择的处理器来初始化超时计数器的装置;
用于在没有来自所选择的处理器的响应的情况下响应于检测到对于该中断超时计数器期满来选择另一处理器的装置;
用于在没有来自所选择的处理器的响应的情况下响应于检测到对于该中断超时计数器期满来将所选择的处理器视为无响应的装置;以及
用于将无响应的处理器识别为对于后续中断是次优选的的装置。
16.如权利要求15所述的中断控制系统,其中,所选择的处理器的状态包括许可了中断。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/962,146 | 2010-12-07 | ||
US12/962,146 US8959270B2 (en) | 2010-12-07 | 2010-12-07 | Interrupt distribution scheme |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102567109A CN102567109A (zh) | 2012-07-11 |
CN102567109B true CN102567109B (zh) | 2015-04-08 |
Family
ID=45421878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110402634.6A Active CN102567109B (zh) | 2010-12-07 | 2011-12-07 | 中断分配方案 |
Country Status (10)
Country | Link |
---|---|
US (2) | US8959270B2 (zh) |
EP (1) | EP2463781B1 (zh) |
JP (2) | JP5923838B2 (zh) |
KR (1) | KR101320791B1 (zh) |
CN (1) | CN102567109B (zh) |
AU (1) | AU2011338863B2 (zh) |
BR (1) | BR112013013300B1 (zh) |
HK (1) | HK1171104A1 (zh) |
TW (1) | TWI447650B (zh) |
WO (1) | WO2012078334A1 (zh) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8909836B2 (en) * | 2012-10-08 | 2014-12-09 | Andes Technology Corporation | Interrupt controller, apparatus including interrupt controller, and corresponding methods for processing interrupt request event(s) in system including processor(s) |
JP2014106755A (ja) * | 2012-11-28 | 2014-06-09 | Fujitsu Mobile Communications Ltd | 情報処理装置及び制御方法 |
US9678564B2 (en) * | 2012-12-21 | 2017-06-13 | Nxp B.V. | Multiprocessor system with interrupt distributor |
US10534421B2 (en) | 2013-06-13 | 2020-01-14 | Microsoft Technology Licensing, Llc | Virtual per-processor timers for multiprocessor systems |
US9524195B2 (en) | 2014-02-27 | 2016-12-20 | International Business Machines Corporation | Adaptive process for data sharing with selection of lock elision and locking |
US9575890B2 (en) | 2014-02-27 | 2017-02-21 | International Business Machines Corporation | Supporting atomic accumulation with an addressable accumulator |
US9336097B2 (en) | 2014-02-27 | 2016-05-10 | International Business Machines Corporation | Salvaging hardware transactions |
US9442775B2 (en) | 2014-02-27 | 2016-09-13 | International Business Machines Corporation | Salvaging hardware transactions with instructions to transfer transaction execution control |
US20150242216A1 (en) | 2014-02-27 | 2015-08-27 | International Business Machines Corporation | Committing hardware transactions that are about to run out of resource |
US9311178B2 (en) | 2014-02-27 | 2016-04-12 | International Business Machines Corporation | Salvaging hardware transactions with instructions |
US9465673B2 (en) | 2014-02-27 | 2016-10-11 | International Business Machines Corporation | Deferral instruction for managing transactional aborts in transactional memory computing environments to complete transaction by deferring disruptive events handling |
US9442853B2 (en) | 2014-02-27 | 2016-09-13 | International Business Machines Corporation | Salvaging lock elision transactions with instructions to change execution type |
US9430273B2 (en) | 2014-02-27 | 2016-08-30 | International Business Machines Corporation | Suppressing aborting a transaction beyond a threshold execution duration based on the predicted duration |
US9411729B2 (en) | 2014-02-27 | 2016-08-09 | International Business Machines Corporation | Salvaging lock elision transactions |
US9361041B2 (en) | 2014-02-27 | 2016-06-07 | International Business Machines Corporation | Hint instruction for managing transactional aborts in transactional memory computing environments |
US9424072B2 (en) | 2014-02-27 | 2016-08-23 | International Business Machines Corporation | Alerting hardware transactions that are about to run out of space |
US9471371B2 (en) | 2014-02-27 | 2016-10-18 | International Business Machines Corporation | Dynamic prediction of concurrent hardware transactions resource requirements and allocation |
US9329946B2 (en) | 2014-02-27 | 2016-05-03 | International Business Machines Corporation | Salvaging hardware transactions |
US9262206B2 (en) | 2014-02-27 | 2016-02-16 | International Business Machines Corporation | Using the transaction-begin instruction to manage transactional aborts in transactional memory computing environments |
US9645879B2 (en) | 2014-02-27 | 2017-05-09 | International Business Machines Corporation | Salvaging hardware transactions with instructions |
US9524187B2 (en) | 2014-03-02 | 2016-12-20 | International Business Machines Corporation | Executing instruction with threshold indicating nearing of completion of transaction |
EP3855318B1 (en) | 2014-09-26 | 2024-02-14 | INTEL Corporation | Apparatus and method for configuring sets of interrupts |
KR20160061726A (ko) * | 2014-11-24 | 2016-06-01 | 삼성전자주식회사 | 인터럽트 핸들링 방법 |
US10203955B2 (en) * | 2014-12-31 | 2019-02-12 | Intel Corporation | Methods, apparatus, instructions and logic to provide vector packed tuple cross-comparison functionality |
CN104572282A (zh) * | 2015-01-05 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种将sas控制器中断绑定到cpu的自动化方法 |
US10585826B2 (en) * | 2016-01-25 | 2020-03-10 | Advanced Micro Devices, Inc. | Using processor types for processing interrupts in a computing device |
US10802998B2 (en) * | 2016-03-29 | 2020-10-13 | Intel Corporation | Technologies for processor core soft-offlining |
US11392438B2 (en) * | 2017-02-09 | 2022-07-19 | Arm Limited | Responding to unresponsive processing circuitry |
CN109144680A (zh) | 2017-06-27 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 一种时钟滴答中断设置方法及装置 |
TWI621946B (zh) * | 2017-06-28 | 2018-04-21 | 緯創資通股份有限公司 | 排程方法、PCIe控制器及其相關電子系統 |
US10747298B2 (en) * | 2017-11-29 | 2020-08-18 | Advanced Micro Devices, Inc. | Dynamic interrupt rate control in computing system |
US11144481B2 (en) * | 2018-04-11 | 2021-10-12 | Apple Inc. | Techniques for dynamically adjusting the manner in which I/O requests are transmitted between a computing device and a storage device |
US11113216B2 (en) * | 2019-03-20 | 2021-09-07 | Mediatek Inc. | Dispatching interrupts in a multi-processor system based on power and performance factors |
US11307791B2 (en) * | 2019-05-24 | 2022-04-19 | Texas Instruments Incorporated | Quick clearing of registers |
US20210107512A1 (en) * | 2020-03-27 | 2021-04-15 | Intel Corporation | Computing system for mitigating execution drift |
CN111786546B (zh) * | 2020-07-20 | 2021-10-15 | 中车青岛四方车辆研究所有限公司 | 功率模块驱动系统及控制方法 |
US11630789B2 (en) * | 2020-09-11 | 2023-04-18 | Apple Inc. | Scalable interrupts |
EP4184712A4 (en) | 2020-09-15 | 2024-01-10 | Samsung Electronics Co., Ltd. | ELECTRONIC DEVICE HAVING AN ANTENNA STRUCTURE |
KR102549360B1 (ko) * | 2020-12-14 | 2023-06-28 | 재단법인대구경북과학기술원 | 인터럽트 제어 장치 및 방법 |
US11675718B2 (en) * | 2021-03-26 | 2023-06-13 | Advanced Micro Devices, Inc. | Enhanced low-priority arbitration |
EP4290378A4 (en) * | 2021-05-31 | 2024-03-06 | Samsung Electronics Co., Ltd. | ELECTRONIC DEVICE AND METHOD FOR PROCESSING SENSOR DATA OF THE ELECTRONIC DEVICE |
KR20220161878A (ko) * | 2021-05-31 | 2022-12-07 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 센서 데이터 처리 방법 |
US11803471B2 (en) | 2021-08-23 | 2023-10-31 | Apple Inc. | Scalable system on a chip |
US20230342158A1 (en) * | 2022-04-21 | 2023-10-26 | Microchip Technology Incorporated | Atomic Instruction Set and Architecture with Bus Arbitration Locking |
CN117472637B (zh) * | 2023-12-27 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种中断管理方法、系统、设备及介质 |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3623014A (en) * | 1969-08-25 | 1971-11-23 | Control Data Corp | Computer communications system |
US5517626A (en) | 1990-05-07 | 1996-05-14 | S3, Incorporated | Open high speed bus for microcomputer system |
US5870621A (en) | 1994-12-22 | 1999-02-09 | Texas Instruments Incorporated | Quadrilateral multichip computer systems and printed circuit boards therefor |
US5717903A (en) * | 1995-05-15 | 1998-02-10 | Compaq Computer Corporation | Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device |
JP3676882B2 (ja) | 1996-06-12 | 2005-07-27 | 株式会社リコー | マイクロプロセッサ及びその周辺装置 |
EP0827085B1 (en) * | 1996-08-20 | 2006-03-29 | Compaq Computer Corporation | Method and apparatus for distributing interrupts in a scalable symmetric multiprocessor system without changing the bus width or bus protocol |
US5918057A (en) | 1997-03-20 | 1999-06-29 | Industrial Technology Research Institute | Method and apparatus for dispatching multiple interrupt requests simultaneously |
JP3699806B2 (ja) | 1997-06-20 | 2005-09-28 | 株式会社東芝 | 割込みコントローラ及び制御システム |
US6170025B1 (en) * | 1997-08-29 | 2001-01-02 | Intel Corporation | Distributed computer system supporting remote interrupts and lock mechanism |
US6105102A (en) | 1998-10-16 | 2000-08-15 | Advanced Micro Devices, Inc. | Mechanism for minimizing overhead usage of a host system by polling for subsequent interrupts after service of a prior interrupt |
US6701429B1 (en) | 1998-12-03 | 2004-03-02 | Telefonaktiebolaget Lm Ericsson(Publ) | System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location |
US6418497B1 (en) * | 1998-12-21 | 2002-07-09 | International Business Machines Corporation | Method and system for interrupt handling using system pipelined packet transfers |
JP2000242616A (ja) * | 1999-02-19 | 2000-09-08 | Nec Eng Ltd | 障害処理装置,障害処理方法および記録媒体 |
US6772257B1 (en) | 1999-12-23 | 2004-08-03 | Intel Corporation | Method and apparatus for processing interrupts |
JP2001229147A (ja) * | 2000-02-17 | 2001-08-24 | Nec Shizuoka Ltd | Cpu間通信制御方法および携帯情報端末 |
US20020116563A1 (en) | 2000-12-12 | 2002-08-22 | Lever Paul D. | Apparatus and method to reduce interrupt latency in shared interrupt systems |
US6792492B1 (en) | 2001-04-11 | 2004-09-14 | Novell, Inc. | System and method of lowering overhead and latency needed to service operating system interrupts |
US6813665B2 (en) | 2001-09-21 | 2004-11-02 | Intel Corporation | Interrupt method, system and medium |
US20030065497A1 (en) * | 2001-09-28 | 2003-04-03 | Rhoads Monte J. | Power management system to select a power state for a network computer system based on load |
US7328294B2 (en) * | 2001-12-03 | 2008-02-05 | Sun Microsystems, Inc. | Methods and apparatus for distributing interrupts |
JP2003281112A (ja) | 2002-03-25 | 2003-10-03 | Fujitsu Ltd | マルチプロセッサシステム |
US20040117532A1 (en) | 2002-12-11 | 2004-06-17 | Bennett Steven M. | Mechanism for controlling external interrupts in a virtual machine system |
GB2396445B (en) | 2002-12-19 | 2005-12-21 | Advanced Risc Mach Ltd | An interrupt controller and interrupt controlling method for prioritizing interrupt requests generated by a plurality of interrupt sources |
US7191349B2 (en) * | 2002-12-26 | 2007-03-13 | Intel Corporation | Mechanism for processor power state aware distribution of lowest priority interrupt |
GB2403822B (en) * | 2003-07-07 | 2006-05-10 | Advanced Risc Mach Ltd | Data processing apparatus and method for handling interrupts |
US7222203B2 (en) | 2003-12-08 | 2007-05-22 | Intel Corporation | Interrupt redirection for virtual partitioning |
GB2409543B (en) | 2003-12-23 | 2006-11-01 | Advanced Risc Mach Ltd | Interrupt masking control |
US7353301B2 (en) | 2004-10-29 | 2008-04-01 | Intel Corporation | Methodology and apparatus for implementing write combining |
US7398343B1 (en) | 2006-01-03 | 2008-07-08 | Emc Corporation | Interrupt processing system |
JP4971676B2 (ja) | 2006-04-28 | 2012-07-11 | ルネサスエレクトロニクス株式会社 | 割り込み制御回路及び割り込み制御方法 |
JP2008015593A (ja) * | 2006-07-03 | 2008-01-24 | Hitachi Ltd | 中継装置、プログラム、中継方法及び通信システム |
US7721034B2 (en) | 2006-09-29 | 2010-05-18 | Dell Products L.P. | System and method for managing system management interrupts in a multiprocessor computer system |
US8032681B2 (en) * | 2007-09-06 | 2011-10-04 | Intel Corporation | Processor selection for an interrupt based on willingness to accept the interrupt and on priority |
US8661167B2 (en) * | 2007-09-17 | 2014-02-25 | Intel Corporation | DMA (direct memory access) coalescing |
US8453143B2 (en) * | 2007-09-19 | 2013-05-28 | Vmware, Inc. | Reducing the latency of virtual interrupt delivery in virtual machines |
US7962679B2 (en) | 2007-09-28 | 2011-06-14 | Intel Corporation | Interrupt balancing for multi-core and power |
US7730248B2 (en) | 2007-12-13 | 2010-06-01 | Texas Instruments Incorporated | Interrupt morphing and configuration, circuits, systems and processes |
US7962771B2 (en) | 2007-12-31 | 2011-06-14 | Intel Corporation | Method, system, and apparatus for rerouting interrupts in a multi-core processor |
JP2009193525A (ja) | 2008-02-18 | 2009-08-27 | Mitsubishi Electric Corp | 割込制御装置 |
US8190826B2 (en) | 2008-05-28 | 2012-05-29 | Advanced Micro Devices, Inc. | Write combining cache with pipelined synchronization |
JP2010055296A (ja) * | 2008-08-27 | 2010-03-11 | Fujitsu Ltd | 負荷分散プログラム及び負荷分散装置 |
EP2166457B1 (en) | 2008-09-12 | 2014-04-23 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Interrupt controller and methods of operation |
US7849247B2 (en) | 2008-10-14 | 2010-12-07 | Freescale Semiconductor, Inc. | Interrupt controller for accelerated interrupt handling in a data processing system and method thereof |
US8015337B2 (en) | 2009-03-23 | 2011-09-06 | Arm Limited | Power efficient interrupt detection |
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 |
US8458386B2 (en) | 2010-12-07 | 2013-06-04 | Apple Inc. | Atomic interrupt masking in an interrupt controller to prevent delivery of same interrupt vector for consecutive interrupt acknowledgements |
-
2010
- 2010-12-07 US US12/962,146 patent/US8959270B2/en active Active
-
2011
- 2011-11-17 BR BR112013013300-7A patent/BR112013013300B1/pt active IP Right Grant
- 2011-11-17 JP JP2013543183A patent/JP5923838B2/ja active Active
- 2011-11-17 AU AU2011338863A patent/AU2011338863B2/en active Active
- 2011-11-17 WO PCT/US2011/061197 patent/WO2012078334A1/en active Application Filing
- 2011-11-30 TW TW100144040A patent/TWI447650B/zh active
- 2011-12-06 KR KR20110129511A patent/KR101320791B1/ko active IP Right Grant
- 2011-12-06 EP EP20110192107 patent/EP2463781B1/en active Active
- 2011-12-07 CN CN201110402634.6A patent/CN102567109B/zh active Active
-
2012
- 2012-11-22 HK HK12111935.1A patent/HK1171104A1/zh not_active IP Right Cessation
-
2015
- 2015-01-06 US US14/590,203 patent/US9262353B2/en active Active
- 2015-01-26 JP JP2015012014A patent/JP5963282B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
TW201229911A (en) | 2012-07-16 |
AU2011338863B2 (en) | 2015-01-22 |
BR112013013300A2 (pt) | 2016-09-13 |
US9262353B2 (en) | 2016-02-16 |
EP2463781B1 (en) | 2015-01-21 |
CN102567109A (zh) | 2012-07-11 |
BR112013013300B1 (pt) | 2021-01-05 |
JP2013545205A (ja) | 2013-12-19 |
JP5963282B2 (ja) | 2016-08-03 |
KR101320791B1 (ko) | 2013-10-23 |
JP5923838B2 (ja) | 2016-05-25 |
US20150113193A1 (en) | 2015-04-23 |
US20120144172A1 (en) | 2012-06-07 |
US8959270B2 (en) | 2015-02-17 |
HK1171104A1 (zh) | 2013-03-15 |
EP2463781A2 (en) | 2012-06-13 |
JP2015079542A (ja) | 2015-04-23 |
KR20120063436A (ko) | 2012-06-15 |
EP2463781A3 (en) | 2012-11-21 |
WO2012078334A1 (en) | 2012-06-14 |
AU2011338863A1 (en) | 2013-05-09 |
TWI447650B (zh) | 2014-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102567109B (zh) | 中断分配方案 | |
US8458386B2 (en) | Atomic interrupt masking in an interrupt controller to prevent delivery of same interrupt vector for consecutive interrupt acknowledgements | |
RU2608000C2 (ru) | Представление фильтрации наблюдения, ассоциированной с буфером данных | |
TW201447580A (zh) | 用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統 | |
US9009377B2 (en) | Edge-triggered interrupt conversion in a system employing level-sensitive interrupts | |
CN107636630B (zh) | 中断控制器 | |
US11372674B2 (en) | Method, apparatus and system for handling non-posted memory write transactions in a fabric | |
US10157160B2 (en) | Handling a partition reset in a multi-root system | |
US8922571B2 (en) | Display pipe request aggregation | |
CN114328350A (zh) | 一种基于axi总线的通讯方法、装置以及介质 | |
US20240201766A1 (en) | System-on-Chip with DVFM Protection Circuit | |
US9152588B2 (en) | Race-free level-sensitive interrupt delivery using fabric delivered interrupts | |
US10346328B2 (en) | Method and apparatus for indicating interrupts | |
US20220357784A1 (en) | Telemetry Push Aggregation | |
US20220113967A1 (en) | Accelerator fabric for discrete graphics | |
US11513848B2 (en) | Critical agent identification to modify bandwidth allocation in a virtual channel | |
US11900146B2 (en) | Memory controller with separate transaction table for real time transactions | |
US8954635B2 (en) | Buffer management using freelist buffers | |
JP2011022814A (ja) | 半導体集積回路、情報処理装置およびプロセッサ性能保証方法 |
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 |