当前位置: 首页 > 专利查询>AR萨勒专利>正文

使用即时数据分块的文件输入/输出调度制造技术

技术编号:6449969 阅读:164 留言:0更新日期:2012-04-11 18:40
从在处理器上运行的应用程序接收传入I/O请求。包括处理器可执行指令的树形结构定义与I/O请求相关联的一个或多个处理层。所述指令在所述一个或多个处理层中的每一个处将I/O请求中的数据划分成一个或多个组块。每个指令具有对前一层中的一个或多个相应指令的相关联数据依赖性。通过确定每个组块的位置和不同处理层的组块之间的数据依赖性将所述指令排序成处理次序。将一个或多个指令插入至少部分地取决于所述处理次序的调度表。根据所述处理次序,通过用处理器根据调度表来执行指令而服务于I/O请求。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术的实施例涉及计算机游戏及相关应用程序,更特别地,涉及计算机游戏及相关应用程序中的文件输入/输出(I/O)管理。
技术介绍
诸如视频游戏之类的许多软件应用程序包括文件输入/输出(I/O)调度器以使得应用程序内的媒体访问更高效且可靠。文件I/O系统(FIOS)是具有包括调度器和可选I/ 0过滤器层的多个部分的用于访问文件的中间件(middleware)层。所述调度器通常被设计为将I/O请求最优地排序,以便其在受到任意最后期限和优先级约束的最短可能时间内完成。所述过滤器层可以提供诸如解压缩或高速缓存之类的附加服务。许多不同的游戏组件要求对存储媒体中的文件进行I/O访问。音频组件加载音频文件;游戏播放引擎加载层级定义;图形组件加载纹理图和模型;电影组件加载视听文件;并且子系统加载大型WAD文件。所述媒体可以是游戏递送媒体,诸如光盘(通用媒体盘 (UMD)、压缩盘(CD)、数字视频盘(DVD)、蓝光盘等)、诸如硬盘之类的中间存储媒体、或随着平台演进的其它媒体类型。诸如视频游戏之类的单个应用程序通常具有多个组件,每个组件具有其自己的I/ 0要求。某些要求对媒体的流式访问,其中,I/O系统将文件中的数据流式传输到组件,因此组件可以接连地向游戏机呈现流式传输数据。例如,音频组件通常流式传输用于声音轨重放的音频文件;电影组件流式传输视听内容以重放用于播放器的电影。其它组件仅需要非流式访问,其中,其按照在本文中称为组块(chunk)的部分从文件获取(retrieve)数据以供组件处理。虽然这些组件不要求稳定的数据流以便处理,但组块的递送定时常常是关键的。如果应用程序在其需要时未接收到数据,则性能可能受损失。当前,分块(chunking)(即,将用于I/O请求的数据分成部分/组块)在I/O请求的执行期间发生。在执行之前不确定块之间的数据依赖性,并且这导致I/O请求的处理时的低效。例如,给定I/O请求可能要求在传送之前需要被解密和解压缩的数据。I/O系统可能要求给定块的解密在解压缩之前发生,但不同组块大小可以与解密和解压缩相关联。例如,与解密相关联的组块大小可以具有诸如64千字节的固定值,而与解压缩相关联的组块大小可以是可变的。因此,在没有确定被解密的组块和被解压缩的组块之间的数据依赖性的情况下,必须在能够将文件解压缩之前将整个文件解密,而不是一旦已处理了必要的解密组块就发起给定组块的解压缩。同样地,给定I/O请求要求可以在执行期间用当前的分块形式低效地处理从多个媒体源获取的数据。在执行之前没有确定组块之间的数据依赖性的情况下,当同时处理来自两个媒体设备的数据在理论上可能时,媒体设备可以在来自另一媒体设备的数据正被处理的同时是空闲的。这最终使视频游戏或其它应用程序的功能减慢。此外,视频游戏常常执行大量的I/O。游戏事件常常是用必须满足的最后期限进行时间驱动的。例如,如果播放器从点A行进到点B,则游戏需要具有用于在播放器到达点 B之前加载的与点B相关联的数据的文件。游戏组件可以使用低水平I/O基元来从媒体获取数据,但这些基元(primitive)不处理在多个组件同时要求来自相同设备的数据时的设备竞争。堵塞的(jammed up) I/O请求可能中断流式传输数据流或阻止关键数据组块在需要时到达组件。由于应用程序的组件通常不知道彼此的I/O活动,所以其I/O请求常常导致具有相当大的找寻(overseeking)量的非常低效的I/O模式(来回搜索数据)。随着游戏变大, 找寻和低效数据获取增加。本专利技术的实施例在这种背景下出现。附图说明 通过结合附图来考虑以下详细说明,可以很容易理解本专利技术的讲授内容,在附图中图1是根据本专利技术的实施例的实现文件I/O系统(FIOS)的系统的框图。图2是根据本专利技术的替换实施例的实现FIOS的替换系统的框图。图3是根据本专利技术的实施例的文件输入/输出系统(FIOS)软件的框图。图4是举例说明根据本专利技术的实施例的FIOS的操作流程的数据流程图。图5是举例说明根据本专利技术的实施例的在FIOS中使用的软件调度器的示例的流程图。具体实施例方式虽然以下详细说明出于说明的目的包含许多特定细节,但本领域的普通技术人员应认识到以下细节的许多变更和修改在本专利技术的范围内。因此,在不失一般性并且不对所要求保护的专利技术的施加限制的情况下阐述下述本专利技术的实施例。可以在提供集中层的文件I/O系统(FIOS)周围实现本专利技术的实施例,其中用于系统的所有I/O通过所述集中层。FIOS可以包括创建用于每个单独I/O请求的最优处理的树形结构的指令,和调度I/O请求并确定最高效地服务于(service) I/O请求的次序的指令。举例来说,可以将计算机实现的系统100配置为实现如同1所示的根据本专利技术的实施例的文件I/O系统(FI0S)。举例来说,但不失一般性地,可以将系统100实现为个人计算机、视频游戏机、手持式游戏设备、蜂窝电话、个人数字助理、或适合于实施本专利技术的实施例的其它数字设备。系统100可以包括处理单元105和耦合到处理单元105的主存储器 106。可以将CPU 105配置为运行软件应用程序并可选地运行操作系统。本专利技术的某些实施例可以利用某些类型的处理器架构,其中,CPU 105包括主处理器105A和具有其自己的相关联本地存储器106B的辅助处理器105B。特别地,此类处理器架构的一个示例是单元处理器(cell processor)。在例如版权属于国际商业机器公司、索尼计算机娱乐公司、东芝公司2005年8月8日的Cell Broadband Engine Architecture中详细地描述了单元处理器架构的示例,其拷贝可以在http://cell.scei.co.jp/处下载,其全部内容通过引用结合到本文中。 主存储器106可以存储供CPU 105使用的应用程序和数据。主存储器106可以采取例如RAM、DRAM、ROM等集成电路的形式。可以以能够在处理器105上执行的指令的形式将计算机程序101存储在存储器106中。可以将程序101的指令配置为特别地实现具有下述某些特征的文件输入/输出系统(FI0S)。存储器106可以包含I/O队列101Q,例如,采取用于FIOS程序101所使用的传入(incoming),已调度、已发布、已完成、和自由1/0请求的栈或队列的形式。下面还描述了此类队列的示例。举例来说,FIOS程序101可以包括指令a)从应用程序103接收涉及媒体设备118 的传入1/0请求,b)通过确定要传送的数据的组块(即部分)的位置和数据依赖性来创建被配置为形成用于1/0请求的最优处理次序的树形结构,C)将传入1/0请求插入在存储器 106中包含的调度表(schedule)中,其中,传入1/0请求在调度表内的位置至少部分地取决于树形结构的处理次序和d)根据所述调度表和树形结构来实施1/0请求。客户端系统100还包括众所周知的支持功能110,诸如输入/输出(1/0)元件111、 电源(P/S) 112、时钟(CLK) 113、以及高速缓存(cache) 114。客户端设备100还可以包括快速存储设备115,诸如提供用于应用程序和数据的非易失性存储的硬盘驱动器。特别地,可以将快速存储设备115用于对从较慢媒体设备118本文档来自技高网...

