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

文档序号:8487669阅读:来源:国知局
用的一种异构多核处理器平台如图2和图3的左半部分所示,该异构多核处理器包含三种类型的处理器核,其中,通用处理器300称为控制处理单元,负责控制逻辑功能及一般的标量计算;标量处理器301称为标量处理单元,主要完成大部分的标量计算;微码处理器302称为微码处理单元,主要完成全部的向量/矩阵/变换类计算。每一种类型的处理器均有独立的指令集体系结构。在本实例中,异构多核处理器分别由I个通用处理器300、I个标量处理器301和I个微码处理器302所组成。同样,对于多个相同类型的处理核情况,本发明中所述的执行方法也同样适用。该异构多核处理器支持多种不同指令集,程序员按照一定的程序编写规则编写满足应用需求的源程序,并在成功编译后得到可执行的通用处理器程序,标量程序数据库,微码程序数据库和控制流关系数据库,在此前提下,应用本发明所提出的异构多核处理器多层程序执行方法对其进行执行,从而减小程序员的工作量,降低工作难度和提高异构多核处理器多层程序的执行性能。为进一步说明程序执行时的调度细节,以图3右半部分所示的程序调用结构为例进行说明。该异构多核程序中包含4个程序,其中程序A属于最高层的通用处理器300,完成主要的控制及程序启动等功能;程序B属于第2层的标量处理器301,完成标量计算及部分开启下层处理器程序的功能;程序C和程序D属于最底层的微码处理器302,完成运算量最大的向量计算等功能。同时,如图3中各个函数间的箭头关系所示,程序A在运行中需要调用程序B,程序B在运行过程中需要调用程序C和程序D。在编译之后,生成通用程序的可执行文件,控制流关系数据库,标量程序数据库(包含程序B)和微码程序数据库(包含程序C和程序D)。下面就这4个具体的程序组成的执行过程进行描述。
[0094]如图1、图3、和图4所示,本发明异构多核处理器多层程序的执行方法包括:
[0095]S107、各层处理器程序以及控制流关系数据库的初始化。将通用处理器程序(程序A),标量程序库中所有的标量程序(程序B),微码程序库中所有的微码程序(程序C和程序D)和控制流关系数据库分别加载到共享程序存储器310上,并根据控制流关系数据库解析出程序B在共享程序存储器310中的地址,生成程序B与其在共享程序存储器310中地址的“程序地址映射表”(存放于共享关系存储器314中),跳转至S108 ;
[0096]S108、通用处理器300程序执行。即程序A执行,在A执行过程中,需要调用程序B,则根据共享关系存储器314中的第2层处理器程序的“程序地址映射表”将B程序从共享程序存储器310装载到标量处理器301的指令存储器311中,并根据控制流关系数据库解析出程序C和程序D对应在共享程序存储器310中的地址,生成程序C和程序D的地址(在共享程序存储器310上)和大小的“程序地址映射表”,装载到共享程序存储器中,跳转至 S109。
[0097]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中。
[0098]然后程序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使用,跳转至SllO ;
[0099]S110、通用处理器300的程序A执行余下程序,若执行完毕,返回最终的执行结果至共享程序存储器310中。此时异构多核处理器多层应用程序执行结束。
[0100]本发明异构多核处理器多层应用程序的执行方法通过将全部处理器程序中的可执行程序和控制流关系数据库装载到共享程序存储器中,生成并将当前层处理器的程序地址映射表存储在共享关系存储器314中,然后判断当前处理器是否需要对下一层处理器执行调用程序,若需要对第下层处理器执行调用程序,则在所述下层处理器中将所述调用程序从待访问地址处装载到指令存储器中,生成下下层处理器的程序地址映射表并将该映射表存储在所述共享关系存储器314中,以此方式进行多层程序的逐层调用,并且最终通过相邻处理器间的局部数据存储器对各处理器执行的结果数据进行逐层返回,实现异构多核处理器多层程序的执行,该方法能够简化多层异构多核处理器的复杂程序关系、确保程序的正确执行和提高运行效率。
[0101]图5为本发明异构多核处理器实施例一的结构框图,如图5所示,本发明异构多核处理器,包括多个第i层处理器21、共享程序存储器22和位于第i处理器与第(i+Ι)处理器之间也即相邻处理器间的局部数据存储器23 ;
[0102]所述共享程序存储器22用于装载所有任意第i层处理器程序中的可执行程序和控制流关系数据库,令i = 1,生成并将第(i+Ι)层处理器的程序地址映射表存储在共享关系存储器53中;
[0103]所述第i层处理器21用于在判断第i层处理器需要对第(i+Ι)层处理器执行调用程序且在判断(i+1) <n成立时,等待第i层处理器中所述调用程序前面的程序执行完毕,再在共享关系存储器53中解析所述控制流关系数据库并查找所述第(i+Ι)层处理器的程序地址映射表得到在所述第(i+Ι)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,解析所述控制流关系数据库再生成并将第α+2)层处理器的程序地址映射表存储在所述共享关系存储器53中,令i自加1,重复执行所述判断第i层处理器是否需要执行调用程序、所述判断(i+1)〈η是否成立、所述等待第i层处理器中所述调用程序前面的程序执行完毕、所述在共享程序存储器中查找以装载调用程序和所述生成并将第(i+2)层处理器的程序地址映射表存储的过程,直至(i+Ι) = η ;
[0104]其中,η表示异构多核处理器包含的处理器层数,i彡η,η彡2。
[0105]所述第i处理器与第(i+Ι)处理器之间的局部数据存储器用于在判断第i层处理器不需要对第(i+Ι)层处理器执行调用程序(包括i = η),则在所述第i层处理器中执行余下的程序得到执行结果后,接收第i层处理器返回的执行结果;
[0106]或者,
[0107]所述共享程序存储器还用于在判断第二层处理器不需要对第三层处理器执行调用程序(包括i = η),则在所述第二层处理器中执行余下的程序得到执行结果后,接收第二层处理器返回的执行结果,
[0108]优选的,所述第i层处理器还可以用于在判断第一层处理器未执行完全部程序时、令i自减1、重复执行所述执行余下的程序得到执行结果、向第i处理器与第(i+Ι)处理器之间的局部数据存储器23返回执行结果、直至第一层处理器执行完全部程序、则向共享程序存储器返回执行结果。
[0109]优选的,所述第i处理器还可以用于:在判断(i+1) = η成立、且所述调用程序为阻塞调用时、等待第i层处理器中所述调用程序前面的程序执行完毕、再在共享关系存储器53中解析所述控制流关系数据库并查找所述第(i+Ι)层处理器的程序地址映射表得到在所述第(i+Ι)层处理器中所述调用程序对应的待访问地址、在所述第(i+Ι)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,令i自加1、在第i层处理器中执行余下的程序得到执行结果,向第i层处理器与第(1-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果,和在判断第一层处理器未执行完全部程序时、令i自减1、重复执行所述执行余下的程序得到执行结果、向第i处理器与第(i+1)处理器之间的局部数据存储器返回执行结果、直至第一层处理器执行完全部程序、则向共享程序存储器返回执行结果。
[0110]优选的,所述第i层处理器还可以用于:在判断(i+1) = η成立、且第i层处理器需要对第η层处理器执行调用程序、且所述调用程序为非阻塞调用时、在共享关系存储器53中查找并解析控制流关系数据库中的第(i+Ι)层处理器程序的程序地址映射表(根据初始化时生成的)得到所述调用程序对应的待访问地址、将程序从第(i+Ι)层处理器的待访问地址处装载到第(i+Ι)层处理器的指令存储器中,令i自加1、在第i层处理器中执行余下的程序得到执行结果、向第i层处理器与第(1-Ι)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果,和在判断第一层处理器未执行完全部程序时、令i自减1、重复执行所述执行余下的程序得到执行结果、向第i处理器与第(i+1)处理器之间的局部数据存储器返回执行结果、直至第一层处理器执行完全部程序、则向共享程
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1