基于MapReduce编程模型的多核处理器架构的制作方法_2

文档序号:9844067阅读:来源:国知局
plit处理器单元(可以是通用的处理器,也可以是定制的专用处理器),用于搬运、分割输入数据,并控制各个MRBP模块的执行。具体地,如图2中虚线I所示,Split处理器单元从主系统中获取输入数据,然后将数据存储到全局存储器中。由于要处理的数据很大,全局存储器可由大存储容量的DDR实现。如图2中虚线I至虚线5所示,Split处理器单元根据系统架构的配置(如:MRBP的数量,输入数据的大小,数据缓存的大小),将全局存储器中的数据分割成一定大小的数据块,并且分配给各个MRBP模块(图2中以两条MapReduce块流水线为例)中的数据缓存。Split处理器在完成数据块的传输之后,立即通过多处理器之间的控制信息触发MRBP模块开始工作,图2中虚线6和虚线7表示处理器之间的触发信号。
[0019]参见图3,详细描述了本发明的MRBP模块。MRBP模块是所述多核处理器系统架构的核心处理部分。根据MapReduce编程模型,MRBP模块将输入的裸数据块转换成〈key ,values〉数据对的形式。如图3所示,本发明的多核处理器系统架构由多条MRBP组成,每条MRBP由一个Map处理器,一个Reduce处理器和两个乒乓式的数据缓存组成,它们之间通过共享的AHB总线连接起来,并通过一条专用的多核处理器核间互连总线传递控制信息。数据缓存I核数据缓存2以乒乓的形式工作,且对Map处理器和Reduce处理器都是共享的。采用两个乒乓式的数据缓存是为了让Map处理器和Reduce处理器可以独立的同时工作,交替处理缓存I和缓存2中的数据,从而提高MRBP处理数据流的速度。MRPB中,Map处理器和Reduce处理器之间控制信号的传递依然是通过多核处理器的核间通信网络来实现。无论是数据缓存I还是数据缓存2,只要缓存里面有新数据,那么Map处理器就会被SpI i t模块触发开始工作。当Map处理器完成某一个数据缓存中的数据处理时,Reduce处理器被触发,用于继续处理所述数据缓存中的数据,同时Map处理器可以处理另一个数据缓存中的数据,这样可以确保MRBP的流水线顺利执行,同时提高了流水线的吞吐率。
[0020]如图4中所示,以统计文本中单词的数量的应用(WordCount)为例,根据MapReduce编程模型,Map处理器单元先对原始的数据块进行处理,得到中间级的〈key,ValUe>对,并且对这些数据按key值进行排序。然后,Reduce处理器进一步合并Map处理器的结果,并得到合并后的〈key ,value〉对。本发明的多核处理器为用户提供一个基于MapReduce编程模型的运行平台,用户可根据具体的算法自定义Map处理器和Reduce处理器的程序。
[0021]参见图5和图6,详细描述了本发明的Merge模块,Merge模块将MRBP模块中所有Reduce处理器的结果进一步合并,将结果中所有〈key, values〉对中具有相同key值的数据对合并成一个〈key, values〉对,并存储到全局存储器中。为了提高Merge模块的吞吐率,本发明采用两级Merge机制,MRBP模块中的块流水线被平均分成若干组,每组有两个或两个以上的块流水线,每组块流水线的数据缓存与一个固定的子Merge处理器通过一条共享的AHB总线相连。所述子Merge处理器负责将与其相连的块流水线的处理结果(即块流水线中Reduce处理器的结果)进一步合并,并将结果存储在全局存储器中。第二级有一个总Merge处理器,它将所有一级子Merge处理器存储在全局存储器中的结果进一步合并并输出。图5所示的例子中有四条块流水线,其中MRBPl和MRBP2为一组,MRBP3和MRBP4为一组。Mergel和Merge2均为第一级子Merge处理器,其中Mergel处理器负责MRBPl和MRBP2中的数据块,Merge2处理器负责MRBP3和MRBP4中的数据块。Mergel处理器和Merge2处理器都将处理结果保存至全局存储器中C3MergeS处理器是所述两级Merge结构中的总Merge处理器,它对一级Merge处理器(Merge I和Merge2)的结果进一步合并成最终结果。本发明通过多层次的AHB总线实现所述的两级Merge机制,第一级Merge处理器与所对应的MRBP中的数据缓存通过共享的AHB总线相连,而全局存储器与所有的一级子Merge处理器都相连,并被所有的一级子Merge处理器共享。同样,所有的子Merge处理器和总Merge处理器间的控制信息的传递依然是通过多核处理器的核间通信网络完成。
[0022]图6更详细的描述了本发明Merge模块的执行流程图,其中块流水线MRBPl和MRBP2为一组,由Merge模块中的子Merge处理器Merge I负责;块流水线MRBP3和MRBP4为一组,由Merge模块中的子Merge处理器Merge2负责;Merge3是Merge模块中的总Merge处理器。由于本发明中Split模块中分割数据并且传输数据的过程用时很少,MRBP模块中各块流水线几乎可以同时开始工作。数据经MRBP模块处理后,子Merge处理器(Merge I和Merge2)被触发,将不同块流水线(MergeI负责MRBPI和MRBP2,Merge2负责MRBP3和MRBP4)的结果进行合并,并存储至全局存储器中。最后,由总Merge处理器(Merge3)将所有结果合并。
[0023]相对于Split模块、Merge模块的计算复杂度高,处理过程用时较长。其中,第一级Merge处理过程用时较短,处理结果已存储在全局存储器中,因此即使第二级Merge处理过程随着子Merge处理器结果的积累越来越长,MapReduce流水线的工作将不受第二级Merge处理器耗时的影响而顺利进行。因此采用两级Merge来处理数据对确保块流水线顺利工作是非常有必要的。更重要的是,本发明可以根据目标算法和数据集的大小来调整系统硬件架构,通过采用更多级的Merge来进行加速。
[0024]本技术领域技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
[0025]以上所述的【具体实施方式】,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的【具体实施方式】而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.基于MapReduce编程模型的多核处理器架构,其特征在于,包含SpI it模块、全局存储器、若干MapReduce的块流水线模块和Merge模块; 所述Split模块用于将输入数据暂存至全局存储器中,将其分割成数据块分配给每一个MapReduce的块流水线模块,并控制各个MapReduce的块流水线模块工作; 所述MapReduce的块流水线模块用于对分割好的数据块进行流水线处理,根据MapReduce编程模型的定义将输入的裸数据处理转变成〈key ,values〉对的形式后输出至所述Merge模块; 所述Merge模块用于将各个MapReduce的块流水线模块的输出的〈key,value〉对中具有相同key值的结果合并并输出。2.根据权利要求1所述的基于MapReduce编程模型的多核处理器架构,其特征在于,所述MapReduce的块流水线模块包含Map处理器、Reduce处理器和两个数据缓存,所述Map处理器、Reduce处理器和两个数据缓存通过共享的AHB总线进行连接; 所述两个数据缓存用于接收所述Split模块分配的数据; 所述Map处理器用于将接收了 Spl it模块分配数据的数据缓存中的裸数据根据MapReduce编程模型转化为〈key,value〉对,并触发所述Reduce处理器继续对转换过后的数据缓存中的〈key,value〉对进行后续处理; 所述Reduce处理器用于将数据缓存中经所述Map处理器处理过的〈key,value〉对中相同key值的数据对进行合并,并转化为〈key, values〉对的形式。3.根据权利要求2所述的基于MapReduce编程模型的多核处理器架构,其特征在于,所述Merge模块包含一个总Merge处理器和若干个子Merge处理器,每个子Merge处理器与至少两个MapReduce块流水线模块中的数据缓存通过共享的数据总线相连,总Merge处理器通过共享的数据总线与全局存储器以及各个子Merge处理器相连; 所述子Merge处理器用于将与之相连的多个数据缓存中经所述Reduce处理器处理过的具有相同key值的〈key,values〉对进行合并,并通过共享的数据总线,将合并后的〈key,values〉对存放在全局存储器中; 所述总Merge处理器用于将全局存储器中经所述子Merge处理器合并的〈key,values〉对中具有相同key值的〈key, values〉对进行合并,并将合并后的结果输出。4.根据权利要求3所述的基于MapReduce编程模型的多核处理器架构,其特征在于,所述Spl it模块、Map处理器、Reduce处理器、总Merge处理器、以及各个子Merge处理器通过一条专用的控制总线相连; 所述Spl it模块通过所述控制总线以消息传递的形式通知各个MapReduce块流水线中的Map处理器开始工作; 所述Map处理器通过所述控制总线以消息传递的形式通知Reduce处理器开始工作; 所述Reduce处理器通过所述控制总线以消息传递的形式通知各个子Merge处理器开始工作; 所述各个子Merge处理器通过所述控制总线以消息传递的形式通知总Merge处理器开始工作。5.根据权利要求2中所述的基于MapReduce编程模型的多核处理器架构,其特征在于,所述两个数据缓存以乒乓的方式与所述Map处理器和Reduce处理器协同工作。
【专利摘要】本发明公开了一种基于MapReduce编程模型的多核处理器架构,用于加速计算机网络中计算节点处理大数据流的速度,并简化计算节点并行编程的复杂度。本处理器中,输入数据依次经Split分割调度模块,MapReduce块流水线模块,Merge合并模块处理后输出。这些模块间通过一种多层次的片上互连结构相连,Split分割调度模块将输入数据分割成小块,并控制MapReduce块流水线模块处理;MapReduce块流水线模块中的每条块流水线由一个Map处理器、一个Reduce处理器和两个乒乓式的数据缓存组成,其中Map处理器和Reduce处理器以乒乓的形式对数据缓存中的数据进行MapReduce处理;最后,Merge模块采用层次化的结构对MapReduce的结果进行合并和排序,并得到最终结果。
【IPC分类】G06F15/167
【公开号】CN105608046
【申请号】CN201510954803
【发明人】肖昊, 张华娟, 吴宁
【申请人】南京航空航天大学
【公开日】2016年5月25日
【申请日】2015年12月17日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1