基于异构多核处理器的RPC实现方法及介质技术

技术编号:26689457 阅读:60 留言:0更新日期:2020-12-12 02:38
本发明专利技术涉及一种基于异构多核处理器的RPC实现方法及介质,包括:任意处理核心作为请求方发起调用请求时,创建第一代理线程将调用数据进行序列化打包,并通过Mailbox寄存器或共享内存进行发送;被调方创建第二代理线程进行实时监控,接收到调用数据时进行读取和反序列化处理,获取被调用参数信息,通过第二代理线程根据参数信息进行调用,返回调用结果。本发明专利技术的有益效果为:对性能依赖度低,可以在低成本异构平台上实现;操作系统不限;不区分主从核,可以实现双向RPC调用。

【技术实现步骤摘要】
基于异构多核处理器的RPC实现方法及介质
本专利技术涉及嵌入式领域,具体涉及了一种基于异构多核处理器的RPC实现方法及介质。
技术介绍
随着芯片工艺越来越接近摩尔定律的极限,以往依赖增加单位面积晶体管数目来提高芯片性能的方法已经难以为继,定制化芯片的设计方法越来越受到重视。通过把不同ISA架构的处理器核心集成到一个系统中,可以将不同类型的计算任务分配到不同的处理器核心并行处理,从而为产品提供更加灵活,高效的处理机制,是定制化芯片的发展方向之一。由于ISA的差异,异构多核系统一般采用AMP结构部署软件方案,后者的特点是每个核心运行独立的操作系统或者同一操作系统的独立实例,彼此之间不共享代码和内核对象等系统资源。在AMP工作模型下,核心之间是功能互补和互相依赖的,但由于ISA,二进制ABI标准和执行环境的不同,彼此之间无法直接调用对方提供的服务。为了实现异构核心之间任务协同和功能互访,基础系统需要提供远程过程调用(RPC)机制满足此种需求。通过双向RPC,可以屏蔽不同核心ISA指令集的差异,使远端代码如同在本地一样被执行。为BSP开发,驱动和应用开发者提供一致的系统接口和开发界面。目前,业内在异构多核RPC方面并未有标准协议和标准接口。一些是基于共享内存查询的方式实现。共享数据中存有被调函数的标识和参数信息,目标核查询到数据后,根据核间事先约定的私有协议对数据进行解析,得到远端调用接口和参数信息,然后通过代理线程转化为本地调用。但这种实现由于采用查询方式,执行效率较低。
技术实现思路
本专利技术的目的在于至少解决现有技术中存在的技术问题之一,提供了一种基于异构多核处理器的RPC实现方法及介质,通过串口命令与系统控制处理器进行交互,支持内存和寄存器访问、应用处理器状态监测、支持交互式调试,操作简便,成本低廉。本专利技术的技术方案包括一种基于异构多核处理器的RPC实现方法,所述异构多核处理器包括至少两个处理核心,其特征在于:S100,任意处理核心作为请求方发起调用请求时,创建第一代理线程将调用数据进行序列化打包,并通过Mailbox寄存器或共享内存进行发送;S200,被调方创建第二代理线程进行实时监控,接收到所述调用数据时进行读取和反序列化处理,获取被调用参数信息,通过所述第二代理线程根据所述参数信息进行调用,返回调用结果。根据所述的基于异构多核处理器的RPC实现方法,其中任意所述处理核心均可以作为请求方或被调方。根据所述的基于异构多核处理器的RPC实现方法,其中调用数据包括函数标识、函数参数列表及数据包体积。根据所述的基于异构多核处理器的RPC实现方法,其中S100包括:S110,对所述函数标识及函数参数列表进行打包,具体地,对所述参数列表中非指针参数进行直接打包,对指针参数进行深度拷贝,生成函数调用闭包;S120,根据所述函数调用闭包的数据包体积,对数据包体积小于设定值的数据包写入所述Mailbox寄存器,对数据包体积不小于设定值的数据包写入所述共享内存;S130,发送IPI核间请求至被调方处理核心。根据所述的基于异构多核处理器的RPC实现方法,其中深度拷贝具体包括:对所述指针参数进行深度遍历,获取所述指针参数的树形结构,并对所述树形结构进行扁平化处理,生成对应的闭包,其中,闭包包括所述指针参数的层级、依赖关系及偏移。根据所述的基于异构多核处理器的RPC实现方法,其中S200包括:S210,被调方接收到所述IPI核间请求唤醒所述第二代理线程,通过所述第二代理线程读取所述Mailbox寄存器或所述共享内存的所述调用数据,解析得到被调用的所述函数标识及函数参数列表;S220,根据所述函数标识获取对应的函数入口,将所述函数参数列表传入所述函数入口执行调用,得到调用结果;S230,将所述调用结果通过所述Mailbox寄存器或所述共享内存,并通过所述第二代理线程发送IPI中断信号,请求方处理核心根据所述IPI中断信号获取调用结果。根据所述的基于异构多核处理器的RPC实现方法,其中该方法还包括:所述第一代理线程及第二代理线程每次完成调用后,自动挂起并实施监控对应处理核心的调用请求。根据所述的基于异构多核处理器的RPC实现方法,其中第二代理线程的数量根据所述调用数据的大小进行自定义增减。根据所述的基于异构多核处理器的RPC实现方法,其中任意所述处理核心之间的传输方式及参数信息可自定义设置。本专利技术的技术方案还包括一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一的方法步骤。本专利技术的有益效果为:对性能依赖度低,可以在低成本异构平台上实现;操作系统不限;不区分主从核,可以实现双向RPC调用。附图说明下面结合附图和实施例对本专利技术进一步地说明;图1所示为根据本专利技术实施方式的方法流程图;图2所示为根据本专利技术实施方式的处理核心交互示意图;图3所示为根据本专利技术实施方式的一次RPC调用的时序图;图4a,图4b,图4c所示为根据本专利技术实施方式的深度拷贝示意图。具体实施方式本部分将详细描述本专利技术的具体实施例,本专利技术之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本专利技术的每个技术特征和整体技术方案,但其不能理解为对本专利技术保护范围的限制。在本专利技术的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。术语解释:RPC调用:远程过程调用。本专利技术的描述中,除非另有明确的限定,设置等词语应做广义理解,所属
技术人员可以结合技术方案的具体内容合理确定上述词语在本专利技术中的具体含义。图1所示为根据本专利技术实施方式的方法流程图,具体地:S100,任意处理核心作为请求方发起调用请求时,创建第一代理线程将调用数据进行序列化打包,并通过Mailbox寄存器或共享内存进行发送;S200,被调方创建第二代理线程进行实时监控,接收到调用数据时进行读取和反序列化处理,获取被调用参数信息,通过第二代理线程根据参数信息进行调用,返回调用结果。图2所示为根据本专利技术实施方式的处理核心交互示意图,本地核心(如图2的发起方处理核心)首先将RPC访问请求进行序列化打包,被打包数据包括函数标识(ID),函数参数信息,然后根据数据包长度的大小,选择通过mailbox寄存器机制或者共享内存方式传递给被调方,接着本地核触发核间中断,通知远程核有待处理的RPC请求,完成上述操作后,请求线程进入Pending(挂起)状态,等待远程核RPC结束通知。远端方面(如2图中的被调方处理核心),核心创建1个或者多个代理线程,在RPC请求未到达时,代理线程一直处于Pending(挂起)状态,直到接收到远程RPC的中断请求。远端线程首先从共享内存或者Mailbox寄存器中读取数据包,获取被调接口标识信息,然后进本文档来自技高网
...

