CN1484786A - 在单指令多数据通路结构中的非整数倍大小阵列循环处理 - Google Patents
在单指令多数据通路结构中的非整数倍大小阵列循环处理 Download PDFInfo
- Publication number
- CN1484786A CN1484786A CNA018216390A CN01821639A CN1484786A CN 1484786 A CN1484786 A CN 1484786A CN A018216390 A CNA018216390 A CN A018216390A CN 01821639 A CN01821639 A CN 01821639A CN 1484786 A CN1484786 A CN 1484786A
- Authority
- CN
- China
- Prior art keywords
- data path
- sum
- array
- parallel
- circulation pass
- 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
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000004087 circulation Effects 0.000 claims description 79
- 238000011112 process operation Methods 0.000 claims description 13
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 5
- 230000001351 cycling effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000003446 ligand Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
- G06F9/3455—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
说明了一种在循环处理操作期间,控制SIMD处理器中的处理器数据通路的启动的方法。所述方法所使用的信息包括数据项和存储器(20)之间的分配,阵列的大小和在循环处理操作中数据通路的剩余并行遍数的数目。也提供一个计算机指令(12),其中包括循环处理指令,用于在处理数据项阵列期间指定多个数据通路之一的启动。该指令包括一个指定剩余并行循环遍数的数目以处理所述阵列的计数字段和一个指定串行循环遍数的数目以处理所述阵列的计数字段。可使用不同的指令来处理并行数据通路的遍数的不同分配。所述指令也使用关于数据通路总数(18)的信息。
Description
技术领域
本发明涉及在单指令多数据通路(single instruction multiple datapath,SIMD)处理器结构中的一个数据项阵列(an array of data items)上的循环处理操作。
背景技术
并行处理是处理数据项阵列的有效方法。SIMD处理器为一种并行处理器阵列结构,其中一个单指令可控制多个数据通路。每一数据通路在一给定时间内只能处理一个数据项。举一个简单的例子,在一个具有四个数据通路的SIMD处理器中,在两遍循环操作中的四个数据通路的每一个中可处理一个八数据项阵列中的数据项。数据通路和数据项之间的分配是可变的,但是一种方法为,在第一遍(pass),第一数据通路处理阵列的第一数据项,第二数据通路处理阵列的第二数据项,第三数据通路处理阵列的第三数据项,第四数据通路处理阵列的第四数据项。在第二遍,第一数据通路处理第五数据项,第二数据通路处理第六数据项,第三数据通路处理第七数据项,第四数据通路处理第八数据项。
当阵列中的数据项数目不是数据通路数目的整数倍时就会有问题产生。例如,通过修改上述的简单例子,从而得到四个数据通路和一个具有七个资料项的阵列,则在第二遍期间,第四数据通路没有阵列第八项的元素可处理。其结果是,除非在第二遍期间禁用第四数据通路,否则第四数据通路可能错误地改写存储器中其他的数据结构。
一种避免这种错误地改写的方法是强制要求阵列的大小,也就是要求数据项阵列中包含的数据项数目为数据通路数目的整数倍。这种方法是假设程序员事先控制好数据项如何在阵列中分配,可是他们并不是总能这样做。
典型地,数据通路SIMD处理器中的每一数据通路都有一个相关的处理器启动位来控制数据通路启动或禁用。例如当一个数据通路将以别的方式超出阵列时,可允许禁用该数据通路。
发明内容
总的来说,本发明的特点在于提供一种方法,用来控制是否启动正在运算阵列中的数据元素的SIMD处理器中的多个处理器数据通路之一,该方法包括基于关于SIMD处理器和阵列的参数以及阵列的数据项相对的数据通路的处理状态的信息来决定是否启动该数据通路。
在优选实施例中,信息包括数据项和存储器之间的分配,由数据通路执行循环处理操作的并行循环遍数的总数、阵列的大小、数据通路的数目(也就是SIMD处理器中有多少数据通路)。处理状态是循环处理操作中数据通路的剩余并行遍数循环遍数的数目。
数据项和存储器之间的分配可能是单一间隔(unity-stride),相邻(contiguous)或条状间隔(striped-stride)。
在另一方面,本发明的特点是一个计算机指令包括一个循环处理指令,该循环处理指令在处理数据项阵列期间,能指定多个处理器数据通路之一的启动。
在优选实施例中,该指令包括能指定剩余并行循环遍数的数目以处理阵列的并行计数字段和能指定串行循环遍数数目以处理阵列的串行计数字段。
在另一方面,本发明的特点是提供一个处理器,包括寄存器文件(registerfile)和与该寄存器文件连接的算术逻辑单元,以及一个程序处理存储器,用于存储处理数据阵列期间使处理器启动多个处理器数据通路之一的循环处理指令。
本发明实施例的各个方面可具有下列一个或更多的优点。
不必事先了解阵列的数据项数目就可以禁用数据通路。
本方法可容易地扩展至多种存储器分配结构。
因为由也可节省寄存器空间的简单且功能强大的单指令来指定所需许多操作,所述操作用于决定是否启动和禁用数据通路,所以循环处理指令可节省指令存储器。循环处理指令挽救了程序员,使其不必强制使数据项阵列中数据项的数目为数据通路数目的整数倍。
通过参考下列详细说明、附图和权利要求,本发明其它特点和优点将会更加清楚。
附图说明
图1是单指令多数据通路(SIMD)处理器的方块图。
图2是循环处理期间,具有4个数据通路的SIMD处理器以存储器的单一间隔分配来处理阵列中的30个数据项的表格。
图3是循环处理指令的语法。
图4是循环处理期间,具有4个数据通路的SIMD处理器以存储器的相邻间隔分配来处理阵列中的30个数据项的表格。
图5是含循环分支的循环处理指令的语法。
图6是循环处理期间控制SIMD处理器的数据通路启动的处理的流程图。
不同附图中的相同附图标记表示相同元件。
具体实施方式
参考图1,单指令多数据通路(SIMD)处理器10包括指令高速缓冲存储器12,控制逻辑14,串行数据通路,和标注为18a,18b,18c,...,18n的多个并行数据通路。并行数据通路18写入存储器20。每一数据通路18有与其相连的处理器启动(PE)位22。具体地说,并行数据通路18a连接到处理器PE位22a,并行数据通路18b连接到处理器PE位22b,以下类推。当启动PE位时,启动所连接的并行数据通路,并且并行数据通路写入数据项。例如,如果启动PE位22a时,可由并行数据通路18a写入数据项;如果启动PE位22b时,可由并行数据通路18b写入数据项。如果启动PE位22n时,并行数据通路18n写入数据项。当禁用PE位时,其所连接的并行数据通路禁用,并且并行数据通路不能写入数据项。
在运算时,控制逻辑14从指令高速缓冲存储器12获得指令。指令被馈送给串行数据通路16,该串行数据通路16提供该指令给并行数据通路18。除非某一特定数据通路的处理器启动位被禁用,否则每一数据通路18被同时读取和写入。
在数据项阵列的循环处理操作期间,可能需要禁用一个或更多数据通路18,以避免未使用到的数据通路超出阵列末端和错误地改写存储器中另一数据结构。在循环处理操作期间,基于SIMD处理器和阵列的参数以及阵列中数据项相对的数据通路的处理状态的信息来快速地决定数据通路的启动与禁用,而不需要由人工来决定。此信息包括:(1)循环处理操作时发生的并行循环遍数总数,(2)在串行数据通路设计中所执行的循环遍数的数目(这表示阵列的大小),(3)在循环处理操作时剩余并行遍数的数目,(4)用于在数据通路间分配阵列的数据项的存储器分配,和(5)并行数据通路的数目。提供了基于该信息在循环处理期间启动或禁用一个数据通路(由此启动或禁用该数据通路)的处理器启动位的指令。
有许多种方法来分配用于SIMD处理器中的数据项阵列的处理的存储器。最简单的存储器分配方法是数据通路数目(NDP)的每一个占用该循环的第NDP次迭代。这种存储器分配类型称为“单一间隔”。
参考图2,例如,表格图解表示循环处理期间,具有4个标号为DP0、DP1、DP2和DP3的数据通路的SIMD处理器以图示存储器分配的单一间隔分别处理阵列中标号为0到29的30个数据项。为了处理此阵列,执行8遍并行循环。在第1遍并行循环中,由数据通路0、1、2和3来处理数据项0、1、2和3。在第2遍并行循环中,由数据通路0、1、2和3来处理数据项4、5、6和7。在最后一遍并行循环中,也就是第8遍并行循环,由数据通路0和1来处理数据项28和29,而数据通路2和3必须禁用以免超出阵列和重写存储器中存储的其它数据。
图2所示表格说明了为何这种存储器分配类型被称为单一间隔。在给定任一遍并行循环中的每一并行数据通路正在处理的数据项之间的“间隔“为1。也就是说在一遍并行循环中正由并行数据通路处理的任意两个数据项差值为1(或单一)。
单一间隔分配中,在处理多个数据项时,提出了一种模型。具体地说,该模型图解表示只有在最后一遍并行循环中的两个数据通路需要被禁用(很明显地,图2所示的模型是简单的;当数据通路的数目和阵列大小增加时,模型变得较复杂但仍可及时识别)。从该模型可知在串行计算机中所执行的循环遍数总数(这表示阵列的大小),剩余并行循环遍数的数目,和数据通路的数目,并提供了一条指令来决定在特定的某遍并行循环期间,是否禁用特定的数据通路。
参考图3,循环处理器启动指令30包括表示在循环处理操作期间剩余并行循环遍数的数目的字段C,和表示在串行计算机结构中对阵列中全部数据项进行业务处理所需的遍数总数目的字段L。指令30包括存储器分配指定x。在图2所示的例子中,存储器分配指定x将参考单一间隔存储器分配,即由于共有30个数据项在串行计算机结构中要求30遍循环,所以U和L=30。PE[i,j]表示在第j遍并行循环期间,数据通路i的处理器启动位的状态。
参考图2所举的单一间隔的例子,串行循环遍数的总数除以数据通路的数目,并把所得值上舍入为下一整数,由此来决定并行循环遍数的总数。因而,在并行循环遍数的总数等于30/4的例子中,所得值上舍入为下一整数8。
如果并行循环遍数的总数减去剩余并行循环遍数的数目,全部由数据通路的总数加上数据通路索引来相乘,所得到的数比串行循环遍数总数还少时,则利用由单一间隔例子中表示的模型得到的经验以及C和L的值,启动与表示数据通路的数据通路索引i和数据项j相关联的处理器启动位,即PE[i,j]。
可替换的是,SIMD处理器10可使用相邻间隔存储器分配。参考图4,示出了具有4个数据通路(DP0-DP3)和实现相邻间隔存储器分配的SIMD处理器10如何处理阵列中30个数据项(0-29)的表格。为了处理此阵列中的全部30个数据项,执行8遍并行。在第1遍并行循环中,分别由数据通路0、1、2和3来处理数据项0、8、16和24。在第2遍并行循环中,由数据通路0、1、2和3来处理数据项1、9、17和25。继续该处理,即产生一个模型。在该特定例子中,在第7遍和第8遍并行循环中,禁用数据通路3以免改写超出阵列中30个数据项的末端的存储器。在每一遍启动其它所有数据通路。
当邻近数据项被用于处理某一特定的数据项时,相邻间隔存储器分配很有用。比如,如果数据通路0正在处理第5遍并行循环中的数据项4,则其已具有来自第4遍并行循环的数据项3,并将使用下一遍并行循环中的数据项5。因为每一数据通路正在访问阵列的相邻区域,所以这种存储器分配被称作相邻间隔分配。
在相邻间隔存储器分配中,提出一个模型,表示在这个例子的最后二遍并行循环的执行期间,需要禁用一个单数据通路。再参考图3,存储器分配指定x=CONT表示相邻间隔存储器分配的结构。参考图4所述例子,串行循环遍数的总数除以数据通路的数目,并把所得值上舍入为下一整数,由此来决定处理数据项阵列所需的并行循环遍数的总数。因而,在并行循环遍数的总数等于30/4的例子中,所得值上舍入为8。
如果并行循环遍数的总数乘以数据通路索引加上并行循环遍数的总数减去剩余并行循环遍数的数目比串行循环遍数的总数少,则根据相邻间隔存储器分配模型以及C值和L值,启动与数据通路索引i和数据项j相关联的处理器启动位,即PE[i,j]。
交叉存取式存储器允许一次执行多个存储器存取。交叉存取式存储器的内存条的数目M一般而言为2的次方,因为这允许使用最低地址位来完成内存条的选取。如果读写指令的间隔也是2的次方,因为所有的地址都试图要存取相同内存条,则存储器交叉存取就没有任何帮助。例如,M=4而且间隔也为4,而读或写的地址将是0、4、8等等,则它们全部必须由内存条0来处理;而内存条1、2、3将是空闲的。
为了避免所有的数据项由相同的内存条处理,间隔的值可以被选成奇数。因为任何奇数均与2的任意次方互质,所以如果M是2的次方,则间隔选为奇数可均匀地扩展M个内存条中的地址。以30项的阵列为例,采用相邻分配时,间隔为9而非8。数据通路0将对应阵列的0到8项,数据通路1将与阵列的9到17项关联,数据通路2将对应阵列的18到26项,数据通路3将被分配到阵列的26到29项。数据通路3对于最后6项,也就是阵列的30到35项将被关闭。这种存储器分配被称作条状间隔存储器分配。
在条状间隔存储器分配结构中,由串行数据通路的总数除以数据通路的数目,并把所得值上舍入至下一个奇数,来决定处理数据项阵列所需的并行循环遍数数目。
再参考图3,存储器指定x=S表示条状间隔分配。如果并行循环遍数的总数乘以数据通路索引加上并行循环遍数的总数减去剩余并行循环遍数的数目比串行循环遍数的总数少,则启动与数据通路i和数据项j相关联的处理器启动位,即PE[i,j]。
参考图5,示出了结合循环分支指令70的循环处理器启动指令。该被结合的指令70,依据存储器分配结构、并行循环遍数的总数和剩余并行循环遍数的数目,来设定先前所述的处理器启动位和检测剩余并行循环遍数的数目是否为零。如果剩余并行循环遍数的数目大于零,则执行分支(即“go to PC+displacement”),以执行下一遍循环操作。否则,退出循环,且处理继续。另一例子中,减少剩余并行循环遍数的数目且继续循环处理操作。
参考图6,在循环处理期间,控制SIMD处理器中数据通路的启动的处理100判断(步骤102)用于对阵列中全部数据项进行业务处理的串行循环遍数的数目。处理判断(步骤104)用于对阵列进行业务处理的剩余并行循环遍数的数目。处理然后测试(步骤106)存储器分配结构是否为单一间隔分配。如果存储器分配是单一间隔分配,且如果并行循环遍数的总数减去剩余并行循环遍数的数目,全部乘以数据通路的总数加上数据通路索引比串行循环遍数的总数少时,则启动正对数据项进行业务处理的数据通路的处理器启动位(步骤108)。
如果存储器分配不是单一间隔,则处理测试(步骤110)存储器分配结构是否为相邻间隔分配。如果存储器分配为相邻间隔分配,且如果并行循环遍数的总数乘以数据通路索引加上并行循环遍数的总数减去剩余并行循环遍教的数目比串行循环遍数的总数少时,则启动正对数据项进行业务处理的数据通路的处理器启动位(步骤112)。
最后,如果存储器分配不是单一或相邻间隔分配时,处理测试(步骤114)存储器分配结构是否为条状间隔分配。如果存储器分配为条状间隔分配,且并行循环遍数的总数乘以数据通路索引加上并行循环遍数的总数减去剩余并行循环遍数的数目比串行循环遍数的总数少时,则启动正对数据项进行业务处理的数据通路的处理器启动位(步骤116)。
本发明的许多实施例已描述如上。然而,应理解在不脱离本发明的精神和范围的情况下,可做各种更改。例如为了处理更多的数据项,依据采用的存储器分配结构,在一个模型发展了的时间前,可一直使用查询表。一旦模型发展了,以这里描述的方法来决定数据通路的启动。因此,其余的实施例均在所附权利要求保护范围内。
Claims (20)
1.一种控制方法,用于控制是否启动SIMD处理器中的多个处理器数据通路之一,这些数据通路正在运行阵列中的数据元素,所述方法包括:
基于关于SIMD处理器和阵列的参数以及阵列中数据项相对的数据通路的处理状态的信息来决定是否启动该数据通路。
2.根据权利要求1所述的方法,其中所述信息包括所述数据项和存储器之间的分配。
3.根据权利要求2所述的方法,其中所述信息包括所述分配是否为单一、相邻、或条状间隔。
4.根据权利要求1所述的方法,其中所述信息包括所述数据通路执行循环处理操作的并行循环遍数的总数。
5.根据权利要求1所述的方法,其中所述信息表示所述阵列的大小。
6.根据权利要求1所述的方法,其中所述处理状态为所述循环处理操作中剩余并行循环遍数的数目。
7.根据权利要求1所述的方法,其中所述信息包括所述处理器数据通路的数目。
8.根据权利要求1所述的方法,其中所述信息包括所述数据项和存储器之间的分配,所述数据通路执行循环处理操作的并行循环遍数的总数,所述阵列的大小,所述循环处理操作中所述数据通路的剩余并行遍数的数目,和所述处理器数据通路的数目。
9.根据权利要求8所述的方法,其中所述数据项和所述存储器之间的分配为单一间隔。
10.根据权利要求9所述的方法,其中由串行循环遍数的总数除以所执行数据通路的总数,并上舍入到下一个整数来决定所述循环遍数的总数。
11.根据权利要求10所述的方法,其中启动包括:
确定所述并行循环遍数的总数减去剩余循环遍数的数目乘以所执行数据通路的总数加上数据通路的数目是否小于所述串行循环遍数的总数。
12.根据权利要求8所述的方法,其中所述数据项和所述存储器之间的分配为相邻间隔。
13.根据权利要求12所述的方法,其中由所述串行循环遍数的总数除以数据通路的数目,并上舍入到下一个整数值来决定所述并行循环遍数的总数。
14.根据权利要求13所述的方法,其中启动包括:
确定所述并行循环遍数的总数乘以数据通路的数目加上所述并行循环遍数的总数减去所述剩余并行循环遍数的数目是否小于所述串行循环遍数的总数。
15.根据权利要求8所述的方法,其中所述分配为条状间隔。
16.根据权利要求15所述的方法,其中启动包括:
确定所述并行循环遍数的总数乘以数据通路的数目加上所述并行循环遍数的总数减去所述剩余并行循环遍数的数目是否小于所述串行循环遍数的总数。
17.一种计算机指令,包括:
循环处理指令,用于在处理数据项阵列期间指定多个处理器数据通路之一的启动。
18.根据权利要求17所述的指令,进一步包括:
指定所述剩余并行循环遍数的数目以处理所述阵列的并行计数字段。
19.根据权利要求17所述的指令,其中所述指令更包括:
指定所述串行循环遍数的数目以处理所述阵列的串行计数字段。
20.一种处理器,包括:
寄存器文件;
连接到所述寄存器文件的算术逻辑单元,和程序控制存储器,用于存储处理数据阵列期间使处理器启动多个处理器数据通路之一的循环处理指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/711,556 | 2000-11-13 | ||
US09/711,556 US6732253B1 (en) | 2000-11-13 | 2000-11-13 | Loop handling for single instruction multiple datapath processor architectures |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1484786A true CN1484786A (zh) | 2004-03-24 |
Family
ID=24858560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA018216390A Pending CN1484786A (zh) | 2000-11-13 | 2001-11-09 | 在单指令多数据通路结构中的非整数倍大小阵列循环处理 |
Country Status (8)
Country | Link |
---|---|
US (2) | US6732253B1 (zh) |
JP (1) | JP2004513455A (zh) |
KR (1) | KR20030072354A (zh) |
CN (1) | CN1484786A (zh) |
AU (1) | AU2002234101A1 (zh) |
DE (1) | DE10196879T5 (zh) |
TW (1) | TW563063B (zh) |
WO (1) | WO2002039271A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103314357A (zh) * | 2010-12-16 | 2013-09-18 | 想象技术有限公司 | 用于在微处理器中使用多个阶段执行来对指令发布进行调度的方法和设备 |
CN103491315A (zh) * | 2013-08-09 | 2014-01-01 | 北京中传视讯科技有限公司 | 视频数据处理方法、装置以及包括该装置的电子设备 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7337437B2 (en) * | 1999-12-01 | 2008-02-26 | International Business Machines Corporation | Compiler optimisation of source code by determination and utilization of the equivalence of algebraic expressions in the source code |
US8176108B2 (en) * | 2000-06-20 | 2012-05-08 | International Business Machines Corporation | Method, apparatus and computer program product for network design and analysis |
WO2002046917A1 (en) * | 2000-12-07 | 2002-06-13 | Koninklijke Philips Electronics N.V. | Digital signal processing apparatus |
GB2382672B (en) * | 2001-10-31 | 2005-10-05 | Alphamosaic Ltd | Repeated instruction execution |
DE10206830B4 (de) * | 2002-02-18 | 2004-10-14 | Systemonic Ag | Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden |
US6970985B2 (en) | 2002-07-09 | 2005-11-29 | Bluerisc Inc. | Statically speculative memory accessing |
US20050114850A1 (en) | 2003-10-29 | 2005-05-26 | Saurabh Chheda | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
US7996671B2 (en) | 2003-11-17 | 2011-08-09 | Bluerisc Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
US7171544B2 (en) * | 2003-12-15 | 2007-01-30 | International Business Machines Corporation | Run-time parallelization of loops in computer programs by access patterns |
US7903555B2 (en) * | 2003-12-17 | 2011-03-08 | Intel Corporation | Packet tracing |
US8607209B2 (en) | 2004-02-04 | 2013-12-10 | Bluerisc Inc. | Energy-focused compiler-assisted branch prediction |
US7937557B2 (en) | 2004-03-16 | 2011-05-03 | Vns Portfolio Llc | System and method for intercommunication between computers in an array |
US20060101256A1 (en) * | 2004-10-20 | 2006-05-11 | Dwyer Michael K | Looping instructions for a single instruction, multiple data execution engine |
EP1825433A4 (en) * | 2004-11-23 | 2010-01-06 | Efficient Memory Technology | METHOD AND APPARATUS FOR MULTIPLE INTERLAYING ADDRESSING INTERLACES OF PAGINATED MEMORIES AND INTELLIGENT MEMORY BANKS |
US8190809B2 (en) * | 2004-11-23 | 2012-05-29 | Efficient Memory Technology | Shunted interleave for accessing plural memory banks, particularly those having partially accessed cells containing data for cache lines |
US7904695B2 (en) * | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous power saving computer |
US7913069B2 (en) * | 2006-02-16 | 2011-03-22 | Vns Portfolio Llc | Processor and method for executing a program loop within an instruction word |
US7904615B2 (en) | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous computer communication |
US7966481B2 (en) | 2006-02-16 | 2011-06-21 | Vns Portfolio Llc | Computer system and method for executing port communications without interrupting the receiving computer |
US20070294181A1 (en) * | 2006-05-22 | 2007-12-20 | Saurabh Chheda | Flexible digital rights management with secure snippets |
US20080126766A1 (en) | 2006-11-03 | 2008-05-29 | Saurabh Chheda | Securing microprocessors against information leakage and physical tampering |
US7493475B2 (en) * | 2006-11-15 | 2009-02-17 | Stmicroelectronics, Inc. | Instruction vector-mode processing in multi-lane processor by multiplex switch replicating instruction in one lane to select others along with updated operand address |
US20080154379A1 (en) * | 2006-12-22 | 2008-06-26 | Musculoskeletal Transplant Foundation | Interbody fusion hybrid graft |
US9164770B2 (en) | 2009-10-23 | 2015-10-20 | Mindspeed Technologies, Inc. | Automatic control of multiple arithmetic/logic SIMD units |
KR20120074762A (ko) * | 2010-12-28 | 2012-07-06 | 삼성전자주식회사 | 재구성 가능한 심드 아키텍처 기반의 컴퓨팅 장치 및 방법 |
US20150100758A1 (en) * | 2013-10-03 | 2015-04-09 | Advanced Micro Devices, Inc. | Data processor and method of lane realignment |
KR102202575B1 (ko) | 2013-12-31 | 2021-01-13 | 삼성전자주식회사 | 메모리 관리 방법 및 장치 |
KR102332523B1 (ko) | 2014-12-24 | 2021-11-29 | 삼성전자주식회사 | 연산 처리 장치 및 방법 |
Family Cites Families (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4101960A (en) | 1977-03-29 | 1978-07-18 | Burroughs Corporation | Scientific processor |
US4138720A (en) | 1977-04-04 | 1979-02-06 | Burroughs Corporation | Time-shared, multi-phase memory accessing system |
US4181942A (en) | 1978-03-31 | 1980-01-01 | International Business Machines Corporation | Program branching method and apparatus |
JPS5616248A (en) | 1979-07-17 | 1981-02-17 | Matsushita Electric Ind Co Ltd | Processing system for interruption |
US4435758A (en) | 1980-03-10 | 1984-03-06 | International Business Machines Corporation | Method for conditional branch execution in SIMD vector processors |
US4434461A (en) | 1980-09-15 | 1984-02-28 | Motorola, Inc. | Microprocessor with duplicate registers for processing interrupts |
SE8104981L (sv) | 1981-08-21 | 1982-07-26 | Ibm Svenska Ab | Metod och anordning for adressering av ett minne |
US4604695A (en) | 1983-09-30 | 1986-08-05 | Honeywell Information Systems Inc. | Nibble and word addressable memory arrangement |
DE3479356D1 (en) | 1983-12-23 | 1989-09-14 | Hitachi Ltd | A data processor with control of the significant bit lenghts of general purpose registers |
US5045995A (en) * | 1985-06-24 | 1991-09-03 | Vicom Systems, Inc. | Selective operation of processing elements in a single instruction multiple data stream (SIMD) computer system |
GB2177526B (en) | 1985-06-24 | 1990-02-14 | Pixar | Selective operation of processing elements in a single instruction, multiple data stream (simd)computer system |
US4896258A (en) | 1985-07-04 | 1990-01-23 | Hitachi, Ltd. | Data processor provided with instructions which refer to both tagged and tagless data |
US4773038A (en) | 1986-02-24 | 1988-09-20 | Thinking Machines Corporation | Method of simulating additional processors in a SIMD parallel processor array |
US4985832A (en) | 1986-09-18 | 1991-01-15 | Digital Equipment Corporation | SIMD array processing system with routing networks having plurality of switching stages to transfer messages among processors |
US5230079A (en) | 1986-09-18 | 1993-07-20 | Digital Equipment Corporation | Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register |
GB2211638A (en) | 1987-10-27 | 1989-07-05 | Ibm | Simd array processor |
GB2201015B (en) | 1987-02-10 | 1990-10-10 | Univ Southampton | Parallel processor array and array element |
JPS63245529A (ja) | 1987-03-31 | 1988-10-12 | Toshiba Corp | レジスタ退避復元装置 |
US5111389A (en) | 1987-10-29 | 1992-05-05 | International Business Machines Corporation | Aperiodic mapping system using power-of-two stride access to interleaved devices |
US5121498A (en) | 1988-05-11 | 1992-06-09 | Massachusetts Institute Of Technology | Translator for translating source code for selective unrolling of loops in the source code |
US5038282A (en) | 1988-05-11 | 1991-08-06 | Massachusetts Institute Of Technology | Synchronous processor with simultaneous instruction processing and data transfer |
US5136697A (en) | 1989-06-06 | 1992-08-04 | Advanced Micro Devices, Inc. | System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache |
US5224214A (en) | 1990-04-12 | 1993-06-29 | Digital Equipment Corp. | BuIffet for gathering write requests and resolving read conflicts by matching read and write requests |
US5193202A (en) * | 1990-05-29 | 1993-03-09 | Wavetracer, Inc. | Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor |
US5157785A (en) | 1990-05-29 | 1992-10-20 | Wavetracer, Inc. | Process cell for an n-dimensional processor array having a single input element with 2n data inputs, memory, and full function arithmetic logic unit |
EP0463973A3 (en) | 1990-06-29 | 1993-12-01 | Digital Equipment Corp | Branch prediction in high performance processor |
AU665521B2 (en) | 1990-10-03 | 1996-01-11 | Thinking Machines Corporation | Parallel computer system |
US5361363A (en) | 1990-10-03 | 1994-11-01 | Thinking Machines Corporation | Input/output system for parallel computer for performing parallel file transfers between selected number of input/output devices and another selected number of processing nodes |
JPH04293135A (ja) | 1991-03-20 | 1992-10-16 | Yokogawa Hewlett Packard Ltd | メモリアクセス方式 |
US5361367A (en) | 1991-06-10 | 1994-11-01 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Highly parallel reconfigurable computer architecture for robotic computation having plural processor cells each having right and left ensembles of plural processors |
JPH07500437A (ja) * | 1991-10-24 | 1995-01-12 | インテル コーポレイシヨン | データ処理システム |
US5551039A (en) * | 1992-02-03 | 1996-08-27 | Thinking Machines Corporation | Compiling a source code vector instruction by generating a subgrid loop for iteratively processing array elements by plural processing elements |
US5659778A (en) * | 1992-02-03 | 1997-08-19 | Tm Patents, L.P. | System and method of mapping an array to processing elements |
JP2642039B2 (ja) | 1992-05-22 | 1997-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
WO1994003860A1 (en) | 1992-08-07 | 1994-02-17 | Thinking Machines Corporation | Massively parallel computer including auxiliary vector processor |
US5479624A (en) | 1992-10-14 | 1995-12-26 | Lee Research, Inc. | High-performance interleaved memory system comprising a prime number of memory modules |
US5542074A (en) | 1992-10-22 | 1996-07-30 | Maspar Computer Corporation | Parallel processor system with highly flexible local control capability, including selective inversion of instruction signal and control of bit shift amount |
JPH06162228A (ja) | 1992-11-26 | 1994-06-10 | Sharp Corp | データフロープロセッサ装置 |
GB2273377A (en) * | 1992-12-11 | 1994-06-15 | Hughes Aircraft Co | Multiple masks for array processors |
US5696958A (en) | 1993-01-11 | 1997-12-09 | Silicon Graphics, Inc. | Method and apparatus for reducing delays following the execution of a branch instruction in an instruction pipeline |
CA2116985C (en) | 1993-03-11 | 1999-09-21 | Cynthia J. Burns | Memory system |
JPH0756892A (ja) | 1993-08-10 | 1995-03-03 | Fujitsu Ltd | マスク付きベクトル演算器を持つ計算機 |
US5479324A (en) * | 1993-12-17 | 1995-12-26 | Barry; James E. | Illuminated gas tank or shell |
JP3415693B2 (ja) | 1993-12-23 | 2003-06-09 | ノキア モービル フォーンズ リミテッド | インターリーブプロセス |
US5524223A (en) | 1994-01-31 | 1996-06-04 | Motorola, Inc. | Instruction accelerator for processing loop instructions with address generator using multiple stored increment values |
EP0671685B1 (en) | 1994-03-08 | 1998-11-04 | Digital Equipment Corporation | Method and apparatus for detecting and executing cross-domain calls in a computer system |
US5590352A (en) | 1994-04-26 | 1996-12-31 | Advanced Micro Devices, Inc. | Dependency checking and forwarding of variable width operands |
US5659722A (en) | 1994-04-28 | 1997-08-19 | International Business Machines Corporation | Multiple condition code branching system in a multi-processor environment |
EP0681236B1 (en) | 1994-05-05 | 2000-11-22 | Conexant Systems, Inc. | Space vector data path |
US5590356A (en) | 1994-08-23 | 1996-12-31 | Massachusetts Institute Of Technology | Mesh parallel computer architecture apparatus and associated methods |
US5608886A (en) | 1994-08-31 | 1997-03-04 | Exponential Technology, Inc. | Block-based branch prediction using a target finder array storing target sub-addresses |
US5758176A (en) | 1994-09-28 | 1998-05-26 | International Business Machines Corporation | Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system |
WO1996012228A1 (en) | 1994-10-14 | 1996-04-25 | Silicon Graphics, Inc. | Redundant mapping tables |
JPH08249306A (ja) | 1995-03-09 | 1996-09-27 | Sharp Corp | データ駆動型情報処理装置 |
US5737572A (en) | 1995-06-06 | 1998-04-07 | Apple Computer, Inc. | Bank selection logic for memory controllers |
US5638533A (en) | 1995-10-12 | 1997-06-10 | Lsi Logic Corporation | Method and apparatus for providing data to a parallel processing array |
US6292879B1 (en) | 1995-10-25 | 2001-09-18 | Anthony S. Fong | Method and apparatus to specify access control list and cache enabling and cache coherency requirement enabling on individual operands of an instruction of a computer |
US5822606A (en) | 1996-01-11 | 1998-10-13 | Morton; Steven G. | DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word |
US5727229A (en) * | 1996-02-05 | 1998-03-10 | Motorola, Inc. | Method and apparatus for moving data in a parallel processor |
US5924117A (en) | 1996-12-16 | 1999-07-13 | International Business Machines Corporation | Multi-ported and interleaved cache memory supporting multiple simultaneous accesses thereto |
US5946222A (en) | 1996-12-20 | 1999-08-31 | Oak Technology, Inc. | Method and apparatus for performing a masked byte addition operation |
US5870581A (en) | 1996-12-20 | 1999-02-09 | Oak Technology, Inc. | Method and apparatus for performing concurrent write operations to a single-write-input register file and an accumulator register |
JPH10254839A (ja) | 1997-03-11 | 1998-09-25 | Sony Corp | Simd制御並列プロセッサおよび演算方法 |
US6381668B1 (en) | 1997-03-21 | 2002-04-30 | International Business Machines Corporation | Address mapping for system memory |
JPH10289305A (ja) | 1997-04-11 | 1998-10-27 | Mitsubishi Electric Corp | 画像処理装置および画像処理方法 |
US6049330A (en) | 1997-08-28 | 2000-04-11 | Oak Technology, Inc. | Method and apparatus for optimizing storage of compressed images in memory |
WO1999014685A1 (fr) | 1997-09-16 | 1999-03-25 | Hitachi, Ltd. | Machine de traitement des donnees et systeme de traitement des donnees |
US5933650A (en) | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6216223B1 (en) | 1998-01-12 | 2001-04-10 | Billions Of Operations Per Second, Inc. | Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor |
JPH11272546A (ja) | 1998-03-23 | 1999-10-08 | Nec Corp | 可変長レジスタ装置 |
US6067609A (en) | 1998-04-09 | 2000-05-23 | Teranex, Inc. | Pattern generation and shift plane operations for a mesh connected computer |
US6121905A (en) | 1998-05-11 | 2000-09-19 | Oak Technology, Inc. | Method and apparatus for decoding JPEG symbols |
US6130631A (en) | 1998-05-11 | 2000-10-10 | Oak Technology, Inc. | Method and apparatus utilizing a simplified content-addressable memory for JPEG decoding |
US6052703A (en) | 1998-05-12 | 2000-04-18 | Oak Technology, Inc. | Method and apparatus for determining discrete cosine transforms using matrix multiplication and modified booth encoding |
US6175892B1 (en) | 1998-06-19 | 2001-01-16 | Hitachi America. Ltd. | Registers and methods for accessing registers for use in a single instruction multiple data system |
US6282628B1 (en) | 1999-02-24 | 2001-08-28 | International Business Machines Corporation | Method and system for a result code for a single-instruction multiple-data predicate compare operation |
WO2001031473A1 (en) | 1999-10-26 | 2001-05-03 | Arthur D. Little, Inc. | Multiplexing n-dimensional mesh connections onto (n + 1) data paths |
US6452864B1 (en) | 2000-01-31 | 2002-09-17 | Stmicroelectonics S.R.L. | Interleaved memory device for sequential access synchronous reading with simplified address counters |
US6282623B1 (en) | 2000-02-04 | 2001-08-28 | Motorola Inc. | Method for digital signal processing, DSP, mobile communication and audi o-device |
EP1130517B1 (en) | 2000-03-02 | 2004-05-26 | STMicroelectronics S.r.l. | Redundancy architecture for an interleaved memory |
JP2002007359A (ja) | 2000-06-21 | 2002-01-11 | Sony Corp | Simd制御並列処理方法および装置 |
-
2000
- 2000-11-13 US US09/711,556 patent/US6732253B1/en not_active Expired - Fee Related
-
2001
- 2001-11-09 JP JP2002541527A patent/JP2004513455A/ja active Pending
- 2001-11-09 DE DE10196879T patent/DE10196879T5/de not_active Withdrawn
- 2001-11-09 WO PCT/US2001/050029 patent/WO2002039271A1/en active Application Filing
- 2001-11-09 AU AU2002234101A patent/AU2002234101A1/en not_active Abandoned
- 2001-11-09 KR KR10-2003-7006484A patent/KR20030072354A/ko not_active Application Discontinuation
- 2001-11-09 TW TW090127898A patent/TW563063B/zh not_active IP Right Cessation
- 2001-11-09 CN CNA018216390A patent/CN1484786A/zh active Pending
-
2004
- 2004-02-03 US US10/770,787 patent/US20040158691A1/en not_active Abandoned
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103314357A (zh) * | 2010-12-16 | 2013-09-18 | 想象技术有限公司 | 用于在微处理器中使用多个阶段执行来对指令发布进行调度的方法和设备 |
CN103314357B (zh) * | 2010-12-16 | 2016-01-20 | 想象技术有限公司 | 用于在微处理器中使用多个阶段执行来对指令发布进行调度的方法和设备 |
CN103491315A (zh) * | 2013-08-09 | 2014-01-01 | 北京中传视讯科技有限公司 | 视频数据处理方法、装置以及包括该装置的电子设备 |
Also Published As
Publication number | Publication date |
---|---|
DE10196879T5 (de) | 2004-04-15 |
AU2002234101A1 (en) | 2002-05-21 |
WO2002039271A1 (en) | 2002-05-16 |
KR20030072354A (ko) | 2003-09-13 |
US6732253B1 (en) | 2004-05-04 |
US20040158691A1 (en) | 2004-08-12 |
JP2004513455A (ja) | 2004-04-30 |
TW563063B (en) | 2003-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1484786A (zh) | 在单指令多数据通路结构中的非整数倍大小阵列循环处理 | |
US6076152A (en) | Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem | |
EP1582980B1 (en) | Context switching method, device, program, recording medium, and central processing unit | |
RU2450339C2 (ru) | Мультипроцессорная архитектура, оптимизированная для потоков | |
US7926060B2 (en) | iMEM reconfigurable architecture | |
EP0735463A2 (en) | Computer processor having a register file with reduced read and/or write port bandwidth | |
RU2000132719A (ru) | Смешанный файл векторных/скалярных регистров | |
CN1809810A (zh) | 指令控制数据处理设备 | |
CN1711563A (zh) | 令牌触发多线程操作的方法和装置 | |
US6785781B2 (en) | Read/write alignment scheme for port reduction of multi-port SRAM cells | |
EP1979808A4 (en) | MULTIPROCESSOR ARCHITECTURE OPTIMIZED BY UNITS OF EXECUTION | |
US7908603B2 (en) | Intelligent memory with multitask controller and memory partitions storing task state information for processing tasks interfaced from host processor | |
US20020103978A1 (en) | Microcontroller circuit and method for accessing external memory in a page mode of operation | |
EP0138352B1 (en) | Method of operating a data processing system via depictor-linked microcode and logic circuitry | |
EP0982655A2 (en) | Data processing unit and method for executing instructions of variable lengths | |
US20050172088A1 (en) | Intelligent memory device with wakeup feature | |
US20050172087A1 (en) | Intelligent memory device with ASCII registers | |
US7823161B2 (en) | Intelligent memory device with variable size task architecture | |
US20050108290A1 (en) | Logic computing system and method | |
WO2007029169A2 (en) | Processor array with separate serial module | |
CN1437723A (zh) | 外部微代码 | |
KR100639146B1 (ko) | 카테시안 제어기를 갖는 데이터 처리 시스템 | |
CN1261865C (zh) | 内存源操作数的选择电路及选择方法 | |
JP2005535045A (ja) | Vliw命令を処理するためのプロセッサおよび方法 | |
CN1703670A (zh) | 指令的寻址范围相关并行化的数据处理设备 |
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 |