处理器阵列的制作方法

文档序号:6752980阅读:306来源:国知局
专利名称:处理器阵列的制作方法
技术领域
本发明涉及一种处理器阵列,尤其涉及一种具有一定冗余度的处理器阵列,该冗余度允许该处理器阵列正常操作,即使在存在一个或多个故障处理器的情况下。
背景技术
GB-A-2370380号专利公开了一种处理器阵列,其中,数据处理功能分布于阵列的处理器中,处理器通过总线和开关元件连接,开关元件决定数据如何从一个阵元传送到另一个阵元。
半导体器件的制造过程并不是完美的。这些不完美导致分布于硅晶片上的点缺陷。在给定缺陷密度的情况下,管芯尺寸越大,器件具有缺陷的比例就会越高。对于大多数半导体器件,如果管芯上任意位置发生缺陷,那么就必须废弃该管芯,因为器件中的所有电路都要求正确运行。
对于这一个已知的例外是存储装置的情况,诸如随机存储器(RAM)。这种情况下,因为大量装置包括存储单元的规则阵列,存储单元的备用(冗余)列可以结合到装置中,该冗余列可以代替在检测期间检测到有缺陷的列。为了实现有缺陷列的替换,通过激光熔丝控制,在电路中加入开关。根据检测获取的信息结果,选择性地烧断这些熔丝。这提高了可以从晶片获取的可用装置的比例。

发明内容
本发明提供了一种处理部件阵列,其可以结合一定程度的冗余。特别地,该阵列除实现预定功能或装置功能所要求的数量以外,还包括一个或多个备用、或冗余的阵元行。如果在装置中的一个处理器出现故障,那么包含缺陷处理器的整行都不再使用,并用备用行来代替。
根据本发明的第一方面,提供了替换故障处理器元件的方法,在包括排列在行和列阵列中的多个处理器元件的处理器阵列中,处理器元件通过在行和列之间延伸的总线以及通过位于总线交点处的开关相互连接,阵列包括冗余行,最初不给冗余行分配任何功能。如果发现第一处理器元件出现故障,就将功能从包含所述第一处理器的行去除,替代地,将该功能分配到冗余行。
这样,允许执行所要求的功能,甚至在包括有故障处理器元件的装置上仍然可以执行所要求的功能。这可以显著提高从制造过程中获取的可用装置的比例。
根据本发明的第二方面,提供了一种处理器阵列,其包括多个处理器元件,排列在行和列阵列中,其中,各行处理器元件的排列与其他各行处理器元件的排列相同;水平总线对,在处理器元件行之间延伸,每个总线对都包括在第一方向上传送数据的第一水平总线和在与第一方向相反的第二方向上传送数据的第二水平总线;垂直总线,在处理器元件列之间延伸,其中,一些对处理器元件的相邻列没有在其间延伸的垂直总线,但其他对相邻列之间有在第一方向上传输数据的两条总线,和在与第一方向相反的第二方向上传输数据的两条总线;以及,开关,位于水平总线与垂直总线的交点上。
该阵列,特别是垂直总线的非均匀排列,允许最有效地运用根据本发明第一方面所述的方法。


