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

文档序号:9432377阅读:来源:国知局
性能增强之外)而言透明的高速缓存存储器)而不在本公开内容的上下文内视为其明显干扰第二操作空间130的实时进程的执行。
[0025]在操作中,处理装置100执行硬件初始化过程(诸如上电重新引导),从而使得所有设备110-136设置成预定义或者初始状态。
[0026]在操作中,CPU 110初始化中断控制电路114、定时器电路116和第二虚拟程序空间130的该组第二输入/输出电路136。中断控制电路114和定时器电路116的一些部分或者全部被视为第二虚拟程序空间130的部分。在各种实施例中,MMU 112、中断控制电路114、定时器电路116并且可能该组第二输入/输出电路136的某部分是未受到编程的“固定”设备,从而使得CPU对它们的行为仅有很有限的影响或者无影响。在这样的实施例中,第二虚拟程序空间120的初始化是例如限于将第二存储存储器134中的环形缓冲器或者指针归零的很有限的任务。
[0027]MMU 112是负责处理由CPU 110请求的对存储器和外围设备的访问的硬件部件。它的功能包括将虚拟地址转译成物理地址(即虚拟存储器管理)、存储器保护、高速缓存控制和总线仲裁。本MMU 112被配置成每当存储器保护违反出现时就生成中断或者标志。
[0028]中断控制电路114是如下设备,该设备用来将若干中断源组合到一个或者多个(PU可访问线路上,同时允许向它的中断输出分配优先级级别。本中断控制电路114有能力向CPU 110呈现不可屏蔽、高优先级中断(诸如指示TDM帧边界的中断)以及多个更低优先级的中断。
[0029]定时器电路116是用来定期生成中断的计数器,这些中断可以是高优先级、不可屏蔽和/或更低优先级的。
[0030]在一个实施例中,CPU 110还初始化第一虚拟程序空间120的该组第一输入/输出电路126、继而初始化第一程序执行存储器的OS和诸如涉及更新服务应用的应用等任何具体标识的应用。
[0031]在图1的实施例中,中断控制电路114包括CPU 110无法普通屏蔽(直接或者间接)的“高优先级”中断。因此,在初始化之后,这样的不可屏蔽、高优先级中断迫使CPU 110从使用第一虚拟程序空间120的资源的第一(非实时)操作模式向使用第二虚拟程序空间130的资源的第二(实时)操作模式切换。使用适当中断返回命令来实现从第二操作模式向第一操作模式往回切换。因此,可以维持两个“虚拟”处理器。不可屏蔽、高优先级中断的示例包括由基于Intel 8086的处理器共用的不可屏蔽中断(匪I)线路和ARM处理器共用的快速中断(FIQ)线路。
[0032]在各种实施例中,希望保证在一个虚拟处理器中出现的任何活动(例如,故障)不引起对另一虚拟处理器的明显干扰。为了实现这一点,MMU 112被配置成阻止从第一操作空间120操作的软件以可能有害方式影响第二操作空间130的存储器和任何设备。例如,使用MMU 112,适当地通知CPU 110在执行来自第一虚拟程序空间120的OS和/或任何应用的代码时(即在第一操作模式中时)不访问或者以别的方式更改第二存储存储器134或者第二输入/输出电路136。类似地,在一个实施例中,使用MMU 112以使CPU 110在第二操作模式中时不访问或者以别的方式更改第一存储存储器124或者第一输入/输出电路126是有用的。通过保证在第一虚拟程序空间120与第二虚拟程序空间130之间的资源的独占性(或者至少确保无干扰),有效地防止了在一个操作模式中出现的可能明显影响另一操作模式的活动一一尤其是故障。
[0033]为了进一步保证一个虚拟处理器不明显干扰另一虚拟处理器的操作,在一个实施例中,响应于激活高优先级中断,存储CPU 110的操作状态,从而使得在CPU在第二操作模式中操作时保留第一操作模式的CPU操作状态。通过向位于第二存储存储器上的软件栈上“压入”操作状态来保留这样的操作状态,并且通过从软件栈向适当CPU寄存器中往回“拉取”存储的数据来重建这些操作状态。备选地,向CPU 110内构建的特殊存储存储器中存储这样的状态。
[0034]图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服务于高优先级中断并且从高优先级中断返回时保留关键操作状态。
[0035]与保留第一操作模式的操作状态一样,在一个实施例中,CPU被配置成在向第一操作模式转变时存储第二操作模式的各种操作状态,从而使得响应于在CPU处接收下一高级别中断,快速重建这样的操作状态。
[0036]对于中断驱动的系统,存在用于触发中断或者中断流的多个有用方案。例如,在其中按照规律或者不规律间隔接收媒体分组流的一个实施例中,某一形式的信号标(semaphore)(诸如离开该组第二输入/输出电路136的FLAG信号)用来在中断控制电路114触发高优先级中断。这样的中断方案允许在“按需”基础上适当实时处理媒体分组。
[0037]在另一实施例中,定时电路(诸如图1的定时器电路116)用来定期触发高优先级中断。假设定时器电路116的周期充分,则在服务于高优先级中断时的那些时段期间适当处理媒体分组而无故障。
[0038]在一个实施例中,定时器电路116被配置成按照比向处理装置100发送或者由处理装置100接收媒体分组的间隔更少的间隔定期触发高优先级中断。在一个实施例中,当第二虚拟程序空间130的实时进程被适当配置成在多个时隙之上处理媒体分组时,在第一虚拟程序空间120中执行的应用以明显减少的延时执行。
[0039]参照图3,该图是如下适当中断方案的时序图300,在该方案中,图1的处理装置100在它的第一操作模式与它的第二操作模式之间切换。在图3的示例中,按照十毫秒每分组的速率在时分复用(TDM)方案中发送和接收媒体分组(未示出)。然而,中断被设置成每两毫秒出现,其中注意第二操作模式时隙的确切持续时间和频率动态可调以考虑媒体分组的服务质量(QoS)要求。因此,CPU(诸如图1的CPU 110)的处理带宽被划分成第一(非实时)操作模式(0.M.)的一组第一帧/时隙310和第二(实时)0.M.的一组第二帧/时隙320。通过使用这样的处理带宽布置,不仅建立第一虚拟处理器和第二虚拟处理器,而且减少在第一操作模式期间运行的应用的延时。例如,如果时序分辨率从八毫秒提高至两毫秒,则在第一操作模式期间运行的支持在线游戏的家用网关应用可以示出明显的主观性能提尚。
[0040]图4是示出了根据公开内容的一个实施例的使用单个CPU来操作多个虚拟处理器的流程图。也就是说,图4的流程图示出了一种用于单个处理器上的多线程的硬件虚拟化(如与使用多个处理器的多线程或者在单个处理器上的软件多任务相比)的方法。尽管为了便利而将下文描述的步骤描述为按照特定顺序出现,但是注意,各种操作的顺序可以随实施例改变。还注意,各种操作可以同时出现或者可以使其以重叠方式出现。
[0041]该过程始于S402,其中执行如下处理装置的硬件重置,该装置具有单个CPU和两个单独操作空间一一第一(实时)操作空间和第二(非实时)操作空间。接着,在步骤S404中,初始化用于实时处理的第二操作空间。如上文讨论的那样,初始化可以涉及到初始化存储存储器、输入/输出电路、定时电路和中断控制电路。当输入/输出电路、定时电路和中断控制电路可由CPU编程时,定时电路和/或中断电路被配置成响应于接收媒体分组生成不可屏蔽、高优先级中断或者根据某一周期按照(可选地)比接收的媒体分组的间隔更少的间隔生成中断。然而,由于输入/输出电路、定时电路和中断控制电路在某些其它实施例中不可更改,所以
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1