保障数据一致性的指令执行方法及图形处理器、介质技术

技术编号:37424735 阅读:13 留言:0更新日期:2023-04-30 09:46
一种保障数据一致性的指令执行方法及图形处理器、介质,所述方法包括:接收数据处理指令;获取所述数据处理指令对应的第一源通用寄存器和/或第一目的通用寄存器;若检测到存在正在运行的内存访问指令,且所述内存访问指令与所述数据处理指令存在数据竞争风险,等待所述内存访问指令执行完成;所述内存访问指令与所述数据处理指令存在数据竞争风险包括如下任一情形:所述内存访问指令对应的第二目的通用寄存器与所述第一源通用寄存器存在交集;所述内存访问指令对应的第二源通用寄存器与所述第一目的通用寄存器存在交集;在所述内存访问指令执行完成后,执行所述数据处理指令。采用上述方案,能够有效解决数据竞争风险,避免指令执行出现错误。指令执行出现错误。指令执行出现错误。

【技术实现步骤摘要】
保障数据一致性的指令执行方法及图形处理器、介质


[0001]本专利技术涉及图形处理器
,尤其涉及一种保障数据一致性的指令执行方法及图形处理器、介质。

技术介绍

[0002]图形处理器(Graphics Processing Unit,GPU)在进行图形渲染等处理时,需要调用内存(memory)数据,将memory数据载入到GPU的调度执行核心。后续的执行指令可以针对载入的memory数据进行特定的运算。
[0003]GPU的硬件执行memory访问指令的延迟(latency)是不固定的,而调度执行核心内的算术逻辑单元(Arithmetic&Logic Unit,ALU)指令的延迟固定。若某一执行尚未执行完成,但后续指令确过早执行,则会导致后续指令未能够使用正确的memory数据,导致执行错误。
[0004]例如,memory访问指令对应的数据写入与ALU指令对应的数据读出之间存在依赖关系,存在写后读(Read After Write data hazard,RAW)数据竞争风险。又如,memory访问指令上存放坐标或地址的通用寄存器(General Purpose Register file,GPR)在被后续指令用做写入数据的目的通用寄存器时,存在读后写(Write After Read data hazard,WAR)数据竞争风险。上述的RAW数据竞争风险与WAR数据竞争风险可以统称为数据竞争风险。

技术实现思路

[0005]本专利技术实施例解决的是无法解决数据竞争风险,导致指令执行错误的技术问题。
[0006]为解决上述技术问题,本专利技术实施例提供一种保障数据一致性的指令执行方法,包括:接收数据处理指令;获取所述数据处理指令对应的第一源通用寄存器和/或第一目的通用寄存器;若检测到存在正在运行的内存访问指令,且所述内存访问指令与所述数据处理指令存在数据竞争风险,等待所述内存访问指令执行完成;所述内存访问指令 与所述数据处理指令存在数据竞争风险包括如下任一情形:所述内存访问指令对应的第二目的通用寄存器与所述第一源通用寄存器存在交集;所述内存访问指令对应的第二源通用寄存器与所述第一目的通用寄存器存在交集;在所述内存访问指令执行完成后,执行所述数据处理指令。
[0007]可选的,检测所述内存访问指令与所述数据处理指令存在数据竞争风险,包括:从第一数据竞争状态表中,获取所述第二源通用寄存器对应比特域的取值,以及所述第二目的通用寄存器对应比特域的取值;若所述第二源通用寄存器对应比特域的取值为第一值,且所述第二源通用寄存器与所述第一目的通用寄存器存在交集,则确定检测到存在所述数据竞争风险;若所述第二源通用寄存器对应比特域的取值为第二值,或所述第二源通用寄存器与所述第一目的通用寄存器不存在交集,则确定未检测到所述数据竞争风险;若所述第二目的通用寄存器对应比特域的取值为第一值,且所述第二目的通用寄存器与所述第一源通用寄存器存在交集,则确定检测到存在所述数据竞争风险;若所述第二目的通用寄存
器对应比特域的取值为第二值,或所述第二目的通用寄存器与所述第一源通用寄存器不存在交集,则确定未检测到所述数据竞争风险;其中,所述第一数据竞争状态表中,任一通用寄存器对应比特域的取值为第一值时,表征所述通用寄存器处于被使用状态;任一通用寄存器对应比特域的取值为第二值时,表征所述通用寄存器处于未被使用状态;所述第一值不等于所述第二值。
[0008]可选的,所述在所述内存访问指令执行完成后,执行所述数据处理指令,包括:在所述内存访问指令执行完成后,对所述第一数据竞争状态表进行更新,将所述第二目的通用寄存器对应比特域的取值置为第二值,以及,将所述第二源通用寄存器对应比特域的取值置为第二值。
[0009]可选的,所述数据处理指令对应写操作,检测所述内存访问指令与所述数据处理指令存在数据竞争风险,包括:从第二数据竞争状态表中,获取所述第二源通用寄存器对应比特域的取值;若所述第二源通用寄存器对应比特域的取值为第一值,且所述第二源通用寄存器与所述第一目的通用寄存器存在交集,则确定检测到存在所述数据竞争风险;若所述第二源通用寄存器对应比特域的取值为第二值,或所述第二源通用寄存器与所述第一目的通用寄存器不存在交集,则确定未检测到所述数据竞争风险;所述第二数据竞争状态表中,任一通用寄存器对应比特域的取值为第一值时,表征所述通用寄存器处于被使用状态;任一通用寄存器对应比特域的取值为第二值时,表征所述通用寄存器处于未被使用状态;所述第一值不等于所述第二值。
[0010]可选的,所述在所述内存访问指令执行完成后,执行所述数据处理指令,包括:在所述内存访问指令执行完成后,对所述第二数据竞争状态表进行更新,将所述第二源通用寄存器对应比特域的取值置为第二值。
[0011]可选的,所述数据处理指令对应读操作,检测所述内存访问指令与所述数据处理指令存在数据竞争风险,包括:从第三数据竞争状态表中,获取所述第二目的通用寄存器对应比特域的取值;若所述第二目的通用寄存器对应比特域的取值为第一值,且所述第二目的通用寄存器与所述第一目的通用寄存器存在交集,则确定检测到存在所述数据竞争风险;若所述第二目的通用寄存器对应比特域的取值为第二值,或所述第二目的通用寄存器与所述第一目的通用寄存器不存在交集,则确定未检测到所述数据竞争风险;所述第三数据竞争状态表中,任一通用寄存器对应比特域的取值为第一值时,表征所述通用寄存器处于被使用状态;任一通用寄存器对应比特域的取值为第人值时,表征所述通用寄存器处于未被使用状态;所述第一值不等于所述第二值。
[0012]可选的,所述在所述内存访问指令执行完成后,执行所述数据处理指令,包括:在所述内存访问指令执行完成后,对所述第三数据竞争状态表进行更新,将所述第二目的通用寄存器对应比特域的取值置为第二值。
[0013]可选的,所述指令执行方法还包括:若检测到存在正在运行的内存访问指令,且所述内存访问指令与所述数据处理指令不存在所述数据竞争风险时,执行所述数据处理指令。
[0014]本专利技术实施例还提供了一种图形处理器,包括:调度执行核心、内存访问控制器以及通用寄存器,其中:所述内存访问控制器,用于接收内存访问指令;所述调度执行核心,用于将所述内存访问指令转发至所述内存访问控制器;以及,接收数据处理指令,获取所述数
据处理指令对应的第一源通用寄存器和/或第一目的通用寄存器;若检测到存在正在运行的内存访问指令,且所述内存访问指令与所述数据处理指令存在数据竞争风险,等待所述内存访问指令执行完成;所述内存访问指令与所述数据处理指令存在数据竞争风险包括如下任一情形:所述内存访问指令对应的第二目的通用寄存器与所述第一源通用寄存器存在交集;所述内存访问指令对应的第二源通用寄存器与所述第一目的通用寄存器存在交集;在所述内存访问指令执行完成后,执行所述数据处理指令。
[0015]可选的,所述调度执行核心,用于从第一数据竞争状态表中,获取所述第二源通用寄存器对应比特域的取值,以及所述第二本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种保障数据一致性的指令执行方法,其特征在于,包括:接收数据处理指令;获取所述数据处理指令对应的第一源通用寄存器和/或第一目的通用寄存器;若检测到存在正在运行的内存访问指令,且所述内存访问指令与所述数据处理指令存在数据竞争风险,等待所述内存访问指令执行完成;所述内存访问指令与所述数据处理指令存在数据竞争风险包括如下任一情形:所述内存访问指令对应的第二目的通用寄存器与所述第一源通用寄存器存在交集;所述内存访问指令对应的第二源通用寄存器与所述第一目的通用寄存器存在交集;在所述内存访问指令执行完成后,执行所述数据处理指令。2.如权利要求1所述的保障数据一致性的指令执行方法,其特征在于,检测所述内存访问指令与所述数据处理指令存在数据竞争风险,包括:从第一数据竞争状态表中,获取所述第二源通用寄存器对应比特域的取值,以及所述第二目的通用寄存器对应比特域的取值;若所述第二源通用寄存器对应比特域的取值为第一值,且所述第二源通用寄存器与所述第一目的通用寄存器存在交集,则确定检测到存在所述数据竞争风险;若所述第二源通用寄存器对应比特域的取值为第二值,或所述第二源通用寄存器与所述第一目的通用寄存器不存在交集,则确定未检测到所述数据竞争风险;若所述第二目的通用寄存器对应比特域的取值为第一值,且所述第二目的通用寄存器与所述第一源通用寄存器存在交集,则确定检测到存在所述数据竞争风险;若所述第二目的通用寄存器对应比特域的取值为第二值,或所述第二目的通用寄存器与所述第一源通用寄存器不存在交集,则确定未检测到所述数据竞争风险;其中,所述第一数据竞争状态表中,任一通用寄存器对应比特域的取值为第一值时,表征所述通用寄存器处于被使用状态;任一通用寄存器对应比特域的取值为第二值时,表征所述通用寄存器处于未被使用状态;所述第一值不等于所述第二值。3.如权利要求2所述的保障数据一致性的指令执行方法,其特征在于,所述在所述内存访问指令执行完成后,执行所述数据处理指令,包括:在所述内存访问指令执行完成后,对所述第一数据竞争状态表进行更新,将所述第二目的通用寄存器对应比特域的取值置为第二值,以及,将所述第二源通用寄存器对应比特域的取值置为第二值。4.如权利要求1所述的保障数据一致性的指令执行方法,其特征在于,所述数据处理指令对应写操作,检测所述内存访问指令与所述数据处理指令存在数据竞争风险,包括:从第二数据竞争状态表中,获取所述第二源通用寄存器对应比特域的取值;若所述第二源通用寄存器对应比特域的取值为第一值,且所述第二源通用寄存器与所述第一目的通用寄存器存在交集,则确定检测到存在所述数据竞争风险;若所述第二源通用寄存器对应比特域的取值为第二值,或所述第二源通用寄存器与所述第一目的通用寄存器不存在交集,则确定未检测到所述数据竞争风险;所述第二数据竞争状态表中,任一通用寄存器对应比特域的取值为第一值时,表征所述通...

【专利技术属性】
技术研发人员:阙恒朱康挺王斐周义满
申请(专利权)人:砺算科技上海有限公司
类型:发明
国别省市:

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

1