当前位置: 首页 > 专利查询>清华大学专利>正文

动态可配置的存算融合数据缓存结构制造技术

技术编号:39765480 阅读:8 留言:0更新日期:2023-12-22 02:20
本申请涉及计算机体系结构技术领域,特别涉及一种动态可配置的存算融合数据缓存结构

【技术实现步骤摘要】
动态可配置的存算融合数据缓存结构、处理器及电子设备


[0001]本申请涉及计算机体系结构
,特别涉及一种动态可配置的存算融合数据缓存结构

处理器及电子设备


技术介绍

[0002]随着神经网络推理精度的不断提升,神经网络模型的参数量和计算量也急剧增长,对硬件平台的吞吐量

能耗和灵活性带来了巨大的挑战

通用处理器面临严重的“内存墙”问题:由于存储器设备的速度严重落后于处理器的计算速度,内存带宽成为整个系统的瓶颈;在多核并行计算的环境下,有限的内存带宽需要共享给多核使用,带来更大的延迟

[0003]相关技术中,可以使用一种多级缓存以缓解存储器的延迟瓶颈,也可以使用一种向量处理器面向向量型并行计算,还可以使用一种向量寄存器暂存指令

数据和地址

[0004]然而,相关技术中的向量处理器的计算电路和向量寄存器带来了大量的面积和能耗开销;多级缓存带来了额外的数据移动开销和一致性协议开销,从而增加了处理器的能耗和复杂性,严重影响了
DNN(Deep Neural Networks
,深度神经网络
)
推理的性能和能效


技术实现思路

[0005]本申请提供一种动态可配置的存算融合数据缓存结构

处理器及电子设备,以解决相关技术中通用处理器内存带宽小

系统延迟高

能耗开销大,使得深度神经网络推理性能较差等问题

[0006]本申请第一方面实施例提供一种动态可配置的存算融合数据缓存结构,包括以下步骤:转置模块,用于接收并存储输入的向量数据,并对所述向量数据的摆放方式进行转置,获得转置向量数据;缓存模块,用于缓存程序数据和执行存内计算,其中,当接收的数据为程序数据时,执行缓存操作;当接受的数据为所述转置向量数据时,执行存内计算操作,获得向量位计算结果;归约模块,用于将所述向量位计算结果归约成标量形式的计算结果;控制模块,用于根据收到的控制指令,控制所述转置模块

所述缓存模块和所述归约模块执行不同的操作

[0007]可选地,所述转置模块采用支持数据双向读写的
SRAM
存储阵列

[0008]可选地,所述转置模块接收并存储输入的向量数据时,将所述向量数据横向写入所述
SRAM
阵列中,所述向量数据的每个数据占据一行的多个单元,所述向量数据的向量的不同元素占据不同行;所述转置模块获得转置向量数据时,从所述
SRAM
单元阵列中纵向读出转置向量数据,读出的每列包含向量所有元素的一个比特,不同列对应向量所有元素的不同比特

[0009]可选地,所述缓存模块包括多个相同的存算融合阵列和缓存控制器,其中,每个存算融合阵列包括
SRAM
存储阵列和周边逻辑电路

[0010]可选地,所述缓存模块根据所述控制模块的控制信息动态配置所述存算融合阵列中缓存部分和执行单元部分的比例,其中,所述存算融合阵列的一部分作为程序数据的缓
存,所述存算融合阵列的另一部分作为存内计算的执行单元

[0011]可选地,所述存算融合阵列被配置为程序数据的缓存时,利用所述
SRAM
存储阵列作为程序数据的缓存,支持程序数据的读写功能;所述存算融合阵列被配置为存内计算执行单元时,利用所述
SRAM
存储阵列存储所述转置向量数据,在
SRAM
存储阵列中利用位线计算方法,在位线中完成按位的乘法计算,并在周边逻辑电路中,对所述按位的乘法计算结果进行计算,获得所述向量位计算结果

