以扰乱时序的模式进行的软件向后兼容性测试制造技术

技术编号:18609890 阅读:34 留言:0更新日期:2018-08-04 22:54
装置可在时序测试模式下运行,在所述时序测试模式下,所述装置被配置来在用一个或多个处理器运行应用程序时,扰乱所述一个或多个处理器上发生的处理的时序。所述应用程序可在所述装置正在所述时序测试模式下运行时测试错误。

【技术实现步骤摘要】
【国外来华专利技术】以扰乱时序的模式进行的软件向后兼容性测试本申请要求2015年11月02日提交的共同转让的美国非临时申请号14/930,408的优先权权益,所述申请的全部内容以引用的方式并入本文。
本公开的各方面涉及在计算机系统上执行计算机应用程序。具体地说,本公开的各方面涉及一种为针对计算机系统的较旧版本所设计的应用程序/标题提供向后兼容性的系统或方法。
技术介绍
现代计算机系统经常针对不同计算任务使用若干不同处理器。例如,除若干中央处理单元(CPU)之外,现代计算机还可具有专用于图形管线中的某些计算任务的图形处理单元(GPU),或专用于针对音频的数字信号处理的单元,所有这些单元潜在地是加速处理单元(APU)的一部分,所述APU也可包含其他单元。使用可在APU内部或在外部位于计算机的母板上的总线将这些处理器连接到各种类型的存储器。通常针对诸如视频游戏控制台或智能手机(“旧版装置”)的计算机系统创建一组应用程序,并且当发布计算机系统的变体或更先进版本(“新装置”)时,希望旧版装置的应用程序在新装置上完美地运行,而不需要考虑到新装置的属性而进行的重新编译或任何修改。如新装置的硬件体系结构、固件和操作系统中所包含,新装置的这个方面经常被称为“向后兼容性”。向后兼容性经常通过二进制兼容性来实现,其中新装置能够执行针对旧版装置创建的程序。然而,当这种装置类别的实时行为对于它们的操作很重要时,如就视频游戏控制台或智能手机而言,新装置的操作速度的显著差别可能使其不能相对于旧版装置向后兼容。如果新装置具有比旧版装置低的性能,那么阻止向后兼容性的问题可能出现;如果新装置具有更高的性能或与旧版装置相比具有不同的性能特性,也是这样。本公开的各个方面正是在此背景下产生。附图说明通过结合附图考虑以下详述,可以轻易地理解本公开的教义,在附图中:图1是示出根据本公开的各方面的中央处理单元(CPU)核心的一个实例的框图,所述CPU核心可被配置来以向后兼容模式操作。图2是示出根据本公开的各方面的CPU的可能多核心体系结构的一个实例的框图。图3是根据本公开的各方面的具有被配置来以向后兼容模式操作的CPU的装置的框图。图4是示出“偏斜(skew)”的概念的时序图。图5是示出根据本公开的各方面的装置以时序测试模式操作的流程图。引言即使新装置的CPU与旧版装置二进制兼容(即,能够执行针对旧版装置创建的程序),新装置的CPU与旧版装置的CPU之间的性能特性的差别仍可能导致旧版应用程序中的错误,因此新装置将不是向后兼容的。如果新装置的CPU具有比旧版装置的CPU低的性能,那么旧版应用程序中的许多错误可能由于不能满足由显示时序、音频流式输出等强加的实时期限而产生。如果新装置的CPU具有实质上比旧版装置的CPU高的性能,那么旧版应用程序中的许多错误可能由于这种高速操作的未测试结果而产生。例如,在生产者-消费者模型中,如果数据消费者(例如,CPU)以比初始预期高的速度操作,那么它可能试图在数据生产者(例如,计算机的一些其他组件)使数据可用之前访问数据。另选地,如果数据生产者(例如,CPU)以比初始预期高的速度操作,那么它可能覆写数据消费者(例如,计算机的一些其他组件)仍在使用的数据。另外,由于CPU执行代码的速度取决于被执行的特定代码的特性,因此可能的是,新装置的CPU的性能相对于旧版装置增加的程度将取决于被执行的特定代码。这可导致上述生产者-消费者模型中的问题,其中生产者和消费者都是CPU,但是以在旧版硬件上没有遇到的相对速度执行旧版应用程序的代码。具体实施方式本公开的各方面描述计算机系统和方法,所述计算机系统和方法可允许针对装置编写的应用程序在第二装置上运行时具有更高程度的向后兼容性,所述第二装置二进制兼容(因为针对第一装置编写的程序将在第二装置上运行)但是具有不同的时序特性(因为针对第一装置编写的程序将在第二装置上以不同速率执行,因此可能产生操作中的错误)。第二装置可潜在地是第一装置的变体或更先进版本,并且可以潜在地以“向后兼容模式”来配置,其中第二装置的特征和能力更紧密地近似第一装置的特征和能力。在本公开的实现方式中,为第一装置创建时序测试模式。这个模式创建了在装置上未发现(或通常未发现)的时序,结果是,当应用程序以这个模式运行时,各硬件组件(诸如CPU、GPU、音频和视频硬件)之间或各软件组件(诸如应用程序处理或OS处理)之间的同步中的错误以在正常操作期间装置上不可能或不常见的方式出现。一旦检测到这些同步中的错误,就可修复应用程序软件以消除或减轻这些错误,从而增加应用程序将在具有不同时序特性的第二装置上适当执行的可能性,即,相对于第一装置,应用程序在第二装置上将具有更高程度的向后兼容性。由于可能未知第二装置的能力(例如,其可能是尚不存在的未来装置),因此有益的是,在时序测试模式中的可用时序具有很大变化。在本公开的实现方式中,在时序测试模式下,操作系统可以特定状态(例如,以在装置的正常操作中未发现的特定操作频率)配置硬件。另外,在时序测试模式下,操作系统可在应用程序正在运行时更改硬件配置或在应用程序正在运行时执行各种处理(例如,竞争系统资源或先占应用程序处理的进程)。在本公开的实现方式中,所述测试可对不同于装置的硬件执行。例如,使用选定来以比消费者装置大的操作范围运行的IC将允许在消费者装置上不可用的测试模式。图1示出CPU核心100的一般化体系结构。CPU核心100通常包括分支预测单元102,所述分支预测单元102试图预测分支是否将被采用,并且还试图(在所述分支被采用的情况下)预测所述分支的目的地址。在这些预测是正确的情况下,推测地执行的代码的效率将增加;因此高度准确的分支预测是极度需要的。分支预测单元102可包括高度专门化的子单元,诸如追踪来自子例程的返回地址的返回地址堆栈104、追踪间接分支的目的地的间接目标阵列106,以及追踪分支的过去历史以便更准确地预测分支的所得地址的分支目标缓冲器108和其相关联预测逻辑。CPU核心100通常包括指令提取和解码单元110,所述指令提取和解码单元110包括指令提取单元112、指令字节缓冲器114和指令解码单元116。CPU核心100通常还包括若干指令相关的高速缓存和指令转换后备缓冲器(ITLB)120。这些可包括ITLB高速缓存分级结构124,所述ITLB高速缓存分级结构124将虚拟地址高速缓存到诸如页面表条目、页面目录条目等物理地址转换信息。使用这个信息来将指令的虚拟地址变换成物理地址,使得指令提取单元112可从高速缓存分级结构加载指令。以举例而不是限制的方式,可根据高速缓存分级结构来高速缓存程序指令,所述高速缓存分级结构包括驻留在核心中的1级指令高速缓存(L1I-高速缓存)122以及在CPU核心100外部的其他高速缓存级别176;使用指令的物理地址,首先针对程序指令搜索这些高速缓存。如果未找到指令,那么从系统存储器101加载指令。取决于体系结构,还可存在如下文所述的包含已解码指令的微操作(micro-op)高速缓存126。一旦提取了程序指令,通常将指令放在指令字节缓冲器114中,等待由指令提取和解码单元110处理。解码可以是非常复杂的过程;难以每个循环解码多个指令,并且可能存在对指令对准或指令类本文档来自技高网...

