运算装置及方法制造方法及图纸

技术编号:20680594 阅读:29 留言:0更新日期:2019-03-27 18:46
本公开提供了一种运算装置及方法,其中,该装置包括:存储器、标量数据存储单元、运算单元、控制单元和传输单元,所述传输单元,用于对目标数据进行传输,目标数据包括运算装置中的任一待传输的数据;传输单元包括寄存器模块和直接内存访问DMA控制模块,寄存器模块,用于存储目标数据在源存储器中存储的源地址、所述目标数据在目的存储器中存储的目的地址和每次传输目标数据的数据量;DMA控制模块,用于接收DMA指令,并根据所述DMA指令从所述寄存器模块或所述DMA指令获取目标数据的源地址和目的地址,通过本公开的装置及方法,可以解决现有技术中存在的矩阵传送效率低下、多组数据交替传送时缺失过多的问题。

【技术实现步骤摘要】
运算装置及方法
本专利技术涉及计算机科学
,尤其涉及一种运算装置及方法。
技术介绍
直接内存访问(DirectMemoryAccess,DMA)是计算机科学中的一种内存访问技术。它允许某些硬件子系统(外存储器)独立地直接读写系统内存,而不需CPU介入处理。在同等程度的处理器负担下,DMA是一种快速的数据传送方式。有时,数据除了往来处理器和外存储器之间之外,还需要在多个存储空间之间转移。我们并不希望让处理器在这种情况下也忙于数据拷贝,而DMA就可以负担起此类工作,减少了系统资源的占用。此外,DMA的传送能力并不总是用来移动数据,也可以用于将存储在外存储器中的将要运行的代码提前送入内存,加快执行效率。DMA控制器需要指令支持,才能正确执行处理器布置的多种任务。对于任何类型的DMA传输,都需要规定源端地址、目标端地址和待传送数据的大小。这种类型的事务代表了简单的一维(“1D”)统一“跨度”(unitystride)的传输。不过,虽然1DDMA得到了广泛的应用,但用处更大的则是二维(2D)DMA,特别是在图像、视频等应用中。2DDMA可以简单地理解为一个嵌套的循环,亦即对一个矩阵的行和列分别操作,最终完成遍历,每一层循环都相当于一个1DDMA。而更复杂的DMA装置往往会同时与多个外存储器相连,一段时间内CPU需要交替从这些外存储器中获取多组数据,这些数据是根据任务所需不时切换的,但在同组内又是连续的。这时DMA装置需要正确识别相关指令,确保同组数据的缓存尽可能命中,不受其他组的数据传送的影响。
技术实现思路
本专利技术实施例提供的一种运算装置及方法,在图像、视频处理的应用场景下极大地提升了数据传送的效率和规范程度,弥补了数据密集型计算任务的I/O短板。第一方面,本申请实施例提供了一种运算装置,所述运算装置包括存储器、标量数据存储单元、运算单元、控制单元和传输单元,其中,所述存储器,用于存储矩阵;所述标量数据存储单元,用于存储标量数据,所述标量数据至少包括:所述矩阵在所述存储器内的存储地址;所述控制单元,用于控制所述运算单元获取第一运算指令,所述第一运算指令包括执行所述第一运算指令所需的矩阵读取指示;所述运算单元,用于依据所述矩阵读取指示向所述存储器发送读取命令;采用批量读取方式读取所述矩阵读取指示对应的矩阵,对该矩阵执行所述第一运算指令;所述传输单元,用于对目标数据进行传输,所述目标数据包括所述运算装置中的任一待传输的数据;所述传输单元包括寄存器模块和直接内存访问DMA控制模块,其中,所述寄存器模块,用于存储目标数据在源存储器中存储的源地址、所述目标数据在目的存储器中存储的目的地址和每次传输目标数据的数据量;所述DMA控制模块,用于接收DMA指令,并根据所述DMA指令从所述寄存器模块或所述DMA指令获取目标数据的源地址和目的地址;所述DMA控制模块,还用于根据所述目标数据的源地址从所述源存储器中获取所述目标数据,并将所述目标数据传输至所述目的存储器中所述目标数据的目的地址对应的存储空间;其中,所述源存储器为所述目标数据的存储空间,所述目的存储器用于存储传输后的目标数据。可选的,所述运算单元包括至少一个运算器,所述运算器包括:矩阵加法运算器、矩阵乘法运算器、大小比较运算器、非线性运算器和/或矩阵标量乘法运算器。可选的,所述运算单元还用于对矩阵执行n级流水级运算,对所述矩阵执行n级流水级运算包括:对所述矩阵执行第一流水级的计算,得到第一结果;将所述第一结果输入到第二流水级,所述第二流水级对所述第一结果执行第二流水级的计算,得到第二结果;重复上述步骤,直至执行完第n-1流水级的计算,得到第n-1计算结果,其中,n为大于1的正整数;将所述第n-1计算结果输入到第n流水级,所述第n流水级对所述第n-1结果执行第n流水级的计算,得到第n结果,以及将所述第n结果输入到所述存储器。可选的,若所述n=3,则所述第一流水级至少包括:矩阵加法计算器、矩阵乘法计算器;所述第二流水级至少包括:大小比较计算器;所述第三流水级至少包括:非线性运算器、矩阵标量乘法器。可选的,所述控制单元还用于:所述矩阵乘向量指令与矩阵乘向量指令之前的运算指令是否存在关联关系,若存在关联关系,将矩阵乘向量指令存储到缓存单元,若不存在关联关系,则通过传输单元将所述矩阵乘向量指令传输至运算单元。可选的,所述控制单元包括:取指模块、译码模块和指令队列模块,其中,所述取指模,用于从指令缓存单元中获取运算指令;所述译码模块,用于对获取的运算指令进行译码;所述指令队列,用于对译码后的运算指令进行顺序存储。可选的,所述DMA控制模块具体用于:根据所述DMA指令从所述寄存器模块中或者从所述DMA指令中获取所述每次传输目标数据的数据量;根据所述每次传输目标数据的数据量将所述目标数据传输至所述目的存储器中所述目标数据的目的地址对应的存储空间。可选的,所述寄存器模块包括:标量寄存器堆,用于存储数据规模、目标数据的源地址和目标数据的目的地址,目标数据在所述源地址的摆放间隔大小、目标数据在所述目的地址的摆放间隔大小、访问次数和数据变换规模;其中所述数据规模为所述目标数据的每次传输的数据量、所述数据变换规模为所述目标数据进行数据变换的数据量。可选的,所述目标数据的源地址和目的地址还标记所属的存储空间的类型,若所述存储空间是外存储器,则所述目标数据的源地址和目的地址还标记所属的流;若所述存储空间为内存储器,则所述目标数据的源地址和目的地址还标记所属内存储器的子模块;其中,所述流为多组数据交替传送时的分组。可选的,所述DMA指令为定长指令,所述DMA指令包括操作码和操作域,操作码用于指示该指令的功能,操作域用于指示该指令的数据地址;所述DMA指令包括数据传送指令和地址跳转指令;所述数据传送指令第一操作域、第二操作域、第三操作域和第四操作域,和第五操作域,所述第一操作域用于指示目标数据的源地址所属的存储空间,所述第二操作域用于指示目标数据的源地址,所述第三操作域用于指示目标数据的目的地址所属的存储空间,所述第四操作域用于指示目标数据的目的地址;所述地址跳转指令包括第五操作域和第六操作域,所述第五操作域用于指示地址寄存器的编号,所述第六操作域用于指示跳转值寄存器的编号;其中,所述地址寄存器用于所述源地址,所述跳转值寄存器用于存储源地址的跳转值;所述DMA指令还包括用于指示对目标数据进行数据转换的方式的操作域。可选的,所述数据传输指令还包括第七操作域,所述第七操作域用于指示目标数据的每次传输的数据量。可选的,所述运算装置还包括:数据缓存单元,用于临时存储根据所述源地址从源存储器中读取的目标数据;其中,所述数据缓存单元包括:高速暂存存储器,用于支持不同大小的目标数据的传输,并写入所述目标存储器中所述目的地址对应的存储空间;数据转换单元,用于对从源存储器中读取的目标数据作数据转换;其中,所述数据转换包括但不限于数据精度转化、定浮点相互转换、数据排列方式转换、数据量大小转换;地址映射单元,用于对源地址或是目的地址作地址的映射,用映射后的地址到对应的存储空间中取数据。可选的,所述DMA控制模块包括指令单元、加法单元和读写单元,其中,所述指令单元,用于处理所述原始直接内存访问指令,以得到处理后的D本文档来自技高网...

