【技术实现步骤摘要】
【国外来华专利技术】用于跨指令集架构过程调用的线程编织相关申请的交叉引用本申请要求于2018年7月10日提交的第62/696,132号美国临时专利申请的优先权,其全部内容通过引用整体合并于此。
本专利技术涉及启动代码的方法、执行应用程序的方法以及异构多处理器。
技术介绍
复杂的计算机系统经常利用异构方法,该方法涉及来自不同供应商的多个处理器核,每个处理器核都具有独特的指令集架构。生成用于异构多处理器的代码对于程序员可能是一项艰巨的任务。程序员本质上将必须处理分别与两个单独的二进制不兼容核兼容的过程调用,并处理可能在另一处理器可能更有效的边界处从一个线程转换到另一个线程的过程调用。这种复杂性使软件作者难以使用传统的高级计算机语言(诸如,高级C++线程原语和库)来关注功能的正确性。
技术实现思路
本专利技术提供一种启动代码的方法,该方法包括(i)将应用程序存储在存储器中,该应用程序具有第一、第二和第三函数,第一函数是调用第二和第三函数以运行应用程序的主函数;(ii)将应用程序编译到第一和第二异构处理器,以分别创建第一和第二中央处理单元(CPU)指令集架构(ISA)对象;(iii)通过从第一CPUISA对象中移除第三函数并且从第二CPUISA对象中移除第一和第二函数来修剪第一和第二CPUISA对象;(iv)分别在第一和第二CPUISA对象中代理插入第一和第二远程过程调用(RPC),并分别指向第二CPUISA对象中的第三函数和第一CPUISA对象中的第二函数;以及(v)对第二CPUISA对象进行节(secti ...
【技术保护点】
1.一种启动代码的方法,包括:/n(i)将应用程序存储在存储器中,所述应用程序具有第一函数、第二函数和第三函数,所述第一函数是调用所述第二函数和所述第三函数以运行所述应用程序的主函数;/n(ii)将所述应用程序编译到第一异构处理器和第二异构处理器,以分别创建第一中央处理单元CPU指令集架构ISA对象和第二CPU ISA对象;/n(iii)通过从所述第一CPU ISA对象中移除所述第三函数并且从所述第二CPU ISA对象中移除第一函数和第二函数来修剪所述第一CPU ISA对象和所述第二CPU ISA对象;/n(iv)分别在所述第一CPU ISA对象和所述第二CPU ISA对象中代理插入第一远程过程调用RPC和第二远程过程调用RPC,并分别指向所述第二CPU ISA对象中的所述第三函数和所述第一CPU ISA对象中的所述第二函数;以及/n(v)对所述第二CPU ISA对象进行节重命名,以创建所述第一CPU ISA对象和所述第二CPU ISA对象的公共应用程序库。/n
【技术特征摘要】
【国外来华专利技术】20180710 US 62/696,1321.一种启动代码的方法,包括:
(i)将应用程序存储在存储器中,所述应用程序具有第一函数、第二函数和第三函数,所述第一函数是调用所述第二函数和所述第三函数以运行所述应用程序的主函数;
(ii)将所述应用程序编译到第一异构处理器和第二异构处理器,以分别创建第一中央处理单元CPU指令集架构ISA对象和第二CPUISA对象;
(iii)通过从所述第一CPUISA对象中移除所述第三函数并且从所述第二CPUISA对象中移除第一函数和第二函数来修剪所述第一CPUISA对象和所述第二CPUISA对象;
(iv)分别在所述第一CPUISA对象和所述第二CPUISA对象中代理插入第一远程过程调用RPC和第二远程过程调用RPC,并分别指向所述第二CPUISA对象中的所述第三函数和所述第一CPUISA对象中的所述第二函数;以及
(v)对所述第二CPUISA对象进行节重命名,以创建所述第一CPUISA对象和所述第二CPUISA对象的公共应用程序库。
2.根据权利要求1所述的方法,其中,所述第一函数指向所述第二函数。
3.根据权利要求1所述的方法,其中,所述第一函数指向所述第一RPC。
4.根据权利要求1所述的方法,进一步包括:
将所述第一CPUISA对象中的所述第三函数和所述第二CPUISA对象中的所述第二函数分别替换为所述第一RPC和所述第二RPC。
5.根据权利要求1所述的方法,其中,所述应用程序具有被所述第一CPUISA对象和所述第二CPUISA对象的函数使用的数据结构。
6.根据权利要求5所述的方法,其中,在所述编译(ii)期间,所述数据结构被编译到所述第二处理器。
7.根据权利要求6所述的方法,其中,在所述修剪(iii)期间,所述数据结构从所述第二CPUISA对象中移除。
8.根据权利要求5所述的方法,其中,所述第一函数使用所述数据结构。
9.根据权利要求5所述的方法,其中,所述第三函数使用所述数据结构。
10.根据权利要求9所述的方法,其中,所述第二CPUISA对象中的所述第三函数指向所述第一CPUISA对象中的所述数据结构。
11.根据权利要求4所述的方法,进一步包括:
(1)用所述第一CPUISA对象中的至少一个第一CPUISA对象在所述第一处理器上执行所述主函数,所述主函数导致以下的顺序执行:
(2)用所述第一CPUISA对象中的至少一个第一CPUISA对象在所述第一处理器上执行所述第一RPC;
(3)用所述第二CPUISA对象中的至少一个第二CPUISA对象在所述第二处理器上执行所述第三函数;
(4)用所述第二CPUISA对象中的至少一个第二CPUISA对象在所述第二处理器上执行所述第二RPC;以及
(5)用所述第一CPUISA对象中的至少一个...
【专利技术属性】
技术研发人员:J·L·塔特,G·M·林克,
申请(专利权)人:奇跃公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。