基于有向无环图模型的寄存器级从核消息传递方法与流程

文档序号:16134208发布日期:2018-12-01 00:43阅读:240来源:国知局

本发明涉及处理器技术领域,尤其涉及基于有向无环图模型的寄存器级从核消息传递方法。

背景技术

sw26010(如图8所示)处理器由四个核组组成,每个核组由一个主核与一个8x8从核阵列组成(如图5所示)。每个核组拥有8gb内存,l1cache为32k,l2cache为256k,局部存储(ldm)为64k,每个从核有4个行发送寄存器、4个列发送寄存器和6个共享的接收寄存器,每个寄存器为256bit。由于从核局部存储有限,为更好的利用从核上的存储资源,克服内存访问瓶颈,sw26010处理器提供了从核间同行与同列寄存器通信功能,寄存器间通信速度相比与直接访问内存大大提高。目前sw26010,提供四个指令:行发送消息指令(putr)、行接收消息指令(getr)、列发送消息指令(putc)、列接收消息指令(getc),源方和目标方利用生产者-消费者之间的关系实现同行与同列的消息传递通信。

但是由于寄存器的数量有限,无法发送复杂模式的消息传递,仅支持同行与同列的通信;并且由于消息传递中源方和目标方利用的是生产者-消费者的关系,容易出现互锁现象,如图6所示,grpc指令由getr和putc指令封装而成,当核1与核9都在等待接收数据,而发送数据的指令执行在接收数据指令执行的后面,从核1、从核9接受不到数据就无法执行发送数据指令,而接受数据指令的执行又依赖于发送数据指令发送的数据,这样就发生了互锁现象。



技术实现要素:

针对上述存在的问题,本发明提供的一种基于有向无环图模型的寄存器级从核消息传递方法,以解决现有技术中不能实现任意从核间通信、容易出现互锁现象的问题。

为实现上述目的,本发明提供的技术方案为:

本发明提供的基于有向无环图模型的寄存器级从核消息传递方法,包括:

将若干从核中的从核a对应的由若干待传递数据包组成的待传递数据包组分成n组,1~n组依次排列,每组包含最多y个目标从核所在列互不相同的待传递数据包;

发送第n组时,从核a将第n组中的待传递数据包发送至从核a所在行的其他从核m;

从核m接收待传递数据包;

从核m将收到的待传递数据包传递至从核m所在列的其他从核x;

其中,若干从核构成z*z的从核阵列,每个从核至少包含有2*y个寄存器,z=y+1;

待传递数据包内至少包括目标从核的所在列的信息与所在行的信息;

从核m接收的待传递数据包的目标从核的所在列与从核m的所在列相同;

从核x接收的待传递数据包的目标从核的所在行与从核x的所在行相同;1≤n≤n。

本发明提供的基于有向无环图模型的寄存器级从核消息传递方法,包括

将若干从核中的从核a对应的由若干待传递数据包组成的待传递数据包组分成n组,1~n组依次排列,每组包含最多y个目标从核所在列互不相同的待传递数据包;

发送第n组时,从核a将第n组中的待传递数据包发送至从核a所在行的其他从核m;

从核m接收待传递数据包;

其中,若干从核构成z*z的从核阵列,每个从核至少包含有2*y个寄存器,z=y+1;

待传递数据包内至少包括目标从核的所在列的信息;

从核m接收的待传递数据包的目标从核的所在列与从核m的所在列相同;

1≤n≤n。

本发明提供的基于有向无环图模型的寄存器级从核消息传递方法,包括

将若干从核中的从核a对应的由若干待传递数据包组成的待传递数据包组分成n组,1~n组依次排列,每组包含最多y个目标从核所在行互不相同的待传递数据包;

发送第n组时,从核a将第n组中的待传递数据包发送至从核a所在列的其他从核x;

从核x接收待传递数据包;

其中,若干从核构成z*z的从核阵列,每个从核至少包含有2*y个寄存器,z=y+1;

待传递数据包内至少包括目标从核的所在行的信息;

从核x接收的待传递数据包的目标从核的所在行与从核x的所在行相同;

1≤n≤n。

