单独的集成电路管芯之间的看似单片接口的制作方法

文档序号:14875583发布日期:2018-07-07 05:51阅读:134来源:国知局

以引用的方式并入了序列号为____[代理人档案号为a05129(altr:0164)]的美国专利申请“interfacebridgebetweenintegratedcircuitdie”(集成电路管芯之间的接口桥接器)的全文。

本公开内容涉及两个单独的集成电路管芯之间的接口桥接器,其中两个单独的集成电路管芯可以通过基于信号的延迟规范同步地发送异步信号来看起来像单片接口一样操作。



背景技术:

本部分是要向读者介绍可能与本公开内容的各个方面有关的技术的各个方面,下文将描述和/或请求保护本公开内容的各个方面。相信这个讨论有助于向读者提供背景信息以便于更好地理解本公开内容的各个方面。相应地,可以理解的是,这些叙述应当据此来解读,而不应当被解读为承认是现有技术。

集成电路器件用于许多电子系统中。计算机、手持设备、便携式电话、电视机、工业控制系统、机器人技术和电信网络(仅举几例)都使用集成电路器件。可以使用光刻技术来形成集成电路器件,光刻技术将电路图案化到衬底晶圆上,该衬底晶圆被切割以形成许多(通常相同的)单个集成电路管芯。每个集成电路管芯可以包括许多不同的部件,例如可编程逻辑结构、数字或模拟信号传输电路、数字信号处理电路、专用数据处理电路、存储器等等。一般来说,不同的部件可以基于不同的基础技术。因此,集成电路器件的不同部件可以更好地适合于不同的开发周期或制造技术。例如,诸如现场可编程门阵列(fpga)结构等可编程逻辑结构可以很好地缩放到更小的尺寸,并且因此可以极大地受益于更新的光刻技术。另一方面,诸如特定模拟信号传输电路等其它技术可能不能同样地缩放,而可能更好地适合于较早的制造技术。

为了能够更独立地开发集成电路器件的不同部件,一些部件可以被移出芯片外。代替单个单片设计,具有一些部件的第一集成电路管芯可以与具有其它部件的第二集成电路管芯分开制造。因此,可以使用不同的光刻技术或不同代的光刻来制造各种单独的集成电路管芯,并且可以根据不同的时间表来开发各种单独的集成电路管芯。然而,将部件分散到单独的管芯上可能是有代价的。即,在单独的第一集成电路管芯和第二集成电路管芯之间可能难以或不可能使用与可在单片接口中发现的导线数量相同的导线。

许多集成电路器件可以通过单片接口与同一集成电路的另一内部部件进行大量异步信号的传送。例如,连接到可编程逻辑器件结构的收发器部件可以通过单片并行接口传送各种异步状态或控制信号。然而,当单片集成电路器件被分散成不同的集成电路管芯时,可用于互连这些部件的导线可能更少。相应地,可能是不可行或不可能的像使用单片接口所做的那样通过固有的互连导线连接每个异步信号。



技术实现要素:

下文对本文公开的特定实施例的概要进行了阐述。应该理解的是,提出这些方面仅仅是为了向读者提供这些特定实施例的简单概要,并且这些方面并不是要限制本公开内容的范围。实际上,本公开内容可以涵盖下文可能没有阐述的各个方面。

可以在单独的集成电路管芯之间提供看似单片接口(seeminglymonolithicinterface)。从单独的集成电路管芯的角度来看,该看似单片接口可以如同该接口是单片接口一样进行操作。然而,实际上,看似单片接口的信号可以通过串行和/或同步通信在单独的管芯之间传送。通过根据信号的延迟规范对不同的信号进行采样,甚至可能同步传送看起来是异步或并行的信号。在一个示例中,信号可以存储在第一集成电路管芯上的第一并行接口中。可以以保持这些信号的异步性的外观的方式对信号进行采样。在一些情况下,这可以包括与采样另一信号相比更频繁地采样至少一个信号。可以基于所采样的信号来生成串行信号。串行信号可以被同步地和/或串行地发送到第二集成电路管芯上的对应第二并行接口。

可以针对本公开内容的各个方面对上文提到的特征做出各种改进。进一步的特征也可以被并入到这些各个方面中。这些改进和附加特征可以单独或以任何组合方式做出。例如,下文针对所示实施例中的一个或多个实施例所讨论的各个特征可以单独地或以任何组合方式并入到本发明的上述方面中的任何方面中。同样,上文提出的简单概要仅仅是要使读者熟悉本公开内容的实施例的特定方面和背景,而不限制所要求保护的客体。

附图说明

在阅读以下的具体实施方式并参考附图后,可以更好地理解本公开内容的各个方面,在附图中:

图1是根据实施例的使用接口桥接器的多管芯集成电路系统的示意性框图,其中从单独管芯的角度来看,该接口桥接器看起来是单片的;

图2是根据实施例的、图1的集成电路器件系统的一部分的示意性横截面图;

图3是示出了根据实施例的、图1的集成电路器件系统的电路的逻辑层的框图;

图4是示出了根据实施例的、如何从集成电路管芯的角度来看接口桥接器看起来是单片的框图;

图5是根据实施例的接口桥接器的串行化状态接口的框图,其中从集成电路管芯的角度来看,接口桥接器的串行化状态接口看起来是单片并行状态接口;

图6是示出了根据实施例的操作图5的串行化状态接口的源同步数据传输模式的框图;

图7是根据实施例的使用时分多路复用(tdm)发送延迟敏感的异步状态或控制信号的电路的框图;

图8是根据实施例的使用时分多路复用(tdm)接收延迟敏感的异步状态或控制信号的电路的框图;

图9是根据实施例的用于经由串行化状态接口发送异步信号的方法的流程图;

图10是根据实施例的用于经由串行化状态接口接收异步状态信号的方法的流程图;

图11是根据实施例的发送异步状态信号的示例的框图,其中与采样延迟不敏感的状态信号相比更频繁地采样延迟敏感的状态信号;

图12是根据实施例的串行化状态接口的另一示例的框图;

图13是根据实施例的用于捕获状态信号毛刺(glitch)的方法的流程图;

图14是根据实施例的能够根据图13的流程图捕捉毛刺的电路的策略级框图;

图15是示出了根据实施例的传送收发器数据信号的数据总线的源同步传输的框图;

图16是根据实施例的用于确保数据总线仅在稳定时被锁存的流程图的框图;以及

图17是根据实施例的可以执行图16的流程图的方法的电路的策略级框图。

具体实施例

下文将描述一个或多个具体实施例。为了提供对这些实施例的简要描述,在说明书中没有描述实际实施方式的所有特征。可以认识到的是,在任何这样的实际实施方式的开发中,如在任何工程或设计项目中一样,必须做出实施方式特有的许多决策,以便实现开发者的在实施方式之间可以是不同的特定目标,例如符合系统相关的约束和商业相关的约束。此外,可以认识到的是,这样的开发工作可能是复杂且耗时的,但是对于受益于本公开内容的普通技术人员而言仍然是承担设计、加工和制造的常规任务。

可以将多芯片系统表示为由以高效的方式在彼此之间传送信号的单独集成电路管芯所构成的3d或2.5d系统。3d互连包括将集成电路管芯堆叠在另一个的顶部上,而2.5d互连包括通过某种形式的桥接器来连接集成电路管芯,该某种形式的桥接器例如是硅中介层(interposer)、设置在衬底中的桥接器结构(例如,英特尔公司的嵌入式多管芯互连桥接器(emib))、或者从一个管芯到另一个管芯的直接连接。在3d或2.5d布置中,与多个管芯是单个单片集成电路管芯的一部分的情况下可用的连接数量相比,多个管芯之间的可用连接数量反而可能较少。然而,将集成电路管芯分散仍有很多原因。具体而言,诸如高速收发器中使用的模拟技术之类的一些技术可能不像其它电路(例如可编程逻辑器件(pld)的可编程结构,例如现场可编程门阵列(fpga)结构)那样容易地缩放到更新的光刻技术。然而,当分散不同的管芯时,它们之间曾经的单片通信可以用诸如本公开内容中描述的系统等高效接口桥接器接通信系统来代替。

可以在分散的、而不是单个单片集成电路器件的一部分的不同集成电路管芯之间获得集成电路管芯之间的高效通信。在一些情况下,可能期望保持集成电路管芯之间的通信,就好像它们按照单片解决方案进行连接那样。换言之,从每个单独的集成电路管芯的角度来看,看起来单片地连接成一个更大的集成电路管芯可能是有利的。

在包括诸如fpga结构等可编程逻辑器件(pld)结构的特定示例中,可以具有连接到第一主fpga集成电路管芯的潜在的各种次级集成电路管芯。这些次级集成电路管芯可以包括收发器、数字处理电路、中央处理单元(cpu)子系统、并行输入/输出(i/o)卸载单元(offloading)、数字信号处理(dsp)阵列等。另外,能够使用从外部源(例如,网络设备或存储器设备)接收的编程指令集(配置位流)来配置可编程逻辑结构。因此,从用户的角度来看,本公开内容的接口桥接器可以看起来以与先前可用的单片解决方案相同的方式进行操作。

考虑到这一点,提供了用于在两个集成电路管芯之间提供接口桥接器的系统和方法。具体而言,在至少一些示例中,集成电路管芯中的一个可以包括可编程逻辑结构,例如fpga结构。接口桥接器可以在不同管芯之间提供高效紧凑的互连。接口桥接器可以使用源同步连接来消除跨接口桥接器的同步交叉问题,其中使用基础管芯中的自适应逻辑使返回信号看起来是同步的。而且,接口桥接器可以作为分层协议来进行操作。换言之,接口桥接器可以使用硬物理输入/输出(i/o)层,该硬物理输入/输出(i/o)层在可由硬逻辑或软逻辑形成的高级协议层的控制下进行操作。如上所述,接口桥接器可以使得各种不同的集成电路管芯能够互连,该各种不同的集成电路管芯例如是收发器、用于数字协议处理的电路、cpu子系统、并行i/o卸载单元、以及其它数据处理卸载单元,例如dsp阵列或图形处理单元(gpu)处理器。

单片电路设计通常包括电路部件之间的宽并行接口,该宽并行接口在部件之间传送异步信号。例如,单片可编程逻辑器件可以通过可存储数百个异步状态或操作控制信号的并行状态接口与收发器部件通信。这些异步状态或控制信号涉及收发器或可编程逻辑结构或这两者的操作。然而,如上所述,可能期望将来自单片设计的特定部件分散到不同的集成电路管芯中。然而,当进行这一点时,从在采用了单片设计的部件之间传送异步信号的相同并行状态接口的每个单独集成电路管芯的角度来看也可能期望保持外观。

因此,本公开内容特别教导了两个单独的集成电路管芯之间的接口桥接器,其在两个集成电路管芯之间同步和/或串行地传送信号时保持了异步信号的异步性的外观。在一个示例中,可以将异步或看似异步状态或控制信号提供给并行接口。可以根据每个异步状态或控制信号的延迟敏感度以可变频率采样异步状态或控制信号。因此,例如,来自一个集成电路管芯的期望在另一集成电路管芯上相对更快速地被检测的高度延迟敏感的信号与较低延迟敏感信号相比以较高的频率被采样和发送。举例来说,可以在同步传输的每20个时隙对更高度延迟敏感的状态或控制信号采样和发送一次,而可以每100个时隙对较低延迟敏感的状态或控制信号采样和发送一次。附加地或可替换地,可以按照延迟敏感度对异步信号分组,并且可以通过集成电路管芯之间的分开的通信导线发送这些异步信号。举例来说,可以有10个特别高度延迟敏感的信号和90个较低延迟敏感的信号。可以通过第一导线对10个特别高度延迟敏感的信号采样和串行发送,并且可以通过第二导线对90个较低延迟敏感信号采样和串行发送。因为通过第二导线发送的信号较少,所以对10个特别高度延迟敏感的信号更频繁地采样和发送的频率可以为对90个较低延迟敏感信号进行采样和发送的频率的9倍。应该理解的是,这些示例仅仅是为了指导而提供的,并且实际的实施方式可以包括任何合适数量的信号。

考虑到这一点,示例性集成电路(ic)系统10包括连接到任何合适数量的次级集成电路(ic)管芯14的第一集成电路(ic)管芯12。第一ic管芯12和次级ic管芯14可以通过任何合适的导电桥接器进行连接,导电桥接器例如是硅桥接器16或设置在衬底中的桥接器结构(例如,英特尔公司的嵌入式多管芯互连桥接器(emib))或第一ic管芯12和次级ic管芯14之间的直接连接。第一ic管芯12和次级ic管芯14可以是任何合适的集成电路器件。在一个示例中,第一ic管芯12是包括可编程逻辑结构的集成电路器件,而次级ic管芯14是高速收发器。ic系统10可以受益于第一ic管芯12和次级ic管芯14的分隔性,这是因为这些管芯的基础技术可能不同。因此,它们可以以适合于每个管芯的技术的更模块化的方式被开发。

尽管下文提供的示例可以将第一ic管芯12称为可编程逻辑器件并且将次级ic管芯14称为高速收发器,但是其它类型的集成电路器件也可以从本公开内容中受益。这些可以包括数字处理电路、中央处理单元(cpu)子系统、并行输入/输出(i/o)卸载单元、数字信号处理(dsp)阵列等。

第一ic管芯12可以经由逻辑接口桥接器(ib)18通过硅桥接器16的物理芯片-芯片互连而连接到次级ic管芯14,其中该逻辑接口桥接器(ib)18对发送和接收信号的方式进行控制。换言之,如在本文中所使用的,接口桥接器18表示第一ic管芯12和次级ic管芯14之间的逻辑连接。接口桥接器18处理硅桥接器16的物理芯片-芯片互连之间的信号传输。

接口桥接器18可以允许片上配置网络(cnoc)20接口从第一ic管芯12延伸到次级ic管芯14。cnoc20允许来自次级ic管芯14的配置信号进入第一ic管芯12以用于对第一ic管芯12的可编程逻辑结构进行编程。虽然如此,但应该理解,可以使用其它类型的集成电路管芯,该其它类型的集成电路管芯使用接口桥接器18的其它方面,但不提供cnoc20,这是因为第一ic管芯12并不是在所有实施例中都包括可编程逻辑结构。当第一ic管芯12包含诸如fpga结构等可编程逻辑结构时,接口桥接器18仍可以是特别有用的。