【技术保护点】
1.在具有处理器单元、存储器、和一个或多个媒体/存储设备的系统中,一种用于处理到或来自所述一个或多个媒体/存储设备的输入或输出(I/O)的方法,包括:a) 从在所述处理器上运行的应用程序接收传入I/O请求以向所述一个或多个媒体/存储设备传送数据或从所述一个或多个媒体/存储设备接收数据;b) 创建包括能被所述处理器执行且包含于存储器中的指令的树形结构,该树形结构定义与所述I/O请求相关联的一个或多个处理层,其中,所述指令在所述一个或多个处理层中的每一个处将所述I/O请求中的数据划分成一个或多个组块,其中,所述一个或多个层处的每个指令具有对前一层中的一个或多个相应指令的相关联数据依赖性,其中,对给定指令的数据依赖性允许所述给定指令仅在所述前一层中的相应一个或多个依赖的指令的执行之后执行;c) 通过确定每个组块的位置和不同处理层的组块之间的数据依赖性将所述树形结构中的指令排序成处理次序;d) 将一个或多个指令插入包含于所述存储器中的调度表中,其中,所述一个或多个指令在所述调度表内的位置至少部分地取决于所述处理次序;以及e) 通过用所述处理器根据所述调度表来执行所述指令而服务于I/O请求,其中,由所述处理器根据与包含于所述存储器中的树形结构相关联的所述处理次序来执行所述指令。...

