CN107251004B - 通过使用欺骗时钟及细粒度频率控制实现的向后兼容性 - Google Patents
通过使用欺骗时钟及细粒度频率控制实现的向后兼容性 Download PDFInfo
- Publication number
- CN107251004B CN107251004B CN201680010968.XA CN201680010968A CN107251004B CN 107251004 B CN107251004 B CN 107251004B CN 201680010968 A CN201680010968 A CN 201680010968A CN 107251004 B CN107251004 B CN 107251004B
- Authority
- CN
- China
- Prior art keywords
- clock frequency
- version
- application
- current version
- less capable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/08—Digital computers in general; Data processing equipment in general using a plugboard for programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/08—Digital computers in general; Data processing equipment in general using a plugboard for programming
- G06F15/10—Tabulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Executing Machine-Instructions (AREA)
- Stored Programmes (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
Abstract
如果应用程序被设计成用于***的当前版本,则所述应用程序按第一操作频率运行,并且如果所述应用程序被设计成用于按低于所述第一操作频率的频率操作的所述***的先前版本,则所述应用程序按第二操作频率运行。所述第二操作频率可高于所述***的所述先前版本的所述操作频率以考虑所述两个***之间的等待时间、吞吐量或其他处理特征的差异。软件可读循环计数器是基于按所述***的所述先前版本的所述操作频率,而非真实的操作频率运行的欺骗时钟。
Description
技术领域
本公开的方面是关于在计算机***上执行计算机应用程序。具体地讲,本公开的方面是关于提供针对计算机***的较旧版本设计的应用程序/标题的向后兼容性的***或方法。
背景技术
现代计算机***对于不同的计算任务经常使用不同的处理器。除了中央处理单元(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。在替代具体实施中,CPU 120和GPU 130可实施为单独晶片上的单独硬件组件。***100还可包括存储器140。存储器140可任选地包括CPU 120及GPU 130可存取的主存储器单元,且主存储器的一部分可任选地包括图形存储器142的一部分。CPU 120和GPU 130可各自包括一个或多个处理器核,例如,单核、双核、四核、八核或更多核。CPU 120和GPU 130可被配置成使用数据总线190存取一个或多个存储器单元,且在一些具体实施中,其可用于***100以包括两个或两个以上不同的总线。
存储器140可包括呈集成电路的形式的一个或多个存储器单元,其提供可寻址存储器,例如,RAM、DRAM及类似者。存储器含有被配置成在执行时实施图2的方法以用于确定***的操作频率的可执行指令。另外,图形存储器142可临时存储图形資源、图形缓冲区和用于图形显现管线的其他图形数据。图形缓冲区可包括例如用于存储顶点参数值的一个或多个顶点缓冲区和用于存储顶点索引的一个或多个索引缓冲区。图形缓冲区还可包括一个或多个显现目标144,其可包括容纳根据本公开的方面计算的像素/样本值的颜色缓冲区145和深度缓冲区146。在某些具体实施中,颜色缓冲区145和/或深度缓冲区146可用以确定待存储在显示缓冲区147中的显示像素颜色值的最终阵列,其可构成意欲呈现于显示器上的最终显现的图像。在某些具体实施中,显示缓冲区可包括前缓冲区和一个或多个后缓冲区,且GPU 130可被配置成从显示缓冲区147的前缓冲区扫描输出图形帧以用于呈现于显示器180上。
CPU 120可被配置成执行CPU代码,CPU 120可包括作业***121或应用程序122,其利用所显现的图形(诸如视频游戏)和对应图形API 124以用于基于应用程序122的状态来向GPU 130实施的程序发布绘制命令或绘制调用。CPU代码还可实施物理模拟和其他功能。CPU和GPU时钟156C、156G可被配置成允许CPU和GPU基于与***100的标准时钟速率不同的时钟速率来执行指令。作为实例,且不作为限制,如果应用程序122用于***100的能力较弱的版本,则时钟频率156C、156G的值可对应于能力较弱的版本的时钟频率,或稍高于因***100的等待时间较高而出现问题时的频率。
为了支持图形的显现,GPU 130可执行着色器134,其可包括顶点着色器和像素着色器。GPU还可执行其它着色器程序,诸如,例如几何着色器、细分曲面着色器、计算着色器及类似者。GPU 130还可包括特殊硬件模块132,其可包括一个或多个纹理映射单元和/或被配置成在图形管线的一个或多个阶段下实施操作的其他硬件模块。着色器134和硬件模块132可在最终像素值输出至显示器之前在管线中的各阶段下与存储器140和缓冲区144中的数据交互。被配置成由APU 110、CPU 120和GPU 130执行的着色器134和/或其他程序可作为指令存储在非暂时性计算机可读介质中。作为实例且不作为具体实施,GPU可实施光栅器模块136,其可被配置成针对屏幕空间像素获取多个原始样本且根据样本性质调用一个或多个像素着色器。
***100还可包括众所周知的支持功能150,其可例如经由总线190与***的其他组件通信。此类支持功能可包括但不限于输入/输出(I/O)元件152、可包括分别用于CPU120和GPU 130的单独时钟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)、广域网(诸如因特网)、个人区域网(诸如蓝牙网络)或其他类型的网络。所示和所描述组件中的各者可以硬件、软件或固件,或其中两者或两者以上的某一组合实施。
根据本公开的方面,CPU 120可包括实施循环计数器CCC以使CPU操作的执行同步的硬件组件。GPU 130可类似地包括实施循环计数器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处所指示。例如,CPU 120和GPU 130可分别按其正常操作频率运行。具体地讲,循环计数器CCC、CCG可读取对应时钟156C和156G,如222处所指示。
当所加载的应用程序122被设计用于***100的能力较弱的版本时,***可确定无错误操作的时钟频率,如230处所指示。作为实例且不作为限制,时钟156C、156G可被设定成按稍高于能力较弱的***中的对应时钟频率的频率运行CPU 120和GPU 130。替代地,时钟频率156C、156G可即时地调整,使得当***100的操作速度基于任何时刻正执行的处理的特定性而变化时,处理以与能力较弱的***相同的速度或比其稍快的速度发生。可以考虑CPU120和/或GPU 130的处理的较高等待时间、吞吐量和其他方面的影响的方式确定时钟频率。欺骗时钟频率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。
本公开的方面克服了针对能力较弱的***编写的程序在能力较强的***上运行时出现的向后兼容性问题。调整能力较强的***的***时钟速率适应装置之间的差异。使可读循环计数器基于欺骗时钟而非真实时钟允许旧有应用程序码的正确操作。
尽管以上内容为对本发明的优选实施方案的完整描述,但有可能使用各种替代方案、修改和等效物。因此,本发明的范围不应参考以上描述确定,而应替代地参考随附权利要求连同其等效物的全范围判定。本文中描述的无论是否为优选的任何特征都可与本文中描述的无论是否为优选的任何其他特征组合。在随附权利要求中,除非另外明确陈述,否则不定冠词“一”指该冠词之后的项目中的一者或多者的数量。随附权利要求不应解释为包括构件加功能限制,除非此限制在给定权利要求中使用短语“用于……的构件”明确地叙述。
Claims (21)
1.一种在计算机***上执行计算机应用程序的方法,其包括:
a)确定加载在***的当前版本上的应用程序是用于***的所述当前版本或所述***的能力较弱的版本,其中所述***的所述当前版本的特征在于标准时钟频率;
b)当所述应用程序被设计成用于***的当前版本时,在处理器上按所述***的所述当前版本的所述标准时钟频率运行所述应用程序;以及
c)当所述应用程序被设计成用于所述***的能力较弱的版本时,按第二时钟频率运行所述应用程序,其中所述***的所述能力较弱的版本的特征在于不同的标准时钟频率,其中所述第二时钟频率小于所述***的所述当前版本的所述标准时钟频率且高于所述***的所述能力较弱的版本的所述标准时钟频率。
2.根据权利要求1所述的方法,其中a)包括检查所述应用程序的软件ID、所述应用程序的软件核对和、与所述应用程序相关联的元数据或与所述应用程序相关联的介质类型。
3.根据权利要求1所述的方法,其中c)包括基于所述***的所述当前版本与所述能力较弱的版本之间的等待时间或等待时间特征的差异、所述***的所述当前版本与所述能力较弱的版本之间的吞吐量或操作速度的差异,或所述***的所述当前版本与所述能力较弱的版本之间的关于用于计算的算法的差异设定所述第二时钟频率。
4.根据权利要求1所述的方法,其中所述***的所述当前版本包括软件可读循环计数器,其以所述***的所述能力较弱的版本的所述标准时钟频率或与之非常接近以便避免在操作时触发错误的速率递增。
5.根据权利要求1所述的方法,其中所述***的所述当前版本包括软件可读循环计数器,其中c)包括使所述循环计数器以所述能力较弱的***的所述标准时钟频率或与之非常接近以便避免在操作时触发错误的速率递增,且b)包括使所述循环计数器以不同速率递增。
6.根据权利要求1所述的方法,其中b)中的所述处理器包括设定为按所述***的所述当前版本的所述标准时钟频率运行的时钟,其中在c)中运行所述应用程序包括设定第二时钟以按所述第二时钟频率运行所述处理器,并且针对不同应用程序将所述第二时钟频率设定为不同值。
7.根据权利要求1所述的方法,其中c)包括基于当前正在所述处理器上运行的所述应用程序的性能特征动态地设定所述第二时钟频率。
8.根据权利要求1所述的方法,其中c)进一步包括通过考虑所述***的所述当前版本与所述能力较弱的版本之间的等待时间或等待时间特征的差异来确定所述第二时钟频率。
9.根据权利要求1所述的方法,其中c)进一步包括通过考虑所述***的所述当前版本与所述能力较弱的版本之间的吞吐量的差异来确定所述第二时钟频率。
10.根据权利要求1所述的方法,其中c)进一步包括通过考虑所述***的所述当前版本与所述能力较弱的版本之间的关于用于计算的算法的差异来确定所述第二时钟频率。
11.一种在计算机***上执行计算机应用程序的***,其包括:
处理器;
存储器;以及
处理器可执行指令,其体现于所述存储器中,所述指令被配置成在由所述处理器执行时实施方法,所述方法包括:
a)确定加载在所述***的当前版本上的应用程序是用于所述***的所述当前版本或所述***的能力较弱的版本,其中所述***的所述当前版本的特征在于标准时钟频率;
b)当所述应用程序被设计成用于***的当前版本时,在处理器上按所述***的所述当前版本的所述标准时钟频率运行所述应用程序;以及
c)当所述应用程序被设计成用于所述***的能力较弱的版本时,按第二时钟频率运行所述应用程序,其中所述***的所述能力较弱的版本的特征在于不同的标准时钟频率,其中所述第二时钟频率小于所述***的所述当前版本的所述标准时钟频率且高于所述***的所述能力较弱的版本的所述标准时钟频率。
12.根据权利要求11所述的***,其中a)包括检查所述应用程序的软件ID、所述应用程序的软件核对和、与所述应用程序相关联的元数据或与所述应用程序相关联的介质类型。
13.根据权利要求11所述的***,其中c)包括基于所述***的所述当前版本与所述能力较弱的版本之间的等待时间或等待时间特征的差异、所述***的所述当前版本与所述能力较弱的版本之间的吞吐量或操作速度的差异,或所述***的所述当前版本与所述能力较弱的版本之间的关于用于计算的算法的差异设定所述第二时钟频率。
14.根据权利要求11所述的***,其中所述***的所述当前版本包括软件可读循环计数器,其以所述***的所述能力较弱的版本的所述标准时钟频率或与之非常接近以便避免在操作时触发错误的速率递增。
15.根据权利要求11所述的***,其中所述***的所述当前版本包括软件可读循环计数器,其中c)包括使所述循环计数器以所述能力较弱的***的所述标准时钟频率或与之非常接近以便避免在操作时触发错误的速率递增,且b)包括使所述循环计数器以不同速率递增。
16.根据权利要求11所述的***,其中c)包括针对不同应用程序将所述第二时钟频率设定为不同值。
17.根据权利要求11所述的***,其中c)包括基于当前正在所述处理器上运行的所述应用程序的性能特征动态地设定所述第二时钟频率。
18.根据权利要求11所述的***,其中c)进一步包括通过考虑所述***的所述当前版本与所述能力较弱的版本之间的等待时间或等待时间特征的差异来确定所述第二时钟频率。
19.根据权利要求11所述的***,其中c)进一步包括通过考虑所述***的所述当前版本与所述能力较弱的版本之间的吞吐量的差异来确定所述第二时钟频率。
20.根据权利要求11所述的***,其中c)进一步包括通过考虑所述***的所述当前版本与所述能力较弱的版本之间的关于用于计算的算法的差异来确定所述第二时钟频率。
21.一种其中存储有计算机可读指令的非暂时性计算机可读介质,所述指令被配置成在由处理器执行时实施方法,所述方法包括:
a)确定加载在***的当前版本上的应用程序是用于***的所述当前版本或所述***的能力较弱的版本,其中所述***的所述当前版本的特征在于标准时钟频率;
b)当所述应用程序被配置成用于***的当前版本时,在处理器上按所述***的所述当前版本的所述标准时钟频率运行所述应用程序;以及
c)当所述应用程序被设计成用于所述***的能力较弱的版本时,按第二时钟频率运行所述应用程序,其中所述***的所述能力较弱的版本的特征在于不同的标准时钟频率,其中所述第二时钟频率小于所述***的所述当前版本的所述标准时钟频率且高于所述***的所述能力较弱的版本的所述标准时钟频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110968121.5A CN113791667B (zh) | 2015-02-20 | 2016-02-17 | 通过使用欺骗时钟及细粒度频率控制实现的向后兼容性 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/627,988 | 2015-02-20 | ||
US14/627,988 US9760113B2 (en) | 2015-02-20 | 2015-02-20 | Backward compatibility through use of spoof clock and fine grain frequency control |
PCT/US2016/018346 WO2016134071A1 (en) | 2015-02-20 | 2016-02-17 | Backward compatibility through use of spoof clock and fine grain frequency control |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110968121.5A Division CN113791667B (zh) | 2015-02-20 | 2016-02-17 | 通过使用欺骗时钟及细粒度频率控制实现的向后兼容性 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107251004A CN107251004A (zh) | 2017-10-13 |
CN107251004B true CN107251004B (zh) | 2021-09-07 |
Family
ID=56692494
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680010968.XA Active CN107251004B (zh) | 2015-02-20 | 2016-02-17 | 通过使用欺骗时钟及细粒度频率控制实现的向后兼容性 |
CN202110968121.5A Active CN113791667B (zh) | 2015-02-20 | 2016-02-17 | 通过使用欺骗时钟及细粒度频率控制实现的向后兼容性 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110968121.5A Active CN113791667B (zh) | 2015-02-20 | 2016-02-17 | 通过使用欺骗时钟及细粒度频率控制实现的向后兼容性 |
Country Status (7)
Country | Link |
---|---|
US (4) | US9760113B2 (zh) |
EP (2) | EP3761186A1 (zh) |
JP (1) | JP6467062B2 (zh) |
KR (1) | KR101862180B1 (zh) |
CN (2) | CN107251004B (zh) |
TW (4) | TWI615701B (zh) |
WO (1) | WO2016134071A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9836816B2 (en) | 2014-04-05 | 2017-12-05 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport |
US9652882B2 (en) | 2014-04-05 | 2017-05-16 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location |
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
US9495790B2 (en) | 2014-04-05 | 2016-11-15 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping to non-orthonormal grid |
US9865074B2 (en) | 2014-04-05 | 2018-01-09 | Sony Interactive Entertainment America Llc | Method for efficient construction of high resolution display buffers |
US10068311B2 (en) | 2014-04-05 | 2018-09-04 | Sony Interacive Entertainment LLC | Varying effective resolution by screen location by changing active color sample count within multiple render targets |
US10783696B2 (en) | 2014-04-05 | 2020-09-22 | Sony Interactive Entertainment LLC | Gradient adjustment for texture mapping to non-orthonormal grid |
US11302054B2 (en) | 2014-04-05 | 2022-04-12 | Sony Interactive Entertainment Europe Limited | Varying effective resolution by screen location by changing active color sample count within multiple render targets |
US9760113B2 (en) * | 2015-02-20 | 2017-09-12 | Sony Interactive Entertainment America Llc | Backward compatibility through use of spoof clock and fine grain frequency control |
US11403099B2 (en) | 2015-07-27 | 2022-08-02 | Sony Interactive Entertainment LLC | Backward compatibility by restriction of hardware resources |
US9892024B2 (en) | 2015-11-02 | 2018-02-13 | Sony Interactive Entertainment America Llc | Backward compatibility testing of software in a mode that disrupts timing |
KR102179237B1 (ko) | 2016-01-22 | 2020-11-16 | 주식회사 소니 인터랙티브 엔터테인먼트 | 하위 호환성을 위한 cpuid 스푸핑 |
CN108885553B (zh) | 2016-01-22 | 2022-12-27 | 索尼互动娱乐股份有限公司 | 模拟向后兼容的传统总线行为 |
US10915333B2 (en) * | 2016-03-30 | 2021-02-09 | Sony Interactive Entertainment Inc. | Deriving application-specific operating parameters for backwards compatiblity |
US10409319B2 (en) * | 2017-04-17 | 2019-09-10 | Intel Corporation | System, apparatus and method for providing a local clock signal for a memory array |
WO2023113822A1 (en) * | 2021-12-17 | 2023-06-22 | Google Llc | Loading state detection for gaming applications |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4787032A (en) * | 1986-09-08 | 1988-11-22 | Compaq Computer Corporation | Priority arbitration circuit for processor access |
US5125088A (en) * | 1986-09-08 | 1992-06-23 | Compaq Computer Corporation | Computer system speed control at continuous processor speed |
DE69230117T2 (de) * | 1991-06-17 | 2000-06-15 | Sun Microsystems, Inc. | Verfahren und Gerät, die es Rechnerschaltkreisen ermöglichen, mit aktualisierten Versionen von Rechnersoftware zu funktionieren |
JP3866781B2 (ja) * | 1994-05-26 | 2007-01-10 | セイコーエプソン株式会社 | 消費電力を効率化した情報処理装置 |
US5623647A (en) | 1995-03-07 | 1997-04-22 | Intel Corporation | Application specific clock throttling |
JP3272918B2 (ja) * | 1995-10-06 | 2002-04-08 | 富士通株式会社 | 並列処理計算機システムおよび同システム用構成装置並びに並列処理計算機システムにおけるクロック・チューニング方法 |
US6298448B1 (en) | 1998-12-21 | 2001-10-02 | Siemens Information And Communication Networks, Inc. | Apparatus and method for automatic CPU speed control based on application-specific criteria |
US6278338B1 (en) | 2000-05-01 | 2001-08-21 | Silicon Wave Inc. | Crystal oscillator with peak detector amplitude control |
US6681192B2 (en) * | 2000-09-23 | 2004-01-20 | Microsoft Corporation | Systems and methods for fast timer calibration |
US20020108064A1 (en) * | 2001-02-07 | 2002-08-08 | Patrick Nunally | System and method for optimizing power/performance in network-centric microprocessor-controlled devices |
JP2005506611A (ja) | 2001-10-10 | 2005-03-03 | ソニー・コンピュータ・エンタテインメント・アメリカ・インク | 環境マッピングシステムおよび方法 |
US7081893B2 (en) | 2001-10-10 | 2006-07-25 | Sony Computer Entertainment America Inc. | System and method for point pushing to render polygons in environments with changing levels of detail |
US7171606B2 (en) | 2003-03-25 | 2007-01-30 | Wegener Communications, Inc. | Software download control system, apparatus and method |
US7496776B2 (en) * | 2003-08-21 | 2009-02-24 | International Business Machines Corporation | Power throttling method and apparatus |
US20050076253A1 (en) * | 2003-10-05 | 2005-04-07 | De-Jen Lu | Method of url-based power management and associated web browsing device |
US7281145B2 (en) * | 2004-06-24 | 2007-10-09 | International Business Machiness Corporation | Method for managing resources in a CPU by allocating a specified percentage of CPU resources to high priority applications |
EP1803062A1 (en) * | 2004-09-20 | 2007-07-04 | Sony Computer Entertainment Inc. | Methods and apparatus for distributing software applications |
JP2006099411A (ja) * | 2004-09-29 | 2006-04-13 | Oki Electric Ind Co Ltd | ソフトウェアの使用制限方法 |
US8274518B2 (en) * | 2004-12-30 | 2012-09-25 | Microsoft Corporation | Systems and methods for virtualizing graphics subsystems |
US7930693B2 (en) * | 2005-04-04 | 2011-04-19 | Cisco Technology, Inc. | Method and system for accessing and launching a java based applet as a locally installed application |
FI20065165L (fi) | 2006-03-15 | 2007-09-16 | Abb Oy | Taajuusmuuttajan ohjain, oheislaite, menetelmä ja ohjelma |
US8149242B2 (en) | 2006-11-10 | 2012-04-03 | Sony Computer Entertainment Inc. | Graphics processing apparatus, graphics library module and graphics processing method |
US9760146B2 (en) * | 2007-01-08 | 2017-09-12 | Imagination Technologies Limited | Conditional activation and deactivation of a microprocessor |
US7941684B2 (en) * | 2008-02-28 | 2011-05-10 | Advanced Micro Devices, Inc. | Synchronization of processor time stamp counters to master counter |
US20100164966A1 (en) * | 2008-12-31 | 2010-07-01 | Apple Inc. | Timing controller for graphics system |
US20100199118A1 (en) * | 2009-02-03 | 2010-08-05 | Atmel Corporation | Microcontroller with compatibility mode |
US8276015B2 (en) | 2009-02-23 | 2012-09-25 | International Business Machines Corporation | Managing the power-performance range of an application |
US8463884B2 (en) | 2009-04-08 | 2013-06-11 | Microsoft Corporation | Synchronization of mobile device with application server |
US8706652B2 (en) | 2009-06-09 | 2014-04-22 | Northwestern University | System and method for controlling power consumption in a computer system based on user satisfaction |
TWI460572B (zh) | 2009-12-04 | 2014-11-11 | Via Tech Inc | 時脈產生器以及通用串列匯流排模組 |
TWI423017B (zh) * | 2010-06-21 | 2014-01-11 | Ind Tech Res Inst | 效能調整裝置、具有此效能調整裝置的處理器及其效能調整方法 |
TWI417703B (zh) | 2010-07-22 | 2013-12-01 | Genesys Logic Inc | 相容於通用序列匯流排協定之時脈同步方法 |
US8863114B2 (en) | 2010-12-06 | 2014-10-14 | Red Hat, Inc. | Managing software packages using a version control system |
US9891939B2 (en) | 2011-03-03 | 2018-02-13 | Microsoft Technology Licensing, Llc | Application compatibility with library operating systems |
US8707289B2 (en) * | 2011-07-20 | 2014-04-22 | Google Inc. | Multiple application versions |
US9196013B2 (en) * | 2011-10-31 | 2015-11-24 | Apple Inc. | GPU workload prediction and management |
US9928751B2 (en) * | 2012-06-29 | 2018-03-27 | Apple Inc. | Generic media covers |
KR20140030823A (ko) * | 2012-09-04 | 2014-03-12 | 삼성전자주식회사 | 3차원 작업 부하를 이용하여 dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법 |
US9858095B2 (en) * | 2012-09-17 | 2018-01-02 | International Business Machines Corporation | Dynamic virtual machine resizing in a cloud computing infrastructure |
GB2508599A (en) * | 2012-12-04 | 2014-06-11 | Ibm | Software version management when downgrading software |
CN103118290B (zh) * | 2013-02-28 | 2016-11-16 | 北京奇虎科技有限公司 | 程序安装适配性的检测方法、装置及*** |
US10409353B2 (en) * | 2013-04-17 | 2019-09-10 | Qualcomm Incorporated | Dynamic clock voltage scaling (DCVS) based on application performance in a system-on-a-chip (SOC), and related methods and processor-based systems |
US10176621B2 (en) | 2013-06-10 | 2019-01-08 | Sony Interactive Entertainment Inc. | Using compute shaders as front end for vertex shaders |
US10134102B2 (en) | 2013-06-10 | 2018-11-20 | Sony Interactive Entertainment Inc. | Graphics processing hardware for using compute shaders as front end for vertex shaders |
US10096079B2 (en) | 2013-06-10 | 2018-10-09 | Sony Interactive Entertainment Inc. | Fragment shaders perform vertex shader computations |
US10102603B2 (en) | 2013-06-10 | 2018-10-16 | Sony Interactive Entertainment Inc. | Scheme for compressing vertex shader output parameters |
US9836816B2 (en) | 2014-04-05 | 2017-12-05 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport |
US9495790B2 (en) | 2014-04-05 | 2016-11-15 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping to non-orthonormal grid |
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
US10438312B2 (en) | 2014-04-05 | 2019-10-08 | Sony Interactive Entertainment LLC | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters |
US9652882B2 (en) | 2014-04-05 | 2017-05-16 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location |
US20160116954A1 (en) * | 2014-10-28 | 2016-04-28 | Linkedln Corporation | Dynamic adjustment of cpu operating frequency |
US9760113B2 (en) * | 2015-02-20 | 2017-09-12 | Sony Interactive Entertainment America Llc | Backward compatibility through use of spoof clock and fine grain frequency control |
US10235219B2 (en) | 2015-07-27 | 2019-03-19 | Sony Interactive Entertainment America Llc | Backward compatibility by algorithm matching, disabling features, or throttling performance |
US9892024B2 (en) | 2015-11-02 | 2018-02-13 | Sony Interactive Entertainment America Llc | Backward compatibility testing of software in a mode that disrupts timing |
-
2015
- 2015-02-20 US US14/627,988 patent/US9760113B2/en active Active
-
2016
- 2016-01-26 TW TW105135728A patent/TWI615701B/zh active
- 2016-01-26 TW TW108118437A patent/TWI739112B/zh active
- 2016-01-26 TW TW106142239A patent/TWI669592B/zh active
- 2016-01-26 TW TW105102350A patent/TWI569128B/zh active
- 2016-02-17 KR KR1020177026375A patent/KR101862180B1/ko active IP Right Grant
- 2016-02-17 EP EP20191048.6A patent/EP3761186A1/en active Pending
- 2016-02-17 CN CN201680010968.XA patent/CN107251004B/zh active Active
- 2016-02-17 JP JP2017543996A patent/JP6467062B2/ja active Active
- 2016-02-17 EP EP16753011.2A patent/EP3259676B1/en active Active
- 2016-02-17 WO PCT/US2016/018346 patent/WO2016134071A1/en active Application Filing
- 2016-02-17 CN CN202110968121.5A patent/CN113791667B/zh active Active
-
2017
- 2017-09-12 US US15/701,736 patent/US10534395B2/en active Active
-
2020
- 2020-01-10 US US16/740,271 patent/US11119528B2/en active Active
-
2021
- 2021-09-14 US US17/475,164 patent/US11829197B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TW201937332A (zh) | 2019-09-16 |
KR20170113676A (ko) | 2017-10-12 |
EP3761186A1 (en) | 2021-01-06 |
TWI669592B (zh) | 2019-08-21 |
US10534395B2 (en) | 2020-01-14 |
US11119528B2 (en) | 2021-09-14 |
KR101862180B1 (ko) | 2018-05-29 |
JP2018511859A (ja) | 2018-04-26 |
TW201723723A (zh) | 2017-07-01 |
TW201809950A (zh) | 2018-03-16 |
US20220004219A1 (en) | 2022-01-06 |
TWI615701B (zh) | 2018-02-21 |
EP3259676A1 (en) | 2017-12-27 |
US20180004243A1 (en) | 2018-01-04 |
EP3259676A4 (en) | 2018-07-25 |
JP6467062B2 (ja) | 2019-02-06 |
EP3259676B1 (en) | 2020-09-23 |
US9760113B2 (en) | 2017-09-12 |
US11829197B2 (en) | 2023-11-28 |
CN113791667B (zh) | 2022-10-21 |
US20200150712A1 (en) | 2020-05-14 |
CN107251004A (zh) | 2017-10-13 |
US20160246323A1 (en) | 2016-08-25 |
TWI739112B (zh) | 2021-09-11 |
CN113791667A (zh) | 2021-12-14 |
TWI569128B (zh) | 2017-02-01 |
TW201640250A (zh) | 2016-11-16 |
WO2016134071A1 (en) | 2016-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107251004B (zh) | 通过使用欺骗时钟及细粒度频率控制实现的向后兼容性 | |
JP6073533B1 (ja) | タイルベースのアーキテクチャ上での最適化されたマルチパスレンダリング | |
US9715750B2 (en) | System and method for layering using tile-based renderers | |
EP2734923B1 (en) | Synchronization of shader operation | |
EP4242797A2 (en) | Frame based clock rate adjustment for processing unit | |
US10553024B2 (en) | Tile-based rendering method and apparatus | |
KR20190109396A (ko) | 압축된 자원에 셰이더의 기입 | |
WO2021168771A1 (en) | Optimized method of page zeroing in memory pool | |
US10796399B2 (en) | Pixel wait synchronization | |
US9159160B1 (en) | Texture sharing between application modules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |