CN113157638B - 一种低功耗存储器内计算处理器和处理运算方法 - Google Patents
一种低功耗存储器内计算处理器和处理运算方法 Download PDFInfo
- Publication number
- CN113157638B CN113157638B CN202110558071.3A CN202110558071A CN113157638B CN 113157638 B CN113157638 B CN 113157638B CN 202110558071 A CN202110558071 A CN 202110558071A CN 113157638 B CN113157638 B CN 113157638B
- Authority
- CN
- China
- Prior art keywords
- instruction
- vector
- memory
- register
- neural network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种低功耗存储器内计算处理器。输入接口分别和指令寄存器、第一寄存器组连接,指令寄存器和指令译码器连接,指令译码器分别和输入输出接口、第一寄存器组和向量处理单元连接,输出接口和第一寄存器组连接,输出接口作为处理器的输出;向量处理单元中,指令译码器分别和存储器内计算核、向量加法器和除法器连接,第一寄存器组均分别连接到存储器内计算核、向量加法器和除法器。本发明的低功耗存算处理器和处理运算方法,该处理器具有专用指令集,可以灵活运行多种神经网络算法;处理器包含基于存储器内计算技术的向量处理单元,计算能效比高,可以实现低功耗的语音关键词识别等功能。
Description
技术领域
本发明涉及存储器内计算技术和软硬件协同设计技术的一种用于神经网络运算的处理器架构,具体是涉及了一种低功耗存储器内计算处理器。
背景技术
传统冯诺依曼架构的处理器中,存储器与计算单元分离,完成计算需要从存储器读取数据,送入计算单元执行计算,最终把结果写回存储器,其中存储器访问操作消耗了大部分能量。存储器内计算技术中,存储器除原有的存储功能外,嵌入了计算功能,从而大大减少了存储器访问的次数,降低了数据搬移的功耗。并且存储器内计算采用模拟电路执行计算,与传统由数字电路实现的计算单元相比,计算功耗更低。网络映射技术通过设计数据流,规定了神经网络算法中循环嵌套的顺序和并行度展开情况,使得硬件可以高效地执行神经网络算法。目前主流的数据流包括行固定数据流,输入固定数据流,输出固定数据流等。存储器内计算技术中,由于权重存储在存储器中,因此具有权重固定的特性。高效的数据流可以充分利用数据重用和硬件的并行度,提高硬件性能。网络映射技术同时也规定了网络参数与存储器内计算核指定位置的对应关系。虽然存储器内计算技术在能效比等方面取得了突破性优势,但是目前基于存储器内计算技术的处理器大多为专用处理器,功能单一。如何高效地把神经网络算法映射到处理器上,利用存储器内计算技术灵活地完成不同算法的执行还是一个挑战。
发明内容
为了解决背景技术中存在的问题,本发明旨在利用存储器内计算低功耗、高能效比的优势,设计低功耗存算处理器。
如图1所示,本发明所采用的技术方案是:
一、一种低功耗存储器内计算处理器:
处理器包括输出接口、输入接口、指令寄存器、指令译码器、第一寄存器组和向量处理单元;输入接口分别和指令寄存器、第一寄存器组连接,指令寄存器和指令译码器连接,指令译码器分别和输入接口、输出接口、第一寄存器组和向量处理单元连接,输出接口和第一寄存器组连接,输出接口作为处理器的输出;
所述的向量处理单元包括存储器内计算核、向量加法器和除法器,指令译码器均分别和存储器内计算核、向量加法器和除法器连接,第一寄存器组均分别连接到存储器内计算核、向量加法器和除法器,用于存储输入向量,存储器内计算核、向量加法器或者除法器处理获得的神经网络运算中间结果向量以及处理最终结果向量。
本发明所述的处理器针对神经网络算法进行运算处理,神经网络算法的数据输入到本发明的处理器架构中进行运算后获得神经网络算法的运算结果。
所述的输入接口,接收处理器外部发过来的输入向量;
所述的指令寄存器存放网络编译后的指令;
所述的指令译码器每个周期从指令寄存器中循环读取指令,对指令进行译码后输出控制信号到输入接口、输出接口、第一寄存器组和向量处理单元;
所述的第一寄存器组,接收指令译码器发过来的控制信号,作为处理器的片上存储,同时接收输入接口发过来的输入向量进行存储,向向量处理单元的存储器内计算核、向量加法器或者除法器发送输入向量或者神经网络运算中间结果向量,从向量处理单元的存储器内计算核、向量加法器或者除法器接收神经网络运算中间结果向量或者处理最终结果向量,向输出接口发送处理最终结果;
所述的输出接口,接收第一寄存器组发过来的处理最终结果进而输出到外部。
神经网络算法具有重复执行的特性,编译生成的指令具有周期性。所述的指令寄存器中只需保存一个周期长度的指令。
输入向量为输入到神经网络要处理的数据。
所述的存储器内计算核,包括第二寄存器组、第一多路选通器MUX1、第二多路选通器MUX2、第三多路选通器MUX3、存储器内计算阵列和计算读取电路;第二寄存器组主要有多个寄存器reg构成,每个寄存器reg经各自的一个第一多路选通器MUX1、一个第二多路选通器MUX2后连接到存储器内计算阵列,存储器内计算阵列经第三多路选通器MUX3和计算读取电路连接;
第二寄存器组,其中每个寄存器reg存储从第一寄存器组发送过来的输入向量或者神经网络运算中间结果向量划分后的多位数据,第二寄存器组中存储的全部向量构成参与向量矩阵乘法的向量;
第一多路选通器MUX1,从寄存器reg的多位数据中遍历选择其中一位数据并输入到第二多路选通器MUX2;
第二多路选通器MUX2,将从第一多路选通器MUX1接收到的一位数据的数字电平转换为模拟电平;
存储器内计算阵列,划分为多个存算块,神经网络的总参数矩阵参数存储在存储器内计算阵列中,各个第二多路选通器MUX2输出的结果输入到存储器内计算阵列并和其中的一存算块作用;
通过第三多路选通器MUX3选通存储器内计算阵列中的一存算块和各个第二多路选通器MUX2输出的结果进行作用并转换为电流形式结果,然后输出到计算读取电路;
计算读取电路,接收第三多路选通器MUX3发送过来的电流形式结果后进行积分运算,并把积分运算结果以数字信号的形式输出,结果即向量矩阵乘法的最终结果,通过控制积分时间实现不同量化因子的量化。
各个第一多路选通器MUX1的控制端和指令译码器输出的控制信号Baddr连接,指令译码器输出的控制信号Baddr对第一多路选通器MUX1的选通进行控制。
第三多路选通器MUX3的控制端和指令译码器输出的控制信号sel连接,指令译码器输出的控制信号sel对第三多路选通器MUX3的选通进行控制。
所述的向量加法器和除法器由数字电路实现,向量加法器支持向量的加法、减法操作,除法器支持向量与常数的除法操作。
所述的指令译码器运行指令,指令包含4级流水线,4级流水线沿时间延迟一个阶段依次设置,每级流水线均分为:取指阶段IF、译码阶段ID/读取阶段RD、执行阶段EX、写回阶段WR;
取指阶段IF:根据指令计数器,从指令寄存器中读取对应的指令,送入指令译码器中;
译码阶段ID/读取阶段RD:指令译码器根据指令集对指令进行解码,得到输入接口、输出接口、第一寄存器组、存储器内计算核、向量加法器或者除法器的控制信号;若指令中包含读第一寄存器组操作,则发出读请求信号和读地址信号。
执行阶段EX:进行向量矩阵乘法、向量加/减法和向量常数除法的三种操作类型,在向量处理单元中完成,由译码阶段得到的控制信号决定执行哪一种操作。
写回阶段WR:把指令执行阶段的结果写回到第一寄存器组或第二寄存器组中,即发出写请求信号和写地址信号。
二、一种神经网络处理运算方法:
S01:输入神经网络的模型,包括神经网络各个层的结构以及网络各层尺寸;
S02:对神经网络进行优化、映射;
优化是在保证神经网络运算处理准确度的前提下;
映射是完成数据流的构建,并完成神经网络中的各层参数到存储器内计算阵列中指定位置的排列设计,最终结果形成总参数矩阵,总参数矩阵包括了各层的参数矩阵;
S03:神经网络算法编译,根据专用指令集,由编译脚本把神经网络算法编译为指令,保存到指令寄存器中;
S04:指令、参数载入处理器:把S02得到的总参数矩阵以及S03中得到的指令从输入接口载入处理器,其中指令存储在指令寄存器中,总参数矩阵在经过擦除、读取和写入的三个阶段后最终以阻值的形式存储在存储器内计算阵列中;
S05:处理器正常工作。
所述S02的优化中,若神经网络存在残差层,则在量化过程中调整第二卷积层和第三卷积层的量化因子相同。
所述的残差层包含三个卷积层,第一卷积层和第二卷积层依次连接,残差层的输入经第一卷积层和第二卷积层依次处理,同时残差层的输入经第三卷积层处理,第二卷积层和第三卷积层的输出经元素级相加处理后输出并作为残差层的输出。
本发明基于存储器内计算技术,设计了一种低功耗存算处理器,使用存储器内计算核、向量加法器和除法器组成向量算术处理单元,在内置存储器内计算核的基础上设计构建了完整的处理器。
本发明的片上存储器全部使用寄存器组实现。
本发明还设计了专用指令集,指令采用四级流水线,包括取指、译码/读取、执行、写回的四个阶段,可以实现矩阵向量乘法、向量加法、向量常数除法和激活等基本操作。
本发明支持卷积网络、全连接网络、残差网络等多种神经网络结构。
本发明的处理器通过使用power gating、clock gating和低电压供电等低功耗技术,具有低功耗休眠模式,可以结合使用场景,在休眠模式和正常工作模式之间灵活切换。
本发明能够利用存储器内计算低功耗、高能效比的优势,设计低功耗存算处理器。
本发明的有益效果是:
本发明的低功耗存算处理器和处理运算方法,该处理器具有专用指令集,可以灵活运行多种神经网络算法;处理器包含基于存储器内计算技术的向量处理单元,计算能效比高,可以实现低功耗的语音关键词识别等功能。
附图说明
图1是低功耗存算处理器工作流程图;
图2是低功耗存算处理器整体架构图;
图3是存储器内计算核结构图;
图4是指令流水线图;
图5是网络映射图;
图6是残差层结构图
图7是TC-resnet8网络映射图;
图8是TC-resnet8编译执行图。
具体实施方式
下面结合附图和具体实施对本发明作进一步说明。
如图2所示,具体结构包括输出接口、输入接口、指令寄存器、指令译码器、第一寄存器组和向量处理单元;输入接口作为处理器的输入,输入接口分别和指令寄存器、第一寄存器组连接,指令寄存器和指令译码器连接,指令译码器分别和输入接口、输出接口、第一寄存器组和向量处理单元连接,输出接口和第一寄存器组连接,输出接口作为处理器的输出;
向量处理单元包括存储器内计算核、向量加法器和除法器,指令译码器均分别和存储器内计算核、向量加法器和除法器连接,第一寄存器组均分别连接到存储器内计算核、向量加法器和除法器,用于存储输入向量,存储器内计算核、向量加法器或者除法器处理获得的神经网络运算中间结果向量以及处理最终结果向量。
输入接口,接收处理器外部发过来的输入向量;
指令寄存器存放S03步骤中网络编译后的指令;
神经网络算法具有重复执行的特性,编译生成的指令具有周期性。指令寄存器中只需保存一个周期长度的指令。
指令译码器每个周期从指令寄存器中循环读取指令,对指令进行译码后输出控制信号到输入接口、输出接口、第一寄存器组和向量处理单元;
第一寄存器组,接收指令译码器发过来的控制信号,作为处理器的片上存储,同时接收输入接口发过来的输入向量进行存储,向向量处理单元的存储器内计算核、向量加法器或者除法器发送输入向量或者神经网络运算中间结果向量,从向量处理单元的存储器内计算核、向量加法器或者除法器接收神经网络运算中间结果向量或者处理最终结果向量,向输出接口发送处理最终结果;
输出接口,接收第一寄存器组发过来的处理最终结果进而输出到外部。
如图3所示,存储器内计算核完成向量矩阵乘法形式的计算,存储器内计算核,包括第二寄存器组、第一多路选通器MUX1、第二多路选通器MUX2、第三多路选通器MUX3、存储器内计算阵列和计算读取电路;第二寄存器组主要有多个寄存器reg构成,每个寄存器reg经各自的一个第一多路选通器MUX1、一个第二多路选通器MUX2后连接到存储器内计算阵列,存储器内计算阵列经第三多路选通器MUX3和计算读取电路连接;
第二寄存器组,其中每个寄存器reg存储从第一寄存器组发送过来的输入向量或者神经网络运算中间结果向量划分后的多位数据,对应神经网络的特征图,第二寄存器组中存储的全部向量构成参与向量矩阵乘法的向量;
第一多路选通器MUX1实现位选择,从寄存器reg的多位数据中遍历选择其中一位数据并输入到第二多路选通器MUX2,实现输入向量的串行输入;
第二多路选通器MUX2,将从第一多路选通器MUX1接收到的一位数据的数字电平转换为模拟电平;
存储器内计算阵列,划分为多个存算块,神经网络的总参数矩阵参数存储在存储器内计算阵列中,各个第二多路选通器MUX2输出的结果输入到存储器内计算阵列并和其中的一存算块运算作用;
存储器内计算阵列的存储器类型可以为Flash、SRAM、RRAM、PCRAM等,规格为p×q,即p根字线,q根位线。
通过第三多路选通器MUX3选通存储器内计算阵列中的一存算块和各个第二多路选通器MUX2输出的结果进行作用并转换为电流形式结果,然后输出到计算读取电路;
计算读取电路,接收第三多路选通器MUX3发送过来的电流形式结果后进行积分运算,并把积分运算结果以数字信号的形式输出,结果即向量矩阵乘法的最终结果,通过控制积分时间实现不同量化因子的量化。
各个第一多路选通器MUX1的控制端和指令译码器输出的控制信号Baddr连接,指令译码器输出的控制信号Baddr对第一多路选通器MUX1的选通进行控制。
第三多路选通器MUX3的控制端和指令译码器输出的控制信号sel连接,指令译码器输出的控制信号sel对第三多路选通器MUX3的选通进行控制。
本发明中的存储器内计算阵列划分为多个存算块,一个存算块可以容纳a×b大小的参数矩阵,即最大可以支持1×a大小的向量与a×b大小的矩阵进行乘法。由于整个存储器内计算阵列共用第二寄存器组,如图3所示,同一时间只有一个存算块处于工作状态,其它存算块处于低功耗的休眠状态。通过第三多路选通器MUX3的选择信号决定当前工作的存算块。每个存算块支持a×b个权重,即最大可以支持1×a大小的向量与a×b大小的矩阵进行乘法。
如图4所示,指令译码器运行指令,指令包含4级流水线,4级流水线沿时间延迟一个阶段依次设置,每级流水线均分为:取指阶段IF、译码阶段ID/读取阶段RD、执行阶段EX、写回阶段WR;
取指阶段IF:根据指令计数器,从指令寄存器中读取对应的指令,送入指令译码器中;
译码阶段ID/读取阶段RD:指令译码器根据指令集对指令进行解码,得到输入接口、输出接口、第一寄存器组、存储器内计算核、向量加法器或者除法器的控制信号;若指令中包含读第一寄存器组操作,则发出读请求信号和读地址信号。
执行阶段EX:进行向量矩阵乘法、向量加/减法和向量常数除法的三种操作类型,在向量处理单元中完成,由译码阶段得到的控制信号决定执行哪一种操作。
写回阶段WR:把指令执行阶段的结果写回到第一寄存器组或第二寄存器组中,即发出写请求信号和写地址信号。
上述使用多级流水线处理,流水线每级执行时间需要相同,向量除法操作以及向量矩阵乘法占用的周期数最长,采用分频技术,令取指阶段、译码阶段/读取阶段、写回阶段和执行阶段的加法操作使用低频时钟,执行阶段的向量矩阵乘法、除法操作使用高频时钟,从而使得流水线各阶段均在一个统一的低频时钟周期内完成。
本发明的低功耗存算处理器工作流程如图1所示,具体如下:
S01:输入神经网络的模型,包括神经网络各个层的结构以及网络各层尺寸;
S02:对神经网络进行优化、映射;
本处理器中的向量采用统一位宽w0,在S02步骤中,对神经网络进行优化是使得神经网络向量位宽w为处理器统一位宽w0的整数倍,神经网络中的某一向量在处理器中占用的存储地址个数为NUMvector,如以下公式(1)所示;
经过优化后,若神经网络仍有部分层的向量位宽不是统一位宽的整数倍,具体处理办法为:对于位宽小于统一位宽的向量,使用补零的方式使其位宽增加至统一位宽;对于位宽大于统一位宽的向量,则采用切分+补零的方式,存放到多个地址中。
映射是完成数据流的构建,并完成神经网络中的各层参数到存储器内计算阵列中指定位置的排列设计,最终结果形成总参数矩阵,总参数矩阵包括了各层的参数矩阵;
映射方案为采用权重固定数据流,对神经网络的某一层进行im2col变换,把卷积计算转换为向量矩阵乘法,如图5所示,输入特征图大小为m×n×c的3维矩阵,权重大小为h×w×c×k的4维矩阵。经过im2col变换后,该层权重转换为大小为(h×w×c)×k的2维矩阵,该层输入特征图的每个卷积窗口都转换为大小为1×(h×w×c)的向量,每个卷积窗口的卷积计算转换为向量矩阵乘法,而存储器内计算核支持的计算形式为向量矩阵乘法,因此经过im2col变换后,方便地把卷积计算映射到存储器内计算核上执行。完整的向量矩阵乘法是由存储器内计算核完成的。存储器内计算阵列只完成了向量矩阵乘法中的输入向量单比特。
若一块存算块中无法容纳神经网络某一层权重对应的参数矩阵,则采用切分的方式,把该参数矩阵分到多块存算块中,神经网络中某一层权重需要的存算块的块数NUMblock由以下公式(2)获得
其中,h、w、c分别表示参数矩阵的高度、宽度以及神经网络中某一层的输入通道数,k表示神经网络中某一层的输出通道数,a、b表示存储器内计算阵列的单块中可以容纳的参数矩阵的最大行数和最大列数;
若k大于b,则直接使用多块存算块;若h·w·c大于a,则除了使用多块存算块外,还要使用加法器完成块之间的加法计算。
S02的优化中,若神经网络存在残差层,则在量化过程中调整第二卷积层和第三卷积层的量化因子相同。
残差层包含三个卷积层,如图6所示,第一卷积层和第二卷积层依次连接,残差层的输入经第一卷积层和第二卷积层依次处理而构成了主路径,同时残差层的输入经第三卷积层处理而构成了分支路径,第二卷积层和第三卷积层的输出经元素级相加处理后输出并作为残差层的输出。残差层的优化方法为:残差层可以分为主路径和分支路径,主路径和分支路径的结果进行元素级相加,得到残差层的最终结果。主路径和分支路径的量化因子一般不同,将主路径和分支路径映射到不同的存算块中,元素级相加使用加法器执行。
在第二卷积层和第三卷积层的量化因子调整为相同后,第二卷积层和第三卷积层经过im2col变换后各自的向量矩阵乘法,合并到一个向量矩阵乘法中,如下公式所示:
其中,f1()表示第二卷积层的原有量化操作,f2()表示第三卷积层的原有量化操作,f()表示统一量化操作;x1,x2分别代表第二卷积层和第三卷积层的输入特征向量,W1,W2分别代表第二卷积层和第三卷积层的参数矩阵,x1·W1表示第二卷积层经过im2col变换后的向量矩阵乘法,x2·W2表示第三卷积层经过im2col变换后的向量矩阵乘法,表示合并后的向量矩阵乘法;
在存算块大小允许的条件下,即如果第二卷积层和第三卷积层的参数矩阵能够容纳置于同一个存算块中时,则将第二卷积层和第三卷积层映射到同一存算块中,直接利用存算块完成元素级相加,避免了使用向量加法器,从而降低功耗。
S03:神经网络算法编译,根据专用指令集,由编译脚本把神经网络算法编译为指令,保存到指令寄存器中;
S04:指令、参数载入处理器:把S02得到的总参数矩阵以及S03中得到的指令从输入接口载入处理器,其中指令存储在指令寄存器中,总参数矩阵在经过擦除、读取和写入的三个阶段后最终以阻值的形式存储在存储器内计算阵列中;
S05:处理器正常工作。
本处理器可灵活运行多种神经网络算法,下面运行语音关键词识别神经网络TC-resnet8为例,进一步阐述处理器工作流程。
TC-resnet8的结构如表1所示,该神经网络为时序卷积神经网络,可以实现语音关键词识别功能。
表1
该神经网络向存储器内计算核的映射情况如图7所示,图中阴影部分表示映射后实际使用的部分,空白部分表示闲置部分,由于CONV1的输入向量位宽大于统一位宽且不能整除,因此采用了切分+补零的方式。3个残差层在S02步骤中分别调整为量化因子相同,因此CONV2_2和CONV2_3、CONV3_2和CONV3_3、CONV4_2和CONV4_3均映射到了同一块存算块中。
在S03步骤神经网络编译过程中,TC-resnet8具有以8帧(每帧为10ms)为周期重复执行的特性。如图8所示,横轴代表帧数方向,从左往右帧数递增;纵轴代表每帧展开情况,从上到下时间递增,表示一个10ms时间段内处理器先后执行的任务情况。其中方框代表某一次卷积计算,上面的字母和数字代表了执行计算的层的编号;阴影代表了处理器进入休眠状态。如第二列表示在第二帧内,处理器需要首先完成CONV1层的一次计算,然后依次执行CONV2_1的一次计算、CONV2_2+CONV2_3的一次计算,然后进入休眠状态。对于TC-resnet8神经网络来说在每个10ms间隔内,低功耗的休眠状态占据了绝大部分时间。因此处理器可以通过运行TC-resnet8神经网络实现低功耗的实时关键词检测。具体帧数的时长和休眠时间的占比与具体的神经网络有关。
Claims (7)
1.一种低功耗存储器内计算处理器,其特征在于:包括输出接口、输入接口、指令寄存器、指令译码器、第一寄存器组和向量处理单元;输入接口分别和指令寄存器、第一寄存器组连接,指令寄存器和指令译码器连接,指令译码器分别和输入接口、输出接口、第一寄存器组和向量处理单元连接,输出接口和第一寄存器组连接,输出接口作为处理器的输出;
所述的向量处理单元包括存储器内计算核、向量加法器和除法器,指令译码器均分别和存储器内计算核、向量加法器和除法器连接,第一寄存器组均分别连接到存储器内计算核、向量加法器和除法器,用于存储输入向量,存储器内计算核、向量加法器或者除法器处理获得的神经网络运算中间结果向量以及处理最终结果向量;
所述的存储器内计算核,包括第二寄存器组、第一多路选通器MUX1、第二多路选通器MUX2、第三多路选通器MUX3、存储器内计算阵列和计算读取电路;第二寄存器组主要有多个寄存器reg构成,每个寄存器reg经各自的一个第一多路选通器MUX1、一个第二多路选通器MUX2后连接到存储器内计算阵列,存储器内计算阵列经第三多路选通器MUX3和计算读取电路连接;
第二寄存器组,其中每个寄存器reg存储从第一寄存器组发送过来的输入向量或者神经网络运算中间结果向量划分后的多位数据,第二寄存器组中存储的全部向量构成参与向量矩阵乘法的向量;
第一多路选通器MUX1,从寄存器reg的多位数据中遍历选择其中一位数据并输入到第二多路选通器MUX2;
第二多路选通器MUX2,将从第一多路选通器MUX1接收到的一位数据的数字电平转换为模拟电平;
存储器内计算阵列,划分为多个存算块,神经网络的总参数矩阵参数存储在存储器内计算阵列中,各个第二多路选通器MUX2输出的结果输入到存储器内计算阵列并和其中的一存算块作用;
通过第三多路选通器MUX3选通存储器内计算阵列中的一存算块和各个第二多路选通器MUX2输出的结果进行作用并转换为电流形式结果,然后输出到计算读取电路;
计算读取电路,接收第三多路选通器MUX3发送过来的电流形式结果后进行积分运算,并把积分运算结果以数字信号的形式输出,结果即向量矩阵乘法的最终结果,通过控制积分时间实现不同量化因子的量化;
各个第一多路选通器MUX1的控制端和指令译码器输出的控制信号Baddr连接,指令译码器输出的控制信号Baddr对第一多路选通器MUX1的选通进行控制;
第三多路选通器MUX3的控制端和指令译码器输出的控制信号sel连接,指令译码器输出的控制信号sel对第三多路选通器MUX3的选通进行控制。
2.根据权利要求1所述的一种低功耗存储器内计算处理器,其特征在于:
所述的输入接口,接收处理器外部发过来的输入向量;
所述的指令寄存器存放网络编译后的指令;
所述的指令译码器每个周期从指令寄存器中循环读取指令,对指令进行译码后输出控制信号到输入接口、输出接口、第一寄存器组和向量处理单元;
所述的第一寄存器组,接收指令译码器发过来的控制信号,作为处理器的片上存储,同时接收输入接口发过来的输入向量进行存储,向向量处理单元的存储器内计算核、向量加法器或者除法器发送输入向量或者神经网络运算中间结果向量,从向量处理单元的存储器内计算核、向量加法器或者除法器接收神经网络运算中间结果向量或者处理最终结果向量,向输出接口发送处理最终结果;
所述的输出接口,接收第一寄存器组发过来的处理最终结果进而输出到外部。
3.根据权利要求1所述的一种低功耗存储器内计算处理器,其特征在于:
所述的向量加法器和除法器由数字电路实现,向量加法器支持向量的加法、减法操作,除法器支持向量与常数的除法操作。
4.根据权利要求1所述的一种低功耗存储器内计算处理器,其特征在于:
所述的指令译码器运行指令,指令包含4级流水线,4级流水线沿时间延迟一个阶段依次设置,每级流水线均分为:取指阶段IF、译码阶段ID/读取阶段RD、执行阶段EX、写回阶段WR;
取指阶段IF:根据指令计数器,从指令寄存器中读取对应的指令,送入指令译码器中;
译码阶段ID/读取阶段RD:指令译码器根据指令集对指令进行解码,得到输入接口、输出接口、第一寄存器组、存储器内计算核、向量加法器或者除法器的控制信号;若指令中包含读第一寄存器组操作,则发出读请求信号和读地址信号;
执行阶段EX:进行向量矩阵乘法、向量加/减法和向量常数除法的三种操作类型,在向量处理单元中完成,由译码阶段得到的控制信号决定执行哪一种操作;
写回阶段WR:把指令执行阶段的结果写回到第一寄存器组或第二寄存器组中,即发出写请求信号和写地址信号。
5.用于权利要求1所述低功耗存储器内计算处理器的神经网络处理运算方法,其特征在于:方法包括
S01:输入神经网络的模型,包括神经网络各个层的结构以及网络各层尺寸;
S02:对神经网络进行优化、映射;
S03:神经网络算法编译,根据专用指令集,由编译脚本把神经网络算法编译为指令,保存到指令寄存器中;
S04:指令、参数载入处理器:把S02得到的总参数矩阵以及S03中得到的指令从输入接口载入处理器,其中指令存储在指令寄存器中,总参数矩阵在经过擦除、读取和写入的三个阶段后最终以阻值的形式存储在存储器内计算阵列中;
S05:处理器正常工作。
6.根据权利要求5所述的神经网络处理运算方法,其特征在于:
所述S02的优化中,若神经网络存在残差层,则在量化过程中调整第二卷积层和第三卷积层的量化因子相同。
7.根据权利要求6所述的神经网络处理运算方法,其特征在于:
所述的残差层包含三个卷积层,第一卷积层和第二卷积层依次连接,残差层的输入经第一卷积层和第二卷积层依次处理,同时残差层的输入经第三卷积层处理,第二卷积层和第三卷积层的输出经元素级相加处理后输出并作为残差层的输出。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021101113581 | 2021-01-27 | ||
CN202110111358 | 2021-01-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113157638A CN113157638A (zh) | 2021-07-23 |
CN113157638B true CN113157638B (zh) | 2022-06-21 |
Family
ID=76876984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110558071.3A Active CN113157638B (zh) | 2021-01-27 | 2021-05-21 | 一种低功耗存储器内计算处理器和处理运算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113157638B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968362B (zh) * | 2022-06-10 | 2024-04-23 | 清华大学 | 异构融合计算指令集以及使用方法 |
CN117076384B (zh) * | 2023-10-12 | 2024-02-02 | 清华大学无锡应用技术研究院 | 计算装置、存内计算加速系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737612A (zh) * | 2019-09-18 | 2020-01-31 | 复旦大学 | 一种含有存储内计算的处理器 |
CN110990060A (zh) * | 2019-12-06 | 2020-04-10 | 北京瀚诺半导体科技有限公司 | 一种存算一体芯片的嵌入式处理器、指令集及数据处理方法 |
CN111915003A (zh) * | 2019-05-09 | 2020-11-10 | 深圳大普微电子科技有限公司 | 一种神经网络硬件加速器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108197705A (zh) * | 2017-12-29 | 2018-06-22 | 国民技术股份有限公司 | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 |
US10884957B2 (en) * | 2018-10-15 | 2021-01-05 | Intel Corporation | Pipeline circuit architecture to provide in-memory computation functionality |
CN110348249A (zh) * | 2019-05-22 | 2019-10-18 | 上海埃络科技有限公司 | 一种基于存储器内计算的处理器结构 |
-
2021
- 2021-05-21 CN CN202110558071.3A patent/CN113157638B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111915003A (zh) * | 2019-05-09 | 2020-11-10 | 深圳大普微电子科技有限公司 | 一种神经网络硬件加速器 |
CN110737612A (zh) * | 2019-09-18 | 2020-01-31 | 复旦大学 | 一种含有存储内计算的处理器 |
CN110990060A (zh) * | 2019-12-06 | 2020-04-10 | 北京瀚诺半导体科技有限公司 | 一种存算一体芯片的嵌入式处理器、指令集及数据处理方法 |
Non-Patent Citations (4)
Title |
---|
Jiayi Liu ; Kejie Huang.A Novel Scheme to Map Convolutional Networks to Network-on-Chip with Computing-In-Memory Nodes.《2020 International SoC Design Conference (ISOCC)》.2020,1-2. * |
一种跨层连接的循环神经网络门结构设计;余昉恒等;《传感器与微系统》;20180831;第37卷(第08期);91-93 * |
基于存储计算的可重构加速架构设计;朱世凯等;《计算机工程与设计》;20160416;第37卷(第04期);239-243 * |
高性能单精度除法器的实现;朱建银等;《微电子学与计算机》;20070505;第24卷(第05期);112-114 * |
Also Published As
Publication number | Publication date |
---|---|
CN113157638A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108805266B (zh) | 一种可重构cnn高并发卷积加速器 | |
KR102443546B1 (ko) | 행렬 곱셈기 | |
CN106940815B (zh) | 一种可编程卷积神经网络协处理器ip核 | |
CN111897579B (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
CN113157638B (zh) | 一种低功耗存储器内计算处理器和处理运算方法 | |
CN109284822A (zh) | 一种神经网络运算装置及方法 | |
CN109409510B (zh) | 神经元电路、芯片、系统及其方法、存储介质 | |
CN109948774A (zh) | 基于网络层捆绑运算的神经网络加速器及其实现方法 | |
CN108628799B (zh) | 可重构的单指令多数据脉动阵列结构、处理器及电子终端 | |
EP1701250A1 (en) | Ultra low power ASIP (Application-Domain specific Instruction-set Processor) microcomputer | |
CN111105023B (zh) | 数据流重构方法及可重构数据流处理器 | |
Gu et al. | DLUX: A LUT-based near-bank accelerator for data center deep learning training workloads | |
CN112633505B (zh) | 一种基于risc-v的人工智能推理方法和系统 | |
CN113220630B (zh) | 一种硬件加速器的可重构阵列优化方法及自动调优方法 | |
CN113743599A (zh) | 一种卷积神经网络的运算装置及服务器 | |
CN113010213B (zh) | 基于阻变忆阻器的精简指令集存算一体神经网络协处理器 | |
US20230297375A1 (en) | Hardware accelerator, data processing method, system-level chip, and medium | |
CN109871951A (zh) | 一种深度学习处理器及电子设备 | |
CN116710912A (zh) | 一种矩阵乘法器及矩阵乘法器的控制方法 | |
CN116451752A (zh) | 一种深度神经网络硬件加速器装置 | |
Jeong et al. | Rasa: Efficient register-aware systolic array matrix engine for cpu | |
CN114356836A (zh) | 基于risc-v的三维互联众核处理器架构及其工作方法 | |
Huang et al. | IECA: An in-execution configuration CNN accelerator with 30.55 GOPS/mm² area efficiency | |
CN112486903A (zh) | 可重构处理单元、可重构处理单元阵列及其运行方法 | |
Que et al. | Recurrent neural networks with column-wise matrix–vector multiplication on FPGAs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |