首页> 中国专利> 基于内存密集型算法的数据处理系统和计算机设备

基于内存密集型算法的数据处理系统和计算机设备

摘要

本发明提供一种基于内存密集型算法的数据处理系统和计算机设备,该系统包括处理器、数据交换模块、转换模块和内存模块;处理器包括多个计算核心;数据交换模块包括多个交换单元;转换模块包括多个转换单元;内存模块包括多个内存单元;每一计算核心与一交换单元、一转换单元以及一内存单元组成一系统块,每一计算核心与同一系统块的交换单元连接,交换单元与同一系统块的转换单元连接,每一计算核心还与其他的各系统块的交换单元连接,各转换单元与同一系统块的内存单元连接。通过交换模块将各计算核心与不同系统块的内存单元连接,使得各计算核心对各内存单元进行数据的读取,避免了由于内存带宽而导致的性能瓶颈。

著录项

  • 公开/公告号CN113282536A

    专利类型发明专利

  • 公开/公告日2021-08-20

    原文格式PDF

  • 申请/专利号CN202110841493.1

  • 发明设计人 胡楠;孔剑平;王琪;李炳博;

    申请日2021-07-26

  • 分类号G06F15/80(20060101);G06F15/17(20060101);

  • 代理机构11372 北京聿宏知识产权代理有限公司;

  • 代理人陈敏;吴昊

  • 地址 310000 浙江省杭州市江干区解放东路29号迪凯银座30层

  • 入库时间 2023-06-19 12:18:04

说明书

技术领域

本发明涉及内存密集型算法技术领域,特别涉及一种基于内存密集型算法的数据处理系统和计算机设备。

背景技术

POW(Proof of Work,工作量证明)的本质是基于算力解决一个数学上困难的问题,解决问题关键点是除了暴力枚举,没有任何办法可以找到我们所需要的nonce值,但对于验证输出的结果是非常简单容易的。

对于内存密集型(memory-hard function)算法而言,在运算过程中,算法需要重复从内存随机地提取大量数据进行运算,在这种算法的性能瓶颈为内存带宽,让多核平行处理发挥不出来,使性能只与内存大小有关。

由于Memory-hard算法的本质特性,因此内存读取带宽成为性能瓶颈。因此,如何解决内存的读取带宽成为性能瓶颈,是该算法目前急需解决的。

发明内容

基于此,有必要针对上述技术问题,提供一种基于内存密集型算法的数据处理系统和计算机设备。

一种基于内存密集型算法的数据处理系统,包括:处理器、数据交换模块、转换模块和内存模块;

所述处理器包括多个计算核心,每一所述计算核心具有多个连接接口;所述数据交换模块包括多个交换单元,每一所述交换单元具有多个输入端口和多个输出端口;所述转换模块包括多个转换单元,每一所述转换单元具有多个转换输入端口和多个转换输出端口;所述内存模块包括多个内存单元;

每一所述计算核心与一所述交换单元、一所述转换单元以及一内存单元组成一系统块,每一所述计算核心的各连接接口与同一所述系统块的所述交换单元的各输入端口连接,所述交换单元的输出端口与同一所述系统块的所述转换单元的转换输入端口一一对应连接,每一所述计算核心的连接接口还与其他的各所述系统块的所述交换单元的输入端口连接,各所述转换输出端口分别与同一所述系统块的所述内存单元连接。

在其中一个实施例中,所述交换单元的输入端口的数量小于所述交换单元的输出端口的数量。

在其中一个实施例中,每一所述系统块的所述交换单元包括至少一个一级交换机和至少一个二级交换机,每一所述一级交换机具有多个一级输入端口和多个一级输出端口,每一所述二级交换机具有多个二级输入端口和多个二级输出端口;

每一所述计算核心的各连接接口与同一所述系统块的所述一级交换机的多个一级输入端口一一对应连接,所述一级交换机的部分的一级输出端口与同一所述系统块的所述二级交换机的部分的二级输入端口一一对应连接,所述一级交换机的另一部分的一级输出端口与其他的各所述系统块的所述二级交换机的部分的二级输入端口一一对应连接;

所述二级交换机的二级输出端口与同一所述系统块的所述转换单元的各转换输入端口一一对应连接。

在其中一个实施例中,所述计算核心的数量为n个,所述一级交换机具有m个一级输入端口和n个一级输出端口,其中,n大于m;

