首页> 中国专利> 多数据流驱动的信号处理系统确定时序计算方法

多数据流驱动的信号处理系统确定时序计算方法

摘要

本发明涉及一种多数据流驱动的信号处理系统确定时序计算方法,信号处理系统包括单向级联式计算任务,每个计算任务所关联的每个输入数据流的更新时延为数据等待时延、额外帧时延和后段尾部帧时延余量之和。本发明方法以计算任务前后顺序约束以及时间粒度约束为基本概念,使计算任务的输入数据流时延以及多数据流间的时序关系得以定量描述。由此,对每一计算任务而言,当有多个同步或异步输入数据流时,其时序关系可被严格量化;当有多任务复杂集成时,任何一个任务的输入数据时延可被预测,从而能够为实时信号处理系统的设计提供分析依据。

著录项

  • 公开/公告号CN112800629A

    专利类型发明专利

  • 公开/公告日2021-05-14

    原文格式PDF

  • 申请/专利权人 王希敏;

    申请/专利号CN202110229823.1

  • 发明设计人 王希敏;

    申请日2021-03-02

  • 分类号G06F30/20(20200101);G06F111/04(20200101);G06F113/02(20200101);

  • 代理机构42236 武汉智盛唯佳知识产权代理事务所(普通合伙);

  • 代理人胡红林

  • 地址 430033 湖北省武汉市解放大道763号海工安居小区132栋1单元13楼1号

  • 入库时间 2023-06-19 10:58:46

说明书

技术领域

本发明涉及信号处理系统中时序的计算方法,具体地指一种多数据流驱动的信号处理系统确定时序计算方法。

背景技术

实时信号处理系统的外部序贯输入具有严格的确定时序,所述序贯输入即输入数据按时间顺序被划分为批次,每个批次包含一定量的数据。序贯输入具有严格的确定时序,是指每个批次的数据量确定且一致,每个批次数据所对应的时间长度确定且相同。由此,要求实时信号处理系统的输出也具有严格的确定时序,虽然允许输出相对于输入存在确定的时延。

一般地,现代的信号处理算法复杂且计算量大,为运用并行计算技术以满足实时性要求,通常将整个处理系统分解为一系列前后衔接的模块。这里,模块对应于计算任务,模块之间的传递内容是结构化数据。也就是说,计算任务之间传递的是数据流。从时序上看,前面模块完成对数据加工操作后才能将数据传递给后面模块,即后面模块必须等到数据后才能实施其加工操作,这就是所谓的数据驱动。模块的前后级联关系不仅是“一对一”的,而可能是“一对多”或“多对一”的,即从某个模块开始可分叉出多个数据流,又在某个模块上汇聚多个数据流。

实时信号处理系统的内部数据流也要求具有可控的确定时序,否则,无法保障实时信号处理系统的输出具有严格的确定时序。实时信号处理系统被分解为一系列计算任务,某个计算任务的多个数据流之间的时延关系也需要在设计阶段予以明确表达。

实时信号处理系统的核心形态是应用软件,而软件的载体是高性能计算平台。异构多处理器和多核处理器等高性能并行计算平台已被广泛地应用。而且,实际计算平台将会不断的升级或改变。为适应异构处理器以及升级变化的计算平台,实时信号处理系统的设计模型既要体现实际计算资源的限制,又不可仅针对某个具体计算平台。对计算任务的时间粒度上界的描述,便是最恰当的模型化描述。所述时间粒度上界,即计算任务输入数据的刷新周期(可被进一步提炼为任务周期)。任务周期可度量任务规模上界,可在本质上揭示对计算时间资源的需求。

如何将实时信号处理系统分解为一系列计算任务,具有多样性,一般取决于系统设计者对信号处理应用领域的理解与主观把握。所以,对计算任务的模型化描述不应涉及具体的算法,应允许设计者根据其意愿规划计算任务的规模。

输入数据流的数据更新率决定了实时计算任务运转周期,即所述任务周期。由于任务周期与计算任务在某具体计算平台上的实际执行时间无关,因而与计算平台的能力无关。因此,将计算任务时间粒度与任务周期比较进而进行时延度量,是在面向实时信号处理的原始需求基础上,对计算时间性能的高层抽象。

现代信号处理系统的输入是多源的,而每个源输入的数据更新速度可能不同。在总体上,信号处理系统的实时性应关联具有最快更新速率的源输入。当处理系统存在多个不同更新速率的源输入,计算任务就存在多个不同更新速率的输入数据流。由此,计算任务的多个输入数据流之间就必须有严格的确定时序关系描述。

