[发明专利]运算装置及方法有效
申请号: | 201710256444.5 | 申请日: | 2017-04-19 |
公开(公告)号: | CN108733625B | 公开(公告)日: | 2021-06-08 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 任岩 |
地址: | 201203 上海市浦东*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 运算 装置 方法 | ||
本公开属于计算机、高等数学领域,更具体地涉及一种运算装置及方法。本公开提出的装置及方法,可以实现使用一条单独指令在常数时间复杂度内完成任意大小矩阵的运算。相比较传统的运算操作实现方法,在降低操作时间复杂度的同时也使运算操作的使用更为简单高效。
技术领域
本公开属于计算机、高等数学领域,更具体地涉及一种运算装置及方法。
背景技术
矩阵转置运算是各领域中使用频率很高的一种基本数学运算,它的定义是对一个矩阵进行处理,使其行与列互相交换。当前阶段,使用计算机进行这一操作的通常方法为利用通用处理器编写两层循环,其时间复杂度为O(n^2)。这样时间复杂度的矩阵转置运算在复杂系统中会成为提高性能的瓶颈之一,尤其是在矩阵元素量很大的情况下。
发明内容
基于以上问题,本公开的目的在于提出一种运算装置及方法,用于解决以上技术问题的至少之一。
为了达到上述目的,作为本公开的一个方面,本公开提出一种运算装置,包括地址存储模块、运算控制模块、运算模块和数据存储模块,其中:
地址存储模块,用于存储运算矩阵的地址信息;
数据存储模块,用于存储原始矩阵数据,并存储运算后的转置矩阵;
运算控制模块,用于从地址存储模块提取运算矩阵的地址信息,并根据运算矩阵的地址信息分析得到分块信息;
运算模块,用于从运算控制模块获取运算矩阵的地址信息及分块信息,根据运算矩阵的地址信息从数据存储模块提取运算矩阵,并根据分块信息对运算矩阵进行分块、转置及合并运算,得到运算矩阵的转置矩阵,并将运算矩阵的转置矩阵反馈至数据存储模块。
进一步地,上述运算模块包括矩阵分块单元、矩阵运算单元和矩阵合并单元,其中:
矩阵分块单元:用于从运算控制模块获取运算矩阵的地址信息及分块信息,并根据运算矩阵的地址信息从数据存储模块提取运算矩阵,根据分块信息对运算矩阵进行分块,得到n个分块矩阵;
矩阵运算单元,用于获取n个分块矩阵,并对n个分块矩阵进行转置运算,得到n个分块矩阵的转置矩阵;
矩阵合并单元,用于获取并合并n个分块矩阵的转置矩阵,得到运算矩阵的转置矩阵,并将运算矩阵的转置矩阵反馈至数据存储模块,其中,n为自然数。
进一步地,上述运算模块还包括缓存单元,用于缓存n个分块矩阵,以供矩阵运算单元获取。
进一步地,上述运算控制模块包括指令处理单元、指令缓存单元和矩阵判断单元,其中:
指令缓存单元,用于存储待执行的矩阵运算指令;
指令处理单元,用于从指令缓存单元中获取矩阵运算指令,对矩阵运算指令进行译码,并根据译码后的矩阵运算指令从地址存储模块中提取运算矩阵的地址信息;
矩阵判断单元,用于对运算矩阵的地址信息进行分析,得到分块信息。
进一步地,上述运算控制模块还包括依赖关系处理单元,用于判断译码后的矩阵运算指令和运算矩阵的地址信息是否与上一运算存在冲突,若存在冲突,则暂存译码后的矩阵运算指令和运算矩阵的地址信息;若不存在冲突,则发射译码后的矩阵运算指令和运算矩阵的地址信息至矩阵判断单元。
进一步地,上述运算控制模块还包括指令队列,用于缓存存在冲突的译码后的矩阵运算指令和运算矩阵的地址信息,当冲突消除后,将所缓存的译码后的矩阵运算指令和运算矩阵的地址信息发射至矩阵判断单元。
进一步地,上述指令处理单元包括取指单元和译码单元,其中:
取指单元,用于从指令缓存单元中获取矩阵运算指令,并将此矩阵运算指令传输至译码单元;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710256444.5/2.html,转载请声明来源钻瓜专利网。