处理器的制作方法

文档序号:6477989阅读:157来源:国知局
专利名称:处理器的制作方法
技术领域
本发明涉及处理器。
背景技术
通常,处理器芯片包括每一个都布置成执行指令的大量单独处理器。通常,存在由 每一个都与主机存储器通信的不同处理器执行的大量不同指令。在处理器中需要编码许多 指令使处理器变得较大,从而限制了可以制造在芯片上的处理器的数量,并且,需要与主机 存储器通信也使每个处理器变得缓慢。

发明内容
于是,本发明提供了一种包含多个处理器的处理装置。每个处理器可以布置成执行对于每个处理器来说可能相同的单条指令。该装置可以进一步包含布置成在处理器之间 传送数据和控制令牌(token)的总线。每个处理器可以布置成,如果它经由总线接收到控 制令牌,就执行指令,并且,一旦执行了指令,它可以对可以标识将是数据目标处理器的任 何处理器的数据执行操作。该处理器还可以将输出数据发送给任何标识数据目标处理器。 它还可以标识将是控制目标处理器的任何处理器,并且,可以将控制令牌发送给任何标识 控制目标处理器。输出数据可以是指令的结果,或者它可以是存储在例如处理器中的数据。总线可以布置成无需从主机存储器中取出数据而在处理器之间传送数据和控制 令牌。总线可以包含多个总线帧,并且可以布置成在总线帧之间移动数据和/或控制令 牌以便沿着总线移动它们。每个处理器可以具有与它相联系的一个或多个总线帧,数据可 以从该总线帧写入该处理器。数据可以以数据令牌的形式在总线上传送。每个处理器可以布置成执行与每个其它处理器相同的指令。每个处理器可以布置 成只执行一条指令。每当每个处理器执行它的指令时,它能够标识没有、一个、或不止一个 数据目标处理器、以及没有、一个、或不止一个控制目标处理器。这使得它能够并行地将数 据发送给多个处理器。总线可以布置成将结果发送给标识数据目标处理器,以便可以将其 写入数据目标处理器中。每个处理器可以布置成通过将控制令牌与控制目标处理器(该控制令牌将要被 发送到该控制目标处理器)的地址一起写入总线来发送控制令牌。一旦执行了指令,每个 处理器能够标识其可将控制令牌并行发送到的多个控制目标处理器。每个处理器优选地布置成,当它已将结果和控制令牌发送给任何标识目标处理器 时,放弃对其控制令牌的拥有权,以便它在接收到另一个控制令牌之前不再执行该指令。指令可以是相乘-相加的形式aXb+c —r'。每个处理器可以布置成根据结果r ‘选择任何控制处理器。例如,每个处理器可以布置成确定结果r'是小于零、零、大于零还是零度数,并且据此选择任何控制目标处理器 或数据目标处理器。每个处理器可以包含可以存储指令的输入的多个存储单元。每个处理器可以包含 可以存储控制目标处理器的地址的多个存储单元。一旦通电,可以将每个处理器中的所有 存储器设置成固定值,以便处理器不执行任何程序,否则将是一旦通电被设置成任意值的 情形。


