一种SIMT条件分支处理装置及方法制造方法及图纸

技术编号:27876653 阅读:16 留言:0更新日期:2021-03-31 00:53
本发明专利技术涉及一种SIMT条件分支处理装置及方法。本发明专利技术的装置包括分支处理装置硬件、指令和编程模型;分支处理装置硬件分别与指令和编程模型连接,指令和编程模型连接,其中:分支处理装置硬件为外部用户代码执行的硬件载体,具有来自外部用户代码的关系;所述指令为外部用户代码提供该装置的使用接口,具有到外部用户代码的关系;所述编程模型为外部用户代码提供指令序列在使用时的约束和限制,具有到外部用户代码的关系。本发明专利技术为SIMT处理器的条件分支提供一种低代价、易实现的方案,同时适用于细粒度SIMT多线程处理器和粗粒度SIMT多线程处理器。

【技术实现步骤摘要】
一种SIMT条件分支处理装置及方法
本专利技术属于处理器和图形处理器设计
,尤其涉及一种SIMT条件分支处理装置及方法。
技术介绍
粗粒度多线程处理器中,当前线程遇到长延迟事件时,通过切换到其他的线程来使用处理器资源,以掩盖长延迟事件造成的停顿。然而,粗粒度多线程的线程切换仅在遇到长延迟事件时发生,切换频率较低,一般通过操作系统保存线程的现场,因而线程切换时,线程现场的保存、装载需要一定的开销,在此期间,处理器运算资源闲置。细粒度多线程处理器中,同样通过线程切换掩盖长延迟事件造成的停顿,与粗粒度多线程不同,细粒度多线程以固定的若干周期进行线程的切换,切换频率较高,为降低切换时线程现场保存、装载的开销,细粒度多线程以硬件的方式支持线程多线程,故线程切换时可以做到零开销。Warp是由待处理数据、对数据进行加工的程序,以及加工后产生的结果数据组成的集合。多个warp可在同一硬件上互不干扰地分时执行,不同warp需要有不同的现场记录相关信息,即warp需要由相应的硬件支持。单指令多线程(SingleInstructionMultiThread,SIMT)使用单条指令控制多个线程的执行,即多个线程同时执行同一条指令。SIMT技术应用于处理器设计,可以节省取指逻辑资源,将更多的晶体管用于计算,提供处理器的运算能力;在诸如图形计算中,大量的顶点、像素需进行相同操作,具有极高的数据并行性,SIMT具有很好的适应性;非图形计算中,不同线程的执行路径,会有所差异,SIMT存在效率不高问题。SIMT处理器中,当线程组中的所有线程具有相同的执行路径时,SIMT处理器可获得全部的效率和性能;如果线程组中的线程在条件分支时因各线程数据的不同造成执行路径的差异,则需按照每个分支路径顺序执行。现有的SIMT处理器,大多使用分支同步栈管理各个分支和聚集线程,实现复杂、硬件代价较大。
技术实现思路
为解决
技术介绍
中存在的上述问题,本专利技术提供了一种SIMT条件分支处理装置及方法,为SIMT处理器的条件分支提供一种低代价、易实现的方案,同时适用于细粒度SIMT多线程处理器和粗粒度SIMT多线程处理器。本专利技术的技术解决方案是:本专利技术为一种SIMT条件分支处理装置,其特殊之处在于:所述SIMT条件分支处理装置包括分支处理装置硬件、指令和编程模型;分支处理装置硬件分别与指令和编程模型连接,指令和编程模型连接,其中:分支处理装置硬件为外部用户代码执行的硬件载体,具有来自外部用户代码的关系;所述指令为外部用户代码提供该装置的使用接口,具有到外部用户代码的关系;所述编程模型为外部用户代码提供指令序列在使用时的约束和限制,具有到外部用户代码的关系;分支处理装置硬件通过指令进行操作,具有来自指令的依赖关系;所述分支处理装置硬件的实现以编程模型为前提,具有对编程模型的依赖关系;所述指令由分支处理装置硬件执行,具有来自分支处理装置硬件的依赖关系;所述指令的使用必须遵守编程模型,具有来自编程模型的依赖关系;所述编程模型的实现依赖于指令组成的序列,具有来自指令的依赖关系;所述编程模型体现在代码中在分支处理装置硬件上执行,编程模型具有来自分支处理装置硬件的依赖关系。优选的,分支处理装置硬件包括条件分支部件、Mask栈控制部件、绝对跳转部件、多现场(warp)ThreadMask栈、多现场(warp)PC栈、当前ThreadMask、Warp调度部件、取指warp调度部件、PC更新部件和当前PC;其中条件分支部件用于执行条件分支指令,并根据执行结果产生所有线程的的断言Mask信息,以及所有线程的结果是否存在分歧及分支地址信息,断言Mask产生的规则为:warp中某线程对应的分支指令的条件满足,则该线程对应的断言Mask有效,否则,该线程对应的断言Mask无效;Mask栈控制部件用于执行Mask栈控制指令,产生相应的控制动作,控制动作包括入栈、出栈、取反,其中取反操作的规则为:将warp中所有线程的断言Mask按位取反,有效变为无效,无效变为有效;绝对跳转部件用于执行绝对跳转指令,产生多现场(warp)PC栈的控制动作和数据,其中动作包括入栈、出栈,并产生当前PC信息;所述多现场(warp)ThreadMask栈具有多个硬件现场,每个现场用于保存一个warp的所有线程的Mask信息,并能够根据warp调度部件输出的warp信息,输出该warp的ThreadMask信息;多现场(warp)PC栈具有多个硬件现场,每个现场用户保存一个warp的PC信息,并能够根据取指warp调度部件输出的warp信息,输出该warp的PC信息;当前ThreadMask用于保持当前warp所有线程的ThreadMask信息;Warp调度部件用于根据外部记分板单元的信息从多个warp中选出一个具备运行条件的warp;所述取指warp调度部件用于根据外部IF部件中缓存的状态信息从多个warp中选出一个待取指的warp;PC更新部件用于根据条件分支部件给出的所有线程条件分支的条件测试结果,根据绝对跳转部件给出的绝对跳转指令相关的数据信息,以及当前PC给出的当前PC更新当前warp的PC,具体更新规则为“如果条件分支部件给出的所有线程条件分支的条件测试结果无分歧且测试条件成立,则PC更新为条件分支部件送来的跳转地址;如果条件分支部件给出的所有线程条件分支的条件测试结果有分歧或测试条件不成立,则PC更新为当前PC送来的PC+1;如果绝对跳转部件送来的绝对跳转有效,则根据绝对跳转的类型选择跳转到绝对跳转部件送来的跳转地址或多现场(warp)PC栈对应warp的栈顶PC;其他情况下,PC更新为当前PC给出的PC+1”;当前PC用于保持当前warp的PC信息。优选的,条件分支部件与来自外部的ID部件连接,用于从其条件分支指令的控制信号和数据;Mask栈控制部件与来自外部的ID部件连接,用于从其接收Mask栈控制指令指令的控制信号;绝对跳转部件与来自外部的ID部件的连接,用于从其接收绝对跳转指令的控制信号和数据;当前PC与来自外部的IF部件连接,用于向其输出选出warp的PC信息;取指warp调度部件与来自外部的IF部件连接,用于从其接收多warp指令缓存的空满信息;warp调度部件与来自外部的记分板单元连接,用于从其接收多warp的指令的数据相关、控制相关、功能部件相关、写回通路相关等相关信息,以及功能部件上指令执行的状态信息;当前ThreadMask与来自外部的Ex部件连接,用于向其输出当前warp对应指令的Mask信息;warp调度部件与来自外部的ID部件连接,用于向其输出胜出的当前warp的id信息。优选的,条件分支部件与PC更新部件连接,用于向其输出当前warp所有线程的条件测试结果及分支地址信息;Mask栈控制部件与多现场(warp)ThreadMask栈连接,用于向其输出控制动作信息;绝对跳转部件与PC更新部件连接,用于向其输出绝对跳转指令相关的数据信息;绝对跳转部件与多现场(warp)PC栈连接,用于向其输出栈的控制动作和数本文档来自技高网
...

