通过使用欺骗时钟及细粒度频率控制实现的向后兼容性的制作方法

文档序号:11333760阅读:387来源:国知局
通过使用欺骗时钟及细粒度频率控制实现的向后兼容性的制造方法与工艺

本公开的方面是关于在计算机系统上执行计算机应用程序。具体地讲,本公开的方面是关于提供针对计算机系统的较旧版本设计的应用程序/标题的向后兼容性的系统或方法。



背景技术:

现代计算机系统对于不同的计算任务经常使用不同的处理器。除了中央处理单元(cpu)之外,现代计算机可具有专用于图形管线中的某些计算任务的图形处理单元(gpu),两者都可能是也可含有其他单元的加速处理单元(apu)的一部分。

能力较强的中央处理单元(cpu)、图形处理单元(gpu)和加速处理单元(apu)可具有较高等待时间,或与能力较弱的组件不同的等待时间特征。例如,能力较强的gpu与能力较弱的gpu相比在其纹理管线方面可具有较多阶段。在这种情况下,这个管线的等待时间增加。在另一实例中,能力较强的apu对于cpu可含有l3高速缓存,相比之下能力较弱的apu沒有这种高速缓存。在这种情况下,随着针对能力较强的apu存取丢失所有高速缓存的数据所需的时间增加,存储器等待时间特征不同,但针对能力较强的apu的平均等待时间将减少。

能力较强的装置和能力较弱的装置可能够执行相同的处理(例如,在cpu上执行程序指令或在gpu上执行各种编程功能和固定功能操作),但这个处理的等待时间的差异可导致能力较强的装置无法相对于能力较弱的装置向后兼容。类似地,在处理速度或吞吐量方面可存在差异,这导致能力较强的装置无法向后兼容。例如,对于某些类型的处理,能力较强的装置可能够在相同的时间间隔内执行较多处理迭代。或者,能力较强的装置可使用不同的算法来执行处理,这些算法导致行为比能力较弱的装置快或慢,这取决于环境。

在视频游戏控制台的情况下,操作通常处于设定的始终频率,且对软件应用程序进行测试以按这个设定的频率获得恰当操作。有时,需要在能力较强的控制台上运行针对原始的能力较弱的控制台创建的应用程序。这个能力经常称作“向后兼容性”。在此类情况下,能力较强的装置需要能够运行针对能力较弱的装置创建的应用程序而不会对等待时间或处理速度的差异产生不利影响。

这在本公开的方面形成的背景内。

附图说明

可易于通过结合附图考虑以下详细描述来理解本公开的教示,在附图中:

图1为图示根据本公开的方面的可按各种操作频率配置的系统的框图。

图2为图示根据本公开的方面的确定系统的操作频率的可能的过程流的实例的流程图。

具体实施方式

尽管以下详细描述出于图示的目的含有许多特定细节,然而本领域技术人员将了解,以下细节的许多变化和更改在本发明的范围内。因此,阐述下文所描述的本发明的示例性实施方案而完全不失所要求的发明的一般性且不对所要求的发明施加限制。

导言

若干方法可用于在能力较强的控制台上运行针对能力较弱的控制台创建的应用程序。在一个实例中,能力较强的控制台可被设定成按原始控制台的频率运行。在这个频率设定下,能力较强的控制台的操作将基于在任何时刻正执行的特定处理而变化,且可由于正执行的那个特定处理的等待时间(和其他)特征而比能力较弱的控制台慢或快。当能力较强的控制台的操作比原始控制台慢时,可由于无法满足显示时序、音频流输出或类似者施加的即时截止时间而在应用程序中发生许多错误。

在另一实例中,能力较强的控制台可被设定成按远高于原始控制台的频率运行。操作速度将基于正执行的处理的特定性而变化,但其将始终如一地高于原始控制台且因此可顺利地满足即时截止时间。然而,由于这个高速操作的未经测试的结果,应用程序中可发生许多错误。例如,在生产者-消费者模型中,如果数据的消费者以高于最初预期的速度操作,则其可在数据生产者使数据可用之前试图存取数据,且尽管可存在同步机制,然而它们不可能在此类状况下在原始控制台上测试。替代地,如果数据的生产者以高于最初预期的速度操作,则其可重写仍正由数据消费者使用的数据。

实施方案

