A device of SLAM hardware accelerator includes a storage section for storing input data, temporary operation result data, final operation result data, instruction set and/or algorithm parameter data required for operation process, an operation section connected with the storage section for completing calculation of SLAM-related algorithms and applications, and a control section connected with the storage section and the operation section. It is used to control and coordinate the storage part and the operation part. The invention also provides a method for completing SLAM operation, which controls data transportation, data operation, program operation, etc. by means of instructions. The device and method of the present invention can effectively accelerate the SLAM algorithm according to different requirements and satisfy different requirements of operation. It has the advantages of strong flexibility, high configurability, fast operation speed and low power consumption.
【技术实现步骤摘要】
SLAM运算装置和方法
本专利技术涉及一种SLAM(simultaneousLocalizationandMapping,即时定位与建图)运算装置和方法,用于根据不同需求对SLAM算法的运算进行加速。
技术介绍
在未知的环境中自主导航是移动机器人(例如无人地面和空中载具等)的一个基本能力。SLAM任务中即时定位与建图的定位主要完成机器人的位置在地图中的确定工作,建图的主要任务是是机器人根据环境建立对应环境的地图。在缺乏位置环境初始地图的情况下这就需要机器人能够实时地构建地图并且利用地图完成自身的定位,完成这项任务所需要的SLAM算法随之产生。然而在移动机器人有限的计算能力和严格的功耗要求下精确地实现SLAM算法是现实中所面临的最大问题之一。首先,SLAM算法因为有实时性的要求因而需要极高的运算速度来完成类似帧与帧间短时间的大量运算,其次SLAM算法由于受到移动机器人的限制对功耗有着苛刻的要求,最后SLAM算法种类众多运算类型较广,因此设计的加速器需要支持各种类型的SLAM算法。在现有技术中,一种实现SLAM算法的方式是直接在通用处理器(CPU)上进行运算,该方法的 ...
【技术保护点】
1.一种处理器,其特征在于,所述处理器包括运算部分和控制部分,所述运算部分包括多维运算单元:所述多维运算单元,用于对所述目标数据进行累加,得到累加结果,将所述累加结果存储至预设的第一目的地址;所述多维运算单元,还用于根据目标运算指令,从所述第一目的地址中读取所述累加结果,以及对所述累加结果进行目标运算,得到最终结果,所述目标运算包括加法运算和/或减法运算;控制部分,用于将所述最终结果存储至预设的第二目的地址。
【技术特征摘要】
1.一种处理器,其特征在于,所述处理器包括运算部分和控制部分,所述运算部分包括多维运算单元:所述多维运算单元,用于对所述目标数据进行累加,得到累加结果,将所述累加结果存储至预设的第一目的地址;所述多维运算单元,还用于根据目标运算指令,从所述第一目的地址中读取所述累加结果,以及对所述累加结果进行目标运算,得到最终结果,所述目标运算包括加法运算和/或减法运算;控制部分,用于将所述最终结果存储至预设的第二目的地址。2.根据权利要求1所述的处理器,其特征在于,控制部分,还用于根据参考运算指令,从在存储部分中目标数据的起始地址读取所述目标地址,以及将所述目标数据传输至所述多维运算单元。3.根据权利要求1所述的处理器,其特征在于,所述处理器还包括存储部分,所述存储部分包括:输入存储模块,用于存储输入和/或输出数据;中间结果存储模块,用于存储临时运算结果数据;最终结果存储模块,用于存储最终运算结果数据;指令存储模块,用于存储运算过程中的指令集;和/或缓冲存储模块,用于对数据的缓冲存储。4.根据权利要求1所述的处理器,其特征在于,所述运算部分包括:加速运算装置,用于执行SLAM相关算法和应用中的目标运算,所述目标运算包括加速和处理SLAM的运算;其他运算装置,用于执行SLAM相关算法和应用中的其他运算,所述其他运算为所述SLAM相关算法和应用中除所述目标运算之外的运算。5.根据权利要求4所述的处理器,其特征在于,所述加速运算装置包含向量运算单元和矩阵运算单元。6.根据权利要求2所述的处理器,其特征在于,所述控制部分还用于对所述存储部分中的每个模块和所述运算部分进行连接,控制部分包括先进先出队列和控制处理器,其中,所述先进先出队列用于存储控制信号;所述控制处理器用于取出待执行的控制信号,对所述待执行的控制信号进行解析,得到控制逻辑,根据所述控制逻辑对所述存储部分和所述运算部分进行控制和协调。7.根据权利要求3所述的处理器,其特征在于,所述指令集包括:控制操作指令类,用于选取待执行的运行指令的控制,所述控制操作指令类包括跳转指令和分支指令,跳转指令包括直接跳转指令和间接跳转指令,分支指令包括条件分支指令;数据操作指令类,用于控制数据的传输;所述数据操作类指令包括以下中至少一种:LD/ST指令,用于DRAM与SRAM中传输数据;MOV指令,用于在SRAM之间传输数据;RD/WR指令,用于表示在SRAM与BUFFER之间传输数据;宏运算指令类,用于完整的运算操作;所述宏运算指令包括以下至少一种:卷积运算指令、卷积操作指令、图像累加操作指令、图像BOX滤波操作指令、局部极值操作指令、计数器比较操作指令和/或池化运算指令;或者,所述宏运算指令类包括以下至少一种:矩阵与矩阵乘法指令、矩阵与矩阵加法指令、矩阵与向量乘法指令、矩阵与向量加法指令、矩阵与标量乘法指令、矩阵与标量加法矩阵、向量与向量乘法指令和向量与向量外积指令;或者,所述宏运算指令类包括以下至少一种:向量与向量乘法指令、向量与向量加法指令、向量与标量乘法指令、向量与标量加法指令、标量开方指令、标量取随机指令和移动指令;多维数据运算指令类,用于控制多维数据的运算操作,所述多维数据的运算操作包括多维数据与多维数据间的运算操作,多维数据与一维向量数据间的运算操作以及多维数据与一维标量数据之间的运算操作;和/或一维数据运算指令类,用于控制一维数据的运算操作,所述一维数据包括:一维向量和一维标量。8.根据权利要求7所述的处理器,其特征在于,所述处理器还包括汇编器,用于在运算过程中,从...
【专利技术属性】
技术研发人员:陈云霁,杜子东,张磊,陈天石,
申请(专利权)人:北京中科寒武纪科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。