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

文档序号:8487669阅读:614来源:国知局
异构多核处理器多层应用程序的执行方法及处理器的制造方法
【技术领域】
[0001]本发明属于处理器领域,尤其涉及异构多核处理器多层应用程序的执行方法及处理器。
【背景技术】
[0002]目前处理器领域中主要以多核技术为主,多核处理器根据核的微体系结构或功能的特征分为同构多核处理器和异构多核处理器,由于异构多核处理器在高性能、低功耗及低成本方面的显著特点,并能最大化的贴合应用需求,因此其在数字信号处理领域有着广泛的应用。
[0003]一般情况下,异构多核处理器通常是由一个负责控制功能的控制核及若干个负责计算功能的计算核所构成。由于其各处理器核体系结构的不对称性,决定了其程序执行的复杂性。由于各处理器核的指令集体系结构的不同,异构多核处理器多层程序在执行时又需要与指令集体系结构紧密结合,导致该多层程序执行时的调用流程将会极其的复杂。
[0004]如图1所示为一种具有η层不同功能部件的异构多核处理器,其由一个负责所有资源管理操作的通用处理器核100和一个包含(η-l)个负责大量加速计算的加速处理器的专用加速引擎1000组成。其中每个加速处理器都具备独有的指令存储器52,用于存放该层加速处理器中相应的程序,此外,每两层加速处理器之间有一个局部数据存储器51,其除了用于与其相邻的两层加速处理器程序数据的直接存放和读取之外,还能与共享程序存储器50进行间接交互。加速处理器101的程序也能与共享程序存储器50进行数据的间接交互,而其他加速处理器则不能与共享程序存储器50进行直接或间接的交互。
[0005]各层处理器的应用程序中,以倒三角的形式进行层次排序,即通用处理器100的程序处于顶层,加速处理器101的程序处于第二层,以此类推,加速处理器104(其为第η-1层处理器)的程序则处于最底层。应用程序在该异构多核处理器上运行时,只能调用其下一层程序的函数。并且,只有处于最底层的加速处理器104才支持程序的并行执行,而其他处理器不支持并行执行。
[0006]程序层次化的特性,若要高效的运行异构多核处理器多层程序,则需要一种高效的异构多核处理器多层程序的执行方法与之配合,其能根据异构多核处理器体系结构和指令集体系结构的特点,根据各层处理器核的存储器配置情况,高效的完成异构多核处理器多层程序的执行。

【发明内容】

