信号处理系统并行计算数据流的结构的制作方法

文档序号:26568287发布日期:2021-09-08 02:04阅读:183来源:国知局
信号处理系统并行计算数据流的结构的制作方法

1.本发明涉及数据流结构,具体地指信号处理系统并行计算数据流的结构。


背景技术:

2.实时信号处理系统的外部序贯输入具有严格的确定时序。所述序贯输入,即输入数据按时间顺序被划分为批次,即数据帧次。每个批次包含一定量的数据,即数据帧长。所述序贯输入具有严格的确定时序,是指每个批次的数据量确定且一致,每个批次数据所对应的时间长度确定且相同。由此,要求系统的输出也具有严格的确定时序。在系统内部,这些固定帧长的数据帧被各种计算任务进行处理,每个计算任务的输出也具有严格的确定时序。也就是说,每个计算任务处理一帧数据的完成总时间(被称为时间粒度)是严格确定的。
3.一般地,现代的信号处理算法复杂且计算量大。为运用并行计算技术以满足实时性要求,通常将整个系统分解为一系列前后衔接的计算任务。计算任务之间的传递内容是结构化数据。从形象化概念上说,计算任务之间是数据流。从时序上看,前序的计算任务完成对数据的操作后才能将结果数据传递给后序的计算任务,这就是所述的数据驱动的最基本解释。计算任务的前后级联关系不仅是“一对一”的,而可能是“一对多”或“多对一”的,即从某个计算任务开始可分叉出多个数据流,又在某个计算任务上可汇聚多个数据流。
4.计算任务受多个数据流的激励,而数据流必须被实时刷新才能形成各帧数据驱动。另外,计算任务可能需要累积多帧的数据才实施其算法处理。再有,数据帧的概念虽可对应于一段数字信号记录,但不限于仅有一个通道的数字信号记录。也就是说,计算任务的算法涵盖多通道处理,而且多通道信号可来自多个输入流。总之,计算任务的输入输出数据可以是多数据流的,每个数据流可以是多通道的,每个通道可以是多数据帧的。因此,有必要对数据流的基本结构进行建模,统一抽象认识后才可系统设计阶段予以表达。
5.计算任务对多数据源的多通道多帧输入数据的处理有相当的灵活性,具体表现于算法对数据单元的选择多样性。这里,数据单元或数据集合的规模应是可定义的、数据单元的组合也应是可规划的,更重要的是,这些数据单元的定义与组合形态说明应该便捷地、正确地被计算任务理解,但不应影响数据秩序即不破坏数据流的基本结构。
6.进一步地,高性能信号处理系统以计算任务的高效并行化为主要特征。因此,对数据单元或数据集合的定义及其组合形态的规划,应符合并行计算架构与独立数据单元之间的对应要求。
7.由此,数据流基本结构的设计,数据流中数据单元定义及组合的方法设计,并行计算机构的一般性抽象,以及数据流的组合结构模型与并行计算机构抽象模型的对应关系设计等,是数据流的技术核心,也是信号处理系统的关键。本发明即针对这个技术核心。
8.现代信号处理系统的主要形态是应用软件,而软件的载体是高性能计算平台。异构多处理器和多核处理器等高性能并行计算平台已被广泛地应用。而且,实际计算平台将会不断的升级或改变。为适应异构处理器以及升级变化的计算平台,现代信号处理系统的设计模型既要体现实际计算资源的限制,又不可仅针对某个具体计算平台。对计算任务及
其所关联的数据流结构与属性进行建模,可建立信号处理系统任务图与数据流图,可清晰定义信号处理系统的任务分解,可规划与详细设计信号处理系统的抽象实现。
9.如何将信号处理系统分解为一系列计算任务,具有多样性,一般取决于系统设计者对信号处理应用领域的理解与主观把握。而且,计算任务对数据消费或生产方式亦具有多样性,一般取决于算法设计者。所以,对数据流的模型化描述不应涉及计算任务算法、不应涉及系统任务图或数据流图,应允许设计者根据其意愿规划计算任务的拓扑结构、设计数据流的动态传递。本发明符合计算与数据相分离的设计理念。
10.当存在多个输入数据流时,计算任务对多输入数据流的全体可建立某种“视”的概念,即允许计算任务设计者对数据流进行灵活地分解与策略地组织,以适应复杂算法的需求或提供最丰富的任务加工数据样式。本发明基于数据流分解为集合的规则,定义计算任务消费多输入数据流的某些数据块集合、计算任务生产多输出数据流的数据块集合,由此可定义丰富的分解与组合策略模式。
11.目前为止,抽象的因而也是一般性的数据流基本结构未被参量化地设计,数据流的组合结构与其所关联任务的并行单元的对应原理未被提出。因此,现代信号处理系统应用软件的研制工作缺少模型设计工具支持。由于无法定量化建模信号处理的实现需求,信号处理系统应用软件的研制工作处于无章可循的“自由”状态。由于这类应用软件的设计极具挑战,设计者只能直接面向具体计算平台进行编程与调试。如此,很难应对并行计算场景,也几乎没能力应对异构计算资源与变化计算资源带来的挑战。也就是说,当实际计算平台发生改变时,设计者在原计算平台上艰苦调试成功的软件基本不具有复用性,因为该软件是在没有模型规约与指导下诞生的个性化产物。
12.信号处理系统应用软件的研制工作通常在设计阶段考虑并行化,即事先将应用软件划分成若干个计算任务,将各个计算任务的程序代码分别编译连接后,利用开发环境所提供的工具加载程序到计算平台的若干处理器。这种方法通常存在重大缺点,即所用的处理器资源被人为地预先配置,带有盲目性。更严重地,计算任务的算法处理与数据运用被紧密地耦合一起。一旦计算任务的算法发生变化,或算法对资源的客观需求产生变化,或算法处理数据的规模发生变化,都将必须重新编写与调试代码、至少必须重编译和重加载程序代码。所以从本质上看,未在设计模型规约与指导下编制的应用软件均不支持重配置功能。
13.基于设计模型的信号处理系统应用软件设计与实现是明显分开的两步工作,虽然在这两步之间存在反馈迭代。基于设计模型,可为解决上述的系统应用软件集成和系统应用软件重配置奠定重要基础。将设计模型运用于信号处理系统应用软件研发,其主要形态是建立基于模型的软件集成工具。通过运用软件集成工具,一个实时信号处理系统应用软件的设计与实现的步骤是:(1)以设计模型描述的数据流基本结构及属性、组织形式及其与计算平台架构的对应性,以设计模型描述的计算任务行为机制等为基本依据,分解应用软件为合适规模的计算任务、配置数据流的结构和参数、配置计算任务的算法模块参数和处理流程;(2)按设计模型规定的实时约束,结合计算平台的资源能力描述,集成计算任务为组件;(3)按照计算平台的资源分布,将计算任务组件部署于计算平台。这里,第一步属于设计阶段,后两步属于实现阶段。由此,基于设计模型,可支持后两步或最后一步的重配置。而在第一步,开发者可不关心计算平台,可更关注于计算任务算法的实现与正确性验证,因此,计算任务的算法编程及调试成果得以保留。
14.鉴于上述现代信号处理系统应用软件设计与实现过程中的技术特征,重要的基础之一是建立信号处理系统并行计算数据流的结构模型。但是,已有的数据流模型不满足并行计算任务的需求,不支持多数据流与并行计算任务之间的对应。由此,在高性能信号处理系统应用软件的设计上存在关键限制:无法在并行计算机构已确定情况下,通过配置数据流属性但无需改变计算任务程序代码,可将数据部署到并行的计算任务并实现数据与并行计算任务的关联定制;无法在并行计算机构发生变化而被重新确定情况下,通过配置数据流属性可适应计算任务并发结构和并发数的变化。
15.因此,信号处理系统并行计算数据流的结构模型,相比较于已有相关的数据流模型,相对于先进的高性能信号处理系统设计与研发需求背景,具有进步意义与实用价值。