现在参照附图只通过示例的方式描述本发明的优选实施例,在附图中图1是按照本发明实施例的处理器芯片的示意图;图2是图1的芯片的一个处理器和总线分段的示意图;图3是图1的芯片的一条总线的一部分的示意图;图4是图1的芯片的沿着总线和在处理器之间发送的数据帧的图形;图5是图1的芯片的一个处理器的图形;和图6是示出本发明第二实施例的总线形成部分上的寻址的图形。
具体实施例方式参照图1,处理器芯片10包含处理器12的二维长方形阵列。每个处理器或元组 12具有通过垂直坐标x,y定义的地址。主阵列具有有限尺寸,它的地址具有中心在原点和 从-y_延伸到+y_的y坐标以及中心也在原点和从延伸到的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、ai、a2的标记字段,每个位用作以各种方式指示 令牌的状态的标记。如下所述,每个令牌可以具有两种不同类型通过c和d标记标识的控 制令牌或数据令牌。数据令牌具有定义一般地址或两个地址的士(i. f)格式的一个地址字段,为二进 制扇出提供了可能性,另外,它们还具有作为要写入的数据的一个数字士(i. f)。控制令牌 具有定义一般地址或两个地址的士(i.f)格式的一个地址字段,为控制的二进制扇出提供 了可能性。存在四个标记位c、d、ai、a2。c位表示当前总线帧是否包含控制令牌。d位表示当 前总线帧是否包含数据令牌。在本实施例中规定了两个位,以便可以让单个令牌表示正在 将控制和数据发送给同一个处理器。 位表示令牌是否将被传递到 地址或是否已经传 递到那里。类似地,a2位表示令牌是否将被传递到a2地址或是否已经传递到那里。虽然为了简单起见,图5示出了三个i位和三个f位,但本实施例使用整数部分32 个位和小数部分32个位的64位数字。寻址
将数据字段整个解释成一个数字。如果地址字段是数字士⑴或①之一,将它解 释成单个第一地址i ;否则,将它解释成两个地址,通过i个位定义的第一地址^和通过f 个位定义的第二地址a2。标记字段代表每一个可以被置位或清除的四个位。如果设置了 c 标记,那么,数据帧携带控制,否则,不携带控制。将携带控制的数据帧称为控制令牌。如果 设置了 d标记,那么,数据帧携带数据,否则,不携带数据。将携带数据的数据帧称为数据令 牌。如果设置了 标记,那么,数据帧仍然将传递给是士⑴的第一地址,或一般地址i, 否则,不再传递给这个地址。如果设置了 a2标记,那么,数据帧仍然将传递给第二地址%,否 则,不再传递给这个地址。如果地址字段是零度数①,不将数据帧放在总线上。地址 和 a2可以以相同处理器或不同处理器为目标。使用两个不同地址使控制可以从单个线程扇出 到两个并行线程。如果目标处理器不同,那么,数据帧传递到第二地址 之前的第一地址 。如果 和a2标记两者都被清除了,那么,数据帧是空的,并且可以由处理器写入。元组与总线的连接如上所述,每个元组12连接到叠放的左、右、上和下,四条线性总线20。图3示出 了元组12与一般上地址(up-address)或下地址(down-address)线性总线的连接。这个 芯片实施例具有与每个元组连接的四条分立总线,但如果存在有利于共享的适当空间/时 间折衷方案,其它实施例可以在相邻元组之间共享总线。芯片上的所有总线统称为“总线”。I/O 元组如上所述,元组12铺设成行和列的表面上长方形阵列。每个元组连接到叠放的 左、右、上和下,四条线性总线。线性总线中的第一和最后元组通过士⑴寻址并进行1/0,而 中间元组是处理器。在I/O元组,(多个)片上I/O器件将令牌传输到相关总线上或将令牌 传输离开相关总线。如果I/O元组是从外围器件引入(inbound)到芯片的令牌的目标,那 么,该元组将令牌写到相反线性总线上的输出器件上。这可用于I/O元组的连通测试。如 果令牌到达引出(outward bound)总线上的I/O元组上,那么,将它写到输出器件中。如果 令牌未以1/0元组为目标,那么,因为未捕获到它,所以它到达较前目标一硬件或编译器错 误。芯片外处理器可以对这种错误进行测试。1/0元组捕获控制令牌时的行为是结构相关 的,并且可以用于限制1/0的处理。1/0元组可以将令牌写到芯片内的一个地点上以报告一 些条件,虽然在芯片的本实施例中,在1/0元组上不使用控制令牌。无穷大是最极端的数字,因此,不可能寻址超出无穷大处理器的第零单元u的任 何存储单元。无穷大元组总是位于实数个处理器之外,因此,线性总线中的处理器的数量, 以及从而芯片的形状对于芯片1/0来说并不重要,但可能影响芯片内令牌的传播。如果芯 片由于芯片内的非长方形制造几何结构或制造错误而具有非长方形形状,这是有用的。处理器参照图5,每个处理器12包含八个物理存储单元u、v、w、r、1、z、g、n的8_元组。 这些单元从零编号到七。因此,u被称为元组的第零元件而n被称为第七元件。正如在掩码 地址以检测令牌的目标时在硬件中所做的那样,当进行求模算术运算时,从零开始的编号 是有用的。物理8-元组保存可以是操纵器或1/0器件12的处理器12所操纵的数据。任 一种类型的器件都可以写入与之相邻的四条线性总线的任何一条中。物理元组被限制成通 过接收带有标记-x,+x, -y,+y的虚拟单元上的写地址写入带标记总线中。因此,存在与元 组的每个物理单元相对应的四个虚拟存储单元,给出总共32个虚拟单元
<formula>formula see original document page 8</formula>并且,这些元件从零开始编号,因此,u_x是虚拟32-元组的第零元件,而n+y是 第三十一元件。在本实施例中,这些单元的地址用地址的五个最低有效位表示,而处理器 的地址用较高有效位表示。单元u_x被标记成零(00000),而其余单元按升序从1标记到 31(00001到11111)。因此,每个处理器的每个虚拟存储单元拥有它自己的地址,并且可以 作为来自总线上的另一个处理器或来自相同处理器内部的数据的目标。每个处理器被布置成执行如下指令u X v+w — r ‘write (r' , r)jump (r' , 1, 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并将它放入数据令牌的地址字段中,然后将数据令牌放到适当总线上。类 似地处理1、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的操作,触发的路由器从1” Zi、gi或 n,虚拟单元中取出地址,将其作为地址放入控制令牌中,并且将令牌放在适当总线上。该写入将其令牌放在总线上先于该跳转将其令牌放在总线上。因此,当将数据和 控制传递给相同元组时,数据令牌先于控制令牌到达。对于这种时空拓扑结构,可以使用实 现存储器锁定算法的指令。在需要将元组与总线链接之外,在硬件中无需进一步实现定时 控制。这种链接的精确特性对于芯片的性能是非常重要的。跳转指令可以停止,继续沿着串行线程,或分支成两个并行线程。当跳转到①处 理器时,线程停止。由此得出,零度数处理器决不会执行什么。而且,由于元组结构是无取出 的(没有读取),由此得出,写入零度数中是一种无操作,因此,零度数处理器无需存储器。 由于零度数处理器不处理和没有存储器,所以无需实现成元组。零度数处理器仍然可以在 控制跳转或写入中寻址,但在跳转或写入的源头上被实现成无操作。排除零度数处理器的一种非常有用的副作用是从超广义实数平面中排除零度数的直线。这样就将拓扑结构简化成恰好是扩展成带有有向无穷远线的实平面。无穷远线用 于1/0,让所有处理器留在实平面中。该跳转按如下执行如果r' < 0,跳转到(1);如果r' = 0,跳转到(z);如果r' > 0,跳转到(g);如果r'=①,跳转到(n)。处理器通过将控制令牌放在适当线性总线上以便它将被传送到l、z、g、n = 士(a” a2)中的ai和a2地址而实现跳转。处理器具有接受来自总线的令牌的缓冲器。当处理器计算时,它将缓冲器复制到 内部寄存器,并对内部寄存器进行操作。总线上令牌的管理如上所述,每个处理器具有五个地址位的地址P,保留五个地址位是为了指示处理 器内部的32个地址。当数据帧到达处理器时,对它进行检查。首先,如果P与i匹配,并且 设置了 ^和设置了 d,那么,将数据字段从总线写入处理器中,并清除ai,以指示对于这个地 址,不再需要那种传送。然后,第二,如果P与f匹配和清除了 ^,并且设置了 a2和设置了 d,那么,将数据字段从总线写入处理器中,并清除a2和清除d,以指示任何地方都不再需要 那种传送。第三,如果P与i匹配,并且设置了 &1和设置了 c,那么,启动处理器执行的单循 环,并清除&1,以指示对于这个地址,不再需要那种传送。然后,第四,如果P与f匹配和清 除了 ,并且设置了 a2和设置了 c,那么,启动处理器执行的单循环,并清除a2和清除c,以 指示任何地方都不再需要那种传送。注意,即使i和f 两者启动相同处理器上的执行,也只 启动处理器执行的一个循环。第五,如果P与f匹配和设置了 ,那么,对第一地址的传送 失败了。这是错误状况。不将数据写入处理器中,并且不开始执行。由此得出,数据帧将沿 着总线到达它的终点而不在任何地方传送数据。一旦总线上的所有处理器都有机会写入总线上的它们各自数据帧中时,数据帧沿 着总线移动一个位置。在优选实现中,这是通过将数据帧复制到临时数据帧,然后将它复制 给它的邻居实现的。I/O器件的操作如果总线终点上的数据帧具有设置的c或d个位之一,那么,通过I/O器件将它写 到芯片外。如果单个地址是上地址总线上的⑴或下地址总线上的-⑴,那么,总线帧正确地 以I/O器件为目标,并且被芯片外器件当作有效数据帧来对待。任何其它地址都指示传送 错误,并且由芯片外器件给予适当错误管理。处理器与总线连接的操作元组在它的位置上接受来自总线帧的令牌并将令牌写入总线帧中。它接受来自总 线帧的令牌先于写入那个总线帧中,以便可以再用总线帧。这使总线带宽得到有效使用,并 意味着,如果芯片的分立邻居内的通信局限于相邻元组之间的跳转,那么,总线总是作出传 输令牌的准备。通过为到相邻元组的短写而保留,比方说,右线性总线和下线性总线以及通 过执行到仅在左总线和上总线的区域中的非相邻元组的长写和跳转,可以使总线的这种准 备是全局的。长跳转必须保持在不过度填充总线的密度上。在芯片的区域中可以在长/短 布置之间切换,以便允许在芯片上的任何地方迅速通信。
9
每个处理器元组可以不使用总线地内部写入和跳转到自身。在这种情况下,写入 和/或跳转时间包含在标准指令时间内,以便处理器写入令牌不能比它读取令牌更快。可以按任意次序将令牌从总线推入元组的缓冲器中。这允许处理器/总线通信的 任意多路复用。但是,如果处理器繁忙,致使不能接受令牌,那么,令牌继续在总线上,直到 通过I/O元组将其写到芯片外。这样,总线争用错误是自我报告的。注意,总线争用意味着 编译器或硬件错误,并且不应该发生。类似地,如果令牌到达%,但未传送到%,那么,令牌 沿着总线传递以自动报告它的错误。这保证了令牌在传送到之前不会传送到a2,并且意 味着a2上的数据和控制可以用于检验到的传送。利用定时规则而获得正确执行是编译 器的责任。在编译时通过确定总线的局部区域中的定时和/或在运行时通过实现存储器锁 定算法可以做到这一点。总线功率管理如果清除了控制c和数据d标记,那么,不复制总线帧。如果设置了控制标记但清 除了数据标记,那么,复制整个标记和控制数。如果设置了数据标记,那么,复制整个总线 帧。因此,基本功率用于只移动有效数据。处理器对数据的管理如果以处理器的Ui存储单元的任何一个为目标的数据帧已经设置了它的d标记, 那么,将该帧的数据字段写入乘法器的U存储单元中。类似地,将以Vi存储单元的任何一 个为目标的数据字段写入乘法器的v存储单元中,并将以&存储单元的任何一个为目标的 数据字段写入加法器的《字段中。类似地,将以^存储单元的任何一个为目标的数据字段 写入路由器中的数据帧的地址字段中,并且,路由器采取附加动作。如果数据字段以r_x为 目标,那么,选择-X总线用于输出。类似地,如果数据字段以r+x、r_y、r+y为目标,那么,选择 相应+X、_Y、+Y总线用于输出。所有^存储单元都馈入路由器54中,Zi、gi和叫存储单元馈入各自路由器56、58、 60中。所有路由器以相同的方式操作。例如,如果以处理器的h存储单元的任何一个为目 标的数据帧已经设置了它的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轴的下标;第一个出现在形式士(知a2)中的地址;a,总线帧中的标记位,表示令牌仍然必须传送到地址 还是已经被传送;a2 第二个出现在形式士(al. a2)中的地址;a2 总线帧中的标记位,表示令牌仍然必须传送到地址a2还是已经被传送;c 总线帧中的标记位,表示该帧是否包含控制;d 总线帧中的标记位,表示该帧是否包含数据;f:定点数中的小数位;g 物理8-元组的第六单元,是根据大于零的结果跳转的地址;i 定点数中的整数位,包括涉及符号、无穷大、和零度数的位模式;1 物理8-元组的第四单元,是根据小于零的结果跳转的地址;n 物理8-元组的第七单元,是根据零度数结果跳转的地址;P 处理器的地址。这是物理8-元组的第零单元u的地址;r,r'这里,r是物理8_元组的第三单元,是指令片段uX v+w — r'的结果的地 址,结果保存在临时变量r'中;u 物理8-元组的第零单元,是指令片段uXv+w — r'的第一变元;v 物理8-元组的第一单元,是指令片段uXv+w — r'的第二变元;w 物理8-元组的第二单元,是指令片段uXv+w — r'的第三变元;和z 物理8-元组的第五单元,是根据零结果跳转的地址。优点上面所述的实施例具有许多优点 在芯片的外围上的每处有I/O和电源,因此,在I/O和电源两者中存在巨大的1/ 0带宽和冗余度。但是,冗余电源需要小心管理,以避免无用电荷流动和电噪声。不过,这种 带宽和冗余度提供了 一定程度的未来保证。 管理在外围中每处的I/O的策略意味着,如果未捕获到令牌,那么,通过将令牌 写入可以编程成对未捕获令牌进行测试的输出器件,自身自动报告这个错误。 处理器指令可以推广到长度为2的任何次幂的元组,从而允许实现任意复杂的 指令集。这提供了一定程度的未来保证。
存在可以用于限制处理器以不同方式执行的六位冗余度(与物理地址u、v、w的 虚拟形式相联系)。并且,通过允许只对处理器结构和编译器作模块化改变的某种灵活性提 供了一些未来保证。在上面所述的实施例中,用位串表示超广义数。严格的超广义实数,即,士⑴或① 使用整个位串,但实数像i.f那样用两个部分表示,其中i是该数字的整数部分,而f 是小 数部分。寻址方案允许寻址零个、一个或两个目 标。如果地址是零度数①,那么,不将数据 帧放在总线上,因此,不寻址目标。如果地址是带符号无穷大士⑴之一,那么,寻址一个1/ 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器件。这意味着存在到 士⑴的许多路径。不使用负实数编号地址。因此,这样的地址可用于编码可能取决于具体 系统的特定设计的其它东西。这样的地址将是它们相应正地址的二进制补码。如果芯片存在瑕疵或非正方形几何形状,那么,在不同芯片的总线上可能存在不 同数量的有效处理器,因此,每个芯片负责执行它自己的减小。这种减小可以委托给芯片外 器件。如果芯片是垂直堆叠的,那么,芯片外器件可以非常迅速地将信号路由到它的目标芯 片。这样的捷径将影响编译器可能利用的定时规则。
权利要求
一种处理装置,包含每一个布置成执行指令的多个处理器、和布置成在所述处理器之间传送数据和控制令牌的总线,其中,每个处理器被布置成,如果它经由所述总线接收到控制令牌,就执行指令,并且,一旦执行了指令,就对数据进行操作以产生结果,来标识将是数据目标处理器的任何处理器,并将输出数据发送给任何标识数据目标处理器,以标识将是控制目标处理器的任何处理器,并将控制令牌发送给任何标识控制目标处理器。
2.按照权利要求1所述的处理装置,其中,每个处理器被布置成将输出数据与任何数 据目标处理器的地址一起写入总线中。
3.按照权利要求1或权利要求2所述的处理装置,其中,所述处理器可以标识可以对其 并行发送输出数据的多个数据目标处理器。
4.按照前面任何一项权利要求所述的处理装置,其中,所述总线被布置成将输出数据 发送到标识数据目标处理器,以便可以将其写入所述数据目标处理器中。
5.按照前面任何一项权利要求所述的处理装置,其中,每个处理器可以布置成通过将 控制令牌与该控制令牌将要被发送到的控制目标处理器的地址一起写入总线来发送控制 令牌。
6.按照前面任何一项权利要求所述的处理装置,其中,每个处理器一旦执行了指令,就 可以标识可以对其并行发送控制令牌的多个控制目标处理器。
7.按照前面任何一项权利要求所述的处理装置,其中,每个处理器被布置成,当将输出 数据和控制令牌发送给任何标识目标处理器时,放弃对其控制令牌的拥有权,以便在它接 收到另一个控制令牌之前不再执行该指令。
8.按照前面任何一项权利要求所述的处理装置,其中,每个处理器被布置成执行相同 指令。
9.按照前面任何一项权利要求所述的处理装置,其中,每个处理器被布置成只执行一 条指令。
10.按照前面任何一项权利要求所述的处理装置,其中,指令是相乘-相加的形式 aXb+c 一 r ‘ 0
11.按照前面任何一项权利要求所述的处理装置,其中,每个处理器被布置成根据结果 选择目标处理器。
12.按照权利要求11所述的处理装置,其中,每个处理器被布置成确定结果是小于零、 零、大于零还是零度数,并且据此选择目标处理器。
13.按照前面任何一项权利要求所述的处理装置,其中,每个处理器包含可以存储指令 的输入的多个存储单元。
14.按照前面任何一项权利要求所述的处理装置,其中,每个处理器包含可以存储目标 处理器的地址的多个存储单元。
15.按照前面任何一项权利要求所述的处理装置,其中,每个处理器包含可以存储操作 结果的多个存储单元。
16.按照前面任何一项权利要求所述的处理装置,其中,一旦通电,将每个处理器中的 所有存储器设置成固定值。
17.按照前面任何一项权利要求所述的处理装置,包含每一个包含多个处理器的多个 芯片,每个芯片具有多个输出器件,从该输出器件可以将令牌传送给另一个芯片,其中,每个芯片上的每个处理器具有与之相联系的地址,所述地址在一定范围内,所述装置被布置 成,一旦所述输出器件接收到具有在所述范围之外的目标地址的令牌,通过与芯片的宽度 相对应的数量对目标地址进行修改,并且将令牌传送给所述其它芯片。
18.按照权利要求17所述的处理装置,其中,所述输出器件被布置成执行所述修改。
19.按照权利要求17所述的处理装置,其中,进一步的芯片外器件被布置成执行所述 修改。
全文摘要
一种处理装置包含每一个布置成执行指令的多个处理器(12)、和布置成在所述处理器之间传送数据和控制令牌的总线(20)。每个处理器(12)被布置成,如果它经由所述总线接收到控制令牌,就执行指令,并且,一旦执行了指令,就对数据执行操作以标识将是数据目标处理器的任何处理器(12),并将输出数据发送给任何标识数据目标处理器,以标识将是控制目标处理器的任何处理器,并将控制令牌发送给任何标识控制目标处理器。
文档编号G06F15/82GK101802810SQ200880101550
公开日2010年8月11日 申请日期2008年5月30日 优先权日2007年5月31日
发明者詹姆斯·A·D·W·安德森 申请人:雷丁大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1