CN100472465C - Vlsi芯片中的分散容错时钟脉冲生成 - Google Patents
Vlsi芯片中的分散容错时钟脉冲生成 Download PDFInfo
- Publication number
- CN100472465C CN100472465C CNB2005800241666A CN200580024166A CN100472465C CN 100472465 C CN100472465 C CN 100472465C CN B2005800241666 A CNB2005800241666 A CN B2005800241666A CN 200580024166 A CN200580024166 A CN 200580024166A CN 100472465 C CN100472465 C CN 100472465C
- Authority
- CN
- China
- Prior art keywords
- clock
- clock pulse
- time
- fault
- chip
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1604—Error detection or correction of the data by redundancy in hardware where the fault affects the clock signals of a processing unit and the redundancy is at or within the level of clock signal generation hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Hardware Redundancy (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明涉及一种在硬件系统特别是VLSI芯片、片上系统、IP核、PCB和PCB系统中用于分布式容错时钟脉冲生成的方法,所述方法的特征在于,(a)借助多个相互通信的容错时钟脉冲同步算法(TS-Alg)分布式地生成系统时钟脉冲,而不用外部或者内部时钟振荡器,其方式是i)任意数量的这种TS-Alg通过时钟脉冲信号的任意的、永久的和易受瞬时错误影响的网络(TS-Net)相互交换信息,ii)每个TS-Alg与至少一个功能单元(Fu1,Fu2,…)相联系,生成它们的本地时钟脉冲,(b)所有本地时钟脉冲都被确保维持频率同步,使得在任意的时间内任意两个本地时钟脉冲信号相差最大为给定的不变数量的时钟周期,使得全局系统时钟脉冲可从每个本地时钟脉冲中通过合适时钟脉冲转换电路(除法器等)的下行线路连接来得出,所述系统时钟脉冲使芯片上的任何功能单元能够进行全局同步通信;(c)指定数量的瞬时和/或永久误差会出现在TS-Alg或者TS-Net中,而不影响时钟脉冲生成和/或同步准确度;以及(d)系统时钟脉冲自动地达到最大可能的频率,最大可能的频率由所使用的制造工艺、TS-Alg和TS-Net的布局和布线选择以及工作条件(温度,电源电压等等)来确定。
Description
I 概述(参看图4和图5)
数字VLSI芯片未来的发展特点是不断地增加集成密度、复杂性和提高时钟频率。然而,这增加了在所有功能单元(Fu)中提供同步设计范例所需的同步时钟脉冲的难度:
●信号需要完整的时钟脉冲周期(以及更多)以便寻址芯片上的所有功能单元。
●时钟树的偏差优化需要日益昂贵的程序。
●时钟树和缓冲器消耗大量功率和表面区域并且导致显著的功率供给问题和干扰辐射。
●仅可以根据布局布线(place&route)确定最大时钟脉冲频率(并且必须保守地选择)。
此外,时钟信号是典型的单个故障点:
●外部石英晶体昂贵、体积大并且机械上敏感。
●时钟树中的每个(甚至瞬时的)误差都会导致系统故障。
同时,线路延迟支配VLSI芯片中的开关时间的事实,使得能够构思一种用于时钟脉冲生成的、由容错的分布式系统领域得到的替代方法:时钟同步。在这样的情况下,基本概念是将独立的本地时钟脉冲生成单元(TS-Alg)分配给所有(或者足够多的)功能单元,以便将本地时钟脉冲(microtick)提供给每个功能单元。所有TS-Alg都完全相互连接并且使用该TS-Net来使它们的本地microtick相互同步。
所使用的方法的同步准确度II=II(Θ)仅取决于TS-Net中最慢与最快路径的比率Θ(一定程度上对延迟不敏感)。相应于所希望的全局同步时钟脉冲的macrotick可以通过后接(可编程的)除法器÷II而从microtick中获得。该方法的好处是:
●芯片生成它自己的时钟脉冲并且因此不需要外部振荡器。不像简单的环形振荡器,整个芯片都涉及时钟脉冲生成,这先验地提高了频率稳定性。此外,可以实现温度补偿。
●芯片自动以最高的可能频率工作,该频率取决于由TS-Net的布局布线导致的延迟和工作条件。实际上,可以用适当地确定TS-Alg的参数来屏蔽掉(mask out)最慢路径。
●同步的范例不仅可用于本地功能单元的设计(基于microticks)而且在功能单元之间的全局通信时也可以保留(通过microticks)。
●该方法容忍TS-Net中可配置数量的瞬时和永久误差,这可被证明是正确的。
●TS-Alg的数量可以根据需要最佳地选择,其中可以监控时钟脉冲生成的开销(表面积,...)。
●该程序也为同步复位的问题提供了很好的解决方案,该问题在非常大的具有高时钟率的芯片的情况下难以解决。
II 详细说明
概要-鉴于随着钟脉冲分布在典型同步VLSI芯片中而增加的问题,提出了一种新方法,其不用外部时钟脉冲源(振荡器、石英晶体-参看图4和5)来管理并且还保留了同步设计的范例。由借助异步实施的分布式算法生成用于“岛区域”(一个或者多个空间上邻接的功能单元)的本地时钟脉冲构成了工作原理。这些本地时钟脉冲的所保证的同步精确度也允许生成全系统的全局时钟脉冲。由于算法的分布性、其容错性和时间无关性可以生成强健且容错的时钟脉冲,该时钟脉冲可以以灵活的方式适应时间相关的参数(其它工艺或者工作条件)中的改变,并且甚至在物理上相互远离的岛区域之间也允许快速同步的通信。由于全局通信异步地发生并且不存在多个本地时钟脉冲源,所以在此所描述的方法不同于GALS方法。
1.动机
电路中的电信号的传播速度由于以下两个效应而受到显著限制:光速和所谓的RC时间延迟。在典型使用的介质中,光速大约为真空中光速的2/3,即2×108m/s或者20cm/ns。RC延迟是由构成所谓RC元件的寄生电阻和电容引起。这些RC元件又只不过为低通滤波器,低通滤波器导致信号边缘的平坦化。幅值范围中的平坦化最终导致时间范围内的信号延迟,并且该延迟相当好地对应于电阻和电容的乘积。
虽然光速表示信号传播速度的不可消除的物理限制,但是可以优化RC延迟。因此,开发新工艺时总是特别注意减小寄生电阻和电容。虽然如此,目前RC延迟仍代表了实际的速度限制。
然而,如果乐观地假设可借助优化来克服RC延迟,并且已经达到光速的严格物理极限,则信号沿着尺寸为2cm的微芯片的边缘传播将需要0.1ns。在目前通常的10GHz量级的时钟率中,这已经与一个完整的时钟周期相应。国际半导体技术蓝图(ITRS)[ITRS02]预测时钟率每年提高大约25%,而芯片的尺寸保持基本上相同。这将意味着在10年后信号沿着芯片的边缘的传播需要多于3个时钟周期。该估计忽略了已提到的RC延迟,并且特别是随着广泛分支的网络,实质上伸展比芯片的边缘长得多。因此,情况更加紧急。
特别是,在时钟脉冲分配的情况下,一方面网络的物理伸展相当大,另一方面运行时间造成的相移的影响特别高,因此,所描述的问题已显出其严重性。已经进行了很多尝试[Restle01][Intel02]以便能够在芯片上适当地实现同步模型。然而最终,证明该模型(至少以其当前的形式)是不再可被支持的假象仅是时间的问题。虽然设计中有充分合适的方法来控制所定义的相移,但主要问题是在与类型变化、工作条件等相关的延迟中不能预测的变化。由于关于信号和时钟边缘相对于彼此的相对位置的不足的认识而出现未定义的逻辑状态,这些未定义的逻辑状态是所谓的后稳定性(meta-stability)。
甚至在不同于时钟脉冲的信号中,相关的执行时间也日益成为问题。虽然以前基于关键路径中的门延迟还容易地对设计的可允许时钟频率做出合适估计,但是互联的执行时间现在如此占主要地位,使得在完成布局布线之后可以进行类似估计。由此,可以仅在设计过程中很后面的阶段才使用修正的措施,这使得设计周期显著地更慢且更昂贵。
甚至复位线也需要特别注意。在系统起动期间,如果在给定的时钟脉冲周期k期间将复位去激活,则这在相同的时钟周期中被相应的功能单元感测到并且它们相应地对这做出反应。然而,如果由于信号延迟,功能单元其中之一在时钟脉冲周期k+1期间才感测到复位,则该异步会导致系统起动期间不可预测的影响。在故障注入实验[Scherrer02]的过程中,发现处理器系统会非常敏感地对复位信号的不一致的判读做出反应。
总之,因此可以看到,由于执行时间的越来越占优势的影响,鉴于时钟率的增加,仅仅用结构上和工艺上的措施不能够保证VLSI芯片上的执行的同步性。必须找到同步设计范例的替代或者其它的方法解决方案例如同步性的定义的外推的概念。
同时,必须看到,芯片上增加的时钟率、更低的电压容差和更小的结构将导致故障率的增加[Const02][Salim01]。除增强容错的措施之外,这将需要更多地使用容错时钟脉冲。特别是在安全关键的应用(航空器[Truong97])或者具有极长的任务时间的应用(太空旅行[Gaisler02])中,已经是这样的情况,并且在这样的情况下要求某种程度上显著的开销。因此,对同步性问题的任何解决方案从开始就也应考虑到容错的方面。
2.现有技术和趋势
2.1 术语“同步”的理解
术语同步以不同的含义使用在不同的上下文中。以下讨论两个最主要的解释以达到解释该术语:
相位同步性表示同步的最高级。两个或者多个时钟脉冲信号必须相互如此精确地匹配,使得它们的相移为最小或者尽可能不变。因此,同步的质量的尺度是用度表示的最大相位偏差。例如,如果多个逻辑电路要以锁步(lock-step)模式工作,则必需相位同步性。传统的同步设计隐含地假设相位同步性,并且由于执行时间的支配而恰恰不能保持相位同步性。在这样的情况下即使所考虑的时钟脉冲由相同的源生成,它们的相对相位也会由于执行时间和偏差而失真。
时间同步性(时钟同步性)涉及分布式时钟的匹配。待被同步的时钟时间通常由完全不相关的本地时钟脉冲信号得到,并且借助有目的地省略或者插入时钟脉冲来实现同步性。根据两个时钟时间之间的最大偏差估计同步质量,而这也称作精确度。与相位同步比较时,粒度(granularity)在此是更不精细的,问题不是在高频时钟脉冲内的相移,而是存在(整体的!)本地计数器读数的偏差。
基本上,甚至时间同步也仅通过同步措施来实现。仅仅选择低容错的石英晶体是不够的,因为由它们得到的本地时钟时间经过很长的时期会相互偏差很大。
2.2 时钟脉冲分配
由于性能和功耗的规定,当前设计中的时钟脉冲分配是不断增大的问题。对高时钟频率和在微芯片上增加门的数量的需要意味着由于增加开关工作的数量和高扇出(fan-out)而增加了时钟树的功耗。时钟脉冲网络占据了整个芯片的功耗的25%到50%[Dobberpuh192]。此外,由于时钟周期的缩短,对时钟偏差(时钟脉冲到达两个不同的组件处之间的差)的可允许的裕度减小了。因此,在现代处理器设计中,必须耗费大量的努力以保证尽可能无偏差地分配时钟脉冲。时钟脉冲分配大部分借助平衡树(H树,X树)结合以集成了树的各个层次的网络结构来实现。利用该方法进行了尝试,以便使至每个端节点的引线长度以及在每个这种路径中的缓冲器的数量尽可能平衡;在此即称作零偏差布线[Restle02]。
为了能够“驱动”时钟脉冲分配网络的相当大的扇出,要求大量的缓冲器(数百到数千),它们应尽可能均匀地分布到芯片上,以便减小时钟偏差。由于制造工艺,每个缓冲器具有在驱动功率和延迟特性方面的某种(虽然微小)不准确度,这导致了额外的时钟偏差[Restle01]。在现代处理器设计中,经常引入所谓的去偏差电路。这种电路涉及可编程的延迟,这些延迟用于补偿时钟脉冲分配网络的各个缓冲器的执行时间变化。缓冲器的驱动功率和相关延迟时间很大程度上取决于工作参数例如供给电压和环境温度。此外,例如由于电迁移,线路的阻抗会改变,这会导致该路径的执行时间特性改变。由于高频率(GH 范围),集肤效应(电流仅仅在导体的表面流动)也变成了严重的问题[Chen02].集肤效应导致线路阻抗,并且因此执行时间特征随着时钟频率变化。
上面所说明的参数的不准确度使得必需为时钟偏差而规划安全的大裕度,这导致实质地减小VLSI芯片的最大可允许的时钟频率。此外,很多时钟缓冲器的同步开关生成功率供应中相当大的干扰信号、串扰和窄带电磁干扰辐射,由于时钟树的天线效应,该干扰辐射会是相当大的。
2.3 时钟同步
在时钟同步的情况下,在由节点构成的网络中,全系统的共同的时间概念以同步的时钟(计时器)的形式引入。在此,可以区分基于硬件和基于软件的方法,在此硬件实现通常由于减小的协议开销和执行时间中相关的低变化而导致更高的同步准确度[Ram90]。通常,必须存在n>3f个节点可用,以便能够容忍f个拜占庭错误(byzantine faulty)的节点[DHS86]。
时钟同步的基本原理:
每个节点都具有本地时钟脉冲发生器,本地时钟发生器增加计数器,此外所有节点都本地地执行同一个算法。对于该算法的相关的时间信息借助单个节点之间的消息来交换。在指定的间隔(再同步间隔)的末端处,接收由这些消息所计算的修正函数,并且本地计数器读数被应用于本地时钟并且开始新一轮的算法。
时钟同步算法根据它们的修正函数可以分成三组:
●基于收敛的算法
●基于一致性的算法
●概率统计的算法
在基于收敛的算法中,在再同步期间发送一次单个消息给所有其它节点。在一个再同步期间中收到足够数量的其它节点的消息之后,收敛函数(例如,容错的平均值[LL88])被施加到这些时间相关的消息中。因此,根据收敛函数的结果来调节本地时钟。
基于一致性的算法基于这样的考虑,即所有零误差的节点都具有对整个系统的一致视图[Lamport85]。这意味着所有零误差节点对一个发射器的时钟的同一个值是一致的,而不管发射器是否有(拜占庭)误差。如果发射器是正确的,则这也为由该发射器发送的值。以相似于基于收敛的算法的方式,甚至在此每个节点在每个再同步间隔发送一次其时钟的当前值。时间相关的消息被节点转发(转播),由此,对所有节点存在对系统相同的视图。为了确定节点的相应当前时钟时间(在传输时刻),由从所有其它节点接收的相关值计算出中值。然后,从事先所获得的所有节点的一致的时钟值的中值获得节点的新的本地时钟。
概率统计的时钟同步算法通常进行两个步骤:数据采集和执行统计检验,以确定新的本地时钟值[Lu89]。
一般地,要注意的是,在文献中所提出的算法中必须满足一些假设以便保证它们的功能[Ram 90]。在基于收敛的算法中必须能够将消息唯一地分配给发送器,而这可以借助完全联网的结构或者通过利用签名来实现。此外,必须有对消息传输时间的上限,并且可达到的精确度也通过该限制而决定性地确定[LL84]。时钟必须在开始时刻同步,即它们相互的偏差必须在指定的限度内。基于收敛的算法已经以软件[SIFT78]、硬件[Miner92]和混合形式(软件/硬件的组合)[SynUTC02]实现。在基于一致性的算法的情况下也必须能够将消息唯一地分配给发送器;此外,必须进行多轮的信息交换,使得在每个零误差节点中实现相同的系统全局图,这导致了在消息方面很高的开销。在此,对于消息传输时间的上限必须为已知,以便保证所要求的算法精确度。在有足够的数据可供实施统计检验之前,概率统计的算法要求很多轮的消息交换,并且接着也仅能以小于1的概率保证同步的实现。此外,由于对实现统计检验和所要求的数据的存储的硬件成本是极高的,所以有意义的是概率统计的方法仅可使用在软件解决方案中。
利用时钟同步可实现的精确度通常在小于几μs到100ns的量级[KKMS95][SynUTC02]。
2.4 容错时钟脉冲
容错时钟脉冲理解为这样的时钟脉冲信号,其在多个节点上可用,并且利用预定的限制(精确度)来同步,并且可以容忍限定数量的错误的时钟脉冲源,而不会失去同步性。
在文献[VanAlen91][Choi90][Vasan98]中给出的用于生成容错时钟脉冲的主要方法考虑n个节点,每个节点带有一个本地时钟脉冲发生器,其中n>3f并且f表示系统所容忍的拜占庭误差的数量。每个节点都通过点对点连接与每个另外的节点相互交换时钟信号(如果其自己的时钟脉冲也反馈给它自己则有n2条引线)。全局交换的时钟信号表示所谓macroticks,macroticks表示全系统的同步的时钟脉冲。相反,被分成microticks的高频率时钟脉冲用在单个节点中,以便保证全局时钟脉冲信号的时间排序。借助在每个节点中的选择功能(表决器)从所有被接收的macroticks(包括其本身)中获得参考时钟脉冲。如果需要,则本地时钟脉冲利用模拟或者数字PLL(锁相环)使本地时钟脉冲与所选择的参考时钟脉冲对齐。
还使用在[Vasan98]和[VanAlen91]的实施形式中的、广泛被接受的假设是,在任何零误差节点之间的信号执行时间近似相等,使得零误差节点的表决器(一致地)以相同的顺序感测零误差节点的所有时钟脉冲信号。然而在实际的情况下,如已在关于时钟脉冲分配的那一节中解释的那样,由于时钟偏差和信号执行时间的问题变得日益突出,所以不可能维持该假设。用于补偿不同的执行时间的方法已经由[Shin88]示出,但是这要求2n个相位检测器和2n2个引线,这进一步增加了硬件成本和对误差的敏感性。
由于单个时钟脉冲边缘的相移,不仅会出现表决器中的不一致,而且由于在相应的输入触发器的设置和保持时间中也会出现信号变化,所以在单个节点的表决器输入处还会存在后稳定问题。当然,利用特殊的输入缓冲电路可以减小后稳定性问题的概率,但不能完全地排除,这并不表示概念上一流的解决方案。
如果PLL的输入信号显示出与参考信号很大的偏差,则PLL不能成功地调节信号,这会导致永久地失去同步。
2.5 GALS系统
如1节中所解释的那样,如果不再可能建立整个芯片上的同步性,则至少可以尝试将空间上所划分的区域(例如SOC(片上系统,一种由在一个芯片上的多个复杂功能单元构成的整个系统)中的功能单元)保持相互同步。因此,这些同步的“岛”之间的通信可以借助异步技术来实现。该方法公知为缩写字GALS(全局异步本地同步)[Chapiro84]。虽然GALS技术在功能单元内使得能够连续且不变地使用已证明的同步设计方法,但是基本问题正是出现在到异步通信单元的接口处。为了防止在异步/同步接口处出现后稳定而必须使用同步电路。这些同步装置大部分基于可停顿/可扩展(strechable)的时钟,并且在异步/同步接口处导致实质上的延迟时间[Chelcea00]。
GALS方法中的另一严重的问题是,本地时钟脉冲完全不同步地工作,并且因此会随机地相互远离漂移。因此,不采取任何附加措施就不可能建立所交换的信息的暂时的排序。由此,虽然实际上可以使用GALS方法,但是以其当前的形式不能称为概念上是很好的或者技术上也不完美。
2.6 异步逻辑
更必然的程序是在芯片上完全异步实现整个逻辑电路的步骤。这不能简单地通过忽略时钟脉冲来进行,而是需要更加细致且系统的程序。有关该主题的理论论文已公开很多年(参看例如[Huffman54])。有争议的是,数字逻辑的这种异步实现在概念上提供少许显著的优点(减小功耗、改进的模块性等)[Myers01][Hauck95][Berke199]。然而,在它们目前关于价格、性能和效率的成熟度方面,迄今为止对于该概念的实际实施所建议的方法仅在受限的边缘区域中是对同步设计范例的实际替换方案[Steininger04]。除此之外,同步设计在工具、现有模块以及最终甚至在开发者的培训中已建立到这样的程度,使得只要它一般地说还能够成功,则转换到全新的异步设计世界中无论如何也将是令人犹豫不决并且一步一步地进行。
2.7 虚拟异步系统
在[Fai04]中所建议的用于分布式时钟生成的方法可看作同步和异步世界之间的一种跨越。代替将集中的振荡器的时钟脉冲反馈给VLSI芯片上的单个功能单元,而将每个功能单元分配给特殊的时钟脉冲单元,特殊的脉冲单元本地地生成它们的时钟脉冲。但是这并非利用专用的本地振荡器来实现,而是通过将由MOSFET构成的时钟脉冲单元设置成二维点阵来实现。每个时钟脉冲单元都借助专用的时钟脉冲线与4个相邻的时钟脉冲单元(上、下、左、右)相连。当时钟脉冲单元处于相同的状态时,时钟脉冲单元的逻辑导致时钟线的状态改变,使得点阵结构实现了分布式环形振荡器的作用。
然而,从分布式算法的理论中公知的是,对于每个应该对每对时钟脉冲信号保证恒定的同步准确度的时间同步方法,(近似)全连接是必需的。如果也应保证全局同步性,则每对时钟脉冲信号又将是绝对必要的。然而,这利用在[Fai04]中所描述的方法不能达到,因为事实上不可能实现所有时钟脉冲单元完全点对点的连接:实际上,将需要6个时钟线路的3D点阵结构的时钟脉冲单元的构造一般化看来已经是困难的。用该方法不能实现在完全连接的情况下所需的n-1个时钟脉冲线的处理。
除此之外,[Fai04]中所描述的时钟脉冲生成是非容错的:在其中一个时钟线上的单个瞬时错误会导致整个时钟故障和/或本地超频(overclocking)。由于粒子撞击(particle hits)、电源波动和杂散干扰导致了现代VLSI芯片中的瞬时错误的概率增加,所以这是不可接受的。
最后,在[Fai04]中所描述的分布式时钟脉冲发生器的实现直接基于工艺相关的晶体管水平,而在此所提出的概念围绕工艺不相关的门水平。
总之,因而在[Fai04]中所给出的方法不适合TS-Net(特别是全连接的TS-Alg),是依赖于工艺的、非容错的,特别是不提供任何不变的且受限的同步准确度,而没有这些就不能实现功能单元之间的同步全局通信。
3.解决方案的原理
首先,在此对本发明所涉及的内容进行简短总结,即本发明涉及一种用于在硬件系统特别是VLSI芯片、片上系统、IP核、PCB和PCB系统中的分布式容错时钟脉冲生成的方法,其特征在于:
●通过多个相互通信的容错时钟脉冲同步算法(TS-Alg)分布式地生成系统时钟脉冲,而不用外部或者内部时钟振荡器,其中
i.任意数量的这种TS-Alg通过任意的、遭受永久和瞬时错误的时钟脉冲信号的网络(TS-Net)而相互交换信息,
ii.将每个TS-Alg分配给一个或者多个功能单元(Fu1,Fu2,...),它们的本地时钟脉冲通过TS-Alg生成,
●所有本地时钟脉冲被确保维持频率同步,在这个意义上,在给定的时段内任意两个本地时钟脉冲信号最大相差指定的不变数目的时钟周期,使得可生成全局系统时钟脉冲,全局系统时钟脉冲使得能够在芯片上的任意数量的功能单元之间进行全局同步通信。其中全局系统时钟脉冲可借助合适的时钟脉冲转换电路(除法器等等)从任何本地时钟脉冲中得到。
●特定数量的瞬时和/或永久错误允许出现在TS-Alg或者TS-Net中,而不会影响时钟脉冲生成和/或同步准确度,
●系统时钟脉冲自动地达到最大可能的频率,最大可能的频率由所使用的制造工艺、TS-Alg和TS-Net的布局和布线以及当前工作条件(温度,电源电压等等)来确定。
利用该方法,全局系统时钟脉冲的可用性仅仅取决于芯片上信号路径的最大与最小的端到端的信号延迟的比率,而并非取决于其最大值。
有利的是,已活动的本地时钟脉冲和由此导出的全局系统时钟脉冲的同步准确度也在硬件的上电期间得到保证。
有利的是,利用异步逻辑例如弹性管道、Muller-C门等等来实现。
此外,有利的是,全局系统时钟脉冲的稳定性利用TS-Alg中的可变的延迟元件或者特有的时钟脉冲转换电路来增强,其中当前延迟时间和/或时钟脉冲修正值静态地在制造时获得,和/或在执行时可针对芯片的相应应用来配置,和/或根据对工作参数(温度和/或电源电压等等)的一次或者连续测量而自动地获得。
本发明还包括一种用于硬件系统(例如芯片)的各种功能单元之间的全局数据传输的方法,利用该方法,借助根据上面所描述的程序生成的时钟脉冲的分频,提供了全局上足够同步的macrotick可用,使得无后稳定性问题的数据传输是可能的。
本发明还包括一种用于VLSI芯片的同步复位方法,其特征在于所描述的用于时钟脉冲生成的方法也在复位阶段保证了本地脉冲的全局同步,并且因此可以用于识别所有功能单元的确切起动时刻。
此外,本发明还涉及一种用于实施这种方法的硬件系统。
基于第二节中的考虑,如果可以借助在同步岛之间的异步通信而找到对这些问题的在概念上很好的解决方案,则准异步的或者GALS方法将是非常有吸引力的。因此,此外应假设一个结构包括一个芯片上的本地同步功能单元(模块),这些单元(模块)没有相互相位同步,而是相互频率同步。在此,上下文中的频率同步涉及两个或者多个时钟脉冲信号的频率的匹配。在此,与相位同步相反,所涉及的时期更长。绝对可允许的是,在此期间,时钟脉冲之间出现了实质的相移;然而,决定性的是每个观察的时段中相位变化的数量可以差至多一个常数。(由此,也导致,当观察无限的(即足够大的)时间间隔时,所有时钟信号将具有相同数量的时钟脉冲)。如果要将一个计数器连接到时钟脉冲信号,则在任意长的时间间隔上,在计数器值之间的最大偏差将是同步质量的标尺。结合时钟同步,该特征也称作精确度。不同于时钟同步,在所提出的频率同步的情况下,持续保证频率的均等性(parity),而不引入或者抑制本地脉冲(“速率修正(rate correction)”)和/或对时间做出不规律修正(“状态修正(state correction)”)。通常,在时钟同步的情况中的约束是完全不同(大的距离、速度变化且每个都具有本地时钟脉冲的节点等等)于在芯片水平所考虑的主题的约束,并且因此甚至解决方案和质量基准都不能用在这里。
因此在2.1节中所给出的定义的上下文中,频率同步表示相位同步与时间同步之间的跨越。在考虑到时间相关的偏差时,这也是明显的。在相位同步的情况下,所观察的时钟脉冲信号之间的偏移绝不允许大于时钟脉冲周期的1/2,在时间同步中(由于上面所提及的完全不同的假设)1μs的同步准确度已经视为非常好(参看2.3节)-在1GHz时这相应于1000个时钟脉冲周期。由于相位同步不再可能在整个系统上实现,所以具有可允许的几个时钟脉冲周期的偏差的频率同步代表了合理的“最好成果”。
因此,不同于GALS方法,同步岛的本地时钟脉冲现在不再是不相关的,而是在频率方面同步。对此所要求的同步借助对所有模块所共有的分布式算法通过设立全局时间参考来实现(参看第4节)。
VLSI芯片的每个模块或者足够数量的模块(=一个或者多个物理上相邻的功能单元)应该增加一个用于此目的的非常简单的功能单元,该功能单元的唯一任务是执行该分布式算法并且因此一方面有助于设立全局时间参考,而另一方面有助于得到该模块的本地时钟脉冲。由于通常的算法基于在所有节点上的功能的复制,所以可以以相同的方式在所有模块上实现该功能单元。重要的目的是利用异步逻辑实现功能单元,以便在概念阶段已经消除后稳定性的问题。单纯从实际观点出发,这也是必需的,因为对算法的同步实现所要求的时钟脉冲应该首先由算法本身生成。
文献中所建议的方法(相位同步和时间同步)假设存在多个时钟脉冲源,并且该方法的任务实质上包括在由这些源所提供的时钟脉冲信号之间建立合适的同步。在此所提出的方法采用完全不同的途径,该途径已经在[Fai04]中被开辟出来:在此不存在本地时钟发生器,而是仅仅存在一个单个的共同虚拟时钟脉冲信号的本地实例,该时钟脉冲信号通过分布式算法生成。因此,原则上,不存在不同信号彼此分歧的可能性,并且相移仅来自于算法执行或者处理时间。因此,在这种情况下该方法的目的在于依照相应的规则生成时钟脉冲。
与[Fai04]截然不同,其实现不允许不变的同步准确度,利用在以下节中提出的分布式算法可以极好地且相对容易地设立容错和所保证的最大相移(=同步准确度)。以这种方式所生成的本地时钟脉冲在由本地时钟脉冲所服务的模块上借助简单的时钟树来分配,这因此是非临界的,因为给定模块的功能单元空间上相邻。借助将本地时钟脉冲(microtick)合适地映射在低频全局时钟脉冲(macrotick)上,可最终为所有模块[Kopetz97]得到一致的同步时基。这是可能的,因为任意两个本地时钟脉冲信号之间的相移并没有超过特定的最大值。
因此,利用所建议的方法,具有同步/异步接口的GALS架构的公知问题可以在概念上容易地克服。用于生成全局时钟脉冲的算法依照异步逻辑的原理来实现。当然,这是昂贵且麻烦的,但是完全避免了后稳定性。只要不涉及全局通讯,可照常基于本地时钟脉冲同步地设计本地功能单元。然而由于存在全局时钟脉冲,所以甚至全局数据通信也可利用习惯的同步设计来实现。在此,伴随后稳定性的可能的问题也可以利用合适地选择macrotick来完全消除。
总之,所追求的解决方案提供了以下显著好处:
●电路生成其自己的时钟脉冲,并且因此借助全系统保证的、由常数限制的同步准确度省去了本地时钟脉冲源(振荡器、石英晶体)
●在所有时刻芯片以最大可能时钟频率工作
●通过非临界的点对点连接代替复杂的、耗能的全局时钟树
●在给定的物理边界条件下,在维持同步提取和有效同步性方面的最佳折衷
●时钟信号的更好容错性和永久误差
工作原理的可能的实施在以下章节中详细表述。
4.所使用的基本算法
4.1 基本原理
起点是在消息层面[Srikanth87]现有的基于收敛的算法(参看第2.3节)。该算法假设分布式系统由n个计算机节点构成,所有节点可以借助消息利用点对点的连接彼此通信(完全联网的结构,参看图1)。因此,每个节点具有n个输入和n个输出(来自/到其它n-1个节点的每一个加上一个回送到其本身)。在最广的意义上,基于循环(round)来进行通信,并且在无错误的条件下,每个节点在每个循环中同时给所有n个输出发送至少一个同步消息(关于其它特定应用的消息在此未做假设)。共同的时基借助分布式协定基于这些同步消息来建立。如果n>3f,则直到f个错误节点的情况下(即每节点每循环可以容忍直到f个错误或者丢失的消息),该协定都正确地起作用。因此,在系统设计的时候可以考虑估计有哪些数量f的错误。当使用在[WS03]和[Widder03]中所提出的混合错误模型时,实际上可以选择容错以更准确地匹配要求。
算法以增序编号的循环序列的形式传送时基,每个循环相应于一个时钟脉冲步。从一个循环到下一个循环的过渡根据该协定以这种方式来确定,使得在任何时刻网络中都保证了所有(无错误的)节点的最小同步程度。特别是,对无错误的节点可保证如下:如果在给定时刻一个节点在循环k中,则在相同时刻所有其它节点在循环i中,其中|i-k|<Θ+2。在该关系中,品质参数(quality parameter)Θ由系统中消息的最大与最小执行时间的比率确定。时基(首先)相对于外部(绝对)参考是不同步的,而是仅仅在系统内(保证了精确度,但是不能保证准确度)。
以相同方式在所有节点上执行该算法,其中消息的交换导致本地拷贝之间所希望的交互,这最终导致连续且自主地执行该算法。动态性能由该算法的本地处理时间和在线路上的相应的执行时间确定。原始算法在[Srikanth87]中给出,并且这里在下面考虑简化的版本,它看来更适合映射到硬件上。首先以初始化步骤(R)开始执行并且接着主要基于两个规则(1)和(2):
(R)“复位”:
on reset
send(msg[1]){once}
local_tick:=1
于是,每个节点首先设置其本地计数器为值1并且发送相应消息给所有节点以便开始执行算法。
(1)“延迟”:
when received(msg[k])from f+1
then send(msg[k]){once}
如果一个节点从至少f+1个其它节点(即从至少一个无错误的节点)接收消息“k”,则其本身将消息“k”发送给所有节点,包括发送给其本身。由于如上所提及的那样,相同的算法同时在所有其它节点上运行,所以关于这些在循环k+1的时期中已准备好的节点出现可谓全局“一致图像”。该规则可以独立于相应的节点所处其中的循环(local_tick)使用,只要k>local_tick。
“增加”:
when received(msg[k])from 2f+1
then send(msg[k+1]){once}
local_tick:=k+1
如果节点p从至少2f+1个节点(包括本身)接收消息“k”,则显然在循环k中有合格的多数节点已准备进入循环k+1中。更准确地说,甚至在最坏情况下(f个有错误的节点),在2f+1个节点中仍然有至少f+1个正确的节点已经发送了消息“k”。因此,对于所有无错误的节点必须激发规则(1),使得可以期待“k”消息流,并如根据规则(2)那样,强制地使所有无错误的节点过渡到状态k+1。因此,节点p使本地循环计数器增加一个时钟步并且发送相应消息“k+1”。此外,仅当相关节点本身在循环k中时才使用该规则。
因此,同步消息k由节点p到达节点q对应于通知节点q,节点p主张已经完全有理由过渡到循环k+1,即将全局时钟步加一。(在此应注意到这并非一定意味着节点p已经在循环k中,或者其本身将马上过渡到循环k+1)。
必须注意到,一个节点必须仅发送一次给定的消息(即例如“k”)。无论随后两个规则中的哪一个“激发”,都不再需要发送消息,即相同消息的复制品被接收器拒绝。此外,决定性的因素是,消息的发送器可以无疑地被识别(因此,需要点对点的连接)。否则,错误节点会采用其它节点的身份并且以它们的名义发送消息。
此外,令人感兴趣的是注意到,仅当至少f+1个其它节点的local_tick在p的local_tick之前时,规则(1)才先于规则(2)被用于节点p。在这种情况下,虽然节点p保持其不利条件,但是通过发送相应消息有助于更快的节点的主张形成。
4.2 引导
复位之后,必须保证所有节点已准备接收。此后,如已描述的那样,每个节点发出消息“1”,以正确地初始化算法。随后,开始使用规则(1)和(2)。落后者(即非常迟才完成它们的初始化的节点)可以借助所谓追赶规则(catch-up rule)来立即跟紧当前的状态。在[Widder03]中可以找到起动过程的细节。
4.3 特征
这些算法的最重要的特征是:
●根据该算法,以分布式方式生成“循环”(=microticks)形式的全局时钟脉冲,该全局时钟脉冲在所有参加的(没有错误的)节点上保证了预定的同步程度。
●该算法是时间无关的,并且关于消息执行时间(和/或关于对所接收的消息的响应时间)丝毫无需任何限制。
●仅仅消息的最大与最小执行时间(包括处理时间)的商Θ确定可实现的同步准确度。应注意到,绝对执行时间对精确度是不重要的(但是,如果希望外部同步,则对准确度是重要的)[Widder04]。
●根据算法所建立的时基允许具有π(Θ)microticks的粒度的消息暂时排序。
●其函数和精确度可以在形式上被证明[Widder03]。
●在指定的条件下,算法的正确开始可以在形式上被证明[Widder03]。
●可同时容忍多达f个(甚至拜占庭的)错误。可以简单地通过节点的数目衡量容错性。
5.用于片上时钟脉冲生成
所描述的算法最初是构思用于在分布式系统中的计算机节点的同步。现在,我们的方法在于,使用该算法以便为例如在VLSI芯片或者片上系统上的一个或者更多硬件功能单元(HW-FU)提供同步频率时钟脉冲,而尽可能不必对单个执行时间做出任何假设。这克服了以下重要问题:
5.1 同步准确度
利用在软件中执行的同步算法,1μs量级的精确度视为极好。在硬件中,通常的时钟脉冲率是多个100MHz的量级,因此对于同步所需的精确度(绝对地来考虑)必定好几个量级。
关于Θ值,在硬件中至少也不是寻常的,在此感兴趣的大多仅仅是两个时钟脉冲之间的相移,并且Θ=1相应于360°,即一个完整的时钟周期,并且更大的值相应于多个周期。另一方面,可以假设,在硬件实现的情况下消息的延迟时间中的差将充分小于软件中的实现,因为对软件解决方案典型的、伴随节点的排队和下降的节点性能的问题几乎不出现在硬件中直接并行处理的情况中。
解决方案:
因此,考虑到典型的要求和硬件的特定的边界条件,Θ≤2的假设是很现实的。在此,所选算法本身证明是极其有利的,因为仅仅考虑了相 对偏差。
5.3 通信开销
在软件中实现算法的情况下,假设通信介质已经存在于节点之间。如论如何,交换应用相关的数据需要这种介质,算法仅仅添加到现有的结构上并且仅仅导致在可用的带宽方面的开销。不必一定要在物理上实现所要求的点对点的连接。决定性因素仅仅为,接收器可以唯一地使消息与发送器关联—并且为此目的,虚拟的点对点通信就足够了,例如通过具有关联的寻址、发送器标识和(如果必要时)签名的总线。此外,必须保证的是,借助相应的冗余该总线是容错的,以便保持整个系统的容错性。
然而,在所提供的硬件实现中,算法仅仅用于提供全局时钟脉冲信号。用于通信的基础设施必须特别为此目的来建立,并且因此总是视为硬件开销。对已存在的数据通信总线的使用可以被排除,因为仅仅当总线通过同步负载到100%的程度时才可以实现所希望的时钟脉冲率,因此不能用于数据通信。
节点间的串行通信可被排除,因为(不同于基于软件的解决方案)关于频率和同步准确度不能获得满意的结果。仅当实际上不必建立物理的点对点的连接时(这意味着仅仅为了提供一个时钟脉冲而有n2个并行连接),实现并联连接在经济上才有意义地可行。物理上实现为总线(具有虚拟的点对点连接)又造成了协议开销(仲裁、发送器ID加签名等),这又显著地减小了可实现的时钟脉冲率和/或同步准确度。除此之外,需要多冗余设计。
解决方案:
传统的解决方案(即一个单个的全局时钟线)是形成效率衡量标准的无法超越的基准,这极大地妨碍了任何新方法的接受。因此看来有必要将消息的信息内容减小到1比特,使得简单的1比特信号对物理点对点连接是足够的。关于串联对并联的传输的讨论在这种情况下是多余的。
5.3 消息的受限信息内容
现在,实施该算法的重要的问题是管理最小1比特的信息。特别是,在这样的边界条件下不可能如实际上在算法中设置的那样,传输当前循环的明确的数目(k)。
解决方案:
k值递增地传输(例如作为脉冲)并且相应的绝对值通过相应接收器中的计数器管理。发送器ID以这种方式不能实现,这使得强制地要求设计实施物理的点对点连接。
在给定的边界条件情况下,有意义的是使用转换信令(transitionsignaling)的技术[Hauck95]。
5.4 没有k的绝对值的引导
在原始的算法中,引导通过大多数节点初始相互一致并且接着将时钟脉冲前进使能来实现。落后者如所提及的那样利用追赶规则来紧跟。然而这需要对绝对k值的知识,因为缓慢的节点的本地计数器没有当前读数。
解决方案:
解决方案将由以下构成:(a)修改引导策略,使得不用追赶规则就可以应对,(b)k值的“偶然”传输或者(c)这样地设计硬件使得每个节点上的计数器都工作,而不管节点本身是否已经初始化。
5.5 消息的多触发
由于k的绝对值不包含在消息中,所以重要的是保证每个规则对每个k仅仅触发一次。此外,出于各种原因值得希望的是,每个消息仅被发送一次,即两个规则中只是更早的一个被触发。由于并联的特性,这些要求难于在硬件中实现(这两个规则会恰好“同时”触发)。
解决方案:
可能的解决方案是用时钟脉冲的上升和下降边沿分别作为对k的偶数和奇数值的标志,使得可简单地避免在短时间间隔内相同k值的发送
(上升边沿跟着下降边沿),而在较大的时间间隔情况下可以以传统的
方式标出相同的消息。
5.6 算法复杂性
在软件解决方案中,在计算机节点中甚至执行复杂的计算也是没有问题的,因为这可以在软件中实现。在纯粹基于硬件的解决方案的情况下,所需要的功能性必须直接在硬件(例如状态机)中实现,并且甚至算法上简单的计算例如乘法也会导致显著开销。此外,利用异步逻辑的所希望的实现还会导致进一步的开销。应该记住的是,在每个节点接收n个消息,并且因此全系统必须实现总共n2个单元以处理所接收的消息。
解决方案:
在此没有一般的解决方案可用,并且当在硬件中实现时必须尽可能详细地进行优化。为此,必须能够这样地转换算法,使得其可以以最佳的方式映射到硬件。
当深入细节时存在很多在硬件实现中有待解决的问题,这些问题主要涉及这样的事实,即在以不同(未知)执行时间并行运行进程的情况下,设置执行的顺序是有问题的,而在软件中这些进程能以有序和自动的方式在软件中运行。
应注意到这样的事实,即到目前为止所有所描述的解决方案都具有的共同的目标是,实现尽可能有效地映射在硬件上。使用分布式算法用于节点的频率同步的作为基础的方法和该方法在异步硬件中的实现也可以以其它方式实现。因此没有一个在此所说明的决定是强制的。
6.所建议的HW实现
6.1 架构
在上面所提出的讨论得到如图2中所图示的由1比特线构成的完全相互交织的结构。幸运的是,支持这种架构的芯片架构刚刚上市:例如由Arteris提供的NoC(Network on chip片上网络)设计策略[Arteris04]最初构思于用于GALS架构,NoC设计策略装备有交换结构(switchfabric),该交换结构似乎非常好地支撑数据和时钟脉冲的所需要的通信结构。
6.2 功能块的实现
在软件解决方案中隐含地假设,每个计算机节点也具有与全局同步时基不相关的本地时钟脉冲,利用本地时钟脉冲例如驱动本地处理器。本地处理器时钟脉冲的时间分辨率好于所接收的消息之间的间隔和全局时间的精确度几个量级。因此,合理地假设,到达的消息几乎连续地被接收和被处理。
然而,硬件解决方案的目的是甚至没有本地时钟脉冲发生器地来应对,确切地说,从所生成的分布式全局时钟脉冲得出本地时钟脉冲。由此,没有先验的时钟信号可用于接收和处理消息。显而易见,因此仅当所有对时钟脉冲生成相关的单元没有时钟脉冲地工作时,即以异步逻辑实现时,才开始该算法(图2中的阴影框)。利用合适的设计,因此还可以避免后稳定性问题和竞争情况,如果利用同步硬件来实现本地逻辑(即具有本地时钟脉冲)则将必然出现这些问题和情况。
因此,总起来说,这些异步框能够分布式地生成时钟脉冲,接着它们将时钟脉冲提供给它们相应的本地功能单元HW-FUn。以这样的方式,全局时基将是可用的,例如全局时基简化了各个功能单元之间的通信或者允许同步动作(访问外围设备、控制执行器等等)。
图3图示了所建议的实现的原理。基本方框图相应于图2中的一个单个“阴影框”。实现的原理如下:
假设每个节点(在我们的情况下,即每个硬件功能单元HW-FU)实际上仅仅发送一次每个消息。这种消息正是线路上的边沿。在这种假设下,借助在每个接收器节点处的计数器可以实施消息编号(即原始算法的“k”),每个输入i要求一个计数器Zext,i。同时,随着发送每个消息递增内部计数器Zint。由于消息被同时发送给所有输出,所以对于所有信道一个共同的计数器基本足够了。现在根据计数器值的比较,可本地决定是否已接收一个或者可能更多具有更高k值的消息。当Zext,i>Zint时恰好是这样的情况。如果在足够多的信道上是这种情况,则根据算法的规则可以发送新消息(=边缘或者边沿)和/或本地时基增加一个时钟脉冲local_tick。
从上述描述中可以看到仅仅必需Zext,i和Zint的相对比较。因此,更容易节约用于计数器的硬件成本,而且替代地仅仅提供了队列,从队列中成对地去除记录项,使得仅仅可看到差。这些队列在异步实现中有利地(虽然不是必需地)根据[Sutherland89]实现为弹性管道。这在图3中通过“内部管道”和“外部管道”示意性地表示。模块“差与比较”负责来自这些管道的记录分别成对地消耗,即同时从内部管道和外部管道中去除。如果在外部管道中有记录,而内部管道已经为空,则显而易见Zext,i>Zint,相应地通过以下模块“使用算法规则”来分析。在此,必须注意的是保证始终两个规则中仅仅其中之一被“激发”。由于读取消息也消耗它,所以对每个信道都必须复制Zint,对所有Zint,i,当发送消息时进行记录的插入是同时进行的。
所需要的管道深度从所接收的循环数量与所发送的循环数量之间的最大所期望的差来获得,并且通过算法限制为值Θ。在此,队列的成本可以通过使用上面所激说明的限制Θ≤2来保持在限度之内。
如在软件中实现的那样,在此有利的是,在一个输入端也接收自己的消息。本质上这有助于使最小执行时间不会过度短(例如通过内部连接),由于这将使Θ值变差。
6.3 容错
由于借助脉冲渐增地传输消息k,一旦出现错误,则将始终保持。这显而易见地降低了解决方案的强健性。即使可以容忍多达f个这样的错误,只要没有办法修正所发现的错误,则这种实现的“任务时间(Mission Time)”实际上受到限制。例如,这可以在数据层面通过偶然交换k的绝对值或节点之间的local_tick来实现。对于这种连接消息的时间上的约束由于反正已存在的容错而完全不重要(设计仅仅针对多错误的可能性)。
6.4 频率稳定性
由于分布式时钟发生器不用任何石英振荡器,所以时钟脉冲频率的恒定性和稳定性相对低。当然,芯片总是用根据相应的工作条件的最大的频率工作,这对内部处理是最佳的,但是这增加了与外部同步组件接口连接的难度。
然而,尤其通过在TS-Net的时钟线中集成可变延迟元件来改进频率稳定性,这些元件在芯片制造期间或者在运行时间动态地被编程,或者实际上在工作期间被连续编程。后者的例子是由TCXO的温度补偿而公知的温度补偿,利用温度补偿,芯片温度可以连续测量并且根据芯片特定的温度曲线来调节延迟。
使用时钟脉冲转换电路作为替换选择可用,其中另外的时钟脉冲信号从本地时钟脉冲中得到。基于加法器的时钟(Adder-based Clock)[SSHL97][SSHL97][SSHL97][SSHL97][SSHL97][SSHL97]可用于此(可能结合PLL或者DLL)。基于加法器的时钟允许生成非整数的时钟比。
6.5 复位
与时钟分配相同的问题导致,在大的VLSI芯片和高时钟频率的情况下日益难于保证在(上电)复位的情况下,所有功能单元以相同的时钟周期开始。由于用于时钟脉冲生成的分布式算法甚至在上电期间也保证了全局同步,所以可以轻松地实现所有功能单元的工作的完全同时开始。为此,仅仅必需等待macrotick,其中所有功能单元“忽略”开集复位完成线(open-collector Reset-Done-Leitung):每个在macrotick的开始时发现该线路不活动的FU都可以开始其工作。所保证的同步准确度保证了所有功能单元在相同的macrotick中这样进行。
所建议的解决方法的优点
●电路生成其自己的时钟脉冲,并且因此借助全系统保证的、由常数限制的同步准确度省去了本地时钟脉冲源(振荡器、石英晶体)。
●不同于用于获得容错的时钟脉冲的所有基于硬件的方法,在硬件功能单元上不要求本地时钟脉冲发生器和PLL,并且通过分布式单元之间的相互作用而生成时钟脉冲。
●省略复杂的、耗能的时钟树并且也省略了用于全芯片时钟偏差的优化的高成本。
●不同于GALS方法,在本地(在microtick水平)和全局(在macrotick水平)保留同步设计范例。甚至后稳定性的问题也可以通过合适选择macroticks来避免。
●对绝对执行时间不必做任何假设。甚至在最慢和最快处理时间之间的相对差Θ也仅仅影响可以达到的精确度。
●在时钟脉冲的生成和分配期间,任意f个错误可以被容忍。该架构可以关于f而任意确定比例。而借助传统的用于容错的时钟脉冲生成的方法,这是不可能的。
●在无错误的条件下,通过算法使f个最慢的节点“紧跟”,即它们不会使整个系统慢下来。
●由于为了实施该算法使用了异步逻辑(弹性管道,Muller-C门),所以后稳定性的问题基本上被避免。利用通常的用于使本地时钟脉冲适应的解决方案,仅仅可以使得后稳定性足够不可能出现,但是不能避免[Kopetz97]。
●时钟脉冲频率本身自动地适应于相应的条件,即该芯片总是用最大频率运行。芯片设计中或者工艺中的改变通常最多要求匹配Θ值,但是通常不要求改变时钟脉冲生成算法。
●由于分布式时钟生成甚至在上电期间也保证了同步,所以可以在芯片上实现完全同时地开始所有功能单元的工作。与现有方法截然不同,这不需要同步复位,其中该同步复位日益难于实现在具有高时钟频率的大型芯片上。
参考书目
[Widder03]Josef Widder.Booting clock synchronization in partially synchronous systems.InProceedings of the 17th International Symposium on Distributed Computing(DISC′03),vol.2848 ofLNCS,pp.121-135.Springer 2003.
[LeLann03]Gerard Le Lann and Ulich Schmid.How to implement a timer-free perfectfailure detector in partially synchronous systems.Technical Report 183/1-127,Department ofAutomation,Technische Wien,April 2003
[Intel02]Ram Bhamidipati,Ahmad Zaidi,Stva Makineni,Kah K.Low,Robert Chen,Kin-YipLiu and Jack Dalgrehn.Challenges and Methodologies for Implementing High-PerformanceNetwork Processors.Intel Technology Journal Vol.06,issue 03,August 15,2002.Intel Corpora-tion.
[Scherrer02]Christoph Scherrer and Andreas Steininger.Identifying Efficient Combinationsof Error Detection Mechanisms Based on Results of Fault-Injection Experiments.IEEE Trans-actions on Computers Vol.51,No.2,February 2002,pp.235-239.IEEE Computer Society Press.
[Choi90]Bong-Rak Choi,Kyu Ho Park and Myunghwan Kim.An Improved HardwareImplementation of the Fault-Tolerant Clock Synchronization Algorithm for Large Multiproc-essor Systems.IEEE Transactions on Computers Vol.39,No.3,March 1990,pp.404-407.IEEEComputer Society Press.
[VanAlen91]D.J.VanAlen and A.K.Somani.An All Digital Phase Locked Loop Fault Toler-ant Clock.International Symposiun on Circuits and Systems,Vol.05,June 1991,pp.3170-3173.IEEE Computer Society Press.
[Vasan98]Nagesh Vasanthavada and Peter N.Marinos.Synchronization of Fault-TolerantClocks in the Presence of Malicious Failures.IEEE Transactions on Computers Vol.37,No.4,April 1988,pp.440-448.IEEE Computer Society Press.
[Miner92]Paul S.Miner,Peter A.Padilla and Wilfredo Torres.A Provably Correct Design ofa Fault-Tolerant Clock Synchronization Circuit.in Proc.Digital Avionics Systems Conferen,IEEE/AIAA 11th,5-8 Oct.1992,pp.341-346.
[Schneider87]Fred B.Schneider.Understanding Protocols for Byzantine Clock Synchroniza-tion.Technical Report 87-859,Dept.of Computer Science,Cornell University,Ithaca,N.Y.,Aug.1987.
[Lamport85]Leslie Lamport and P.M Melliar-Smith.Synchronizing Clocks in the Presence ofFaults.Journal of the ACM.Vol.32,pp.52-78,Jan.1985.
[Restle01]Phillip J.Restle,et.al.A Clock Distribution Network for Microprocessors.IEEEJournal of Solid-State Circuits Vol.36,No.5,May 2001,pp.792-799.IEEE Computer SocietyPress.
[Srikanth87]T.K.Srikanth and S.Toueg.Optimal clock synchronization.Journal of the ACM.Vol.34,no.3,pp.626-645,July.1987.
[Shin88]K.G.Shin and P.Ramanathan.Transmission Delays in Hardware Clock Synchroni-zation.IEEE Transactions on Computers.Vol.C-37,No.11,pp.1465-1467,Nov.1988.
[Chapiro84]Daniel M.Chapiro.Globally-Asynchronous Locally-Synchronous Systems.Ph.D.thesis,Stanford University,Oct.1984.
[Myers01]Chris J.Myers.Asynchronous Circuit Design.John Wiley and Sons,July 2001
[Steininger04]A.Steininge,M.Delvai and W.Huber.Synchronous and AsynchronousDesign Methods-A hardware Designer′s Perspective.International Conference on ComputerDesign(ICCD)2004(submission).
[Fai04]Fairbanks Scott(GB).Method and apparatus for a distributed clockgenerator,USpatent no.US2004108876,
[Kopetz97]H.Kopetz.Real Time Systems-Design Principles for Distributed EmbeddedApplications.Kluwer Academic Publishers,Boston 1997.
[Const02]Cristian Constantinescu.Impact of Deep Submicon Technology on Dependabilityof VLSI Circuits.Proceedings of the International Conference on Dependable Systems and Networks(DSN)2002.pp.205-209,June 2002
[TTRS02] International Technology Roadmap for Semiconductors 2001(http://public.itrs.net)
[Sutherland89]I.E.Sutherland.Micropipelines,Communicationns of the ACM,Vol.32,No.6Jun.1989,pp.720-738.
[Salim01]M.Salim Maza and M.Linares Aranda.Analysis of Clock Distribution Networksin the Presence of Crosstalk and Groundbounce.IEEE ICECS.Sep.2001,pp 773-776.
[Dobberpuh192]D.W.Dobberpuhl et al.A 200-Mhz 64-b dual issue CMOS microprocessor.IEEE Journal on Solid-State Circuits.Vol.27,pp.1555-1565,Nov 1992.
[Restle02]J.Phillip Restle,et al.The clock distribution of the Power4 microprocessor.Solid-State Circuits Conference,2002.ISSCC 2002 IEEE International,Vol.1,2002,pp.144-145.
[Chen02]Charlie Chung-ping Chen and Ed Cheng.Future SOC Design Challenges andSolutions.International Symposium on Quality Electronic Design.pp.534-53,March 2002.
[Friedman01]Eby G.Friedman.Clock Distribution Networks in Synchronous Digital Inte-grated Circuits.Proceedings of the IEEE.Vol.89,No.5,pp.665-692,May 2001.
[Ram90]P.Ramanathan,K.G.Shin and R.W.Butler.Fault-Tolerant Clock Synchronizationin Distributed Systems.Computer,Vol.23,No.10,pp.30-42,Oct.1990.IEEE ComputerSociety Press.
[Lu89]Meiliu Lu,Du Zhang and Tadao Murata.A Design Approach for Self-Diagnosis ofFault-Tolerant Clock Synchronization.IEEE Transactions on Computers.Vol.38,Issue 9,Sept.1989,pp.1337-1341.IEEE Computer Society Press.
[SynUTC02]Martin Horaue,Ulrich Schmid,Klaus Schossmaier,Roland NikolausPSynUTC-Evaluation of a High Precision Time Synchronization Prototype Systemfor Ethernet LANs.Proceedings of the 34th{IEEE}Precise Time and Time Interval Systems andApplication Meeting(PTT′02),Reston,Virginia,December 2002,pp.263-278.
[SSHL97]Klaus Schossmaier,Ulrich Schmid,Martin Horauer,Dietmar Loy.Specificationand Implementation of the Universal Time Coordinated Synchronization Unit(UTCSU).Real-Time Systems 12(3),May 1997,pp.295-327.
[Arteris04]Arteris,Arteris unveis strategy,technology for enableing Network-on-Chip(NoC)design,Press Release March 2004,
[Chelcea00]Tiberiu Chelcea and Steven M.Novick.A Low-Latency FIFO for Mixed-ClockSystems.IEEE Computer Society Workshop on VLSI,April 2000,pp.119-126.
[Huffman54]D.A.Huffman.The Synthesis of sequential switching circuits.Journal of theFranklin Institute,March/April 1954.
[Hauck95]S.t Hauck.Asynchronous Design Methodologies;An Overview.proceedings of theIEEE,Vol.83,pp.69-93,1995.
[Berke199]C.H.van Berke,M.Josephs and S.Nowick.Scanning the Technology;Applica-tions of asynchronous circuits.Proceedings of the IEEE,Vol,87,pp.223-233,1999.
[Gaisler02]Jiri Gaisler.A Portable and Fault-Tolerant Microprocessor Based on the SPARCV8 Architecture.,2002.Proceedings of the International Conference on Dependable Systems andNetworks.June 2002,pp.409-415.
[Truong97]T.Kien Truong.Single Chip Fault Tolerant Clock for Integrated Modular Avion-ics.16th Digital Avionics Systems Conference(DASC),AIAA/IEEE,Vol.1,Oct.1997,pp.:2.1-36-44 vol.1
[LL88]J.Lundelius-Welch and N.Lynch.A New Fault-Tolerant Algorithm for Clock Syn-chronization.Proc.of 3rd ACM Symposium on Principles of Distributed Computing,August 1984,pp.75-88.
[SIFT78]John H.Wensley et al.SIFT;Design and Analysis of a Fault tolerant Computer forAircraft Control.proc.IEEE Vol.66,Oct 1978.
[Widder04]Josef Widder.Distributed Computing in the Presence of Bounded Asynchrony.Ph.D.thesis,Vienna University of Technology.May 2004.
[DHS86]Danny Dolev,Joseph Y.Halpern and H.Raymond Strong.On the Possibility andImpossibility of Achieving Clock Synchronization".Journal of Computer and System Sciences.Vol.32,pp.230 250,1986.
[LL84]Jennifer Lundelius-Welch and Nancy A.Lynch.An Upper and Lower Bound forClock Synchronization.Information and Control.Vol.62 pp.190-204,1984.
[WS03]Josef Widder and Ulrich Schmid.Booting Clock Synchronization in Partially Syn-chronous Systems with Hybrid Node and Link Failures.Technical Report,Nr.183/1-126,Department of Automation,Vienna University of Technology.January 2003.
Claims (12)
1.一种在硬件系统中用于分布式容错时钟脉冲生成的方法,其特征在于,
●所述容错时钟脉冲通过多个相互通信的容错时钟脉冲同步算法TS-Alg分布式地生成,而不用外部或者内部时钟振荡器,其方式是
i.上述多个TS-Alg通过时钟脉冲信号的任意的、永久的和易受瞬时错误影响的网络TS-Net相互交换信息,
ii.将每个TS-Alg分配给一个或者更多功能单元(Fu1,Fu2,...),其中它们的本地时钟脉冲通过TS-Alg生成,
●所有本地时钟脉冲被确保维持频率同步,使得在给定的时段内任意两个本地时钟脉冲最大相差指定的不变数目的时钟周期,使得能够借助合适的时钟脉冲转换电路从任何本地时钟脉冲中生成全局系统时钟脉冲,所述全局系统时钟脉冲使得能够在芯片上的任意的功能单元之间进行全局同步通信,
●特定数量的瞬时和/或永久错误允许出现在TS-Alg或者TS-Net中,而不会影响所述容错时钟脉冲生成和/或所述同步准确度,
●容错时钟脉冲自动地达到最大可能的频率,所述最大可能的频率由所使用的制造工艺、TS-Alg和TS-Net的布局和布线以及当前工作条件来确定。
2.根据权利要求1所述的方法,其特征在于,所述全局系统时钟脉冲的可用性仅仅取决于芯片上的信号路径的最大与最小的端到端信号延迟时间之比,而不取决于其最大值。
3.根据权利要求1或者2所述的方法,其特征在于,所述本地时钟脉冲和因而由此得到的所述全局系统时钟脉冲的同步准确度也在所述硬件系统上电期间得到保证。
4.根据权利要求1或者2所述的方法,其特征在于,借助异步逻辑来实现所述方法。
5.根据权利要求1或者2所述的方法,其特征在于,通过在所述TS-Alg中使用可变的延迟元件或者特殊的时钟脉冲转换电路来增强所述全局系统时钟脉冲的稳定性,其中当前延迟时间或者时钟脉冲修正值:
●静态地在制造所述硬件系统时获得,和/或
●对于所述硬件系统的相应的应用在执行时可配置地获得,和/或
●自动地根据对工作条件的参数的一次或者连续测量而获得。
6.根据权利要求1所述的方法,其特征在于,所述硬件系统包括:VLSI芯片、片上系统、IP核、PCB和PCB系统。
7.根据权利要求1所述的方法,其特征在于,所述时钟脉冲转换电路包括除法器。
8.根据权利要求1所述的方法,其特征在于,所述工作条件包括温度和电源电压。
9.根据权利要求4所述的方法,其特征在于,所述异步逻辑包括弹性管道和Muller-C门。
10.一种用于硬件系统的不同功能单元之间的全局数据传输的方法,其特征在于,通过根据权利要求1至5中任一项所述的方法分布式地生成的容错时钟脉冲的分频,使关于频率全局充分同步的macrotick可用,以能够实现无后稳定性问题的数据传输。
11.根据权利要求10所述的方法,其特征在于,所述硬件系统是芯片。
12.一种用于芯片、PCB和PCB系统中的功能单元的同步复位的方法,其特征在于,所述方法使用基于权利要求1至5中任一项所述的方法在复位阶段期间保证本地脉冲关于频率的全局同步,并且因此可以用于识别所有功能单元的明确的开始时刻。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AT0122304A AT501510B1 (de) | 2004-07-19 | 2004-07-19 | Dezentrale fehlertolerante taktgenerierung in vlsi chips |
ATA1223/2004 | 2004-07-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1997969A CN1997969A (zh) | 2007-07-11 |
CN100472465C true CN100472465C (zh) | 2009-03-25 |
Family
ID=35266779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800241666A Expired - Fee Related CN100472465C (zh) | 2004-07-19 | 2005-07-18 | Vlsi芯片中的分散容错时钟脉冲生成 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7791394B2 (zh) |
EP (1) | EP1769356B1 (zh) |
JP (1) | JP2008507050A (zh) |
CN (1) | CN100472465C (zh) |
AT (2) | AT501510B1 (zh) |
DE (1) | DE502005003356D1 (zh) |
WO (1) | WO2006007619A2 (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1830268B1 (en) * | 2006-03-03 | 2019-05-08 | STMicroelectronics (Research & Development) Limited | Multiple purpose integrated circuit |
US8889348B2 (en) * | 2006-06-07 | 2014-11-18 | The Trustees Of Columbia University In The City Of New York | DNA sequencing by nanopore using modified nucleotides |
US7792015B2 (en) * | 2007-08-09 | 2010-09-07 | United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Byzantine-fault tolerant self-stabilizing protocol for distributed clock synchronization systems |
JP4956603B2 (ja) * | 2009-12-04 | 2012-06-20 | 株式会社東芝 | 分散システムおよび論理時間調整方法 |
US8324914B2 (en) | 2010-02-08 | 2012-12-04 | Genia Technologies, Inc. | Systems and methods for characterizing a molecule |
US9605307B2 (en) | 2010-02-08 | 2017-03-28 | Genia Technologies, Inc. | Systems and methods for forming a nanopore in a lipid bilayer |
US9678055B2 (en) | 2010-02-08 | 2017-06-13 | Genia Technologies, Inc. | Methods for forming a nanopore in a lipid bilayer |
EP2634981B1 (en) * | 2010-04-08 | 2015-06-10 | Vadasz, Istvan | Cell based data transfer with dynamic multi-path routing in a full mesh network without central control |
JP5549513B2 (ja) | 2010-10-01 | 2014-07-16 | 富士通株式会社 | 伝送システム、スレーブ伝送装置及びクロック同期方法 |
US9121059B2 (en) | 2010-12-22 | 2015-09-01 | Genia Technologies, Inc. | Nanopore-based single molecule characterization |
US8962242B2 (en) * | 2011-01-24 | 2015-02-24 | Genia Technologies, Inc. | System for detecting electrical properties of a molecular complex |
US9110478B2 (en) | 2011-01-27 | 2015-08-18 | Genia Technologies, Inc. | Temperature regulation of measurement arrays |
US8861552B2 (en) | 2011-02-15 | 2014-10-14 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Fault-tolerant self-stabilizing distributed clock synchronization protocol for arbitrary digraphs |
AT511805B1 (de) * | 2011-11-09 | 2013-03-15 | Fts Computertechnik Gmbh | Verfahren zur optimierung der wartezeit in replika-deterministischen systemen |
CN104025482B (zh) * | 2011-12-27 | 2017-06-13 | 中兴通讯股份有限公司 | 一种基于分组交换系统的全局同步方法及系统 |
CN102546406B (zh) * | 2011-12-28 | 2014-08-20 | 龙芯中科技术有限公司 | 片上网络路由集中控制系统和装置及自适应路由控制方法 |
US8986629B2 (en) | 2012-02-27 | 2015-03-24 | Genia Technologies, Inc. | Sensor circuit for controlling, detecting, and measuring a molecular complex |
WO2013188841A1 (en) | 2012-06-15 | 2013-12-19 | Genia Technologies, Inc. | Chip set-up and high-accuracy nucleic acid sequencing |
US9605309B2 (en) | 2012-11-09 | 2017-03-28 | Genia Technologies, Inc. | Nucleic acid sequencing using tags |
AT513649A3 (de) * | 2012-11-16 | 2015-12-15 | Fts Computertechnik Gmbh | Methode und Apparat zur präzisen Uhrensynchronisation in einem verteilten Computersystem mit einer Zeitsignalleitung |
US8635579B1 (en) * | 2012-12-31 | 2014-01-21 | Synopsys, Inc. | Local clock skew optimization |
US9759711B2 (en) | 2013-02-05 | 2017-09-12 | Genia Technologies, Inc. | Nanopore arrays |
EP2976714B1 (en) * | 2013-03-20 | 2017-05-03 | NEC Corporation | Method and system for byzantine fault tolerant data replication |
US9551697B2 (en) | 2013-10-17 | 2017-01-24 | Genia Technologies, Inc. | Non-faradaic, capacitively coupled measurement in a nanopore cell array |
US9322062B2 (en) | 2013-10-23 | 2016-04-26 | Genia Technologies, Inc. | Process for biosensor well formation |
CN105723222B (zh) | 2013-10-23 | 2019-01-22 | 吉尼亚科技公司 | 使用纳米孔的高速分子感测 |
US9594395B2 (en) | 2014-01-21 | 2017-03-14 | Apple Inc. | Clock routing techniques |
US9520180B1 (en) | 2014-03-11 | 2016-12-13 | Hypres, Inc. | System and method for cryogenic hybrid technology computing and memory |
US10025344B2 (en) | 2015-04-21 | 2018-07-17 | The United States Of America As Represented By The Administrator Of Nasa | Self-stabilizing distributed symmetric-fault tolerant synchronization protocol |
US10326647B2 (en) * | 2016-10-13 | 2019-06-18 | Electronics And Telecommunications Research Institute | Network-on-chip using temperature-effect-inversion and operation method thereof |
KR102244848B1 (ko) * | 2016-10-13 | 2021-04-27 | 한국전자통신연구원 | 온도-효과-역전 현상을 사용하는 네트워크-온-칩 및 그것의 동작 방법 |
US11353918B2 (en) | 2018-09-26 | 2022-06-07 | The Charles Stark Draper Laboratory, Inc. | Asynchronous timing exchange for redundant clock synchronization |
LU101216B1 (de) * | 2019-05-15 | 2020-11-16 | Phoenix Contact Gmbh & Co | Technik zur Korrektur eiines Zeitparameters |
CN110674063B (zh) * | 2019-09-16 | 2021-03-23 | 上海天数智芯半导体有限公司 | 一种用于芯片内实现fabric的架构和方法 |
CN112255533A (zh) * | 2020-09-25 | 2021-01-22 | 杭州加速科技有限公司 | 提高半导体测试机同步触发实时性的装置和方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4584643A (en) * | 1983-08-31 | 1986-04-22 | International Business Machines Corporation | Decentralized synchronization of clocks |
EP0223031A3 (en) * | 1985-11-18 | 1990-04-04 | International Business Machines Corporation | Clock synchronisation in a distributed processing system |
DE19742918A1 (de) * | 1997-09-29 | 1999-04-01 | Cit Alcatel | Verfahren zum Austausch von Datenpaketen innerhalb eines sicheren Mehrrechnersystems |
JPH11143568A (ja) * | 1997-11-11 | 1999-05-28 | Fujitsu Ltd | クロック制御装置 |
US6057724A (en) * | 1998-07-13 | 2000-05-02 | International Business Machines Corp. | Method and apparatus for synchronized clock distribution |
US6204713B1 (en) * | 1999-01-04 | 2001-03-20 | International Business Machines Corporation | Method and apparatus for routing low-skew clock networks |
TW509835B (en) * | 1999-08-11 | 2002-11-11 | Mitac Int Corp | Method and device for checking the system time parameters |
US6433598B1 (en) * | 2000-06-19 | 2002-08-13 | Lsi Logic Corporation | Process, voltage and temperature independent clock tree deskew circuitry-active drive method |
JP3492655B2 (ja) * | 2001-08-20 | 2004-02-03 | エヌイーシーシステムテクノロジー株式会社 | 電子機器 |
US6897699B1 (en) * | 2002-07-19 | 2005-05-24 | Rambus Inc. | Clock distribution network with process, supply-voltage, and temperature compensation |
US7126405B2 (en) * | 2002-12-02 | 2006-10-24 | Scott Fairbanks | Method and apparatus for a distributed clock generator |
US7089442B2 (en) * | 2003-02-07 | 2006-08-08 | Rambus Inc. | Fault-tolerant clock generator |
US7023252B2 (en) * | 2004-05-19 | 2006-04-04 | Lsi Logic Corporation | Chip level clock tree deskew circuit |
US7042269B2 (en) * | 2004-07-06 | 2006-05-09 | Princeton Technology Corporation | Method for dynamic balancing of a clock tree |
-
2004
- 2004-07-19 AT AT0122304A patent/AT501510B1/de not_active IP Right Cessation
-
2005
- 2005-07-18 US US11/630,268 patent/US7791394B2/en not_active Expired - Fee Related
- 2005-07-18 EP EP05761737A patent/EP1769356B1/de not_active Not-in-force
- 2005-07-18 AT AT05761737T patent/ATE389913T1/de not_active IP Right Cessation
- 2005-07-18 CN CNB2005800241666A patent/CN100472465C/zh not_active Expired - Fee Related
- 2005-07-18 JP JP2007521745A patent/JP2008507050A/ja active Pending
- 2005-07-18 WO PCT/AT2005/000280 patent/WO2006007619A2/de active Application Filing
- 2005-07-18 DE DE502005003356T patent/DE502005003356D1/de active Active
Also Published As
Publication number | Publication date |
---|---|
AT501510B1 (de) | 2009-05-15 |
WO2006007619A3 (de) | 2006-05-04 |
US7791394B2 (en) | 2010-09-07 |
DE502005003356D1 (de) | 2008-04-30 |
US20090102534A1 (en) | 2009-04-23 |
EP1769356A2 (de) | 2007-04-04 |
AT501510A1 (de) | 2006-09-15 |
EP1769356B1 (de) | 2008-03-19 |
CN1997969A (zh) | 2007-07-11 |
JP2008507050A (ja) | 2008-03-06 |
ATE389913T1 (de) | 2008-04-15 |
WO2006007619A2 (de) | 2006-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100472465C (zh) | Vlsi芯片中的分散容错时钟脉冲生成 | |
Keichafer et al. | The MAFT architecture for distributed fault tolerance | |
Cristian | Understanding fault-tolerant distributed systems | |
Pratt et al. | Distributed synchronous clocking | |
Gray et al. | High-availability computer systems | |
Poledna | Replica determinism in distributed real-time systems: A brief survey | |
US20050223178A1 (en) | Delegated write for race avoidance in a processor | |
CN100594463C (zh) | 为多个电路、集成电路和节点提供定时信号的方法及设备 | |
Függer et al. | Reconciling fault-tolerant distributed computing and systems-on-chip | |
Harper et al. | Fault-tolerant parallel processor | |
Fugger et al. | Fault-tolerant distributed clock generation in VLSI systems-on-chip | |
WO1993011489A1 (en) | Multiple-fail-operational fault tolerant clock | |
US7089462B2 (en) | Early clock fault detection method and circuit for detecting clock faults in a multiprocessing system | |
Kopetz et al. | The design of large real-time systems: the time-triggered approach | |
Ferringer et al. | VLSI implementation of a fault-tolerant distributed clock generation | |
Gustavson et al. | Local-area multiprocessor: the scalable coherent interface | |
Olson et al. | Fault-tolerant clock synchronization in large multicomputer systems | |
Varela et al. | Fault-tolerance for exascale systems | |
Namazi et al. | Reliability-aware task scheduling using clustered replication for multi-core real-time systems | |
Függer et al. | How to speed-up fault-tolerant clock generation in VLSI systems-on-chip via pipelining | |
Obermaisser et al. | A transient-resilient system-on-a-chip architecture with support for on-chip and off-chip tmr | |
Schneider | Abstractions for fault tolerance in distributed systems | |
Polzer et al. | A metastability-free multi-synchronous communication scheme for SoCs | |
Paulitsch | Fault-tolerant clock synchronization for embedded distributed multi-cluster systems | |
Fuchs et al. | Mapping a fault-tolerant distributed algorithm to systems on chip |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090325 Termination date: 20100718 |