本发明提供的基于有向无环图模型的寄存器级从核消息传递方法,包括

将若干从核中的从核a对应的由若干待传递数据包组成的待传递数据包组分为第一待传递数据包组、第二待传递数据包组和第三待传递数据包组,第一待传递数据包组内的待传递数据包的目标从核所在行与从核a的所在行不同,第一待传递数据包组内的待传递数据包的目标从核所在列与从核a的所在不同,第二待传递数据包组的待传递数据包的目标从核所在行与从核a的所在行相同,第三传递数据包组的待传递数据包的的目标从核所在列与从核a的所在列相同;

将第一待传递数据包组分成n1组,1~n1组依次排列,每组最多y个目标从核所在列互不相同的待传递数据包;

发送第n1组时,从核a将第n组中的待传递数据包发送至从核a所在行的其他从核m;

从核m接收待传递数据包;

从核m将收到的待传递数据包传递至从核m所在列的其他从核x;

将第二待传递数据包组分成n2组,1~n2组依次排列,每组最多y个目标从核所在列互不相同的待传递数据包;

发送第n2组时,从核a将第n2组中的待传递数据包发送至从核a所在行的其他从核m;

从核m接收待传递数据包;

将第三待传递数据包组分成n3组,1~n3组依次排列,每组最多y个目标从所在行互不相同的待传递数据包;

发送第n3组时,从核a将第n3组中的待传递数据包发送至从a所在列的其他从核x;

从核x接收待传递数据包;

其中,若干从核构成z*z的从核阵列,每个从核至少包含有2*y个寄存器,z=y+1;

待传递数据包内至少包括目标从核的所在行的信息;

从核m接收的待传递数据包的目标从核的所在列与从核m的所在列相同;

从核x接收的待传递数据包的目标从核的所在行与从核x的所在行相同;

1≤n1≤n1,1≤n2≤n2,1≤n3≤n3。

上述技术方案具有如下优点或者有益效果:

本发明提供提供的基于有向无环图模型的寄存器级从核消息传递方法,提出一种从源从核至目标从核的消息传递的有向无环图的模型,防止互锁,同时能够避免寄存器被占满的情况发生,从根本上克服了消息传递时可能存在的互锁情况,使用最小步数完成消息传递,实现了可靠高效的寄存器级消息传递。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明及其特征、外形和优点将会变得更加明显。在全部附图中相同的标记指示相同的部分。并未刻意按照比例绘制附图,重点在于示出本发明的主旨。

图1是本发明实施例1提供的基于有向无环图模型的寄存器级从核消息传递方法的流程图;

图2是本发明实施例2提供的基于有向无环图模型的寄存器级从核消息传递方法的流程图;

图3是本发明实施例3提供的基于有向无环图模型的寄存器级从核消息传递方法的流程图;

图4是本发明实施例4提供的基于有向无环图模型的寄存器级从核消息传递方法的流程图;

图5是sw26010的从核阵列图;

图6是从核消息传递指令执行互锁示意图;

图7是本发明实施例1~4提供的基于有向无环图模型的寄存器级从核消息传递方法指令执行的一个有向无环图示例;

图8是sw26010处理器的结构示意图。

具体实施方式

下面结合附图和具体的实施例对本发明作进一步的说明,但是不作为本发明的限定。

实施例1:

如图1所示,本发明实施例1提供的基于有向无环图模型的寄存器级从核消息传递方法,包括:

s101:将若干从核中的从核a对应的由若干待传递数据包组成的待传递数据包组分成n组,1~n组依次排列,每组包含最多y个目标从核所在列互不相同的待传递数据包;

s102:发送第n组时,从核a将第n组中的待传递数据包发送至从核a所在行的其他从核m;

s103:从核m接收待传递数据包;

s104:从核m将收到的待传递数据包传递至从核m所在列的其他从核x;

s105:重复执行步骤s102~s104共n轮,直至待传递数据包组中的待传递数据包全部传递完成。

其中,若干从核构成z*z的从核阵列,每个从核至少包含有2*y个寄存器,z=y+1;

待传递数据包内至少包括目标从核的所在列的信息与所在行的信息;

从核m接收的待传递数据包的目标从核的所在列与从核m的所在列相同;

