具有双重同步和异步组件的集成电路的制作方法

文档序号:6537227阅读:407来源:国知局
专利名称:具有双重同步和异步组件的集成电路的制作方法
技术领域
本发明涉及一种集成电路,该集成电路含有至少两个类似的、可以根据主时钟系统发出的时钟以微同步工作模式工作的主组件,和一个比较器元件,来自主组件的相互对应的输出信号送到比较器彼此进行比较,如果这些信号之间一致性不足,那么比较器输出就输出一个故障信号。
在很多集成电路的应用中,特别是在调用处理系统中,出于安全的原因需要增加故障保护。这是通过集成电路中的自监控和故障检测来完成的。在很多情况下,集成电路既包含用公共的外部或内部产生的时钟来驱动的时钟控制的主组件,又包含独立于此时钟的组件。后一个组件就是指异步组件。众多应用中的一个例子是PCI模块(“个人计算机接口”),其包含的PCI电路作为异步组件来控制PCI总线。
集成电路中用于自监控的一个已知做法是基于用软件实现测试的;这些软件测试定期的进行调用,例如通过测试循环。当然,这种解决方案需要用户实现一个合适的、能够可靠检查所有需要检查的功能的测试程序。这样的一个软件测试也需要一个不是微不足道的时间分配,否则分配的时间会被用于应用任务。此外,只有在测试完成的时候才会检测到故障状态。现有的BIST解决方法(即“内置自检”)使用硬件实现了对集成电路的自检。但是,BIST自检在正常情况下需要2-10ms或更多的执行时间,在这种情况下也是要在测试完成的时候才会检测到故障。
完成故障保护的解决方案的另一种方法是在集成电路中包括双重的基本硬件部分。因此电路包含至少两个其主组件的同样实现。举例来说,这种双重电路工作的方式是一个主组件作为活动组件完成电路的任务,而另一个主组件是被动的,工作在空闲模式;或者两个主组件以“串联运行”同时微同步的工作。
WO 94/08292描述了一种包括两个完全相同、彼此互连的控制单元的双重处理器控制单元,每个单元包括一个处理器单元、一个RAM数据存储器和外围电路。每个处理器单元被建立以确定它是活动的还是处于备用模式。活动的处理器单元在两个双重的RAM存储器中同步的或在两个RAM存储器中的一个中执行到RAM存储器的写循环。备用单元保持备用状态,直到因为活动单元中出现故障,为了替换一直到那时还处于活动状态的单元而被激活。因此基于WO 94/08292的两个处理器单元的作用从根本上是不对称的;原则上包括主存储器在内的外围组件只由活动处理器单元访问。例如,如果不与同时运行的第二处理器单元进行比较,那么活动处理器单元中的任何故障都会导致不正确的或以错误的状态写入外部区域中的主存储器之中,这在转换到前面备用的单元之后首先需要随后进行的纠正。
此外,WO 94/08292中两个处理器单元中的每一个都配有两个以微同步模式工作的微处理器。两个微处理器的微同步由比较器分程序监控,该程序一直在检查两个处理器的地址、数据和控制信号的一致性;任何的不一致都会被认为是有关处理器单元中的一个故障。因此微处理器对在微同步工作中的故障产生一个给整个处理器单元的中断信号或复位。在一个处理器单元中配置双重微处理器形成一个由标准时钟信号驱动的“串列单元”。但是,WO 94/08292没有说明如何运行异步组件,即独立于双重微处理器的时钟运行的组件。
因为即使是在微同步模式,所包含的组件还是会带着剩余时钟错误继续工作,所以在处理异步输入信号时,特别是如果它们在该时钟错误的区域中更改时,存在的风险是这些输入信号会被各个微同步的组件进行不同的解释。因此这将会造成快速失去微同步,并会触发一个故障状态。
所以本发明的一个目标是双重的—即包含至少两个主电路的—集成电路,其中主电路包含异步组件,使这些组件没有机会破坏基本电路的微同步工作时序。
本发明根据在介绍中叙述的一种使用具有至少一个同步装置的电路的集成电路来达到这个目标,该电路由主时钟系统的时钟驱动,用于将异步信号同步到该时钟,该同步装置的异步输入信号是通过至少一个输入送给它的,且该同步装置具有至少一个信号输出,输出由异步输入信号得到的同步信号,该信号连接到主组件的输入,所有主组件的类似输入都分别由同一个信号输出提供。
这种解决方案以一种简单的方法达到了预定的目标,特别是还允许处理异步输入信号,从而可以可靠的提供这些输入信号,不会对主组件的同步工作时序产生不利的影响。
为了另外增加故障保护,本发明的一个优选实施方案也提供了双重的异步组件,该实施方案具有至少一个可以独立于主时钟系统时钟工作的异步组件集合,该/每个集合中的异步组件彼此同样,分别具有至少一个连接到主组件内部输出的异步输入,该/每个集合中的异步组件各自与一个主组件相关联,其中该/每个集合的异步组件有至少一个相关联的同步装置,该装置由主时钟系统的时钟驱动,用于将异步信号同步到该时钟,该同步装置-具有至少一个信号输入,连接到该集合中的异步组件之一的异步输出,以及-至少一个信号输出,输出由这至少一个信号输入的信号获得的同步信号,该信号输出连接到主组件的内部输入,所有主组件的同样输入分别由同一个信号输出提供。
这样可以实现双重的异步组件,并同时确保它们提供的信号不会破坏微同步。只使用异步组件输出信号中的一个并将它提供给所有的主组件的发明思想保证了输入信号对于所有的主组件都是一致的,甚至在异步组件占空比非常不同的情况下也是如此。
本发明一个先进的发展是使用比较器装置对异步组件间的一致性进行额外的检查,集合中异步组件相互对应的输出提供给比较器装置以相互比较。
有利的是,对于异步组件集合或几个集合中的至少一个来说,它能够在不同于主时钟系统的次时钟系统所产生的时钟的基础上工作。在这种情况下,如果为了将信号锁定到有关的次时钟系统产生的时钟,另外使用该时钟来驱动同步装置也是有好处的,以及-具有至少一个连接到主组件之一的内部输出的信号输入,以及-有至少一个信号输出,用于输出从来自这至少一个信号输入的信号所得到的锁定信号,该信号输出连接到有关集合中的异步组件的异步输入,该集合中所有组件的同样输入分别由同一个信号输出提供。
这个对发明思想的发展确保了异步组件的输入一直会有一致的信号提供给它们,因此避免了异步组件中的任何“不一致”,更好的保护了主组件的微同步。
所以为了这些内部输出彼此一致也可以对其进行检查,比较器装置可以方便的得到提供给它的这些内部输出中相互对应的输出,以进行相互比较。
下面使用一个关于一个双重ASIC模块(“特定用途集成电路”)的典型实施方案来更为详细的解释本发明。为此要参考附图,其中

