一种基于DIMT架构的统一染色阵列记分板实现架构技术领域
本发明属于计算机图形处理硬件领域,尤其涉及一种基于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指令所使用的功能单元不存在冲突。