一种运算装置及其操作方法制造方法及图纸

技术编号:26170073 阅读:25 留言:0更新日期:2020-10-31 13:36
本发明专利技术提供了一种运算装置及其操作方法,装置包括数据模块及运算模块,数据模块对数据进行操作,运算模块用于根据指令对数据进行相关运算。本发明专利技术能够在执行指令时,根据待运算数据的长度和运算模块的规模进行相应调整,提升了包含大量向量计算任务的执行性能,具有指令结构简洁、数据运算灵活高效等优点。

【技术实现步骤摘要】
一种运算装置及其操作方法
本专利技术属于计算机领域,具体涉及一种运算装置及其操作方法。
技术介绍
随着大数据时代的来临,与向量运算的相关应用也日益增加,参与运算的数据量不断增大,数据规格和维度不断扩增,运算形式也逐渐增多,一方面,运算单元的规模难以随着数据量的大幅度提升而大幅度扩大,这就使得运算时如何调控运算数据提出了要求;另一方面,这些运算不再局限于在统一规格的数据间进行,而是有很大一部分运算是不同规格或不同维度的数据间进行,这就为运算装置的灵活性提出了更高的要求。在现有技术中,一种进行向量运算的已知方案是使用通用处理器(CPU)或图形处理器(GPU),然而,这种方法或者因其结构更适应于标量运算,进行向量运算时效率较低;或者,因其片上缓存太小,无法满足高效完成大规模向量运算的要求。在另一种现有技术中,使用专门定制的向量运算装置来进行向量计算,即使用定制的存储单元和处理单元进行向量运算。然而,目前已有的专用向量运算装置受限于寄存器堆,只能支持相同长度的向量运算,灵活性不足。除此之外,上述装置对应的指令集,只能执行相同长度的数据的本文档来自技高网...

【技术保护点】
1.一种运算装置,包括数据模块和运算模块,其中:/n数据模块用于根据指令,向运算模块提供运算数据,所述运算数据包括第一数据和第二数据;所述指令包括操作码和操作域,所述操作域包括:第一数据的起始存储地址、第二数据的起始存储地址、以及运算结果存储地址;所述数据模块包括数据I/O单元和数据暂存单元,其中,数据I/O单元用于根据所述第一数据的起始存储地址读取第一数据以及根据所述第二数据的起始存储地址读取所述第二数据,数据暂存单元用于存储运算数据,并对该运算数据进行调整后,提供至运算模块;/n运算模块用于根据指令及数据模块提供的运算数据,对所述第一数据和第二数据进行运算。/n

【技术特征摘要】
1.一种运算装置,包括数据模块和运算模块,其中:
数据模块用于根据指令,向运算模块提供运算数据,所述运算数据包括第一数据和第二数据;所述指令包括操作码和操作域,所述操作域包括:第一数据的起始存储地址、第二数据的起始存储地址、以及运算结果存储地址;所述数据模块包括数据I/O单元和数据暂存单元,其中,数据I/O单元用于根据所述第一数据的起始存储地址读取第一数据以及根据所述第二数据的起始存储地址读取所述第二数据,数据暂存单元用于存储运算数据,并对该运算数据进行调整后,提供至运算模块;
运算模块用于根据指令及数据模块提供的运算数据,对所述第一数据和第二数据进行运算。


2.根据权利要求1所述的运算装置,其特征在于,所述数据暂存单元根据运算单元的规模和运算数据的长度,对运算数据进行调整后,提供至运算模块。


3.根据权利要求2所述的运算装置,其特征在于,所述数据暂存单元根据运算单元的规模和运算数据的长度,对运算数据进行调整后,提供至运算模块,包括:
当第一数据的长度和第二数据的长度均小于等于运算模块的运算规模时,数据暂存单元直接将第一数据和第二数据提供至运算模块;
当第一数据的长度和第二数据的长度均大于运算模块的运算规模时,分别将第一数据和第二数据拆分为多个长度均小于等于所述运算规模的子运算数据,并将该多个子运算数据分多次提供至所述运算模块;
当第一数据和第二数据中,一个运算数据长度大于运算模块的运算规模,另一个运算数据长度小于等于运算模块的运算规模时,将长度大于运算规模的运算数据拆分为多个长度均小于等于运算规模的子运算数据,并将该多个子运算数据和长度小于等于运算规模的运算数据分多次提供至所述运算模块。


4.根据权利要求1-3中任一所述的运算装置,其特征在于,所述指令的操作域还包括第一数据的长度,所述数据I/O单元用于直接从内存中根据所述第一数据的起始存储地址和所述第一数据的长度读取具有所述第一数据的长度的第一向量。


5.根据权利要求4所述的运算装置,其特征在于,所述指令的操作域还包括第二数据的长度,所述数据I/O单元用于直接从内存中根据所述第二数据的起始存储地址和所述第二数据的长度读取具有所述第二数据的长度的第二数据。


6.根据权利要求1-5中任一的所述的运算装置,其特征在于,所述运算数据为向量,所述运算模块用于执行向量逻辑运算或向量四则运算。


7.根据权利要求1-5中任一的所述的运算装置,其特征在于,所述运算模块包括加法部件、减法部件、逻辑与部件和点积部件中的至少一种。


8.根据权利要求1-5中任一所述的运算装置,其特征在于,还包括指令模块,所述指令模块用于缓存指令,并向数据模块及运算模块提供指令;所述数据模块用于根据指令模块中的指令,向运算模块提供运算数据。


9.根据权利要求8所述的运算装置,其特征在于,所述指令模块包括指令缓存单元、指令处理单元、依赖关系处理单元、存储队列单元,其中:
指令缓存单元用于存储待执行的指令,指令处理单元用于从指令缓存单元获取指令,并对该指令进行处理,依赖关系处理单元用于判断该指令与前一正在执行的指令是否访问相同的数据:
如果是,依赖关系处理单元将该指令存放至所述存储队列单元,待前一正在执行的指令执行完毕后,再将该指令提供给运算模块;
否则,直接将该指令提供给运算模块。
...

【专利技术属性】
技术研发人员:陈云霁刘少礼陈天石
申请(专利权)人:中科寒武纪科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1