一种统一染色图形处理器共享寄存器文件的分配与释放方法技术

技术编号:35744300 阅读:15 留言:0更新日期:2022-11-26 18:48
本发明专利技术涉及一种统一染色图形处理器共享寄存器文件的分配与释放方法。本发明专利技术的方法包括以下步骤:1)将物理存储单元划分成8个Bank及128个Block;2)建立Block申请与释放表;3)将物理存储单元的划分和Block申请与释放表整合,实现逻辑地址到物理寄存器地址的转换;4)根据物理寄存器地址,以单个或多个Block为调度单位进行分配与释放。本发明专利技术解决了原本由于染色内核独享寄存器文件而导致的染色内核规模受限的问题,具有提高统一染色阵列寄存器利用率的优点。用率的优点。用率的优点。

【技术实现步骤摘要】
一种统一染色图形处理器共享寄存器文件的分配与释放方法


[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所属的协作线程阵列完成其执行后,它才会被释放。
[0006]也就是说,即使有些SP上的线程已经执行结束,但该Warp中仍有未执行完的线程,那么该Warp映射到的所有SP上的寄存器文件都不能被释放。这样虽然简化了寄存器管理硬件,但是以寄存器利用率不足为代价,会造成染色内核规模受限的缺点。在GPU面积不变的情况下,急需寻找一种共享寄存器文件的方法。

技术实现思路

[0007]为了克服传统图形处理器统一染色阵列寄存器利用率不足的缺点,本专利技术提供了一种全新的统一染色图形处理器共享寄存器文件的分配与释放方法。
[0008]本专利技术的技术解决方案是:本专利技术为一种统一染色图形处理器共享寄存器文件的分配与释放方法,其特殊之处在于:该方法包括以下步骤:
[0009]1)将物理存储单元划分成8个Bank及128个Block;
[0010]2)建立Block申请与释放表;
[0011]3)将物理存储单元的划分和Block申请与释放表整合,实现逻辑地址到物理寄存器地址的转换;
[0012]4)根据物理寄存器地址,以单个或多个Block为调度单位进行分配与释放。
[0013]进一步的,步骤1)的具体步骤如下:
[0014]1.1)以4KB大小的物理存储单元为调度单位,共享寄存器文件的单个数据宽度为32bit,这个调度单位共有1K个位宽为32bit的寄存器文件;
[0015]1.2)将物理存储单元划分成了8个Bank,每个Bank包含了128个位宽为32bit的物理寄存器文件;
[0016]1.3)以每8个寄存器文件为1个Block,且恰好覆盖Bank 0—Bank 7,将整个存储单元划分为128个Block。
[0017]进一步的,步骤2)的具体步骤如下:
[0018]2.1)确定调度粒度为32,即每个Warp每次可以分配1—32个Block;
[0019]2.2)为每个Warp提供一个Block申请与释放表,每一个Warp的申请与释放表均包含32个块,用于存储分配给该Warp的Block的编号及其有效信号,由于每个寄存器文件需要支持16个Warp共享,因此共有16个这样的分配与释放表;
[0020]2.3)将16个Warp的Block申请与释放表组织为一个二维阵列;
[0021]进一步的,步骤3)的具体步骤如下:
[0022]3.1)将物理存储单元的划分和Block申请与释放表整合,即可得到寄存器文件的虚实地址映射关系;逻辑地址共包含12位,其中高4位为Warp ID,表示该逻辑地址对应的Warp编号,范围是0—15;低3位为Bank ID,表示逻辑地址对应的Bank编号,范围是0—7;中间5位为Block ID,表示逻辑地址对应的存放在Block申请与释放表中的列号(非实际Block号),范围是0—31;
[0023]3.2)将Warp ID和Block ID共同映射在Block申请与释放表中,二者结合可以得到唯一一个Block申请与释放表的块,这个块中存放的数据为Physical Block Number,即实际Block号,其位宽为7bit,范围是0—127,将该值作为偏移量送至物理寄存器的划分表;
[0024]3.3)Physical Block Number与Bank ID共同映射在物理寄存器的划分表中,二者结合可以得到唯一一个物理寄存器文件编号,这个编号就是物理寄存器地址;
[0025]进一步的,步骤4)中对寄存器文件中每一个物理寄存器块的使用情况进行统计并标记其状态,生成物理寄存器块的使用状态表,并找到在当前指令中使用结束的寄存器文件,并将其释放回收、重新分配。
[0026]进一步的,步骤4)中以4个Block为调度单位,4个Block为调度单位的使用状态表,由5个部分组成,分别是Free Bit、Free List、分配指针ap_cnt、释放指针rp_cnt以及对应到32个位置的索引,Free List是一个位宽为5bit,深度为32的寄存器堆,用于存储block组号,即Block id,Free List每一个寄存器存储的范围都是0—31,在初始状态下,Free List每个寄存器中存入的数据与其下标相同,即0—31号寄存器依次初始化为0—31;与Free List对应的Free Bit是一个位宽为32的寄存器,用于表示Free List每个寄存器的分配与回收状态,其每一位对应1个Free List的寄存器,当这一位为0时表示当前Free List空闲,可以被分配调度,当这一位为1时表示当前Free List已经被分配,无法继续调度,Free Bit初始状态下每一位都是0;分配指针和释放指针都是一个位宽为5bit的寄存器,用于存储Free List当前分配Block的编号与当前释放Block组的编号,其存储范围都是0—31,释放指针永远指向当前写入的位置即释放回收的Block组在当前Free List中的位置,分配指针永远指向下一个要读取的位置,即下一个要被分配出去Block的位置,初始状态下,两个指针都指向第0个Block;此外,由于两个指针位宽均为5bit,所以当分配指针或释放指针指向
最后一个Free List即31时,其内部存放的数据为5

b11111,此时若需要继续分配、释放Block,直接在5

b11111基础上加相应的分配、释放数量本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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...

【专利技术属性】
技术研发人员:田泽王党辉岳琛
申请(专利权)人:西安翔腾微电子科技有限公司
类型:发明
国别省市:

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

1