在计算设备中累加数值的方法和系统的制作方法

文档序号:6409619阅读:266来源:国知局
专利名称:在计算设备中累加数值的方法和系统的制作方法
技术领域
本发明涉及下列发明,它们都转让给与本发明相同的受让人(1)、“神经网络和利用它的方法”,系列号No.08/076,601,1993年6月14日申请。
(2)、“计算机中的操作控制器及利用它的方法”,系列号No.__,__,____申请。
在此将上述相关发明的主要内容通过引用结合到本发明的公开中。
本发明主要涉及计算机,特别是关于累加数据的方法。
在许多计算机中,操作被分组并在一个被称为周期的特定时间段中执行。例如,在某些计算机体系中,特别是用于数字信号处理(DSP)时,通常会有一个乘法周期,在该周期中操作数相乘,随后是一个累加周期,在该周期中乘法周期的结果被求和。典型地,周期是顺序执行的;但在更高级的计算机体系中,周期可以同时执行。


图1描述了常规和重迭的计算-累加周期的时序图。常规周期和重迭周期都以时间坐标轴10为参照。常规周期12包括一个计算周期16和其后的累加周期18。从时刻t1开始,到时刻t3结束,计算周期16代表计算机执行一组操作的时间段。典型地,这些操作可以包括逻辑函数和算术运算,如乘法、除法、加法、或减法。累加周期18在计算周期16完成后的某一时刻开始,或者,如示例所示,在计算周期16完成后立即开始。在累加周期18中,从计算周期16的操作得到的结果通常被求和。在累加周期18中,也可以对结果进行其它算术或逻辑运算。
重迭周期14包含一个计算周期20和累加周期22。与计算周期16相似,计算周期20代表执行一组操作所需的时间量。如示例所示,操作的执行从时刻t1开始,到时刻t3结束。然而,与常规周期12相比,累加周期22在计算周期20结束前的某一时刻开始,在时刻t2开始。累加周期22如图所示,可以在计算周期20完成后的时刻t4结束。
在一台计算机的操作中,重迭周期14比常规周期12要理想,因为它允许在更短的时间内执行相同个数的操作,因而增加了计算机的总吞吐量。但是,已知的将计算和累加周期重迭起来的技术仍然存在多种缺点。首先,现有技术的计算机在计算周期中通常执行一组固定的操作。因此只允许对少量的操作进行重迭,这进而在提高计算机的总吞吐量方面限制了执行重迭的作用。现有的执行重达技术的另一个问题是在某些环境中,它们需要在周期之间建立复杂的通信协议。例如,用已知的协议对由多个处理单元生成的结果进行累加,通常会显著增加处理的额外开销。总的来说,由通信协议带来的额外开销对计算机运行时间有着不利的影响。
因此,需要一个在计算机中累加数值的方法和系统,它可以改进运行时间和提高重迭各种操作的灵活性。
在所附的权利要求中,指出了本发明的特征。而以下结合附图的详细叙述,本发明的其它特点将变得更明显,本发明会很容易被理解。其中图1描述了常规周期和重迭的乘法-累加周期的时序。
图2描绘了依据本发明的一个实施方案的累加数据方法的流程图。
图3描绘了依据本发明的一个最佳实施方案的累加数据方法的流程图。
图4描绘了一个依据本发明的一个实施方案的累加调度表。
图5描绘了一个依据本发明的一个最佳实施方案的累加调度表。
图6描绘了一个计算机的方框图,它包括本发明的再一实施方案。
一个最佳实施方案的详细描述总体来说,本发明提供了一种方法和系统,用来对由计算机中一个或多个处理单元生成的一组数据值进行累加。这通过下面的步骤来完成。首先,为每个处理单元确定一个预期完成时间。接着,在预期完成时间的基础上生成一个累加调度表。根据该累加调度表对数据值进行累加。这种方法和系统提供了一种提高计算机整体吞吐量的累加数据技术。下面参照图2-6,更全面地对本发明进行描述。
对于本领域一般技术人员来说,不难理解到,本发明的方法和系统可以应用于硬件、软件或它们的任何组合,“任务”一词在本发明中定义为一个设备的任何动作,它包含至少一个逻辑、算术或数据操作运算。
图2描绘了依据本发明实施方案之一的累加数据方法的流程图。该方法可以用在一个有多个处理单元的计算机中。每个处理单元接收一个输入信号,接着产生对应于一个输出值的输出信号。
在方框30中,为每个处理单元确定一个预期完成时间。在方框32中,生成一个累加调度表。该累加调度表以每个处理单元的预期处理时间为基础。接下来,在方框34中,根据累加调度表对多个输出值进行累加。
特别是,在本实施方案中,预期完成时间是如此确定的,把每个处理单元的操作定义为一个对应于时间的事件序列,其中,序列有一个最终事件,有一个最终事件时间,它产生一个将被累加的输出。一个处理单元的操作可以包括任何逻辑或算术运算的组合。预期完成时间是一个时间点,在此时,输出被累加,并且它可以与最终事件时间一致或在其后的某一时刻。
处理单元的预期完成时间被集中在一起,来生成一个累加调度表。一个累加调度表规定输出结果被累加的顺序。例如,预期完成时间可以在一个累加调度表中组织起来,以便从某组处理单元来的输出可以首先被累加,或者最好让输出结果按它们的预期完成时间进行累加。首先完成的输出先被累加,等等。关于累加调度表更详细情况可以参考图4和图5。
在一个计算机程序中,方框30和32中的方法步骤可以在执行的预处理阶段执行,而方框34中的方法步骤则在执行的运行阶段执行。组织计算机程序以这种方式运行,显著增强了计算机在执行运行任务时的性能。而且,预期完成时间可以是由计算机程序中的一个变量来代表的时间标记;一个累加调度表在软件中作为一个数组变量或在硬件中作为一个包含数字值的软件可读寄存器来实现。
图3描绘了依据本发明的一个最佳实施方案的累加数据方法的流程图。在一个最佳实施方案中,该方法被用在一个包含多个处理单元的多处理器计算机中,来对处理单元的输出进行累加。
在方框40中,为每个处理单元分配一个任务,其中,任务以对应输入信号的输出信号形式产生至少一个输出。在方框42中,每个任务定义为一个对照时间的事件序列,其中事件序列有一个产生输出的最终事件。接着,在方框44中,根据与每个任务的最终时间有关的量,如最终事件的时间,确定一个预期完成时间。在方框46中,提供一个对应于处理单元之一的处理单元标签(tag)。在方框48中,将每个处理单元的预期完成时间和处理单元标签联系在一起,生成多个累加标志。
在方框50中,多个累加标志按照它们的预期完成时间排到累加调度表中。在一个最佳实施方案中,一个预期完成时间比其它标志更早一些的累加标志在累加调度表中其位置在其它标志的前面。接下来,在方框52中,访问累加调度表,确定多个输出之一是否是可累加的,即输出是否准备好被累加。如果是,输出会被累加。
在判断方框54中,确定是否对另一个输出进行累加。如果是,返回方框52。如果否,则结束。
图4描绘了一个依据本发明的一个实施方案的累加调度表60。在该实施方案中,处理单元标签是一个标识多个处理单元之一的数字字。比如,标签可以是一个标识存储器位置或处理单元输出端口的地址。累加调度表60中的每一行代表一个累加标志。第一列62给出了处理单元的预期完成时间。在本例中,第一列62中所示的数值代表一个计算周期中的一个时钟周期序列。第二列64所示的数值包括处理单元标签的例子。此处,标签是4位数字字;但一个常用的技术可以使数字字是任何长度。在无任何将被累加的输出的时钟周期中,插入一个空值处理单元标签来代替。如示例中累加调度表60的第n行所示。此处,空值由“0000”代表。
例如,使用图2和图3中所示的任何一种方法,在每个时钟周期访问累加调度表60,各个处理单元的输出会被顺序累加。比如,在第一时钟周期中,第一行将被访问,接着从处理单元“0001”来的输出将被累加;在第二时钟周期中,第二行将被访问,接着从处理单元“0100”来的输出将被累加;如此下去,直至到达累加调度表60中的最后一个时钟周期。
图5描绘了一个依据本发明的一个最佳实施方案的累加调度表70。在该实施方案中,一个处理单元标签是一个二进制符号,表示多个输出之一是否是可累加的。累加调度表70中的每一行代表一个累加标志。第一列72中所示的数值代表一个计算周期中的时钟周期序列。第二列74中所示的数值包括处理单元标签的优选形式。在一个最佳实施方案中,显示一个输出是否会被累加的标签是单个一位。如果它是1,相应的处理单元输出被累加。如果它是0,访问该行将不会发生累加。为了按最佳实施方案使用单个位标签累加输出结果,每个处理单元的输出必须有一个预分配的地址。作为一个例子,这个地址可以对应一个存储器位置、输出端口或其它任何可以包含处理单元输出结果的设备。
例如,使用图2和图3中所示的任何一种方法,在每个时钟周期期间访问累加调度表70,如果标签被置为1,各个处理单元的输出结果将在之后马上被累加。在最佳实施方案中,各个处理单元的输出结果是依据上面所提及的第二个相关发明的方法由单个位标签确定的。简单来讲,这个方法使用一个计数器来推导出与处理单元输出相对应的地址。例如,在第一时钟周期中,访问第一行,由于标签为0,则不发生对应于第一时钟周期的累加。在第二时钟周期中,访问第二行,之后对应第一地址的处理单元来的输出将被累加。在第三时钟周期中,访问第三行,之后对应第二地址的处理单元的输出将被累加。这个过程将会重复,直至到达累加调度表70中所包含的最后一个时钟周期为止。
图4、图5中所示的累加调度表60、70能够通过增加处理单元标签的附加列(图中未显示)很容易被修改,使其包括在一个时钟周期中有不止一个处理单元输出会被累加的情况。
图6描绘了一个计算机80的方框图,它包括本发明的进一步实施方案。计算机80包括多个处理单元和一个累加数据值的系统89。如例子中所示,多个处理单元由3个处理单元82、84和86来代表。系统89包括一个确定装置98、生成装置94和累加装置90。
确定装置98为每个处理单元确定一个预期完成时间。确定装置98通过给每个处理单元分配任务来完成这个工作。一个任务产生至少一个将进行累加的输出。对每个处理单元来说,确定装置98将任务定义为一个对照时间的事件序列,其中事件序列有一个产生输出的最终事件。确定装置98把预期完成时间和最终事件结合在一起。
通过数据路径96将确定装置98和生成装置94耦合起来。生成装置94在多个处理单元中的每一个的预期完成时间的基础上,生成一个累加调度表。累加调度表包括多个累加标志,生成装置94通过将一个处理单元标签与每个处理单元的预期完成时间联系在一起而生成多个标志。生成装置94将多个标志在累加调度表中排列成一个序列,以便使比第二标志的预期完成时间更早的第一标志在序列中位于第二累加标志的前面。在一个实施方案中,生成装置94提供一个累加调度表60,如图4所示;而在另一个实施方案中,生成装置提供一个累加调度表70,如图5所示。
累加装置90接收从多个处理单元通过数据总线88发来的输出,并通过数据路径92访问累加调度表。累加装置90根据由生成装置94提供的累加调度表对输出结果进行累加。累加装置90可以包括一个累加输出结果的加法器。
在本发明的一个实施方案中,计算机80执行一个多项式扩展,其总体形式由下面的方程1表示 其中,xi代表在输入总线81上接收的输入,可以是如xi=fi(Zi)这样的函数,Zi是任何变量,下标i、j和m可以是任何整数;y表示计算机80的输出100。wi-1代表第i项的系数;g1i,...,gni代表第i项的指数,为整数;n是输入的个数。在本实施方案中,涉及计算项的操作由多个处理单元执行,用处理单元82、84和86表示,各项的求和由系统89来完成。
在本发明的一个实施方案中,累加装置90在一个集成电路中实现,生成装置94和确定装置98由在一个处理器如微处理器上运行的软件来实现。本领域一般技术人员可以认识到,系统89的功能也可以由其它任何硬件和软件的组合来实现,或是一个可编程逻辑阵列、特殊用途集成电路(ASIC)或其它逻辑设备。
总之,本发明提供一种方法和系统,用来在一个计算机中累加数据数值。通过在计算机程序的预处理阶段确定一个累加调度表,计算机在执行运行时的总吞吐量大大提高了。本发明的一个重要优点是累加调度表按这样一种方式组织,它允许计算机中各阶段操作之间的执行重迭。
通过显示和叙述本发明的特别实施方案,对熟悉技术者来说,显然,所公开的发明可以有许多修改方式,并可以设计多个与上面特别表示并叙述的最佳形式不同的实施方案。
因此,将在所附的权利要求中覆盖所有依照本发明实质精神和范围的修改。
权利要求
1.在一个包含多个有多个输出的处理单元的计算机中,一个用来累加多个输出的系统,该系统包括确定装置,为多个处理单元中的每一个单元确定一个预期完成时间;生成装置,它有效地耦合到确定装置,以根据多个处理单元中的每一个单元的预期完成时间,生成一个累加调度表;累加装置,有效地耦合到生成装置和多个处理单元,按照累加调度表累加多个输出。
2.权利要求1的系统,其中累加调度表包括多个累加标志,并且生成装置通过将多个处理单元中的每一个单元的预期完成时间与一个处理单元标签联系起来,生成多个累加标志。
3.权利要求2中的系统,其中生成装置在累加调度表中将多个累加标志排列成一个序列,以便使比第二累加标志的预期完成时间更早的第一累加标志在序列中位于第二累加标志的前面。
4.权利要求2中的系统,其中处理单元标签是一个数字字,它标识多个处理单元中的一个。
5.权利要求2中的系统,其中处理单元标签是一个二进制表示符,它说明多个输出中的一个是否是可累加的。
6.权利要求1中的系统,其中累加装置包括一个加法器,它对多个输出累加求和。
7.在一个包含多个处理单元的计算机中,每个处理单元至少生成多个输出值中的一个,一种累加多个输出值的方法,它包括下面的步骤为多个处理单元中的每一个确定一个预期完成时间;在多个处理单元中每个单元预期完成时间的基础上,生成一个累加调度表;按照累加调度表对多个输出数值进行累加。
8.权利要求7的方法,其中确定步骤包括以下子步骤给多个处理单元中的每一个分配一个任务,其中任务对应至少一个输入值,产生至少多个输出值中的一个;对每个处理单元,将任务定义为一个对照时间的事件序列,事件序列有一个对应于最终事件时间的最终事件,最终事件产生多个输出值中的至少一个;以及对每个处理单元,在最终事件的基础上确定预期完成时间。
9.权利要求7的方法,其中生成步骤包括以下子步骤生成一个对应多个处理单元之一的处理单元标签;将多个处理单元之一的预期完成时间与处理单元标签联系起来,生成一个累加标志;在累加调度表中包含累加标志。
10.在包含多个处理单元的多处理器计算机中,一种累加多个处理单元的多个输出的方法,该方法包括以下步骤(a)、给多个处理单元中的每一个分配一个任务,其中任务产生多个输出中的至少一个输出;(b)、对每个处理单元,将任务定义为一个对照时间的事件序列,事件序列有一个最终事件,最终事件产生多个输出中的至少一个;(c)、对每个处理单元,在最终事件的基础上定义预期完成时间。(d)、提供一个对应多个处理单元之一的处理单元标签;(e)、将多个处理单元之一的预期完成时间与处理单元标签联系起来,生成一个累加标志;(f)、对多个处理单元中的每一个,重复步骤(d)-(e),从而生成多个累加标志;(g)、将多个累加标志排列到累加调度表中,其中比第二累加标志的预期完成时间更早的第一累加标志在累加调度表中位于第二累加标志的前面;(h)、访问累加调度表来确定多个输出之一是否是可累加的,如果是,则对多个输出之一进行累加。
全文摘要
公开了一种在一个有多个处理单元(82)、(84)、(86)的计算机中,允许执行重叠的方法和系统。本方法和系统提供了一个以处理单元(82)、(84)、(86)的预期完成时间为基础的累加调度表。处理单元(82)、(84)、(86)的输出被按照累加调度表进行累加。累加调度表包括多个表示输出何时被累加的累加标志。
文档编号G06F7/48GK1140497SQ95191618
公开日1997年1月15日 申请日期1995年10月10日 优先权日1994年12月14日
发明者斯科特·爱德华·劳伊德, 王侠平(音译) 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1