技术实现要素:

16.本发明的目的在于克服上述现有技术的不足而建立信号处理系统并行计算数据流的结构,该数据流的结构能够支撑信号处理系统的高性能计算架构设计,为建立实时信号处理软件的动态重配置功能奠定技术基础。
17.实现本发明目的所采用的技术方案是:一种信号处理系统并行计算数据流的结构,所述数据流包括以下四层结构:
18.<d
q
(c
l
(c
t
(u
k
)))|q=1,2,

m;l=1,2

,s
q
;t=t0,t1,

t
v
‑1;k=t,t

1,

t

u+1>
19.其中,d
q
表示数据块、c
l
表示数据通道、c
t
表示数据帧、u
k
表示帧长为u的一组相同数据类型的连续数据集合,v为数据通道内的帧数,t
i+1

t
i
=u,0≤i<v;
20.所述数据块设有多维标识以及将全体数据块的标识树作为数据块的组织属性,所述标识树包括层高h、数据块位于各层结点结构中的底层、底层之上的叶集合以及叶集合数n
y
、叶集合层之上的结点数n
h
‑2;
21.所述数据块的标识树与逻辑并行架构建立对应机制,所述对应机制包括逻辑并行架构的层高h

=h

2、逻辑并行架构底层上的梢节点映射标识树叶集合层之上的结点、梢节点数n
s
满足n
y
≥n
s
≥n
h
‑2的约束、标识树的叶集合上层结点数与逻辑并行架构底层梢节点数的协关系、逻辑并行架构底层梢节点上计算任务关于数据块标识树叶集合及其内部数据块的访问方法。所述并行计算数据流的结构设计可支持信号处理系统的高性能计算架构设计与实现。
22.上述的数据流的四层结构形态是其在存储空间中的基本结构形态。
23.在上述技术方案中,所述四层结构分别为:
24.第一层是m个互不包含的数据块的集合,即m≥1;
25.第二层是数据块内相互独立的数据通道的集合,即s
q
≥1;
26.第三层是数据通道c
l
,由v个动态更新的、有序的、连贯的数据帧组成的数据串;则数据帧串即v≥1,数据帧等长度且满足前缀序二元关系,即
27.第四层是数据帧,由u个动态更新的、有序的、连贯的、相同数据类型的数据组成,
即c
t
=[u
t
,u
t
‑1,

u
t

u+1
],是数据流写端的数据生产任务在其一个任务周期内所生产的数据量;所述数据类型,即数据通道内各个数据的类型,具有固定字节数或固定长度的特征;数据块数量m、数据通道数s
q
、数据类型长度f
q
、数据帧长u
q
和数据帧数v构成数据流的基本属性;数据流名称、数据流关联的读端消费任务、数据流关联的写端生产任务构成数据流的附加属性。所述数据流名称是索引数据流的媒介,由此解耦了计算任务关于数据对象的实际存储位置,使数据的处理行为与数据的物理位置无关。
[0028]
在上述技术方案中,所述数据块的多维标识为:
[0029][0030]
其中,<id,val>是一个二元组,id是标识名,val是其对应的标识值,每个二元组表达对一个数据块的一种理解与索引,二元组序列即所述数据块的多维标识,,支持多视角地理解与多元综合地索引数据块。
[0031]
所述数据块的组织属性是以全体数据块的标识树作为表征,所述标识树是数据流读端消费任务或写端生产任务视其数据块的方式,包括:所述标识树的层高记为h,第1层即顶层,是全体数据块集合,第h层即底层,是每个数据块即叶子结点,第h