【技术特征摘要】
【国外来华专利技术】2009.10.26 US 61/255013;2010.10.12 US 12/9027681.在具有处理器单元、存储器、和一个或多个媒体/存储设备的系统中,一种用于处理到或来自所述一个或多个媒体/存储设备的输入或输出(I/O)的方法,包括a)从在所述处理器上运行的应用程序接收传入I/O请求以向所述一个或多个媒体/ 存储设备传送数据或从所述一个或多个媒体/存储设备接收数据;b)创建包括能被所述处理器执行且包含于存储器中的指令的树形结构,该树形结构定义与所述I/O请求相关联的一个或多个处理层,其中,所述指令在所述一个或多个处理层中的每一个处将所述I/O请求中的数据划分成一个或多个组块,其中,所述一个或多个层处的每个指令具有对前一层中的一个或多个相应指令的相关联数据依赖性,其中,对给定指令的数据依赖性允许所述给定指令仅在所述前一层中的相应一个或多个依赖的指令的执行之后执行;c)通过确定每个组块的位置和不同处理层的组块之间的数据依赖性将所述树形结构中的指令排序成处理次序;d)将一个或多个指令插入包含于所述存储器中的调度表中,其中,所述一个或多个指令在所述调度表内的位置至少部分地取决于所述处理次序;以及e)通过用所述处理器根据所述调度表来执行所述指令而服务于I/O请求,其中,由所述处理器根据与包含于所述存储器中的树形结构相关联的所述处理次序来执行所述指令。2.权利要求1的方法,其中,与特定处理层相关联的组块具有不同于与另一处理层相关联的组块的大小。3.权利要求1的方法,其中,e)包括在执行具有数据依赖性的给定指令之前确定依赖的指令的执行是否完成。4.权利要求1的方法,其中,所述树形结构包括最低层,其中,所述最低层的一个或多个指令具有对所述最低层中的不同指令的相关联数据依赖性,其中,对最低层中的给定指令的数据依赖性允许所述给定指令仅在执行最低层中的相应一个或多个依赖的指令之后执行。5.权利要求1的方法,其中,e)包括并行地执行来自公共处理层的两个或更多指令。6.权利要求1的方法,其中,e)包括并行地执行来自两个或更多不同处理层的两个或更多指令。7.权利要求1的方法,其中,e)包括在所述树形结构的指令的执行中使由所述处理器进行的对来自一个或多个其它I/O请求的一个或多个指令的执行交错。8.权利要求7的方法,其中,e)包括与所述树形结构的一个或多个指令的执行并行地执行来自所述一个或多个其它I/O请求的一个或多个指令。9.权利要求1的方法,其中,所述一个或多个处理层包括去存档或存档层。10.权利要求1的方法,其中,所述一个或多个处理层包括解密或加密层。11.权利要求1的方法,其中,所述一个或多个处理层包括解压缩或压缩层。12.权利要求1的方法,其中,在d)中将传入I/O请求插入所述调度表内还取决于与 I/O请求相关联的优先级约束。13.权利要求1的方法,其中,在d)中将传入I/O请求插入所述调度表内还取决于与 I/O请求相关联的最后期限约束。14.权利要求1的方法,其中,e)包括在插入到所述调度表之前、当与两个或更多I/O请求相关联的所述树形结构满足阈值重叠值时使两个或更多I/O请求交错。15.权利要求1的方法,其中,e)包括在运行时间向一个或多个文件应用差别补丁。16.一种用于处理输入/输出(I/O)的系统,包括处理器单元;存储器,其被耦合到所述处理器单元;一个或多个媒体/存储设备,其耦合到所述处理器单元;以及包含于所述存储器中的一组处理器可执行指令,所述指令被配置为在被执行时实现用于处理到或来自所述一个或多个媒体/存储设备的输入或输出(I/O)的方法,该方法包括a)从在所述处理器上运行的应用程序接收传入I/O请求以向所述一个或多个媒体/ 存储设备传送数据或从所述一个或多个媒体/存储设备接收数据;b)创建包括能被所述处理器执行且包含于存储器中的指令的树形结构,该树形结构定义与所述I/O请求相关联的一个或多个处理层,其中,所述指令在所述一个或多个处理层中的每一个处将所述I/O请求中的数据划分成一个或多个组块,其中,所述一个或多个层处的每个指令具有对前一层中的一个或多个相应指令的相关联数据依赖性,其中,对给定指令的数据依赖性允许所述给定指令仅在所述前一层中的相应一个或多个依赖的指令的执行之后执行;c)通过确定每个组块的位置和不同处理层的组块之间的数据依赖性将所述树形结构中的指令排序成处理次序;d)将一个或多个指令插入包含于所述存储器中的调度表中,其中,所述一个或多个指令在所述调度表内的位置至少部分地取决于所述处理次序;以及e)通过用所述处理器根据所述调度表来执行所述指令而服务于I/O请求,其中,由所述处理器根据与包含于所述存储器中的树形结构相关联的所述处理次序来执行所述指令。17.权利要求16的系统,其中,与特定处理层相关联的组块具有不同于与另一处理层相关联的组块的大小。18.权利要求16的系统,其中,e)包括在执行具有数据依赖性的给定指令之前确定依赖的指令的执行是否完成。19.权利要求16的系统,其中,所述树形结构包括最低层,其中,所述最低层的一个或多个指令具有对所述最低层中的不同指令的相关联数据依赖性,其中,对最低层中的给定指令的数据依赖性允...

【专利技术属性】
技术研发人员:AR萨勒
申请(专利权)人:AR萨勒
类型:发明
国别省市:US

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

1