【技术实现步骤摘要】
基于局部存储器的主核与从核之间消息传递系统
[0001]本专利技术涉及众核处理器的领域,具体涉及基于局部存储器的主核与从核之间消息传递系统。
技术介绍
[0002](1)国产众核处理器体系结构
[0003]如图1所示,一颗SW26010微处理器(Haohuan FU,Junfeng LIAO.The Sunway Taihu Light supercomputer:system and applications[J].Science China Information Sciences,2016,59(7):1
‑
16)包含了4个异构群。每个异构群包括一个主核和64个从核构成的从核簇,主频为1.5GHz,如图2所示。每个异构群的存储器层次关系相同,由异构群内存(8GB)和从核局部存储空间两部分组成。主核具有容量为32KB的L1数据Cache和256KB的L2Cache(数据和指令)。每个从核具有64KB的局部存储空间和16KB的指令存储,支持256位的SIMD指令集。从核可以通过直接访问或DMA方式访问主存。
[0004]面向E级高性能计算的加速器芯片(Liu Sheng,Lu Kai,Guo Yang,Liu Zhong,Chen Haiyan,Lei Yuanwu,Sun Haiyan,Yang Qianming,Chen Xiaowen,Chen Shenggang,Liu Biwei,Lu Jianzhuang.A Self
‑
Designed Hetero ...
【技术保护点】
【技术特征摘要】
1.基于局部存储器的主核与从核之间消息传递系统,其特征在于,包括主核集合M,分别记为m1,
…
,m
|M|
,其中|M|表示主核集合M中主核的数量;主核m
i
对应一个或多个从核集合S
a
,且满足|S
a
|=|S
b
|,|S
a
|表示从核集合S
a
中的从核数量,1≤a,b≤M;通过从核线程管理接口,一个主核m
i
可以管理从核集合S
i
,1≤i≤|M|;其中,在创建第i个主核m
i
到第i个从核集合S
i
中的第j个从核s
i,j
的第k个消息队列q
i,j,k
时,其中,s
i,j
∈S
i
,1≤j≤|S
i
|,1≤k,可以利用调用接口在主核m
i
和从核s
i,j
的内存中创建对应的消息队列q
i,j,k
,所有的主核m
i
到从核s
i,j
的消息队列q
i,j,k
构成了集合Q,q
i,j,k
∈Q,完成主核m
i
和从核s
i,j
之间的连接;主核m
i
或从核s
i,j
通过消息发送机制,将一系列的消息r
x
,,传输到消息队列q
i,j,k
之中,得到消息序列集合R,对其中的消息进行有序的发送,1≤x,r
x
∈R;从核s
i,j
或主核m
i
根据消息队列q
i,j,k
的相关信息,从消息序列R中选择对应的消息r
x
,其中r
x
∈R,1≤x≤|R|,用户获取消息r
x
,完成自定义的对消息r
x
的处理后,消息队列q
i,j,k
中释放该消息r
x
所用内存;从核s
i,j
处理完数据之后注销从核s
i,j
的缓存,主核m
i
的运行线程回收从核s
i,j
的线程并继续处理主核m
i
的其余任务,若没有任务则主核m
i
注销缓存,程序多线程并行结束。2.根据权利要求1所述的基于局部存储器的主核与从核之间消息传递系统,其特征在于,在主核上创建消息队列,需要指明以下参数:字符串类型的消息队列名称qName、连接的从核编号slaveID、消息的尺寸msgSize、消息队列在主核部分容纳的消息数量mSize、在从核部分容纳的消息数量sSize、主核消息队列的起始地址mQaddr、消息队列在从核中所占用的存储器类型sType以及消息队列的方向direction;调用成功后将返回句柄号handle;其中,主核以(从核编号,句柄号)或者(从核编号,队列名称)标识一个队列实体;从核以句柄号或者队列名称作为队列的唯一标识号,以确定唯一的队列实体;同一个的队列在主核上的句柄与从核上的句柄相同;消息队列仅仅用于主核和从核之间的通信,用户可以指定队列所在的从核slaveID;在一对主核和从核之间,可以设置多个;不同的消息队列;消息队列中每个消息的尺寸不大于msgSize个字节;一个消息队列分布在主核存储器和从核的局部存储器中,两者容纳的消息数量分别为mSize和sSize;消息队列在主核存储器上的起始地址是由应用程序指定的连续存储器空间,起始地址为mQaddr;如果从核上的局部存储器具有不同类型,可以通过从核存储器类型sType指定该消息队列所占用的局部存储器类型;消息队列采用单向,分为主核写入/从核读出,从核写入主核/读出两种方向,由direction参数指定;主核可以在主核与一个从核之间创建多个消息队列,主核与全部从核之间的消息队列构成了消息队列集合;主核根据从核线程管理接口完成对从核线程的控制,主要为接口创建并启动从核线程组、等待线程组终止、关闭线程组、主核加载镜像文件到设备。
3.根据权利要求2所述的基于局部存储器的主核与从核之间消息传递系统,其特征在于,一个消息队列在主核部分和从核部分都具有一块连续的存储空间存放消息内容,两者能容纳的消息数量分为mSize和sSize,所占用的存储器容量分别为mSize
×
msgSize字节和sSize
×
msgSize字节;消息队列从核部分的容量受限于局部存储器的容量;每个消息队列的控制信息布局分为两个部分:状态列表和位置索引;位置索引分为:与主核位置相关的IMTran、IMReady、IMLocked和IMIdle,与从核位置相关的ISTran、ISReady、ISLocked和ISIdle;根据消息队列方向的不同也会有不同的设计,在主核发往从核的消息队列控制信息布局中,IMLocked和IMIdle存储在主核地址区域;IMTran、IMReady和其余4个位置索引均位于从核局部存储器;而在从核发往主核的消息队列控制信息布局中IMReady、IMLocked和IMIdle存储在主核地址区域;IMTran和其余4个位置索引均位于从核局部存储器;IMTran表示主核空间中第一个消息块状态为传输中的消息位置索引;IMReady表示主核空间中第一个消息块状态为消息准备好的消息位置索引;IMLocked表示主核空间中第一个消息块状态为消息锁定中的消息位置索引;IMIdle表示主核空间中第一个消息块状态为消息空闲中的消息位置索引;ISTran表示从核空间中第一个消息块状态为传输中的消息位置索引;ISReady表示从核空间中第一个消息块状态为消息准备好的消息位置索引;ISLocked表示从核空间中第一个消息块状态为消息锁定中的消息位置索引;ISIdle表示从核空间中第一个消息块状态为消息空闲中的消息位置索引;状态列表中每个状态与环形的消息块数据区中的每个消息块一一对应;主核部分的消息块状态列表和从核部分的消息块状态列表分别记为MState和SState,分别处于主核地址区域和从核局部存储器;一个消息队列分为主核部分和从核部分;在消息队列创建时,主核部分和从核部分能容纳的消息数量就已经确定。4.根据权利要求3所述的基于局部存储器的主核与从核之间消息传递系统,其特征在于,在主核到从核的消息队列中,一个消息块在主核部分的状态包括:MasterIdle,MasterLocked,MasterReady,MTransferring;一个消息块在从核部分的状态包括SlaveIdle,STransferring,SlaveReady,SlaveLocked;每个消息块的状态信息都存储在各自存储器中;消息队列创建后,主核部分所有的消息块都处于MasterIdle状态,从核部分所有消息块处于SlaveIdle状态;MasterIdle表示主核中该消息块为空闲可分配状态,MasterLocked表示主核中该消息块为锁定状态,MasterReady表示主核中该消息块为准备好可使用状态,MTransferring表示主核中该消息块为传输中状态;SlaveIdle表示从核中该消息块为空闲可分配状态,STransferring表示从核中该消息块为传输中状态,SlaveReady表示从核中该消息块为准备好可使用状态,SlaveLocked表示从核中该消息块为锁定状态;基于局部存储器的主核与从核之间消息传递系统为主核应用程序所提供的接口包括:M1、mAllocateMsg(),在消息队列主核部分获得一个消息块的地址;
M2、mSendMsg(),启动主核向从核传递消息;M3、mRecvMsg(),接收一个从核发送来的消息;M4、mReleaseMsg(),释放一个主核部分的消息;所述的消息队列系统为从核应用程序所提供的接口包括:S1、sRecvMsg(),接收一个主核发送来的消息;S2、sReleaseMsg(),释放一个从核部分的消息;S3、sAllocateMsg(),在消息队列从核部分获得一个消息块的地址;S4、sSendMsg(),启动从核向主核传递消息;上述接口中,M1、M2、S1和S2用于主核向从核传递消息,M3、M4、S3和S4用于从核向主核传递消息。5.根据权利要求4所述的基于局部存储器的主核与从核之间消息传递系统,其特征在于,从主核向从核发送一个消息的操作序列包括:a1、主核应用程序调用mAllocateMsg();基于局部存储器的主核与从核之间消息传递系统在消息队列的主核部分中分配一个位置索引IMIdle指向的空闲的消息块,设置该块为MasterLocked状态,循环移动IMIdle,将该块地址MasterMsg返回给主核应用程序;a2、主核应用程序在MasterMsg指向的空闲消息块中设置需要发送的消息;a3、主核应用程序调用mSendMsg(),取得位置索引IMLocked指向的第一个消息块MasterMsg,基于局部存储器的主核与从核之间消息传递系统将设置消息块MasterMsg为MasterReady状态,循环移动IMLocked;a4、基于局部存储器的主核与从核之间消息传递系统在设定的时机,为需要传输的消息块在从核部分分配一个位置索引ISIdle指向的空闲的消息块消息存储空间SlaveMsg,循环移动ISIdle;启动DMA将MasterMsg中的消息块传输SlaveMsg,取得位置索引IMReady指向的第一个消息块MasterMsg,并将消息块MasterMsg设置为MTransferring状态,将SlaveMsg设置为STransferring状态;当DMA传输结束后,基于局部存储器的主核与从核之间消息传递系统将从核消息块位置索引ISTran指向的消息块SlaveMsg设置为SlaveReady状态,将主核消息块位置索引IMTran指向的消息块MasterMsg设置为MasterIdle状态;a5、从核应用程序调用sRecvMsg();消息队列向从核应用程序返回已经处于从核部分的位置索引ISReady指向的消息块SlaveMsg,将其设置为SlaveLocked;a6、从核应用程序读取SlaveMsg中的内容;a7、从核应用程序调用sReleaseMsg();消息队列将从核消息块SlaveMsg设置为SlaveIdle状态;从核向主核发送一个消息的操作序列包括:b1、从核应用程序调用sAllocateMsg();基于局部存储器的主核与从核之间消息传递系统...
【专利技术属性】
技术研发人员:陈虎,周鹏灵,
申请(专利权)人:广东省科技基础条件平台中心,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。