1层即叶集合层,包括n
y
个叶集合,所述叶集合是若干叶子结点的集合,叶集合表示为:
[0032][0033]
式中,y
j
个叶子结点组合成第j个叶集合,且这些叶子结点有先后顺序;叶集合满足如下关系:
[0034][0035][0036][0037]
第h

2层的结点是叶集合的有序集合,该层结点数记为n
h
‑2,第h

2层结点表示为:
[0038][0039][0040][0041]
第h

p层的结点是h

p+1层结点的有序集合,2<p≤h

1;
[0042]
n
h

p
个该层结点表示为:
[0043][0044][0045][0046]
叶集合被数据流读端消费任务所重复消费的次数被组合标记为也是组织属性的内涵。
[0047]
在上述技术方案中,所述逻辑并行架构,是读端或写端任务实施关于数据流的处理所依靠的并行计算单元的分层逻辑结构;所述逻辑并行架构是倒树状结构:架构整体即根节点,由根节点向下分解为多个层级机构,每个层级的若干枝节点即某一层级的并行逻辑单元,上一层级中的枝节点包含下一层级中的若干枝节点;底层级上的枝节点被特称为梢节点,对应于最基础的并行逻辑单元,全部梢节点的个数记为n
s
,组织架构层高记为h

;不同层级的枝节点、梢节点及其依附关系是实际并行计算机构的内部组织的逻辑抽象。
[0048]
在上述技术方案中,所述多数据流标识树的叶集合上层结点数与逻辑并行架构底层梢节点数的协关系,包括:读端消费任务有多输入数据流(x1,x2,

x
n
)或写端生产任务有多输出数据流(z1,z2,

z
m
),若在一个任务周期内,消费任务选择读取某个数据流即按“或”规则读取多输入数据流,或生产任务选择写入某个数据流即按“或”规则写入多输出数据流,则多数据流标识树的叶集合上层结点数与逻辑并行架构中梢节点数的最优协关系是或所述最优协关系,是在并发性最好的意义下,数据块组织属性与逻辑并行架构的对应关系,一方面,当给定逻辑并行架构时,该关系可指导设计数据流组织属性使之适配架构;另一方面,当数据流组织属性作为设计约束时,该关系可指导设计逻辑并行架构使之适合需求。
[0049]
若在一个任务周期内,消费任务遍历n个数据流且按“与”规则读取多输入数据流,或生产任务遍历m个输出数据流且按“与”规则写入多输出数据流,则每个数据流标识树的叶集合上层结点数与逻辑并行架构中梢节点数的最优协关系是n
h
‑2(x
i
)=n
s
,或n
h
‑2(z
j
)=n
s
,所述按“与”规则读取多数据流,即计算任务在一个任务周期的一次调度运行中必须同步地获得各输入数据流的某叶集合及其内部的全部数据块。所述按“与”规则写入多数据流,即计算任务在一个任务周期的一次调度运行中必须同步地写入各输出数据流的某叶集合及其内部的全部数据块。
[0050]
在上述技术方案中,所述逻辑并行架构底层梢节点上计算任务关于数据块的标识树叶集合及其内部数据块的访问方法包括梢节点对叶集合上层结点内的叶集合将按序依次地访问,梢节点对叶集合内全部数据块将一次性地访问,所述“依次”或“一次”中的“次”,即计算任务的一次调度运行。
[0051]
对于simd并行模式,全体梢结点上将被部署相同的计算任务f。f的操作对象x
i
(i=1,2,

n)是其标识树上第h

2层上的有关结节,其对应关系将遵守上述协关系;进一步
地,f的一次调度运行将按序依次地访问第h

2层上一个结节的一个叶集合,并将一次性地访问该叶集合内的全部叶子结点即叶集合内的全部数据块。显然,在计算任务的一个任务周期内,f可被多次调度运行,但每次应按序轮换访问标识树第h

