[发明专利]一种运算装置及其操作方法有效
申请号: | 201610640115.6 | 申请日: | 2016-08-05 |
公开(公告)号: | CN107688466B | 公开(公告)日: | 2020-11-03 |
发明(设计)人: | 陈云霁;刘少礼;陈天石 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 任岩 |
地址: | 100190 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 运算 装置 及其 操作方法 | ||
本公开提供了一种运算装置及其操作方法,装置包括数据模块及运算模块,数据模块对数据进行操作,包括从内存中读出或写入数据和向运算模块输入运算数据等,运算模块用于根据指令对数据进行相关运算。本公开能够在执行指令时,根据待运算数据的长度和运算模块的规模进行相应调整,提升了包含大量向量计算任务的执行性能,具有指令结构简洁、数据运算灵活高效等优点。
技术领域
本公开属于计算机领域,具体涉及一种运算装置及其操作方法。
背景技术
随着大数据时代的来临,与向量运算的相关应用也日益增加,参与运算的数据量不断增大,数据规格和维度不断扩增,运算形式也逐渐增多,一方面,运算单元的规模难以随着数据量的大幅度提升而大幅度扩大,这就使得运算时如何调控运算数据提出了要求;另一方面,这些运算不再局限于在统一规格的数据间进行,而是有很大一部分运算是不同规格或不同维度的数据间进行,这就为运算装置的灵活性提出了更高的要求。
在现有技术中,一种进行向量运算的已知方案是使用通用处理器 (CPU)或图形处理器(GPU),然而,这种方法或者因其结构更适应于标量运算,进行向量运算时效率较低;或者,因其片上缓存太小,无法满足高效完成大规模向量运算的要求。在另一种现有技术中,使用专门定制的向量运算装置来进行向量计算,即使用定制的存储单元和处理单元进行向量运算。然而,目前已有的专用向量运算装置受限于寄存器堆,只能支持相同长度的向量运算,灵活性不足。
除此之外,上述装置对应的指令集,只能执行相同长度的数据的运算,且受限于存储器的规模和运算单元的规模。对于不同长度的数据和不满足运算单元规模的数据,一种方式是采用多条指令对数据进行依次调用,另一种方式是采用循环指令的方式进行反复调用。这不仅使得指令集的结构复杂,指令队列冗长,且执行效率低下,而且运行时限制多、灵活性差,无法为大规模的向量运算提供便利。
发明内容
(一)要解决的技术问题
本公开的目的在于,提供一种运算装置及其操作方法,用于根据指令高效灵活地执行相同规模或不同规模的数据的运算,解决了当前越来越多的算法包含大量相同规模或不同规模数据的运算问题,降低了运算单元规模。
(二)技术方案
本公开提供一种运算装置,装置包括数据模块和运算模块,其中:
数据模块用于根据指令,向运算模块提供运算数据,其中,所述数据模块包括数据I/O单元和数据暂存单元,其中,数据I/O单元用于直接从内存中读取运算数据,数据暂存单元用于存储运算数据,并对该运算数据进行调整后,提供至运算模块;
运算模块用于根据指令及数据模块提供的运算数据,进行运算。
进一步,指令模块用于缓存指令,并向数据模块及运算模块提供指令;数据模块用于根据指令模块中的指令,向运算模块提供运算数据,运算模块用于根据指令模块中的指令进行运算。
进一步,指令模块包括指令缓存单元、指令处理单元、依赖关系处理单元、存储队列单元,其中:
指令缓存单元用于存储待执行的指令,指令处理单元用于从指令缓存单元获取指令,并对该指令进行处理,依赖关系处理单元用于判断该指令与前一正在执行的指令是否访问相同的数据:
如果是,依赖关系处理单元将该指令存放至所述存储队列单元,待前一正在执行的指令执行完毕后,再将该指令提供给运算模块;
否则,直接将该指令提供给运算模块。
进一步,指令处理单元包括:
取指部分,用于从指令缓存单元中获取指令;
译码部分,用于对获取的指令进行译码;
指令队列部分,用于对译码后的指令进行顺序存储。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610640115.6/2.html,转载请声明来源钻瓜专利网。