图2示出了ic系统10的沿着图1的切割线2-2的示意性横截面图。如在图2中可以看到的,硅桥接器16可以是中介层(如图所示),或者可以是设置在衬底上的任何其它合适的硅桥接器(例如,互连桥接器,例如英特尔公司的嵌入式多管芯互连桥接器(emib))。在其它示例中,第一ic管芯12和次级ic管芯14可以通过堆叠的形式彼此直接连接。在图2所示的示例中,硅桥接器16表示中介层,该中介层使用由焊球30构成的球栅阵列(bga),该中介层可以电连接到其它电路,例如印刷电路板(pcb)(未示出)。第一ic管芯12和次级ic管芯14之间的物理互连通过相应的各自互连点32(此处,采取微凸块的形式)而进行,该相应的各自互连点32通过硅桥接器16内的芯片-芯片互连34而彼此耦合。

应该理解的是,图2表示一种2.5d布置,该2.5d布置使用硅桥接器16来连接第一ic管芯12和次级ic管芯14。在其它实施例中,第一ic管芯12和次级ic管芯14可以以3d布置的方式进行连接,在这种情况下,互连点32可以直接连接到另一ic。例如,次级ic管芯14可以堆叠在第一ic管芯12的顶部,并且互连点32可以直接连接到第一ic管芯12上的对应互连结构。

在2.5d或3d布置中,第一ic管芯12和次级ic管芯14可以通过相对于单片接口(即,如果第一ic管芯12和次级ic管芯14被图案化到单个单片集成电路管芯上)中可能的连接数量而言相对有限数量的物理连接进行通信。为了解决第一ic管芯12与次级ic管芯14之间的有限数量的物理连接,接口桥接器18可以通过有限数量的连接高效地传送各种类型的信号。

为了支持这一点,可以将接口桥接器18在逻辑上划分成若干逻辑层,如图3的层图50所示。具体而言,层图50示出了第一ic管芯12的不同逻辑层52和次级ic管芯14(当为次级ic管芯14时)的逻辑层54。图3的特定示例示出了当次级ic管芯14包括高速串行接口(hssi)收发器电路并且第一ic管芯12包括现场可编程门阵列(fpga)结构时可以存在的逻辑层。在逻辑上,接口桥接器18可以被理解为由第一ic管芯12上的物理输入/输出(i/o)层56a和高级ib协议层58a、以及次级ic管芯14侧的对应物理i/o层56b和高级ib协议层58b形成。物理i/o层56a和56b经由芯片-芯片互连34彼此物理连接。

ibi/o层56a和56b表示通过芯片-芯片互连34将信号发送到对应互连点或从对应互连点接收信号的物理层。因此,物理ibi/o层56a可以包括用于驱动信号通过芯片-芯片互连34和/或从芯片-芯片互连34接收信号的电路。一般而言,可以通过硬逻辑电路来实施物理ibi/o层56a和56b。然而,在一些实施例中,可以至少部分地通过已经被配置为作为物理ibi/o层操作的可编程结构来形成物理i/o层56a和/或56b。

高级ib协议层58a和58b分别表示对物理ibi/o层56a和56b的顶部上的物理操作进行操作的逻辑层,以使得通过接口桥接器18进行的通信尽可能无缝。换言之,当高级通信与接口桥接器18相互作用时,高级通信可以“看不见”ib协议层58a和58b的操作或物理ibi/o层56a和56b中发生的物理信号传输。从高级层的角度来看,ib18可以看起来是不可见的(例如,“黑匣子”)。

一些高级逻辑层可以在第一ic管芯12上包括fpga结构层60。fpga结构层60可以通过接口桥接器18传送任何合适的逻辑控制,就如同fpga结构60单片地连接到次级ic管芯14那样。例如,fpga结构60可以使用经由ib18上的源同步连接从次级ic管芯14接收的异步状态或控制信号来进行操作。

次级ic管芯14还可以包括诸如pciexpress层62、数字协议层64和/或hssi模拟层66等高级逻辑层。这些可以被理解为表示次级ic管芯14能够执行的各种功能或操作。在图3的特定示例中,这些功能表示hssi收发器的操作能力。然而,当次级ic管芯14包括诸如存储器电路等其它电路时,其它功能可以代替这些逻辑层。例如,当次级ic管芯14包括存储器时,接口桥接器18的层56b和58b之外的其它逻辑层可以包括随机存取存储器(ram)功能。当ic管芯14包括中央处理单元(cpu)时,高级逻辑层可以包括cpu数据处理功能。

当第一ic管芯12包括如由fpga结构层60所示的可编程逻辑结构时,ib协议层58a可以包括配置(config)逻辑68。这可以包括例如防火墙或其它配置信号处理逻辑,以确保经由接口桥接器18接收的配置数据仅进入fpga结构层60的安全部分(当这个经过授权时)。在一个实施例中,config逻辑68表示通向安全设备管理器(sdm)的专用路径,该安全设备管理器(sdm)用作访问fpga结构层60的安全区域的防火墙(如图14所示并在下文进一步讨论的)。因为次级ic管芯14可以允许经由hssi模拟层66、数字协议层64和/或pciexpress层62发送配置信号,所以这些层和ib协议层58b可以包括配置逻辑70。配置逻辑70可以使配置信号能够被接收并且被发送到fpga结构层60以到达ic管芯12。