2层上的不同结节。
[0052]
本发明的信号处理系统并行计算数据流的结构创建了一种数据流结构及其属性描述的形式化设置。与现有技术相比,该形式化描述切实地符合数据流驱动的实时信号处理系统的本质特征,突出地表达数据流的变化组合属性及其与并行计算机构的逻辑对应关系,并进一步表达了多数据流时这种对应关系的优化设计。与此同时,提出并行计算机构的一般性抽象模型。因此,本发明将有力地支持数据流与并行计算任务的关联定制,支持计算任务并行化设计、实现信号处理系统的高性能目标。
[0053]
此外,在基于计算模型的软件系统研发过程中,研发者首先要针对具体计算平台,按其并发硬件结构和运算速度等性能指标,确定计算任务的合适粒度。所谓合适粒度,是指计算任务的大小匹配于计算平台的某个物理节点。这种匹配,是大型实时信号处理软件系统研发中的关键,将极大地影响计算任务集成为组件、极大地影响组件调度到物理节点等一系列优化问题的求解复杂性。所谓粒度是多维度量概念,如计算时间与存储需求的两维度量。本发明提出的数据流组织属性为计算任务合适粒度的配置提供了有效的技术手段。据此,可支撑实时信号处理软件的计算资源重配置。再者,针对多个同步和异步更新速率数据流应用场景,所建立的数据流模型及所规范的数据流与其计算任务并行单元的对应机制,可将任务算法对数据的读写操作模型化。所建立的模型,可适应数据流的任何静态或动态变化。由此,打破了传统实时信号处理软件系统的研发阶段固化于或紧耦合于特定数据流的编程模式,可实现任务算法的独立定制。当计算任务并行化规模发生变化而需要对计算资源重配置时,可协调地说明数据流的重配置,无须改变任务算法的程序代码。
[0054]
本发明所建立的信号处理系统并行计算数据流的结构,能够适应计算任务的改变,当信号处理系统某任务算法全部或局部因需要而重新定制时,所产生的变化将引发计算资源需求的局部变化,在不影响全局架构前提下,通过局部配置数据流便可支持计算任务的改变并适配实际计算资源的约束,因此,该数据流结构能够支撑实时信号处理系统的局部功能重配置。
附图说明
[0055]
图1为本发明数据流及其基本结构示意图。
[0056]
图2为数据流中数据块多维标识用于组合索引示意图。
[0057]
图3为数据流的组合结构倒树状(4层标识树)示意图。
[0058]
图4为数据流的组合结构倒树状(5层标识树)示意图。
[0059]
图5为并行计算架构的倒树状(2层与3层架构树)示意图。
[0060]
图6为多数据流情况下各数据流组合结构与其所关联任务并行单元的对应机制示意图。
[0061]
图7为信号处理系统的一个具体示意图。
具体实施方式
[0062]
下面结合附图和具体实施例对本发明作进一步的详细说明。
[0063]
本发明信号处理系统并行计算数据流的结构中所涉及的一些名词、术语的解释说明如下:
[0064]
信号处理系统,是针对系统外部输入数据进行结构转换型运算、数学变换型计算等各种操作行为。整体计算行为一般被分解为一系列级联的计算任务或算法。
[0065]
信号,即具有时间顺序的数据串,将按帧更新周期进入该系统,先由前序的计算任务对其进行局部处理,再由后序的计算任务对其进一步处理,如此往后级联延续直至被全部的操作行为处理完毕。
[0066]
数据流,即相互级联的计算任务之间的数据流。对计算任务而言,存在多输入数据流与多个输出数据流。
[0067]
计算任务对数据的操作行为被抽象为(z1,z2,

z
m
)=f(x1,x2,

x
n
)。这里,f表示算法,x1,x2,

x
n
表示算法的多个作用对象或多个输入数据流,被统称为消费数据;z1,z2,

z
m
表示多个输出对象或多个输出数据流、被统称为生产数据。所述数据流模型,通指输入数据流与输出数据流的统一模型。为简便,关于数据流结构设计的描述,在不强调多数据流情况下均以单数据流模型作为特例,但完全可泛化用于多数据流。所述数据流包含若干帧周期的动态数据,可对应一个通道的信号记录;也包含多个同时期的同样帧周期数的但不同内容的动态数据,即对应多个通道的信号记录。多数据流对应多个数据生产来源。多输入数据流的最小更新周期也是计算任务的任务周期t。所述计算任务必须在任务周期内完成操作行为,就是实时性的要求使然。为满足实时性,计算任务须并发,由此需数据流的结构并发性及其与计算架构并行性的支撑。数据流有两端,读端的计算任务被称为生产任务,写端的计算任务被称为消费任务。生产任务与消费任务均要求并发。
[0068]
在一个任务周期内,计算任务的并发性通常要求其数据结构支持并发性。计算任务的执行机制是多计算单元的并行机制,所谓计算单元是从实体单元抽象出来的概念,也被称为逻辑单元。与执行机制并行性相关联的数据结构应支持可分解,且分解后的数据单元与并行的计算单元之间具有明确的关联性、可见性或可读写性。这就是数据流的组织属性及其与其并行架构的计算单元之对应原理。
[0069]
本发明信号处理系统并行计算数据流的结构具体表示如下:
[0070]
<d
q
(c
l
(c
t
(u
k
)))|q=1,2,

m;l=1,2

,s
q
;t=t0,t1,

t
v
‑1;k=t,t

1,

t

u+1〉
[0071]
其中,d
q
表示数据块、c
l
表示数据通道、c
t
表示数据帧、u
k
表示帧长为u的一组相同数据类型的连续数据集合,v为数据通道内的帧数,t
i+1

t
i
=u,0≤i<v。
[0072]
数据块设有多维标识以及将全体数据块的标识树作为数据块的组织属性,所述标识树包括层高h、数据块位于各层结点结构中的底层、底层之上的叶集合以及叶集合数n
y
、叶集合层之上的结点数n
h
‑2。数据块的组织属性是以全体数据块的标识树作为表征,所述标识树是数据流读端消费任务或写端生产任务视其数据块的方式,包括:所述标识树的层高记为h,第1层即顶层,是全体数据块集合,第h层即底层,是每个数据块即叶子结点,第h

1层即叶集合层,包括n
y
个叶集合,所述叶集合是若干叶子结点的集合,叶集合表示为:
[0073][0074]
式中,y
j
个叶子结点组合成第j个叶集合,且这些叶子结点有先后顺序;叶集合满
足如下关系:
[0075][0076][0077][0078]
第h

2层的结点是叶集合的有序集合,该层结点数记为n
h
‑2,第h