[0012]可选地,所述归约模块用于接收向量位计算结果,将所述向量位计算结果的所有元素归约成一个标量计算结果

[0013]可选地,所述控制模块数据处理方式包括缓存程序数据

执行向量逐元素计算和执行向量归约计算中的一种或多种

[0014]本申请第二方面实施例提供一种处理器,包括如上述实施例所述的动态可配置的存算融合数据缓存结构

[0015]本申请第三方面实施例提供一种电子设备,包括如上述实施例所述的动态可配置的存算融合数据缓存结构

[0016]由此,本申请至少具有如下有益效果:
[0017]本申请实施例可以基于
SRAM
的存算融合技术,根据收到的不同控制指令,将数据高速缓存重构为数据缓存或存内计算两种模式的可动态配置的存算融合数据缓存结构,完成缓存程序数据

执行向量逐元素计算

执行向量归约计算操作;由于数据无需从存储器移动到处理器的寄存器中就能执行计算,因此降低了数据移动带来的延迟和能耗开销;且存内计算的向量计算方案只需要在
SRAM
阵列周围添加少量的辅助电路,结构简单,降低了处理器的面积和功耗,实现神经网络推理的高性能和高能效

[0018]本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到

附图说明
[0019]本申请上述的和
/
或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0020]图1为根据本申请实施例提供的一种动态可配置的存算融合数据缓存结构的示意图;
[0021]图2为本申请实施例的动态可配置的存算融合数据缓存流程的示意图;
[0022]图3为本申请实施例的缓存模块
(
缓存模块
)
的结构示意图;
[0023]图4为本申请实施例的缓存程序数据的工作流程示意图;
[0024]图5为本申请实施例的存算融合阵列的结构示意图;
[0025]图6为本申请实施例的执行向量逐元素计算的工作流程示意图;
[0026]图7为本申请实施例的执行向量归约计算的工作流程示意图

具体实施方式
[0027]下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件

下面通过参考附
图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制

[0028]神经网络模型,如卷积神经网络

循环神经网络和
Transformer(
转换器模型
)
,已经被广泛地应用到现实场景中的各种复杂智能任务中,如自动驾驶和机器人领域

随着神经网络推理精度的不断提升,神经网络模型的参数量和计算量也急剧增长,对硬件平台的吞吐本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种动态可配置的存算融合数据缓存结构,其特征在于,包括:转置模块,用于接收并存储输入的向量数据,并对所述向量数据的摆放方式进行转置,获得转置向量数据;缓存模块,用于缓存程序数据和执行存内计算,其中,当接收的数据为程序数据时,执行缓存操作;当接受的数据为所述转置向量数据时,执行存内计算操作,获得向量位计算结果;归约模块,用于将所述向量位计算结果归约成标量形式的计算结果;控制模块,用于根据收到的控制指令,控制所述转置模块

所述缓存模块和所述归约模块执行不同的操作
。2.
根据权利要求1所述的动态可配置的存算融合数据缓存结构,其特征在于,所述转置模块采用支持数据双向读写的
SRAM
存储阵列
。3.
根据权利要求2所述的动态可配置的存算融合数据缓存结构,其特征在于,所述转置模块接收并存储输入的向量数据时,将所述向量数据横向写入所述
SRAM
阵列中,所述向量数据的每个数据占据一行的多个单元,所述向量数据的向量的不同元素占据不同行;所述转置模块获得转置向量数据时,从所述
SRAM
单元阵列中纵向读出转置向量数据,读出的每列包含向量所有元素的一个比特,不同列对应向量所有元素的不同比特
。4.
根据权利要求1所述的动态可配置的存算融合数据缓存结构,其特征在于,所述缓存模块包括多个相同的存算融合阵列和缓存控制器,其中,每个存算融合阵列包括
SRAM
存储阵列和周边逻辑电路
。5.
根据权...

【专利技术属性】
技术研发人员:李兆麟范仁昊
申请(专利权)人:清华大学
类型:发明
国别省市:

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

1