[发明专利]一种多级流水线并行计算的缓冲方法及系统在审
申请号: | 201610331646.7 | 申请日: | 2016-05-18 |
公开(公告)号: | CN107402805A | 公开(公告)日: | 2017-11-28 |
发明(设计)人: | 吴玉平 | 申请(专利权)人: | 中国科学院微电子研究所 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京维澳专利代理有限公司11252 | 代理人: | 周放,江怀勤 |
地址: | 100029 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多级 流水线 并行 计算 缓冲 方法 系统 | ||
技术领域
本发明涉及数据处理领域,特别涉及一种多级流水线并行计算的缓冲方法及系统。
背景技术
传统的串行计算对各个顺序任务逐个顺序处理,每个任务的处理包括若干子任务的处理,每个子任务有各自的处理模块,一个任务Tn的处理先后顺序上经历各子任务处理模块,在Tn的各级子任务处理之后方才对任务Tn+1进行处理。若任务Tn的处理结束时间点早于任务Tn+1的到来时间点,这种串行计算方法是可行的。
但是,若任务Tn的处理结束时间点晚于任务Tn+1的到来时间点,这种串行计算方法是不可行的,这时需要借助并行计算使得任务Tn的处理尚未结束就可以在任务Tn+1到来时对Tn+1进行处理,这些子任务处理模块在处理完当前任务的子任务之后,将数据传送给流水线上的下一级子任务处理模块,然后这些子任务处理模块开始处理下一任务的子任务。
对于传统的流水线,流水线各级子任务处理模块有各自独立的独立数据空间,子任务处理模块在对应子任务执行结束之后,通过拷贝将数据传送给流水线下一级子任务处理模块。
这样会导致以下缺点:各子任务处理模块之间通过拷贝实现数据传递,花费了不必要的数据拷贝时间,在子任务间传送数据量较大时,时间上的开销比较明显,影响了程序的性能;同时,执行这种数据拷贝导致了不必要的功耗开销。
发明内容
本发明提供一种多级流水线并行计算的缓冲方法及系统,解决现有技 术中各子任务处理模块之间通过拷贝实现数据传递的方式浪费时间及功耗的问题。
本发明提供了一种多级流水线并行计算的缓冲方法,包括步骤:
预先将流水线的各任务分成多级子任务,流水线的不同任务的同一级子任务由同一个子任务处理模块处理;
为流水线的各任务设定固定的独立数据空间,每个独立数据空间具有固定的地址;
流水线的同一任务的各级子任务共享该任务的独立数据空间,处理后一级子任务的子任务处理模块通过更新指针的地址,继承同一任务的前一级子任务的独立数据空间的数据,从而实现数据传递。
优选地,所述方法还包括:
预先将流水线的各任务分成多级子任务之后,对于流水线的每一个任务,对各级子任务的执行时长进行优化,使得流水线的任务的各级子任务执行时长之差的绝对值尽可能最小。
优选地,流水线的各任务的第一级子任务的执行时长<所有流水线的任务的最小发生周期。
优选地,流水线的任务的各级子任务的最小级数为不小于当前流水线的任务中各个任务的执行时长的最大值与各级子任务执行时长的平均值的比值的最小整数。
优选地,相邻流水线的任务的独立数据空间在逻辑上相邻,所有待处理流水线的任务的独立数据空间构成环状独立数据空间。
优选地,根据需求将流水线的任一层任务分为多个下一层子任务。
一种多级流水线并行计算的缓冲系统,包括:
任务切分模块,用于预先将流水线的各任务分成多级子任务,流水线的不同任务的同一级子任务由同一个子任务处理模块处理;
存储空间设定模块,用于为流水线的各任务设定固定的独立数据空间,每个独立数据空间具有固定的地址;
数据传递模块,用于流水线的同一任务的各级子任务共享该任务的独立数据空间,处理后一级子任务的子任务处理模块通过更新指针的地址, 继承同一任务的前一级子任务的独立数据空间的数据,从而实现数据传递。
优选地,所述系统还包括:
执行时长优化模块,用于在任务切分模块预先将流水线的各任务分成多级子任务之后,对于流水线的每一个任务,对各级子任务的执行时长进行优化,使得流水线的任务的各级子任务执行时长之差的绝对值尽可能最小。
优选地,相邻流水线的任务的独立数据空间在逻辑上相邻,所有待处理流水线的任务的独立数据空间构成环状独立数据空间。
优选地,所述任务切分模块具体用于根据需求将流水线的任一层任务分为多个下一层子任务,流水线的同一层任务的同一级子任务由同一个子任务处理模块处理。
本发明提供的一种多级流水线并行计算的缓冲方法及系统,通过预先将流水线的各任务分成多级子任务,并为流水线的各任务设定固定的独立数据空间,实际使用过程中,流水线的同一任务的各级子任务共享该任务的独立数据空间,处理后一级子任务的子任务处理模块通过更新指针的地址,继承同一任务的前一级子任务的独立数据空间的数据,从而实现数据传递。由于通过更新子处理模块的指针的地址,实现数据传递,避免了拷贝浪费时间及功耗。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院微电子研究所,未经中国科学院微电子研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610331646.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种软件编译方法及装置
- 下一篇:分布式文件架构的任务处理方法和装置