【技术保护点】
1.一种运算装置,其特征在于,所述运算装置包括存储器、标量数据存储单元、运算单元、控制单元和传输单元,其中,所述存储器,用于存储矩阵;所述标量数据存储单元,用于存储标量数据,所述标量数据至少包括:所述矩阵在所述存储器内的存储地址;所述控制单元,用于控制所述运算单元获取第一运算指令,所述第一运算指令包括执行所述第一运算指令所需的矩阵读取指示;所述运算单元,用于依据所述矩阵读取指示向所述存储器发送读取命令;采用批量读取方式读取所述矩阵读取指示对应的矩阵,对该矩阵执行所述第一运算指令;所述传输单元,用于对目标数据进行传输,所述目标数据包括所述运算装置中的任一待传输的数据;所述传输单元包括寄存器模块和直接内存访问DMA控制模块,其中,所述寄存器模块,用于存储目标数据在源存储器中存储的源地址、所述目标数据在目的存储器中存储的目的地址和每次传输目标数据的数据量;所述DMA控制模块,用于接收DMA指令,并根据所述DMA指令从所述寄存器模块或所述DMA指令获取目标数据的源地址和目的地址;所述DMA控制模块,还用于根据所述目标数据的源地址从所述源存储器中获取所述目标数据,并将所述目标数据传输至所述目的存储器中所述目标数据的目的地址对应的存储空间;其中,所述源存储器为所述目标数据的存储空间,所述目的存储器用于存储传输后的目标数据。...

