掌桥专利:专业的专利平台
掌桥专利
首页

一种数据处理方法及装置

文献发布时间:2024-01-17 01:15:20


一种数据处理方法及装置

技术领域

本发明涉及计算机技术领域,特别涉及一种数据处理方法及装置。

背景技术

参照图1,图1是传统的数据处理的架构图,在传统的信号处理架构中,将信号处理链路的各功能模块根据功能模块的通过率分为M-1个组合,按照处理流程依次部署到M-1节点上,在信号处理过程中,任意一个节点都是接收前一个节点的处理结果,然后在本节点进行处理,最后将处理结果传递给下一个节点。

这种数据处理方式如同流水线一样,每一个节点都处理相同的事情,处理完成后进入下一个节点,虽然能够充分的利用处理器的资源,但数据处理速度慢,必须等到前一个节点将数据处理完成之后,才能进入下一个节点,当某一个节点的处理时间过长时,就会使得后面的节点处于长时间等待状态,从而导致数据的处理效率低下。

发明内容

为了解决上述问题,本发明提供一种数据处理效率高、可扩展性强的数据处理方法及装置。

为了实现上述目的,本发明一方面提供一种数据处理方法,应用于NUMA架构中,包括:

接收节点将待处理数据轮询分发到多个中间节点;其中每个中间节点上都部署有第一环形缓冲空间队列、第二环形缓冲空间队列以及一个完整的数据处理链路;

中间节点取出各自的第一环形缓冲空间队列中的待处理数据,利用数据处理链路对待处理数据进行处理;

中间节点将处理后的数据发送到各自的第二环形缓冲空间队列中;

发送节点将所有第二环形缓冲空间队列中的数据取出,经过排序后发送到下一级系统。

作为优选的一种技术方案,所述第一环形缓冲空间队列和第二环形缓冲空间队列都包括多个内存空间可供反复使用。

作为优选的一种技术方案,接收节点将待处理数据轮询分发到多个中间节点,进一步包括:

接收节点将待处理数据以轮询的方式依次填入到第一环形缓冲空间队列的多个内存空间中;

当前内存空间中被放入待处理数据后,将第一环形缓冲空间队列的白色指针指到下一个内存空间的指针所在位置。

作为优选的一种技术方案,中间节点取出各自的第一环形缓冲空间队列中的待处理数据,进一步包括:

中间节点将依次从各自的第一环形缓冲空间队列的多个内存空间中取出待处理数据;

当前内存空间中所存放的待处理数据被取出后,将第一环形缓冲空间队列的红色指针指到下一个内存空间的指针所在位置。

作为优选的一种技术方案,在中间节点取出各自的第一环形缓冲空间队列中的待处理数据,之前还包括:中间节点实时检测各自的第一环形缓冲空间队列中的内存空间内是否有可用数据。

作为优选的一种技术方案,中间节点实时检测各自的第一环形缓冲空间队列中的内存空间内是否有可用数据,进一步包括:

中间节点实时检测各自的第一环形缓冲空间队列的红色指针与白色指针的位置;

当红色指针和白色指针重合时,说明第一环形缓冲空间队列中没有可用数据;

当红色指针和白色指针相隔的内存空间数量等于内存空间总量减一时,说明第一环形缓冲空间队列中被填满可用数据。

作为优选的一种技术方案,中间节点将处理后的数据发送到各自的第二环形缓冲空间队列中,进一步包括:

中间节点将处理后的数据依次放入各自的第二环形缓冲空间队列的多个内存空间中;

当前内存空间中的被放入处理后的数据后,将第二环形缓冲空间队列的白色指针指到下一个内存空间的指针所在位置。

作为优选的一种技术方案,在发送节点将所有第二环形缓冲空间队列中的数据取出,经过排序后发送到下一级系统中:发送节点选择序号最小的数据发送到下一级系统。

另一方面,本发明还提供一种数据处理装置,包括:

接收单元,用于将待处理数据轮询分发到多个中间节点;其中每个中间节点上都部署有第一环形缓冲空间队列、第二环形缓冲空间队列以及一个完整的数据处理链路;

处理单元,用于取出各自第一环形缓冲空间队列中的待处理数据,利用数据处理链路对待处理数据进行处理;

第一发送单元,用于将处理后的数据发送到各自的第二环形缓冲空间队列中;

第二发送单元,用于将所有第二环形缓冲空间队列中的数据取出,经过排序后发送到下一级系统。

本发明相对于现有技术的有效果是:本发明在每一个节点上都部署一个完整的数据处理链路,这样每个节点都能独立完成一个数据处理流程,另外利用环形缓冲空间队列实现数据的轮询接收与发送,实现高效率的处理数据而且实时性高,不会像传统的数据处理架构那样下一个节点等待上一个节点处理结束,能够最大程度的利用处理器的资源;另外,该数据处理方法可扩展性强,可根据数据量的大小以配置中间节点的数量从而提高处理效率。