图1给出了根据本发明的集成电路的方框图;图2给出了同步元件的两个优选实施方案;以及图3给出了一个用在图1所示集成电路中比较器装置中的同步电路。
在图1所示的ASIC模块ICT中,核心电路以独立电路HE1、HE2的形式实现了两次,电路HE1、HE2分别包括一个主组件HK1、HK2和至少一个与主组件异步的组件NK1、NK2。举例来说,ASIC模块是一个用于数据处理设备的PCI模块,该PCI模块的主组件依照处理器时钟速度工作,例如100MHz,而用于控制PCI总线的PCI电路作为异步组件依照不同的时钟速度工作,例如66MHz。此外,模块ICT具有不能与独立电路HE1、HE2中的一个相关联的组件,例如比较器VGL和同步单元ESY。
主组件HK1、HK2由共用时钟信号clk(“主时钟”)驱动,例如该时钟可以由外部提供,并根据该时钟信号clk以微同步模式运行。模块ICT的ASIC输入线inp在模块中以已知的方式提供给两个主组件HK1、HK2的输入in1、in2。输入线inp上的信号同样受控于主时钟clk。此外,可以提供“异步输入”ain;这些输入ain可以用于提供没有时钟依赖性或受控于外部时钟的信号。因此这些异步信号—例如在与主组件之间的剩余时钟故障相互作用时—可靠的用在与主时钟相同的时钟周期中,异步输入ain通过同步单元ESY提供给对应的输入iy1、iy2。这防止了微同步模式中两个主组件HK1、HK2之间的任何“不一致”。在同步单元中,每个输入ain发送到由时钟clk驱动的各个同步组件SYL的输入iy(图2),其输出oy提供给主组件的两个对应输入(分别是输入iy1、iy2中的一个)。例如如图2a所示,同步元件可以使用D寄存器来制造。有利的是,同步元件可以使用很多,例如两个串联的D寄存器来制造,如图2b所示。这使得有关的信号可以从较快的时钟系统送给很多时钟,或者能够实现延迟时间补偿。
第一主组件中的一个HK1的输出ou1发送到ASIC模块ICT作为ASIC输出oup。第二主组件HK2的输出ou2用于检查双重电路的正确运行。因此,一个独立电路HE1作为主电路运行,而另一个独立电路HE2用于检查。为了后一个目的,主组件HK1、HK2的所有输出ou1、ou2都提供给比较器VGL。请参考图3,在各个时钟周期中两组输出ou1-1,......,ou1-n,ou2-1,......,ou2-n在比较器单元KOM中的比较器VGL中相互进行比较。比较器单元使用,例如,EXOR门制造。计算逻辑单元ORS使用一个OR函数组合所有的比较器输出,存储结果—存储器单元CRS—并使用输出vgs用已知的方法触发一个故障警报,例如通过对应的中断/重置输入rst用中断或重置来触发。在组件HK1、HK2中也可以读出故障状态,例如通过输入rst,并使用软件进行处理,例如用自诊断程序。
根据本发明,ASIC电路中的异步函数块同样进行复制;但是根据本发明用于锁定的接口只实现一次,下面会更为详细地解释。
如图1所示,每个独立电路HE1、HE2都各自有一个异步组件NK1、NK2。异步组件相互等效,符合复制ASIC组件的原则;在给出的例子中,它们由外部提供的时钟xck所形成的分离时钟nck(“次时钟”)驱动,例如使用时钟产生器NCK。在给出的例子中,这个外部时钟xck与主时钟clk不同;当然它们可以是相同的。举例来说,主时钟可以是100MHz的时钟,次时钟可以是33MHz的时钟。至于它们所基于的时钟系统,由次时钟nck驱动的异步组件NK1、NK2代表一种分离时钟系统,相对于以主时钟clk为基础的、用于主组件HK1、HK2的“主时钟系统”HCS,分离时钟系统在此情况下可以称作“次时钟系统”。在此上下文中应该提到的是,术语“主”和“次”的使用不涉及任何时钟的,例如,分级结构,选择它们只与微同步相关(这主要是在主组件中实现的)。
主组件HK1、HK2及其各自关联的异步组件NK1、NK2通过同步装置SYN相互连接起来。同步装置首先用于锁定来自主组件内部输出的信号,该信号需要作为输入信号提供给异步组件,其次用于同步来自异步组件的异步输出信号,该信号反过来提供给主组件的内部输入。
特别的,第一主组件HK1的内部输出eo1提供给异步组件NK1的输入ni1。与这里所需要的异步时钟nck的对准是使用同步元件NDL来完成的,同步元件NDL的输入ssi与内部输出eo1相连。举例来说,同步元件NDL是一个用时钟nck驱动的D寄存器或(比较图2b)使用两个串联的D寄存器制成的。
同步元件NDL的输出nso不仅与第一异步组件NK1的输入ni1连接,还与另一个异步组件NK2的对应输入ni2连接。从而在本发明的基础上,内部输出eo1提供给了全体异步组件集合NK1、NK2的相关输入ni1、ni2。
与此输出eo1对应的第一主组件HK2的输出eo2只用于比较。为此,来自两个输出eo1、eo2的信号提供给比较器VGL,如图1所示。这些信号按照与比较输出ou1、ou2基本相同的方式进行比较,因此该比较在图3中没有显式的进行说明。
其它来自主组件的内部输出信号(图1中没有给出)按照为输出eo1、eo2及相关的异步组件的输入ni1、ni2使用的相同的方式,为异步组件进行转换。
由异步组件NK1、NK2返回到主组件HK1、HK2的异步输出信号以类似的方式进行同步。在图1使用了异步输出no1、no2的例子对此进行了说明。与来自主时钟系统的时钟clk同步是使用同步元件SDL来完成的,同步元件SDL的输入nsi连接到异步组件之一NK1的输出no1。在这种情况下,举例来说,同步元件SDL也是由时钟clk驱动的单或双(比较图2b)D寄存器。其输出sso与第一主组件HK1的内部输入ei1和另一个主组件HK2的对应输入ei2两者连接。在本发明的基础上,异步输出no1提供给所有的主组件HK1、HK2的相关输入ei1、ei2。
与内部输出eo1、eo2的情况一样,来自两个异步输出no1、no2的信号提供给比较器装置VGL。这是本发明的一个独特的优点,使得可以监控系统中双重异步组件的同步。图3的例子中说明了对来自输出no1、no2的异步信号的比较和对比较结果的处理。输出信号no1、no2使用比较器单元KOM不断的进行比较,一个OR函数—门ORN—用来组合有关的次时钟系统的比较结果。然后将各个时钟系统以这种方法获得的比较信号—门ORS和ORN的输出—彼此进行同步。为此,有利的是它们是由各自分离的时钟clk或nck驱动的各自的D寄存器发送的。然后使用同步电路CPD将用于“较慢”的时钟系统的比较信号,此处是用于33MHz时钟nck,转换成较快的时钟,此处是100MHz时钟clk。最后,将现在是基于标准时钟的比较信号组合起来,例如使用一个在下行连接有一个存储器CRS的OR门ORR。本发明可以在几个系统时钟周期之内快速和直接的检测到故障状态,例如在图3所示的例子中是在不超过两个次时钟nck的时钟周期加上OR门和存储器触发器CRS的延迟时间之后。
对主组件是按照对输出no1、no2和相关内部输入ei1、ei2使用的相同的方式来转换其它的异步输出信号的(图1中没有给出)。
在此处应该指出,图1只给出了异步组件的一个典型集合NK1、NK2。同样对于很多异步组件可以使用上面以类似方式对各自的异步组件应用的方法在专用电路中实现;在此上下文中,不同的异步组件集合也可以分别由不同的次时钟来驱动。
本发明允许在集成电路,特别是ASIC模块,的微同步组件和异步组件两者之中进行自监控,其软件和硬件故障不是在检测完成的第一时间,例如在自检程序中,而是在运行期间立刻被发现的。因此合适的软件可以非常快速的对故障作出反应。在副本中包含异步组件及通过比较器装置进行监控意味着快速自监控也可以用于这些组件,与通过BIST程序进行的耗时的监控相比特别有利。
权利要求
1.一种集成电路(ICT),具有至少两个同样的、可以根据主时钟系统(HCS)产生的时钟(clk)以微同步工作模式工作的主组件(HK1,HK2),和一个比较器装置(VGL),来自主组件相互对应的输出(ou1,ou2)的信号提供给该装置以进行相互比较,如果这些信号之间一致性不足,比较器装置有一个比较器输出(vgs)输出一个故障信号,其特征在于至少一个同步设备(SYN,ESY),由主时钟系统产生的时钟(clk)驱动,将异步信号同步到该时钟(clk),同步设备有通过至少一个输入提供给它的异步输入信号(nsi,ain),并且同步设备有至少一个信号输出(sso)用于输出由异步输入信号获得的同步信号,该信号输出连接到主组件(HK1,HK2)的输入(ei1,ei2,iy1,iy2),所有主组件的同样输入分别由同一个信号输出提供。
2.如权利要求1中要求的集成电路(ICT),其特征在于至少一个可以独立于主时钟系统产生的时钟(clk)运行的异步组件集合(NK1,NK2),该/每个集合中的异步组件彼此同样,分别具有至少一个连接到主组件(HK1,HK2)内部输出(eo1,eo2)的异步输入(ni1,ni2),该/每个集合中异步组件与各自的一个主组件相关联,其中该/每个异步组件集合(NK1,NK2)有至少一个关联的同步设备(SYN),该同步设备(SYN)由主时钟系统产生的时钟(clk)驱动,用于将异步信号同步到该时钟(clk),该同步设备-有至少一个信号输入(nsi),与该集合异步组件之一(NK1)的异步输出(no1)相连,以及-至少一个信号输出(sso),用于输出由来自这至少一个信号输入(nsi)的信号获得的同步信号,该信号输出连接到主组件(HK1,HK2)的内部输入(ei1,ei2),所有主组件的同样输入分别由同一个信号输出提供。
3.如权利要求1或2要求的集成电路,其特征在于,集合中异步组件(NK1,NK2)的相互对应的异步输出(no1,no2)提供给比较器设备(VGL)以进行相互比较。
4.如权利要求1到3中的一个要求的集成电路,其特征在于,异步组件集合(NK1,NK2)或几个集合中的至少一个可以在不同于主时钟系统的次时钟系统(NCS)产生的时钟(nck)的基础上工作。
5.如权利要求4中要求的集成电路,其特征在于,为了将信号同步到这个时钟(nck),异步设备(SYN)另外由有关的次时钟系统(NCS)产生的时钟(nck)驱动,以及-有至少一个连接到主组件之一(HK1)的内部输出(eo1)的信号输入(ssi),以及-有至少一个信号输出,用于输出由来自这至少一个信号输入(ssi)的信号得到的同步信号,该信号输出连接到有关集合中异步组件(NK1,NK2)的异步输入(ni1,ni2),集合中所有组件的同样输入分别由同一个信号输出提供。
6.如权利要求5中要求的集成电路,其特征在于,由这些内部输出(eo1,eo2)中相互对应的输出得到的信号提供给比较器设备(VGL)以进行相互比较。
全文摘要
本发明涉及一种IC,它包含可以微同步工作的双重主组件(HK1,HK2)和至少一个用于将异步信号与主时钟(clk)同步的同步单元(SYN,ESY)。目的地为主组件的异步信号(no1、no2、ain)通过同步单元进行传递、同步并送给主组件(HK1,HK2)的输入(ei1,ei2,iy1,iy2)。在有双重异步组件(NK1,NK2)的情况下,只同步一个异步组件的输出并送给所有的主组件(HK1,HK2)。
文档编号G06F11/16GK1379877SQ00814504
公开日2002年11月13日 申请日期2000年10月17日 优先权日1999年10月18日
发明者M·哈梅斯卢, K·克劳泽 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1