2层结点表示为:
[0079][0080][0081][0082]
第h

p层的结点是h

p+1层结点的有序集合,2<p≤h

1;
[0083]
n
h

p
个该层结点表示为:
[0084][0085][0086][0087]
叶集合被数据流读端消费任务所重复消费的次数被组合标记为
[0088]
数据块的标识树与逻辑并行架构建立对应机制,所述对应机制包括逻辑并行架构的层高h

=h

2、逻辑并行架构底层上的梢节点映射标识树叶集合层之上的结点、梢节点数n
s
满足n
y
≥n
s
≥n
h
‑2的约束、标识树的叶集合上层结点数与逻辑并行架构底层梢节点数的协关系、逻辑并行架构底层梢节点上计算任务关于数据块标识树叶集合及其内部数据块的访问方法。其中:
[0089]
上述逻辑并行架构是读端或写端任务实施关于数据流的处理所依靠的并行计算单元的分层逻辑结构;所述逻辑并行架构是倒树状结构:架构整体即根节点,由根节点向下分解为多个层级机构,每个层级的若干枝节点即某一层级的并行逻辑单元,上一层级中的枝节点包含下一层级中的若干枝节点;底层级上的枝节点被特称为梢节点,对应于最基础的并行逻辑单元,全部梢节点的个数记为n
s
,组织架构层高记为h


[0090]
上述多数据流标识树的叶集合上层结点数与并行计算单元组织架构底层梢节点
数的协关系,包括:读端消费任务有多输入数据流(x1,x2,

x
n
)或写端生产任务有多输出数据流(z1,z2,

z
m
),若在一个任务周期内,消费任务选择读取某个数据流即按“或”规则读取多输入数据流,或生产任务选择写入某个数据流即按“或”规则写入多输出数据流,则多数据流标识树的叶集合上层结点数与并行计算单元组织架构中梢节点数的最优协关系是或若在一个任务周期内,消费任务遍历n个数据流且按“与”规则读取多输入数据流,或生产任务遍历m个输出数据流且按“与”规则写入多输出数据流,则每个数据流标识树的叶集合上层结点数与并行计算单元组织架构中梢节点数的最优协关系是n
h
‑2(x
i
)=n
s
,或n
h
‑2(z
j
)=n
s

[0091]
上述逻辑并行架构底层梢节点上计算任务关于数据块的标识树叶集合及其内部数据块的访问方法包括梢节点对叶集合上层结点内的叶集合将按序依次地访问,梢节点对叶集合内全部叶子结点将一次性地访问,所述“依次”或“一次”中的“次”,即计算任务的一次调度运行。
[0092]
下面以一个具体的实例说明本发明信号处理系统并行计算数据流的结构,如图1所示,数据流的四层结构的含义分别为:
[0093]
第一层是m个互不包容的数据块集合,数据流是数据块的集合,但不限定数据块在存储空间中的连续性,即m≥1。
[0094]
第二层即数据块内部,是相互独立的或互不重叠的数据通道集合,即s
q
≥1。因此,数据块是数据通道的集合,但不要求数据块内部是连续的,即不要求数据通道顺次排列。以图中计算任务τ2与τ1之间的数据流o1为示例,说明数据流的m个数据块是逻辑组织而非连续性的关系组织,说明每个数据块中的数据通道是逻辑组织,虽然图中表示它们可以是一种连续性的关系组织,但并非必须如此。不同数据块是互不重叠的,即不同数据块内不存在相同的数据通道。
[0095]
第三层是数据通道,数据通道是连续的数据帧,帧数为v。帧数可对应于数据流的数据更新周期但不等同于数据更新周期。因为一个数据帧的刷新源自生产任务的一次运行,v帧刷新就严格地对应于生产任务的v个运行周期。若在v帧中规定k

≤v帧作为刷新条件,数据更新周期即生产任务的k

个运行周期。在一个数据流中,数据通道可代表应用场景中的信号通道。因此,虽然不同数据块所包括的数据通道可以有不同的个性,但全体数据通道应有一致的数据流驱动条件,因此在数据流中帧数v是统一的。如图1所示,数据通道数s
q
,q=1,2,

,m可被定义为不同,但v与q无关数据帧串即数据帧等长度且满足前缀序二元关系,即
[0096]
第四层是数据帧,由u个动态更新的、有序的、连贯的、相同数据类型的数据组成,即c
t
=[u
t
,u
t
‑1,

u
t

u+1
],数据帧的长度被称为帧长,是数据流写端的数据生产任务在其一个任务周期内所生产的数据量。数据类型是任意的基本数据类型或用户自定义的复合类型。所述复合类型,是由基本数据类型组成的任意复杂结构。从概念上讲,数据通道是相同类型的数据集合,数据块也是相同类型的数据集合,但不同数据块的数据类型可以不同。
[0097]
每个数据块的多维标识,是p个二元组每个二元组是一对标识名与标识值。如图1所示,数据流o1的数据块标识由2个二元组构成,其标识名有2个,分别是a与b。图1中所示意的两个数据块的二元组标识分别为<a,1><b,2>、<a,2><b,2>。图2表示利用该二元组标识所实施一种的两维索引,能够准确检出任何定制的数据块集合。
[0098]
数据流的数据块组织,即全体数据块被视为一系列的数据块子集合,并且这些子集合有分层组织关系。处于同一层的子集合互不相交,即每个子集合只包含若干个未被该层的其它子集合所包含的数据块;下层的子集合必含于其紧邻上层的某个子集合。由此,多层子集合的形态被抽象为倒树结构:树的每个结点表示一个数据块子集合;对应各级树枝的各层结点即各层子集合;对应树干的顶层结点即全体数据块集合;底层结点将退化为数据块且被称为叶子结点,底层的紧邻上层结点被特称为叶集合,叶集合内包含叶子结点。因数据块由其多维标识唯一确定,数据流的倒树形组织结构即数据块的多维标识树,被简称为标识树。
[0099]
图3是数据流的组合关系(4层标识树)的示意描述。如图3所示,16个数据块或叶子结点被组合成8个叶集合(位于第h

1=3层)。第h