每一所述计算核心的各连接接口与同一所述系统块的所述一级交换机的m个一级输入端口一一对应连接,所述一级交换机的n个一级输出端口分别与同一所述系统块的所述二级交换机的多个二级输入端口,以及其他的各所述系统块的所述二级交换机的部分的二级输入端口一一对应连接。

在其中一个实施例中,所述二级交换机具有m个二级输入端口和m个二级输出端口;

所述二级交换机的m个二级输入端口与同一所述系统块的所述一级交换机的部分的一级输出端口,以及其他的各所述系统块的所述一级交换机的部分的一级输出端口一一对应连接;

所述二级交换机的m个二级输出端口与同一所述系统块的所述转换单元的各转换输入端口一一对应连接;

每一所述系统块中的所述交换单元中的所述二级交换机的数量为2n/m个。

在其中一个实施例中,每一所述系统块的所述交换单元还包括至少一个三级交换机;

所述三级交换机具有多个三级输入端口和多个三级输出端口;

所述二级交换机的各二级输出端口与同一所述系统块的所述三级交换机的各三级输入端口一一对应连接;

所述三级交换机的各三级输出端口与同一所述系统块的所述转换单元的转换输入端口一一对应连接。

在其中一个实施例中,每一系统块中的所述三级交换机的三级输入端口的总数量小于其三级输出端口的总数量。

在其中一个实施例中,所述三级交换机具有2n/m个三级输入端口和m个三级输出端口;

所述二级交换机的m个二级输出端口与同一所述系统块的所述三级交换机的2n/m个三级输入端口一一对应连接;

所述三级交换机的m个三级输出端口与同一所述系统块的所述转换单元的各转换输入端口一一对应连接。

在其中一个实施例中,还包括内存控制模块,所述转换模块的各所述转换输出端口分别通过所述内存控制模块与同一所述系统块的所述内存单元连接。

一种计算机设备,所述计算机设备包括上述任一实施例中所述的基于内存密集型算法的数据处理系统。

上述基于内存密集型算法的数据处理系统和计算机设备,通过交换模块将各计算核心与不同系统块的内存单元连接,实现各计算核心与不同系统块的内存单元的通信,使得各计算核心能够对各内存单元进行数据的读取,有效提高了数据读取的效率,避免了由于内存带宽而导致的性能瓶颈。

附图说明

图1为一个实施例中基于内存密集型算法的数据处理系统的架构示意图;

图2为一个实施例中的计算机设备的架构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

实施例一

本实施例中,如图1所示,提供了一种基于内存密集型算法的数据处理系统200,其包括:处理器201、数据交换模块、转换模块209和内存模块213;

所述处理器201包括多个计算核心,每一所述计算核心具有多个连接接口;所述数据交换模块包括多个交换单元,每一所述交换单元具有多个输入端口和多个输出端口;所述转换模块209包括多个转换单元,每一所述转换单元具有多个转换输入端口和多个转换输出端口;所述内存模块213包括多个内存单元;

每一所述计算核心与一所述交换单元、一所述转换单元以及一内存单元组成一系统块,每一所述计算核心的各连接接口与同一所述系统块的所述交换单元的各输入端口连接,所述交换单元的输出端口与同一所述系统块的所述转换单元的转换输入端口一一对应连接,每一所述计算核心的连接接口还与其他的各所述系统块的所述交换单元的输入端口连接,各所述转换输出端口分别与同一所述系统块的所述内存单元连接。

具体地,一个实施例中,该处理器201为CPU(central processing unit,中央处理器),在其他的一些实施例中,该处理器也可以是GPU(graphics processing unit,图形处理器)或FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)或ASIC(Application SpecificIntegrated Circuit,专用集成电路)。该处理器201包括多个计算核心,该计算核心也可以称为Core,如图1所示,处理器201的多个计算核心分别为Core0、Core1、Core2、Core3……。本实施例中,系统包括多个系统块,该系统块为block,具体地,根据计算核心的数量将系统划分为多个系统块Block1、Block2、Block3……,每一系统块内包括一计算核心,此外,本实施例中,还根据内存模块213中内存单元的数量划分系统块,使得每一系统块包括一内存单元。

交换单元用于实现计算核心与同一系统块内的内存单元的通信,此外,还用于实现计算核心与不同的系统块的内存单元的通信,进而使得计算核心能够与任意的系统块的内存单元通信。

