用于媒体处理的硬件虚拟化的制作方法

文档序号:9432377阅读:460来源:国知局
用于媒体处理的硬件虚拟化的制作方法
【专利说明】用于媒体处理的硬件虚拟化
[0001]分案串请说明
[0002]本申请是于2011年I月13日提交的、于2012年6月18日进入中国国家阶段的、申请号为201180005023.6、名称为“用于媒体处理的硬件虚拟化”的中国发明专利申请的分案申请。
[0003]引用结合
[0004]本申请要求对通过整体引用而结合于此的、于2010年I月13日提交的、标题为“HARDWARE VIRTUALIZAT1N FOR VoIP MEDIA PROCESSING”的第61/294,711 号美国临时申请的优先权。
技术领域
[0005]本申请涉及用于实施虚拟处理器的方法和系统。
【背景技术】
[0006]这里提供的背景描述是出于总体上呈现公开内容的上下文的目的。当前指名的发明人的工作在【背景技术】部分中描述该工作的程度上以及在递交时不以其他方式属于现有技术的描述的方面,既不明示也不暗示地被承认为相对于本公开内容的现有技术。
[0007]现在在实际上每件现代消费者电子装置中都存在基于计算机的处理系统。例如,住宅网关经常除了多种其它电子硬件之外还包括两个或者三个单独处理器并且每个处理器执行单独功能。举例而言,电信设备(诸如网关)中的第一处理器可以仅用于处理流媒体(诸如IP语音、IP电视或者IP视频),而电信设备中的第二处理器可以用来执行多种应用,诸如服务于流媒体乃至其它应用(如提供交互游戏和日历)。如这里所用,术语“处理器”可以指代个别设备以及在多核处理器设备中的多个处理器之一。
[0008]虽然由多个处理器提供的处理器稳定性可能是希望的,但是使用多个处理器带来大量成本。通常避免常规单处理器解决方案,这些解决方在理论上配置成在软件层中支持实时媒体处理和多种其它应用两者,因为在常规实现方式中,如果“小故障(glitch) ”出现于同时运行的应用程序中或者如果需要软件更新,则不能适当保护实时媒体处理。

【发明内容】

[0009]以下更具体地描述本发明的各种方面和实施例。
[0010]在一个实施例中,一种配置成充当多个虚拟处理器的处理装置包括:第一虚拟程序空间,包括第一程序执行存储器,第一程序执行存储器包括用于运行能够支持一个或者多个非实时应用的非实时操作系统的代码;第二虚拟程序空间,包括第二程序执行存储器,第二程序执行存储器包括用于运行一个或者多个实时进程的代码;以及中央处理单元(CPU),配置成在第一操作模式和第二操作模式中操作,CPU被配置成将第一虚拟程序空间用于第一操作模式来执行操作系统和应用活动而不使用第二虚拟程序空间并且不明显干扰在第二操作模式中运行的一个或者多个实时进程。
[0011]在另一实施例中,一种用于在单个中央处理单元(CPU)上执行多个虚拟处理器的方法包括:限定包括第一程序执行存储器的第一虚拟程序空间,第一程序执行存储器被配置成运行能够支持一个或者多个非实时应用的非实时操作系统;限定包括第二程序执行存储器的第二虚拟程序空间,第二程序执行存储器被配置成运行一个或者多个实时进程;以及切换CPU以便在第一操作模式与第二操作模式之间交替,由此在第一操作模式期间CPU从第一虚拟程序空间操作,从而使得在第一操作模式期间出现的任何操作活动不明显干扰在第二操作模式期间执行的实时进程。
【附图说明】
[0012]将参照以下附图详细描述作为示例提出的本公开内容的各种实施例,在附图中相似标号引用相似要素,并且在附图中:
[0013]图1描绘了能够作为两个单独虚拟处理器工作的处理系统。
[0014]图2描绘了图1的CPU的细节。
[0015]图3描绘了用于实施图1的两个虚拟处理器的时序图。
[0016]图4是概括了用于使用单个处理器来执行多个虚拟处理器的所公开的方法和系统的操作的流程图。
【具体实施方式】
[0017]可以一般性地以及在具体示例和/或具体实施例方面描述以下公开的方法和系统。例如,当引用详细示例和/或实施例时,注意所描述的任何基本原理除非另有明示则将如本领域普通技术人员理解的那样并不限于单个实施例,而是可以被扩展用于与这里描述的任何其它方法和系统一起使用。
[0018]下文描述一种具有单个中央处理单元(CPU)的处理系统,该CPU被配置成充当两个独立虚拟处理器:在一个实施例中,一个虚拟处理器被配置成使用操作系统来运行通用应用;另一虚拟处理器被配置成以可靠方式执行实时处理。下文描述的方法和系统的一个特别优点在于:不同于已知操作系统的表面上的多处理(例如,软件层中的不同窗口运行不同的应用),下文描述的虚拟处理器的实施例被设计成利用不同硬件线程并且由此允许一个虚拟处理器无论另一虚拟处理器的任何可能的故障如何都执行时间关键操作。因此,在一个实施例中,虽然使用单个CPU,但是一个虚拟处理器即使在另一虚拟处理器经历可能需要重新引导来解决的“崩溃”时仍然可靠地执行各种实时关键处理操作而没有中断。
[0019]图1描绘了根据一个实施例的配置成作为两个单独虚拟处理器工作的处理装置100。如图1中所示,处理装置100包括CPU 110、存储器管理单元(MMU) 112、中断控制电路114、定时器电路116、第一虚拟程序空间120和第二虚拟程序空间130。第一虚拟程序空间120和第二虚拟程序空间130是在CPU 110可用的总存储器空间111中限定的单独空间。
[0020]在一个实施例中,第一虚拟程序空间120包括第一程序执行存储器122、第一存储存储器124和耦合到任何数目的诸如键区、显示器、扬声器等各种外设的一组第一输入/输出电路126。第一程序执行存储器122包括用于运行能够支持多个应用(诸如无需精确响应时间的人类交互应用(例如,键区录入和显示))的非实时操作系统(OS)的代码。第一存储存储器124包括任何数目和类型的能够写入并且从其读取的存储器(诸如易失性和非易失性随机存取存储器(RAM)),以便支持第一程序执行存储器122中驻留的OS和应用。
[0021]在一个实施例中,第二虚拟程序空间130包括第二程序执行存储器132、第二存储存储器134和耦合到任何数目的诸如以时分复用(TDM)方式发送和接收基于无线媒体的分组的端口、T1/E1数据接口、以太网接口等各种通信/媒体外设的一组第二输入/输出电路136。
[0022]第二程序存储器132包括写入于其上的配置成运行能够及时处理传入和传出媒体的多个实时进程的代码。例如,在一个实施例中,第二程序存储器132包括用于网际协议语音(VoIP)处理的代码和/或用于任何数目的语音编码解码器、DTMF中继支持、分组丢失隐藏、回波取消、语音活动检测、舒适噪声生成、通用多音生成和/或检测、主叫ID生成和/或检测、语音混合以及传真生成和解码的代码。与第一存储存储器124相似,第二存储存储器134包括任何数目和类型的能够写入和读取的存储器以便支持实时进程。
[0023]出于本公开内容的目的,注意将存储器122、124、132和134描绘为逻辑上不同的实体,然而,在一个实施例中,它们在物理上组合于单个存储器单元中。例如,在一个特定实施例中,第一存储存储器124和第二存储存储器134作为单个RAM的两个单独部分存在,而第一程序执行存储器122和第二程序执行存储器132作为另一单个存储器设备(诸如只读存储器(ROM))的单独部分存在。备选地,在另一实施例中,所有四个存储器122、124、132和134作为单个存储器设备的不同部分或者作为并入集成电路中的不同存储器段存在。
[0024]一般而言,只要第一操作空间的OS和应用无法“明显干扰”第二操作空间130的实时进程的执行,则在第一操作空间120与第二操作空间130之间的资源重叠是可能的。例如,第一程序执行存储器122和第二程序执行存储器132可以共享共同代码段(例如,嵌入于ROM中的基本输入/输出系统(B1S))以免代码重复,只要这样的共享未导致明显干扰第二操作空间130的实时进程的执行。另外,可以在操作空间120与130之间共享某些存储器资源(诸如对于代码执行(除了
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1