2=2层有4个结点,即叶集合的上层集合。图4是该数据流的组合结构(5层标识树)的示意描述。如图4所示,16个数据块或叶子结点仍然被组合成8个叶集合(位于第h

1=4层),但第h

2=3层与其下层是一一对应的,而第h

3=2层有4个结点。这两种数据组织构造形态服务于不同的逻辑并行架构。
[0100]
图5(1)是一个2层架构树,即并行单元的组织架构树的层高h

=2,梢节点数即基础逻辑单元数n
s
=4。匹配该计算架构的数据流组织属性是图3所示的标识树。该标识树层高为h=h

+2=4。其中,第h

2层的结点数量n
h
‑2=4,表示这4个数据结点将关联4个基础逻辑单元;第h

1层的叶集合数为n
y
=8,满足n
y
≥n
s
≥n
h
‑2约束关系。
[0101]
图5(2)是一个3层架构树,即并行单元的组织架构树的层高h

=3,梢节点数n
s
=8。匹配该计算架构的数据流组织属性是图4所示的标识树。该标识树层高为h=h

+2=5。其中,第h

2层的结点数量n
h
‑2=8,分别关联8个基础逻辑单元,满足n
h
‑2≤n
s
约束条件;第h

1层的叶集合数量n
y
=8,满足n
y
≥n
s
约束。
[0102]
多输入数据流的如图6(1)所示,计算任务task有2个输入数据流e1,e2,1个输出数据流e3。图6(2)和图6(3)表示逻辑并行架构树的基础逻辑单元并发数即梢节点数n
s
=3。图6(2)表示在一个任务周期内两个输入数据流被task遍历读取的情形,那么,标识树的叶集合上层结点数与并行计算单元组织架构底层梢节点数的协关系要求数据流e1,e2标识树的第h

2层结点数的设计均应满足
[0103]
n
h
‑2(e1)=n
h
‑2(e2)=3
[0104]
表示被部署到梢节点的数据流e1数据块子集合e
10
,e
11
,,e
12
和数据流e2数据块子集合e
20
,e
21
,,e
22
并列对等地关联3个基础逻辑单元,如此可发挥最优并行效率。
[0105]
图6(3)表示在一个任务周期内两个输入数据流被task选择读取的情形,那么,标识树的叶集合上层结点数与并行计算单元组织架构底层梢节点数的协关系要求数据流e1,e2标识树的第h

2层结点数的设计应满足
[0106]
n
h
‑2(e1)+n
h
‑2(e2)=3
[0107]
进一步地,数据流e1第h

2层结点数是2,表示被部署到梢节点的数据块子集合e
10
,e
11
关联基础逻辑单元ue0和ue1,数据流e2第h

