首页> 中国专利> 同步数字系统中对芯片间通信的多频率时钟漂移控制

同步数字系统中对芯片间通信的多频率时钟漂移控制

摘要

本公开涉及同步数字系统中对芯片间通信的多频率时钟漂移控制。公开了能够在部件芯片之间执行多速率同步通信的多芯片装置的实施例。每个芯片可以接收公共时钟参考信号,并且可以依赖于时钟参考信号而生成内部时钟信号。时钟分配树和锁相环可以用来最小化在芯片周界的I/O电路处的内部时钟漂移。每个芯片还可以生成内部同步信号,其与接收到的时钟参考信号相位对齐。每个芯片可以使用自己的相应的同步信号来同步多个时钟分频器,其提供可软件选择的降低频率的时钟信号给芯片的I/O单元。以此方式,多个芯片的降低频率的时钟信号与低漂移内部时钟信号边缘对齐,并且与公共时钟参考信号相位对齐,从而允许多个芯片的I/O单元在低时钟漂移的情况下以多个速率执行同步通信。

著录项

  • 公开/公告号CN105009455A

    专利类型发明专利

  • 公开/公告日2015-10-28

    原文格式PDF

  • 申请/专利权人 相干逻辑公司;

    申请/专利号CN201380065071.3

  • 申请日2013-12-13

  • 分类号H03L7/06(20060101);G06F1/10(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人鲍进

  • 地址 美国得克萨斯

  • 入库时间 2023-12-18 11:47:40

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-27

    授权

    授权

  • 2015-12-23

    实质审查的生效 IPC(主分类):H03L7/06 申请日:20131213

    实质审查的生效

  • 2015-10-28

    公开

    公开

说明书

技术领域

本申请涉及电子系统并且,更具体而言,涉及数字电子系统中的 时钟信号分配网络,并且尤其涉及包含许多处理单元的集成电路 (Integrated Circuit,IC)芯片中的时钟分配。

背景技术

对于大型昂贵的计算机系统,它们的经济性决定了它们要一直保 持繁忙。按照惯例,性能是作为每秒的计算来测量的。对于小型不昂 贵的计算机,持续的高速操作是不要求的,并且对于靠电池操作的设 备甚至是个障碍。计算机和数字信号处理器(Digital Signal  Processor,DSP)的性能越来越多地是以每秒每瓦的计算或者所使用 的每焦耳能量的计算来测量的。

虽然存在需要一次数小时的高性能操作的娱乐应用,但是小型计 算机的大部分使用对于高性能的突发需要少于一分钟。实际上,当小 型嵌入式计算机或数字信号处理器(DSP)以降低的速度就可以良好 地工作时,存在许多时间间隔。由于用于微型计算机的电路技术消耗 与计算速度成比例的电力;因此以降低的速度运行的机会是降低功耗 并节省电池电量的机会。对于个人电子设备(Personal Electronic  Device,PED),机会可以是最大的,其中人的兴趣和注意力把高度 可变的需求放在微型计算机和嵌入在其中的DSP上。

单处理器系统

在只有一个处理单元的计算机中,处理器可以通过写到生成系统 时钟信号的特定电路来调节其自己的速度。这可以被用来使系统时钟 频率匹配平均工作量。但是,降低的系统时钟频率(或速率)也放慢 了操作系统软件的驻留内核及其响应时间。依赖于实现,当机器为了 每秒更多计算的性能类型而需要升到更快的时钟速率时,用户会注意 到停顿。

单处理器计算机及其控制软件也常常具有用户可调节的暂停 (time-out);并且硬件中的断电模式越多,系统可以越精细地使其功 率使用适应实际的计算需求。例如,在初始暂停之后处理器可以切换 到降低的速度和降低的供给电压状态;在更长的暂停之后切换到时钟 停止状态;并且在更长的暂停之后切换到低电压睡眠状态。这些低电 压状态把数据维持在易失性存储器中,这对于快速重新激活是有利的。 如果处理器的电源被完全切断,则其易失性存储器中的数据丢失;并 且在处理器重新激活时,数据将必须从非易失性存储器重新加载。

多处理器系统

大型多处理器系统已经开辟了许多技术来提高每秒的计算,但是 对于电源管理不太积极。随着利用包含多个处理单元的不昂贵IC芯 片的PED的来临,对能量效率的需求增加了许多。

多处理的优点包括对于为了并行执行而被转换的算法有高得多的 计算吞吐量,以及由于过程分离到不同的处理器和存储器上而产生的 增加的可靠性和安全性。在多处理器系统中,在其自己的处理器上执 行的监督过程更不可能被在其它处理器上执行的应用过程延迟。

在应用中,依赖于外部事件,一些处理器可以被放慢而其它被加 速。例如,用于显示视频数据的视频处理器的性能许多都依赖于数据 的类型和用户行为。(在这个例子中,视频处理器可以是专用于视频 的单个单元,或者可以是被编程为以并行方式处理视频的一组处理元 件。)如果用户在编辑视频,这在运动的显示中会有频繁的停顿。在 停顿时,视频处理器可以降低至空闲速度,准备好作出响应但是比全 速耗散更少的功率。同时,用户接口可以由为了进行用户交互而被优 化的不同处理器处理。

在多处理器系统中节省电力的另一条途径是安排多个处理器在各 种时钟频率上运行-快的时钟用于计算中的关键路径,而较慢的时 钟用于其它部分。由于节省电力的机会高度依赖于应用软件,因此时 钟分配硬件应当是可配置的,优选地可从应用软件快速配置。

多处理器阵列

诸如计算机和数字信号处理器(DSP)的数字电子系统越来越多 地利用一个或多个多处理器阵列(Multi-Processor Array,MPA)。 MPA可以被宽松地定义为多个处理元件(Processing Element, PE)、支持存储器(Supporting Memory,SM)以及高带宽互连网 络(Interconnection Nnetwork,IN)。如在本文所使用的,术语 “处理元件”指处理器或CPU(中央处理单元)、微处理器或者处 理器核心。MPA中的词“阵列”在其最广泛的意义上是用来指通过 网络互连的多个计算单元(每个计算单元可以包含处理和/或存储器 资源),其中连接在一个、两个、三个或更多个维度中可用,包括圆 形维度(回路或环)。应当指出,更高维度的MPA可以映射到具有 较少维度的制造介质,假定该介质支持增加的布线密度。例如,具有 四维(4D)超立方体形状的MPA可以映射到硅集成电路(IC)芯 片的3D堆叠,或者映射到单个2D芯片,或者甚至1D的计算单元 行。而且低纬度的MPA可以映射到更高维度的介质。例如,1D的 计算单元行可以以蜿蜒的形状布置到IC芯片的2D平面上,或者盘 绕到芯片的3D堆叠中。MPA可以包含多种类型的计算单元以及处 理器和存储器的穿插布置。在MPA的广泛意义上,还包括MPA的 层次或嵌套布置,尤其是由互连的IC芯片组成的MPA,其中IC芯 片包含一个或多个还可以具有更深层次结构的MPA。

在不同类型的MPA中或者MPA之间可以有一个或多个互连网 络(IN)。MPA中互连网络的目的是在PE、SM和I/O之间和之中 移动数据、指令、状态、配置或控制信息。主互连网络(Primary  Interconnection Network,PIN)是为高带宽数据移动而设计的,具 有良好但不是极低的等待时间(在源和目的地之间输送数据的时间延 迟)。被PIN移动的数据可以封装其它类型的信息,假定处于数据 目的地的硬件或软件能够把数据翻译成其它类型的信息。MPA可以 具有其它的辅助IN;这些辅助IN可以呈现更低或更高的等待时间, 但是一般而言将具有低得多的带宽。

IN由链路和节点组成。链路通常由一组实现为电路板或IC上的 导电路径(轨道或迹线)的一组平行“导线”组成。节点包含用于耦 合到链路的端口,它包含在链路上发送和接收信号的发送器电路和接 收器电路。节点可以具有用于与PE或SM通信的其它端口。节点具 有包含数据路径的路由器和用于彼此连接端口的交换机,加上用于根 据一种或多种协议选择性地连接端口的路由器控制机制。

为了实现高带宽,PIN的每条链路可以包括许多并行的导线。如 果节点之间的距离小,则链路短并且可以使用标准CMOS二进制信 令方案;该方案是电源高侧附近的稳定信号电压是代表逻辑1的信号 状态(H)并且电源低(或接地)侧附近的稳定信号电压是其它二进 制状态(L)并且代表逻辑0。在这种信令方案中,一根导线编码一 位信息。如果链路的长度长,诸如在IC芯片之间或电路板之间,则 不同的信令方案可以更好地适于维持高速度和拒绝噪声。

链路中的并行导线可以携带数据或时钟信号。时钟信号的目的是 标记发送电路可以改变数据信号的时间点和接收电路可以采样数据信 号的时间点。在适当设计的电路中,采样时间发生在改变的数据信号 停留到稳态值之后。发送器可以使用时钟信号来触发何时它把线路驱 动至信号状态H或L;接收器电路可以使用时钟信号把数据信号锁 存到寄存器中。常见的惯例是接收器在其时钟信号的上升(0到1) 变换上锁存数据,而发送器在其时钟信号的下降(1到0)变换上更 新其输出。这些信号状态变换花有限的时间量完成,但是,如果上升 和下降间隔与用来表示位的间隔相比而言短时,变换也可以被称为 “边缘”。

如果时钟信号在多个发送器和接收器之间共享,则它们被说成是 同步的并且数据传输一般被称为“同步”数据传输。“异步”数据传 输简单地说就是在不使用公共时钟信号的情况下数据信号可以被发送 和接收的任何方案。对于采样数据信号而言,异步接收器比同步接收 器更加灵活。具体而言,它可以在与其本地时钟信号非常不同的时间 点采样并锁存数据。一些异步接收器通过过采样输入来工作,以查看 数据信号变换。更简单的异步接收器接受源自发送器并且与数据一起 被携带的时钟(或选通)输入信号;选通输入在接收器的前端锁存数 据,然后被缓冲并且为了同步输出而被重新定时。

链路上的数据流可能需要被发送器或接收器中断。如果发送器暂 时没有新数据要发送,则接收器会错误地持续读数据的最后一位,除 非它从发送器得到未就绪信号。类似地,如果接收器暂时没有位置放 数据,则它会错误地忽略到达的数据,除非它可以告诉发送器停止发 送。互连网络可以具有专用于流控制的特殊信号以及用于在这些信号 改变状态时猜想节点要做什么的协议。这些特殊信号可以是链路本身 当中的导线,或者它们可以是导线集合中的代码模式。协议是利用简 单的状态机实现的。

在典型的微处理器IC芯片中,数据传输是同步的。但是,更高 性能(每秒的计算)的追求已经把时钟频率推到越来越高(目前是大 约2GHz)。这么高的时钟频率在导线物理上短的IC内部是合理的, 但是对于芯片I/O和芯片间链路而言则难以管理。

信号以非常高的速度(大约每纳秒4-6英寸)在电路板上传播, 但是对于电路板上的精细导线“迹线”,发送器会发展出比纳秒短的 上升和下降时间。利用足够快的上升和下降时间,在任何给定的时刻, 都有几个时钟/数据变换(或边缘)可以在IC芯片之间的信号线上经 过。

在几乎任何微处理器IC芯片上,与芯片I/O电路一起使用的时 钟信号不像在核心中使用的时钟信号那么高。电路板上附近芯片之间 大约每秒4千兆字(每个字16位)的高带宽可以利用并行导线、低 电压差分信令(Low-Voltage Differential Signaling,LVDS)和同步 数据传输获得。在电路板之间,高带宽可以利用并行导线或光纤以及 同步或异步数据传输获得。专用的电路和控制器与外部存储器芯片一 起使用,诸如流行的双数据率(Double Data Rate,DDR)系列的接 口。专用的电路还用于高速位串行通信,诸如串行器&解串器 (serializer&deserializer,SERDES)电路。

为了建立由多个VLSI芯片和同步并行芯片间通信组成的大型系 统,IO时钟优选地以使得它们将跨多个IC芯片同步这样一种方式生 成。通常这是利用每个芯片中的锁相环(Phase-Locked Loop,PLL) 实现的。PLL在外部生成的时钟参考信号与芯片内部的时钟信号之 间维持恒定的平均相位关系。通常,参考时钟频率比内部时钟频率低 得多,以便限制带宽和引入参考时钟信号的噪声,和/或使用晶体控 制振荡器的输出。

多频率时钟

用于MPA的PE、SM、IN和时钟分配网络与常规微处理器相 比需要更高的每个处理器功率效率,这仅仅是因为在每个MPA IC 芯片中有10至100倍更多的处理器,并且用于其的合理芯片尺寸和 包装具有有限的容量来耗散热量。

MPA时钟分配及其控制机制还应当更加灵活,因为,对于大量 的处理器,对于其操作的瞬时需求存在更大波动。

在多处理器系统中,处理器可以被配置为控制其它处理器的供给 电压和时钟频率,以节省整体功耗。简单的方法是关闭到暂时不需要 的处理器的时钟并且用来使切断其电力的间隔更长。更专业的方法涉 及准备处于低速的处理器供在高速时使用。

对于处理器和存储器,重新打开电源并且恢复处理比关掉其复杂 得多。当通电时,处理器处于随机状态,在时钟开启之后需要电路的 复位。然后,需要初始化序列把处理器带到已知的就绪状态、重新加 载支持存储器并且开始应用软件的执行。

如果所有这些对应用来说所花时间太长,则准备处于低时钟频率 的处理器会是有用的(节省电力),使得它可以只需要几微秒的事先 通知就可以重新开始全速操作。

功耗

为了看到如何利用并行计算节省能量,我们简单地回顾数字 CMOS电路使用电力的途径。基本上,平均电力使用依赖于供给电 压和时钟频率。

在CMOS数字电路中,逻辑一和零由信号线上的高和低电压电 平表示。信号线的状态是高或低。电力被用来改变(或切换)每个信 号的状态,否则电路就处于耗散小得多的电量的静止状态,这种小的 电量仅仅是由于泄漏电流造成的。把信号线从高切换到低或从低切换 到高所需的能量通常与线路和连接到其的晶体管的总电容C成比例。 晶体管切换信号线所需的电源电流首先浪涌然后衰减-非常像通过 开关给电容器充电的电流。通过晶体管用于切换事件的集成的电流 (以安培*秒为单位)等于总电容C上电荷Q的变化。根据电容器的 物理性质,Q=C*V,其中C以法拉第为单位,并且V以伏为单位。 以某个频率f重复的充电和放电导致平均切换功率:

Pavg=I*V=f*C*V*V=f*C*V2

功耗与频率的这种线性关系在很宽的范围内保持,有许多个数量 级。在非常低的频率,存在功率本底,其中dc泄漏电流将在整个功 耗中占主导地位。在非常高的频率,晶体管没有快到足以完全切换信 号线,并且这造成位错误和过多的供给电流。位错误常常可以通过增 加供给的V来抑制,但是这造成功率的二次增长,直到电路由于过 热而被损坏为止。

如果CMOS电路不需要太快运行,则Pavg可以通过在较低的频 率操作而减小,并且通过减小供给电压而进一步减小。但是,以较低 的电压操作导致每个晶体管更小的充电/放电电流。低于阈值电压 Vth,晶体管断开(除了微小的亚阈值电流之外)。

用于并行计算的能量节约机会

用于并行计算的机会在于每单位能量的计算低于利用单个处理器 的每单位能量的计算。为了看到为什么是这样,考虑需要十亿次操作 的计算。在处于1GHz的单元处理器上,以比方说100W(在2V是 平均500mA)或大约100焦耳能量的电源,这花费大约1s。如果使 用100个相同类型和电源的处理器,则计算时间可以减小,理想地按 处理器的个数减小,但是由于通信开销,减小50倍到20ms是更有 可能的。所需的能量加倍,因为多100倍的处理器在该时间间隔的 1/50上运行。但是,我们可以把处理器放慢50倍至20MHz并且在 原始的1s间隔内完成该固定的计算。这把每个处理器的功耗减少至 2W。

但是现在供给电压可以减小,因为晶体管不需要这么快地给电容 充电和放电。

实际的IC芯片可以具有更接近最大供给电压规格大约一半的最 小供电电压规格,常常是由于为高速设计的内部电路。

一般化:对大型计算利用N倍多的处理器,并且利用相同的时 间量来完成该计算,则时钟频率F可以按保守估计~2/N减小,然后, 对于10<N<100,Vsupply可以减小大约两倍。每个处理器的平均动 态功率减小(Fp/Fs)*(Vp/Vs)^2,其中下标p指并行计算并且下标s指 单处理器计算。因此,对于N个处理器,与单个快速处理器相比而 言的典型动态功率减小是:

Pp/Ps=N*2/N*(1/2)^2=1/2

而且,由于泄漏电流造成的静态功耗也可以通过较低的供给电压 来减小。

当然,这种策略有其物理限制。由于Vdd比晶体管接通电压 (Vth)高一伏的十分之几,因此Vth的统计分散变成限制因素。制 造技术的将来改进可以减小Vth的分散。

在MPA中,如果对阵列的远离部分之间的时钟漂移(clock skew) 的需求可以放宽,则额外的功率节约可以在时钟分配网络本身当中进 行。通过只连接到附近的电路块,这在其中大部分信号路径短的 MPA中是有可能的。例如,非常高百分比的信号路径长度短的 HyperX体系架构(参考专利No.7,415,594)具有这种特性。

示例性多处理器IC

图1说明了多处理器IC的实施例,用来阐明由本申请的实施例 解决的时钟分配网络设计方面/问题。如图1中所说明的,示例性 hx3100A多处理器IC包括MPA,它接收时钟信号CLK1和同步信 号SYNC作为输入。CLK1和SYNC信号是由CLK1+SYNC发生器 生成的。CLK1+SYNC发生器接收时钟参考信号CLKREF、时钟旁 路信号Bypass和系统同步信号SYNCIN作为输入。在hx3100A多处 理器IC上存在的其它输入和其它部件没有说明。时钟参考信号 CLKREF是可以被用来同步不同芯片之间的操作的系统参考时钟, 并且在图1中被说明为由振荡器OSC1生成。这个和其它图中的部件 没有按比例示出。

hx3100A多处理器IC的MPA具有PE的10×10阵列,该阵列 散布在互连网络(IN)的11×11节点网中。每个IN节点包含共享 的数据存储器(Data Memory,DM),以支持邻近的四个PE;并 且每个PE可以访问围绕其的四个邻近节点中的共享DM。每个PE 具有私有指令存储器(Instruction Memory,IM)。

为了内部dc电源分配,芯片被分到四个象限中;配电网的正侧 被分成四个可以单独地耦合到外部电源的“电压孤岛”。配电网的负 侧耦合到系统零参考“地”。

跨象限之间边界的电路可以简单地设计成利用处于相同电压的相 邻电压孤岛操作并且当一个电压孤岛被切断时自我保护。通过电平移 位电路的添加,可以进一步使跨边界的电路能够利用处于不同非零电 压的相邻电压孤岛操作。电平移位电路在业内是众所周知的,并且很 容易添加,但是它们会引入额外的功耗和信号延迟。

在维持整体同步阵列的情况下,用于hx3100A芯片的时钟分配 网络支持处理器与其支持存储器(SM)和互连网络(IN)之间的中 等大小(16X)的频率差。核心阵列中的所有处理器存储器访问和数 据传输都发生在利用全局时钟信号的步骤中。

hx3100具有利用分布式再生器体系架构的时钟树。它利用相对 低的功耗把时钟信号分配到芯片的每个部分,同时限制PE和本地节 点之间的时钟漂移。H树也被考虑,但是它将比所选的树具有更多再 生器,并且因此将耗散更多功率。这种树与H树相比而言的缺点是 中心区域相对于芯片的周界具有逐步漂移(相位超前)的时钟信号。 但是,它为其设计的多处理器体系架构具有到最近邻居的大部分短链 路和连接,以及因此在各步之间具有良好的漂移容限。

图2示出芯片被分成宏单元的棋盘格,每个宏单元由再生器输出 提供服务,并且具有统一的时钟信号相位和内部同步的操作。

在同心窗口帧时间区的概念中,中心定位的区可以分接靠更近其 根的时钟网络。整体效果就是相对于H树而言需要更少的再生器。 图中的圆圈代表再生器。每个再生器具有一个或多个输出,以驱动其 它再生器和/或宏单元(棋盘方格)。到宏单元的每个输出具有可配 置的划分和延迟单元(图中未示出)。全局时钟信号CLK1和同步 信号SYNC是在芯片的边缘由CLK1+SYNC发生器生成的,并且传 送到中心时钟再生器。

中心时钟再生器在四个方向中向芯片的四个象限当中每一个并且 向每个象限中的附加再生器分配时钟和同步信号(sync)。附加的分 支作为树的延伸朝芯片的周界添加。除了中心时钟再生器之外,再生 器单元具有用于本地宏单元的输出。树建立一系列形状近似地像同心 窗口帧的时间区-但是每个帧不需要具有确切的矩形边界或者构成 一个完整的回路。

在hx3100A芯片上,宏单元可以由一个PE和一个IN节点组成, IN节点包含DM和路由器并且也被称为数据-存储器路由器(Data- Memory Router,DMR)。在其它类型的芯片上,宏单元可以包含 不同数量的这些元件。

hx3100A时钟分配网络为每个PE提供时钟频率的选择,同时为 DMR维护统一的高频。各个PE可以被配置为利用位于再生器中的 时钟分频器以降低的时钟频率操作。

2的幂的分频(1/(2^N))很容易利用如图3中所说明的N位长 度的二进制计数器生成。hx3100A芯片再生器使用4位计数器以及输 出选择器,使得支持1/2、1/4、1/8和1/16的分数。如果计数器极长 (以覆盖更宽范围的频率),则它开始占用额外的硅面积(real-estate) 并增加泄漏功耗。

SYNC信号不是时钟,而是一个CLK1周期宽的脉冲,它在 CLK1的每个第16个循环上利用CLK1广播并且它被用来同步再生 器中的PE时钟分频器,如图4的波形中所示。如图3中所示, SYNC被用来每16个循环复位一次计数器。如果没有SYNC信号, 则每个分频器会在不同的时间开始计数并且因此不同的计数器在 CLK1循环的递增中彼此异相。RegP是用于再生器的配置寄存器, 并且它可以由应用软件访问。RegP输出的更新与SYNC信号对齐。

数据和地址缓冲区位于PE和DMR之间以及DMR之间,以便 在停机间隔(stall interval)期间保持数据。虽然最初被用来控制数据 流,但是相同的机制有助于放慢的PE到全速DMR的接口。

DMR运行不慢,从而维持互连网络的带宽;但是它们可以被挂 起(时钟输入被暂停)。通常,DMR功耗也随请求速率而变,并且 如果邻近的放慢的PE在较低的速率作出请求,则DMR功耗也将减 小。

图5示出了生成被用在hx3100A上的全局CLK1和SYNC信号 的途径。PLL由芯片输入配置。当PLL被激活时,在多个循环之后, 它将相位锁定到芯片输入CLKREF的平均频率和相位,其中 CLKREF是方波,并且,依赖于配置,它可以具有通常比CLKREF 高8至128倍的频率。

由通过Logic1可软件访问的Reg0配置的多路复用器M1选择 HFC或CLKREF输入,并且输出耦合到时钟分频器DIV1的CLK0 信号。时钟分频器DIV1通过Logic1被配置为产生相同或减小频率 的CLK1,其中CLK1是发送到核心阵列中的最高频率时钟信号。计 数器CNT0和逻辑门NOR1可以被用来生成SYNC信号。

计数器CNT0可以由芯片输入信号SYNCIN周期性地复位。在 多芯片系统中,一个hx3100A可以被选择具有主CNT0,而其它 hx3100A可以通过从由主CNT0生成的SYNCOUT信号接收 SYNCIN信号而从属于该hx3100A。但是,在高时钟速率,难以对齐 芯片间同步信号的相位来正确地复位CNT0,其中CNT0在相位锁定 到CLKREF的时钟上运行。而且,除一之外的任何DIV1 I/O频率 比都导致HFC循环的倍数的芯片的内部SYNC信号之间的可能相位 偏移。

在大部分多芯片系统中,芯片之间的互连是为了以比芯片上互连 被操作的速率更低的速率进行数据传输而操作的。这么作既是出于信 号完整性也是出于功耗原因。如果两个芯片上的CLK1都被向下调 至芯片间连接可以支持但不变形的速率,则芯片之间的可靠同步通信 可以开始进行。但是,这限制了芯片核心当中PE和DMR的速度并 且因此限制了应用的范围。因此,存在相对于CLK1放慢I/O单元 的时钟的需求。放慢的I/O单元的好处是,对于小于大约1000的减 速比,它们的功耗几乎与减速比成比例地下降,并且,当数据脉冲宽 度增加时,时序余量改善。

在hx3100A芯片中,I/O单元从时钟分配分支中最后一个再生器 并且从输出接收时钟信号,该输出将到达位于I/O单元位置的PE, 如果有的话。再生器包含取得CLK1和SYNC输入的时钟分频器。 因而,I/O单元时钟速率可以以与PE时钟速率相同的方式配置,并 且被配置为比CLK1慢的时钟速率,如对于芯片间连接所期望的。 在芯片内部,以这种方式计时的I/O单元维持与最近DMR的同步通 信并且通过片上网络(IN)到达芯片内的其余DMR和PE。I/O单 元和DMR之间的流控制防止数据丢失或重复;但是,如果以比其可 以处理的更高的速率向放慢的I/O单元发送数据,则会导致数据拥塞。

虽然共享的时钟参考信号(CLKREF)到两个芯片的PLL的输 入提供了CLK1相位稳定性以及两个芯片的SYNC信号之间的相位 稳定性,但是两个芯片的CNT0计数器的sync(同步信号)发生器 将必须在CLK1的确切相同循环上复位,以便让两个芯片的SYNC 信号确切对齐。如果一个复位信号相对于另一个被延迟(或者“漂 移”)仅仅CLK1的半个周期那么一点,则两个CNT0计数器会在 SYNC信号之间锁定到漂移的完整CLK1循环,这侵占了芯片之间 用于信号的时序余量。一般而言,复位信号的按间隔t的漂移将导致 SYNC信号中n个CLK1循环的漂移,其中n=t/tper,四舍五入到最 近的整数值n,并且tper是CLK1的周期。因此,期望新的方法。

发明内容

公开了方法和系统的各种实施例,其中时钟和选择信号可以贯穿 整个同步数字系统分配。

在一种实施例中,公开了一种用于在同步数字系统的时钟分配网 络中重新配置时钟发生电路的方法。第一时钟信号可以被生成并选作 主时钟。然后,第二时钟信号可以代替第一时钟作为主时钟,而不会 造成同步数字系统中由时钟引起的错误。然后,在第二时钟信号充当 主时钟期间,时钟发生电路可以被重新配置。然后,在时钟发生电路 稳定之后,第一时钟信号可以再次被选作主时钟,而不会造成同步数 字系统中由时钟引起的错误。

在一些实施例中,第二时钟信号可以是外部时钟信号。在其中同 步数字系统包括在芯片上的其它实施例中,第二时钟信号可以由独立 于外部时钟信号的片上振荡器生成。在这种实施例中,可以检测需要 选择片上生成的时钟信号作为主时钟的条件。然后,响应于该检测, 可以选择第二时钟信号。在一些实施例中,需要选择片上生成的时钟 信号的条件可以包括指示可能篡改同步数字系统的信号。

在一些实施例中,重新配置时钟发生电路可以包括改变时钟发生 电路的至少一个设置,使得时钟发生电路以不同的速率耗散功率。在 一些实施例中,重新配置可以包括给时钟发生电路断电,以便把时钟 发生电路放到关状态,并且随后给时钟发生电路通电,以便把时钟发 生电路返回到开状态。在其它实施例中,重新配置可以包括从时钟发 生电路除去时钟输入,并且随后把时钟输入放回到时钟发生电路。在 还有其它实施例中,重新配置可以包括改变时钟发生电路的目标频率。

在一些实施例中,时钟发生电路可以在重新配置时钟发生电路之 后被确定为已稳定。在时钟发生电路稳定之后选择第一时钟信号作为 主时钟可以至少部分地响应于该确定而被执行。

在一些实施例中,时钟发生电路可以包括锁相环(PLL)。确定 时钟发生电路已稳定可以包括确定PLL已实现相位锁定。

在一些实施例中,在重新配置时钟发生电路之后,可以允许经过 预定的时间。在时钟发生电路已稳定之后选择第一时钟信号作为主时 钟可以在等待该预定时间之后执行。

在一种实施例中,公开了一种同步数字系统。该同步数字系统的 时钟发生电路可以被配置为至少部分地基于所接收的外部时钟信号生 成第一时钟信号,并且通过编程接收配置设置。同步数字系统的时钟 信号选择器电路可以被配置为在多个时钟信号之间通过编程进行选择, 以用作主时钟信号,而不会造成同步数字系统中由时钟引起的错误。 多个时钟信号可以包括所述第一时钟信号和外部时钟信号。被配置为 利用主时钟信号操作的同步数字系统的同步数字逻辑可以被配置为使 时钟信号选择器电路选择第一时钟信号。然后,在选择第一时钟信号 之后,同步数字逻辑可以使时钟信号选择器电路选择多个时钟信号当 中除第一时钟信号之外的一个时钟信号。然后,同步数字逻辑可以重 新配置时钟发生电路。然后,在重新配置时钟发生电路之后时钟发生 电路已稳定之后,同步数字逻辑可以使时钟信号选择器电路选择第一 时钟信号。

在一些实施例中,在重新配置时钟发生电路时,同步数字逻辑可 以被配置为改变时钟发生电路的至少一个设置,使得时钟发生电路以 不同的速率耗散功率。在一些实施例中,同步数字逻辑可以给时钟发 生电路断电,以便把时钟发生电路放到关状态,并且随后给时钟发生 电路通电,以便把时钟发生电路返回到开状态。在其它实施例中,同 步数字逻辑可以从时钟发生电路除去外部时钟输入,并且随后把外部 时钟输入放回到时钟发生电路。在其它实施例中,同步数字逻辑可以 改变时钟发生电路的目标频率。

在一些实施例中,同步数字逻辑被配置为在重新配置时钟发生电 路之后确定时钟发生电路已稳定。在时钟发生电路稳定之后使时钟信 号选择器电路选择第一时钟信号可以至少部分地响应于该确定来进行。 在一些实施例中,时钟发生电路可以包括锁相环(PLL)。在确定时 钟发生电路已稳定时,同步数字逻辑可以被配置为确定PLL已实现 相位锁定。在其它实施例中,同步数字逻辑被配置为在重新配置时钟 发生电路之后等待预定的时间。在时钟发生电路已稳定之后使时钟信 号选择器电路选择第一时钟信号可以在等待该预定时间之后执行。

在其中同步数字系统包括在芯片上的一些实施例中,片上时钟信 号发生器可以被配置为独立于外部时钟信号生成第二时钟信号。多个 时钟信号还可以包括该第二时钟信号。在一些实施例中,片上时钟信 号发生器包括环形振荡器。在一些实施例中,时钟信号选择器电路可 以被配置为响应于需要选择片上生成的时钟信号作为主时钟的条件而 选择第二时钟信号。在一些实施例中,该条件可以包括指示可能篡改 同步数字系统的信号。

在一种实施例中,公开了一种包括在芯片上的同步数字系统。同 步数字系统的同步数字逻辑可以被配置为利用主时钟信号操作。同步 数字系统的片上时钟信号发生器可以被配置为独立于由同步数字系统 接收的外部时钟信号而生成第一时钟信号。同步数字系统的时钟信号 选择器电路可以被配置为在多个时钟信号之间选择以用作主时钟信号。 这多个时钟信号可以包括第一时钟信号和依赖于外部时钟信号的信号。 时钟信号选择器电路还可以被配置为,当时钟选择覆盖信号指示正常 操作时,至少部分地基于可软件配置寄存器的内容在多个时钟信号之 间进行选择。当时钟选择覆盖信号指示需要选择片上生成的时钟信号 用作主时钟信号的条件时,时钟信号选择器电路可以选择第一时钟信 号。

在一些实施例中,时钟选择覆盖信号可以包括篡改检测信号。指 示需要选择片上生成的时钟信号用作主时钟信号的条件的时钟选择覆 盖信号可以包括指示可能篡改同步数字系统的篡改检测信号。在一些 实施例中,响应于篡改检测信号,同步数字逻辑可以被配置为执行需 要持续时钟信号的安全措施。因此,选择第一时钟信号可以使安全措 施能在不考虑外部时钟信号是否停止的情况下被执行。在一些实施例 中,安全措施可以包括清除同步数字逻辑的状态信息。

在一些实施例中,时钟选择覆盖信号包括时钟丢失信号。指示需 要选择片上生成的时钟信号用作主时钟信号的条件的时钟选择覆盖信 号包括指示预见到外部时钟信号丢失的时钟丢失信号。

在一些实施例中,片上时钟信号发生器可以包括环形振荡器。

在一些实施例中,时钟信号选择器电路可以被配置为在多个时钟 信号之间通过编程进行选择,而不会造成同步数字系统中由时钟引起 的错误。

在一种实施例中,公开了一种避免包括在芯片上的同步数字系统 中的时钟信号错误的方法。第一时钟信号可以作为用于同步数字系统 的主时钟提供。第一时钟信号可以依赖于由同步数字系统接收的外部 时钟信号。指示需要选择片上生成的时钟信号用作主时钟信号的条件 的时钟选择覆盖信号可以被接收。响应于接收,第二时钟信号可以被 选作主时钟。第二时钟信号可以由片上时钟信号发生器独立于外部时 钟信号生成。

在一些实施例中,接收时钟选择覆盖信号可以包括接收指示可能 篡改同步数字系统的篡改检测信号。在一些实施例中,响应于该篡改 检测信号,需要持续时钟信号的安全措施可以被执行。因此,选择第 一时钟信号可以使安全措施能被执行,而不管外部时钟信号是否停止。 在一些实施例中,执行安全措施可以包括执行清除同步数字系统的状 态信息的步骤。当所述步骤被执行时,第二时钟信号可以被用作主时 钟。在其它实施例中,接收时钟选择覆盖信号可以包括接收指示预见 到外部时钟信号丢失的信号。

在一些实施例中,片上时钟信号发生器可以包括环形振荡器。

在一些实施例中,选择第二时钟信号作为主时钟的执行不会造成 同步数字系统中由时钟引起的错误。

在一种实施例中,公开了一种装置。装置的参考时钟发生器可以 被配置为生成参考时钟信号。装置的多个集成电路芯片每个都可以包 括耦合到该参考时钟发生器的输入端口。输入端口可以被配置为接收 参考时钟信号。每个芯片还可以包括被配置为依赖于参考时钟信号生 成主时钟信号的时钟发生电路。每个芯片还可以包括被配置为生成与 主时钟信号边缘对齐并且与参考时钟信号相位对齐的同步信号的同步 信号发生电路。由于它们与参考时钟信号的共同相位对齐,因此多个 芯片各自的同步信号被相位对齐。每个芯片还可以包括被配置为接收 主时钟信号和同步信号的时钟分频器电路。每个芯片的时钟分频器电 路可以生成其频率小于主时钟信号的频率的频分时钟信号。频分时钟 信号可以相位对齐到同步信号。每个芯片还可以包括被配置为接收该 频分时钟信号作为时钟输入的输入/输出(I/O)电路。每个芯片的 I/O电路可以与多个芯片中另一芯片的相应I/O电路通信。一个芯片 的频分时钟信号的频率与另一芯片的频分时钟信号的相应频率相同, 并且一个芯片的频分时钟信号与另一芯片的相应频分时钟信号相位对 齐。

在一些实施例中,对于每个芯片,时钟发生电路可以包括被配置 为接收参考时钟信号并且生成其频率比参考时钟信号的频率高得多的 高频时钟信号的锁相环(PLL)。

在一些实施例中,每个芯片的I/O电路可以包括多个I/O单元。 每个芯片还可以包括时钟和同步信号分配网络。每个芯片的分配网络 可以包括被配置为接收主时钟信号的馈送点。每个芯片的分配网络还 可以包括连接到馈送点的扇出(fan-out)电路。该扇出电路可以被配置 为把主时钟信号从馈送点传播到I/O电路,使得主时钟信号在馈送点 和多个I/O单元中每个I/O单元之间具有统一的延迟。每个芯片的分 配网络还可以包括在整个扇出电路上放置的多个再生器。

在一些这种实施例中,每个芯片的时钟发生电路可以包括PLL。 每个PLL可以被配置为接收参考时钟信号、生成高频时钟信号输出 并且接收作为该高频时钟信号的延迟版本的反馈信号。反馈信号相位 锁定到参考时钟信号。每个芯片的时钟发生电路还可以包括用于 PLL的反馈路径。该反馈路径可以与通过时钟和同步信号分配网络 从高频时钟输出到再生器的主时钟平行,其中该再生器服务于位于 PLL附近的I/O单元之一。反馈路径被提供给PLL的反馈输入。

在一些实施例中,每个芯片的同步信号发生电路可以包括被配置 为检测参考时钟信号的时钟边缘的边缘检测器,以及计数器。每个计 数器可以被配置为基于主时钟信号更新计数值、基于边缘检测器的输 出复位计数值,并且在计数值等于特定值时输出同步信号的脉冲。

在一些实施例中,参考时钟信号在参考时钟发生器和多个芯片中 第一芯片之间的传播延迟近似地等于在参考时钟发生器和多个芯片中 第二芯片之间的传播延迟。因此,在由第一芯片接收的参考时钟信号 和由第二芯片接收的参考时钟信号之间,时钟漂移被最小化。

在一些实施例中,多个芯片中第一芯片的时钟发生电路与第一芯 片的时钟分频器电路之间相应主时钟信号的传播延迟近似地等于多个 芯片中第二芯片的时钟发生电路与第二芯片的时钟分频器电路之间相 应主时钟信号的传播延迟。

在一种实施例中,公开了一种用于同步第一芯片和第二芯片之间 数字通信的方法。外部参考时钟信号可以在每个芯片被接收。然后, 每个芯片可以生成其频率为参考时钟频率的可配置倍数的相应的高频 时钟信号。然后,每个芯片依赖于外部参考时钟信号生成相应的同步 信号。由于它们共同依赖于外部参考时钟信号,因此第一芯片和第二 芯片各自的同步信号相位对齐。每个芯片可以依赖于相应的高频时钟 信号向包括在芯片上的相应的同步数字系统分配相应的主时钟信号。 位于芯片的相应多个I/O单元中每一个的主时钟信号可以相对于相应 的高频时钟信号统一延迟。每个芯片可以对相应的主时钟信号分频, 以生成其频率小于相应主时钟信号的频率的相应的频分时钟信号。分 频可以使用相应的同步信号,使得第一芯片和第二芯片各自的频分时 钟信号边缘对齐。数字通信可以在第一芯片的第一I/O单元和第二芯 片的第二I/O单元之间执行,其中第一I/O单元使用第一芯片的频分 时钟信号作为时钟输入,并且第二I/O单元使用第二芯片的频分时钟 信号作为时钟输入。

在一些实施例中,生成相应的同步信号包括确定外部参考时钟信 号的边缘,并且响应于确定外部参考时钟信号的边缘而生成同步信号 的脉冲。在一些实施例中,生成同步信号的脉冲可以包括复位被配置 为在到达特定的计数值时输出脉冲的计数器。计数器可以使用主时钟 信号作为时钟输入。

在一些实施例中,生成相应的高频时钟信号可以包括从锁相环 (PLL)输出高频时钟信号。在一些实施例中,生成相应的高频时钟 信号还可以包括向PLL提供反馈信号。反馈信号的路径可以与主时 钟信号从馈送点到芯片的I/O单元的路径平行。

附图说明

图1是说明现有技术系统的实施例的框图。

图2是说明现有技术系统中时钟分配网络的实施例的框图。

图3是说明现有技术系统中时钟分频器(clock divider)的实施例 的框图。

图4绘出了现有技术系统中的示例时钟分频器波形。

图5是现有技术系统中时钟和同步信号发生器的实施例的框图。

图6是说明同步数字系统的实施例的框图。

图7是时钟和同步信号发生器的实施例的框图。

图8是根据现有技术的简单2-输入多路复用器的实施例的框图。

图9绘出了得自根据现有技术的多路复用器操作的示例波形。

图10是具有抗尖峰脉冲增强(glitch augmentation)的简单2-输入 多路复用器的实施例的框图。

图11说明了绘出包括在图10多路复用器中的状态机操作的状态 图。

图12说明了绘出包括在图10多路复用器中的另一状态机操作的 状态图。

图13绘出了得自图10多路复用器的操作的示例波形。

图14是说明用于重新配置时钟发生电路而不在下游电路中引入 时钟引起的错误的方法实施例的流程图。

图15是说明用于避免包括在芯片上的同步数字系统中的时钟信 号错误的方法实施例的流程图。

图16是说明在两个集成电路(IC)芯片之间的输入/输出(I/O) 通信的框图。

图17是说明用于图7的PLL的反馈路径实施例的框图。

图18是说明用于同步第一IC芯片和第二IC芯片之间的数字通 信的方法实施例的流程图。

虽然本发明容易有各种修改和备选形式,但是其具体实施例作为 例子在附图中示出并且将在这里详细描述。但是,应当理解,附图和 对其的详细描述不是要把本公开内容限定到所说明的特定形式,相反, 其意在覆盖属于由所附权利要求定义的本公开内容精神和范围的所有 修改、等价物和备选方式。本文所使用的标题仅仅是为了组织而不是 要用来限定描述的范围。如贯穿本申请所使用的,词“可以”是在允 许的意义上(即,意味着有可能)而不是在强制的意义上(即,意味 着必须)使用的。类似地,词“包括”意味着包括,但不限于。

流程图的提供是为了说明示例性实施例,而不是要把本公开内容 限定到所说明的特定步骤。在各种实施例中,所示出的方法元素当中 的一些可以并发地执行、以与所示不同的次序执行,或者被略去。附 加的方法元素也可以根据期望被执行。

各种单元、电路或其它部件可以被描述为“被配置为”执行一个 或多个任务。在这种语境下,“被配置为”是结构的广泛陈述,一般 指“具有”在操作过程中执行所述一个或多个任务的“电路”。照此, 即使单元/电路/部件目前没有开启,单元/电路/部件也可以被配置为 执行任务。一般而言,构成对应于“被配置为”的结构的电路可以包 括硬件电路。类似地,在描述中为了方便,各种单元/电路/部件可以 被描述为执行一个或多个任务。这种描述应当被解释为包括短语“被 配置为”。陈述被配置为执行一个或多个任务的单元/电路/部件明确 地对于那个单元/电路/部件不要援引35U.S.C.§112第六段的解释。 更一般而言,除非具体地陈述语言“用于...的装置”或“用于...的步 骤”,否则任何元件的陈述明确地对于那个元件不要援引35U.S.C.§ 112第六段的解释。

具体实施方式

通过引用的结合

标题为“Processing System With Interspersed Stall Propagating  Processors And Communication Elements”的美国专利No.7,415,594 的全部内容通过引用被结合于此,就好像在本文完全和完整地阐述了 一样,该专利的发明人是Michael B.Doerr、William H.Hallidy、 David A.Gibson和Craig M.Chase。

于2011年10月14日提交的标题为“Disabling Communication  in a Multiprocessor System”的美国专利申请序列No.13/274,138的 全部内容通过引用被结合于此,就好像在本文完全和完整地阐述了一 样,该专利的发明人是Michael B.Doerr、Carl S.Dobbs、Michael B. Solka、Michael R Trocino和David A.Gibson。

术语

硬件配置程序-包括可被编译成二进制图像的源文本的程序, 可以被用来编程或配置硬件,诸如像集成电路。

计算机系统-各种类型的计算或处理系统中的任何一种,包括 个人计算机系统(PC)、大型机计算机系统、工作站、网络设备、 互联网设备、个人数字助理(PDA)、网格计算系统或者其它设备或 设备的组合。一般地,术语“计算机系统”可被广泛地定义为涵盖具 有执行来自存储介质的指令的至少一个处理器的任何设备(或设备的 组合)。

自动-指的是在没有直接指定或执行动作或操作的用户输入的 情况下由计算机系统(例如,由计算机系统执行的软件)或设备(例 如,电路、可编程硬件元件、ASIC,等等)执行的动作或操作。从 而,术语“自动”与在用户提供输入来直接执行操作的情况下由用户 手动执行或指定的操作形成对照。自动过程可由用户提供的输入发起, 但是“自动”执行的后续动作不是用户指定的,即,不是在用户指定 每个要执行的动作的情况下“手动”执行的。例如,通过选择每个字 段并且提供指定信息的输入(例如,通过键入信息、选择复选框、单 选选择,等等)来填写电子表单的用户是在手动填写该表单,虽然计 算机系统必须响应于用户动作来更新表单。表单可由计算机系统自动 填写,其中计算机系统(例如,在计算机系统上执行的软件)分析表 单的字段并且在没有任何指定字段的答案的用户输入的情况下填写表 单。如上所述,用户可调用表单的自动填写,但不参与表单的实际填 写(例如,用户不是手动指定字段的答案,而是这些字段被自动地完 成)。本说明书提供了响应于用户采取的动作而自动执行操作的各种 示例。

示例性同步数字系统

图6说明了包括时钟分配网络的同步数字系统的实施例。虽然该 图的实施例说明为被包括在芯片上,但是其它实施例可以包括多个芯 片和附加的部件。作为替代,多个同步数字系统可以被包括在单个芯 片上。虽然所公开的系统被称为同步数字系统,但是该系统的某些部 件可以以非同步的方式操作。例如,同步数字系统可以包括与系统的 其余部分异步地操作的环形振荡器。类似地,系统可以包括模拟部件。 把系统称为“数字同步系统”意味着仅仅暗示至少系统的实质性部分 包括基于公共时钟或多个相关时钟操作的数字逻辑。

如图6中所说明的,同步数字系统包括数字逻辑区。在一些实施 例中,数字逻辑可以包括多处理器阵列(MPA)。数字逻辑接收时 钟信号CLK1和同步信号SYNC作为输入。CLK1和SYNC信号是 由CLK1+SYNC发生器生成的。CLK1+SYNC发生器接收时钟参考 信号CLKREF、时钟旁路信号Bypass和时钟覆盖信号Clock  Override作为输入。在其它实施例中,各种其它输入是可能的。如 图6中所说明的,输入被示为从芯片的输入引脚提供给 CLK1+SYNC发生器。但是,在其它实施例中,这些信号可以在芯 片上生成。时钟参考信号CLKREF是可以被用来同步不同芯片之间 的操作的系统参考时钟,并且因此在图6的实施例中被说明为由同步 数字系统外部的振荡器OSC1生成。

图7更详细地说明了CLK1+SYNC发生器的实施例。如所说明 的,CLK1+SYNC发生器取CLKREF、BYPASS和Clock Override 信号作为输入,并且提供CLK1和SYNC信号作为输出。 CLK1+SYNC发生器还包括可以从软件接收数据的寄存器 Configuration Reg0(配置寄存器0),以及可以存储要被软件检索 的状态信息的寄存器Status Reg1(状态寄存器1)。这种状态信息 可以包括,例如,PLL锁定状态信号和时钟输入丢失信号。

在图7中,CLK1发生器部分由锁相环(PLL)、环形振荡器、 三个多路复用器、某个逻辑、配置寄存器以及状态寄存器组成。

输入信号CLKREF提供给PLL,PLL提供系统的最高频率时钟 信号(HFC)作为输出。图7的PLL可以包括各种可配置的时钟分 频器、选择逻辑以及本领域中已知的用于配置时钟信号的其它部件。 在其它实施例中,PLL可以用数字锁相环(DPLL)、延迟锁定回路 (DLL)或其它时钟发生电路代替。

输入信号CLKREF和时钟信号HFC都作为输入提供给多路复 用器M1,多路复用器M1可以由输入信号BYPASS并且由来自逻辑 块Logic1的信号控制,其中逻辑块Logic1从Configuration Reg0和 PLL接收输入。多路复用器M1输出时钟信号CLK0。

环形振荡器Ring Osc.提供时钟信号CLKRO作为输出,该输出 不依赖于CLKREF或者由同步数字系统接收的任何其它时钟信号。 时钟信号CLK0和CLKRO作为输入提供给多路复用器M2,多路复 用器M2可以由来自逻辑块Logic1的信号控制。

时钟信号CLKRO和多路复用器M2的输出时钟信号作为输入提 供给多路复用器M3,多路复用器M3可以由输入信号Clock  Override控制。多路复用器M3输出输出时钟信号CLK1,该信号在 离开CLK1+SYNC发生器之前可以被缓冲。

在一些实施例中,附加的时钟分频器或其它电路可以穿插在多路 复用器M1-M3之间和/或之后。

在图7中,SYNC发生器部分由数据触发器(DF1、DF2)、计 数器(CNT0)和一些逻辑门组成。时钟信号CLK1提供给反相器, 并且反相的时钟信号作为Clock(时钟)输入提供给计数器CNT0。 计数器CNT0的多个输出馈送到逻辑“或非”门,该门提供输出同 步信号SYNC。因此,如所说明的,SYNC只有当CNT0的所有输出 都低时才为高;即,当CNT0的计数为零时。但是,在其它实施例 中,CNT0的输出在被提供给NOR1之前还可以进一步配置,如本领 域中已知的,使得SYNC在CNT0的输出对应于其它值时为高。虽 然CNT0被绘制为四位计数器,但是其它实施例可以利用其它尺寸 或者可变尺寸的计数器。输出信号SYNC可以在离开CLK1+SYNC 发生器之前被缓冲。

输入信号CLKREF被提供给边缘检测器,其中边缘检测器被说 明为包括由CLK1计时的DF1和DF2以及逻辑“与”门AND1的上 升边缘检测器。在其它实施例中,可以使用其它边缘检测器,包括下 降边缘检测器,只要需要以降低的速率进行同步通信的所有芯片使用 相同的边缘就可以。边缘检测器的输出是信号CLKREFrising,该信 号提供给计数器CNT0的Reset(复位)输入。

CLK1+SYNC发生器的功能将参考图8-18更完全地解释。

抗尖峰脉冲时钟信号选择

如图7中所说明的,多路复用器M1-M3允许选择各种时钟信号 用作时钟信号CLK1。多路复用器M1-M2是可配置为从参考时钟信 号CLKREF选择时钟信号源、从PLL选择时钟信号HFC或者从芯 片上环形振荡器Ring Osc.选择时钟信号CLKRO的软件。当多路复 用器从一个源切换到另一个源时,它会对其输出信号引入变形和噪声, 这会造成下游电路的误动。时钟分配的首端的尖峰脉冲(glitch)可以 经芯片一路传播并到达I/O单元并且在沿途任何地方造成功能错误。 尖峰脉冲还因为它们减小时序余量而是不期望的。在现有技术中,新 时钟信号源的选择通常后面跟着下游电路的复位,复位把它们带到用 于重启的已知状态,从而除去尖峰脉冲的任何不良影响。

当“飞速(on the fly)”把时钟信号源从第一时钟源切换到与第 一时钟源不同步的第二时钟源时,存在多路复用器截断输入时钟脉冲 并且发射短脉冲或者在较长的脉冲中放置缺口的可能性。这些短脉冲 统称为尖峰脉冲。

为了消除在来自多路复用器M1-M3的输出中尖峰脉冲的可能性, 多路复用器M1-M3当中一个或多个可以利用抗尖峰脉冲电路来增强。

传统的多路复用器是用来从多个信号输入选择的门的简单组合。 基本的2-输入多路复用器(2-in mux)示意图在图8中示出。在图9 中针对其中选择输入信号SEL改变的四种情况示出典型的波形。时 钟信号CLK0和CLK1的波形仅仅是示例并且许多其它频率或相位 失配是可能的。对于所示出的每种情况,在OUT信号上观察到尖峰 脉冲,并且以圆圈示出。如图所示,小的和大的尖峰脉冲在高或低任 一方向都是有可能的。

图10说明了具有抗尖峰脉冲增强的两-输入多路复用器的一种示 例性实施例。这种实施例的增强包括一对状态机,这对状态机每个都 可以从SEL、CLK0和CLK1输入以及从彼此接受输入。但是,本 领域技术人员将认识到,其它实施例可以利用具有与这里所说明的两 个状态机的功能相似的功能的一个或多个状态机。

图11中的状态图描述了状态机SM0的操作。在复位时,SM0 被设置为状态SM0_OFF。在状态SM0_OFF,选择信号SEL0被设 置为逻辑0。在检测到选择信号SEL被设置为逻辑0时,SM0变换 到状态SM0_WAIT。在状态SM0_WAIT,SEL0保持设置在0。如 果SEL改变成逻辑1,同时SM0处于状态SM0_WAIT,则SM0变 换回状态SM0_OFF。相反,如果在SM0处于状态SM0_WAIT的时 候SM0检测到SEL保持0并且SM1处于状态SM0_OFF,则SM0 变换到状态SM0_ON。在状态SM0_ON,SEL0被设置为1。在检测 到SEL为1时,SM0变换回状态SM0_OFF。

图12中的状态图描述了状态机SM1的操作。在复位时,SM1 被设置为状态SM1_OFF。在状态SM1_OFF,选择信号SEL1被设 置为逻辑0。在检测到选择信号SEL被设置为逻辑1时,SM1变换 到状态SM1_WAIT。在状态SM1_WAIT,SEL1保持设置成0。如 果在SM1处于状态SM1_WAIT的时候SEL变成逻辑0,则SM1变 换回状态SM1_OFF。相反,如果在SM1处于状态SM1_WAIT的时 候SM1检测到SEL保持1并且SM0处于状态SM0_OFF,则SM1 变换到状态SM1_ON。在状态SM1_ON,SEL1被设置为1。在检测 到SEL为0时,SM1变换回状态SM1_OFF。

图13示出了用于图9所示的相同四种情况的波形,并且添加了 图10的抗尖峰脉冲多路复用器的输出信号DGOUT。图13的波形假 设状态机SM0在时钟信号CLK0的下降边缘采样其输入,并且SM1 在时钟信号CLK1的下降边缘采样其输入。如图13中所示,抗尖峰 脉冲增强在CLK0和CLK1输入之间相位和频率差异的各种组合中 防止短脉冲。

通过利用具有抗尖峰脉冲增强的多路复用器作为图7的多路复用 器M1-M3当中的一个或多个,被选作CLK1的时钟信号可以“飞速” 切换,而不会在同步数字系统中下游造成由时钟引起的错误。

重新配置时钟发生电路

在诸如图7的示例性实施例的系统中,动态地重新配置PLL或 者类似的时钟发生电路,诸如经由软件控制,会是有利的。例如,当 同步数字系统没有被完全利用时,PLL输出HFC的频率可以经由软 件指令暂时减小,以节省功率。作为替代,输入参考信号CLKREF 的源可以被切换,从而在PLL中造成相位锁定的丢失。在这种情况 下,PLL可以产生尖峰脉冲,并且将花费一些时间来稳定。

在这个间隔中,适当的备选时钟信号可以被选择用作提供给同步 数字系统的主时钟信号,以允许下游电路的持续操作。但是,应当小 心确保时钟信号之间的切换不在主时钟信号上引入附加的尖峰脉冲。

图14是说明用于重新配置时钟发生电路而不在下游电路中引入 由时钟引起的错误的方法实施例的流程图。除了其它系统,图14中 所示的方法还可以结合图6-7的示例性系统使用。

在步骤1402中,第一时钟信号可以利用时钟发生电路生成。如 图7的示例性实施例中所说明的,时钟发生电路可以包括PLL,并 且第一时钟信号可以是时钟信号HFC。时钟发生电路的其它非限制 性例子可以包括DPLL或DLL。作为替代,时钟发生电路可以包括 环形振荡器,诸如图7的Ring Osc.。

在步骤1404中,第一时钟信号可以被选择作为用于同步数字系 统的主时钟。在图6-7的示例性实施例中,用于同步数字系统的主时 钟被标记为CLK1。在一些实施例中,第一时钟信号可以在正常操作 期间被用作同步数字系统的主时钟。

在图7的示例性实施例中,第一时钟信号被选作主时钟信号可以 经由多路复用器M1-M3来执行。多路复用器M1和M2可以经由寄 存器Configuration Reg0和逻辑块Logic1基于软件配置来控制。这 允许对主时钟选择的软件控制。因此,在一些实施例中,步骤1404 可以响应于软件命令而被执行。作为替代,第一时钟信号被选作主时 钟可以是自动的。多路复用器M1还可以基于输入信号BYPASS来 控制。多路复用器M3可以基于输入信号Clock Override来控制,这 在以下更详细地讨论。

在这种语境下,选择时钟信号“作为”用于同步系统的主时钟指 示系统的电路把该指定的时钟信号传播到同步数字系统的至少实质性 部分。这要涵盖其中选定的时钟信号可以经过选择电路、缓冲区和其 它电路的实施例。例如,在图7的实施例中,当多路复用器M1被配 置为选择HFC、多路复用器M2被配置为选择CLK0并且多路复用 器M3被配置为选择多路复用器M2的输出时,时钟信号HFC被选 作用于同步数字系统的主时钟。这还要涵盖其中主时钟被提供给本地 时钟再生器电路的实施例,每个本地时钟再生器电路可以向本地逻辑 元件输送作为主时钟的频率-和/或漂移-调节后版本的本地时钟信号。

在步骤1406中,第二时钟信号可以被选作主时钟。因此,第二 时钟代替第一时钟作为主时钟。为了防止在主时钟信号上引入尖峰脉 冲,选择可以利用包括抗尖峰脉冲增强的一个或多个多路复用器来执 行,诸如图10-12的多路复用器。可以代替地使用本领域中已知的其 它抗尖峰脉冲多路复用器。

在图7的示例性实施例中,第二时钟信号被选作主时钟信号可以 经由多路复用器M1-M3来执行。例如,第二时钟信号可以是时钟参 考信号CLKREF或时钟信号CLKRO。在一些实施例中,步骤1406 可以响应于软件命令而被执行。作为替代,第二时钟信号被选作主时 钟可以是自动的。例如,在一种实施例中,逻辑块Logic1可以自动 地把多路复用器M1配置为响应于寄存器Configuration Reg0接收到 重新配置PLL的命令而从选择HFC切换成选择CLKREF。

在步骤1408中,时钟发生电路可以在第二时钟信号充当主时钟 的时间内被重新配置。因为第一时钟信号不充当主时钟,所以由于时 钟发生电路的重新配置而在第一时钟信号上发生的任何尖峰脉冲都不 会影响同步数字系统的下游电路。

在一种实施例中,重新配置时钟发生电路可以包括改变时钟发生 电路的至少一个设置,使得时钟发生电路以不同的速率耗散功率。例 如,当同步数字系统没有被完全利用时,时钟发生电路可以被重新配 置为以较低的频率操作,从而耗散较少的功率。当同步数字系统的利 用增加时,通过图14的方法的另一次迭代,时钟发生电路随后可以 再次重新配置,以便在较高的频率操作。在一种实施例中,重新配置 时钟发生电路可以包括给时钟发生电路断电,以防止操作,然后在随 后的时间给时钟发生电路通电。类似地,在另一种实施例中,重新配 置时钟发生电路可以包括除去输入到时钟发生电路的时钟信号,以防 止操作,然后在随后的时间重新断言输入到时钟发生电路的时钟信号。 在这些实施例中,可以通过以这些方式中任何一种防止时钟发生电路 的操作来省电。在一些实施例中,这种重新配置可以通过编程来执行; 即,经由软件控制。

在步骤1410中,第一时钟可以再次被选作主时钟。为了防止在 主时钟信号上引入尖峰脉冲,选择可以利用包括抗尖峰脉冲增强的一 个或多个多路复用器执行,诸如图10-12的多路复用器。本领域中已 知的其它抗尖峰脉冲多路复用器可以代替地使用。在时钟发生电路被 重新配置之后,可能需要一些时间来稳定。因此,再次选择第一时钟 作为主时钟可以在时钟发生电路稳定之后执行。在这种语境下,术语 “稳定”指时钟发生电路的输出充分地没有畸变,从而避免下游电路 中由时钟引起的错误。

在一种实施例中,在时钟发生电路稳定之后选择第一时钟可以包 括在时钟发生电路重新配置已经完成之后在选择第一时钟之前等待预 定的时间量经过。该预定的时间量应当长到足以允许时钟发生电路稳 定。

在另一种实施例中,在时钟发生电路稳定之后选择第一时钟可以 包括确定时钟发生电路是否已稳定,并且至少部分地响应于该确定而 选择第一时钟作为主时钟。例如,在图7的实施例中,PLL可以提 供指示它是否在重新配置之后实现相位锁定的状态信号。在一种实施 例中,逻辑块Logic1可以响应于从PLL接收到指示PLL已经实现 相位锁定的状态信号而自动地配置多路复用器M1选择HFC。在另 一种实施例中,寄存器Status Reg1可以存储指示PLL已经实现相位 锁定的状态,以便由软件读取。然后,软件可以经由寄存器 Configuration Reg0和用于多路复用器M1的逻辑块Logic1提供指令, 以至少部分地响应于读取寄存器Status Reg1而选择HFC。

片上振荡器的自动选择

在一些情况下,独立于外部时钟信号自动选择在芯片上利用同步 数字系统生成的信号作为主时钟会是有利的。具体而言,存在其中时 钟信号错误可以以这种方式被避免的各种情况。

图15是说明用于在芯片上包括的同步数字系统中避免时钟信号 错误的方法实施例的流程图。除其它系统之外,图15中所示的方法 还可以结合图6-7的示例性系统使用。

在步骤1502中,第一时钟信号可以作为用于同步数字系统的主 时钟提供。第一时钟信号依赖于由同步数字系统接收的外部时钟信号。 如图7的示例性实施例中所说明的,第一时钟信号可以由PLL生成, 并且第一时钟信号可以是时钟信号HFC,该信号依赖于输入时钟参 考信号CLKREF。在图6-7的示例性实施例中,用于同步数字系统 的主时钟被标记为CLK1。

在同步数字系统的正常操作期间,主时钟可以从包括第一时钟信 号的多个可用的时钟信号中选择。例如,在图7的实施例中,CLK1 可以利用多路复用器M1和M2从可用的时钟信号HFC、CLKREF 和CLKRO中选择。如以上所讨论的,多路复用器M1和M2的控制 可以是自动的或者由软件控制。

在步骤1504中,可以接收时钟选择覆盖信号。时钟选择覆盖信 号可以指示需要选择片上生成的时钟信号用作主时钟的条件。在图7 的示例性实施例中,时钟选择覆盖信号被说明为输入信号Clock  Override。

在各种实施例中,时钟选择覆盖信号可以指示各种情况。例如, 在一种实施例中,时钟选择覆盖信号可以包括指示可能或实际篡改同 步数字系统的篡改检测信号。这种篡改可以包括对同步数字系统的硬 件或软件的未授权访问。篡改检测信号可以包括来自被配置为检测篡 改的一个或多个传感器或其它装备的信号。这种传感器或其它装备可 以或可以不包括在同步数字系统中,并且可以或可以不存在于芯片上。 用于检测篡改的方法和装备的例子可以在以上通过引用被结合的美国 专利申请序列No.13/274,138中找到。

在另一种实施例中,时钟选择覆盖信号可以包括指示预见到外部 时钟信号的丢失或不稳定的时钟丢失信号。例如,时钟丢失信号可以 指示输入时钟参考信号CLKREF的源已经,或者将要,改变、复位 或以别的方式被中断。

在步骤1506中,第二时钟信号可以响应于选择覆盖信号而被选 作主时钟。因此,第二时钟代替第一时钟作为主时钟。第二时钟信号 是由芯片上的信号发生器独立于外部时钟信号生成的。虽然第二时钟 信号是独立于任何外部时钟信号生成的,但是一些实施例可以允许芯 片上的信号发生器经由外部配置信号配置。

在图7的示例性实施例中,第二时钟信号被选作主时钟信号可以 经由多路复用器M3执行。例如,独立于输入时钟参考信号 CLKREF,第二时钟信号可以是由环形振荡器Ring Osc.生成的时钟 信号CLKRO。因此,响应于输入信号Clock Override而对CLKRO 的选择可以覆盖通过多路复用器M1-M2定义的其它自动的或软件定 义的时钟选择。

为了防止在主时钟上引入尖峰脉冲,选择可以利用包括抗尖峰脉 冲增强的一个或多个多路复用器执行,诸如图10-12的多路复用器。 本领域中已知的其它抗尖峰脉冲多路复用器可以代替地使用。在其它 实施例中,抗尖峰脉冲增强可以不是必需的。

在步骤1508中,可以执行需要持续时钟信号的安全措施。这种 安全措施在其中时钟选择覆盖信号包括篡改检测信号的实施例中可以 是适当的。例如,企图篡改芯片的黑客或其他人可能期望读出同步数 字系统的内部寄存器的状态信息。已经提出了各种方法来防止寄存器 被读出,诸如在检测到外部篡改时清除寄存器。因此,为了保存内部 寄存器的状态,黑客可以停止系统参考时钟(CLKREF),从而冻 结同步数字系统的内部寄存器中的操作。因此,在一种实施例中,安 全措施,诸如清除同步数字系统的状态信息,可以响应于篡改检测信 号而被执行。因为第二时钟信号已经被选作主时钟,所以诸如清除状 态信息的安全措施可以独立于CLKREF是否停止而继续进行。可能 的安全措施的附加例子可以在以上通过引用被结合的美国专利申请序 列No.13/274,138中找到。

芯片间的通信

图16是说明两个集成电路(IC)芯片之间的输入/输出(I/O) 通信的框图。如图16中所说明的,第一芯片和第二芯片当中每一个 都包括诸如图6中所说明的同步数字系统。对于每个芯片,主时钟信 号CLK1由各自的CLK1+SYNC发生器提供给数字逻辑块的中心时 钟再生器。然后,当其通过时钟分配网络传播时,主时钟信号CLK1 可以经过附加的时钟再生器。I/O单元可以从时钟分配分支中的最后 一个再生器接收时钟信号。

在多芯片系统中,芯片之间的同步通信可以通过共享公共参考时 钟输入信号并允许每个芯片上的PLL在I/O电路之间稳定相位关系 来实现。这对其中不需要SYNC信号的未分频时钟工作得很好,并 且在图17中说明。

图17是说明用于图7的PLL的反馈路径的实施例的框图。环形 振荡器和PLL,以及信号CLKREF、CLKRO和HFC可以对应于图 7中相同名字的部件和信号。图17的选择和配置电路可以对应于图7 的多路复用器M1-M3。在其它实施例中,选择和配置电路可以包括 其它电路。

图17的反馈路径在PLL的HFC输出开始,并且与通过分配网 络到服务于PLL附近的I/O单元的再生器的主时钟平行。图16说明 了主时钟到I/O单元1的示例性路径,其中I/O单元1在 CLK1+SYNC发生器附近,其中CLK1+SYNC发生器可以包括PLL。 图17的反馈路径包括与由主时钟通过分配网络的路径中再生器造成 的缓冲区延迟匹配的缓冲区延迟。传播延迟也是匹配的。信号 FEEDBACK_INPUT被提供给PLL反馈输入,其中该信号是在反馈 路径的末端出现的高频时钟输出的结果得到的延迟版本。这种反馈具 有把位于I/O单元的主时钟信号CLK1的相位与位于PLL的输入时 钟参考信号CLKREF对齐的效果。这最小化再生器延迟以及它们随 制造、供给电压和操作温度的变化对位于I/O单元的主时钟信号的相 位的影响。因此,如果在第一芯片的PLL接收的时钟参考信号 CLKREF与在第二芯片的PLL接收的时钟参考信号CLKREF边缘 对齐,则位于第一芯片的I/O单元的相应主时钟信号CLK1将与位 于第二芯片的I/O单元的相应主时钟信号CLK1边缘对齐。

芯片之间的数据信号可以以许多方式被延迟和变形,并且克服这 些问题的一种最简单的解决方案是降低数据率,这也降低每个I/O电 路的功耗。在一种实施例中,I/O电路可以具有关联的时钟分频器, 诸如图3中所示的。通过更新用于I/O电路的时钟分频器的配置寄存 器RegP,数据率可以在I/O电路中在程序控制下被降低。但是,使 得两个芯片各自被分频的时钟的相位与CLK1的最近循环对齐需要 两个芯片各自的SYNC信号利用CLK1分配到用于I/O电路的时钟 分频器,并且还需要各自的SYNC信号在芯片之间同步。

在图5所示的现有技术中,CNT0的Reset(复位)输入可以是 来自芯片引脚(SYNC-IN)的输入,并且希望这将使一个芯片成为 另一个提供SYNC-OUT的芯片的从属。但是,由于芯片之间的 SYNC信号延迟和变形,这是有问题的。因此,对于以由I/O电路中 时钟分频器提供的较慢时钟速率的芯片间通信,分频器的复位需要在 芯片之间更有效地同步。

时钟分频器不具有不受限的范围(这可能需要不受限的功耗)。 对于低功耗应用,2^4=16的范围是有用的。时钟分频器的范围限制 还限制PLL时钟倍增因数,如在参考图7的示例性实施例的以下分 析中所示出的。

令CLK1的频率是fclk1,并且CLKREF的频率是fclkref。

fclk1=M*fclkref,其中M是PLL倍增因数,通常是2^i,其中 i是整数。

通过把CLKREF驱动至由CLK1计时的CNT0的复位输入,我 们具有SYNC的最小化频率是:

fsync=fclkref

如果fclk1是fclkref/2或更小,则CNT0不比其复位更快地计数, 因此超出0000状态它有效地不计数。

当M=2^i时,这对i放置最小值0,以及M最小值1。

令D0=2^j0是CNT0的翻转计数(rollover count),则:

对于i=0至j0,fsync=fclkref,并且对于i>j0,fsync=fclkref  M/D0。

例如,当CNT0固定在4位时,它对于CLK1的每16个脉冲翻 转并且发射SYNC脉冲。例如,如果M是32,则SYNC频率将是 fclkref的两倍,但是,由于周期性的复位输入,它将保持与 CLKREF相位对齐。

在一种实施例中,j0的值可以固定在4,并且PLL倍增器可以 在i=4(M=16)固定到时钟CNT0。在更下游,另一个分频器(不在 图中)可以在其到芯片剩余部分的途中用2^k去除信号CLK1,其中 0<k<4。这可以对芯片的剩余部分降低CLK1(例如,以降低芯片功 耗),而不影响CNT0时钟。

如以上所指出的,每个I/O电路可以由包括时钟分频器的时钟再 生器提供服务,如图3中所示,使得到I/O电路的输入时钟是利用频 率fio被分频的时钟信号:

fio=fclk1/Dio,其中Dio是分频器比率,通常是2^j,其中 0<j<jmax。

代换fclk1=Mio*fclkref,我们发现fio依赖性:

fio=fclkref*Mio/Dio,其中Mio是在服务于I/O电路的再生器 的比率fclk1/fclkref。

对于分别编号为1和2的两个芯片的I/O电路之间可靠的数据传 输,发送和接收时钟速率应当相同:

fio1=fio2。

代换并且用fclkref除以等式的两侧,我们发现Rule1(规则1):

Mio1/Dio1=Mio2/Dio2。

对于SYNC输入的适当时钟分频器使用,每个fio应当大于或等 于fsync。

对称设置的例子:Mio1=16,Dio1=2,Mio2=16,Dio2=2。

不对称设置的例子:Mio1=16,Dio1=4,Mio2=8,Dio2=2。

这意味着运行不同核心CLK1速率的两个芯片可以通过使它们 的通信I/O时钟分频器遵守Rule1以及以上关于Mio、Dio和fio的 最大值和最小值的限制来进行通信。

图18是说明用于同步第一IC芯片和第二IC芯片之间的数字通 信的方法实施例的流程图。除其它系统之外,图18中所示的方法还 可以结合图6-7和16-17的示例性系统来使用。在一些实施例中,类 似的方法可以用于同步更大量芯片之间的数字通信。

在步骤1802中,外部参考时钟信号可以由第一IC芯片和第二 IC芯片当中每一个接收。例如,在图16的实施例中,由振荡器 OSC1生成的外部参考时钟信号经由每个芯片的CLKREF输入引脚 被接收。在一些实施例中,OSC1和两个芯片各自的CLKREF输入 引脚之间的相应传播延迟紧密匹配,使得时钟漂移在两个芯片的 CLKREF信号之间被最小化。

在步骤1804中,每个芯片可以生成依赖于外部参考时钟信号的 各自的高频时钟信号。例如,在一些实施例中,高频时钟信号可以具 有是参考时钟的频率的可配置倍数的频率。在图7的示例性实施例中, 高频时钟信号HFC由PLL生成,其中PLL接收外部参考时钟信号 CLKREF作为输入。PLL可以输出其频率是CLKREF的频率的可 配置倍数的信号HFC,如本领域中已知的。

在步骤1806中,每个芯片可以生成依赖于外部参考时钟信号的 各自的同步信号,使得第一芯片和第二芯片各自的同步信号由于它们 共同依赖于外部参考时钟信号而相位对齐。例如,在图7的实施例中, 芯片生成同步信号SYNC,该信号依赖于外部参考时钟信号 CLKREF。具体而言,如图7中所说明的,当计数器CNT0输出零 计数时,SYNC对于主时钟信号CLK1的一个时钟循环将为高。因 为CNT0由主时钟信号CLK1计时,所以SYNC与CLK1边缘对齐。 在这种语境下,如果它们的变换周期在时间上重叠,则两个信号是 “边缘对齐的”。如果漂移在两个芯片的CLKREF信号之间被最小 化,则因为响应于CLKREF的上升边缘,CNT0被信号 CLKREFrising复位到零计数,所以两个芯片各自的SYNC信号将由 于它们与CLKREF相互相位对齐而彼此相位对齐。在这种语境下, 如果它们的变换发生在主时钟信号的同一时钟循环内,则两个信号是 “相位对齐的”。

在步骤1808中,每个芯片可以依赖于芯片各自的高频时钟信号 而向包括在芯片上的各自的同步数字系统分配各自的主时钟信号。主 时钟信号是经由同步数字系统的时钟分配网络,诸如图2中所说明的 时钟分配网络,分配的。

芯片可以包括多个I/O单元,如在图16的示例性实施例中所说 明的。由于主时钟信号通过时钟分配网络分配到I/O单元,因此它将 引起传播延迟,以及由于缓冲区或其它电路引起的延迟。在一些实施 例中,时钟分配网络可以被配置为在高频时钟信号与每个I/O单元之 间提供统一的延迟,从而最小化由每个I/O单元接收的主时钟的各延 迟版本之间的时钟漂移。在最佳情况下,由每个I/O单元接收的主时 钟的各延迟版本彼此边缘对齐。可以对同步信号类似地提供统一的延 迟。

在步骤1810中,每个芯片可以利用芯片相应的同步信号对相应 的主时钟信号分频。频分时钟信号可以具有小于芯片主时钟信号的频 率的频率。图3说明了可以在步骤1810中使用的时钟分频器的示例 性实施例的框图。如图3中所说明的,时钟脉冲可以利用计数器的任 何输出位生成。计数器被同步信号SYNC复位。因为两个芯片各自 的SYNC信号彼此相位对齐,所以两个芯片的频分时钟信号将彼此 相位对齐。

在步骤1812中,数字通信可以在第一芯片的第一I/O单元和第 二芯片的第二I/O单元之间执行。第一I/O单元可以使用第一芯片的 频分时钟信号作为时钟,并且第二I/O单元可以使用第二芯片的频分 时钟信号作为时钟,如在图16的示例性实施例中所示出的。因为两 个芯片的频分时钟信号是至少相位对齐的,所以,如果两个芯片的频 分时钟信号共享相同的频率,则两个I/O单元之间的数字通信可以被 认为是同步通信。

在一些实施例中,具有反馈路径的PLL,诸如图17中所说明的, 可以被用来进一步对齐两个芯片的频分时钟信号。例如,每个芯片上 的反馈路径可以与从PLL的HFC输出到时钟分频器的相应主时钟信 号平行,其中时钟分频器对相应的主时钟信号进行分频。这种时钟分 频器可以位于芯片的I/O单元附近。如以上所讨论的,这可以导致位 于第一芯片的I/O单元的相应主时钟信号CLK1与位于第二芯片的 I/O单元的相应主时钟信号CLK1边缘对齐。在最佳情况下,因为两 个芯片各自的主时钟信号彼此边缘对齐,所以两个芯片的频分时钟信 号也将彼此边缘对齐。

因为SYNC不是时钟,而是用于时钟分频器的复位信号,所以, 除保持用于每个I/O电路的时钟分频器在HFC的一个循环内同步之 外,它不影响I/O电路的时钟漂移。

虽然以上实施例已经联系优选实施例进行了描述,但它不是要限 定到本文所阐述的具体形式,相反,它是要覆盖可以合理地包括在如 由所附权利要求定义的本发明实施例精神和范围内的此类变更、修改 和等价物。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号