目前为止,即便已知计算任务时间粒度、已知计算任务间的级联关系或数据驱动关系,但从数据源到某计算任务的时延未被定量化描述,多数据流的时延关系未被明确地定义与定量计算。实际上,实时信号处理对多数据流的时延关系是十分敏感的,应用软件的研制工作在模型设计阶段缺少时延定量化计算方法支持。由于无法定量化地建模实时信号处理系统,实时信号处理应用软件的研制工作处于无章可循的“自由”状态。又因这类应用软件的设计极具挑战性,设计者往往直接面向具体计算平台进行编程、调试、试验、调整,一步步地逼近要求。如此方式,很难应对并行计算场景,几乎没能力应对异构计算资源与变化计算资源带来的挑战。也就是说,当实际计算平台发生改变时,设计者在原计算平台上艰苦调试成功的应用软件基本不具有复用性,因为该软件是在没有模型规约与指导下诞生的个性化产物。

实时信号处理应用软件的研制工作通常方式是:事先将应用软件划分成若干个计算任务,将各个计算任务的程序代码分别编译连接后,利用开发环境所提供的工具加载程序到计算平台的若干处理器,然后进行调试、调整。这种方式的具体缺点是:(1)所用的处理器资源被人为地预先配置,带有盲目性;进一步地,计算任务进程间的数据通信被固化。一旦计算任务的算法影响时间粒度,进而对资源的客观需求产生改变,必须根据资源的变化重新编写与调试代码、至少重编译和重加载程序代码。所以从本质上看,未在计算模型规约与指导下编制的应用软件均不支持重配置功能。(2)对多数据流的时序分析与严格同步设计缺少整体概念的支持,将容易产生差错,使整个实时信号处理系统的集成难度大、研发效率低。(3)多数据流的时延关系不能模型化表达,在设计阶段也无法掌握,只能靠诸如“输入数据帧打时戳、在计算任务中用软件检查时戳、根据时戳挑选数据帧”等方法进行同步控制,如此将付出时延关系不确定、不明晰的代价。

基于计算模型的实时信号处理应用软件设计与实现是明显分开的两步工作,虽然在这两步之间存在反馈迭代。基于计算模型,可为解决上述的软件系统集成和软件系统重配置奠定重要基础。将计算模型运用于实时信号处理系统应用软件研发,其主要形态是建立基于模型的软件集成工具。通过运用软件集成工具,一个实时信号处理系统应用软件的设计与实现的步骤是:(1)以计算模型描述的特征参数与行为机制为基本依据,分解应用软件为合适规模的计算任务、配置数据流的结构和参数、配置计算任务的算法模块参数和处理流程;(2)按计算模型规定的实时约束,结合计算平台的资源能力描述,集成计算任务为组件;(3)按照计算平台的资源分布,将计算任务组件部署于计算平台。这里,第一步属于设计阶段,后两步属于实现阶段。由此,基于计算模型,可支持后两步或最后一步的重配置。而在第一步,开发者可不关心计算平台,可更关注于计算任务算法的实现与正确性验证,因此,计算任务的算法编程及调试成果得以保留。

鉴于上述实时信号处理系统应用软件设计与实现过程中的技术特征,关键是建立多数据流驱动的信号处理系统确定时序模型。但是,已有的信号处理模型只描述信号处理数据流与计算任务之间的读写行为,既不能描述从单数据源到设计者所关心的某计算任务的输入数据流之间所产生时延、不能解析时延与计算任务时间粒度与任务周期等核心要素的逻辑关系,也不能描述多输入数据流之间的确定性时延关系。总体上,多数据流驱动的信号处理系统确定时序模型的缺失,使信号处理系统应用软件的实时性行为在设计阶段难以控制、使应用软件的重用性难以实现。

因此,多数据流驱动的信号处理系统确定时序模型,相比较于已有相关的数据流模型,相对于先进高效的实时信号处理系统设计与研发需求背景,具有进步意义与实用价值。进一步地,多数据流驱动的信号处理系统确定时序模型如何确定时序,成为亟待解决的技术问题。

发明内容

本发明目的在于克服上述现有技术的不足而提供一种多数据流驱动的信号处理系统确定时序计算方法,该方法以计算任务前后顺序约束以及时间粒度约束为基本概念,使计算任务的输入数据流时延以及多数据流间的时序关系得以定量描述。由此,对每一计算任务而言,当有多个同步或异步输入数据流时,其时序关系可被严格量化;当有多任务复杂集成时,任何一个任务的输入数据时延可被预测,从而能够为实时信号处理系统的设计提供分析依据。