2层结点数是1,表示被部署到梢节点的数据
块子集合e
20
关联基础逻辑单元ue2。如此,数据流e1的e
10
,e
11
、数据流e2的e
20
分别被task选择读取,当然有3个可对应分配使用的基础逻辑单元将是最佳的。
[0108]
图7为具有应用场景与实际意义的一个数据流驱动的实时信号处理系统,包含一个外部源输入、两个数据流宿主、三种任务周期的若干计算任务,计算任务由单数据流或多数据流驱动。
[0109]
实时信号处理系统整体数据加工操作被分解为一系列前后相互衔接的计算任务,这些计算任务泛指信号处理的某个局部计算功能,如图7所示的fft1、fbf计算任务。
[0110]
相邻计算任务间存在从前往后的单向数据流,即前序的计算任务按其局部的数据生产功能输出约定量的数据更新,后序的计算任务仅在数据更新满足该约定量时,才驱动数据消费功能、继而再生产向后的输出。最前端的计算任务的输入即处理系统的外部输入,是数据源与计算任务之间的数据流。如图7所示,源与计算任务trans之间数据流。最后端的计算任务的输出,是计算任务与多个数据宿主之间的数据流,如图7所示,计算任务bei&f与数据宿主a0s208、boit208之间数据流。
[0111]
所述数据流有两端。读端连接数据消费的计算任务,写端连接数据生产的计算任务。具体地,对于读端所连接的数据消费任务而言,该数据流代表输入数据流,对于写端所连接的数据生产任务而言,该数据流代表输出数据流。如图7所示的fft1_fbf数据流,该数据流读端是fbf计算任务,写端是fft1计算任务;fft2_fbf数据流的读端也是fbf计算任务,写端是计算任务fft2;aw_fbf数据流的读端也是fbf计算任务,写端是计算任务aw。
[0112]
计算任务fbf完成频域波束形成算法,可以处理多个波段的数据,它们分别来自fft1计算任务与fft2计算任务。fbf算法还需要实时估计的阵型数据并由阵型解算波束形成的频率权值,它们来自aw计算任务。因此,fbf关联3个输入数据流,运行时将选择读取即按“或”规则读取数据流fft1_fbf与数据流fft2_fbf,再并列读取即按“与”规则读取数据流aw_fbf。在fbf的一个任务周期内,算法至少被调度运行2次,每次选择fft1_fbf与fft2_fbf中的一个,再与aw_fbf一起共同消费。
[0113]
图7所示的fft1_fbf数据流,其基本结构是7个数据块,每个数据块的属性如下表:
[0114][0115][0116]
如上表所示,1维数据块标识中的标识名是“b”,代表波段,其值为1~7,分别表示七个波段。共有7个来自fft1的数据块。每个波段的数据通道数与帧长不同,虽然数据帧数与数据类型长度属性一致,但7个数据块即7种规格。因此,基本结构及其属性不仅表达了数
据块的组成,而且其表达能力足以满足不同数据规格的丰富需求。进一步地,由数据块标识可便捷地检索某个特定数据块,而且可屏蔽数据块具体存储位置。由此,算法将解藕其处理的数据对象,即算法只关心“是什么数据,有几个通道,每个通道有几帧,每帧有几个数据,每个数据是多长”。因为经索引获得数据块后,通过上述数据块内部的结构信息,算法就完全可以定位数据并解读数据。至于通道是什么含义、帧长与帧数又能代表什么,都由算法的具体应用场景确定。这里,不同波段的通道代表频率分解后的谱线,通道数即谱线数;帧长或一帧内的数据数代表空间阵的阵元数。显然,当整个空间离散阵给定后,不同的波段所对应的阵元数(帧长)是不同的,不同的波段所设计的频率分辨率或谱线数(通道数)是不同的。这些属性的内涵及配置值将由其算法本身属性以及算法设计者的想法决定。总之,不同数据块的内部结构及其所代表的不同内涵,使数据流模型具有广泛的适应性。
[0117]
图7所示的fft2_fbf数据流,其基本结构是1个数据块,即只有“b=10”波段的一个数据块,其数据块附加属性不再赘述。
[0118]
图7所示的aw_fbf的基本结构是23个数据块。每个数据块的有关附加属性如下表:
[0119][0120]
如上表所示,2维数据块标识中的标识名是“b”,即所述的波段,表示来自aw的7种数据。2维数据块标识中的标识名是“r”代表距离聚焦点,r=0~3表示按波束焦点的不同又将b=1~5的低波段数据再分为4块,累计有20个数据块。b=6、7和b=10这三个高波段分别只有1个焦点的数据块。因此总共有23个数据块。在这里,数据流的通道则代表波束,通道数即波束数;数据流的一帧内的数据则是“谱线
×
阵元”的矩阵数据,帧长=谱线数
×
阵元数,如上表所示,每个数据块的帧长是很大的值。总体上说,这个来自aw任务的数据流为fbf任务所提供的输入数据,是频域波束形成算法所需的权系数。按波束指向、波束焦点、波段中心频率的不同,分别组织以谱线频率与阵元选取为两个维度的权系数矩阵数据。其中,波段中心频率与波束焦点作为数据块的2维标识,波束指向作为数据块内的通道。虽然每个通道内的矩阵数据结构规范并不表达在本发明的模型之中,但可以被算法认知,因为算法设计者与实现者知道数据块的内部组织结构。如此,既为算法规范了对数据块的关联,又不限制算法对数据的底层结构设计与使用方式。
[0121]
并行计算机构是多核dsp处理器组成的同构多处理器,具有两层架构:根节点是处理器,梢节点是独立的内核,且多核以共享内存方式构成底层上的基础逻辑单元。各处理器的架构树层高h

=2。
[0122]
设计部署给fft1的基础逻辑单元数即梢节点数n
s
=4;部署给fbf的梢节点数n
s

3;部署给aw的梢节点数n
s
=2。
[0123]
以fft1为分析对象:其输入数据流、输出数据流的标识树层高可由处理器架构树的层高确定。具体地,fft1_fbf的写端标识树层高h=h

+2=4。
[0124]
按照fft1算法需要,fft1_fbf写端标识树的叶集合数设计为n
y
=7,具体叶集合定义为:leafset1={{<b,1>}},leafset2={{<b,2>}},leafset3={{<b,3>}},leafset4={{<b,4>}},leafset5={{<b,5>}},leafset6={{<b,6>}},leafset7={{<b,7>}}。这里所定义的叶集合序号对应于波段序号。从fft1任务看该数据流的写端,其叶集合内的数据块是单一的。因此fft1任务每调度运行一次,就写入一个波段的多阵元频域分解数据。
[0125]
按照协关系,fft1_fbf写端标识树的第h

2层的结点数将对应于梢节点数,即n
h
‑2=4=n
s
。四个结点分别定义如下:node
h

2,1
={leafset1,leafset2},node
h

2,2
={leafset3,leafset4},node
h

2,3
={leafset5,leafset6},node
h

2,4
={leafset7}。这里,四个结点关于数据块的选取组合,将考虑fft1算法对各数据块的执行时间,并使它们基本平衡。四个结点的计算以及输出生产是并行的,按照逻辑并行架构底层梢节点上计算任务关于数据块的标识树叶集合及其内部数据块的访问方法,因前三个结点内各有2个叶集合,其对应的梢节点将按序依次读取每个叶集合,即node
h

2,1
、node
h

2,2
与node
h

2,3
所对应的梢节点将调度运行fft1任务2次。
[0126]
根据数据流fft1

fbf写端标识树的配置,在一个任务周期,fft1计算任务的4个基础逻辑单元可并行访问数据块标识树第h

