CN106663072B - 用于配置中断的集合的装置和方法 - Google Patents
用于配置中断的集合的装置和方法 Download PDFInfo
- Publication number
- CN106663072B CN106663072B CN201580045622.9A CN201580045622A CN106663072B CN 106663072 B CN106663072 B CN 106663072B CN 201580045622 A CN201580045622 A CN 201580045622A CN 106663072 B CN106663072 B CN 106663072B
- Authority
- CN
- China
- Prior art keywords
- interrupt
- domain
- cores
- core
- processor
- 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
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 16
- 230000015654 memory Effects 0.000 claims description 58
- 230000004044 response Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 18
- 238000003860 storage Methods 0.000 description 12
- 238000007667 floating Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 239000003795 chemical substances by application Substances 0.000 description 6
- 101100016034 Nicotiana tabacum APIC gene Proteins 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008672 reprogramming Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 101150055297 SET1 gene Proteins 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000009849 deactivation Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101100042371 Caenorhabditis elegans set-3 gene Proteins 0.000 description 1
- 101100421296 Caenorhabditis elegans set-6 gene Proteins 0.000 description 1
- 101150104646 SET4 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
Abstract
描述了用于高效地处理和再分配中断的装置和方法。例如,装置的一个实施例包括:多个核;以及将中断分组到多个中断域中的中断控制器,每一个中断域具有分配给它的一个或多个中断的集合并且将集合中的中断映射到多个核中的一个或多个。
Description
技术领域
本发明的实施例大体涉及计算机系统的领域。更具体地,本发明的实施例涉及用于编程中断的集合的装置和方法。
背景技术
在计算系统中,中断是通过指示需要来自处理器的立即关注的事件的硬件或软件生成的信号(即,要求处理器正执行的当前线程的中断)。处理器通过暂停其当前执行线程、保存状态(使得其可以在其停止的地方再开始执行)以及执行被称为中断处置器的功能以服务事件而进行响应。中断是暂时的;在中断处置器完成之后,处理器恢复线程的执行。
硬件中断由设备使用来传送它们要求来自操作系统的关注并且使用发送给处理器的电子警报信号实现。例如,键盘或鼠标可以分别响应于用户按压键盘上的按键或者移动鼠标而触发中断请求。作为响应,使处理器中断以读取键击或鼠标位置。发起硬件中断的动作被称为中断请求。硬件中断的数目受到向处理器的中断请求(IRQ)线路的数目所限制,但是可以存在数百个不同的软件中断。
当前多处理器和/或多核系统依赖于高级可编程中断控制器(APIC)来处理定向至不同处理器/核的中断。APIC可以是切分架构设计,具有通常集成到处理器/核中的本地组件(LAPIC),以及系统总线上的可选输入/输出(I/O)-APIC。
在IO-APIC中,中断分布是基于固定目的地或者可再定向目的地。通常,不能使用对称多处理的嵌入式系统选择使用固定目的地模式。在这样的情况下,中断的目的地出于各种原因而必须频繁地再编程。在固定目的地模式中,中断朝向某一个(多个)核/(多个)处理器的亲和性需要取决于所执行的使用情况进行再配置。一次一个地再配置中断变成开销并且这种由于再编程所致的等待时间可能够影响系统性能。
附图说明
图1A是图示了根据本发明的实施例的示例性有序流水线和示例性寄存器重命名、无序发布/执行流水线二者的框图;
图1B是图示了根据本发明的实施例的要包括在处理器中的示例性寄存器重命名、无序发布/执行架构核和有序架构核的示例性实施例二者的框图;
图2是根据本发明的实施例的具有集成存储器控制器和图形的多核处理器和单核处理器的框图;
图3图示了依照本发明的一个实施例的系统的框图;
图4图示了依照本发明的实施例的第二系统的框图;
图5图示了依照本发明的实施例的第三系统的框图;
图6图示了依照本发明的实施例的片上系统(SoC)的框图;
图7图示了根据本发明的实施例的对比将源指令集中的二进制指令变换成目标指令集中的二进制指令的软件指令变换器的使用的框图;
图8图示了接收不同中断集合的多核处理器的不同核;
图9图示了再分配中断使得一个核接收所有中断并且其它核可以被关断的中断控制器;
图10图示了基于所检测的负载而执行负载均衡使得一个核比另一个核接收更多中断的中断控制器;
图11A-B图示了其中在中断域的粒度下管理中断的本发明的一个实施例;
图12图示了中断域配置寄存器的一个实施例;
图13图示了中断配置寄存器的实施例;
图14图示了依照本发明的一个实施例的中断域逻辑;以及
图15图示了依照本发明的一个实施例的方法。
具体实施方式
示例性处理器架构
图1A是图示了根据本发明的实施例的示例性有序提取、解码、隐退流水线和示例性寄存器重命名、无序发布/执行流水线二者的框图。图1B是图示了根据本发明的实施例的要包括在处理器中的示例性寄存器重命名、无序发布/执行架构核和有序提取、解码、隐退核的示例性实施例二者的框图。图1A-B中的实线框图示了流水线和核的有序部分,而虚线框的可选添加图示了寄存器重命名、无序发布/执行流水线和核。
在图1A中,处理器流水线100包括提取级102、长度解码级104、解码级106、分配级108、重命名级110、调度(还已知为分派或发布)级112、寄存器读取/存储器读取级114、执行级116、写回/存储器写入级118、例外处置级122和交付级124。
图1B示出了处理器核190,其包括耦合到执行引擎单元150的前端单元130,并且二者耦合到存储器单元170。核190可以是精简指令集计算(RISC)核、复杂指令集计算(CISC)核、非常长指令字(VLIW)核或者混合式或可替换的核类型。作为又另一个选项,核190可以是专用核,诸如例如网络或通信核、压缩引擎、协同处理器核、通用计算图形处理单元(GPGPU)核、图形核等等。
前端单元130包括耦合到指令高速缓存单元134的分支预测单元132,指令高速缓存单元134耦合到指令转换后备缓冲器(TLB)136,指令转换后备缓冲器(TLB)136耦合到指令提取单元138,指令提取单元138耦合到解码单元140。解码单元140(或解码器)可以对指令进行解码,并且作为输出而生成一个或多个微操作、微代码进入点、微指令、其它指令或者其它控制信号,其从原始指令解码或者以其它方式反映原始指令或者从原始指令导出。解码单元140可以使用各种不同机制实现。适合的机制的示例包括但不限于查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。在一个实施例中,核190包括微代码ROM或者其它介质,其存储用于某些宏观指令的微代码(例如,在解码单元140中或者以其它方式在前端单元130内)。解码单元140耦合到执行引擎单元150中的重命名/分配器单元152。
执行引擎单元150包括耦合到隐退单元154和一个或多个调度器单元156的集合的重命名/分配器单元152。(多个)调度器单元156表示任何数目的不同调度器,包括预留站、中央指令窗口等。(多个)调度器单元156耦合到(多个)物理寄存器文件的(多个)单元158。(多个)物理寄存器文件单元158中的每一个表示一个或多个物理寄存器文件,不同的物理寄存器文件存储一个或多个不同的数据类型,诸如标量整数、标量浮点数、组合整数、组合浮点数、矢量整数、矢量浮点数、状态(例如,作为要执行的下一指令的地址的指令指针)等。在一个实施例中,(多个)物理寄存器文件的单元158包括矢量寄存器单元、写入掩蔽寄存器单元和标量寄存器单元。这些寄存器单元可以提供架构矢量寄存器、矢量掩蔽寄存器和通用寄存器。(多个)物理寄存器文件的(多个)单元158被隐退单元154所重叠以说明其中可以实现寄存器重命名和无序执行的各种方式(例如,使用(多个)再排序缓冲器和(多个)隐退寄存器文件;使用(多个)未来文件、(多个)历史缓冲器和(多个)隐退寄存器文件;使用寄存器图和寄存器池;等等)。隐退单元154和(多个)物理寄存器文件的(多个)单元158耦合到(多个)执行群簇160。(多个)执行群簇160包括一个或多个执行单元162的集合以及一个或多个存储器访问单元164的集合。执行单元162可以在各种类型的数据(例如,标量浮点数、组合整数、组合浮点数、矢量整数、矢量浮点数)上实施各种操作(例如,移位、加法、减法、相乘)。尽管一些实施例可以包括专用于特定功能或者功能集合的数个执行单元,但是其它实施例可以包括仅一个执行单元或者全部执行全部功能的多个执行单元。(多个)调度器单元156、(多个)物理寄存器文件的(多个)单元158和(多个)执行群簇160被示出为可能地复数个,因为某些实施例创建用于某些类型的数据/操作的分离流水线(例如,标量整数流水线、标量浮点数/组合整数/组合浮点数/矢量整数/矢量浮点数流水线,和/或各自具有其自身的调度器单元、(多个)物理寄存器文件的单元和/或执行群簇的存储器访问流水线——并且在分离的存储器访问流水线的情况下,实现其中仅该流水线的执行群簇具有(多个)存储器访问单元164的某些实施例)。还应当理解到,在使用分离流水线的情况下,这些流水线中的一个或多个可以是无序发布/执行并且其它流水线是有序的。
存储器访问单元164的集合耦合到存储器单元170,其包括耦合到数据高速缓存单元174的数据TLB单元172,数据高速缓存单元174耦合到等级2(L2)高速缓存单元176。在一个示例性实施例中,存储器访问单元164可以包括负载单元、存储地址单元和存储数据单元,其中每一个耦合到存储器单元170中的数据TLB单元172。指令高速缓存单元134进一步耦合到存储器单元170中的等级2(L2)高速缓存单元176。L2高速缓存单元176耦合到一个或多个其它等级的高速缓存器并且最终耦合到主存储器。
用示例的方式,示例性寄存器重命名、无序发布/执行核架构可以如下实现流水线100:1)指令提取138实施提取和长度解码级102和104;2)解码单元140实施解码级106;3)重命名/分配器单元152实施分配级108和重命名级110;4)(多个)调度器单元156实施调度级112;5)(多个)物理寄存器文件的(多个)单元158和存储器单元170实施寄存器读取/存储器读取级114;执行群簇160实施执行级116;6)存储器单元170和(多个)物理寄存器文件的(多个)单元158实施写回/存储器写入级118;7)各种单元可以牵涉在例外处理级122中;以及8)隐退单元154和(多个)物理寄存器文件的(多个)单元158实施交付级124。
核190可以支持一个或多个指令集(例如,x86指令集(其中具有已经随较新版本添加的一些扩展));CA、Sunnyvale的MIPS Technologies的MIPS指令集;CA、Sunnyvale的ARMHoldings的ARM指令集(其中具有可选附加扩展,诸如NEON),其包括本文中描述的(多个)指令。在一个实施例中,核190包括支持组合数据指令集扩展(例如,AVX1、AVX2和/或某种形式的通用矢量友好指令格式(U=0和/或U=1),其在下文描述)的逻辑,由此允许使用组合数据执行由许多多媒体应用使用的操作。
应当理解到,核可以支持多线程处理(执行操作或线程的两个或更多并行集合),并且可以以各种方式完成此,包括时间切分多线程处理、同时多线程处理(其中单个物理核提供用于物理核同时多线程处理的每一个线程的逻辑核)或者其组合(例如,时间切分提取和解码以及在此之后的同时多线程处理,诸如在Intel®超线程处理技术中)。
尽管在无序执行的上下文中描述了寄存器重命名,但是应当理解到,寄存器重命名可以使用在有序架构中。尽管所图示的处理器的实施例还包括分离的指令和数据高速缓存单元134/174以及共享的L2高速缓存单元176,但是可替换实施例可以具有用于指令和数据二者的单个内部高速缓存器,诸如例如等级1(L1)内部高速缓存器或者多个等级的内部高速缓存器。在一些实施例中,系统可以包括内部高速缓存器以及核和/或处理器外部的外部高速缓存器的组合。可替换地,所有高速缓存器可以在核和/或处理器外部。
图2是根据本发明的实施例的处理器200的框图,处理器200可以具有多于一个核,可以具有集成存储器控制器,并且可以具有集成图形。图2中的实线框图示了具有单个核202A、系统代理210、一个或多个总线控制器单元216的集合的处理器200,而虚线框的可选添加图示了具有多个核202A-N、系统代理单元210中的一个或多个集成存储器控制器单元214的集合以及专用逻辑208的可替换处理器200。
因而,处理器200的不同实现可以包括:1)具有作为集成图形和/或科学(吞吐量)逻辑(其可以包括一个或多个核)的专用逻辑208以及作为一个或多个通用核(例如,通用有序核、通用无序核、两个的组合)的核202A-N的CPU;2)具有作为主要意图用于图形和/或科学(吞吐量)的大量专用核的核202A-N的协同处理器;以及3)具有作为大量通用有序核的核202A-N的协同处理器。因而,处理器200可以是通用处理器、协同处理器或者专用处理器,诸如例如网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元)、高吞吐量的许多集成核(MIC)协同处理器(包括30个或者更多个核)、嵌入式处理器等等。处理器可以实现在一个或多个芯片上。处理器200可以是一个或多个衬底的部分和/或可以使用数个处理技术(诸如例如BiCMOS、CMOS或NMOS)中的任一个实现在一个或多个衬底上。
存储器分层结构包括核内的一个或多个等级的高速缓存器、一个或多个共享的高速缓存单元206的集合、以及耦合到集成存储器控制器单元214的集合的外部存储器(未示出)。共享高速缓存单元206的集合可以包括一个或多个中间等级的高速缓存器,诸如等级2(L2)、等级3(L3)、等级4(L4)或者其它等级的高速缓存器、最后等级的高速缓存器(LLC)和/或其组合。尽管在一个实施例中基于环的互连单元212互连集成图形逻辑208、共享高速缓存单元206的集合以及系统代理单元210/(多个)集成存储器控制器单元214,但是可替换实施例可以使用任何数目的公知技术来互连这样的单元。在一个实施例中,在一个或多个高速缓存单元206和核202-A-N之间维持一致性。
在一些实施例中,一个或多个核202A-N能够进行多线程处理。系统代理210包括协调和操作核202A-N的那些组件。系统代理单元210可以包括例如电力控制单元(PCU)和显示单元。PCU可以是或者包括用于调节核202A-N和集成图形逻辑208的电力状态所需要的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
核202A-N可以在架构指令集方面是同质或异质的;也就是说,核202A-N中的两个或多个可能能够执行相同指令集;而其它可能能够仅执行该指令集的子集或者不同指令集。在一个实施例中,核202A-N是异质的并且包括下文描述的“小”核和“大”核。
图3-6是示例性计算机架构的框图。用于膝上型电脑、桌上型电脑、手持式PC、个人数字助手、工程工作站、服务器、网络设备、网络集线器、开关、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝手机、便携式媒体播放器、手持式设备和各种其它电子设备的现有技术中已知的其它系统设计和配置也是适合的。一般地,能够并入如本文中公开的处理器和/或其它执行逻辑的巨大各种系统或电子设备是大体适合的。
现在参照图3,示出了依照本发明的一个实施例的系统300的框图。系统300可以包括耦合到控制器集线器320的一个或多个处理器310,315。在一个实施例中,控制器集线器320包括图形存储器控制器集线器(GMCH)390和输入/输出集线器(IOH)350(其可以处于分离芯片上);GMCH 390包括存储器340和协同处理器345耦合到的存储器和图形控制器;IOH350将输入/输出(I/O)设备360耦合到GMCH 390。可替换地,存储器和图形控制器中的一个或两个集成在处理器内(如本文中所述),存储器340和协同处理器345直接耦合到处理器310,以及具有IOH 350的单个芯片中的控制器集线器320耦合到处理器310。
在图3中利用虚线标示附加处理器315的可选特性。每一个处理器310,315可以包括本文中描述的处理核中的一个或多个并且可以是某一版本的处理器200。
存储器340可以例如是动态随机存取存储器(DRAM)、相变存储器(PCM)或者两个的组合。对于至少一个实施例,控制器集线器320经由多点分支总线(诸如,前侧总线(FSB))、点对点接口(诸如快速路径互连(QPI)或者类似连接395与(多个)处理器310,315通信。
在一个实施例中,协同处理器345是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等等。在一个实施例中,控制器集线器320可以包括集成的图形加速器。
在物理资源310,315之间可以存在在包括架构、微架构、热学、功耗特性等的指标的一系列度量方面的各种差异。
在一个实施例中,处理器310执行控制一般类型的数据处理操作的指令。嵌入在指令内的可以是协同处理器指令。处理器310将这些协同处理器指令识别为具有应当由附连的协同处理器345执行的类型。相应地,处理器310在协同处理器总线或者其它互连上向协同处理器345发布这些协同处理器指令(或者表示协同处理器指令的控制信号)。(多个)协同处理器345接受并且执行所接收的协同处理器指令。
现在参照图4,示出了依照本发明的实施例的第一个更加具体的示例性系统400的框图。如在图4中所示,多处理器系统400是点对点互连系统,并且包括经由点对点互连450耦合的第一处理器470和第二处理器480。处理器470和480中的每一个可以是某一版本的处理器200。在本发明的一个实施例中,处理器470和480分别是处理器310和315,而协同处理器438是协同处理器345。在另一个实施例中,处理器470和480分别是处理器310和协同处理器345。
处理器470和480被示出为分别包括集成的存储器控制器(IMC)单元472和482。处理器470还包括作为其总线控制器单元的部分的点对点(P-P)接口476和478;类似地,第二处理器480包括P-P接口486和488。处理器470,480可以使用P-P接口电路478,488、经由点对点(P-P)接口450交换信息。如在图4中所示,IMC 472和482将处理器耦合到相应的存储器,也就是存储器432和存储器434,其可以是本地附连到相应处理器的主存储器的部分。
处理器470,480可以各自使用点对点接口电路476,494,486,498、经由单个P-P接口452,454与芯片集490交换信息。芯片集490可以可选地经由高性能接口439与协同处理器438交换信息。在一个实施例中,协同处理器438是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等。
共享的高速缓存器(未示出)可以包括在任一处理器中或者两个处理器外部,但经由P-P互连与处理器连接,使得任一个或两个处理器的本地高速缓存信息可以存储在共享的高速缓存器中,如果处理器放置到低电力模式中的话。
芯片集490可以经由接口496耦合到第一总线416。在一个实施例中,第一总线416可以是外围组件互连(PCI)总线,或者是诸如PCI Express总线或另一个第三代I/O互连总线之类的总线,尽管本发明的范围不限于此。
如在图4中所示,各种I/O设备414连同总线桥418可以耦合到第一总线416,总线桥418将第一总线416耦合到第二总线420。在一个实施例中,一个或多个附加的处理器415,诸如协同处理器、高吞吐量MIC处理器、GPGPU、加速器(诸如例如图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列或者任何其它处理器,耦合到第一总线416。在一个实施例中,第二总线420可以是低引脚计数(LPC)总线。各种设备可以耦合到第二总线420,包括例如键盘和/或鼠标422、通信设备427和存储单元428,诸如盘驱动或者其它大容量存储设备,其可以在一个实施例中包括指令/代码和数据430。另外,音频I/O 424可以耦合到第二总线420。要指出,其它架构是可能的。例如,代替图4的点对点架构,系统可以实现多点分支总线或者其它这样的架构。
现在参照图5,示出了依照本发明的实施例的第二个更加具体的示例性系统500的框图。图4和5中的相同元件承载相同参考标号,并且已经从图5省略图4的某些方面以便避免使图5的其它方面混淆。
图5图示了处理器470,480可以分别包括集成的存储器和I/O控制逻辑(“CL”)472和482。因而,CL 472,482包括集成的存储器控制器单元并且包括I/O控制逻辑。图5图示了不仅存储器432,434耦合到CL 472,482,而且I/O设备514还耦合到控制逻辑472,482。传统I/O设备515耦合到芯片集490。
现在参照图6,示出了依照本发明的实施例的SoC 600的框图。图2中的相似元件承载相同参考标号。而且,虚线框是更为高级的SoC上的可选特征。在图6中,(多个)互连单元602耦合到:应用处理器610,其包括一个或多个核202A-N的集合和(多个)共享的高速缓存单元206;系统代理单元210;(多个)总线控制器单元216;(多个)集成的存储器控制器单元214;一个或多个协同处理器620的集合,其可以包括集成的图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元630;直接存储器存取(DMA)单元632;以及用于耦合到一个或多个外部显示器的显示单元640。在一个实施例中,(多个)协同处理器620包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、嵌入式处理器等等。
本文公开的机制的实施例可以实现在硬件、软件、固件、或者这样的实现方法的组合中。本发明的实施例可以实现为在可编程系统上执行的计算机程序或程序代码,可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性的存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。
可以应用程序代码,诸如在图4中图示的代码430,以输入指令来实施本文描述的功能并且生成输出信息。输出信息可以以已知方式应用于一个或多个输出设备。出于本申请的目的,处理系统包括任何系统,其具有诸如例如处理器;数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器。
程序代码可以实现在高级程序性或面向对象的编程语言中以与处理系统通信。程序代码还可以实现在汇编或机器语言中,如果期望的话。事实上,本文描述的机制在范围方面不限于任何特定编程语言。在任何情况下,语言可以是经编译或解译的语言。
至少一个实施例的一个或多个方面可以通过存储在机器可读介质上的代表性指令(其表示处理器内的各种逻辑)来实现,代表性指令在由机器读取时使机器制造逻辑以实施本文中描述的技术。称为“IP核”的这样的表示可以存储在有形的机器可读介质上并且供应给各种客户或制造设施以便加载到实际地制造逻辑或处理器的制造机器中。
这样的机器可读存储介质可以包括但不限于由机器或设备形成或制造的物品的非暂时性、有形布置,包括存储介质,诸如硬盘,包括软盘、光盘、压缩盘只读存储器(CD-ROM)、压缩盘可再写(CD-RW)和磁光盘的任何其它类型的盘,诸如只读存储器(ROM)之类的半导体设备,诸如动态随机存取存储器(DRAM)之类的随机存取存储器(RAM),静态随机存取存储器(SRAM),可擦除可编程只读存储器(EPROM),闪速存储器,电气可擦除可编程只读存储器(EEPROM),相变存储器(PCM),磁性或光学卡,或者适用于存储电子指令的任何其它类型的介质。
相应地,本发明的实施例还包括包含指令或包含设计数据的非暂时性、有形机器可读介质,所述设计数据诸如硬件描述语言(HDL),其限定本文中描述的结构、电路、装置、处理器和/或系统特征。这样的实施例还可以被称为程序产品。
在一些情况下,指令变换器可以用于将指令从源指令集变换到目标指令集。例如,指令变换器可以将指令转换(例如,使用静态二进制转换、动态二进制转换,包括动态编译)、变化、仿真或者以其它方式变换成要由核处理的一个或多个其它指令。指令变换器可以实现在软件、硬件、固件或者其组合中。指令变换器可以在处理器上、处理器外、或者部分在处理器上并且部分在处理器外。
图7是根据本发明的实施例的对比将源指令集中的二进制指令变换成目标指令集中的二进制指令的软件指令变换器的使用的框图。在所图示的实施例中,指令变换器是软件指令变换器,尽管可替换地,指令变换器可以实现在软件、固件、硬件或其各种组合中。图7示出了可以使用x86编译器704对高级语言702中的程序进行编译以生成x86二进制代码706,其可以本机地由具有至少一个x86指令集核716的处理器执行。具有至少一个x86指令集核716的处理器表示任何处理器,其可以通过兼容地执行或者以其它方式处理(1)因特尔x86指令集核的指令集的大量部分或者(2)目标是在具有至少一个x86指令集核的因特尔处理器上运行的对象代码版本的应用或其它软件来执行基本上与具有至少一个x86指令集核的因特尔处理器相同的功能,以便实现与具有至少一个x86指令集核的因特尔处理器基本上相同的结果。x86编译器704表示可操作为生成x86二进制代码706(例如,对象代码)的编译器,x86二进制代码706可以在具有或者没有附加链接处理的情况下在具有至少一个x86指令集核716的处理器上执行。
类似地,图7示出了高级语言702中的程序可以使用可替换指令集编译器708编译以生成可以本机地由没有至少一个x86指令集核714的处理器(例如,具有核的处理器,核执行CA、Sunnyvale的MIPS Technologies的MIPS指令集和/或执行CA、Sunnyvale的ARMHoldings的ARM指令集)执行的可替换指令集二进制代码710。指令变换器712用于将x86二进制代码706变换成可以本机地由没有x86指令集核714的处理器执行的代码。这种经变换的代码不大可能与可替换指令集二进制代码710相同,因为能够实现此的指令变换器难以制造;然而,经变换的代码将完成一般操作并且由来自可替换指令集的指令构成。因而,指令变换器712表示软件、固件、硬件或其组合,其通过仿真、模拟或任何其它过程而允许没有x86指令集处理器或核的处理器或其它电子设备执行x86二进制代码706。
用于配置中断的集合的装置和方法
如上面所提及,在固定目的地模式中,中断朝向某一个(多个)核/(多个)处理器的亲和力可能需要取决于所执行的使用情况而频繁地再配置。一次一个地再配置中断变成可能影响系统性能的开销。
以下描述的本发明的实施例包括用于一起配置中断的集合的技术。特别地,一个实施例包括用于多处理器和/或多核处理器的中断控制器,其中中断的集合智能地一起分组到中断域中。如本文中使用的,中断域包括一个或多个中断的集合。可以使每一个中断属于中断域,并且用于中断递送的目的地在中断域的等级下配置。
在以下讨论中,相互相关的中断的集合被称为“中断集合”。本发明的实施例向软件实现提供了多功能性。在其中对称多处理不是选项的一些系统中,要求相互相关的中断服务例程的集合总是在相同处理器核上执行。在这样的系统中,存在以下使用情况:其中中断集合必须配置成在不同时间处在不同核上执行。
图8图示了具有中断控制逻辑821以便基于由每一个核处置的中断集合向多核处理器810的第一核(核-0 800)或者第二核(核-1 801)转发中断的中断控制器820的一个实施例。在所图示的示例中,存在布置到六个中断集合0-6中的256个中断(IRQ0-IRQ255)(例如,IRQ0-IRQ41=中断集合1,IRQ42-IRQ83=中断集合2等)。然而,应当指出,本发明的根本原理不限于任何特定数目的中断或者中断集合的布置。
在一个实施例中,每一个中断与经由中断配置寄存器接口822可访问的中断配置寄存器(ICR)相关联。在图8中,存在256个中断配置寄存器ICR0-ICR255,一个用于每一个可能的中断请求线路0-255。ICR的一个示例在下文关于图13(其示出了依照本发明的一个实施例的中断配置寄存器1131可以如何编程以使其对应的中断与中断域相关联)描述。在图8中图示的示例中,中断控制器820配置成向核-0 800转发来自中断集合-1、中断集合-2和中断集合-3的中断并且向核-1 801转发来自中断集合-4、中断集合-5和中断集合-6的中断。中断集合1包括中断0-41;中断集合2包括中断42-83;中断集合3包括中断84-127;中断集合4包括中断128-169;中断集合5包括中断170-211;以及中断集合6包括中断212-255。
在下文中描述具体使用情况,包括其中要求再配置一个或多个中断集合的那些。
使用情况-1:关断处理器核以节省电力
如在图9中图示,如果核-0 800上的负载减少(例如,指定阈值以下),则核-1 801上的中断集合 4-6可以瞄准核-0 800。因而,核-1 801现在可以放置到如所图示的关断状态中(或者另一个低电力状态中)。在该情况下,中断控制器820再瞄准所有中断集合,其瞄准到核-1 801到核-0 800。
使用情况-2:接通处理器核
相比于使用情况1,如果核-0 800上的负载超出某些限制,则可能变得有益的是接通核-1 801。在该场景中,中断集合中的一些可能需要再瞄准回到核-1 801,以实现与图8中的情况类似的情况。
使用情况-3:中断集合的迁移
在一些实现中,软件可以决定将中断集合从一个核迁移至另一个核。例如,如果存在跨核的负载非均衡(例如,因为一个核处理消耗显著处理器资源的线程),则可能谨慎的是将一个或多个中断集合瞄准到较少负载的那些核。在图10中,例如,已经确定的是,核-0800要比核-1 801更加沉重地负载。同样地,中断控制器820已经将中断集合-1从核-0 800再瞄准到核-1 801以均衡两个核上的负载。
在所有以上使用情况中,当前实现要求每一个中断线路单独地(即,一次一个地)编程,其显著增大了等待时间。单独地编程每一个中断的等待时间可能结果是显著瓶颈,如果这样的再编程的频率为高的话。
本发明的一个实施例通过促进中断集合的基元(atomic)编程而避免该瓶颈。特别地,中断控制器820可以限定最优数目的中断域。在以下提供的示例中,存在256个中断之中的16个中断域。然而,应当指出,本发明的根本原理不限于任何特定数目的中断域或中断。每一个中断可以配置成属于中断域。属于中断域的这样的中断将继承该中断域的属性。在一个实施例中,每一个中断域的属性之一是中断域的中断应当递送至的目的地核。用示例而非限制的方式,其它属性可以包括中断集合的掩蔽、启用和禁用。通过将中断分组成域并且然后提供配置域属性的能力,仅执行了用于每一个中断域的单个配置操作,由此显著地减少与各个中断编程相关联的等待时间。
如在图11A中所图示,实现在中断控制器820内的中断域逻辑1150将多个中断线路1101-1108中的每一个分配给多个中断域1111-1113中的每一个。在一个实施例中,诸如在图13中示出的中断配置寄存器1131包括指定该特定中断线路1101-1108与中断域1111-1113之间的映射的数据。在所示出的具体示例中,中断线路1101,1103和1105全部被分配给中断域1111;中断线路1102和1106全部被分配给中断域1112;中断线路1104和1107全部被分配给中断域1113。此外,图11A图示了诸如中断线路1108之类的一些中断线路可能没有被分配给中断域。如所图示的,中断域逻辑1150对于采用如所描述的中断域1111-1113的某些中断线路1101-1107可以操作在“有效模式”中,并且对于没有分配给域的那些中断线路可以操作在“旁路模式”中。
在一个实施例中,每一个中断域1111-1113配置成向固定核或者固定核群组发送中断。例如,在图11A中,中断域1111配置成向核-0 800或核-2 802发送中断。中断域1112配置成仅向核-0 800发送中断,并且中断域1113配置成仅向核-1 801发送中断。在一个实施例中,如果用于中断的目的地核要改变,则其可以简单地通过再编程与中断域相关联的目的地核来完成(而不是每一个单独中断的逐个编程)。
如在图11B中的实施例中所图示,中断控制逻辑821包括用于依照如本文中描述的中断域处理中断的中断域逻辑1150。此外,中断配置寄存器接口822提供中断控制器820对(多个)中断域配置寄存器(IDCR)1130和中断配置寄存器(ICR)1131的访问。如下文中所述,这两个寄存器集合可以动态地编程以将中断分配给中断域并且将中断域分配给如本文中描述的核/处理器。
图12图示了包括用于16个编程的中断域(INTDOM_0、INTDOM_1,…INTDOM_16)的条目的中断域配置寄存器的一个实施例。在该示例中,每一个域可以配置有不同的目的地地址字段(DSTF),其是接收用于该域的中断的(多个)目的地处理器/(多个)核的地址。例如,在一个实施例中,每一个64位IDCR条目的前8位(D0-D7)包括DSTF。用示例而非限制的方式,APIC群组的8位APIC ID或逻辑掩蔽可以编程在DSTF中。在一个实施例中,DSTF字段可以编码LAPIC的逻辑或物理地址。
在图12中图示的其它字段包括递送模式(DELM)字段,其指定用于中断递送的附加参数。在一个实施例中,指定固定递送模式,其中将中断信号递送至由DSTF字段指定的所有(多个)处理器/(多个)核。DELM还可以指定最低优先级模式,其中在目的地字段中列出的所有处理器之中,将中断信号递送至在最低优先级下执行的处理器核。还可以实现其他已知的中断递送模式。
在一个实施例中,域目的地模式(DSTM)字段包括1位字段,其指示是否由中断控制器820使用物理或逻辑寻址。最终地,域掩蔽位指示是否使用中断掩蔽。在一个实施例中,值1指示该域中的中断信号被掩蔽。
因而,以上描述的(多个)中断域配置寄存器1130允许整个中断域的基元编程。然而,应当指出,对于在中断域配置寄存器1130中使用的编码的各种修改然而仍然符合本发明的根本原理。
图13图示了中断配置寄存器1131可以如何编程以使其对应的中断与中断域相关联的一个示例。特别地,新的4位字段,域ID,包括在中断配置寄存器1131中,并且可以被编码以标识16个中断域中的一个。中断因而将变为所指定的中断域的成员。如在图11A中所图示,ICR 1131可以包括在中断控制器820内并且由中断控制器820管理。在一个实施例中,可以编程1位域启用字段以使对应的中断成为由域ID指定的中断域的成员。
在图13中图示的其它已知字段包括8位中断矢量(INTVEC)字段,其是标识具体中断的矢量数(例如,当前APIC中的32-255)。ICR 1131的所有其它字段仅在ICR 1131中的EN_INTDOM被设定成0的情况下适用。递送模式(DELM)字段可以包括与以上针对IDCR描述的那些相同或类似的参数(例如,固定、最低优先级)。类似地,目的地模式(DSTM)位指示是否使用APIC的物理或逻辑寻址,并且目的地字段(DSTF)是属于该域的中断将被递送至的处理器的目的地地址(例如,可以在此处编程APIC的群组的8位APIC ID或逻辑掩蔽)。然而,应当指出,对于在中断配置寄存器1131中使用的编码的各种修改然而仍然符合本发明的根本原理。
图14图示了依照本发明的一个实施例的中断域逻辑1150可以如何实现。具体地,在所图示的实施例中,用户可编程中断配置寄存器1131向域ID解码器1410和中断配置开关1412提供数据。将域ID解码器1410的输出以及来自用户可编程中断域配置寄存器1130的数据提供给域属性开关1411,其作为响应而更新包含在内部消隐域配置寄存器1401中的数据。中断配置开关1412然后使用来自内部消隐域配置寄存器1401和用户可编程中断配置寄存器1131的信息来向内部消隐中断配置寄存器1402中生成数据,其可以直接地由中断控制逻辑使用以便向适当的核/处理器转发中断。
在一个实施例中,中断域逻辑1150在两个模式中操作:旁路和有效。当处于旁路模式中时,如果“域启用”位在ICR 1131中禁用,则中断控制逻辑821将使用如在ICR中指定的中断配置。当处于有效模式中时,如果“域启用”位在ICR 1131中启用,则中断控制逻辑821将使用如在对应于域ID的IDCR 1130中指定的配置,其可以从ICR 1131读取,由域ID解码器1410解码,并且提供给域属性开关1411。在一个实施例中,将仅在域掩蔽被禁用的情况下才递送中断。
在一个实施例中,域ID解码器1410是使得域属性开关1411能够选择适当的域配置的简单解码器(例如,在所图示的实施例中,4:16位解码器)。响应于经解码的域ID,域属性开关1411选择域的配置并且将域的配置复制到内部消隐域配置寄存器1401中。
在一个实施例中,中断配置开关1412从由ICR 1131指定的各个中断配置(如果域禁用的话)或者从内部消隐域配置寄存器1401(如果域启用的话)选择中断配置。
因而,如果中断与域相关联,则域的配置将用于确定涉及该中断的动作。
以下伪代码示出了在具有和没有中断域的情况下再配置中断的示例。
在没有中断域的情况下:
以上的计算时间是O(n),其中n是要再配置的中断的数目。
在具有中断域的情况下:
}
以上的计算时间是O(m),其中对于每一域支持的中断数目,m=1。因而,如果n是每一域的中断数目,则针对其全局地禁用中断的计算时间和持续时间减少因子O(1)/O(n)。配置中断集合中的所有中断的效果可以通过编程一个寄存器而实现,如果以上描述的逻辑实现在硬件中的话。这将允许软件以基元方式编程中断的集合。
在图16中图示了依照本发明的一个实施例的方法。方法可以实现在以上描述的架构的上下文内,但是不限于任何特定系统架构。
在1600处,分配多个中断域并且将一个或多个核/处理器分配给每一个中断域。如上文所提及,在一个实施例中,可以将多个核/处理器分配给单个中断域。
在1601处,将中断(例如,如在图11A中示出的中断线路)一起分组在每一个中断域内。然而,在一个实施例中,可以不将某些中断分配给中断域(例如,诸如图11A中的中断线路1108)。
响应于在1602处的新中断的到达,在1603处就是否将新中断分配给中断域做出确定。如果是,则在1604处,依照中断域配置(例如,从以上描述的中断域配置寄存器1130读取)标识配置成服务中断的核/处理器。在1605处,将中断发送给所指定的核/处理器(如由中断域指定或者通过标准中断映射指定)。
在1606处,就核/处理器是否要求中断域内的再分配做出确定。例如,在负载均衡实现中,可以做出以下确定:核/处理器之一处置指定阈值以上的处理负载,而其它核/处理器空闲或者在显著减少的负载下操作。同样地,在1607处,可以通过中断域配置的直接配置而将核/处理器再分配给不同的中断域。例如,具有显著负载的核/处理器可以从其中断域的子集或全部移除,并且包含在该域中的中断可以被再分配给较不严重负载的不同核/处理器。在一个实施例中,这简单地通过中断域配置寄存器1130内的目的地地址的修改而完成。
应当指出,以上描述的本发明的实施例可以实现成将中断再分布给任何形式的处理元件,包括单独的核、处理器(在多处理器系统中)或者任何其它形式的执行元件。
本发明的实施例可以包括以上已经描述的各种步骤。步骤可以体现在机器可执行指令中,机器可执行指令可以用于使通用或专用处理器实施步骤。可替换地,这些步骤可以通过包含用于实施步骤的硬布线逻辑的特定硬件组件或者通过编程计算机组件和自定义硬件组件的任何组合来实施。
如本文中所述,指令可以是指硬件的具体配置,诸如配置成实施某些操作或者具有预确定的功能性的专用集成电路(ASIC),或者存储在体现于非暂时性计算机可读介质中的存储器中的软件指令。因而,在图中示出的技术可以使用代码和数据实现,代码和数据在一个或多个电子设备(例如,终端站、网络元件等)上存储和执行。这样的电子设备使用计算机机器可读介质存储和(在内部和/或通过网络与其它电子设备)传送代码和数据,计算机机器可读介质诸如非暂时性计算机机器可读存储介质(例如,磁盘;光盘;随机存取存储器;只读存储器;闪速存储器设备;相变存储器)和暂时性计算机机器可读通信介质(例如,电气、光学、声学或者其它形式的传播信号——诸如载波、红外信号、数字信号等)。此外,这样的电子设备典型地包括耦合到一个或多个其它组件的一个或多个处理器的集合,一个或多个其它组件诸如一个或多个存储设备(非暂时性机器可读存储介质)、用户输入/输出设备(例如,键盘、触摸屏和/或显示器)和网络连接。处理器的集合和其它组件的耦合典型地是通过一个或多个总线和桥接(还称为总线控制器)。承载网络业务量的存储设备和信号分别表示一个或多个机器可读存储介质和机器可读通信介质。因而,给定电子设备的存储设备典型地存储用于在该电子设备的一个或多个处理器的集合上执行的代码和/或数据。当然,本发明的实施例的一个或多个部分可以使用软件、固件和/或硬件的不同组合实现。贯穿该详细描述,出于解释的目的,阐述众多具体细节以便提供对本发明的透彻理解。然而,本领域技术人员将显而易见的是,本发明可以在没有这些具体细节中的一些的情况下实践。在某些实例中,没有以详尽的细节描述公知的结构和功能以便避免使本发明的主题混淆不清。相应地,本发明的范围和精神应当依照随后的权利要求进行判定。
Claims (26)
1.一种用于再分配中断域的装置,包括:
多个核;以及
中断控制器,用于将中断分组到多个中断域中,每一个中断域具有由分配给它的一个或多个中断组成的集合并且将所述集合中的中断映射到所述多个核中的一个或多个,
其中,响应于再分配事件,所述中断控制器用于将所述多个中断域中的一个或多个从具有相对较大负载的核动态地再分配给具有相对较低负载的一个或多个核,所述再分配事件包括处理器核中的一个或多个上的负载达到指定阈值或者比一个或多个其它核上的负载高出负载的阈值差。
2.如权利要求1中的装置,还包括:
一个或多个中断域配置寄存器(IDCR),包含用于所述多个中断域中的每一个的条目,每一个条目包括目的地地址用以标识一个或多个核,所述一个或多个核用于服务被分配给每一个相应中断域的中断。
3.如权利要求2中的装置,其中目的地地址字段包括依照处理器架构和相关联的中断控制器的可配置字段。
4.如权利要求2中的装置,还包括:
一个或多个中断配置寄存器,包含用于每一个中断的条目,每一个条目包括中断域字段用以标识中断被分配给的中断域。
5.如权利要求2中的装置,其中IDCR中的每一个条目进一步包括用于指定用于中断递送的一个或多个附加参数的递送模式字段、用于指定是否要将中断分配给域的域掩蔽、以及用于指定是要使用物理寻址模式还是要使用逻辑寻址模式的目的地模式。
6.如权利要求1中的装置,其中响应于新中断的到达,所述中断控制器用于咨询所述中断域以标识用于处理所述新中断的核。
7.如权利要求1中的装置,其中所述再分配事件包括所述多个核之一进入低电力状态中,其中所述中断控制器用于将中断域从进入低电力状态中的核再分配给一个或多个其它核。
8.一种用于再分配中断域的方法,包括:
将多个中断中的每一个中断分组到多个中断域中的一个中,每一个中断域映射到处理器的多个核中的一个或多个;
接收新中断;
响应性地确定所述新中断被分配给的中断域以标识与所述中断域相关联的核;
将所述中断转发给与所述中断域相关联的核;以及
响应于再分配事件,将所述多个中断域中的一个或多个从具有相对较大负载的核动态地再分配给具有相对较低负载的一个或多个核,所述再分配事件包括处理器核中的一个或多个上的负载达到指定阈值或者比一个或多个其它核上的负载高出负载的阈值差。
9.如权利要求8中的方法,其中标识核包括读取包含用于所述多个中断域中的每一个的条目的一个或多个中断域配置寄存器(IDCR),每一个条目包括目的地地址用以标识一个或多个核,所述一个或多个核用于服务被分配给中断域的中断。
10.如权利要求9中的方法,其中“目的地地址”字段包括依照处理器架构和相关联的中断控制器的可配置字段。
11.如权利要求9中的方法,其中确定中断域还包括:
读取包含用于每一个中断的条目的一个或多个中断配置寄存器,每一个条目包括中断域字段用以标识中断被分配给的中断域。
12.如权利要求9中的方法,其中IDCR中的每一个条目进一步包括用于指定用于中断递送的一个或多个附加参数的递送模式字段、用于指定是否要将中断分配给域的域掩蔽、以及用于指定是要使用物理寻址模式还是要使用逻辑寻址模式的目的地模式。
13.如权利要求8中的方法,其中所述再分配事件包括所述多个核之一进入低电力状态中,以及其中将中断域从进入低电力状态中的核再分配给一个或多个其它核。
14.一种计算系统,包括:
用于通过网络接收程序代码和数据的网络接口;
用于存储所述程序代码和数据的存储器;
用于利用多个核执行所述程序代码并且处理所述数据的处理器;
用于经由键盘、鼠标或其它输入设备接收用户输入的用户输入接口;
其中所述网络接口和所述用户输入接口配置为生成一个或多个中断;以及
用于将中断分组到多个中断域中的中断控制器,每一个中断域具有由分配给它的一个或多个中断组成的集合并且将所述集合中的中断映射到所述多个核中的一个或多个,
其中,响应于再分配事件,所述中断控制器用于将所述多个中断域中的一个或多个从具有相对较大负载的核动态地再分配给具有相对较低负载的一个或多个核,所述再分配事件包括处理器核中的一个或多个上的负载达到指定阈值或者比一个或多个其它核上的负载高出负载的阈值差。
15.如权利要求14中的系统,还包括:
一个或多个中断域配置寄存器(IDCR),包含用于所述多个中断域中的每一个的条目,每一个条目包括目的地地址用以标识一个或多个核,所述一个或多个核用于服务被分配给每一个相应中断域的中断。
16.如权利要求15中的系统,其中目的地地址字段包括依照处理器架构和相关联的中断控制器的可配置字段。
17.如权利要求15中的系统,还包括:
一个或多个中断配置寄存器,包含用于每一个中断的条目,每一个条目包括用于标识中断被分配给的中断域的中断域字段。
18.如权利要求15中的系统,其中IDCR中的每一个条目进一步包括用于指定用于中断递送的一个或多个附加参数的递送模式字段、用于指定是否要向域分配中断的域掩蔽、以及用于指定是要使用物理寻址模式还是要使用逻辑寻址模式的目的地模式。
19.如权利要求14中的系统,其中响应于新中断的到达,所述中断控制器用于咨询中断域以标识用于处理所述新中断的核。
20.一种用于再分配中断域的设备,包括:
用于将多个中断中的每一个中断分组到多个中断域中的一个中的装置,每一个中断域映射到处理器的多个核中的一个或多个;
用于接收新中断的装置;
用于响应性地确定所述新中断被分配给的中断域以标识与所述中断域相关联的核的装置;
用于将所述中断转发给与所述中断域相关联的核的装置;以及
用于响应于再分配事件而将所述多个中断域中的一个或多个从具有相对较大负载的核动态地再分配给具有相对较低负载的一个或多个核的装置,其中所述再分配事件包括处理器核中的一个或多个上的负载达到指定阈值或者比一个或多个其它核上的负载高出负载的阈值差。
21.如权利要求20中的设备,其中用于标识核的装置包括用于读取包含用于所述多个中断域中的每一个的条目的一个或多个中断域配置寄存器(IDCR)的装置,每一个条目包括目的地地址用以标识一个或多个核,所述一个或多个核用于服务被分配给中断域的中断。
22.如权利要求21中的设备,其中“目的地地址”字段包括依照处理器架构和相关联的中断控制器的可配置字段。
23.如权利要求21中的设备,其中用于确定中断域的装置还包括:
用于读取包含用于每一个中断的条目的一个或多个中断配置寄存器的装置,每一个条目包括用于标识中断被分配给的中断域的中断域字段。
24.如权利要求21中的设备,其中IDCR中的每一个条目进一步包括用于指定用于中断递送的一个或多个附加参数的递送模式字段、用于指定是否要将中断分配给域的域掩蔽、以及用于指定是要使用物理寻址模式还是要使用逻辑寻址模式的目的地模式。
25.如权利要求20中的设备,其中所述再分配事件包括所述多个核之一进入低电力状态中,以及其中将中断域从进入低电力状态中的核再分配给一个或多个其它核。
26.一种计算机可读介质,在所述计算机可读介质上存储有指令,所述指令在被执行时使得计算装置执行权利要求8-13中任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011165638.2A CN112698928A (zh) | 2014-09-26 | 2015-09-10 | 用于配置中断的集合的装置和方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN4721CH2014 | 2014-09-26 | ||
IN4721/CHE/2014 | 2015-01-06 | ||
PCT/US2015/049337 WO2016048669A1 (en) | 2014-09-26 | 2015-09-10 | Apparatus and method for configuring sets of interrupts |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011165638.2A Division CN112698928A (zh) | 2014-09-26 | 2015-09-10 | 用于配置中断的集合的装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106663072A CN106663072A (zh) | 2017-05-10 |
CN106663072B true CN106663072B (zh) | 2020-11-17 |
Family
ID=55581805
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011165638.2A Pending CN112698928A (zh) | 2014-09-26 | 2015-09-10 | 用于配置中断的集合的装置和方法 |
CN201580045622.9A Active CN106663072B (zh) | 2014-09-26 | 2015-09-10 | 用于配置中断的集合的装置和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011165638.2A Pending CN112698928A (zh) | 2014-09-26 | 2015-09-10 | 用于配置中断的集合的装置和方法 |
Country Status (7)
Country | Link |
---|---|
US (5) | US10296335B2 (zh) |
EP (2) | EP3198460B1 (zh) |
KR (2) | KR102309327B1 (zh) |
CN (2) | CN112698928A (zh) |
ES (1) | ES2929512T3 (zh) |
PL (1) | PL3198460T3 (zh) |
WO (1) | WO2016048669A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3061565B1 (fr) | 2017-01-04 | 2019-04-26 | Stmicroelectronics (Rousset) Sas | Fonctionnement d'un microcontroleur en mode basse puissance |
US10540736B2 (en) * | 2017-08-03 | 2020-01-21 | Texas Instruments Incorporated | Display sub-system sharing for heterogeneous systems |
US10838760B2 (en) * | 2017-11-29 | 2020-11-17 | Nxp Usa, Inc. | Systems and methods for interrupt distribution |
US11630789B2 (en) * | 2020-09-11 | 2023-04-18 | Apple Inc. | Scalable interrupts |
CN112181877B (zh) * | 2020-10-28 | 2022-06-21 | 瑞芯微电子股份有限公司 | 一种显示变频方法和系统 |
CN112416536B (zh) * | 2020-12-10 | 2023-08-18 | 成都海光集成电路设计有限公司 | 提取处理器执行上下文的方法及处理器 |
CN113238802A (zh) * | 2021-05-28 | 2021-08-10 | 上海阵量智能科技有限公司 | 中断分发器、数据处理芯片、中断分发及数据处理方法 |
US11803471B2 (en) | 2021-08-23 | 2023-10-31 | Apple Inc. | Scalable system on a chip |
CN113918311B (zh) * | 2021-12-10 | 2022-07-01 | 北京智芯微电子科技有限公司 | 多核系统的软中断路由方法及响应软中断的方法和芯片 |
CN116821026B (zh) * | 2023-08-28 | 2023-11-24 | 麒麟软件有限公司 | 一种arm架构下的lpc总线转并口方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354664A (zh) * | 2008-08-19 | 2009-01-28 | 中兴通讯股份有限公司 | 多核处理器中断负载均衡方法和装置 |
CN101539798A (zh) * | 2007-09-28 | 2009-09-23 | 英特尔公司 | 多核和功率的中断平衡 |
CN101872314A (zh) * | 2009-04-24 | 2010-10-27 | 勒斯塔尔技术有限责任公司 | 用于多处理器的动态调度中断控制器 |
CN101901165A (zh) * | 2010-07-26 | 2010-12-01 | 清华大学 | 一种中断控制器电路结构 |
CN102063335A (zh) * | 2009-11-13 | 2011-05-18 | 大唐移动通信设备有限公司 | 中断控制器以及多核处理器共享设备中断的处理方法 |
CN102483705A (zh) * | 2009-08-14 | 2012-05-30 | 超威半导体公司 | 多核结构的用户级中断机制 |
WO2013162523A1 (en) * | 2012-04-24 | 2013-10-31 | Intel Corporation | Dynamic interrupt reconfiguration for effective power management |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535420A (en) * | 1994-12-14 | 1996-07-09 | Intel Corporation | Method and apparatus for interrupt signaling in a computer system |
US7584316B2 (en) * | 2003-10-14 | 2009-09-01 | Broadcom Corporation | Packet manager interrupt mapper |
US20080126652A1 (en) * | 2006-09-27 | 2008-05-29 | Intel Corporation | Managing Interrupts in a Partitioned Platform |
US7962771B2 (en) * | 2007-12-31 | 2011-06-14 | Intel Corporation | Method, system, and apparatus for rerouting interrupts in a multi-core processor |
US8738860B1 (en) * | 2010-10-25 | 2014-05-27 | Tilera Corporation | Computing in parallel processing environments |
US8959270B2 (en) * | 2010-12-07 | 2015-02-17 | Apple Inc. | Interrupt distribution scheme |
WO2013162589A1 (en) * | 2012-04-27 | 2013-10-31 | Intel Corporation | Migrating tasks between asymmetric computing elements of a multi-core processor |
-
2015
- 2015-09-10 ES ES15844406T patent/ES2929512T3/es active Active
- 2015-09-10 EP EP15844406.7A patent/EP3198460B1/en active Active
- 2015-09-10 CN CN202011165638.2A patent/CN112698928A/zh active Pending
- 2015-09-10 EP EP20217471.0A patent/EP3855318B1/en active Active
- 2015-09-10 WO PCT/US2015/049337 patent/WO2016048669A1/en active Application Filing
- 2015-09-10 PL PL15844406.7T patent/PL3198460T3/pl unknown
- 2015-09-10 CN CN201580045622.9A patent/CN106663072B/zh active Active
- 2015-09-10 KR KR1020207034588A patent/KR102309327B1/ko active IP Right Grant
- 2015-09-10 KR KR1020177005138A patent/KR102187912B1/ko active IP Right Grant
- 2015-09-22 US US14/861,618 patent/US10296335B2/en active Active
-
2019
- 2019-01-23 US US16/255,438 patent/US10936313B2/en active Active
-
2021
- 2021-01-27 US US17/159,415 patent/US11500633B2/en active Active
-
2022
- 2022-11-08 US US17/982,794 patent/US11740902B2/en active Active
-
2023
- 2023-07-05 US US18/218,119 patent/US20240004651A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539798A (zh) * | 2007-09-28 | 2009-09-23 | 英特尔公司 | 多核和功率的中断平衡 |
CN101354664A (zh) * | 2008-08-19 | 2009-01-28 | 中兴通讯股份有限公司 | 多核处理器中断负载均衡方法和装置 |
CN101872314A (zh) * | 2009-04-24 | 2010-10-27 | 勒斯塔尔技术有限责任公司 | 用于多处理器的动态调度中断控制器 |
CN102483705A (zh) * | 2009-08-14 | 2012-05-30 | 超威半导体公司 | 多核结构的用户级中断机制 |
CN102063335A (zh) * | 2009-11-13 | 2011-05-18 | 大唐移动通信设备有限公司 | 中断控制器以及多核处理器共享设备中断的处理方法 |
CN101901165A (zh) * | 2010-07-26 | 2010-12-01 | 清华大学 | 一种中断控制器电路结构 |
WO2013162523A1 (en) * | 2012-04-24 | 2013-10-31 | Intel Corporation | Dynamic interrupt reconfiguration for effective power management |
Also Published As
Publication number | Publication date |
---|---|
EP3855318A1 (en) | 2021-07-28 |
US10296335B2 (en) | 2019-05-21 |
US20160196141A1 (en) | 2016-07-07 |
CN112698928A (zh) | 2021-04-23 |
WO2016048669A1 (en) | 2016-03-31 |
ES2929512T3 (es) | 2022-11-29 |
EP3198460A4 (en) | 2018-05-02 |
US20210255865A1 (en) | 2021-08-19 |
US20240004651A1 (en) | 2024-01-04 |
US10936313B2 (en) | 2021-03-02 |
KR102309327B1 (ko) | 2021-10-07 |
KR20200138439A (ko) | 2020-12-09 |
US20230070764A1 (en) | 2023-03-09 |
US20200004537A1 (en) | 2020-01-02 |
US11740902B2 (en) | 2023-08-29 |
KR102187912B1 (ko) | 2020-12-07 |
KR20170036035A (ko) | 2017-03-31 |
EP3855318B1 (en) | 2024-02-14 |
PL3198460T3 (pl) | 2022-11-14 |
CN106663072A (zh) | 2017-05-10 |
EP3198460A1 (en) | 2017-08-02 |
US11500633B2 (en) | 2022-11-15 |
EP3198460B1 (en) | 2022-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106663072B (zh) | 用于配置中断的集合的装置和方法 | |
US10467012B2 (en) | Apparatus and method for accelerating operations in a processor which uses shared virtual memory | |
CN113553209A (zh) | 用于存储器损坏检测的硬件装置和方法 | |
CN106170768B (zh) | 在计算机中分派多个线程 | |
US10127039B2 (en) | Extension of CPU context-state management for micro-architecture state | |
US9405937B2 (en) | Method and apparatus for securing a dynamic binary translation system | |
US20180365022A1 (en) | Dynamic offlining and onlining of processor cores | |
CN112463657B (zh) | 一种地址转换缓存清除指令的处理方法和处理装置 | |
CN113448724A (zh) | 用于微处理器配置的动态控制的装置和方法 | |
CN111752889A (zh) | 用于具有指令再循环的多级保留站的方法和设备 | |
US20200310978A1 (en) | Memory management apparatus and method for managing different page tables for different privilege levels | |
JP2023070069A (ja) | 仮想マシンにおけるユーザレベル割り込み | |
US20180349137A1 (en) | Reconfiguring a processor without a system reset | |
CN117377944A (zh) | 主机至宾客机通知 | |
CN117083595A (zh) | 用于对片行进行下转换并与寄存器进行交织的指令的装置、方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |