仿真的选择性加速

文档序号:1146526 发布日期:2020-09-11 浏览:4次 >En<

阅读说明:本技术 仿真的选择性加速 (Simulated selective acceleration ) 是由 D.托尔斯托夫 G.诺顿 风间隆行 J.斯泰恩 于 2018-04-24 设计创作,主要内容包括:公开了在更现代的计算机系统上选择性地加速为旧版计算机系统编写的程序的仿真。所述主机系统处理与主机输出同步的仿真程序资产。当检测到对所述仿真程序资产与主机输出之间的同步的需求降低时,解锁对仿真程序资产的处理与所述主机输出的同步,并且所述主机系统加速对已为其解锁所述同步的所述仿真程序资产的处理。(Selectively accelerating emulation of programs written for legacy computer systems on more modern computer systems is disclosed. The host system processes the simulation program assets in synchronization with the host output. When a reduced need for synchronization between the simulation program asset and host output is detected, the synchronization of the processing of the simulation program asset with the host output is unlocked and the host system accelerates the processing of the simulation program asset for which the synchronization has been unlocked.)

仿真的选择性加速

优先权要求

本申请要求2017年5月26日提交的第15/607,302号美国专利申请的优先权权益,所述美国专利申请的全部内容以引用的方式并入本文。

技术领域

本公开涉及旧版程序的仿真。更具体地,本公开涉及程序仿真期间的加速处理。

发明背景

在主机系统(例如,与目标系统不同的系统或目标系统的更现代版本)上仿真为目标系统(例如,旧版装置)编写的程序时,通常目标系统的功能不如主机系统强大。目标系统的功能降低可能采取较慢的时钟速度或系统组件响应时间的形式。为目标系统编写的程序可能依赖于目标系统的较慢速度。由于这种依赖性,仿真程序可能无法利用主机系统的全部功能。

在基于云的游戏系统中,大多数处理都在基于云的服务器上进行。这允许与基于云的服务器通信的客户端装置平台使用较少的资源来处理基于云的游戏。当前的技术实施增量缓冲来使游戏更快地加载,并在服务器与客户端之间进行并行处理。然而,由于这种布置,客户端装置与服务器之间的通信必须同步。如果客户端装置和服务器未同步,则可能导致异常或意外的装置行为。

借助基于云的旧版游戏仿真,客户端或主机装置的功能通常比旧版游戏被编程为在其上运行的目标系统显著强大。因此,如果客户端装置可以加速游戏仿真的处理,则可以实现改进仿真游戏的运行。因此,在本领域中需要加速对仿真游戏的处理的方法。

具体实施方式

尽管以下详细描述出于说明的目的包括许多特定细节,但是所属领域的普通技术人员应理解,对以下细节的许多变化和更改都在本发明的范围内。相应地,以下描述的本发明的示例性实施方案在不失去所要求保护的发明的一般性且不对其施加限制的情况下进行阐述。

根据本公开的各方面,主机系统可以实施用于在主机系统100上对为目标系统编写的程序的仿真进行加速的方案。主机系统可以通过生成仿真程序资产来实施仿真过程,所述仿真程序资产可以由主机系统处理以生成并利用所产生的输出(在本文中称为主机输出)。替代地,主机系统可以生成程序资产或主机输出,并通过网络将所述程序资产或主机输出传输至远程系统以进行处理和/或利用。在主机系统实施仿真的情况下,可以由主机系统翻译目标系统代码,然后可以执行翻译后的代码。在执行期间,主机系统可以降低其处理指令101的速度,以便维持主机系统的输出之间的同步。例如,程序的音频和视频可以在目标上同步,但是当以主机系统的全速仿真所述程序时,同步将会丢失,因为在主机系统上音频的处理速度比视频的处理速度快,并且原始程序并未设计解决这一差异。类似地,在目标系统的程序中可能存在视频或音频的处理器速度相关元素,当在主机系统上以主机系统的全速运行时,所述元素会导致程序以用户无法预期的方式运行。这些问题都会降低主机系统上的仿真质量,除非系统降低处理仿真的速度。因此,为了避免损失仿真质量,主机系统将仿真资产的处理和主机输出的生成与仿真目标系统的速度同步。作为这种折衷的结果,尽管主机系统是更新的且功能更强的装置,但在向最终用户运行目标系统程序方面主机系统可能未提供任何明显的改进。

为了在主机上实现目标系统程序的改进性能,主机系统实施用于处理的选择性加速的方法,如图1所示。如102所指示,主机系统可以检测何时减少了对仿真程序资产的处理与目标系统的仿真的同步需求。在仿真过程中,有许多情况可能会以减少的仿真需求为特征。许多此类情况的共同特征是,用户体验不会因仿真程序资产的处理与主机输出的生成之间的同步程度降低或完全缺乏同步而受到影响,或甚至因而得到增强。此类情况的一些非限制性实例包括其中音频、视频或触觉输出无需与仿真的其它方面或与彼此同步的情况。

作为实例而非限制,在某些实施方式中,在102处检测到对处理仿真程序资产与主机输出的同步的需求降低可以包括检测到具有预加载音频和视频分量的预加载迷你游戏。此类检测可以用于触发迷你游戏的加载的加速。例如,可以通过监视仿真程序存储器子系统的指示非可见资产准备的唯一可识别行为来识别加载屏幕迷你游戏(即,可以作为另一个应用负载来玩的迷你游戏)。加载屏幕迷你游戏可能特有的行为实例是将大量资产加载到视频存储器中,而视频子系统没有立即使用所述资产。这种未使用分配的重复模式强烈表明正在发生背景加载,并且用户观察到的行为是迷你游戏或动画加载屏幕。用于确定资产分配大小,重复模式和立即使用的试探标准可能会根据仿真的目标架构而变化。

如果检测到对同步的需求降低,则主机系统可以如103所指示解锁与目标系统的仿真的同步,并且如104所指示加速仿真程序资产的处理。

为了检测主机系统是否可以解锁同步,主机可以实施如图2所示的输出检测过程200。在所示实例中,可以在音频202和视频201的检测之间划分输出检测过程。

为了检测视频201,系统可以最初检测显示器输出是黑的还是空白的203。替代地,主机系统检测仿真程序是否需要主机系统将图像输出到屏幕203。如果检测到图像输出,则系统可以监视输出以检测所需的输出是否为静态的204。例如,主机系统可以监视视频输出在指定时间段内的变化,如果未发现变化,则主机系统确定屏幕为静态的204。替代地,主机系统可以监视仿真程序是否需要静态屏幕204的输出。如果未检测到静态屏幕,则主机系统可以监视仿真程序资产,以确定视频输出是否已经加载到存储器中205。如果主机系统检测到视频输出已经预加载到存储器中,则主机系统可以进一步确定是否需要对视频进行任何额外处理。在其它实施方案中,如果主机系统检测到未立即使用的对系统或GPU存储器的重复大容量存储器分配,则主机系统可以加速视频的处理。可以将预加载的视频检测为立即使用的单个或重复的存储器分配。应理解,大容量存储器分配可以由系统自动定义,或由用户根据应用定义。针对立即使用的阈值可以根据应用、系统架构等而变化。

如果在上述步骤中主机系统确定不存在显示器输出203或静态输出204或预加载视频序列205,则系统将解锁处理视频资产的同步103。视频资产的同步可以在音频与视频之间进行。替代地,同步可以在仿真目标系统的处理时钟速度与视频资产的处理之间进行。例如,仿真程序可以包括与处理器时钟速度有关的资产,这些资产在以与目标系统不同的时钟速度进行处理时会创建用户感知到的不期望行为。作为实例而非限制,用户感知到的不期望行为可能是在视频游戏中,角色在屏幕上的移动比预期的快得多。在另一实施方案中,同步可以在主机系统上的视频资产的处理与通过网络在远程系统上运行的仿真器之间进行。换句话说,主机系统可能正从通过网络运行的服务器接收仿真程序资产。一旦服务器将视频资产发送到主机系统,就可以对视频资产执行处理并将结果输出到显示装置。根据本公开的各方面,当由于视频数据的加速处理而使系统用户不会检测到程序行为的改变时,主机系统解锁对视频资产的处理的同步103。作为实例而非限制,主机系统可以通过以比仿真目标系统的时钟速度更高的时钟速度处理仿真视频资产来解锁同步103以及加速处理视频资产104。在另一实施方案中,主机系统可以通过以比仿真音频资产的回放速率更高的速率处理仿真视频资产来解锁同步103以及加速处理104。类似地,主机系统可以通过在主机系统上以比通过网络传输仿真资产的远程仿真器更快的速率处理仿真视频资产来解锁同步103以及加速对仿真视频资产的处理104。

如果主机系统未检测到预加载视频序列,或需要对预加载视频序列进行更多处理,则对仿真视频资产的处理将与对目标系统的仿真206保持同步。尽管讨论了视频资产,但是所述术语并不限于视频,并且如本文所使用,可以指在屏幕上显示的图像以及用于渲染图像的数据或用于仿真的物理数据等。

为了检测音频202,主机系统可以最初检测是否有任何声音输出到扬声器207。替代地,主机系统可以监视仿真音频资产以确定是否需要音频输出。如果需要音频输出,则主机系统可以确定音频输出是否低于阈值208。如果音频输出不低于阈值,则主机系统可以监视仿真音频资产,以确定音频是否已经加载到存储器中209。如果主机系统确定音频已经进行预加载,则主机系统可以进一步检测是否需要对音频进行任何处理。在其它实施方案中,如果主机系统检测到未立即使用的对系统或GPU存储器的重复大容量存储器分配,则主机系统可以加速音频的处理。可以将预加载的音频检测为立即使用的单个或重复的存储器分配。应理解,大容量存储器分配可以由系统自动定义,或由用户根据应用定义。针对立即使用的阈值可以根据应用、系统架构等而变化。

如果在上述步骤中确定无音频207或音频低于阈值208或音频已预加载到存储器中209,则主机系统将解锁对音频资产的处理103。如上文关于视频所讨论,可以将音频处理锁定到视频的速率。与视频相似,音频资产可以取决于仿真目标系统的时钟速度,并且在以与目标系统不同的时钟速度进行处理时,可能会导致用户感知到的不期望行为。作为实例而非限制,由于加速处理,用户感知到的不期望音频行为可能是以较高的音调播放音乐。在另一实施方案中,同步可以在主机系统上的音频资产的处理与通过网络在远程系统上运行的仿真器之间进行。换句话说,主机系统可能正从通过网络运行的服务器接收仿真音频资产。一旦服务器将音频资产发送到主机系统,主机就可以对音频资产执行处理并将结果输出到输出装置(例如扬声器)。根据本公开的各方面,当由于音频数据的加速处理而使系统用户不会检测到程序行为的改变时,主机系统解锁对音频资产的处理的同步。作为实例而非限制,主机系统可以通过以比仿真目标系统的时钟速度更高的时钟速度处理仿真音频资产来解锁同步103以及加速处理音频资产104。主机系统可以以比处理仿真视频资产更快的速率来解锁同步103以及加速对仿真音频资产的处理104。类似地,主机系统可以通过在主机系统上以比远程仿真器仿真目标系统且通过网络传输仿真资产更快的速率处理音频资产来解锁同步103以及加速对仿真音频资产的处理104。

如果主机系统未检测到预加载音频,或需要对预加载音频进行更多处理206,则对仿真音频资产的处理将与对目标系统的仿真101保持同步。尽管讨论了音频资产,但是所述术语并不限于声音文件,并且如本文所使用,可以指音乐、上下文声音、来自仿真环境内的交互作用的声音等。

根据本公开的各方面,当主机系统正在加速处理104时,系统可以监视输出210以确定是否重新同步处理105。系统可以监视对仿真程序资产的处理,以确定仿真程序是否需要系统将信息输出到外部装置211。在一些实施方案中,监视对仿真程序资产的处理可以包括监视存储器分配以检测从大容量存储器块的分配到那些存储器块的使用的变化,从而检测输出预加载音频或视频的变化。作为实例而非限制,系统可以监视程序,以监视要发送到屏幕的显示数据的变化,或要发送到扬声器的声音数据的变化,或要发送到控制器的颜色数据或要通过网络发送的通信数据等其它数据的变化。如果未检测到变化,则系统将继续对仿真程序资产的加速处理103。如果需要输出的变化,则系统将返回到以先前速率进行处理并且与仿真目标系统重新同步105。一旦系统与目标已经重新同步105,系统就可以返回到处理经过同步的程序资产101。

根据本公开的各方面,同步103的解锁不限于视频和音频的实施方式。所公开的检测输出200和加速处理100的方法可以应用于其它类型的输出,例如用于连接到主机系统的灯的颜色信息或机器人操纵器控制信息等。机器人操纵器控制信息的实施方式的一种可能实例是,如果目标系统指令是用于较旧式的机器人装置,并且主机装置具有某些优势或已完全删除一些特定的机械过程。在这些情况下,可以使用本文描述的方法来加速仿真。在一些情况下,此类目标代码指令可以被彻底删除。另外,本文描述的技术可以应用于目标指令具有其它有意义的副作用的情况,从而使得不能跳过指令,但是不必限于旧式机器人可能已经建立的所建立执行速率。

图3描绘了本公开的其它方面;主机系统301可以结合通过网络运行的仿真器302来实施用于加速仿真100的方法。在远程仿真器302的情况下,主机系统可以从远程仿真器302接收仿真程序资产303,立即处理仿真程序资产并将结果输出106至外部装置305。因此,在所描述的配置中,在主机系统301上对仿真程序资产的处理可以与在远程仿真器302上对目标系统的仿真同步。为了实现改进主机系统上的仿真程序的操作,主机系统301可以实施加速仿真100的方法,包括程序资产的加速流式传输107。主机系统301可以向远程仿真器302提供反馈304,所述反馈包括关于对仿真程序资产的处理101或104的信息。因此,仿真器可以保持接收关于主机系统上对仿真程序资产的处理的信息,并且在主机系统与仿真器302上对目标系统的仿真重新同步104时使用此信息。

在其它实施方案中,当主机系统301检测到200其可以解锁对仿真程序资产的处理的同步103时,主机系统可以通过反馈304通知远程仿真器。作为响应,远程仿真器可以加速将仿真程序资产发送307至主机系统的速率107。以加速的速率发送307至主机系统301的仿真程序资产可以填充主机系统的缓冲区以进行进一步处理。替代地,可以根据在主机系统301上发生的加速处理104立即处理以加速的速率107发送307的程序资产。在此过程中,主机系统可以继续向远程仿真器302发送反馈304,以确保不会有太多的仿真程序资产发送至主机系统从而导致缓冲区下溢情况。同样,主机系统301可以将反馈304发送至远程仿真器302,以指示立即需要附加的仿真程序资产以防止缓冲区下溢或停顿。另外,反馈报告304可以通知远程仿真器在加速处理仿真程序资产期间暂停作弊检测或其它与速率相关的过程。

一旦主机系统301确定仿真程序需要输出,主机系统就可以向远程仿真器302发送反馈304,以使在仿真器上对目标系统的仿真与在主机系统301上对仿真资产的处理重新同步105。

图4所示的框图示意性地示出本公开在远程仿真的特定上下文内的某些方面。在此实例中,主机系统402可以通过网络460访问仿真器407。主机系统402可以通过网络460访问替代的远程仿真器407(在本文中称为远程仿真器)。仿真器407可以彼此相同,或仿真器可以各自被编程为仿真包括唯一旧版游戏406的唯一旧版程序406。另外,仿真器407可以包括在主机系统402内,并且可以通过内部系统总线450’直接与主机系统通信。

替代地,对目标系统的仿真可以完全在主机系统402上进行。在这种情况下,可以将旧版程序加载到主机系统402的存储器436中,并且CPU 431执行仿真程序433。

主机系统402可以包括中央处理器单元(CPU)431。作为实例,CPU 431可以包括一个或多个处理器,所述处理器可以根据例如双核、四核、多核或单元处理器架构来配置。主机系统402还可以包括存储器432(例如,RAM、DRAM、ROM等)。CPU 431可以执行过程控制程序433,所述程序的部分可以存储在存储器432中。主机系统402还可以包括众所周知的支持电路440,例如输入/输出(I/O)电路441、电源(P/S)442、时钟(CLK)443和高速缓存444。主机系统402可以可选地包括大容量存储装置434,例如磁盘驱动器、CD-ROM驱动器、磁带驱动器等,以存储程序和/或数据。主机系统402还可以可选地包括显示单元437和用户接口单元438,以促进主机系统402与需要直接访问主机系统402的用户之间的交互。显示单元437可以采用显示文本、数字或图形符号的阴极射线管(CRT)或平板屏幕的形式。用户接口单元438可以包括键盘、鼠标、操纵杆、光笔或其它装置。控制器445可以通过I/O电路441连接至主机系统402,或者可以直接集成到主机系统402中。控制器445可以促进主机系统402与用户之间的交互。控制器445可以包括键盘、鼠标、操纵杆、光笔、手持控件或其它装置。控制器445还能够产生触觉响应446。作为实例而非限制,触觉响应446可以是振动或与触摸感相对应的任何其它反馈。主机系统402可以包括网络接口439,所述网络接口被配置成使得能够使用Wi-Fi、以太网端口或其它通信方法。