本公开的实施方案提供将控制台(即,能力较强的控制台)设定为按高于控制台的先前版本(即,能力较弱的控制台)的频率运行的系统和方法。理想地,能力较强的控制台的频率被设定为稍高于原始控制台的操作频率,这是因为能力较强的控制台的操作速度基于在任何时刻正执行的处理的特定性而变化。通过这种配置,错误发生率可最小化,这是因为操作速度不会大得足以触发高速操作的无意结果,也不会足够低以致无法满足即时截止时间。

具体地讲,在不需要抵消处理的等待时间、吞吐量或其他方面的差异的影响的情况下,能力较强的控制台仅可按两个频率操作:针对被创建成在能力较强的控制台上运行的应用程序的较高频率;以及为了向后兼容性而与原始控制台相同的频率(即,当运行针对原始控制台创建的应用程序时)。但由于需要抵消处理的等待时间、吞吐量和其他方面的差异的影响,需要对操作频率具有细粒度控制,使得能力较强的控制台可按稍高于原始控制台的频率运行。确切频率设定可通过实验使用控制台和各种软件应用程序两者来确定,或频率设定可随应用程序而变化,或频率设定可取决于应用程序的性能特征时时刻刻变化。

应注意,软件应用程序可存取循环计数器,例如,cpu或gpu的操作循环的计数器,或替代地以较慢速率递增的计数器,例如,计数器可在每当cpu或gpu完成16个时钟循环时递增。由于cpu和gpu的频率在原始控制台上为固定的,因此应用程序可依赖于这个时序的一致性。例如,软件应用程序可关于cpu与gpu之间的时钟比做出假设。替代地,应用程序可使用gpu循环计数器以计算至下一垂直消隐间隔的时间,且接着在开始垂直消隐之前修改正执行的显现操作以便确保所有显现为完整的。

当这个相同的软件应用程序在能力较强的控制台上按较高频率运行时,可因为使用循环计数器而发生许多错误。例如,因为在较高频率下,垂直消隐间隔之间的循环数目将较大,因此关于在下一垂直消隐间隔开始之前的可用时间的计算将不正确,从而导致关于所执行的显现的不恰当的决策且可能导致致命错误。

因此,本公开的方面也提供以欺骗时钟替换真实的循环计数器的系统和方法,欺骗时钟传回对应于能力较弱的控制台的频率的数目。循环计数器的读数是否传回真实的循环计数,或替代地其是否传回欺骗时钟值取决于使用情况且将由操作系统配置。本公开的实施方案提供被配置成在两种模式下操作的系统。第一模式为正常模式,其中系统按正常操作频率操作,且第二模式为兼容模式,其中系统在假设系统与其他系统(例如,系统的旧版本)之间兼容的情况下操作。系统被配置成在正常模式中启动和操作。然而,当运行最初针对系统的较旧版本设计的应用程序或标题时,系统可被配置成针对所加载的应用程序切换至合适的操作频率。

现转向图1,描绘了根据本公开的方面的被配置成按各种频率操作的计算系统100的说明性实例。根据本公开的方面,系统100可为嵌入式系统、移动电话、个人计算机、平板计算机、便携式游戏装置、工作站、游戏控制台及类似者。

系统一般而言可包括处理器和存储器,其被配置成例如通过执行在特征方面与下文论述的图2的方法有共同之处的方法以实施本公开的方面。在图示实例中,处理器为加速处理单元110,其包括中央处理单元(cpu)120和单晶片上的图形处理单元(gpu)130。在替代具体实施中,cpu120和gpu130可实施为单独晶片上的单独硬件组件。系统100还可包括存储器140。存储器140可任选地包括cpu120及gpu130可存取的主存储器单元,且主存储器的一部分可任选地包括图形存储器142的一部分。cpu120和gpu130可各自包括一个或多个处理器核,例如,单核、双核、四核、八核或更多核。cpu120和gpu130可被配置成使用数据总线190存取一个或多个存储器单元,且在一些具体实施中,其可用于系统100以包括两个或两个以上不同的总线。

