《用于使用GPU控制器来预加载缓存的机制.pdf》由会员分享,可在线阅读,更多相关《用于使用GPU控制器来预加载缓存的机制.pdf(18页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104025185 A(43)申请公布日 2014.09.03CN104025185A(21)申请号 201280061641.7(22)申请日 2012.12.1213/324,432 2011.12.13 USG09G 5/39(2006.01)G06F 12/02(2006.01)(71)申请人 ATI科技无限责任公司地址加拿大安大略省(72)发明人盖纳迪里盖 于里利希马诺(74)专利代理机构上海胜康律师事务所 31263代理人李献忠(54) 发明名称用于使用GPU控制器来预加载缓存的机制(57) 摘要本发明提供了一种方法和系统,其中图形处理单元具有用于在所述图。
2、形处理单元上预加载缓存的专用控制器。所述方法包括接收命令消息,所述命令消息包括与存储器的部分相关的数据。所述方法也包括:解释所述命令消息,识别所述缓存的策略信息,识别存储器的所述部分的位置和大小,并且创建包括与所述部分的内容相关的数据的提取消息,其中所述提取消息使所述缓存预加载存储器的所述部分中的数据。(30)优先权数据(85)PCT国际申请进入国家阶段日2014.06.13(86)PCT国际申请的申请数据PCT/IB2012/002938 2012.12.12(87)PCT国际申请的公布数据WO2013/108070 EN 2013.07.25(51)Int.Cl.权利要求书2页 说明书11。
3、页 附图4页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书11页 附图4页(10)申请公布号 CN 104025185 ACN 104025185 A1/2页21.一种包括电耦接至缓存的加速处理设备的系统,所述系统包括:控制器,所述控制器被配置成解释命令消息,以便(i)识别与所述缓存相关的策略信息,(ii)确定部分的位置和大小,并且(iii)创建包括与所述部分的内容相关的数据的提取消息,其中所述控制器被配置成将所述提取消息输出到所述缓存。2.如权利要求1所述的系统,其还包括:主机处理器,所述主机处理器被配置成输出包括与存储器的部分相关的数据的所述命令消息。3.如。
4、权利要求1所述的系统,其中所述提取消息使所述缓存基于所述策略信息从存储器的所述部分加载数据。4.如权利要求1所述的系统,其中所述控制器还被配置成识别用于存储器的所述部分的引用局部性信息,其中所述引用局部性信息确定存储器的所述部分将何时被加载到所述缓存中。5.如权利要求4所述的系统,其中所述命令消息包括所述引用局部性信息。6.如权利要求4所述的系统,其中所述引用局部性信息是基于存储器的所述部分的时间局部性。7.如权利要求4所述的系统,其中所述引用局部性信息是基于存储器的所述部分的空间局部性。8.一种用于预加载缓存的计算机实现方法,所述方法包括:接收命令消息,所述命令消息包括与存储器的部分相关的数。
5、据;解释所述命令消息;识别所述缓存的策略信息;识别存储器的所述部分的位置和大小;以及创建包括与所述部分的内容相关的数据的提取消息。9.如权利要求8所述的方法,其还包括将所述提取消息发送到缓存,其中所述提取消息使所述缓存从存储器的所述部分加载数据。10.如权利要求8所述的方法,其还包括:识别用于存储器的所述部分的引用局部性信息,其中所述引用局部性信息确定存储器的所述部分将何时被加载。11.如权利要求10所述的方法,其中所述命令消息包括所述引用局部性信息。12.如权利要求9所述的方法,其中所述引用局部性信息是基于存储器的所述部分的时间局部性。13.如权利要求10所述的方法,其中所述引用局部性信息是。
6、基于存储器的所述部分的空间局部性。14.一种包括电耦接至缓存的加速处理设备的系统,所述系统包括:控制器,所述控制器被配置成:(i)接收命令消息,所述命令消息包括显式请求将存储器的部分预加载到所述缓存中的数据;(ii)识别用于所述缓存的策略信息;(iii)识别存储器的所述部分的位置和大小;以及(iii)创建包括与所述部分的内容相关的数据的提取消息。权 利 要 求 书CN 104025185 A2/2页315.如权利要求14所述的系统,其中所述命令消息包括用于存储器的每个部分的物理地址。16.如权利要求14所述的系统,其中所述命令消息包括用于存储器的所述部分的虚拟地址。17.如权利要求14所述的系。
7、统,其中所述控制器还被配置成将所述虚拟地址翻译成用于存储器的所述部分的物理地址。18.如权利要求14所述的系统,其中所述控制器还被配置成识别用于存储器的所述部分的引用局部性信息,其中所述引用局部性信息确定存储器的所述部分将何时被加载到所述缓存中。19.如权利要求18所述的系统,其中所述命令消息包括所述引用局部性信息。20.如权利要求18所述的系统,其中所述引用局部性信息是基于存储器的所述部分的时间局部性。21.如权利要求18所述的系统,其中所述引用局部性信息是基于存储器的所述部分的空间局部性。22.一种用于预加载缓存的计算机实现方法,所述方法包括:接收命令消息,所述命令消息包括显式请求将存储器。
8、的部分预加载到所述缓存中的数据;识别用于所述缓存的策略信息;识别存储器的所述部分的位置和大小;以及创建包括与所述部分的内容相关的数据的提取消息。23.如权利要求22所述的方法,其中所述命令消息包括用于存储器的一个或多个部分中的每个的虚拟地址。24.如权利要求22所述的方法,其还包括:将所述虚拟地址翻译成用于存储器的所述一个或多个部分中的每个的物理地址。25.如权利要求22所述的方法,其中所述命令消息包括用于存储器的所述一个或多个部分中的每个的物理地址。26.如权利要求22所述的方法,其还包括将所述提取消息发送到所述缓存,其中所述提取消息使所述缓存从存储器的所述部分加载数据。27.如权利要求22。
9、所述的方法,其还包括:识别用于存储器的所述部分的引用局部性信息,其中所述引用局部性信息确定存储器的所述部分将何时被加载。28.如权利要求27所述的方法,其中所述命令消息包括所述引用局部性信息。29.如权利要求27所述的方法,其中所述引用局部性信息是基于存储器的所述部分的时间局部性。30.如权利要求27所述的方法,其中所述引用局部性信息是基于存储器的所述部分的空间局部性。权 利 要 求 书CN 104025185 A1/11页4用于使用 GPU 控制器来预加载缓存的机制0001 发明背景发明领域0002 本发明总体涉及计算系统中执行的计算操作。更具体来说,本发明涉及计算系统中执行的图形处理任务。。
10、背景技术0003 图形处理单元(GPU)是专门设计用于执行图形处理任务的复杂集成电路。例如,GPU可以执行终端用户应用(诸如视频游戏应用)所要求的图形处理任务。GPU的计算能力已以超过对应中央处理单元(CPU)平台的计算能力的速度增长。结合移动计算市场(例如,笔记本电脑、移动智能手机、平板电脑等等)和其必需支持服务器/企业系统的开发,已经利用这种增长来提供指定的期望用户体验质量。0004 然而,GPU传统上在受约束的编程环境中操作,主要可供用于图形加速。这些约束起因于GPU不具有与CPU一样丰富的编程生态系统这一事实。因此,它们的用途一直大多局限于二维(2D)和三维(3D)图形以及已习惯于处理。
11、图形和视频应用编程接口(API)的少量前沿多媒体应用。0005 随着多供应商支持的和标准API和支持工具出现,GPU的应用已经不再局限于诸如传统图形等传统应用。虽然OpenCL和DirectCompute是有前景的起点,但创造一种允许对于大多数编程任务CPU和GPU的组合使用起来与CPU一样流畅的环境和生态系统仍存在许多障碍。0006 一般来说,终端用户应用与GPU之间存在若干层的软件。终端用户应用与应用编程接口(API)通信。API允许终端用户应用以标准格式而非依赖于GPU的格式输出图形数据和命令。API与驱动器通信。驱动器将从API接收到的标准代码翻译成GPU理解的本机格式指令。通常,驱动。
12、器由GPU的制造商编写。GPU随后执行来自驱动器的指令。0007 标准GPU在被称为渲染的过程中从其部件的更高级描述创建构成图像的像素。GPU通常利用连续渲染的概念通过使用管线来处理像素、纹理以及几何形状数据。这些管线通常称为固定功能专用管线(如光栅器、设置引擎、色彩混合器、纹理映射以及可在着色器管或着色器管线中完成的编程阶段)集合。“着色器”是计算机图形中的术语,是指图形资源主要用来执行渲染效果的软件指令集合。另外,GPU还可采用并行处理设计中的多个可编程管线以便获得更高的吞吐量。多个着色器管线还可以称作着色器管阵列。0008 另外,GPU还支持称为纹理映射的概念。纹理映射是用于通过使用纹理。
13、附近像素或纹素的色彩来确定纹理映射像素的纹理色彩的过程。所述过程还被称为纹理平滑或者纹理插值(texture interpolation)。然而,高图像质量纹理映射要求高度的计算复杂性。此外,配备单个(统一)着色器的GPU还同时支持许多类型的着色器处理。因此提高了对更高性能的广义存储器存取能力的需求。0009 着色器引擎依赖于针对纹理、着色器代码以及其它类型数据对本地缓存存储器的说 明 书CN 104025185 A2/11页5高速访问。用数据预加载缓存减少了GPU操作的执行时间,因为不再需要访问视频或主系统存储器来获得数据(这可能是费时的)。这使得在GPU每次开始执行、访问存储器的相同或类似。
14、部分时GPU性能提高。目前,GPU不具有提供用数据预加载缓存的功能性的专用可编程控制器。0010 考虑到新软件应用的复杂性持续增加,对GPU提供高效且高质量的渲染、纹理过滤以及误差校正的需求也正在提高。0011 实施方案概述0012 因此,需要减轻前述缺陷的系统和/或方法。具体地说,需要一种用于管理用要执行的存储器的相关部分对选定APD缓存的显式和隐式预加载的专用控制器。0013 虽然GPU、加速处理单元(APU)以及通用图形处理单元(GPGPU)是本领域中的常用术语,但是术语“加速处理设备(APD)”被认为是一种更广泛的表述。例如,APD是指以加速的方式执行与加速图形处理任务、数据并行任务或。
15、嵌套数据并行任务相关联的那些功能和计算的任何协同操作的硬件和/或软件集合。0014 在某些环境中,本发明的实施方案包括一种用于预加载缓存的方法和系统。所述系统包括电耦接至缓存的APD,所述系统包括:主机处理器,所述主机处理器被配置成输出包括与存储器的部分相关的数据的命令消息;以及控制器,所述控制器被配置成解释所述命令消息,以便(i)识别与所述缓存相关的策略信息,(ii)识别所述部分的位置和大小,并且(iii)创建包括与所述部分的内容相关的数据的提取消息,其中所述控制器被配置成将所述提取消息输出到所述缓存。0015 本发明的另外实施方案包括一种包括电耦接至缓存的APD的系统,所述系统包括:控制器。
16、,所述控制器被配置成:(i)接收命令消息,所述命令消息包括显式请求缓存预加载存储器的部分的数据;(ii)识别与所述缓存相关的策略信息;(iii)识别所述部分的位置和大小;以及(iv)创建包括与所述部分的内容相关的数据的提取消息,其中所述控制器被配置成将所述提取消息输出到所述缓存。0016 本发明的另外特征和优点以及本发明的各种实施方案的结构和操作在下文中参照附图详细描述。应当注意,本发明不限于本文所描述的这些特定实施方案。本文呈现此类实施方案仅用于说明目的。基于本文所包含的教导内容,另外的实施方案对于相关领域的技术人员而言将是显而易见的。0017 附图简述0018 附图并入本文并且构成本说明书。
17、的一部分,图解了本发明并且与说明书一起进一步用来解释本发明的原理并使相关领域的技术人员能够实践和使用本发明。本发明的各实施方案参照附图在下文中进行描述,其中在全文中,类似参考标号用于指代类似元素。0019 图1A是根据本发明的实施方案的一种处理系统的说明性框图。0020 图1B是图1A所示APD的说明性框图图示。0021 图2是根据一个实施方案的用存储器的一部分预加载缓存的APD的说明性流程图。0022 图3是根据一个实施方案的用存储器的一部分预加载缓存的APD的另一说明性流程图。0023 本发明将参照附图进行描述。一般来说,元件首次出现在其中的附图通常是由对说 明 书CN 104025185。
18、 A3/11页6应参考编号中的最左侧的数字指示。0024 详述0025 在以下详细描述中,提及一个“实施方案”、“实施方案”、“示例实施方案”等等表明所描述的实施方案可包括某一特定特征、结构或特性,但是每个实施方案可能不一定包括该特定特征、结构或特性。此外,此类措词不一定是指同一实施方案。此外,当结合一个实施方案来描述某一特定特征、结构或特性时,应当认为,无论是否明确描述,使得此类特征、结构或者特性结合其它实施方案起作用是在本领域的技术人员知识范围内的。0026 术语“本发明的实施方案”并不要求本发明的所有实施方案都包括所论述的特征、优点或操作模式。在不背离本发明的范围的情况下可设想出替代实施。
19、方案,并且本发明的众所周知的元素可能并未详细描述或者可能被省略,以免混淆本发明的相关细节。另外,本文所使用的术语仅用于描述特定实施方案的目的,而并不意在限制本发明。例如,如在本文所使用的,单数形式“一个”和“所述”意在还包括复数形式,除非上下文另外清楚表明。还应当理解,当在本文中使用时,术语“包括(comprises)”、“包括(comprising)”、“包括(includes)”和/或“包括(including)”指明存在所述特征、整数、步骤、操作、元件和/或部件,但并不排除存在或者增添一个或多个其它特征、整数、步骤、操作、元件、部件和/或它们的组合。0027 图1A是包括两个处理器、即C。
20、PU102和APD104的统一计算系统100的示例性图示。CPU102可以包括一个或多个单核或多核CPU。在本发明的一个实施方案中,系统100形成在单个硅裸片或硅封装上,从而组合CPU102与APD104以提供统一的编程和执行环境。这种环境使得APD104能够与CPU102一样流畅或近似流畅地用于一些编程任务。然而,本发明不绝对要求CPU102和APD104形成在单个硅裸片上。一些实施方案中,它们可能单独形成并且安装在相同或不同的基片上。0028 在一个实施例中,系统100还包括系统存储器106、操作系统108以及通信基础设施109。操作系统108和通信基础设施109在下文中更详细地论述。00。
21、29 系统100还包括了内核模式驱动器(KMD)110、软件调度器(SWS)112,以及存储器管理单元116,如输入/输出存储器管理单元(IOMMU)。系统100的部件可以实现为硬件、固件、软件或它们的任何组合。本领域的普通技术人员应当了解,系统100可以包括除了图1A所示实施方案中所示部件之外或不同于所示部件的一个或多个软件、硬件以及固件部件。0030 在一个实施例中,驱动器(如KMD110)通常通过硬件连接到其上的计算机总线或通信子系统与设备进行通信。当调用程序调用驱动器中例程时,驱动器向设备发布命令。一旦设备向驱动器发送回数据,驱动器可调用原始调用程序中的例程。在一个实施例中,驱动器是依。
22、赖于硬件的并且是操作系统特定的。它们通常提供任何必需异步的时间依赖硬件接口所要求的中断处理。0031 设备驱动器、尤其在现代Microsoft平台上可以内核模式(第0级)或以用户模式(第3级)运行。以用户模式运行驱动器的主要益处是稳定性提高,因为编写拙劣的用户模式设备驱动器不可能通过重写内核存储器使系统崩溃。另一方面,用户/内核模式翻译通常强加相当大的性能开销,从而抑制用户模式驱动器的低等待时间和高吞吐量要求。用户模块仅可通过使用系统调用来访问内核空间。像UNIX shell或其它基于GUI的应用等终端用户程序是用户空间的一部分。这些应用通过内核支持的功能与硬件交互。说 明 书CN 10402。
23、5185 A4/11页70032 CPU102可以包括(未示出)控制处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或数字信号处理器(DSP)中的一个或多个。CPU102例如执行控制计算系统100的操作的控制逻辑,包括操作系统108、KMD110、SWS112以及应用111。在此说明性实施方案中,根据一个实施方案,CPU102发起并且控制应用111的执行,例如,通过在CPU102和诸如APD104等其它处理资源上分发与这个应用相关联的处理。0033 除了其它之外,APD104执行用于选定功能(如图形操作和可能(例如)尤其适于并行处理的其它操作)的命令和程序。通常,APD104常常。
24、可以用于执行图形管线操作,如像素操作、几何计算以及将图像渲染至显示器上。在本发明的各实施方案中,APD104还可以基于从CPU102接收到的命令或指令执行计算处理操作(例如,那些与图形无关的操作,例如像视频操作、物理模拟、计算流体动力学等)。0034 例如,命令可以被认为是通常不限定在指令集体系结构(ISA)中的特殊指令。命令可以由特殊处理器(如分派处理器、命令处理器或网络控制器)来执行。另一方面,指令可以被认为是例如在计算机体系结构内的处理器的单个操作。在一个实施例中,当使用两组ISA时,一些指令被用于执行x86程序,并且一些指令被用于执行APD计算单元上的内核。0035 在一个说明性实施方。
25、案中,CPU102向APD104发送选定命令。这些选定命令可以包括图形命令和适于并行执行的其它命令。这些选定命令(还可包括计算处理命令)可以基本独立于CPU102执行。0036 APD104可以包括其自己的计算单元(未示出),诸如但不限于一个或多个SIMD处理核心。如本文中提及,SIMD是管线或编程模型,其中内核在多个处理元件上并发执行,每个处理元件具有其自己的数据和共享程序计数器。所有处理元件执行相同指令集。使用预测使工作项能够参与或不参与每个所发布的命令。0037 在一个实施例中,每个APD104计算单元可以包括一个或多个标量和/或矢量浮点单元和/或算术逻辑单元(ALU)。APD计算单元还。
26、可以包括专用处理单元(未示出),如平方根倒数单元和正弦/余弦单元。在一个实施例中,APD计算单元在本文中统称着色器核心122。0038 通常,具有一个或多个SIMD使得APD104理想适于执行数据并行任务,如在图形处理中常见的那些任务。0039 诸如像素处理等一些图形管线操作以及其它并行计算操作可能要求对输入数据元素流或集合执行同一命令流或计算内核。同一计算内核的相应实例化可以在着色器核心122中的多个计算单元上并发执行,以便并行处理这些数据元素。如本文中提及,例如,计算内核是包含程序中声明并且在APD计算单元上执行的指令的函数。这个函数也被称为内核、着色器、着色器程序或程序。0040 在一个。
27、说明性实施方案中,每个计算单元(例如,SIMD处理核心)可以执行特定工作项的相应实例化以便处理输入数据。工作项是由命令在设备上调用的并行内核执行集合中的一个。工作项可以作为在计算单元上执行的工作组的一部分由一个或多个处理元件执行。0041 在一个实施例中,工作项是由命令在设备上调用的内核的并行执行集合中的一个。工作项是作为在计算单元上执行的工作组的一部分由一个或多个处理元件执行。说 明 书CN 104025185 A5/11页80042 工作项在全局ID和本地ID方面与集合内的其它执行不同。在一个实施例中,工作组中同时一起在SIMD上执行的工作项子集可被称为波前136。波前宽度是计算单元(例如。
28、,SIMD处理核心)的硬件的特性。如本文中提及,工作组是在单个计算单元上执行的相关工作项的集合。组中的工作项执行同一内核并且共享本地存储器和工作组隔离。0043 在所述示例性实施方案中,来自工作组的所有波前均在同一SIMD处理核心上进行处理。波前中的指令一次发布一个,并且当所有工作项都遵循相同控制流程时,每个工作项均执行同一程序。波前也可称为线程束(warp)、矢量或线程。0044 执行掩码和工作项预测用于在波前内实现发散控制流程,其中每个单独工作项实际可以占有通过核心的唯一代码路径。当工作项的全集在波前开始时间时不可用时,可以处理部分已填充的波前。例如,着色器核心122可以同时执行预定数量波。
29、前136,每个波前136包括多个工作项。0045 在系统100内,APD104包括其自己的存储器,如图形存储器130(虽然存储器130并不限于仅图形用途)。图形存储器130提供用于在APD104中的计算过程中使用的本地存储器。着色器核心122内的单独计算单元(未示出)可以具有它们自己的本地数据存储器(未示出)。在一个实施方案中,APD104包括对本地图形存储器130的存取以及对存储器106的存取。在另一实施方案中,APD104可以包括对动态随机存取存储器(DRAM)或直接附接到APD104上并且与存储器106分开的其它此类存储器(未示出)的存取。0046 在所示实施例中,APD104还包括一个。
30、或“n”个命令处理器(CP)124。CP124控制APD104内的处理。CP124还从存储器106中的命令缓冲器125检索有待执行的命令并且协调这些命令在APD104上的执行。0047 在一个实施例中,CPU102将基于应用111的命令输入到合适命令缓冲器125中。如本文中提及,应用是将在CPU和APD内的计算单元上执行的程序部分的组合。0048 对于被调度用于在APD104上执行的每个进程,可以维护多个命令缓冲器125。0049 CP124可以在硬件、固件、软件或它们的组合中实现。在一个实施方案中,CP124被实现为具有微代码的精简指令集计算机(RISC)引擎以实现包括调度逻辑的逻辑。005。
31、0 APD104还包括一个或“n”个分派控制器(DC)126。在本申请中,术语分派是指由分派控制器执行的命令,所述分派控制器使用上下文状态来发起用于一组计算单元上的一组工作组的内核的执行的开始。DC126包括用于发起着色器核心122中的工作组的逻辑。在一些实施方案中,DC126可以实现为CP124的一部分。0051 系统100还包括用于从运行列表150选择进程以供在APD104上执行的硬件调度器(HWS)128。HWS128可以使用循环方法、优先级或基于其它调度策略从运行列表150选择进程。例如,优先级可以动态地确定。HWS128还可以包括管理运行列表150的功能性,例如,通过添加新的进程并且。
32、通过从运行列表150删除现有进程。HWS128的运行列表管理逻辑有时称为运行列表控制器(RLC)。0052 在本发明的各实施方案中,当HWS128发起对来自运行列表150的进程的执行时,CP124开始检索并且执行来自对应命令缓冲器125的命令。在一些情况下,CP124可以生成有待在APD104内执行的一个或多个命令,所述命令与从CPU102接收到的命令对应。在一个实施方案中,CP124与其它部件一起以提高或最大化APD104资源和/或系统100的利用率的方式来实现APD104上的命令的优先级排序和调度。说 明 书CN 104025185 A6/11页90053 APD104可以访问或者可以包括。
33、中断发生器146。中断发生器146可以由APD104配置成当APD104遇到诸如页面错误之类的中断事件时中断操作系统108。例如,APD104可以依赖于IOMMU116内的中断发生逻辑来形成上述页面错误中断。0054 APD104还可以包括抢占和上下文切换逻辑120,以便抢占当前正在着色器核心122内运行的进程。例如,上下文切换逻辑120包括停止进程并保存其当前状态(例如,着色器核心122状态和CP124状态)的功能性。0055 如本文中提及,术语状态可以包括初始状态、中间状态和/或最终状态。初始状态是机器根据编程次序处理输入数据集合以形成输出数据集合的起始点。存在一种中间状态,例如,需要在若。
34、干点处对这种中间状态进行存储以使得处理向前进展。有时存储这种中间状态是为了允许当被某一其它进程中断时在稍后时间继续执行。还存在一种最终状态,可以记录这种最终状态作为输出数据集合的一部分。0056 抢占和上下文切换逻辑120还可以包括将另一进程上下文切换到APD104中的逻辑。将另一进程上下文切换成在APD104上运行的功能性可以包括例如通过CP124和DC126将进程实例化以在APD104上运行,恢复用于此进程的任何先前所保存的状态,并且开始它的执行。0057 存储器106可以包括非永久性存储器,如DRAM(未示出)。存储器106可以在应用或其它处理逻辑的部分的执行过程中存储(例如)处理逻辑指。
35、令、常量值以及变量值。例如,在一个实施方案中,用于在CPU102上执行一个或多个操作的控制逻辑的部分在所述操作的各自部分由CPU102执行的过程中可以驻存在存储器106内。0058 在执行过程中,相应应用、操作系统功能、处理逻辑命令以及系统软件可以驻存在存储器106中。对操作系统108重要的控制逻辑命令在执行过程中通常将会驻存在存储器106中。在系统100执行过程中,包括例如内核模式驱动器110和软件调度器112的其它软件命令也可以驻存在存储器106中。0059 在此实施例中,存储器106包括被CPU102用来向APD104发送命令的命令缓冲器125。存储器106还包含进程列表和处理信息(例如。
36、,活动列表152和进程控制块154)。这些列表以及信息由在CPU102上执行的调度软件用来向APD104和/或相关调度硬件传递调度信息。对存储器106的存取可以由联接到存储器106上的存储器控制器140管理。例如,来自CPU102或来自其它设备的对从存储器106读出或对写入存储器106的请求由存储器控制器140管理。0060 返回系统100的其它方面,IOMMU116是多上下文存储器管理单元。0061 如本文中所用,上下文可被认为是内核在其中执行的环境以及其中限定同步和存储器管理的域。上下文包括一组设备、这些设备可存取的存储器、对应存储器性质以及用于调度内核或操作在存储器对象上的执行的一个或多。
37、个命令队列。0062 返回参考图1A所示的实施方案,IOMMU116包括用于执行虚拟地址到物理地址翻译以用于包括APD104的设备对存储器页面的存取的逻辑。IOMMU116还可以包括用于例如当设备(如APD104)所进行的页面存取导致页面错误时生成中断的逻辑。IOMMU116还可以包括或者有权存取翻译后备缓冲器(TLB)118。例如,TLB118可以实现在内容可寻址存储器(CAM)中以针对APD104对存储器106中的数据所作出的请求来加速逻辑(即,虚拟)存储器地址到物理存储器地址的翻译。说 明 书CN 104025185 A7/11页100063 在所示实施例中,通信基础设施109根据需要互。
38、连系统100的部件。通信基础设施109可以包括(未示出)外围部件互连(PCI)总线、扩展PCI(PCI-E)总线、高级微控制器总线体系结构(AMBA)总线、高级图形端口(AGP)或其它此类通信基础设施中的一种或多种。通信基础设施109还可以包括以太网或类似网络,或满足应用的数据传输速率要求的任何合适物理通信基础设施。通信基础设施109包括互连包括计算系统100的部件等各部件的功能性。0064 在此实施例中,操作系统108包括用于管理系统100的硬件部件并且提供常见服务的功能性。在各实施方案中,操作系统108可以在CPU102上执行并且提供常见服务。这些常见服务可以包括例如用于在CPU102内执。
39、行的调度应用、故障管理、中断服务以及处理其它应用的输入和输出。0065 在一些实施方案中,基于中断控制器(如中断控制器148)所生成的中断,操作系统108调用适当的中断处理例程。例如,一旦检测到页面错误中断,操作系统108就可以调用中断处理器来发起将相关页面加载到存储器106中并且更新对应页表。0066 操作系统108还可以包括通过确保对硬件部件的访问通过操作系统管理的内核功能性作为中介从而保护系统100的功能性。实际上,操作系统108确保应用(如应用111)在用户空间中在CPU102上运行。操作系统108还确保应用111调用操作系统提供的内核功能性来访问硬件和/或输入/输出功能性。0067 。
40、例如,应用111包括各种程序或命令以执行还在CPU102上执行的用户计算。CPU102可以无缝发送用于在APD104上处理的选定命令。0068 在一个实施例中,KMD110实现应用程序接口(API),CPU102或在CPU102上执行的应用或其它逻辑可以通过所述应用程序接口调用APD104功能性。例如,KMD110可使来自CPU102的命令入队到命令缓冲器125中,APD104随后将从命令缓冲器125检索命令。另外,KMD110可以与SWS112一起执行对有待在APD104上执行的进程的调度。SWS112例如可以包括用于维护有待在APD上执行的进程的优先列表的逻辑。0069 在本发明的其它实施。
41、方案中,在CPU102上执行的应用在使命令入队时可以完全绕过KMD110。0070 在一些实施方案中,SWS112在存储器106中维护有待在APD104上执行的进程的活动列表152。SWS112还选择活动列表152中有待由硬件中的HWS128管理的进程子集。在一个说明性实施方案中,进程的此两级运行列表提高了进程管理的灵活性,并且使得硬件能够快速响应处理环境中的改变。在另一实施例中,与在APD104上运行每个进程相关的信息通过进程控制块(PCB)154从CPU102传递到APD104。0071 用于应用、操作系统以及系统软件的处理逻辑可以包括在诸如C之类的编程语言和/或者在诸如Verilog、RTL或网表之类的硬件描述语言中指定的命令,以使得能够通过生成掩模作品/光掩模来最终配置制造过程,从而产生体现本文所述发明的各方面的硬件设备。0072 在阅读本说明书时,本领域的技术人员将会理解,计算系统100可以包括比图1A中所示更多或更少的部件。例如,计算系统100可以包括一个或多个输入接口、非易失性存储装置、一个或多个输出接口、网络接口以及一个或多个显示器或显示接口。0073 图1B是示出图1A所示APD104的更详细的图示的实施方案。在图1B中,CP124可说 明 书CN 104025185 A10。