用于对多个图形处理器之间的通信加密的视频处理系统、方法

文档序号:6578831阅读:149来源:国知局
专利名称:用于对多个图形处理器之间的通信加密的视频处理系统、方法
技术领域
本发明涉及视频处理,且更明确地说涉及混合环境中的视频处理。
背景技术
在常规计算环境中,视频处理通常由图形处理器来实施。为增强此视频处理,通 常将所述处理分布于多个不同的图形处理器中。然而,此分布式处理环境已大体表现 出各种限制。举例来说,分布式图形处理器之间的通信时常会易于受到对所述通信的 不期望的存取及甚至对所述通信的不期望的改动。
因此,需要解决这些及/或其它与现有技术相关联的问题。

发明内容
提供一种用于对多个图形处理器之间的通信进行加密的视频处理系统、方法及计 算机程序产品。提供第一图形处理器。另外,提供与所述第一图形处理器通信的第二 图形处理器以用于共同地处理视频数据。此外,对此通信是进行加密。


图1显示根据一个实施例包含多个图形处理器的视频处理系统。 图2显示根据另一实施例包含多个图形处理器的视频处理系统。 图3显示根据又一实施例用于利用离散图形处理单元(GPU)将经加密的视频数
据传送到系统存储器的方法。
图4显示根据再一实施例用于利用集成GPU以经解密的视频数据驱动显示器的方法。
图5显示根据另一实施例用于使多个GPU同步的系统。
图6显示根据又一实施例用于利用旗语使多个GPU同步的方法。
图7显示根据再一实施例用于利用多个旗语使多个GPU同步的方法。
图8图解说明其中可实施各个先前实施例的各种架构及/或功能性的实例性系统。
具体实施方式
图1显示根据一个实施例包含多个图形处理器的视频处理系统100。如图所示,
第一图形处理器102与第二图形处理器104通信。在一个实施例中,第一图形处理器 102可经由总线而与第二图形处理器104通信。举例来说,所述总线可包含外围组件 互连(PCI)总线、PCI高速(PC正)总线等。然而,当然,第一图形处理器102可以任何 所需方式与第二图形处理器104通信。
关于本实施例,第一图形处理器102及第二图形处理器104可包含能够处理视频 数据的任何类型的图形处理器[例如,图形处理单元(GPU)]。作为选项,第一图形 处理器102与第二图形处理器104可以是对称的。作为另一选项,第一图形处理器102 与第二图形处理器104可以是不对称的。
另外,在一个实施例中,第一图形处理器102可包含离散图形处理器。任选地, 第一图形处理器102可专用于执行预定任务。仅举例来说,此预定任务可包含再现视 频数据(例如,从应用程序接收的至少一个视频帧等)。为此目的,第一图形处理器 102可出于再现目而与应用程序通信以从所述应用程序接收视频数据。
在另一实施例中,第二图形处理器104可包含集成图形处理器。举例来说,第二 图形处理器104可集成于主机系统(例如,采用第一图形处理器102及第二图形处理 器104的系统等)上。作为另一实例,第二图形处理器104可集成于(例如,所述主 机系统的)母板上。
作为选项,第二图形处理器104也可专用于执行与专用于第一图形处理器102的 预定任务不同的预定任务。举例来说,第二图形处理器104可专用于显示及/或叠加视 频数据。因此,第二图形处理器104可与显示器通信以用于显示及/或叠加视频数据。
因此,在一个实施例中,第一图形处理器102与第二图形处理器104可进行通信 以用于共同地处理视频数据。作为选项,第一图形处理器102可对所述视频数据执行 至少第一类型的处理且第二图形处理器104可对所述视频数据执行至少第二类型的处 理。仅举例来说,第一图形处理器102可再现所述视频数据且第二图形处理器104可 显示所再现的视频数据。
作为另一选项,第一图形处理器102可处理所述视频数据的第一部分且第二图形 处理器104可处理所述视频数据的第二部分。此外,第一图形处理器102与第二图形 处理器104可以任何所需次序共同地处理所述视频数据。当然,尽管上文已描述了各 种实例,但应注意,第一图形处理器102与第二图形处理器104可以任何所需方式共 同地处理所述视频数据。
此外,尽管仅显示了一个第一图形处理器102及一个第二图形处理器104,但应 注意,任何数量的第一图形处理器102可与任何数量的第二图形处理器104通信。因 此,作为选项,多个第一图形处理器102 (例如,离散图形处理器)可包含于视频处 理系统100中以用于共同地处理视频数据。仅举例来说,多个第一图形处理器102可
共同地对所述视频数据执行至少一个预定任务。
此外,关于其中第一图形处理器102与第二图形处理器104进行通信以用于共同地处理视频数据的以上实施例,可对第一图形处理器102与第二图形处理器104之间 的通信进行加密。可以任何所需方式对所述通信进行加密。举例来说,可利用涡轮密 码加密机制、位移动单元、位置乱(例如,经由像素着色器函数交换位等)及/或能够 对所述通信进行加密的任何其它算法来对所述通信进行加密。
在一个实例性实施例中,第一图形处理器102可处理(例如,解码)视频数据。 举例来说,第一图形处理器102可在(例如,从应用程序)接收到视频数据之后处理 所述视频数据。另外,可对所述视频数据进行加密。举例来说,第一图形处理器102 可在对所述视频数据进行解码之后对所述视频数据进行加密。此外,可将所述视频数 据发送到第二图形处理器104以供进一步处理。仅举例来说,第一图形处理器102可 对经处理的视频数据进行加密以供将其传递(例如,经由总线)到第二图形处理器104。 以此方式,在由第二图形处理器104从第一图形处理器102接收到经加密的视频数据 之后,第二图形处理器104可对经加密的视频数据进行解密以对经解密的视频数据进 行处理。
在另一实例性实施例中,第一图形处理器102可处理(例如,解码)视频数据。 另外,可(例如,给第一图形处理器102)提供密钥(例如,加密密钥)以供在对所 述视频数据迸行加密中使用。而且,第二图形处理器104可进一步处理所述视频数据。 任选地,可将经加密的视频数据发送到第二图形处理器104以供进一步处理。作为另 一选项,可给第二图形处理器104提供密钥以供在对经加密的视频数据进行解密中使 用。
在一个任选实施例中,可通过用密钥编程第一图形处理器102及/或第二图形处理 器104来给此第一图形处理器102及/或第二图形处理器104提供密钥。举例来说,可 在初始化(例如,启动)第一图形处理器102及/或第二图形处理器104之后用密钥编 程第一图形处理器102及/或第二图形处理器104。
在另一实施例中,可使第一图形处理器102与第二图形处理器104的操作同步以 保证其之间的通信。作为选项,可通过执行加密操作来保证所述通信。举例来说,如 上所述,可对第一图形处理器102与第二图形处理器104之间的通信进行加密。举例 来说,还如上所述,可对视频数据执行加密操作以产生经加密的视频数据。
作为另一选项,使第一图形处理器102与第二图形处理器104的操作同步可包含 使第一图形处理器102与第二图形处理器104所执行的处理同步(例如,协调)。此 处理可包含由第一图形处理器102将经解码的视频数据从其自身的帧缓冲器传送到系 统存储器。作为另一选项,所述处理可包含由第二图形处理器104从所述系统存储器 读取所述视频数据(例如,以对其进行解密及/或显示)。以此方式,可通过使第一图 形处理器102与第二图形处理器104的操作同步来防止视频数据处理中的不期望的假 信号。
作为又一选项,可提供数据结构(未显示)以供在使第一图形处理器102与第二 图形处理器104的操作同步中使用以保证其之间的通信。在一个实施例中,所述数据结构可包含至少一个旗语。此旗语可任选地在存储器中包含用于存储数据(例如,32
位值)的位置。
举例来说,所述旗语可存储向第一图形处理器102及/或第二图形处理器104指示 何时可起始其操作(例如,对视频数据的处理)的数据。为此目的,欲在第一图形处 理器102与第二图形处理器104之间同步的相应引擎可连续地、周期性地等轮询所述 旗语。当然,应注意,可以任何所需方式使第一图形处理器102与第二图形处理器104 的操作同步。
现在将阐述关于各种任选架构及特征的更多说明性信息,按照用户的需要,上文 框架可或可不由所述各种任选架构及特征来实施。应极其注意,以下信息是仅出于说 明性目的而阐述,而不应被视为以任何方式来加以限制。可在排除或不排除所描述的 其它特征的情况下任选地并入以下特征中的任一者。
图2显示根据另一实施例包含多个图形处理器的视频处理系统200。作为选项, 可在图1的视频处理系统100的上下文中实施本视频处理系统200。然而,当然,可 在任何所需环境中实施视频处理系统200。还应注意,上述定义可应用于本说明期间。
如图所示,第一图形处理器202 (下文中,离散图形处理器202)与第二图形处 理器206 (下文中,集成图形处理器206)通信。离散图形处理器202与集成图形处理 器206还与存储经加密及解密的视频数据的系统存储器204通信。系统存储器204可 包含于主机系统中(未显示)。举例来说,可经由总线来提供(例如,离散图形处理 器202、集成图形处理器206及/或系统存储器204之间的)此一通信。
作为选项,离散图形处理器202与集成图形处理器206可由驱动器207控制。举 例来说,驱动器207可包含用于控制离散图形处理器202与集成图形处理器206的多 个组件(例如,计算机代码)。驱动器207可基于其上定位有离散图形处理器202与 集成图形处理器206的系统的应用程序而任选地控制离散图形处理器202与集成图形 处理器206。
驱动器207可产生多个指令序列(例如, 一批命令等)并将此类指令发送到离散 图形处理器202及/或集成图形处理器206。关于本实施例,所述指令可指令离散图形 处理器202及/或集成图形处理器206执行下文所述的操作中的任一者。
在一个实施例中,离散图形处理器202可从应用程序(未显示)接收视频数据。 所述应用程序可包含到输入装置[例如,数字视频磁盘(DVD)播放器等]的接口。因 此,离散图形处理器202可从所述应用程序接收视频数据作为输入。作为选项,可对 所接收的视频数据进行编码(例如,出于保护的目的)。
在由离散图形处理器202接收到视频数据之后,离散图形处理器202可处理所述 视频数据。举例来说,离散图形处理器202的视频/3维(3D)引擎210可处理所述视 频数据。作为选项,此处理可包含对所述视频数据进行解码。作为另一选项,所述处 理可包含将所述视频数据存储于离散图形处理器202的帧缓冲器208中。作为又一选 项,所述处理可包含从离散图形处理器202的帧缓冲器208读取所述视频数据且再现所述视频数据。
作为再一选项,所述处理可包含对所再现的视频数据进行加密。举例来说,离散 图形处理器202可基于对是否将对所述视频数据进行加密的确定而有条件地对所述视 频数据进行加密。在一个实施例中,此确定可基于从驱动器207接收的命令来实现。 举例来说,如果所述命令参照其处将存储有所述视频数据的与系统存储器204相关联 的虚拟地址,则离散图形处理器202可利用页表将所述虚拟地址映射到系统存储器204 中的相关联物理地址。
此外,离散图形处理器202可确定所述物理地址是否被预定为与系统存储器204 中用密钥(例如,加密密钥)保护的部分相关联。如果所述物理地址被预定为与系统 存储器204中用密钥保护的部分相关联,则离散图形处理器202可对所述视频数据进 行加密。在一个实施例中,离散图形处理器202可用供在对所述视频数据进行加密中 使用的密钥来编程。
而且,离散图形处理器202可与系统存储器204通信以将经加密的视频数据存储 于系统存储器204中(例如,将经加密的视频数据写入到系统存储器204)。如图所 示,系统存储器204可包含经加密部分204A及未经加密部分204B。经加密部分204A 可任选地包含系统存储器204中用密钥保护的部分。作为另一选项,经加密部分204A 可包含用于存储经加密的视频数据的缓冲器。作为再一选项,未经加密部分204B可 包含系统存储器204中未用所述密钥保护的部分。此未经加密部分204B可任选地包 含用于存储未经加密的视频数据的缓冲器。
为此目的,离散图形处理器202可将经加密的视频数据存储于系统存储器204的 经加密部分204A中,举例来说,通过将经加密的视频数据写入于系统存储器204的 经加密部分204A。响应于将经加密的视频数据存储于系统存储器204中,离散图形处 理器202 (例如,离散图形处理器202的视频/3D引擎210)可将第一旗语212写入到 系统存储器204中。第一旗语212可指示已将经加密的视频数据存储于系统存储器204 中,且因此集成图形处理器206可处理所存储的经加密的视频数据。举例来说,第一 旗语212中可存储有与此指示相关联的预定值。
此外,集成图形处理器206可从系统存储器204中检索经加密的视频数据(例如, 通过从系统存储器204的经加密部分204A读取经加密的视频数据)。在一个实施例 中,集成图形处理器206可基于第一旗语212而从系统存储器204中检索经加密的视 频数据。举例来说,只有第一旗语212指示已将经加密的视频数据存储于系统存储器 204中,集成图形处理器206才可从系统存储器204中检索经加密的视频数据。以此 方式,可使用第一旗语212来确保集成图形处理器206避免从系统存储器204中检索 经加密的视频数据直到离散图形处理器202已完成将经加密的视频数据存储于系统存 储器204中。
因此,可连续地、周期性地等轮询第一旗语212以确定第一旗语212是否指示经 加密的视频数据已被存储于系统存储器204中。作为选项,可由主机处理器(未显示)轮询第一旗语212,所述主机处理器调度由离散图形处理器202及/或集成图形处理器 206进行的处理。作为另一选项,响应于第一旗语212指示经加密的视频数据已被存 储于系统存储器204中的确定,可向驱动器207发出命令(例如,由所述主机处理器) 以指令集成图形处理器206从系统存储器204中检索经加密的视频数据。
如图所示,集成图形处理器206的3D引擎214 (例如,图形引擎)可从系统存 储器204中检索经加密的视频数据。此外,集成图形处理器206 (例如,集成图形处 理器206的3D引擎214)可处理所检索的经加密的视频数据。在一个实施例中,所述 处理可包含对经加密的视频数据进行解密。在另一实施例中,处理可包含将经解密的 视频数据存储于系统存储器204中(例如,通过将经解密的视频数据写入到系统存储 器204)。举例来说,可将经解密的视频数据存储于系统存储器204的未经加密部分 204B中。
作为选项,响应于将经解密的视频数据存储于系统存储器204中,图形处理器206 (例如,集成图形处理器206的3D引擎214)可将第二旗语216写入到本地存储器中。 第二旗语216可指示经解密的视频数据已被存储于系统存储器204中,且因此集成图 形处理器206的视频引擎218可处理经解密的视频数据或显示器引擎可显示经解密的 视频数据。举例来说,第二旗语216中可存储有与此指示相关联的预定值。为此目的, 可利用第二旗语216来使集成图形处理器206的视频引擎218及3D引擎206同步。
举例来说,集成图形处理器206 (例如,集成图形处理器206的视频引擎218) 可从系统存储器204中检索经解密的视频数据(例如,通过从系统存储器204的未经 加密部分204B读取经解密的视频数据)。在一个实施例中,集成图形处理器206可 基于第二旗语216而从系统存储器204中检索经解密的视频数据。举例来说,只有第 二旗语216指示经解密的视频数据已被存储于系统存储器204中时,集成图形处理器 206才可从系统存储器204中检索经解密的视频数据。因此,可连续地、周期性地等 轮询第二旗语216以确定第二旗语216是否指示经解密的视频数据己被存储于系统存 储器204中。以此方式,可利用第二旗语216协调由集成图形处理器206 (例如,由 集成图形处理器206的3D引擎214及视频引擎218)进行的处理。
而且,响应于由集成图形处理器206检索到经解密的视频数据,集成图形处理器 206 (例如,集成图形处理器206的视频引擎218)可写入到第二旗语216以重置第二 旗语216。另外,响应于由集成图形处理器206检索到经解密的视频数据,集成图形 处理器206 (例如,集成图形处理器206的视频引擎218)可进一步处理经解密的视频 数据。此处理可包含显示经解密的视频数据。举例来说,集成图形处理器206的视频 引擎218可与显示器(未显示)通信以利用经解密的视频数据来驱动所述显示器。
在由集成图形处理器206从系统存储器204中检索到经加密的视频数据之后,集 成图形处理器206可对第一旗语212进行写入以向离散图形处理器202指示已检索到 经加密的视频数据。举例来说,第一旗语212中可存储有与此指示相关联的预定值。 因此,可利用第一旗语212来确定集成图形处理器206是否已从系统存储器204中检
9索到经加密的视频数据以便离散图形处理器202可将其它经加密的视频数据存储于系 统存储器204中(例如,系统存储器204的经加密部分204A中)。为此目的,可利 用第一旗语212来协调由离散图形处理器202及集成图形处理器206进行的处理。
图3显示根据再一实施例利用离散图形处理单元(GPU)将经加密的视频数据传 送到系统存储器的方法300。作为选项,可在图1-2的功能性及架构的上下文中实施 本方法300。然而,当然,可在任何所需环境中实施方法300。同样,应注意,上述定 义可应用于本说明期间。
如决策302中所示,确定主机系统是否正在混合模式中操作。关于本实施例,所 述主机系统可包含其中包含离散GPU及集成GPU两者且能够利用所述离散GPU及所 述集成GPU来共同地处理视频数据的系统。因此,确定所述主机系统是否正在混合模 式中操作可包含确定所述离散GPU及所述集成GPU两者是否正在所述主机系统上操 作(例如,初始化、启用等)。举例来说,所述离散GPU及所述集成GPU可由所述 主机系统选择性地用于处理视频数据。
如果确定所述主机系统未在混合模式中操作,则方法300等待所述主机系统在混 合模式中操作。然而,如果确定所述主机系统正在混合模式中操作,则在驱动器初始 化期间建立密钥。注意操作304。关于本实施例,所述密钥可包含能够用于对视频数 据进行加密的任何密钥。
在一个实施例中,建立所述密钥可包含用所述密钥来编程所述离散GPU。作为选 项,所述集成GPU也可用所述密钥来编程。举例来说,所述主机系统的驱动器可用所 述密钥来编程所述离散GPU及所述集成GPU。
在另一实施例中,在驱动器初始化期间建立所述密钥可包含在所述主机系统的驱 动器初始化所述离散GPU及/或所述集成GPU时建立所述密钥。仅举例来说,所述驱 动器可在所述主机系统的操作系统被启动(例如,通电)时初始化所述离散GPU,且 因此用所述密钥来编程所述离散GPU。作为另一实例,所述驱动器可在所述主机系统 被启动时初始化所述集成GPU,且因此用所述密钥来编程所述集成GPU。
另外,在所述离散GPU处接收经编码的视频数据,如操作306中所示。所述经 编码的视频数据可包含已从一种格式被转换为另一格式的任何视频数据。举例来说, 所述视频数据可经编码以保护所述视频数据免遭对所述视频数据的不期望的使用。作 为选项,所述视频数据可由所述视频数据的发行者来编码。
在一个实施例中,经编码的视频数据可由应用程序接收。仅举例来说,经编码的 视频数据可由介接主机系统与输入装置的应用程序接收,所述主机装置可从所述输入 装置接收所述视频数据。此应用程序可任选地安装且执行于所述主机系统上。
此外,如操作308中所示,可用所述离散GPU对所述视频数据进行解码。作为 选项,可利用为所述离散GPU所知的算法对所述视频数据进行解码。举例来说,可通 过将所述视频数据从第二格式(例如,所述视频数据被接收时的格式)转换为第一格 式(例如,能够经由所述主机系统的离散GPU显示)来对所述视频数据进行解码。而且,再现所述视频数据且将其存储于所述离散GPU的帧缓冲器中。注意操作
310。在一个实施例中,可通过从所视频数据产生图像来再现所述视频数据。因此,可 将所述图像存储于所述帧缓冲器中。此帧缓冲器可任选地被指定仅供所述离散GPU使 用。因此,所述离散GPU可以是能够将数据写入到所述帧缓冲器且从所述帧缓冲器读 取数据的唯一装置。
还如图所示,对所述视频数据进行加密且将其传送到系统存储器。注意操作312。 在一个任选实施例中,所述离散GPU可从所述离散GPU的帧缓冲器读取所述视频数 据以对所述视频数据进行加密。作为选项,可利用在驱动器初始化期间建立的密钥(在 操作304中)对所述视频数据进行加密。
此外,将所述视频数据传送到所述系统存储器可包含将所述视频数据写入到所述 系统存储器。作为选项,指令所述离散GPU将所述视频数据传送到系统存储器的从所 述驱动器接收的指令可指示所述系统存储器中所述视频数据将被传送到的位置。举例 来说,所述指令可包含与所述系统存储器相关联的虚拟地址的指示,所述离散GPU可 利用页表将所述虚拟地址翻译为物理地址,且所述离散GPU可将所述视频数据存储于 所述系统存储器中所述物理地址处。
为此目的,可利用所述离散GPU将经加密的视频数据传送到系统存储器。此外, 所述离散GPU可进一步执行处理所述系统存储器中所存储的视频数据,如下文结合图 4所描述。
图4显示根据又一实施例用于利用集成GPU用经解密的视频数据来驱动显示器 的方法400。作为选项,可在图1-3的功能性及架构的上下文中实施本方法400。然而, 当然,可在任何所需环境中实施方法400。同样,应注意,上述定义可应用于本说明 期间。
如操作402中所示,使用集成GPU从系统存储器中检索经加密的视频数据。在 一个实施例中,可通过读取经加密的视频数据来检索经加密的视频数据。在另一实施 例中,可响应于旗语指示经加密的视频数据己被传送到所述系统存储器的确定而检索 经加密的视频数据。
另外,对所述视频数据进行解密且将其写入到系统存储器,如操作404中所示。 关于本实施例,可利用所述集成GPU对所述视频数据进行解密且将其写入到系统存储 器。作为选项,可利用在驱动器初始化期间建立的密钥(例如,参见图3的操作304) 对所述视频数据进行解密。
此外,对旗语进行写入。注意操作406。举例来说,所述旗语可由所述集成GPU 写入。关于本实施例,所述旗语可包含所述系统存储器中的位置,所述旗语专用于提 供是否已从系统存储器中检索到经加密的视频数据的指示。举例来说,如果所述旗语 指示已从系统存储器中检索到经加密的视频数据,则此指示可允许离散GPU将额外经 加密的视频数据存储于所述系统存储器中。因此,所述旗语可写入有指示已检索到经 加密的视频数据的预定值。此外,如操作408中所示,使用所述集成GPU用经解密的视频数据来驱动显示 器。举例来说,所述集成GPU可将经解密的视频数据扫描到所述显示器。以此方式, 可显示经解密的视频数据。
在决策410中,确定所述集成GPU是否完成用所述视频数据驱动所述显示器。 举例来说,可确定是否已显示所有视频数据。如果确定所述集成GPU未完成用所述视 频数据驱动所述显示器,则方法400继续到允许使用所述集成GPU用经解密的视频数 据驱动所述显示器。
然而,如果确定所述集成GPU完成用所述视频数据驱动所述显示器,则通知所 述离散GPU。注意操作412。在一个实施例中,可利用旗语通知所述离散GPU。举例 来说, 一旦所述集成GPU完成用所述视频数据驱动所述显示器,则主机处理器可检查 所述旗语以确定所述旗语是否指示已检索到经加密的视频数据且可通知所述离散 GPU已检索到经加密的视频数据。以此方式,可允许所述离散GPU将额外经加密的 视频数据存储于所述系统存储器中。
图5显示根据另一实施例用于使多个GPU同步的系统500。作为选项,可在图 1-4的功能性及架构的上下文中实施本系统500。然而,当然,可在任何所需环境中实 施系统500。同样,应注意,上述定义可应用于本说明期间。
如图所示,第一图形处理器502及第二图形处理器510与系统存储器504通信。 关于本实施例,第一图形处理器502可包含离散图形处理器。此外,关于本实施例, 第二图形处理器510可包含集成图形处理器。
另外,系统存储器504包含经加密部分506及经解密部分508。经加密部分506 可包含用于将经加密的视频数据存储于其中的多个缓冲器(To及T。。经解密部分508 也可包含用于将经解密的视频数据存储于其中的多个缓冲器(IO[A]及IO[B])。
经加密部分506的缓冲器可由第一图形处理器502交替地用于将经加密的视频存 储于其中。类似地,经解密部分508的缓冲器可由第二图形处理器510交替地用于将
经解密的视频数据存储于其中。
举例来说,在一个实施例中,第一图形处理器502可从应用程序接收第一视频数 据。举例来说,所述第一视频数据可包含视频数据帧。第一图形处理器502可处理所 述第一视频数据且对所述第一视频数据进行加密。在对所述第一视频数据进行加密之 后,第一图形处理器502可将此经加密的第一视频数据写入到系统存储器504的经加 密部分506的第一缓冲器(To)。
在将经加密的第一视频数据写入到经加密部分506的第一缓冲器之后,第一图形 处理器502可释放与经加密部分506的第一缓冲器相关联的第一旗语。举例来说,第 一图形处理器502可将预定用于指示已将经加密的视频数据写入到所述第一缓冲器的 值写入到所述第一旗语。
为此目的,第二图形处理器510可识别所述第一旗语的释放(例如,基于对所述 第一旗语的轮询等)且可获取所述第一旗语。可通过将预定用于指示所述第一缓冲器中所存储的经加密的视频数据正在被读取的过程中的值写入到所述第一旗语来获取所
述第一旗语。此外,第二图形处理器510可读取经加密部分506的第一缓冲器中所存 储的经加密的视频数据。
在第二图形处理器510获取所述第一旗语的同时,第一图形处理器502可从应用 程序接收第二视频数据、处理所述第二视频数据、对所述第二视频数据迸行加密且将 此经加密的第二视频数据存储于系统存储器504的经加密部分506的第二缓冲器(T0 中。在将经加密的第二视频数据存储于经加密部分506的第二缓冲器中之后,第一图 形处理器502可释放与经加密部分506的第二缓冲器相关联的第二旗语。
在第二图形处理器510从经加密部分506的第一缓冲器读取经加密的视频数据之 后,第二图形处理器510可释放所述第一旗语(例如,通过将预定用于指示所述第一 缓冲器中所存储的经加密的视频数据已被读取的值写入到所述第一旗语)。因此,第 一图形处理器502可识别所述第一旗语的释放(例如,基于对所述第一旗语的轮询等) 且可获取所述第一旗语以将再一些视频数据存储于经加密部分506的第一缓冲器中。 为此目的,在经加密的视频数据在经加密部分506的缓冲器中的初始存储之后,基于 第二图形处理器510对与经加密部分506的缓冲器相关联的旗语的释放,第一图形处 理器502可交替进行经加密的视频数据在此经加密部分506的多个缓冲器中的存储。
此外,在第二图形处理器510接收到经加密的视频数据之后,第二图形处理器510 可对经加密的视频数据进行解密。第二图形处理器510也可获取与系统存储器504的 经解密部分508的第一缓冲器(IO[A])相关联的第三旗语。获取与经解密部分508的第 一缓冲器相关联的第三旗语可包含将指示经解密的视频数据正在被写入到经解密部分 508的第一缓冲器的过程中的值写入到所述第三旗语。
第二图形处理器510可对所检索的经加密的视频数据进行解密且将经解密的视频 数据写入到系统存储器504的经解密部分508的第一缓冲器。第二图形处理器510可 在经解密的视频数据被写入到经解密部分508的第一缓冲器之后释放所述第三旗语。 在释放所述第三旗语之后,第二图形处理器510可进一步从经解密部分508的第一缓 冲器读取经解密的视频数据且可在显示器上显示此经解密的视频数据。
在显示经解密的视频数据的同时,第二图形处理器510可识别由第一图形处理器 502对与经加密部分506的第二缓冲器相关联的第二旗语的释放且可获取所述第二旗 语。此外,第二图形处理器510可读取经加密部分506的第二缓冲器中所存储的经加 密的视频数据。
一旦从经加密部分506的第二缓冲器读取到经加密的视频数据,则第二图形处理 器510可释放与经加密部分506的第二缓冲器相关联的第二旗语,以便可允许第一图 形处理器502将其它经加密的视频数据写入到所述第二缓冲器,如上所述。在第二图 形处理器510接收到经加密的视频数据之后,第二图形处理器510可对经加密的视频 数据进行解密。第二图形处理器510也可获取与系统存储器504的经解密部分508的 第二缓冲器(IO[B])相关联的第四旗语。第二图形处理器510可对所检索的经加密的视频数据进行解密并将经解密的视频
数据写入到系统存储器504的经解密部分508的第二缓冲器。第二图形处理器510可 在经解密的视频数据被写入到经解密部分508的第二缓冲器之后释放所述第四旗语。 在释放所述第四旗语之后,第二图形处理器510可进一步从经解密部分508的第二缓 冲器读取经解密的视频数据且可在显示器上显示此经解密的视频数据。在经解密的视 频数据在系统存储器504的经解密部分508的缓冲器中的初始存储之后,基于第二图 形处理器510对与经解密部分508的缓冲器相关联的旗语的释放,第二图形处理器510 可交替进行经解密的视频数据在此经解密部分508的缓冲器中的存储。
因此,在一个实例性实施例中且关于系统存储器504的经加密部分506,第一图 形处理器502可将经加密的视频数据写入到系统存储器504的第一缓冲器(T。),且第 二图形处理器510可在第一图形处理将经加密的视频数据写入到系统存储器504的第 一缓冲器(T。)时(例如,同时)从系统存储器504的第二缓冲器(T0读取经加密的视频 数据。另外,第一图形处理器502可将经加密的视频数据写入到系统存储器504的第 二缓冲器(TO,且第二图形处理器510可在第一图形处理器502将经加密的视频数据 写入到系统存储器504的第二缓冲器(T,)时从系统存储器504的第一缓冲器(To)读取经 加密的视频数据。以此方式交替使用缓冲器可任选地防止与第一图形处理器502及第 二图形处理器510将视频数据写入到缓冲器及从缓冲器读取视频数据相关联的延迟。
在另一实例性实施例中,如上所述,可使用旗语来确保第二图形处理器510避免 从系统存储器504的第一缓冲器(TQ)读取经加密的视频数据直到第一图形处理器502 已完成将经加密的视频数据写入到系统存储器504的第一缓冲器(To)。另外,旗语也 可确保第二图形处理器510避免从系统存储器504的第二缓冲器(TD读取经加密的视 频数据直到第一图形处理器502已完成将经加密的视频数据写入到系统存储器504的 第二缓冲器(TD。
图6显示根据再一实施例用于利用旗语使多个GPU同步的方法600。作为选项, 可在图1-5的功能性及架构的上下文中实施本方法600。然而,当然,可在任何所需 环境中实施方法600。同样,应注意,上述定义可应用于本说明期间。
如决策602中所示,确定离散图形处理器是否将经加密的视频数据从本地缓冲器 (cU)复制(例如,写入)到系统存储器的经加密部分(T)。举例来说,此本地存储器可 包含对所述离散图形处理器为本地的存储器。如果确定所述离散图形处理器未将经加 密的视频数据从本地缓冲器复制到系统存储器的经加密部分,则所述方法继续到等待 所述离散图形处理器将经加密的视频数据从所述本地缓冲器复制到系统存储器的经加 密部分。
如果确定所述离散图形处理器将经加密的视频数据从本地缓冲器复制到系统存 储器的经加密部分,则确定所述离散图形处理器是否释放旗语(例如,通过将值"l" 写入到所述旗语)。注意决策604。关于本实施例,所述离散图形处理器可在完成将 经加密的视频数据从本地缓冲器复制到系统存储器的经加密部分之后释放所述旗语。如果确定所述离散图形处理器未释放所述旗语,则方法600继续到等待所述离散 图形处理器释放所述旗语。举例来说,可连续地轮询所述旗语以确定其值是否指示已 释放所述旗语。
如果确定所述离散图形处理器释放所述旗语,则确定是否获取所述旗语(参见决
策606)。仅举例来说,集成图形处理器可在确定所述离散图形处理器已释放所述旗 语之后获取所述旗语。如图所示,可通过将值"1"写入到所述旗语来获取所述旗语。
如果确定所述旗语未被获取,则方法600继续到等待所述旗语被获取。如果确定 获取所述旗语,则从系统存储器的经加密部分读取经加密的视频数据、对其进行解密 且将其复制到系统存储器的未经加密部分(IO[A])。注意操作608。
此外,所述集成图形处理器的视频引擎用系统存储器的未经加密部分中所存储的 经解密的视频数据来驱动显示器,如操作609中所示。举例来说,所述视频引擎可从 系统存储器的未经加密部分读取经解密的视频数据且可显示此经解密的视频数据。而 且,释放所述旗语(例如,通过将值"O"写入到所述旗语),如操作610中所示。举 例来说,所述旗语可由所述集成图形处理器释放。
还如图所示,可再次获取所述旗语(例如,通过将值"1"写入到所述旗语)。 注意操作612。在一个实施例中,所述离散图形处理器可在所述集成图形处理器释放 所述旗语时获取所述旗语。因此,所述离散图形处理器可将额外经加密的视频数据从 本地缓冲器复制到系统存储器的经加密部分。
图7显示根据又一实施例用于利用多个旗语使多个GPU同步的方法700。作为选 项,可在图1-6的功能性及架构的上下文中实施本方法700。然而,当然,可在任何 所需环境中实施方法700。同样,应注意,上述定义可应用于本说明期间。
如决策702中所示,确定离散图形处理器是否将经加密的视频数据从第一本地缓 冲器(dOA)复制(例如,写入)到系统存储器的经加密部分的第一缓冲器(To)。举例来 说,此第一本地缓冲器可包含对所述离散图形处理器为本地的存储器。如果确定所述 离散图形处理器未将经加密的视频数据从第一本地缓冲器复制到系统存储器的经加密 部分的第一缓冲器,则方法700继续到等待所述离散图形处理器将经加密的视频数据 从第一本地缓冲器复制到系统存储器的经加密部分的第一缓冲器。
如果确定所述离散图形处理器将经加密的视频数据从第一本地缓冲器复制到系 统存储器的经加密部分的第一缓冲器,则确定所述离散图形处理器是否释放第一旗语 (例如,通过将值"l"写入到所述第一旗语)。注意决策704。所述第一旗语可与系 统存储器的经加密部分的第一缓冲器相关联。关于本实施例,所述离散图形处理器可 在完成将经加密的视频数据从第一本地缓冲器复制到系统存储器的经加密部分的第一 缓冲器之后释放所述第一旗语。
如果确定所述离散图形处理器未释放所述第一旗语,则方法700继续到等待所述 离散图形处理器释放所述第一旗语。举例来说,可连续地轮询所述第一旗语以确定其 值是否指示已释放所述第一旗语。如果确定所述离散图形处理器释放所述第一旗语,则执行并行处理,如图所示。 举例来说,可与操作706-710及718-724中的任一者并行地执行操作712-716及726。 在一个实施例中,确定是否获取所述第一旗语(参见决策706)。仅举例来说,集成 图形处理器可在确定所述离散图形处理器已释放所述第一旗语之后获取所述第一旗 语。如图所示,可通过将值"1"写入到所述第一旗语获取所述第一旗语。
如果确定所述第一旗语未被获取,则方法700继续到等待所述第一旗语被获取。 如果确定所述第一旗语被获取,则从系统存储器的经加密部分的第一缓冲器读取经加 密的视频数据、对其进行解密且将其复制到系统存储器的未经加密部分的第一缓冲器 (IO[A])。注意操作708。
此外,所述集成图形处理器的视频引擎用系统存储器的未经加密部分的第一缓冲 器中所存储的经解密的视频数据来驱动显示器,如操作709中所示。举例来说,所述 视频引擎可从系统存储器的未经加密部分的第一缓冲器读取经解密的视频数据且可显 示此经解密的视频数据。而且,释放所述第一旗语(例如,通过将值"0"写入到所述 旗语),如操作710中所示。举例来说,所述第一旗语可由所述集成图形处理器释放。
在另一实施例中,确定所述离散图形处理器是否获取第二旗语。注意决策712。 因此,在确定所述集成图形处理器是否获取所述第一旗语(决策706)的同时,可确 定所述离散图形处理器是否获取第二旗语(决策712)。
所述第二旗语可与系统存储器的经加密部分的第二缓冲器相关联。关于本实施 例,只有所述第二旗语已被释放(例如,由所述集成图形处理器),所述离散图形处 理器才可获取所述第二旗语。获取所述第二旗语可包含将用于指示经加密的视频数据 正在被写入到系统存储器的经加密部分的第二缓冲器的值"O"写入于所述第二旗语中。
如果确定所述离散图形处理器未获取所述第二旗语,则方法700继续到等待所述 离散图形处理器获取所述第二旗语。如果确定所述离散图形处理器获取所述第二旗语, 则所述离散图形处理器将其它经加密的视频数据从第二本地缓冲器(dOB)复制(例如,
写入)到系统存储器的经加密部分的第二缓冲器(Ti)。注意操作714。举例来说,此第 二本地缓冲器可包含对所述离散图形处理器为本地的存储器。如果确定所述离散图形 处理器未将经加密的视频数据从第二本地缓冲器复制到系统存储器的经加密部分的第 二缓冲器,则方法700继续到等待所述离散图形处理器将经加密的视频数据从第二本 地缓冲器复制到系统存储器的经加密部分的第二缓冲器。
如果确定所述离散图形处理器将经加密的视频数据从第二本地缓冲器复制到系 统存储器的经加密部分的第二缓冲器,则确定所述离散图形处理器是否释放所述第二 旗语(例如,通过将值"1"写入到所述第二旗语)。注意操作716。所述第二旗语可 与系统存储器的经加密部分的第二缓冲器相关联。关于本实施例,所述离散图形处理 器可在完成将经加密的视频数据从第二本地缓冲器复制到系统存储器的经加密部分的 第二缓冲器之后释放所述第二旗语。
如果确定所述离散图形处理器尚未释放所述第二旗语,则方法700继续到等待所述离散图形处理器释放所述第二旗语。举例来说,可连续地轮询所述第二旗语以确定 其值是否指示已释放所述第二旗语。
如果确定所述离散图形处理器释放所述第二旗语,则执行并行处理,如图所示。 在一个实施例中,确定所述第二旗语是否被获取(参见决策718)。仅举例来说,所 述集成图形处理器可在确定所述离散图形处理器已释放所述第二旗语之后获取所述第 二旗语。如图所示,可通过将值"1"写入到所述第二旗语来获取所述第二旗语。
如果确定所述第二旗语未被获取,则方法700继续到等待所述第二旗语被获取。
如果确定所述第二旗语被获取,则从系统存储器的经加密部分的第二缓冲器读取经加 密的视频数据、对其进行解密且将其复制到系统存储器的未经加密部分的第二缓冲器
(IO[B])。注意操作720。
此外,所述集成图形处理器的视频引擎用系统存储器的未经加密部分的第二缓冲 器中所存储的经解密的视频数据来驱动显示器,如操作722中所示。举例来说,所述 视频引擎可从系统存储器的未经加密部分的第二缓冲器读取经解密的视频数据且可显 示此经解密的视频数据。而且,释放所述第二旗语(例如,通过将值"0"写入到所述 第二旗语),如操作724中所示。举例来说,所述集成图形处理器可释放所述第二旗 语。
在另一实施例中,确定所述离散图形处理器是否获取所述第一旗语。注意决策 726。因此,在确定所述集成图形处理器是否获取所述第二旗语(决策718)的同时, 可确定所述离散图形处理器是否获取所述第一旗语(决策726)。
因此,所述第一旗语可再次由所述离散图形处理器获取(例如,通过将值"1" 写入到所述第一旗语)。在一个实施例中,所述离散图形处理器可在所述集成图形处 理器释放所述第一旗语时获取所述第一旗语。因此,所述离散图形处理器可将额外经 加密的视频数据从第一本地缓冲器复制到系统存储器的经加密部分的第一缓冲器(决 策702)。
图8图解说明其中可实施各个先前实施例的各种架构及/或功能性的实例性系统 800。如图所示,提供包含连接到通信总线802的至少一个主机处理器801的系统800。 系统800还包含主要存储器804。控制逻辑(软件)及数据存储于主要存储器804中, 主要存储器804可釆取随机存取存储器(RAM)的形式。
系统800还包含图形处理器806及显示器808,即,计算机监视器。在一个实施 例中,图形处理器806可包含多个着色器模块、光栅化模块等。上述模块中的每一者 可甚至设置于单一半导体平台上以形成图形处理单元(GPU)。
在本说明中,单一半导体平台可指代单独整体式基于半导体的集成电路或芯片。 应注意,术语"单一半导体平台"还可指代具有增强的连接性的多芯片模块,其模拟 芯片上操作且对利用常规中央处理单元(CPU)及总线实施方式做出显著改进。当然, 还可按照用户的需要,单独地或以半导体平台的各种组合的形式设置各种模块。
系统800还包含辅助存储装置810。辅助存储装置810包含(举例来说)硬盘驱动器及/或可抽换式存储装置驱动器(其表示软盘驱动器、磁带驱动器、压縮盘驱动器 等)。可抽换式存储装置驱动器以众所周知的方式从可抽换式存储单元进行读取及/ 或向可抽换式存储单元进行写入。
计算机程序或计算机控制逻辑算法可存储于主要存储器804及/或辅助存储装置
810中。在被执行时,此类计算机程序使系统800能够执行各种功能。存储器804、储 存装置810及/或任何其它储存装置均为计算机可读媒体的可能实例。
在一个实施例中,可在主机处理器801、图形处理器806、能够实现主机处理器 801及图形处理器806两者的能力的至少一部分的集成电路(未显示)、芯片组(即, 设计用于作为执行相关功能的单元来工作及出售的集成电路群组)及/或用于所述事项 的任何其它集成电路的上下文中实施各个先前图式的架构及/或功能性。
而且,可在通用计算机系统、电路板系统、专用于娱乐目的的游戏控制台系统、 专用系统及/或任何其它所需系统的上下文中实施各个先前图式的架构及/或功能性。举 例来说,系统800可采取桌上型计算机、膝上型计算机及/或任何其它类型的逻辑的形 式。而且,系统800可采取各种其它装置的形式,其包含但不限于个人数字助理(PDA) 装置、移动电话装置、电视等。
此外,尽管未显示,但系统800可出于通信目的而耦合到网络[例如,电信网络、 局域网络(LAN)、无线网络、例如因特网等广域网络(WAN)、点对点网络、电缆 网络等]。
尽管上文已描述各个实施例,但应了解,所述实施例仅以实例的方式而非限制的 方式呈现。因此,优选实施例的广度及范围不应受限于上述实例性实施例中的任一者, 而应仅根据以下权利要求书及其等效内容来界定。
权利要求
1、一种设备,其包括第一图形处理器;及第二图形处理器,其与所述第一图形处理器通信以用于共同地处理视频数据;其中所述通信被加密。
2、 如权利要求1所述的设备,其中所述第一图形处理器与所述第二图形处理器 是对称的。
3、 如权利要求1所述的设备,其中所述第一图形处理器与所述第二图形处理器 是不对称的。
4、 如权利要求3所述的设备,其中所述第一图形处理器包含离散图形处理器且 所述第二图形处理器包含集成于主机系统上的集成图形处理器。
5、 如权利要求4所述的设备,其中包含有多个所述离散图形处理器以用于共同地处理所述视频数据。
6、 如权利要求4所述的设备,其中所述离散图形处理器在接收到所述视频数据 之后对所述视频数据进行解码。
7、 如权利要求6所述的设备,其中所述离散图形处理器在对所述视频数据进行 所述解码之后对所述视频数据进行加密。
8、 如权利要求7所述的设备,其中所述主机系统包含用于存储从所述离散图形 处理器接收的所述经加密的视频数据的系统存储器。
9、 如权利要求8所述的设备,其中所述集成图形处理器对所述经加密的视频数 据进行解密。
10、 如权利要求8所述的设备,其中所述集成图形处理器的图形引擎对所述经加 密的视频数据进行解密。
11、 如权利要求10所述的设备,其中所述集成图形处理器将所述经解密的视频数据写入到所述系统存储器。
12、 如权利要求10所述的设备,其中所述集成图形处理器的视频引擎利用所述 视频数据来驱动显示器。
13、 如权利要求12所述的设备,其中至少一个旗语用于协调由所述集成图形处理器的所述图形引擎及所述视频引擎进行的处理。
14、 如权利要求l所述的设备,其中至少一个旗语用于协调由所述第一图形处理器及所述第二图形处理器进行的处理。
15、 如权利要求l所述的设备,其中所述通信经由总线来实施。
16、 如权利要求15所述的设备,其中所述总线包含外围组件互连(PCI)总线。
17、 如权利要求l所述的设备,其中所述第一图形处理器及所述第二图形处理器 各自包含图形处理单元。
18、 一种体现于计算机可读媒体上的计算机程序产品,其包括 用于利用第一图形处理器来处理视频数据的计算机代码; 用于提供用于对所述视频数据进行加密的密钥的计算机代码; 用于利用第二图形处理器来进一步处理所述视频数据的计算机代码。
19、如权利要求18所述的计算机程序产品,其中所述计算机代码是用于控制所 述第一图形处理器及所述第二图形处理器的驱动器的组件。
20、 一种方法,其包括利用第一图形处理器来处理视频数据;对所述视频数据进行加密;将所述视频数据发送到第二图形处理器以供进一步处理。
全文摘要
本发明提供一种用于对多个图形处理器之间的通信进行加密的视频处理系统、方法及计算机程序产品。提供第一图形处理器。另外,提供与所述第一图形处理器通信的第二图形处理器以用于共同地处理视频数据。此外,对所述通信进行加密。
文档编号G06T15/00GK101639944SQ20091014904
公开日2010年2月3日 申请日期2009年6月15日 优先权日2008年7月30日
发明者勋·王, 弗兰克·R·迪亚尔, 施海霞, 阿米特·D·帕里克 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1