2层的4个结点。具体地,3个基础逻辑单元将串行调度运行2次,1个基础逻辑单元将串行调度运行1次,每次运行将访问结点中的一个叶集合内所有数据块。如node
h

2,1
结点含有两个叶集合,基础逻辑单元将运行2次:第1次写入计算结果至leafset1中的数据块,第2次写入计算结果至leafset2中的数据块。
[0127]
再以fbf为分析对象:它有三个输入数据流,即fft1_fbf、fft2_fbf、aw_fbf。
[0128]
从fft1_fbf读端计算任务看该数据流读端的标识树。按照fbf算法设计,该读端标识树的叶集合数设为n
y
=7,叶集合被定义为leafset
i
={{<b,i>},i=1,2,3,4,5,6,7}。该读端标识树的第h

2层的结点数与fbf任务的梢节点数n
s
=3的协关系设计思路如下:由于该数据流与fft2_fbf是选择读取,而这两个数据流又与aw_fbf是并列读取,故该读端标识树第h

2层的结点数设为n
h
‑2=2<n
s
,2个结点的定义如下:node
h

2,2
={leafset6,leafset7}。其中,node
h

2,1
中含有5个叶集合,且每个叶集合被fbf任务重复读取4次(对应4个距离焦点),总共被读取20次;node
h

2,2
含有2个叶集合,每个叶集合不被重复读取,共被读取2次。
[0129]
从fft2_fbf读端计算任务看该数据流读端标识树。按照fbf算法设计,该读端标识树的叶集合数为n
y
=1,其具体定义为:leafset1={{<b,10>}}。该读端标识树的第h

2层的结点数为n
h
‑2=1,因此node
h

2,1
={leafset1}。如此,可使n
h
‑2(fft1_fbf)+n
h
‑2(fft2_fbf)=n
s
=3,总体上满足多输入数据流在“或”规则情形下的协关系。
[0130]
从aw_fbf读端计算任务看该数据流读端标识树。按照fbf算法设计,将读端标识树的叶集合数配置为n
y
=23,叶集合的具体定义如下:leafset
4(i

1)+j
={{<b,i>,<r,j

1>}},i=1,2,3,4,5,j=1,2,3,4;leafset
21
={{<b,6>,<r,0>}};leafset
22
={{<b,7>,<r,0>}};leafset
23
={{<b,10>,<r,0>}}。该读端标识树的第h

2层的结点数设计为n
h
‑2=n
s
=3,因为
该输入数据流是被并列读取的,须满足多输入数据流在“与”规则情形下的协关系。为此,3个结点定义如下:
[0131][0132]
如此配置,也是为满足算法设计要求,即该数据流第h

2层结点中叶集合所含的数据块,以及叶集合的顺序必须与另外两个数据流第h

2层结点的数据块相配。
[0133]
fbf的3个基础逻辑单元与该任务的3个输入数据流标识树第h

2层结点的全体对应关系如下表(表中还表示了结点内所含的叶集合):
[0134][0135][0136]
由此可见,3个基础逻辑单元并行地完成频域波束形成算法。基础逻辑单元按照所对应的输入数据流的标识树叶集合及其内部数据块的访问方法,可确定调度运行fbf任务的次数。具体地,并发逻辑单元ue0按照波段1至5选取fft1_fbf,按从低到高的次序且每个波段重复读取4次的整体顺序读取20次,因此任务也被调度运行20次;每次均并列地读取fft1_fbf与aw_fbf;而aw_fbf的20个被选数据是与fft1_fbf的被选数据顺序对应的。具体地,基础逻辑单元ue1按照波段6、7顺序调度运行2次,每次并列地读取fft1_fbf和aw_fbf的相应的数据块。具体地,基础逻辑单元ue2调度运行1次,按照波段10并列地读取fft2_fbf和aw_fbf中的对应数据。
[0137]
数据流aw_fbf的写端计算任务是aw。按照该算法的设计想法,写端标识树的叶集合数设为n
y
=22,也就是说不同于读端标识树的叶集合定义。具体地:前10个叶集合各自包含一个数据块,即leafset
2(i

1)+j
={{<b,i>,<r,j

1>}},j=1,2,i=1,2,3,4,5;第11个叶集合包含两个数据块,即leafset
11
={{<b,6>,<r,0>}},{{<b,10>,<r,0>}};后10个叶集合各自也只包含一个数据块,即leafset
11+2(i

1)+j
={{<b,i>,<r,j+1>}},j=1,2,i=1,2,3,4,5;第22个叶集合是单独一个数据块,即leafset
22
={{<b,7>,<r,0>}},可以看到,aw算法只关心数据块是哪个,不担心数据块在哪里、是何顺序又是如何集合组织,这就是通常所述的算法设计解耦数据的一种方式,而且这种方式被本发明的数据流模型所解析。从另一个角度看,虽然数据流aw_fbf的23个数据块之基本结构是一致的,,但是从数据流读端或写端看去,数据块完全可以被不同地组织,以适应读端任务或写端任务的算法设计需要。
[0138]
aw_fbf写端标识树第h

2层的结点数设为n
h
‑2=n
s
=2,结点的具体定义如下:在一个任务周期内,aw计算任务的2个基础逻辑单元并行地访问这两个结点。具体地,每个基础逻辑单元顺序调度运行11次,每次运行将计算结果写入一个叶集合中的某个数据块。事实上,基础逻辑单元的大多数运行,只产生标识为<某个波段,某个焦点>的数据块,只有一次运行产生了2个波段的数据块,即leafset
11
中的2个数据块。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1