如上所述,两个单独的集成电路管芯可以具有单独的电路部件。在这些单独的部件被组合成单个集成电路的先前单片设计中,这些部件将通过部件之间的内部单片接口进行通信。在一些情况下,这些单片接口可以传送异步信号。当集成电路管芯的单独部件被分散到两个不同的集成电路管芯(例如第一ic12和次级ic14)上时,有用的是可以保持相同类型的单片式通信,而不管第一ic12和次级ic14的分隔性。这可以提供第一ic12和次级ic14的集成电路中的电路之间通信的众所周知和一致的观感。换言之,即使第一ic12和次级ic14二者之间的实际通信可以是同步的和/或串行的,但从第一ic12的角度来看,次级ic14的电路看起来可以是通过异步单片接口来访问的。同样地,即使第一ic12和次级ic14二者之间的实际通信可以是同步的和/或串行的,但从次级ic14的角度来看,第一ic12的电路看起来可以是通过熟悉的异步单片接口来访问的。

图4是如从内部电路82(在次级ic14中)的角度和从内部电路84(在第一ic12中)的角度看到的这种看似单片接口80的框图。如图4所示,看似单片接口80看起来允许次级ic电路82和第一ic电路84经由看似单片并行状态接口86彼此异步通信。并行状态接口86包括保存异步状态或控制信号90的多个寄存器88。此处,并行状态接口86保存标记为0、1、2、3、……、n的n+1个状态或控制信号90。并行状态接口86看起来可以保存任何合适数量的状态或控制信号90,或者如可由在采用单片设计的两个电路部件之间发现的实际单片接口传送的其它类型的异步或者并行信号。实际上,如下文进一步讨论的,使用同步和/或串行通信来实现看似单片并行状态接口86,该看似单片并行状态接口86根据状态或控制信号90的延迟规范对这些状态或控制信号90进行采样和发送。由此,这保持了状态或控制信号90的表面上异步的特性,尽管发送状态或控制信号90是同步和/或串行的。

因此,应该认识到的是,图4中所示的看似单片接口80是要对从次级ic内部电路82和第一ic内部电路84的角度来看的这些部件之间的通信接口的逻辑外观的示意性表示。在一个示例中,第一ic内部电路84可以包括可编程逻辑器件结构和用于可编程逻辑器件结构的支持电路(例如,第一ic内部电路84可以包括现场可编程门阵列(fpga)结构和用于支持它的电路)。次级ic内部电路82可以包括收发器,例如高速串行接口(hssi)收发器。在这样的示例中,看似单片接口80可以以与采用单片设计的单片接口相当的方式允许次级ic内部电路82传送状态或控制信号90,例如上电复位(por)、锁相环(pll)锁定、先入先出(fifo)下溢等等。

可使用看似单片接口80传送的状态或控制信号90的总数可以比可用的单独芯片-芯片互连34大得多。结果,集成电路10的ib18可以通过根据特定优先级对异步信号进行采样,并基于优先级发送异步数据和控制信号90,从而保持信号的异步性外观来保持图4所示的看似单片接口80的逻辑外观。

在图5中,示出了可以实施看似单片接口80的电路的示例。在该示例中,在第一ic12侧,第一ic内部电路84可以与第一并行状态接口86a接口连接。例如,第一ic内部电路84可以从设置在第一ic12上的本地并行状态接口86a的相应寄存器88读取状态或控制信号90或将状态或控制信号90写入到设置在第一ic12上的本地并行状态接口86a的相应寄存器88中。可以具有对应的设置在次级ic14上的本地第二并行状态接口86b,次级ic内部电路82可以从本地第二并行状态接口86b读取状态或控制信号90或将状态或控制信号90写入到相应寄存器88中。ibi/o层56a和56b和/或ib协议层58a或58b可以根据状态或控制信号90的优先级(例如,每个状态或控制信号90对延迟的敏感度)采样来自第一并行状态接口86a或第二并行状态接口86b的异步状态或控制信号90,并通过比单片接口所要使用的更少数量的、芯片-芯片互连34的通道发送状态或控制信号90。例如,可以有一百个或更多的被更新的状态或控制信号90通过芯片-芯片互连34的仅一个或几个通道往来于一个并行状态接口86a或86b与另一个并行状态接口86b或86a之间。