为了更好地理解本发明,并示出本发明是如何实施的,下面将通过实施例和附图进行说明,其中图1是根据本发明的阵列的框图。
图2是在图1的阵列中的开关的方框图。
图3是图1的阵列的一部分的半导体晶片的放大框图。
图4是用于制造图1的阵列的半导体晶片的示意图。
图5是图1的阵列的方框图,示出了可能的故障的影响。
图6至图16是图1的阵列的一部分的放大方框图,示出了如果发生可能缺陷的装置的操作。
具体实施例方式
图1示出了根据本发明的阵列结构。该阵列结构通常在第GB-A-2370380号专利与第GB-A-2370381号专利中描述,在此结合其作为参考,以下将进一步描述本发明所作的修改。
该阵列包括排列成矩阵的多个阵元20。为了简单说明,图1中所述实例含有6行,每行包括10个阵元(AE0,AE1,...,AE9),给出了总共60个阵元,但是本发明的实际实施例可以具有例如总共超过400个阵元。每个阵元20都通过各自的连接器50连接到从左向右延伸的各自的第一水平总线32,并连接到各自的从右向左延伸的第二水平总线36。水平总线部分32、36在开关55处连接到向上延伸的垂直总线部分41、43和向下延伸的垂直总线部分42、44。特别地,每个开关55都具有左至右输入水平总线部分32,右至左输入水平总线部分36,两条向上的输入垂直总线部分41、43,和两条向下的输入垂直总线部分42、44,加上左至右输出水平总线部分32,右至左输出水平总线部分36,两条向上的输出垂直总线部分41、43,和两条向下的输出垂直总线部分42、44。
所有水平总线部分32、36和垂直总线部分41、43、42、44都为32比特位宽。
因此,处理器元件的一些相邻列对(如AE1与AE2,AE6与AE7)之间没有在其间延伸的垂直总线,其它相邻列对有(如AE4与AE5,AE8与AE9)在其间延伸的在第一方向上传送数据的两条总线,和在与第一方向相反的第二方向上传送数据的两条总线。在一组四列阵元后提供两对垂直总线,而不是在一组两列阵元后提供一对垂直总线,这种不均匀间隔排列将更有效率,原因将在下面描述。
图2示出一个开关55的结构,各开关是相同的。开关包括随机存储器RAM 61,其预加载有数据。开关55由控制器60在本地控制,控制器包含计数器,计数器计数按预定顺序排列的RAM 61的地址。无限重复该相同的顺序,以系统时钟周期测量,一次完成该顺序所占用的时间被作为顺序周期。在各个时钟周期,来自RAM61的输出数据被加载到寄存器62,并且使用多路复用器64将寄存器62的内容用来选择用于每个输出总线66的源。
用于输出总线66的源可以为六条输入总线的任意一条,即左至右输入水平总线部分LeftIn,右至左输入水平总线部分RightIn,两条向上的输入总线部分Up1In和Up2In,或两条向下的输入总线部分Down1In和Down2In。此外,可以选择值零作为输出总线的源,也可以是在以前时钟周期期间输出总线上的值,该值在寄存器62中的一比特的控制下被加载到寄存器65中。
当不使用输出总线时,最好选择零作为源,以使总线上的值将持续几个时钟周期保持不变,从而保持电能。
尽管用于每个输出总线的一个开关55包括六个这样的多路复用器和相关的寄存器,在图2中,仅示出了一个多路复用器64和其相关寄存器65。
开关55的最大组件是RAM 61,尽管通常按RAM标准来看,这还是小的。因此,RAM 61的尺寸在很大程度上由RAM的地址解码部规定。因为这不取决于开关55中切换的总线数量,所以与在每组两列阵元后提供一对垂直总线和在每行中提供一个开关相比,在一组四列阵元后提供两对垂直总线和在每行中提供一个开关,可以使器件的整体尺寸缩小。
图3更详细地示出了在连接器50处每个阵元20如何连接到水平总线部分32、36。每个这样的连接器50都包括多路复用器51,该总线部分被定义为在两个这样的多路复用器51之间的部分。每个左至右水平总线部分32通过连接部21连接到各自阵元20的输入。各阵元20的输出22通过另一个多路复用器51连接到各自的右至左水平总线部分36。
每个多路复用器51都由相关阵元20中的电路(未显示)控制,该电路决定多路复用器是输出输入总线部分上的数据还是阵元输出上的数据。
阵列中的所有通信都以预定顺序发生,持续预定数量(例如,1024个)的时钟周期(以上描述的顺序周期)。每个开关和每个阵元都包含计数器,计算顺序周期。如上所述,在该序列的每个周期中,每个开关都从八个可能源中一个选择数据到其六条输出总线的每条上。在预定周期,阵元通过各自的连接部21从各自的输入总线部分加载数据,且用多路复用器51切换数据到各自的输出总线部分。
每个阵元都可以控制它连接的多路复用器,并在正确的时间按顺序从总线部分加载数据,并可以对数据执行一些有用的功能。该有用的功能可能只包括储存数据。
然而,在本发明的优选实施例中,每个阵元都包含复杂的微处理器,其区域比每个开关区域大几倍。尺寸上的区别使本发明特别地有效,因为本发明关注于克服阵元而不是开关中的故障。
如果阵元不全相同,那么为使本发明最有效地可用,至少在阵列中的每一列中所有阵元应当相同。
半导体器件的制造过程是有缺陷的。这些缺陷导致分布于硅晶片上的点缺陷。对于在给定成熟状态的给定制造过程,该缺陷密度将大致恒定。图4示出了这种情况,显示了圆形硅晶片60的边界,各个正方形方块61用于制造独立器件,和随机地分布缺陷62。
对于给定的缺陷密度,管芯(die)尺寸越大,器件具有缺陷的比例就会越高。
对于大多数半导体器件,如果管芯上任意位置发生缺陷,那么就必须废弃该管芯,因为器件里的所有电路都要求正确运行。
根据本发明,处理部件集成了一定的冗余度。更特别地,阵列中包括除实现预定功能或设备功能所要求的数量以外,还包括一个或多个备用(冗余)的阵元行。如果在一个处理部件中出现缺陷,不管缺陷出现在部件制造期间还是在运行期间,包含缺陷处理部件的整行都不再使用,并用备用行来代替。
因为列中的阵元都相同(如上所述),所以每行阵元都相同,包含缺陷处理部件的行的全部功能都可以由备用行来执行。
图5示出图1所示的处理部件阵列,具有表示为Row n(n=0,1,...,5)的六行,每行中表示为AEnm(m=0,1,...,9)的十个阵元。例如,如果在第二行中的任意一个阵元被检测有缺陷,那么不使用该整行阵元。更具体地,如果最初打算备用行应为第五行,产品检测过程检测到在第二行中的阵元有缺陷,那么将本来要加载到第二行中的阵元中的软件程序加载到对应的第三行的阵元中;将本来要加载到第三行中的阵元中的软件程序加载到对应的第四行的阵元中;将本来要加载到第四行中的阵元中的软件程序加载到对应的第五行中的阵元中。
将最初用于任何一个阵元AEnm的软件程序表示为Prognm,以下定义了程序的完成重分配


