【技术实现步骤摘要】
【国外来华专利技术】
本专利技术的实施例涉及计算机游戏及相关应用程序,更特别地,涉及计算机游戏及相关应用程序中的文件输入/输出(I/O)管理。
技术介绍
诸如视频游戏之类的许多软件应用程序包括文件输入/输出(I/O)调度器以使得应用程序内的媒体访问更高效且可靠。文件I/O系统(FIOS)是具有包括调度器和可选I/ 0过滤器层的多个部分的用于访问文件的中间件(middleware)层。所述调度器通常被设计为将I/O请求最优地排序,以便其在受到任意最后期限和优先级约束的最短可能时间内完成。所述过滤器层可以提供诸如解压缩或高速缓存之类的附加服务。许多不同的游戏组件要求对存储媒体中的文件进行I/O访问。音频组件加载音频文件;游戏播放引擎加载层级定义;图形组件加载纹理图和模型;电影组件加载视听文件;并且子系统加载大型WAD文件。所述媒体可以是游戏递送媒体,诸如光盘(通用媒体盘 (UMD)、压缩盘(CD)、数字视频盘(DVD)、蓝光盘等)、诸如硬盘之类的中间存储媒体、或随着平台演进的其它媒体类型。诸如视频游戏之类的单个应用程序通常具有多个组件,每个组件具有其自己的I/ 0要求。某些要求对媒体的流式访问,其中,I/O系统将文件中的数据流式传输到组件,因此组件可以接连地向游戏机呈现流式传输数据。例如,音频组件通常流式传输用于声音轨重放的音频文件;电影组件流式传输视听内容以重放用于播放器的电影。其它组件仅需要非流式访问,其中,其按照在本文中称为组块(chunk)的部分从文件获取(retrieve)数据以供组件处理。虽然这些组件不要求稳定的数据流以便处理,但组块的递送定时常常是关键的。如果应用程 ...
【技术保护点】
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的系统,其中,所述树形结构包括最低层,其中,所述最低层的一个或多个指令具有对所述最低层中的不同指令的相关联数据依赖性,其中,对最低层中的给定指令的数据依赖性允...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。