[发明专利]一种用于执行向量循环移位运算的装置和方法有效
申请号: | 201610266747.0 | 申请日: | 2016-04-26 |
公开(公告)号: | CN107315566B | 公开(公告)日: | 2020-11-03 |
发明(设计)人: | 刘道福;张潇;刘少礼;陈天石;陈云霁 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/355 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 钟文芳 |
地址: | 100190 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 执行 向量 循环 移位 运算 装置 方法 | ||
1.一种用于执行向量循环移位运算的装置,其特征在于,包括:
控制单元,用于对向量循环移位运算指令进行译码,并控制向量循环移位 运算指令的运算过程;
循环移位单元,用于根据译码后的向量循环移位运算指令,对输入向量数据进行循环移位操作;
存储单元,用于存储向量循环移位 运算指令相关的向量数据;
寄存器单元,用于存储向量循环移位 运算指令相关的标量数据;
所述标量数据包括:向量循环移位 运算指令相关的输入向量数据起始地址、输出向量数据存储地址、输入向量数据长度以及移位步长;其中,所述输入向量数据起始地址以及输出向量数据存储地址为所述存储单元中的地址;
所述循环移位单元从向量循环移位运算指令的操作域的立即数中或寄存器号指示的寄存器单元中获取输入向量数据起始地址、输出向量数据存储地址、输入向量数据长度以及移位步长,通过所述输入向量起始地址和输入向量数据长度从所述存储单元中获取具有所述输入向量数据长度的所述输入向量数据,所述循环移位单元根据所述向量循环移位运算指令中的操作码对输入向量数据按照所述移位步长进行循环移位,并得到移位结果。
2.如权利要求1所述的装置,其特征在于,所述循环移位单元为定制的硬件电路。
3.如权利要求1所述的装置,其特征在于,所述控制单元包括:
指令队列模块,用于对译码后的向量循环移位运算指令进行顺序存储,并获取向量循环移位运算指令相关的标量数据。
4.如权利要求1所述的装置,其特征在于,所述控制单元包括:
依赖关系处理单元,用于在循环移位单元获取当前向量循环移位运算指令前,判断当前向量循环移位运算指令与之前未执行完的运算指令是否存在依赖关系。
5.如权利要求1所述的装置,其特征在于,所述控制单元包括:
存储队列模块,用于在当前向量循环移位运算指令与之前未执行完的运算指令存在依赖关系时,暂时存储当前向量循环移位运算指令,并且在该依赖关系消除时,将暂存的向量循环移位运算指令送往循环移位单元。
6.如权利要求1-5任一项所述的装置,其特征在于,所述装置还包括:
指令缓存单元,用于存储待执行的向量运算指令;
输入输出单元,用于将向量运算指令相关的向量数据存储于存储单元,或者,从存储单元中获取向量运算指令的运算结果。
7.如权利要求1所述的装置,其特征在于,所述向量循环移位运算指令包括操作码和操作域;
所述操作码用于指示执行循环移位操作;
所述操作域包括立即数和/或寄存器号,指示向量循环移位运算相关的标量数据,其中寄存器号用于指向所述寄存器单元地址。
8.如权利要求1-5、7任一项所述的装置,其特征在于,所述存储单元为高速暂存存储器。
9.如权利要求3所述的装置,其特征在于,还包括:
取指模块,用于从指令序列中取出下一条要执行的向量循环移位运算指令,并将该向量循环移位运算指令传给译码模块;
译码模块,用于对该向量循环移位运算指令进行译码,并将译码后的向量循环移位运算指令传送给指令队列模块。
10.如权利要求1所述的装置,其特征在于,所述寄存器单元为标量寄存器堆,包括多个标量寄存器,用于存储向量循环移位运算指令相关的标量数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610266747.0/1.html,转载请声明来源钻瓜专利网。