【技术特征摘要】
1.一种运算装置,其特征在于,所述运算装置包括存储器、标量数据存储单元、运算单元、控制单元和传输单元,其中,所述存储器,用于存储矩阵;所述标量数据存储单元,用于存储标量数据,所述标量数据至少包括:所述矩阵在所述存储器内的存储地址;所述控制单元,用于控制所述运算单元获取第一运算指令,所述第一运算指令包括执行所述第一运算指令所需的矩阵读取指示;所述运算单元,用于依据所述矩阵读取指示向所述存储器发送读取命令;采用批量读取方式读取所述矩阵读取指示对应的矩阵,对该矩阵执行所述第一运算指令;所述传输单元,用于对目标数据进行传输,所述目标数据包括所述运算装置中的任一待传输的数据;所述传输单元包括寄存器模块和直接内存访问DMA控制模块,其中,所述寄存器模块,用于存储目标数据在源存储器中存储的源地址、所述目标数据在目的存储器中存储的目的地址和每次传输目标数据的数据量;所述DMA控制模块,用于接收DMA指令,并根据所述DMA指令从所述寄存器模块或所述DMA指令获取目标数据的源地址和目的地址;所述DMA控制模块,还用于根据所述目标数据的源地址从所述源存储器中获取所述目标数据,并将所述目标数据传输至所述目的存储器中所述目标数据的目的地址对应的存储空间;其中,所述源存储器为所述目标数据的存储空间,所述目的存储器用于存储传输后的目标数据。2.根据权利要求1所述的装置,其特征在于,所述运算单元包括至少一个运算器,所述运算器包括:矩阵加法运算器、矩阵乘法运算器、大小比较运算器、非线性运算器和/或矩阵标量乘法运算器。3.根据权利要求1或2所述的装置,其特征在于,所述运算单元还用于对矩阵执行n级流水级运算,对所述矩阵执行n级流水级运算包括:对所述矩阵执行第一流水级的计算,得到第一结果;将所述第一结果输入到第二流水级,所述第二流水级对所述第一结果执行第二流水级的计算,得到第二结果;重复上述步骤,直至执行完第n-1流水级的计算,得到第n-1计算结果,其中,n为大于1的正整数;将所述第n-1计算结果输入到第n流水级,所述第n流水级对所述第n-1结果执行第n流水级的计算,得到第n结果,以及将所述第n结果输入到所述存储器。4.根据权利要求3所述的装置,其特征在于,若所述n=3,则所述第一流水级至少包括:矩阵加法计算器、矩阵乘法计算器;所述第二流水级至少包括:大小比较计算器;所述第三流水级至少包括:非线性运算器、矩阵标量乘法器。5.根据权利要求1至4任一项所述的装置,其特征在于,所述控制单元还用于:所述矩阵乘向量指令与矩阵乘向量指令之前的运算指令是否存在关联关系,若存在关联关系,将矩阵乘向量指令存储到缓存单元,若不存在关联关系,则通过传输单元将所述矩阵乘向量指令传输至运算单元。6.根据权利要求1所述的装置,其特征在于,所述控制单元包括:取指模块、译码模块和指令队列模块,其中,所述取指模,用于从指令缓存单元中获取运算指令;所述译码模块,用于对获取的运算指令进行译码;所述指令队列,用于对译码后的运算指令进行顺序存储。7.根据权利要求1-6任一项所述的装置,其特征在于,所述DMA控制模块具体用于:根据所述DMA指令从所述寄存器模块中或者从所述DMA指令中获取所述每次传输目标数据的数据量;根据所述每次传输目标数据的数据量将所述目标数据传输至所述目的存储器中所述目标数据的目的地址对应的存储空间。8.根据权利要求7所述的装置,其特征在于,所述寄存器模块包括:标量寄存器堆,用于存储数据规模、目标数据的源地址和目标数据的目的地址,目标数据在所述源地址的摆放间隔大小、目标数据在所述目的地址的摆放间隔大小、访问次数和数据变换规模;其中所述数据规模为所述目标数据的每次传输的数据量、所述数据变换规模为所述目标数据进行数据变换的数据量。9.根据权利要求1-8任一项所述的装置,其特征在于,所述目标数据的源地址和目的地址还标记所属的存储空间的类型,若所述存储空间是外存储器,则所述目标数据的源地址和目的地址还标记所属的流;若所述存储空间为内存储器,则所述目标数据的源地址和目的地址还标记所属内存储器的子模块;其中,所述流为多组数据交替传送时的分组。10.根据权利要求9所述的装置,其特征在于,所述DMA指令为定长指令,所述DMA指令包括操作码和操作域,操作码用于指示该指令的功能,操作域用于指示该指令的数据地址;所述DMA指令包括数据传送指令和地址跳转指令;所述数据传送指令第一操作域、第二操作域、第三操作域和第四操作域,和第五操作域,所述第一操作域用于指示目标数据的源地址所属的存储空间,所述第二操作域用于指示目标数据的源地址,所述第三操作域用于指示目标数据的目的地址所属的存储空间,所述第四操作域用于指示目标数据的目的地址;所述地址跳转指令包括第五操作域和第六操作域,所述第五操作域用于指示地址寄存器的编号,所述第六操作域用于指示跳转值寄存器的编号;其中,所述地址寄存器用于所述源地址,所述跳转值寄存器用于存储源地址的跳转值;所述DMA指令还包括用于指示对目标数据进行数据转换的方式的操作域。11.根据权利要求10所述的装置,其特征在于,所述数据传输指令还包括第七操作域,所述第七操作域用于指示目标数据的每次传输的数据量。12.根据权利要求1-11任一项所述的装置,其特征在于,所述运算装置还包括:数据缓存单元,用于临时存储根据所述源地址从源存储器中读取的目标数据;其中,所述数据缓存单元包括:高速暂存存储器,用于支持不同大小的目标数据的传输,并写入所述目标存储器中所述目的地址对应的存储空间;数据转换单元,用于对从源存储器中读取的目标数据作数据转换;其中,所述数据转换包括但不限于数据精度转化、定浮点相互转换、数据排...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

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

1