本实施例中,计算核心与交换模块之间的连接协议为AXI(Advanced eXtensibleInterface,高级可扩展接口)总线协议。即计算核心的连接接口与述交换单元的输入端口之间的连接协议为AXI总线协议。

转换模块209也可以称为转换器,转换器包括多个转换单元,转换单元用于将交换单元的通信协议转换为与内存的通信协议,使得交换单元能够与内存单元通信。该内存单元存储了算法所需的运算数据,计算核心通过交换单元与内存单元通信,从内存单元读取数据。

本实施例中,通过设置交换模块,使得计算核心能够与不同的系统块的内存单元进行通信,相较于直接将计算核心与内存模块213的不同内存单元连接,能够有效减少计算核心所需的连接接口的数量,使得计算核心的连接接口的数量在无需增加的情况下,与内存模块213的所有内存单元通信。

上述实施例中,通过交换模块将各计算核心与不同系统块的内存单元连接,实现各计算核心与不同系统块的内存单元的通信,使得各计算核心能够对各内存单元进行数据的读取,有效提高了数据读取的效率,避免了由于内存带宽而导致的性能瓶颈。

一个实施例中,所述交换单元的输入端口的数量小于所述交换单元的输出端口的数量。

本实施例中,每一系统块的交换单元的输出端口的数量大于输出端口的数量,并且交换单元的输入端口与计算核心的连接接口一一连接,这样,使得计算核心的与内存单元连接的端口得到扩展,,进而使得计算核心能够连接更多的内存单元。

在一个实施例中,如图1所示,每一所述系统块的所述交换单元包括至少一个一级交换机203和至少一个二级交换机205,每一所述一级交换机203具有多个一级输入端口和多个一级输出端口,每一所述二级交换机205具有多个二级输入端口和多个二级输出端口;每一所述计算核心的各连接接口与同一所述系统块的所述一级交换机203的多个一级输入端口一一对应连接,所述一级交换机203的部分的一级输出端口与同一所述系统块的所述二级交换机205的部分的二级输入端口一一对应连接,所述一级交换机203的另一部分的一级输出端口与其他的各所述系统块的所述二级交换机205的部分的二级输入端口一一对应连接;所述二级交换机205的二级输出端口与同一所述系统块的所述转换单元的各转换输入端口一一对应连接。

本实施例中,计算核心的连接接口与一级交换机203的一级输入端口之间的连接协议为AXI协议。该一级交换机203和二级交换机205分别为crossbar(交叉开关矩阵)交换机,一级交换机203和二级交换机205均为基于总线结构的交换机。一级交换机203的一级输出端口的数量大于一级输入端口的数量,并且同一系统块内的计算核心的连接接口的数量与一级交换机203的一级输出端口的总量相等,这样,一级交换机203能够将计算核心的接口数量扩展,进而与其他系统块的二级交换机205进行通信,使得计算核心能够与其他系统块的内存单元进行通信,这样,无需对计算核心的连接接口的数量进行扩展,即可使得计算核心能够与内存模块213的各内存单元进行通信。

本实施例中,一级交换机203一部分的一级输出端口与同一系统块内的二级交换机205的二级输入端口连接,而另一部分的一级输出端口与其他的各系统块内的二级交换机205的二级输入端口连接,从而使得每一个系统块内的计算核心能与其他各系统块的二级交换机205连接,从而与各系统块的内存单元通信。

本实施例中,通过设置一级交换机203和二级交换机205,通过交换机的级联,使得不同的系统块之间的计算核心与内存单元能够实现通信,相较于直接将计算核心与内存模块213的不同内存单元连接,能够有效减少计算核心所需的连接接口的数量,使得计算核心的连接接口的数量在无需增加的情况下,计算核心能够与内存模块213的所有内存单元通信。

在一个实施例中,所述计算核心的数量为n个,每一所述计算核心具有2m个计算单元。

本实施例中,将系统划分为n个系统块,每一系统块包括一个计算核心,每一计算核心具有2m个计算单元,每一个计算单元用于运行内存密集型算法,比如,每一计算单元用于运行工作量证明算法。这样,即可将系统划分为n个系统块,并且

在一个实施例中,所述一级交换机203具有m个一级输入端口和n个一级输出端口,其中,n大于m;每一所述计算核心的各连接接口与同一所述系统块的所述一级交换机203的m个一级输入端口一一对应连接,所述一级交换机203的n个一级输出端口分别与同一所述系统块的所述二级交换机205的多个二级输入端口,以及其他的各所述系统块的所述二级交换机205的部分的二级输入端口一一对应连接。