实现本发明目的所采用的技术方案是一种多数据流驱动的信号处理系统确定时序计算方法,信号处理系统包括多条单向级联式计算任务即多条数据流,每条单向级联式中的任何一个计算任务f

多数据流驱动的信号处理系统的确定时序,主要描述一系列计算任务和数据流的高层属性,包括计算任务的输入刷新周期、完成处理时间(即时间粒度)、数据流之间的时延关系。

在上述技术方案中,所述任何一个计算任务f

在上述技术方案中,所述额外帧时延为

进一步地,所述z

其中,

1≤z

p=1,2,…u,

式中,h

在上述技术方案中,所述尾部帧时延余量通过下式计算:

上式中,b为尾部帧时延余量。

进一步地,所述计算任务f

进一步地,所述计算任务f

S1、计算f

S2、若f

S3、若f

S4、计算总时延,总时延为数据等待时延、前节额外帧时延、后节额外帧时延、后节尾部帧时延余量之和

进一步地,若f

或者,若f

与现有技术相比,本发明多数据流驱动的信号处理系统确定时序计算方法,以计算任务前后顺序约束以及时间粒度约束为基本概念,使计算任务的输入数据流时延以及多数据流间的时序关系得以定量描述。由此,对任一个计算任务而言,当有多个同步或异步输入数据流时,其时序关系可被严格量化;当有多任务复杂集成时,任何一个任务的输入数据时延可被预测。因此,可为实时信号处理系统的设计提供分析依据。

此外,在基于计算模型的软件系统研发过程中,研发者首先要针对具体计算平台,按其并发硬件结构和运算速度等性能指标,确定计算任务的合适粒度。所谓合适粒度,是指计算任务的大小匹配于计算平台的某个物理节点。这种匹配,是大型实时信号处理软件系统研发中的关键,将极大地影响计算任务的集成(集成为组件)与部署(组件调度到物理节点)等优化问题的求解复杂性。所谓粒度是多维度量概念,如计算时间与存储需求的两维度量。对于实时信号处理而言,度量粒度的最重要维度是计算时间。本发明提出的多数据流的时延定制关系和处理时间约束,为计算任务合适粒度的测算提供了依据。据此,可支撑实时信号处理软件的计算资源重配置。

附图说明

图1为信号处理实例的计算任务与数据流描述示意图。

图2为数据流驱动条件与时延关系的解析示意图。

图3为进一步解析(将计算任务分为u段,每段任务周期一致,各段任务周期不同)的示意图。

图4为进一步解析(在任务周期一致的某个p段内,确定处理帧时延)的示意图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步的详细说明。

如图1所示的信号处理系统:前端2个吞吐周期相同的外部源输入作为系统激励;18个计算任务的单向有序级联构成整个实时系统;后端2个数据流宿主,作为系统输出。整个系统有3种数据流更新周期;某些计算任务有多数据流驱动;计算任务形成单向有序级联结构,整体上是多数据流单向分叉与单向汇集结构。

实时信号处理系统整体数据加工操作被分解为一系列前后相互衔接的计算任务,这些计算任务泛指信号处理的某个局部计算功能,对应于图1所示的trans1、trans2、Sparse、CHS、FFT_1、FFT_2、FFT_3、FFT_4、ArrE、AW_1、AW_2、AW_3、FBF_1、FBF_2、BEIF、SFBF、ReFBF计算任务实例,表示频域波束形成及空间方位能量谱计算被组织为3个处理通道,分裂波束形成与空间方位能量谱重构计算被组织为1个处理通道。其中的trans1、Sparse、CHS、FFT_1、FBF_1所组成的通道,是将源1数据解析、源波形预处理、空间阵的阵元波形按波段选取、低波段的阵元波形频域变换、频域波束形成等信号处理算法进行任务分解;其中的trans2、Sparse、FFT_2、FBF_1所组成的通道,是将源2数据解析、源波形预处理、中波段的阵元波形频域变换、频域波束形成等信号处理算法进行任务分解;其中的trans2、Sparse、FFT_3、FBF_2所组成的通道,是将源2数据解析、源波形预处理、高波段的阵元波形频域变换、频域波束形成等信号处理算法进行任务分解;低、中、高波段的频域波束形成处理后汇集,统一进行空间方位能量谱计算。此外,trans1、Sparse、CHS、FFT_4、SFBF、ReFBF是将源1数据解析、源波形预处理、空间阵的阵元波形按低波段选取、分裂波束形成与空间方位能量谱重构等算法进行任务分解。最后,所有波束形成必须用到的权系数,由trans1、ArrE、AW_1、AW_2、AW_3进行传感器数据解析、阵形估计、权系数计算等算法获得。

