信号处理的制作方法

文档序号:6462070阅读:200来源:国知局
专利名称:信号处理的制作方法
技术领域
本发明总的来说涉及信号处理。
背景技术
积分变换多种已有的和正在出现的系统可以使用现代信号处理器来分析,所述现 代信号处理器被基于描述底层系统的数学进行了适当的编程。例如,今天这 样的分析越来越有助于分析诸如电子线路、光学设备、机械机构和多种其他 系统的线性时不变系统。在数学和多种广泛使用数学的领域中,例如在今天的科学和工程学的大多数分支中,术语"变换(transform)"用来指代一类等式分析(叫uation analysis)技术。变换的概念追溯到数学的函数分析分支,该分支主要进行 对函数空间的研究,在该空间中,特定的函数将另一函数作为其自变量。这 样就可以以单个或整个等式组等式来使用变换,其中变换过程是从在一个域 内表示的一个以上原始等式到在分离的域内表示的另外一个以上等式的一 对一映射。进行变换的动机通常很直接。有多种以其原始表达式很难求解的等式, 但是以一个以上其他表达式可以更容易地求解。这样,可以进行变换,找到 解,然后进行反变换来将该解映射回原始的域。积分变换的一般形式被定义 为(1 ) <formula>formula see original document page 5</formula>其中《(cu)通常称为变换的"积分核"。拉普拉斯变换拉普拉斯变换是由等式(1)所定义的一类变换的子集,并且通常尤其 有用。给定对系统输入或输出的简单的数学或函数描述,拉普拉斯变换可以 提供可能会简化系统行为分析的作为替换的函数描述。拉普拉斯变换的 一般形式被定义为(2) 聰)} =其中积分限和积分核是从等式(1)重新定义为a=0, b被~替换,并且 K(a,r)=e-"。只有在s足够大并且满足特定条件时,才能对/(r)进行拉普拉斯 变换,但是这些条件通常足够灵活以便允许/W采取实践中所发现的几乎所 有函数的函数形式。巻积定理通常发生的是,特定的函数,例如F(s)不是单个已知函数的变换,但是 可以被表示为两个函数的积,这两个函数中的各函数分别为已知函数/(0或 g(f)的变换结果。即(3) ^^)=》(力^(力, 其中g(0必须满足与/W相同的条件。根据HO、 /W和g(/)之间的这种联系, 以下关系成立<formula>formula see original document page 6</formula>这通常称为"巻积定理"。巻积定理的数值逼近可以观察到,巻积定理的结果是只对一个变量进行积分变换。因这样就 可以应用只对 一 个变量进行积分的lt值逼近#支术。积分表达式与黎曼和表达式之间,以下等号成立(其中后者特别适合于 在利用数字电路进行的数值逼近中使用)(5 ) <formula>formula see original document page 6</formula>其中各。_4和&均是在第t子区间任意地选择出的。在实践中,等式(5)的 等号右手侧是通过使用非常小的zl。并意识到存在若干阶的误差项来逼近的,所述误差项取决于所选择的数值技术和zk的值。这样 (6) limi/D(c,=力Dg")Ar + 0(A,')其中m是准度的阶数,其可以由总和(以及可以期望的精度的位数)来表 示,O是传统数学场合中的大写(9。数字信号处理如同以上顺便暗示的,变换在重要的应用中存在已有的或潜在的使用, 其可以受益于巻积的使用。例如,数字信号处理(DSP)得到广泛和增长的 使用,并且其一个这样的重要应用是用于数字滤波。任何可以被表达为数学 函数的滤波都可以通过使用数字滤波器来实现,这是现代DSP实践的绝对 基础之一。例如,对从信号采样的数据值进行数字滤波允许移除信号的有害 部分或者提取信号的有用部分。有限脉冲响应(FIR)和无限脉冲响应(IIR)是今天的DSP应用中所 用到的数字滤波器两种主要类型,更常用的是FIR滤波器。通常认为使用FIR滤波器更有优势,因为该滤波器不需要内部反馈,所 述内部反馈可以例如导致IIR滤波器对脉冲的无限响应。"有限"这个词本 身也暗示了 FIR滤波器的另一优势。来自这种滤波器的脉冲最终归于零,并 且在所使用的迭代和运算中的误差不会传播。也就是说,误差项在整个运算 过程中保持恒定。这是区别于IIR滤波器的优势,例如,在IIR滤波器中, 针对各附加迭代输出和,误差可能增长。不幸的是,对于很多应用来说,数字滤波器的主要局限性在于其速度受 到用于进行数值运算的一个以上处理器的速度的约束。例如,如果需要高滤 波速度,这可能使得实施数字滤波器所需的硬件非常昂贵或者简直无法获 得。对于几乎所用应用,并且对于大多数基于电子技术的系统也通常成立, 所采用的速度越高,就越难于处理并发效应(coincidental effect),例如难以抑制电磁噪声和散热。现在推广到数字滤波的情况之外,DSP通常在固有地包括对至少一个正在 被处理的信号的采样。采样速率定义为对特定连续信号在每单位时间的采样个 数,所述采样将连续信号转换成离散的信号。将连续的信号转换成离散信号的原因有很多,例如包括调制、编码以及量化的使用。采样率通常被称为赫兹(Hz )(频率的度量单位),等同于波长(义)(时间单位,其中义=历-、反之亦然)。在试图重构原始函数时,有三种方法用来对连续信号进行采样欠采样、 恩奎斯特速率采样以及过采样。对连续信号进行欠采样经常不是最佳选择,因为它未必总是能够从原始信 号中获得所有的相关信息。然而,如果原始信号的重构不是4艮重要,那么欠采 样将使得存储的数据较少,而且可以使采样过程加快多种。通常优选的采样方法为恩奎斯特速率采样,这是因为它允许随后精确地重 构特定的信号。这里,采样速率(称为"恩奎斯特速率")必须大于两倍的被采 样信号的带宽,而且该信号必须是带宽受限的,这意味着该信号为具有傅立叶 变换或者在某一有限频率之上的功率谱密度为0的确定性信号。过采样是这三种采样方法中效率最低或最浪费的,但它总是对对原始信号 的恢复留出余地,因此在速度不重要时具有优势。现在进一步讨论采样的重要性,以及它通常如何对DSP和使用DSP的系 统施加约束。并行算法所有计算机实现的算法被认为是顺序或串行完成的,直到与最近计算机器 (例如用于DSP或其它多种应用的计算机器)相关联的硬件的架构改变为止。 也就是说,在任意给定瞬间只能进行一个动作。这种观念导致了越来越快的机 器的构建,以便在越来越少量的时间内完成各顺序任务。然而,如上附带所述, 这样的处理器目前达到可实现处理能力的极限。今天这种界限已经促使业界将焦点从提高硬件的速度转向提高算法的速度。一种提高算法的速度的方法是采用并行化。许多算法非常适合于 一定程度的并行化,虽然它们可能仍会受到执行它们所使用的硬件的限制。如果所有方 面都并行完成,则又一些算法可以达到更高的速度。在这点上,经常利用安达 尔法则确定最大的加速(S ),其出现在当给定可以并行实现的算法的百分比 (7> )、可以顺序实现的算法的百分比(& )以及可用并行处理器的数目(JV )时的并行计算中。安达尔法则可以表达为而且它被广泛接受且被认为支持该命题,即加速算法的较大部分要比更大 地加速算法的较小部分要更好,其原因可以从等式(7)以及从报酬渐减定律得 到。整数编程对于线性编程(LP)基础的掌握有助于理解整数编程,稍后讨论之所以在 这里引入它的原因。LP问题为具有线性目标函数的优化问题。例如,这样的问 题经常发生在网络流量应用中。LP问题在当给定今计算资源的情况下经常容易解决。然而,显著的例外是, LP具有将其变量值限定为只为整数值的约束,也就是说,LP问题为整数编程 (IP)问题。解决LP问题的技术经常不能以相同的方式应用于IP问题,并且 多种情况下,这些技术根本不能应用于IP问题。因此,通常IP问题更难以解 决。另外,如果将问题作为IP问题而不是LP问题来处理,则将问题作为IP问 题来解决所所需的计算能力成指数级地高于将问题作为LP问题来解决所需的 计算能力。因此,大部分研究者相信具有多于40个变量的IP问题不能用当今 的可用计算能力得到解决,至少是一些针对IP问题的可以用于有效最小化该问 题中的变量数目的架构才能得到求解。基于此原因,花在开发对IP问题的解答 的大量时间转向寻找利用该问题的结构的方法以便将变量的数目减少到允许及 时的计算机解答。然而,相应地,在将优化问题分类为IP问题还是LP问题上存在重要折衷。IP问题可以更加逼真地模拟给定情况,但其作为IP问题会产生 不可求解的等式组。相反,LP问题在模拟底层情况时经常没有相对的IP问题 逼真,但通常可以得到解决并可以快速解决。因此,接下来,改进我们用于处理信号,例如进行数值巻积运算的系统,尤其是用于DSP的系统,将允许我们以更高的速度、更经济地执行这些应用和 相关4壬务,并减少对底层和外围系统的不利影响。发明内容本发明的一方面是用于将多个信号数据值和多个系数值载入目标处理器 (c,)以运算巻积的方法,其中,所述目标处理器为所使用的处理器集合(c , ) 中的一个处理器。将所述多个系数值映射到Q.,。然后,在所述c(中交织所述多 个凝:据值和所述多个系数值。在所述c,中加载所述多个系数值,并在所述c,中加 载所述多个数据值,这样使得所迷c,做好参与信号数据值处理的准备。在本发明的一个实例中,系数值为巻积滤波器系数值,并且该方法运算所述滤波器系 数和所述数据值的巻积。本发明的另一方面是处理信号的系统,例如,基于多个信号值和多个系数 值运算巻积,其中,所述多个系数值可以是巻积滤波器系数值。提供所使用的 处理器集合(),其中c ,中的各处理器依次在给定点被视为目标处理器(& )。 一逻辑将所述多个系数值映射到所述《,,,7 。 一逻辑在c,中确定对所述多个数据值 和所述多个系数值进行交织。 一逻辑将所述多个系数值载入c,。 一逻辑将所述 多个数据值载入c,。这样使得c,做好参与信号处理的准备,例如运算巻积。本发明还提供计算机程序,当运行在计算机阵列上时,该计算机程序使 该阵列实施本发明的所述一方面的方法。所述计算机阵列可以在单个半导体 电路小片上。该计算机程序可以位于载体上,例如记录介质、可以是电信号 的信号或存储器设备。考虑到对当前已知的实现本发明的最优模式的描述和此处描述的以及附图所图示的优选实施例的工业适用性,本发明的这些和其他目标和优点将 对于本领域技术人员变得清晰。


本发明的目的和优势将从以下结合附图的详细描述中变得更加清楚,在附 图中图la-b是在形式上描绘根据本发明的巻积运算系统如何进行建立操作、正 式工作操作以及结束操作的示意性方框图。图2 (背景技术)是一般地描绘用作图la中的目标阵列的SEAforth 24A 器件的主要细节的概图。图3是描绘如何执行图lb的映射阶段的示例性实施例的流程图。图4是描绘图lb的交织如何工作的示例性情况的图。图5是在图lb中的运算阶段期间,来自图2的目标阵列的特定巻积运算 节点的详细示意图。图6A-B是进行混合FIR巻积的Forth代码的两页清单。在不同的附图中,相同的附图标记用来表示相同或相似的元件或步骤。
具体实施方式
本发明的优选实施例是用于以多个计算机处理器进行巻积运算的系统。如 这里的不同附图所示,特别是考虑到图la-b,本发明的优选实施例用一般的附 图标记100来描述。图la-b是在形式上描绘根据本发明的巻积运算系统如何进行建立操作、正 式工作操作以及结束操作的的示意性方框图。如图la所示,主机处理器112用于将信号数据值和巻积滤波器值映射到目 标阵列114中的多个处理器、核或节点,以开始将基于信号数据值和系数值的 交织载入目标阵列114,并从目标阵列114中接收结果。主机处理器112可以是单个离散系统,如图la所示。然而, 一旦掌握以下内容,本领域技术人员还将认知到该主处理机112也可以是多个离散处理系统。 此外,如现在所讨论的,主机处理器112甚至可以是目标阵列114的一部分。然而,主机处理器112通常是传统的个人计算机(PC)或工作站。目标阵列114还可以采取多种形式,但尤其可以是具有多核或多节点的、 单电路小片的集成电路器件,例如加利福尼亚州库珀蒂诺的IntellaSys公司的 SEAforth(TM)产品之一。图lb描绘CCS 100中的工作的主要阶段。在映射阶段150中,巻积数字 滤波器值被映射到目标阵列114的可用处理器、核或节点,以更有效利用它们。 而后,在交织阶段160中,构造交织以有效将系数载入目标阵列114的处理器、 核或节点中。并且,在运算阶段170中进行巻积(下面给出混合FIR例子)。当 然也会加载信号数据值和卸载结果值,但是这些没有在图lb的阶段中示出。图2 (背景技术)是一般地描绘用作目标阵列114的SEAforth 24A器件的 主要细节的概图。为了在这里集中于巻积运算的相关准备和以及后来在巻积运 算中的实际使用的那些方面,很多小的或外围元素被省略或在图2中一般地表 示。然而,现有技术人员将认知到这些元件将存在于在实际操作的实施例中, 并且这些元件通常在本质上可以是传统的。图2的系统包括阵列114,输入设备161以及输出设备221。该输入设备 161从待处理信号提供进行巻积的输入数据值。该输入数据值是待处理信号的 采样。输出设备221从阵列114接收处理后的数据值。如图2所见,SEAforth24A器件具有24个通过数据总线18相互通信的核 (统称为组16,分别是核16a-x)。[目前,这里现在使用术语"核",但当说到像 SEAforth 24A器件中的处理器时,术语"节点"等同适用,并且术语"处理器,,一 般是正确的。]通常,但并不是必须地, 一个核16 (例如,图2中的核16a)专用于处理 数据输入任务,另一核16 (图2中的核16x)专用于处理数据输出任务。相应 地,目前专用于其它任务。例如,主机处理器112甚至可以在一个以上核16中实施。由于巻积的特性以及在目标阵列114有效进行巻积所必须完成的操作的特性,本创造性CCS 100很大程度上依赖于执行运算阶段170之前的输入。这些 输入以及术语一般地描述如下。术语表一般地,c是表示目标阵列114中的核16的变量,其中c"-当前目标阵列114中给出的核16的总数(例如,在图2的例子 中为24 );c",一待被映射到其上以进行巻积运算的可用核16的数目(例如,在图2的例子中为22 ); Q,待映射滤波器值到其上的核16的数目(即映射阶段150试图确定的值);并且 c,=选自c ,的在给定时间予以考虑的目标核16。 另外, 一般地,"为表示若千数字巻积滤波器值的变量,其中 "錄-映射到c,的滤波器值的实际数目;=待映射到作为^,,的一部分的各核16的滤波器值的估计数目; #=实际上映射到给定核16的滤波器值("抽头")(即映射阶段150试图确定的一组值,每个g具有一个值,)的数目;并且 "_=映射到任意特定核16的信号数据值(或者系数滤波器值)中的 最大映射值(即 。,为 ^集合的成员,它是特定具有最大值的 成员)。 还有定义了以下变量 S为采样速率;丄为积分核的时间窗口长度;f为在目标阵列114中两个数相乘所需的时间;并且^为核16中的存储器的可用字,用于存储数据值和滤波器值。下面是与c逻辑相关的一些简单关系。例如,很容易看出0 < c ,,, S 《,其中,所有这些具有整数值。接下来,0<~,,"_,^甜的情况可能不是最优的,但是这在真实世界的应用中却可能发生。也就是说,可能会遇到这样的情况 具有无滤波器值映射到其上的 一个以上核,并且因此具有即使在巻积运算的正 式过程中也不会使用的核,是更有效的。类似地,下面是与"逻辑相关的一些关系。例如,很容易看出0-"^且,其中"温和"^具有整数值(我们限制、也具有整数值)。接下来,"拟=",^的情况(即所有的滤波器值被映射到单个核)应该是公认的。创造性CCS 100包 含最有效解决方案的情况,虽然CCS 100的好处尤其在"似 < #提供更优解决方案的情况下实现。并且再次,虽然已经作出对以上要点的有效重申,人们可 能会遇到针对一些核,0 = %*的真实世界的应用。还可以声明与已定义值有关的 一 些简单关系。这里S的值被认为是可变的。 也就是说,可以在每单位时间收集更多或更少的采样。丄的值在这里不被认为 是可变的。,的值是固定的,由于它固有地具有目标阵列114的硬件所规定的最 小值(并且我们假定使用了有效编程,并且实现了该最小值)。^的值可以减小, 但不能增加,这是由于如果所有^都用于存储数据或滤波器值的话,存储器的 字数受到RAM和ROM中可用字的限制。然而并没有要求使用所有爿。图3描绘如何执行创造性CCS 100的映射阶段150的实施例。在步骤330 中,映射阶段150开始。接下来,向主机处理器112提供一组输入。具体地说, 在步骤332中,提供采样速率(S);在步骤334中,提供积分核时间窗口的长 度(丄)(即其持续时间);在步骤336中,提供将目标阵列114中的两个数相 乘所需的时间(,);并且,在步骤338中,提供映射到任意特定核16的信号数 据值(或系数滤波器值)中的最大映射值(nmax )。在步骤340中,判断步骤332-336中的输入是否有效。如果这些输入在任 一方面都是无效的,则进行步骤342,判断是否中止映射阶段150。如果判断结 果是中止,则进行步骤344,映射阶段停止。作为替代地,如果判断结果是不中止,则映射阶4殳150返回步骤330,如图所示。现在继续在步骤340进行其它选择,如果认为输入全部有效,则进行步骤 346,运算待用来执行并行巻积算法的核16 ( Cun/ )的数目。首先,运算 w抽关 (8)"似^sn,接下来,确定 a。它可以要么是用户提供的输入(步骤338 ),要么通过 运算得到。)"",然后,运算每个节点的抽头的估计数目(i):接下来,既然已知每个节点的抽头的数目("。,,),则运算这些抽头可以被 映射到的核(c , )的数目(11) ^,=[丄,注意,这里^,需要满足^,^^,。,,"財的要求。如果没有满足这个要求,可 以通过使丄的值更小和/或使" ,的值更大来修改丄的值和/或&(的值。对£的改变 通过由用户输入来完成。相反,对"£,(的改变可以通过编程来完成。"e,(的值为"似 和"隨的函数,并且"颠和"_都可以被减小。在"_的情况下,这可以通过使所 使用的字小于RAM/ROM中所有字的数目(vO来完成,而在n拟的情况下, 这可以通过减少s和f中的 一个或两个来完成(同时仍然保持S ^的关系)。继续图3,在步骤348中,判断Q,是否为一整数值。也就是说,等式(ll) 没有产生余数。如果没有余数,抽头到核16的均匀映射是可能的,并且使用它会产生最 优效率。在这种情况下,进行步骤350,将 、,的值用于所有的c^。然后,继续进行步骤352,将交织矢量映射到c^中的每个核16 (稍后讨论该交织矢量)。并且,在步骤354中,可以继续进行正式的巻积运算。通过步骤352到步骤354,如上述继续进行,很清楚当£和" ,相除产生非负整数的结果时,对于通常情况是少见的例外。如果在步骤348中存在余数, 则需要将抽头非均匀地性映射到核16。所述非均匀映射在步骤356进行,在该 步骤中,我们首先试图尽可能多地分配均匀映射。由于映射中的非均匀特性, "^至少需要两个不同的值,如果没有更多的话。在步骤356中,发明人的优选初始方法是使用核16的q,-1中的"##值, 并在第c个核中使用与g中的核16不同的映射。然后,第c个核具有映射m扭(12 )附实添=丄—"c. (c w —",并且其中附麵<"麵。不幸的是,这种初始方法也可能对于使用这种映射的 某些应用来说效率很低。[注意,这里讨论的方法仅提供指导方针,因为ip问 题的特性,像这个问题,将解局限于整数结果,并且大大地限制了可用的解答 技术]由于巻积方法局限于c^中的核16的事实,因为在正式运算期间只使用它 们,所以到q中的各核16的映射尽可能接近均匀是很必要的。这些核16之间 的这种接近的均匀性以小于每个核16的最大抽头数目的抽头数目限制了这些 核16的休眠时间。这里考虑映射的另一种方式为根据安达尔法则,我们希望即使较快部分 的性能很有可能被降低,也要提高最慢部分的性能。假定给定这里需要的非均 匀映射,预期L的值在映射过程期间采用至少两个值,是合理的。例如,假定 £=99,并且 .、.,=24,那么^(,,=5。当丄除以 .、,时,这种情况将产生余数。使用 上述第一方法,这里映射将是24、 24、 24、 24和3。然而,使用刚才讨论的方 法,更值得期望的映射为20、 20、 20、 20和19。[当然,有四个其它映射产生 与此相同的总体结果,例如,19、 20、 20、 20、和20]。在这样的情况下,概括 出最优地映射核16的一般算法是非常困难的,因此这里的要点在于,甚至当£ 除以l产生非零的余数时,仍然可以在映射中保持某种效率,并且这种效率针对在c ,,7中的核16的的值尽可能接近均匀时被最大化。在步骤356之后,进行步骤358,将交织矢量映射到Q中的各核16(再次, 稍后讨论该交织矢量),并且在步骤354中,可以继续进行正式的巻积运算。总之,映射阶段150现在已经完成,已知针对相应核16的抽头的实际数 目的值,并且进行整个CCS 100下一阶段,即在交织阶段160中确定交织矢量。 在图3中,交织阶段160由步骤352或步骤358来表示,其中,将交织矢量映 射到c,(w中的核16 (即映射到用于正式巻积运算的各核),并且步骤354为运算 阶段170。简要地,在交织阶段160,目的是要设置中通过在采样后的信号值(也称 为历史值)和巻积数字滤波器系数之间利用交织来在运算阶段170进行巻积。 假设信号数据值和巻积数字滤波器系数值表示为矢量,两者之间的交织产生两 倍于原来的巻积数字滤波器系数值的大小的矢量。该交织矢量之所以为这个大 小是由于巻积的特性,其中可以连续地供给具有未知和不确定长度的数据。虽 然最终的交织矢量的长度是巻积数字滤波器系数值矢量的长度的两倍,但最终 的交织矢量的排列方式是第 一行为空,随后的第二排为第 一巻积数字滤波器系 数,随后的是另一空行,随后的第四行为第二巻积数字滤波器系数,位于第四 行。 一直重复,直到插入所有的巻积数字滤波器系数值为止,并且存在相等数 目的空行。然后,由于交织在任意正式巻积运算发生之前进行,因此这些空的 空间最终将被信号数据值填充。在步骤352中,交织矢量映射到q,中的各核16的方式是顺序的。所使用的第 一核16有前2* n麵个交织矢量项的映射,并且所使用的第二核16有接下 来的2 錄个交织矢量项的映射。类似地,q,中的各附加核16将有接下来的 2、扭个交织矢量项的映射。然而,在映射到最后一个这样的核16后,交织矢量将仍然缺少所有数据值,但是各核16现在在将接收的值的长度上具有均匀映 射。在这里开始,交织阶段160完成,并且我们为在步骤354的运算阶段170 中进行巻积做好准备。简单地离开主题,步骤358中的功能类似于步骤352,仅仅在这里,交织 矢量映射并不是十分简明,因为映射到c ,,7中的每个核16的数目没有必要相同。 从一开始,交织矢量将接收总共两倍于针对第一巻积节点运算得到的抽头数目 的值。然后,交织矢量将从第一个核的映射结束处继续接收等于第二巻积节点 运算得到的抽头数目的两倍的值。等等。所有的映射完成之后,交织矢量再次 缺少所有数据值。这终止步骤358所采用的步骤,并且交织阶段160完成,并 且我们为在步骤354的运算阶段170中进行巻积做好准备。从步骤348中的判决得到的任一路径在巻积序列(即对c^中的各核16) 中针对各特定节点产生一定数目的抽头。在步骤354中,将所有待在巻积阶段 使用的核16映射以来自交织矢量的合适长度值,但是,前面为巻积分配的对第 一核16、第二核16、第三核16等关于它们在目标阵列114的电路小片上的方 位的描述是不清楚的。称为第一节点、第二节点等的排列受到以下限制为了 巻积序列中的第一节点无需使用另一节点就可以访问外部输入设备(图2),并 且必须直接访问第二巻积节点,因此该第 一巻积节点必须位于芯片的周边上。 直接访问意味但并不限于两个节点不使用第三个节点就可以通信的情况,或者, 如另一种方式所述的,两个具有直接通路的节点共用同一数据总线18。巻积序 列中的第c节点必须在不使用另 一 节点的情况下也可以直接访问外部输出设 备,并可以直接访问第c-l节点。第二节点一直到第c-l节点共用同一属性,即 各节点必须可以直接访问巻积序列上的上一节点和下一节点。本领域技术人员 将意识到对于c的某些值,对第一、第二等等一直到第c核的排列存在多种可 能的配置,这些配置在目标阵列114上会提供同样有效的排列。由此映射阶段 150和交织阶段160结束,准备在运算阶段170进行巻积。图4是描绘创造性CCS 100的交织阶段160如何工作的示例性情况的图。 这里,信号数据值的信号矢量460与巻积数字滤波器系数值的系数矢量470进 行交织以创建交织矢量480。仅仅已知系数矢量470的长度(从图3的步骤334 ), 但是信号矢量460的长度与此匹配,即使该信号数据实际上不具有固定长度。信号矢量460的元素462、 464、 466和468对应于第一、第二、第三以及最末 信号数据值。位于元素466和468之间的区域,元素482,为更多的信号数据 值而不仅仅是图4中提供的四个字面值留有空间。类似地,系数矢量470的元 素472、 474、 476和478对应于第一、第二、第三以及最末巻积数字滤波器系 数值,并且位于元素476和478之间的区域,元素484,为更多的巻积数字滤 波器系数值而不仅仅是图4中提供的四个字面值留有空间。进行交织以使作为 结果的交织矢量480首先从信号矢量460接收顶部元素462,然后从系数矢量 470接收顶部元素472,并继续以此方式接收信号数据值和滤波器系数值,直到 最末系数值478转移到交织矢量480为止。当然,在元素486中这种交织应该 也包括元素482和484中的一些值。目前,已知将用于巻积的核16以及到这些核16的映射是否均匀。另外, 确定已进行了全部数目的抽头和空数据值的交织。下面针对映射均匀和非均匀 两种情况解释该交织到核的映射。下面两节引用第一、第二、...第c-l和第c节 点,但是这种标记并不指示核16的排列。更确切地说,称为第一核16、第二 核16等的排列被限制为巻积序列中的第一节点可以访问外部输入设备且必须 直接访问第二巻积节点。在像SEAforth 24A的器件的情况下,这意味着第 一巻 积节点位于芯片的周边。巻积序列中的第c节点必须可以访问外部输入设备并 直接访问第c-l节点,因此与第一巻积节点一样必须位于器件周边。这里直接 访问暗示两个节点可以在不用第三个节点的情况下进行通信。第二节点到第c-l 个节点共用同一属性,各节点必须可以直接访问巻积序列中的前一节点和后一 节点。交织到核16的均匀映射是两种交织情况中较简单的一个。在这种情况下, 第一巻积节点将包含交织矢量前2*",个元素,第二巻积节点将包含交织矢量 接下来的2*"#个元素,等。在完成交织程序后,所有的核16应包含严格相同的长度的映射,并且交织矢量应为空。这里讨论非均匀映射存在的两种子情况。第一子情况是在很好地定义了" 、 w錄和Q的值时的映射。这里第一巻积节点将包含交织矢量前2*"錄个元素。第二巻积节点将包含交织矢量接下来的2、扭个元素,等。以同样的方式持续对前c-l个节点进行这种交织矢量的映射,其中,各另外节点接收交织矢量接下来的2、錄个元素。第c节点将接收2*附蔣个元素的映射,其严格等 于交织矢量的其余元素个数。再次,在完成所有的映射后,交织矢量应为空。第二子情况为仅仅给定映射的一般指导方针的映射。回到前面,这是期 望尽可能接近均匀映射的情况,并且大多数情况下,对于g中的核16,至少 有两个不同的"^值被映射。然而,即使在很好地定义了",的值后,还存在多 种产生相同总体映射的映射。因此不可能得到明确的交织映射;再次,只有指 导方针可以遵循。从第一巻积节点开始,这个节点将从交织矢量接收两倍于这 个特定节点的抽头实际数目的元素。第二巻积节点将从交织矢量中第一节点从 交织矢量的映射结束的元素处接收两倍于这个特定节点的抽头实际数目的元 素。以类似的方式,、,,中的各另外核16从交织矢量中先前映射结束的地方获 取,并且该映射将两倍于这个特定节点的抽头实际数目。图5是在创造性CCS 100的运算阶段170期间,来自图2的目标阵列114 的特定巻积运算节点(c ,,7中的核16)的详细示意图。元素502-520在这里表示 存储从图4的交织矢量472中获取的交织项的存储区。在图5中,这种五个信 号数据值和五个巻积数字滤波器系数值到核16的映射仅仅是可能发生的映射 的一个例子,且可以使用到这个特定核16的更大和更小映射。在图5中,核16中,元素502、 506、 510、 514和518中的各元素都对应 于经过核16的信号数据值,元素504、 508、 512、 516和520中的各元素都对 应于巻积数字滤波器系数值,从在巻积过程期间,在这些巻积数字滤波器系数 没有移动的意义上说,巻积数字滤波器系数是固定的。在图5中,在通过核16的一次巻积期间,产生结果和。首先,将元素502 和504的乘积传递至元素522。接下来,将元素506和508的乘积传递至元素 524,其中,元素524将这个乘积与元素522具有的值进行组合。类似地,将元素510和元素512的乘积传递至元素526,元素526将该乘积与524中具有的 值进行组合。并且以类似的方式,得到元素528和530的值。元素530所具有 的值和元素518所具有的值为仅有的从核16传递至另一个核16的两个值。针 对存在于用于巻积的特定核16内的所有信号数据和滤波器系数对,重复如下过 程将信号数据值和滤波器系数值相乘,并将该乘积与先前的乘积部分的乘积 和,如果存在的话,相加。〉t—t/S、 t丄K發个"、'l列下面描述一种在合适的目标阵列114中进行巻积的方法,其中,。,,,中的所 有核16以适当数目的抽头纟皮映射,并且以可以使连续的核16发生必要的通信 的方式进行排列。单词"仓(bin)"在这里的意思是信号数据值或巻积数字滤波 器系数值在核16之一中所处的位置。1. 初始化la. "n"个数据采样仓接收数值"0"。2. 运算第一部分和p。2a.在运算第一部分和p。之前,以将所有现有数据采样"压入" 下一个可用数据仓的方式,将第一数据采样^置于数据釆样 仓6。中,2al.首先,最末数据采样仓^中找到的数据采样被推出最末数据采样仓,实质上被丢弃。 2a2.接下来,数据采样仓6,"中找到的数据采样被压入到数据采样仓、。2a3.以类似的方式,数据采样仓6,,_2中找到的数据采样被压入 到数据采样仓Z^。2a4.这种将数据压入下一个可用数据采样仓的过程一直到数 据采样仓6。不再包含任何数据才完成[不包含任何数据 的数据釆样仓不同于包含"0"值的数据采样仓]。2a5.在这个点处,在不再改变其余数据仓的情况下将第一数 据采样c/。压入数据采样仓6。。 2b.接下来,将在滤波器系数仓c。和数据采样仓6。中找到的值用作被乘数,运算乘积,已知为乘积a。。 2c.将结果乘积加到第二乘积,该第二乘积被定义为将在滤波器系数仓。和数据采样仓^中找到的值定义为被乘数的乘浊产生的第二乘积^。2d.重复上述将先前乘积加到新乘积的过程,直到乘积a"被加到到最末乘积为止,该最末乘积用 来指示。 2e.将值^当作等同于上述巻积的第一和p。。3. 运算第二部分和^,3a.通过重复步骤2al-2a4的过程来将第二数据采样值^置于第一数据釆样仓6。。 3b.通过重复步骤2b-2d来计算第二部分和^。4. 运算其余部分和。[该算法描述了在无限量时间内接收数据、因此不需要 停止条件的巻积算法。]4a.通过重复步骤2al-2a4的过程,重复步骤将下一个lt据釆样"压入,,第一数据采样仓6。。 4b.通过重复步骤2b-2d,计算新的部分和。 以上没有描述节点间的数据传送,仅仅进行巻积,然后仅使用滤波器的直 接表示。如果滤波器改为用其导数来表示,则必须进行下面的改变以进行巻积。 现有的步骤3b.通过重复步骤2b-2d,计算第二部分和^。 4b.通过重复步骤2b-2d,计算新的部分和。 被替换为3b.通过重复步骤2b-2d,并将出自步骤2b-2d的该值P/与先前计算出的部分和p。相加,来计算第二部分和'、。4b.通过重复步骤2b-2d,并将出自步骤2b-2d的该值加到先前计算出的部分和,来计算新的部分和。图6A-B是大致以上述方式进行混合FIR巻积的Forth代码600的两页清单。总之,本发明特别使用两个原则。第一原则为加速算法的较大部分比大 大加速较小部分要好。第二原则是要确认并领会巻积算法可以既具有顺序元 素又具有并行元素。可以以顺序的方式计算巻积,其中,所有段一个接一个地 计算。或者,处于另一极端,所有段同时计算,即并行计算。或者可以使用中 间方法,其中一部分串行地计算, 一些并行地计算。CCS 100提供了进行并行 运算的能力,同时保留一定量的顺序处理,而且,这样可以大大提高巻积的速 度而无需实际加速所用巻积算法或提高所用硬件的处理能力。本发明实施例提供运行在图2的系统上的计算^L程序,其如上述地将信号 凄t据值和巻积系数值映射到阵列114中。本发明实施例提供运行在图2的系统上的计算机程序,其如上对图6A和 6B所述地对信号数据值和巻积系数值进行巻积。此外,巻积只是本发明的例子。现在也应该认知到,CCS 100还提供提高 任何类型的既具有顺序又具有并行元素的算法的性能的现实方法。虽然以上描述了不同的实施例,应该理解,它们仅仅以示例的方式给出, 本发明的广度和范围不应该受限于以上描述的示例性实施例。
权利要求
1. 一种用于将多个信号数据值和多个卷积滤波器系数值载入目标处理器ct以运算卷积的方法,其中,所述ct是所使用的处理器集合cutil中的一个处理器,该方法包括将所述多个系数值映射到cutil;确定在ct中所述多个数据值和多个系数值的交织;将所述多个系数值载入ct;以及将所述多个数据值载入ct,从而使ct做好参与运算所述卷积的准备。
2、 根据权利要求1所述的方法,其中n錄为映射到所述c,的滤波器值的实 际数目,^,为映射到Q中的各处理器的滤波器值的估计数目,所述映射包括 选择在所有中提供最均匀映射的所述作为"錄。
3、 根据权利要求2所述的方法,其中"拟为映射到所述&的滤波器抽头的 数目, ^为映射到所述c,的系数值的最大数目,S表示该多个信号数据值的采 样速率,f表示在该c'中两个数相乘所需的时间,^表示将所述采样和系数值存 储到c,的可用存储器,丄表示用于巻积的积分核时间窗口,该方法进一步包括确定=^"("拍关'",);并且确定c助.,。
4、 根据权利要求3所述的方法,进一步包括如果确定g为一非整数值,则改变 ,,以找到提供所述最均匀映射的。
5、 根据前述任一权利要求所述的方法,其中所述确定包括为所述q构造包括2* 个元素的交织矢量。
6、 根据前述任一权利要求所述的方法,其中所述确定包括分别为中的各处理器构造包括2* "錄个元素的交织矢量。
7、 根据前述任一权利要求所述的方法,其中所述巻积为数字信号处理过程 中对所述数据值进行的滤波操作的一部分。
8、 一种基于多个信号数据值和多个巻积滤波器系数值运算巻积的系统,包所使用的处理器集合~,,,其中各处理器依次可以在给定点被视为目标处理将所述多个系数值映射到、,,的逻辑;确定所述c,中所述多个数据值和多个系数值的交织的逻辑;将所述多个系数值载入c,的逻辑;以及将所述多个数据值载入c,的逻辑,从而使c,做好运算所述巻积的准备。
9、 根据权利要求8所述的系统,其中",为映射到当前所述c,的滤波器值 的实际数目,^,为映射到各g的滤波器值的估计数目,所述映射逻辑进一步 为所述当前所述c,选择在所有c ( 中提供最均匀映射的作为",。
10、 根据权利要求9所述的系统,其中"^为映射到所述&的滤波器抽头的 数目,w,,为映射到所述c,的系数值的最大数目,S表示所述多个信号数据值的采样速率,/表示在所述C",中对两个数相乘所需的时间,j表示在所述c,中存储所述采样和系数值的可用存储量,z表示用于巻积的积分核时间窗口,其中所 述映射逻辑进一步确定"_ =々2;
11、 根据权利要求IO所述的系统,其中所述映射逻辑进一步 如果Q为一非整数值,则改变~以找到提供所述最均匀映射的。
12、 根据权利要求8、 9、 10或11所述的系统,其中所述确定逻辑进一步确定Q,,=仏,为所述c,构造包括2* ,,个元素的交织矢量。
13、 根据权利要求8、 9、 10、 11或12所述的系统,其中所述确定逻辑进一步分别为各Q,构造包括2* "麵个元素的交织矢量。
14、 根据权利要求8、 9、 10、 11、 12或13所述的系统,其中 所述、7为单个电路小片或模块中的所有核。
15 、根据权利要求14所述的系统,其中所述q,,为单个电路小片或模块中数量更大的多个计算机化处理器q,,的子集。
16、 根据权利要求8至15中的任意一项所述的系统,进一步包括与运算巻 积的所述c^,分离的主机系统,并且其中,至少所述映射逻辑和所述确定逻辑位 于所述主机系统中。
17、 根据权利要求8-16中的任意一项所述的系统,其中所述巻积为在数字 信号处理器中对所述数据值进行的滤波操作的一部分。
18、 一种处理信号的方法,包括从所述信号中得到表示所述信号的数据 值,并且根据权利要求1-6中的任意一项所述的方法对所述数据值进行处理。
19、 一种信号处理器,包括用于从信号中得到表示该信号的数据值的装置 和根据权利要求8-17中的任意一项所述的用于对所述数据值进行处理的系统。
20、 一种计算机程序,在计算机阵列上运行时,使所述阵列实施根据权利 要求1-7和18中的任意一项所述的方法。
21、 一种载体,承载根据权利要求20所述的程序。
22、 根据权利要求21所述的载体,所述载体为信号、或记录介质、或存储 器设备。
全文摘要
一种用于将多个信号数据值和多个卷积滤波器系数值载入所使用的处理器集合(c<sub>util</sub>)中的目标处理器(c<sub>t</sub>)以进行卷积计算的方法。将所述多个系数值映射[150]到c<sub>util</sub>。为所述c<sub>t</sub>确定对所述多个数据值和所述多个系数值的交织[160]。将所述多个系数值载入c<sub>t</sub>,并且将所述多个数据值载入c<sub>t</sub>,从而使所述c<sub>t</sub>做好运算[170]所述卷积的准备。
文档编号G06F17/15GK101281515SQ200810089860
公开日2008年10月8日 申请日期2008年4月3日 优先权日2007年4月6日
发明者迈克尔·B·蒙特维利什斯凯 申请人:科技资产股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1