图形处理器中基于线程分支信息的预取方法及系统技术方案

技术编号:35271684 阅读:15 留言:0更新日期:2022-10-19 10:44
本申请提供一种图形处理器中基于线程分支信息的预取方法及系统,应用于图形处理器指令预取技术领域,包括,根据第一时刻的分支栈的第一栈顶指令指针(pc)和第一次栈顶指令指针,确定第一指令指针的上下文信息和第一索引;根据上下文信息和第二索引建立分支栈对应的缺失表,第二索引为第一索引的上一个索引;在图形处理器每次执行到的分支栈的第二栈顶指令指针时,根据缺失表对第一指令指针对应的时间段内的缺失指令指针进行预取,缺失指令指针根据上下文信息得到,有效降低图形处理器中分支指令间由于局部性问题所造成的指令缓存缺失的情况,提高图形处理器的运行速度;依赖程序的全局上下文信息,更加明确可靠,有效降低了设计复杂度。低了设计复杂度。低了设计复杂度。

【技术实现步骤摘要】
图形处理器中基于线程分支信息的预取方法及系统


[0001]本申请涉及图形处理器指令预取
,具体涉及一种图形处理器中基于线程分支信息的预取方法及系统。

技术介绍

[0002]目前,图形处理器通常采用谓词的方式串行执行分支,通过使用掩码的方式来实现对于一个线程束中线程的选择性执行。示例性的,如图1所示,以一个4线程图形处理器单元为例,在A处开始分支为B和C,其中,两个线程应执行B分支,另外两个线程应执行C分支,图形处理器会串行地先执行B分支,然后执行C分支,通过各自的掩码来屏蔽不在当前分支下执行的线程,然后汇聚到D处,其中,A处的掩码为1111,B处的掩码为1010,C处的掩码为0101,D处的掩码为1111。上面这些信息通常会被存入到叫做分支栈(IPDOM)的堆栈之中,其结构如图2所示。包括:下一个指令指针(Next program counter,Next pc)、当前掩码和重汇聚指令指针(program counter,pc)。
[0003]分支栈向下增长,因此栈底部是目前最新压入的数据。当遇到分支指令时,会将当前执行的分支对应起始指令指针(pc)、当前掩码以及重汇聚指令指针(pc)压入,并在完成分支后弹出或是根据是否到达重汇聚点来更新数据。
[0004]现在的预取技术是通过计算和访存的重叠,在缓存可能会发生失效之前发出预取请求以便在该数据真正被使用到时己提前将数据块取入缓存,从而避免缓存失效造成的处理器停顿。图形处理器在遇到缓存未命中时会通过使用线程束调度器切换线程束的方法来掩盖缓存缺失所造成的流水线停顿,但对于单个任务而言,指令缓存未命中的问题仍然没有被很好的优化。由于需要执行所有分支方向,而对于某些方向的指令由于空间局部性较差,可能不在指令缓存中,因此有可能会导致缓存未命中,对于分支指令较多的时候,切换线程束的方法可能也无法完全掩盖延时,从而影响到处理器的性能。
[0005]因此,需要一种新的图形处理器进行指令缓存的技术方案。

技术实现思路

