在使用外部事件组的处理器中的中断和异常集聚的制作方法

文档序号:30584003发布日期:2022-06-29 15:00阅读:98来源:国知局
在使用外部事件组的处理器中的中断和异常集聚的制作方法
在使用外部事件组的处理器中的中断和异常集聚


背景技术:

本公开总体上关于处理器(例如,芯片上系统(soc))的中断和异常。更具体地,本公开关于集聚在使用外部事件组的处理器中的中断和异常。中断和异常典型地可从中断控制器被直接发送到处理核以进行服务。这些中断和/或异常当在由中断控制器生成时如果被直接发送到处理核,则中断和/或异常可能非周期性地发生。虽然在一些处理器中此类时序可能是合适的,但是诸如在蜂窝电话和/或消费者物联网(iot)中使用的那些处理器之类的一些处理器会将处理核置于睡眠状态以改善处理效率和/或功率利用。然而,中断和异常连续地唤醒处理核来服务各个中断会消耗相对大量的功率。本节旨在向读者介绍可能涉及本公开的各方面的技术的各方面,这在下文描述和/或要求保护。相信该讨论有助于向读者提供促进对本公开的各方面更好的理解的背景信息。相应地,可理解这些陈述应从这个角度来阅读,而不是作为对现有技术的承认。
附图说明
在阅读下列具体实施方式时并在参考附图时,可更好地理解本公开的各方面,在附图中:图1是根据本公开的实施例的寄存器架构的框图;图2a是图示出根据本公开的实施例的有序流水线以及寄存器重命名的、乱序发布/执行流水线的框图;图2b是图示出根据本公开的实施例的、要被包括在处理器中的有序架构核以及寄存器重命名的、乱序发布/执行架构核的框图;图3a-图3b图示出根据本公开的实施例的更具体的示例性有序核架构的框图,该核将是芯片中的若干逻辑块(包括相同类型和/或不同类型的其他核)中的一个逻辑块;图4是根据本公开的实施例的可具有多于一个的核、可具有集成存储器控制器、以及可具有集成图形器件的处理器的框图;图5示出的是根据本公开的实施例的系统的框图;图6是根据本公开的实施例的第一更具体的示例性系统的框图;图7是根据本公开的实施例的第二更具体的示例性系统的框图;图8是根据本公开的实施例的芯片上系统(soc)的框图;图9是根据本公开的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图;图10是根据本公开的实施例的包括中断控制器的中断系统的框图;图11是根据本公开的实施例的用于使用图10的中断控制器来传送中断的过程的流程图;图12是根据本公开的实施例的用于使用唤醒信号来集聚中断的过程的时序图;图13是根据本公开的实施例的用于使用周期性定时器来集聚中断的过程的时序
图;图14是根据本公开的实施例的用于使用成员资格组来集聚中断的过程的流程图;图15是根据本公开的实施例的图14中的过程的时序图;图16是根据本公开的实施例的配置成用于实现图14的过程的集聚电路的示意图;图17是示出根据本公开的实施例的非集聚中断方案和集聚中断方案上下文切换的时序图;图18是根据本公开的实施例的用于使用外部事件组来集聚中断的过程的流程图;图19是根据本公开的实施例的图18中的过程的时序图;图20是根据本公开的实施例的配置成用于实现图18的过程的集聚电路的示意图;图21是根据本公开的实施例的用于使用时序组来集聚中断的过程的流程图;图22是根据本公开的实施例的用于时序组的图21中的过程的时序图;图23是根据本公开的实施例的、示出两个时序组的图21过程的时序图;图24是根据本公开的实施例的配置成用于实现图21的过程的集聚电路的示意图。
具体实施方式
下文将描述一个或多个具体实施例。为了提供对这些实施例的简洁描述,说明书中并未描述实际实现方式的所有特征。应当领会,在任何此类实际实现方式的开发中,如同在任何工程或设计项目中一样,为了实现开发人员的特定目标,必须作出众多特定于实现方式的决策,诸如遵守与系统相关的约束和与业务相关的约束,这些约束可能因实现方式而有所不同。而且应当领会,此类开发工作可能是复杂且耗时的,但是对于受益于本公开的普通技术人员而言,这仍将是设计、制作和制造的例行任务。当介绍本公开的各实施例的要素时,冠词“一(a、an)”、“该(the)”旨在意指存在这些要素中的一个或多个要素。术语“包含”、“包括”、“具有”旨在是包含性的,并且意指除了所列举的要素之外还可能存在附加要素。另外,应当理解,对本公开的“一个实施例”或“实施例”的引用不旨在被解释为排除也包含所陈述的特征的附加实施例的存在。寄存器架构图1是根据本公开的实施例的寄存器架构10的框图。在所图示的实施例中,存在多个(例如,32个)向量寄存器12,这些向量寄存器12可以是多个位(例如,512位)宽的。在寄存器架构10中;这些寄存器被引用为zmm0至zmmi。较低的n个(例如,16个)zmm寄存器的较低阶的(例如,256个)位覆盖在对应的寄存器ymm上。较低的n个zmm寄存器的较低阶的(例如,128个位)(其也是ymm寄存器的较低阶的n个位)覆盖在对应的寄存器xmm上。写掩码寄存器14可包括m个(例如,8个)写掩码寄存器(k0至km),这些写掩码寄存器各自具有多个(例如,64个)位。附加地或替代地,写掩码寄存器14中的至少一些可具有不同的尺寸(例如,16位)。向量掩码寄存器12中的至少一些(例如,k0)被禁止用作写掩码。当此类向量掩码寄存器被指示时,硬连线的写掩码(例如,0xffff)被选择,并且实际上禁用针对那条指令的写掩码。通用寄存器16可包括具有对应的位尺寸(例如,64)的多个(例如,16个)寄存器,这些对应的位尺寸与x86寻址模式一起使用以对存储器操作数寻址。这些寄存器可通过名称rax、rbx、rcx、rdx、rbp、rsi、rdi、rsp以及r8至r15来引用。这些寄存器中的至少一些寄存器
的部分(例如,寄存器的32个位)可被用于比寄存器的完整长度短的模式(例如,32位模式)。标量浮点栈寄存器堆(x87栈)18具有被混叠的mmx紧缩整数平坦寄存器堆20。x87栈18是用于使用x87指令集扩展对浮点数据执行标量浮点操作的八元素的(或其他数量的元素的)栈。浮点数据可具有各种精度水平(例如,16位、32位、64位、80位、或更多位)。mmx紧缩整数平台寄存器堆20被用于对64位紧缩整数数据执行操作,并且被用于保存用于在mmx紧缩整数平台寄存器堆20与xmm寄存器之间执行的一些操作的操作数。替代实施例可以使用更宽的或更窄的寄存器。另外,替代实施例可以使用更多、更少或不同的寄存器堆和寄存器。核架构、处理器和计算机架构处理器核能以不同的方式、出于不同的目的并且在不同的处理器中实现。例如,此类核的实现可以包括:1)适用于通用计算的通用有序核;2)适用于通用计算的高性能通用乱序核;3)主要适用于图形和/或科学(吞吐量)计算的专用核。不同处理器的实现可包括:1)cpu,其包括适用于通用计算的一个或多个通用有序核和/或适用于通用计算的一个或多个通用乱序核;以及2)协处理器,其包括主要用于图形和/或科学(吞吐量)的一个或多个专用核。此类不同的处理器导致不同的计算机系统架构,这些计算机系统架构可包括:1)在与cpu分开的芯片上的协处理器;2)在与cpu相同的封装中但在分开的管芯上的协处理器;3)与cpu在相同管芯上的协处理器(在该情况下,此类协处理器有时被称为专用逻辑或被称为专用核,该专用逻辑诸如,集成图形和/或科学(吞吐量)逻辑);以及4)芯片上系统,其可以将所描述的cpu(有时被称为(多个)应用核或(多个)应用处理器)、以上描述的协处理器和附加功能包括在同一管芯上。接着描述示例性核架构,随后描述示例性处理器和计算机架构。有序和乱序核架构图2a是图示出根据本公开的实施例的有序流水线和寄存器重命名的、乱序发布/执行流水线的框图。图2b是图示出根据实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的、乱序发布/执行架构核两者的框图。图2a-图2b中的实线框图示有序流水线和有序核,而虚线框的任选增加图示寄存器重命名的、乱序发布/执行流水线和核。考虑到有序方面是乱序方面的子集,将描述乱序方面。在图2a中,处理器中的流水线30包括取出级32、长度解码级34、解码级36、分配级38、重命名级40、调度(也被称为分派或发布)级42、寄存器读取/存储器读取级44、执行级46、写回/存储器写入级48、异常处置级50和提交级52。图2b示出处理器核54,该处理器核54包括前端单元56,该前端单元56耦合到执行引擎单元58,并且前端单元56和执行引擎单元58两者都耦合到存储器单元6。处理器核54可以是精简指令集计算(risc)核、复杂指令集计算(cisc)核、超长指令字(vliw)核、或其他核类型。作为又一选项,处理器核54可以是专用核,诸如例如,网络或通信核、压缩引擎、协处理器核、通用计算图形处理单元(gpgpu)核、图形核,等等。前端单元56包括分支预测单元62,该分支预测单元耦合到指令高速缓存单元64,该指令高速缓存单元64耦合到指令转换后备缓冲器(tlb)单元66。tlb 66耦合到指令取出单元68。指令取出单元68耦合到解码电路70。解码电路70(或解码器)可对指令解码,并且生成从原始指令解码出的、或以其他方式反映原始指令的、或从原始指令导出的一个或多个
微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码电路70可使用各种不同的机制来实现。合适机制的示例包括但不限于,查找表、硬件实现、可编程逻辑阵列(pla)、微代码只读存储器(rom)等。处理器核54可包括存储用于宏指令的微代码的微代码rom或其他介质(例如,在解码电路70中,或以其他方式在前端单元56内)。解码电路70耦合到执行引擎单元58中的重命名/分配器单元72。执行引擎单元58包括重命名/分配器单元72,该重命名/分配器单元72耦合到引退单元74和一个或多个调度器单元的集合76。(多个)调度器单元76表示任何数量的不同调度器,包括预留站、中央指令窗等。(多个)调度器单元76耦合到(多个)物理寄存器堆单元78。(多个)物理寄存器堆单元78中的每一个物理寄存器堆单元表示存储一种或多种不同数据类型的一个或多个物理寄存器堆,不同的数据类型诸如,标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点,状态(例如,作为要执行的下一条指令的地址的指令指针)等等。在一个实施例中,(多个)物理寄存器堆单元78包括向量寄存器12、写掩码寄存器14、和/或x87栈18。这些寄存器单元可以提供架构向量寄存器、向量掩码寄存器和通用寄存器。(多个)物理寄存器堆单元78由引退单元74重叠,以图示可实现寄存器重命名和乱序执行的各种方式(例如,使用(多个)重排序缓冲器和(多个)引退寄存器堆;使用(多个)未来文件、(多个)历史缓冲器、(多个)引退寄存器堆;使用寄存器映射和寄存器池,等等)。引退单元74和(多个)物理寄存器堆单元78耦合到(多个)执行集群80。(多个)执行集群80包括一个或多个执行单元的集合82以及一个或多个存储器访问电路的集合84。执行单元82可执行各种操作(例如,移位、加法、减法、乘法)并可对各种数据类型(例如,标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点)执行。尽管一些实施例可以包括专用于特定功能或功能集合的多个执行单元,但是其他实施例可包括仅一个执行单元或全都执行多个不同功能的多个执行单元。(多个)调度器单元76、(多个)物理寄存器堆单元78、以及(多个)执行集群80被示出为单数或附属,因为一些处理器核54为某些类型的数据/操作创建分开的流水线(例如,各自具有其自身的调度器单元、(多个)物理寄存器堆单元、和/或执行集群的标量整数流水线、标量浮点/紧缩整数/紧缩浮点/向量整数/向量浮点流水线、和/或存储器访问流水线。在分开的存储器访问流水线的情况下,用于该分开的存储器访问流水线的处理器核54是仅有的具有存储器访问电路84的执行集群80。还应当理解,在使用分开的流水线的情况下,这些流水线中的一个或多个可以是乱序发布/执行,并且其余流水线执行有序执行。存储器访问电路84的集合耦合到存储器单元60。存储器单元60包括数据tlb单元86,该数据tlb单元86耦合到数据高速缓存单元88,该数据高速缓存单元88耦合到第二级(l2)高速缓存单元90。存储器访问单元84可包括加载单元、存储地址单元和存储数据单元,其中的每一个均耦合到存储器单元60中的数据tlb单元86。指令高速缓存单元64还耦合到存储器单元60中的第二级(l2)高速缓存单元90。l2高速缓存单元90到一个或多个其他级别的高速缓存,和/或耦合到主储器。作为示例,寄存器重命名的乱序发布/执行核架构可如下所述地实现流水线30:1)指令取出68执行流水线30的取出级32和长度解码级34;2)解码电路70执行流水线30的解码级36;3)重命名/分配器单元72执行流水线的分配级38和重命名级40;4)(多个)调度器单元76执行流水线30调度级42;5)(多个)物理寄存器堆单元78和存储器单元60执行流水线30的
寄存器读取/存储器读取级44;执行集群80执行流水线30的执行级46);6)存储器单元60和(多个)物理寄存器堆单元78执行流水线30的写回/存储器写入级48;7)各单元可牵涉到流水线的异常处置级50;和/或8)引退单元74和(多个)物理寄存器堆单元78执行流水线30的提交级52。处理器核54可支持一个或多个指令集(诸如,x86指令集(具有或不具有用于更新版本的附加扩展)、加利福尼亚州桑尼威尔的mips技术公司的mips指令集、加利福尼亚州桑尼威尔的arm控股公司的arm指令集(具有可选附加扩展,诸如neon))。附加地或替代地,处理器核54包括用于支持紧缩数据指令集扩展(例如,avx1、avx2)的逻辑,由此允许使用紧缩数据来执行由许多多媒体应用使用的操作。应当理解,核可支持多线程化(执行两个或更多个并行的操作或线程的集合),并且可以按各种方式来完成该多线程化,各种方式包括时分多线程化、同时多线程化(其中单个物理核为物理核正在同时多线程化的线程中的每一个线程提供逻辑核)、或其组合(诸如,时分取出和解码以及超线程化技术中的同时多线程化)。尽管在乱序执行的上下文中描述了寄存器重命名,但是可以在有序架构中使用寄存器重命名。尽管所图示的处理器的实施例还包括分开的指令高速缓存单元64、分开的数据高速缓存单元88、以及共享的l2高速缓存单元90,但是一些实施例可以具有用于指令和数据两者的单个内部高速缓存,诸如例如,第一级(l1)内部高速缓存或多个级别的内部高速缓存。在一些实施例中,该处理器可包括内部高速缓存和在处理器核54和/或处理器外部的外部高速缓存的组合。替代地,一些处理器可使用在处理器核54和/或处理器外部的高速缓存。图3a和图3b图示出有序核架构的更详细的框图。处理器核54包括芯片中的一个或多个逻辑块(包括相同类型和/或不同类型的其他核)。取决于应用,逻辑块通过高带宽互连网络(例如,环形网络)与一些固定的功能逻辑、存储器i/o接口和其他i/o逻辑进行通信。图3a是根据本公开的实施例的单个处理器核54以及它至管芯上互连网络100的连接及其第二级(l2)高速缓存的本地子集104的框图。在一个实施例中,指令解码器102支持具有紧缩数据指令集扩展的x86指令集。l1高速缓存106允许对进入标量和向量单元中的、对高速缓存存储器的低等待时间访问。尽管在一个实施例中(为了简化设计),标量单元108和向量单元110使用分开的寄存器集合(分别为标量寄存器112(例如,x87栈18)和向量寄存器114(例如,向量寄存器112)),并且在这些寄存器之间传输的数据被写入到存储器,并随后从第一级(l1)高速缓存106读回,但是本公开的替代实施例可以使用不同的方法(例如,使用单个寄存器集合或包括允许数据在这两个寄存器堆之间传输而无需被写入和读回的通信路径)。l2高速缓存的本地子集104是全局l2高速缓存单元90的一部分,该全局l2高速缓存单元90被划分成多个分开的本地子集,每个处理器核一个本地子集。每个处理器核54具有到其自身的l2高速缓存的本地子集104的直接访问路径。由处理器核54读取的数据被存储在其l2高速缓存子集104中,并且可以与其他处理器核54访问其自身的本地l2高速缓存子集并行地被快速访问。由处理器核54写入的数据被存储在其自身的l2高速缓存子集104中,并在必要的情况下从其他子集转储清除。互连网络100确保共享数据的一致性。互连网络100是双向的,以允许诸如处理器核、l2高速缓存和其他逻辑块之类的代理在芯片内彼此
通信。每条数据路径在每个方向上可具有多个(例如,1012个)位的宽度。图3b是根据本公开的实施例的图3a中的处理器核的一部分的展开图。图3b包括l1高速缓存106的l1数据高速缓存106a部分,以及关于向量单元110和向量寄存器114的更多细节。具体地,向量单元110可以是向量处理单元(vpu)(例如,向量算术逻辑单元(alu)118),该vpu执行整数、单精度浮点以及双精度浮点指令中的一条或多条。该vpu通过混合单元120支持对寄存器输入的混合,通过数值转换单元122a和122b支持数值转换,并且通过复制单元124支持对存储器输入的复制。写掩码寄存器14允许预测所得的向量写入。图4是根据本公开的实施例的可具有多于一个的处理器核54、可具有(多个)集成存储器控制器单元132、以及可具有集成图形器件的处理器130的框图。图4中的实线框图示出具有单个核54a、系统代理单元134、一个或多个总线控制器单元的集合138的处理器130,而虚线框的任选的附加图示出具有多个核54a-54n、系统代理单元134中的一个或多个集成存储器控制器单元的集合132、以及专用逻辑136的处理器130。因此,处理器130的不同实现可包括:1)cpu,其中专用逻辑136是集成图形和/或科学(吞吐量)逻辑(其可包括一个或多个核),并且核54a-n是一个或多个通用核(例如,通用有序核、通用乱序核、或其组合);2)协处理器,其中核54a-n是旨在主要用于图形和/或科学(吞吐量)的相对大量的专用核;以及3)协处理器,其中核54a-n是相对大量的通用有序核。因此,处理器130可以是通用处理器、协处理器或专用处理器,诸如例如,网络或通信处理器、压缩引擎、图形处理器、gpgpu(通用图形处理单元)、高吞吐量的集成众核(mic)协处理器(包括30个或更多核)、嵌入式处理器,等等。该处理器130可以被实现在一个或多个芯片上。处理器130可以是一个或多个基板的一部分,和/或可使用多种工艺技术(诸如例如,bicmos、cmos、或nmos)中的任何技术被实现在一个或多个基板上。存储器层次结构包括核内的一个或多个高速缓存级别、一个或多个共享高速缓存单元的集合140、以及耦合到集成存储器控制器单元的集合132的外部存储器(未示出)。共享高速缓存单元的集合140可包括一个或多个中间级别的高速缓存,诸如,第二级(l2)、第三级(l3)、第四级(l4)或其他级别的高速缓存、末级高速缓存(llc)和/或以上各项的组合。虽然基于环的互连网络100可将集成图形逻辑136(集成图形逻辑136是其示例,并且在本文中还被称为专用逻辑136)、共享高速缓存单元的集合140和/或系统代理单元134/(多个)集成存储器控制器单元132互连,但是可使用任何数量的公知技术来互连此类单元。例如,可在一个或多个高速缓存单元142a-n与核54a-n之间维持一致性。在一些实施例中,一个或多个核54a-n能够实现多线程化。系统代理单元134包括协调和操作核54a-n的那些组件。系统代理单元134可包括例如功率控制单元(pcu)和显示单元。pcu可以是或可包括用于对核54a-n以及集成图形逻辑136的功率状态进行调节的逻辑和组件,或可包括这些逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。核54a-n在架构指令集方面可以是同构或异构的。也就是说,核54a-n中的两个或更多个能够执行同一指令集,而其他核可以可能仅能够执行单个指令集的子集或不同的指令集。计算机架构图5-图8是计算机架构的实施例的框图。这些架构可适于膝上型设备、台式机、手持pc、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、
数字信号处理器(dsp)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备的其他系统设计和配置。一般而言,能够并入处理器130和/或其他执行逻辑的各种广泛的系统或电子设备。现在参考图5,所示出的是根据本公开的实施例的系统150的框图。系统150可以包括一个或多个处理器130a、130b,这些处理器耦合到控制器中枢152。控制器中枢152可包括图形存储器控制器中枢(gmch)154和输入/输出中枢(ioh)156(其可以在分开的芯片上);gmch 154包括存储器和图形控制器,存储器158和协处理器160耦合到该存储器和图形控制器;ioh 156将输入/输出(i/o)设备164耦合到gmch 154。或者,存储器和图形控制器中的一个或这两者被集成在(如本文中所描述的)处理器130内,存储器158和协处理器160耦合到(例如,直接耦合到)处理器130a,并且控制器中枢152与ioh 156处于单个芯片中。附加的处理器130b的任选性在图5中通过虚线来表示。每一处理器130a、130b可包括本文中描述的处理核54中的一个或多个,并且可以是处理器130的某一版本。存储器158可以是例如动态随机存取存储器(dram)、相变存储器(pcm)或其组合。对于至少一个实施例,控制器中枢152经由诸如前端总线(fsb)之类的多分支总线、诸如快速路径互连(qpi)之类的点对点接口、或者类似的连接162与(多个)处理器130a、130b进行通信。在一个实施例中,协处理器160是专用处理器,诸如例如,高吞吐量mic处理器、网络或通信处理器、压缩引擎、图形处理器、gpgpu、嵌入式处理器,等等。在实施例中,控制器中枢152可以包括集成图形加速器。在处理器130a、130b的物理资源之间可以存在包括架构、微架构、热、功耗特性等一系列品质度量方面的各种差异。在一些实施例中,处理器130a执行控制一般类型的数据处理操作的指令。嵌入在这些指令内的可以是协处理器指令。处理器130a将这些协处理器指令识别为具有应当由附连的协处理器160执行的类型。因此,处理器130a在协处理器总线或者其他互连上将这些协处理器指令(或者表示协处理器指令的控制信号)发布到协处理器160。协处理器160接受并执行所接收的协处理器指令。现在参见图6,所示出的是根据本公开的实施例的多处理器系统170的更详细的框图。如图6中所示,多处理器系统170是点对点互连系统,并且包括经由点对点接口190耦合的处理器172和处理器174。处理器172和174中的每一个都可以是处理器130的某一版本。在本公开的一个实施例中,处理器172和174分别是处理器130a和130b,而协处理器176是协处理器160。在另一实施例中,处理器172和174分别是处理器130a和协处理器160。处理器172和174示出为分别包括集成存储器控制器(imc)单元178和180。处理器172还包括点对点(p-p)接口182和184作为其总线控制器单元的部分。类似地,处理器174包括p-p接口186和188。处理器172、174可经由使用p-p接口184、188的点对点接口190来交换信息。如图6中所示,imc178和180将处理器耦合到相应的存储器,即存储器192和存储器193,这些存储器可以是本地附连到相应处理器172、174的主存储器的不同部分。处理器172和174可各自经由使用点对点接口182、200、186、202的各个p-p接口196、198与芯片组194交换信息。芯片组194可以任选地经由高性能接口204来与协处理器174交换信息。在实施例中,协处理器176是专用处理器,诸如例如,高吞吐量mic处理器、网
络或通信处理器、压缩引擎、图形处理器、gpgpu、嵌入式处理器,等等。共享高速缓存(未示出)可被包括在任一处理器172或174中,或在这两个处理器172或174的外部的、经由相应的p-p互连与处理器172、174连接,使得如果相应的处理器被置于低功率模式,则任一个或这两个处理器的本地高速缓存信息可被存储在共享高速缓存中。芯片组194可以经由接口208耦合到第一总线206。在实施例中,第一总线206可以是外围组件互连(pci)总线或诸如pci快速总线或另一第三代i/o互连总线之类的总线,但是本公开的范围不限于此。如图6中所示,各种i/o设备210可连同总线桥212一起耦合到第一总线206,该总线桥212将第一总线206耦合到第二总线214。在实施例中,诸如协处理器、高吞吐量mic处理器、gpgpu、加速器(诸如例如,图形加速器或数字信号处理(dsp)单元)、现场可编程门阵列或任何其他处理器的一个或多个附加处理器216耦合到第一总线206。在实施例中,第二总线214可以是低引脚数(lpc)总线。在一个实施例中,各种设备可耦合到第二总线214,这些设备包括例如键盘和/或鼠标218、通信设备220以及存储单元222,该存储单元222诸如可包括指令/代码和数据224的盘驱动器或者其他大容量存储设备。此外,音频i/o 226可以被耦合到第二总线214。注意,可为多处理器系统170部署其他架构。例如,代替图6的点对点架构,多处理器系统170可以实现多分支总线或其他此类架构。现在参考图7,所示出的是根据本公开的实施例的系统230的框图。图7和图8中的类似元件包含类似的附图标记,并且已从图7中省略了图6的某些方面以避免混淆图7的其他方面。图7图示处理器172、174可分别包括集成存储器和i/o控制逻辑(“imc”)178和180。因此,imc 178、180包括集成存储器控制器单元,并包括i/o控制逻辑。图7示出不仅存储器192、193耦合至imc 178、180,而且i/o设备231也耦合至imc 178、180。传统i/o设备232经由接口208耦合至芯片组194。现在参考图8,示出的是根据本公开的实施例的soc 250的框图。图4中的类似要素具有类似的附图标记。另外,虚线框是被包括在一些soc 250中的任选的特征。在图8中,(多个)互连单元252被耦合到:应用处理器254,其包括一个或多个核的集合54a-n的集合以及(多个)共享高速缓存单元140,一个或多个核的集合54a-n包括高速缓存单元142a-n;系统代理单元134;(多个)总线控制器单元138;(多个)集成存储器控制器单元132;一个或多个协处理器的集合256,其可包括集成图形逻辑、图像处理器、音频处理器和/或视频处理器;静态随机存取存储器(sram)单元258;直接存储器存取(dma)单元260;以及用于耦合到一个或多个外部显示器的显示单元262。在实施例中,(多个)协处理器256包括专用处理器,诸如例如,网络或通信处理器、压缩引擎、gpgpu、高吞吐量mic处理器、或嵌入式处理器,等等。本文公开的机制的各实施例可以被实现在硬件、软件、固件或此类实现方式的组合中。本公开的实施例可实现为在可编程系统上执行的计算机程序和/或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。可将程序代码(诸如,图6中图示的数据224)应用于输入指令,以执行本文中描述的功能并生成输出信息。可以将输出信息应用于一个或多个输出设备。为了本技术的目的,
处理系统包括具有处理器的任何系统,该处理器诸如例如,数字信号处理器(dsp)、微控制器、专用集成电路(asic)或微处理器。程序代码可以用高级的面向过程的编程语言或面向对象的编程语言来实现,以便与处理系统通信。程序代码还能以汇编语言或以机器语言来实现。事实上,本文中描述的机制不限于任何特定的编程语言的范围。在任何情况下,该语言可以是编译语言或解释语言。至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示性指令来实现,该指令表示处理器中的各种逻辑,该指令在被机器读取时使得该机器制造用于执行本文中所述的技术的逻辑。被称为“ip核”的此类表示可以被存储在有形的机器可读介质上,并可被供应给各个客户或生产设施以加载到制造该逻辑或处理器的制造机器中。此类机器可读存储介质可以包括但不限于通过机器或设备制造或形成的制品的非暂态、有形布置,其包括存储介质,诸如硬盘;任何其他类型的盘,包括软盘、光盘、紧致盘只读存储器(cd-rom)、可重写紧致盘(cd-rw)以及磁光盘;半导体器件,诸如,只读存储器(rom)、诸如动态随机存取存储器(dram)和静态随机存取存储器(sram)的随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、闪存、电可擦除可编程只读存储器(eeprom);相变存储器(pcm);磁卡、光卡;或适于存储电子指令的任何其他类型的介质。因此,本公开的实施例包括非暂态的有形机器可读介质,该介质包含指令或包含设计数据,诸如按照硬件描述语言(hdl)的设计,它可定义本文中描述的结构、电路、装置、处理器和/或系统特征。此类实施例也可被称为程序产品。仿真在一些情况下,指令转换器可用于将指令从源指令集转换至目标指令集。例如,指令转换器可以将指令变换(例如,使用静态二进制变换、包括动态编译的动态二进制变换)、变形、仿真或以其他方式转换成要由核处理的一条或多条其他指令。指令转换器可以用软件、硬件、固件、或其组合来实现。指令转换器可以实现在处理器上、在处理器外、或者部分在处理器上且部分在处理器外。图9是根据本公开的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。在所图示的实施例中,指令转换器是软件指令转换器,但替代地,该指令转换器可以用软件、固件、硬件或其任何组合来实现。图9示出可使用x86编译器282来编译高级语言280形式的程序,以生成可由具有至少一个x86指令集核的处理器286原生执行的x86二进制代码284。具有至少一个x86指令集核的处理器286表示通过兼容地执行或以其他方式执行以下各项来执行与具有至少一个x86指令集核英特尔处理器基本相同的功能的任何处理器:1)英特尔x86指令集核的指令集的本质部分,或2)目标为在具有至少一个x86指令集核的英特尔处理器上运行以便取得与具有至少一个x86指令集核的英特尔处理器基本相同的结果的应用或其他软件的目标代码版本。x86编译器282表示可操作用于生成x86二进制代码284(例如,目标代码)的编译器,该二进制代码可通过或不通过附加的链接处理在具有至少一个x86指令集核的处理器286上执行。类似地,图9示出可以使用替代的指令集编译器288来编译高级语言280形式的程序,以生成可以由不具有至少一个x86指令集核的处理器292(例如,具有执行加利福尼亚州桑尼维尔市的mips技术公司的mips指令集、和/或执行加利福尼亚州桑尼维尔市的arm控股公司的arm指令集的处理器核54的处理器)原生执行的替代的指令集二进制代码290。指令
转换器294用于将x86二进制代码284转换成可以由不具有x86指令集核的处理器292原生执行的代码。该转换后的代码不大可能与替代的指令集二进制代码290相同,因为能够这样做的指令转换器难以制造;然而,转换后的代码可完成一般操作,并且由来自替代指令集的指令构成。因此,指令转换器294通过仿真、模拟或任何其他过程来表示允许不具有x86指令集处理器或核的处理器或其他电子设备执行x86二进制代码284的软件、固件、硬件或其组合。中断处置图10示出中断系统295,该中断系统295可以是前述处理器/soc中的任一者的部分。如图所示,中断系统295包括中断控制器296,用于控制中断297向处理器/soc的相应核298的传送。虽然针对以下实施例讨论了中断297,但是应当理解,中断控制器296还可被用于管理异常,和/或处理器可包括异常控制器,该异常控制器可被用于以中断控制器296被讨论为处置中断的方式类似的方式来管理异常。中断可在中断控制器296内部生成,或可在处理器/soc的另一部分(例如,外围设备)内部生成。附加地或替代地,诸如在物联网(iot)设备、可穿戴设备、和平板、以及移动电话内,中断控制器296可耦合至一个或多个外围设备299,这一个或多个外围设备299将中断请求300传送到中断控制器296。外围设备299可包括小键盘、sd卡读取器、和/或其他i/o设备。中断控制器296确定何时将从中断请求300生成的中断297释放到核298。虽然在本文中核298被讨论为用于中断297的端点,但是用于中断297的端点可包括处理器/soc中的任何合适的位置。图11示出过程301的流程图,该过程301可由中断控制器296使用,以在每次中断请求300待决时以按需方式释放中断297。如图所示,中断控制器296接收中断297将发生的指示(框302)。例如,一些值可由中断控制器296(例如,从外围设备299)接收作为中断请求300,该中断请求300指示一个或多个核298将被中断,和/或中断控制器296基于由该中断控制器296进行的计算或接收已在内部确定一个或多个核298将被中断。中断控制器296确定所针对的核298是否处于睡眠模式(框304)。如果所针对的核298处于睡眠模式,则中断控制器296(或处理器的任何其他部分)将核298从睡眠模式唤醒(框306)。中断297从中断控制器296被传送(例如,释放)到核298(框308)。换言之,当中断297就绪时,中断297的每次传送可被传送或释放到核298。然而,如先前所述,用于处置中断的此类按需方案会使处理器/soc由于对中断297的连续处置而不能够利用睡眠模式。替代地,替代方案可被用于集聚中断297以防止对核298的持续唤醒。为了避免此类问题,可将中断297聚集为集群,其中处理器/soc可将核298置于睡眠状态达更久的持续时间而不唤醒。图12是反映基于留持所请求的中断直到唤醒信号被断言的聚集的时序图320。如图所示,时序图320包括线322、324、326、328、330、332和334。线322与第一中断请求300对应,线324与第二中断请求300对应,并且线326与第i中断请求300对应。线328与用于唤醒(多个)核298来服务待决中断的唤醒信号对应。线330与对应于第一中断请求300的第一中断297对应。线332与对应于第二中断请求300的第二中断297对应。线334与对应于第i中断请求300的第i中断297对应。在时刻336,脉冲338指示对第一中断请求300的断言,该第一中断请求300指示对第一中断297的请求。类似地,在时刻340,脉冲342指示对第i中断请求300的断言,该第i中断请求300指示对第i中断297的请求。然而,在时刻336和340,唤醒信号不被断言,这导致中断控制器296扼制第一中断和第i中断297的释放,直到当对唤醒信号的断言346发生时的时刻344。由于该断言346,中断控制器296释放分别
由脉冲348和350指示的第一中断和第i中断297。一旦在时刻352处对唤醒信号的解除断言发生,中断297就再次被留持,直到对下一唤醒信号的另一断言发生。具体地,在时刻354处,指示第i中断297的请求的脉冲356;以及在时刻358处,指示第二中断297的请求的脉冲360。然而,第i脉冲和第二脉冲297被留持直到当对唤醒信号的断言364发生的时刻362。由于该断言364,脉冲366和368指示第i中断和第二中断297向(多个)相应的核298的传送。在当唤醒信号被解除断言的时刻370之后,未来的中断297再次被留持,直到对唤醒信号的下一断言。虽然利用时序图320的处理器/soc可集聚中断297,但是该方案依赖于专用唤醒信号的创建和传送,该专用唤醒信号通过某个连接、使用某个协议(例如,外围组件互连快速(pcie))被传送到中断控制器296或由中断控制器296接收。因此,此类处理器/soc可能要求特定的消息收发机制(例如,pcie)存在于处理器/soc的设计中,从而对处理器/soc施加超出一些规划实现方式的外来要求。图13是利用定时器来释放被留持的中断297的替代集聚过程的时序图380。如图所示,时序图380包括线382、384、386、388、390、392和394。线382、384和386分别与第一中断请求、第二中断请求和第i中断请求300对应。线388与周期性定时器对应,该周期性定时器在时刻396、398和400处转变,以使中断控制器296释放/传送被留持的中断297。线390、392和394与第一中断、第二中断和第i中断297对应。如所所示,脉冲402和403分别指示与第一中断和第i中断297对应的请求已被接收但被留持,直到周期性定时器的下一切换。在时刻398处,当周期性定时器切换时,脉冲404和405示出第一中断和第i中断297从中断控制器296向核298的相应传送/释放。类似地,脉冲406和407分别指示与第i中断和第二中断297对应的请求已被接收但被留持,直到周期性定时器的下一切换。在时刻400处,当周期性定时器切换时,脉冲408和409示出第i中断和第二中断297从中断控制器296向核298的相应传送/释放。虽然周期性定时器可集聚中断297,但中断297的非周期性质可在以更高效方式集聚中断297方面留有附加可用的改进。例如,自由运行的时钟可运行达长时段,其中,没有中断被接收且潜在地无意义地消耗功率。为了适应中断297的非周期性质,中断297可被组织为成员资格组。成员资格组可包括频繁地一起发生的中断的关联。中断297的释放可被留持,直到至少部分地取决于接收到成员资格组中的其他中断297的释放。图14是使用成员资格组来集聚中断的过程410的流程图。中断控制器296(或处理器的另一部分)将多个中断中的一个或多个中断与相应的成员资格组相关联(框412)。例如,成员资格组可指示中断频繁地一起发生且可被存储在寄存器中。附加地或替代地,成员资格组可以是用户定义的。成员资格组中的中断的数量可以是中断的相对小的数量(例如,2个)一直到中断的相对大的数量(例如,数百个)。在一些实施例中,每个中断可与不多于一个成员资格组相关联。替代地,至少一个中断可与多于一个的成员资格组相关联。中断控制器296接收中断请求300(框414)。中断控制器296确定中断297是否与成员资格组相关联(框416)。如果中断297不与成员资格组相关联,则中断控制器296可传送该中断297而没有进一步延迟(框418)。例如,可防止关键性中断(例如,时间关键性中断)与成员资格组相关联,以确保这些关键性中断可在没有由于留持中断而导致的附加延迟的情况下被传送。
如果中断297与成员资格组相关联,则中断控制器296确定成员资格组中的中断297的阈值数量是否已被中断297的接收超出(框426)。例如,在一些实施例中,阈值可被设置为使得成员资格组中的所有被留持的中断297仅在已针对成员资格组请求了某个数量的(例如,2个、3个、4个、或全部)中断之后被释放。例如,针对阈值的中断297的数量可使用试探法/经验测试来确定。如果阈值未被超出,则中断控制器296留持中断297(框428)。例如,中断请求300可保持被断言,直到在接收到针对成员资格组的另一中断请求300之后中断297被传送和/或由相应的核298处理。如果阈值已被超过,则中断控制器296将成员资格组中的所有被留持的中断297传送到一个或多个相应的核298(框430)。中断控制器296等待,直到(多个)核298已服务被传送的中断297中的任一中断(框432)。在中断的处理之际,中断控制器296清除成员资格组的相应中断请求300(框434)。例如,中断控制器296(和/或(多个)核298)可将请求中断297的消息传送到外围设备299,和/或可清除对相应的中断请求300进行锁存的锁存器。一旦成员资格组的所有中断请求300已被清除(框436),中断控制器296就可重新开始对成员资格组的中断集聚。例如,中断控制器296可生成检测重启信号,该检测重启清除中断释放控制并发起控制逻辑以在成员工作组中集聚中断请求300的下一集合(框438)。图15是可反映当利用过程410时发生的时序信号的时序图450。如图所示,时序图450包括线452、454、456、458、460、462、464和466。线452、454和456与第一中断请求、第二中断请求和第i中断请求300对应。线458与释放中断请求信号对应,该释放中断请求信号当被断言时,被用于释放所留持的中断请求300。线460、462和464与对应于相应的线452、454和456的第一中断、第二中断和第i中断297对应。线466与检测重启信号对应,该检测重启信号被用于清除释放中断请求信号,并发起控制逻辑以集聚中断请求300的下一集合。在时刻468处,中断控制器296接收第一中断请求300。在时刻470处,中断控制器296接收第二中断请求300。在时刻472处,中断控制器296接收第i中断请求300。在所图示的实施例中,所有所所图示的中断都在同一成员资格组中。此外,如图所示,第i中断请求300导致成员资格组的阈值被超过。由于在时刻474处该阈值被超过,因此释放中断请求信号被断言,该释放中断请求信号使第一中断、第二中断和第i中断297(以及成员资格组中的任何其他中断297)从中断控制器296被传送。在时刻476处,(多个)核298完成对第一中断297的服务,并且第一中断请求300被清除。在时刻478处,(多个)核298完成对第二中断297的服务,并且第二中断请求300被清除。在时刻480处,(多个)核298完成对第i中断297的服务,并且第i中断请求300被清除。在时刻482处,检测重启信号被断言,因为成员资格组的所有被留持的中断297都已被清除。在时刻484处,释放中断请求信号基于检测重启信号的上升沿和/或下降沿被解除断言。由于对释放中断请求信号的解除断言,与成员资格组对应的进一步的传入中断297被留持,直到阈值再次已被超过。图16图示根据过程410的用于成员资格组的中断控制器296的集聚电路500的实施例。相应地,每个处理器/soc可包括多个集聚电路500,针对每个成员资格组有一个集聚电路500。此外,集聚电路500可使用软件、硬件、和/或其组合来实现。如图所示,集聚电路500包括检测电路502和留持电路503。检测电路502被检测用于针对成员资格组的阈值数量的(例如,所有)中断是否已被接收。如图所示,一个或多个子系统504(例如,外围或内部电路)可包括用于生成相应的中断请求300的相应的中断逻辑506。子系统504被单独地引用为子
系统504a、504b和504c,来自相应中断逻辑506a、506b和506c的相应的中断请求300a、300b和300c。虽然所图示的子系统504各自仅输出单个中断请求300,但是处理器/soc的至少一些实施例可包括在不同的输出线上输出多个中断请求的至少一个子系统504。每个中断请求300被传送到检测电路502的相应的or(“或”)门508。or门508可被用于基于禁用信号510启用/禁用检测电路502中的检测,该禁用信号510分别被引用为禁用信号510a、510b和510c。禁用信号510被用于指示相应的中断297与由集聚电路500处置的成员资格组相关联。禁用信号510可基于被用于跟踪成员资格组的成员中断的寄存器中的值而被控制。使用禁用信号510,or门508a、508b和508c有效地传送相应的输出,这些输出使相应的请求300在and(“与”)门512处不作出改变,从而保持and门512使中断297被留持。因此,集聚电路500在中断控制器296内是可使用相应的禁用信号510来编程的,以控制哪些中断请求300被包括在成员资格组中。在至and门512的每个输入经由相应的接收到的中断请求300或对相应的禁用信号510的断言而转变为高之际,and门512断言检测信号514,该检测信号514指示针对成员资格组的所有相关联的中断都已被请求。在一些实施例中,and门512可由计数机构替代,该计数机构对阈值请求数量计数,直到阈值被达到,在阈值被达到之后,检测信号514被输出。检测信号514被传送到脉冲生成器516,该脉冲生成器516在接收到相应的中断297已被处理的指示之际(例如,在接收到该指示之后的时钟信号之际)输出检测重启信号518。检测信号514还被传送到“一”检测(one-detect)电路520,该“一”检测电路520在脉冲已被传送出and门512之后断言释放中断请求信号522,直到检测重启信号518重置“一”检测电路520。用于成员资格组的留持电路503在相应的or门524a、524b和524c处接收针对每个相应中断297的中断请求信号522。or门524还接收相应的禁用信号510。相应的中断297被留持在相应的and门526(例如,and门526a、526b、或526c)处,直到相应的or门524的输出转变为高。换言之,如果相应的中断297不被包括在成员资格组中(例如,是关键性中断)或检测电路502已指示被留持的中断297将被释放,则and门526将相应的中断请求300传送到相应的锁存器528,以便(例如,在下一时钟周期上)将相应的中断传送到(多个)相应的核298。如鉴于前述公开可理解的,在无线、移动性和iot产品领域,功耗可以是实现制造商之间的产品差异化的主要属性。对于这一点,本文中的中断集聚在至少此类设备中提供增强的功率效率,此类产品包括平板、手持式设备、膝上型设备和可穿戴设备,其中功耗可能是关键性的。这是真实的,因为本文中讨论的中断集聚减少了非关键性系统获得以减少功耗。通过组合尽可能多的中断事件并且同时服务那些中断,与中止当前活动、切换以服务单个中断、且随后恢复当前活动相比,系统活动被减少,如图17中所图示。用于服务中断的切换处理可意味着用于处理中断的代码在中断还不存在于内部高速缓存中时将必然被加载到系统主存储器。此外,系统寄存器可被交换以处置也消耗附加功率的新的上下文。图17示出具有被用于使用非集聚中断处理540和使用集聚中断处理542来执行过程的处理时段532、534、536和538的时序图。如图所示,在非集聚中断处理540中,当中断544被接收时,处理器在时段546中服务中断544。另外,在非集聚中断处理540中,当中断548被接收时,处理器在时段550中服务中断548。此外,在非集聚中断处理540中,当中断552被接收时,处理器在时段554中服务中断552。相应地,在中断544、548和552的服务以及该过程的执行期间,六个上下文切换被执行。然而,利用集聚中断处理542,通过延迟中断544、548和
552直到过程流被完成之后,仅存在三个上下文切换,这进一步说明书了集聚中断的有用性。然而,在无线和移动设备(或在其中处理或功耗可能受限的其他设备)中国,可对集聚施加超出仅成员资格组的附加限制。例如,此类设备和/或其他设备可受益于留持中断297,直到某个事件(例如,外部事件)发生。
96.体地,在无线和移动设备中,典型地存在在soc中触发中断请求300的外围设备299的混合体。中断297可具有可变程度的等待时间,其中,在如果中断297不被及时服务则信息丢失之前,每个中断297将被服务。例如,在蜂窝电话芯片应用这,存在低等待时间中断源(诸如,视频、图形、显示,等等)和高等待时间中断源(诸如,语音(麦克风)、小键盘、触摸板、传感器、相机,等等)。低等待时间中断源可能是针对中断集聚的较不理想的候选。然而,高等待时间中断源可更多地受益于中断集聚。例如,在蜂窝电话芯片上的语音处理中,可使用采样(例如,8khz脉冲码调制(pcm))。在下一语音样本将被处理之前的几十毫秒延迟意味着在下一语音样本到达之前中断端点可能是不必要的。此外,在蜂窝电话芯片应用中,一些端点可消耗来自使用处理端点来处理信息的中断源、存储端点(例如,闪存、sd卡、sdram、usb,等等)、和/或用于中继信息的无线电端点(例如,发射机和/或接收机)的信息。即便端点可具有多个通道,该端点也可被优化用于一次执行一个动作。例如,闪存nand芯片可具有仅一个数据路径i/o,并且一次仅存储一个通道。端点活动可被用于集聚中断请求。此外,端点活动(例如,试探法)可被用于控制外部事件指示以触发被集聚的中断297的释放。作为示例,在当核298是端点的情况下,核298活动的测量可被表示为硬件信号。比较器块将活动测量与经编程的阈值进行比较。当cpu活动跌落到低于阈值时,比较器向中断控制器296生成释放信号。在此类情况下,当核298的活动水平跌落到低于阈值时,高等待时间中断稍后可被服务。类似地,在存储端点和无线电端点的情况下,可在硬件块中监测对那些端点的活动。也可以使用那些端点的高等待时间中断可被集聚为组,并且当对那些端点的活动已跌落到低于经编程的阈值时可被释放。可被用于确定外部事件触发释放的替代度量(例如,试探法)是由端点进行的对任务的优先级排定。优先级可被指派给正由任务执行的任务(例如,核进程、存储存储器块转移、无线电分组)。被集聚的中断可被延迟释放,直到当被集聚的中断与正被服务的较高优先级的任务有关时该较高优先级的任务被完成。例如,语音分组要被处理,并且与从同一存储设备检取的视频信息一起被存储到sdram。语音中断可与也利用对sdram的访问直到较高优先级视频信息完成的其他中断集聚。其他合适的外部事件可被用于控制对较低优先级中断的释放。由于被集聚的中断在被处理之前不具有无限的等待时间,因此外部事件触发释放可具有用于防止信息丢失的容错机制。对于被集聚为组的中断297的集合,最小等待时间可由具有最低等待时间要求的中断确定。附加地或替代地,最小等待时间可从经验测试导出。外部事件触发释放逻辑将跟踪最小等待时间,并且如果期望的试探法事件在最小等待时间之前还未完成,则释放被集聚的中断297。图18是被用于将中断297集聚在时序组中的过程580的流程图。过程580可与过程410完全相同,例外在于,过程580具有框582、584和586来取代框412和426。具体地,过程580
适用于作为外部事件组的部分的、被留持直到外部事件已被接收的中断。例如,过程580开始于:将中断297关联至外部事件组(框582)。类似地,附加于或替代于如过程410中所完成的检查阈值数量的中断是否已被接收,中断控制器296可检查与外部事件组相关联的外部事件是否已被接收的指示(框584)如先前所述,由于基于外部事件对中断的留持可能无法无限地继续,因此该留持可在持续时间方面受限。例如,如果最小等待时间已被达到(框586)或外部事件已被接收,则中断控制器296将中断传送到(多个)核298。最小等待时间可与最早时刻对应,在该最早时刻之后,中断请求300中的一个中断请求在接收后将被实现。附加地或替代地,最小等待时间可被预设(例如,使用经验测试)。如果事件还未被接收且最小等待时间还未被达到,则中断297被留持(框428)。否则,被留持的中断被传送到(多个)核298。图19是可从处理器/soc利用图18的过程580而产生的时序图600。如图所示,时序图600包括线602、604、606、608、610、612、614、616和618。线602、604和606与第一中断请求、第二中断请求和第i中断请求300对应。线608与外部信号的指示对应,该外部信号被断言为在中断控制器外部的外部事件已发生的指示。线610与释放中断请求信号522对应。线612、614和616与第一中断、第二中断和第i中断297对应。线618与检测重启信号518对应。在时刻620,第一中断请求300被接收,但是第一中断297作为外部事件组的部分被留持,因为外部事件还未发生(并且最小等待时间还未被达到)。在时刻622,第二中断请求300被接收,但是第二中断297作为外部事件组的部分被留持,因为外部事件还未发生(并且最小等待时间还未被达到)。在时刻624,第i中断请求300被接收,但是第i中断297作为外部事件组的部分被留持,因为外部事件还未发生(并且最小等待时间还未被达到)。在时刻626,外部事件的指示被接收。在时刻628,被留持的中断297被传送到(多个)相应的核298。被留持的中断297可基于指示的上升沿、指示的下降沿、或在任一边沿之后的某个传播延迟之后被释放。第一中断297在时刻630处被服务,并且第一中断请求300被清除。第二中断297在时刻632处被服务,并且第二中断请求300被清除。第i中断297在时刻634处被服务,并且第i中断请求300被清除。基于所有被留持的中断297都被清除,检测重启信号518在时刻636处被脉动。在检测重启信号518之后被接收的任何中断可被延迟,直到下一外部事件或直到最小等待时间已流逝。图20是与集聚电路500类似地运作的集聚电路650的示意图。具体地,集聚电路650接收禁用信号510,该禁用信号510可被用于针对留持电路503中的相应中断297(例如,时间关键性中断297)绕过基于时序事件组的中断集聚。禁用信号510(和/或相关的启用信号654)可使用寄存器来配置哪些中断要作为事件组的部分被包括而被生成(例如,通过设置位)。集聚电路650可被用于检测并留持在单个外部事件组中的中断。集聚电路650的其他实例可被用于检测并留持其他外部事件组。相应地,集聚电路650的任何合适数量的实例可被用于合适数量的外部事件组。此外,每个外部事件组中的中断297的数量针对每个外部组可以不同,并且可包括可与相应事件相关联的任何合适数量的中断297。如图所示,集聚电路650包括检测电路651和留持电路503。检测电路651被用于控制留持电路503,以确保中断请求300被留持,直到外部事件和/或最小等待时间发生。集聚电路650与集聚电路500不同,体现在检测电路651包括各自都配置成用于接收相应的中断
请求300的相应的and门652a、652b和652c。当任何and门652接收到对相应的中断请求300的相应断言和相应的启用信号654时,and门652将断言输出到相应的or门656a、656b或656c。断言传播通过相应的or门656而去往释放触发电路658。断言向释放触发电路658的传播指示至少一个中断297可被留持,直到外部事件660的指示被接收。在接收到外部事件660的指示之际,释放中断请求信号522被切换。在一些实施例中,释放触发电路658可包括跟踪电路662,用于确定中断已被留持多久。例如,跟踪电路662可包括计数器电路,该计数器电路配置成用于对自从断言从or门656被传播以来的周期数量(例如,最小等待时间)计数。在一些实施例中,由跟踪电路662确定的持续时间可被传送到比较器664,该比较器664将该持续时间与阈值持续时间进行比较。可基于试探法/经验测试或其他合适的技术来为外部事件组设置阈值持续时间。如果阈值已被达到,则即便外部事件660的指示还未被接收到,释放触发电路658也可断言释放中断请求信号522。另外,一旦检测电路651已确定所有被留持的中断297都被清除,检测信号666就可被切换以经由脉冲生成器516生成检测重启信号518。例如,在所有中断请求300针对外部事件组被清除之后,检测信号666可从高转变到低。对检测重启信号518的断言可使释放中断请求信号522被解除断言,并将释放触发电路658往回置于准备留持中断请求300直到在外部事件660的指示时接收到下一脉冲的初始状态。应当注意,集聚电路650的任何方面(例如,跟踪电路662和比较器664)可被并入图16的集聚电路500中。留持电路503如上文关于图16所讨论地运作。附加于或替代于成员资格组和/或外部事件组,中断可被组织为时序组,其中当与时序组对应的中断请求300已被接收时,计数器/定时器可被启动。一旦时序组计数器/定时器已开始,针对该时序组的任何传入中断请求300就可被留持,直到计数器/定时器达到目标值(例如,0),其中对应的中断297被传送到相应的端点。一旦中断297被传送和/或服务,计数器/定时器就可被重置和/或设置于不确定状态,但直到组中的下一中断被接收才运行计数器/定时器。如可理解,时序组可以是典型地发生在某个时间窗口内的中断297的组。时序窗口的尺寸可使用经验测试或其他合适的机制来设置。计数器/定时器的持续时间可被设置为该时间窗口,具有任选附加的缓冲。附加地或替代地,能以经验方式测试持续时间以检查增强的效率而不导致对于时序的意外问题。时序组可被用于在针对组的第一接收到的中断请求300的时间窗口内释放中断,而无需永久地运行可被用于释放被留持的中断的周期性定时器,因为周期性定时器在没有中断已被接收到时会不必要地消耗功率。图21是可被用于将中断297集聚到时序组中的过程700的流程图。处理器/soc将一个或多个中断与相应的时序组相关联(框702)。如先前所述,这些时序组可被用于将进入时序组的中断297关联至单个计数器/定时器。例如,该编组可基于时序组中的中断297将被一起使用和/或典型地以彼此的阈值时间发生的可能性。附加地或替代地,该关联可以是用户可编程的,由此使用户能够对经由中断控制器296留持针对时序组的中断进行编程。附加地或替代地,每个时序组可与相应的核298相关联。中断控制器296接收与时序组对应的中断请求300(框704)。中断控制器296确定用于该时序组的计数器/定时器当前是否正在运行(框706)。在一些实施例中,检查计数器/定时器是否正在运行可包括:在重置之后,确定/等待直到计数器/定时器就绪。例如,计数器/定时器在当前被释放的中断297之前的先前释放
与计数器在服务被释放的中断297之后被重置之间可能不是就绪的。如果计数器不是就绪的,则中断控制器296可延迟计数器/定时器的启动,直到重置已完成。如果定时器不是正在运行(并且就绪),则中断控制器296可启动计数器/定时器(框708)。然而,如果定时器/计数器已经正在运行,则无需启动计数器/定时器。当计数器/定时器正在运行(或当未就绪时被延迟)时,相应的中断请求300由中断控制器296留持(框710)。中断控制器296确定计数器/定时器是否已达到阈值(框712)。例如,中断控制器296可利用比较器来确定计数器/定时器是否已达到值(例如,当倒计数时,0;或当正计数时,n)。如果计数器/定时器还未达到阈值,则中断控制器296可确定时序组中的其他中断请求300是否已被接收(框714)。如果在定时器正在运行时其他中断请求300被接收,则中断控制器296留持其他中断请求300(框716)。一旦计数器/定时器已达到阈值,中断控制器296就将被留持的中断请求300传送到端点,诸如,核298(框718)。中断控制器296等待,直到(多个)核298已服务针对时序组的被传送的中断297中的任一中断(框720)。在对中断297的处理之际,中断控制器296(或处理器/soc的其他部分)清除时序组的相应的中断请求300(框722)。例如,中断控制器296可将请求中断297的消息传送到外围设备299,和/或可清除对相应的中断请求300进行锁存的锁存器。一旦时序组的所有中断请求300已被清除(框724),中断控制器296就可重新开始对时序组的集聚。例如,中断控制器296可生成检测重启信号518,该检测重启信号清除中断释放控制并发起控制逻辑以在时序组中集聚中断请求300的下一集合(框726)。附加地,在为时序组中的中断请求300的下一集合准备时,中断控制器296可利用检测重启信号518来重置计数器/定时器(框728)。图22是使用如图21中的过程700中所示的用于时序组的基于时序的中断集聚的时序图740。如图所示,时序图包括线742、744、746、748、750、752、754、756、758和760。线742、744和746与针对时序组的相应的第一中断请求、第二中断请求和第i中断请求300对应。线748与计数器启用信号对应,该计数器启用信号启用/启动计数器/定时器运行。线750与计数器/定时器对应。线752与释放中断请求信号522对应。线754、756和758与相应的第一中断、第二中断和第i中断297对应,该第一中断、第二中断和第i中断297分别与第一中断请求、第二中断请求和第i中断请求300对应。线760与检测重启信号518对应。在时刻762处,第一中断请求300在中断控制器296处被接收。第一中断请求300被留持,并且中断控制器296切换计数器启用信号并启动计数器/定时器。在时刻764处,第二中断请求300在中断控制器处被接收。由于计数器/定时器已经正在运行,因此当第二中断请求被留持时计数器/定时器保持运行,直到计数器/定时器已达到阈值。在时刻766处,第三中断请求300被接收。由于计数器/定时器已经正在运行,因此当第二中断请求被留持时计数器/定时器保持运行,直到计数器/定时器已达到阈值。在768处,计数器/定时器达到阈值。在达到阈值(例如,具有或不具有传播延迟)之后,在计数期间已经被留持的第一中断请求、第二中断请求和第i中断请求300作为响应的第一中断、第二中断和第三中断297被传送。在时刻770处,第一请求297已被服务,并且相应的中断请求300已被清除。在时刻772处,第二请求297已被服务,并且相应的中断请求300已被清除。在时刻774处,第i请求297已被服务,并且相应的中断请求300已被清除。在所有中断297都已被服务之后,在时刻776处,计
数器被禁用并被重置。对计数器的该重置和禁用至少部分地基于检测重启信号518的脉冲的上升沿或下降沿。如先前所讨论,处理器/soc可具有多个时序组。图23是包括两个不同的顺序组的时序图777:用于不同的核298的核a时序组778和核b时序组780。附加地或替代地,时序组可通过任何其他合适的分类来组织(例如,典型地在彼此的时间内被执行)。例如,第一时序组(核a时序组778)可以是图22中的时序图740中的时序组。第二时序组(核b时序组780)可包括线782、784、786、788、790、792和794。线782、784和786与对应于核b时序组780的第i+1中断请求、第i+2中断请求和第i+j中断请求300对应。线788与用于核b时序组780的计数器/定时器对应。线790、792和794与对应于核b时序组780的第i+1中断请求、第i+2中断请求和第i+j中断297对应。在时刻796处,第一中断请求300在中断控制器296处被接收。由于第一中断请求300被配置为属于核a时序组778,并且核a时序组778的计数器/定时器还未启动,因此核a时序组778的计数器/定时器被启动。第一中断请求300也被留持在中断控制器296中,直到计数器/定时器已跨越阈值。在时刻798处,第i+2中断请求300在同一中断控制器296或处理器/soc的另一中断控制器296处被接收。由于第i+2中断请求300被配置为属于核b时序组780,并且核b时序组780的计数器/定时器还未启动,因此核b时序组780的计数器/定时器被启动。第i+2中断请求300也被留持在中断控制器296中,直到计数器/定时器已跨越阈值。在时刻800处,第i中断请求300和第i+j中断请求300被接收。由于对应的这两个计数器/定时器都已经在运行,因此第i中断请求300和第i+j中断请求300各自被留持,直到已经运行的相应的计数器/定时器达到相应的阈值(例如,使用试探法确定)。在时刻802处,核a时序组778的计数器/定时器已达到阈值,并且第一中断297和第i中断已从中断控制器296释放/传送。在时刻804处,第i+1中断请求300被接收。由于对应的计数器/定时器已经正在运行,因此第i中断请求300被留持,直到已经运行的计数器/定时器达到阈值。在时刻806处,核b时序组780的计数器/定时器已达到阈值,并且第i+1中断、第i+2中断和第i+j中断已从中断控制器296释放/传送。用于核a时序组778和核b时序组780的阈值可以相同或彼此不同。在时刻808处,核a时序组778的新周期开始于第二中断请求300的接收。如在时序图777中所指示,时序组778和780中的每一个可利用独立地操作的不同的计数器/定时器和中断请求300来独立地操作。图24图示以与集聚电路500和650类似方式运作的集聚电路820。具体地,留持电路503接收禁用信号510,该禁用信号510可被用于针对相应中断297(例如,时间关键性中断297)绕过基于时序组的中断集聚。禁用信号510(和/或相关的启用信号654)可使用寄存器来配置哪些中断要作为时序组的部分被包括而被生成(例如,通过设置位)。集聚电路820可被用于检测并留持在单个时序组中的中断。集聚电路820的其他实例可被用于检测并留持其他时序组。相应地,集聚电路820的任何合适数量的实例可被用于合适数量的时序组。此外,每个时序组内的中断297的数量可以彼此不同,并且可包括可与相应的时序组相关联的任何合适数量的中断297。如图所示,集聚电路820包括检测电路822和留持电路503。检测电路822被用于控制留持电路503,以确保中断请求300被留持,直到计数器/定时器满足对应的阈值。集聚电路820与集聚电路500不同,体现在检测电路822包括各自都配置成用于接收相应的中断请
求300的相应的and门652。当任何and门652接收到对相应的中断请求300的相应断言和相应的启用信号654时,and门652将脉冲输出到相应的or门656。脉冲传播通过or门656去往锁存器824,该锁存器824在对检测重启信号518的断言之后接收到第一中断请求300之际锁存作为计数器启用826的断言。寄存器启用826使时序组计数器/定时器828开始计数并将时序计数830输出到比较器832。比较器832将时序计数830与阈值水平(例如,0)进行比较,在该比较之后,比较器触发释放中断请求信号522。另外,一旦检测电路822已确定所有被留持的中断297都被清除,检测信号666就可被切换以经由脉冲生成器516生成检测重启信号518。例如,在所有中断请求300针对时序组被清除之后,检测信号666可从高转变到低。对检测重启信号518的断言可使释放中断请求信号被解除断言不能够重置时序组计数器/定时器828和/或比较器832。留持电路503如上文关于图16所讨论地运作。在本公开的各实施例中,第一、第二和第i可暗示所指派的数字、优先级顺序或其他命名法。例如,优先级顺序可控制当被集聚的中断297一起被接收时首先服务哪些中断297。如本文中所使用的第一、第二、第i可与任何数量的(例如,2个、3个、4个、几十、几百,等等)中断、中断请求和伴随的电路和信号对应。如可理解,本文中的公开内容使用特定的电路,用于利用逻辑高值和逻辑低值讨论。然而,本公开的一些实施例可包括利用替代逻辑元件的逆逻辑。例如,and门可被用于从nand门产生被反转的逻辑,信号可使用反相放大器被反转,等等。尽管本公开中阐述的实施例可易于具有各种修改和替代形式,但是,特定实施例已作为示例在附图中示出并已在本文中详细描述。然而,应当理解,本公开不旨在被限于所公开的特定形式。本公开将涵盖落入如由所附权利要求所限定的本公开的精神和范围内的所有修改、等效方案和替代方案。例如,本文中公开的处理器/soc的一些处理器可利用编组机制(例如,成员资格组、外部事件组、和/或时序组)的组合来执行中断集聚。本文所提出和要求保护的技术被引用并应用于实际性质的实物和具体示例,这些实物和具体示例明显改善了当前技术领域,因此不是抽象的、无形的或纯理论的。进一步地,如果本说明书末尾所附的任何权利要求包含一个或多个被指定为“用于[执行][功能]的装置”或“用于[执行][功能]的步骤”的要素,则其旨在基于35u.s.c.112(f)来解释此类要素。然而,对于包含以任何其他方式指定的要素的任何权利要求,其旨在不基于35u.s.c.112(f)来解释此类要素。示例实施例第一组示例实施例包括:示例实施例1:一种系统,包括:中断控制器,包括:输入端子,配置成用于接收中断请求;输出端子,配置成用于基于中断请求生成中断;检测电路;配置成用于检测是否已由用于成员资格组的中断控制器接收到阈值数量的中断请求;以及留持电路,配置成用于留持中断的释放,直到已由中断控制器接收到阈值数量的中断请求。示例实施例2:示例实施例1的系统,包括:芯片上系统,该芯片上系统具有外围设备,其中,输入端子配置成用于接收来自外围设备的中断。示例实施例3:示例实施例2的系统,其中,输出端子配置成用于将中断传送到芯片上系统的处理器。
示例实施例4:示例实施例1的系统,其中,中断控制器配置成用于:基于寄存器跟踪多个中断中的哪些中断与成员资格组相关联,接收禁用信号,其中,无论阈值数量的中断请求是否已被接收,禁用信号都使得相应的中断绕过留持电路中的留持。示例实施例5:示例实施例4的系统,其中,相应的中断包括时间关键性中断。示例实施例6:示例实施例5的系统,其中,多个中断成员资格组中的成员资格组中断包括非时间关键性中断。示例实施例7:示例实施例1的系统,其中,阈值数量对应于与已被请求的成员资源组相关联的所有中断。示例实施例8:示例实施例1的系统,其中,检测电路配置成用于:一旦所有被留持的中断请求都被服务,就生成重置检测信号。示例实施例9:示例实施例8的系统,其中,检测电路配置成用于:至少部分地基于重置检测信号,重置对成员资格组中的中断集聚的检测。示例实施例10:一种方法,包括:在中断控制器处接收中断请求,其中,中断请求请求要传送到端点的中断;确定中断与成员资格组相关联;留持中断的传送,直到已由中断控制器接收到阈值数量的中断请求;确定已由中断控制器接收到阈值数量的中断请求;以及基于确定了阈值数量的中断请求已被接收,从中断控制器传送针对成员资格组的所有被留持的中断。示例实施例11:示例实施例10的方法,其中,中断请求在包括中断控制器的芯片上系统中被生成,并且端点在芯片上系统内。示例实施例12:示例实施例10的方法,包括:接收不是成员资格组中的附加中断;以及无论阈值数量的中断请求是否被接收,都绕过对附加中断的留持。示例实施例13:示例实施例10的方法,包括:服务中断;以及至少部分地基于服务中断,清除中断请求。示例实施例14:示例实施例13的方法,包括:确定针对成员资格组的所有被留持的中断都已被清除;以及至少部分地基于针对成员资格组的所有被留持的中断都已被清除,生成检测重启信号。示例实施例15:示例实施例14的方法,包括:基于检测重启信号,重置检测电路,该检测电路配置成用于执行确定已由中断控制器接收到阈值数量的中断请求的操作。示例实施例16:一种芯片上系统,包括:一个或多个外围设备,配置成用于生成传送中断的中断请求;可编程中断控制器,配置成用于:跟踪哪些中断请求是成员资格组的部分;集聚作为成员资格组的部分的中断,其中,集聚中断包括:留持中断,直到阈值数量的中断请求已被接收;以及不集聚不作为成员资格组的部分的中断;以及一个或多个处理器核,配置成用于服务从可编程中断控制器传送的中断。示例实施例17:示例实施例16的芯片上系统,包括寄存器,该寄存器被用于将启用或禁用信号发送到可编程中断控制器,该可编程中断控制器使用启用或禁用信号来跟踪哪些中断请求是成员资格组的部分。
示例实施例18:示例实施例17的芯片上系统,其中,可编程中断控制器包括:两个或更多个or门,各自都配置成用于接收相应的中断请求和相应的启用或禁用信号;以及and门,配置成用于接收两个或更多个or门的输出,其中,中断释放信号配置成用于至少部分地基于and门的输出来释放被留持的中断。示例实施例19:示例实施例18的芯片上系统,其中,可编程中断控制器包括脉冲生成器,其配置成用于力日用and门的输出来生成检测重启信号,该检测重启信号指示所有中断都已被服务。示例实施例20:示例实施例19的芯片上系统,其中,可编程中断控制器配置成用于至少部分地基于重启检测信号来重置中断集聚。第二组示例实施例包括:[示例实施例1:一种系统,包括:中断控制器,包括:输入端子,配置成用于接收中断请求;输出端子,配置成用于基于相应的中断请求传送中断;检测电路,配置成用于检测:外部事件组的任何中断请求是否已被接收;以及针对中断的外部事件组,外部事件是否已发生;以及留持电路,配置成用于:留持外部事件组的中断的释放;以及当在中断控制器处接收到外部事件之际,释放被留持的中断。示例实施例2:示例实施例1的系统,包括:附加的检测电路,配置成用于检测:附加的外部事件组的任何中断请求是否已被留持;以及针对中断的附加的外部事件组,附加的外部事件是否已发生;以及附加的留持电路,配置成用于:留持附加的外部事件组的中断的释放;以及当在中断控制器处接收到外部事件之际,释放附加的被留持的中断。示例实施例3:示例实施例1的系统,其中,输入端子配置成用于从外围设备接收中断请求,并且输出端子配置成用于将中断传送到一个或多个端点。示例实施例4:示例实施例1的系统,其中,中断控制器配置成用于将中断传送到以下各者:配置成用于处理信息的处理器端点、配置成用于存储信息的存储端点、或配置成用于传送或接收信息的无线电端点。示例实施例5:示例实施例1的系统,其中,中断控制器配置成用于:至少部分地基于一个或多个端点中的端点的活动水平超出阈值,启用中断集聚。示例实施例6:示例实施例5的系统,其中,事件包括端点的活动水平已跨越到低于阈值的指示。示例实施例7:示例实施例1的系统,其中,中断控制器配置成用于:基于寄存器跟踪中断中的哪些中断与外部事件组相关联,接收禁用信号,其中,无论外部事件是否已被接收,禁用信号都使得相应的中断绕过留持电路中的留持。示例实施例8:示例实施例7的系统,其中,相应的中断包括低等待事件中断。示例实施例9:示例实施例1的系统,包括计数器,该计数器配置成用于对最小等待时间计数,在该最小等待时间之后,中断控制器配置成用于:无论外部事件是否已被接收,都传送被留持的中断。示例实施例10:示例实施例9的系统,包括比较器,该比较器配置成用于:将来自计数器的计数与最小等待时间进行比较,以基于最小等待时间确定何时传送被留持的中断。示例实施例11:示例实施例1的系统,其中,检测电路配置成用于:一旦被留持的中断请求被服务,就生成重置检测信号。
示例实施例12:示例实施例11的系统,其中,检测电路配置成用于:至少部分地基于重置检测信号,重置释放触发电路以重置外部事件组中的中断集聚,直到当留持针对外部事件组的后续接收到的中断请求时后续的外部事件发生。示例实施例13:一种方法,包括:在中断控制器处接收中断请求,其中,该中断请求请求中断被传送到端点;确定中断与外部事件组相关联;留持中断的传送,直到已由中断控制器接收到外部事件;在留持中断的传送之后,确定已由中断控制器接收到外部事件;以及基于确定了在留持中断的传送之后外部事件已被接收,从中断控制器传送针对外部事件组的被留持的中断。示例实施例14:示例实施例13的方法,包括:服务中断;以及至少部分地基于服务中断,清除中断请求。示例实施例15:示例实施例14的方法,包括:确定针对外部事件组的被留持的中断已被清除;以及至少部分地基于针对外部事件组的被留持的中断都已被清除,生成检测重启信号。示例实施例16:示例实施例15的方法,包括:基于检测重启信号,重置检测电路,该检测电路配置成用于执行确定已由中断控制器接收到外部事件的操作。示例实施例17:一种系统,包括:一个或多个外围设备,配置成用于生成传送中断的中断请求;可编程中断控制器,配置成用于:跟踪哪些中断请求是外部事件组的部分;集聚作为外部事件组的部分的中断,其中,集聚中断包括:留持中断,直到阈值数量的中断请求已被接收;以及不集聚不作为外部事件组的部分的中断;以及一个或多个端点,配置成用于服务从可编程中断控制器传送的中断。示例实施例18:示例实施例17的系统,其中,中断具有优先级方案,其中被集聚的中断具有比不被集聚的中断更低的优先级级别。示例实施例19:示例实施例18的系统,其中,不被集聚的至少一个中断包括高优先级中断,并且外部事件包括不被集聚的中断中的一个不被集聚的中断已被服务的指示。示例实施例20:示例实施例19的系统,其中,被集聚的中断中的第一中断与来自存储设备的音频信息相关联,并且不被集聚的中断中的第二中断与来自存储设备的视频信息相关联,并且第一中断被留持,直到第二中断被服务。第三组示例实施例包括:示例实施例1:一种系统,包括:中断控制器,包括:输入端子,配置成用于接收多个中断请求;输出端子,配置成用于基于中断请求输出多个中断;检测电路,配置成用于检测多个中断请求中的中断请求已被接收,以基于接收到中断请求而开启用于时序组的计数器;以及留持电路,配置成用于留持对多个中断中的、与中断请求对应的中断的释放,直到计数器达到阈值。示例实施例2:示例实施例1的系统,其中,留持电路配置成用于:当在启动计数器之后但在计数器已达到阈值之前多个中断请求中的对应的中断请求已被接收时,留持时序组的后续中断。示例实施例3:示例实施例1的系统,包括:附加的检测电路,配置成用于检测多个
中断请求中的附加的中断请求是否已被接收,以基于接收到中断请求而开启针对附加的时序组的附加的计数器;以及附加的留持电路,配置成用于:留持多个中断中的、与附加的中断请求对应的附加的中断,直到附加的计数器达到附加的阈值。示例实施例4:示例实施例5的系统,其中,时序组与使用第一处理器核服务的中断对应,并且附加的时序组与使用第二处理器组服务的中断对应。示例实施例5:示例实施例3的系统,其中,阈值等于附加的阈值。示例实施例6:示例实施例4的系统,其中,阈值为0。示例实施例7:示例实施例1的系统,其中,中断控制器配置成用于:基于寄存器跟踪多个中断中的哪些中断与时序组相关联,接收禁用信号,其中,无论计数器的状态如何,禁用信号都使得对应的中断绕过留持电路中的留持。示例实施例8:示例实施例7的系统,其中,对应的中断包括时间关键性中断。示例实施例9:示例实施例1的系统,其中,检测电路配置成用于:一旦被留持的中断请求被服务,就生成重置检测信号,并且检测电路配置成用于:至少部分地基于重置检测信号,重置计数器。示例实施例10:一种方法,包括:在中断控制器处接收中断请求,其中,中断请求请求中断被传送到端点;确定中断与时序组相关联;至少部分地基于接收到中断,启动与时序组对应的计数器;留持中断的传送,直到计数器达到阈值数量;以及基于计数器达到阈值数量,从中断控制器传送针对时序组的被留持的中断。示例实施例11:示例实施例10的方法,包括:当计数器正在运行时但在计数器达到阈值数量之前,接收与时序组相关联的后续中断;以及留持中断的传送,直到已由中断控制器接收到阈值数量的中断请求。示例实施例12:示例实施例10的方法,包括:接收不在时序组中的附加的中断;以及无论计数器的状态如何,都绕过对附加的中断的留持。示例实施例13:示例实施例10的方法,包括:服务中断;以及至少部分地基于服务中断,清除中断请求。示例实施例14:示例实施例13的方法,包括:确定针对时序组的被留持的中断已被清除;以及至少部分地基于针对时序组的被留持的中断都已被清除,生成检测重启信号。示例实施例15:示例实施例14的方法,包括:基于检测重启信号,重置计数器。示例实施例16:示例实施例10的方法,其中,中断控制器配置成用于控制对针对包括时序组的多个时序组的中断的集聚,其中,多个时序组与用于服务多个时序组的相应中断的不同的处理器核对应。示例实施例17:示例实施例10的方法,其中,中断控制器配置成用于控制对针对包括时序组的多个时序组的中断的集聚,其中,中断向多个时序组的分配时用户可编程的。示例实施例18:示例实施例10的方法,其中,分配给时序组的中断典型地在彼此的阈值数量的周期内被执行。示例实施例19:一种系统,包括:一个或多个外围设备,配置成用于生成传送中断的中断请求;可编程中断控制器,配置成用于:跟踪作为时序组的部分的中断请求;集聚作为时序组的部分的中断,其中,集聚中断包括:当计数器正在运行时,基于
接收到时序组的第一中断而开启计数器并留持中断,直到计数器已达到已由可编程中断控制器接收的阈值数量的中断请求;以及不集聚不作为时序组的部分的中断;以及一个或多个处理器核,配置成用于服务从可编程中断控制器传送的中断。示例实施例20:示例实施例19的系统,包括寄存器,该寄存器被用于将启用或禁用信号发送到可编程中断控制器,该可编程中断控制器使用启用或禁用信号来跟踪哪些中断请求是时序组的部分。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1