【技术保护点】
1.一种基于异构多核处理器的RPC实现方法,所述异构多核处理器包括至少两个处理核心,其特征在于:/nS100,任意处理核心作为请求方发起调用请求时,创建第一代理线程将调用数据进行序列化打包,并通过Mailbox寄存器或共享内存进行发送;/nS200,被调方创建第二代理线程进行实时监控,接收到所述调用数据时进行读取和反序列化处理,获取被调用参数信息,通过所述第二代理线程根据所述参数信息进行调用,返回调用结果。/n

【技术特征摘要】
1.一种基于异构多核处理器的RPC实现方法,所述异构多核处理器包括至少两个处理核心,其特征在于:
S100,任意处理核心作为请求方发起调用请求时,创建第一代理线程将调用数据进行序列化打包,并通过Mailbox寄存器或共享内存进行发送;
S200,被调方创建第二代理线程进行实时监控,接收到所述调用数据时进行读取和反序列化处理,获取被调用参数信息,通过所述第二代理线程根据所述参数信息进行调用,返回调用结果。


2.根据权利要求1所述的基于异构多核处理器的RPC实现方法,其特征在于,任意所述处理核心均可以作为请求方或被调方。


3.根据权利要求1所述的基于异构多核处理器的RPC实现方法,其特征在于,所述调用数据包括函数标识、函数参数列表及数据包体积。


4.根据权利要求3所述的基于异构多核处理器的RPC实现方法,其特征在于,所述S100包括:
S110,对所述函数标识及函数参数列表进行打包,具体地,对所述参数列表中非指针参数进行直接打包,对指针参数进行深度拷贝,生成函数调用闭包;
S120,根据所述函数调用闭包的数据包体积,对数据包体积小于设定值的数据包写入所述Mailbox寄存器,对数据包体积不小于设定值的数据包写入所述共享内存;
S130,发送IPI核间请求至被调方处理核心。


5.根据权利要求4所述的基于异构多核处理器的RPC实现方法,其特征在于,所述深度拷贝具体包括:
对所述指针参数进行深度遍历,获取所述指针参数的树形结构,并对...

【专利技术属性】
技术研发人员:曹子龙曾治金黄少锐
申请(专利权)人:珠海全志科技股份有限公司
类型:发明
国别省市:广东;44

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

1