异构多核处理器多层应用程序的执行方法及处理器的制造方法_2

文档序号:8487669阅读:来源:国知局
式】
[0050]图1为本发明异构多核处理器多层应用程序的执行方法实施例一的流程图,如图1所示,本发明异构多核处理器多层应用程序的执行方法包括:
[0051]S1、将所有任意第i层处理器程序中的可执行程序和控制流关系数据库装载到共享程序存储器中,令i = 1,生成并将第(i+Ι)层处理器的程序地址映射表存储在共享关系存储器中,这一步骤也就是对共享程序存储器的初始化过程;
[0052]S2、判断第i层处理器是否需要对第(i+Ι)层处理器执行调用程序;
[0053]S3、若第i层处理器需要对第(i+Ι)层处理器执行调用程序,则判断(i+1)〈η是否成立;
[0054]其中,η表示异构多核处理器包含的处理器层数,i彡η,η彡2。
[0055]S4、若(i+1) <n,则等待第i层处理器中所述调用程序前面的程序执行完毕;
[0056]S5、再在共享关系存储器中解析所述控制流关系数据库并查找所述第(i+Ι)层处理器的程序地址映射表得到在所述第(i+Ι)层处理器中所述调用程序对应的待访问地址;
[0057]S6、在所述第(i+Ι)层处理器中将所述调用程序从待访问地址处装载到指令存储器中;
[0058]S7、解析所述控制流关系数据库再生成并将第(i+2)层处理器的程序地址映射表存储在所述共孚关系存储器中;
[0059]S8、令i自加1,重复执行所述判断第i层处理器是否需要执行调用程序、所述判断(i+1) <n是否成立、所述等待第i层处理器中所述调用程序前面的程序执行完毕、所述在共享程序存储器中查找以装载调用程序和所述生成并将第(i+2)层处理器的程序地址映射表存储的过程,直至(i+1) = η ;也即循环所述S2?S8直至下一层处理器为最底层处理器;
[0060]S9、若(i+1) = n,则判断所述调用程序是否为阻塞调用;
[0061]S10、若所述调用程序为阻塞调用,则等待第i层处理器中所述调用程序前面的程序执彳丁完毕;
[0062]S11、在共享关系存储器中解析所述控制流关系数据库并查找所述第(i+Ι)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址;
[0063]S12、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中;
[0064]S13、令 i 自加 I;
[0065]S14、在第i层处理器中执行余下的程序得到执行结果;
[0066]S15、向第i层处理器与第(1-Ι)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果;
[0067]S16、判断第一层处理器是否执行完全部程序;
[0068]S17、若第一层处理器未执行完全部程序,则令i自减1,重复执行所述执行余下的程序、所述返回结果和所述判断第一层处理器是否执行完的过程,也即循环所述S14?S17步骤直至第一层处理器也即通用处理器执行完全部程序;
[0069]S18、若第一层处理器执行完全部程序,则向共享程序存储器返回执行结果。
[0070]优选的,实施例一的第二种实现方式中SI?S8与第一种实施方式SI?S8相同,不同之处在于,在所述判断α+1)〈η是否成立之后,包括:
[0071]S9、若(i+1) =n,且第i层处理器需要对第(i+Ι)层处理器执行调用程序,则判断所述调用程序是否为阻塞调用;
[0072]S11、若所述调用程序为非阻塞调用,则在共享关系存储器中查找并解析控制流关系数据库中的第(i+Ι)层处理器程序的程序地址映射表;程序映射地址表即根据初始化时生成的得到所述调用程序对应的待访问地址;
[0073]S12、将程序从第(i+Ι)层处理器的待访问地址处装载到第(i+Ι)层处理器的指令存储器中;
[0074]S13、令 i 自加 I;
[0075]S14、在第i层处理器中执行余下的程序得到执行结果;
[0076]S15、向第i层处理器与第(1-Ι)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果;
[0077]S16、判断第一层处理器是否执行完全部程序;
[0078]S17、若第一层处理器未执行完全部程序,则令i自减1,重复执行所述执行余下的程序、所述返回结果和所述判断第一层处理器是否执行完的过程;
[0079]S18、若第一层处理器执行完全部程序,则向共享程序存储器返回执行结果。
[0080]优选的,实施例一的第三种实现方式中SI?S8与第一种实施方式相同,不同之处在于,在所述判断第i层处理器是否需要对第(i+Ι)层处理器执行调用程序之后,包括:
[0081]S14、若第i层处理器不需要对第(i+Ι)层处理器执行调用程序(包括i = η),则在所述第i层处理器中执行余下的程序得到执行结果;
[0082]S15、向第i层处理器与第(1-Ι)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果;需要说明的是,第二层处理器可以间接向所述共享程序存储器返回所述执行结果,也可以向第i层处理器与第(i+Ι)层处理器之间的局部存储器返回所述执行结果;
[0083]S16、判断第一层处理器是否执行完全部程序;
[0084]S17、若第一层处理器未执行完全部程序,则令i自减1,重复执行所述执行余下的程序、所述返回结果和所述判断第一层处理器是否执行完的过程;
[0085]S18、若第一层处理器执行完全部程序,则向共享程序存储器返回执行结果。
[0086]为了更加清楚的说明本发明异构多核处理器多层应用程序的执行方法实施例一,下面结合具体的异构多核处理器进行说明,图2为本发明异构多核处理器多层应用程序的执行方法实施例一中具有η种不同功能部件的异构多核处理器体系结构,如图2所示,本发明异构多核处理器多层应用程序的执行方法包括:
[0087]S101、各层处理器程序和控制流关系数据库的初始化。将各层处理器程序库下所有的可执行文件和控制流关系数据库分别装载到共享程序存储器50中,根据控制流关系数据库解析出第2层处理器101程序在共享程序存储器50中的地址,并生成“程序地址映射表”(存放于共享关系存储器53中),跳转至S102 ;
[0088]S102、第I层处理器100程序执行。若需要调用第2层处理器101程序的函数,则在共享关系存储器53中查找并解析控制流关系数据库,根据初始化时生成的第2层处理器101程序的“程序地址映射表”,将第2层处理器101程序从共享程序存储器50的指定地址处加载到第2层处理器101的指令存储器51中,并根据控制流关系数据库解析出第2层处理器程序101对应的第3层处理器102程序在共享程序存储器50中的基址和大小,生成第3层处理器102程序的基址和大小的“程序地址映射表”(存放于共享关系存储器53中),跳转至S103 ;若不需要,执行余下第I层处理器100程序,得到最终程序执行结果。
[0089]S103、第2层处理器101程序执行。若需要调用第3层处理器102程序的函数,则需根据共享程序存储器中第3层处理器程序的“程序地址映射表”得到所需调用的第3层处理器102程序在共享程序存储器50中的地址和大小,并将其装载到第3层处理器102的指令存储器52中,并根据控制流关系数据库解析出下一层处理器程序对应的下下层处理器程序在共享程序存储器50的地址和大小,生成下下层处理器程序的“程序地址映射表”(存放于共享关系存储器53中),跳转至S104 ;若不需要,则执行余下第2层处理器101程序,并将执行结果数据直接返回至第2层处理器101与第3层处理器102之间的局部数据存储器51中或间接返回至共享程序存储器50中。
[0090]S104、第i层处理器程序执行。若需要调用下层处理器程序的函数。需判断下层处理器是否为第η层处理器(即最底层处理器)。若下层处理器为最底层处理器,则在第i层处理器程序调用下层程序时需判断调用是阻塞调用还是非阻塞调用。若为阻塞调用,则等待第i层处理器程序中该调用函数前面的程序执行完毕,才跳转至S105 ;若为非阻塞调用,则无需等待第i层处理器程序中该调用函数前面的程序执行完毕,而直接跳转至S105。若下层处理器不是第η层处理器,则等待第i层处理器程序中该调用函数前面的程序执行完毕,才跳转至S105。若不需要调用下层处理器程序,则执行余下第i层处理器程序,并将执行结果数据返回至第i层处理器与其上一层处理器之间的局部数据存储器中,供其上一层处理器程序使用,此时令i自减1,跳转至S106。
[0091]S105、根据共享关系存储器53中下一层处理器程序的“程序地址映射表”,得到所需调用的下一层处理器程序在共享程序存储器中的地址和大小,将其装载到下一层处理器的指令存储器中,并根据控制流关系数据库解析出下一层处理器程序对应的下下层处理器程序在共享程序存储50中的地址和大小,生成下下层处理器程序的“程序地址映射表”(存放于共享关系存储器53中)。此时令i自增1,跳转至S104 ;
[0092]S106、执行第i层处理器程序余下的程序,判断第I层处理器程序是否执行完毕。若未执行完毕,跳转至S104 ;若执行完毕,则程序结束,返回最终执行结果到共享程序存储器中。
[0093]下面结合具体的应用程序对本发明异构多核处理器多层程序的执行方法进行说明,图3为本发明异构多核处理器多层应用程序的执行方法实施例一中异构多核处理器多层程序的体系结构图,图4为本发明异构多核处理器多层应用程序的执行方法实施例一中异构多核处理器多层程序的组织结构图,如图3和图4所示,本发明异构多核处理器多层程序的执行方法中可进行应
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1