CN105474127B - 用于多处理器系统的虚拟每处理器定时器 - Google Patents
用于多处理器系统的虚拟每处理器定时器 Download PDFInfo
- Publication number
- CN105474127B CN105474127B CN201380077384.0A CN201380077384A CN105474127B CN 105474127 B CN105474127 B CN 105474127B CN 201380077384 A CN201380077384 A CN 201380077384A CN 105474127 B CN105474127 B CN 105474127B
- Authority
- CN
- China
- Prior art keywords
- processor
- timer
- entry
- expiration time
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- 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
- G06F9/4825—Interrupt from clock, e.g. time of day
-
- 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
一种系统提供基于诸如平台定时器之类的定时器的虚拟每处理器定时器。为了虚拟化定时器以供每个处理器独立地使用,在存储器中维护针对定时器的数据结构。数据结构具有用于使用定时器针对每个处理器所产生的每个中断的条目,其指定处理器和到期时间,其中条目按到期时间排序。如果虚拟化定时器是在电力转变期间维持上下文的平台定时器,则处理器可以在上下文丢失的电力转变时切换到虚拟每处理器定时器。
Description
技术领域
本公开的实施例一般地涉及计算机系统,并且更具体地涉及用于多处理器系统的虚拟每处理器定时器。
背景技术
在计算机系统中,处理器一般使用一个或多个定时器来管理由处理器执行的工作的前进进度。处理器设置定时器使得定时器在未来的期望时间点处生成中断。
在包括具有多个核的处理设备的多处理器计算机系统中,一般存在两种类型的定时器:每处理器定时器和平台定时器。平台定时器表示在处理器之中共享并且可以从任何处理器访问的定时器实例。每处理器定时器是主要由其相应处理器操纵的定时器实例。
从电力管理的角度来看,也存在两种类型的定时器:可以断电的定时器和总是开启的定时器。可以断电的定时器一般在存在电力转变时丢失上下文。总是开启的定时器在电力转变期间维持上下文。
当处理器断电时,诸如在处理器进入上下文丢失的空闲状态时,并非总是开启的每处理器定时器将停止。为了使处理器继续监视处于空闲状态中的系统状态,以便标识导致再次变得活跃的条件,平台、总是开启的定时器被该处理器使用以维持上下文。然而,平台定时器一般仅可以一次被一个处理器控制。因此,在多处理器系统中,当所有的处理器都进入了上下文丢失的空闲状态时,一个处理器对总是开启的平台定时器进行编程以标识导致一个或多个处理器再次变得活跃的任何条件。
发明内容
本发明内容以简化的形式引入以下在具体实施方式中进一步描述的所选概念。本发明内容不意图标识所要求保护的主题的关键或者本质特征,也不意图限制所要求保护的主题的范围。
一种系统通过虚拟化平台定时器来提供虚拟每处理器定时器。为了虚拟化要被每个处理器独立使用的平台定时器,在存储器中维护数据结构。数据结构具有用于使用平台定时器的每个处理器的条目,其指定处理器和到期时间,其中条目通过到期时间来排序。在一个实现中,每个处理器具有数据结构中的单个条目。该条目可以被标记为有效或者无效,这取决于处理器的状态以及处理器是否正在使用虚拟每处理器定时器。当处理器向虚拟化平台定时器的数据结构添加条目时,在该实现中,任何之前的条目都被取消,并且基于到期时间将新条目按序放置在数据结构中。数据结构可以受保护以防被多个处理器并发访问,诸如通过使用锁。
平台定时器可以是总是开启的定时器,并且可以因此用来在电力转变期间维持针对一个或多个处理器的上下文。使用任何其他每处理器定时器的处理器可以在电力转变处切换到虚拟每处理器定时器(通过虚拟化平台定时器而导出)。当处理器进行电力转变时,对并非总是开启的任何其他每处理器定时器断电,并且处理器开始使用虚拟每处理器定时器,使得每个处理器能够与其他处理器独立地进行电力转变。
在以下描述中,对形成其部分的附图做出参考,并且其中作为图示,示出本技术的具体示例实现。要理解的是,可以利用其他实现例,并且可以做出结构改变而不脱离本公开的范围。
附图说明
图1是利用其可以实现具有虚拟每处理器定时器的系统的示例计算机的框图。
图2是使用虚拟每处理器定时器的系统的示例实现的框图。
图3图示了在虚拟化平台定时器中所使用的数据结构的示例实现。
图4是在处理器丢失状态并且当前使用并非总是开启的每处理器定时器时转变到虚拟每处理器定时器的示例实现的流程图。
图5是装配(arm)定时器的示例实现的流程图。
图6是停止定时器的示例实现的流程图。
图7是确认来自定时器的中断的示例实现的流程图。
具体实施方式
以下章节提供其中可以实现虚拟每处理器定时器的示例操作环境。
参照图1,以下描述意图提供可以使用这样的虚拟定时器的通用计算机的简要、一般描述。计算机可以是各种各样的通用或专用计算硬件配置中的任一种。可能合适的众所周知的计算机示例包括但不限于个人计算机、服务器计算机、手持式或膝上型设备(例如,媒体播放器、笔记本计算机、蜂窝电话、个人数据助理、话音记录器、平板电脑)、多处理器系统、基于微处理器的系统、机顶盒、游戏控制台、可编程消费电子产品、网络PC、小型计算机、大型计算机、包括以上系统或设备中的任一种的分布式计算环境等等。
图1图示了合适的计算机示例。这仅仅是合适的计算机的一个示例,而不意图暗示关于这样的计算机的使用范围或功能性的任何限制。
参照图1,示例计算机100在基本配置中包括至少一个处理单元102和存储器104。计算机可以包括多个处理单元和/或附加的协处理单元,诸如图形处理单元120。取决于计算机的确切配置和类型,存储器104可以是易失性(诸如RAM)、非易失性(诸如ROM、闪速存储器等等)或二者的某种组合。该配置在图1中以虚线106图示。
此外,计算机100还可以具有附加特征/功能性。例如,计算机100还可以包括附加的存储装置(可移除和/或不可移除),包括但不限于磁盘或光盘或磁带。这样的附加存储装置在图1中由可移除存储装置108和不可移除存储装置110图示。计算机存储介质包括以用于存储诸如计算机程序指令、数据结构、程序模块、或其他数据之类的信息的任何方法或者技术实现的易失性和非易失性、可移除和不可移除介质。存储器104、可移除存储装置108和不可移除存储装置110都是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁存储设备、或可以用来存储所期望的信息并且可以由计算机100访问的任何其他介质。任何这样的计算机存储介质可以是计算机100的一部分。
计算机100还可以包含(多个)通信连接112,其允许设备通过通信介质与其他设备通信。通信介质典型地承载计算机程序指令、数据结构、程序模块、或在诸如载波之类的已调制数据信号或其他输运机制中的其他数据,并且包括任何信息递送介质。术语“已调制数据信号”意指使其特性中的一个或者多个以便于在信号中编码信息的这样的方式设置或改变从而改变信号的接收设备的配置或状态的信号。作为示例而非限制,通信介质包括有线介质(诸如有线网络或直接有线连接)以及无线介质(诸如声学、RF、红外和其他无线介质)。通信连接112是与通信介质对接以通过通信介质传送数据和从通信介质接收数据的设备,诸如网络接口。
计算机100可以具有(多个)各种输入设备114,诸如键盘、鼠标、笔、相机、触摸输入设备等等。还可以包括诸如显示器、扬声器、打印机等等之类的(多个)输出设备116。所有这些设备在本领域中都是众所周知的,并且在此不需要详细地讨论。各种输入和输出设备可以实现自然用户接口(NUI),其是使得用户能够以不受由诸如鼠标、键盘、遥控器等之类的输入设备所强加的人为约束的“自然”方式与设备交互的任何接口技术。
NUI方法的示例包括依赖于语音识别、触摸和触笔识别、在屏幕上和靠近屏幕二者的手势识别、空中手势、头部和眼睛追踪、话音和语音、视觉、触摸、手势和机器智能的那些,并且可以包括以下各项的使用:触敏显示器、话音和语音识别、意图和目标理解、使用深度相机(诸如立体相机系统、红外相机系统和其他相机系统以及这些的组合)的运动手势检测、使用加速度计或陀螺仪的运动手势检测、面部识别、三维显示、头部、眼睛和凝视追踪、沉浸式增强现实和虚拟现实系统,这些全部都提供了更自然的接口,以及用于使用电场感测电极来感测脑部活动的技术(EEG和相关方法)。
在计算机上操作的该系统的每个组件一般由软件实现,诸如一个或多个计算机程序,其包括由计算机处理的计算机可执行指令和/或计算机解释指令,诸如程序模块。一般地,程序模块包括例程、程序、对象、组件、数据结构等等,其在被处理单元处理时指令处理单元执行特定任务或实现特定抽象数据类型。该计算机系统可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质两者中。
可替换地或此外,本文描述的功能性可以至少部分地由一个或多个硬件逻辑组件执行。例如而没有限制地,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统的系统(SOC)、复杂可编程逻辑器件(CPLD)等等。
给定诸如上文描述的计算机,虚拟每处理器定时器的使用假定计算机包括多个处理器(不论是多个不同的处理设备还是多个核等等)以及其定时器。本文中的术语“处理器”的使用意图包括任何逻辑处理器,包括但不限于硬件处理器的单个实例、多个处理器之一、在多个核处理器中的“核”或者可以与其他处理单元独立地管理的任何其他处理单元。
本文描述的虚拟每处理器定时器一般由计算机上的操作系统、固件或者其他低级别软件所管理。在一个实现中,操作系统包括管理通过硬件抽象层对具体硬件资源的访问的内核。以下描述的虚拟定时器可以在这样的硬件抽象层中实现。它们还可以在硬件抽象层扩展模块中实现。可替换地,操作系统的其他组件、计算机的固件等等可以实现这样的功能性。管理虚拟每处理器定时器的计算机程序可以与在计算机上可用的全部处理器的子集相关联。
现在参照图2,现在将在说明性示例的上下文中描述这样的系统的示例实现。在图2中,存在四个处理器200、202、204和206,并且每个可以具有相应的每处理器定时器210、212、214和216。每个定时器具有可以例如取决于其相应处理器的电力状态的状态(例如,开启/关闭)。如果定时器开启,则其还可以被编程以在指定到期时间处生成中断。
还提供了平台定时器208。该平台定时器可以是总是开启的定时器,即在电力转变的事件中维持上下文的定时器。该平台定时器使用维护在存储器中的数据结构218来虚拟化。数据结构具有用于使用平台定时器的每个处理器的条目220。每个条目220指定处理器和到期时间。条目可以以在列表中按照到期时间排序的链表形式来存储。这样的数据结构的示例实现在下文更详细地描述。可以使用诸如有序数组或者可以容易地排序的其他数据结构之类的其他结构。
在针对用于处理器的条目的规定到期时间处,平台定时器生成对与该条目相关联的处理器(而不是其他处理器)的中断。给定条目的有序列表,平台定时器连续地针对对应于每个条目的最接近有效到期时间进行装配,并且在到达每个连续有效到期时间时生成对指定处理器的中断。每个中断可以经由中断控制器路由至其处理器,或者可以使用基于消息的中断瞄准处理器,或者可以使用其它已知的中断路由技术来引导到处理器。
用于虚拟化平台定时器的数据结构的示例实现在图3中示出,并且在本文中被称为定时器列表300。在该实现中,使用该虚拟化平台定时器的每个处理器具有表示其虚拟每处理器定时器的单个条目302。在图3中,示出两个这样的条目,其指示两个处理器正在使用虚拟化的平台定时器。条目指示到期时间304和相关联的处理器306。该条目可以取决于处理器的状态以及处理器是否正在使用虚拟每处理器定时器而被标记为有效或者无效,如在308处指示的。定时器列表300是这些条目302的有序列表。
这样的有序列表可以例如实现为链表,其中每个条目302还存储到列表中的在前条目和在后条目的前向指针310和后向指针312。这样的指针在条目无效时是无效的,例如为空值。表头对象314以前向指针标识列表前端处的条目,并且以其后向指针标识列表的结尾;列表前端处的条目具有指向表头对象的后向指针。如果在列表中仅存在一个条目,则表头对象的前向和后向指针两者都指向一个条目。当处理器添加条目时,在该实现中,从有序列表中移除任何在前条目。基于到期时间,通过相应地设置前向、后向和表头指针来将任何新条目按序放置在列表中。适合用于短的有序列表的诸如数组之类的任何其他数据结构可以替代于链表而使用。
定时器列表300可以诸如通过使用锁316或者类似的编程技术而受保护以防被多个处理器并发访问。作为数据结构的部分的锁316是这样的锁的仅一个可能的实现。
通过使用图2和3中示出的示例实现,可以在处理器的操作期间执行以下过程,以在使用虚拟每处理器定时器和使用任何其他每处理器定时器之间进行转变。
首先,当处理器正在使用一个或多个每处理器定时器,并且处理器丢失状态(诸如通过转变到上下文丢失的空闲状态)时,在转变到使用虚拟每处理器定时器之前针对每个每处理器定时器执行以下步骤。如果装配了定时器(即,设置有到期时间以生成中断),如在400处确定的,则虚拟每处理器定时器被装配用于相同的到期时间。特别地,定时器的到期时间记录402在用于虚拟每处理器定时器的数据结构中,并且被标记为有效。虚拟每处理器定时器可以然后被装配404用于该到期时间。然后停止406其他每处理器定时器。如果其他每处理器定时器不满足步骤400的准则,即其没有被装配,则其也可以停止406,因为没有到期时间被转移到虚拟每处理器定时器。
在实践中,可能仅存在一个每处理器定时器(即,当前系统定时器),其满足转移到虚拟每处理器定时器的准则。在数据结构300中对每个处理器的多个定时器的支持可以通过添加将每个处理器上的每个每处理器定时器与其对应的到期时间相关联的数据来提供,诸如在用于处理器的条目302中。
如果在使用虚拟每处理器定时器之后处理器转变到其中其使用其自身的每处理器定时器的状态,则存在各种各样的可能实现。例如,可以取消虚拟每处理器定时器上的未完结的到期时间。作为另一个示例,处理器可以等待其在虚拟每处理器定时器上的到期时间届满,并且然后转变到使用其他的每处理器定时器。
图5描述了装配用于处理器的虚拟每处理器定时器的过程。处理器获得500定时器列表上的锁。如果用于处理器的当前条目是有效的,如在502处确定的,则将用于处理器的当前条目从定时器的有序列表中移除504。用于当前处理器的条目被标记为有效506。该条目中的到期时间被设置508成所记录的到期时间。然后将用于当前处理器的条目通过其到期时间按序放置510在条目的有序列表中。然后,物理定时器被重新引导512,以将其中断指向具有定时器列表头处的条目的处理器。物理定时器被装配514到由定时器列表头处的条目所指示的到期时间。然后解除516在定时器列表上的锁。
图6描述了停止用于处理器的虚拟每处理器定时器的过程。处理器获得600定时器列表上的锁。将用于该处理器的条目从用于定时器列表的有序条目的列表移除602。用于该处理器的条目被设置604为无效。如果有条目剩余在定时器列表中,如在605处所确定的,则设置606物理定时器以将中断引向具有定时器列表头处的条目的处理器,并且物理定时器被装配用于该条目中的到期时间。如果在定时器列表中不存在条目,如在605处确定的,则停止609平台定时器以避免虚假中断发生。在停止或者装配具有列表头处的条目的物理定时器之后,然后解除610在定时器列表上的锁。
图7描述了由处理器确认来自虚拟每处理器定时器的中断的过程。处理器获得700定时器列表上的锁。然后将用于处理器的条目设置704为无效,并且移除有序列表中的第一条目。然后确认706来自物理定时器的中断。如果在定时器列表中的有序条目的列表不是空的,如在708处确定的,则将物理定时器重新引导710到具有有序列表头处的条目的处理器,并且物理定时器被装配用于该条目的到期时间。如果不存在剩余在定时器列表中的条目,如在708处所确定的,则平台定时器停止709,以避免虚假中断发生。在停止或者装配平台定时器之后,然后解除714定时器列表上的锁。
除了允许用于每个处理器的多个定时器的变型之外,存在用来虚拟化平台定时器以提供虚拟每处理器定时器的数据结构和过程的若干变型。一般地,数据结构标识针对要生成的每个中断的处理器和到期时间。如何操纵该数据结构以用于装配、停止和确认以及其他操作的细节取决于实现。
除了前文之外,可以在系统启动时间处执行虚拟平台定时器的选择以支持虚拟每处理器定时器。一般地,虚拟化平台定时器取决于检测平台定时器的存在。给定使用虚拟每处理器定时器的一个或多个处理器的存在,可以在与平台定时器相关联的数据结构中做出用于这些处理器的条目,以限定虚拟每处理器定时器。
本发明也不限于虚拟化平台定时器。每处理器定时器可以被其处理器虚拟化以得到多个虚拟每处理器定时器。
本发明也不限于其中每处理器定时器以其他方式可得到的系统。虚拟每处理器定时器可以在仅具有平台定时器的系统中生成,以允许不同的处理器和较高级别的软件堆栈基于平台定时器访问每处理器定时器。
如果平台定时器是总是开启的定时器,并且其他每处理器定时器不总是开启,则基于平台定时器的虚拟每处理器定时器可以用来管理电力转变。特别地,当处理器进入上下文丢失的空闲状态时,其可以将任何每处理器定时器转变成虚拟每处理器定时器。
在一些实现中,查询当前时间来计算利用其装配物理定时器的值。因此,每个装配操作可以招致与查询当前时间相关联的开销。为了管理查询的数目,条目到定时器列表中的队列的添加可以以各种各样的方式来控制。在上文指出的实现中,在数据结构中维护每处理器仅一个条目,并且保留每处理器最近添加的条目。可能的是具有每处理器多个条目。而且,如果一个或多个条目被丢弃,则在条目之间的选择可以是到期时间的函数,诸如保留最早或者最晚的到期时间。用来更新队列的特定控制策略可以是系统设置。
通过具有虚拟每处理器定时器的实现(其示例在以上描述),多个处理器可以与彼此独立地管理电力转变,但是仍然共享平台定时器。
本文所描述的前述可替换实施例中的任一个或全部可以使用在被期望以形成附加混合实施例的任何组合中。应当理解的是,在所附权利要求中限定的主题不一定限于上文描述的具体实现。上文描述的具体实现仅仅作为示例而公开。
Claims (9)
1.一种计算机,包括:
多个处理器;以及
平台定时器,其在电力转变期间维持上下文;
计算机包括计算机程序指令,当由一个处理器执行时,所述计算机程序指令将计算机配置成使得平台定时器被虚拟化,以针对多个处理器中的每个处理器,通过具有指定针对用于处理器的中断的到期时间以及要接收中断的处理器的多个处理器可用的来自平台定时器的数据结构来限定用于处理器的虚拟每处理器定时器;
其中,当所述多个处理器中使用第一每处理器定时器的第一处理器经受上下文丢失的电力转换时,所述第一处理器被配置成在其电力转变之后装配相关联的虚拟每处理器定时器以向所述第一处理器提供中断;以及
其中,通过指定来自所述平台定时器的中断的到期时间,并且在所述关联的虚拟每处理器定时器装配了所述到期时间之后停止所述第一每处理器定时器,所述关联的虚拟每处理器定时器被装配以所述第一每处理器定时器的到期时间。
2.根据权利要求1所述的计算机,所述数据结构包括一个或多个条目,每个条目指定针对中断的到期时间以及要接收中断的处理器,条目按到期时间排序。
3.根据权利要求2所述的计算机,其中数据结构是定时器列表,包括用于每个处理器的条目,其中如果处理器正在使用虚拟每处理器定时器,则条目是有效的,并且如果处理器未在使用虚拟每处理器定时器,则条目是无效的,以及按到期时间排序的有效条目的队列。
4.根据权利要求3所述的计算机,其中计算机程序指令配置计算机以通过将用于处理器的条目设置为有效的并且设置条目的到期时间来装配平台定时器。
5.根据权利要求3所述的计算机,其中计算机程序指令配置计算机以通过将用于处理器的条目设置为无效的来停止用于给定处理器的虚拟每处理器定时器,并且如果有效条目剩余在定时器列表中则重新装配平台定时器。
6.根据权利要求3所述的计算机,其中计算机程序指令配置计算机以确认来自平台定时器的中断。
7.一种制造品,包括:
计算机存储介质;
存储在计算机存储介质上的计算机程序指令,当由计算机中的处理器处理时,所述计算机程序指令将计算机配置成包括以下各项,计算机具有多个处理器:
平台定时器,其在电力转变期间维持上下文,其中定时器被虚拟化,以针对多个处理器中的每个处理器,通过具有指定针对用于处理器的中断的到期时间以及要接收中断的处理器的多个处理器可用的来自平台定时器的数据结构来限定用于处理器的虚拟每处理器定时器;
其中,当所述多个处理器中使用第一每处理器定时器的第一处理器经受上下文丢失的电力转换时,所述第一处理器被配置成在其电力转变之后装配相关联的虚拟每处理器定时器以向所述第一处理器提供中断;以及
其中,通过指定来自所述平台定时器的中断的到期时间,并且在所述关联的虚拟每处理器定时器装配了所述到期时间之后停止所述第一每处理器定时器,所述关联的虚拟每处理器定时器被装配以所述第一每处理器定时器的到期时间。
8.一种用于具有多个处理器和在电力转变期间维持上下文平台的定时器的计算机的计算机实现的过程,所述过程包括:
限定指定来自平台定时器的针对用于处理器的中断的到期时间以及要接收中断的处理器的数据结构;
使数据结构作为虚拟每处理器定时器可用于多个处理器的每个处理器;
所述多个处理器中使用第一每处理器定时器并且经受上下文丢失的电力转换的第一处理器通过指定来自所述平台定时器的中断的到期时间来装配其关联的虚拟每处理器定时器,所述到期时间是第一每处理器定时器的到期时间;
其中,在所述虚拟每处理器定时器装配以所述到期时间之后停止所述第一每处理器定时器;以及
定时器平台在到期时间处生成对所述第一处理器的中断。
9.根据权利要求8所述的过程,所述数据结构包括一个或多个条目,每个条目指定针对中断的到期时间以及要接收中断的处理器,条目按到期时间排序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/916,621 US10534421B2 (en) | 2013-06-13 | 2013-06-13 | Virtual per-processor timers for multiprocessor systems |
US13/916621 | 2013-06-13 | ||
PCT/US2013/060242 WO2014200520A1 (en) | 2013-06-13 | 2013-09-18 | Virtual per processor timers for multiprocessor systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105474127A CN105474127A (zh) | 2016-04-06 |
CN105474127B true CN105474127B (zh) | 2018-12-11 |
Family
ID=49447795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380077384.0A Active CN105474127B (zh) | 2013-06-13 | 2013-09-18 | 用于多处理器系统的虚拟每处理器定时器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10534421B2 (zh) |
EP (1) | EP3008544B1 (zh) |
CN (1) | CN105474127B (zh) |
BR (1) | BR112015030435A8 (zh) |
ES (1) | ES2757173T3 (zh) |
WO (1) | WO2014200520A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9703951B2 (en) | 2014-09-30 | 2017-07-11 | Amazon Technologies, Inc. | Allocation of shared system resources |
US9754103B1 (en) | 2014-10-08 | 2017-09-05 | Amazon Technologies, Inc. | Micro-architecturally delayed timer |
US9378363B1 (en) * | 2014-10-08 | 2016-06-28 | Amazon Technologies, Inc. | Noise injected virtual timer |
US9864636B1 (en) | 2014-12-10 | 2018-01-09 | Amazon Technologies, Inc. | Allocating processor resources based on a service-level agreement |
US9491112B1 (en) | 2014-12-10 | 2016-11-08 | Amazon Technologies, Inc. | Allocating processor resources based on a task identifier |
CN105700961B (zh) | 2016-02-29 | 2019-03-08 | 华为技术有限公司 | 业务容器创建方法及装置 |
US10664311B1 (en) * | 2017-01-31 | 2020-05-26 | Parallels International Gmbh | Timer object management for a multiprocessor virtual environment |
US10496572B1 (en) | 2017-03-06 | 2019-12-03 | Apple Inc. | Intracluster and intercluster interprocessor interrupts including a retract interrupt that causes a previous interrupt to be canceled |
CN109952560B (zh) * | 2017-10-20 | 2022-12-23 | 深圳市汇顶科技股份有限公司 | 虚拟定时器的定时方法及其装置、电子装置 |
CN108376059B (zh) * | 2018-02-12 | 2021-06-25 | 山东师范大学 | 一种通用计算机语音开机唤醒装置 |
CN112559117B (zh) * | 2019-09-25 | 2024-06-07 | 阿里巴巴集团控股有限公司 | 定时器处理方法、装置、电子设备及计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216786A (zh) * | 2007-01-05 | 2008-07-09 | 三星电子株式会社 | 在实时操作系统中调度任务的方法、介质和设备 |
CN101299193A (zh) * | 2008-04-07 | 2008-11-05 | 谢维信 | 一种提高计算机内核定时器控制精度的方法 |
JP2012113558A (ja) * | 2010-11-25 | 2012-06-14 | Panasonic Corp | 割込み制御装置、割込み制御方法及び集積回路 |
CN102541630A (zh) * | 2010-12-02 | 2012-07-04 | 国际商业机器公司 | 计算机处理器中线程间数据通信的方法和系统 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5659720A (en) * | 1995-04-27 | 1997-08-19 | Emulex Corporatioln | Computer control device for managing a timer array |
US6205509B1 (en) * | 1999-07-15 | 2001-03-20 | 3Com Corporation | Method for improving interrupt response time |
US7328294B2 (en) * | 2001-12-03 | 2008-02-05 | Sun Microsystems, Inc. | Methods and apparatus for distributing interrupts |
EP1658563B1 (en) | 2003-08-28 | 2013-06-05 | MIPS Technologies, Inc. | Apparatus, and method for initiation of concurrent instruction streams in a multithreading microprocessor |
US7574709B2 (en) | 2004-04-30 | 2009-08-11 | Microsoft Corporation | VEX-virtual extension framework |
US7461173B2 (en) * | 2004-06-30 | 2008-12-02 | Intel Corporation | Distributing timers across processors |
US7383460B2 (en) | 2005-03-25 | 2008-06-03 | Microsoft Corporation | Method and system for configuring a timer |
US7434003B2 (en) | 2005-11-15 | 2008-10-07 | Microsoft Corporation | Efficient operating system operation on a hypervisor |
US7886177B2 (en) * | 2006-12-27 | 2011-02-08 | Intel Corporation | Method and apparatus of collecting timer ticks |
JP2008171293A (ja) * | 2007-01-15 | 2008-07-24 | Hitachi Ltd | 仮想計算機システムのスケジューリング方法 |
US7941688B2 (en) * | 2008-04-09 | 2011-05-10 | Microsoft Corporation | Managing timers in a multiprocessor environment |
US8688964B2 (en) * | 2009-07-20 | 2014-04-01 | Microchip Technology Incorporated | Programmable exception processing latency |
JP5388909B2 (ja) * | 2010-03-09 | 2014-01-15 | 株式会社日立製作所 | ハイパバイザ、計算機システム、及び、仮想プロセッサのスケジューリング方法 |
JP5308383B2 (ja) * | 2010-03-18 | 2013-10-09 | パナソニック株式会社 | 仮想マルチプロセッサシステム |
US8959270B2 (en) | 2010-12-07 | 2015-02-17 | Apple Inc. | Interrupt distribution scheme |
US9183030B2 (en) | 2011-04-27 | 2015-11-10 | Microsoft Technology Licensing, Llc | Virtual processor allocation techniques |
US9208113B2 (en) * | 2013-01-15 | 2015-12-08 | Apple Inc. | Deferred inter-processor interrupts |
US9280388B2 (en) * | 2013-01-22 | 2016-03-08 | Oracle International Corporation | Method and apparatus for efficient scheduling of multithreaded programs |
-
2013
- 2013-06-13 US US13/916,621 patent/US10534421B2/en active Active
- 2013-09-18 EP EP13779651.2A patent/EP3008544B1/en active Active
- 2013-09-18 WO PCT/US2013/060242 patent/WO2014200520A1/en active Application Filing
- 2013-09-18 BR BR112015030435A patent/BR112015030435A8/pt not_active Application Discontinuation
- 2013-09-18 CN CN201380077384.0A patent/CN105474127B/zh active Active
- 2013-09-18 ES ES13779651T patent/ES2757173T3/es active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216786A (zh) * | 2007-01-05 | 2008-07-09 | 三星电子株式会社 | 在实时操作系统中调度任务的方法、介质和设备 |
CN101299193A (zh) * | 2008-04-07 | 2008-11-05 | 谢维信 | 一种提高计算机内核定时器控制精度的方法 |
JP2012113558A (ja) * | 2010-11-25 | 2012-06-14 | Panasonic Corp | 割込み制御装置、割込み制御方法及び集積回路 |
CN102541630A (zh) * | 2010-12-02 | 2012-07-04 | 国际商业机器公司 | 计算机处理器中线程间数据通信的方法和系统 |
Non-Patent Citations (1)
Title |
---|
Getting maximum mileage out of tickless;Suresh Siddha;《URL:http : //www. cs. columbi a.edu/ " nahum/w6998/papers/ol s2007v2-ti ckless.pdf》;20071231;第201页第5行至第206页第48行 * |
Also Published As
Publication number | Publication date |
---|---|
US10534421B2 (en) | 2020-01-14 |
EP3008544B1 (en) | 2019-10-23 |
ES2757173T3 (es) | 2020-04-28 |
BR112015030435A2 (pt) | 2017-07-25 |
CN105474127A (zh) | 2016-04-06 |
EP3008544A1 (en) | 2016-04-20 |
WO2014200520A1 (en) | 2014-12-18 |
BR112015030435A8 (pt) | 2019-12-24 |
US20140372786A1 (en) | 2014-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105474127B (zh) | 用于多处理器系统的虚拟每处理器定时器 | |
EP3533046B1 (en) | Performing virtual reality input | |
CN106575243A (zh) | 管理程序托管的虚拟机取证 | |
CA2963609A1 (en) | System and methods for generating interactive virtual environments | |
CN109597677A (zh) | 用于处理信息的方法和装置 | |
CN104303156A (zh) | 监测移动多处理器平台中的行为特征 | |
CN108633309A (zh) | 协同程序的编译器优化 | |
CN114244595B (zh) | 权限信息的获取方法、装置、计算机设备及存储介质 | |
CN108874506A (zh) | 虚拟机直通设备的热迁移方法和装置 | |
CN106575264A (zh) | 异构共享虚拟存储器中的按需共享性转换 | |
CN106066812B (zh) | 用于管理计算资源的方法和系统 | |
CN107967180B (zh) | 基于numa虚拟化环境下资源全局亲和度网络优化方法和系统 | |
CN108139931A (zh) | 通过重映射同步来加速任务子图 | |
KR20200137001A (ko) | 가상 애완동물의 정보 디스플레이 방법, 장치, 단말기, 서버, 기록 매체, 및 시스템 | |
CN104067215B (zh) | 呈现数据驱动表单 | |
CN103077070B (zh) | 云计算管理系统以及云计算系统的管理方法 | |
CN108701058A (zh) | 虚拟化传感器 | |
CN106462329A (zh) | 轻解除管理器 | |
CN102982440A (zh) | 聚集和呈现任务 | |
CN105378668B (zh) | 多处理器系统中的操作系统管理的中断引导 | |
CN109416644A (zh) | 用于虚拟机实时迁移的系统和方法 | |
US20160364831A1 (en) | Remote translation, aggregation and distribution of computer program resources in graphics processing unit emulation | |
CN105393218B (zh) | 用来重构可编程电路的方法、设备以及系统 | |
CN107343041A (zh) | 一种基于云计算的精准扶贫管理系统与方法 | |
CN109766098A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |