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

上传人:ting****789 文档编号:310022520 上传时间:2022-06-14 格式:DOCX 页数:5 大小:22.84KB
返回 下载 相关 举报
用于媒体处理的硬件虚拟化的制作方法_第1页
第1页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《用于媒体处理的硬件虚拟化的制作方法》由会员分享,可在线阅读,更多相关《用于媒体处理的硬件虚拟化的制作方法(5页珍藏版)》请在金锄头文库上搜索。

1、用于媒体处理的硬件虚拟化的制作方法专利名称:用于媒体处理的硬件虚拟化的制作方法技术领域:本申请涉及用于实施虚拟处理器的方法和系统。背景技术:这里提供的背景描述是出于总体上呈现公开内容的上下文的目的。当前指名的发明人的工作在背景技术部分中描述该工作的程度上以及在递交时不以其他方式属于现有技术的描述的方面,既不明示也不暗示地被承认为相对于本公开内容的现有技术。现在在实际上每件现代消费者电子装置中都存在基于计算机的处理系统。例如,住宅网关经常除了多种其它电子硬件之外还包括两个或者三个单独处理器并且每个处理器执行单独功能。举例而言,电信设备(诸如网关)中的第一处理器可以仅用于处理流媒体(诸如IP语音、

2、IP电视或者IP视频),而电信设备中的第二处理器可以用来执行多种应用,诸如服务于流媒体乃至其它应用(如提供交互游戏和日历)。如这里所用,术语“处理器”可以指代个别设备以及在多核处理器设备中的多个处理器之一。虽然由多个处理器提供的处理器稳定性可能是希望的,但是使用多个处理器带来大量成本。通常避免常规单处理器解决方案,这些解决方在理论上配置成在软件层中支持实时媒体处理和多种其它应用两者,因为在常规实现方式中,如果“小故障(glitch) ”出现于同时运行的应用程序中或者如果需要软件更新,则不能适当保护实时媒体处理。发明内容以下更具体地描述本发明的各种方面和实施例。在一个实施例中,一种配置成充当多个

3、虚拟处理器的处理装置包括第一虚拟程序空间,包括第一程序执行存储器,第一程序执行存储器包括用于运行能够支持一个或者多个非实时应用的非实时操作系统的代码;第二虚拟程序空间,包括第二程序执行存储器,第二程序执行存储器包括用于运行一个或者多个实时进程的代码;以及中央处理单元(CPU),配置成在第一操作模式和第二操作模式中操作,CPU被配置成将第一虚拟程序空间用于第一操作模式来执行操作系统和应用活动而不使用第二虚拟程序空间并且不明显干扰在第二操作模式中运行的一个或者多个实时进程。在另一实施例中,一种用于在单个中央处理单元(CPU)上执行多个虚拟处理器的方法包括限定包括第一程序执行存储器的第一虚拟程序空间

4、,第一程序执行存储器被配置成运行能够支持一个或者多个非实时应用的非实时操作系统;限定包括第二程序执行存储器的第二虚拟程序空间,第二程序执行存储器被配置成运行一个或者多个实时进程;以、及切换CPU以便在第一操作模式与第二操作模式之间交替,由此在第一操作模式期间CPU从第一虚拟程序空间操作,从而使得在第一操作模式期间出现的任何操作活动不明显干扰在第二操作模式期间执行的实时进程。将参照以下附图详细描述作为示例提出的本公开内容的各种实施例,在附图中相似标号引用相似要素,并且在附图中图I描绘了能够作为两个单独虚拟处理器工作的处理系统。图2描绘了图I的CPU的细节。图3描绘了用于实施图I的两个虚拟处理器的

5、时序图。图4是概括了用于使用单个处理器来执行多个虚拟处理器的所公开的方法和系统的操作的流程图。具体实施例方式可以一般性地以及在具体示例和/或具体实施例方面描述以下公开的方法和系统。例如,当引用详细示例和/或实施例时,注意所描述的任何基本原理除非另有明示则将如本领域普通技术人员理解的那样并不限于单个实施例,而是可以被扩展用于与这里描述的任何其它方法和系统一起使用。下文描述一种具有单个中央处理单元(CPU)的处理系统,该CPU被配置成充当两个独立虚拟处理器在一个实施例中,一个虚拟处理器被配置成使用操作系统来运行通用应用;另一虚拟处理器被配置成以可靠方式执行实时处理。下文描述的方法和系统的一个特别优

6、点在于不同于已知操作系统的表面上的多处理(例如,软件层中的不同窗口运行不同的应用),下文描述的虚拟处理器的实施例被设计成利用不同硬件线程并且由此允许一个虚拟处理器无论另一虚拟处理器的任何可能的故障如何都执行时间关键操作。因此,在一个实施例中,虽然使用单个CPU,但是一个虚拟处理器即使在另一虚拟处理器经历可能需要重新引导来解决的“崩溃”时仍然可靠地执行各种实时关键处理操作而没有中断。图I描绘了根据一个实施例的配置成作为两个单独虚拟处理器工作的处理装置100。如图I中所示,处理装置100包括CPU 110、存储器管理单元(MMU) 112、中断控制电路114、定时器电路116、第一虚拟程序空间12

7、0和第二虚拟程序空间130。第一虚拟程序空间120和第二虚拟程序空间130是在CPU 110可用的总存储器空间111中限定的单独空间。在一个实施例中,第一虚拟程序空间120包括第一程序执行存储器122、第一存储存储器124和耦合到任何数目的诸如键区、显示器、扬声器等各种外设的一组第一输入/输出电路126。第一程序执行存储器122包括用于运行能够支持多个应用(诸如无需精确响应时间的人类交互应用(例如,键区录入和显示)的非实时操作系统(OS)的代码。第一存储存储器124包括任何数目和类型的能够写入并且从其读取的存储器(诸如易失性和非易失性随机存取存储器(RAM),以便支持第一程序执行存储器122中

8、驻留的OS和应用。在一个实施例中,第二虚拟程序空间130包括第二程序执行存储器132、第二存储存储器134和耦合到任何数目的诸如以时分复用(TDM)方式发送和接收基于无线媒体的分组的端口、T1/E1数据接口、以太网接口等各种通信/媒体外设的一组第二输入/输出电路136。第二程序存储器132包括写入于其上的配置成运行能够及时处理传入和传出媒体的多个实时进程的代码。例如,在一个实施例中,第二程序存储器132包括用于网际协议语音(VoIP)处理的代码和/或用于任何数目的语音编码解码器、DTMF中继支持、分组丢失隐藏、回波取消、语音活动检测、舒适噪声生成、通用多音生成和/或检测、主叫ID生成和/或检测

9、、语音混合以及传真生成和解码的代码。与第一存储存储器124相似,第二存储存储器134包括任何数目和类型的能够写入和读取的存储器以便支持实时进程。出于本公开内容的目的,注意将存储器122、124、132和134描绘为逻辑上不同的实体,然而,在一个实施例中,它们在物理上组合于单个存储器单元中。例如,在一个特定实施例中,第一存储存储器124和第二存储存储器134作为单个RAM的两个单独部分存在,而第一程序执行存储器122和第二程序执行存储器132作为另一单个存储器设备(诸如只读存储器(ROM)的单独部分存在。备选地,在另一实施例中,所有四个存储器122、124、132和134作为单个存储器设备的不同

10、部分或者作为并入集成电路中的不同存储器段存在。 一般而言,只要第一操作空间的OS和应用无法“明显干扰”第二操作空间130的实时进程的执行,则在第一操作空间120与第二操作空间130之间的资源重叠是可能的。例如,第一程序执行存储器122和第二程序执行存储器132可以共享共同代码段(例如,嵌入于ROM中的基本输入/输出系统(BIOS)以免代码重复,只要这样的共享未导致明显干扰第二操作空间130的实时进程的执行。另外,可以在操作空间120与130之间共享某些存储器资源(诸如对于代码执行(除了性能增强之外)而言透明的高速缓存存储器)而不在本公开内容的上下文内视为其明显干扰第二操作空间130的实时进程的

11、执行。在操作中,处理装置100执行硬件初始化过程(诸如上电重新引导),从而使得所有设备110-136设置成预定义或者初始状态。在操作中,CPU 110初始化中断控制电路114、定时器电路116和第二虚拟程序空间130的该组第二输入/输出电路136。中断控制电路114和定时器电路116的一些部分或者全部被视为第二虚拟程序空间130的部分。在各种实施例中,MMU 112、中断控制电路114、定时器电路116并且可能该组第二输入/输出电路136的某部分是未受到编程的“固定”设备,从而使得CPU对它们的行为仅有很有限的影响或者无影响。在这样的实施例中,第二虚拟程序空间120的初始化是例如限于将第二存储

12、存储器134中的环形缓冲器或者指针归零的很有限的任务。MMU 112是负责处理由CPU 110请求的对存储器和外围设备的访问的硬件部件。它的功能包括将虚拟地址转译成物理地址(即虚拟存储器管理)、存储器保护、高速缓存控制和总线仲裁。本MMU112被配置成每当存储器保护违反出现时就生成中断或者标志。中断控制电路114是如下设备,该设备用来将若干中断源组合到一个或者多个(PU可访问线路上,同时允许向它的中断输出分配优先级级别。本中断控制电路114有能力向CPU 110呈现不可屏蔽、高优先级中断(诸如指示TDM帧边界的中断)以及多个更低优先级的中断。定时器电路116是用来定期生成中断的计数器,这些中断

13、可以是高优先级、不可屏蔽和/或更低优先级的。在一个实施例中,CPU 110还初始化第一虚拟程序空间120的该组第一输入/输出电路126、继而初始化第一程序执行存储器的OS和诸如涉及更新服务应用的应用等任何具体标识的应用。在图I的实施例中,中断控制电路114包括CPU 110无法普通屏蔽(直接或者间接)的“高优先级”中断。因此,在初始化之后,这样的不可屏蔽、高优先级中断迫使CPU 110从使用第一虚拟程序空间120的资源的第一(非实时)操作模式向使用第二虚拟程序空间130的资源的第二(实时)操作模式切换。使用适当中断返回命令来实现从第二操作模式向第一操作模式往回切换。因此,可以维持两个“虚拟”处

14、理器。不可屏蔽、高优先级中断的示例包括由基于Intel 8086的处理器共用的不可屏蔽中断(匪I)线路和ARM处理器共用的快速中断(FIQ)线路。在各种实施例中,希望保证在一个虚拟处理器中出现的任何活动(例如,故障)不引起对另一虚拟处理器的明显干扰。为了实现这一点,MMU 112被配置成阻止从第一操作空间120操作的软件以可能有害方式影响第二操作空间130的存储器和任何设备。例如,使用MMU 112,适当地通知CPU 110在执行来自第一虚拟程序空间120的OS和/或任何应用的代码时(即在第一操作模式中时)不访问或者以别的方式更改第二存储存储器134或者第二输入/输出电路136。类似地,在一个

15、实施例中,使用MMU 112以使CPU 110在第二操作模式中时不访问或者以别的方式更改第一存储存储器124或者第一输入/输出电路126是有用的。通过保证在第一虚拟程序空间120与第二虚拟程序空间130之间的资源的独占性(或者至少确保无干扰),有效地防止了在一个操作模式中出现的可能明显影响另一操作模式的活动尤其是故障。为了进一步保证一个虚拟处理器不明显干扰另一虚拟处理器的操作,在一个实施例中,响应于激活高优先级中断,存储CPU 110的操作状态,从而使得在CPU在第二操作模式中操作时保留第一操作模式的CPU操作状态。通过向位于第二存储存储器上的软件栈上“压入”操作状态来保留这样的操作状态,并且

16、通过从软件栈向适当CPU寄存器中往回“拉取”存储的数据来重建这些操作状态。备选地,向CPU 110内构建的特殊存储存储器中存储这样的状态。图2示出了根据公开内容的一个实施例的图I的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来重新存储。因而,在(PU服务于高优先级中断并且从高优先级中断返回时保留关键操作状态。与保留第一操作模式的操作状态一样,在一个实施例中,CPU被配置成在向第一操作模式转变时存储第二操作模式的各种操作状态,从而使得响应于

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号