附图说明

图1是现有技术中数据处理的架构图;

图2是本发明一实施例中FT200架构的示意图;

图3是本发明一实施例提供的数据处理方法的流程图;

图4是本发明一实施例中环形缓冲空间队列的示意图;

图5是本发明一实施例中待处理数据轮询分发的示意图;

图6是本发明一实施例中发送数据之前的排序示意图;

图7是本发明一实施例提供的数据处理装置的结构图。

实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本实施例提供一种数据处理方法,该处理方法基于NUMA架构,本实施例中以FT200架构为例来说明,如图2所示,FT200架构是一种典型的NUMA架构,该平台集成了64个处理器核心,划分为8个Panel、每个Panel中有2个Cluster、每个Cluster包含4个处理器核心、 4个处理器核心共享二级cache,在逻辑上等同于一个SMP系统。两个本地目录控制部件(DCU)、一个片上网络路由器节点(Cell)和一个紧密耦合的访存控制器(MCU)。Panel 之间通过片上网络接口连接,一致性维护报文、数据报文、调测试报文、中断报文等统一从同一套网络接口进行路由和通信。

在该架构平台中,根据不同Panel和Cluster对存储空间的亲和度不同,将整个存储空间分成8个大空间,每个大空间对应一个距离最近的Panel;每个大空间又分成2个子空间,每个Cluster对应一个子空间。任务部署和调度可以充分利用这些特性进行优化,该结构支持将亲和度较高的多个线程映射到同一个Panel中,能够减少线程之间的全局通信,结合片上数据移动和迁移机制能够进一步优化全局通信延迟和能效。

为了满足多核处理器对访存带宽和延迟的要求,芯片实现了层次式片上存储架构和层次式网络结构,支持高速片内Cache和大容量存储,亲和度高的任务通信频度高、数据同步量大,采用延迟短、带宽高的互连网络、和本地私有 Cache,亲和度低的任务通信频度低,采用扩展性好但延迟较长的互连网络和分布共享的Cache,对于需要跨Panel访存的应用尽量放置在较近的Panel中。采用分布式目录控制和存储,目录控制器和存储分布于各个Panel,最大化并行处理一致性协议维护和访存。同时,通过灵活的地址映射模式,支持系统配置不同的访存能力。在亲和模式下,Panel内部的目录控制器(DCU)只访问本地的访存模块(MCU),各个Panel之间的访存通道互不影响,具有最小的延迟和最大带宽;在部分模式下,DCU根据配置可以访问任意的MCU,支持系统配置不同规模的DDR通道数目。

在本实施例中,根据基于数据亲和多核处理器体系结构的特性,将多核平台中的一个Cluster视为一个SMP系统,一个Cluster共享一个cache,并且Cluster所在的Panel都挂载了大空间的DDR可供使用,即cluster具有自带的cache和内存,所以一个cluster可等同于一个小型同构多核CPU。

如图3所示,基于上述的FT200架构平台,本实施例提供的数据处理方法包括以下步骤,

S10:接收节点将待处理数据轮询分发到多个中间节点;

应当说明的是,本实施例中记载的节点指的是FT200平台中的Cluster,例如将FT200平台中的Cluster-0部署为接收节点,即Cluster-0用于接收数据,接着将接收后的数据轮询分发到各个中间节点上都部署有第一环形缓冲空间队列、第二环形缓冲空间队列以及一个完整的数据处理链路;其中,第一环形缓冲空间队列用于存放输入数据,第二环形缓冲空间队列用于存放输出数据。

如图4所示,环形缓冲空间队列中一共有N块内存空间可供反复使,内存空间的大小取决于每帧输入数据的大小,即内存空间的存储空间大于每帧输入数据所占的空间,在数据处理之前根据输入数据的大小对内存空间进行设置即可。

具体的轮询分发方式如图5所示,接收节点将待处理的数据以轮询的方式依次填入到各个中间节点的第一环形缓冲空间队列中,并将第一环形缓冲空间队列的白色指针指到下一个指针的位置,这里的位置指的是内存空间的位置,即当前内存空间内放入待处理数据后,白色指针指向下一个内存空间的起始位置,方便下一帧数据的存放。

另外,在放入的过程中还可以实时检测第一环形缓冲空间队列中是否有可用数据,只要第一环形缓冲空间队列中有可用数据到达,中间节点立即取出数据进行处理并将第一环形缓冲空间队列的红色指针指到下一个指针的位置。

当红色指针和白色指针重合的时候,说明第一环形缓冲空间队列中没有可用数据,第一环形缓冲空间队列处于等待状态,等到接收数据的节点填入数据。当红色指针和白色指针相隔N-1块内存空间时,说明第一环形缓冲空间队列中被填满可用数据,此时,接收数据的节点将不能继续再往第一环形缓冲空间队列中填入数据,等待中间节点将第一环形缓冲空间队列中的数据读走,腾出可用的内存空间。