【技术保护点】
1.一种SIMT条件分支处理装置,其特征在于:所述SIMT条件分支处理装置包括分支处理装置硬件、指令和编程模型;所述分支处理装置硬件分别与指令和编程模型连接,所述指令和编程模型连接,其中:/n所述分支处理装置硬件为外部用户代码执行的硬件载体,具有来自外部用户代码的关系;所述指令为外部用户代码提供该装置的使用接口,具有到外部用户代码的关系;所述编程模型为外部用户代码提供指令序列在使用时的约束和限制,具有到外部用户代码的关系;/n所述分支处理装置硬件通过指令进行操作,具有来自指令的依赖关系;所述分支处理装置硬件的实现以编程模型为前提,具有对编程模型的依赖关系;所述指令由分支处理装置硬件执行,具有来自分支处理装置硬件的依赖关系;所述指令的使用必须遵守编程模型,具有来自编程模型的依赖关系;所述编程模型的实现依赖于指令组成的序列,具有来自指令的依赖关系;所述编程模型体现在代码中在分支处理装置硬件上执行,编程模型具有来自分支处理装置硬件的依赖关系。/n

【技术特征摘要】
1.一种SIMT条件分支处理装置,其特征在于:所述SIMT条件分支处理装置包括分支处理装置硬件、指令和编程模型;所述分支处理装置硬件分别与指令和编程模型连接,所述指令和编程模型连接,其中:
所述分支处理装置硬件为外部用户代码执行的硬件载体,具有来自外部用户代码的关系;所述指令为外部用户代码提供该装置的使用接口,具有到外部用户代码的关系;所述编程模型为外部用户代码提供指令序列在使用时的约束和限制,具有到外部用户代码的关系;
所述分支处理装置硬件通过指令进行操作,具有来自指令的依赖关系;所述分支处理装置硬件的实现以编程模型为前提,具有对编程模型的依赖关系;所述指令由分支处理装置硬件执行,具有来自分支处理装置硬件的依赖关系;所述指令的使用必须遵守编程模型,具有来自编程模型的依赖关系;所述编程模型的实现依赖于指令组成的序列,具有来自指令的依赖关系;所述编程模型体现在代码中在分支处理装置硬件上执行,编程模型具有来自分支处理装置硬件的依赖关系。