如图6所示,在一个示例中,第一ic12和次级ic14之间的通信通道可以使用源同步通信来进行操作。换言之,次级ic14可以使用与第一ic12所使用的时钟(例如,时钟2)不同的时钟(例如,时钟1)。然而,从次级ic14的角度来看,第一ic12与次级ic14之间的通信的源同步性包括使ib18所使用的接收数据时钟基于来自次级ic14的时钟(例如,来自次级ic14的时钟信号)。作为替代,在其它示例中,由ib18使用的接收数据时钟可以基于第一ic12的时钟(例如,时钟2)。当次级ic14提供接收数据时钟(例如,来自次级ic14的时钟信号)时,第一ic12上的ibi/o层56a或ib协议层58a将使用接收数据时钟来接收和发送状态或控制信号以及接收数据时钟。换言之,ibi/o层56a或ib协议层58a可以接收来自次级ic14的ibi/o层56b或ib协议层58b的接收数据时钟,并使用该时钟来恢复次级ic14发送的状态信号以及将状态信号发送给次级ic14。从次级ic14的角度来看,用于与第一ic12通信的接收数据时钟是基于它自己的时钟的。

通过使用这种源同步串行通信,ib18可以使用串行通信对往来于并行状态接口86a或86b中的一个与另一个之间的状态或控制信号90进行传送,同时保持状态或控制信号90的异步性的外观。在图7-10中,描述了次级ic14的电路可以将状态或控制信号90发送到第一ic12的电路的示例,但是应当理解,可以采用类似的电路来将状态或控制信号90从第一ic12发送到次级ic14。

图7示出了可用于实现图4的看似单片接口80的串行化状态接口的发送侧100。应当认识到的是,图7的电路是要对可用于执行本公开内容的方法的电路的类型的示意性表示,并且根据需要,可以具有比图7所示的部件更多或更少的部件。在图7的示例中,时分多路复用器102被控制以由循环控制逻辑104一次一个地选择状态或控制信号90中的特定状态或控制信号90,该循环控制逻辑104从串行发送器108接收串行加载信号106,从而生成选择信号110。循环控制逻辑104可以被实施为实现状态或控制信号90的选择顺序的硬逻辑或软逻辑。选择顺序可以与位于另一集成电路管芯上的类似接收电路达成一致。取决于第一ic管芯12或次级ic管芯14的操作,达成一致的选择顺序可以是固定的或者可以是动态的。

循环控制逻辑104还可以生成控制信号112以使得反转掩码(invertmask)114选择性地反转已由循环控制逻辑104选择的状态或控制信号90。一般而言,循环控制逻辑104可以使用控制信号112来使反转掩码114反转通常预期处于逻辑高(“1”)状态的特定状态或控制信号90。因此,当所有的状态或控制信号90都处于预期的状态或最可能的状态时,反转掩码114的最终输出将仅仅是可消耗较少的电力来进行发送的逻辑低(“0”)信号。这可以允许串行发送器108在串行数据帧116中发送一组低信号。

串行数据帧116可以包括某个数量的单个时隙118,该单个时隙118表示单个状态或控制信号90。在图7的示例中,串行数据帧116携带总数为m的状态或控制信号90。串行数据帧116的第一时隙118可以是一个或多个标志位(“f”)。串行发送器108可以生成作为一位或者多位的一个或多个标志位“f”,该标志位可以是串行数据帧116的第一位或者前几位,并且该标志位可以指示从1到m+1的余下m个时隙118的全部或者子集是否包含逻辑零。如下面将讨论的,这可以允许接收电路读取一个或多个标志位“f”并且确定是否读取串行数据帧116的接下来的任何其它时隙118,以便在状态或控制信号90都为逻辑低时进一步节省电力。这可以节省ib18的发送侧和接收侧二者上的大量电力。串行发送器108还可以发送接收数据时钟(clock)120以及串行数据帧116。

串行数据帧116和时钟信号120通过芯片-芯片互连34发送到串行化状态接口的接收侧140,如图8所示。接收侧140可以对状态或控制信号90进行接收、解复用并将其存储到接收集成电路管芯(例如,第一ic12)的并行状态接口86a中。如上文参照图7所示的发送侧100所述,图8的电路是要对可用于执行本公开内容的方法的电路的类型的示意性表示,并且根据需要,可以具有比图8所示的部件更多或更少的部件。

在图8中,具有已由串行化状态接口发送电路100串行化的状态或控制信号90的各个时隙118的串行数据帧116可以由串行接收器142接收。串行接收器142还对接收数据时钟120进行接收。串行接收器142可以读取标志位“f”并确定是否继续读取串行数据帧116的余下部分。串行接收器142生成去往循环控制逻辑146的寄存器读取信号144,该循环控制逻辑146用于从串行数据帧116中解复用串行数据。循环控制逻辑146由此生成去往反转掩码150的控制信号,该反转掩码150基于状态或控制信号90的达成一致的选择顺序对反转掩码114的反转进行翻转。循环控制逻辑146还为一个或多个解复用器154生成选择信号152以解复用所接收的串行化状态或控制信号90,以便于存储在并行状态接口86a中。

