CN101802810A - 处理器 - Google Patents

处理器 Download PDF

Info

Publication number
CN101802810A
CN101802810A CN200880101550A CN200880101550A CN101802810A CN 101802810 A CN101802810 A CN 101802810A CN 200880101550 A CN200880101550 A CN 200880101550A CN 200880101550 A CN200880101550 A CN 200880101550A CN 101802810 A CN101802810 A CN 101802810A
Authority
CN
China
Prior art keywords
processor
bus
treating apparatus
address
token
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.)
Granted
Application number
CN200880101550A
Other languages
English (en)
Other versions
CN101802810B (zh
Inventor
詹姆斯·A·D·W·安德森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anderson James
Original Assignee
University of Reading
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Reading filed Critical University of Reading
Publication of CN101802810A publication Critical patent/CN101802810A/zh
Application granted granted Critical
Publication of CN101802810B publication Critical patent/CN101802810B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • G06F15/825Dataflow computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

一种处理装置包含每一个布置成执行指令的多个处理器(12)、和布置成在所述处理器之间传送数据和控制令牌的总线(20)。每个处理器(12)被布置成,如果它经由所述总线接收到控制令牌,就执行指令,并且,一旦执行了指令,就对数据执行操作以标识将是数据目标处理器的任何处理器(12),并将输出数据发送给任何标识数据目标处理器,以标识将是控制目标处理器的任何处理器,并将控制令牌发送给任何标识控制目标处理器。

Description

处理器
技术领域
本发明涉及处理器。
背景技术
通常,处理器芯片包括每一个都布置成执行指令的大量单独处理器。通常,存在由每一个都与主机存储器通信的不同处理器执行的大量不同指令。在处理器中需要编码许多指令使处理器变得较大,从而限制了可以制造在芯片上的处理器的数量,并且,需要与主机存储器通信也使每个处理器变得缓慢。
发明内容
于是,本发明提供了一种包含多个处理器的处理装置。每个处理器可以布置成执行对于每个处理器来说可能相同的单条指令。该装置可以进一步包含布置成在处理器之间传送数据和控制令牌(token)的总线。每个处理器可以布置成,如果它经由总线接收到控制令牌,就执行指令,并且,一旦执行了指令,它可以对可以标识将是数据目标处理器的任何处理器的数据执行操作。该处理器还可以将输出数据发送给任何标识数据目标处理器。它还可以标识将是控制目标处理器的任何处理器,并且,可以将控制令牌发送给任何标识控制目标处理器。
输出数据可以是指令的结果,或者它可以是存储在例如处理器中的数据。
总线可以布置成无需从主机存储器中取出数据而在处理器之间传送数据和控制令牌。
总线可以包含多个总线帧,并且可以布置成在总线帧之间移动数据和/或控制令牌以便沿着总线移动它们。每个处理器可以具有与它相联系的一个或多个总线帧,数据可以从该总线帧写入该处理器。
数据可以以数据令牌的形式在总线上传送。
每个处理器可以布置成执行与每个其它处理器相同的指令。每个处理器可以布置成只执行一条指令。每当每个处理器执行它的指令时,它能够标识没有、一个、或不止一个数据目标处理器、以及没有、一个、或不止一个控制目标处理器。这使得它能够并行地将数据发送给多个处理器。总线可以布置成将结果发送给标识数据目标处理器,以便可以将其写入数据目标处理器中。
每个处理器可以布置成通过将控制令牌与控制目标处理器(该控制令牌将要被发送到该控制目标处理器)的地址一起写入总线来发送控制令牌。一旦执行了指令,每个处理器能够标识其可将控制令牌并行发送到的多个控制目标处理器。
每个处理器优选地布置成,当它已将结果和控制令牌发送给任何标识目标处理器时,放弃对其控制令牌的拥有权,以便它在接收到另一个控制令牌之前不再执行该指令。
指令可以是相乘-相加的形式a×b+c→r′。
每个处理器可以布置成根据结果r′选择任何控制处理器。例如,每个处理器可以布置成确定结果r′是小于零、零、大于零还是零度数,并且据此选择任何控制目标处理器或数据目标处理器。
每个处理器可以包含可以存储指令的输入的多个存储单元。每个处理器可以包含可以存储控制目标处理器的地址的多个存储单元。一旦通电,可以将每个处理器中的所有存储器设置成固定值,以便处理器不执行任何程序,否则将是一旦通电被设置成任意值的情形。
附图说明
现在参照附图只通过示例的方式描述本发明的优选实施例,在附图中:
图1是按照本发明实施例的处理器芯片的示意图;
图2是图1的芯片的一个处理器和总线分段的示意图;
图3是图1的芯片的一条总线的一部分的示意图;
图4是图1的芯片的沿着总线和在处理器之间发送的数据帧的图形;
图5是图1的芯片的一个处理器的图形;和
图6是示出本发明第二实施例的总线形成部分上的寻址的图形。
具体实施方式
参照图1,处理器芯片10包含处理器12的二维长方形阵列。每个处理器或元组12具有通过垂直坐标x,y定义的地址。主阵列具有有限尺寸,它的地址具有中心在原点和从-ymax延伸到+ymax的y坐标以及中心也在原点和从-xmax延伸到+xmax的x坐标。在处理器12的主阵列的每行和每列的每个端点上的是具有+∞或-∞的x坐标或者+∞或-∞的y坐标的输入/输出处理器或I/O器件14。在图1中只示出了芯片10的四分之一,它处在坐标系统的正象限中。可以将许多芯片组合在一起,以形成数据从一个芯片经由I/O器件14移动到下一个芯片的单机。
总线
在处理器12之间以长方形网格形式铺设一系列总线20。在处理器12的各列之间,存在沿着y方向延伸的一对总线,一条+Y被布置成沿着正Y方向传送数据,而另一条-Y被布置成沿着负Y方向传送数据。在处理器12的各行之间,存在沿着X方向延伸的一对总线,一条+X被布置成沿着正X方向传送数据,而另一条-X被布置成沿着负X方向传送数据。在图1中每对总线20被显示成单条线,但在图2中示出了各个总线20围绕一个处理器12的部分。因此,图2示出了形成基本单元的单个处理器片22,从芯片10的一侧到另一侧重复该基本单元以构造整个芯片。每个处理器12与在其四侧的与其相邻的四条总线20的每一条连接,以便每个处理器可以将数据放到适当总线上,以沿着四个方向的任何一个方向发送它。
参照图3,每条单向总线20包含每一个由许多存储单元组成的一系列总线帧24、和每一个由相同数量存储单元组成的一并行系列临时帧26。每个临时帧26与两个相邻总线帧24连接,以便可以从它们之一接收数据并将数据输出给它们的另一个。因此,通过经由适当临时帧26,沿着总线的方向从一个总线帧24传送到下一个总线帧,可以沿着总线传输数据。每个处理器12与从旁边经过的每条总线上的一个总线帧24连接,以便它可以在那个点上接受来自总线的数据和将数据写入总线中。
所有处理器12以及所有总线帧24和临时帧26与发送时钟信号的公用时钟线28连接。这用于协调沿着总线20以及在总线20与处理器12之间传送数据的定时。每次时钟滴答响的时候,经由临时总线帧将一个总线帧中的数据复制到它的相邻总线帧中。一般说来,数据在总线帧之间的移动以比每个处理器执行它的指令的频率高的频率发生。这使处理器在一个处理器时钟周期内可以沿着总线发送不止一个数据。除非制造错误,处理器在任一侧上都具有相邻元组,而I/O元组仅仅在一侧上具有相邻元组。
算术
该机器使用按改进二进制补码(twos-complement)编码实现的定点算术。标准二进制补码算术具有零的位串、编码连续正整数的奇数个位串、和编码连续负整数的偶数个位串。存在负整数比正整数多一个的位串。标准算术对溢出设置状态标志。相反,本实施例使用改进二进制补码算术,其利用最小负整数的位串标识零度数(Nullity)Φ,产生除零度数之外,在零的两侧相等的奇数个位串的编码。用剩余的最大正和最小负整数的位串标识带符号无穷大±∞,剩下除零度数和带符号无穷大之外,在零的两侧相等的偶数个连续(有限)整数。溢出时,该算术将其舍成带符号无穷大。给定这种整数的基本编码,数字保持定点格式i.f,其中i是整数位,而f是小数位。如刚才所述,i位包括使用改进二进制补码编码的涉及符号、无穷大、和零度数的位模式。这意味着,在整数部分和小数部分存在相同位数的情况下,小数部分具有高于整数部分的精度。数字通常写成±(i.f)格式,以阐明它们是带符号的。用在本实施例中的改进二进制补码算术的细节可以如GB 0625735.6所述。零度数的定义通过如下公理提供:零度数是无穷大减去无穷大的结果;零度数是无穷大乘以零的结果;将任何数与零度数相加的结果是零度数;和将任何数与零度数相乘的结果是零度数。
数据格式
参照图4,总线被布置成以令牌的形式按位组传送数据或信息。每个令牌包含三个字段:包含包括整数位i和小数位f的第一位组的数据字段;包含包括整数位i和小数位f的第二位组的地址字段;和包含四位组c、d、a1、a2的标记字段,每个位用作以各种方式指示令牌的状态的标记。如下所述,每个令牌可以具有两种不同类型:通过c和d标记标识的控制令牌或数据令牌。
数据令牌具有定义一般地址或两个地址的±(i.f)格式的一个地址字段,为二进制扇出提供了可能性,另外,它们还具有作为要写入的数据的一个数字±(i.f)。控制令牌具有定义一般地址或两个地址的±(i.f)格式的一个地址字段,为控制的二进制扇出提供了可能性。
存在四个标记位c、d、a1、a2。c位表示当前总线帧是否包含控制令牌。d位表示当前总线帧是否包含数据令牌。在本实施例中规定了两个位,以便可以让单个令牌表示正在将控制和数据发送给同一个处理器。a1位表示令牌是否将被传递到a1地址或是否已经传递到那里。类似地,a2位表示令牌是否将被传递到a2地址或是否已经传递到那里。
虽然为了简单起见,图5示出了三个i位和三个f位,但本实施例使用整数部分32个位和小数部分32个位的64位数字。
寻址
将数据字段整个解释成一个数字。如果地址字段是数字±∞或Φ之一,将它解释成单个第一地址i;否则,将它解释成两个地址,通过i个位定义的第一地址a1和通过f个位定义的第二地址a2。标记字段代表每一个可以被置位或清除的四个位。如果设置了c标记,那么,数据帧携带控制,否则,不携带控制。将携带控制的数据帧称为控制令牌。如果设置了d标记,那么,数据帧携带数据,否则,不携带数据。将携带数据的数据帧称为数据令牌。如果设置了a1标记,那么,数据帧仍然将传递给是±∞的第一地址a1,或一般地址i,否则,不再传递给这个地址。如果设置了a2标记,那么,数据帧仍然将传递给第二地址a2,否则,不再传递给这个地址。如果地址字段是零度数Φ,不将数据帧放在总线上。地址a1和a2可以以相同处理器或不同处理器为目标。使用两个不同地址使控制可以从单个线程扇出到两个并行线程。如果目标处理器不同,那么,数据帧传递到第二地址a2之前的第一地址a1。如果a1和a2标记两者都被清除了,那么,数据帧是空的,并且可以由处理器写入。
元组与总线的连接
如上所述,每个元组12连接到叠放的:左、右、上和下,四条线性总线20。图3示出了元组12与一般上地址(up-address)或下地址(down-address)线性总线的连接。这个芯片实施例具有与每个元组连接的四条分立总线,但如果存在有利于共享的适当空间/时间折衷方案,其它实施例可以在相邻元组之间共享总线。芯片上的所有总线统称为“总线”。
I/O元组
如上所述,元组12铺设成行和列的表面上长方形阵列。每个元组连接到叠放的:左、右、上和下,四条线性总线。线性总线中的第一和最后元组通过±∞寻址并进行I/O,而中间元组是处理器。在I/O元组,(多个)片上I/O器件将令牌传输到相关总线上或将令牌传输离开相关总线。如果I/O元组是从外围器件引入(inbound)到芯片的令牌的目标,那么,该元组将令牌写到相反线性总线上的输出器件上。这可用于I/O元组的连通测试。如果令牌到达引出(outward bound)总线上的I/O元组上,那么,将它写到输出器件中。如果令牌未以I/O元组为目标,那么,因为未捕获到它,所以它到达较前目标一硬件或编译器错误。芯片外处理器可以对这种错误进行测试。I/O元组捕获控制令牌时的行为是结构相关的,并且可以用于限制I/O的处理。I/O元组可以将令牌写到芯片内的一个地点上以报告一些条件,虽然在芯片的本实施例中,在I/O元组上不使用控制令牌。
无穷大是最极端的数字,因此,不可能寻址超出无穷大处理器的第零单元u的任何存储单元。无穷大元组总是位于实数个处理器之外,因此,线性总线中的处理器的数量,以及从而芯片的形状对于芯片I/O来说并不重要,但可能影响芯片内令牌的传播。如果芯片由于芯片内的非长方形制造几何结构或制造错误而具有非长方形形状,这是有用的。
处理器
参照图5,每个处理器12包含八个物理存储单元u、v、w、r、l、z、g、n的8-元组。这些单元从零编号到七。因此,u被称为元组的第零元件而n被称为第七元件。正如在掩码地址以检测令牌的目标时在硬件中所做的那样,当进行求模算术运算时,从零开始的编号是有用的。物理8-元组保存可以是操纵器或I/O器件12的处理器12所操纵的数据。任一种类型的器件都可以写入与之相邻的四条线性总线的任何一条中。物理元组被限制成通过接收带有标记-x,+x,-y,+y的虚拟单元上的写地址写入带标记总线中。因此,存在与元组的每个物理单元相对应的四个虚拟存储单元,给出总共32个虚拟单元:
(u-x,u+x,u-y,u+y,v-x,v+x,v-y,v+y,w-x,w+x,w-y,w+y,r-x,r+x,r-y,r+y,l-x,l+x,l-y,l+y,z-x,z+x,z-y,z+y,g-x,g+x,g-y,g+y,n-x,n+x,n-y,n+y)。
并且,这些元件从零开始编号,因此,u-x是虚拟32-元组的第零元件,而n+y是第三十一元件。在本实施例中,这些单元的地址用地址的五个最低有效位表示,而处理器的地址用较高有效位表示。单元u-x被标记成零(00000),而其余单元按升序从1标记到31(00001到11111)。因此,每个处理器的每个虚拟存储单元拥有它自己的地址,并且可以作为来自总线上的另一个处理器或来自相同处理器内部的数据的目标。
每个处理器被布置成执行如下指令:
u×v+w→r′
write(r′,r)
jump(r′,l,z,g,n)
第一行指令是超广义实数(transreal)相乘和相加。因此,处理器包括乘法器50和加法器52,乘法器50被布置成进行u和v单元中的数字的相乘,而加法器52被布置成将作为处理器中的临时变量保存的乘法器的输出与w单元中的数字相加。这一行可以计算相加、相减和相乘的任何组合。相除可以通过使用许多指令以构造倒数并将其展开(multiply it out)来实现。类似地,数学函数和一般计算可以用许多指令实现。
第二行指令将数据令牌放在适当线性总线上,以便将结果r′写入一个或两个元组中的一个或两个存储单元中。如果地址r被写入r-x虚拟寄存器中,那么,将r′写入-x总线中,对应地,r+x、r-y、r+y上r的接收使r′被写入+x、-y、+y总线中。这是通过接收来自加法器52的输出并将其放入数据令牌中的路由器53实现的。路由器53还从ri虚拟单元中取出地址r并将它放入数据令牌的地址字段中,然后将数据令牌放到适当总线上。类似地处理l、z、g、n物理存储单元。但是,u、v、w物理单元是用于计算的数据,并且不随它们到达的虚拟存储单元而改变它们的行为。但是,应该像u-x、v-x、w-x那样寻址它们,以保持其它虚拟地址空闲,供将来使用。
跳转指令将控制令牌放在总线上。将来自加法器52的结果r′输入四个选择器55、57、59、61中,如果r′小于零,其中的第一个作出响应,如果r′等于零,其中的第二个作出响应,如果r′大于零,其中的第三个作出响应,而如果r′是零度数,其中的第四个作出响应。触发的选择器触发相应路由器54、56、58、60的操作,触发的路由器从li、zi、gi或ni虚拟单元中取出地址,将其作为地址放入控制令牌中,并且将令牌放在适当总线上。
该写入将其令牌放在总线上先于该跳转将其令牌放在总线上。因此,当将数据和控制传递给相同元组时,数据令牌先于控制令牌到达。对于这种时空拓扑结构,可以使用实现存储器锁定算法的指令。在需要将元组与总线链接之外,在硬件中无需进一步实现定时控制。这种链接的精确特性对于芯片的性能是非常重要的。
跳转指令可以停止,继续沿着串行线程,或分支成两个并行线程。当跳转到Φ处理器时,线程停止。由此得出,零度数处理器决不会执行什么。而且,由于元组结构是无取出的(没有读取),由此得出,写入零度数中是一种无操作,因此,零度数处理器无需存储器。由于零度数处理器不处理和没有存储器,所以无需实现成元组。零度数处理器仍然可以在控制跳转或写入中寻址,但在跳转或写入的源头上被实现成无操作。
排除零度数处理器的一种非常有用的副作用是从超广义实数平面中排除零度数的直线。这样就将拓扑结构简化成恰好是扩展成带有有向无穷远线的实平面。无穷远线用于I/O,让所有处理器留在实平面中。该跳转按如下执行:
如果r′<0,跳转到(l);
如果r′=0,跳转到(z);
如果r′>0,跳转到(g);
如果r′=Φ,跳转到(n)。
处理器通过将控制令牌放在适当线性总线上以便它将被传送到l、z、g、n=±(a1.a2)中的a1和a2地址而实现跳转。
处理器具有接受来自总线的令牌的缓冲器。当处理器计算时,它将缓冲器复制到内部寄存器,并对内部寄存器进行操作。
总线上令牌的管理
如上所述,每个处理器具有五个地址位的地址P,保留五个地址位是为了指示处理器内部的32个地址。当数据帧到达处理器时,对它进行检查。首先,如果P与i匹配,并且设置了a1和设置了d,那么,将数据字段从总线写入处理器中,并清除a1,以指示对于这个地址,不再需要那种传送。然后,第二,如果P与f匹配和清除了a1,并且设置了a2和设置了d,那么,将数据字段从总线写入处理器中,并清除a2和清除d,以指示任何地方都不再需要那种传送。第三,如果P与i匹配,并且设置了a1和设置了c,那么,启动处理器执行的单循环,并清除a1,以指示对于这个地址,不再需要那种传送。然后,第四,如果P与f匹配和清除了a1,并且设置了a2和设置了c,那么,启动处理器执行的单循环,并清除a2和清除c,以指示任何地方都不再需要那种传送。注意,即使i和f两者启动相同处理器上的执行,也只启动处理器执行的一个循环。第五,如果P与f匹配和设置了a1,那么,对第一地址的传送失败了。这是错误状况。不将数据写入处理器中,并且不开始执行。由此得出,数据帧将沿着总线到达它的终点而不在任何地方传送数据。
一旦总线上的所有处理器都有机会写入总线上的它们各自数据帧中时,数据帧沿着总线移动一个位置。在优选实现中,这是通过将数据帧复制到临时数据帧,然后将它复制给它的邻居实现的。
I/O器件的操作
如果总线终点上的数据帧具有设置的c或d个位之一,那么,通过I/O器件将它写到芯片外。如果单个地址是上地址总线上的∞或下地址总线上的-∞,那么,总线帧正确地以I/O器件为目标,并且被芯片外器件当作有效数据帧来对待。任何其它地址都指示传送错误,并且由芯片外器件给予适当错误管理。
处理器与总线连接的操作
元组在它的位置上接受来自总线帧的令牌并将令牌写入总线帧中。它接受来自总线帧的令牌先于写入那个总线帧中,以便可以再用总线帧。这使总线带宽得到有效使用,并意味着,如果芯片的分立邻居内的通信局限于相邻元组之间的跳转,那么,总线总是作出传输令牌的准备。通过为到相邻元组的短写而保留,比方说,右线性总线和下线性总线以及通过执行到仅在左总线和上总线的区域中的非相邻元组的长写和跳转,可以使总线的这种准备是全局的。长跳转必须保持在不过度填充总线的密度上。在芯片的区域中可以在长/短布置之间切换,以便允许在芯片上的任何地方迅速通信。
每个处理器元组可以不使用总线地内部写入和跳转到自身。在这种情况下,写入和/或跳转时间包含在标准指令时间内,以便处理器写入令牌不能比它读取令牌更快。
可以按任意次序将令牌从总线推入元组的缓冲器中。这允许处理器/总线通信的任意多路复用。但是,如果处理器繁忙,致使不能接受令牌,那么,令牌继续在总线上,直到通过I/O元组将其写到芯片外。这样,总线争用错误是自我报告的。注意,总线争用意味着编译器或硬件错误,并且不应该发生。类似地,如果令牌到达a2,但未传送到a1,那么,令牌沿着总线传递以自动报告它的错误。这保证了令牌在传送到a1之前不会传送到a2,并且意味着a2上的数据和控制可以用于检验到a1的传送。利用定时规则而获得正确执行是编译器的责任。在编译时通过确定总线的局部区域中的定时和/或在运行时通过实现存储器锁定算法可以做到这一点。
总线功率管理
如果清除了控制c和数据d标记,那么,不复制总线帧。如果设置了控制标记但清除了数据标记,那么,复制整个标记和控制数。如果设置了数据标记,那么,复制整个总线帧。因此,基本功率用于只移动有效数据。
处理器对数据的管理
如果以处理器的ui存储单元的任何一个为目标的数据帧已经设置了它的d标记,那么,将该帧的数据字段写入乘法器的u存储单元中。类似地,将以vi存储单元的任何一个为目标的数据字段写入乘法器的v存储单元中,并将以wi存储单元的任何一个为目标的数据字段写入加法器的w字段中。类似地,将以ri存储单元的任何一个为目标的数据字段写入路由器中的数据帧的地址字段中,并且,路由器采取附加动作。如果数据字段以r-x为目标,那么,选择-X总线用于输出。类似地,如果数据字段以r+x、r-y、r+y为目标,那么,选择相应+X、-Y、+Y总线用于输出。
所有li存储单元都馈入路由器54中,zi、gi和ni存储单元馈入各自路由器56、58、60中。所有路由器以相同的方式操作。例如,如果以处理器的li存储单元的任何一个为目标的数据帧已经设置了它的d标记,那么,将该帧的数据字段写入路由器的地址字段中。如果数据字段以l-x为目标,那么,选择-X总线用于输出。类似地,如果数据字段以l+x、l-y、l+y为目标,那么,选择相应+X、-Y、+Y总线用于输出。数据帧的标记字段被设置成指示将控制传送到第一和第二地址。
处理器中的执行由以处理器中的任何虚拟存储单元为目标、设置了c标记的数据帧(即,控制令牌)来启动。放弃与虚拟存储单元相联系的地址位意味着仅仅使用处理器地址P,但这等于处理器的存储单元的u-x地址。图5示出了控制令牌到达u-x存储单元触发的执行。这种控制令牌的到达使乘法器将它的u和v存储单元相乘在一起,并将乘积写入将该乘积与w单元中的内容相加的加法器中。然后,将所得和写入数据帧的数据字段中。将数据帧的标记字段设置成指示数据到第一和第二地址的传送。然后,将数据帧写入所选输出总线中,除非地址是零度数,在那种情况下,不放在总线上。还将来自加法器的所得和写入四个选择器的每一个中,视结果是小于零、等于零、大于零、或等于零度数而定,确切地使路由器之一被触发。然后,触发的路由器将它的数据帧写入所选输出总线中,除非地址是零度数,在那种情况下,不放在总线上。这种写入是定时的,以便其发生在以存储单元为目标的来自路由器的数据的写入之后。
所有处理器的定时通过公用时钟信号控制,该公用时钟信号可以与用于控制总线的那个相同。处理器被布置成响应时钟信号,以便每个循环执行指令一次,并且,所有处理器都以相同定时操作,以便它们的每一个同时将数据放在总线上。在每个循环内,将数据从总线写入处理器中的定时将取决于递送给处理器的数据处在与该处理器相邻的总线上的时间。由于数据可以以比指令执行频率高的频率沿着总线移动,所以将数据写入处理器中的时间可以从一个处理器到下一个处理器而改变。
记号
在优选实施例描述中使用的记号总结如下:
-x:表示从笛卡儿(Cartesian)坐标系的原点开始的负x轴的下标;
+x:表示从笛卡儿坐标系的原点开始的正x轴的下标;
-y:表示从笛卡儿坐标系的原点开始的负y轴的下标;
+y:表示从笛卡儿坐标系的原点开始的正y轴的下标;
a1:第一个出现在形式±(a1.a2)中的地址;
a1:总线帧中的标记位,表示令牌仍然必须传送到地址a1还是已经被传送;
a2:第二个出现在形式±(a1.a2)中的地址;
a2:总线帧中的标记位,表示令牌仍然必须传送到地址a2还是已经被传送;
c:总线帧中的标记位,表示该帧是否包含控制;
d:总线帧中的标记位,表示该帧是否包含数据;
f:定点数中的小数位;
g:物理8-元组的第六单元,是根据大于零的结果跳转的地址;
i:定点数中的整数位,包括涉及符号、无穷大、和零度数的位模式;
l:物理8-元组的第四单元,是根据小于零的结果跳转的地址;
n:物理8-元组的第七单元,是根据零度数结果跳转的地址;
P:处理器的地址。这是物理8-元组的第零单元u的地址;
r,r′:这里,r是物理8-元组的第三单元,是指令片段u×v+w→r′的结果的地址,结果保存在临时变量r′中;
u:物理8-元组的第零单元,是指令片段u×v+w→r′的第一变元;
v:物理8-元组的第一单元,是指令片段u×v+w→r′的第二变元;
w:物理8-元组的第二单元,是指令片段u×v+w→r′的第三变元;和
z:物理8-元组的第五单元,是根据零结果跳转的地址。
优点
上面所述的实施例具有许多优点:
·在芯片的外围上的每处有I/O和电源,因此,在I/O和电源两者中存在巨大的I/O带宽和冗余度。但是,冗余电源需要小心管理,以避免无用电荷流动和电噪声。不过,这种带宽和冗余度提供了一定程度的未来保证。
·管理在外围中每处的I/O的策略意味着,如果未捕获到令牌,那么,通过将令牌写入可以编程成对未捕获令牌进行测试的输出器件,自身自动报告这个错误。
·处理器指令可以推广到长度为2的任何次幂的元组,从而允许实现任意复杂的指令集。这提供了一定程度的未来保证。
·存在可以用于限制处理器以不同方式执行的六位冗余度(与物理地址u、v、w的虚拟形式相联系)。并且,通过允许只对处理器结构和编译器作模块化改变的某种灵活性提供了一些未来保证。
在上面所述的实施例中,用位串表示超广义数。严格的超广义实数,即,±∞或Φ使用整个位串,但实数像i.f那样用两个部分表示,其中i是该数字的整数部分,而f是小数部分。寻址方案允许寻址零个、一个或两个目标。如果地址是零度数Φ,那么,不将数据帧放在总线上,因此,不寻址目标。如果地址是带符号无穷大±∞之一,那么,寻址一个I/O器件。如果地址是实数,那么,将i解释成第一地址,而将f解释成第二地址。一般说来,i和f以不同处理器中的存储单元为目标,以便寻址两个目标,但它们也可以寻址单个处理器中的相同或不同存储单元,以便寻址一个处理器或一个存储单元。因此,可以不寻址目标,寻址一个I/O器件,寻址一个处理器内的一个或两个存储单元,或寻址两个不同处理器中的两个存储单元。这完全令人满意,但困难在于,i携带符号位,而f没有符号位。因此,存在所有正地址和负第一地址的自然表示,但不存在负第二地址的自然表示。
负地址没有自然表示的问题在只使用正地址的任何方案中都得到解决。这种最简单的方案是仅仅使用铺设在2D笛卡儿坐标系统中的第一象限,即,显示在图1中的坐标系部分中的线或网格,但这限制了如何将芯片连接在一起。在这种情况下,只能沿着正轴,而不能沿着负轴添加芯片。这限制了机器可以利用的空间的贴片。
因此,参照图6,在本发明的第二实施例中,使用了另一种解决方案。这里提出的解决方案是用连续自然数编号每条总线,该连续自然数从与处在芯片边缘的编号为-∞的输入器件相邻的处理器的u-x存储单元上的零,到与处在芯片边缘的编号为+∞的输出处理器相邻的n+y存储单元上的某正数n。这样,每个存储单元在每条总线上一般具有不同地址,但这些地址以简单方式彼此相关。此外,这些地址可以以位于任意多个芯片之外的处理器中的存储单元为目标,并且,最重要的是,在超广义算术中以自然方式执行所有地址计算。
每条总线具有在编号为-∞的输入器件上的入口点和在编号为+∞的输出器件上的出口点。如图6所示,处理器内的中间存储单元按从零到某正数n的顺序编号。这样,单个存储单元在每条总线上一般具有不同地址。
为了将存储单元在总线上的实地址c转换成它在相反总线上的地址c′,执行如下简单算法:
n-c→c′。
这种运算是幂等的,因此,
n-c′→c。
严格的超广义实数地址与原来一样是正确的。它们无需通过任何其它手段转换,以映射成相反总线上的地址。如果实地址c>n,那么,目标存储单元在不同芯片上。递送给它的令牌将沿着当前芯片上的总线到达编号为+∞的输出器件。然后,输出器件被布置成使地址减小当前芯片的宽度n+1,并输出令牌,以便可以将它放在下一个芯片上。在下一个芯片上,地址现在将具有与那个芯片上的地址相对应的足够低的数字,在那种情况下,将在那里传送令牌,或者,地址对于那个芯片的地址来说仍然太大,在那种情况下,跨过那下一个芯片将令牌发送到地址将被再次减小的那下一个芯片的输出器件,并且将令牌放在更进一步相邻芯片上。这个过程可以重复任何次数,直到将令牌传送给适当芯片上的处理器。应该懂得,在这种布置中,每个芯片具有用于它所有处理器的地址,并且,对于相同芯片,相应处理器的地址可以是相同的。但是,令牌携带的目标地址可以较大,并且,实际上是‘相关’地址,通过它与令牌的当前位置相关的位置标识目标处理器。
在本系统中,每个芯片具有编号为±∞的它自己的I/O器件。这意味着存在到±∞的许多路径。不使用负实数编号地址。因此,这样的地址可用于编码可能取决于具体系统的特定设计的其它东西。这样的地址将是它们相应正地址的二进制补码。
如果芯片存在瑕疵或非正方形几何形状,那么,在不同芯片的总线上可能存在不同数量的有效处理器,因此,每个芯片负责执行它自己的减小。这种减小可以委托给芯片外器件。如果芯片是垂直堆叠的,那么,芯片外器件可以非常迅速地将信号路由到它的目标芯片。这样的捷径将影响编译器可能利用的定时规则。

Claims (19)

1.一种处理装置,包含每一个布置成执行指令的多个处理器、和布置成在所述处理器之间传送数据和控制令牌的总线,其中,每个处理器被布置成,如果它经由所述总线接收到控制令牌,就执行指令,并且,一旦执行了指令,就对数据进行操作以产生结果,来标识将是数据目标处理器的任何处理器,并将输出数据发送给任何标识数据目标处理器,以标识将是控制目标处理器的任何处理器,并将控制令牌发送给任何标识控制目标处理器。
2.按照权利要求1所述的处理装置,其中,每个处理器被布置成将输出数据与任何数据目标处理器的地址一起写入总线中。
3.按照权利要求1或权利要求2所述的处理装置,其中,所述处理器可以标识可以对其并行发送输出数据的多个数据目标处理器。
4.按照前面任何一项权利要求所述的处理装置,其中,所述总线被布置成将输出数据发送到标识数据目标处理器,以便可以将其写入所述数据目标处理器中。
5.按照前面任何一项权利要求所述的处理装置,其中,每个处理器可以布置成通过将控制令牌与该控制令牌将要被发送到的控制目标处理器的地址一起写入总线来发送控制令牌。
6.按照前面任何一项权利要求所述的处理装置,其中,每个处理器一旦执行了指令,就可以标识可以对其并行发送控制令牌的多个控制目标处理器。
7.按照前面任何一项权利要求所述的处理装置,其中,每个处理器被布置成,当将输出数据和控制令牌发送给任何标识目标处理器时,放弃对其控制令牌的拥有权,以便在它接收到另一个控制令牌之前不再执行该指令。
8.按照前面任何一项权利要求所述的处理装置,其中,每个处理器被布置成执行相同指令。
9.按照前面任何一项权利要求所述的处理装置,其中,每个处理器被布置成只执行一条指令。
10.按照前面任何一项权利要求所述的处理装置,其中,指令是相乘-相加的形式a×b+c→r′。
11.按照前面任何一项权利要求所述的处理装置,其中,每个处理器被布置成根据结果选择目标处理器。
12.按照权利要求11所述的处理装置,其中,每个处理器被布置成确定结果是小于零、零、大于零还是零度数,并且据此选择目标处理器。
13.按照前面任何一项权利要求所述的处理装置,其中,每个处理器包含可以存储指令的输入的多个存储单元。
14.按照前面任何一项权利要求所述的处理装置,其中,每个处理器包含可以存储目标处理器的地址的多个存储单元。
15.按照前面任何一项权利要求所述的处理装置,其中,每个处理器包含可以存储操作结果的多个存储单元。
16.按照前面任何一项权利要求所述的处理装置,其中,一旦通电,将每个处理器中的所有存储器设置成固定值。
17.按照前面任何一项权利要求所述的处理装置,包含每一个包含多个处理器的多个芯片,每个芯片具有多个输出器件,从该输出器件可以将令牌传送给另一个芯片,其中,每个芯片上的每个处理器具有与之相联系的地址,所述地址在一定范围内,所述装置被布置成,一旦所述输出器件接收到具有在所述范围之外的目标地址的令牌,通过与芯片的宽度相对应的数量对目标地址进行修改,并且将令牌传送给所述其它芯片。
18.按照权利要求17所述的处理装置,其中,所述输出器件被布置成执行所述修改。
19.按照权利要求17所述的处理装置,其中,进一步的芯片外器件被布置成执行所述修改。
CN2008801015505A 2007-05-31 2008-05-30 处理器 Expired - Fee Related CN101802810B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0710377.3 2007-05-31
GBGB0710377.3A GB0710377D0 (en) 2007-05-31 2007-05-31 Processors
PCT/GB2008/001821 WO2008145995A2 (en) 2007-05-31 2008-05-30 Processors

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2013101789424A Division CN103365823A (zh) 2007-05-31 2008-05-30 处理器

Publications (2)

Publication Number Publication Date
CN101802810A true CN101802810A (zh) 2010-08-11
CN101802810B CN101802810B (zh) 2013-06-12

Family

ID=38289590

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2013101789424A Pending CN103365823A (zh) 2007-05-31 2008-05-30 处理器
CN2008801015505A Expired - Fee Related CN101802810B (zh) 2007-05-31 2008-05-30 处理器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2013101789424A Pending CN103365823A (zh) 2007-05-31 2008-05-30 处理器

Country Status (9)

Country Link
US (1) US8495340B2 (zh)
EP (1) EP2153343A2 (zh)
JP (1) JP5352780B2 (zh)
KR (1) KR20100084605A (zh)
CN (2) CN103365823A (zh)
CA (1) CA2689248C (zh)
GB (3) GB0710377D0 (zh)
HK (1) HK1138661A1 (zh)
WO (1) WO2008145995A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103782282A (zh) * 2011-09-01 2014-05-07 高通股份有限公司 具有用于虚拟化输入/输出的处理器局部一致性的计算机系统
WO2023123905A1 (zh) * 2021-12-28 2023-07-06 深圳云天励飞技术股份有限公司 芯片系统中的数据传输处理方法及相关装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0900667D0 (en) 2009-01-16 2009-02-25 Univ Reading The Processors
GB2471067B (en) 2009-06-12 2011-11-30 Graeme Roy Smith Shared resource multi-thread array processor
JP6449702B2 (ja) * 2015-03-30 2019-01-09 ルネサスエレクトロニクス株式会社 半導体装置
CN115100017A (zh) * 2015-06-10 2022-09-23 无比视视觉技术有限公司 用于处理图像的图像处理器和方法
US9690494B2 (en) * 2015-07-21 2017-06-27 Qualcomm Incorporated Managing concurrent access to multiple storage bank domains by multiple interfaces

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59146345A (ja) 1983-02-10 1984-08-22 Masahiro Sowa コントロ−ルフロ−並列計算機方式
US5152000A (en) * 1983-05-31 1992-09-29 Thinking Machines Corporation Array communications arrangement for parallel processor
US5765011A (en) 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
JPH05233853A (ja) * 1992-02-24 1993-09-10 Sharp Corp 演算処理装置
US5603012A (en) 1992-06-30 1997-02-11 Discovision Associates Start code detector
US5361385A (en) * 1992-08-26 1994-11-01 Reuven Bakalash Parallel computing system for volumetric modeling, data processing and visualization
JP2652524B2 (ja) * 1994-10-19 1997-09-10 株式会社エーユーイー研究所 電子回路の組み立て方法およびその電子回路
US5737524A (en) * 1995-05-22 1998-04-07 International Business Machines Corporation Add-in board with programmable configuration registers for use in PCI bus computers
EP1041472B2 (de) * 1999-03-30 2007-04-18 FESTO AG & Co 1-Chip-Rechneranordnung
US6553442B1 (en) * 1999-11-09 2003-04-22 International Business Machines Corporation Bus master for SMP execution of global operations utilizing a single token with implied release
US6507904B1 (en) * 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US7035996B2 (en) 2002-01-17 2006-04-25 Raytheon Company Generating data type token value error in stream computer
US7581081B2 (en) * 2003-03-31 2009-08-25 Stretch, Inc. Systems and methods for software extensible multi-processing
JP4527571B2 (ja) * 2005-03-14 2010-08-18 富士通株式会社 再構成可能演算処理装置
US7814242B1 (en) * 2005-03-25 2010-10-12 Tilera Corporation Managing data flows in a parallel processing environment
US7962717B2 (en) * 2007-03-14 2011-06-14 Xmos Limited Message routing scheme
JP5684704B2 (ja) * 2008-05-27 2015-03-18 スティルウォーター スーパーコンピューティング インコーポレイテッド 実行エンジン
TW201044185A (en) * 2009-06-09 2010-12-16 Zillians Inc Virtual world simulation systems and methods utilizing parallel coprocessors, and computer program products thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103782282A (zh) * 2011-09-01 2014-05-07 高通股份有限公司 具有用于虚拟化输入/输出的处理器局部一致性的计算机系统
CN103782282B (zh) * 2011-09-01 2016-06-01 高通股份有限公司 具有用于虚拟化输入/输出的处理器局部一致性的计算机系统
WO2023123905A1 (zh) * 2021-12-28 2023-07-06 深圳云天励飞技术股份有限公司 芯片系统中的数据传输处理方法及相关装置

Also Published As

Publication number Publication date
CN101802810B (zh) 2013-06-12
HK1138661A1 (en) 2010-08-27
GB2462770B (en) 2012-05-02
GB2486092A (en) 2012-06-06
WO2008145995A2 (en) 2008-12-04
GB2462770A (en) 2010-02-24
EP2153343A2 (en) 2010-02-17
JP2010528387A (ja) 2010-08-19
GB0921638D0 (en) 2010-01-27
GB201202099D0 (en) 2012-03-21
CA2689248A1 (en) 2008-12-04
CN103365823A (zh) 2013-10-23
GB0710377D0 (en) 2007-07-11
CA2689248C (en) 2017-09-05
KR20100084605A (ko) 2010-07-27
WO2008145995A3 (en) 2009-01-15
GB2486092B (en) 2012-07-18
JP5352780B2 (ja) 2013-11-27
US20100228949A1 (en) 2010-09-09
US8495340B2 (en) 2013-07-23

Similar Documents

Publication Publication Date Title
CN101802810B (zh) 处理器
CN113383327B (zh) 可重配置数据处理器的配置加载
CN111542826A (zh) 支持模拟协处理器的数字架构
CN102541809B (zh) 一种动态可重构处理器
EP0360527B1 (en) Parallel computer system using a SIMD method
CN101794214B (zh) 使用多块物理寄存器映射表的寄存器重命名系统及其方法
US20210271630A1 (en) Compiler Flow Logic for Reconfigurable Architectures
CN103168289A (zh) 转置运算装置及其集成电路、以及转置处理方法
CN109144568A (zh) 将有效位通道作为矢量断言暴露于cpu
CN101782893A (zh) 可重构数据处理平台
CN103810111A (zh) 有源存储器件中的地址生成的方法及其处理元件
WO2017157267A1 (en) Reconfigurable data interface unit for compute systems
CN105095110A (zh) 可融合可重构缓存架构
CN107851013A (zh) 元素大小增加指令
CN110277131A (zh) 基于nand flash存储器的校验方法、终端设备及存储介质
CN108269601A (zh) 非易失性存储器中的处理器
US7516059B2 (en) Logical simulation device
WO2019115142A1 (en) Vector add-with-carry instruction
CN104317554A (zh) 用于simd处理器的寄存器文件数据读写装置和方法
US9092212B2 (en) Processors
KR102252600B1 (ko) 데이터 처리장치 및 데이터 요소들의 인터리브된 기억을 위한 방법
US20110010524A1 (en) Simd processor array system and data transfer method thereof
JP4060960B2 (ja) キャッシュ記憶装置
JP2655243B2 (ja) 複合化ベクトル並列計算機
Pechanek et al. An introduction to an array memory processor for application specific acceleration

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: JAMES ANDERSON

Free format text: FORMER OWNER: UNIV. READING

Effective date: 20130806

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130806

Address after: Redding

Patentee after: Anderson James

Address before: Burke County, England

Patentee before: Univ. Reading

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130612

Termination date: 20200530

CF01 Termination of patent right due to non-payment of annual fee