一种基于DIMT架构的统一染色阵列记分板实现架构的制作方法

文档序号:12063322阅读:237来源:国知局

本发明属于计算机图形处理硬件领域,尤其涉及一种基于DIMT架构的统一染色阵列记分板实现架构。



背景技术:

统一染色器阵列在运算处理中往往是超标量的,既有数十个warp需要调度、又有数十个并行单元同时执行运算,如何高效准确的调度多个warp多个并行单元上进行运算,严重影响着超标量计算的性能与效率。目前公开研究多是针对单现场多线程的研究,未发现有针对多现场、多线程、多发射的记分板研究。



技术实现要素:

发明目的:

本发明主要提供一种基于DIMT架构的统一染色阵列记分板实现架构,可以保证超标量处理器正确与高效的运行。

技术方案:

本发明的解决方案是:

一种基于DIMT架构的统一染色阵列记分板实现架构,包括:

指令状态表(1)、功能单元状态表(2)、寄存器状态表(3)、状态更新及相关检测逻辑(4);

指令状态表(1)与预译码单元(5)、状态更新及相关检测逻辑(4)相连,预译码单元(5)输出每个warp中待下发指令的译码信息给指令状态表(1),指令状态表(1)将这些信息按warp存储后传输给状态更新及相关检测逻辑(4);

功能单元状态表(2)与发射单元(6)、执行单元(7)、状态更新及相关检测逻辑(4)相连,在发射单元(6)下发指令时,发射单元(6)将本次下发指令所使用的功能单元信息传输给功能单元状态表(2),在执行单元(7)每次执行结束时将该功能单元的结束信息传输给功能单元状态表(2),功能单元状态表(2)根据这两个信息,记录每个执行单元的工作开始和结束状态信息,并将此开始和结束状态信息传递给状态更新及相关检测逻辑(4);

寄存器状态表(3)与发射单元(6)、执行单元(7)、状态更新及相关检测逻辑(4)相连,在发射单元(6)下发指令时,发射单元(6)将本次下发指令所使用的目标寄存器地址传递给寄存器状态表(3),在执行单元(7)每次执行结束时将其所写入的寄存器地址传递给寄存器状态表(3),寄存器状态表(3)根据这两个信息建立寄存器的锁定状态,并将此锁定状态传输给状态更新及相关检测逻辑(4);

状态更新及相关检测逻辑(4)与指令状态表(1)、功能单元状态表(2)、寄存器状态表(3)、warp调度单元(8)相连,状态更新及相关检测逻辑(4)接收所述每个warp中待下发指令的译码信息、每个执行单元的工作开始和结束状态信息、寄存器的锁定状态并进行比对,将warp准备好信息传输给warp调度单元(8)。

Warp准备好的具体策略是:warp中的指令所使用的寄存器没有被锁定;如果执行单元(7)中的功能单元是流水的,那么warp指令所使用的功能单元不会发生冲突;如果执行单元(7)中的功能单元是非流水的,那么必须等当前功能单元上的指令执行完成后才可判定为warp指令所使用的功能单元不存在冲突。

有益效果:

本发明的优点是:本发明提供的一种基于DIMT架构的统一染色阵列记分板实现架构,通过统计染色阵列在运行过程中各种资源使用的情况,以及对多warp两个待发射指令的指令分析,判断出当前时刻哪个warp对应的双指令可以发射,从而可以保证染色器阵列正确、高效的执行超标量的计算。

附图说明

图1为本发明的方法模块图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

下面结合附图和具体实施例对本发明的技术方案做进一步详细描述。

一种基于DIMT架构的统一染色阵列记分板实现架构,如图1所示,包括:

指令状态表(1)、功能单元状态表(2)、寄存器状态表(3)、状态更新及相关检测逻辑(4);

所述指令状态表(1),用于记录每个待调度warp中两条指令预译码的信息,包括源寄存器、目的寄存器、使用的功能单元、使用功能单元的周期。

所述功能单元状态表(2),用于记录每个执行单元中的运算部件所处的状态,对于流水部件,需要记录该部件流水级上每一拍正在进行的运算;对于非流水部件,需要记录该部件当前是否进行着运算。对于多个相同并行功能单元同时执行运算的情况,可以只记录其中一个功能的状态。

所述寄存器状态表(3),用于统计每一个执行单元对应的每一个寄存器是否处于可操作状态,即没有被锁定。对于多个相同并行功能单元同时执行运算的情况,可以只记录其中锁定最长时间的那个寄存器状态。

所述状态更新及相关检测逻辑(4),用于每一周期更新指令状态表、功能单元状态表、寄存器状态表,并根据三张表的信息进行检测,检测当前准备调度下发的指令在下发后不会引起数据冲突、结构冲突。记分板支持几个warp,检测逻辑就需要有几套,各检测逻辑并行执行,在每个周期输出结果。

模块连接及工作流程如下:

指令状态表(1)与预译码单元(5)、状态更新及相关检测逻辑(4)相连,预译码单元(5)输出每个warp中待下发指令的译码信息给指令状态表(1),指令状态表(1)将这些信息按warp存储后传输给状态更新及相关检测逻辑(4);

功能单元状态表(2)与发射单元(6)、执行单元(7)、状态更新及相关检测逻辑(4)相连,在发射单元(6)下发指令时,发射单元(6)将本次下发指令所使用的功能单元信息传输给功能单元状态表(2),在执行单元(7)每次执行结束时将该功能单元的结束信息传输给功能单元状态表(2),功能单元状态表(2)根据这两个信息,记录每个执行单元的工作开始和结束状态信息,并将此开始和结束状态信息传递给状态更新及相关检测逻辑(4);

寄存器状态表(3)与发射单元(6)、执行单元(7)、状态更新及相关检测逻辑(4)相连,在发射单元(6)下发指令时,发射单元(6)将本次下发指令所使用的目标寄存器地址传递给寄存器状态表(3),在执行单元(7)每次执行结束时将其所写入的寄存器地址传递给寄存器状态表(3),寄存器状态表(3)根据这两个信息建立寄存器的锁定状态,并将此锁定状态传输给状态更新及相关检测逻辑(4);

状态更新及相关检测逻辑(4)与指令状态表(1)、功能单元状态表(2)、寄存器状态表(3)、warp调度单元(8)相连,状态更新及相关检测逻辑(4)接收所述每个warp中待下发指令的译码信息、每个执行单元的工作开始和结束状态信息、寄存器的锁定状态并进行比对,将warp准备好信息传输给warp调度单元(8)。

其中,Warp准备好的具体策略是:warp中的指令所使用的寄存器没有被锁定;如果执行单元(7)中的功能单元是流水的,那么warp指令所使用的功能单元不会发生冲突;如果执行单元(7)中的功能单元是非流水的,那么必须等当前功能单元上的指令执行完成后才可判定为warp指令所使用的功能单元不存在冲突。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1