[发明专利]运算装置及方法有效
申请号: | 201710256444.5 | 申请日: | 2017-04-19 |
公开(公告)号: | CN108733625B | 公开(公告)日: | 2021-06-08 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 任岩 |
地址: | 201203 上海市浦东*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 运算 装置 方法 | ||
1.一种运算装置,包括地址存储模块、运算控制模块、运算模块和数据存储模块,其中:
地址存储模块,用于存储运算矩阵的地址信息;
数据存储模块,用于存储原始矩阵数据,并存储运算后的转置矩阵;
运算控制模块,用于直接从所述地址存储模块提取所述运算矩阵的地址信息,并根据所述运算矩阵的地址信息分析得到分块信息;
运算模块,用于从所述运算控制模块获取运算矩阵的地址信息及分块信息,根据所述运算矩阵的地址信息从所述数据存储模块提取运算矩阵,并根据所述分块信息对所述运算矩阵进行分块、转置及合并运算,得到所述运算矩阵的转置矩阵,并将所述运算矩阵的转置矩阵反馈至所述数据存储模块;
所述运算模块包括矩阵分块单元、矩阵运算单元和矩阵合并单元,其中:
矩阵分块单元:用于从所述运算控制模块获取运算矩阵的地址信息及分块信息,并根据所述运算矩阵的地址信息从所述数据存储模块提取运算矩阵,根据所述分块信息对所述运算矩阵进行分块,得到n个分块矩阵;
矩阵运算单元,用于获取所述n个分块矩阵,并对所述n个分块矩阵进行转置运算,得到所述n个分块矩阵的转置矩阵;
矩阵合并单元,用于负责接收并暂时缓存转置后的分块矩阵,待所有分块矩阵都进行完转置运算后,对n个分块矩阵的转置矩阵进行合并运算,得到运算矩阵的转置矩阵,并将所述运算矩阵的转置矩阵反馈至所述数据存储模块,其中,n为自然数。
2.如权利要求1所述的运算装置,其中,所述运算模块还包括缓存单元,用于缓存所述n个分块矩阵,以供所述矩阵运算单元获取。
3.如权利要求1或2所述的运算装置,其中,所述运算控制模块包括指令处理单元、指令缓存单元和矩阵判断单元,其中:
指令缓存单元,用于存储待执行的矩阵运算指令;
指令处理单元,用于从指令缓存单元中获取矩阵运算指令,对所述矩阵运算指令进行译码,并根据所述译码后的矩阵运算指令从所述地址存储模块中获取运算矩阵的地址信息;
矩阵判断单元,用于对所述运算矩阵的地址信息进行分析,得到所述分块信息。
4.如权利要求3所述的运算装置,其中,所述运算控制模块还包括依赖关系处理单元,用于判断所述译码后的矩阵运算指令和运算矩阵的地址信息是否与上一运算存在冲突,若存在冲突,则暂存所述译码后的矩阵运算指令和运算矩阵的地址信息;若不存在冲突,则发射所述译码后的矩阵运算指令和运算矩阵的地址信息至所述矩阵判断单元。
5.如权利要求4所述的运算装置,其中,所述运算控制模块还包括指令队列,用于缓存所述存在冲突的译码后的矩阵运算指令和运算矩阵的地址信息,当所述冲突消除后,将缓存的所述译码后的矩阵运算指令和运算矩阵的地址信息发射至所述矩阵判断单元。
6.如权利要求4或5所述的运算装置,其中,所述指令处理单元包括取指单元和译码单元,其中:
取指单元,用于从所述指令缓存单元中获取矩阵运算指令,并将此矩阵运算指令传输至所述译码单元;
译码单元,用于对所述矩阵运算指令进行译码,根据该译码后的矩阵运算指令从所述地址存储模块中提取运算矩阵的地址信息,并将所述译码后的矩阵运算指令和提取的运算矩阵的地址信息传输至所述依赖关系处理单元。
7.如权利要求6所述的运算装置,其中,所述装置还包括输入输出模块,用于向所述数据存储模块输入原始矩阵数据,还用于从所述数据存储模块获取运算后的转置矩阵,并输出所述运算后的转置矩阵。
8.如权利要求7所述的运算装置,其中,所述地址存储模块包括标量寄存器堆或通用内存单元;所述数据存储模块包括高速暂存存储器或通用内存单元;所述运算矩阵的地址信息为矩阵的起始地址信息和矩阵大小信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710256444.5/1.html,转载请声明来源钻瓜专利网。