CN102667725A - 用于媒体处理的硬件虚拟化 - Google Patents
用于媒体处理的硬件虚拟化 Download PDFInfo
- Publication number
- CN102667725A CN102667725A CN2011800050236A CN201180005023A CN102667725A CN 102667725 A CN102667725 A CN 102667725A CN 2011800050236 A CN2011800050236 A CN 2011800050236A CN 201180005023 A CN201180005023 A CN 201180005023A CN 102667725 A CN102667725 A CN 102667725A
- Authority
- CN
- China
- Prior art keywords
- operator scheme
- cpu
- virtual
- real
- treating apparatus
- 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.)
- Granted
Links
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
-
- 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
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- 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/461—Saving or restoring of program or task context
-
- 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
-
- 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
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
Abstract
公开了用于实施虚拟处理器的方法和系统。例如,在一个实施例中,配置成充当多个虚拟处理器的处理装置包括:第一虚拟程序空间,包括第一程序执行存储器,第一程序执行存储器包括用于运行能够支持一个或者多个非实时应用的非实时操作系统的代码;第二虚拟程序空间,包括第二程序执行存储器,第二程序执行存储器包括用于运行一个或者多个实时进程的代码;以及中央处理单元(CPU),配置成在第一操作模式和第二操作模式中操作,CPU被配置成将第一虚拟程序空间用于第一操作模式来执行操作系统和应用活动,而不使用第二虚拟程序空间,并且不明显干扰在第二操作模式中运行的一个或者多个实时进程。
Description
引用结合
本申请要求对通过整体引用而结合于此的、于2010年1月13日提交的、标题为“HARDWARE VIRTUALIZATION FOR VoIPMEDIA PROCESSING”的第61/294,711号美国临时申请的优先权。
技术领域
本申请涉及用于实施虚拟处理器的方法和系统。
背景技术
这里提供的背景描述是出于总体上呈现公开内容的上下文的目的。当前指名的发明人的工作在背景技术部分中描述该工作的程度上以及在递交时不以其他方式属于现有技术的描述的方面,既不明示也不暗示地被承认为相对于本公开内容的现有技术。
现在在实际上每件现代消费者电子装置中都存在基于计算机的处理系统。例如,住宅网关经常除了多种其它电子硬件之外还包括两个或者三个单独处理器并且每个处理器执行单独功能。举例而言,电信设备(诸如网关)中的第一处理器可以仅用于处理流媒体(诸如IP语音、IP电视或者IP视频),而电信设备中的第二处理器可以用来执行多种应用,诸如服务于流媒体乃至其它应用(如提供交互游戏和日历)。如这里所用,术语“处理器”可以指代个别设备以及在多核处理器设备中的多个处理器之一。
虽然由多个处理器提供的处理器稳定性可能是希望的,但是使用多个处理器带来大量成本。通常避免常规单处理器解决方案,这些解决方在理论上配置成在软件层中支持实时媒体处理和多种其它应用两者,因为在常规实现方式中,如果“小故障(glitch)”出现于同时运行的应用程序中或者如果需要软件更新,则不能适当保护实时媒体处理。
发明内容
以下更具体地描述本发明的各种方面和实施例。
在一个实施例中,一种配置成充当多个虚拟处理器的处理装置包括:第一虚拟程序空间,包括第一程序执行存储器,第一程序执行存储器包括用于运行能够支持一个或者多个非实时应用的非实时操作系统的代码;第二虚拟程序空间,包括第二程序执行存储器,第二程序执行存储器包括用于运行一个或者多个实时进程的代码;以及中央处理单元(CPU),配置成在第一操作模式和第二操作模式中操作,CPU被配置成将第一虚拟程序空间用于第一操作模式来执行操作系统和应用活动而不使用第二虚拟程序空间并且不明显干扰在第二操作模式中运行的一个或者多个实时进程。
在另一实施例中,一种用于在单个中央处理单元(CPU)上执行多个虚拟处理器的方法包括:限定包括第一程序执行存储器的第一虚拟程序空间,第一程序执行存储器被配置成运行能够支持一个或者多个非实时应用的非实时操作系统;限定包括第二程序执行存储器的第二虚拟程序空间,第二程序执行存储器被配置成运行一个或者多个实时进程;以及切换CPU以便在第一操作模式与第二操作模式之间交替,由此在第一操作模式期间CPU从第一虚拟程序空间操作,从而使得在第一操作模式期间出现的任何操作活动不明显干扰在第二操作模式期间执行的实时进程。
附图说明
将参照以下附图详细描述作为示例提出的本公开内容的各种实施例,在附图中相似标号引用相似要素,并且在附图中:
图1描绘了能够作为两个单独虚拟处理器工作的处理系统。
图2描绘了图1的CPU的细节。
图3描绘了用于实施图1的两个虚拟处理器的时序图。
图4是概括了用于使用单个处理器来执行多个虚拟处理器的所公开的方法和系统的操作的流程图。
具体实施方式
可以一般性地以及在具体示例和/或具体实施例方面描述以下公开的方法和系统。例如,当引用详细示例和/或实施例时,注意所描述的任何基本原理除非另有明示则将如本领域普通技术人员理解的那样并不限于单个实施例,而是可以被扩展用于与这里描述的任何其它方法和系统一起使用。
下文描述一种具有单个中央处理单元(CPU)的处理系统,该CPU被配置成充当两个独立虚拟处理器:在一个实施例中,一个虚拟处理器被配置成使用操作系统来运行通用应用;另一虚拟处理器被配置成以可靠方式执行实时处理。下文描述的方法和系统的一个特别优点在于:不同于已知操作系统的表面上的多处理(例如,软件层中的不同窗口运行不同的应用),下文描述的虚拟处理器的实施例被设计成利用不同硬件线程并且由此允许一个虚拟处理器无论另一虚拟处理器的任何可能的故障如何都执行时间关键操作。因此,在一个实施例中,虽然使用单个CPU,但是一个虚拟处理器即使在另一虚拟处理器经历可能需要重新引导来解决的“崩溃”时仍然可靠地执行各种实时关键处理操作而没有中断。
图1描绘了根据一个实施例的配置成作为两个单独虚拟处理器工作的处理装置100。如图1中所示,处理装置100包括CPU 110、存储器管理单元(MMU)112、中断控制电路114、定时器电路116、第一虚拟程序空间120和第二虚拟程序空间130。第一虚拟程序空间120和第二虚拟程序空间130是在CPU 110可用的总存储器空间111中限定的单独空间。
在一个实施例中,第一虚拟程序空间120包括第一程序执行存储器122、第一存储存储器124和耦合到任何数目的诸如键区、显示器、扬声器等各种外设的一组第一输入/输出电路126。第一程序执行存储器122包括用于运行能够支持多个应用(诸如无需精确响应时间的人类交互应用(例如,键区录入和显示))的非实时操作系统(OS)的代码。第一存储存储器124包括任何数目和类型的能够写入并且从其读取的存储器(诸如易失性和非易失性随机存取存储器(RAM)),以便支持第一程序执行存储器122中驻留的OS和应用。
在一个实施例中,第二虚拟程序空间130包括第二程序执行存储器132、第二存储存储器134和耦合到任何数目的诸如以时分复用(TDM)方式发送和接收基于无线媒体的分组的端口、T1/E1数据接口、以太网接口等各种通信/媒体外设的一组第二输入/输出电路136。
第二程序存储器132包括写入于其上的配置成运行能够及时处理传入和传出媒体的多个实时进程的代码。例如,在一个实施例中,第二程序存储器132包括用于网际协议语音(VoIP)处理的代码和/或用于任何数目的语音编码解码器、DTMF中继支持、分组丢失隐藏、回波取消、语音活动检测、舒适噪声生成、通用多音生成和/或检测、主叫ID生成和/或检测、语音混合以及传真生成和解码的代码。与第一存储存储器124相似,第二存储存储器134包括任何数目和类型的能够写入和读取的存储器以便支持实时进程。
出于本公开内容的目的,注意将存储器122、124、132和134描绘为逻辑上不同的实体,然而,在一个实施例中,它们在物理上组合于单个存储器单元中。例如,在一个特定实施例中,第一存储存储器124和第二存储存储器134作为单个RAM的两个单独部分存在,而第一程序执行存储器122和第二程序执行存储器132作为另一单个存储器设备(诸如只读存储器(ROM))的单独部分存在。备选地,在另一实施例中,所有四个存储器122、124、132和134作为单个存储器设备的不同部分或者作为并入集成电路中的不同存储器段存在。
一般而言,只要第一操作空间的OS和应用无法“明显干扰”第二操作空间130的实时进程的执行,则在第一操作空间120与第二操作空间130之间的资源重叠是可能的。例如,第一程序执行存储器122和第二程序执行存储器132可以共享共同代码段(例如,嵌入于ROM中的基本输入/输出系统(BIOS))以免代码重复,只要这样的共享未导致明显干扰第二操作空间130的实时进程的执行。另外,可以在操作空间120与130之间共享某些存储器资源(诸如对于代码执行(除了性能增强之外)而言透明的高速缓存存储器)而不在本公开内容的上下文内视为其明显干扰第二操作空间130的实时进程的执行。
在操作中,处理装置100执行硬件初始化过程(诸如上电重新引导),从而使得所有设备110-136设置成预定义或者初始状态。
在操作中,CPU 110初始化中断控制电路114、定时器电路116和第二虚拟程序空间130的该组第二输入/输出电路136。中断控制电路114和定时器电路116的一些部分或者全部被视为第二虚拟程序空间130的部分。在各种实施例中,MMU 112、中断控制电路114、定时器电路116并且可能该组第二输入/输出电路136的某部分是未受到编程的“固定”设备,从而使得CPU对它们的行为仅有很有限的影响或者无影响。在这样的实施例中,第二虚拟程序空间120的初始化是例如限于将第二存储存储器134中的环形缓冲器或者指针归零的很有限的任务。
MMU 112是负责处理由CPU 110请求的对存储器和外围设备的访问的硬件部件。它的功能包括将虚拟地址转译成物理地址(即虚拟存储器管理)、存储器保护、高速缓存控制和总线仲裁。本MMU112被配置成每当存储器保护违反出现时就生成中断或者标志。
中断控制电路114是如下设备,该设备用来将若干中断源组合到一个或者多个CPU可访问线路上,同时允许向它的中断输出分配优先级级别。本中断控制电路114有能力向CPU 110呈现不可屏蔽、高优先级中断(诸如指示TDM帧边界的中断)以及多个更低优先级的中断。
定时器电路116是用来定期生成中断的计数器,这些中断可以是高优先级、不可屏蔽和/或更低优先级的。
在一个实施例中,CPU 110还初始化第一虚拟程序空间120的该组第一输入/输出电路126、继而初始化第一程序执行存储器的OS和诸如涉及更新服务应用的应用等任何具体标识的应用。
在图1的实施例中,中断控制电路114包括CPU 110无法普通屏蔽(直接或者间接)的“高优先级”中断。因此,在初始化之后,这样的不可屏蔽、高优先级中断迫使CPU 110从使用第一虚拟程序空间120的资源的第一(非实时)操作模式向使用第二虚拟程序空间130的资源的第二(实时)操作模式切换。使用适当中断返回命令来实现从第二操作模式向第一操作模式往回切换。因此,可以维持两个“虚拟”处理器。不可屏蔽、高优先级中断的示例包括由基于Intel 8086的处理器共用的不可屏蔽中断(NMI)线路和ARM处理器共用的快速中断(FIQ)线路。
在各种实施例中,希望保证在一个虚拟处理器中出现的任何活动(例如,故障)不引起对另一虚拟处理器的明显干扰。为了实现这一点,MMU 112被配置成阻止从第一操作空间120操作的软件以可能有害方式影响第二操作空间130的存储器和任何设备。例如,使用MMU 112,适当地通知CPU 110在执行来自第一虚拟程序空间120的OS和/或任何应用的代码时(即在第一操作模式中时)不访问或者以别的方式更改第二存储存储器134或者第二输入/输出电路136。类似地,在一个实施例中,使用MMU 112以使CPU 110在第二操作模式中时不访问或者以别的方式更改第一存储存储器124或者第一输入/输出电路126是有用的。通过保证在第一虚拟程序空间120与第二虚拟程序空间130之间的资源的独占性(或者至少确保无干扰),有效地防止了在一个操作模式中出现的可能明显影响另一操作模式的活动——尤其是故障。
为了进一步保证一个虚拟处理器不明显干扰另一虚拟处理器的操作,在一个实施例中,响应于激活高优先级中断,存储CPU 110的操作状态,从而使得在CPU在第二操作模式中操作时保留第一操作模式的CPU操作状态。通过向位于第二存储存储器上的软件栈上“压入”操作状态来保留这样的操作状态,并且通过从软件栈向适当CPU寄存器中往回“拉取”存储的数据来重建这些操作状态。备选地,向CPU 110内构建的特殊存储存储器中存储这样的状态。
图2示出了根据公开内容的一个实施例的图1的CPU 100的如下部分,该部分包括状态标志寄存器210、一组数据寄存器212、一组地址指针214和程序计数器216。尽管所示寄存器210-216通常存在于多数CPU类型(包括处理器的ARM线路)中,但是注意,图2的所示寄存器/操作状态210-216并非穷举在中断设置中存储和取回中有用的操作状态的类型和数目。如图2所示,各种寄存器210-216的值响应于CPU 110接收触发高级别中断的某一信号,存储于专用存储单元220-226中。也如图2所示,各种寄存器210-216的值可以响应于从高级别中断返回,借助它们的相应专用存储单元220-226来重新存储。因而,在CPU服务于高优先级中断并且从高优先级中断返回时保留关键操作状态。
与保留第一操作模式的操作状态一样,在一个实施例中,CPU被配置成在向第一操作模式转变时存储第二操作模式的各种操作状态,从而使得响应于在CPU处接收下一高级别中断,快速重建这样的操作状态。
对于中断驱动的系统,存在用于触发中断或者中断流的多个有用方案。例如,在其中按照规律或者不规律间隔接收媒体分组流的一个实施例中,某一形式的信号标(semaphore)(诸如离开该组第二输入/输出电路136的FLAG信号)用来在中断控制电路114触发高优先级中断。这样的中断方案允许在“按需”基础上适当实时处理媒体分组。
在另一实施例中,定时电路(诸如图1的定时器电路116)用来定期触发高优先级中断。假设定时器电路116的周期充分,则在服务于高优先级中断时的那些时段期间适当处理媒体分组而无故障。
在一个实施例中,定时器电路116被配置成按照比向处理装置100发送或者由处理装置100接收媒体分组的间隔更少的间隔定期触发高优先级中断。在一个实施例中,当第二虚拟程序空间130的实时进程被适当配置成在多个时隙之上处理媒体分组时,在第一虚拟程序空间120中执行的应用以明显减少的延时执行。
参照图3,该图是如下适当中断方案的时序图300,在该方案中,图1的处理装置100在它的第一操作模式与它的第二操作模式之间切换。在图3的示例中,按照十毫秒每分组的速率在时分复用(TDM)方案中发送和接收媒体分组(未示出)。然而,中断被设置成每两毫秒出现,其中注意第二操作模式时隙的确切持续时间和频率动态可调以考虑媒体分组的服务质量(QoS)要求。因此,CPU(诸如图1的CPU 110)的处理带宽被划分成第一(非实时)操作模式(O.M.)的一组第一帧/时隙310和第二(实时)O.M.的一组第二帧/时隙320。通过使用这样的处理带宽布置,不仅建立第一虚拟处理器和第二虚拟处理器,而且减少在第一操作模式期间运行的应用的延时。例如,如果时序分辨率从八毫秒提高至两毫秒,则在第一操作模式期间运行的支持在线游戏的家用网关应用可以示出明显的主观性能提高。
图4是示出了根据公开内容的一个实施例的使用单个CPU来操作多个虚拟处理器的流程图。也就是说,图4的流程图示出了一种用于单个处理器上的多线程的硬件虚拟化(如与使用多个处理器的多线程或者在单个处理器上的软件多任务相比)的方法。尽管为了便利而将下文描述的步骤描述为按照特定顺序出现,但是注意,各种操作的顺序可以随实施例改变。还注意,各种操作可以同时出现或者可以使其以重叠方式出现。
该过程始于S402,其中执行如下处理装置的硬件重置,该装置具有单个CPU和两个单独操作空间——第一(实时)操作空间和第二(非实时)操作空间。接着,在步骤S404中,初始化用于实时处理的第二操作空间。如上文讨论的那样,初始化可以涉及到初始化存储存储器、输入/输出电路、定时电路和中断控制电路。当输入/输出电路、定时电路和中断控制电路可由CPU编程时,定时电路和/或中断电路被配置成响应于接收媒体分组生成不可屏蔽、高优先级中断或者根据某一周期按照(可选地)比接收的媒体分组的间隔更少的间隔生成中断。然而,由于输入/输出电路、定时电路和中断控制电路在某些其它实施例中不可更改,所以CPU不可能初始化这样的设备并且高优先级中断的生成保持为硬件架构的功能。控制继续步骤S406。
在步骤S406中,初始化用于非实时程序空间的操作空间。如上文讨论的那样,在一个实施例中,这样的初始化包括初始化硬件(诸如存储器和输入/输出电路)以及初始化操作系统和待在操作系统上运行的各种应用。控制继续步骤S410。
在步骤S410中,进行关于是否已经生成了高优先级中断的确定。如上文讨论的那样,这样的高优先级中断用来使CPU能够在第一操作模式(其中运行步骤S406的操作系统和相应应用)与第二操作模式(其中运行步骤S404的实时进程)之间切换。当已经生成了高优先级中断时,控制向步骤S412跳转;否则,控制向步骤S422跳转。
在步骤S412中,响应于高优先级中断,执行步骤S404的实时进程而又保护其免受在其它步骤中执行的操作系统或者任何非实时应用的影响。如上文讨论的那样,在各种实施例中,这样的实时进程也被配置成以减少在步骤S406中初始化的至少一个应用的延时的方式在多个时隙之上处理流媒体分组。接着,在步骤S414中,执行从第二操作模式向第一操作模式的返回。控制继而向步骤S410返回,其中接收更多中断并且针对每个中断进行对接收的中断是否为高优先级中断的确定。
在步骤S422中,当确定接收的中断不是高优先级中断时,执行步骤S406中初始化的非实时应用以及支持OS功能。同样,如上文讨论的那样,并入某一形式的硬件保护(诸如图1的MMU 112)以防止OS和/或非实时应用例如通过不经意地更改实时进程使用的存储器或者输入/输出电路来干扰步骤S412的实时进程是有用的。接着,在步骤S430中,进行关于故障是否已经出现于操作系统或者应用之一中的确定。故障的一些示例例如包括来自MMU的如下指示,该指示表明已经进行了对访问无效存储器位置或者资源的尝试或者已经从事了并且随后通过使用看门狗计时器标识了无穷软件循环。如果故障已经出现,则控制继续步骤S432;否则,控制向步骤S410往回跳转。
在步骤S432中,对与步骤S406相关联的硬件执行软件重新引导操作,并且控制向步骤S406往回跳转,其中重新初始化操作系统和相应应用。由于软件重新引导操作无需使用高优先级中断,所以将理解软件引导操作将仅影响CPU在第一操作模式期间正常可访问的那些设备和存储器空间,并且因此第二操作模式的实时进程将保持不受影响。
尽管已经结合本发明的作为示例提出的具体实施例描述本发明,但是清楚的是,许多备选、修改和变化对本领域技术人员而言将是明显的。因而,如这里阐述的本发明的实施例旨在于示例而非限制。存在在不脱离本发明的范围的情况下可以做出的改变。
Claims (20)
1.一种处理装置,配置成充当多个虚拟处理器,包括:
第一虚拟程序空间,包括第一程序执行存储器,所述第一程序执行存储器包括用于运行能够支持一个或者多个非实时应用的非实时操作系统的代码;
第二虚拟程序空间,包括第二程序执行存储器,所述第二程序执行存储器包括用于运行一个或者多个实时进程的代码;以及
中央处理单元(CPU),配置成在第一操作模式和第二操作模式中操作,所述CPU被配置成将所述第一虚拟程序空间用于所述第一操作模式来执行操作系统和应用活动,而不使用所述第二虚拟程序空间,并且不明显干扰在所述第二操作模式中运行的所述一个或者多个实时进程。
2.根据权利要求1所述的处理装置,其中所述第二虚拟程序空间还包括第二存储存储器。
3.根据权利要求2所述的处理装置,还包括:访问电路,配置成防止所述第一操作模式的操作系统和任何应用中的至少一项修改所述第二存储存储器。
4.根据权利要求1所述的处理装置,其中所述第二虚拟程序空间还包括一组第二输入/输出电路。
5.根据权利要求4所述的处理装置,还包括:访问电路,配置成防止所述第一操作模式的操作系统和任何应用中的至少一项修改所述一组第二输入/输出电路。
6.根据权利要求1所述的处理装置,还包括:中断控制电路,配置成生成使所述CPU从所述第一操作模式向所述第二操作模式切换的不可屏蔽、高优先级中断。
7.根据权利要求6所述的处理装置,还包括:第一状态存储存储器,响应于激活高优先级中断,存储所述CPU的操作状态,从而使得在所述CPU在所述第二操作模式中操作时保留所述第一操作模式的CPU操作状态。
8.根据权利要求6所述的处理装置,还包括:第二状态存储存储器,在所述CPU在所述第一操作模式中操作时存储所述第二操作模式的CPU操作状态。
9.根据权利要求6所述的处理装置,其中在所述第二操作模式期间,所述CPU被编程为支持网际协议语音(VoIP)媒体处理。
10.根据权利要求1所述的处理装置,其中所述第二虚拟程序空间还包括配置成响应于接收媒体分组,触发所述高优先级中断的一组第二输入/输出电路。
11.根据权利要求10所述的处理装置,还包括配置成定期触发所述高优先级中断的定时器电路,其中所述定时器电路被配置成按照比由所述处理装置接收的媒体分组的间隔更少的间隔定期触发所述高优先级中断,并且所述一个或者多个实时进程被配置成以减少在所述第一虚拟程序空间中执行的至少一个应用的延时的方式,在多个时隙之上处理媒体分组。
12.根据权利要求11所述的处理装置,其中所述多个时隙的持续时间和频率中的至少一项动态可调,以考虑所述媒体分组的服务质量(QoS)要求。
13.一种用于在单个中央处理单元(CPU)上执行多个虚拟处理器的方法,包括:
限定包括第一程序执行存储器的第一虚拟程序空间,所述第一程序执行存储器被配置成运行能够支持一个或者多个非实时应用的非实时操作系统;
限定包括第二程序执行存储器的第二虚拟程序空间,所述第二程序执行存储器被配置成运行一个或者多个实时进程;以及
切换所述CPU以便在第一操作模式与第二操作模式之间交替,由此在所述第一操作模式期间所述CPU从所述第一虚拟程序空间操作,从而使得在所述第一操作模式期间出现的任何操作活动不明显干扰在所述第二操作模式中执行的实时进程。
14.根据权利要求13所述的方法,其中限定所述第二虚拟程序空间包括限定第二存储存储器作为所述第二虚拟程序空间的部分,并且阻止所述第一操作模式的操作系统和所有应用修改所述第二存储存储器。
15.根据权利要求14所述的方法,其中限定所述第二虚拟程序空间包括限定一组第二输入/输出电路作为所述第二虚拟程序空间的部分,并且阻止所述第一操作模式的操作系统和所有应用修改所述一组第二输入/输出电路。
16.根据权利要求15所述的方法,还包括在所述第一操作模式中时生成不可屏蔽、高优先级中断流,以便使所述CPU向所述第二操作模式切换。
17.根据权利要求16所述的方法,其中生成每个高优先级中断包括存储所述CPU的操作状态,从而使得在所述CPU在所述第二操作模式中操作时保留所述第一操作模式的CPU操作状态。
18.根据权利要求16所述的方法,还包括操作所述CPU以便在所述第二操作模式期间处理网际协议语音(VoIP)媒体。
19.根据权利要求15所述的方法,还包括响应于接收相应媒体分组流而生成不可屏蔽、高优先级中断流。
20.根据权利要求19所述的方法,其中所述生成不可屏蔽、高优先级中断流的步骤包括:
按照比接收的媒体分组的间隔更少的间隔生成中断,从而使得所述第二虚拟程序空间的所述一个或者多个实时进程以减少在所述第一虚拟程序空间中执行的至少一个应用的延时的方式,在多个时隙之上处理媒体分组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510487816.6A CN105183555A (zh) | 2010-01-13 | 2011-01-13 | 用于媒体处理的硬件虚拟化 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29471110P | 2010-01-13 | 2010-01-13 | |
US61/294,711 | 2010-01-13 | ||
PCT/IB2011/000271 WO2011086473A2 (en) | 2010-01-13 | 2011-01-13 | Hardware virtualization for media processing |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510487816.6A Division CN105183555A (zh) | 2010-01-13 | 2011-01-13 | 用于媒体处理的硬件虚拟化 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102667725A true CN102667725A (zh) | 2012-09-12 |
CN102667725B CN102667725B (zh) | 2015-09-16 |
Family
ID=44211929
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180005023.6A Expired - Fee Related CN102667725B (zh) | 2010-01-13 | 2011-01-13 | 用于媒体处理的硬件虚拟化 |
CN201510487816.6A Pending CN105183555A (zh) | 2010-01-13 | 2011-01-13 | 用于媒体处理的硬件虚拟化 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510487816.6A Pending CN105183555A (zh) | 2010-01-13 | 2011-01-13 | 用于媒体处理的硬件虚拟化 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8893143B2 (zh) |
JP (1) | JP5875193B2 (zh) |
CN (2) | CN102667725B (zh) |
WO (1) | WO2011086473A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902576A (zh) * | 2012-09-26 | 2013-01-30 | 北京奇虎科技有限公司 | 一种渲染网页的方法、服务器和系统 |
WO2018107394A1 (en) * | 2016-12-14 | 2018-06-21 | Intel Corporation | I/o emulation abortion in virtualized environments |
CN112005176A (zh) * | 2018-03-15 | 2020-11-27 | 西门子股份公司 | 用于计算机支持地模拟以自动化方式工作的机器的运行方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013072773A2 (en) * | 2011-11-18 | 2013-05-23 | Marvell World Trade Ltd. | Data path acceleration using hw virtualization |
KR20130063825A (ko) * | 2011-12-07 | 2013-06-17 | 삼성전자주식회사 | 운영체제에서 동적으로 선점 구간을 조정하는 장치 및 방법 |
CN102833175B (zh) * | 2012-09-21 | 2016-05-04 | 中国科学院声学研究所 | 基于异构操作系统的实时中继传输引擎及方法 |
GB2516435A (en) * | 2013-04-05 | 2015-01-28 | Continental Automotive Systems | Embedded memory management scheme for real-time applications |
WO2015031274A1 (en) * | 2013-08-26 | 2015-03-05 | Vmware, Inc. | Virtual machine monitor configured to support latency sensitive virtual machines |
DE102016214117A1 (de) * | 2016-08-01 | 2018-02-01 | Siemens Aktiengesellschaft | Ermitteln einer Ausführungszeit eines Anwenderprogramms |
US20180152319A1 (en) * | 2016-11-28 | 2018-05-31 | Schlumberger Technology Corporation | Well Construction Site Communications Network |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1294706A (zh) * | 1998-01-21 | 2001-05-09 | 诺基亚移动电话有限公司 | 嵌入式系统 |
CN1890640A (zh) * | 2003-10-06 | 2007-01-03 | 英特尔公司 | 高效的系统管理同步和存储器分配 |
CN1942859A (zh) * | 2003-10-01 | 2007-04-04 | 扎鲁纳股份有限公司 | 操作系统 |
US20090132059A1 (en) * | 2007-11-13 | 2009-05-21 | Schultz Ronald E | Industrial controller using shared memory multicore architecture |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3546678B2 (ja) * | 1997-09-12 | 2004-07-28 | 株式会社日立製作所 | マルチos構成方法 |
JP4072271B2 (ja) * | 1999-02-19 | 2008-04-09 | 株式会社日立製作所 | 複数のオペレーティングシステムを実行する計算機 |
US8612992B2 (en) * | 2003-04-09 | 2013-12-17 | Jaluna Sa | Operating systems |
JP3953449B2 (ja) * | 2003-08-26 | 2007-08-08 | 富士通株式会社 | タスク管理プログラムおよびタスク制御装置 |
JP2007509387A (ja) * | 2003-09-30 | 2007-04-12 | ジャルナ エスアー | オペレーティングシステム |
JP4112511B2 (ja) * | 2004-02-17 | 2008-07-02 | 富士通株式会社 | タスク管理プログラムおよびタスク管理装置 |
JP3862715B2 (ja) * | 2004-06-01 | 2006-12-27 | 株式会社ソニー・コンピュータエンタテインメント | タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム |
CN101052949A (zh) * | 2004-08-18 | 2007-10-10 | 扎鲁纳股份有限公司 | 操作系统 |
DE602004027516D1 (de) | 2004-12-03 | 2010-07-15 | St Microelectronics Srl | Ein Verfahren zum Verwalten von virtuellen Maschinen in einer körperlichen Verarbeitungsmaschine, ein entsprechendes Prozessorsystem und Computerprogrammprodukt dafür |
US7748003B2 (en) | 2004-12-20 | 2010-06-29 | International Business Machines Corporation | Hard real-time response |
EP1987430B1 (en) | 2006-02-09 | 2019-08-14 | Texas Instruments Incorporated | Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture |
JP2008108075A (ja) * | 2006-10-25 | 2008-05-08 | Matsushita Electric Ind Co Ltd | タスク切替え制御方法及びコンピュータシステム |
EP2126694A2 (en) * | 2006-12-22 | 2009-12-02 | VirtualLogix SA | System for enabling multiple execution environments to share a device |
JP2009206608A (ja) * | 2008-02-26 | 2009-09-10 | Nec Engineering Ltd | 通信装置 |
CN102067089A (zh) * | 2008-06-24 | 2011-05-18 | 松下电器产业株式会社 | 虚拟计算机控制装置、虚拟计算机控制程序以及虚拟计算机控制电路 |
JPWO2012001787A1 (ja) * | 2010-06-30 | 2013-08-22 | 富士通株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
-
2011
- 2011-01-13 CN CN201180005023.6A patent/CN102667725B/zh not_active Expired - Fee Related
- 2011-01-13 CN CN201510487816.6A patent/CN105183555A/zh active Pending
- 2011-01-13 US US13/005,850 patent/US8893143B2/en not_active Expired - Fee Related
- 2011-01-13 JP JP2012548501A patent/JP5875193B2/ja not_active Expired - Fee Related
- 2011-01-13 WO PCT/IB2011/000271 patent/WO2011086473A2/en active Application Filing
-
2014
- 2014-11-17 US US14/543,007 patent/US9189267B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1294706A (zh) * | 1998-01-21 | 2001-05-09 | 诺基亚移动电话有限公司 | 嵌入式系统 |
CN1942859A (zh) * | 2003-10-01 | 2007-04-04 | 扎鲁纳股份有限公司 | 操作系统 |
CN1890640A (zh) * | 2003-10-06 | 2007-01-03 | 英特尔公司 | 高效的系统管理同步和存储器分配 |
US20090132059A1 (en) * | 2007-11-13 | 2009-05-21 | Schultz Ronald E | Industrial controller using shared memory multicore architecture |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902576A (zh) * | 2012-09-26 | 2013-01-30 | 北京奇虎科技有限公司 | 一种渲染网页的方法、服务器和系统 |
CN102902576B (zh) * | 2012-09-26 | 2014-12-24 | 北京奇虎科技有限公司 | 一种渲染网页的方法、服务器和系统 |
WO2018107394A1 (en) * | 2016-12-14 | 2018-06-21 | Intel Corporation | I/o emulation abortion in virtualized environments |
CN112005176A (zh) * | 2018-03-15 | 2020-11-27 | 西门子股份公司 | 用于计算机支持地模拟以自动化方式工作的机器的运行方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2011086473A2 (en) | 2011-07-21 |
CN105183555A (zh) | 2015-12-23 |
CN102667725B (zh) | 2015-09-16 |
JP5875193B2 (ja) | 2016-03-02 |
JP2013517552A (ja) | 2013-05-16 |
US20150074310A1 (en) | 2015-03-12 |
US9189267B2 (en) | 2015-11-17 |
US8893143B2 (en) | 2014-11-18 |
US20110173362A1 (en) | 2011-07-14 |
WO2011086473A3 (en) | 2011-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102667725A (zh) | 用于媒体处理的硬件虚拟化 | |
US10331468B2 (en) | Techniques for routing service chain flow packets between virtual machines | |
JP6383518B2 (ja) | 仮想マシンモニター及び仮想マシンモニターのスケジューリング方法 | |
US6070219A (en) | Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller | |
US20170371725A1 (en) | Hardware multi-threading co-scheduling for parallel processing systems | |
US7950002B2 (en) | Testing a software product by initiating a breakpoint and executing a probe routine | |
EP2602964A1 (en) | Method, device and equipment for service management | |
CN102105871A (zh) | 虚拟处理设备的中断控制 | |
CN105939286B (zh) | 令牌桶管理方法及装置 | |
US8819640B2 (en) | Establishing cloud debug breakpoints assigned to users | |
CN106874103B (zh) | 心跳实现方法及装置 | |
CN109558235B (zh) | 一种处理器的调度方法、装置及计算机设备 | |
JP4609070B2 (ja) | マルチ呼処理スレッド処理方法 | |
US7516311B2 (en) | Deterministic microcontroller context arrangement | |
EP2630577B1 (en) | Exception control in a multiprocessor system | |
JP2021089715A (ja) | 複数のプロセッサ間の通信を同期させるためのシステム及び方法 | |
US20120072632A1 (en) | Deterministic and non-Deterministic Execution in One Processor | |
US20030204639A1 (en) | Task dispatch in priority pre-emptive real-time operating systems | |
US10803007B1 (en) | Reconfigurable instruction | |
JPH03147157A (ja) | 情報処理装置 | |
CN110851239A (zh) | 一种type-i型硬实时高可靠性全虚拟化方法 | |
Bilas et al. | Limits to the performance of software shared memory: A layered approach | |
JP2010073214A (ja) | マルチ呼処理スレッド処理方法及び呼処理装置 | |
KR0141717B1 (ko) | 마이크로프로세서 제어장치 | |
Coutinho et al. | VITRAL: A text mode windows manager for RTEMS |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150916 Termination date: 20200113 |
|
CF01 | Termination of patent right due to non-payment of annual fee |