从核x接收的待传递数据包的目标从核的所在行与从核x的所在行相同;1≤n≤n。

本发明实施例1提供的基于有向无环图模型的寄存器级从核消息传递方法,实现的是不同行、不同列的从核之间的消息传递。通过待传递数据包中包含的目标从核的所在列、所在行信息,先经过同行传递,再经过同列传递,能够将待传递数据包传递至与源从核不同行、不同列的目标从核,依据的是目标从核的所在行与所在列能够唯一标定出目标从核的位置;当然采用先同列传递再同行传递同样能够实现不同行、不同列的消息传递,实现过程与上述方法类似,在此不予赘述。

为了便于说明,我们以sw26010为例,如图5所示,sw26010中每个从核的目的地包含三类,同行的、同列的和非同行且同列的,如从核28的目的核可以分为颜色最浅的从核、颜色较深的从核、颜色最深的从核,颜色最浅的从核为与从核28同列的,颜色较深的为与从核28同列的,颜色最深的为与从核28非同行非同列,同行或同列的直接发送,而非同行同列的需要转发,需要转发的依据先同行发送、在同列发送的顺序发送至目标从核。具体的需中转消息传递举例如从核28需要向从核19发送,从核19为颜色最深的从核,所以从核19为非同行同列的从核需要转发,从核19所在列为第3列、所在行为第2行;根据先同行传送后同列传送的顺序,将消息从从核28传递至与从核28同行、从核19同列的从核27,在将消息从从核27传递至与从核27同列、从核19同行的从核19。

一个寄存器仅能够接收一个待传递数据包,通过在第n组中排定不超过y个目标从核所在列互不相同的待传递数据包,使得源从核(也就是上述方法中的从核a)再发送第n组待传递数据包时,每个与从核a同行的其他从核m至多从从核a处接收一次待传递数据包,避免了同行的多个从核a同时向同一从核m发送多个待传递数据包导致从核m寄存器被占满而互锁的情况发生。

为了便于说明,如图5中的sw26010处理器举例,从核0向从核7连续发送4个数据包,从核1向从核7连续发送4个数据包,从核2向从核7连续发送4个数据包,从核3向从核7连续发送4个数据包,从核4向从核7连续发送4个数据包,从核5向从核7连续发送4个数据包,从核6向从核7连续发送4个数据包,此时从核7需要接收的数据包共计28个数据包,而sw26010的每个从核拥有4个行发送寄存器、4个列发送寄存器和6个共享的接收寄存器,很显然从核7能够用于行接收的寄存器最多14个,从核7最多同时接收14个数据包,后接收的待传递数据包会覆盖在先接收的待传递数据包导致消息丢失和互锁的情况发生;而按照本发明提供的方法,sw26010中的从核每次连续发送7个待传递数据包到所在列不相同的从核,拿从核0~从核7最复杂状态来说明,从核0~从核7每个从核均分别向同行的其他7个从核发送1个待传递数据包,此时,从核0~7每个从核均需要接收7个待传递数据包和发送7个待传递数据包,刚好将14个寄存器占满,每个接收的待传递数据包和每个传递的待传递数据包均能够分配到一个寄存器,互不影响,基于此可以知道sw26010寄存器的数量至少要2*y(y=7)个,才能够保证在最复杂的情况下,sw26010中的从核在接收消息、发送消息的过程中不发生冲突,所以将每个从核的寄存器至少设置为2*y个,能够保证在最复杂的情况下,发送消息的数量、接收消息的数量不会超过寄存器的数量。

在从核消息传递时,按照本发明实施例1提供的方法排定指令,每个线程在处理一个源从核需要传递的待传递数据包组时,先执行多条行发送消息指令(putr)将第n组内的待传递数据包传递出去、再执行多条行转发消息指令(grpc)将第n组内的待传递数据包传递出去、最后执行多条列接收消息指令(getc)使目标从核接收第n组内的待传递数据包,重复执行上述指令,直至源从核对应的待传递数据包组内的待传递数据包全部传递完成,以此形成的是消息传递指令的有向无环的执行顺序,彻底避免了互锁的情况发生。转发消息指令(grpc)为将行接收消息指令(getr)和列发送消息指令(putc)封装而成。