[0006]有鉴于此,本说明书实施例提供一种图形处理器中基于线程分支信息的预取方法及系统,解决了现有技术中由于指令的空间局部性较差引起的指令缓存未命中的技术问题。
[0007]本说明书实施例提供以下技术方案:
[0008]本说明书实施例提供一种图形处理器中基于线程分支信息的预取方法,包括:
[0009]步骤1:根据第一时刻的分支栈的第一栈顶指令指针和第一次栈顶指令指针,确定第一指令指针的上下文信息;
[0010]步骤2:对第一栈顶指令指针和第一次栈顶指令指针,做异或操作后进行哈希编码,得到第一指令指针对应的第一索引;
[0011]步骤3:根据上下文信息和第二索引建立分支栈对应的缺失表,第二索引为第一索
引的上一个索引,第二索引为对第二时刻的分支栈的第二栈顶指令指针和第二次栈顶指令指针做异或操作后进行哈希编码得到的,第二时刻为第一时刻的前一个时刻;
[0012]步骤4:在图形处理器每次执行到的分支栈的第二栈顶指令指针时,根据缺失表对第一指令指针对应的时间段内的缺失指令指针进行预取,缺失指令指针根据上下文信息得到。
[0013]优选地,步骤3,包括:
[0014]步骤301:根据上下文信息,确定第一指令指针是否存在指令缓存缺失;
[0015]步骤302:若是,则将指令缓存缺失对应的缺失指令指针存储在第二索引对应的存储单元中;
[0016]步骤303:若否,则继续执行下一个指令指针。
[0017]优选地,步骤4,包括:
[0018]步骤401:在图形处理器每次执行到第二栈顶指令指针时,根据缺失表和第二索引,判断第一指令指针对应的时间段内是否存在指令缓存缺失;
[0019]步骤402:若是,则根据指令缓存缺失对应的缺失指令指针对缺失数据进行预取,并记录预取命中情况;
[0020]步骤403:若否,则不需要进行指令预取。
[0021]优选地,一个存储单元中包括多个缺失指令指针。
[0022]优选地,在步骤402后,还包括:
[0023]步骤404:根据预取命中情况对存储单元中的缺失指令地指针进行更新。
[0024]优选地,存储单元采用环形先入先出栈结构。
[0025]优选地,预取命中情况包括:预取命中与预取未命中,步骤404,包括:
[0026]步骤4041:当预取未命中的次数大于预设阈值时,则将对应的缺失指令指针进行无效处理;
[0027]步骤4042:当预取未命中的次数小于或者等于预设阈值时,则不对缺失指令指针进行无效处理。
[0028]本说明书实施例还提供一种图形处理器中基于线程分支信息的预取系统,包括:
[0029]模块M1:根据第一时刻的分支栈的第一栈顶指令指针和第一次栈顶指令指针,确定第一指令指针的上下文信息;
[0030]模块M2:对第一栈顶指令指针和第一次栈顶指令指针,做异或操作后进行哈希编码,得到第一指令指针对应的第一索引;
[0031]模块M3:根据上下文信息和第二索引建立分支栈对应的缺失表,第二索引为第一索引的上一个索引,第二索引为对第二时刻的分支栈的第二栈顶指令指针和第二次栈顶指令指针做异或操作后进行哈希编码得到的,第二时刻为第一时刻的前一个时刻;
[0032]模块M4:在图形处理器每次执行到第二时刻的分支栈的第二栈顶指令指针时,根据缺失表对第一指令指针对应的时间段内的缺失指令指针进行预取,缺失指令指针根据上下文信息得到。
[0033]优选地,模块M3,包括:
[0034]子模块M301:根据上下文信息,确定第一指令指针是否存在指令缓存缺失;
[0035]子模块M302:若是,则将指令缓存缺失对应的缺失指令指针存储在第二索引对应
的存储单元中;
[0036]子模块M303:若否,则继续执行下一个指令指针。
[0037]优选地,模块M4,包括:
[0038]子模块M401:在图形处理器每次执行到第二栈顶指令指针时,根据缺失表和第二索引,判断第一指令指针对应的时间段内是否存在指令缓存缺失;
[0039]子模块M402:若是,则根据指令缓存缺失对应的缺失指令指针对缺失数据进行预取,并记录预取命中情况;
[0040]子模块M403:若否,则不需要进行指令预取。
[0041]与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:根据分支栈的第一栈顶指令指针和第一次栈顶指令指针,确定第一指令指针的上下文信息,第一指令指针为当前正在执行的分支指令,可以确定当前指令指针处于哪些分支代码块之间,从而获取目前所处的上下文位置信息,相对其他预取技术准确率更高,所依赖的信息是程序的全局上下文信息,更加明确可靠,有效降低了设计复杂度;根据上下文信息建立缺失表,通过缺失表在当前时刻的前一个时刻进行指令预取,可以有效降低图形处理器中分支指令间由于局部性问本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图形处理器中基于线程分支信息的预取方法,其特征在于,包括:步骤1:根据第一时刻的分支栈的第一栈顶指令指针和第一次栈顶指令指针,确定第一指令指针的上下文信息;步骤2:对所述第一栈顶指令指针和所述第一次栈顶指令指针,做异或操作后进行哈希编码,得到所述第一指令指针对应的第一索引;步骤3:根据所述上下文信息和第二索引建立所述分支栈对应的缺失表,所述第二索引为所述第一索引的上一个索引,所述第二索引为对第二时刻的分支栈的第二栈顶指令指针和第二次栈顶指令指针做异或操作后进行哈希编码得到的,所述第二时刻为所述第一时刻的前一个时刻;步骤4:在图形处理器每次执行到的分支栈的所述第二栈顶指令指针时,根据所述缺失表对所述第一指令指针对应的时间段内的缺失指令指针进行预取,所述缺失指令指针根据所述上下文信息得到。2.根据权利要求1所述的图形处理器中基于线程分支信息的预取方法,其特征在于,所述步骤3,包括:步骤301:根据所述上下文信息,确定所述第一指令指针是否存在指令缓存缺失;步骤302:若是,则将所述指令缓存缺失对应的缺失指令指针存储在所述第二索引对应的存储单元中;步骤303:若否,则继续执行下一个指令指针。3.根据权利要求2所述的图形处理器中基于线程分支信息的预取方法,其特征在于,所述步骤4,包括:步骤401:在图形处理器每次执行到所述第二栈顶指令指针时,根据所述缺失表和所述第二索引,判断第一指令指针对应的时间段内是否存在指令缓存缺失;步骤402:若是,则根据所述指令缓存缺失对应的所述缺失指令指针对缺失数据进行预取,并记录预取命中情况;步骤403:若否,则不需要进行指令预取。4.根据权利要求2所述的图形处理器中基于线程分支信息的预取方法,其特征在于,一个所述存储单元中包括多个所述缺失指令指针。5.根据权利要求3或4所述的图形处理器中基于线程分支信息的预取方法,其特征在于,在所述步骤402后,还包括:步骤404:根据所述预取命中情况对所述存储单元中的所述缺失指令地指针进行更新。6.根据权利要求4所述的图形处理器中基于线程分支信息的预取方法,其特征在于,所述存储单元采用环形先入先出...

【专利技术属性】
技术研发人员:李京洲杨轲翔于芳菲何虎
申请(专利权)人:上海清华国际创新中心
类型:发明
国别省市:

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

1