1.用于神经网络卷积层的运算装置,其特征是,包括:
控制器,所述控制器分别与像素矩阵存储器、系数矩阵存储器、若干个像素缓冲器、若干个系数缓冲器和若干个乘累加器连接;
在控制器中设置时钟周期,每个流水步骤对应一个时钟周期;
第一个流水步骤:所述像素矩阵存储器接收像素矩阵的存储访问,将像素矩阵存储到像素矩阵存储器中;所述系数矩阵存储器接收系数矩阵的存储访问,将系数矩阵存储到系数矩阵存储器中;
第二个流水步骤:所述控制器从像素矩阵存储器中调取一个M行乘以M列的像素矩阵块,将调取的像素矩阵块按照1行乘以M2列的形式存储到像素缓冲器中;所述控制器从系数矩阵存储器中调取M行乘以M列的单个系数矩阵块;将调取的单个系数矩阵按照M2行乘以1列的形式存储到系数缓冲器中;
第三个流水步骤:所述控制器每次从像素缓冲器中读取第i个像素点,从系数缓冲器中读取第i个系数,控制器控制乘累加器将第i个像素点与对应第i个系数进行乘法运算,第i个像素属于被乘数,第i个系数属于乘数,被乘数与乘数的每一位逐次进行乘法,产生多个部分积,再把部分积进行累加;一共进行M2次单个像素点数据与对应卷积核系数的乘法运算;
第四个流水步骤:把生成的M2个乘法运算结果,进行加法操作,得到像素映射特征数值;
其中,i是正整数;i的取值范围是1到M2;M2表示像素矩阵块中像素的个数;
第五个流水步骤:将得到像素映射特征数值回写到像素映射特征矩阵存储器中;
在第一个时钟周期内,只有第一个流水步骤开始工作;
在第二个时钟周期内,第二流水步骤开始工作;第一个流水步骤继续工作;
在第三个时钟周期内,第三流水步骤开始工作;第一和第二流水步骤继续工作;
在第四个时钟周期内,第四流水步骤开始工作,第一、第二和第三流水步骤继续工作;
在第五个时钟周期内,第五流水步骤开始工作,第一、第二、第三和第四流水步骤继续工作;
在后续的每个时钟周期内,所有的流水步骤均开始工作,从而实现每个时钟周期均有像素映射特征数值回写到像素映射特征矩阵存储器中。
2.如权利要求1所述的装置,其特征是,所述控制器设置流水线时钟周期,流水充满后,每个时钟周期,当所有乘积均进行完累加运算后,单个时钟周期才吞吐一次乘累加结果。
3.用于神经网络卷积层的芯片,其特征是,包括所述运算装置,还包括通信接口,所述通信接口用于获取待所述运算装置处理的输入数据,还用于输出所述运算装置的运算结果。
4.用于神经网络卷积层的方法,其特征是,运用于运算装置中,所述运算装置,包括:控制器,所述控制器分别与像素矩阵存储器、系数矩阵存储器、若干个像素缓冲器、若干个系数缓冲器和若干个乘累加器连接;
所述方法包括:在控制器中设置时钟周期,每个流水步骤对应一个时钟周期;
第一个流水步骤:所述像素矩阵存储器接收像素矩阵的存储访问,将像素矩阵存储到像素矩阵存储器中;所述系数矩阵存储器接收系数矩阵的存储访问,将系数矩阵存储到系数矩阵存储器中;
第二个流水步骤:所述控制器从像素矩阵存储器中调取一个M行乘以M列的像素矩阵块,将调取的像素矩阵块按照1行乘以M2列的形式存储到像素缓冲器中;所述控制器从系数矩阵存储器中调取M行乘以M列的单个系数矩阵块;将调取的单个系数矩阵按照M2行乘以1列的形式存储到系数缓冲器中;
第三个流水步骤:所述控制器每次从像素缓冲器中读取第i个像素点,从系数缓冲器中读取第i个系数,控制器控制乘累加器将第i个像素点与对应第i个系数进行乘法运算,第i个像素属于被乘数,第i个系数属于乘数,被乘数与乘数的每一位逐次进行乘法,产生多个2
部分积,再把部分积进行累加;一共进行M次单个像素点数据与对应卷积核系数的乘法运算;
第四个流水步骤:把生成的M2个乘法运算结果,进行加法操作,得到像素映射特征数值;
其中,i是正整数;i的取值范围是1到M2;M2表示像素矩阵块中像素的个数;
第五个流水步骤:将得到像素映射特征数值回写到像素映射特征矩阵存储器中;
在第一个时钟周期内,只有第一个流水步骤开始工作;
在第二个时钟周期内,第二流水步骤开始工作;第一个流水步骤继续工作;
在第三个时钟周期内,第三流水步骤开始工作;第一和第二流水步骤继续工作;
在第四个时钟周期内,第四流水步骤开始工作,第一、第二和第三流水步骤继续工作;
在第五个时钟周期内,第五流水步骤开始工作,第一、第二、第三和第四流水步骤继续工作;
在后续的每个时钟周期内,所有的流水步骤均开始工作,从而实现每个时钟周期均有像素映射特征数值回写到像素映射特征矩阵存储器中。