对GPU核内存储器执行写操作的数据压缩及处理方法与流程

文档序号:36641301发布日期:2024-01-06 23:26阅读:28来源:国知局
对GPU核内存储器执行写操作的数据压缩及处理方法与流程

本发明属于数据处理,更具体地,涉及一种对gpu核内存储器执行写操作的数据压缩及处理方法。


背景技术:

1、gpu(graphics processing unit,图形处理器)是一种并行计算处理器,其核内具有多个运算单元,每个运算单元都是相互独立的,因此在进行计算时,每个运算单元都会对核内存储器进行频繁的读写操作,从而实现不同运算单元的数据交互和同步。一般来说,gpu作为大型芯片,面积较大,运算单元访问核内存储器的路径很长,同时,gpu作为计算处理器,对计算的速度有着较高的要求,这就要求其工作在较高的频率下。考虑到实际物理的布局布线问题,运算单元访问核内存储器时要经过多级的寄存器,以满足电路对高频率时序的要求,因此,寄存器数量的减少对于整个芯片面积的控制就显得格外的重要。

2、芯片面积的减小有助于减少单个芯片的成本,提高市场竞争力。面对运算单元对核内存储器进行大量数据访问的情况,通常的做法是优化运算单元与存储器之间的位置关系,通过减少两者之间的寄存器级数达到减少寄存器的目的。但是,由于gpu的运算单元较多、访问的路径较长、且数据位宽较大,优化位置关系后,两者之间依旧存在着大量的寄存器,显著影响整体的芯片面积。


技术实现思路

1、针对现有技术的以上缺陷或改进需求,本发明提供了一种对gpu核内存储器执行写操作的数据压缩及处理方法,能够有效减小写操作中的信号位宽,减少寄存器的使用,在减小了芯片面积的同时给后端布局布线留出了更大的空间。

2、为实现上述目的,按照本发明的一个方面,提供了一种对gpu核内存储器执行写操作的数据压缩方法,包括:

3、将写操作的数据信号划分为多个数据段;

4、设置数据段有效信号dword_active,dword_active信号的一个比特数据对应一个数据段,用于标记对应的数据段中是否存在数据有效的字节;

5、设置数据段部分有效信号dword_partial,dword_partial信号的一个比特数据对应一个数据段,用于标记对应的数据段中是否为部分字节的数据有效;

6、对任一数据段,根据该数据段在dword_active信号中对应的一个比特的值以及在dword_partial信号中对应的一个比特的值,判断该数据段中数据的有效性;

7、根据判断结果,对该数据段执行数据压缩操作,得到最终压缩数据段,进而得到压缩后的数据信号;

8、将压缩后的数据信号、dword_active信号和dword_partial信号传输至核内存储器。

9、在一些实施方式中,根据判断结果,对该数据段执行数据压缩操作包括:在该数据段中所有字节的数据均有效时,将该数据段作为最终压缩数据段。

10、在一些实施方式中,根据判断结果,对该数据段执行数据压缩操作包括:在该数据段中所有字节的数据均无效时,将该数据段作为最终压缩数据段。

11、在一些实施方式中,根据判断结果,对该数据段执行数据压缩操作包括:

12、在该数据段中部分字节的数据有效时,利用该数据段中无效的字节空间对该数据段进行更新,使得更新后的数据段包含掩膜信号中与该数据段对应的数据以及原始数据段的有效数据,将更新后的数据段作为最终压缩数据段;其中,掩膜信号的一个比特数据对应数据信号的一个字节数据,用于标记数据信号的对应字节的数据是否有效。

13、在一些实施方式中,掩膜信号的一个比特为第一数值表示该比特在数据信号中对应的字节的数据无效,掩膜信号的一个比特为第二数值表示该比特在数据信号中对应的字节的数据有效。

14、在一些实施方式中,在该数据段中部分字节的数据有效时,利用该数据段中无效的字节空间对该数据段进行更新包括:

15、用掩膜信号中与该数据段对应的所有比特的数据替换掉该数据段的bytex中相同比特的数据,得到第一压缩数据段;

16、将第一压缩数据段作为最终压缩数据段;其中,bytex为一个或多个字节,且该数据段的bytex的数据全部无效。

17、在一些实施方式中,在该数据段中部分字节的数据有效时,利用该数据段中无效的字节空间对该数据段进行更新包括:

18、用掩膜信号中与该数据段对应的所有比特的数据替换掉该数据段的bytex中相同比特的数据,得到第一压缩数据段;

19、将该数据段的bytex中被替换掉的所有比特的数据写入第一压缩数据段中无效的bytey,替换掉无效的bytey中相同比特的数据,得到第二压缩数据段;

20、将第二压缩数据段作为最终压缩数据段;其中,bytex为一个或多个字节,且该数据段的bytex中至少部分字节的数据有效,bytey为一个或多个字节。

21、在一些实施方式中,dword_active信号的一个比特为第三数值表示该比特对应的数据段中有至少一个字节的数据有效,dword_active信号的一个比特为第四数值表示该比特对应的数据段中所有字节的数据均无效;

22、dword_partial信号的一个比特为第五数值表示该比特对应的数据段中所有字节的数据均有效;dword_partial信号的一个比特为第六数值表示该比特对应的数据段中有至少一个字节的数据无效。

23、在一些实施方式中,对任一数据段,根据该数据段在dword_active信号中对应的一个比特的值以及在dword_partial信号中对应的一个比特的值,判断该数据段中数据的有效性包括:

24、dword_active信号中与该数据段对应的一个比特为第三数值以及dword_partial信号中与该数据段对应的一个比特为第五数值时,判断该数据段中所有字节的数据均有效;

