CN104809002A - 异构多核处理器多层应用程序的执行方法及处理器 - Google Patents

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

Info

Publication number
CN104809002A
CN104809002A CN201510276076.1A CN201510276076A CN104809002A CN 104809002 A CN104809002 A CN 104809002A CN 201510276076 A CN201510276076 A CN 201510276076A CN 104809002 A CN104809002 A CN 104809002A
Authority
CN
China
Prior art keywords
processor
program
layer
storer
execution result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510276076.1A
Other languages
English (en)
Other versions
CN104809002B (zh
Inventor
王磊
黄威
史少波
谢少林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Silang Technology Co ltd
Original Assignee
Institute of Automation of Chinese Academy of Science
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Automation of Chinese Academy of Science filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN201510276076.1A priority Critical patent/CN104809002B/zh
Publication of CN104809002A publication Critical patent/CN104809002A/zh
Application granted granted Critical
Publication of CN104809002B publication Critical patent/CN104809002B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供一种异构多核处理器多层应用程序的执行方法及处理器,所述方法包括:将所有任意第i层处理器程序中的可执行程序和控制流关系数据库装载到共享程序存储器中,生成并将第(i+1)层处理器的程序地址映射表存储在共享关系存储器中;判断第i层处理器是否需要对第(i+1)层处理器执行调用程序;若第i层处理器需要对第(i+1)层处理器执行调用程序,则判断(i+1)<n是否成立;若(i+1)<n,则在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,生成并将第(i+2)层处理器的程序地址映射表存储在所述共享关系存储器中。本发明所述方法能够简化多层异构多核处理器的复杂程序关系,确保程序的正确执行,和提高运行效率。

Description

异构多核处理器多层应用程序的执行方法及处理器
技术领域
本发明属于处理器领域,尤其涉及异构多核处理器多层应用程序的执行方法及处理器。
背景技术
目前处理器领域中主要以多核技术为主,多核处理器根据核的微体系结构或功能的特征分为同构多核处理器和异构多核处理器,由于异构多核处理器在高性能、低功耗及低成本方面的显著特点,并能最大化的贴合应用需求,因此其在数字信号处理领域有着广泛的应用。
一般情况下,异构多核处理器通常是由一个负责控制功能的控制核及若干个负责计算功能的计算核所构成。由于其各处理器核体系结构的不对称性,决定了其程序执行的复杂性。由于各处理器核的指令集体系结构的不同,异构多核处理器多层程序在执行时又需要与指令集体系结构紧密结合,导致该多层程序执行时的调用流程将会极其的复杂。
如图1所示为一种具有n层不同功能部件的异构多核处理器,其由一个负责所有资源管理操作的通用处理器核100和一个包含(n-1)个负责大量加速计算的加速处理器的专用加速引擎1000组成。其中每个加速处理器都具备独有的指令存储器52,用于存放该层加速处理器中相应的程序,此外,每两层加速处理器之间有一个局部数据存储器51,其除了用于与其相邻的两层加速处理器程序数据的直接存放和读取之外,还能与共享程序存储器50进行间接交互。加速处理器101的程序也能与共享程序存储器50进行数据的间接交互,而其他加速处理器则不能与共享程序存储器50进行直接或间接的交互。
各层处理器的应用程序中,以倒三角的形式进行层次排序,即通用处理器100的程序处于顶层,加速处理器101的程序处于第二层,以此类推,加速处理器104(其为第n-1层处理器)的程序则处于最底层。应用程序在该异构多核处理器上运行时,只能调用其下一层程序的函数。并且,只有处于最底层的加速处理器104才支持程序的并行执行,而其他处理器不支持并行执行。
程序层次化的特性,若要高效的运行异构多核处理器多层程序,则需要一种高效的异构多核处理器多层程序的执行方法与之配合,其能根据异构多核处理器体系结构和指令集体系结构的特点,根据各层处理器核的存储器配置情况,高效的完成异构多核处理器多层程序的执行。
发明内容
本发明提供一种异构多核处理器多层应用程序的执行方法及处理器,以简化多层异构多核处理器的复杂程序关系,确保程序的正确执行,和提高运行效率。
本发明的第一个方面是提供一种异构多核处理器多层应用程序的执行方法,包括:
将所有任意第i层处理器程序中的可执行程序和控制流关系数据库装载到共享程序存储器中,令i=1,生成并将第(i+1)层处理器的程序地址映射表存储在共享关系存储器53中;
判断第i层处理器是否需要对第(i+1)层处理器执行调用程序;
若第i层处理器需要对第(i+1)层处理器执行调用程序,则判断(i+1)<n是否成立;
若(i+1)<n,则等待第i层处理器中所述调用程序前面的程序执行完毕,再在共享关系存储器53中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,解析所述控制流关系数据库再生成并将第(i+2)层处理器的程序地址映射表存储在所述共享关系存储器53中,令i自加1,重复执行所述判断第i层处理器是否需要执行调用程序、所述判断(i+1)<n是否成立、所述等待第i层处理器中所述调用程序前面的程序执行完毕、所述在共享程序存储器中装载调用程序和所述生成并将第(i+2)层处理器的程序地址映射表存储的过程,直至(i+1)=n;
其中,n表示异构多核处理器包含的处理器层数,i≤n,n≥2。
本发明的第二个方面是提供一种异构多核处理器,包括多个第i层处理器和共享程序存储器;
所述共享程序存储器用于装载所有任意第i层处理器程序中的可执行程序和控制流关系数据库,令i=1,生成并将第(i+1)层处理器的程序地址映射表存储在共享关系存储器53中;
所述第i层处理器用于在判断第i层处理器需要对第(i+1)层处理器执行调用程序且在判断(i+1)<n成立时,等待第i层处理器中所述调用程序前面的程序执行完毕,再在共享关系存储器53中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,解析所述控制流关系数据库再生成并将第(i+2)层处理器的程序地址映射表存储在所述共享关系存储器53中,令i自加1,重复执行所述判断第i层处理器是否需要执行调用程序、所述判断(i+1)<n是否成立、所述等待第i层处理器中所述调用程序前面的程序执行完毕、所述在共享程序存储器中装载调用程序和所述生成并将第(i+2)层处理器的程序地址映射表存储的过程,直至(i+1)=n;
其中,n表示异构多核处理器包含的处理器层数,i≤n,n≥2
本发明的有益效果为:
本发明异构多核处理器多层应用程序的执行方法通过将全部处理器程序中的可执行程序和控制流关系数据库装载到共享程序存储器中,生成并将当前层处理器的程序地址映射表存储在共享关系存储器中,然后判断当前处理器是否需要对下一层处理器执行调用程序,若需要对第下层处理器执行调用程序,则在所述下层处理器中将所述调用程序从待访问地址处装载到指令存储器中,生成下下层处理器的程序地址映射表并将该映射表存储在所述共享关系存储器中,以此方式进行多层程序的逐层调用,并且最终通过相邻处理器间的局部数据存储器对各处理器执行的结果数据进行逐层返回,实现异构多核处理器多层程序的执行,该方法能够简化多层异构多核处理器的复杂程序关系、确保程序的正确执行和提高运行效率。
附图说明
图1为本发明异构多核处理器多层应用程序的执行方法实施例一的流程图;
图2为本发明异构多核处理器多层应用程序的执行方法实施例一中具有n种不同功能部件的异构多核处理器体系结构;
图3为本发明异构多核处理器多层应用程序的执行方法实施例一中异构多核处理器多层程序的体系结构图;
图4为本发明异构多核处理器多层应用程序的执行方法实施例一中异构多核处理器多层程序的组织结构图;
图5为本发明异构多核处理器的结构框图;
图中:50-对应共享程序存储器,存储程序执行结果数据,程序代码,以及控制流关系数据库等;
51-对应局部数据存储器,主要存储相邻加速处理器之间数据的直接传送,以及和共享程序存储器的间接数据传送;
52-对应指令存储器,存储相应层次处理器的程序;
53-对应共享关系存储器,存储相邻层次处理器程序的调用的函数地址大小映射表;
100-即为通用处理器,负责各处理器之间的任务分配,同步与调度;
101-对应第2层处理器,即加速处理器1,负责部分的简单运算和配置第3层处理器;
102-对应第3层处理器,即加速处理器2,负责部分的简单运算和配置第4层处理器;
103-对应第4层处理器,即加速处理器3,负责部分的简单运算和配置第5层处理器;
104-对应第n层处理器,即加速处理器n-1,负责大部分的向量/矩阵/变换类运算;
201-对应处理器与存储器之间的间接的间接访问,如DMA访问;
202-对应第1层处理器程序与共享程序存储器间数据的直接传送,也即处理器与存储器之间的直接反问,如访存指令、取指令操作;
203-对应相邻层次的处理器之间程序的调用;
1000-对应专用加速引擎,其包括n-1个加速处理器核,n-2个局部数据存储器等;
300-对应通用处理器,负责各处理器之间的任务分配,同步和调用;
301-对应标量处理器,即第2层处理器,负责配置微码处理器302程序和部分标量运算;
302-对应微码处理器,即第3层处理器,负责大部分的向量/矩阵/变换类运算;
310-对应共享程序存储器,其与通用处理器300进行直接的数据交互,主要用来存取程序,运算数据和控制流关系数据库等;
312:对应局部数据存储器,用于标量处理器301程序与微码处理器302程序间数据的直接存取,还能与共享程序存储器310进行间接的数据交互;
311-对应标量处理器301的指令存储器,用于存储标量处理器程序;
313-对应微码处理器302的微码指令存储器,用于存储微码处理器程序;
314-对应共享关系存储器,存储相邻层次处理器程序的调用的函数地址大小映射表;
351-对应数据间的间接传送;
361-对应数据的直接传送;
371:对应相邻处理器间程序的调用;
2000-对应代数处理引擎,其包括一个标量处理器301,一个微码处理器302和一个局部数据存储器312等。
具体实施方式
图1为本发明异构多核处理器多层应用程序的执行方法实施例一的流程图,如图1所示,本发明异构多核处理器多层应用程序的执行方法包括:
S1、将所有任意第i层处理器程序中的可执行程序和控制流关系数据库装载到共享程序存储器中,令i=1,生成并将第(i+1)层处理器的程序地址映射表存储在共享关系存储器中,这一步骤也就是对共享程序存储器的初始化过程;
S2、判断第i层处理器是否需要对第(i+1)层处理器执行调用程序;
S3、若第i层处理器需要对第(i+1)层处理器执行调用程序,则判断(i+1)<n是否成立;
其中,n表示异构多核处理器包含的处理器层数,i≤n,n≥2。
S4、若(i+1)<n,则等待第i层处理器中所述调用程序前面的程序执行完毕;
S5、再在共享关系存储器中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址;
S6、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中;
S7、解析所述控制流关系数据库再生成并将第(i+2)层处理器的程序地址映射表存储在所述共享关系存储器中;
S8、令i自加1,重复执行所述判断第i层处理器是否需要执行调用程序、所述判断(i+1)<n是否成立、所述等待第i层处理器中所述调用程序前面的程序执行完毕、所述在共享程序存储器中查找以装载调用程序和所述生成并将第(i+2)层处理器的程序地址映射表存储的过程,直至(i+1)=n;也即循环所述S2~S8直至下一层处理器为最底层处理器;
S9、若(i+1)=n,则判断所述调用程序是否为阻塞调用;
S10、若所述调用程序为阻塞调用,则等待第i层处理器中所述调用程序前面的程序执行完毕;
S11、在共享关系存储器中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址;
S12、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中;
S13、令i自加1;
S14、在第i层处理器中执行余下的程序得到执行结果;
S15、向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果;
S16、判断第一层处理器是否执行完全部程序;
S17、若第一层处理器未执行完全部程序,则令i自减1,重复执行所述执行余下的程序、所述返回结果和所述判断第一层处理器是否执行完的过程,也即循环所述S14~S17步骤直至第一层处理器也即通用处理器执行完全部程序;
S18、若第一层处理器执行完全部程序,则向共享程序存储器返回执行结果。
优选的,实施例一的第二种实现方式中S1~S8与第一种实施方式S1~S8相同,不同之处在于,在所述判断(i+1)<n是否成立之后,包括:
S9、若(i+1)=n,且第i层处理器需要对第(i+1)层处理器执行调用程序,则判断所述调用程序是否为阻塞调用;
S11、若所述调用程序为非阻塞调用,则在共享关系存储器中查找并解析控制流关系数据库中的第(i+1)层处理器程序的程序地址映射表;程序映射地址表即根据初始化时生成的得到所述调用程序对应的待访问地址;
S12、将程序从第(i+1)层处理器的待访问地址处装载到第(i+1)层处理器的指令存储器中;
S13、令i自加1;
S14、在第i层处理器中执行余下的程序得到执行结果;
S15、向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果;
S16、判断第一层处理器是否执行完全部程序;
S17、若第一层处理器未执行完全部程序,则令i自减1,重复执行所述执行余下的程序、所述返回结果和所述判断第一层处理器是否执行完的过程;
S18、若第一层处理器执行完全部程序,则向共享程序存储器返回执行结果。
优选的,实施例一的第三种实现方式中S1~S8与第一种实施方式相同,不同之处在于,在所述判断第i层处理器是否需要对第(i+1)层处理器执行调用程序之后,包括:
S14、若第i层处理器不需要对第(i+1)层处理器执行调用程序(包括i=n),则在所述第i层处理器中执行余下的程序得到执行结果;
S15、向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果;需要说明的是,第二层处理器可以间接向所述共享程序存储器返回所述执行结果,也可以向第i层处理器与第(i+1)层处理器之间的局部存储器返回所述执行结果;
S16、判断第一层处理器是否执行完全部程序;
S17、若第一层处理器未执行完全部程序,则令i自减1,重复执行所述执行余下的程序、所述返回结果和所述判断第一层处理器是否执行完的过程;
S18、若第一层处理器执行完全部程序,则向共享程序存储器返回执行结果。
为了更加清楚的说明本发明异构多核处理器多层应用程序的执行方法实施例一,下面结合具体的异构多核处理器进行说明,图2为本发明异构多核处理器多层应用程序的执行方法实施例一中具有n种不同功能部件的异构多核处理器体系结构,如图2所示,本发明异构多核处理器多层应用程序的执行方法包括:
S101、各层处理器程序和控制流关系数据库的初始化。将各层处理器程序库下所有的可执行文件和控制流关系数据库分别装载到共享程序存储器50中,根据控制流关系数据库解析出第2层处理器101程序在共享程序存储器50中的地址,并生成“程序地址映射表”(存放于共享关系存储器53中),跳转至S102;
S102、第1层处理器100程序执行。若需要调用第2层处理器101程序的函数,则在共享关系存储器53中查找并解析控制流关系数据库,根据初始化时生成的第2层处理器101程序的“程序地址映射表”,将第2层处理器101程序从共享程序存储器50的指定地址处加载到第2层处理器101的指令存储器51中,并根据控制流关系数据库解析出第2层处理器程序101对应的第3层处理器102程序在共享程序存储器50中的基址和大小,生成第3层处理器102程序的基址和大小的“程序地址映射表”(存放于共享关系存储器53中),跳转至S103;若不需要,执行余下第1层处理器100程序,得到最终程序执行结果。
S103、第2层处理器101程序执行。若需要调用第3层处理器102程序的函数,则需根据共享程序存储器中第3层处理器程序的“程序地址映射表”得到所需调用的第3层处理器102程序在共享程序存储器50中的地址和大小,并将其装载到第3层处理器102的指令存储器52中,并根据控制流关系数据库解析出下一层处理器程序对应的下下层处理器程序在共享程序存储器50的地址和大小,生成下下层处理器程序的“程序地址映射表”(存放于共享关系存储器53中),跳转至S104;若不需要,则执行余下第2层处理器101程序,并将执行结果数据直接返回至第2层处理器101与第3层处理器102之间的局部数据存储器51中或间接返回至共享程序存储器50中。
S104、第i层处理器程序执行。若需要调用下层处理器程序的函数。需判断下层处理器是否为第n层处理器(即最底层处理器)。若下层处理器为最底层处理器,则在第i层处理器程序调用下层程序时需判断调用是阻塞调用还是非阻塞调用。若为阻塞调用,则等待第i层处理器程序中该调用函数前面的程序执行完毕,才跳转至S105;若为非阻塞调用,则无需等待第i层处理器程序中该调用函数前面的程序执行完毕,而直接跳转至S105。若下层处理器不是第n层处理器,则等待第i层处理器程序中该调用函数前面的程序执行完毕,才跳转至S105。若不需要调用下层处理器程序,则执行余下第i层处理器程序,并将执行结果数据返回至第i层处理器与其上一层处理器之间的局部数据存储器中,供其上一层处理器程序使用,此时令i自减1,跳转至S106。
S105、根据共享关系存储器53中下一层处理器程序的“程序地址映射表”,得到所需调用的下一层处理器程序在共享程序存储器中的地址和大小,将其装载到下一层处理器的指令存储器中,并根据控制流关系数据库解析出下一层处理器程序对应的下下层处理器程序在共享程序存储50中的地址和大小,生成下下层处理器程序的“程序地址映射表”(存放于共享关系存储器53中)。此时令i自增1,跳转至S104;
S106、执行第i层处理器程序余下的程序,判断第1层处理器程序是否执行完毕。若未执行完毕,跳转至S104;若执行完毕,则程序结束,返回最终执行结果到共享程序存储器中。
下面结合具体的应用程序对本发明异构多核处理器多层程序的执行方法进行说明,图3为本发明异构多核处理器多层应用程序的执行方法实施例一中异构多核处理器多层程序的体系结构图,图4为本发明异构多核处理器多层应用程序的执行方法实施例一中异构多核处理器多层程序的组织结构图,如图3和图4所示,本发明异构多核处理器多层程序的执行方法中可进行应用的一种异构多核处理器平台如图2和图3的左半部分所示,该异构多核处理器包含三种类型的处理器核,其中,通用处理器300称为控制处理单元,负责控制逻辑功能及一般的标量计算;标量处理器301称为标量处理单元,主要完成大部分的标量计算;微码处理器302称为微码处理单元,主要完成全部的向量/矩阵/变换类计算。每一种类型的处理器均有独立的指令集体系结构。在本实例中,异构多核处理器分别由1个通用处理器300、1个标量处理器301和1个微码处理器302所组成。同样,对于多个相同类型的处理核情况,本发明中所述的执行方法也同样适用。该异构多核处理器支持多种不同指令集,程序员按照一定的程序编写规则编写满足应用需求的源程序,并在成功编译后得到可执行的通用处理器程序,标量程序数据库,微码程序数据库和控制流关系数据库,在此前提下,应用本发明所提出的异构多核处理器多层程序执行方法对其进行执行,从而减小程序员的工作量,降低工作难度和提高异构多核处理器多层程序的执行性能。为进一步说明程序执行时的调度细节,以图3右半部分所示的程序调用结构为例进行说明。该异构多核程序中包含4个程序,其中程序A属于最高层的通用处理器300,完成主要的控制及程序启动等功能;程序B属于第2层的标量处理器301,完成标量计算及部分开启下层处理器程序的功能;程序C和程序D属于最底层的微码处理器302,完成运算量最大的向量计算等功能。同时,如图3中各个函数间的箭头关系所示,程序A在运行中需要调用程序B,程序B在运行过程中需要调用程序C和程序D。在编译之后,生成通用程序的可执行文件,控制流关系数据库,标量程序数据库(包含程序B)和微码程序数据库(包含程序C和程序D)。下面就这4个具体的程序组成的执行过程进行描述。
如图1、图3、和图4所示,本发明异构多核处理器多层程序的执行方法包括:
S107、各层处理器程序以及控制流关系数据库的初始化。将通用处理器程序(程序A),标量程序库中所有的标量程序(程序B),微码程序库中所有的微码程序(程序C和程序D)和控制流关系数据库分别加载到共享程序存储器310上,并根据控制流关系数据库解析出程序B在共享程序存储器310中的地址,生成程序B与其在共享程序存储器310中地址的“程序地址映射表”(存放于共享关系存储器314中),跳转至S108;
S108、通用处理器300程序执行。即程序A执行,在A执行过程中,需要调用程序B,则根据共享关系存储器314中的第2层处理器程序的“程序地址映射表”将B程序从共享程序存储器310装载到标量处理器301的指令存储器311中,并根据控制流关系数据库解析出程序C和程序D对应在共享程序存储器310中的地址,生成程序C和程序D的地址(在共享程序存储器310上)和大小的“程序地址映射表”,装载到共享程序存储器中,跳转至S109。
S109、标量处理器301程序执行,并调用微码处理器302程序。即程序B执行,在程序B执行的过程中,需要先调用程序C再调用程序D。在调用程序C时,若为阻塞调用,则需等待B程序中该调用函数前面的程序执行完毕之后,需要根据第3层处理器程序的“程序地址映射表”将程序C从共享程序存储器310装载到微码处理器302的微码指令存储器313中,程序C在微码处理器302上执行,并将执行结果返回至标量处理器301与微码处理器302之间的局部数据存储器312中。若为非阻塞调用,则无需等待B程序中该调用函数前面的程序执行完毕,而直接根据第3层处理器程序的“程序地址映射表”将程序C从共享程序存储器310装载到微码处理器302的微码指令存储器313中,程序C在微码处理器302上执行,并将执行结果返回至标量处理器301与微码处理器302之间的局部数据存储器312中。
然后程序B调用程序D,若为阻塞调用,则需等待B程序中该调用函数前面的程序执行完毕之后,根据第3层处理器程序的“程序地址映射表”将D程序文件从共享程序存储器310中加载到微码处理器302的微码指令存储器313中,程序D在微码处理器302上执行,将执行结果也返回至局部数据存储器312中。若为非阻塞调用,则无需等待B程序中该调用函数前面的程序执行完毕,而直接根据第3层处理器程序的“程序地址映射表”将D程序文件从共享程序存储器310中加载到微码处理器302的微码指令存储器313中,程序D在微码处理器302上执行,将执行结果也返回至局部数据存储器312中。标量处理器301执行余下的程序B,并将执行结果直接返回至局部数据存储器312或间接返回至共享程序存储器310中,供通用处理器300的程序A使用,跳转至S110;
S110、通用处理器300的程序A执行余下程序,若执行完毕,返回最终的执行结果至共享程序存储器310中。此时异构多核处理器多层应用程序执行结束。
本发明异构多核处理器多层应用程序的执行方法通过将全部处理器程序中的可执行程序和控制流关系数据库装载到共享程序存储器中,生成并将当前层处理器的程序地址映射表存储在共享关系存储器314中,然后判断当前处理器是否需要对下一层处理器执行调用程序,若需要对第下层处理器执行调用程序,则在所述下层处理器中将所述调用程序从待访问地址处装载到指令存储器中,生成下下层处理器的程序地址映射表并将该映射表存储在所述共享关系存储器314中,以此方式进行多层程序的逐层调用,并且最终通过相邻处理器间的局部数据存储器对各处理器执行的结果数据进行逐层返回,实现异构多核处理器多层程序的执行,该方法能够简化多层异构多核处理器的复杂程序关系、确保程序的正确执行和提高运行效率。
图5为本发明异构多核处理器实施例一的结构框图,如图5所示,本发明异构多核处理器,包括多个第i层处理器21、共享程序存储器22和位于第i处理器与第(i+1)处理器之间也即相邻处理器间的局部数据存储器23;
所述共享程序存储器22用于装载所有任意第i层处理器程序中的可执行程序和控制流关系数据库,令i=1,生成并将第(i+1)层处理器的程序地址映射表存储在共享关系存储器53中;
所述第i层处理器21用于在判断第i层处理器需要对第(i+1)层处理器执行调用程序且在判断(i+1)<n成立时,等待第i层处理器中所述调用程序前面的程序执行完毕,再在共享关系存储器53中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,解析所述控制流关系数据库再生成并将第(i+2)层处理器的程序地址映射表存储在所述共享关系存储器53中,令i自加1,重复执行所述判断第i层处理器是否需要执行调用程序、所述判断(i+1)<n是否成立、所述等待第i层处理器中所述调用程序前面的程序执行完毕、所述在共享程序存储器中查找以装载调用程序和所述生成并将第(i+2)层处理器的程序地址映射表存储的过程,直至(i+1)=n;
其中,n表示异构多核处理器包含的处理器层数,i≤n,n≥2。
所述第i处理器与第(i+1)处理器之间的局部数据存储器用于在判断第i层处理器不需要对第(i+1)层处理器执行调用程序(包括i=n),则在所述第i层处理器中执行余下的程序得到执行结果后,接收第i层处理器返回的执行结果;
或者,
所述共享程序存储器还用于在判断第二层处理器不需要对第三层处理器执行调用程序(包括i=n),则在所述第二层处理器中执行余下的程序得到执行结果后,接收第二层处理器返回的执行结果,
优选的,所述第i层处理器还可以用于在判断第一层处理器未执行完全部程序时、令i自减1、重复执行所述执行余下的程序得到执行结果、向第i处理器与第(i+1)处理器之间的局部数据存储器23返回执行结果、直至第一层处理器执行完全部程序、则向共享程序存储器返回执行结果。
优选的,所述第i处理器还可以用于:在判断(i+1)=n成立、且所述调用程序为阻塞调用时、等待第i层处理器中所述调用程序前面的程序执行完毕、再在共享关系存储器53中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,令i自加1、在第i层处理器中执行余下的程序得到执行结果,向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果,和在判断第一层处理器未执行完全部程序时、令i自减1、重复执行所述执行余下的程序得到执行结果、向第i处理器与第(i+1)处理器之间的局部数据存储器返回执行结果、直至第一层处理器执行完全部程序、则向共享程序存储器返回执行结果。
优选的,所述第i层处理器还可以用于:在判断(i+1)=n成立、且第i层处理器需要对第n层处理器执行调用程序、且所述调用程序为非阻塞调用时、在共享关系存储器53中查找并解析控制流关系数据库中的第(i+1)层处理器程序的程序地址映射表(根据初始化时生成的)得到所述调用程序对应的待访问地址、将程序从第(i+1)层处理器的待访问地址处装载到第(i+1)层处理器的指令存储器中,令i自加1、在第i层处理器中执行余下的程序得到执行结果、向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果,和在判断第一层处理器未执行完全部程序时、令i自减1、重复执行所述执行余下的程序得到执行结果、向第i处理器与第(i+1)处理器之间的局部数据存储器返回执行结果、直至第一层处理器执行完全部程序、则向共享程序存储器返回执行结果。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (8)

1.一种异构多核处理器多层应用程序的执行方法,其特征在于,包括:
将所有任意第i层处理器程序中的可执行程序和控制流关系数据库装载到共享程序存储器中,令i=1,生成并将第(i+1)层处理器的程序地址映射表存储在共享关系存储器中;
判断第i层处理器是否需要对第(i+1)层处理器执行调用程序;
若第i层处理器需要对第(i+1)层处理器执行调用程序,则判断(i+1)<n是否成立;
若(i+1)<n,则等待第i层处理器中所述调用程序前面的程序执行完毕,再在共享关系存储器中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,解析所述控制流关系数据库再生成并将第(i+2)层处理器的程序地址映射表存储在所述共享关系存储器中,令i自加1,重复执行所述判断第i层处理器是否需要执行调用程序、所述判断(i+1)<n是否成立、所述等待第i层处理器中所述调用程序前面的程序执行完毕、所述在共享程序存储器中查找以装载调用程序和所述生成并将第(i+2)层处理器的程序地址映射表存储的过程,直至(i+1)=n;
其中,n表示异构多核处理器包含的处理器层数,i≤n,n≥2。
2.根据权利要求1所述的异构多核处理器多层应用程序的执行方法,其特征在于,在所述判断第i层处理器是否需要对第(i+1)层处理器执行调用程序之后,还包括:
若第i层处理器不需要对第(i+1)层处理器执行调用程序,则在所述第i层处理器中执行余下的程序得到执行结果,向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果,判断第一层处理器是否执行完全部程序;
若第一层处理器未执行完全部程序,则令i自减1,重复执行所述执行余下的程序、所述返回结果和所述判断第一层处理器是否执行完的过程,直至第一层处理器执行完全部程序,则向共享程序存储器返回执行结果。
3.根据权利要求1所述的异构多核处理器多层应用程序的执行方法,其特征在于,在所述判断(i+1)<n是否成立之后,还包括:
若(i+1)=n,则判断所述调用程序是否为阻塞调用;
若所述调用程序为阻塞调用,则等待第i层处理器中所述调用程序前面的程序执行完毕,再在共享关系存储器中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中;
令i自加1,在第i层处理器中执行余下的程序得到执行结果,向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果,判断第一层处理器是否执行完全部程序;
若第一层处理器未执行完全部程序,则令i自减1,重复执行所述执行余下的程序、所述返回结果和所述判断第一层处理器是否执行完的过程,直至第一层处理器执行完全部程序,则向共享程序存储器返回执行结果。
4.根据权利要求1所述的异构多核处理器多层应用程序的执行方法,其特征在于,在所述判断(i+1)<n是否成立之后,还包括:
若(i+1)=n,且第i层处理器需要对第(i+1)层处理器执行调用程序,则判断所述调用程序是否为阻塞调用;
若所述调用程序为非阻塞调用,则在共享关系存储器中查找并解析控制流关系数据库中的第(i+1)层处理器程序的程序地址映射表得到所述调用程序对应的待访问地址,将程序从第(i+1)层处理器的待访问地址处装载到第(i+1)层处理器的指令存储器中;
令i自加1,在第i层处理器中执行余下的程序得到执行结果,向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果,判断第一层处理器是否执行完全部程序,
若第一层处理器未执行完全部程序,则令i自减1,重复执行所述执行余下的程序、所述返回结果和所述判断第一层处理器是否执行完的过程,直至第一层处理器执行完全部程序,则向共享程序存储器返回执行结果。
5.一种异构多核处理器,其特征在于,包括多个第i层处理器和共享程序存储器;
所述共享程序存储器用于装载所有任意第i层处理器程序中的可执行程序和控制流关系数据库,令i=1,生成并将第(i+1)层处理器的程序地址映射表存储在共享关系存储器中;
所述第i层处理器用于在判断第i层处理器需要对第(i+1)层处理器执行调用程序且在判断(i+1)<n成立时,等待第i层处理器中所述调用程序前面的程序执行完毕,再在共享关系存储器中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,解析所述控制流关系数据库再生成并将第(i+2)层处理器的程序地址映射表存储在所述共享关系存储器中,令i自加1,重复执行所述判断第i层处理器是否需要执行调用程序、所述判断(i+1)<n是否成立、所述等待第i层处理器中所述调用程序前面的程序执行完毕、所述在共享程序存储器中查找以装载调用程序和所述生成并将第(i+2)层处理器的程序地址映射表存储的过程,直至(i+1)=n;
其中,n表示异构多核处理器包含的处理器层数,i≤n,n≥2。
6.根据权利要求5所述的异构多核处理器,其特征在于,还包括位于第i处理器与第(i+1)处理器之间的局部数据存储器;
所述第i处理器与第(i+1)处理器之间的局部数据存储器用于在判断第i层处理器不需要对第(i+1)层处理器执行调用程序,则在所述第i层处理器中执行余下的程序得到执行结果后,接收第i层处理器返回的执行结果;
或者,
所述共享程序存储器还用于在判断第二层处理器不需要对第三层处理器执行调用程序,则在所述第二层处理器中执行余下的程序得到执行结果后,接收第二层处理器返回的执行结果;
所述第i层处理器还用于在判断第一层处理器未执行完全部程序时、令i自减1、重复执行所述执行余下的程序得到执行结果、向第i处理器与第(i+1)处理器之间的局部数据存储器返回执行结果、直至第一层处理器执行完全部程序、则向共享程序存储器返回执行结果。
7.根据权利要求5所述的异构多核处理器,其特征在于,所述第i处理器还用于:在判断(i+1)=n成立、且所述调用程序为阻塞调用时、等待第i层处理器中所述调用程序前面的程序执行完毕、再在共享关系存储器中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,令i自加1、在第i层处理器中执行余下的程序得到执行结果,向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果,和在判断第一层处理器未执行完全部程序时、令i自减1、重复执行所述执行余下的程序得到执行结果、向第i处理器与第(i+1)处理器之间的局部数据存储器返回执行结果、直至第一层处理器执行完全部程序、则向共享程序存储器返回执行结果。
8.根据权利要求5所述的异构多核处理器,其特征在于,所述第i层处理器还用于:在判断(i+1)=n成立、且第i层处理器需要对第(i+1)层处理器执行调用程序、且所述调用程序为非阻塞调用时、在共享关系存储器中查找并解析控制流关系数据库中的第(i+1)层处理器程序的程序地址映射表(根据初始化时生成的)得到所述调用程序对应的待访问地址、将程序从第(i+1)层处理器的待访问地址处装载到第(i+1)层处理器的指令存储器中,令i自加1、在第i层处理器中执行余下的程序得到执行结果、向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果,和在判断第一层处理器未执行完全部程序时、令i自减1、重复执行所述执行余下的程序得到执行结果、向第i处理器与第(i+1)处理器之间的局部数据存储器返回执行结果、直至第一层处理器执行完全部程序、则向共享程序存储器返回执行结果。
CN201510276076.1A 2015-05-26 2015-05-26 异构多核处理器多层应用程序的执行方法及处理器 Active CN104809002B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510276076.1A CN104809002B (zh) 2015-05-26 2015-05-26 异构多核处理器多层应用程序的执行方法及处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510276076.1A CN104809002B (zh) 2015-05-26 2015-05-26 异构多核处理器多层应用程序的执行方法及处理器

Publications (2)

Publication Number Publication Date
CN104809002A true CN104809002A (zh) 2015-07-29
CN104809002B CN104809002B (zh) 2018-05-11

Family

ID=53693855

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510276076.1A Active CN104809002B (zh) 2015-05-26 2015-05-26 异构多核处理器多层应用程序的执行方法及处理器

Country Status (1)

Country Link
CN (1) CN104809002B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110119807A (zh) * 2018-10-12 2019-08-13 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101008922A (zh) * 2007-01-26 2007-08-01 浙江大学 面向异构多核体系的段页式存储空间管理方法
CN101013388A (zh) * 2007-01-26 2007-08-08 浙江大学 面向异构多核体系的进程调度方法
CN101149728A (zh) * 2007-10-29 2008-03-26 中国科学院计算技术研究所 一种多核处理系统及其管理方法
CN101290610A (zh) * 2008-06-03 2008-10-22 浙江大学 嵌入式异构多核体系片上通信互连组织层次的实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101008922A (zh) * 2007-01-26 2007-08-01 浙江大学 面向异构多核体系的段页式存储空间管理方法
CN101013388A (zh) * 2007-01-26 2007-08-08 浙江大学 面向异构多核体系的进程调度方法
CN101149728A (zh) * 2007-10-29 2008-03-26 中国科学院计算技术研究所 一种多核处理系统及其管理方法
CN101290610A (zh) * 2008-06-03 2008-10-22 浙江大学 嵌入式异构多核体系片上通信互连组织层次的实现方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110119807A (zh) * 2018-10-12 2019-08-13 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
CN110119807B (zh) * 2018-10-12 2021-11-09 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN104809002B (zh) 2018-05-11

Similar Documents

Publication Publication Date Title
US10331666B1 (en) Apparatus and method for parallel processing of a query
CN107133095B (zh) 一种云环境下的任务调度方法
Singh et al. Energy-efficient run-time mapping and thread partitioning of concurrent OpenCL applications on CPU-GPU MPSoCs
Stamatakis et al. Novel parallelization schemes for large-scale likelihood-based phylogenetic inference
CN103793255B (zh) 可配置的多主模式多os内核实时操作系统架构的启动方法
CN110597606B (zh) 一种高速缓存友好的用户级线程调度方法
Motamedi et al. Cappuccino: Efficient CNN inference software synthesis for mobile system-on-chips
CN101652747A (zh) 并行dll树初始化
Danalis et al. PaRSEC in practice: Optimizing a legacy chemistry application through distributed task-based execution
CN106445666A (zh) 一种doacross循环的并行优化方法
Pellegrini Distillating knowledge about Scotch
CN106293736B (zh) 用于粗粒度多核计算系统的两级编程装置及其计算方法
Cole et al. Efficient resource oblivious algorithms for multicores with false sharing
WO2021098257A1 (zh) 一种基于异构计算平台的业务处理方法
US11816061B2 (en) Dynamic allocation of arithmetic logic units for vectorized operations
CN103810041A (zh) 一种支持动态伸缩的并行计算的方法
CN104809002A (zh) 异构多核处理器多层应用程序的执行方法及处理器
US9436503B2 (en) Concurrency control mechanisms for highly multi-threaded systems
CN100414505C (zh) 一种基于组合并算法的偏移量分配优化方法
US11694129B2 (en) Parallel solution generation
CN108062249A (zh) 基于大数据的云端数据分配调度方法
Eigenmann et al. Cedar Fortrand its compiler
CN113467911A (zh) RISCV架构多核CPU memory consistency仿真验证方法
US20130166887A1 (en) Data processing apparatus and data processing method
CN112558978B (zh) 支撑异构众核全芯片视角的加速编程和编译方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20171129

Address after: 102412 Beijing City, Fangshan District Yan Village Yan Fu Road No. 1 No. 11 building 4 layer 402

Applicant after: Beijing Si Lang science and Technology Co.,Ltd.

Address before: 100080 Zhongguancun East Road, Beijing, No. 95, No.

Applicant before: Institute of Automation, Chinese Academy of Sciences

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 201306 building C, No. 888, Huanhu West 2nd Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Patentee after: Shanghai Silang Technology Co.,Ltd.

Address before: 102412 room 402, 4th floor, building 11, No. 1, Yanfu Road, Yancun Town, Fangshan District, Beijing

Patentee before: Beijing Si Lang science and Technology Co.,Ltd.