System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及gpgpu领域,具体提供一种增强gpgpu中缓存标记位的方法及装置。
技术介绍
1、gpgpu(general-purpose computing on graphics processing units)指的是利用图形处理单元(gpu)来进行通用计算,而不仅仅是用于图形渲染。gpgpu利用gpu强大的并行计算能力处理非图形任务,显著提高了计算效率。
2、同时,gpgpu在科学计算、深度学习、图像处理、数据分析及诸多科学领域中,有着广阔的应用前景。gpgpu需要拥有能够及时可靠的处理大量数据的能力,缓存单元作为gpgpu中非常重要的一个环节,是数据暂存的重要载体,缓存单元因为其拥有最快的读写速度,但因单位面积容量小且单位面积的成本高的问题,在当代gpgpu设计中普遍容量不高,因此采用了分级的设计理念,按读写速度越来越慢,容量越来越大的逻辑,将整个缓存单元分成了l1 l2 l3等多级缓存。工艺制程进入纳米级以后,触发逻辑的电压需求减小了许多,虽然更有利于系统集成和电气一体化设计,但是更低的触发电压也意味着更容易受到电磁干扰。
3、而cache作为非常重要的数据暂存环节,如果受到电磁干扰导致数据出现错误,在并行计算量很大的gpgpu会有非常严重的影响。
4、因此,如何增强gpgpu中缓存单元的稳定性,进而提升整体gpgpu的工作水平是本领域技术人员亟待解决的问题。
技术实现思路
1、本专利技术是针对上述现有技术的不足,提供一种实用性强的
2、本专利技术进一步的技术任务是提供一种设计合理,安全适用的增强gpgpu中缓存标记位的装置。
3、本专利技术解决其技术问题所采用的技术方案是:
4、一种增强gpgpu中缓存标记位的方法,数据或指令以thread的形式进入缓存单元之后,首先需要thread根据对应的index寻找到相应的缓存位置,寻找到对应位置之后会将tag和data进行剥离,剥离完成之后分别进入各自的crc编码和矩阵存储进行存储;
5、数据分别走两条路线,一条路线为经过crc编码之后进入矩阵存储单元模块进行存储,当缓存单元收到指令的时候,会将矩阵存储单元的数据取出,进行crc解码,即crc生成然后进入比较模块进行比较,比较的内容即为第二条路线,直接将数据存入矩阵存储单元,在矩阵存储单元中,与crc编码之后的数据存放在同一块空间当中;
6、等待相关命令发出之后,两条线路的数据会同时进入比较单元比较,比较无误时才会将数据进行下一步操作,如果比较的时候出现问题,则会拉高error_end信号,从而使流水线暂停当前工作,去修复对应的error之后才可继续进行工作。
7、进一步的,所述crc编码中,运算过程的实现是输入与对应的位数做异或,然后多次并行例化这个过程,把上一轮计算的结果作为下一次计算的输入,其中,对于crc生成的多项式,需要提前指定格式。
8、进一步的,所述crc16中,g(x)=x^16+x^12+x^5+1,输入的数据若为1011001,则a(x)= = x^6 + x^4 + x^3 + 1,crc生成的时候会产生p(x)= a(x) * x^n / g(x) n ,g(x)n为g(x)中x的最高次幂,这个过程在crc校验模块中计算得出的,a(x)的生成是对应系数得出,不需要进行计算,然后生成新的结果f(x)= a(x) * x^n + p(x),所计算出的结果带入crc校验模块进行迭代,算是否存有余数,没有余数的话,则证明数据是无误的,再把数据部分拿出,与原有数据进行比较;
9、如果有错误,则会拉起对应的error信号。
10、进一步的,所述crc校验模块计算方式为:
11、生成多项式g(x)=x^16+x^12+x^5+1,为crc16的固定校验格式;
12、crc校验码生成过程为:
13、首先,将a(x)左移 r 位这里 r = 16 ,相当于 a(x)* x^16 ,这一步在多项式运算中是给a(x) 后面添加 16 个 0 对应的项,此时a(x)*x^16作为被除数,用a(x)*x^16除以g(x) ,即a(x)*x^16=q(x)*g(x)+p(x) ,其中q(x) 是商式,p(x) 是余式,且 p(x) 的次数小于 16,这里的除法是模2除法不借位的二进制除法,本质是异或运算,p(x)就是crc -16校验码;
14、生成新的多项式 f(x)= a(x)*x^16+p(x) ,将其发送出去,接收端接收到数据对应多项式f(x)后,用 f(x)除以g(x),若余数为 0,则认为数据在传输过程中没有出错,此时从f(x)中提取出数据部分对应 a(x),与原有发送的数据进行比较,所述原有发送数据对应a(x);
15、若余数不为0 ,则说明数据传输出现错误,会拉起对应的error信号。
16、进一步的,数据进入缓存单元时,以线程thread的形式进入的,线程束warp由诸多线程束thread组成,在gpgpu中,工作单元以sm为单位,一个sm核只能在一个时间同时处理一个线程束。
17、进一步的,所述缓存单元由标签+data组成,标签由tag+index组成,所述标签来索引对应的data, 其中index用于确定缓存行的具体位置,tag用于比对数据是否一致。
18、进一步的,第一次存入缓存行的时候tag随数据一同存储,当发生缓存行替换的操作时,需要替换的数据通过index索引到对应位置,二者tag进行比对,如果tag一致,则对数据进行修改或替换;
19、如果tag不一致,则会发生未命中的行为,cache会把当前的请求向更高的cache层级发出,直到tag匹配为止。
20、一种增强gpgpu中缓存标记位的装置,包括:至少一个存储器和至少一个处理器;
21、所述至少一个存储器,用于存储机器可读程序;
22、所述至少一个处理器,用于调用所述机器可读程序,执行一种增强gpgpu中缓存标记位的方法。
23、本专利技术的一种增强gpgpu中缓存标记位的方法及装置和现有技术相比,具有以下突出的有益效果:
24、本专利技术通过增强标记位的标记手段,来增强gpgpu中缓存单元的稳定性,进而提升整体gpgpu的工作水平。
本文档来自技高网...【技术保护点】
1.一种增强GPGPU中缓存标记位的方法,其特征在于,数据或指令以Thread的形式进入缓存单元之后,首先需要Thread根据对应的index寻找到相应的缓存位置,寻找到对应位置之后会将Tag和Data进行剥离,剥离完成之后分别进入各自的CRC编码和矩阵存储进行存储;
2.根据权利要求1所述的一种增强GPGPU中缓存标记位的方法,其特征在于,所述CRC编码中,运算过程的实现是输入与对应的位数做异或,然后多次并行例化这个过程,把上一轮计算的结果作为下一次计算的输入,其中,对于CRC生成的多项式,需要提前指定格式,采用CRC16。
3.根据权利要求2所述的一种增强GPGPU中缓存标记位的方法,其特征在于,所述CRC16中,g(x)=x^16+x^12+x^5+1,输入的数据若为1011001,则A(X)= = x^6 + x^4 + x^3 + 1,CRC生成的时候会产生p(x)= A(x) * x^n / g(x) n ,g(x) n为g(x)中x的最高次幂,这个过程在CRC校验模块中计算得出的,A(x)的生成是对应系数得出,不需要进行计算,然后生成新的结果
4.根据权利要求3所述的一种增强GPGPU中缓存标记位的方法,其特征在于,所述CRC校验模块计算方式为:
5.根据权利要求1或4所述的一种增强GPGPU中缓存标记位的方法,其特征在于,数据进入缓存单元时,以线程Thread的形式进入的,线程束warp由诸多线程束Thread组成,在GPGPU中,工作单元以SM为单位,一个SM核只能在一个时间同时处理一个线程束。
6.根据权利要求5所述的一种增强GPGPU中缓存标记位的方法,其特征在于,所述缓存单元由标签+Data组成,标签由Tag+index组成,所述标签来索引对应的Data, 其中index用于确定缓存行的具体位置,tag用于比对数据是否一致。
7.根据权利要求6所述的一种增强GPGPU中缓存标记位的方法,其特征在于,第一次存入缓存行的时候Tag随数据一同存储,当发生缓存行替换的操作时,需要替换的数据通过index索引到对应位置,二者tag进行比对,如果tag一致,则对数据进行修改或替换;
8.一种增强GPGPU中缓存标记位的装置,其特征在于,包括:至少一个存储器和至少一个处理器;
...【技术特征摘要】
1.一种增强gpgpu中缓存标记位的方法,其特征在于,数据或指令以thread的形式进入缓存单元之后,首先需要thread根据对应的index寻找到相应的缓存位置,寻找到对应位置之后会将tag和data进行剥离,剥离完成之后分别进入各自的crc编码和矩阵存储进行存储;
2.根据权利要求1所述的一种增强gpgpu中缓存标记位的方法,其特征在于,所述crc编码中,运算过程的实现是输入与对应的位数做异或,然后多次并行例化这个过程,把上一轮计算的结果作为下一次计算的输入,其中,对于crc生成的多项式,需要提前指定格式,采用crc16。
3.根据权利要求2所述的一种增强gpgpu中缓存标记位的方法,其特征在于,所述crc16中,g(x)=x^16+x^12+x^5+1,输入的数据若为1011001,则a(x)= = x^6 + x^4 + x^3 + 1,crc生成的时候会产生p(x)= a(x) * x^n / g(x) n ,g(x) n为g(x)中x的最高次幂,这个过程在crc校验模块中计算得出的,a(x)的生成是对应系数得出,不需要进行计算,然后生成新的结果f(x)= a(x) * x^n + p(x),所计算出的结果带入crc校验模块进行迭代,算是否...
【专利技术属性】
技术研发人员:李炳坤,魏朝飞,许桂龙,闫玉婕,
申请(专利权)人:山东浪潮科学研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。