本实施例中,每一所述系统块的所述交换单元包括两个一级交换机203和三个二级交换机205。同一所述系统块的两个一级交换机203的一级输入端口的总数量为2m个,一级输出端口的总数量为2n个,计算核心的2m个计算单元分别与2m个一级输入端口一一对应连接,并且通过2n个一级输出端口与同一系统块以及其他系统块的二级交换机205连接,从而使得计算核心能够与不同的系统块的内存单元通信。

在一个实施例中,所述二级交换机205具有m个二级输入端口和m个二级输出端口;所述二级交换机205的m个二级输入端口与同一所述系统块的所述一级交换机203的部分的一级输出端口,以及其他的各所述系统块的所述一级交换机203的部分的一级输出端口一一对应连接;所述二级交换机205的m个二级输出端口与同一所述系统块的所述转换单元的各转换输入端口一一对应连接。

一个实施例中,每一所述系统块中的所述交换单元中的所述二级交换机205的数量为2n/m个。

本实施例中,同一所述系统块的2n/m个二级交换机205的二级输入端口的总数量为2n个,二级输出端口的总数量为2n个,因此,一级交换机203的其中n个一级输出端口与同一所述系统块的二级交换机205的其中n个二级输入端口一一对应连接,一级交换机203的另外n个一级输出端口与其他系统块的n个二级交换机205的二级输入端口一一对应连接,从而实现了一级交换机203和二级交换机205的级联,并且使得不同系统块的一级交换机203与二级交换机205之间的连接。

在一个实施例中,如图1所示,每一所述系统块的所述交换单元还包括至少一个三级交换机207;所述三级交换机207具有多个三级输入端口和多个三级输出端口;所述二级交换机205的各二级输出端口与同一所述系统块的所述三级交换机207的各三级输入端口一一对应连接;所述三级交换机207的各三级输出端口与同一所述系统块的所述转换单元的转换输入端口一一对应连接。

本实施例中,三级交换机207为crossbar交换机,且每一系统块中的三级交换机207的三级输入端口的总数量小于其三级输出端口的总数量,也就是说,三级交换机207的三级输出端口的总数量大于三级输入端口的总数量,使得计算核心与内存单元连接的端口得到进一步扩展,进而使得计算核心能够连接更多的内存单元,使得计算核心能够连接内存单元中更多的地址。

在一个实施例中,所述三级交换机207具有2n/m个三级输入端口和m个三级输出端口;所述二级交换机205的m个二级输出端口与同一所述系统块的所述三级交换机207的2n/m个三级输入端口一一对应连接;所述三级交换机207的m个三级输出端口与同一所述系统块的所述转换单元的各转换输入端口一一对应连接。

本实施例中,每一所述三级交换机207具有2n/m个三级输入端口和m个三级输出端口,且每一所述系统块中的所述交换单元中的所述三级交换机207的数量为m个,这样,使得每一所述系统块中的三级交换机207的三级输入端口的总数量为2n个,能够与2n个二级输出端口一一对应连接。本实施例中,2n小于m,使得三级输出端口的总数量大于三级输入端口的总数量,使得三级交换机207能够对二级交换机205的二级输出端口的数量进行扩展,进而使得计算核心能够连接更多的内存单元。

上述实施例中,由于一级交换机203的一级输出端口的数量大于一级输入端口的数量,且每一系统块中的三级交换机207的三级输入端口的总数量小于其三级输出端口的总数量,通过一级交换机203、二级交换机205以及三级交换机207的级联,能够有效对端口进行扩展,使得计算核心能够与更多的内存单元连接,能够与内存单元中的更多的地址连接,而无需增加计算核心的端口,有效降低了成本,并且提高了通信效率。此外,通过设置二级交换机205,使得计算单元能够通过一级交换机203与不同的系统块的内存单元进行通信,使得各计算核心能够对各内存单元进行数据的读取,有效提高了数据读取的效率,避免了由于内存带宽而导致的性能瓶颈。

一个实施例中,请再次参见图1,基于内存密集型算法的数据处理系统200还包括内存控制模块211,所述转换模块209的各所述转换输出端口分别通过所述内存控制模块211与同一所述系统块的所述内存单元连接。

