当前位置: 首页 > 专利查询>辉达公司专利>正文

用于并行处理单元的陷阱处理器架构制造技术

技术编号:7705366 阅读:193 留言:0更新日期:2012-08-25 04:17
将陷阱处理器架构结合到诸如GPU的并行处理子系统中。该陷阱处理器架构通过强制实行以下特性来为并发执行线程最小化设计复杂度和验证工作:与流多处理器相关联的所有线程组或者全部执行在它们各自的代码段内,或者全部执行在在陷阱处理器代码段内。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术总体涉及陷阱处理器(trap handler)架构,并且,更具体地涉及高度并行线程处理器和图形处理单元中的陷阱处理器架构。
技术介绍
陷阱处理器是计算机系统中的软件例程,例如当计算机程序执行期间计算机系统中发生异常(exertion)或中断时,执行所述陷阱处理器。由于执行计算机程序中的特定指令导致需要以特定方式对其进行处理的意外結果,因此发生异常。例如,除以零的指令或包括错误存储器地址的指令将产生异常,其使得计算机程序流跳转到陷阱处理器例程。相反,中断的发生是由于不依靠计算机程序流自身的外部事件。例如,诸如按下鼠标上的按键或者完成到NIC卡的数据传输这类设备I/O事件,将会使该设备传送中断到计算机系统,同样使得计算机程序流跳转到陷阱器例程。不论是处理异常还是中断(本文中都称为“异常”),陷阱处理器一般都从保存当前计算机程序流的状态开始(例如,保存于程序堆栈),然后跳转到该陷阱处理器的特定子例程以寻址特定的异常或中断。虽然陷阱处理器架构通常实现于计算机系统的操作系统和设备驱动器中,但至今为止,在此类计算机系统中的诸如图形处理器子系统或GPU(图形处理单元)等高度并行线程处理器,则由于实现和效率方面的困难,仍然未能包含陷阱处理器架构。由于其高度并行化的特征,在发生中断或异常的情况下,对应于可在GPU中运行的多个不同线程组,用于现代GPU的陷阱处理器架构需要正确地处理数以万计的并发执行的线程。此外,考虑到对于GPU的尺寸和成本限制,此类陷阱处理器架构的集成电路组件需要有效地利用半导体晶圆面积(wafer die area) 0由于难以将可有效处理并发执行线程的陷阱处理器架构包含进来,因此当前的GPU不能提供依赖于陷阱处理器的增强特征集,该增强特征集诸如处理主机CPU中断、不需要与CPU交互即可在GPU中直接进行异常处理以及GPU系统调用支持。因此,本
需要的是用于在GPU中有效提供陷阱处理器架构的系统和方法,所述陷阱处理器架构能够恰当地处理在GPU中当前运行线程的高度并行化的特性。
技术实现思路
本专利技术的一个或多个实施例提供用于GPU的陷阱处理器架构,其处理GPU中的异常和中断。为了针对GPU的线程组中每ー个,解决线程组同步问题以及最小化设计复杂度和验证工作,所述陷阱处理器架构强制执行以下特性所有线程组或者全部执行在它们各自的代码段内,或者全部执行在所述陷阱处理器代码段的代码段内。根据ー个实施例,GPU经配置以处理在所述GPU的多处理器内的第一线程组执行、期间发生的干扰事件,例如异常或中断。所述GPU包括陷阱处理器控制器,所述陷阱处理器控制器经配置以执行以下步骤接收所述干扰事件的通知;停止执行在所述多处理器内的所有线程组的执行;设置错误状态寄存器以指示所述干扰事件的类型;以及,为每个线程组设置程序计数器,以指出陷阱器代码段的存储器地址,所述陷阱器代码段包括配置所述多处理器来处理所述干扰事件的软件例程;以及,包括所述陷阱处理器代码段的存储器单元,所述陷阱处理器代码段包含当由所述多处理器执行时,执行以下步骤的指令请求所述错误状态寄存器的值;分支转移到所述陷阱处理器代码段中的子段,所述子段包括用于寻址所述干扰事件的类型的指令;以及,执行所述陷阱处理器代码段的所述子段中的指令以处理该干扰事件。包括这中陷阱处理器架构的GPU的ー个优点在于,在处理大量可由陷阱处理器自身内部处理的很多情况时,GPU较少地依赖于主机CPU。附图说明因此,可以详细地理解上述本专利技术的特征,并且可以參考实施例得到对如上面所 概括的本专利技术更具体的描述,其中一些实施例在附图中示出。然而,应当注意的是,附图仅用于示意性地表示本专利技术的典型实施例,因此不应被认为是对本专利技术范围的限制,本专利技术可以具有其他等效的实施方式。图I为示出了被配置为实现本专利技术ー个或多个方面的计算机系统的框图;图2为根据本专利技术ー个实施例的,用于图I中计算机系统的并行处理子系统的框图;图3A为根据本专利技术ー个实施例的,图2中ー个PPU内的GPC的框图;图3B为根据本专利技术ー个实施例的,图2中ー个PPU内的分区单元的框图;图3C为根据本专利技术ー个实施例的,图3A中SPM的一部分的框图;以及图4为根据本专利技术ー个实施例的,可由图2中ー个或多个PPU经配置实现的图形处理管线的示意图;图5为根据本专利技术ー个实施例的,包括陷阱处理器控制器的SPM架构的框图;图6为根据本专利技术ー个实施例的,用于由陷阱处理器控制器处理异常或中断的方法步骤的流程图;图7为根据本专利技术ー个实施例的,陷阱处理器代码段的流程图。具体实施例方式在下面的描述中,将阐述大量的详细内容以提供对本专利技术更深入的理解。然而,本
的技术人员应该清楚,本专利技术可以在没有一个或多个这些具体细节的情况下得以实施。在其他例子中,没有描述公知的特征以避免对本专利技术造成混淆。系统概述图I为示出了经配置以实现本专利技术的ー个或多个方面的计算机系统100的框图。计算机系统100包括中央处理单元(CPU) 102和通过可包括存储器桥105的互连路径通信的系统存储器104。存储器桥105可以是诸如北桥芯片,通过总线或其他通信路径106(诸如超传输(HyperTransport)链路)连接到1/0(输入/输出)桥107。I/O桥107,其可以是诸如南桥芯片,从ー个或多个用户输入设备108 (诸如键盘、鼠标)接收用户输入并且通过路径106和存储器桥105将所述输入转发到CPU 102。并行处理子系统112通过总线或其他通信路 径113 (诸如PCI Express、加速图形端ロ或超传输链路)耦合到存储器桥105 ;在一个实施例中,并行处理子系统112是将像素传递到显示设备110 (诸如常见的基于CRT或IXD的监视器)的图形子系统。系统盘114也连接到I/O桥107。开关116提供I/O桥与诸如网络适配器118和各种外插卡(add-in card) 120和121的其他组件之间的连接。其他组件(未明确示出),包括USB或其他端ロ连接、CD驱动器、DVD驱动器、胶片录制设备及类似组件,也可以连接到I/O桥107。使图I中各种组件互连的通信路径可以采用任何适合的协议来实现,诸如PCI (外部组件互连)、PCI-Express、AGP (加速图形端ロ )、超传输或任何其他总线或者点到点通信协议,以及不同设备间的连接可采用本
已知的不同协议。在一个实施例中,并行处理子系统112包含被优化用于图形和视频处理的电路,所述电路包括例如视频输出电路,并且构成图形处理单元(GPU)。在另ー个实施例中,并行处理子系统112包含被优化用于通用处理的电路,同时保留底层的(underlying)计算架构,本文将详细描述。在另ー个实施例中,可以将并行处理子系统112与一个或多个其他系统单元一起集成,例如存储器桥105、CPU 102以及I/O桥107,以形成片上系统(SoC)。应该理解,本文所示系统是示例性的,变化和修改都是可能的。连接拓扑,包括桥的数量和布置、CPU 102的数量以及并行处理子系统112的数量,都可根据需要修改。例如,在一些实施例中,系统存储器104直接连接到CPU 102而不是通过桥,并且其他设备通过存储器桥105以及CPU102与系统存储器104通信。在其本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2009.09.29 US 12/569,8311.ー种用于处理干扰事件的方法,所述干扰事件在并行处理子系统的多处理器内的第ー线程组执行期间发生,所述并行处理子系统驻留在计算机系统内,所述方法包括 接收所述干扰事件的通知; 停止执行在所述多处理器内的所有线程组的执行; 设置错误状态寄存器以指示所述干扰事件的类型;以及, 为每个线程组设置程序计数器,以指出陷阱处理器代码段的存储器地址,所述陷阱处理器代码段包括配置所述多处理器来处理所述干扰事件的软件例程。2.根据权利要求I所述的方法,其中所述停止所有线程组的执行的步骤包括,等待被管线化用于由执行在所述多处理器中的所有线程组执行的所有指令完成。3.根据权利要求I所述的方法,其中所述停止所有线程组的执行的步骤包括,在执行期间维持足够的所述多处理器的状态,以便回滚所有被管线化用于执行的指令。4.根据权利要求I所述的方法,其中从包括由所述线程组的第一线程所生成的异常和由所述第一线程组的执行而外部生成的中断的组中选择所述干扰事件。5.根据权利要求I所述的方法,其中与执行在所述多处理器内的每个线程组相关联的线程并发执行,并且在所述多处理器中给所述线程组分配时间片。6.根据权利要求I所述的方法,进ー步包括以下步骤 确定所述第一线程组正执行在所述陷阱处理器代码段中; 响应于所述陷阱处理器代码段中的读取所述错误状态寄存器的指令,提供所述错误状态寄存器中的值;以及 执行所述陷阱处理器代码段的子段中的指令来处理所述干扰事件。7.根据权利要求I所述的方法,进ー步包括以下步骤 识别在同步屏障指令处正在等待至少ー个其他线程组的第二线程组;以及 由所述第二线程组展开所述同步屏障指令的执行,以使所述第二线程组便于进入所述陷阱处理器代码段。8.一种图形处理单元(GPU),经配置以处理干扰事件,所述干扰事件在所述GPU的多处理器内的第一线程组执行期间发生,所述GPU包括 陷阱处理器控制器,经配置以执行以下步骤接收所述干扰事件的通知;停止执行在所述多处理器内的所有线程组的执行;设置错误状态寄存器以指示所述干扰事件的类型;以及,为每个线程组设置程序计数器,...

【专利技术属性】
技术研发人员:米歇尔·C·施巴诺杰克·夏高特布雷特·W·库恩史蒂文·J·海因里希阿拉宾得·卡拉恩约翰·R·尼科尔斯丹尼尔·萨利纳斯明·休汤米·索恩尼古拉斯·王
申请(专利权)人:辉达公司
类型:发明
国别省市:

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

1
相关领域技术
  • 暂无相关专利