CN100349147C - 最低优先级中断的处理器功率状态的知晓分配的方法、系统和装置 - Google Patents
最低优先级中断的处理器功率状态的知晓分配的方法、系统和装置 Download PDFInfo
- Publication number
- CN100349147C CN100349147C CNB2003801073724A CN200380107372A CN100349147C CN 100349147 C CN100349147 C CN 100349147C CN B2003801073724 A CNB2003801073724 A CN B2003801073724A CN 200380107372 A CN200380107372 A CN 200380107372A CN 100349147 C CN100349147 C CN 100349147C
- Authority
- CN
- China
- Prior art keywords
- parts
- processor
- interrupt request
- task priority
- logic
- 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.)
- Expired - Fee Related
Links
- 230000007246 mechanism Effects 0.000 title abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims description 12
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000011156 evaluation Methods 0.000 claims description 2
- 230000003993 interaction Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000005059 dormancy Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 230000007958 sleep Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 101100016034 Nicotiana tabacum APIC gene Proteins 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001755 vocal 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- 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
-
- 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
- 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]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- 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
Abstract
一种用于最低优先级中断的处理器功率状态知晓分布的机制的方法。一个实施例的方法包括从第一部件接收第一功率状态信息和从第二部件接收第二功率状态信息。还接收来自第一部件的第一任务优先级信息和来自第二部件的第二任务优先级。接收来自第一装置的中断请求,用于进行服务。评估用于第一和第二部件的功率状态和任务优先级信息,确定哪个部件应服务中断请求。基于功率状态和任务优先级信息选择第一部件或第二部件为目的地部件,以便服务中断请求。将中断请求发送到目的地部件。
Description
发明领域
本发明一般涉及微处理器和计算机系统领域。本发明尤其涉及用于最低优先级中断的处理器功率状态知晓分配的机制的方法和装置。
发明背景
计算机系统在社会中变得越发普及。计算机的处理能力在广泛的职业范围内提升着员工的效率和生产力。随着购买和拥有计算机的成本不断降低,越来越多的消费者已能利用更新、更快的机器。此外,许多人为了方便而使用笔记本计算机。移动计算机允许用户在离开办公室或旅行时更便捷地传输数据和进行工作。这种情况对于销售人员、公司经理甚至学生来说是相当熟悉的。
类似的现象也发生在台式和服务器机器上。随着新设计和新性能的发展,处理器的计算机性能继续指数增长。对移动和台式领域的计算机设计逐渐转向使用多核心或多线程处理器,它们可同时执行许多应用程序和任务。某些系统还用多个物理处理器构成。但是,更高的计算能力的价格还包括实际功率成本。换句话说,在这些机器中的功率消耗变得非常大。由于与功率有关,热考虑也会变得更重要。
发明内容
本发明揭示了一种方法,包括:从第一部件接收第一功率状态信息和从第二部件接收第二功率状态信息;从所述第一部件接收第一任务优先级信息和从所述第二部件接收第二任务优先级;从第一装置接收中断请求,用于进行服务;为所述第一和第二部件评估功率状态和任务优先级信息,以确定哪个部件应服务所述中断请求;基于所述功率状态和任务优先级信息,选择所述第一部件或所述第二部件为目的地部件,以便服务所述中断请求;以及将所述中断请求传送给所述目的地部件。
本发明还揭示了一种装置,包括:中断处理逻辑,它耦合到第一组信号线以便接收中断请求,所述第一组信号线耦合到能产生中断请求的一个或多个装置;总线接口,它与耦合到第一部件和第二部件的总线相互作用,其中所述中断处理逻辑通过所述总线接口耦合到所述第一总线以便接收所述第一和第二部件中的每一个的功率状态信息和任务优先级信息;评估逻辑,它耦合所述中断处理逻辑,其中当所述中断处理逻辑接收所述中断请求时,所述评估逻辑为所述第一和第二部件评估功率状态和任务优先级信息以确定哪个部件应服务所述中断请求;以及选择逻辑,它耦合到所述评估逻辑,以基于所述功率状态或任务优先级信息选择所述第一部件或所述第二部件为目的地部件,以便服务所述中断请求。
本发明又揭示了一种系统,包括:总线;与所述总线耦合的第一处理器和第二处理器;可产生中断请求的一个或多个系统装置,其中所述中断请求需要来自所述第一或第二处理器的服务;处理所述中断请求的芯片组,所述芯片组耦合到所述系统装置以及所述第一和第二处理器,其中所述芯片组为所述第一和第二处理器中的每一个接收功率状态信息和任务优先级信息,当接收到中断请求时所述芯片组评估所述功率状态和任务优先级信息并确定哪个处理器应服务所述中断请求,且其中所述芯片组根据所述功率状态和任务优先级信息来选择所述第一处理器或所述第二处理器来服务所述请求。
本发明再揭示了一种方法,包括:从第一部件接收第一功率状态信息和从第二部件接收第二功率状态信息;基于所述第一功率状态信息,将第一任务优先级值分配给所述第一部件;基于所述第二功率状态信息,将第二任务优先级值分配给所述第二部件;从第一装置接收中断请求,用于进行服务;为所述第一和第二部件评估任务优先级值,以确定哪个部件应服务所述中断请求;基于所述任务优先级值,选择所述第一部件或所述第二部件为目的地部件,以便服务所述中断请求;以及将所述中断请求发送到所述目的地部件。
附图说明
本发明借助附图加以说明,其作为实例而非限制性的,其中相同的标号表示相似的元件,且其中:
图1是根据本发明的一个实施例的用包含最低优先级中断的功率状态知晓分配的机制的芯片组和处理器形成的多处理器计算机系统的框图;
图2是包括本发明的功率状态知晓中断机制的一个实施例的多核心处理器模块和有关芯片组的框图;
图3是包括根据本发明的功率状态知晓中断机制的另一个实施例的多线程处理器和有关芯片组的框图;
图4说明了本发明一个实施例的处理器功率状态;
图5是用于一个实施例的芯片组的处理器任务信息表项目的示图;
图6A-D是说明用于分配中断的功率状态知晓方法的一个实施例的流程图;以及
图7是说明用于中断的处理器功率状态知晓分配的方法的另一个实施例的流程图。
具体实施方式
揭示了用于最低优先级中断的处理器功率状态知晓分配的机制的方法和装置。在通用微处理器和芯片组的环境中描述这里所述的实施例,但不限于此。虽然参考处理器和芯片组描述以下的实施例,但其它实施例也可应用于其它类型的集成电路和逻辑装置。本发明的相同技术和教导可方便地应用于其它类型的电路和半导体装置,它们能受益于功率监控和改良的中断处理。本发明的教导可应用于执行中断的任何处理器或机器。但是,本发明不限于多处理器系统或多核心处理器模块,并可应用于其上能执行多线程或多任务的任何微处理器和机器。
在以下描述中,为说明起见,阐述了许多特定细节,以便完整地理解本发明。然而,本领域的普通技术人员将理解,这些特定细节并非实施本发明所必需的。在其它情况中,公知的电气结构和电路未按特殊细节加以阐述,以使本发明更清楚。
技术进步使得处理器和应用程序并行变得更普遍。作为提升全面系统性能的方式,许多服务器和平台日益转向线程化。许多应用程序已被线程化,被分成多个指令流,以便利用多个处理器。多处理知晓操作系统可以调度这些线程,以便在系统内的多处理器上并行处理。此外,还可以在每个处理器上进行线程水平并行。例如,网络服务、搜索引擎、安全、流媒体和数据库的领域中的双或多处理应用程序可利用多线程和多处理器计算机系统的增强的处理功率。
诸如超线程(Hyper-Threading)技术的一种多线程技术是同步多线程技术(SMT)的一种形式,其中可以在一个处理器上同时运行软件应用程序的多个线程。这可以通过复制每个处理器上的架构状态同时共享一组处理器执行资源而实现。该架构状态跟踪程序或线程的流程,且执行资源是进行工作(即,加、乘、加载等等)的处理器上的单元。在某些多处理器系统中,每个处理器具有其自己的处理器执行资源组和其自己的架构状态。在具有多线程能力的多处理器系统中,即使每个处理器仍具有一组执行资源,也可复制每个处理器的架构状态。在调度线程时,操作系统将每个处理器上的独立的架构状态处理成独立的“逻辑”处理器。逻辑处理器共享物理处理器上的几乎所有其它资源,诸如高速缓存、执行单元、分支预测器、控制逻辑和总线。与物理处理器相同,每个逻辑处理器都可独立地响应中断。一个逻辑处理器可跟踪第一软件线程,同时另一个逻辑处理器可同时跟踪第二软件线程。因为多线程共享一组执行资源,所以如果处理器仅正执行一个线程,则一个线程可使用空闲的资源。结果,可以改善整体性能和系统响应。
期望改善处理器架构的功率消耗和性能的各种方式。所关心的一个领域涉及来自不同系统装置的处理器的中断请求的处理和服务。在某些系统中,由芯片组逻辑管理中断请求。芯片组逻辑截取这些请求并确定将请求分配给该哪个处理器用于服务。在单处理器系统中,因为芯片组具有单个目标,所以这较容易。但在采用含多个物理和/或逻辑处理器的系统的情况中,中断请求分配的任务会变得错综复杂,因为芯片组尝试最小化中断对性能的影响。
高级可编程中断控制器(APIC)架构允许将装置中断传递给一组目标处理器中以最低优先级操作的处理器。通过这些处理器的任务优先级寄存器的内容确定该处理器优先级。该特点基于一概念,即处理器当前运行所处于的优先级表示所执行的任务的关键程度(criticality)。任务优先级越高,就越不期望中断该处理器,因为可能存在对整体性能的不期望的影响。此外,通过将中断引导到系统中以最低优先级操作的处理器,将提供用最少量的等待时间服务该中断的更好机会。
当前的中断传递机制是不知晓处理器功率状态的,因此,不知道目标处理器是否处于功率节省模式。这些中断机制不知道处理器是否处于工作状态或某些类型的休眠状态(即,停止许可、深度休眠等)。结果,中断服务请求会以休眠的处理器为目标,这会唤醒该处理器并使其退出休眠模式而进入操作模式,以处理该中断。因为处理器休眠状态被设计为节省功率,所以唤醒休眠的处理器来执行任务会妨碍该目的。随着多处理器和多线程配置在移动和台式计算机系统中变得更普遍,避免传递中断时其它处理器功率节省模式的分配的功率节省技术变得更加重要。
本发明的实施例启用低优先级中断传递方案,在确定将中断请求发生到哪里时考虑处理器功率节省状态。通过使用本发明的实施例,处于比其它处理器更深的休眠状态的处理器将不会是优选的目标,用于最低优先级中断。结果,休眠状态下的处理器会继续按其各休眠状态进行睡眠而不中断,从而更好地节省功率。
对于某些实施例,操作系统负责控制处理器根据ACPI规格进入的功率节省状态,也称作C-状态。操作系统或系统管理软件可根据处理器多么空闲来选择合适的功率状态。虽然许多ACPI启用的操作系统是可用的,但也可采用本发明的可选实施例来从事所谓的“传统”操作系统和机器,其可以不是ACPI启用的。本发明的可选实施例能执行处理器功率状态知晓,最低优先级中断分配,而较少地或没有旧系统中的软件修改。在不能修改的旧的ACPI启用的操作系统中,这是特别期望的。
现在参考图1,示出了实例性的计算机系统100。系统100包括诸如处理器101、105以及芯片组116、130的部件,以使用根据本发明的用于中断的功率状态知晓分配的机制,诸如这里所述的实施例。系统100表示基于Santa Clara,California的Intel Corporation的PENTIUMIII、PENTIUM4、ItaniumTM和/或XScaleTM微处理器的处理系统,尽管其它系统(包括具有其它处理器的PC、工程工作站、置顶盒等)也可使用。在一个实施例中,样品系统100可以执行Redmond,Washington的Microsoft Corporation的WINDOWTM操作系统的版本,尽管也可使用其它操作系统(例如UNIX和Linux)、嵌入软件和/或图形用户界面。因此本发明不限于任何特定的硬件电路和软件的组合。
本发明不限于计算机系统。本发明的可选实施例可用于其它装置,诸如手持装置和嵌入应用。手持装置的某些实例包括蜂窝电话、因特网协议装置、数字照相机、个人数字助理(PDA)和手持PC。嵌入应用可包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、置顶盒、网络集线器、广域网(WAN)交换机或使用中断的任何其它多处理器或多线程系统。此外,某些架构可用于通过低功率状态或休眠模式减少功率消耗。随着电子装置的形状因素继续缩小且电子部件的功率需要继续增加,就需要额外努力来保存电能,同时对性能的负面影响最小。
图1是根据本发明的用分别包含中断处理器逻辑103、107的两个处理器A101和B105形成微处理器计算机系统100的框图。在含多物理处理器的系统的环境中描述本实施例,但可选实施例可使用多线程处理器,其中在单个物理处理器上存在多个逻辑处理器。类似地,可以用将多个处理器核心一同封装在单个模块中的多核心模块实现本发明的其它实施例。系统100是集线器架构的实例。计算机系统100包括处理器101、105,用于处理数据信号。处理器101、105可以是复杂指令集计算机(CISC)微处理器,精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、执行指令集组合的处理器或任何其它处理器装置,诸如数字信号处理器。
处理器101、105耦合到处理器总线110,它可以在处理器101、105和系统100中的其它部件之间传送数据信号。系统100的元件执行本领域公知的其常规功能。在一个实施例中,处理器101、105分别包括一级(L1)内部高速缓存102、106。中断处理机制103、107也驻留于处理器101、105中。对于一个实施例,中断处理机103、107提供关于处理器优先级和功率状况的信息。中断逻辑103、107的可选实施例还可用于微控制器、嵌入处理器、图形装置、DSP和其它类型的逻辑电路。系统100包括存储器120。
系统逻辑芯片116耦合到处理器总线110和存储器120。所说明的实施例中的系统逻辑芯片116是存储控制器集线器(MCH)。处理器101、105可以经由处理器总线110与MCH116通信。MCH116向存储器120提供高带宽存储器路径118,该存储器120用于指令和数据存储和用于图形命令、数据和结构的存储。MCH116引导处理器101、105、存储器120和系统100中的其它部件之间的数据信号并在处理器总线110、存储器120和系统I/O 122之间桥接数据信号。在某些实施例中,系统逻辑芯片116可提供用于耦合到图形控制器112的图形端口。MCH116通过存储器接口118耦合到存储器120。图形卡112通过加速图形端口(AGP)互连114耦合到MCH116。对于一个实施例,在芯片组从各种系统装置接收中断请求并将这些中断分配给合适的目的地以便加以处理的情况下,中断处理机逻辑117也位于MCH116中。对于某些系统,芯片组可轮询用于中断的装置。在分配要求处理器处理的中断时,用于该实施例的MCH116的中断逻辑117考虑处理器优先级和处理器功率状态。根据特殊的实现,在中断分配中也可考虑其它因素。
系统100使用专有集线器接口总线122将MCH116耦合到I/O控制器集线器(ICH)130。ICH130提供经由本地I/O总线到某些I/O装置的直接连接。本地I/O总线是高速I/O总线,用于将外围设备连接到存储器120、芯片组和处理器101、105。某些实例是数据存储装置124、无线收发机126、固件集线器(快闪BIOS)128、含用户输入和键盘接口的传统I/O控制器、诸如通用串行总线(USB)的串行扩展端口、音频控制器和网络控制器134。数据存储装置124可包括硬盘驱动器、软盘驱动器、CD-ROM装置、闪存装置或其它大容量存储装置。耦合到MCH116和ICH130的各种前述装置都需要中断服务。此外,处理器还可发行中断到其它处理器。
根据本发明的机制的实施例允许处理器休眠状态信息传输到负责最低优先级中断的传递的芯片组逻辑或系统部件。在某些实施例中,芯片组逻辑被扩展为当从系统中的一组可用的目标处理器中选择目的地处理器用于最低优先级中断的传递时使用该处理器休眠信息。一个基于硬件的实施例的机制建立处理器操作和休眠状态之间的优先级关系。该机制经由一个或多个总线循环将这种操作/休眠状态信息传送到芯片组。该实施例的芯片组被设计成接收操作/休眠状态信息并在中断分配算法过程中考虑该信息。在一个基于软件的实施例中,操作系统的扩增允许将处理器休眠状态信息间接地传送到负责将中断传递到处理器的芯片组或系统部件。采用本发明的实施例,操作系统可用确保更深休眠状态中的处理器不会被优选为用于接收较低优先级中断的目标,从而改善多处理器和多线程配置中的功率节省。对于一个实施例,该机制主要用硬件实现。本发明的可选实施例可用主要用软件实现,而无硬件变化。此外,某些实施例可使用硬件和软件部件的杂化组合。在又一个实施例中,配置含硬件和操作系统软件的组合的方案,其中操作系统基于处理器的功率状态将处理器任务优先级TPR值分配给各处理器。例如,较低的功率状态(即,较高的数值C状态,就像C2及以上,如以下的图4所示的)对应于较高的TPR值且该处理器因此被分配了更高的TPR值。换句话说,通过TPR值,阻止将中断发送给较低功率状态下的处理器。
图2是多核心处理器模块201和有关芯片组240的框图200,其包括本发明的功率状态知晓中断机制的一个实施例。本实施例的多核心处理器模块201包括两个单独的物理处理器核心A220和B230。在该实例中,核心220、230两者是一致的。每个核心220、230都包括:用于执行代码和指令的执行逻辑221、231;用于存储数据和指令的内部管芯级(on-die)高速缓存222、232;以及具有任务优先级寄存器(TPR)224、234的中断逻辑223、233。在某些实施例中,中断逻辑223、233和有关的TPR224、234可位于处理器模块202中,但离开核心220、230。前端总线(FSB)单元235桥接核心220、230之间的通信,且其中外部世界(即,外部总线和高速缓存)也位于模块201内。在该实施例中,耦合单个共享的FSB单元235,以服务处理器核心A220和处理器核心B230。在可选实施例中,每个核心可具有其自己的FSB单元。类似地,在其它实施例中,单个中断逻辑单元可由多个处理器核心共享,其中TPR寄存器或每个核心的输入保持在该中断逻辑块中。虽然中断逻辑223、233在图2的实例中示作分开的块,但该中断逻辑也可物理的作为一个逻辑块存在,但逻辑上被复制。
除了两个处理器核心220、230,高速缓存210也驻留于处理器模块201中。处理器核心220、230和高速缓存210经由模块201内部的总线耦合在一起。模块201内的部件210、220、230与外部装置之间的通信通过总线接口250进行。对于该实施例,总线250耦合到芯片组逻辑240。该实施例的芯片组240包括含TPR表242和状态信息表243的中断逻辑241。TPR表242和状态信息表243可以是一般的存储器存储位置,诸如寄存器,用于保存数据或信息。术语“寄存器”这里用于表示板上处理器存储位置,它用作识别操作数的宏指令的一部分。换句话说,这里所涉及的寄存器是从处理器或部件外部可见的装置(从程序员的观点)。但是,这里所述的寄存器也可由利用任何不同技术的部件内的电路实现,诸如专用物理寄存器、利用寄存器重命名的动态分配的物理寄存器,专用和动态分配的物理寄存器的组合等等。
系统操作期间,在处理器220、230、高速缓存210和芯片组240之间传送数据。此外,芯片组240将中断请求从各种系统装置传播到处理器核心220、230,用于按需要处理。对于该实施例,在分配中断时,除了处理器优先级,芯片组还考虑处理器功率状态。该模块201的每个处理器核心220、230存储其优先级水平和其功率状态于它们各自的TPR224、234中。处理器优先级值表示专用处理器操作的优先级和处理器对中断的容限。此外,处理器优先级值可表示相对于系统的其它可用处理器的重要级别和控制。例如,优先级‘O’的处理器可用是系统中的主处理器。诸如时钟中断或非屏蔽中断(NMI)的高优先级中断被发送到主处理器。也可为指定处理器指派固定传递的中断。具有高任务优先级值的处理器表示不应中断处理器任务。例如,如果处理器正执行系统关键函数,则处理器将其任务优先级值设定为合适的值,以避免中断。含较低优先级值的其它处理器正执行较不关键的函数,也更有责任被中断,以处理低优先级的中断请求。
类似地,功率状态值表示特殊处理器正操作哪个功率区域。例如,处理器可用是‘通电且忙碌’,‘通电且空闲’,‘暂停’,‘停止准许’,‘深度休眠’或‘断电’。根据处理器所处于的功率状态,对服务中断的请求可具有不同的功率含义和完成时间。该实例的核心220、230跟踪中断逻辑223、233内的TPR224、234中的处理器优先级值和处理器功率状态。将优先级值和功率状态从核心220、230传递到芯片组240的中断逻辑241。该实施例的芯片组中断逻辑241包括TPR表242和功率状态信息表243,用于分别为系统中的每个处理器存储处理器优先级值和处理器功率状态值。因此,当芯片组中断逻辑241确定将中断发送给哪个处理器时,评估和考虑各表242、243中的任务优先级和状态信息。根据特殊实施例的分配算法,将中断发送给专门的处理器。在一个实施例中,中断主要由具有‘通电且空闲’或‘通电且忙碌状态’的处理器处理,因为‘休眠’或‘断电’核心具有不期望的功率和潜伏状态影响。在一个实施例中,每个处理器的每件信息都存储于其自己的唯一的寄存器中。
图3是包含根据本发明的功率状态知晓中断机制的另一个实施例的多线程处理器301和有关芯片组360的框图300。该实施例的处理器模块301包括单个处理器核心320和高速缓存310。该核心320由片载(on-chip)高速缓存321、中断逻辑322、多线程逻辑323、前端总线逻辑325、整数执行逻辑326和浮点执行逻辑327。在中断逻辑内的是TPR324,如以上图2的实例所描述的。处理器核心320和高速缓存310通过外部总线350与芯片组逻辑360耦合在一起。芯片组360包括中断逻辑361,它保存TPR表362和功率状态信息表363。虽然TPR表362和状态信息表363被示作分开的实体,但在另一个实施例中处理器优先级和功率状态信息可一起存储在结合的数据结构中。此外,优先级和功率状态信息还可组合成用于每个处理器的单个表示值,以表示在对处理器的中断分配中的相对期望性和/或优先级。
在该实施例中,呈现了单个物理处理器核心。但是,多线程逻辑323允许通过资源共享而单组架构资源上并行处理多个指令线程。例如,该实例的处理器模块301能同时处理两个线程A和B。线程A和B分别包含其自己的架构状态A330和B340,但通过资源共享算法利用物理处理器核心资源。除了物理多线程逻辑323,操作系统(诸如,上述Windows,UNIX,或Linux)也能发出多线程或处理同步程序。在某些多处理器系统中,操作系统使用最低优先级中断传递,作为对所有装置中断的缺省算法。从用户和操作系统的观点来说,系统300呈现为具有多个(在该实例中为两个)逻辑处理器单元。这里示出算法状态A330和B340用于说明目的而非表示处理器模块301上的实际物理逻辑模块。该实例的架构状态A330和B340包括每个线程的各处理器寄存器。对于一个实施例,架构状态包括寄存器,诸如通用寄存器、控制寄存器、高级可编程中断控制器(APIC)寄存器和某些机器状态寄存器。每个架构状态的数据、设定等可存储于处理器301上的存储器区域中。
对于该实施例,TPR表362和功率状态信息表363为逻辑处理器跟踪有关值。例如,与以上实施例的物理处理器核心220、230类似,本实例中的逻辑处理器的每个架构状态330、340具有任务优先级值和功率状态值。这种情况中的任务优先级值还反映该线程的任务的相对重要性和对中断的容限。尽管图2实例的功率状态值传送物理功率设定,本实施例的架构状态的功率状态值表示线程活动的类型,并相应地表示功率消耗量。例如,线程可具有‘忙碌’状态以表示该线程是活动的和执行的。或者,线程可具有‘空闲’或‘暂停’状态,以表示该线程当前不运行或正等待什么。类似地,线程可具有‘休眠’状态,以表示该线程休眠且其架构状态当前保持不活动。如果另一个线程的功率状态是‘空闲’,则通过在确定将中断服务请求发送给哪个逻辑处理器时评估处理器功率状态,芯片组可避免费时、费功率地唤醒休眠的线程。代替激活一代价更高的线程,芯片组还可用中断具有‘忙碌’状态的线程,以便服务一中断,代替激活成本更高的线程。
图4说明了本发明一个实施例的处理器功率状态(ACPI规范中的C-状态)。对于该实施例,处理器功率状态从C0-BUSY401延伸到Cn406,其中‘C’的词尾越低,服务中断所需的附加开销功率量越低。C0级包括忙碌状态和空闲状态,因为在这两种情况中处理器被通电且它们执行用户/内核代码或者准备执行代码。类似地,线程可运行(忙碌)或空闲(循环)。在该实现中,功率状态的级别(从最活动和需要最小量的功率用于激活的开始)为:C0-BUSY 401,C0-IDLE 402,C1-HALT/WAIT 403,C2-STOP GRANT 404,C3-DEEP SLEEP 405,和Cn406。这里,Cn功率状态406是等级底部的任意功率状态,且在能服务中断之前相对于其它功率状态花费加大的时间和功率量。可根据特殊实施例改变可用功率状态的数量。这里可互换地使用术语处理器和线程,以使线程也与逻辑处理器有关。
对于本发明的一个实施例,芯片组中断逻辑评估从各处理器接收到的处理器功率状态,以确定关系列表。在该实施例中,C0-IDLE 402状态优于C0-BUSY 401状态,因为这两种状态都表示能以较少的开销或无开销来处理中断的处理器或线程。但是,忙碌的处理器/线程将必须中断当前运行的任务并可能在服务中断请求之前保存架构状态,而空闲的处理器/线程可以甚至更低的开销立即采用中断请求。分别采用停止或休眠的处理器/线程(如C2 404或C3 405中的),则必须唤醒处理器/线程并恢复其架构状态,这将需要改变时间量。此外,唤醒休眠的处理器/线程还会需要一些功率来重启或激活必要的硬件逻辑。因此,处理器越不活动,则处理器准备服务中断所需的时间和功率方面的成本就越大。因此,芯片组中断逻辑可被配置成基于包括处理器功率状态和处理器任务优先级的因素的组合选择最佳处理器来处理中断请求。
图5是一个实施例的芯片组的处理器任务信息表项目500的示图。项目500可存储于各种存储器位置,包括寄存器、锁存等。对于该实施例,每个项目都由共3个字节的五个字段构成并存储关于处理器任务优先级和处理器功率状态的信息。该实施例中的项目500的第一个字段是物理高级可编程中断控制器(xAPIC)标识符501。本实施例的物理xAPIC ID 501确定该条目相关的物理处理器。在系统中物理地存在多个处理器或多个处理器核心的情况下,采用一个实施例的该第一字段。每个项目500的第二字段是逻辑xAPIC ID 502。本实施例的逻辑xAPIC ID 502确定该条目相关的逻辑处理器或线程。在该实例中,该逻辑ID字段502由操作系统编程。
该实施例中的TPR项目500的第三字段保存启用标记,其表示该特殊项目有效与否。启用的字段也可用于表示处理器/线程是否能处理中断。如果处理器项目未被启用,则处理器就不是可用的或不是活动的。对于该实施例,第四字段用于保存该处理器的功率状态504。但是,在可选实施例中,该字段可以被保留或不存在,因为中断逻辑可将功率状态值和处理器优先级值合并成统一的值。本实施例的第五字段存储该处理器的TPR值505。TPR值表示当前处理器的任务优先级。该实施例的中断逻辑的算法被配置成不中断优先级高于中断请求优先级的任务,并查找另一个可能的处理器。但如果中断请求的优先级高于当前任务,则可以中断该任务以服务所述中断。对于优先级与当前任务优先级相等的中断,如果含更低优先级任务的另一个处理器不可得,则逻辑可以中断该任务。
在可选实施例中,TPR字段505可配置成保存开销功率和任务优先级值,从而中断分配逻辑在查找处理器时可加以评估。虽然图5中的该实例的字段用实例字段长度和字段位置示出,但任务优先级表的项目和结构取决于本发明的特殊应用。已在芯片组逻辑的环境中描述了图5所示的表项目。但是,类似类型的结构可存在于每个个别处理器和操作系统,用于跟踪可用的每个物理和/或逻辑处理器的任务优先级值和功率状态值。
图6A-6D是说明用于分配中断的功率状态知晓方法的一个实施例的流程图。图6A的流程图说明了用于一个实施例的功率状态知晓中断分配的高级方法。在框602,启动或复位系统。在框610,系统部件退出复位并被初始化。在以上图1中可找到这种系统部件的实例(即,处理器、芯片组、存储器、I/O装置)。还初始化和加载操作系统。在启动过程中,操作系统可配置各种系统装置,用于适当的操作。在一个实施例中,操作系统能同时多任务和运行多线程。根据特殊应用,若可用,则操作系统可在许多逻辑处理器或在物理处理器/核心上运行多线程。在框615,系统进入正常操作。在正常的系统操作过程中,系统可执行各种类型的用户应用和系统任务。在框620,跟踪每个处理器的任务优先级和功率状态。该跟踪可包括收集关于任务优先级、功率状态和/或各物理和/或逻辑处理器的活动状态的信息。在框630,进行检查,以确定是否已接收到中断请求。如果在框630没有检测到中断请求,则在615处系统继续正常操作。
如果在框630处检测到中断请求,则芯片组中断逻辑处理请求并确定将请求发送到哪里,以便进行中断服务。基于因素(包括,但不限于,逻辑/物理处理器的任务优先级值和功率状态值)的分析,中断逻辑选择合适的处理器并传送中断请求。接收处理器服务该中断请求,随后在框660处重新开始其先前的活动。正常系统操作在框615处继续,直到检测到另一个中断请求。
图6B是进一步说明框610的初始化过程中发生的操作的流程图。在框611,初始化每个处理器的任务优先级寄存器。在框612,还初始化芯片组中断处理机逻辑。在框613,每个处理器都将其任务优先级和功率状态传送到芯片组逻辑。在框614处,用芯片组逻辑存储处理器任务优先级和处理器功率状态信息,用于稍后在需要服务中断请求时加以参考。因此,只要处理器处任务或功率级改变,则更新任务优先级和功率状态信息。
图6C的流程图更详细地说明了框620的处理器任务跟踪期间的某些操作。在框621,用任务优先级值和功率状态值更新处理器中的任务优先级寄存器。对于一个实施例,任务优先级寄存器存储这两个值。在另一个实施例中,这些值存储于不同寄存器中。在又一个实施例中,任务优先级寄存器存储基于这两个值的统一值。在框622,新任务优先级和功率状态信息被传送到芯片组。在框623,芯片组逻辑将任务优先级信息存储入任务信息表中的处理器项目。该实施例的芯片组可跟踪系统中的许多物理/逻辑处理器的任务信息。表中的每个项目都映射到特定处理器。对于该实施例,在框624,芯片组逻辑还将处理器任务优先级映射到相应的功率状态。将从用于该任务的处理器接收到的功率状态信息保存入任务信息表。
图6D是说明了对于本发明一个实施例当中断请求被接收(框630)和服务(框640)时芯片组逻辑和处理器处的活动的流程图。对于该实施例,框641-645和651-653通常发生于芯片组处,而框646-650通常发生于处理器处。框641处,芯片组中断逻辑确定中断优先级。框642处,逻辑检查每个处理器的任务优先级。框643处,还检查每个处理器的功率状态。基于考虑任务优先级和功率状态的算法,框644处,芯片组中断逻辑选择处理器来服务所述请求,并在框645处将中断请求发送到处理器。本实施例的芯片组逻辑还更新处理器任务项目,以记录中断优先级,处理器处理该中断。
在框646,在所选的处理器处接收中断请求。如果存在目前进行中的任务,则处理器在框647处暂停其当前任务。在框648,用新的优先级值更新处理器的任务优先级项目。对于一个实施例,在处理器上的物理寄存器位置处和芯片组处更新任务优先级项目。在另一个实例中,更新操作系统维持的存储器结构处的任务优先级项目。在框649,处理器服务该中断。在框650,处理器向芯片组通知中断服务请求完成,并更新处理器任务优先级值为中断任务的优先级值。在框651,芯片组接收中断完成通知和恢复的任务优先级值。用任务优先级更新处理器信息表。在框652,处理器重新开始中断之前正在处理的任务,且芯片组继续其操作。在框653,芯片组还向请求者通知中断服务请求的完成。
图7是说明用于中断的处理器功率状态知晓分配的方法的另一个实施例的流程图。该实施例的方法是用操作系统实现的并经由各控制和信号和指令进行操作。在一个实例中,使用固件来转化或通信软件和硬件部件之间的控制信号。在框702,启动或复位操作系统。操作系统维持的处理器信息表中的任务优先级项目在框704处被初始化。对于该实施例,在框706,建立任务优先级状态和功率状态之间的映射。该实施例的任务优先级项目将处理器任务优先级值和处理器功率状态值结合成单个参考值。
在框708,开始正常系统操作。在框710,操作系统跟踪系统中的每个物理和逻辑处理器的活动任务的任务优先级。在框712,操作系统询问关于是否已接收到任何中断请求。如果没有出现中断请求,则在框708处继续正常系统操作。用户应用和系统任务继续运行。但如果中断请求挂起,则在框714处操作系统接收该请求用于分配。在框716,操作系统为每个处理器分析信息表中存储的任务优先级和功率状态值。框718处,操作系统选择具有合适优先级和功率状态的处理器来服务中断请求。对于一个实施例,合适的处理器具有最低优先级任务和最高优先级状态中的一个。换句话说,选择在可服务请求之前具有最小时间潜伏期和最小开销功率要求的处理器。
在一个实施例中,通常不中断关键任务或高优先级任务来服务较低优先级的中断。类似地,某些类型的休眠模式的处理器不是服务中断请求的期望候选者,因为唤醒该处理器在功率和时间两方面都是代价高的。在框720,将中断请求传送到所选的处理器用于进行服务。在框722,更新该处理器的任务优先级项目,以反映中断请求的优先级。目标处理器接收和处理该请求。在框724,向操作系统通知请求完成。在框726,为处理器恢复任务优先级项目。对于一个实施例,框728处,处理器重新开始用接收最近的中断请求时着手的任务进行操作。
虽然以上实例在执行单元和逻辑电路的环境中描述了中断处理和分配,但本发明的其它实施例可以借助软件得以实现。这种软件可存储于系统中的存储器内。类似地,代码可经由网络或借助其它计算机可读媒体进行分配。例如,计算机程序可通过计算机可读媒介(诸如软盘或CD ROM)或者因特网上的传输加以分配。因此,计算机可读媒介可包括用于按机器(例如,计算机)可读形式存储和发送信息的任何机制。例如,机器可读媒介可包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储媒体、光存储媒体、闪存装置以及电、光、声或其它形式的传播信号(例如,载波、红外线信号、数字信号等)。
此外,根据本发明的集成电路设计的实施例可按电子形式通信或传递。例如,一个实施例中的处理器的集成电路设计的电子形式可由工厂(fab)处理或制造以获得计算机部件。在另一个实例中,电子形式的集成电路设计可由机器处理以模拟计算机部件。因此,某些实施例中的处理器的电路布置图和/或设计可通过机器可读媒介分配或嵌入其上用于制成电路或用于集成电路模拟,在由机器处理时,它模拟处理器。在其它实施例中,机器可读媒介还能根据本发明存储表示预定功能的数据。
在前述说明书中,已参考具体实例性实施例描述了本发明。但是,明显地,可进行各种修改和变化,而不背离本发明的更宽泛的精神和范围,如所附权利要求书所阐述的。因此,说明书和附图被认为是说明性的而非限制性的。
Claims (36)
1.一种方法,其特征在于,包括:
从第一部件接收第一功率状态信息和从第二部件接收第二功率状态信息;
从所述第一部件接收第一任务优先级信息和从所述第二部件接收第二任务优先级;
从第一装置接收中断请求,用于进行服务;
为所述第一和第二部件评估功率状态和任务优先级信息,以确定哪个部件应服务所述中断请求;
基于所述功率状态和任务优先级信息,选择所述第一部件或所述第二部件为目的地部件,以便服务所述中断请求;以及
将所述中断请求传送给所述目的地部件。
2.如权利要求1所述的方法,其特征在于,进一步包括在第一存储器位置中存储所述第一功率状态信息和在第二存储器位置中存储所述第二功率状态信息。
3.如权利要求2所述的方法,其特征在于,进一步包括在第三存储器位置中存储所述第一任务优先级信息和在第四存储器位置中存储所述第二任务优先级信息。
4.如权利要求3所述的方法,其特征在于,进一步包括检查装置用于中断请求。
5.如权利要求4所述的方法,其特征在于,进一步包括对所述目的地部件更新功率状态和任务优先级信息,以反映所述中断请求的任务优先级。
6.如权利要求5所述的方法,其特征在于,进一步包括从所述目的地部件接收中断完成的通知。
7.如权利要求6所述的方法,其特征在于,进一步包括为所述目的地部件将所述功率状态和任务优先级信息恢复为服务所述中断请求之前存在的值。
8.如权利要求7所述的方法,其特征在于,进一步包括向所述装置通知所述中断完成。
9.如权利要求8所述的方法,其特征在于,所述第一和第二部件是处理器。
10.如权利要求9所述的方法,其特征在于,所述第一、第二、第三和第四存储器位置位于芯片组逻辑内。
11.一种装置,其特征在于,包括:
中断处理逻辑,它耦合到第一组信号线以便接收中断请求,所述第一组信号线耦合到能产生中断请求的一个或多个装置;
总线接口,它与耦合到第一部件和第二部件的总线相互作用,其中所述中断处理逻辑通过所述总线接口耦合到所述第一总线以便接收所述第一和第二部件中的每一个的功率状态信息和任务优先级信息;
评估逻辑,它耦合所述中断处理逻辑,其中当所述中断处理逻辑接收所述中断请求时,所述评估逻辑为所述第一和第二部件评估功率状态和任务优先级信息以确定哪个部件应服务所述中断请求;以及
选择逻辑,它耦合到所述评估逻辑,以基于所述功率状态或任务优先级信息选择所述第一部件或所述第二部件为目的地部件,以便服务所述中断请求。
12.如权利要求11所述的装置,其特征在于,进一步包括存储器,它为所述第一和第二部件中的每一个存储所述功率状态信息和所述任务优先级信息,供所述评估逻辑参考。
13.如权利要求12所述的装置,其特征在于,所述选择逻辑进一步将所述中断请求传送到所述目的地部件,用于进行服务。
14.如权利要求13所述的装置,其特征在于,所述选择逻辑进一步为所述目的地部件更新功率状态和任务优先级信息,以反映所述中断请求的任务优先级。
15.如权利要求14所述的装置,其特征在于,所述中断处理逻辑进一步从所述目的地部件接收中断完成的通知。
16.如权利要求15所述的装置,其特征在于,所述选择逻辑进一步为所述目的地部件将所述功率状态和任务优先级信息恢复为服务所述中断请求之前存在的值。
17.如权利要求16所述的装置,其特征在于,中断处理逻辑进一步向所述装置通知所述中断完成。
18.如权利要求17所述的装置,其特征在于,所述第一和第二部件是处理器。
19.如权利要求17所述的装置,其特征在于,所述第一和第二部件是多线程环境的线程。
20.如权利要求19所述的装置,其特征在于,所述装置是芯片组。
21.一种系统,其特征在于,包括:
总线;
与所述总线耦合的第一处理器和第二处理器;
可产生中断请求的一个或多个系统装置,其中所述中断请求需要来自所述第一或第二处理器的服务;
处理所述中断请求的芯片组,所述芯片组耦合到所述系统装置以及所述第一和第二处理器,其中所述芯片组为所述第一和第二处理器中的每一个接收功率状态信息和任务优先级信息,当接收到中断请求时所述芯片组评估所述功率状态和任务优先级信息并确定哪个处理器应服务所述中断请求,且其中所述芯片组根据所述功率状态和任务优先级信息来选择所述第一处理器或所述第二处理器来服务所述请求。
22.如权利要求21所述的系统,其特征在于,所述芯片组进一步包括存储器寄存器,用于为所述第一和第二部件中的每一个存储所述功率状态信息和所述任务优先级信息,供所述评估逻辑参考。
23.如权利要求22所述的系统,其特征在于,所述芯片组进一步包括为所述目的地部件更新功率状态和任务优先级信息以反映所述中断请求的任务优先级的逻辑。
24.如权利要求22所述的系统,其特征在于,所述芯片组进一步包括为所述第一和第二处理器跟踪功率状态和任务优先级信息的逻辑。
25.如权利要求22所述的系统,其特征在于,所述芯片组从被选择用于服务所述中断请求的处理器接收所述中断请求完成的通知。
26.如权利要求25所述的系统,其特征在于,所述芯片组进一步包括为所述被选择用于服务所述中断请求的处理器将所述功率状态和任务优先级信息恢复为服务所述中断请求之前存在的值的逻辑。
27.如权利要求26所述的系统,其特征在于,所述第一和第二处理器分别是多线程处理器。
28.如权利要求26所述的系统,其特征在于,所述第一和第二处理器分别是多核心模块的处理核心。
29.一种方法,其特征在于,包括:
从第一部件接收第一功率状态信息和从第二部件接收第二功率状态信息;
基于所述第一功率状态信息,将第一任务优先级值分配给所述第一部件;
基于所述第二功率状态信息,将第二任务优先级值分配给所述第二部件;
从第一装置接收中断请求,用于进行服务;
为所述第一和第二部件评估任务优先级值,以确定哪个部件应服务所述中断请求;
基于所述任务优先级值,选择所述第一部件或所述第二部件为目的地部件,以便服务所述中断请求;以及
将所述中断请求发送到所述目的地部件。
30.如权利要求29所述的方法,其特征在于,进一步包括存储所述第一和第二任务优先级值到第一和第二寄存器。
31.如权利要求30所述的方法,其特征在于,每个功率状态信息都包括功率状态值。
32.如权利要求31所述的方法,其特征在于,每个功率状态值都对应于任务优先级值。
33.如权利要求32所述的方法,其特征在于,较高的功率状态值对应于较低的任务优先级值,且较低的功率状态值对应于较高的任务优先级值。
34.如权利要求33所述的方法,其特征在于,与具有较高任务优先级值的另一个部件相比,具有较低任务优先级值的部件更优选被选择为所述目的地部件,以服务所述中断请求。
35.如权利要求34所述的方法,其特征在于,所述第一和第二部件分别是第一处理器和第二处理器。
36.如权利要求35所述的方法,其特征在于,每个任务优先级值都存储到独特的寄存器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/330,622 US7191349B2 (en) | 2002-12-26 | 2002-12-26 | Mechanism for processor power state aware distribution of lowest priority interrupt |
US10/330,622 | 2002-12-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1732447A CN1732447A (zh) | 2006-02-08 |
CN100349147C true CN100349147C (zh) | 2007-11-14 |
Family
ID=32654547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003801073724A Expired - Fee Related CN100349147C (zh) | 2002-12-26 | 2003-12-05 | 最低优先级中断的处理器功率状态的知晓分配的方法、系统和装置 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7191349B2 (zh) |
CN (1) | CN100349147C (zh) |
AU (1) | AU2003298903A1 (zh) |
DE (1) | DE10393969T5 (zh) |
GB (1) | GB2412457B (zh) |
HK (1) | HK1075314A1 (zh) |
TW (1) | TWI233545B (zh) |
WO (1) | WO2004061686A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101872314A (zh) * | 2009-04-24 | 2010-10-27 | 勒斯塔尔技术有限责任公司 | 用于多处理器的动态调度中断控制器 |
CN102567109A (zh) * | 2010-12-07 | 2012-07-11 | 苹果公司 | 中断分配方案 |
WO2022056207A1 (en) * | 2020-09-11 | 2022-03-17 | Apple Inc. | Scalable interrupts |
US11803471B2 (en) | 2021-08-23 | 2023-10-31 | Apple Inc. | Scalable system on a chip |
Families Citing this family (169)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6760772B2 (en) | 2000-12-15 | 2004-07-06 | Qualcomm, Inc. | Generating and implementing a communication protocol and interface for high data rate signal transfer |
US8812706B1 (en) | 2001-09-06 | 2014-08-19 | Qualcomm Incorporated | Method and apparatus for compensating for mismatched delays in signals of a mobile display interface (MDDI) system |
US7346757B2 (en) | 2002-10-08 | 2008-03-18 | Rmi Corporation | Advanced processor translation lookaside buffer management in a multithreaded system |
US9088474B2 (en) | 2002-10-08 | 2015-07-21 | Broadcom Corporation | Advanced processor with interfacing messaging network to a CPU |
US8176298B2 (en) * | 2002-10-08 | 2012-05-08 | Netlogic Microsystems, Inc. | Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline |
US7924828B2 (en) | 2002-10-08 | 2011-04-12 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for fast packet queuing operations |
US7984268B2 (en) | 2002-10-08 | 2011-07-19 | Netlogic Microsystems, Inc. | Advanced processor scheduling in a multithreaded system |
US7961723B2 (en) | 2002-10-08 | 2011-06-14 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for enforcing ordering between information sent on two independent networks |
US8037224B2 (en) | 2002-10-08 | 2011-10-11 | Netlogic Microsystems, Inc. | Delegating network processor operations to star topology serial bus interfaces |
US7334086B2 (en) | 2002-10-08 | 2008-02-19 | Rmi Corporation | Advanced processor with system on a chip interconnect technology |
US20050033831A1 (en) * | 2002-10-08 | 2005-02-10 | Abbas Rashid | Advanced processor with a thread aware return address stack optimally used across active threads |
US7461215B2 (en) * | 2002-10-08 | 2008-12-02 | Rmi Corporation | Advanced processor with implementation of memory ordering on a ring based data movement network |
US20050044324A1 (en) * | 2002-10-08 | 2005-02-24 | Abbas Rashid | Advanced processor with mechanism for maximizing resource usage in an in-order pipeline with multiple threads |
US8478811B2 (en) | 2002-10-08 | 2013-07-02 | Netlogic Microsystems, Inc. | Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip |
US8015567B2 (en) | 2002-10-08 | 2011-09-06 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for packet distribution at high line rate |
US7627721B2 (en) | 2002-10-08 | 2009-12-01 | Rmi Corporation | Advanced processor with cache coherency |
US8705579B2 (en) | 2003-06-02 | 2014-04-22 | Qualcomm Incorporated | Generating and implementing a signal protocol and interface for higher data rates |
EP2363989B1 (en) | 2003-08-13 | 2018-09-19 | Qualcomm Incorporated | A signal interface for higher data rates |
US8719334B2 (en) | 2003-09-10 | 2014-05-06 | Qualcomm Incorporated | High data rate interface |
JP2005092780A (ja) * | 2003-09-19 | 2005-04-07 | Matsushita Electric Ind Co Ltd | リアルタイムプロセッサシステム及び制御方法 |
CN102801615A (zh) | 2003-10-15 | 2012-11-28 | 高通股份有限公司 | 高数据速率接口 |
WO2005043862A1 (en) | 2003-10-29 | 2005-05-12 | Qualcomm Incorporated | High data rate interface |
CA2545817C (en) | 2003-11-12 | 2011-11-29 | Qualcomm Incorporated | High data rate interface with improved link control |
US20050108713A1 (en) * | 2003-11-18 | 2005-05-19 | Geye Scott A. | Affinity mask assignment system and method for multiprocessor systems |
MXPA06006012A (es) | 2003-11-25 | 2006-08-23 | Qualcomm Inc | Interfase de indice de datos alto con sincronizacion de enlace mejorada. |
EP2247071B1 (en) | 2003-12-08 | 2013-09-25 | QUALCOMM Incorporated | High data rate interface with improved link synchronization |
US7093036B2 (en) * | 2003-12-11 | 2006-08-15 | International Business Machines Corporation | Processor state aware interrupts from peripherals |
US8669988B2 (en) * | 2004-03-10 | 2014-03-11 | Qualcomm Incorporated | High data rate interface apparatus and method |
JP4519903B2 (ja) * | 2004-03-17 | 2010-08-04 | クゥアルコム・インコーポレイテッド | 高速データレートインタフェース装置及び方法 |
US7512774B2 (en) * | 2004-04-14 | 2009-03-31 | Barclays Capital Inc. | Method and system for collecting processor information |
US7784064B2 (en) * | 2004-04-14 | 2010-08-24 | Barclays Capital Inc. | Method for collecting monitor information |
US8650304B2 (en) | 2004-06-04 | 2014-02-11 | Qualcomm Incorporated | Determining a pre skew and post skew calibration data rate in a mobile display digital interface (MDDI) communication system |
US8630305B2 (en) | 2004-06-04 | 2014-01-14 | Qualcomm Incorporated | High data rate interface apparatus and method |
US8538997B2 (en) | 2004-06-25 | 2013-09-17 | Apple Inc. | Methods and systems for managing data |
US8131674B2 (en) | 2004-06-25 | 2012-03-06 | Apple Inc. | Methods and systems for managing data |
EP1615141B1 (en) * | 2004-07-01 | 2018-03-07 | Harman Becker Automotive Systems GmbH | A computing architecture for a mobile multimedia system used in a vehicle |
CN100474214C (zh) * | 2004-08-05 | 2009-04-01 | 松下电器产业株式会社 | 信息处理装置 |
US20060112208A1 (en) * | 2004-11-22 | 2006-05-25 | International Business Machines Corporation | Interrupt thresholding for SMT and multi processor systems |
US8723705B2 (en) | 2004-11-24 | 2014-05-13 | Qualcomm Incorporated | Low output skew double data rate serial encoder |
US8699330B2 (en) | 2004-11-24 | 2014-04-15 | Qualcomm Incorporated | Systems and methods for digital data transmission rate control |
US8539119B2 (en) | 2004-11-24 | 2013-09-17 | Qualcomm Incorporated | Methods and apparatus for exchanging messages having a digital data interface device message format |
US8667363B2 (en) | 2004-11-24 | 2014-03-04 | Qualcomm Incorporated | Systems and methods for implementing cyclic redundancy checks |
US8692838B2 (en) | 2004-11-24 | 2014-04-08 | Qualcomm Incorporated | Methods and systems for updating a buffer |
US8873584B2 (en) | 2004-11-24 | 2014-10-28 | Qualcomm Incorporated | Digital data interface device |
JP2006195867A (ja) * | 2005-01-17 | 2006-07-27 | Matsushita Electric Ind Co Ltd | バス調停方法及び半導体装置 |
US20060294401A1 (en) * | 2005-06-24 | 2006-12-28 | Dell Products L.P. | Power management of multiple processors |
US7849466B2 (en) * | 2005-07-12 | 2010-12-07 | Qualcomm Incorporated | Controlling execution mode of program threads by applying a mask to a control register in a multi-threaded processor |
US7552236B2 (en) * | 2005-07-14 | 2009-06-23 | International Business Machines Corporation | Routing interrupts in a multi-node system |
US7412353B2 (en) | 2005-09-28 | 2008-08-12 | Intel Corporation | Reliable computing with a many-core processor |
GB0519981D0 (en) | 2005-09-30 | 2005-11-09 | Ignios Ltd | Scheduling in a multicore architecture |
US8692839B2 (en) | 2005-11-23 | 2014-04-08 | Qualcomm Incorporated | Methods and systems for updating a buffer |
US8730069B2 (en) | 2005-11-23 | 2014-05-20 | Qualcomm Incorporated | Double data rate serial encoder |
US7689838B2 (en) * | 2005-12-22 | 2010-03-30 | Intel Corporation | Method and apparatus for providing for detecting processor state transitions |
US8799687B2 (en) * | 2005-12-30 | 2014-08-05 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including optimizing C-state selection under variable wakeup rates |
CN103646009B (zh) | 2006-04-12 | 2016-08-17 | 索夫特机械公司 | 对载明并行和依赖运算的指令矩阵进行处理的装置和方法 |
US7647509B2 (en) * | 2006-05-12 | 2010-01-12 | Intel Corporation | Method and apparatus for managing power in a processing system with multiple partitions |
US7797555B2 (en) * | 2006-05-12 | 2010-09-14 | Intel Corporation | Method and apparatus for managing power from a sequestered partition of a processing system |
CN101627365B (zh) | 2006-11-14 | 2017-03-29 | 索夫特机械公司 | 多线程架构 |
US8799902B2 (en) * | 2007-04-09 | 2014-08-05 | Intel Corporation | Priority based throttling for power/performance quality of service |
JP4353990B2 (ja) * | 2007-05-18 | 2009-10-28 | 株式会社半導体理工学研究センター | マルチプロセッサ制御装置 |
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 |
US7769938B2 (en) * | 2007-09-06 | 2010-08-03 | Intel Corporation | Processor selection for an interrupt identifying a processor cluster |
US7627706B2 (en) | 2007-09-06 | 2009-12-01 | Intel Corporation | Creation of logical APIC ID with cluster ID and intra-cluster ID |
US7962679B2 (en) * | 2007-09-28 | 2011-06-14 | Intel Corporation | Interrupt balancing for multi-core and power |
US9779235B2 (en) * | 2007-10-17 | 2017-10-03 | Sukamo Mertoguno | Cognizant engines: systems and methods for enabling program observability and controlability at instruction level granularity |
US8190864B1 (en) * | 2007-10-25 | 2012-05-29 | Oracle America, Inc. | APIC implementation for a highly-threaded x86 processor |
US8386684B2 (en) * | 2007-12-12 | 2013-02-26 | Nxp B.V. | Data processing system and method of interrupt handling |
US7730248B2 (en) * | 2007-12-13 | 2010-06-01 | Texas Instruments Incorporated | Interrupt morphing and configuration, circuits, systems and processes |
GB2455744B (en) * | 2007-12-19 | 2012-03-14 | Advanced Risc Mach Ltd | Hardware driven processor state storage prior to entering a low power mode |
US7962771B2 (en) * | 2007-12-31 | 2011-06-14 | Intel Corporation | Method, system, and apparatus for rerouting interrupts in a multi-core processor |
US9596324B2 (en) | 2008-02-08 | 2017-03-14 | Broadcom Corporation | System and method for parsing and allocating a plurality of packets to processor core threads |
JP5397739B2 (ja) * | 2008-03-18 | 2014-01-22 | 株式会社リコー | 画像処理装置、画像処理方法および画像処理プログラム |
US7793025B2 (en) * | 2008-03-28 | 2010-09-07 | Freescale Semiconductor, Inc. | Hardware managed context sensitive interrupt priority level control |
US8141084B2 (en) * | 2008-04-07 | 2012-03-20 | International Business Machines Corporation | Managing preemption in a parallel computing system |
US8024504B2 (en) * | 2008-06-26 | 2011-09-20 | Microsoft Corporation | Processor interrupt determination |
US8555292B2 (en) * | 2008-06-27 | 2013-10-08 | Microsoft Corporation | Synchronizing communication over shared memory |
US7779191B2 (en) * | 2008-07-29 | 2010-08-17 | Nvidia Corporation | Platform-based idle-time processing |
CN102227884B (zh) * | 2008-09-30 | 2014-12-17 | 发明科学基金I有限责任公司 | 用于本地接收器的功率发射 |
CN101403982B (zh) * | 2008-11-03 | 2011-07-20 | 华为技术有限公司 | 一种多核处理器的任务分配方法和系统 |
US7996595B2 (en) * | 2009-04-14 | 2011-08-09 | Lstar Technologies Llc | Interrupt arbitration for multiprocessors |
US8171319B2 (en) * | 2009-04-16 | 2012-05-01 | International Business Machines Corporation | Managing processor power-performance states |
US8260996B2 (en) * | 2009-04-24 | 2012-09-04 | Empire Technology Development Llc | Interrupt optimization for multiprocessors |
US8064197B2 (en) * | 2009-05-22 | 2011-11-22 | Advanced Micro Devices, Inc. | Heat management using power management information |
US20100332877A1 (en) * | 2009-06-30 | 2010-12-30 | Yarch Mark A | Method and apparatus for reducing power consumption |
US8234431B2 (en) | 2009-10-13 | 2012-07-31 | Empire Technology Development Llc | Interrupt masking for multi-core processors |
US8578384B2 (en) * | 2009-10-28 | 2013-11-05 | Freescale Semiconductor, Inc. | Method and apparatus for activating system components |
US8365131B2 (en) * | 2010-01-11 | 2013-01-29 | Empire Technology Development Llc | Hardware synthesis using thermally aware scheduling and binding |
US20110307716A1 (en) * | 2010-06-10 | 2011-12-15 | Broadcom Corporation | Global control policy manager |
US9009499B2 (en) | 2010-06-10 | 2015-04-14 | Broadcom Corporation | Power manager for a network having a virtual machine |
US8352685B2 (en) | 2010-08-20 | 2013-01-08 | Apple Inc. | Combining write buffer with dynamically adjustable flush metrics |
WO2012025987A1 (ja) * | 2010-08-24 | 2012-03-01 | 三菱電機株式会社 | 通信端末、通信システム、通信方法及び通信プログラム |
WO2012026034A1 (ja) * | 2010-08-27 | 2012-03-01 | 富士通株式会社 | スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法 |
EP3156896B1 (en) | 2010-09-17 | 2020-04-08 | Soft Machines, Inc. | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
EP2628072B1 (en) | 2010-10-12 | 2016-10-12 | Soft Machines, Inc. | An instruction sequence buffer to enhance branch prediction efficiency |
US9733944B2 (en) | 2010-10-12 | 2017-08-15 | Intel Corporation | Instruction sequence buffer to store branches having reliably predictable instruction sequences |
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 |
TWI432953B (zh) | 2010-12-09 | 2014-04-01 | Ind Tech Res Inst | 具電源管理之超長指令處理器以及其電源管理裝置與方法 |
US9460038B2 (en) | 2010-12-22 | 2016-10-04 | Via Technologies, Inc. | Multi-core microprocessor internal bypass bus |
US8930676B2 (en) | 2010-12-22 | 2015-01-06 | Via Technologies, Inc. | Master core discovering enabled cores in microprocessor comprising plural multi-core dies |
US8637212B2 (en) | 2010-12-22 | 2014-01-28 | Via Technologies, Inc. | Reticle set modification to produce multi-core dies |
US8782451B2 (en) | 2010-12-22 | 2014-07-15 | Via Technologies, Inc. | Power state synchronization in a multi-core processor |
US8635476B2 (en) | 2010-12-22 | 2014-01-21 | Via Technologies, Inc. | Decentralized power management distributed among multiple processor cores |
US8972707B2 (en) | 2010-12-22 | 2015-03-03 | Via Technologies, Inc. | Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin |
US8631256B2 (en) | 2010-12-22 | 2014-01-14 | Via Technologies, Inc. | Distributed management of a shared power source to a multi-core microprocessor |
DE102011013833B4 (de) * | 2011-03-14 | 2014-05-15 | Continental Automotive Gmbh | Anzeigevorrichtung |
CN103635875B (zh) | 2011-03-25 | 2018-02-16 | 英特尔公司 | 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段 |
EP2689327B1 (en) | 2011-03-25 | 2021-07-28 | Intel Corporation | Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines |
WO2012135041A2 (en) | 2011-03-25 | 2012-10-04 | Soft Machines, Inc. | Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines |
KR101639854B1 (ko) | 2011-05-20 | 2016-07-14 | 소프트 머신즈, 인크. | 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 상호접속 구조 |
TWI603198B (zh) | 2011-05-20 | 2017-10-21 | 英特爾股份有限公司 | 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行 |
KR20130021637A (ko) * | 2011-08-23 | 2013-03-06 | 삼성전자주식회사 | 멀티 코어 시스템의 인터럽트 할당 방법 및 장치 |
US8688883B2 (en) | 2011-09-08 | 2014-04-01 | Intel Corporation | Increasing turbo mode residency of a processor |
TWI556092B (zh) | 2011-09-30 | 2016-11-01 | 英特爾公司 | 用以減少電力消耗之基於優先順序的應用程式事件控制技術 |
US9811338B2 (en) | 2011-11-14 | 2017-11-07 | Intel Corporation | Flag non-modification extension for ISA instructions using prefixes |
KR101703401B1 (ko) | 2011-11-22 | 2017-02-06 | 소프트 머신즈, 인크. | 다중 엔진 마이크로프로세서용 가속 코드 최적화기 |
US20150039859A1 (en) | 2011-11-22 | 2015-02-05 | Soft Machines, Inc. | Microprocessor accelerated code optimizer |
US8819461B2 (en) * | 2011-12-22 | 2014-08-26 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including improved processor core deep power down exit latency by using register secondary uninterrupted power supply |
US9400545B2 (en) | 2011-12-22 | 2016-07-26 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including autonomous hardware-based deep power down in devices |
WO2013095618A1 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Instruction execution that broadcasts and masks data values at different levels of granularity |
CA2799974C (en) * | 2011-12-29 | 2018-05-22 | The University Of Western Ontario | Method and apparatus for wireless security enhancement using multiple attributes monitoring, continuous and interleaved authentication, and system adaption |
US8930674B2 (en) | 2012-03-07 | 2015-01-06 | Soft Machines, Inc. | Systems and methods for accessing a unified translation lookaside buffer |
US10146545B2 (en) | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
GB2500434A (en) * | 2012-03-23 | 2013-09-25 | Cognovo Ltd | Scheduling actions based on the state of the resources needed to execute the actions |
US9880846B2 (en) * | 2012-04-11 | 2018-01-30 | Nvidia Corporation | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries |
US10241810B2 (en) | 2012-05-18 | 2019-03-26 | Nvidia Corporation | Instruction-optimizing processor with branch-count table in hardware |
US9916253B2 (en) | 2012-07-30 | 2018-03-13 | Intel Corporation | Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput |
US9229873B2 (en) | 2012-07-30 | 2016-01-05 | Soft Machines, Inc. | Systems and methods for supporting a plurality of load and store accesses of a cache |
US9740612B2 (en) | 2012-07-30 | 2017-08-22 | Intel Corporation | Systems and methods for maintaining the coherency of a store coalescing cache and a load cache |
US9710399B2 (en) | 2012-07-30 | 2017-07-18 | Intel Corporation | Systems and methods for flushing a cache with modified data |
US9342122B2 (en) * | 2012-09-17 | 2016-05-17 | Intel Corporation | Distributing power to heterogeneous compute elements of a processor |
US9678882B2 (en) | 2012-10-11 | 2017-06-13 | Intel Corporation | Systems and methods for non-blocking implementation of cache flush instructions |
US9678564B2 (en) * | 2012-12-21 | 2017-06-13 | Nxp B.V. | Multiprocessor system with interrupt distributor |
US20140189310A1 (en) | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Fault detection in instruction translations |
US9563579B2 (en) | 2013-02-28 | 2017-02-07 | Intel Corporation | Method, apparatus, system for representing, specifying and using deadlines |
US9571329B2 (en) * | 2013-03-11 | 2017-02-14 | International Business Machines Corporation | Collective operation management in a parallel computer |
US10108424B2 (en) | 2013-03-14 | 2018-10-23 | Nvidia Corporation | Profiling code portions to generate translations |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
KR101708591B1 (ko) | 2013-03-15 | 2017-02-20 | 소프트 머신즈, 인크. | 블록들로 그룹화된 멀티스레드 명령어들을 실행하기 위한 방법 |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
KR102083390B1 (ko) | 2013-03-15 | 2020-03-02 | 인텔 코포레이션 | 네이티브 분산된 플래그 아키텍처를 이용하여 게스트 중앙 플래그 아키텍처를 에뮬레이션하는 방법 |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
GB2514126A (en) * | 2013-05-14 | 2014-11-19 | Ibm | Interruption of chip component managing tasks |
US20140344947A1 (en) * | 2013-05-20 | 2014-11-20 | Advanced Micro Devices, Inc. | Method and apparatus for handling storage of context information |
US9336068B2 (en) | 2013-06-07 | 2016-05-10 | Apple Inc. | Throttling of application access to resources |
US9424212B2 (en) * | 2013-06-13 | 2016-08-23 | Microsoft Technology Licensing, Llc | Operating system-managed interrupt steering in multiprocessor systems |
CN103336571B (zh) * | 2013-06-13 | 2016-02-03 | 中国科学院计算技术研究所 | 一种降低多线程程序功耗的方法及系统 |
CN109240481B (zh) * | 2013-08-28 | 2020-08-11 | 威盛电子股份有限公司 | 多核微处理器及使用其省电的方法 |
US9465432B2 (en) * | 2013-08-28 | 2016-10-11 | Via Technologies, Inc. | Multi-core synchronization mechanism |
US9792112B2 (en) | 2013-08-28 | 2017-10-17 | Via Technologies, Inc. | Propagation of microcode patches to multiple cores in multicore microprocessor |
US9471133B2 (en) | 2013-08-28 | 2016-10-18 | Via Technologies, Inc. | Service processor patch mechanism |
US9183155B2 (en) * | 2013-09-26 | 2015-11-10 | Andes Technology Corporation | Microprocessor and method for using an instruction loop cache thereof |
US9471132B2 (en) * | 2013-09-27 | 2016-10-18 | Intel Corporation | Techniques for putting platform subsystems into a lower power state in parallel |
KR102165775B1 (ko) * | 2013-10-25 | 2020-10-14 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 버스 잠금 및 변환 색인 버퍼 무효화를 수행하기 위한 방법 및 장치 |
CN103577328B (zh) * | 2013-11-20 | 2016-08-17 | 北京奇虎科技有限公司 | 一种应用的性能分析方法及装置 |
CN104571466A (zh) * | 2015-01-22 | 2015-04-29 | 宇龙计算机通信科技(深圳)有限公司 | 一种多系统终端的省电方法及装置 |
US10028225B2 (en) * | 2015-08-26 | 2018-07-17 | International Business Machines Corporation | Efficient usage of internet services on mobile devices |
CN105183123B (zh) * | 2015-09-21 | 2018-01-09 | 北京元心科技有限公司 | 一种在基于容器的多系统中进行电源管理的方法和装置 |
US9848515B1 (en) | 2016-05-27 | 2017-12-19 | Advanced Micro Devices, Inc. | Multi-compartment computing device with shared cooling device |
CN106250235A (zh) * | 2016-07-26 | 2016-12-21 | 张升泽 | 基于多内核芯片的多任务调度方法及系统 |
US10802831B2 (en) * | 2017-06-30 | 2020-10-13 | Sap Se | Managing parallel processing |
CN108306965B (zh) * | 2018-01-31 | 2021-02-02 | 上海小蚁科技有限公司 | 摄像头的数据处理方法及装置、存储介质、摄像头 |
US11675718B2 (en) * | 2021-03-26 | 2023-06-13 | Advanced Micro Devices, Inc. | Enhanced low-priority arbitration |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5758169A (en) * | 1990-12-21 | 1998-05-26 | Intel Corporation | Protocol for interrupt bus arbitration in a multi-processor system |
US5828568A (en) * | 1994-05-09 | 1998-10-27 | Canon Kabushiki Kaisha | Information processing apparatus, processing method thereof, and power supply control method therefor |
US5918057A (en) * | 1997-03-20 | 1999-06-29 | Industrial Technology Research Institute | Method and apparatus for dispatching multiple interrupt requests simultaneously |
US20010052043A1 (en) * | 1997-12-10 | 2001-12-13 | Stephen S. Pawlowski | System and apparatus including lowest priority logic to select a processor to receive an interrupt message |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4253146A (en) * | 1978-12-21 | 1981-02-24 | Burroughs Corporation | Module for coupling computer-processors |
ATE250978T1 (de) * | 1997-11-14 | 2003-10-15 | Gen Probe Inc | Arbeitsgerät zur analyse |
WO2001086415A2 (en) * | 2000-05-08 | 2001-11-15 | Transilica, Inc. | Priority in a portable thread environment |
US6986066B2 (en) * | 2001-01-05 | 2006-01-10 | International Business Machines Corporation | Computer system having low energy consumption |
US6845456B1 (en) * | 2001-05-01 | 2005-01-18 | Advanced Micro Devices, Inc. | CPU utilization measurement techniques for use in power management |
US6823413B2 (en) * | 2001-06-08 | 2004-11-23 | Oki Electronic Industry Co., Ltd. | Interrupt signal processing apparatus |
US6990593B2 (en) * | 2001-07-31 | 2006-01-24 | Hewlett-Packard Development Company, L.P. | Method for diverting power reserves and shifting activities according to activity priorities in a server cluster in the event of a power interruption |
US7213065B2 (en) * | 2001-11-08 | 2007-05-01 | Racemi, Inc. | System and method for dynamic server allocation and provisioning |
US6990320B2 (en) * | 2002-02-26 | 2006-01-24 | Motorola, Inc. | Dynamic reallocation of processing resources for redundant functionality |
US7065766B2 (en) * | 2002-07-11 | 2006-06-20 | International Business Machines Corporation | Apparatus and method for load balancing of fixed priority threads in a multiple run queue environment |
US7152169B2 (en) * | 2002-11-29 | 2006-12-19 | Intel Corporation | Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state |
US7546475B2 (en) * | 2003-05-13 | 2009-06-09 | Hewlett-Packard Development Company, L.P. | Power-aware adaptation in a data center |
-
2002
- 2002-12-26 US US10/330,622 patent/US7191349B2/en not_active Expired - Lifetime
-
2003
- 2003-12-05 CN CNB2003801073724A patent/CN100349147C/zh not_active Expired - Fee Related
- 2003-12-05 AU AU2003298903A patent/AU2003298903A1/en not_active Abandoned
- 2003-12-05 WO PCT/US2003/038612 patent/WO2004061686A2/en active Application Filing
- 2003-12-05 DE DE10393969T patent/DE10393969T5/de not_active Ceased
- 2003-12-05 GB GB0505391A patent/GB2412457B/en not_active Expired - Fee Related
- 2003-12-09 TW TW092134722A patent/TWI233545B/zh not_active IP Right Cessation
-
2005
- 2005-10-25 HK HK05109490A patent/HK1075314A1/xx not_active IP Right Cessation
-
2007
- 2007-02-09 US US11/704,760 patent/US7761720B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5758169A (en) * | 1990-12-21 | 1998-05-26 | Intel Corporation | Protocol for interrupt bus arbitration in a multi-processor system |
US5828568A (en) * | 1994-05-09 | 1998-10-27 | Canon Kabushiki Kaisha | Information processing apparatus, processing method thereof, and power supply control method therefor |
US5918057A (en) * | 1997-03-20 | 1999-06-29 | Industrial Technology Research Institute | Method and apparatus for dispatching multiple interrupt requests simultaneously |
US20010052043A1 (en) * | 1997-12-10 | 2001-12-13 | Stephen S. Pawlowski | System and apparatus including lowest priority logic to select a processor to receive an interrupt message |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101872314A (zh) * | 2009-04-24 | 2010-10-27 | 勒斯塔尔技术有限责任公司 | 用于多处理器的动态调度中断控制器 |
US8321614B2 (en) | 2009-04-24 | 2012-11-27 | Empire Technology Development Llc | Dynamic scheduling interrupt controller for multiprocessors |
CN101872314B (zh) * | 2009-04-24 | 2014-05-14 | 英派尔科技开发有限公司 | 用于多处理器的动态调度中断控制器 |
CN102567109A (zh) * | 2010-12-07 | 2012-07-11 | 苹果公司 | 中断分配方案 |
WO2022056207A1 (en) * | 2020-09-11 | 2022-03-17 | Apple Inc. | Scalable interrupts |
US11630789B2 (en) | 2020-09-11 | 2023-04-18 | Apple Inc. | Scalable interrupts |
CN116157777A (zh) * | 2020-09-11 | 2023-05-23 | 苹果公司 | 能扩展的中断 |
US11803471B2 (en) | 2021-08-23 | 2023-10-31 | Apple Inc. | Scalable system on a chip |
US11934313B2 (en) | 2021-08-23 | 2024-03-19 | Apple Inc. | Scalable system on a chip |
Also Published As
Publication number | Publication date |
---|---|
WO2004061686A2 (en) | 2004-07-22 |
GB2412457B (en) | 2006-01-25 |
HK1075314A1 (en) | 2005-12-09 |
DE10393969T5 (de) | 2008-06-26 |
CN1732447A (zh) | 2006-02-08 |
GB2412457A (en) | 2005-09-28 |
GB0505391D0 (en) | 2005-04-20 |
AU2003298903A1 (en) | 2004-07-29 |
US20070143514A1 (en) | 2007-06-21 |
US20040128563A1 (en) | 2004-07-01 |
US7191349B2 (en) | 2007-03-13 |
US7761720B2 (en) | 2010-07-20 |
TW200413889A (en) | 2004-08-01 |
TWI233545B (en) | 2005-06-01 |
WO2004061686A3 (en) | 2004-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100349147C (zh) | 最低优先级中断的处理器功率状态的知晓分配的方法、系统和装置 | |
CN101313284B (zh) | 用于提供对处理器状态转换进行检测的方法和装置 | |
CN1331065C (zh) | 用于多线程处理机功率方式转变的方法和设备 | |
US8423799B2 (en) | Managing accelerators of a computing environment | |
CN101105711B (zh) | 用于在主处理器与副处理器间分配处理功能的系统和方法 | |
US9864627B2 (en) | Power saving operating system for virtual environment | |
US8776066B2 (en) | Managing task execution on accelerators | |
US8489904B2 (en) | Allocating computing system power levels responsive to service level agreements | |
RU2436144C2 (ru) | Адаптивное управление энергопотреблением | |
US7996839B2 (en) | Heterogeneous processor core systems for improved throughput | |
US8145723B2 (en) | Complex remote update programming idiom accelerator | |
US8082315B2 (en) | Programming idiom accelerator for remote update | |
US8886919B2 (en) | Remote update programming idiom accelerator with allocated processor resources | |
CN1742249B (zh) | 多处理器计算系统及其计算组件内的电源管理方法 | |
US20110239016A1 (en) | Power Management in a Multi-Processor Computer System | |
CN101946235A (zh) | 用于在共享处理器分区环境中移动线程的方法及装置 | |
CN103597449A (zh) | 操作系统解耦的异构计算 | |
CN103443769A (zh) | 用于异构多核心系统的动态核心选择 | |
WO2008121624A1 (en) | A method to control core duty cycles using low power modes | |
US20020184290A1 (en) | Run queue optimization with hardware multithreading for affinity | |
TWI739345B (zh) | 中斷處理系統與中斷處理方法 | |
CN106020424B (zh) | 有功率效率的处理器体系结构 | |
Eibel et al. | Energy Claims at Scale: Decreasing the Energy Demand of HPC Workloads at OS Level | |
CN117555660A (zh) | 计算机系统与应用程序相容执行方法 | |
CN117539595A (zh) | 一种协同调度方法和相关设备 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071114 Termination date: 20131205 |