存储器140可包括呈集成电路的形式的一个或多个存储器单元,其提供可寻址存储器,例如,ram、dram及类似者。存储器含有被配置成在执行时实施图2的方法以用于确定系统的操作频率的可执行指令。另外,图形存储器142可临时存储图形資源、图形缓冲区和用于图形显现管线的其他图形数据。图形缓冲区可包括例如用于存储顶点参数值的一个或多个顶点缓冲区和用于存储顶点索引的一个或多个索引缓冲区。图形缓冲区还可包括一个或多个显现目标144,其可包括容纳根据本公开的方面计算的像素/样本值的颜色缓冲区145和深度缓冲区146。在某些具体实施中,颜色缓冲区145和/或深度缓冲区146可用以确定待存储在显示缓冲区147中的显示像素颜色值的最终阵列,其可构成意欲呈现于显示器上的最终显现的图像。在某些具体实施中,显示缓冲区可包括前缓冲区和一个或多个后缓冲区,且gpu130可被配置成从显示缓冲区147的前缓冲区扫描输出图形帧以用于呈现于显示器180上。

cpu120可被配置成执行cpu代码,cpu120可包括作业系统121或应用程序122,其利用所显现的图形(诸如视频游戏)和对应图形api124以用于基于应用程序122的状态来向gpu130实施的程序发布绘制命令或绘制调用。cpu代码还可实施物理模拟和其他功能。cpu和gpu时钟156c、156g可被配置成允许cpu和gpu基于与系统100的标准时钟速率不同的时钟速率来执行指令。作为实例,且不作为限制,如果应用程序122用于系统100的能力较弱的版本,则时钟频率156c、156g的值可对应于能力较弱的版本的时钟频率,或稍高于因系统100的等待时间较高而出现问题时的频率。

为了支持图形的显现,gpu130可执行着色器134,其可包括顶点着色器和像素着色器。gpu还可执行其它着色器程序,诸如,例如几何着色器、细分曲面着色器、计算着色器及类似者。gpu130还可包括特殊硬件模块132,其可包括一个或多个纹理映射单元和/或被配置成在图形管线的一个或多个阶段下实施操作的其他硬件模块。着色器134和硬件模块132可在最终像素值输出至显示器之前在管线中的各阶段下与存储器140和缓冲区144中的数据交互。被配置成由apu110、cpu120和gpu130执行的着色器134和/或其他程序可作为指令存储在非暂时性计算机可读介质中。作为实例且不作为具体实施,gpu可实施光栅器模块136,其可被配置成针对屏幕空间像素获取多个原始样本且根据样本性质调用一个或多个像素着色器。

系统100还可包括众所周知的支持功能150,其可例如经由总线190与系统的其他组件通信。此类支持功能可包括但不限于输入/输出(i/o)元件152、可包括分别用于cpu120和gpu130的单独时钟156c、156g的一个或多个时钟,以及高速缓存存储器158。系统100可任选地包括用以存储程序和/或数据的大容量存储装置160,诸如盘驱动器、cd-rom驱动器、快闪存储器、磁带驱动器、蓝光驱动器或类似者。在一个实例中,大容量存储装置160可接收含有最初被设计成在能力较弱的系统上运行的旧有应用程序的计算机可读介质162。替代地,旧有应用程序162(或其一部分)可存储于存储器140中或部分存储于高速缓存存储器158中。

装置100还可包括用以向用户呈现所显现的图形182的显示单元180和促进系统100与用户之间的交互的用户界面单元170。显示单元180可呈以下形式:平板显示器、阴极射线管(crt)屏幕、触摸屏、头戴式显示器(hmd)或可显示文字、数字、图形符号或图像的其他装置。显示器180可显示根据本文中描述的各种技术处理的所显现的图形182。用户界面170可含有一个或多个周边设备,诸如键盘、鼠标、操纵杆、光笔、游戏控制器、触摸屏和/或可结合图形用户界面(gui)使用的其他装置。在某些具体实施中,应用程序122的状态和图形的基本内容可至少部分由通过用户界面170进行的用户输入确定,例如,在应用程序122包括视频游戏的视频游戏具体实施中。

系统100还可包括使得装置能够经由网络与其他装置通信的网络界面172。网络可为例如局域网(lan)、广域网(诸如因特网)、个人区域网(诸如蓝牙网络)或其他类型的网络。所示和所描述组件中的各者可以硬件、软件或固件,或其中两者或两者以上的某一组合实施。