25、dword_active信号中与该数据段对应的一个比特为第四数值以及dword_partial信号中与该数据段对应的一个比特为第五数值或者第六数值时,判断该数据段中所有字节的数据均无效;

26、dword_active信号中与该数据段对应的一个比特为第三数值以及dword_partial信号中与该数据段对应的一个比特为第六数值时,判断该数据段中部分字节的数据有效。

27、根据本发明的另一方面,提供了一种对gpu核内存储器执行写操作的数据处理方法,包括数据压缩方法及数据解压方法;

28、数据压缩方法包括:

29、将写操作的数据信号划分为多个数据段;

30、设置数据段有效信号dword_active,dword_active信号的一个比特数据对应一个数据段,用于标记对应的数据段中是否存在数据有效的字节;

31、设置数据段部分有效信号dword_partial,dword_partial信号的一个比特数据对应一个数据段,用于标记对应的数据段中是否为部分字节的数据有效;

32、对任一数据段,根据该数据段在dword_active信号中对应的一个比特的值以及在dword_partial信号中对应的一个比特的值,判断该数据段中数据的有效性;

33、根据判断结果,对该数据段执行数据压缩操作,得到最终压缩数据段,进而得到压缩后的数据信号;

34、将压缩后的数据信号、dword_active信号和dword_partial信号传输至核内存储器;

35、数据解压方法包括:

36、根据原始数据段在dword_active信号中对应的一个比特的值以及在dword_partial信号中对应的一个比特的值,判断原始数据段中数据的有效性;

37、根据判断结果,得到掩膜信号中与原始数据段对应的数据以及解压的数据段,进而得到解压的数据信号及原始数据信号对应的掩膜信号;

38、其中,掩膜信号的一个比特数据对应原始数据信号的一个字节数据,用于标记原始数据信号的对应字节的数据是否有效。

39、在一些实施方式中,根据判断结果,对该数据段执行数据压缩操作包括:在该数据段中所有字节的数据均有效时,将该数据段作为最终压缩数据段;

40、根据判断结果,得到掩膜信号中与原始数据段对应的数据以及解压的数据段包括:在原始数据段中所有字节的数据均有效时,得到掩膜信号中与原始数据段对应的所有比特位均为第二数值,以及将最终压缩数据段作为解压的数据段。

41、在一些实施方式中,根据判断结果,对该数据段执行数据压缩操作包括:在该数据段中所有字节的数据均无效时,将该数据段作为最终压缩数据段;

42、根据判断结果,得到掩膜信号中与原始数据段对应的数据以及解压的数据段包括:在原始数据段中所有字节的数据均无效时,得到掩膜信号中与原始数据段对应的所有比特位均为第一数值,以及将最终压缩数据段作为解压的数据段。

43、在一些实施方式中,根据判断结果,对该数据段执行数据压缩操作包括:

44、在该数据段中部分字节的数据有效时,利用该数据段中无效的字节空间对该数据段进行更新,使得更新后的数据段包含掩膜信号中与该数据段对应的数据以及原始数据段的有效数据,将更新后的数据段作为最终压缩数据段;其中,掩膜信号的一个比特数据对应数据信号的一个字节数据,用于标记数据信号的对应字节的数据是否有效。

45、在一些实施方式中,在该数据段中部分字节的数据有效时,利用该数据段中无效的字节空间对该数据段进行更新包括:

46、用掩膜信号中与该数据段对应的所有比特的数据替换掉该数据段的bytex中相同比特的数据,得到第一压缩数据段;

47、将第一压缩数据段作为最终压缩数据段;

48、根据判断结果,得到掩膜信号中与原始数据段对应的数据以及解压的数据段包括:

49、在原始数据段中部分字节的数据有效时,将最终压缩数据段的bytex中相应位置的数据取出,得到掩膜信号中与原始数据段对应的所有比特位;

50、将最终压缩数据段作为解压的数据段;

51、其中,bytex为一个或多个字节,且原始数据段的bytex的数据全部无效。

52、在一些实施方式中,在该数据段中部分字节的数据有效时,利用该数据段中无效的字节空间对该数据段进行更新包括:

53、用掩膜信号中与该数据段对应的所有比特的数据替换掉该数据段的bytex中相同比特的数据,得到第一压缩数据段;

54、将该数据段的bytex中被替换掉的所有比特的数据写入第一压缩数据段中无效的bytey,替换掉无效的bytey中相同比特的数据,得到第二压缩数据段;

55、将第二压缩数据段作为最终压缩数据段;

56、根据判断结果,得到掩膜信号中与原始数据段对应的数据以及解压的数据段包括:

57、在原始数据段中部分字节的数据有效时,将最终压缩数据段的bytex中相应位置的数据取出,得到掩膜信号中与原始数据段对应的所有比特位;

58、将最终压缩数据段的bytey中相应位置的数据取出,替换最终压缩数据段的bytex中相应位置的数据,得到解压的数据段;

59、其中,bytex为一个或多个字节,且原始数据段的bytex中至少部分字节的数据有效,bytey为一个或多个字节。

60、总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:在对核内存储器进行写操作的数据(data)信号和掩膜(mask)信号的基础上,进一步引入数据段有效信号dword_active和数据段部分有效信号dword_partial,对核内存储器的写操作路径上的data信号和mask信号进行压缩,使得写操作中需要传输的数据总位宽减少,进而减少运算单元访问核内存储器时寄存器的使用,核内存储器在收到压缩的数据后,只需要采用相应的算法进行解压即可获得有效的data信号和mask信号。本发明一方面减小了芯片面积,另一方面减少了实际物理连线,给布局布线留出了更大的空间,有利于后端的布局布线。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1