为了便于说明以sw26010为例,如图5、7所示,图中的putr指令中的数字表示目标从核的列号,grpc指令中的数字表示目标从核的行号,图中共完成两组消息传送,一组是从核0向从核9发送消息,另一组是从核9向从核0发送消息,由于从核0与从核9非同行非同列,所以从核0向从核9发送消息时需要经过与从核0同行与从核9同列的中转从核1,从核9向从核0发送消息时需要经过与从核9同行与从核0同列的中转从核8,采用本实施例1提供的方法,每个从核优先执行的是发送消息指令,然后再执行接收消息指令,指令的执行顺序如图7所示,执行的过程是有向无环的,不会出现如图6所示的互锁现象。

通过本发明实施例1提供的基于有向无环图模型的寄存器级从核消息传递方法,提出一种从源从核至目标从核消息传递的有向无环图模型,防止互锁,同时能够避免寄存器被占满的情况发生,从根本上克服了寄存器级消息传递时可能存在的互锁情况,使用最小步数实现消息的传递,实现了可靠高效的寄存器级消息传递。

实施例2:

如图2所示,

本发明提供的基于有向无环图模型的寄存器级从核消息传递方法,包括

s201:将若干从核中的从核a对应的由若干待传递数据包组成的待传递数据包组分成n组,1~n组依次排列,每组包含最多7个目标从核所在列互不相同的待传递数据包;

s202:发送第n组时,从核a将第n组中的待传递数据包发送至从核a所在行的其他从核m;

s203:从核m接收待传递数据包;

s204:重复执行步骤s202~s203共n轮,直至待传递数据包组中的待传递数据包全部传递完成。

其中,若干从核构成8*8的从核阵列,每个从核至少包含有2*7个寄存器;

待传递数据包内至少包括目标从核的所在列的信息;

从核m接收的待传递数据包的目标从核的所在列与从核m的所在列相同;

1≤n≤n。

本发明实施例2提供的基于有向无环图模型的寄存器级从核消息传递方法,实现的是同行的从核之间的消息传递。通过待传递数据包中包含的目标从核的所在列信息进行同行传递。

在从核消息传递时,按照本发明实施例2提供的方法排定指令,每个线程在处理一个源从核需要传递的待传递数据包组时,执行多条行发送消息指令(putr)将第n组内的待传递数据包传递出去、再执行多条行接收指令(getr)接收第n组内的待传递数据包,线程重复执行上述指令,直至源从核对应的待传递数据包组内的待传递数据包全部传递完成。

通过本发明实施例2提供的基于有向无环图模型的寄存器级从核消息传递方法,提出一种从源从核至目标从核消息传递的有向无环图模型,防止互锁,同时能够避免寄存器被占满的情况发生,从根本上克服了寄存器级消息传递时可能存在的互锁情况,使用最小步数实现消息的同行从核间的传递,实现了可靠高效的寄存器级消息传递。

实施例3:

如图3所示,

本发明实施例3提供的基于有向无环图模型的寄存器级从核消息传递方法,

包括

s301:将若干从核中的从核a对应的由若干待传递数据包组成的待传递数据包组分成n组,1~n组依次排列,每组包含最多y个目标从核所在行互不相同的待传递数据包;

s302:发送第n组时,从核a将第n组中的待传递数据包发送至从核a所在列的其他从核x;

s303:从核x接收待传递数据包;

s304:重复执行步骤s302~s303共n轮,直至待传递数据包组中的待传递数据包全部传递完成。

其中,若干从核构成z*z的从核阵列,每个从核至少包含有2*y个寄存器,z=y+1;

待传递数据包内至少包括目标从核的所在行的信息;

从核x接收的待传递数据包的目标从核的所在行与从核x的所在行相同;

1≤n≤n。

本发明实施例3提供的基于有向无环图模型的寄存器级从核消息传递方法,实现的是同列的从核之间的消息传递。通过待传递数据包中包含的目标从核的所在行信息进行同列传递。