图9和图10是用于实现从并行状态接口86b到86a的异步信号的时分多路复用的方法的流程图。具体而言,图9描述了通过串行连接来发送异步状态或控制信号90,而图10描述了串行化状态或控制信号90的接收。具体而言,当以循环方式采样诸如并行状态接口86b的状态或控制信号90等异步信号(块162)时,图9的流程图160开始。可以使用任何合适的电路来做到这一点,包括上文参考图7所描述的电路。状态或控制信号90中的特定状态或控制信号可以更频繁地改变,或者可以对第一ic12的操作具有更大的影响。因此,可以以更高的频率对这些较高优先级的状态或控制信号90进行采样。例如,可以串行数据帧116的每20个时隙118对较高优先级的状态或控制信号90采样一次,而可以每100个时隙118对较低优先级的信号采样一次。状态或控制信号90被采样的顺序也可以根据预期这些信号通常是逻辑低(“0”)还是逻辑高(“1”)而变化。为了效率,可以将这些分组在一起。实际上,可以使用反转掩码来反转已经被采样并且预期为逻辑高(“1”)的状态或控制信号90(块164)。因为串行发送器可以发送更多的逻辑低和更少的逻辑高,因此这可以降低串行通信的电力消耗。

另外,状态或控制信号可以被串行化为串行数据帧116,该串行数据帧116具有指示串行数据帧116的后续时隙118中的任何信号是否偏离零的一个或多个初始标志位“f”(块166)。可以将一个或多个串行数据帧116串行地发送到接收集成电路管芯(块168)。

图10的流程图180表示用于接收包含状态或控制信号90的串行信号的方法。即,接收集成电路管芯(例如,第一ic12)可以从另一ic(例如,次级ic14)接收串行数据帧116(块182)。当一个或多个标志位“f”被置位时,可以读取串行帧116;否则,不可以读取串行数据帧116的余下时隙118,并且可以推断是全部为零的信号。串行接收器142由此可以接收在串行数据帧中发送的状态或控制信号90(块184)。可以将反转掩码(例如,反转掩码150)应用于通常预期为1的接收数据信号(块186)。应该认识到的是,可以根据先前达成一致的选择顺序来应用反转掩码。可以将现在重构的状态或控制信号90存储到接收集成电路管芯(例如,ic12)的本地并行状态接口(例如,并行状态接口86a)中(块188)。这可以保持异步状态或控制信号90的异步性的外观,同时通过两个单独的ic管芯之间(例如,第一ic12和次级ic14之间)的串行化通信来传送它们。

串行化状态接口传输的采样顺序的示意性示例如图11的框图200所示。图11的示例仅包括五个状态或控制信号90。然而,实际上,应该理解,可以在实际实施方式中使用任何合适数量的状态或控制信号,或任何其它形式的期望传送的异步信号。如图11所示,串行数据帧116可以包括一定数量的单独时隙t0、t1、t2、...、tm+1。在图11中,标记为“状态信号0”和“状态信号1”的状态或控制信号90与余下的状态或控制信号90相比对延迟更敏感。例如,对于诸如复位信号或fifo下溢信号等信号而言,就是这种情况。实际上,一些延迟敏感的信号可以具有从几纳秒到500毫秒量级的延迟敏感度。因此,可以以较高的频率采样标记为“状态信号0”和“状态信号1”的状态或控制信号90,以确保它们被更快地更新。可以不太频繁地采样余下的信号。

此外,尽管图11将标记为“状态信号0”和“状态信号1”的状态或控制信号90示出为在同一串行数据帧116内被更快速地采样,但应当认识到的是,可以在多个串行数据帧116上进行这一点。例如,可以每(被发送的)串行数据帧116或每隔一个串行数据帧116对标记为“状态信号0”和“状态信号1”的更延迟敏感的状态或控制信号90进行采样,而可以仅每隔一个串行数据帧116或仅在一定倍数的串行数据帧116处对余下的状态或控制信号90进行采样。

图12是可用于串行化状态接口的电路的另一示例。在图12的示例中,串行化状态接口发送电路220包括分开的多路复用器222和224,它们分别用于较高优先级的状态或控制信号90和较低优先级的状态或控制信号90。循环控制逻辑226基于来自串行发送器230的串行加载信号228,该循环控制逻辑226可以使用选择信号232和234来使较高优先级的信号90与较低优先级的状态或控制信号90相比以更高的频率被选择和采样。循环控制逻辑226还可以生成反转控制信号235以控制反转掩码236并发送选择信号238以控制反转掩码240,这可以以与上文参考图7所讨论的相同方式进行操作。控制信号242可以作为选择信号在多路复用器244中选择是将较高优先级的状态或控制信号90还是较低优先级的状态或控制信号90提供给串行发送器230。可以认识到的是,代替所示的反转掩码236和240,可以通过将单个反转掩码放置在多路复用器244和串行发送器230之间而使用单个反转掩码。串行发送器230可以以与上文参考图7所讨论的串行发送器108的方式类似的方式对从多路复用器244获得的信号收集并发送到串行数据帧116的时隙118中。