网络接口439可以并入适当的硬件、软件、固件或这些中的两个或更多个的一些组合,以促进经由电子通信网络460的通信。网络接口439可以被配置成通过局域网和例如因特网的广域网实施有线或无线通信。主机系统402可以通过网络460经由一个或多个数据包发送和接收数据和/或对文件的请求。

前述组件可以经由内部系统总线450彼此交换信号。主机系统402可以是通用计算机,当运行实施如本文描述的本发明的实施方案的代码时,所述通用计算机变成专用计算机。

仿真器407可以包括中央处理器单元(CPU)431’。举例来说,CPU431’可以包括一个或多个处理器,所述处理器可以根据例如双核、四核、多核或单元处理器架构来配置。仿真器407还可以包括存储器432’(例如,RAM、DRAM、ROM等)。CPU 431’可以执行过程控制程序433’,所述程序的部分可以存储在存储器432’中。仿真器407还可以包括众所周知的支持电路440',例如输入/输出(I/O)电路441'、电源(P/S)442'、时钟(CLK)443'和高速缓存444'。仿真器407可以可选地包括大容量存储装置434’,例如磁盘驱动器、CD-ROM驱动器、磁带驱动器等,以存储程序和/或数据。仿真器407还可以可选地包括显示装置437'和用户接口单元438',以促进仿真器407与需要直接访问仿真器407的用户之间的交互。作为实例而非限制,主机系统或工程师402可能需要直接访问仿真器407,以便对仿真器407进行编程,从而正确地仿真所需的旧版程序406或向旧版程序406添加其它功能。显示装置437’可以采用显示文本、数字或图形符号的阴极射线管(CRT)或平板屏幕的形式。用户接口单元438’可以包括键盘、鼠标、操纵杆、光笔或其它装置。仿真器407可以包括网络接口439',所述网络接口被配置成使得能够使用Wi-Fi、以太网端口或其它通信方法。

网络接口439'可以并入适当的硬件、软件、固件或这些中的两个或更多个的一些组合,以促进经由电子通信网络460的通信。网络接口439'可以被配置成通过局域网和例如因特网的广域网实施有线或无线通信。仿真器407可以通过网络460经由一个或多个数据包发送和接收数据和/或对文件的请求。

前述组件可以经由内部系统总线450’彼此交换信号。仿真器407可以是通用计算机,当运行实施如本文描述的本发明的实施方案的代码时,所述通用计算机变成专用计算机。

仿真器407可以访问由主机系统402选择用于通过内部系统总线450'进行仿真的旧版程序406。在仿真器中可以存储不止一个旧版程序406。旧版程序也可以存储在存储器432'或大容量存储装置434'中。另外,一个或多个旧版程序406可以存储在仿真器407可通过网络460访问的远程位置。每个旧版游戏406包括游戏代码408。当仿真旧版游戏106时,游戏代码408产生旧版游戏数据409。

举例来说,旧版程序406可以是与目标平台不兼容的任何程序。作为实例而非限制,可能已将旧版程序406设计为在索尼计算机娱乐公司的PlayStation控制台上玩,但是目标平台是家用计算机。举例来说,可能已将旧版游戏406设计为在PlayStation 2控制台上玩,但是目标平台是PlayStation 3控制台。另外,作为实例而非限制,可能已将旧版游戏406设计为在PlayStation控制台上玩,但是目标平台是手持控制台,例如索尼计算机娱乐公司的PlayStation Vita。

尽管以上是对本发明的优选实施方案的完整描述,但是可以使用各种替代、修改和等同物。因此,本发明的范围不应参考以上描述来确定,而是应参考所附权利要求书及其等同物的全部范围来确定。本文描述的任何特征无论是否优选都可以与本文描述的任何其它特征(无论是否优选)组合。在所附权利要求中,不定冠词“一”或“一个”是指所述冠词之后的一个或多个项目的数量,除非另有明确说明。所附权利要求书不应被解释为包括装置加功能的限制,除非在给定的权利要求中使用短语“用于……的装置”明确叙述了这种限制。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:集成电路

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类