CN1666179A - 对线性图形进行编程以用于流矢量计算的方法 - Google Patents
对线性图形进行编程以用于流矢量计算的方法 Download PDFInfo
- Publication number
- CN1666179A CN1666179A CN03815338.6A CN03815338A CN1666179A CN 1666179 A CN1666179 A CN 1666179A CN 03815338 A CN03815338 A CN 03815338A CN 1666179 A CN1666179 A CN 1666179A
- Authority
- CN
- China
- Prior art keywords
- instruction
- data
- node
- data value
- totalizer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/314—Parallel programming languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Image Generation (AREA)
Abstract
一种用于生成一个可用数据流图表示的计算的格式化描述的方法,以及用于执行所述计算的计算机。为数据流图的各个输入(502,522)生成源指令,为数据流图的各个节点(506、510、514等)生成计算指令,以及为数据流图的各个输出(520,540)生成汇点指令。用于一个节点的计算包括一个在该节点中执行的操作的描述符以及各个生成该节点的输入的指令的标识符。该格式化描述是一个顺序指令列表(A,B,C,......J,K,L,图2),该顺序指令列表包括源指令、计算指令和汇点指令。
Description
相关申请的交叉引用
本申请涉及与此申请在同一天申请的共同-未决专利申请,这些申请是名称为“INTERCONNECTION DEVICE WITH INTEGRATEDSTORAGE”并被标记为代理人卷号CML00101D的申请、名称为“MEMORY INTERFACE WITH FRACTIONAL ADDRESSING”并被标记为代理人卷号CML00102D的申请、名称为“RE-CONFIGURABLESTREAMING VECTOR PROCESSOR”并被标记为代理人卷号CML00107D的申请、名称为“SCHEDULER FOR STREAMINGVECTOR PROCESSOR”并被标记为代理人卷号CML00108D的申请,因此在这里结合它们作为参考。
发明领域
本发明主要涉及矢量处理领域。更特别地,本发明涉及一种对用于流型矢量计算的线性数据流图进行编程的方法以及一种用于实现该结果指令程序的计算机。
发明背景
许多为移动设备设计的新应用(多媒体、制图技术、图像压缩/解压缩,等等)涉及高百分比的流型矢量计算。在矢量处理中,对矢量或其它数据结构的每一元素重复一组操作是很常见的。这组操作通常是用数据流图来描述的。例如,可以用数据流图为程序循环的单个迭代来描述要在该数据结构的元素上执行的所有操作。在整个数据流的处理过程中(例如,像是在音频或视频处理中),可能有必要执行这些操作数次。进行这种处理的计算机便会从可以直接执行的数据流图的表示中受益。
如果该表示对于在具有不同并行处理能力的一系列计算机上的执行都是是足够有表现力的,那也是会很有益的。因此,该表示必须既是用于在顺序计算机上的线性执行的一系列计算,又是一个用于在并行计算机上并行执行的迭代之内以及之间的操作相关性的列表。
在传统(冯·诺依曼)计算机中,程序计数器(PC)是用来对程序中的指令进行排序的。程序流是由程序员显式地控制的。数据对象(变量)可由任何数目地指令改变,所以无法在不冒着使计算无效的风险的情况下改变指令的顺序。
在数据流程描述中,数据对象被描述为操作的结果,所以在数据就绪之前操作无法被执行。除了这个要求之外,执行操作的次序没有被规定。
可以将数据流图的操作表示为一系列来源于公知的计算机指令集的操作,这样的指令集是适合于Intel x86或Motorola M68K处理器的。但是结果程序很难以并行的方式来执行,因为不必要的相关性常常迫使操作串行化。出现这些不必要的相关性是因为所有操作结果在被随后的操作中使用之前,必须存储在一小组命名寄存器中。即使对于具有附加寄存器的计算机来说,这也会造成资源争用并导致串行化。使用命名寄存器传递结果,也遮掩了在一个迭代内的数据相关性与在迭代之间的数据相关性之间的差别。如果知道在迭代之间没有相关性,那么就可以同时地执行一个循环的所有迭代:并行度仅仅受到计算机上的资源量的限制。
因此,存在着一个未能满足的需要,即对于一种用于在避免使用命名寄存器的同时描述既表示操作相关性又表示数据相关性的数据流图的方法的需要。
附图的简要说明
在所附的权利要求中阐述了被认为是该发明的特性的新颖特征。在参考附图阅读时,通过参考下文中对于一个说明性的实施例的具体说明,将最佳地理解该发明本身、以及它最好的使用模式和进一步的目标和优点,其中:
图1是一个示例性的数据流图。
图2是一个根据本发明的顺序指令列表的表。
图3是一个根据本发明的顺序指令列表的表,说明了数据相关性。
图4是一个根据本发明的顺序指令列表的表,说明了次序相关性。
图5是根据本发明使用隧道同时执行一个计算的多重迭代的图形表示。
图6是一个根据本发明的用于执行由顺序指令列表所描述的计算的计算机的图形表示。
发明的具体说明
尽管本发明容许有许多不同形式的实施例,但在图中仅示出了一个或多个的具体实施例,并在这里将具体说明它们,要理解的是:当前的公开内容应被看作是该发明的原理的示例,而不是意图将本发明局限于示出并说明的具体实施例。在下面的说明中,在这些附图的几个视图中,是用相似的参考数字来描述相同、相似或对应的部分的。
本发明涉及一种用于通用计算机的计算机程序执行格式,其用于加速对流型矢量数据的迭代计算。该发明还涉及一种以规定的格式执行程序的计算机。该格式是一种顺序数据流处理器的指令集,其中显式地声明了所有的相关性以便于并行执行。
计算被方便地表示为数据流图。在图1中示出了一个示例性的数据流图。参考图1,数据流图100是由许多外部交互块A、B、C、D、K和L,以及多个计算节点E、F、G、H、I和J组成的。计算节点也被称作处理节点或功能节点。在该数据流图表示中,程序流是由计算节点和外部交互块之间的互连确定的。在该图中的并行路径的执行次序没有被规定。在图1中,来自一个数据输入流的第一值在外部交互块A中加载,而来自同一流的第二值在块B中加载。这两个操作的次序是很重要的,所以在该图中规定了一个如虚箭头102所示次序相关性。相似地,来自第二输入流的连续数据值在外部交互块C和D中加载,顺序是由虚箭头104指示的。在计算节点E中,将在A和B中加载的值相乘(由助记符号‘vmul’指示的)。作为操作数输入到该乘法中的值是带符号的16位值,如由在节点E的输入上的‘s16’所指示的那样。来自节点E的输出被相似地指示为有带符号的32位值(‘s32’)。在计算节点F中,将在B和D中加载的值相乘(由助记符号‘vmul’指示的)。作为操作数输入到该乘法的值是带符号的16位值,如在将块A和B连接到节点F的弧线上的‘s16’指示的那样。来自节点F的输出被相似地指示为有带符号的32位值(‘s32’)。计算节点G、F、I和J相似地操作,其中助记符号‘vsub’和‘vadd’分别表示减法和加法。在外部交互块K中,将在节点I执行的减法的结果累加到命名累加器a0中。在外部交互块L中,将在节点J中执行的减法的结果累加到命名累加器a0中。
如果第一输入流是一个复矢量x的交错的实部和虚部,而第二输入流是一个复矢量y的交错的实部和虚部,那么该累加器包含该矢量点积x.y的实部和虚部的和。
图2示出了图1中所示的数据流图的线性图表示。各指令是由指令标识符表示的。在这个实例中,使用了来自图1的对应的节点标识符,但是,这不是必需的。指令A、B、C和D指示矢量元素的加载。指令的线性次序表示在该数据流图表示中的次序相关性。乘法指令E包括指示该操作是一个乘法的助记符号‘vmul’,以及操作数A和C。这指示用于该乘法操作的操作数是操作A和C(矢量加载操作)的结果。要注意,因为次序相关性是由指令的线性次序指示的,所以,矢量加载A的结果是该输入矢量中的第一数据值,而矢量加载B的结果是该输入矢量中的第二数据值。在该数据流图的下一个迭代中,这些将分别是第三和第四值。
在本发明的一个实施例中,计算指令E被写作:
E:vmul A,C
这个指令包括指令的标识符(‘E’),要执行的操作的描述符(‘vmul’)以及生成用于该计算的操作数的指令的描述符(‘A’和‘C’)。
在本发明的一个进一步的实施例中,计算指令E被写作:
E:vmul.s32 A,C
该指令包括附加描述符‘.32’,指示该操作的结果是带符号的32位值。例如,其它描述符包括‘s8’、‘s16’、‘s24’、‘u8’以及‘u16’。
本发明的格式使用对于前一个指令、而不是对于命名寄存器的引用来指示传递在一个迭代内的操作结果(数据相关性)的传递。该结果的类型和大小以及该结果是带符号的还是无符号的(结果的符号性)是用生成指令来指示的。通过对一组叫做累加器的命名寄存器进行操作的指令,以及对一组叫做隧道的无名FIFO(先进先出)寄存器进行操作的指令,来显式地指示在迭代之间传递的结果。
参考图2,指令K将指令I的结果累加到一个叫做‘a0’的累加器中。这个命名累加器被用于每一个迭代中,并且在该迭代的开始,该累加器会保存来自前一个迭代的值。在指令L中再次使用累加器a0。指令K和L的线性次序指示在来自操作J的结果之前对来自指令I的结果进行累加。
因此,在本发明的程序格式中,每一个外部交互作用节点和每一个计算节点都是用指令来表示的。该指令包括一个指令标识符、一个指令助记符号以及一个或更多的操作数。就计算指令来说,操作数是生成该计算的输入的指令的标识符,就外部交互作用来说,操作数是输入数据的目的地以及输出数据的源指令和目的地。
由于操作数引用生成该数据的指令而不是一个命名存储单元,所以数据相关性是显式的。这在图3中举例说明了。参考图3,示出了该线性图的数据相关性。箭头从一个指令指向生成用于那个指令的输入的前一个指令。例如,指令H取决于由指令B和C生成的数据。因此以这种格式表示了数据的相关性。操作数被指示为对指令的结果的引用,因此消除了有关命名寄存器的不必要的争用。
由导致在状态上发生改变的指令的执行次序引起的相关性,叫做次序相关性,是用在该指令列表中的这些非独立指令的串行次序来指示的。图4示出了该计算的次序相关性。虚箭头从待执行的第一指令指向后续的指令。次序相关性是与数据相关性无关地规定的,因此只要保持状态改变的次序就会支持多重迭代的同时执行。
因此将该计算被表示为一个顺序指令列表,该顺序指令列表包括一个用于数据流图的各个输入的源指令,一个用于数据流图的各个节点的计算指令以及一个用于数流图的各个输出的汇点指令。每一个指令包括一个指令标识符,而用于节点的计算指令包括在该节点中执行的操作的描述符以及生成该节点的输入的每一条指令的标识符。计算指令包括算术、乘法以及逻辑指令。源指令包括从输入数据流加载数据的指令,从一个存储器加载一个纯量值的指令,从一个累加器加载一个值的指令,以及从一个隧道中检索一个值的指令。汇点指令包括对一个累加器进行加、减或存储到累加器的指令,输出到一个输出数据流的指令或传递给一个隧道的指令。
在本发明的一个实施例中,隧道被用于在生成自前一个迭代保存得到的结果的同时,在当前迭代中保存来自一个操作的结果。隧道指示了在一个图中的连续迭代之间的数据流,在那里,流的源和汇点是在该图中的同一点。由于可以将来自一个迭代的数据并行地传递给下一个迭代,所以这使得多重迭代可以被同时执行。上述累加器不能这么做,这是因为它们的源和汇点位于在该数据流图中的不同点。
在图5中示出了隧道的一个示例性的使用。在这个实例中,一个计算的两个连续的迭代被并行地执行,其中通过两个隧道将数据从一个迭代传递给下一个迭代。参考图5,第一迭代开始于在外部交互块502中被加载到矢量v1中的数据元素。将该数据元素传递给第一隧道504。将该数据值存储在该隧道中,并生成以前存储的值。以前存储的值在节点506中被加到加载的数据元素上,而且还被传递给第二隧道508。在节点510中,将来自隧道508的以前存储的值加到加法506的结果上。在节点514中,用来自加法510的结果乘以来自块512的常数值。在节点518中,以存储在块516中的常数(16)为量,将来自乘法514的结果右移。在外部交互块520中,存储来自右移操作的结果以输出矢量v0。
下一个迭代始于在外部交互块522中被加载到矢量v1中的下一个数据元素。将数据元素传递给第一隧道524。将该数据值存储在该隧道中并生成以前存储的值。该以前存储的值是由前一个迭代在该隧道中存储的值。用这种方法,在迭代之间传递数据。以前存储的值在节点526中被加到加载的数据元素上,并且还被传递给第二隧道528。该以前存储的值是由前一个迭代在该隧道中存储的值。在节点530中将来自隧道528的以前存储的值加到该加法526的结果上。在节点534中,用来自加法530的结果乘以来自块532的常数值。在节点538中,以存储在块536中的常数(16)为量,将来自乘法534的结果右移。在外部交互块540中,存储来自右移操作的结果以输出矢量v0。
如果仅并行执行两个迭代,那么第三个迭代在块502开始,而从隧道504和508检索的值是在第二个迭代中存储的值。因此隧道的使用也使得数据能够在并行执行的迭代之间传递。
图5中的数据流图执行了数据值矢量的三点移动平均。
可以根据该顺序指令列表生成一个计算机指令程序。该生成可以包括调度指令以有效使用计算机的硬件资源。本发明的格式允许为在顺序计算机上执行的线性执行或在并行计算机上的并行执行有效地调度计算。在图6中示出了一个由根据顺序指令列表生成的指令程序控制的计算机的实施例。参考图6,计算机600包括多个计算单元602和一个互连单元604。在该图中,计算单元是一个乘法器606、一个加法器(算术单元)608、一个逻辑单元610和一个移位器612。可以使用其它计算单元,包括相同类型的多个单元。互连单元604是用来将计算单元的输出连接到其它计算单元的输入上。存在多种形式的互连单元604,包括可重配置的开关、数据存储器或寄存器堆。也可以经由互连单元604将一个累加器614连在计算单元602上。通过数据矢量输入单元622将要处理的数据传递给互连单元604,并通过数据矢量输出单元624从互连单元中检索处理后的数据。通常,使用多个数据矢量输入和输出单元。该计算机是由存储在序列发生器620的程序存储器618中的一个指令程序控制的。该指令控制数据矢量输入和输出单元622和624、互连单元604、累加器614以及计算单元602。
如在此实施例中所述,本发明是使用用于执行采用上述格式的顺序指令列表的编程处理器来实现的。但是,本领域的普通技术人员会理解,可以在不偏离本发明的情况下以多种不同的变化方式来实现上述处理。这样的变化是预料之中的,并被认为是等效的。
虽然已经结合具体实施例描述了该发明,但显然,根据以上说明,许多替换物、修改、变更以及变化对于本领域的普通技术人员来说都会是显而易见的。因此,意味着本发明应当包含所有这样的落在所附权利要求的范围之内的替换、修改、变更以及变化。
Claims (22)
1.一种用于生成可用数据流图表示的计算的格式化描述的方法,该方法包括:
生成用于该数据流图的每一输入的源指令;
生成用于该数据流图的每一节点的计算指令,该用于一个节点的计算指令包括在该节点中执行的操作的描述符以及生成该节点的输入的每一指令的描述符;
生成用于该数据流图的每一输出的汇点指令;以及
生成包括源指令、计算指令和汇点指令的顺序指令列表。
2.根据权利要求1的方法,其中,该计算指令进一步包括描述符,该描述符有关在该节点中执行的操作的结果的类型、大小、符号性中的至少一个。
3.根据权利要求1的方法,其中该格式化描述进一步包括用于该顺序指令列表的每一指令的指令标识符,并且在其中,生成该节点的输入的每一指令的标识符是生成该节点的输入的顺序指令列表中的指令的指令标识符。
4.根据权利要求1的方法,其中该源指令是从输入数据矢量中加载数据值的指令、从累加器中加载数据值的指令以及从隧道中加载数据值的指令中的一个。
5.根据权利要求1的方法,其中,该汇点指令是将数据值存储到输出数据矢量中的指令和将数据值存储到隧道中的指令中的一个。
6.根据权利要求1的方法,其中该汇点指令是将数据值放到累加器中的指令、将数据值加到累加器中、从累加器中减去数据值的指令、如果一个数据值比在累加器中的值大就存储该数据值的指令以及如果一个数据值比在累加器中的值小就存储该数据值的指令中的一个。
7.根据权利要求1的方法,其中,改变该数据流图的状态的指令的次序是用该顺序指令列表中的指令的次序来确定的。
8.根据权利要求1的方法,其中计算指令包括算术指令、乘法指令、移位指令以及逻辑指令中的一个。
9.根据权利要求1的方法,其中一个节点有不超过三个的输入。
10.一种计算机,包括:
若干计算单元;
用于互连这些计算单元的互连单元;以及
程序存储器;
其中该计算机是由存储在该程序存储器中的指令程序控制的,以实现可用数据流图表示的计算,并且其中,该指令程序是根据顺序指令列表生成的,该顺序指令列表包括:
用于该数据流图的每一输入的源指令;
用于该数据流图的每一节点的计算指令,该用于一个节点的计算指令包括在该节点的操作的描述符以及生成该节点的输入的每一指令的描述符;以及
用于该数据流图的每一输出的汇点指令。
11.根据权利要求10的计算机,其中该计算指令是可以在多个处理单元中的一个计算单元上执行的。
12.根据权利要求10的计算机,其中该计算机的互连单元是由存储在该程序存储器中的指令程序来控制的。
13.根据权利要求10的计算机,其中该计算机的互连单元包括数据存储器、寄存器堆以及可重配置的开关中的一个。
14.根据权利要求10的计算机,其中,该计算指令进一步包括描述符,该描述符有关在该节点中执行的操作的结果的类型、大小以及符号性中的至少一个。
15.根据权利要求10的计算机,其中该格式化描述进一步包括用于该顺序指令列表的各个指令的指令标识符,并且在其中,生成该节点的输入的每一指令的至少一个标识符,是生成该节点的输入的顺序指令列表中的指令的指令标识符。
16.根据权利要求10的计算机,进一步包括下面三种组件中的至少一个:
数据矢量输入单元;
可作为数据隧道操作的多个寄存器;以及
累加器;
其中该源指令是从该数据矢量输入单元加载数据值的指令、从该累加器加载数据值的指令以及从该数据隧道加载数据值的指令中的一个。
17.根据权利要求16的计算机,其中,该汇点指令是将一个数据值存储到该数据隧道的指令。
18.根据权利要求10的计算机,进一步包括至少一个数据矢量输出单元,其中,该汇点指令是将数据值存储到该数据矢量输出单元的指令。
19.根据权利要求10的计算机,进一步包括累加器,其中该汇点指令是将数据值放到该累加器中的指令、将数据值加到该累加器中的指令、从该累加器中减去数据值的指令、如果一个数据值比在该累加器中的值大就存储该数据值的指令以及如果一个数据值比在该累加器中的值小就存储该数据值的指令中的一个。
20.根据权利要求10的计算机,其中,改变该数据流图的状态的指令的次序是用该顺序指令列表中的这些指令的次序来确定的。
21.根据权利要求10的计算机,其中该计算单元包括算术单元、乘法器以及逻辑单元中的一个,其中计算指令包括算术指令、乘法指令、移位指令以及逻辑指令中的一个。
22.根据权利要求10的计算机,其中该计算单元可被配置用于并行处理多条指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/184,743 | 2002-06-28 | ||
US10/184,743 US6934938B2 (en) | 2002-06-28 | 2002-06-28 | Method of programming linear graphs for streaming vector computation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1666179A true CN1666179A (zh) | 2005-09-07 |
Family
ID=29779439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN03815338.6A Pending CN1666179A (zh) | 2002-06-28 | 2003-05-20 | 对线性图形进行编程以用于流矢量计算的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6934938B2 (zh) |
EP (1) | EP1535151A2 (zh) |
CN (1) | CN1666179A (zh) |
AU (1) | AU2003233624A1 (zh) |
WO (1) | WO2004003681A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115497273A (zh) * | 2022-04-22 | 2022-12-20 | 北京临近空间飞行器系统工程研究所 | 装订描述方法和基于装订参数链表的无线指令控制方法 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7340715B2 (en) * | 2004-03-10 | 2008-03-04 | Hanbai Liu | Visual programming method and system thereof |
US7464375B2 (en) * | 2004-06-24 | 2008-12-09 | International Business Machines Corporation | Method for flattening hierarchically structured flows |
US20060195732A1 (en) * | 2005-02-11 | 2006-08-31 | Joerg Deutschle | Method and system for executing test cases for a device under verification |
US7305649B2 (en) * | 2005-04-20 | 2007-12-04 | Motorola, Inc. | Automatic generation of a streaming processor circuit |
US20060265485A1 (en) * | 2005-05-17 | 2006-11-23 | Chai Sek M | Method and apparatus for controlling data transfer in a processing system |
US7603492B2 (en) * | 2005-09-20 | 2009-10-13 | Motorola, Inc. | Automatic generation of streaming data interface circuit |
US20080120497A1 (en) * | 2006-11-20 | 2008-05-22 | Motorola, Inc. | Automated configuration of a processing system using decoupled memory access and computation |
US20080209405A1 (en) * | 2007-02-28 | 2008-08-28 | Microsoft Corporation | Distributed debugging for a visual programming language |
US20090064092A1 (en) * | 2007-08-29 | 2009-03-05 | Microsoft Corporation | Visual programming language optimization |
US7945768B2 (en) | 2008-06-05 | 2011-05-17 | Motorola Mobility, Inc. | Method and apparatus for nested instruction looping using implicit predicates |
US9026768B2 (en) * | 2009-09-14 | 2015-05-05 | AEMEA Inc. | Executing machine instructions comprising input/output pairs of execution nodes |
US9152779B2 (en) | 2011-01-16 | 2015-10-06 | Michael Stephen Fiske | Protecting codes, keys and user credentials with identity and patterns |
US10268843B2 (en) | 2011-12-06 | 2019-04-23 | AEMEA Inc. | Non-deterministic secure active element machine |
US8464190B2 (en) | 2011-02-17 | 2013-06-11 | Maxeler Technologies Ltd. | Method of, and apparatus for, stream scheduling in parallel pipelined hardware |
US10169014B2 (en) | 2014-12-19 | 2019-01-01 | International Business Machines Corporation | Compiler method for generating instructions for vector operations in a multi-endian instruction set |
US9880821B2 (en) * | 2015-08-17 | 2018-01-30 | International Business Machines Corporation | Compiler optimizations for vector operations that are reformatting-resistant |
US10496383B2 (en) * | 2017-12-20 | 2019-12-03 | Intel Corporation | Methods and apparatus to convert a non-series-parallel control flow graph to data flow |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3718912A (en) * | 1970-12-22 | 1973-02-27 | Ibm | Instruction execution unit |
US5821934A (en) * | 1986-04-14 | 1998-10-13 | National Instruments Corporation | Method and apparatus for providing stricter data type capabilities in a graphical data flow diagram |
US5475851A (en) * | 1986-04-14 | 1995-12-12 | National Instruments Corporation | Method and apparatus for improved local and global variable capabilities in a graphical data flow program |
US5481740A (en) * | 1986-04-14 | 1996-01-02 | National Instruments Corporation | Method and apparatus for providing autoprobe features in a graphical data flow diagram |
US5734863A (en) * | 1986-04-14 | 1998-03-31 | National Instruments Corporation | Method and apparatus for providing improved type compatibility and data structure organization in a graphical data flow diagram |
US5966528A (en) * | 1990-11-13 | 1999-10-12 | International Business Machines Corporation | SIMD/MIMD array processor with vector processing |
AU6774894A (en) * | 1993-04-26 | 1994-11-21 | Comdisco Systems, Inc. | Method for scheduling synchronous data flow graphs |
US6064819A (en) * | 1993-12-08 | 2000-05-16 | Imec | Control flow and memory management optimization |
GB2317469B (en) * | 1996-09-23 | 2001-02-21 | Advanced Risc Mach Ltd | Data processing system register control |
GB2317464A (en) * | 1996-09-23 | 1998-03-25 | Advanced Risc Mach Ltd | Register addressing in a data processing apparatus |
GB2317465B (en) * | 1996-09-23 | 2000-11-15 | Advanced Risc Mach Ltd | Data processing apparatus registers. |
US5999736A (en) * | 1997-05-09 | 1999-12-07 | Intel Corporation | Optimizing code by exploiting speculation and predication with a cost-benefit data flow analysis based on path profiling information |
US6128775A (en) * | 1998-06-16 | 2000-10-03 | Silicon Graphics, Incorporated | Method, system, and computer program product for performing register promotion via load and store placement optimization within an optimizing compiler |
US6745160B1 (en) * | 1999-10-08 | 2004-06-01 | Nec Corporation | Verification of scheduling in the presence of loops using uninterpreted symbolic simulation |
US6588009B1 (en) * | 1999-11-29 | 2003-07-01 | Adelante Technologies Nv | Method and apparatus for compiling source code using symbolic execution |
US6732354B2 (en) * | 2002-04-23 | 2004-05-04 | Quicksilver Technology, Inc. | Method, system and software for programming reconfigurable hardware |
-
2002
- 2002-06-28 US US10/184,743 patent/US6934938B2/en not_active Expired - Fee Related
-
2003
- 2003-05-20 WO PCT/US2003/016018 patent/WO2004003681A2/en not_active Application Discontinuation
- 2003-05-20 AU AU2003233624A patent/AU2003233624A1/en not_active Abandoned
- 2003-05-20 CN CN03815338.6A patent/CN1666179A/zh active Pending
- 2003-05-20 EP EP03729061A patent/EP1535151A2/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115497273A (zh) * | 2022-04-22 | 2022-12-20 | 北京临近空间飞行器系统工程研究所 | 装订描述方法和基于装订参数链表的无线指令控制方法 |
CN115497273B (zh) * | 2022-04-22 | 2024-01-09 | 北京临近空间飞行器系统工程研究所 | 装订描述方法和基于装订参数链表的无线指令控制方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1535151A2 (en) | 2005-06-01 |
AU2003233624A8 (en) | 2004-01-19 |
US20040003376A1 (en) | 2004-01-01 |
WO2004003681A2 (en) | 2004-01-08 |
AU2003233624A1 (en) | 2004-01-19 |
WO2004003681A3 (en) | 2004-04-15 |
US6934938B2 (en) | 2005-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1666179A (zh) | 对线性图形进行编程以用于流矢量计算的方法 | |
JP6821002B2 (ja) | 処理装置と処理方法 | |
Bertin et al. | Programmable active memories: a performance assessment | |
CN1140497A (zh) | 在计算设备中累加数值的方法和系统 | |
Chen et al. | CMSA: a heterogeneous CPU/GPU computing system for multiple similar RNA/DNA sequence alignment | |
US10579338B2 (en) | Apparatus and method for processing input operand values | |
US6295597B1 (en) | Apparatus and method for improved vector processing to support extended-length integer arithmetic | |
Rios et al. | Exploring parallel multi-GPU local search strategies in a metaheuristic framework | |
US11119733B2 (en) | Execution unit configured to evaluate functions using at least one multiplier circuit | |
US20200226201A1 (en) | Methods and Apparatus for Constructing Digital Circuits for Performing Matrix Operations | |
Kolte et al. | A fast median filter using AltiVec | |
WO2021250392A1 (en) | Mixed-element-size instruction | |
Mayannavar et al. | Hardware implementation of an activation function for Neural Network Processor | |
EP1936492A1 (en) | SIMD processor with reduction unit | |
Mariano et al. | A vectorized, cache efficient LLL implementation | |
US20060248311A1 (en) | Method and apparatus of dsp resource allocation and use | |
JP2004334297A (ja) | 並列演算処理装置及び並列演算処理方法 | |
Polok et al. | Fast radix sort for sparse linear algebra on GPU | |
Damaj et al. | Performance analysis of linear algebraic functions using reconfigurable computing | |
Kovac et al. | Improving ODE integration on graphics processing units by reducing thread divergence | |
Valero-Lara et al. | A Portable and Heterogeneous LU Factorization on IRIS | |
US20230376447A1 (en) | Parallel processing architecture with dual load buffers | |
Abdoalnasir et al. | An efficient FPGA implementation of the big bang-big crunch optimization algorithm | |
Prebeck et al. | A Scalable, Configurable and Programmable Vector Dot-Product Unit for Edge AI | |
WO2008077803A1 (en) | Simd processor with reduction unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20050907 |