对异步状态或控制信号90何时出现毛刺(即,比采样窗口更快地从预期值切换到不同值)进行识别可以是有价值的。因而,可以以捕捉这样的毛刺的方式对状态或控制信号90采样。例如,如图13的流程图260所示,对于采样窗口内已知是毛刺的信号而言,当毛刺状态出现时,可以在采样之间锁存该毛刺状态(块262)。如果毛刺没有出现,那么不锁存毛刺。作为替代,锁存数据信号。在任一情况下,可以对锁存的信号进行采样(块264),并且这一锁存的数据信号被读取并可以通过串行化状态接口发送这一锁存的数据信号。在读取信号之后,可以复位毛刺检测逻辑(块266),以等待未来的在下一个采样窗口内可能出现的毛刺。

图14提供了处于策略级的这样的毛刺检测电路280的示例,该毛刺检测电路280表示可用于采样被认为有可能是毛刺的状态或控制信号90的电路的类型。如图14所示,状态或控制信号90可以根据ic集成电路管芯之一(例如,次级ic14)的本地时钟信号进行操作。在一个示例中,次级ic14可以是hssi收发器。因此,可以根据hssi时钟为状态信号90提供时钟控制,或者状态信号90可以是非时钟控制信号。单独的时钟284可以读取状态或控制信号90(例如,串行传输时钟“osc_clk”)。当状态信号90是时钟控制信号而不是非时钟控制信号时,osc_clk可以比hssi_clk快,并且是hssi_clk的一定倍数。同步寄存器286可以读取状态或控制信号90并将该信号提供给多路复用器288。

多路复用器288可以由采样逻辑290控制,该采样逻辑290从串行寄存器294接收寄存器加载(“sr_load”)信号292并且确定是提供来自寄存器286的当前数据信号还是提供来自毛刺检测寄存器296的数据捕获信号(“d_capture”)。毛刺检测寄存器296可以初始地复位到状态或控制信号90的正常非毛刺状态,该状态可以是逻辑高或逻辑低,这取决于在包括osc_clk的几个边沿的采样窗口的开始处时正被采样的状态或控制信号90的类型。采样逻辑290可以将d_capture信号与来自寄存器286的输出进行比较。当这些值不同时,采样逻辑290可以将来自寄存器286的输出提供给毛刺检测寄存器296,以使毛刺检测寄存器296在采样窗口的剩余持续时间内被设置为毛刺状态。d_capture的值可以存储在串行寄存器中。因此,如果在采样窗口期间的正被采样的当前状态或控制信号90中没有毛刺,则串行寄存器294接收当前状态或控制信号90的正常状态。然而,如果在采样窗口中的任何点检测到任何毛刺,则串行寄存器294接收当前状态或控制信号90的毛刺状态。串行寄存器294可以提供这个信号来进行传输。

当通过ib18正在传输数据总线(databus)时仔细地锁存数据总线也可以是有益的。例如,如图15的数据传输框图300所示,次级ic14可以包括用于收发器的逻辑,例如hssi逻辑302,其可以从外部网络源接收hssi数据信号304。可以使用ibi/o层56a或56b和/或ib协议层58a或58b通过源同步通信将hssi数据信号304从次级ic14传输到第一ic12。

为了确保数据传输按照期望发生,ibi/o层56b或ib协议层58b可以根据图16的流程图320进行操作。即,可以以对应于第一时钟信号(例如,图15的“时钟”)的速率提供数据信号304,或者数据信号304可以是非时钟控制的(块322)。只有当数据信号304在接收时钟的一定阈值数量的周期(例如,三个周期)内稳定时,数据信号304才可以被锁存在数据总线上(块324)。当数据信号304是被时钟控制而不是非时钟控制时,接收时钟可以具有比第一时钟的频率快的任何合适的频率,其中该任何合适的频率是第一时钟的频率的一定倍数。

图17提供了策略级框图340,该策略级框图340示出了可用于实现这一点的电路的示例。hssi逻辑302可以将hssi数据304接收到内部数据总线上,hssi数据304可以是非时钟控制的或者是以hssi时钟进行时钟控制的。寄存器342或者任何合适数量的寄存器342可以用于以比hssi时钟快的时钟(例如,osc_clk)的分开步长接收信号。当在轮询逻辑344中检测到所有寄存器342的输出都相同时,轮询逻辑344可以使多路复用器346将该信号输出到输出寄存器348,该输出寄存器348可以提供数据捕获信号(“d_capture”)。轮询逻辑344可以根据来自串行发送器352的寄存器加载信号(“sr_load”)350进行该操作。串行发送器352可以输出要通过ib18发送的稳定hssi数据304。以这种方式,即使hssi时钟稍有变化,数据304也可以更可能是稳定且准确的。

尽管在附图中已经以举例的方式示出并且已经在本文详细描述了特定实施例,但是本公开内容中阐述的实施例可以容许各种修改和替代形式。然而,可以理解的是,本公开内容并不是要限于所公开的特定形式。本公开内容将涵盖落入由以下所附权利要求限定的本公开内容的精神和范围内的所有修改、等同变换和替代方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1