GPGPU流式多处理器架构及原理( 四 )


  1. 由于有大量寄存器GPU,在每组寄存器中增加一个标志位将需要占用更多额外的寄存器 。
  2. 在GPU中,一般会有很多个线程同时执行同一指令,一旦其执行的指令被打断,会有很多线程同时访问Scoreboard造成读取阻塞 。
对于多线程束情况,可通过动态记分牌解决上面的两个问题:
GPGPU流式多处理器架构及原理

文章插图
图 3-9 记分牌Entry流程
  1. 为每个Warp创建几个入口(Entry),每个入口与一个即将被写但操作尚未完成的寄存器相对应 。记分牌在指令进入指令缓冲区(Instruction buffer,I-Buffer)和写操作完成结果存入Register File时能被访问(图3-6)
  2. 当一个指令从内存中读取出来放入到I-Buffer时,将该指令中的源寄存器和目的寄存器与Entry做比较,看是否有其他指令集已经对该寄存器在做写操作,如果有则返回一个bit Vector,与该寄存器一起写入到I-Buffer中 。如果该指令集的写操作完成了,将会刷新I-Buffer中的该指令集寄存器的bit Vector,将bit Vector清除掉 。
  3. 如果一个指令做写操作,并需要将该寄存器放入Entry中,但是此Entry已经满了,那么该指令将会一直等待,或者被丢弃过一定时钟周期后被重新获取再次查看Entry是否满[3] 。

【GPGPU流式多处理器架构及原理】


推荐阅读