除了重新分配在阵元上运行的程序,开关中RAM的内容也必须改变,使得数据被传送到将使用它的阵元。从上表可以看出,程序以这样的方式被重新分配,方式为在有缺陷阵元行之上的阵元中运行的程序在相同的阵元上运行,而在有缺陷的阵元之行中或之下的阵元中运行的程序,则在它们的原始行下面的行中的对应阵元上运行。因此,以同样的方式,RAM被程序重调,使得数据所占用的通路随着有故障的行和它下面的行下移,而有故障的行上面的行保持在原来的位置。当通路开始于或结束于有故障的行或穿过有故障的行时,情况将稍微复杂一些。借助图6将说明所有情况,图6示出图5的阵列的一部分的详细示图,图7至图16示出用于开关程序重调请求的具体实例。
如图5所示,假定第二行中的一个阵元已出现故障,因此将不再使用该行中的所有阵元。特别地,参考图6,在AE24、AE25、和AE26上运行的程序分别转移到AE34、AE35、和AE36上。同样地,应在AE34、AE35、和AE36上运行的程序转移到AE44、AE45、和AE46上,等等。在图7至图16中,粗虚线表示用于原来的(无故障)配置的资源(连接器、开关或多路复用器),双线表示用于新配置的资源,粗实线表示同时用于原来的配置和新配置的资源。
根据下面陈述的规则发送数据。
如果水平通路在故障行上面,那么不作改变。
对于有故障的行或它下面的行上的水平通路,所有的通路都下移一行。图7示出从AE24到AE25的通路(经由总线部分80与81和开关SW21)移至从AE34到AE35(经由总线部分88与89和开关SW31)的通路。
如图8所示,整体位于有故障的行上面的通路不受影响。
整体位于有故障的行下面的通路与以上描述的水平通路的方式相同,全部下移一行。
从下面到有故障的行的通路以与整体在有故障的行下面的通路相同的方式处理,且在图9中示出。示出从AE35到AE25(经由总线部分95、开关SW41、总线部分91、开关SW31、总线部分83、开关SW21、和总线部分81)的通路移到从AE45到AE35(经由总线部分105、开关SW51、总线部分101、开关SW41、总线部分91、开关SW31、和总线部分89)的通路。
从上面到有故障的行的通路(其中,原通路包括至少一条垂直总线部分)要求垂直通路必须通过一个以上的开关向下延伸。如图10所示。示出从开关SW11到AE25(经由总线部分73、开关SW21、和总线部分81)的部分通路,从开关SW21延伸到AE35(经由总线部分85、开关SW31、和总线部分89)。
从有故障的行上面的行到有故障的行,不使用任何垂直总线部分,形成一种特殊情况。特别地,如图11所示,原通路不包含延伸的垂直总线部分,不同于图10中所示的实例。结果,必须插入新的垂直部。这将导致潜在的问题,因为在请求的时隙中,为新通路请求的垂直总线部分可能已经被分配给另外的通路。
因此,当分配通路时,该要求必须加以考虑。特别地,不使用任何垂直总线部分,使任何通路从一行到另一行时,那么系统应保留一个在总线部分上的连接,如果在两行中的低行中出现故障,请求该连接。
如上所述,垂直总线的不均匀间隔分布(其中,一组四列阵元后提供两对垂直总线)与可替换的更均匀的间隔分布(在一组两列阵元后提供一对垂直总线)相比,允许这些连接被更有效地保持。
在图11中,从阵元AE15到阵元AE25的通路(经由总线部分75、开关SW21、和总线部分81)被移动,不使用总线部分81,开关SW21的通路延伸到阵元AE35(经由垂直总线部分85、开关SW31、和总线部分89)。通过该时隙,必须通过原通路分配程序保留总线部分(或从开关SW21延伸到SW31的其他总线部分82)85上的连接。
如图12所示,从有故障的行开始并向下的通路以与整体在有故障的行下面的通路相同的方式处理。例如,从阵元AE25到AE35(经由总线部分87、开关SW31、和总线部分89)的通路,被移到从阵元AE35到AE45(经由总线部分95、开关SW41、和总线部分107)的通路。
应当注意,这种情况中,原通路不包括任何垂直总线部分,而且替换的通路也不包括任何垂直总线部分。结果,这不会导致根据图11中描述的潜在问题。
如图13所示,从有故障的行开始并向上的通路(其中,原通路包括至少一个垂直总线部分)通过一段垂直总线部分延伸。这里,从阵元AE25到AE15(经由总线部分87、开关SW31、总线部分83、开关SW21、总线部分71、和开关SW11)的通路被切换,使它经由总线部分95、开关SW41、和总线部分91,从阵元AE35开始到开关SW31,从而像前面继续到达AE15。
图14示出从有故障的行到上面的行、不使用任何垂直总线部分的通路。这和上面图11中所示的情况相似。特别地,从阵元AE24到AE14(经由总线部分80、开关SW21、和总线部分74)的通路,被替换为从阵元AE34到AE14(经由总线部分88、开关SW31、总线部分84、开关SW21、和总线部分74)的通路。因此,在该时隙,必须通过原通路分配程序保持总线部分84(或从开关SW31延伸到开关SW21的其他总线部分83)上的连接,以避免冲突的可能性。
图15(向上延伸)和图16(向下延伸)示出穿过有故障行的通路。这些情况中,在有故障的行下面的所有垂直总线部分分配都下移一行,且将额外总线部分分配在有故障的行中。
本领域技术人员应当明白,在上述各种情况中确定请求的每个开关的RAM 61的内容的处理程序。
上述描述示出怎样用备用行来替换单一有故障的行。如果阵列中包括两个备用行,那么可以替换两个有故障的行。替换过程和上述过程完全相同,不过要重复进行两次。第一次,替换最高的故障行,忽视第二故障行。然后,替换低故障行。原理上,任何数量的故障行都可用相同的方式替换,但是在替换数量上会有实际限制,因为在将各行替换后垂直通路会更长(因为通路在有故障的行上显著地“伸长”了),这将延长数据的传输时间。最终,该延长的传输时间将意味着不能按要求的速率处理数据。
如果产品测试中检测到故障,那么关于哪一行含有故障的信息可以用于在测试下烧断设备上的激光熔丝。将程序加载到阵元上和操作开关的RAM中的数据的处理过程,可以在设置阵列时使用该信息。可选地,本文所描述的方法可以用于修复实际操作中中发生的故障。在这种情况中,可以通过运行在阵元上的测试软件来检测阵元中的故障。
本文所描述的方法和设备,主要涉及一种包括微处理器的处理器元件的分布。如上所述,处理器元件可以简单地储存数据。相反地,每个处理器元件本身可以包含更小的处理器元件阵列。
权利要求
1.一种替换故障处理器元件的方法,在包括以行和列阵列设置的多个处理器元件的处理器阵列中,所述处理器元件通过在行和列之间延伸的总线以及位于所述总线交叉点上的开关相互连接,所述阵列包括冗余行,最初不给冗余行分配功能,所述方法包括如果发现第一处理器元件有故障,从包含所述第一处理器元件的所述行去除功能,并分配功能到冗余行。
2.根据权利要求1所述的方法,包括将从包含所述第一处理部件的行去除的功能分配到相邻行;以及根据需要,将功能从所述相邻行重新分配到与所述相邻行相邻的另一行,直到功能已经分配到所述冗余行。
3.根据权利要求2所述的方法,其中,所述冗余行位于所述阵列的边缘。
4.根据权利要求1或2所述的方法,其中,在所述处理器阵列的操作中,在时隙期间,在处理器元件的行之间延伸的水平总线上以及在处理器元件的列之间延伸的垂直总线上,在处理器元件之间传输数据,还包括当分配功能到所述处理器元件时,在不使用任何垂直总线的情况下,在第一时隙期间定时将数据从第一处理器元件传输到第二处理器元件,为在垂直总线部分上的所述数据传输保留所述时隙,所述垂直总线部分用于功能重新分配的情况下,在确定所述第一处理器元件或所述第二处理器元件出现故障后进行功能的重新分配。
5.一种将功能分配到处理器阵列的方法,所述处理器阵列包括多个以行和列阵列设置的处理器元件,所述处理器元件通过在所述行和列之间延伸的总线以及位于所述总线交叉点上的开关相互连接,所述方法包括在处理器元件出现故障的情况下,不给包括所述处理器元件的行中的任何处理器元件分配功能。
6.一种处理器阵列,包括以行和列阵列设置的多个处理器元件,其中每行中的处理器元件的排列和其他各行中的处理器元件的排列相同;在所述处理器元件的行之间延伸的水平总线对,每个总线对都包括在第一方向上传送数据的第一水平总线,和在与第一方向相反的第二方向上传送数据的第二水平总线;在所述处理器元件列之间延伸的垂直总线,其中,一些相邻处理器元件列对之间没有在其间延伸的垂直总线,而其他相邻列对具有在第一方向上传送数据的两条总线和在与所述第一方向相反的第二方向上传送数据的两条总线;以及位于所述水平总线与垂直总线的交叉点的开关。
7.根据权利要求6所述的处理器阵列,其中,每个开关都包括多条输入总线和多条输出总线;存储装置,将信息储存在其每个地址上,指示哪些数据将被切换到各输出总线上去;以及控制器,用于按预定顺序计数通过所述存储装置的地址。
8.根据权利要求7所述的处理器阵列,其中,所述存储装置储存指示所述数据是否将被切换到各输出总线上的信息,所述信息包括在所述输入总线中的一条上的所述数据值;在所述输出总线上的先前数据值;或所述值零。
全文摘要
本发明提供了一种集成有一定冗余度的处理器阵列。特别地,除实现预定功能或设备功能所要求的数量以外,处理器阵列还包括一个或多个备用的、或冗余的阵元行。如果在设备中的一个处理器出现故障,那么不再使用包含有故障处理器的整行,并用备用行来代替。
文档编号G11C29/00GK1675633SQ03819820
公开日2005年9月28日 申请日期2003年6月27日 优先权日2002年7月19日
发明者威廉·罗宾斯, 迈克尔·戴维森, 西蒙·豪厄尔, 安东尼·彼得·约翰·克莱唐 申请人:皮科芯片设计有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1