[发明专利]一种通用神经网络加速器有效
申请号: | 201911339715.9 | 申请日: | 2019-12-23 |
公开(公告)号: | CN111126583B | 公开(公告)日: | 2022-09-06 |
发明(设计)人: | 魏敬和;黄乐天;明小满 | 申请(专利权)人: | 中国电子科技集团公司第五十八研究所 |
主分类号: | G06N3/063 | 分类号: | G06N3/063 |
代理公司: | 无锡派尔特知识产权代理事务所(普通合伙) 32340 | 代理人: | 杨立秋 |
地址: | 214000 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 通用 神经网络 加速器 | ||
1.一种通用神经网络加速器,面向片上系统,所述片上系统包括主处理器,其特征在于,所述通用神经网络加速器被集成到SoC中,以协处理器的形式通过协处理器接口与所述主处理器耦合,实现基于所述主处理器扩展指令设计的自定义指令集;所述通用神经网络加速器和所述主处理器共享一级缓存L1DCache;
所述通用神经网络加速器包括输入数据通路、输出数据通路、算术逻辑单元、地址生成器和译码控制单元;所述地址生成器产生每次获取源向量的地址vctxAddr和vctyAddr,以及将结果写回内存的地址rsltAddr;在译码控制单元的作用下,输入数据通路通过MEM响应接口从一级缓存L1DCache中交替读取两个源向量,每次读取64位数,并分别存储在vctx寄存器和vcty寄存器;算术逻辑单元接收到译码控制单元的使能信号后执行计算;计算完成后,将计算结果存储到输出数据通路的寄存器中,其中vsum寄存器存储向量点积结果,sumVect存储向量加结果,译码控制单元根据指令的功能码,在输出端选择输出计算结果;
所述协处理器接口包括四个通道:控制通道,用于所述通用神经网络加速器与所述主处理器之间传递状态信息;
请求通道,用于所述主处理器为所述通用神经网络加速器传递指令信息;
存储器请求通道,用于所述通用神经网络加速器向所述主处理器中的存储器发起读写请求;
存储器响应通道,用于所述主处理器向所述通用神经网络加速器返回数据读出结果;
所述算术逻辑单元包括加法器阵列、乘法器阵列和加法器;译码控制单元输出vaen信号使能加法器阵列执行向量加计算;译码控制单元输出mulen信号使能乘法器阵列执行向量点积计算,将两向量对应元素相乘,当译码控制单元输出adden信号时,加法器将对应元素乘积相加,得到最终的点积计算结果;
所述译码控制单元由一个有限状态机电路实现,包括空闲、取指、译码、访存、执行和写回6个状态;片上系统复位后,所述通用神经网络加速器处于空闲状态,准备接收自定义指令集,直到主处理器解析到定制指令,通用神经网络加速器进入取指状态,通过请求通道从主处理器获取指令信息;通用神经网络加速器解析指令的功能码来确定要执行的操作;通用神经网络加速器通过存储器请求通道向一级缓存L1DCache发送向量地址,通过存储器响应通道从一级缓存L1DCache中获取操作数;再执行指令指定的操作,执行完一次向量计算操作之后,根据指令内的向量长度信息判断计算是否完成,如果完成,通用神经网络加速器进入下一个状态,将执行结果写回指令指定的目的操作数地址;否则,根据地址生成器产生的新的地址,再次从L1DCache中获取源向量,继续执行向量计算,直到执行完向量计算,将执行结果通过存储器请求通道写回L1DCache,并且产生一个中断信号Interrupt告知主处理器;通用神经网络加速器回到空闲状态,并且将Busy信号拉低,等待下一次被调度。
2.如权利要求1所述的通用神经网络加速器,其特征在于,所述自定义指令集包括向量加指令和向量点积指令,能够实现向量加运算和向量点积。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第五十八研究所,未经中国电子科技集团公司第五十八研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911339715.9/1.html,转载请声明来源钻瓜专利网。