[0007]本发明提供一种异构多核处理器多层应用程序的执行方法及处理器,以简化多层异构多核处理器的复杂程序关系,确保程序的正确执行,和提高运行效率。
[0008]本发明的第一个方面是提供一种异构多核处理器多层应用程序的执行方法,包括:
[0009]将所有任意第i层处理器程序中的可执行程序和控制流关系数据库装载到共享程序存储器中,令i = 1,生成并将第(i+1)层处理器的程序地址映射表存储在共享关系存储器53中;
[0010]判断第i层处理器是否需要对第(i+1)层处理器执行调用程序;
[0011]若第i层处理器需要对第(i+1)层处理器执行调用程序,则判断(i+l)〈n是否成立;
[0012]若(i+l)〈n,则等待第i层处理器中所述调用程序前面的程序执行完毕,再在共享关系存储器53中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,解析所述控制流关系数据库再生成并将第(i+2)层处理器的程序地址映射表存储在所述共享关系存储器53中,令i自加1,重复执行所述判断第i层处理器是否需要执行调用程序、所述判断(i+l)〈n是否成立、所述等待第i层处理器中所述调用程序前面的程序执行完毕、所述在共享程序存储器中装载调用程序和所述生成并将第(i+2)层处理器的程序地址映射表存储的过程,直至(i+1) = η ;
[0013]其中,η表示异构多核处理器包含的处理器层数,i彡η,η彡2。
[0014]本发明的第二个方面是提供一种异构多核处理器,包括多个第i层处理器和共享程序存储器;
[0015]所述共享程序存储器用于装载所有任意第i层处理器程序中的可执行程序和控制流关系数据库,令i = 1,生成并将第(i+1)层处理器的程序地址映射表存储在共享关系存储器53中;
[0016]所述第i层处理器用于在判断第i层处理器需要对第(i+1)层处理器执行调用程序且在判断(i+1) <n成立时,等待第i层处理器中所述调用程序前面的程序执行完毕,再在共享关系存储器53中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,解析所述控制流关系数据库再生成并将第(i+2)层处理器的程序地址映射表存储在所述共享关系存储器53中,令i自加1,重复执行所述判断第i层处理器是否需要执行调用程序、所述判断(i+1)〈η是否成立、所述等待第i层处理器中所述调用程序前面的程序执行完毕、所述在共享程序存储器中装载调用程序和所述生成并将第(i+2)层处理器的程序地址映射表存储的过程,直至(i+Ι) = η ;
[0017]其中,η表示异构多核处理器包含的处理器层数,i彡η,η彡2
[0018]本发明的有益效果为:
[0019]本发明异构多核处理器多层应用程序的执行方法通过将全部处理器程序中的可执行程序和控制流关系数据库装载到共享程序存储器中,生成并将当前层处理器的程序地址映射表存储在共享关系存储器中,然后判断当前处理器是否需要对下一层处理器执行调用程序,若需要对第下层处理器执行调用程序,则在所述下层处理器中将所述调用程序从待访问地址处装载到指令存储器中,生成下下层处理器的程序地址映射表并将该映射表存储在所述共享关系存储器中,以此方式进行多层程序的逐层调用,并且最终通过相邻处理器间的局部数据存储器对各处理器执行的结果数据进行逐层返回,实现异构多核处理器多层程序的执行,该方法能够简化多层异构多核处理器的复杂程序关系、确保程序的正确执tx和提尚运彳丁效率。
【附图说明】
[0020]图1为本发明异构多核处理器多层应用程序的执行方法实施例一的流程图;
[0021]图2为本发明异构多核处理器多层应用程序的执行方法实施例一中具有η种不同功能部件的异构多核处理器体系结构;
[0022]图3为本发明异构多核处理器多层应用程序的执行方法实施例一中异构多核处理器多层程序的体系结构图;
[0023]图4为本发明异构多核处理器多层应用程序的执行方法实施例一中异构多核处理器多层程序的组织结构图;
[0024]图5为本发明异构多核处理器的结构框图;
[0025]图中:50_对应共享程序存储器,存储程序执行结果数据,程序代码,以及控制流关系数据库等;
[0026]51-对应局部数据存储器,主要存储相邻加速处理器之间数据的直接传送,以及和共享程序存储器的间接数据传送;
[0027]52-对应指令存储器,存储相应层次处理器的程序;
[0028]53-对应共享关系存储器,存储相邻层次处理器程序的调用的函数地址大小映射表;
[0029]100-即为通用处理器,负责各处理器之间的任务分配,同步与调度;
[0030]101-对应第2层处理器,即加速处理器1,负责部分的简单运算和配置第3层处理器;
[0031]102-对应第3层处理器,即加速处理器2,负责部分的简单运算和配置第4层处理器;
[0032]103-对应第4层处理器,即加速处理器3,负责部分的简单运算和配置第5层处理器;
[0033]104-对应第η层处理器,即加速处理器η_1,负责大部分的向量/矩阵/变换类运算;
[0034]201 -对应处理器与存储器之间的间接的间接访问,如DMA访问;
[0035]202-对应第I层处理器程序与共享程序存储器间数据的直接传送,也即处理器与存储器之间的直接反问,如访存指令、取指令操作;
[0036]203-对应相邻层次的处理器之间程序的调用;
[0037]1000-对应专用加速引擎,其包括η-l个加速处理器核,η_2个局部数据存储器等;
[0038]300-对应通用处理器,负责各处理器之间的任务分配,同步和调用;
[0039]301-对应标量处理器,即第2层处理器,负责配置微码处理器302程序和部分标量运算;
[0040]302-对应微码处理器,即第3层处理器,负责大部分的向量/矩阵/变换类运算;
[0041]310-对应共享程序存储器,其与通用处理器300进行直接的数据交互,主要用来存取程序,运算数据和控制流关系数据库等;
[0042]312:对应局部数据存储器,用于标量处理器301程序与微码处理器302程序间数据的直接存取,还能与共享程序存储器310进行间接的数据交互;
[0043]311-对应标量处理器301的指令存储器,用于存储标量处理器程序;
[0044]313-对应微码处理器302的微码指令存储器,用于存储微码处理器程序;
[0045]314-对应共享关系存储器,存储相邻层次处理器程序的调用的函数地址大小映射表;
[0046]351-对应数据间的间接传送;
[0047]361-对应数据的直接传送;
[0048]371:对应相邻处理器间程序的调用;
[0049]2000-对应代数处理引擎,其包括一个标量处理器301,一个微码处理器302和一个局部数据存储器312等。
【具体实施方
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1