一种嵌入式并行计算系统及采用其的并行计算方法
【技术领域】
[0001]本发明涉及数据处理技术领域,具体涉及一种嵌入式并行计算系统及采用其的并行计算方法。
【背景技术】
[0002]目前,在嵌入式计算领域,尤其是空间星船载计算系统方面,多采用FPGA加单片单核DSP的结构,其单位时间的运算能力较低,很难满足数据量日益增大,算法复杂度日益提尚的需求。
[0003]在一些通信或雷达领域,有些系统采用多个单核DSP协同处理的结构,但在每个DSP上运行不同的任务,采取任务流水的方式处理数据。这样,对于每一个项目需要根据需求重新划分任务,并且很难将多个不同的任务负载均衡,会导致木桶效应而浪费计算资源。传统的采用任务流水的多DSP系统,一旦某一个DSP出现故障,将导致整个系统的瘫痪。
[0004]而传统的并行计算系统多采用基于以太网的大型机群系统,体积庞大,功耗高,通信带宽低,很难应用到嵌入式领域。
【发明内容】
[0005]本发明所要解决的技术问题是提供一种嵌入式并行计算系统及采用其的并行计算方法,能够解决现有技术存在的问题。
[0006]本发明提供了如下方案:
[0007]基于本发明的一个方面,提供了一种嵌入式并行计算系统,所述系统包括一个数据输入模块、多个完全相同的机箱和一个数据输出模块;每一个所述机箱包括两个交换模块、多个计算模块、一个底板和一个电源管理模块;每一个所述交换模块包括一个光纤转换器、一个SR1交换芯片和一个GbE交换芯片,每一个所述计算模块包括两片多核DSP、一个SR1交换芯片和一个FPGA ;每一个所述交换模块中的SR1交换芯片均与每一个所述计算模块中的SR1交换芯片相连,每一个所述交换模块中的GbE交换芯片分别与每一个计算模块中的多核DSP相连,每一个所述交换模块中的GbE交换芯片还与电源管理模块相连,每一个所述交换模块中的光纤转换器与其它机箱或数据输入模块或数据输出模块相连;
[0008]外部输入接口通过所述数据输入模块向Master输入待处理数据,由Master将所述待处理数据平均分配给可用的slave,每一个slave接收到相应的待处理数据,按照slave的内核数将所述相应的待处理数据平均分配给该slave的内核以便由对应的内核进行相应的执行,且将执行结果返回给Master,由Master将所有slave返回的执行结果合并,并通过数据输出模块经外部输出接口输出,其中,Masetr为所有DSP中的一个,其它的DSP均为slave。
[0009]基于本发明的另一个方面,提供了一种并行计算方法,所述方法包括:
[0010]S1、外部输入接口通过所述数据输入模块向Master输入待处理数据;
[0011]S2、Master将所述待处理数据平均分配给可用的slave,每一个slave接收到相应的待处理数据,按照该slave的内核数将所述相应的待处理数据平均分配给该slave的内核以便由对应的内核进行相应的执行,且将执行结果返回给Master ;
[0012]S3、Master将所有slave返回的执行结果合并,并通过数据输出模块经外部输出接口输出;
[0013]其中,Masetr为所有DSP中的一个,其它的DSP均为slave。
[0014]本发明提供的一种嵌入式并行计算系统及采用其的并行计算方法,根据待处理数据的运算量选择机箱的数量以及每一个机箱内计算模块的数量,提高整个系统的计算效率,可扩展性强;每个机箱内部包括2个交换模块,可用于组成双星型SIRO网络,可进行内部高速的数据传输,双星型网络不仅提高了通信带宽,而且还增加了冗余度,一旦其中的一个交换模块失效,则双星型SR1网络变为单星型SR1网络可以继续工作;采用多个DSP进行数据的并行计算,提高了数据计算的效率,且每一个DSP计算相同数据量的数据,避免了木桶效应的发生,且每一个DSP为多核DSP,运算能力强;另外,对于失效的DSP,将其断电,降低功耗。
【附图说明】
[0015]图1为本发明实施例一的一种嵌入式并行计算系统示意图;
[0016]图2为本发明实施例一中每一个机箱的内部结构示意图;
[0017]图3为本发明实施例二的一种并行计算方法流程图;
[0018]图4本发明实施例二中确定Master的过程流程图。
【具体实施方式】
[0019]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0020]实施例一、一种嵌入式并行计算系统。以下结合图1和图2对本实施例提供的系统进行详细说明。
[0021]参见图1,本实施例提供的所述系统包括一个数据输入模块、多个完全相同的机箱和一个数据输出模块。另外,参见图2,每一个所述机箱包括两个交换模块、多个计算模块、一个底板和一个电源管理模块;每一个所述交换模块包括一个光纤转换器、一个SR1(Serial Rapid I/O)交换芯片和一GbE(Gigabit Ethernet,千兆以太网)交换芯片,每一个所述计算模块包括两片多核DSP(Digital Signal Processing,数字信号处理)、一个SR1交换芯片和一个FPGA (Field Programmable Gate Array,现场可编程逻辑门阵列)。每一个所述交换模块中的SR1交换芯片均与每一个所述计算模块中的SR1交换芯片相连,每一个所述交换模块中的GbE交换芯片分别与每一个计算模块中的多核DSP相连,每一个所述交换模块中的GbE交换芯片还与电源管理模块相连,每一个所述交换模块中的光纤转换器与其它机箱或数据输入模块或数据输出模块相连。具体的,每一个所述交换模块中的SR1交换芯片分别通过I路SR1经过机箱底板与每一个计算模块中的SR1交换芯片相连,所述交换模块中的SR1交换芯片通过2路SR1经过光纤转换器与上行的其它机箱或数据输入模块相连,另通过2路SR1经过光纤转换器与下行的其它机箱或数据输出模块相连。每一个所述交换模块中的GbE交换芯片通过2路GbE与每一个计算模块中的2片DSP相连,另通过I路GbE连接到其它机箱,且通过I路GbE连接到所述电源管理模块。每一个计算模块中的2片DSP均通过一路SR1与该计算模块中的SR1交换芯片相连;所述数据输入模块与所有机箱内的所有DSP中的Master通过SR1接口相连,所述数据输出模块与所述Master通过SR1接口相连。
[0022]需要说明的是,每一个机箱内设置2个交换模块,用于组成双星型SR1网络,可进行内部高速的数据传输,双星型网络不仅提高了通信带宽,而且还增加了冗余度,一旦其中的一个交换模块失效,则双星型SR1网络变为单星型SR1网络可以继续工作。GbE交换芯片主要用于内部事务管理(比如,所有DSP的心跳判断、计算模块管理、电源管理和主机自动切换等)的总线。每一个计算模块中的FPGA,主要用于DSP的上电顺序管理和外围逻辑的管理。
[0023]采用本实施例提供的系统进行数据计算的过程为:外部输入接口通过所述数据输入模块向Master输入待处理数据,由Master将所述待处理数据平均分配给可用的slave,每一个slave接收到相应的待处理数据,按照slave的内核数将所述相应的待处理数据平均分配给该slave的内核以便由对应的内核进行相应的执行,且将执行结果返回给Master,由Master将所有slave返回的执行结果合并,并通过数据输出模块经外部输出接口输出,其中,Masetr为所有DSP中的一个,其它的DSP均为slave。
[0024]其中,所述机箱的数量以及每一个机箱内的计算模块的数量均根据待处理数据的运算量确定,即根据具体的应用需求,选择采用至少I个最多8个机箱互联构成高性能并行计算系统(超过8个机箱会导致并行计算的效率降低,因此采用合适数量的机箱)。每个机箱在包括8个计算模块时的计算能力可达到定点/浮点分别为5120GMAC和2560GFL0PS (功耗约为260W),整个系统在8机箱时的计算能力可达定点/浮点分别为40906GMAC和20480GFL0PS (功耗约 2080W)。
[0025]机箱内所有的DSP均采用TI公司的高性能、低功耗、工业级的8核DSP处理器TMS320C6678,其工作频率为1.25GHz,其定点/浮点运算性能分别为320GMAC和160GFL0PS,支持多种高速接口:比如GbE接口、DDR3接口和SR1接口等。所述外部输入接口和外部输出接口 为 CameraLink、LVDS、TLK2711、lOGbE、InfiniBand 或自定义高速接口。
[0026]实施例二、一种并行计算方法。以下结合图3和图4对本实施例提供的方法进行详细描述。
[0027]参见图3,本实施例提供的方法包括:S1、外部输入接口通过所述数据输入模块向Master输入待处理数据。
[0028]具体的,从嵌入式并行计算系统的所有DSP中确定Master的过程为:上电后,所有的DSP均通过GbE向其它的DSP广播自身唯一的ID号,当广播接收后,每一个DSP中均存储有所有DSP的ID号;每一个DSP对所有DSP的ID号按照预定规则进行排序,并将排序第一的ID号对应的DSP作为所有DSP的Master,其它的DSP作为Slave。
[0029]需要说明的是,外部输入接口通常为CameraLink、LVDS, TLK2711、lOGbE、InfiniBand