2.根据权利要求1所述的SIMT条件分支处理装置,其特征在于:所述分支处理装置硬件包括条件分支部件、Mask栈控制部件、绝对跳转部件、多现场ThreadMask栈、多现场PC栈、当前ThreadMask、Warp调度部件、取指warp调度部件、PC更新部件和当前PC;其中
所述条件分支部件用于执行条件分支指令,并根据执行结果产生所有线程的的断言Mask信息,以及所有线程的结果是否存在分歧及分支地址信息,断言Mask产生的规则为:warp中某线程对应的分支指令的条件满足,则该线程对应的断言Mask有效,否则,该线程对应的断言Mask无效;所述Mask栈控制部件用于执行Mask栈控制指令,产生相应的控制动作,控制动作包括入栈、出栈、取反,其中取反操作的规则为:将warp中所有线程的断言Mask按位取反,有效变为无效,无效变为有效;所述绝对跳转部件用于执行绝对跳转指令,产生多现场PC栈的控制动作和数据,其中动作包括入栈、出栈,并产生当前PC信息;所述多现场ThreadMask栈具有多个硬件现场,每个现场用于保存一个warp的所有线程的Mask信息,并能够根据warp调度部件输出的warp信息,输出该warp的ThreadMask信息;所述多现场PC栈具有多个硬件现场,每个现场用户保存一个warp的PC信息,并能够根据取指warp调度部件输出的warp信息,输出该warp的PC信息;所述当前ThreadMask用于保持当前warp所有线程的ThreadMask信息;所述Warp调度部件用于根据外部记分板单元的信息从多个warp中选出一个具备运行条件的warp;所述取指warp调度部件用于根据外部IF部件中缓存的状态信息从多个warp中选出一个待取指的warp;所述PC更新部件用于根据条件分支部件给出的所有线程条件分支的条件测试结果,根据绝对跳转部件给出的绝对跳转指令相关的数据信息,以及当前PC给出的当前PC更新当前warp的PC,具体更新规则为“如果条件分支部件给出的所有线程条件分支的条件测试结果无分歧且测试条件成立,则PC更新为条件分支部件送来的跳转地址;如果条件分支部件给出的所有线程条件分支的条件测试结果有分歧或测试条件不成立,则PC更新为当前PC送来的PC+1;如果绝对跳转部件送来的绝对跳转有效,则根据绝对跳转的类型选择跳转到绝对跳转部件送来的跳转地址或多现场PC栈对应warp的栈顶PC;其他情况下,PC更新为当前PC给出的PC+1”;所述当前PC用于保持当前warp的PC信息。


3.根据权利要求2所述的SIMT条件分支处理装置,其特征在于:所述条件分支部件与来自外部的ID部件连接,用于从其条件分支指令的控制信号和数据;所述Mask栈控制部件与来自外部的ID部件连接,用于从其接收Mask栈控制指令指令的控制信号;所述绝对跳转部件与来自外部的ID部件的连接,用于从其接收绝对跳转指令的控制信号和数据;所述当前PC与来自外部的IF部件连接,用于向其输出选出warp的PC信息;所述取指warp调度部件与来自外部的IF部件连接,用于从其接收多warp指令缓存的空满信息;所述warp调度部件与来自外部的记分板单元连接,用于从其接收多warp的指令的数据相关、控制相关、功能部件相关、写回通路相关等相关信息,以及功能部件上指令执行的状态信息;所述当前ThreadMask与来自外部的Ex部件连接,用于向其输出当前warp对应指令的Mask信息;所述warp调度部件与来自外部的ID部件连接,用于向其输出胜出的当前warp的id信息。


4.根据权利要求3所述的SIMT条件分支处理装置,其特征在于:所述条件分支部件与PC更新部件连接,用于向其输出当前warp所有线程的条件测试结果及分支地址信息;所述Mask栈控制部件与多现场ThreadMask栈连接,用于向其输出控制动作信息;所述绝对跳转部件与PC更新部件连接,用于向其输出绝对跳转指令相关的数据信息;所述绝对跳转部件与多现场PC栈连接,用于向其输出栈的控制动作和数据信息;所述多现场ThreadMask栈与warp调度部件连接,用于从其接收胜出的当前warp的id信息;所述当前ThreadMask与多现场ThreadMask栈连接,用于从其接收当前warp所有线程的Mask信息;所述多现场P...

【专利技术属性】
技术研发人员:任向隆田泽张骏韩立敏许宏杰牛少平
申请(专利权)人:西安翔腾微电子科技有限公司
类型:发明
国别省市:陕西;61

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

1