基于qos的二进制翻译和应用流送的制作方法
【专利摘要】公开一种基于QOS的二进制翻译和应用流送。在一个实施例中,应用的基于服务质量(Qos)准则的服务器侧二进制翻译和执行通过利用虚拟化或本地执行环境中的分布式翻译和执行在多个服务器上执行。经翻译的应用被执行以生成输出显示数据,该输出显示数据以适于视频流送的格式被编码,并且该视频流通过网络被递送至客户端设备。在一个实施例中,一个或多个图形处理器通过加速应用输出的渲染来辅助服务器的中央处理器,并且媒体编码器将应用输出编码成媒体格式。
【专利说明】基于QOS的二进制翻译和应用流送
【技术领域】
[0001]实施例一般涉及基于云的应用服务,更具体地涉及通过使用服务质量准则提供二进制翻译和应用流送。
【背景技术】
[0002]处理器一般被设计成实现特定指令集架构,并且通常不本地地执行针对不同指令集架构编译的应用。在计算领域和科学中,己尝试将针对一个指令集编译的二进制文件翻译成不同指令集上本地可执行的二进制件,取得了不同程度的成功。在一个实例中,二进制翻译器在运行时将二进制件从一个指令集架构翻译成不同指令集架构。在一个实例中,具有一个指令集架构的处理器执行仿真软件,该仿真软件允许处理器执行具有不同指令集架构的二进制件。二进制翻译在任一实例中在应用执行期间施加性能惩罚。
[0003]另外,非交互式媒体内容的流送在计算领域和科学中是己知的,并且己知流送视频可递送至各种计算设备。通过使用分布式处理和存储,内容可被存储在基于云的网络中并按需被流送至附连至网络的多个设备。然而,流送交互式内容,诸如应用的实时流送,因往返行程网络等待时间而是成问题的。
【专利附图】
【附图说明】
[0004]以下描述包括对附图的讨论,这些附图具有通过各个实施例的实现的示例的方式给出的例示。这些附图应被理解成作为示例,而不是作为限制。如此处所使用的,对一个或多个“实施例’’的引用应被理解成描述至少一个实现中所包括的特定特征、结构、或特性。因此,此处出现的诸如“在一个实施例中’’或“在替换实施例中’’之类的短语各自描述各种实施例和实现,并且不一定全部指代同一实施例。然而,它们也不一定是相互排他的。
[0005]图1是用于通过使用数据中心中驻留的服务器提供二进制经翻译应用的基于云的服务递送的系统实施例的框图。
[0006]图2是使用基于X86的服务器的用于ARM ISA应用的基于云的递送系统的实施例的序列图。
[0007]图3是例示根据实施例从源指令集至目标指令集的二进制翻译的框图。
[0008]图4是根据实施例的具有多个核、集成图形和存储器控制器、翻译专用逻辑的处理器的框图。
[0009]图5是基于X86CPU的服务器上的基于QoS的二进制翻译和执行流送的方法的实施例的概览。
[0010]图6是利用基于优先级水平的加速进行ARM ISA 二进制翻译的服务器侧过程的实施例的流程图。
[0011]图7是根据实施例的利用图形处理器加速的过程的流程图。
[0012]图8— 11是示例性计算机架构的框图。
[0013]以下是对某些细节和实现的描述,包括对可描绘部分或全部下述实施例的附图的描述,以及对此处呈现的发明概念的其它潜在实施例或实现的讨论。以下提供了对各实施例的概览,随后是参考附图的更详细的描述。
【具体实施方式】
[0014]因网络等待时间和执行开销,难以实现对编译成非本地指令集架构的应用二进制件的实时应用流送与实时应用流送的组合。如本文中所描述的,应用的基于服务质量(QoS)准则的服务器侧二进制翻译执行通过利用虚拟化或本地执行环境中的分布式翻译和执行在多个服务器上执行。经翻译的应用被执行以生成输出显示数据,该输出显示数据以适于视频流送的格式被编码,并且该视频流通过网络被递送至客户端设备。
[0015]在一个实施例中,一个或多个图形处理器通过加速应用输出的渲染来协助服务器的中央处理器。实施例使用QoS准则来确定哪些应用或应用类型利用加速图形渲染。在一个实施例中,诸如图形处理器的固定功能媒体编码器之类的媒体编码器加速应用输出帧的编码。在一个实施例中,一个或多个服务器的一个或多个中央处理器针对二进制翻译执行分布式计算,并且服务器上的一个或多个图形处理器在计算资源受约束时提供补充处理功倉泛。
[0016]图1是用于通过使用驻留在数据中心的服务器提供二进制经翻译应用的基于云的服务递送的系统实施例的框图。虽然在图1中,例示了使用基于X86的服务器递送ARMISA应用,但是实施例并不限于此,因为各个实施例可用于在分布式计算环境中提供应用服务的任何二进制翻译或仿真环境。在一个实施例中,数据中心100提供ARM ISA至客户端设备端点175的分布式(例如,基于云)递送,该客户端设备端点诸如智能电话、平板电脑、膝上型设备、个人计算机、和智能设备。客户端端点应用至少部分地在分布式计算环境中执行并且应用输出被流送至客户端端点。用户体验的质量通过使用QoS准则来维持,以允许应用流送,从而最小化感知的等待时间并满足向客户端设备商定的服务水平。广泛的分布式计算资源可并行工作以执行二进制翻译和执行,并将应用输出递送到具有有限计算资源的客户端。
[0017]如图1中所示的,实施例在数据中心100中容纳基于多个X86中央处理单元(CPU)的服务器平台102。ARM ISA应用二进制Appl — a (应用I 一 a)在虚拟机(VM)环境中被翻译成X86应用二进制App卜b (应用l_b)。多个VM运行在每个服务器上(例如,VMl 104至VMnl05),以将ARM ISA应用二进制件翻译成X86应用二进制件。实施例使用X86服务器执行经翻译的应用二进制件,并且对于应用输出的每一帧,渲染器108生成输出帧。在经由网络接口 112通过诸如因特网150之类的互连网络传送经编码的输出帧之前,实施例利用媒体编码器来编码输出帧。客户端设备175 (诸如基于ARM ISA的客户端设备或基于X86的客户端设备179)可利用这些服务来使用分布式网络的处理能力运行应用。使用QoS准则对非本地二进制的快速翻译和仿真允许在与本地执行一致的等待时间下将远程应用流送递送至客户端设备。
[0018]为了最小化等待时间,应用流送系统利用各种QoS准则(包括基于优先级的翻译),其被用来调度翻译资源并以排定优先级方式将执行时间提供给用于翻译和执行各个应用的VM。基于优先级的翻译使得往返行程等待时间最小化,这实现远程应用执行和流送,同时维持客户端设备处的用户体验。作为基于优先级的翻译的部分,分开的QoS硬件属性被用于翻译器代码,因此服务器平台102的各个处理器元件在执行期间识别二进制翻译指令并对这些指令排定优先级,从而允许例如在较高访问优先级下运行翻译或仿真。高访问优先级指令具有对系统资源的更多访问。例如,翻译代码偏好在处理器高速缓存中,并且用于翻译的指令和存储器队列相对于服务器上运行的其他软件具有高的高速缓存优先级。
[0019]附加QoS考虑是所仿真客户端设备的显示分辨率。需要从服务仿真和渲染ARM应用(例如,Appl — a、App2-a)进行考虑的客户端端点的分辨率是另一关键QoS准则。由每个VM渲染的帧缓冲器显示大小是基于目标客户端端点分辨率可配置的。作为QoS过程的部分,查询数据中心100与客户端设备175之间的各个网络等待时间以确定往返行程渡越时间(transit time)。基于可用执行能力和网络等待时间,在不同环境下,不同的输出分辨率可被递送至客户端设备,并且具有不同帧缓冲器大小的不同VM可被使用。在一个实施例中,每个VM对于VM可从其递送内容的一组帧缓冲器大小而言是可配置的。
[0020]附加QoS考虑是客户端设备的地理位置。客户端端点与服务器之间的距离影响服务器在执行和编码过程期间提供用来实现至客户端设备端点的无缝递送的性能水平。一个实施例利用多个数据中心来服务多个地理区域,以最小化往返行程等待时间。
[0021]附加QoS考虑是服务器所仿真的应用的类型。服务器102利用图形处理资源来加速具有复杂图形的游戏应用。图形处理器加速每个帧的渲染,因此帧可被编码并以足够的速率递送至客户端设备以维持高水平的用户体验,以及满足流送帧速率的服务水平协定。使用分布式处理环境的计算资源来渲染其他应用,诸如办公应用或具有低图形强度的游戏。另外,诸如计算机辅助设计(CAD)应用之类的应用还在渲染几何复杂设计时利用图形处理器加速。
[0022]附加QoS考虑是客户端设备的一组媒体解码能力。各个客户端设备175(例如,ARMISA客户端设备177和X86ISA客户端设备179)中的一个的用于解码经编码流的能力决定用于在服务器102上编码所仿真的ARM应用输出的服务器侧算法。例如,如果客户端设备175能利用多媒体解码器硬件对特定媒体类型(例如,H.264)进行加速媒体解码,则服务器102使用可为客户端设备所接受的媒体类型来编码应用输出。如果客户端设备175不能执行加速媒体解码,则服务器使用客户端设备通过使用客户端设备175上的应用处理器能够解码的媒体格式来编码应用输出。
[0023]图2是使用基于X86的服务器的用于ARM ISA应用的基于云的递送系统的实施例的序列图。在一个实施例中,客户端设备202(诸如图1的客户端设备175)向基于云的应用服务发送运行应用的请求212。客户端设备可将应用提供给服务器,或者应用可被存储在与应用服务的分布式执行环境耦合的分布式存储环境中。请求抵达服务器调度器204,并且在服务器调度器204查看与客户端设备202相关联的QoS准则之后,确定服务水平协定(SLA)期限以处理请求。服务器调度器204选择具有可用执行资源的服务器206并向服务器206发出214请求。图2的服务器206是图1的基于X86CPU的服务器平台102的实施例。在一个实施例中,服务器按照仿真执行时间(而非本地指令集执行时间)向服务器调度器报告可用执行时间,以允许服务器调度器204从ARMISA应用角度调度作业。
[0024]一旦服务器206从服务器调度器接收请求214,则服务器向服务器调度器204发送确认226,以指示请求被接受且将在SLA时间帧内被执行。如果服务器206不能在SLA期限之前服务请求,则服务器调度器可重新指派请求,或者可为服务器规定附加计算资源。服务器206通过使用虚拟机环境(诸如虚拟机208,其是图1的多个VM(例如,VM1104到VMnl06)中的一个的实施例)为各个应用和客户端设备执行二进制翻译。各个VM可基于多个客户端设备的特性来配置,并且执行资源在VM之间分布以满足执行期限。服务器206的实施例查看可用的虚拟机列表,并向虚拟机208发出216应用请求。
[0025]一旦对服务器206的请求214被发给216虚拟机208,就对应用执行翻译操作218,并且在服务器上的存储器中产生经翻译的应用228。在一个实施例中,经翻译的应用通过使用可为服务器206所用的多个处理器(驻留在服务器206内或者在数据中心100内的其他服务器上可用)来在服务器206上本地地执行。在一个实施例中,服务器上的一个或多个处理器执行指令集仿真软件,该软件向应用二进制件呈现ISA仿真环境。在一个实施例中,二进制翻译和指令集仿真两者是可用的,并且实施例可采用能够进行任一方法的虚拟机。己知通过利用动态二进制翻译执行良好的任务或应用被指派给能够进行二进制翻译的虚拟机。己知在仿真环境中执行良好的任务和应用被指派给对就服务器而言并非本地的二进制件使用指令集仿真的虚拟机。在一个实施例中,可接受X86ISA工作类程序的代替列表提供与所请求ARM ISA应用相同的功能。例如,具有服务器或虚拟机的本地指令集中可用的二进制件的实用程序或库被透明地替代。
[0026]对于应用的要显不的每个输出巾贞,输出巾贞在服务器206上被本地或在虚拟机内渲染和编码,并且输出巾贞基于客户端设备202的解码能力来编码。例如,第一输出巾贞236被传送到客户端设备,该第一输出帧在客户端设备的显示器上被解码和显示。服务器206随后传送第二输出帧246,并且在客户端设备202更新其显示时将其与第一输出帧236顺序进行显示。服务器206通过利用QoS准则以足以提供平滑应用体验的速率向客户端202提供输出帧,其使得计算资源能够在应用与虚拟机之间转换,并且使得能以及时方式渲染、编码和递送每个应用帧。控制输入222如用户所指示的从客户端设备递送至服务器,并且控制输入222被递送到在服务器上执行的应用,该服务器对控制输入222作出响应,此时输出帧N296被递送到客户端设备。
[0027]图3是例示根据实施例从源指令集至目标指令集的二进制翻译的框图。实施例通过使用软件、固件和硬件的组合实现二进制转换,并且利用翻译和转换专用处理器指令来加速转换和翻译的特定方面。虽然例示了非X86至-X86翻译和仿真,但是实施例不限于此。对于本地执行的指令,使用x86编译器304编译高级语言302的程序,以生成x86 二进制代码306,该二进制代码306可由具有能够执行X86指令集的至少一个处理器核314的处理器来本地地执行。具有至少一个x86指令集核314的处理器表示可执行与具有至少一个X86指令集核的Intel处理器基本相同的功能的任何处理器。处理器314兼容地执行或以其他方式处理Intel X86指令集核的指令集的重要部分或应用的对象代码版本或旨在于Intel处理器上运行的其他软件。
[0028]X86编译器308表示可操作用于生成在具有或者没有附加链接处理的情况下可在具有至少一个x86指令集核314的处理器上执行的x86 二进制代码310 (例如,对象代码)的编译器。类似地,当高级语言302的程序通过使用替换性指令集编译器304编译以生成替换性指令集二进制代码306时,二进制件由处理器通过使用替换性指令集316来本地执行。例如,具有非X86核的处理器包括执行加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集或者执行加利福尼亚州桑尼维尔市的ARM控股公司的ARM指令集的处理器。指令转换器312将非X86 二进制代码306转换成可由具有X86指令集核314的处理器本地执行的代码。
[0029]实施例结合指令转换器312利用硬件313进行指令转换加速。指令转换加速器313包括基于服务器芯片组和处理器的针对虚拟化和翻译任务的加速。例如,X86ISA扩展和增强被包括以加速X86处理器的实施例上的ARM ISA翻译,包括32位和64位执行模式。X86指令集扩展包括用于处理ARM ISA特定条件从句(conditional)(包括ARM v8指令集的条件从句)的指令。
[0030]附加指令集扩展提供X86指令的替代变体,其更快速地执行从非本地指令集翻译来的指令。例如,附加X86指令可用于指示要翻译的ARM ISA执行存储器引用,算术逻辑单元(ALU)上的整数运算,或者浮点单元(FPU)上的浮点运算。通过组合软件、固件和硬件,指令转换器312和指令转换加速器313允许处理器或具有X86指令集处理器或核314的其他电子设备执行非X86 二进制代码306。
[0031]图4是根据实施例的具有多个核、集成图形器件和存储器控制器、翻译专用逻辑的处理器400的框图。处理器400具有多个核,从第一核402A至核402N(达N个)。还示出系统代理410、一组一个或多个总线控制器单元416,以及系统代理单元410中的一组一个或多个集成图形器件和存储器控制器单元414。另外,存在特殊目的翻译专用逻辑408以加速从非X86指令集进行翻译或仿真。
[0032]处理器400的各个实施例被配置为适用于服务器中的通用处理器核,该服务器被设计成提供向客户端设备的实时二进制翻译、执行和流送,同时利用QoS准则来实现所协定的服务和质量水平内的流送应用递送。图形和存储器控制器单元414包括一个或多个图形引擎,该一个或多个图形引擎加速图形密集操作的渲染(如由QoS准则所确定的)。如果服务器上的图形引擎未被充分利用,则图像引擎提供GPGPU(通用图形处理单元)能力,以向在处理器400上执行指令的应用或虚拟机提供补充执行资源。在一个实施例中,处理器400是或者利用高吞吐量多集成核(MIC)协处理器(包括30或更多个核)来向在服务器上执行的虚拟机提供大量计算资源。处理器400的一个或多个组件可以是一个或多个基板的一部分和/或使用大量处理技术(诸如举例而言,BiCMOS、CMOS、或NM0S)中的任一种技术在一个或多个基板上实现。
[0033]存储器等级(hierarchV)包括核内的一级或多级高速缓存、一组或者一个或多个共享高速缓存单元406、以及耦合到一组集成图形器件和存储器控制器单元414的外部存储器(未示出)。该组共享高速缓存单元406包括一个或多个中级高速缓存(例如,2级(L2)和3级(L3)高速缓存)。在一个实施例中,基于环的互连单元412互连翻译逻辑408、该组共享高速缓存单元406、以及系统代理单元410,包括集成图形器件和存储器控制器单元414。在一个实施例中,在一个或多个高速缓存单元406与核402-A-N之间维持一致性。
[0034]在一些实施例中,核402A-H中的一个或多个核能够多线程。系统代理410包括协调和操作核402A — N的这些组件。系统代理单元410可包括例如功率控制单元(PCU)和显示单元。PCU可以是或者包括调整核402A-N的功率状态必需的逻辑和组件、以及集成图形逻辑408。显示单元用于驱动一个或多个外部连接的显示器。
[0035]核402A-N在架构指令集方面可以是同质的或者异质的,即核402A-N中的两个或两个以上核可以能够执行相同的指令集,而其他核可以能够只执行该指令集的子集或者不同的指令集。在一个实施例中,一个或多个核402A-N执行标准X86指令集,但是一个或个附加核执行扩展X86指令集,其利用翻译专用逻辑408。
[0036]图5是基于X86CPU的服务器上的基于OOS的二进制翻译和执行流送的方法的实施例的概览。在一个实施例中,基于云的应用流送服务通过网络接收执行ARM ISA应用的请求,如框502处所示的。在框504,服务器调度器查看OOS准则,并基于准则向服务器指派应用。例如,服务器调度器可基于计算和图形强度访问请求优先级,并向具有足够执行能力的服务器指派请求。服务器调度器的实施例向相同服务器指派对相同应用程序的连续请求(若可能的话),以使得服务器可从应用高速缓存或先前翻译的应用检索经翻译的应用,从而允许服务器避免对相同应用二进制件的重复翻译。实施例还维持可接受X86ISA工作类程序的代替列表,这些程序提供与所请求ARM ISA应用相同的功能。当可接受X86ISA工作类程序可用(本地或者经由先前执行的翻译)时,服务器用X86工作类程序透明地替代ARM ISA 程序。
[0037]在框506,服务器查看在服务器上的虚拟机集合中执行的虚拟服务器集合,并将翻译任务指派给与任务的qoS准则关联的可用虚拟机,诸如具有适当帧缓冲器大小的VM,或者有适当量的图形控制器执行资源可用的VM。在框508,在所指派的虚拟机内翻译ARM ISA二进制件。处理器提供专用于ARM ISA翻译的指令,翻译软件和虚拟机可利用这些指令。实施例可在比其他代码高的优先级下执行翻译指令,向翻译指令和数据给予比在用于执行翻译软件的各个处理器上执行的其他任务更高的高速缓存优先级。
[0038]如框510所示的,经翻译的应用在服务器上执行,以生成应用的显示输出。由用户在客户端设备处提供的任何输入数据或控制输入被递送给服务器上的执行应用,从而允许客户端设备处的用户控制执行应用,如同应用在客户端设备上执行那样。输出的每个帧由服务器渲染,并且在框512,输出以媒体格式编码,该输出通过网络被传送到客户端设备,如框514处所示。执行、编码和传送由qoS准则控制,诸如客户端设备的显示分辨率,服务器与客户端设备之间通过网络的往返行程等待时间,以及被远程执行的应用类型。在一个实施例中,服务器使用图形处理器加速进行图形密集操作。服务器上的一个或多个图形处理器可被时间切片化,从而允许服务器上执行的每个虚拟机基于执行优先级执行特定量的图形处理器执行时间。在一个实施例中,服务器使用具有通用计算能力的图形处理器,从而允许图形处理器提供补充计算资源来帮助服务器的各个处理器,以及与服务器耦合的各个分布式处理器。
[0039]图6是利用基于优先级水平的加速进行ARM ISA 二进制翻译的服务器侧过程的实施例的流程图。如框602中所示的,实施例基于服务器与客户端设备之间的等待时间以及应用的服务水平协定(SLA)期限确定应用优先级。为了维持质量服务,协定的服务水平由用于远程应用执行的服务器提供。客户端设备在协定的时段内预期对远程执行请求的响应,且时间保持到直至期限在翻译的执行优先级之间进行通知。例如,如果调度延迟导致应用翻译的减小的窗口,则翻译任务被给予高优先级,并且翻译任务经由向翻译任务应用附加计算资源来加速。
[0040]与确定应用优先级并行地,如框602所示的,实施例生成潜在虚拟机(VM)指派列表,如框604所示。潜在指派基于包括客户端设备特性和应用类型的QoS准则。潜在指派的列表包括具有与客户端设备的显示分辨率兼容的帧缓冲器配置的VM,或者具有足够的图像处理器执行资源可用的VM(如果应用是图形密集的话)。在框606,基于可用执行资源从潜在VM列表选择虚拟机,并且应用二进制件被指派给VM。VM随后执行二进制翻译,如框608所示的。
[0041]在一个实施例中,优先级实施机制被用来以较高优先级水平在虚拟机中实现加速二进制翻译。例如,如果翻译过程接近其期限,则服务器可经由向翻译VM添加更多的执行资源来加速翻译过程。集成到服务器硬件中的寄存器比特、硬件定时器和控制逻辑被用于管理VM执行,以及向执行高优先级任务的VM提供更多执行资源。
[0042]图7是根据实施例的利用图形处理器加速的过程的流程图。基于QoS的二进制翻译和应用流送的实施例通过查看经翻译应用的QoS准则在框702处开始。例如,包括设备显示分辨率和应用类型的QoS准则是应用中存在的图形复杂性程度的指示器。如果在框704确定应用己具有高图形负载,则服务器执行应用并使用图形处理器加速渲染帧输出,如框706所示的。例如,执行HD分辨率(例如,1280x720,1920x1080等)的游戏应用使用图形处理器来渲染应用的输出帧。如果QoS准则指示可在SLA时段内使用专用处理器核执行应用,则一个或多个CPU核被用来执行和渲染应用的输出帧,如框708所示的。诸如电子数据表或其他办公应用之类的实用程序应用很可能在没有图形加速的情况下执行。然而,如果例如网络等待时间指示在没有加速渲染的情况下SLA期限难以到达,实施例可利用图形处理器来加速渲染。
[0043]在渲染之后,将输出巾贞编码成媒体格式,如框710所不的。实施例基于一组客户端设备媒体解码能力(包括客户端设备是否支持硬件加速解码)确定要使用的媒体格式。例如,如果客户端设备具有对以H.264格式编码的媒体的硬件加速解码的支持,则服务器可在向客户端设备传送输出巾贞之前将输出巾贞编码为H.264格式。在一个实施例中,服务器利用专用媒体编码器硬件来在向客户端设备传送之前编码输出帧。在一个实施例中,图形处理器包括媒体编码器硬件。在一个实施例中,处理器支持用于加速媒体编码的指令。
[0044]图8 —11是示例性计算机架构的框图。在本领域中己知的用于膝上型计算机、台式计算机、手持PC、智能电话、工程工作站、服务器、网络设备、网络中枢、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备、以及各种其他电子设备的其他系统设计和配置也是合适的。
[0045]图8例不了根据实施例的系统800的框图。系统800包括一个或多个处理器810、815,这些处理器耦合到控制器中枢820。在一个实施例中,控制器中枢820包括图形存储器控制器中枢(GMCH)890和输入/输出中枢(IOH)850 ;GMCH890包括耦合到存储器840和协处理器845的存储器和图形控制器;10H850使输入/输出(I / O)设备860耦合到GMCH890。替换地,存储器和图形控制器中的一个或两个在处理器(如本文中所描述的)内集成,存储器840和协处理器845耦合到处理器810、以及在单一芯片中具有10H850的控制器中枢820。
[0046]附加处理器815的任选本质在图8中用虚线指示。每一处理器810、815包括本文中所描述的处理核中的一个或多个,其各自可以是某个版本的处理器400。
[0047]在一个实施例中,存储器840是动态随机存取存储器(DRAM)。在一个实施例中,840是相变存储器(PCM)或PCM与DRAM的组合。对于至少一个实施例,控制器中枢820经由多点总线(mult1-drop bus)(诸如环接口,前侧总线(FSB))、点对点接口(诸如快速通道互连(QPI))、或者类似的连接895与处理器810、815进行通信。
[0048]在一个实施例中,协处理器845是专用处理器,诸如举例而言,高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等。在一个实施例中,控制器中枢820可包括集成图形加速器。在一个实施例中,存在存储器翻译和仿真加速硬件,如本文中描述的。
[0049]按照包括架构、微架构、热、功耗特征等等优点的度量谱,(多个)物理资源810、815之间存在各种差别。
[0050]图9是根据实施例的更具体的示例性服务器系统900的框图。如图9所示,多处理器系统900是点对点互连系统,并且包括经由点对点互连950耦合的第一处理器970和第二处理器980。处理器970和980中的每一个是处理器400的变体。在一个实施例中,处理器970和980分别是处理器810和815,而协处理器938是协处理器845。在另一实施例中,处理器970和980分别是处理器810和协处理器845。
[0051]处理器970和980分别被示为包括集成存储器控制器(MC)单元972和982。处理器970还包括作为其总线控制器单元的一部分的点对点(P-P)接口 976和978 ;类似地,第二处理器980包括P-P接口 986和988。处理器970、980可使用P-P接口电路978、988经由点对点(P-P)接口 950交换信息。如图9所示,IMC972和982将处理器耦合到相应的存储器,即存储器932和存储器934,这些存储器可以是本地附连到相应处理器的主存储器的部分。
[0052]处理器970、980可各自使用点对点接口电路976、994、986、998经由各个P-P接口952,954与芯片组990交换信息。芯片组990任选地经由高性能接口 938与协处理器938交换信息。在一个实施例中,协处理器938是专用处理器,诸如举例而言,高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器、二进制翻译加速器等。
[0053]共享高速缓存(未示出)可被包括在任一处理器中或者在两个处理器外部,但是经由P-P互连与处理器连接,由此如果处理器置于低功率模式中,则任一或两个处理器的本地高速缓存信息可被存储在共享高速缓存中。在一个实施例中,900的共享高速缓存向翻译加速功能、以及虚拟化加速功能赋予优先级,如本文中描述的。
[0054]芯片组990经由接口 996耦合到第一总线916。在一个实施例中,第一总线916是外围组件互连(PCI)总线、或者诸如PCI Express总线或另一第三代I / O互连总线之类的总线,但是这些是非限制性示例。
[0055]如图9所示,各种I / O设备914可连同总线桥918—起耦合到第一总线916,总线桥918将第一总线916耦合到第二总线920。在一个实施例中,诸如协处理器、高吞吐量MIC处理器、GPGPU的加速器(例如,图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列(FPGA)、或者其他处理器之类的一个或多个附加处理器915耦合到第一总线916。在一个实施例中,第二总线920可以是低引脚数(L?C)总线。在一个实施例中,各个设备可以耦合到第二总线920,包括键盘和/或鼠标922、通信设备927以及可以包括指令/代码和数据930的存储单元928 (诸如盘驱动器或其它海量存储设备)。此外,音频I / 0924可被耦合到第二总线920。注意,其他架构是可能的。例如,代替图9的点对点架构,系统可实现多点总线、环总线或者其他此类架构。
[0056]图10是根据实施例的第二更具体的示例性系统1000的框图。图9和10中的类似元件使用类似附图标记,且在图10中省略了图9的某些方面以避免混淆图10的其它方面。
[0057]图10示出在一个实施例中,处理元件970、980可分别包括集成存储器和I / O控制逻辑(“CL’ ’ )972和982。因此,cL972和982包括集成存储器控制器单元且包括I /O控制逻辑。图10示出不仅存储器932、934耦合到CL972、982,而且I / O设备1014也耦合到控制逻辑972、982。传统I / O设备1015耦合到芯片组990。
[0058]图11是根据实施例的SoCIIOO的框图。图4中的类似元件具有相似的附图标记。另外,虚线框是更高级SoC上的任选的特征。在一个实施例中,如文本中描述的客户端设备包括SoCIIOO的变体。在图11中,互连单元1102耦合到:包括一组一个或多个核202A-N和共享高速缓存单元406的应用处理器1110 ;系统代理单元410、总线控制器单元416 ;集成存储器控制器单元414 ;包括二进制翻译加速逻辑、集成图形逻辑、图像处理器、音频处理器、以及视频处理器的一组一个或多个协处理器1120 ;静态随机存取存储器(SRAM)单元1130 ;直接存储器存取(DMA)单元1132 ;以及用于耦合到一个或多个外部显示器的显示单元1140。在一个实施例中,协处理器1120包括专用处理器,诸如举例而言,网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、嵌入式处理器等。在一个实施例中,视频处理器、集成图形逻辑、或GPGPU被包括在一个或多个核402N中。
[0059]本文中所公开的机构的实施例可以以硬件、软件、固件、或者这些实现方法的组合来实现。实施例可被实现为在可编程系统上执行的计算机程序或程序代码,这些可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。
[0060]诸如图9所示的代码930之类的程序代码可应用于输入指令,以执行本文中所描述的功能并生成输出信息。输出信息可以以己知的方式应用于一个或多个输出设备。出于本申请的目的,处理系统包括具有处理器(诸如举例而言,数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)、或微处理器)的任何系统。
[0061]程序代码可以以高级程序或面向对象编程语言实现,以与处理系统进行通信。程序代码可以按需以汇编或机器语言实现。实际上,本文中所描述的机构在范围上不限于任何特定编程语言。在任何情况下,该语言可以是经编译或经解释的语言。
[0062]至少一个实施例的一个或多个方面可通过存储在机器可读介质上的代表性指令来实现,该机器可读介质表示处理器内的各种逻辑,这些指令在由机器读取时使得该机器制备逻辑以执行本文中所描述的技术。称为“IP核’’的这些表示可被存储在有形非瞬态机器可读介质上且供应给各种客户或制造设施以加载到实际上制作逻辑或处理器的制备机器。
[0063]这种机器可读存储介质可包括但不限于,由机器或设备制造或形成的制品的非瞬态有形排列,包括:诸如硬盘,包括软盘、光盘、压缩盘只读存储器(CD-ROM)、可重写压缩盘(CD-RW)、以及磁一光盘的任何其他类型的盘之类的存储介质;诸如只读存储器(ROM)、随机存取存储器(RAM)(诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)、相变存储器(PCM)之类的半导体器件;磁或光卡;或者适于存储电子指令的任何其他类型的介质。
[0064]因此,实施例还包括包含指令或者包含设计数据的诸如硬件描述语言(HDL)之类的非瞬态有形机器可读介质,该非瞬态有形机器可读介质定义本文中所描述的结构、电路、装置、处理器、和/或系统特征。这些实施例还可被称为程序产品。
[0065]除了本文描述的,可对所披露的实施例及其实现作出多种修改而不脱离其范围。因此,本文中的示例和范例应当被解释成解说性的,而非限制性的。实施例的范围应当单独参照后面的权利要求书予以界定。
【权利要求】
1.一种系统,包括: 具有中央处理器和网络接口的服务器,所述中央处理器具有第一指令集,所述服务器用于将具有第二指令集的二进制件翻译成具有所述第一指令集的经翻译可执行件,所述翻译使用服务质量(QoS)准则执行,其中所述服务器执行所述经翻译二进制件以生成经渲染输出的帧,并且经由所述网络接口传送所述经渲染输出的帧;以及 具有显示器、客户端处理器和客户端网络接口的客户端设备,所述客户端设备用于经由所述客户端网络接口从所述服务器接收经渲染输出的帧,以及使用所述客户端处理器在所述显示器上显示经渲染输出的帧。
2.如权利要求1所述的二进制翻译系统,其特征在于,所述QoS准则包括基于优先级的加速以及多个客户端参数,其中所述多个客户端参数包括客户端设备分辨率、客户端设备位置、客户端应用类型、以及一组客户端解码能力。
3.如权利要求1所述的二进制翻译系统,其特征在于,在所述服务器传送经渲染输出的帧之前经渲染输出的帧被编码成媒体格式。
4.如权利要求3所述的二进制翻译系统,其特征在于,所述服务器还包括图形处理器,用于生成经渲染输出的帧。
5.如权利要 求4所述的二进制翻译系统,其特征在于,所述图形处理器将经渲染输出的帧编码成所述媒体格式。
6.如权利要求1所述的二进制翻译系统,其特征在于,所述客户端设备的所述客户端处理器具有第一指令集。
7.如权利要求1所述的二进制翻译系统,其特征在于,所述客户端设备的所述客户端处理器具有第二指令集。
8.如权利要求2所述的二进制翻译系统,其特征在于,所述服务器在虚拟机内执行所述二进制翻译。
9.如权利要求8所述的二进制翻译系统,其特征在于,所述虚拟机是针对所述客户端设备来调整的。
10.如权利要求9所述的二进制翻译系统,其特征在于,虚拟机执行资源通过QoS来调難iF.0
11.如权利要求10所述的二进制翻译系统,其特征在于,基于优先级的加速计入所述服务器与所述客户端设备之间的网络等待时间以设置二进制翻译优先级。
12.如权利要求11所述的二进制翻译系统,其特征在于,所述第一指令集是x86指令集,而所述第二指令集是ARM指令集。
13.—种服务器,包括: 存储指令的非瞬态机器可读存储介质; 用于执行所述指令的处理器,所述指令用于执行操作以: 将具有第二指令集的二进制件翻译成具有第一指令集的经翻译二进制件,所述翻译由服务质量(QoS)准则控制,其中用于翻译二进制件的所述指令在所述处理器的高速缓存方面具有优先级,以及 执行经翻译的二进制件以渲染输出帧; 与所述处理器耦合的媒体编码器,用于将所述输出帧编码成媒体格式;以及与所述媒体编码器和所述处理器耦合的网络设备,所述网络设备用于向客户端设备传送经编码的输出帧。
14.如权利要求13所述的服务器,其特征在于,用于翻译所述二进制件的所述操作在虚拟机内执行。
15.如权利要求14所述的服务器,其特征在于,所述QoS准则包括基于优先级的加速以及多个客户端参数,其中所述多个客户端参数包括客户端设备分辨率、客户端设备位置、客户端应用类型、以及一组客户端解码能力。
16.如权利要求15所述的服务器,其特征在于,还包括调度器,用于基于所述QoS准则设置虚拟机的执行优先级。
17.如权利要求16所述的服务器,其特征在于,还包括耦合至所述处理器的图形加速器,用于辅助所述处理器渲染所述输出帧。
18.如权利要求17所述的服务器,其特征在于,所述图形加速器辅助所述媒体编码器以将所述输出帧编码成媒体格式。
19.一种存储供处理器执行的指令的非瞬态计算机可读介质,所述指令在被执行时导致所述处理器执行操作,所述操作包括: 将具有第二指令集的二进制件翻译成具有所述第一指令集的经翻译二进制件,所述翻译由服务质量(QoS)准则控制,其中所述翻译在虚拟机内发生,所述虚拟机通过QoS准则来调整,所述QoS准则包括基于优先级的加速以及多个客户端参数,其中所述多个客户端参数包括客户端设备分辨率 、客户端设备位置、客户端应用类型、以及一组客户端解码能力; 执行经翻译二进制件以渲染输出帧,其中如果所述QoS准则指示图形加速,则由图形处理器辅助所述执行; 将所述输出帧编码成媒体格式,所述媒体格式根据所述一组客户端解码能力来选择;以及 通过网络设备向客户端设备传送所述输出帧。
20.如权利要求19所述的计算机可读介质,其特征在于,还包括: 在第一服务器上的第一虚拟机中翻译第一二进制件; 在第二服务器上的第二虚拟机中翻译第二二进制件;以及 在所述第一服务器上执行第三二进制件,其中所述第一服务器先前翻译所述第三二进制件,并且所述第三二进制件在所述执行之前被重新翻译。
【文档编号】H04L29/06GK104050007SQ201410095569
【公开日】2014年9月17日 申请日期:2014年3月14日 优先权日:2013年3月15日
【发明者】B·穆西亚, W·B·拉什, G·J·辛顿, M·G·迪克森, S·D·哈恩, D·B·帕普沃斯 申请人:英特尔公司