在从核消息传递时,按照本发明实施例3提供的方法排定指令,每个线程在处理一个源从核需要传递的待传递数据包组时,执行多条列发送消息指令(putc)将第n组内的待传递数据包传递出去、再执行多条列接收指令(getc)接收第n组内的待传递数据包,线程重复执行上述指令,直至源从核对应的待传递数据包组内的待传递数据包全部传递完成。

通过本发明实施例3提供的基于有向无环图模型的寄存器级从核消息传递方法,提出一种从源从核至目标从核消息传递的有向无环图模型,防止互锁,同时能够避免寄存器被占满的情况发生,从根本上克服了寄存器级消息传递时可能存在的互锁情况,使用最小步数实现消息的同列从核间的传递,实现了可靠高效的寄存器级消息传递。

实施例4:

如图4所示,本发明实施例4提供的基于有向无环图模型的寄存器级从核

消息传递方法,包括

s401:将若干从核中的从核a对应的由若干待传递数据包组成的待传递数据包组分为第一待传递数据包组、第二待传递数据包组和第三待传递数据包组,第一待传递数据包组内的待传递数据包的目标从核所在行与从核a的所在行不同,第一待传递数据包组内的待传递数据包的目标从核所在列与从核a的所在不同,第二待传递数据包组的待传递数据包的目标从核所在行与从核a的所在行相同,第三传递数据包组的待传递数据包的的目标从核所在列与从核a的所在列相同;

s501:将第一待传递数据包组分成n1组,1~n1组依次排列,每组最多y个目标从核所在列互不相同的待传递数据包;

s502:发送第n1组时,从核a将第n组中的待传递数据包发送至从核a所在行的其他从核m;

s503:从核m接收待传递数据包;

s504:从核m将收到的待传递数据包传递至从核m所在列的其他从核x;

s505:重复执行s502~s504共n轮,直至待传递数据包组中的第一待传递数据包全部传递完成。

s601:将第二待传递数据包组分成n2组,1~n2组依次排列,每组最多y个目标从核所在列互不相同的待传递数据包;

s602:发送第n2组时,从核a将第n2组中的待传递数据包发送至从核a所在行的其他从核m;

s603:从核m接收待传递数据包;

s604:重复执行s602~s603共n轮,直至待传递数据包组中的第二待传递数据包全部传递完成。

s:701:将第三待传递数据包组分成n3组,1~n3组依次排列,每组最多y个目标从所在行互不相同的待传递数据包;

s702:发送第n3组时,从核a将第n3组中的待传递数据包发送至从a所在列的其他从核x;

s703:从核x接收待传递数据包;

s704:重复执行s702~s703共n轮,直至待传递数据包组中的第三待传递数据包全部传递完成

其中,若干从核构成z*z的从核阵列,每个从核至少包含有2*y个寄存器;

待传递数据包内至少包括目标从核的所在行的信息;

从核m接收的待传递数据包的目标从核的所在列与从核m的所在列相同;

从核x接收的待传递数据包的目标从核的所在行与从核x的所在行相同;

1≤n1≤n1,1≤n2≤n2,1≤n3≤n3。

步骤s601、步骤s701均可在步骤s502之前完成,步骤s502~s505、步骤s602~s604、步骤s702~s704也可以调换顺序执行,本实施例4中从上至下的顺序书写并不代表真实的方法步骤顺序,如图4中的执行顺序亦可,并不作为本申请的限定。

通过步骤s401将从核对应的待传递数据包分类成目标从核与源从核不同行不同列的第一待传递数据包、目标从核与源从核同行的第二待传递数据包、目标从核与源从核同列的第三待传递数据包,第一待传递数据包利用实施例1的方法进行传递、第二传递数据包利用实施例2的方法进行传递、第三待传递数据包利用实施例3的方法进行传递。步骤s501~s505的相关说明与实施例1类似,步骤s601~s604的相关说明关与实施例2类似,步骤s701~s704的相关说明与实施例3类似,在此均不予赘述。

本领域技术人员应该理解,本领域技术人员结合现有技术以及上述实施例可以实现所述变化例,在此不予赘述。这样的变化例并不影响本发明的实质内容,在此不予赘述。

以上对本发明的较佳实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1