近内存计算加速器、双列直插式内存模块以及计算设备制造技术

技术编号:36920195 阅读:10 留言:0更新日期:2023-03-22 18:43
本申请提供了一种近内存计算加速器、双列直插式内存模块以及计算设备。本实施例的近内存计算加速器包括多个控制器以及计算模块。所述多个控制器用于并行获取多个内存块中的多个数据,其中,所述多个控制器中的一个控制器用于获取所述多个内存块中的一个内存块的数据。所述计算模块分别连接所述多个控制器,并用于对所述多个数据进行计算,其中,所述近内存计算加速器以及所述多个内存块位于同一块双列直插式内存模块DIMM上。上述近内存计算加速器在数据量较多或者数据的向量维度较多时都能够提升加速效果。都能够提升加速效果。都能够提升加速效果。

【技术实现步骤摘要】
近内存计算加速器、双列直插式内存模块以及计算设备


[0001]本申请涉及存储领域,尤其涉及一种近内存计算加速器、双列直插式内存模块以及计算设备。

技术介绍

[0002]存储层通常包括高速缓存(cache)、内存(DRAM memory)和非易失性存储器(NVM)。在传统计算机系统中,数据从非易失性存储器逐级加载到高速缓存中,然后由处理器(central processing unit,CPU)对其进行计算。由于数据需要从非易失性存储器逐级加载到高速缓存(cache)中,因此,CPU计算消耗数据的速度远高于内存读取数据的速度,严重制约着CPU发挥其应有的性能。
[0003]为了解决上述问题,现有技术提供了一种近内存计算加速系统,能够在内存附近设置具备计算能力的缓存芯片,由缓存芯片从内存取出数据,并对从内存取出数据进行计算,从而有效缩短数据从存取到计算的延迟。但是,现有的近内存计算加速系统只对向量维度较多的数据具有较好的加速作用,应用场景比较受限。

技术实现思路