根据本公开的方面,cpu120可包括实施循环计数器ccc以使cpu操作的执行同步的硬件组件。gpu130可类似地包括实施循环计数器ccg以使gpu操作的执行同步的硬件组件。循环计数器ccc、ccg从时钟读取时钟循环,其可为对应的标准时钟156c、156g或对应的欺骗时钟125、135。根据本公开的方面,当运行针对系统100的当前版本编写的应用程序时,循环计数器ccc、ccg可被配置成从标准时钟156c、156g读取循环,而当运行针对系统的能力较弱的版本编写的应用程序时,循环计数器ccc、ccg可被配置成从欺骗时钟125、135读取循环,欺骗时钟125、135可设定为硬件的能力较弱的版本的标准操作频率。

图2为图示根据本公开的方面的确定控制台的操作频率的可能的过程流的实例的流程图,过程流由作业系统121或其他软件或硬件机构实施。在201处,当将应用程序122加载以在系统100上运行时,操作可在正常模式中开始。首先,经由软件id、软件核对和、与软件相关联的元数据、介质类型或其它机构的检查确定应用程序122是否被设计用于这个系统或用于系统的先前版本,如210处所指示。当确定所加载的应用程序意欲用于系统100时,系统可按正常频率运行,如220处所指示。例如,cpu120和gpu130可分别按其正常操作频率运行。具体地讲,循环计数器ccc、ccg可读取对应时钟156c和156g,如222处所指示。

当所加载的应用程序122被设计用于系统100的能力较弱的版本时,系统可确定无错误操作的时钟频率,如230处所指示。作为实例且不作为限制,时钟156c、156g可被设定成按稍高于能力较弱的系统中的对应时钟频率的频率运行cpu120和gpu130。替代地,时钟频率156c、156g可即时地调整,使得当系统100的操作速度基于任何时刻正执行的处理的特定性而变化时,处理以与能力较弱的系统相同的速度或比其稍快的速度发生。可以考虑cpu120和/或gpu130的处理的较高等待时间、吞吐量和其他方面的影响的方式确定时钟频率。欺骗时钟频率125、135被设定成对应于能力较弱的系统的cpu和gpu操作的标准频率,如232处所指示。具体地讲,循环计数器ccc、ccg被配置成读取对应的欺骗时钟125和135,如234处所指示。

为了给出实例,系统的先前版本的gpu可在500mhz的gpu时钟下运行,且当前系统可在750mhz的gpu时钟156g下运行。当加载被设计成仅用于当前系统的应用程序时,系统在156g设定为750mhz的情况下运行。在这个实例中,循环计数器ccg将对应于750mhz频率(即,其为真实循环计数器)。当加载旧有应用程序(即,被设计成用于系统的先前版本的应用程序)时,系统100可在稍高于先前系统的操作频率的频率(例如,156g设定为505mhz的情况下)下运行。在这个向后兼容模式中,gpu欺骗时钟135将被配置成在500mhz下运行,且循环计数器ccg将从欺骗时钟衍生,因而向旧有应用程序提供预期值。

当前系统在等待时间特征、吞吐量或用于计算的算法方面与先前系统不同,因此尽管计算结果可能相同,但控制台的操作速度将基于所执行的操作的特定性而变化。因此,当加载的应用程序122为旧有应用程序时,可能需要将时钟156c、156g设定为通过对所加载的特定应用程序进行测试确定的值,例如通过按较高时钟频率运行且逐步减小有效时钟频率直到处理错误不再发生为止。也可能需要基于应用程序的性能特征动态地调整时钟156c、156g。

本公开的方面克服了针对能力较弱的系统编写的程序在能力较强的系统上运行时出现的向后兼容性问题。调整能力较强的系统的系统时钟速率适应装置之间的差异。使可读循环计数器基于欺骗时钟而非真实时钟允许旧有应用程序码的正确操作。

尽管以上内容为对本发明的优选实施方案的完整描述,但有可能使用各种替代方案、修改和等效物。因此,本发明的范围不应参考以上描述确定,而应替代地参考随附权利要求连同其等效物的全范围判定。本文中描述的无论是否为优选的任何特征都可与本文中描述的无论是否为优选的任何其他特征组合。在随附权利要求中,除非另外明确陈述,否则不定冠词“一”指该冠词之后的项目中的一者或多者的数量。随附权利要求不应解释为包括构件加功能限制,除非此限制在给定权利要求中使用短语“用于……的构件”明确地叙述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1