本实施例中,该内存控制模块211为controller 和phy接口,该内存控制模块211用于控制对应的内存单元和负责内存单元的数据传输。该内存控制模块211包括多个内存控制单元,每一系统块包括一内存控制单元,转换单元的各所述转换输出端口通过内存控制单元与同一所述系统块的所述内存单元连接。

实施例二

本实施例中,如图1所示,图中201为处理器,203为一级交换机,205为二级交换机,207为三级交换机,209为转换器,211为内存控制模块,213为内存模块。

其中,处理器包括n个计算核心,每一计算核心内的计算单元为2m个,本实施例中,计算核心包括Core0、Core1、Core2、Core3、Core4、Core5,计算核心的数量为6,每一计算核心内的计算单元的数量为8,因此,n=6,m=4。本实施例中,将系统根据计算核心的数量,将系统划分为6个系统块,即6个Block,包括Block1、Block2、Block3、Block4、Block5和Block6。

每一计算核心的2m个计算单元分别通过一连接接口与一级交换机的一输入端口连接。

一级交换机为m*n crossbar交换机,即一级交换机具有m个输入端口,n个输出端口,使得任意一个系统块中的计算核心可以连接自身所在系统块和其他任意系统块中的某一个二级交换机。本实施例中,每一系统块Block包括2个一级交换机,这样,每一系统块中的一级交换机的输入端口的总数量为8个,与计算核心的8个计算单元一一对应连接。而一级交换机的输出端口的总数量为12个,使得计算核心对外连接的端口数量得到了拓展。

二级交换机为m*m crossbar交换机,即二级交换机具有m个输入端口,m个输出端口。本实施例中,每一系统块Block包括2n/m个二级交换机,每一系统块中的二级交换机的输入端口的总数量为2n个,输出端口的总数量为2n个,本实施例中,每一系统块Block包括3个二级交换机,这样,即每一系统块中的二级交换机的输入端口的总数量为12个,输出端口的总数量为12个,使得二级交换机的输入端口的数量即可满足与自身所在的系统块的一级交换机的连接,也可以满足其他系统块的一级交换机的连接。

三级交换机为(2n/m)*m crossbar交换机,即三级交换机具有2n/m个输入端口,m个输出端口;每一系统块Block包括m个三级交换机。本实施例中,每一系统块中三级交换机的输入端口的总数量为12,输出端口的总数量为16,使得计算核心对外连接的端口数量得到了进一步拓展,使得计算核心能够连接更多的内存单元,连接更多的内存单元的地址。

每一系统块中的转换单元具有m*m个通道,因此,每一个通道与三级交换机的一个输出端口连接,内存控制模块为DDR(Double Data Rate,双倍速率) controller(控制器)+phy(Physical,物理层)接口,内存控制模块复用转换单元的一路通道,内存控制模块用于控制相应的RAM(Random Access Memory,随机存取存储器)和数据传输。内存模块为RAM存储,用于存储算法中所需提取的数据。

本实施例中,通过一级交换机、二级交换机以及三级交换机的级联,能够有效对端口进行扩展,使得计算核心能够与更多的内存单元连接,能够与内存单元中的更多的地址连接,而无需增加计算核心的端口,有效降低了成本,并且提高了通信效率。此外,通过设置二级交换机,使得计算单元能够通过一级交换机与不同的系统块的内存单元进行通信,使得各计算核心能够对各内存单元进行数据的读取,有效提高了数据读取的效率,避免了由于内存带宽而导致的性能瓶颈。

实施例三

本实施例中,提供一种计算机设备,所述计算机设备包括上述任一实施例中所述的基于内存密集型算法的数据处理系统。

本实施例中,计算机设备用于计算工作量证明算法,该工作量证明算法为内存密集型算法。该计算机设备通过设置交换模块,使得计算核心能够与不同的系统块的内存单元进行通信,相较于直接将计算核心与内存模块的不同内存单元连接,能够有效减少计算核心所需的连接接口的数量,使得计算核心的连接接口的数量在无需增加的情况下,与内存模块的所有内存单元通信。

本实施例中,提供了计算机设备。其内部结构图可以如图2所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序,且该非易失性存储介质部署有数据库,该数据库用于存储内存密集型算法。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的内存储器即为上述实施例的内存模块,该计算机设备处理器和内存模块的连接架构,可采用上述任一实施例中的基于内存密集型算法的数据处理系统的架构实现。

该计算机设备的网络接口用于与部署了应用软件的其他计算机设备通信。该计算机程序被处理器执行时以实现一种基于内存密集型算法的数据处理系统。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号