基于RISCV扩展指令的行人定位Soc系统及其方法
未命名
07-29
阅读:84
评论:0

基于riscv扩展指令的行人定位soc系统及其方法
技术领域
1.本发明属于计算机体系结构技术领域,尤其涉及一种基于riscv扩展指令的行人定位soc系统及其方法。
背景技术:
2.近年来行人定位技术被广泛应用在火场救援、野外探险搜救、地下车库寻车等场景中,面对复杂的自然环境,一套实时的、准确的、便携的行人定位系统成为相关领域应用发展的必然趋势。目前行人定位的实现技术包括以wifi、蓝牙以及无线射频识别技术等为平台的外源信号技术和以惯性导航系统为平台的自主定位技术,考虑到实际应用场景和功能设备的发展趋势,不难想象后者在未来行人定位市场中将占据一席之地。而以惯性导航系统为平台的自主定位技术涉及卡尔曼滤波算法,其中包含大量向量矩阵运算,且随着行人定位技术的发展和算法的迭代,传感器在相同时间下需要探测的数据量增大,复杂度提高,传统架构的处理器执行这些运算需要消耗大量资源和时间。
技术实现要素:
3.针对现有技术中的上述不足,本发明提供的一种基于riscv扩展指令的行人定位soc系统及其方法解决了解决了传统行人定位系统运算性能不足的问题。
4.为了达到上述发明目的,本发明采用的技术方案为:一种基于riscv扩展指令的行人定位soc系统,包括传感器和soc系统;
5.所述传感器,用于获取原始数据;
6.所述soc系统,用于根据原始数据,基于riscv扩展指令实现行人定位。
7.本发明的有益效果为:本发明通过灵活使用soc系统的硬件资源调度,对行人定位算法中涉及的向量运算进行处理,极大提高了向量数据计算的速度,通过加速运算向量数据,实现了行人定位算法的加速,减少了指令数量,提高了行为定位soc处理的性能。
8.进一步地,所述soc系统包括riscv处理器和向量协处理器;
9.所述riscv处理器,用于根据原始数据和riscv扩展指令,利用行人定位算法生成向量指令并提取向量数据,以及根据整数处理数据和浮点数处理数据,完成行人定位算法计算,实现行人定位;
10.所述向量协处理器,用于根据向量指令处理向量数据,得到整数处理数据和浮点数处理数据。
11.上述进一步方案的有益效果为:通过采用向量协处理器加速向量数据的运算,从而提高行人定位算法的运行速度;并且以“向量协处理器+riscv处理器”的方式,减少了指令数量,提高了运算性能。
12.进一步地,所述向量协处理器包括指令派遣模块、指令执行模块和储载模块;
13.所述指令派遣模块,用于更新状态信息和向量指令的执行进度;解码向量指令,得到向量运算配置信息、处理数据类型、运算操作类型和读写操作信息;并根据指令执行占用
信息和储载占用信息对向量运算配置信息、处理数据类型、运算操作类型和读写操作信息进行传输操作;
14.所述指令执行模块,用于获取指令执行占用信息,并解码处理数据类型和运算操作类型得到操作短指令,以及根据向量运算配置信息和操作短指令,对向量数据进行处理得到整数处理数据和浮点数处理数据;
15.所述储载模块,用于获取储载占用信息,并根据读写操作信息,获取riscv处理器的向量数据,以及将整数处理数据和浮点数处理数据传输至riscv处理器。
16.上述进一步方案的有益效果为:以指令派遣模块、指令执行模块和储载模块相结合的处理器结构可以最大程度上保证数据通路的畅通,且三模块功能明确、各司其职,使处理器结构更明晰。
17.进一步地,所述指令派遣模块包括译码单元、控制与状态缓存器和冒险处理单元;
18.所述译码单元,用于解码向量指令,得到向量运算配置信息、处理数据类型、运算操作类型和读写操作信息,并根据控制信号将向量运算配置信息、处理数据类型、运算操作类型和读写操作信息传输至控制与状态缓存器;
19.所述控制与状态缓存器,用于更新状态信息和向量指令的执行进度,以及根据控制信号将向量运算配置信息、处理数据类型和运算操作类型传输至指令执行模块并将读写操作信息传输至储载模块;
20.所述冒险处理单元,用于根据指令执行占用信息和储载占用信息,采用更新查找表的方式检测冒险存在和类型,得到控制信号。
21.上述进一步方案的有益效果为:所述指令派遣模块可以根据向量协处理器内部功能单元的占用情况合理调度指令的执行顺序,最大程度上保证指令的流水线式执行,从而提高向量数据计算的速度。
22.进一步地,所述指令执行模块包括调度单元、算数逻辑单元、浮点运算单元、请求处理单元和寄存器组;
23.所述调度单元,用于解码处理数据类型和运算操作类型得到操作短指令,以及根据第一占用信息、第二占用信息和第三占用信息,得到指令执行占用信息;
24.所述算数逻辑单元,用于获取第一占用信息,以及根据向量运算配置信息,利用操作短指令得到整数读写请求,并对整数数据进行计算,得到整数处理数据;
25.所述浮点运算单元,用于获取第二占用信息,以及根据向量运算配置信息,利用操作短指令得到浮点数读写请求,并对浮点数数据进行计算,得到浮点数处理数据;
26.所述请求处理单元,用于获取第三占用信息,并根据操作短指令,利用寄存器组占用信息检测冒险存在和类型,得到读写请求优先级,并根据读写请求优先级、整数读写请求和浮点数读写请求得到整数数据和浮点数数据,并将整数数据和浮点数数据分别传输至算数逻辑单元和浮点运算单元,以及将整数处理数据和浮点数处理数据传输至寄存器组;
27.所述寄存器组,用于获取寄存器组占用信息,并根据向量数据得到整数数据和浮点数数据,以及将整数处理数据和浮点数处理数据传输至储载模块。
28.上述进一步方案的有益效果为:所述指令执行模块实质上是向量计算操作的执行场所,其相应结构可以保证对向量计算各基本操作类型的硬件支持以及数据通路的畅通。
29.进一步地,所述储载模块包括存储单元和载入单元;
30.所述存储单元,用于获取储载占用信息,以及根据读写操作信息,得到整数处理数据和浮点数处理数据,并将整数处理数据和浮点数处理数据传输至riscv处理器;
31.所述载入单元,用于获取储载占用信息,以及根据读写操作信息,得到riscv处理器的向量数据,并将向量数据传输至指令执行模块。
32.上述进一步方案的有益效果为:所述储载模块可以使向量协处理器和riscv处理器之间实现高效的数据交换,从而提高行人定位算法的执行速度。
33.本发明提供的一种基于riscv扩展指令的行人定位soc的处理方法,包括以下步骤:
34.s1、利用传感器实时采集行人定位数据;
35.s2、根据riscv扩展指令、riscv处理器和行人定位数据,采用行人定位算法计算得到向量指令和向量数据;
36.s3、根据向量指令,利用向量协处理器对向量数据进行计算得到处理好的数据;
37.s4、根据处理好的数据,利用riscv处理器,完成行人定位。
38.本发明的有益效果为:本发明通过“向量协处理器+riscv处理器”结合的方式实现行人定位算法,以向量协处理器对行人定位算法中的向量数据进行处理,加速了向量数据的处理速度,从而提高了行人定位算法的运行速度,提高了行为定位soc处理的性能。
附图说明
39.图1为本发明的系统结构图。
40.图2为本发明的方法流程图。
具体实施方式
41.下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
42.实施例1
43.如图1所示,一种基于riscv扩展指令的行人定位soc系统,包括传感器和soc系统;
44.所述传感器,用于获取原始数据;
45.所述soc系统,用于根据原始数据,基于riscv扩展指令实现行人定位。
46.本实施例中,soc系统为soc系统级芯片或片上系统。
47.所述soc系统包括riscv处理器和向量协处理器;
48.所述riscv处理器,用于根据原始数据和riscv扩展指令,利用行人定位算法生成向量指令并提取向量数据,以及根据整数处理数据和浮点数处理数据,完成行人定位算法计算,实现行人定位;
49.所述向量协处理器,用于根据向量指令处理向量数据,得到整数处理数据和浮点数处理数据。
50.本实施例中,所述行人定位算法是基于惯性传感器的零速更新算法,所述惯性传感器一般由三轴加速度计与三轴陀螺仪构成,其测量的数据为传感器在三维空间坐标系内
移动的加速度,数据形式为三维矩阵,所述零速更新算法利用卡尔曼滤波来减小测量数据中的噪声误差。
51.所述向量协处理器包括指令派遣模块、指令执行模块和储载模块;
52.所述指令派遣模块,用于更新状态信息和向量指令的执行进度;解码向量指令,得到向量运算配置信息、处理数据类型、运算操作类型和读写操作信息;并根据指令执行占用信息和储载占用信息对向量运算配置信息、处理数据类型、运算操作类型和读写操作信息进行传输操作;
53.所述指令执行模块,用于获取指令执行占用信息,并解码处理数据类型和运算操作类型得到操作短指令,以及根据向量运算配置信息和操作短指令,对向量数据进行处理得到整数处理数据和浮点数处理数据;
54.所述储载模块,用于获取储载占用信息,并根据读写操作信息,获取riscv处理器的向量数据,以及将整数处理数据和浮点数处理数据传输至riscv处理器。
55.本实施例中,指令派遣模块解码向量指令得到向量长指令,解码后的向量长指令信息包括模块占用信息、向量运算配置信息、读写操作信息、处理数据类型、运算操作类型、寄存器使用情况等,向量配置信息包括向量数据的长度和寄存器组的分组倍数;模块占用信息说明该条指令下发给了指令执行模块还是储载模块,而指令执行占用信息和储载占用信息是说明相应模块中各单元的占用情况。
56.所述指令派遣模块包括译码单元、控制与状态缓存器和冒险处理单元;
57.所述译码单元,用于解码向量指令,得到向量运算配置信息、处理数据类型、运算操作类型和读写操作信息,并根据控制信号将向量运算配置信息、处理数据类型、运算操作类型和读写操作信息传输至控制与状态缓存器;
58.所述控制与状态缓存器,用于更新状态信息和向量指令的执行进度,以及根据控制信号将向量运算配置信息、处理数据类型和运算操作类型传输至指令执行模块并将读写操作信息传输至储载模块;
59.所述冒险处理单元,用于根据指令执行占用信息和储载占用信息,采用更新查找表的方式检测冒险存在和类型,得到控制信号。
60.本实施例中,冒险处理单元根据指令执行占用信息和储载占用信息,即指令执行模块和储载模块传输的其各工作单元的占用信息,采用更新查找表的方式检测将要执行的指令和当前执行的指令是否存在相同模块占用和相同寄存器占用(即冒险存在和类型),当将要执行的指令和当前执行的指令不存在相同模块占用和相同寄存器占用时,冒险处理模块将会传输控制信号给译码单元允许指令的下发,反之则传输不允许指令下发的控制信号。
61.所述指令执行模块包括调度单元、算数逻辑单元、浮点运算单元、请求处理单元和寄存器组;
62.所述调度单元,用于解码处理数据类型和运算操作类型得到操作短指令,以及根据第一占用信息、第二占用信息和第三占用信息,得到指令执行占用信息;
63.所述算数逻辑单元,用于获取第一占用信息,以及根据向量运算配置信息,利用操作短指令得到整数读写请求,并对整数数据进行计算,得到整数处理数据;
64.所述浮点运算单元,用于获取第二占用信息,以及根据向量运算配置信息,利用操
作短指令得到浮点数读写请求,并对浮点数数据进行计算,得到浮点数处理数据;
65.所述请求处理单元,用于获取第三占用信息,并根据操作短指令,利用寄存器组占用信息检测冒险存在和类型,得到读写请求优先级,并根据读写请求优先级、整数读写请求和浮点数读写请求得到整数数据和浮点数数据,并将整数数据和浮点数数据分别传输至算数逻辑单元和浮点运算单元,以及将整数处理数据和浮点数处理数据传输至寄存器组;
66.所述寄存器组,用于获取寄存器组占用信息,并根据向量数据得到整数数据和浮点数数据,以及将整数处理数据和浮点数处理数据传输至储载模块。
67.所述储载模块包括存储单元和载入单元;
68.所述存储单元,用于获取储载占用信息,以及根据读写操作信息,得到整数处理数据和浮点数处理数据,并将整数处理数据和浮点数处理数据传输至riscv处理器;
69.所述载入单元,用于获取储载占用信息,以及根据读写操作信息,得到riscv处理器的向量数据,并将向量数据传输至指令执行模块。
70.本发明的工作原理为:通过传感器实时采集行人定位数据,即原始数据;传感器将原始数据传输至riscv处理器;riscv处理器基于内置的riscv扩展指令并根据原始数据执行行人定位算法,得到行人定位算法产生的向量指令和向量数据;riscv处理器将向量指令传输至指令派遣模块的译码单元,通过译码单元对向量指令进行解码,得到向量运算配置信息、处理数据类型、运算操作类型和读写操作信息;指令执行模块获取内部各单元的占用信息,得到指令执行占用信息;储载模块获取内部个单元的占用信息,得到储载占用信息;指令派遣模块的冒险处理单元根据指令执行占用信息和储载占用信息检测冒险存在和类型,得到控制信号;译码单元根据控制信号决定是否将指令传输至指令执行模块,若是,将向量运算配置信息、处理数据类型、运算操作类型和读写操作信息传输至控制与状态缓存器,由控制与状态缓存器将向量运算配置信息、处理数据类型和运算操作类型传输至指令执行模块,并将读写操作信息传输至储载模块,否则,不断更新指令执行占用信息和储载占用信息,并重复判断;储载模块根据读写操作信息从riscv处理器获取向量数据,并将向量数据传输至指令执行模块的寄存器组;寄存器组获取自身的占用信息,得到寄存器组占用信息,并将向量数据的整数数据和浮点数数据分别存储;指令执行模块的调度单元解码处理数据类型和运算操作类型得到操作短指令,当算数逻辑单元和浮点运算单元运作时,根据操作短指令分别得到整数读写请求和浮点数读写请求,由请求处理单元根据寄存器组占用信息得到读写请求优先级,并根据读写请求优先级、整数读写请求和浮点数读写请求从寄存器组中读取整数数据和浮点数数据;算数逻辑单元和浮点运算单元分别对整数数据和浮点数数据进行计算,分别得到整数处理数据和浮点数处理数据;请求处理单元将整数处理数据和浮点数处理数据传输至寄存器组进行存储,由储载模块的存储单元将整数处理数据和浮点数处理数据传输至riscv处理器;riscv处理器根据整数处理数据和浮点数处理数据继续执行行人定位算法,完成行人定位。
71.实施例2
72.如图2所示,本发明提供的一种基于riscv扩展指令的行人定位soc的处理方法,包括以下步骤:
73.s1、利用传感器实时采集行人定位数据;
74.s2、根据riscv扩展指令、riscv处理器和行人定位数据,采用行人定位算法计算得
到向量指令和向量数据;
75.s3、根据向量指令,利用向量协处理器对向量数据进行计算得到处理好的数据;
76.s4、根据处理好的数据,利用riscv处理器,完成行人定位。
技术特征:
1.一种基于riscv扩展指令的行人定位soc系统,其特征在于,包括传感器和soc系统;所述传感器,用于获取原始数据;所述soc系统,用于根据原始数据,基于riscv扩展指令实现行人定位。2.根据权利要求1所述基于riscv扩展指令的行人定位soc系统,其特征在于,所述soc系统包括riscv处理器和向量协处理器;所述riscv处理器,用于根据原始数据和riscv扩展指令,利用行人定位算法生成向量指令并提取向量数据,以及根据整数处理数据和浮点数处理数据,完成行人定位算法计算,实现行人定位;所述向量协处理器,用于根据向量指令处理向量数据,得到整数处理数据和浮点数处理数据。3.根据权利要求2所述基于riscv扩展指令的行人定位soc系统,其特征在于,所述向量协处理器包括指令派遣模块、指令执行模块和储载模块;所述指令派遣模块,用于更新状态信息和向量指令的执行进度;解码向量指令,得到向量运算配置信息、处理数据类型、运算操作类型和读写操作信息;并根据指令执行占用信息和储载占用信息对向量运算配置信息、处理数据类型、运算操作类型和读写操作信息进行传输操作;所述指令执行模块,用于获取指令执行占用信息,并解码处理数据类型和运算操作类型得到操作短指令,以及根据向量运算配置信息和操作短指令,对向量数据进行处理得到整数处理数据和浮点数处理数据;所述储载模块,用于获取储载占用信息,并根据读写操作信息,获取riscv处理器的向量数据,以及将整数处理数据和浮点数处理数据传输至riscv处理器。4.根据权利要求3所述基于riscv扩展指令的行人定位soc系统,其特征在于,所述指令派遣模块包括译码单元、控制与状态缓存器和冒险处理单元;所述译码单元,用于解码向量指令,得到向量运算配置信息、处理数据类型、运算操作类型和读写操作信息,并根据控制信号将向量运算配置信息、处理数据类型、运算操作类型和读写操作信息传输至控制与状态缓存器;所述控制与状态缓存器,用于更新状态信息和向量指令的执行进度,以及根据控制信号将向量运算配置信息、处理数据类型和运算操作类型传输至指令执行模块并将读写操作信息传输至储载模块;所述冒险处理单元,用于根据指令执行占用信息和储载占用信息,采用更新查找表的方式检测冒险存在和类型,得到控制信号。5.根据权利要求4所述基于riscv扩展指令的行人定位soc系统,其特征在于,所述指令执行模块包括调度单元、算数逻辑单元、浮点运算单元、请求处理单元和寄存器组;所述调度单元,用于解码处理数据类型和运算操作类型得到操作短指令,以及根据第一占用信息、第二占用信息和第三占用信息,得到指令执行占用信息;所述算数逻辑单元,用于获取第一占用信息,以及根据向量运算配置信息,利用操作短指令得到整数读写请求,并对整数数据进行计算,得到整数处理数据;所述浮点运算单元,用于获取第二占用信息,以及根据向量运算配置信息,利用操作短指令得到浮点数读写请求,并对浮点数数据进行计算,得到浮点数处理数据;
所述请求处理单元,用于获取第三占用信息,并根据操作短指令,利用寄存器组占用信息检测冒险存在和类型,得到读写请求优先级,并根据读写请求优先级、整数读写请求和浮点数读写请求得到整数数据和浮点数数据,并将整数数据和浮点数数据分别传输至算数逻辑单元和浮点运算单元,以及将整数处理数据和浮点数处理数据传输至寄存器组;所述寄存器组,用于获取寄存器组占用信息,并根据向量数据得到整数数据和浮点数数据,以及将整数处理数据和浮点数处理数据传输至储载模块。6.根据权利要求3所述基于riscv扩展指令的行人定位soc系统,其特征在于,所述储载模块包括存储单元和载入单元;所述存储单元,用于获取储载占用信息,以及根据读写操作信息,得到整数处理数据和浮点数处理数据,并将整数处理数据和浮点数处理数据传输至riscv处理器;所述载入单元,用于获取储载占用信息,以及根据读写操作信息,得到riscv处理器的向量数据,并将向量数据传输至指令执行模块。7.根据权利要求1-6任一所述基于riscv扩展指令的行人定位soc系统的处理方法,其特征在于,包括以下步骤:s1、利用传感器实时采集行人定位数据;s2、根据riscv扩展指令、riscv处理器和行人定位数据,采用行人定位算法计算得到向量指令和向量数据;s3、根据向量指令,利用向量协处理器对向量数据进行计算得到处理好的数据;s4、根据处理好的数据,利用riscv处理器,完成行人定位。
技术总结
本发明公开了一种基于RISCV扩展指令的行人定位Soc系统及其方法,属于计算机体系结构技术领域,该系统包括传感器和Soc系统;所述传感器,用于获取原始数据;所述Soc系统,用于根据原始数据,基于RISCV扩展指令实现行人定位。本发明解决了传统行人定位系统运算性能不足的问题。的问题。的问题。
技术研发人员:阎波 史超凡 王鹏飞 章子恒 马千里
受保护的技术使用者:电子科技大学
技术研发日:2023.03.16
技术公布日:2023/7/26
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/