用于实现安全视频输出路径的硬件辅助虚拟化的制作方法_2

文档序号:9432933阅读:来源:国知局
应的处理核到共享的互连115、 然后到外围设备288或到存储器118的操作被称为处理核事务。共享的互连115可以通过 总线系统来提供,通过该总线系统,不同的硬件组件(诸如处理核111、总线主控器207、外 围设备288,和/或存储器118)相互进行通信。通信的内容可以包括定向至存储器110和 外围设备108的CPU事务。处理核启动的事务可以包括与对于虚拟机要被执行的指令相关 联的指令和数据。除提供链接这些硬件组件的共享的通信织状结构之外,互连115也可以 包括控制器220以控制共享的通信链路上的业务量。例如,响应于接收到定向至存储器118 的事务,控制器220可以解析事务以标识存储器的地址范围,并通过存储器控制器228写入 或读取地址范围处的内容。进一步,处理核也可以通过外围控制器(未示出)将事务传输 到外围设备288。
[0038] 作为虚拟机的启动序列的一部分,控制虚拟机130的执行的虚拟机管理器205可 以向每一虚拟机131指定唯一标识符(VMID)。每一总线主控器207 (例如,直接存储器访 问(DMA)控制器)可以利用当前拥有相应的总线主控器的虚拟机的标识符228来标记其事 务。虚拟机管理器205可以具有对共享的互连115的通用(例如,超级用户)权限(例如, 与VMID = 0相关联的)。
[0039] 在某些实现中,由处理核111启动的不由L1/L2缓存来缓存的每一事务都可以用 相应的虚拟机131的标识符来进行标记。缓存的处理器启动的事务可以用有特权的虚拟机 的标识符(VMID = 0)进行标记,因为相对于缓存的事务的访问控制可以由硬件辅助的虚拟 化机制来实现(例如,通过扩展的页面表(EPT))。
[0040] 在某些实现中,存储器223可以被分区为多个区域。共享的互连115可以实现存 储器防火墙224,以基于用来标记存储器访问事务的虚拟机标识符来过滤对存储器范围的 访问。在说明性示例中,共享的互连115可以维护存储器防火墙规则,包括存储器地址范围 到虚拟机标识符的多个映射。由共享的互连115实现的存储器防火墙可以基于其中一个映 射,仅在存储器访问事务被标记有被授权的虚拟机标识符时才允许该存储器访问事务进行 以访问所请求的存储器范围。由共享的互连实现的存储器防火墙可以被配置成中止企图访 问虚拟机不被允许访问的存储器区域的虚拟机启动的事务。
[0041] 在某些实现中,共享的互连115还可以进一步实现外围设备防火墙224,以基于用 来标记外围设备访问事务的虚拟机标识符来过滤对外围设备288的访问。在说明性示例 中,共享的互连115可以维护外围防火墙规则,包括外围设备标识符到虚拟机标识符的多 个映射。由共享的互连115实现的外围防火墙可以基于其中一个映射,仅在存储器访问事 务被标记有被授权的虚拟机标识符时才允许该存储器访问事务进行以访问所请求的外围 设备。由共享的互连实现的外围防火墙可以被配置成中止企图访问虚拟机不被允许访问的 外围设备的虚拟机启动的事务。
[0042] 在某些实现中,由共享的互连实现的存储器和/或外围防火墙规则可以被受信任 的实体编程。在说明性示例中,与VMID = 0(最高特权级别)相关联的虚拟机管理器可以 利用防火墙规则来配置共享的互连115,包括对于每一个虚拟机的允许的地址范围和/或 外围标识符。
[0043] 可另选地,存储器和/或外围防火墙可以由虚拟机管理器来实现。后者可以存储 对于每一个虚拟机允许的地址范围和/或外围标识符,并可以被配置成通过中止企图访问 虚拟机不被允许访问的存储器区域或外围设备的虚拟机启动的事务,实现存储器防火墙和 /或外围防火墙。在此情况下,虚拟机标识符可能不一定由处理核发送到共享的互连,因为 存储器访问和/或外围访问事务可以在处理核本身内由虚拟机管理器过滤。
[0044] 可另选地,事务过滤防火墙可以由虚拟机正在企图访问的目标外围设备实现,或 在专用外围总线中实现,如果外围设备通过专用的外围总线连接到共享的互连115。
[0045] 图3描绘了根据本发明的一个或多个方面的用于实现基于虚拟机的保护的视频 路径的示例方法的流程图。方法300可以由可以包括硬件(例如,电路、专用逻辑和/或可 编程逻辑)、软件(例如,可在计算机系统上执行以执行硬件模拟的指令)或其组合的计算 机系统来执行。方法300和/或其函数、例程、子例程或操作中的每一个都可以由执行方 法的计算机系统的一个或多个物理处理器来执行。方法300的两个或更多函数、例程、子例 程,或操作可以并行地或按照可以不同于上文所描述的顺序的顺序来执行。在某些实现中, 方法300可以由单一处理线程执行。可另选地,方法300可以由两个或更多处理线程执行, 每一个线程都执行方法的一个或多个单个函数、例程、子例程、或操作。在说明性示例中,实 现方法300的处理线程可以被同步(例如,使用信号标(semaphore)、关键部分和/或其他 线程同步机制)。可另选地,实现方法300的处理线程可以相对于彼此异步地执行。在一个 示例中,如图3所示出的,方法300可以由下文所描述的并由图5-11所示出的计算机系统 执行。
[0046] 参考图3,在框310,处理系统可以初始化安全虚拟机和非安全虚拟机。作为虚拟 机的启动序列的一部分,虚拟机管理器可以向每一虚拟机指定唯一标识符(VMID)。
[0047] 在框320,非安全虚拟机可以通过网络接口或从文件系统接收数字内容项目(例 如,视频内容项目)的一个或多个经加密的部分(例如,帧)。在说明性示例中,可以从在线 视频流服务中检索经加密的数字内容项目,用于由执行所述方法的处理系统被包括到其中 的计算机系统实时流式传送。
[0048] 在框330,非安全虚拟机可以将经加密的内容部分存储在共享存储器区域中。后 者可以被安全和非安全虚拟机以及被各种其他代理访问,而不会损害数字内容项目的安全 性,如同以经加密的形式存储在共享存储器中。
[0049] 在框340,处理系统可以启动接收到的加密的数字内容项目的回放(例如,响应于 接收到用户界面命令)。处理系统可以配置其共享的互连以只允许由安全虚拟机访问数字 内容解码器。处理系统还可以进一步配置共享的互连以只允许由安全虚拟机访问安全存储 器区域。
[0050] 在框350,安全虚拟机可以从共享存储器区域检索经加密的数字内容项目的一个 或多个内容部分(例如,响应于从非安全虚拟机接收到信号),解密检索到的内容部分,并 将经解密的内容部分存储到安全存储器区域中。在某些实现中,处理系统可以通过向存储 器防火墙(例如,由共享的互连实现的)呈现安全虚拟机标识符,来认证由安全虚拟机启动 的安全存储器访问事务。
[0051 ] 在框360,安全虚拟机可以导致数字内容解码器解码经解密的内容部分。在某些实 现中,处理系统可以通过向外围设备防火墙(例如,由共享的互连实现的)呈现安全虚拟机 标识符,来认证由安全虚拟机启动的解码器访问事务。
[0052] 在框370,安全虚拟机可以通过专用流端口,将经解码的部分传输到输入/输出 (I/O)控制器(例如,显示控制器)。可以通过硬件防止该专用流端口将流过流端口 142到 I/O控制器的实时流重新定向到存储器或到另一代理。
[0053] 在框380,处理系统可以响应于完成回放,释放数字内容解码器,使得它可被安全 和非安全虚拟机及其他代理访问。响应于完成上文参考框380所描述的操作,方法可以结 束。
[0054] 此处所描述的系统和方法将硬件辅助的虚拟化用于实现安全视频输出路径。尽管 此处的描述引用显示控制器,但是,此处所描述的系统和方法也可以与其他功能图形单元 一起使用。尽管此处的描述引用单一保护的显示会话,但是,此处所描述的系统和方法也可 以被用来基于由显示引擎支持的并行重叠的数量,支持多个并行保护的会话。
[0055] 虽然此处参考特定集成电路(诸如处理器)描述了各种系统和方法,但其他实现 也可以适用于其他类型的集成电路和逻辑设备。可以将此处所描述的系统和方法的技术和 原理应用于也可以得益于更好的能效和节能的其他类型的电路或半导体器件。例如,所公 开的实现不仅限于任何特定类型的计算机系统,也可以用于诸如手持式设备、芯片上系统 (SOC)设备以及嵌入式应用之类的其他设备中。手持式设备的某些示例包括蜂窝电话、网际 协议设备、数码相机、个人数字助理(PDA)以及手持式PC。嵌入式应用通常包括微控制器、 数字信号处理器(DSP)、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机,或 能够执行下面教导的功能和操作的任何其他系统。此外,此处所描述的系统和方法不仅限 于物理计算设备,也可以涉及软件实现的方法。由此处所描述的系统和方法实现的电能节 省可以独立于基于操作系统(OS)的机制,诸如高级配置和平台接口(ACPI)标准,并与其互 补。
[0056] 此处所描述的方法和系统可以通过对于膝上型计算机、台式机、手持式PC、个人数 字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理 器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持 式设备,以及各种其他电子设备的各种架构、设计和配置的计算机系统来实现,也适用于实 现此处所描述的方法。一般而言,如此处所公开的能够包括处理器和/或其他执行逻辑的 各种系统或电子设备一般适用于实现此处所描述的系统和方法。
[0057] 图4描绘了根据本公开一个或多个方面的计算机系统的一个示例的高级的组件 图示。根据此处所描述的实施例,计算机系统100可以包括处理器110来使用包括执行用于 处理数据的算法的逻辑的执行单元。系统100是基于位于加利福尼亚州圣克拉拉市的英特 尔公司所提供的 PENTIUM III?、PENTIUM 4?、Xeon?、Itanium、XScale?和 / 或 StrongARM ? 的微处理器的处理系统的代表,虽然也可以被用来其他系统(包括具有其他微处理器的 PC、工程工作站、机顶盒等等)。在一个实施例中,示例系统100执行位于美国华盛顿州雷蒙 德市的微软公司所提供的WINDOWS?操作系统的一种版本,虽然也可以使用其他操作系统 (例如,UNIX和Linux)、嵌入式软件和/或图形用户界面。如此,此处所描述的各实施例不 仅限于硬件电路和软件的任何特定的组合。
[0058] 在说明性示例中,处理器110包括实现将执行至少一个指令的算法的一个或多个 执行单元108。可以在单处理器台式机或服务器系统的上下文中来描述一个实施例,但是, 替换实施例可以被包括在多处理器系统中。系统100是"中枢"系统体系结构的示例。计 算机系统100包括处理数据信号的处理器110。作为一个说明性示例,处理器110包括复杂 指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微 处理器、实现指令集的组合的处理器或任何其他处理器设备,诸如,例如,数字信号处理器。 处理器110耦合到在处理器110及系统100中的其他组件之间传输数据信号的处理器总线 110。系统100的元件(例如,图形加速器112、存储器控制器中枢116、存储器120、I/O控 制器中枢124、无线收发器126、闪存BIOS 128、网络控制器134、音频控制器136、串行扩展 端口 138、I/O控制器140、等等)执行本领域普通技术人员所共知的它们的常规功能。
[0059] 在一个实施例中,处理器110包括1级(LI)内部缓存。取决于体系结构,处理 器110可以具有单个内部高速缓存或多级内部高速缓存。取决于特定实现以及需求,其 他实施例包括内部和外部缓存两者的组合。寄存器组106将不同类型的数据存储在各种 寄存器中,包括整数寄存器、浮点寄存器、向量寄存器、分组寄存器、影子寄存器(shadow register)、检查点寄存器、状态寄存器以及指令指针寄存器。
[0060] 执行单元108(包括执行整数以及浮点运算的逻辑)也驻留在处理器110中。在 一个实施例中,处理器110包括存储微代码的微代码(Ucode)ROM,该微代码在被执行时将 执行某些宏指令的算法或处理复杂情况。这里,微代码是潜在地可更新的,以为处理器110 处理逻辑缺陷/修补。对于一个实施例,执行单元108包括处理紧缩的指令集109的逻辑。 通过与执行指令的相关联的电路一起将紧缩的指令集109包括在通用处理器110的指令集 中,许多多媒体应用程序所使用的
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1