相邻计算任务间存在从前往后的单向数据流,即前序的计算任务按其局部的数据生产功能输出约定量的数据更新,后序的计算任务仅在数据更新满足该约定量时,才驱动数据消费功能、继而再生产向后的输出。最前端的计算任务的输入即处理系统的外部输入,是数据源与计算任务之间的数据流,即图1所示的源1与trans1之间数据流、源2与trans2之间数据流。最前端的多个外部输入也被称为多源输入。最后端的计算任务的输出,是计算任务与数据宿主之间的数据流,即图1所示的BEIF与两个数据宿主AOS208、BOIT208之间数据流。

外部输入的每个数据串等长度,意味着产生每个数据串的时间是严格一致的。trans1、trans2计算任务输入流的每个数据串长度为W,产生该数据串的时间即数据源的数据更新周期为T

从数据源到数据宿主之间仅有单向的数据流;无论数据流如何分叉又如何汇聚,也无论多源输入形成的数据流如何并列又如何合并,均不存在从后往前的反向数据驱动,如图1所示。

本发明一种多数据流驱动的信号处理系统确定时序模型计算方法,基于数据流驱动计算任务的样式,根据时间粒度与任务周期,定量化描述任何一个计算任务在多数据流驱动下的输入数据流的数据更新时延。

前馈级联式计算任务所组成的信号处理系统具有确定的时延属性,即每个计算任务所关联的每个输入数据流的更新时延可定量化计算。所述前馈级联式计算任务所组成的信号处理系统,是指完成信号处理算法的时序系统由一系列相串联的计算任务所构建;具有时间帧结构的信号按更新周期进入该系统,先由前序的计算任务完成数据处理,再将加工后数据送入后序的计算任务,如此,相串联的计算任务间存在数据流;数据流可以分叉给多个后序计算任务,多数据流也可以汇集给一个后序计算任务;每个计算任务受输入数据流驱动,即输入数据的量必须达到读门限T的要求才能使计算任务运行;输入数据更新一次则计算任务运行一次;多输入数据流可有不同的数据更新周期,其最小T所对应的数据更新时间即为任务周期。

进一步地,所述计算任务的时间粒度约束,即计算任务运行一次的实际时间不应超过计算任务的任务周期。因此,对计算任务时间粒度的定量化测算将包含两个要素:其一是计算任务被赋予实际算法后,在实际计算平台上运行并获得数据吞吐与算法操作的总时间代价;其二是将所述总时间代价与计算任务的任务周期相比较。计算任务时间粒度的配置,体现计算任务的实际时间代价与输入数据更新周期的适配性,是信号处理系统实时性的基石。

计算任务被赋予任务周期,如图1中各计算任务下方的标记所示。例如,trans1与trans2的任务周期就是数据源的数据更新周期为T

如图1所示,设定数据源更新周期T

本发明中,每个计算任务所关联的每个输入数据流的更新时延可定量化计算。计算任务所关联的每个输入数据流时延按如下数学模型进行描述:所述时延是数据源(处理系统外部输入源或前序某起始计算任务的输入数据流)的一次数据刷新开始时刻到该计算任务的输入数据流获得上述数据源的一次更新数据并满足其读门限T之时刻的延迟。该时延与该输入数据流往前回溯至数据源之间所有级联计算任务的数量、每个级联计算任务的任务周期以及时间粒度有关。所述数据源可以是信号处理系统的外部输入源,也可以是系统内某个前序的计算任务。若数据源为某前序的计算任务,则此数据源的数据更新周期应被理解为该计算任务的任务周期。

以图2为例进行说明,设多数据流驱动的计算任务f

如图2所示,计算任务f

图2中f

d

设h

式(2)表示构成e

如图3所示,将前序级联的计算任务按任务周期的不同分为u段,所设各段级联的计算任务的任务周期分别为

式(4)中的z

其中,

式(3)中的b

b

根据(2)~(7)式,形成如下完整的时延计算表达:

式中的a

进一步考虑尾部帧时延余量与f

令b

若不能满足(9),应使z

数据流时延定义中所述数据源可以是信号处理系统的外部输入源,也可以是系统内某个前序的计算任务。在图2所示的示例中,f

计算任务所关联的多个输入数据流之间具有可度量的帧时延关系。所述帧时延关系,即|a

