背景技术
当前科学研究的主要手段包括:高性能计算、传统理论推演以及实验研究。其中,高性能计算已广泛应用于众多领域,如图形视觉、信号处理以及科学计算领域等。随着科技的进步,高性能科学计算对大规模并行计算提出了迫切需求。同时,随着集成电路制造工艺的不断进步,片上多核处理器作为摩尔定律的一种新的延续形式,已经成为处理器性能持续增长的必然途径。目前,多核片上系统MPSoC集成的核芯数目越来越多,核间通信机制成为了决定多核系统性能的重要因素。对于一种多核处理平台的通信结构的设计主要面临以下两个问题:(1)对于百千级别的超大规模多核处理器平台如何实现核与核间高效的互连,同时降低因为通信结构而引入的额外开销;(2)如何提升多核片上系统的并行计算能力,以更加有效利用多核计算资源,使得用户能够最终享受到硬件资源增加带来的性能体验。共享总线核间互联结构是传统多核处理器常见的核间互连技术之一,各个处理器核和系统外设通过共享总线互连,处理器核和外设可以通过总线进行数据通信。但基于共享总线的多核处理器具有以下缺点:1)共享总线结构只能提供点对点的数据通信,并不支持多条数据分组并行传输,使得在大规模数据分组传输情况下通信效率低下;2)共享总线结构中,随着多核处理器核心数目的不断增大,总线的负载也越来越大,导致总线的工作频率降低,使得共享总线结构的总线数据带宽变窄;3)共享总线结构中,由于总线的负载增加,导致总线的能量消耗急速增加,进而引起了一系列系统散热、可靠性等问题,使得共享总线结构的核间通信机制可靠性差。
片上网络NoC从首次提出,到目前已成为处理器架构以及片上通信架构的主要研究方向,并被证明完全可以胜任作为未来多核系统的片上通信网络。
华为技术有限公司拥有的专利技术“一种多核处理器系统”(申请号201280000273.5,授权公告号CN 102713852B,公开日为2014.06.04),公开了一种多核处理器系统,其包括多个中央处理器单元以和多组第一级硬件消息队列,每一个中央处理单元分别连接一组第一级硬件消息列队,用于处理第一级硬件消息队列中的消息。其中每一组第一级硬件队列包括多个第一级硬件消息队列,在消息列队中,优先级高的第一级硬件消息队列优先被调度,相同优先级的第一级硬件消息队列根据轮转调度权重被轮转调度。该专利技术存在的不足是,虽然实现了各个核之间的数据共享与传递,但是系统的各个核需要频繁的进行大量数据分组交互时,该系统的通信结构不能实现并行传输,导致数据分组传输拥塞,通信效率较低;同时该系统系统采用同构设计不利于系统计算资源的有效利用。
电子科技大学申请的专利“基于FPGA的带有加速器的多核处理器片上网络系统”(申请号201310151590.3,公开号CN 103345461A,公开日为2013.10.09)中公开了一种带有加速器的多核处理器片上网络系统。该系统中处理器节点的主控单元的处理器通过第一AXI总线连接数据存储器BRAM2,处理器依次通过自身的Cache接口、第二AXI总线连接数据存储器BRAM2。当第一AXI总线繁忙或被占用时,处理器通过该第二AXI总线读取数据存储器BRAM2中的数据进行处理。该系统存在的不足是,虽然采用两级AXI总线进行数据分组的独立传输,可以缓解数据分组通信时的拥塞问题。但是整个硬件系统的硬件资源利用率不高,负载传输不均衡,容易造成整个系统局部过热,通信可靠性降低。
复旦大学申请的专利“一种可拓展的2.5D多核处理器架构”(申请号201410237881.9,公开号CN 104008084A,公开日为2014.08.27)中公开了一种可拓展的2.5D多核处理器架构。该系统由两维网格结构的片上网络互连的多核处理器芯片,通过SerDes接口提供的高速数据传输通道和拓展的芯片通信。纵向上,处理器通过片外存储接口和片外存储器进行单字读写和直接数据访存操作;横向上,处理器通过片外加速接口和片外加速器进行控制和数据交互。该系统存在的不足之处是,虽然该系统解决了共享总线架构的总线带宽问题,但是该系统的存储单元,加速器单元是通过SerDes接口、选择器间接挂载在路由器上,使得该设计的通信结构复杂,增加了系统的设计开销,降低了系统的能效比。
发明内容
本发明的目的在于提出一种基于片上网络的异构多核处理系统,以解决上述现有技术的如下问题:
一是因通信数据传输拥塞而导致系统通信效率低的问题;
二是因通信传输不均衡而导致系统局部过热的问题;
三是因系统非异构设计而导致系统计算性能和灵活性差的问题。
本发明的技术方案是这样实现的:
本发明通过基于片上网络技术并采用异构处理器架构组成一个n×m的多核处理器系统,同时通过一种与之相适应的软件系统编程模型,实现对多核间协同计算进行处理;本发明通过采用异构多核处理器的组合,提高大规模并行科学计算的性能。整个系统包括:一个n×m的片上网络、x个处理子系统和y个存储子系统,每个网络节点通过网络接口与一个处理单元或者存储单元相连,其中,n≥1,m≥1,x,y根据科学算数案例规模的大小设置,其中x≥1,y≥1;
所述片上网络,支持不同拓扑结构的网络接口协议标准;
每个处理子系统,由通用处理单元或专用硬件加速单元构成;该通用处理单元,用于对无特殊要求的科学案例的进行计算;该专用硬件加速单元,用于对指定功能的科学案例进行计算;
每个存储子系统,由片内存储单元或片外存储单元构成;该片内存储单元,用于存储在处理子系统计算中需要及时读写的数据;该片外存储单元用于存储在处理子系统计算中不需要及时读写的数据。
本发明与现有技术相比,具有以下优点:
第一,由于本发明采用片上网络技术作为多核处理器的核间通信技术,克服了现有技术中基于共享总线的多核处理器系统核间通信效率低下、不支持并行通信等问题,使得本发明支持高效高性能并行的核间通信方式,可以适用于较大规模的多核处理器系统。
第二,由于本发明采用了异构多核处理器架构,克服了同构多核处理器架构对科学算数案例的算法处理效率较低下、加速性能较差的缺陷,使得本发明提高了并行加速处理性能,并且异构的处理器架构可以针对不同的科学算数案例设计多种硬件加速器,使得系统可以同时并行执行多个科学算数案例的计算,提高了系统运算能效比。
第三,由于本发明采用分模块的软件结构,克服了现有技术软硬件设计不协同,软件设计冗余的问题,使得本发明具有完备的功能函数库及稳定的系统调度方案。
具体实施方式:
下面结合附图对本发明做进一步的描述。
参照图1,本发明的系统包括一个n×m的片上网络1、x个处理子系统2和y个存储子系统3,其中,n≥1,m≥1;x≥1,y≥1。每个处理子系统2,由通用处理单元21或专用硬件加速单元22构成;每个存储子系统3,由片内存储单元31或片外存储单元32构成。
本实例以3×3的系统为例,即n=3,m=3。系统中有5个处理子系统,图中虚线框中的部分;4个存储子系统,在图中实线框中部分,即x=5,y=4。这5个处理子系统中包括3个通用处理单21元和2个专用硬件加速单元22,4个存储子系统中包括2个片内存储单元和2个片外存储单元32。其中,第一处理子系统由第一个通用处理单元组成,第二处理子系统由第一个专用硬件加速单元组成,第三处理子系统由第二个通用处理单元组成,第四处理子系统由第二个专用硬件加速单元组成,第五处理子系统由第三个通用处理单元组成;第一存储子系统由第一个片内存储单元组成,第二存储子系统由第一个片外存储单元组成,第三存储子系统由第二个片内存储单元组成,第四存储子系统由第二个片外存储单元组成。
图1中省略号表示该系统根据科学计算案例规模的大小,n×m的片上网络1可以做相应要求的增加或者减少。在片上网络中的通用处理单元21、专用硬件加速单元22、片内存储单元31、片外存储单元32可以根据案例的要求确定相应的数目。
每个网络节点R通过网络接口NI与一个处理单元2或者存储单元3相连,图1中带有NI标识的方框表示片上网络1的网络接口,带有R的圆形标识表示片上网络1的路由器节点,各路由器之间的箭头连接表示片上网络的路由器拓扑连接关系。
本发明中的每个通用处理单元21结构相同,用于对无特殊要求的科学计算案例的进行计算。每个专用硬件加速单元22结构相同,用于对指定功能的科学计算案例进行计算。每个片内存储单元31结构相同,用于存储在处理子系统计算中需要及时读写的数据,每个片外存储单元32结构相同,用于存储在处理子系统计算中不需要及时读写的数据。
所述科学计算案例,是指对实际问题进行数学模型抽象后采用一定的计算方法完成的数学问题。
参照图2,本发明的每个通用处理单元21,包括通用处理器211、数据存储器212、仲裁器213和第一网络接口214;该仲裁器213通过指令总线、数据总线与通用处理器211相连,用于负责处理器和外设备通信;该第一网络接口214通过数据总线与数据存储器212相连,并通过控制总线与仲裁器213相连,用于将数据分组封装、解析、以及收发;该数据存储器212与仲裁器213相连,用于存储通用处理器211运行的程序和数据。
所述通用处理器211包括:封装抽象模块、硬件驱动模块、函数应用模块和系统应用模块,其中:
封装抽象模块,具有两个功能:一是用于通过配置寄存器的值来控制相应的硬件接口收发数据分组,完成各个IP核间的通信;二是通过对片上网络的硬件接口的抽象,定义了硬件的功能寄存器;其中片上网络的硬件接口包括:路由器接口、数据分组链路接口、片上网络接口。
硬件驱动模块,具有两个功能:一是用于提供点对点通信功能的最小子函数集,通过读写封装抽象模块定义的寄存器,完成通信链路的建立和管理、片上网络的各IP核的点对点发送和接收;二是为函数应用模块提供统一的可扩展函数接口,为封装抽象模块制定物理实现细节。
函数应用模块,用于通过调用硬件驱动模块中具有通信功能的函数,完成各个IP核进行通信时常用功能模块的例化。其中常用功能模块包括:握手通信子模块,用于建立片上网络中IP核点间对点的握手通信链接;阻塞传输子模块,用于片上网络中IP核在阻塞状态下数据分组的接收与发送;非阻塞传输子模块,用于片上网络中IP核在非阻塞状态下数据分组的接收与发送。由于本发明的封装抽象模块留有自定义寄存器控制位,可以支持用户自定义的基本功能子模块,软件开发者可以根据具体的案例要求自定义的其他基本函数应用子模块。
系统应用模块,用于完成案例顶层算法的实现以及案例中并行任务的步骤划分,通过调用函数应用模块中的子函数完成对应案例中任务的多核处理器之间的协同运算。
参照图3,本发明的专用硬件加速单元22,可以根据具体的案例的需求,设计不同功能的硬件加速IP核,专用的硬件加速单元在运算处理速度上会比传统的处理器运算速度快几个数量级,同时专用硬件加速单元运算过程功耗低,可以很明显的提高系统的能效比。
每个专用硬件加速单元22,包括专用硬件加速器221、数据存储器222、加速器控制模块223和第二网络接口224;该第二网络接口224通过数据总线与数据存储器222相连,并通过控制总线和专用加速器控制模块相连223,用于将数据分组封装、解析、以及收发;该专用硬件加速器223与数据存储器222相连,用于完成指定功能的硬件加速计算及与其他核的核间通信;该加速器控制模块223与专用硬件加速器221相连,用于控制专用硬件加速器221的工作状态。
参照图4,本发明的片内存储单元31,包括数据存储器311、访问控制器312和第三网络接口313;该第三网络接口313通过数据总线与数据存储器相连311,并通过控制总线与访问控制器相连312,用于将数据分组封装、解析、以及收发;该访问控制器312与数据存储器相连311,用于控制数据存储器311的工作状态。
参照图5,本发明的片外存储单元32,包括片外存储控制器321、访问控制器322和第四网络接口323;该第四网络接口323通过数据总线与片外数据存储器321相连,通过控制总线与访问控制器322相连,用于将数据分组封装、解析以及收发;该访问控制器322与片外数据存储器相连321,用于控制片外数据存储器321的工作状态。
本发明的工作原理如下:
将目标案例根据规模的大小划分成多个可以并行计算的任务,将计算任务均匀的分配给系统中的通用处理单元21,同时将有特定要求的案例分配给专用硬件加速单元22。通用处理单元21中的通用处理器211通过调用数据存储器212中存放的封装抽象模块、硬件驱动模块、函数应用模块和系统应用模块完成计算任务;专用硬件加速单元22中的专用硬件加速器221利用数据存储器222中存储的数据进行相应功能的异质加速;通用处理单元21、专用硬件加速单元22根据案例中的数据的大小和是否需要及时读写这两个条件,再将通用处理单元21和专用硬件加速单元22处理后的数据通过片上网络1传输到片内存储单元31和片外存储单元32;片内存储单元31和片外存储单元32将接收到的数据存入本地存储器中。
通用处理单元21和专用硬件加速单元22在计算过程中不断地对片内存储单元31和片外存储单元32中的数据读写进行更新。在系统运行过程中各个IP核通过片上网络1进行数据交互,以保证系统的并行执行。