【技术保护点】
1.一种装置,其包括:一个或多个处理器;存储器,其耦合到所述一个或多个处理器;以及操作系统(OS),其存储在所述存储器中,被配置来在所述一个或多个处理器中的至少一个子集上运行,其中所述操作系统被配置来选择性地以正常模式或时序测试模式运行,其中在所述时序测试模式下,所述装置被配置来在用所述一个或多个处理器运行应用程序时,扰乱所述一个或多个处理器上发生的处理的时序,并且在所述装置正在所述时序测试模式下运行时测试所述应用程序的错误。

【技术特征摘要】
【国外来华专利技术】2015.11.02 US 14/930,4081.一种装置,其包括:一个或多个处理器;存储器,其耦合到所述一个或多个处理器;以及操作系统(OS),其存储在所述存储器中,被配置来在所述一个或多个处理器中的至少一个子集上运行,其中所述操作系统被配置来选择性地以正常模式或时序测试模式运行,其中在所述时序测试模式下,所述装置被配置来在用所述一个或多个处理器运行应用程序时,扰乱所述一个或多个处理器上发生的处理的时序,并且在所述装置正在所述时序测试模式下运行时测试所述应用程序的错误。2.如权利要求1所述的装置,其中在所述时序测试模式下,所述装置被配置来在所述一个或多个处理器上运行应用程序时,通过实时修改所述装置的一个或多个硬件设置来扰乱所述一个或多个处理器上发生的处理的时序。3.如权利要求1所述的装置,其中在所述时序测试模式下,所述装置被配置来在所述一个或多个处理器上运行应用程序时,通过以扰乱时序的方式向所述装置的一个或多个硬件组件发送命令来扰乱所述一个或多个处理器上发生的处理的时序。4.如权利要求1所述的装置,其中所述一个或多个处理器包括一个或多个中央处理器单元(CPU)核心,其中在所述时序测试模式下,所述一个或多个CPU核心的至少一个子集被配置来以与所述一个或多个CPU核心在正常模式下的标准操作频率不同的一个或多个频率操作。5.如权利要求4所述的装置,其中所述一个或多个CPU核心的所述至少一个子集被配置一次来以与所述一个或多个CPU核心在正常模式下的标准操作频率不同的一个或多个频率操作。6.如权利要求4所述的装置,其中,在所述时序测试模式下,所述OS修改所述一个或多个CPU核心的所述至少一个子集中的特定CPU核心的操作频率。7.如权利要求4所述的装置,其中在所述时序测试模式下,所述一个或多个CPU核心的所述至少一个子集被配置来以相同频率操作。8.如权利要求4所述的装置,其中在所述时序测试模式下,所述一个或多个CPU核心的所述至少一个子集被配置来以不同频率操作。9.如权利要求4所述的装置,其中在所述时序测试模式下,所述一个或多个CPU核心的所述至少一个子集中的一个或多个给定CPU核心被配置来以一个频率操作,而所述一个或多个CPU核心的所述至少一个子集中的一个或多个其他CPU核心被配置来以另一频率操作。10.如权利要求4所述的装置,其中所述一个或多个CPU核心的所述至少一个子集中的所述CPU核心中的一个或多个被配置来以比所述一个或多个CPU核心在正常模式下的标准操作频率高的一个或多个频率操作。11.如权利要求4所述的装置,其中所述一个或多个CPU核心的所述至少一个子集中的所述CPU核心中的一个或多个被配置来以比所述一个或多个CPU核心在正常模式下的标准操作频率低的一个或多个频率操作。12.如权利要求1所述的装置,其还包括耦合到所述一个或多个处理器的一个或多个高速缓存,其中在所述时序测试模式下,所述一个或多个高速缓存的至少一个子集被配置来以与所述一个或多个高速缓存在正常模式下的标准操作频率不同的一个或多个频率操作。13.如权利要求12所述的装置,其中所述一个或多个高速缓存的所述至少一个子集被配置一次来以与所述一个或多个高速缓存在正常模式下的标准操作频率不同的一个或多个频率操作。14.如权利要求12所述的装置,其中,在所述时序测试模式下,所述OS修改所述一个或多个高速缓存的所述至少一个子集中的高速缓存的操作频率。15.如权利要求12所述的装置,其中在所述时序测试模式下,所述一个或多个高速缓存的所述至少一个子集被配置来以相同频率操作。16.如权利要求12所述的装置,其中在所述时序测试模式下,所述一个或多个高速缓存的所述至少一个子集被配置来以不同频率操作。17.如权利要求12所述的装置,其中在所述时序测试模式下,所述一个或多个高速缓存的所述至少一个子集中的至少一个高速缓存被配置来以一个频率操作,而所述一个或多个高速缓存的所述至少一个子集中的一个或多个其他高速缓存被配置来以另一频率操作。18.如权利要求12所述的装置,其中所述一个或多个高速缓存的所述至少一个子集中的所述高速缓存中的一个或多个被配置来以比所述一个或多个高速缓存在正常模式下的标准操作频率高的一个或多个频率操作。19.如权利要求12所述的装置,其中所述一个或多个高速缓存的所述至少一个子集中的所述高速缓存中的一个或多个被配置来以比所述一个或多个高速缓存在正常模式下的标准操作频率低的一个或多个频率操作。20.如权利要求1所述的装置,其还包括耦合到所述一个或多个处理器的一个或多个高速缓存,其中在所述时序测试模式下,所述一个或多个高速缓存的至少一个子集被配置来以与所述一个或多个高速缓存在正常模式下的可用方式计数不同的可用方式计数操作。21.如权利要求1所述的装置,其还包括耦合到所述一个或多个处理器的一个或多个高速缓存,其中在所述时序测试模式下,所述一个或多个高速缓存的至少一个子集被配置来以与所述一个或多个高速缓存在正常模式下的可用组计数不同的可用组计数操作。22.如权利要求1所述的装置,其还包括耦合到所述一个或多个处理器的一个或多个高速缓存,其中被配置来在正常模式下作为内含式高速缓存操作的所述一个或多个高速缓存的至少一个子集被重新配置来在所述时序测试模式下作为独占式高速缓存操作。23.如权利要求1所述的装置,其还包括耦合到所述一个或多个处理器的一个或多个高速缓存,其中被配置来在正常模式下作为内含式高速缓存操作的所述一个或多个高速缓存的至少一个子集被重新配置来在所述时序测试模式下作为独占式高速缓存操作。24.如权利要求1所述的装置,其还包括耦合到所述一个或多个处理器的一个或多个高速缓存,其中所述一个或多个高速缓存的至少一个子集的在正常模式下基于虚拟地址的高速缓存和高速缓存查找行为被改变成在所述时序测试模式下基于虚拟地址的高速缓存和高速缓存查找行为。25.如权利要求1所述的装置,其还包括耦合到所述一个或多个处理器的一个或多个指令高速缓存,其中所述一个或多个指令高速缓存的至少一个子集的在正常模式下被启用的预提取功能在所述时序测试模式下被禁用。26.如权利要求1所述的装置,其中在所述时序测试模式下,所述装置被配置来在所述一个或多个处理器上运行应用程序时,通过运行干扰所述应用程序的一个或多个程序来扰乱所述一个或多个处理器上发生的处理的时序。27.如权利要求22所述的装置,其中所述一个或多个程序从所述应用程序夺取资源。28.如权利要求22所述的装置,其中所述一个或多个程序暂停所述应用程序。29.如权利要求22所述的装置,其中所述一个或多个程序与所述应用程序竞争资源。30.如权利要求1所述的装置,其中在所述时序测试模式下,所述装置被配置来在所述一个或多个处理器上运行应用程序时,通过以扰乱时序的方式更改所述操作系统的功能来扰乱所述一个或多个处理器上发生的处理的时序。31.如权利要求1所述的装置,其中所述一个或多个处理器包括中央处理单元(CPU),其中,在所述时序测试模式下,所述装置被配置来在所述一个或多个处理器上运行应用程序时,通过减少可用于运行所述应用程序的所述CPU的资源来扰乱所述一个或多个处理器上发生的处理的时序。32.如权利要求31所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小队列的大小。33.如权利要求32所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小存储队列的大小。34.如权利要求32所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小加载队列的大小。35.如权利要求32所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小调度队列的大小。36.如权利要求32所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小停用队列的大小。37.如权利要求31所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小高速缓存的大小。38.如权利要求37所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小1级指令高速缓存的大小。39.如权利要求37所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小1级数据高速缓存的大小。40.如权利要求37所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小更高级别高速缓存的大小。41.如权利要求31所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小表后备缓冲器(TLB)的大小。42.如权利要求41所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小指令转换后备缓冲器(ITLB)的大小。43.如权利要求41所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小数据转换后备缓冲器(DTLB)的大小。44.如权利要求31所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小一个或多个指令管的执行速率。45.如权利要求31所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小一个或多个特定指令的执行速率。46.如权利要求31所述的装置,其中减少可用于运行所述应用程序的所述CPU的资源包括减小由所述CPU执行的所有指令的执行速率。47.如权利要求31所述的装置,其中所述CPU包括算术逻辑单元(ALU),其中减少可用于运行所述应用程序的所述CPU的资源包括减小由所述ALU执行的一个或多个特定指令的执行速率。48.如权利要求31所述的装置,其中所述CPU包括算术逻辑单元(ALU),其中减少可用于运行所述应用程序的所述CPU的资源包括减小由所述ALU执行的所有指令的执行速率。49.如权利要求31所述的装置,其中所述CPU包括地址生成单元(AGU),其中减少可用于运行所述应用程序的所述CPU的资源包括减小由所述AGU执行的一个或多个特定指令的执行速率。50.如权利要求31所述的装置,其中所述CPU包括地址生成单元(AGU),其中减少可用于运行所述应用程序的所述CPU的资源包括减小由所述AGU执行的所有指令的执行速率。51.如权利要求31所述的装置,其中所述CPU包括单指令多数据(SIMD)单元,其中减少可用于运行所述应用程序的所述CPU的资源包括减小由所述SIMD单元执行的一个或多个特定指令的执行速率。52.如权利要求31所述的装置,其中所述CPU包括单指令多数据(SIMD)单元,其中减少可用于运行所述应用程序的所述CPU的资源包括减小由所述SIMD单元执行的所有指令的执行速率。53.如权利要求31所述的装置,其中所述CPU包括一个或多个处理器核心,其中减小可用于运行所述应用程序的所述CPU的资源包括先占所述一个或多个处理器核心的一个或多个个别处理器核心。54.如权利要求1所述的装置,其中,在所述时序测试模式下,所述装置被配置来在所述一个或多个处理器上运行应用程序时,通过暂停一个或多个应用程序线程来扰乱所述一个或多个处理器上发生的处理的时序。55.如权利要求1所述的装置,其中,在所述时序测试模式下,所述装置被配置来在所述一个或多个处理器上运行应用程序时,通过暂停多个应用程序线程来扰乱所述一个或多个处理器上发生的处理的时序。56.如权利要求1所述的装置,其中,在所述时序测试模式下,所述装置被配置来在所述一个或多个处理器上运行应用程序时,通过暂停所有应用程序线程来扰乱所述一个或多个处理器上发生的处理的时序。57.如权利要求1所述的装置,其中,在所述时序测试模式下,所述装置被配置来在所述一个或多个处理器上运行应用程序时,通过随机地对一个或多个应用程序线程的暂停进行时序的选择来扰乱所述一个或多个处理器上发生的处理的时序。58.如权利要求1所述的装置,其中,在所述时序测试模式下,所述装置被配置来在所述一个或多个处理器上运行应用程序时,通过有条理地对一个或多个应用程序线程的暂停进行时序的选择来扰乱所述一个或多个处理器上发生的处理的时序。59.如权利要求1所述的装置,其中,在所述时序测试模式下,所述装置被配置来在所述一个或多个处理器上运行应用程序时,通过延迟在使用所述OS的功能时引入的时序来扰乱所述一个或多个处理器上发生的处理的时序。60.如权利要求1所述的装置,其中,在所述时序测试模式下,所述装置被配置来在所述一个或多个处理器上运行应用程序时,通过加速在使用所述OS的功能时引入的时序来扰乱所述一个或多个处理器上发生的处理的时序。61.如权利要求1所述的装置,其中,在所述时序测试模式下,所述装置被配置来在所述一个或多个处理器上运行应用程序时,通过改变在使用所述OS的功能时引入的时序来扰乱所述一个或多个处理器上发生的处理的时序。62.如权利要求1所述的装置,其中,在时序测试模式下,当所述OS执行所述应用程序所请求的处理时,由所述OS所花费的时间和所述OS用于执行所述处理的所述一个或多个处理器中的特定处理器与在正常模式下的操作期间由所述OS所花费的时间和用于执行所述处理的所述特定处理器不同。63.如权利要求1所述的装置,其中,在时序测试模式下,当所述OS与来自所述应用程序的请求无关地执行处理时,由所述OS所花费的时间和所述OS用于执行所述处理的所述一个或多个处理器中的特定处理器与在正常模式下由所述OS所花费的时间和用于执行所述处理的所述特定处理器不同。64.如权利要求1所述的装置,其中所述一个或多个处理器包括中央处理单元(CPU),并且其中在所述时序测试模式下,所述装置被配置来在用所述一个或多个处理器运行应用程序时,通过回写或使所述CPU的一个或多个高速缓存和/或转换后备缓冲器无效来扰乱所述一个或多个处理器上发生的处理的时序。65.如权利要求1所述的装置,其中所述一个或多个处理器包括中央处理单元(CPU),并且其中在所述时序测试模式下,所述装置被配置来在用所述一个或多个处理器运行应用程序时,通过回写所述CPU的一个或多个高速缓存来扰乱所述一个或多个处理器上发生的处理的时序。66.如权利要求1所述的装置,其中所述一个或多个处理器包括中央处理单元(CPU),并且其中在所述时序测试模式下,所述装置被配置来在用所述一个或多个处理器运行应用程序时,通过使所述CPU的一个或多个高速缓存无效来扰乱所述一个或多个处理器上发生的处理的时序。67.如权利要求1所述的装置,其中所述一个或多个处理器包括中央处理单元(CPU),并且其中在所述时序测试模式下,所述装置被配置来在用所述一个或多个处理器运行应用程序时,通过回写所述CPU的一个或多个转换后备缓冲器来扰乱所述一个或多个处理器上发生的处理的时序。68.如权利要求1所述的装置,其中所述一个或多个处理器包括中央处理单元(CPU),并且其中在所述时序测试模式下,所述装置被配置来在用所述一个或多个处理器运行应用程序时,通过使所述CPU的一个或多个转换后备缓冲器无效来扰乱所述一个或多个处理器上发生的处理的时序。69.如权利要求1所述的装置,其中所述一个或多个处理器包括中央处理单元(CPU),并且其中在所述时序测试模式下,所述装置被配置来在用所述一个或多个处理器运行应用程序时,通过回写所述CPU的一个或多个指令转换后备缓冲器(ITLB)来扰乱所述一个或多个处理器上发生的处理的时序。70.如权利要求1所述的装置,其中所述一个或多个处理器包括中央处理单元(CPU),并且其中在所述时序测试模式下,所述装置被配置来在用所述一个或多个处理器运行应用程序时...

【专利技术属性】
技术研发人员:ME塞尔尼D辛普森
申请(专利权)人:索尼互动娱乐有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1