上述计算模型归纳了某计算任务往前溯源过程中,如何计算数据等待时延、额外帧时延以及尾部帧时延余量。作为本发明的一种优选实施方式,考虑往前溯源过程中分为多节计算,此分节计算在前序计算任务有多数据流汇集时尤为重要。总体上提炼如下的两分节计算规则(以此为基础,可推广至任意多分节):

不失一般性地设计算任务f

下面以具体实例中具体数值计算,说明上述输入数据流更新时延的计算方法。

实施例1:

本实施例说明FBF_1计算任务所关联的两个同步输入数据流的时延。所述同步输入数据流,即他们的输入数据更新周期相同。

两个输入数据流的更新周期均为2T

相对于起始时刻,由公式(8),计算任务FBF_1的一个输入数据流FFT_1_FBF_1的数据更新时延是:

如上述第0064段中所述,数据等待时延就是k

相对于起始时刻,由公式(8),FBF_1另一个输入数据流FFT_2_FBF_1的更新时延可描述为:

同理可计算得到:d

由于这两个输入数据流的帧时延差为0,因而是帧同步的。上述两个输入数据流的最大尾部帧时延余量即277ms。由此看到,图1中规划的上述相关计算任务的时间粒度是合理的。两个同步输入数据流的更新周期一致,且两个输入数据流帧同步,说明FBF_1处理的是相同时间帧的两路数据。显然,d

若因算法改变使其复杂度增大,计算任务CHS的时间粒度配置将被改为70ms,那么h

实施例2:

本实施例说明FBF_1计算任务的三个同步/异步混合输入数据流的时延。

如图1所示,同步输入数据流FFT_1_FBF_1与FFT_2_FBF_1的数据更新周期均为2T

相对于起始时刻,AW_1_FBF_1数据流更新时延值可依计算方法作如下分析,即

其中,k

应注意,在实施例2中,数据流FFT_1_FBF_1的数据源被考虑为trans1,这点与实施例1不同。相对于f

其中,k

同理,相对于f

综合上述,数据流FFT_1_FBF_1和数据流FFT_2_FBF_1帧时延差为0,但与数据流AW_1_FBF_1帧时延差为30T

实施例3:

本实施例说明ReFBF计算任务的两个同步输入数据流时延的计算。

该任务的两个输入数据流的共同数据源是起始任务trans1的输入数据流。以该起始任务的输入数据流的开始更新为起始时刻,分别计算ReFBF的两个输入数据流的更新时延。

相对于起始时刻,数据流ArrE_ReFBF更新时延的值为:

其中,k

ReFBF的另一个输入数据流是SFBF_ReFBF,往前回溯至计算任务SFBF,这里有两个同源(trans1)的输入数据流,即AW_3_SFBF和FFT_4_SFBF。必须以SFBF计算任务为界进行分节计算。第一节是分别计算AW_3_SFBF和FFT_4_SFBF的数据流时延,第二节是计算SFBF_ReFBF数据流时延。

首先,计算AW_3_SFBF的数据更新时延。相对于trans1的输入开始更新时刻,依计算方法有:

其中,k

接下来,计算FFT_4_SFBF数据流更新时延。相对于trans1的输入开始更新时刻,依计算方法有:

其中,

因SFBF任务的两个输入数据流的更新周期一致,即属于同步输入数据流,且两个输入数据流的额外帧时延均为0,按照规则,应取这两个数据流的最大尾部帧时延余量,即max{b

再下来,进行第二节的计算,即SFBF_ReFBF数据流的更新时延计算。依(8)式计算方法,相对于计算任务SFBF的输入数据更新开始时刻,SFBF_ReFBF的时延为:

其中,k

第二节计算的另一种思路:相对于trans1的输入数据更新起始时刻,并考虑到第一节计算结果与分节计算规则(即应将AW_3_SFBF的尾部帧时延余量代入第二节),那么,从ReFBF经SFBF往数据源回溯的拓扑路径是SFBF_ReFBF、AW_3_SFBF、ArrE_AW_3、trans1_ArrE。依(8)式计算方法有:

这里,k

数据流ArrE_ReFBF尾部帧时延余量是435ms,数据流SFBF_ReFBF尾部帧时延余量是4804ms。这两个数据流的最大尾部帧时延余量与h

如果将AW_3计算任务的时间粒度配置为7200ms,那么AW_3_SFBF数据流的第二段总时间粒度将变为435+7200=7635ms,该值与h

将上述尾部帧时延余量7200代入第二节时延计算:总时间粒度为7200+h

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号