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

文档序号:9432933阅读:194来源:国知局
用于实现安全视频输出路径的硬件辅助虚拟化的制作方法
【技术领域】
[0001] 本发明一般涉及计算机系统,具体而言,涉及用于将硬件辅助的虚拟化用于实现 计算机系统的安全视频输出路径的系统和方法。
[0002] 背景
[0003] 数字权限管理(DRM)实现取决于底层硬件平台的安全性和内容保护能力。硬件平 台的内容保护能力可以包括建立安全性的一连串信任的安全引导、加密密钥的保护、存储 在硬件平台内的解密的帧的保护、以及已解码的内容输出的保护。
[0004] 附图简述
[0005] 本发明是通过示例而不是作为限制来说明的,当与附图一起考虑时并参考下列详 细描述时,可以更完全地理解本发明,在附图中:
[0006] 图1描绘了根据本公开的一个或多个方面的示例处理系统的高级组件图示;
[0007] 图2示意地示出了根据本发明的一个或多个方面的促进一个或多个虚拟机的执 行、同时分隔由虚拟机以及各种其他代理对共享硬件资源的访问的硬件辅助的虚拟化的示 例实现;
[0008] 图3描绘了根据本发明的一个或多个方面的用于将硬件辅助的虚拟化用于实现 安全视频输出路径的示例方法的流程图;
[0009] 图4描绘了根据本公开的一个或多个方面的示例计算机系统的高级组件图示;
[0010] 图5描绘了根据本发明的一个或多个方面的处理器的框图;
[0011] 图6a_6b示意地示出了根据本公开的一个或多个方面的处理器微架构的元素;
[0012] 图7描绘了根据本发明的一个或多个方面的示例计算机系统的框图;
[0013] 图8描绘了根据本公开的一个或多个方面的示例芯片上系统(SoC)的框图;
[0014] 图9描绘了根据本公开的一个或多个方面的示例计算机系统的框图;以及
[0015] 图10描绘了根据本公开的一个或多个方面的示例芯片上系统(SoC)的框图。
【具体实施方式】
[0016] 此处描述了用于实现基于虚拟机的保护的视频路径的处理系统以及相关的方法。 此处所描述的系统和方法可以用于各种数字权限管理(DRM)实现中。
[0017] 此处的DRM应该是指用于数字内容项目(例如,视频内容、音频内容、多媒体内容 等等)的控制、执行、查看、复制、打印以及改变的硬件和软件实现的方法。各种开放的和/ 或专有的标准定义与某些数字内容保护机制的基于硬件的实现相关联的DRM安全级别。
[0018] 硬件平台的数字内容保护能力可以包括确定一连串信任的安全引导,用于加密/ 解密数字内容的加密密钥的保护,存储在硬件平台内的解密的内容部分(例如,帧)的保 护,以及已解码的内容输出的保护。实现存储在共享硬件平台内的解密的内容部分的保护 和由硬件平台输出的已解码的内容的保护要求分隔各种代理对共享硬件资源(例如,处理 器、存储器,和/或外围设备)的访问。本发明采用基于硬件辅助的虚拟化的代理分离机制 来实现与数字权限管理(DRM)相关联的数字内容保护功能。
[0019] 硬件平台可以被配置成通过提供硬件辅助的虚拟化来执行一个或多个虚拟机。 硬件平台可以包括通过共享的互连通信地耦合到存储器控制器和各种外围设备的处理 器。根据本发明的一个或多个方面,硬件平台可以被配置成向每一虚拟机指定唯一标识符 (VMID),作为虚拟机的启动序列的一部分。硬件平台可以进一步被配置成通过将相应的虚 拟机标识符包括在所有共享的互连访问事务中,来认证访问共享的互连的所有事务。共享 的互连、存储器控制器、以及外围设备可以被配置成基于由处理器提供的虚拟机标识符来 认证所有访问。
[0020] 在说明性示例中,硬件平台可以执行第一(安全)虚拟机和第二(非安全)虚拟 机。非安全虚拟机可以被编程为,通过网络接口或从文件系统输入经加密的数字内容项目 (例如,视频内容项目),并将经加密的数字内容项目存储到可被第一虚拟机访问的共享存 储器区域中。安全虚拟机可以被编程为从共享存储器区域检索经加密的数字内容项目的一 个或多个部分(例如,帧),解密检索到的内容部分,并将经解密的内容部分存储到被编程 为仅安全虚拟机能访问的安全存储器区域中。然后,安全虚拟机可以导致视频解码器解码 经解密的内容部分,并通过保护的流式传送端口将已解码的内容部分传输到显示控制器。 下面作为示例而并非作为限制地比较详细地描述了上面引用的方法和系统的各方面。
[0021] 在下面的描述中,阐述了很多具体细节,诸如特定类型的处理器和系统配置、特定 硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测 量值/高度、特定处理器流水线级和操作的示例,以便提供对本发明的全面的理解。然而, 对本领域普通技术人员显而易见的是,可以不必使用这些具体细节来实施此处所公开的方 法。在其他情况下,没有详细描述已知的组件或方法,诸如特定和替代处理器架构、特定逻 辑电路/用于描述算法的代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技 术和材料、特定编译器实现、代码中的算法的特定表达、特定断电和选通技术/逻辑及计算 机系统的其他特定操作细节,以避免对本发明造成不必要的模糊。
[0022] 虽然将处理器参考来描述下列各示例,但是,其他实现也适用于其他类型的集成 电路和逻辑设备。可以将此处所描述的示例的类似的技术和原理应用于可以得益于较高流 水线吞吐量和改善的性能的其他类型的电路或半导体器件。此处所描述的示例的原理适用 于执行数据操纵的任何处理器或机器。然而,本发明不仅限于执行512位、256位、128位、 64位、32位或16位数据操作的处理器或机器,并可以应用于其中执行对数据的操纵或管理 的任何处理器和机器。
[0023] 然而,示出了本发明和附图的示例不应该以限制的方式来解释,因为它们只是提 供此处所描述的各实施例的示例,而并非提供此处所描述的各实施例的所有可能的实现的 详细清单。虽然下面的示例在执行单元以及逻辑电路的上下文中描述了指令处理和分布, 但是此处所描述的系统和方法的其他实现可以通过存储在机器可读的、有形的介质上的数 据或指令来完成,这些数据或指令当由机器执行时,使机器执行根据此处所描述的至少一 个实施例的功能。在某些实现中,与此处所描述的各实施例相关联的功能是以机器可执行 指令来实现的。指令可以用来使利用指令编程的通用或专用的处理器来执行此处所描述的 方法。此处所描述的实现可以作为计算机程序产品或软件来提供,该计算机程序产品或软 件可以包括在其上存储了机器或计算机可读介质,指令可以被用来编程计算机(或其他电 子器件)以执行根据此处所描述的各实施例的一个或多个操作。可另选地,可以由包含用 于执行操作的固定功能逻辑的特定硬件组件,或由编程的计算机组件和固定功能硬件组件 的任何组合,来执行此处所描述的系统和方法的操作。
[0024] 用于编程逻辑以执行此处所描述的方法的指令可以存储在系统中的存储器内,诸 如DRAM、缓存、闪存,或其他存储器。此外,指令还可以通过网络或通过其他计算机可读介质 来分发。如此,机器可读的介质可以包括用于以机器(例如,计算机)可读的形式存储或传 输信息的任何机制,但不仅限于,软盘、光盘、压缩光盘、只读存储器(CD-ROM),以及磁光盘、 只读存储器(ROMs)、随机存取存储器(RAM)、可擦与可编程只读存储器(EPROM)、电可擦可 编程只读存储器(EEPROM)、磁卡或光卡、闪存,或用于通过电的、光学的、声音或其他形式的 传播信号(例如,载波、红外信号、数字信号等等)通过因特网来传输信息的有形的,机器可 读的存储器。相应地,计算机可读介质包括适于以可由机器(例如,计算机)读取的形式来 存储或传输电子指令或信息的任何类型的有形的机器可读取的介质。
[0025] 此处"处理器"应该是指能够执行指令编码算术、逻辑或I/O操作的设备。在一个 说明性示例中,处理器可以遵循冯诺依曼架构模型,并可以包括算术逻辑单元(ALU)、控制 单元以及多个寄存器。另一方面,处理器可以包括一个或多个处理核,因此可以是通常能够 处理单指令流水线的单核处理器,或同时可以处理多个指令流水线的多核处理器。在另一 方面,处理器可以实现为单个集成电路,两个或更多个集成电路,或可以是多芯片模块(例 如,其中,单个微处理器晶片被包括在单个集成电路封装中,因此共享单个插槽)的组件。
[0026] 现在参考图1,所示是根据本公开的一个或多个方面的示例处理系统100的框图。 如图1所示,处理系统100可以包括通过共享的互连115耦合到存储器控制器118和各种 外围设备(包括数字内容解码器121 (例如,由视频解码器所提供的数字内容解码器)和显 示控制器125)的一个或多个处理核111。在某些实现中,处理系统100还可以包括图1中 未示出的各种其他组件。
[0027] 处理系统100可以被设计为,通过实现硬件辅助的虚拟化,执行一个或多个虚拟 机131,同时分隔虚拟机和各种其他代理对共享硬件资源(例如,处理器、存储器,和/或外 围设备)的访问,如下面参考图2比较详细地描述的。
[0028] 根据本发明的一个或多个方面,处理核111可以被配置成在一个或多个内部寄存 器228中存储正在由硬件平台执行的一个或多个虚拟机131的标识符。处理核111可以进 一步被配置成通过将相应的虚拟机标识符包括在所有这样的事务中,来认证访问共享的互 连115的所有事务。共享的互连115可以被配置成基于由处理核111提供的虚拟机标识符, 来认证对耦合到共享的互连115的存储器控制器118和各种外围设备的所有访问。
[0029] 在说明性示例中,共享硬件平台可以执行第一(安全)虚拟机131A(在图1的说 明性示例中,通过VMID = 1来标识)和第二(非安全)虚拟机131B (在图1的说明性示例 中,通过VMID = 2来标识)。
[0030] 非安全虚拟机131B可以被编程为通过网络接口或从文件系统输入数字内容项目 (例如,视频内容项目)的一个或多个经加密的帧(例如,帧)。在说明性示例中,可以从在 线视频流服务中检索经加密的数字内容项目,用于由处理系统100被包括到其中的计算机 系统实时流式传送。
[0031] 响应于接收到数字内容项目的一个或多个经加密的部分,处理系统100可以被配 置成将经加密的内容部分存储在共享存储器区域135中。后者可以被安全和非安全虚拟机 以及被各种其他代理访问,而不会损害数字内容项目的安全性,如同以经加密的形式存储 在共享存储器中。
[0032] 处理系统100可以启动接收到的数字内容项目的回放(例如,响应于接收到用户 界面命令)。处理系统100可以配置共享的互连115,以只允许由安全虚拟机访问数字内容 解码器121。
[0033] 安全虚拟机131A可以被编程为从共享存储器区域135检索经加密的数字内容项 目的一个或多个内容部分(例如,响应于从非安全虚拟机131B接收到信号)。安全虚拟机 131A可以进一步被编程为解密检索到的内容部分,并将经解密的内容部分存储到安全存储 器区域138中,该安全存储器区域138被编程为只可被第一(安全)虚拟机访问。然后,安 全虚拟机131A可以导致数字内容解码器121解码经解密的内容部分。可以由安全虚拟机 131A通过专用的流端口 142将经过解码的内容部分传输到显示控制器125。可以通过硬件 防止该专用的流端口 142将流过流端口 142到显示控制器125的实时流重新定向到存储器 或到另一代理。
[0034] 响应于完成回放,处理系统100可以释放数字内容解码器121,使得它可被安全和 非安全虚拟机及其他代理访问。
[0035] 图2示意地示出了促进一个或多个虚拟机的执行而同时分隔由虚拟机以及各种 其他代理通过共享的互连对共享硬件资源(例如,处理器、存储器,和/或外围设备)的访 问的硬件辅助的虚拟化的示例实现。
[0036] 处理系统100可以实现硬件辅助的虚拟化机制,以便处理核的指令集可以被扩 展,以包括启动和退出虚拟机的指令。被称为虚拟机管理器(也被称为系统管理程序)205 的软件模块可以被用来创建和管理一个或多个虚拟机131。虚拟机管理器205可以给每一 虚拟机呈现来宾操作系统,并管理来宾操作系统的执行。各种应用程序软件可以由虚拟机 131通过共享处理系统100的硬件资源来执行。
[0037] 由处理核111执行的将数据和指令移进和移出相
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1