[0004]为了解决上述问题,本申请提供了一种近内存计算加速器、双列直插式内存模块以及计算设备,能够在数据量较多或者数据的向量维度较多时都能提升加速效果。
[0005]第一方面,提供了一种近内存计算加速器,包括:
[0006]多个控制器,用于并行获取多个内存块中的多个数据,其中,所述多个控制器中的一个控制器用于获取所述多个内存块中的一个内存块的数据;
[0007]计算模块,分别连接所述多个控制器,用于对所述多个数据进行计算,其中,
[0008]所述近内存计算加速器以及所述多个内存块位于同一块双列直插式内存模块DIMM上。
[0009]上述方案中,近内存计算加速器中的计算模块通过多个控制器并发地从多个内存块获取多个数据,并对多个数据并行进行计算,因此,能够在数据量较多或者数据的向量维度较多时都能够提升加速效果。
[0010]在一些可能的设计中,所述计算包括:加法计算、乘法计算、除法计算、查找计算以及非线性计算中的至少一种。
[0011]上述方案中,近内存计算加速器的采用专有的指令集设计,指令集支持加法计算、乘法计算、除法计算、查找计算以及非线性计算等等计算,精简易用,无需复杂的解码设计,有利于减少芯片面积、功耗和成本。
[0012]在一些可能的设计中,所述加速器还包括指令解码器,所述指令解码器分别连接所述多个控制器,
[0013]所述指令解码器用于对通用处理器CPU发送的指令进行解码,得到解码结果,所述解码结果用于指示待进行计算的所述多个数据的地址以及计算类型;
[0014]所述多个控制器用于根据所述多个数据的地址并行从所述多个内存块中获取所述多个数据;
[0015]所述计算模块用于根据所述计算类型对所述多个数据执行相应的计算。
[0016]在一些可能的设计中,所述计算模块包括缓存单元,所述缓存单元用于缓存对所述多个数据进行计算得到的计算结果。
[0017]上述方案中,可以在缓存单元中缓存对所述多个数据进行计算得到的计算结果,在进行累加时,可以从缓存单元中读取计算结果继续进行累加,从而减少读取内存的次数,提高了数据处理的速度。
[0018]第二方面,提供了一种双列直插式内存模块DIMM,包括:
[0019]多个内存块,用于存储多个数据,其中,所述多个内存块中的一个内存块用于存储所述多个数据中的一个数据;
[0020]近内存计算加速器,分别连接所述多个内存块,用于从所述多个内存块中并行获取所述多个数据,对所述多个数据进行计算。
[0021]在一些可能的设计中,所述计算包括:加法计算、乘法计算、除法计算、查找计算以及非线性计算中的至少一种。
[0022]在一些可能的设计中,所述近内存计算加速器,包括:
[0023]多个控制器,用于并行获取多个内存块中的多个数据,其中,所述多个控制器中的一个控制器用于获取所述多个内存块中的一个内存块的数据;
[0024]计算模块,分别连接所述多个控制器,用于对所述多个数据进行计算。
[0025]在一些可能的设计中,所述近内存计算加速器还包括指令解码器,所述指令解码器分别连接所述多个控制器,
[0026]所述指令解码器用于对通用处理器CPU发送的指令进行解码,得到解码结果,所述解码结果用于指示待进行计算的所述多个数据的地址以及计算类型;
[0027]所述多个控制器用于根据所述多个数据的地址并行从所述多个内存块中获取所述多个数据;
[0028]所述计算模块用于根据所述计算类型对所述多个数据执行相应的计算。
[0029]在一些可能的设计中,所述计算模块包括缓存单元,所述缓存单元用于缓存对所述多个数据进行计算得到的计算结果。
[0030]第三方面,提供了一种计算设备,包括:
[0031]通用处理器CPU,用于发送近内存计算指令;
[0032]双列直插式内存模块DIMM,包括多个内存块以及近内存计算加速器,所述近内存计算加速器用于:
[0033]接收所述近内存计算指令,所述近内存计算指令用于指示待执行近内存计算的多个数据的地址以及计算类型;
[0034]根据所述多个数据的地址从所述多个内存块中并行获取所述多个数据;
[0035]根据所述计算类型对所述多个数据执行计算。
[0036]在一些可能的设计中,所述计算包括:加法计算、乘法计算、除法计算、查找计算以及非线性计算中的至少一种。
[0037]在一些可能的设计中,所述近内存计算加速器包括缓存单元,所述缓存单元用于
缓存对所述多个数据进行计算得到的计算结果。
[0038]在一些可能的设计中,所述多个内存块被配置为允许所述近内存计算加速器访问时,禁止所述CPU访问。
[0039]在一些可能的设计中,所述DIMM还包括与所述多个内存块均不相同的一个或者多个内存块,所述一个或者多个内存块被配置为允许所述CPU访问时,禁止所述近内存计算加速器访问。
[0040]在一些可能的设计中,所述DIMM被配置为允许所述近内存计算加速器访问所述多个内存块中的一个内存块时,所述CPU同步访问所述一个或者多个内存块。
[0041]在一些可能的设计中,所述近内存计算加速器满足以下条件中的一个或者多个;
[0042]所述近内存计算加速器访问所述多个内存块中的一个内存块的能耗低于所述CPU访问所述一个或者多个内存块的能耗。
[0043]第四方面,提供了一种近内存计算方法,所述方法包括:
[0044]接收近内存计算指令,所述近内存计算指令用于指示待执行近内存计算的多个数据的地址以及计算类型;
[0045]根据所述多个数据的地址从多个内存块中并行获取所述多个数据;
[0046]根据所述计算类型对所述多个数据执行近内存计算。
[0047]在一些可能的设计中,所述近内存计算包括:加法计算、乘法计算、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种近内存计算加速器,其特征在于,包括:多个控制器,用于并行获取多个内存块中的多个数据,其中,所述多个控制器中的一个控制器用于获取所述多个内存块中的一个内存块的数据;计算模块,分别连接所述多个控制器,用于对所述多个数据进行计算;其中,所述近内存计算加速器以及所述多个内存块位于同一块双列直插式内存模块DIMM上。2.根据权利要求1所述的加速器,其特征在于,所述计算包括:加法计算、乘法计算、除法计算、查找计算以及非线性计算中的至少一种。3.根据权利要求1或2所述的加速器,其特征在于,所述加速器还包括指令解码器,所述指令解码器分别连接所述多个控制器,所述指令解码器用于对通用处理器CPU发送的指令进行解码,得到解码结果,所述解码结果用于指示待进行计算的所述多个数据的地址以及计算类型;所述多个控制器用于根据所述多个数据的地址并行从所述多个内存块中获取所述多个数据;所述计算模块用于根据所述计算类型对所述多个数据执行相应的计算。4.根据权利要求1或2或3所述的加速器,其特征在于,所述计算模块包括缓存单元,所述缓存单元用于缓存所述多个数据。5.一种双列直插式内存模块DIMM,其特征在于,包括多个内存块以及如权利要求1

4任意一项所述的近内存计算加速器,其中:所述多个内存块,用于存储多个数据,其中,所述多个内存块中的一个内存块用于存储所述多个数据中的一个数据;所述近内存计算加速器,分别连接所述多个内存块,用于从所述多个内存块中并行获取所述多个数据,对所述多个数据进行计算。6.一种计算设备,其特征在于,包括:通用处理器CPU,用于发送近内存计算指令;双...

【专利技术属性】
技术研发人员:田腾鲁芳敏赵乐天王笑天吴巍金西
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:

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

1