【技术实现步骤摘要】
一种统一染色图形处理器共享寄存器文件的分配与释放方法
[0001]本专利技术属于统一染色图形处理器
,涉及一种共享寄存器文件的分配与释放策略,尤其是一种统一染色图形处理器共享寄存器文件的分配与释放方法。
技术介绍
[0002]统一染色阵列是统一染色图形处理器的运算核心,其在图形处理器版图中所占的面积也极为可观。流多核处理器是统一染色架构GPU执行纹理处理的核心部件,染色内核是统一染色阵列的基本染色单元,寄存器文件的组织是其设计的一项重要内容。
[0003]为了支持GPU大规模线程级并行的特点,GPU中设置了大量由染色内核构成的流处理器(SP),流处理器可以让GPU以单指令多数据(SIMD)或单指令多线程(SIMT)的方式实现线程级并行。
[0004]寄存器是GPU上的存储器中效率最高的存储部件,其以寄存器文件为单位,为了减少上下文切换的代价,GPU部署了较大规模的寄存器文件资源供流处理器使用,不同计算能力的GPU,每个流多核处理器上寄存器文件的个数不一样,GPU中,因染色内核数量众多,且内核现场数量众多,寄存器文件的数量、现场规模可观,因此寄存器文件的管理与使用对于GPU性能有重要意义。
[0005]在GPU中,每个流多核处理器中的染色内核独享该SM中的RF,线程束(Warp)是GPU调度和运行的基本单元,每个Warp都需要被分配属于自己的专用架构寄存器文件,并由Warp id索引,并且每个架构寄存器都有在寄存器文件中分配的相应物理寄存器。一旦分配了寄存器,直到Warp所属的协作线程阵列 ...
【技术保护点】
【技术特征摘要】
1.一种统一染色图形处理器共享寄存器文件的分配与释放方法,其特征在于:该方法包括以下步骤:1)将物理存储单元划分成8个Bank及128个Block;2)建立Block申请与释放表;3)将物理存储单元的划分和Block申请与释放表整合,实现逻辑地址到物理寄存器地址的转换;4)根据物理寄存器地址,以单个或多个Block为调度单位进行分配与释放。2.根据权利要求1所述的统一染色图形处理器共享寄存器文件的分配与释放方法,其特征在于:所述步骤1)的具体步骤如下:1.1)以4KB大小的物理存储单元为调度单位,共享寄存器文件的单个数据宽度为32bit,这个调度单位共有1K个位宽为32bit的寄存器文件;1.2)将物理存储单元划分成了8个Bank,每个Bank包含了128个位宽为32bit的物理寄存器文件;1.3)以每8个寄存器文件为1个Block,且恰好覆盖Bank 0—Bank 7,将整个存储单元划分为128个Block。3.根据权利要求2所述的统一染色图形处理器共享寄存器文件的分配与释放方法,其特征在于:所述步骤2)的具体步骤如下:2.1)确定调度粒度为32,即每个Warp每次可以分配1—32个Block;2.2)为每个Warp提供一个Block申请与释放表,每一个Warp的申请与释放表均包含32个块,用于存储分配给该Warp的Block的编号及其有效信号,由于每个寄存器文件需要支持16个Warp共享,因此共有16个这样的分配与释放表;2.3)将16个Warp的Block申请与释放表组织为一个二维阵列。4.根据权利要求3所述的统一染色图形处理器共享寄存器文件的分配与释放方法,其特征在于:所述步骤3)的具体步骤如下:3.1)将物理存储单元的划分和Block申请与释放表整合,即可得到寄存器文件的虚实地址映射关系;逻辑地址共包含12位,其中高4位为Warp ID,表示该逻辑地址对应的Warp编号,范围是0—15;低3位为Bank ID,表示逻辑地址对应的Bank编号,范围是0—7;中间5位为Block ID,表示逻辑地址对应的存放在Block申请与释放表中的列号(非实际Block号),范围是0—31;3.2)将WarpID和BlockID共同映射在Block申请与释放表中,二者结合可以得到唯一一个Block申请与释放表的块,这个块中存放的数据为Physical Block Number,即实际Block号,其位宽为7bit,范围是0—127,将该值作为偏移量送至物理寄存器的划分表;3.3)Physical Block Number与Bank ID共同映射在物理寄存器的划分表中,二者结合可以得到唯一一个物理寄存器文件编号,这个编号就是物理寄存器地址。5.根据权利要求4所述的统一染色图形处理器共享寄存器文件的分配与释放方法,其特征在于:所述步骤4)中对寄存器文件中每一个物理寄存器块的使用情况进行统计并标记其状态,生成物理寄存器块的使用状态表,并找到在当前指令中使用结束的寄存器文件,并将其释放回收、重新分配。6.根据权利要求5所述的统一染色图形处理器共享寄存器文件的分配与释放方法,其
特征在于:所述步骤4)中以4个Block为调度单位,4个Block为调度单位的使用状态表,由5个部分组成,分别是Free Bit、Free List、分配指针ap_cnt、释放指针rp_cnt以及对应到32个位置的索引,Free List是一个位宽为5bit,深度为32的寄存器堆,用于存储block组号,即Blockid,Free List每一个寄存器存储的范围都是0—31,在初始状态下,Free List每个寄存器中存入的数据与其下标相同,即0—31号寄存器依次初始化为0—31;与Free List对应的Free Bit是一个位宽为32的寄存器,用于表示Free List每个寄存器的分配与回收状态,其每一位对应1个Free List的寄存器,当这一位为0时表示当前Free L...
【专利技术属性】
技术研发人员:田泽,王党辉,岳琛,
申请(专利权)人:西安翔腾微电子科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。