[发明专利]一种多核并行计算的快速核间数据同步方法有效
申请号: | 202010324853.6 | 申请日: | 2020-04-22 |
公开(公告)号: | CN111459872B | 公开(公告)日: | 2023-05-12 |
发明(设计)人: | 王旭;陈南希;张晓林 | 申请(专利权)人: | 中国科学院上海微系统与信息技术研究所 |
主分类号: | G06F15/167 | 分类号: | G06F15/167;G06F15/177 |
代理公司: | 上海智信专利代理有限公司 31002 | 代理人: | 邓琪 |
地址: | 200050 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多核 并行 计算 快速 数据 同步 方法 | ||
1.一种多核并行计算的快速核间数据同步方法,其用于维护DSP多核并行计算时的核间数据一致性,其特征在于,包括:
步骤S1:根据多核并行计算模型的核间连接关系,为所述核间连接关系中每两个直接相连的核之间配置缓冲区和缓冲区数据结构,在每个缓冲区数据结构中设置缓冲区写入指示器和缓冲区读取指示器;
步骤S2:初始化对应的缓冲区写入指示器和缓冲区读取指示器;
步骤S3:DSP的所有核同时执行读取核间数据的步骤和写入核间数据的步骤;
步骤S4:进入下一个数据处理周期,重复所述步骤S3,直到多核并行计算模型运行完成;
在所述步骤S3中,对于每一个当前核,所述读取核间数据的步骤如下:
步骤S31:当前核不对预取器和数据缓存进行任何额外操作,直接从缓冲区数据结构中读入缓冲区读取指示器;
步骤S32:根据缓冲区读取指示器的值,找到指向输入数据的内存区域的数据指针;
步骤S33:利用处理器指令丢弃预取器中的数据以及数据缓存中的旧数据,然后通过所述步骤S32中的数据指针读取输入数据;
步骤S34:不对预取器和数据缓存进行任何额外操作,直接对缓冲区读取指示器的值取反,并以此作为缓冲区读取指示器在下一个数据处理周期的值;
对于每一个当前核,所述写入核间数据的步骤如下:
步骤S31’:当前核不对预取器和数据缓存进行任何额外操作,直接从缓冲区数据结构中读入缓冲区写入指示器;
步骤S32’:根据缓冲区写入指示器的值,找到指向输出数据的内存区域的数据指针;
步骤S33’:通过所述步骤S32’的数据指针写入输出数据,然后利用处理器指令对数据缓存执行写回的操作;
步骤S34’:不对预取器和数据缓存进行任何的额外操作,直接对缓冲区写入指示器的值取反,并以此作为缓冲区写入指示器在下一个数据处理周期的值。
2.根据权利要求1所述的多核并行计算的快速核间数据同步方法,其特征在于,在所述步骤S1中,所述缓冲区数据结构为:
其中,数据指针0和数据指针1分别指向乒乓缓冲区的两块内存区域;缓冲区数据长度是指每块内存区域的长度;缓冲区读取指示器用来说明在当前数据处理周期内,两块内存区域中的哪一块存放有输入数据;缓冲区写入指示器用来说明在当前数据处理周期内,两块内存区域中的哪一块存放有输出数据;缓冲区类型用来说明该缓冲区是否为乒乓缓冲区。
3.根据权利要求1所述的多核并行计算的快速核间数据同步方法,其特征在于,在所述步骤S2中,DSP的每个核都设有一个周期计数器,以便对数据处理周期进行计数,任意两个核的周期计数器在内存中的间距大于DSP数据缓存的写回操作的最小颗粒度;
且所述步骤S2具体通过以下方式进行:
对于DSP的每个核,根据其周期计数器和多核并行计算模型来判断当前核在各个数据处理周期是否有输入数据,如果在第N-1个数据处理周期没有输入数据,而在第N个数据处理周期有输入数据,那么在第N个数据处理周期开始时,将当前核与其前向核之间的缓冲区数据结构中的缓冲区读取指示器设为0,将当前核与其后向核之间的缓冲区数据结构中的缓冲区写入指示器设为0,其中N为大于1的正整数;此外,如果当前核在第1个数据处理周期有输入数据,则将当前核与其前向核之间的缓冲区数据结构中的缓冲区读取指示器设为0,将当前核与其后向核之间的缓冲区数据结构中的缓冲区写入指示器设为0。
4.根据权利要求1所述的多核并行计算的快速核间数据同步方法,其特征在于,在所述步骤S3中,所述读取核间数据的步骤和写入核间数据的步骤在不同的核上同时执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院上海微系统与信息技术研究所,未经中国科学院上海微系统与信息技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010324853.6/1.html,转载请声明来源钻瓜专利网。