S20:中间节点取出各自的第一环形缓冲空间队列中的待处理数据,利用数据处理链路对待处理数据进行处理;

具体的,当数据放入第一环形缓冲空间队列的内存中之后,后面的节点就可以进行数据处理了,在本实施例中,通过设置多个并行的中间节点来处理数据,每个中间节点中都部署一个完整的数据处理链路,应当说明的是,数据处理链路包含的各个功能模块,例如:FFT、MTD、CFAR、Capon、EKF等模块,在本实施例中,将整个数据处理链路都部署在一个节点上,这样在一个节点上就能够完整的处理一条数据,FT200的架构包含16个cluster,1个cluster用于接收数据,1个用于发送处理结果,那么中间节点最多只能扩展到14个,可以同时处理14帧数据,处理效率更高,例如中间节点部署的信号处理链路处理1帧数据需要20ms,信号处理系统的实时性要求是5ms,系统资源冗余量要求是20%,那么中间节点只需要扩展到5个就能满足系统需求。

S30:中间节点将处理后的数据发送到各自的第二环形缓冲空间队列中;

应当说明的是,中间节点将数据处理完成之后,会依次放入到各字的第二环形缓冲空间队列中,放入的规则与上述输入数据放入第一环形缓冲空间队列中一样,故在此不再赘述。

S40:发送节点将所有第二环形缓冲空间队列中的数据取出,经过排序后发送到下一级系统。

具体的,如图6所示,发送节点从各中间处理节点的环形缓冲空间队列中取出信号处理链路的处理结果,按照数据序号排序,每次都是选择序号最小的数据发送到下一级系统。

另外,为了验证本发明的技术效果,本实施例提供以下试验数据:

试验平台:国产多核处理平台FT2000平台。

试验数据量:528K个复数浮点数据。1个接收数据节点、1个发送数据的节点、6个中间处理节点,总共占用32个处理器核心。

本试验的轮询信号处理架构:

1个接收数据节点、1个发送数据的节点、6个中间处理节点,一共占用32个处理器核心。

1个中间处理节点处理1帧数据耗时约23ms,6个中间处理节点可以同时处理6帧数据,在该场景中,信号处理实时性可以到达3.9ms。

传统信号处理架构:

1个接收数据节点、1个发送数据的节点、信号处理链路根据各模块的数据通过率分拆为6个功能模块组合,按图1所示部署在6个中间处理节点上,一共占用32个处理器核心。

接收数据的节点接收到数据以后,依次传输到部署了功能模块的节点上进行处理,各中间节点处理完1帧数据总耗时约21ms。

表格1 不同架构处理效果对比结果

由实验结果可知,本实施提供的数据处理方法在占用同等计算和存储资源的情况下,提高了信号处理效率,提高了系统资源利用率。

参照图7,本实施例还提供一种数据处理装置,包括:

接收单元100,用于将待处理数据轮询分发到多个中间节点;其中每个中间节点上都部署有第一环形缓冲空间队列、第二环形缓冲空间队列以及一个完整的数据处理链路;应当说明的是,由于具体的接收方式与原理在上述实施例记载的数据处理方法的步骤S10中已详细阐述,故在此不再赘述。

处理单元200,用于取出各自第一环形缓冲空间队列中的待处理数据,利用数据处理链路对待处理数据进行处理;应当说明的是,由于具体的处理方式与原理在上述实施例记载的数据处理方法的步骤S20中已详细阐述,故在此不再赘述。

第一发送单元300,用于将处理后的数据发送到各自的第二环形缓冲空间队列中;应当说明的是,由于具体的发送方式与原理在上述实施例记载的数据处理方法的步骤S30中已详细阐述,故在此不再赘述。

第二发送单元400,用于将所有第二环形缓冲空间队列中的数据取出,经过排序后发送到下一级系统;应当说明的是,由于具体的发送方式与原理在上述实施例记载的数据处理方法的步骤S40中已详细阐述,故在此不再赘述。

本发明相对于传统的信号处理架构而言,传统的信号处理架构是将完整的信号处理链路分拆为M-1个功能模块集合分别部署到M-1个处理节点上;轮询信号处理架构是将完整的信号处理链路部署在一个中间节点上,并生成多个同样的处理分支,可同时处理多帧数据。

信号处理程序运行在一个cluster上相比运行在多个cluster上,减少信号处理程序在cluster之间的计算资源调度、数据I/O等操作,所以程序运行在单个cluster上的运行效率应该更高。

另外,本发明实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何一种数据处理方法的部分或全部步骤。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。

以上参照附图描述了根据本发明实施例用于处理数据的示例性流程图。应指出的是,以上描述中包括的大量细节仅是对本发明的示例性说明,而不是对本发明的限制。在本发明的其他实施例中,该方法可具有更多、更少或不同的步骤,且各步骤之间的顺序、包含、功能等关系可以与所描述和图示的不同。

技术分类

06120116087479