CN111971648A - 异步多时钟域数据流接合及再同步系统和方法 - Google Patents

异步多时钟域数据流接合及再同步系统和方法 Download PDF

Info

Publication number
CN111971648A
CN111971648A CN201980025662.5A CN201980025662A CN111971648A CN 111971648 A CN111971648 A CN 111971648A CN 201980025662 A CN201980025662 A CN 201980025662A CN 111971648 A CN111971648 A CN 111971648A
Authority
CN
China
Prior art keywords
clock signal
data
fifo
synchronous
fifo memory
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.)
Granted
Application number
CN201980025662.5A
Other languages
English (en)
Other versions
CN111971648B (zh
Inventor
W·李
K·S·塔姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Degirum Corp
Original Assignee
Degirum Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Degirum Corp filed Critical Degirum Corp
Publication of CN111971648A publication Critical patent/CN111971648A/zh
Application granted granted Critical
Publication of CN111971648B publication Critical patent/CN111971648B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/005Correction by an elastic buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6245Modifications to standard FIFO or LIFO
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Multi Processors (AREA)

Abstract

多个同步FIFO从对应的传输代理接收输入数据流。数据是基于由该对应的传输代理提供的写时钟信号而被写入同步FIFO。仲裁电路基于异步本地时钟信号从该同步FIFO读取数据。每一个同步FIFO的最小入口数(SMIN)由将储存的数据与本地时钟信号同步所需的入口数指定。SMIN可以进一步通过下列来指定:在输入数据流的吞吐量可能超过由本地时钟信号赋能的读数据吞吐量的阈值时段期间储存数据所需的入口数;在流量控制响应时间期间储存数据所需的入口数;以及在阈值时段以及流量控制响应时间期间从同步FIFO读取的入口数。

Description

异步多时钟域数据流接合及再同步系统和方法
相关申请
本申请要求于2018年4月13日提交的美国专利申请15/953,237、题为“异步多时钟域数据流接合及再同步系统和方法(System And Method For Asynchronous,MultipleClock Domain Data Streams Coalescing And Resynchronization)”的优先权,并且该申请通过引用并入本文。
技术领域
本发明涉及用于实施多输入对单输出再同步及接合(MISORC)的结构和方法。
背景技术
在多个代理之间传输数据的多时钟域通信系统中,每一个代理可以从以与该代理拥有的频率和相位不同的频率和相位进行操作的其他代理接收数据。图1示出了传统的多时钟域通信系统100,该多时钟域通信系统100包括传输代理101、102和10N,每一个传输代理分别基于时钟信号CLK_1、CLK_2和CLK_N进行操作,该时钟信号CLK_1、CLK_2和CLK_N可以具有不同的频率及/或相位(即,是异步的)。
传输代理101、102和10N向接收代理20内的FIFO 301、302和30N提供的分别是J位写数据值WD_1、WD_2和WD_N、分别是写赋能控制信号WC_1、WC_2和WC_N、以及分别是时钟信号CLK_1、CLK_2和CLK_N。FIFO 301、302和30N被控制以在接收代理20内缓冲并且再同步接收的数据WD_1、WD_2和WD_N。更具体地,下游处理单元40监视FIFO 301、302和30N的内容。作为响应,下游处理单元40分别向FIFO 301、302和30N提供读赋能控制信号RC_1、RC_2和RC_N(以及本地时钟信号CLK_P),从而起始对FIFO 301、302和30N的读存取,其中先前储存的数据值WD_1、WD_2和WD_N与本地时钟信号CLK_P(其可以具有与时钟信号CLK_1、CLK_2和CLK_N不同的频率/相位)同步地被提供给下游处理单元40。作为响应,下游处理单元40提供输出数据流DOUT
吞吐量(TP)被定义为在给定时间通过代理传输或处理的数据量。接收代理20具有最大吞吐量T。对于预定的有限时段,每一个进入的数据流(WD_1、WD_2和WD_N)的峰值吞吐量通常可以与输出数据流DOUT的峰值吞吐量(即,T)一样高。接收代理20中的流量控制电路21分别控制传输代理101、102和10N中的流量控制电路111、112和11N,使得传输代理101、102和10N的平均吞吐量(即,输入数据总线至FIFO 301、302和30N的平均吞吐量)小于或等于接收代理20的最大吞吐量T。例如,流量控制电路21可以使流量控制电路111、112和11N中的每一个流量控制电路将其对应数据流的吞吐量限制为等于接收代理20的最大吞吐量T除以进入的数据流数量N的平均吞吐量。尽管进入的数据流中的每一个进入的数据流的平均吞吐量是受限的,但是有可能进入的数据流中的一个或多个进入的数据流可以同时以最大吞吐量T提供写数据。此时,进入的数据流WD_1、WD_2和WD_N中的一个进入的数据流可以被暂时分配下游处理单元40内的所有传送资源,而其他(多个)进入的数据流被缓冲在其他进入的数据流的对应的FIFO中。
每一个FIFO 301、302和30N中所需的入口(entry)数(K1、K2和KN)由若干因素决定,该因素包括:将(异步的)进入数据值与本地时钟信号CLK_P再同步所需的入口数(A);当进入的数据流的吞吐量的总和超过该下游处理单元40的最大吞吐量(T)时,在瞬态周期期间缓冲进入数据值所需的入口数(B);在与下游处理单元40相关联的最差情况等待时间(TWAIT)的持续时间(即,数据被写入FIFO的时间与下游处理单元40必须开始从FIFO读取数据的时间之间允许的最大时间)缓冲进入数据值所需的入口数(C);以及从流量控制电路21发送流量控制消息的时间、和流量控制电路111、112和11N响应流量控制消息(例如,通过暂时减少数据值的传输)的时间缓冲进入数据值所需的入口数(D)。
入口数(A)相对小、并且取决于各种时钟信号CLK_1、CLK_2、CLK_N和CLK_P的频率、以及时钟抖动及用于实施FIFO 301、302和30N的存储器的设置及保持时间。
入口数(B)取决于各种时钟信号CLK_1、CLK_2、CLK_N和CLK_P的频率、以及由流量控制电路21实施的流量控制方法,特别是取决于暂时周期的允许的持续时间,在该暂时周期期间进入的数据流的吞吐量的总和可以暂时超过下游处理单元40的最大吞吐量。
入口数(C)通常相对大、并且取决于在下游处理单元40必须开始读取先前储存在FIFO 301、302和30N中的数据之前可允许的最差情况等待时间(TWAIT)。注意,如果FIFO 301、302和30N中的一个FIFO的最差情况等待时间(TWAIT)流逝而没有从这个FIFO传输先前储存的数据,则流量控制电路21将向相关联的传输代理的流量控制电路传输后退消息,指示此传输代理暂时停止传输数据至接收代理20。最差情况等待时间TWAIT在每一个FIFO 301、302和30N中需要额外的C=TWAIT*T个入口。最差情况等待时间TWAIT由下游处理单元40的所需操作限定、并且通常在每一个FIFO 301-30N内需要数百或数千个入口。
入口数(D)通常小于入口数(C)、并且取决于在流量控制电路21向传输代理传输后退消息的时间、与传输代理通过停止数据传输来响应后退消息的时间之间流逝的时间。此时段被称为流量控制响应时间(TF),其在每一个FIFO 301、302和30N中需要额外的D=TF*T个入口。
取决于系统要求以及代理设计限制,FIFO 301、302和30N的FIFO深度要求(即,分别用于FIFO 301、302和30N的所需的入口数K1、K2和KN)可能非常大(例如,针对每一个FIFO,数百或数千个入口)。这是FIFO资源的无效率使用,仅用于覆盖最差情况的可能性。因此,期望减少FIFO 301、302和30N的所需深度。
取决于系统要求以及代理设计限制,传输代理101、102和10N与接收代理20之间的距离可能相对地长。类似地,FIFO 301、302和30N与下游处理单元40之间可能存在长路径。上述长路径需要相关联的总线(例如,传输代理101、102和10N与FIFO 301、302和30N之间的总线、以及FIFO 301、302和30N与下游处理单元40之间的总线)在相关联的集成电路芯片的多层金属互连结构中实施。注意,FIFO 301、302和30N与下游处理单元40之间的每一个总线必须被设计为符合下游处理单元40的最大吞吐量T。这是对可用互连资源的无效率使用、并且可能导致通信系统100的设计由于性能、路由和晶粒(die)尺寸限制而变得不能实施。因此,期望减少必须使用集成电路芯片的多层金属互连资源而被实施的通信系统100的总线的数量/长度。
发明内容
因此,本发明提供一种包括多个同步FIFO的通信系统,每一个同步FIFO被耦合以从对应的传输代理接收对应的输入数据流和对应的写时钟/赋能信号。相对于每一个其他写入/时钟赋能信号,每一个写时钟/赋能信号可以是异步的。仲裁电路响应于本地时钟信号读取被储存在多个同步FIFO中的数据。本地时钟信号可以具有至少与同步FIFO接收到的写时钟信号的最高频率一样高的频率。
根据第一实施例,多个同步FIFO中的每一个同步FIFO包括由将同步FIFO中储存的数据与本地时钟信号同步所需的入口数指定的最小入口数(SMIN)。
根据第二实施例,多个同步FIFO中的每一个同步FIFO包括由下列所指定的最小入口数(SMIN):将同步FIFO中储存的数据与本地时钟信号同步所需的入口数;在传输代理的组合数据吞吐量被允许超过由本地时钟信号赋能的读数据吞吐量的阈值时段期间,将数据储存在同步FIFO中所需的入口数;在停止数据被对应的传输代理提供给同步FIFO所需的流量控制响应时间期间,将数据储存在同步FIFO中所需的入口数;以及在阈值时段和流量控制响应时间期间从同步FIFO读取的入口数。
有利地,第一实施例和第二实施例所需的最小入口数(SMIN)显著低于现有技术的传统FIFO 301-30N所需的最小入口数。
缓冲FIFO存储器被耦合以接收并且储存由仲裁电路从多个同步FIFO存储器读取的数据,其中缓冲FIFO响应于本地时钟信号而进行操作。下游处理单元响应于本地时钟信号以最大吞吐量从缓冲FIFO存储器中检取数据。流量控制电路可以控制每一个输入数据流以具有小于或等于最大吞吐量的吞吐量。在另一示例中,流量控制电路可以将输入数据流的平均吞吐量限制为小于或等于最大吞吐量。
有利地,在仲裁电路与缓冲FIFO存储器之间仅需要一个数据总线,从而有利地减少在相关联的集成电路芯片上的路由拥塞。
本发明的通信系统可以用于各种应用,这些应用包括与环形网络相关联的数据传送。在第一种应用中,多个同步FIFO存储器的第一同步FIFO存储器被耦合以在第一双向环形网络上从第一方向接收第一输入数据流和第一时钟信号,以及多个同步FIFO存储器的第二同步FIFO存储器被耦合以在第一双向环形网络上从第二方向接收第二输入数据流和第二时钟信号。
在第二种应用中,多个同步FIFO存储器的第一同步FIFO存储器被耦合以从第一环形网络接收第一输入数据流和第一时钟信号,以及多个同步FIFO存储器的第二同步FIFO存储器被耦合以从第二环形网络接收第二输入数据流和第二时钟信号。
根据另一实施例,一种方法包括:从对应的多个传输代理接收多个输入数据流和对应的输入时钟信号;响应于对应的输入时钟信号,将多个输入数据流中的每一个输入数据流储存在对应的同步FIFO存储器中;仲裁从每一个同步FIFO存储器读取数据,其中响应于本地时钟信号从每一个同步FIFO存储器读取数据,其中本地时钟信号相对于输入时钟信号是异步的;将从每一个同步FIFO存储器读取的数据储存在缓冲FIFO存储器中,其中缓冲FIFO响应于本地时钟信号而操作;以及响应于本地时钟信号,将数据从缓冲FIFO存储器传送至下游处理单元。
鉴于以下描述以及附图,将更全面地理解本发明。
附图简述[0023]图1是传统的多时钟域通信系统的框图,该多时钟域通信系统包括多个传输代理和具有多个深FIFO存储器的接收代理。
图2A是示出根据本发明的一个实施例的多时钟域通信系统的框图,该多时钟域通信系统包括多个传输代理和多时钟域接收代理。
图2B是示出根据本发明的替代实施例的多时钟域通信系统的框图,该多时钟域通信系统包括多个传输代理和多时钟域接收代理。
图3是示出根据本发明一个实施例的图2A的接收代理的更多细节的框图。
图4是示出根据本发明的一个实施例的用于操作图2A和图3的仲裁电路的方法的流程图。
图5是根据本发明的一个实施例的多时钟通信系统的框图,该多时钟通信系统包括彼此非常邻近的多个传输代理、以及位于与该多个传输代理相距相当长距离的接收代理(以及下游处理单元)。
图6是根据本发明的另一个实施例的多时钟通信系统的框图,该多时钟通信系统类似于图2A的多时钟通信系统,其中除去了图3的缓冲FIFO,并且该缓冲FIFO的功能在下游处理单元内被实施。
图7是根据各实施例的置换环形网络的框图,该置换环形网络实施了本发明的多输入对单输出再同步及接合(MISORC)电路。
实施方式
本发明提供了一种用于将多时钟域输入数据流合并为单一输出数据流的有效的多输入对单输出再同步及接合(MISORC)方法和结构。该方法可用于以减少晶载(on chip)线数的方式而将多个数据总线聚合成单一数据总线、潜在地减少路由拥塞、以及最小化用于再同步和缓冲的FIFO资源量。
根据本发明,用多个相对小的同步FIFO和一个较大的下游缓冲FIFO代替传统接收代理20的接收FIFO 301-30N。在第一实施例中,每一个同步FIFO的大小被定为仅包括处理再同步所需的入口数(A)。在第二实施例中,每一个同步FIFO的大小被定为仅包括处理再同步所需的入口数(A)、当进入的数据流的吞吐量的总和超过下游处理单元的最大吞吐量(T)时,在瞬态周期期间缓冲进入数据值所需的入口数(B)、以及处理流量控制响应时间所需的入口数(D)。
有利地,在第一实施例中,每一个同步FIFO不需要包括当进入的数据流的吞吐量的总和超过下游处理单元的最大吞吐量(T)时的瞬态周期期间缓冲进入数据值所需的入口数(B)、处理最差情况等待时间(TWAIT)所需的入口数(C)以及处理流量控制响应时间(TF)所需的入口数(D)。类似地,在第二实施例中,每一个同步FIFO不需要包括处理最差情况等待时间(TWAIT)所需的入口数(C)。如上所述,入口数(C)和入口数(D)的量通常占传统FIFO 301、302和30N的最大储存要求。因此,本发明的每一个同步FIFO通常包括比传统FIFO 301、302和30N少得多的入口数。
在接收代理的时钟域的每一个时钟周期,仲裁电路从同步FIFO的读端口中的一个中选择有效入口,以上载到公共缓冲FIFO(或其他存储器结构)中。此公共缓冲FIFO的大小被定为满足下游处理单元的要求(例如,包括足以覆盖最差情况等待时间TWAIT的入口)。在一个实施例中,缓冲FIFO的大小被定为能够储存最差情况等待时间(TW’)所需的入口数(C’)和流量控制响应时间(TF’)所需的入口数(D’),其中最差情况等待时间(TW’)可能经历从数据被储存在公共缓冲FIFO中起直到数据必须从该公共缓冲FIFO被读取的时间,而流量控制响应时间(TF’)可能经历从接收代理的流量控制电路传输后退消息的时间起到对应的传输代理响应后退消息而停止传输数据的时间。
仲裁电路被设计为满足系统的要求。例如,仲裁电路可以使用以下选择机制中的一个或组合以将数据从接收FIFO上载到下游处理单元:FIFO的数据流顺序、转向以及满度。其他仲裁策略可以用于其他实施例中。注意,仲裁策略可以被设计为在系统的操作期间可被修改。仲裁电路以最大传送速度从同步FIFO中每周期选择一个入口,以被加载至到较大的缓冲FIFO中。有利地,在仲裁电路与公共缓冲FIFO之间仅需要具有最大吞吐量(T)的一个数据总线,从而最小化系统的路由拥塞。现在将更详细地描述根据本发明的MISORC结构和方法。
图2A是示出根据本发明一个实施例的包括多个传输代理101、102和10N以及多时钟域接收代理200的通信系统250的框图。在所示的示例中,接收代理200被耦合到传输代理101、102和10N,如上面已经描述的。接收代理200包括MISORC电路205、下游处理单元230和流量控制单元240。流量控制单元240控制传输代理101、102和10N的流量控制单元111、112和11N,以将这些传输代理的平均数据流限制到预定阈值(即,下游处理单元230的最大吞吐量T)。尽管示出了将流量控制单元240连接到流量控制单元111、112和11N的单线,但是应理解,可以从流量控制单元240向流量控制单元111、112和11N中的每一个提供单独的线。
MISORC电路205包括N个同步FIFO 2011、2012和201N、仲裁电路210以及K-入口缓冲FIFO 220。同步FIFO 2011、2012和201N中的每一个分别在写数据总线上接收进入的J位写数据值WD_1、WD_2和WD_N。在一个实施例中,这些写数据总线中的每一个具有不大于T的最大吞吐量,其中T是下游处理单元230所呈现的最大吞吐量。在一个替代实施例中,只要每一个写数据总线的平均吞吐量、以及所有写数据总线的吞吐量总和的平均值小于T,这些写数据总线中的每一个的峰值吞吐量可以在有限的持续时间大于下游处理单元230的最大吞吐量T。在此实施例中,该步FIFO 2011、2012和201N中的每一个的大小被定为相对于最大吞吐量T而能够缓冲峰值吞吐量的最大持续时间的写数据。写数据总线可以在不同的时钟频率和相位下以上述的方式操作。尽管在所描述的示例中写数据总线具有相同的宽度(J),但是应理解,(只要这些写数据总线上的吞吐量以本文所述的方式受控)写数据总线可以具有不同的宽度吞吐量。在一个实施例中,写时钟信号CLK_1、CLK_2和CLK_N中的每一个具有相同的频率,但是这些写时钟信号CLK_1、CLK_2和CLK_N彼此之间没有确定的相位关系(即,是异步的)。在其他实施例中,(只要这些写数据总线上的吞吐量以本文所述的方式受控)写时钟信号CLK_1、CLK_2和CLK_N可以具有不同的频率吞吐量。仲裁电路210控制J位写数据值W_1、W_2和W_N分别从同步FIFO 2011、2012和201N至K-入口缓冲FIFO 220的传送(作为J位输入写数据WI)。更具体地,仲裁电路210分别向同步FIFO2011、2012和201N提供读赋能信号RC_1、RC_2和RC_N,从而使数据值W_1、W_2和W_N被读取。在图2A的实施例中,读赋能信号RC_1、RC_2和RC_N由本地时钟信号CLK_P进行时钟控制。由仲裁电路210提供的输入写数据值WI以等于T的最大吞吐量而被写入K-入口缓冲FIFO 220。随后,由下游处理单元230以等于T的最大吞吐量而从K-入口FIFO 220读取写数据值(例如,作为J位输出写数据值WO)。仲裁电路210还以下面更详细描述的方式向流量控制电路240提供后退消息。流量控制电路240以下面更详细描述的方式将后退消息转发到适当的流量控制电路111、112及/或11N,其中该流量控制电路111、112及/或11N响应所接收的(多个)后退消息暂时停止传输来自对应的传输代理101、102及/或10N的数据。
同步FIFO 2011、2012和201N分别包括S1、S2和SN入口。在第一实施例中,针对进入的写数据流WD_1、WD_2和WD_N而于同步FIFO 2011、2012和201N中使用的入口数(即,S1、S2和SN)被计算,以使这些同步FIFO2011、2012和201N仅支持进入的(写)时钟信号CLK_1、CLK_2和CLK_N分别与接收代理200/下游处理单元230的本地时钟信号(CLK_P)之间的数据的再同步。在此实施例中,同步FIFO 2011、2012和201N包括S1、S2和SN入口,该S1、S2和SN入口通常包括以上结合图1的接收代理20所述的再同步所需的入口数(A)。
在第二实施例中,在同步FIFO 2011、2012和201N中使用的入口数(即,S1、S2及SN)另外包括用于支持下列项的入口:当进入的数据流的吞吐量的总和暂时超过下游处理单元230的最大吞吐量(T)(根据实施的流量控制)时,在瞬态周期期间缓冲进入的写数据值;以及在与流量控制电路240以及111-11N相关联的流量控制响应时间期间,缓冲进入的写数据值。在此实施例中,同步FIFO 2011、2012和201N包括S1、S2和SN入口,该S1、S2及SN入口通常包括以上结合图1的接收代理20描述的(A)、(B)以及(D)类型入口。
与传统的接收代理20(图1)不同,同步FIFO 2011、2012和201N的入口数S1、S2和SN不需要包括处理与下游处理单元230相关联的最差情况等待时间(TWAIT)所需的入口数(C)(并且可能不需要包括处理于其中写数据速率超过读数据速率的周期所需的入口数(B)、以及处理流量控制响应时间(TF)所需的入口数(D))。因此,同步FIFO 2011、2012和201N的入口数S1、S2和SN远小于传统FIFO 301-30N(图1)所需的入口数K1、K2和KN。注意,该同步FIFO 2011、2012和201N的每一个中的入口数S1、S2和SN不需要相同。
根据一个实施例,通过以下等式保守地定义同步FIFO 2011、2012和201N中的每一个的最小入口数SMIN
SMIN=round_up((RCLK_PERIOD+Tnv)/WCLK_PERIOD)+round_up(Ed)+round_up(Et)+round_Up(Ef)-round_down(Ec)
其中,round_up表示对最接近的整数的上舍入运算;round_down表示对最接近的整数的下舍入运算;RCLK_PERIOD是用于从同步FIFO读取数据的读赋能信号的周期(例如,读赋能信号RC_1、RC_2或RC_N的周期)(由在频率CLK_P操作的仲裁电路210确定);WCLK_PERIOD是用于将数据写入同步FIFO的写赋能信号的周期(例如,写赋能控制信号WC_1、WC_2或WC_N的周期);Tnv是用于将数据储存在同步FIFO中的触发器的设置时间(Tsu)、用于将数据储存在同步FIFO中的触发器的保持时间(Thold)以及用于从同步FIFO写入以及读取数据的时钟信号的时钟抖动(TJ)的总和;Ed等于(L*(CLK_P PERIOD/WCLK_PERIOD)),其中L是检测到要读取的下一个可用FIFO入口与所检测到的入口实际从FIFO读取的时间之间经过的CLK_P周期数(其中L通常为1或2(最多));Et等于Twgr/WCLK_PERIOD,其中Twgr是在流量控制周期期间被写入同步FIFO的数据值的吞吐量可能超过同步FIFO的读取吞吐量的时间量(基于由流量控制电路240所实施的流量控制方法);Ef等于TF/WCLK_PERIOD,其中TF被定义为在仲裁电路210传输后退消息(BACK-OFF)的时间与对应的同步FIFO响应于该后退消息而停止接收写数据的时间之间经过的流量控制响应时间;以及Ec等于(Twgr+TF)/RCLK_PERIOD。
通常,[round_up((RCLK_PERIOD+Tnv)/WCLK_PERIOD)+round_up(Ed)]的值表示将异步写数据再同步至本地时钟信号CLK_P所需的入口数。round_up(Et)的值表示在组合的写数据吞吐量被允许超过读数据吞吐量的时间周期Twgr期间储存数据值所需的入口数。round_up(Ef)的值表示在流量控制响应时间期间储存数据值所需的入口数。round_down(Ec)的值表示在时间周期Twgr和TF期间从同步FIFO读取的入口数。
注意,同步FIFO读取机制由仲裁电路210指定,而不是直接由本地时钟信号CLK_P指定。仲裁电路210由本地时钟信号CLK_P驱动。由于仲裁电路210由本地时钟信号CLK_P进行时钟控制,因此任何特定同步FIFO的最佳情况(暂时)的读取频率是本地时钟信号CLK_P的频率。任何特定同步FIFO的最差情况的读取(暂时)频率是0或由仲裁电路210确定的非常低的频率。因此,读取同步FIFO的频率可以小于本地时钟信号CLK_P的频率。
如果读赋能信号的周期(RCLK_PERIOD)小于写赋能信号的周期(WCLK_PERIOD)减去同步FIFO的Tnv值,则Twgr和TF的值等于零(因为写数据吞吐量将不超过读数据吞吐量,并且仲裁电路210将不需要传输后退消息)。假设L=1,则在这些条件下,同步FIFO的最小入口要求SMIN等于2个入口(即,根据上面提供的等式,SMIN=1+1+0+0-0=2)。
对于同步FIFO,如果读赋能信号的周期(RCLK_PERIOD)等于写赋能信号的周期(WCLK_PERIOD),则Twgr和Tf等于零(因为写数据吞吐量将不超过读数据吞吐量,并且仲裁电路210将不需要传输后退消息)。假设Tnv的值显著地小于读时钟周期和写时钟周期,并且L=1,则在这些条件下,最小入口要求SMIN等于3个入口(即,根据上面提供的等式,SMIN=2+1+0+0-0=3)。
针对同步FIFO,如果读赋能信号的周期(RCLK_PERIOD)大于写赋能信号的周期(WCLK_PERIOD),若此条件不是瞬态的,则同步FIFO的入口要求可以是无限的。因此,最小入口要求SMIN根据上述等式而被确定,该等式考虑了写入吞吐量被允许超过读取吞吐量的时间量(Twrq)和流量响应时间(TF)。下面提供了几个示例。
根据第一实施例,假设写时钟CLK_1、CLK_2和CLK_N分别具有1GHz、1GHz和2GHz的频率,本地时钟信号CLK_P具有2GHz的频率,并且同步FIFO 2011、2012和201N的Tnv值(TSU+THOLD+Tj)为50皮秒(ps)。进一步假设流量控制电路240控制进入的数据流使得传输代理101和102中的每一个被允许本地时钟信号CLK_P的每四个周期传输一个数据值,并且传输代理10N被允许本地时钟信号CLK_P的每四个周期传输两个数据值,并且因此仲裁电路210响应导致了CLK_P信号的每四个周期从同步FIFO 2011和2012的每一个进行一次读操作、以及CLK_P信号的每四个周期从同步FIFO 201N进行两次读操作,使得用于FIFO 2011和2012的RCLK_PERIOD=2000ps、用于FIFO 201N的RCLK_PERIOD=1000ps、用于FIFO 2011和2012的WCLK_PERIOD=2000ps、用于FIFO 201N的WCLK_PERIOD=1000ps、CLK_P周期=500ps、Twgr=0(即,被写入同步FIFO 2011、2012和201N的数据值的吞吐量的总和从不超过仲裁器210和下游处理单元230的最大吞吐量T)以及TF=0(即,仲裁电路210不需要传输后退消息)。在此示例中,同步FIFO2011、2012和201N中的每一个可以包括3个入口。更具体地,根据上面提供的等式(假设L=1),同步FIFO 2011和2012的最小所需入口数是:round_up((2000ps+50ps)/2000ps)+round_up(1*(500ps/2000ps))+round_up(0ps/2000ps)+round_up(0ps/2000ps)-round_down(0ps/2000ps)=2+1+0+0-0=3。类似地,同步FIFO 201N的最小所需入口数是:round_up((1000ps+50ps)/1000ps)+round_up(1*(500ps/1000ps))+round_up(0ps/1000ps)+round_up(0ps/1000ps)-round_down(0ps/1000ps)=2+1+0+0-0=3。
根据第一实施例的另一示例,假设写时钟CLK_1、CLK_2和CLK_N分别具有2GHz、2GHz和2GHz的频率,本地时钟信号CLK_P具有2GHz的频率,并且同步FIFO 2011、2012和201N的Tnv值(TSU+THOLD+Tj)为50ps。进一步假设流量控制电路240控制进入的数据流,使得传输代理101-10N中的每一个被允许本地时钟CLK_P信号的每三个周期发送一个数据值,并且因此仲裁电路210响应导致了CLK_P信号的每三个周期从同步FIFO 2011、2012和201N的每一个进行一次读操作,使得RCLK_PERIOD=1500ps、WCLK_PERIOD=1500ps、CLK_P PERIOD=500ps、Twgr=0(即,写入同步FIFO 2011、2012和201N的数据值的吞吐量的总和从不超过仲裁器210和下游处理单元230的最大吞吐量T),并且TF=0(即,仲裁电路210不需要传输后退消息)。在此示例中,同步FIFO 2011、2012和201N中的每一个可以包括3个入口。更具体地,根据上面提供的等式(假设L=1),同步FIFO 2011、2012和201N的最小所需入口数是:round_up((1500ps+50ps)/1500ps)+round_up(1*(500ps/1500ps))+round_up(0ps/1500ps)+round_up(0ps/1500ps)-round_down(0ps/1500ps)=2+1+0+0-0=3。
根据第二实施例,假设写时钟CLK_1、CLK_2和CLK_N分别具有1GHz、1GHz和2GHz的频率,本地时钟信号CLK_P具有2GHz的频率,以及同步FIFO 2011、2012和201N的Tnv值(TSU+THOLD+Tj)为50ps。进一步假设流量控制电路240控制进入的数据流,使得传输代理101和102中的每一个被允许以本地时钟信号CLK_P的每四个周期一个数据值的平均吞吐量来传输数据,并且传输代理10N被允许以本地时钟信号CLK_P的每四个周期两个数据值的平均吞吐量来传输数据。进一步假设传输代理101、102和10N的组合吞吐量被允许超过下游处理单元230的最大吞吐量T达Tgwr=20000ps的持续时间、并且流量控制响应时间TF是5000ps。请注意,在此示例中,同步FIFO 2011和2012的最小写时钟周期(WCLK_PERIOD)为1000ps(针对有限的持续时间),并且同步FIFO 201N的最小写时钟周期(WCLK_PERIOD)为500ps(针对有限的持续时间)。平均而言,仲裁电路210响应导致了CLK_P信号的每四个周期(针对RCLK_PERIOD=2000ps)从同步FIFO 2011和2012的每一个进行一次读操作、并且CLK_P信号的每四个周期(针对RCLK_PERIOD=1000ps)从同步FIFO 201N进行两次读操作。在此示例中,同步FIFO2011和2012中的每一个可以包括17个入口,并且同步FIFO 201N可以包括29个入口。更具体地,根据上面提供的等式(假设L=1),同步FIFO2011和2012的最小所需入口数是:round_up((2000ps+50ps)/1000ps)+round_up(1*(500ps/1000ps))+round_up(20000ps/1000ps)+round_up(5000ps/1000ps)-round_down(25000ps/2000ps)=3+1+20+5-12=17。类似地,同步FIFO 201N的最小所需入口数是:round_up((1000ps+50ps)/500ps)+round_up(1*(500ps/500ps))+round_up(20000ps/500ps)+round_up(5000ps/500ps)-round_down(25000ps/1000ps)=3+1+40+10-25=29。
在根据第二实施例的又另一示例中,假设写时钟CLK_1、CLK_2和CLK_N中的每一个具有2GHz的频率,本地时钟信号CLK_P具有2GHz的频率,并且同步FIFO 2011、2012和201N的Tnv值(TSU+THOLD+Tj)为50ps。进一步假设,流量控制电路240控制进入的数据流,使得传输代理101、102和10N中的每一个被允许以本地时钟信号CLK_P的每三个周期一个数据值的平均吞吐量来传输数据。进一步假设,传输代理101、102和10N的组合吞吐量被允许超过下游处理单元230的最大吞吐量T达Tgwr=20000ps的持续时间并且流量控制响应时间TF是5000ps。注意,在此示例中,同步FIFO 2011、2012和201N的最小写时钟周期(WCLK_PERIOD)为500ps(针对有限的持续时间)。平均而言,仲裁电路210响应导致了CLK_P信号的每三个周期(针对RCLK_PERIOD=1500ps)从同步FIFO 2011、2012和201N进行一次读操作。在此示例中,同步FIFO 2011、2012和201N中的每一个可以包括39个入口。更具体地,根据上面提供的等式(假设L=1),每一个同步FIFO 2011、2012和201N的最小所需入口数是:round_up((1500ps+50ps)/500ps)+round_up(1*(500ps/500ps))+round_up(20000ps/500ps)+round_up(5000ps/500ps)-round_down(25000ps/1500ps)=4+1+40+10-16=39。
在上述方式中,Tgwr的值有效地定义了对应的同步FIFO中的阈值入口数(ETH),其中当同步FIFO被填充到其阈值入口数时,仲裁电路210宣告被传输至流量控制电路240的后退消息(BACK-OFF)。作为响应,流量控制电路240将后退消息传输至与被填充到阈值入口数的同步FIFO相关联的流量控制电路111、112及/或11N。作为响应,此流量控制电路111、112或11N(暂时)停止将数据传输到其对应的同步FIFO,从而有时间从同步FIFO读取数据。以这种方式,流量控制方案允许输入数据流WD_1、WD_2和WD_N以这些输入数据流各自的时钟速率CLK_1、CLK_2和CLK_N不受管制地被传输,直到各自的同步FIFO 2011、2012和201N被填充到预定的阈值入口数(ETH)。预定的阈值入口数被选择以允许传输代理101、102或10N以其对应的时钟信号CLK_1、CLK2和CLK_N所允许的全数据速率暂时地传输数据。在一个实施例中,预定的阈值入口数大约为10个入口或更少。在另一个实施例中,预定的阈值入口数是64或更少。在又另一个实施例中,预定的阈值入口数是128个入口或更少。在每一个实施例中,同步FIFO 2011-201N的最小入口数明显小于传统缓冲FIFO 301-30N所需的最小入口数。以本文描述的方式将多个输入数据流合并为单一输入数据流WI确保了同步FIFO 2011-201N的最小入口数显著地小于传统缓冲FIFO 301-30N所需的最小入口数。
在特定实施例中,下游处理单元230的频率(CLK_P)等于或大于进入的写时钟(WC_1、WC_2、WC_N)的最大时钟频率,以提供最小数量的同步FIFO入口并维持沿数据路径使用统一的数据宽度,从而减少电路复杂性。
仲裁电路210将从N个同步FIFO 2011-201N中的一个同步FIFO选择本地时钟信号CLK_P的每一个周期一个有效数据值,并将此有效数据值写入K-入口缓冲FIFO 220。注意,从同步FIFO 2011、2012和201N中的每一个至仲裁电路210的数据传送可以具有等于T的最大吞吐量,并且从仲裁电路210到缓冲FIFO 220(WI)的数据传送也具有等于T的最大吞吐量。从缓冲FIFO 220至下游处理单元230的数据传送也具有等于T的最大吞吐量。
虽然缓冲FIFO 220被示为在MISORC电路205内的单独的存储器装置,但是应理解,在其他实施例中,缓冲FIFO 220可以在下游处理单元230中实施、或者与处理单元中的其他存储器结构合并。
根据一个实施例,缓冲FIFO 220所需的入口数(K)由若干因素确定,这些因素包括:下游处理单元230的等待时间、以及流量控制电路240发送流量控制消息的时间与流量控制电路111、112和11N响应该流量控制消息(例如,通过暂时减少数据值的传输)的时间之间存在的延迟。
例如,假设路由器或开关包括多个输入端口,这些输入端口将数据传输到相同的输出端口,然后该输出端口将数据转发到其他端口。由于并非来自输入端口的所有数据都可以同时被重定向,因此从输入端口接收的数据必须被缓冲。此数据将占用缓冲FIFO 220入口的一部分。当缓冲FIFO 220填充到某一点时,流量控制电路240必须传输后退消息以减慢或停止来自传输代理101、102和10N的数据传输。缓冲FIFO 220必须具有储存由传输代理101、102和10N传输的所有数据,直到这些传输代理响应于接收到后退消息而减慢或停止传输的能力。取决于传输代理接收后退消息所花费的时间和操作频率,入口数可以大或小。例如,如果传输频率高并且传输代理位于芯片外,则响应可能需要数百个周期。如果传输代理位于芯片上,则流量控制响应可能需要几个到几十个周期。
更具体地,缓冲FIFO 220必须包括(C’个入口的)深度,该深度考虑了在缓冲FIFO220必须开始读取先前储存的数据值之前可允许的最差情况等待时间(TW’)。注意,如果在没有从此缓冲FIFO传输先前储存的数据的情况下经过了缓冲FIFO 220的最差情况等待时间(TW’),则流量控制电路240将传输后退消息至传输代理101、102和10N的流量控制电路,指示这些传输代理暂时停止向接收代理200传输数据。最差情况等待时间TW’需要缓冲FIFO 220中的C’=TW’*T个入口。此外,缓冲FIFO 220必须具有(D’个入口的)额外深度,该额外深度允许在流量控制电路240向传输代理传输后退消息的时间与传输代理通过停止数据传输来响应该后退消息的时间之间经过的时间期间储存数据。此时段被称为需要缓冲FIFO 220中的额外的D’=TF’*T个入口的流量控制响应时间(TF’)。
有利地,仅一个FIFO(例如,缓冲FIFO 220)必须具有相对大的深度(K个入口)以实施从N个进入的数据流接收的数据值的缓冲。注意,传统的接收代理20需要三个此类大入口FIFO 301-30N。类似地,仅需要具有最大吞吐量T的一个数据总线(WO)来供应下游处理单元230。相较之下,传统的接收代理20需要N个数据总线WD_1、WD_2、WD_N,每一个数据总线具有最大吞吐量T,以供应相关联的下游处理单元40。因此,本发明的MISORC电路205提高了数据总线使用的效率(从而减少路由拥塞)并减少执行相同功能所需的存储器数量。
在上述示例中,用于操作仲裁电路210的时钟信号(CLK_P)的频率等于输入时钟信号CLK_1、CLK_2和CLK_N的最大频率。例如,如果输入时钟信号CLK_1、CLK_2和CLK_N分别具有1GHz、1GHz和2GHz的频率,则本地时钟信号CLK_P将具有2GHz的频率。在替代实施例中,用于操作仲裁电路210的时钟信号的频率大于输入时钟信号CLK_1、CLK_2和CLK_N的最大频率。在特定实施例中,用于操作仲裁电路210的时钟信号的频率等于输入时钟信号CLK_1、CLK_2和CLK_N的频率的总和。例如,如果输入时钟信号CLK_1、CLK_2和CLK_N分别具有1GHz、1GHz和2GHz的频率,则用于操作仲裁电路的时钟信号将具有4GHz的频率。响应于具有较高频率的时钟信号而操作仲裁电路210有利地减少了同步FIFO 2011、2012和201N中所需的入口数,从而将一些入口需求有效地传送到缓冲FIFO 220。
图2B是示出根据本发明的此类替代实施例的通信系统260的框图。图2A和图2B中类似的组件以类似的组件符号标示。因此,通信系统260包括传输代理101、102和10N(其包括流量控制电路111、112和11N)以及包括MISORC电路270、下游处理单元230和流量控制单元240的多时钟域接收代理265。MISORC电路270包括以上述方式操作的同步FIFO 2011、2012和201N、仲裁电路210以及缓冲FIFO 220。此外,MISORC电路270包括多路分解器280和数据缓冲器281。时钟分频器电路275接收输入时钟信号CLK_Q、并且作为响应,提供用于以上述方式控制K-入口缓冲FIFO 220和下游处理单元230的输出时钟信号CLK_P。时钟分频器电路275可以从接收代理265外部的源接收输入时钟信号CLK_Q。时钟分频器电路275接收输入时钟信号CLK_Q、并且作为响应,产生具有频率低于输入时钟信号CLK_Q的频率的输出时钟信号CLK_P。在一个实施例中,时钟分频器电路275将输入时钟信号除以整数值M,其中输出时钟信号CLK_P的频率是本地时钟信号CLK_P的频率的1/M。在本文描述的示例中,M=2,使得CLK_P的频率是CLK_Q的频率的一半。M的其他值是可能的。
仲裁电路210、多路分解器280和数据缓冲器281的写端口响应于CLK_Q信号而操作。假设有效数据被储存在同步FIFO 2011、2012和/或201N中,仲裁电路210在CLK_Q信号的每一个周期从同步FIFO提供J位数据值WI给多路分解器280。有利地,仲裁电路210被允许以比本地时钟信号CLK_P的频率快的时钟频率进行操作。如上所述,这可以减少同步FIFO2011、2012和201N所需的入口数。在CLK_Q信号的连续周期期间,多路分解器280连续地路由接收的数据值WI作为J位数据值WI1并且作为J位数据值WI2。在CLK_Q信号的两个连续周期期间,这两个J位数据值WI1和WI2被写入数据缓冲器281的J*2-位宽的入口。响应于CLK_P信号,此J*2-位宽的数据入口(其包括两个J位数据值WI1和WI2)被从缓冲器281读取作为数据值WI’。响应于CLK_P信号,缓冲FIFO 220储存由数据缓冲器281提供的J*2-位数据值WI’。随后,这些J*2-位数据值从缓冲FIFO 220中被读出并且响应于CLK_P信号而作为J*2-位数据值WO’被提供给下游处理单元230。
注意,通信系统260(图2B)的本地时钟信号CLK_P可以是通信系统250的本地时钟信号CLK_P的频率的一半,同时维持同一最大吞吐量T,这是因为被提供给通信系统260中的下游处理单元230的数据值的宽度是其两倍大。
图3是示出根据本发明一个实施例的图2A的接收代理200的更多细节的框图。如图3所示,同步FIFO 2011、2012和201N分别包括同步FIFO存储器3001、3002和300N,该同步FIFO存储器3001、3002和300N被耦合以分别接收J位输入数据流WD_1、WD_2和WD_N。同步FIFO2011、2012和201N进一步分别包括写控制电路3101、3102和310N,该写控制电路3101、3102和310N被耦合以分别接收分别由传输代理101、102和10N提供的写时钟信号CLK_1、CLK_2和CLK_3、以及写赋能控制信号WC_1、WC_2和WC_N。同步FIFO 2011、2012和201N进一步分别包括读控制电路3201、3202和320N,以及分别包括状态指示器电路3301、3302和330N。状态指示器电路3301、3302和330N提供分别标识同步FIFO存储器3001、3002和300N的满状态/空状态的信息。在一个实施例中,状态指示器电路3301、3302和330N提供与对应的FIFO存储器3001、3002和300N的入口相关联的读/写指针地址和/或有效位。如上所述,同步FIFO存储器3001、3002和300N分别具有S1、S2和SN入口。以上述方式,在确定同步FIFO 3001-300N中的任一个已被填充到其预定阈值入口数(ETH)时,控制逻辑341向流量控制电路240宣告后退消息(BACK-OFF)。
写控制电路3101、状态指示器电路3301和同步FIFO存储器3001的输入端口在与连接的传输代理101同一时钟域(CLK_1)中操作。类似地,写控制电路3102、状态指示器电路3302和同步FIFO存储器3002的输入端口在与连接的传输代理102同一时钟域(CLK_2)中操作。写控制电路310N、状态指示器电路330N和同步FIFO存储器300N的输入端口在与连接的传输代理10N同一时钟域(CLK_N)中操作。因此,在各自的FIFO的写赋能控制信号/时钟信号的控制下,进入的数据被写入接收FIFO。
仲裁电路210包括选择器电路340、控制逻辑电路341和仲裁器342。响应于仲裁器342提供的控制信号(1_OF_N),选择器电路340路由分别由同步FIFO存储器3001、3002和300N提供的N个数据流W_1、W_2或W_N中的一个数据流。仲裁器342响应于从状态指示器电路3301、3302和330N接收的FIFO状态信号而产生控制信号(1_OF_N)。每一个时钟周期,仲裁器342将从N个同步FIFO存储器3001、3002和300N的一个同步FIFO存储器中选择入口(如果任一个入口有效)。选择策略可以基于优先级组合的排名,如以下结合图4更详细地描述的。
控制逻辑电路341接收由状态指示器电路3301、3302和330N提供的状态信息;并且作为响应,通过分别向读控制电路3201、3202和320N发出读命令以启动对同步FIFO存储器3001、3002和300N的读存取。这些读操作在接收代理200的本地时钟域(CLK_P)中被执行。更具体地,控制逻辑341提供读赋能信号RC_1、RC_2和RC_N,以分别赋能关于读控制电路3201、3202和320N的读操作。读控制电路3201、3202、320N还接收本地时钟信号CLK_P以控制这些读操作的计时。
由选择器电路340路由的J位写数据值(WI)被提供给K-入口FIFO220,该K-入口FIFO 220包括K-入口FIFO 220缓冲FIFO存储器350、写控制电路351和读控制电路352。在选择要经由选择器电路340传送的有效入口之后,控制逻辑电路341就向写控制电路351发出写命令,这使由选择器电路340路由的写数据值WI被写入缓冲FIFO存储器350。注意,读控制电路3201、3202和320N、选择器电路340、控制逻辑341、仲裁器342和写控制电路351都在接收代理200的时钟域(CLK_P)中操作。
在将有效入口写入缓冲FIFO存储器350时,控制逻辑电路341存取相关联的同步FIFO 3001、3002或300N的读控制电路3201、3202或320N,以使此同步FIFO的读指针前进一个位置。如果相关联的状态指示器电路3301、3302或330N使用了有效位,则与写入的入口相关联的有效位无效。
下游处理单元230向读控制电路352发出读命令,从而使数据值(WO)从缓冲FIFO存储器350被读取并被提供给下游处理单元230以用于进一步处理。注意,在所示出的实施例中,下游处理单元230和读控制电路352在相同的时钟域(CLK_P)中操作。然而,在其他实施例中,下游处理单元230和读控制电路352的时钟速率可以与仲裁单元210和写控制电路351的时钟速率不同,只要进入的吞吐量的总平均值不大于下游处理单元230的最大吞吐量T。
图4是示出根据本发明一个实施例的用于操作仲裁电路210的方法的流程图400。控制逻辑341监视状态指示器电路3301、3302和330N,以确定同步FIFO存储器3001、3002和300N是否储存要传送的任何有效数据值(步骤401)。若否(步骤401,“否”分支),则不执行操作(NOP)(步骤411)。如果是,(步骤401,“是”分支),则控制逻辑341确定同步FIFO存储器3001、3002和300N中的任一个是否储存‘X’个或更多有效入口,其中X是表示预定的‘满’等级的整数(步骤402)。在一个实施例中,'X'等于1。如果同步FIFO存储器3001、3002和300N中的一个储存'X'个或更多有效入口(步骤402,“是”分支),则控制逻辑342暂时忽略储存少于'X'个有效入口的同步FIFO存储器3001、3002和300N(步骤403),并且处理继续到步骤404。若否(步骤402,“否”分支),则处理直接继续到步骤404。在步骤404,控制逻辑341确定是否赋能循环仲裁。如果是(步骤404,“是”分支),则控制逻辑341使仲裁器342能使用一组预定的循环规则来选择未被忽略的同步FIFO存储器3001、3002或300N中的一个(步骤405)。更具体地,仲裁器342提供控制信号(1_OF_N),该控制信号(1_OF_N)使选择器电路340路由由所选择的同步FIFO存储器提供的数据。然后,控制逻辑341向所选择的同步FIFO存储器3001、3002或300N的读控制电路3201、3202或320N提供读控制(赋能)信号,从而使数据值被从所选择的同步FIFO存储器读取(步骤408)。此读取的数据值经由选择器电路340被路由至缓冲FIFO350。控制逻辑341还向写控制电路351提供写控制(赋能)信号,从而使读取的数据值被写入缓冲FIFO350(步骤409)。控制逻辑341还更新与读操作相关联的状态指示器电路3301、3302或330N,以正确地表明数据值已从相关联的同步FIFO存储器3001、3002或300N被传送(步骤410)。
如果循环选择未被赋能(步骤404,“否”分支),则控制逻辑341赋能仲裁器342内的流优先级编码器(步骤406)。作为响应,仲裁器342基于被指派给同步FIFO存储器3001、3002和300N的优先级以选择未被忽略的同步FIFO存储器3001、3002或300N中的一个(步骤407)。这些优先级可以基于将数据发送到同步FIFO 3001、3002和300N的传输代理的特性而被指派。例如,以较高频率进行传输的传输代理可以被指派较高的优先级。在仲裁器342已选择了要读取的同步FIFO存储器之后,控制逻辑341(例如,通过启动对应的读控制信号RC_1、RC2或RC_N)使所选择的同步FIFO存储器被读取(步骤408)、(例如,通过启动FIFO写控制信号)使所读取的数据值被写入缓冲FIFO 350(步骤409)以及使相关的状态指示器电路被更新(步骤410)。
尽管图4的实施例描述了基于循环选择和流优先级的仲裁,但是应当理解,在其他实施例中可以使用其他/附加仲裁类型。
在图2A-图2B和图3所示的实施例中,同步FIFO 2011-201N位于缓冲FIFO 220和下游处理单元230附近。因此,在这些电路组件之间的连接不太可能阻碍与MISORC电路205无关的其他电路的连接(即,不同的电路组件之间的连接可以用硅实施、并且在上覆的多层金属互连结构中不需要大量的总线结构)。
图5示出了根据替代实施例的多时钟域通信系统550。图2A和图5中的类似组件以类似的组件符号标示。在图5的通信系统550中,传输代理101-10N彼此非常接近、并且也与同步FIFO 2011-201N和仲裁电路210非常接近,使得数据流WD_1、WD_2和WD_N在接近传输代理101-10N的位置处合并为单一数据流WI。因此,传输代理101-10N与数据总线WI之间的连接可以主要以硅实施,从而需要多层金属互连结构的最小资源来合并数据流WD_1、WD_2和WD_N以形成数据流WI。
在图5的通信系统550中,MISORC电路205的缓冲FIFO 220位于与下游处理单元230非常接近的位置(即,在接收代理500内)。这有效地将MISORC电路205分成位于传输代理101-10N附近并包括同步FIFO2011-201N和仲裁电路210的第一部分、以及位于下游处理单元230附近并包括缓冲FIFO存储器220的第二部分。
在此实施例中,接收代理200(包括K-入口缓冲FIFO 220和下游处理单元230)位于距传输代理101-10N相对长的距离处。因此,在仲裁电路210与缓冲FIFO存储器220之间存在相当长的距离。尽管从仲裁电路210到该缓冲FIFO 220存在长路径,但是在多层金属互连结构中实施的总线数量减少到一个(即,仲裁电路210与缓冲FIFO 220之间的WI总线),导致通信系统550的路由拥塞减少和较小的潜在的晶粒尺寸。
图6示出了根据另一实施例的多时钟域通信系统650。图2A和图6中的类似组件以类似的组件符号标示。在图6的通信系统650中,除去了通信系统250的缓冲FIFO 220,并且缓冲FIFO 220的功能由接收代理600的下游处理单元630内包括的存储器631实施。因此,得到的MISORC 605的一部分在下游处理单元630内实施。
图7是根据本发明的各种实施例的可以实施多输入对单输出再同步及接合(MISORC)系统的置换环形网络700的框图。在所示实施例中,置换环形网络700包括八个通信节点N0-N7以及三个双向源同步环形网络701、702和703,其中每一个都被制造在同一集成电路芯片上。环形网络701-703中的每一个环形网络用作通信信道。
通信信道701-703中的每一个包括通过双向链路(互连)连接的多个数据传送站。更具体地,通信信道701包括数据传送站A0-A7、通信信道702包括数据传送站B0-B7、并且通信信道703包括数据传送站C0-C7。通信信道701的双向链路以实线显示,该双向链路连接环中的数据传送站A0-A7。通信信道702的双向链路以虚线显示,该双向链路连接环中的该数据传送站B0-B7。通信信道703的双向链路以点虚线显示,该双向链路连接环中的该数据传送站C0-C7。双向链路允许在顺时针以及逆时针方向中的数据/时钟信号的同时传输。
通常,数据传送站A0-A7、B0-B7和C0-C7中的每一个提供赋能了通信节点N0-N7与通信信道701-703之间的传输数据的接口。
通信信道701-703中的每一个基于对应的主时钟信号来传输数据。因此,通信信道701、702和703分别响应于主时钟信号CKA、CKB以及CKC而操作。主时钟信号CKA、CKB和CKC中的每一个可以具有相同的频率或不同的频率。
通信节点N0-N7中的每一个被耦合至三个通信信道701-703的每一个通信信道中的数据传送站A0-A7、B0-B7和C0-C7中的唯一一个数据传送站。例如,通信节点N0被连接到通信信道701中的数据传送站A1、通信信道702中的数据传送站B0并且通信信道703中的数据传送站C0。注意,为清楚起见,在图7中未明确示出该通信节点N1-N7与数据传送站A0-A7、B0-B7和C0-C7之间的实体连接。
在所示实施例中,通信节点N0从数据传送站A1、B0和C0接收输入数据(以及输入时钟信号CKA、CKB和CKC)。在一个实施例中,通信节点N0包括以上结合图2和图3描述的MISORC电路205,其中分别响应于输入时钟信号CKA、CKB和CKC,数据传送站A1、B0和C0提供的输入数据分别被读入同步FIFO 2011、2012和201N。仲裁电路210控制此输入数据至缓冲FIFO 220的路由,缓冲FIFO 220然后将输入数据提供给通信节点N0内的下游处理单元230。以这种方式,本发明的MISORC 205使通信节点N0-N7中的每一个能从三个双向环形网络701-703接收输入数据。
根据本发明的另一个实施例,该数据传送站A0-A7、B0-B7和C0-C7中的每一个包括类似于MISORC电路205的MISORC电路,从而在数据传送站内于顺时针方向中接收到的数据被读入MISORC电路的一个同步FIFO中,并且在数据传送站内于逆时针方向中接收到的数据被读入MISORC电路的另一个同步FIFO。例如,响应于输入时钟信号CKB的顺时针行进版本,数据传送站B0从数据传送站B1于顺时针方向接收的数据可以被读入同步FIFO 2011。类似地,响应于输入时钟信号CKB的逆时针行进版本(其中输入时钟信号CKB的顺时针行进版本和逆时针行进版本是异步的),数据传送站B0从数据传送站B7于逆时针方向接收到的数据可以被读入同步FIFO 2012中。注意,在此实施例中,同步FIFO 201N不被使用。
在共同拥有、同时申请中的美国专利申请案序号15/816,374中更详细地描述了置换环形网络700,该申请案通过引用整体并入本文。
尽管已经结合若干实施例描述了本发明,但是应该理解,本发明不限于所揭露的实施例,而是能够进行各种修饰,这对于本领域中具有通常知识者是显而易见的。因此,本发明仅由以下权利要求限制。

Claims (23)

1.一种通信系统,包括:
多个同步先进先出(FIFO)存储器,每一个同步FIFO存储器被耦合以从对应的传输代理接收对应的输入数据流以及对应的时钟信号,其中每一个时钟信号相对于每一个其他时钟信号是异步的;
仲裁电路,所述仲裁电路响应于本地时钟信号而从所述多个同步FIFO存储器读取数据,其中所述多个同步FIFO存储器中的每一个同步FIFO存储器包括恰好足够的入口以将其对应的输入数据流的数据与所述本地时钟信号进行同步;以及
缓冲FIFO存储器,所述缓冲FIFO存储器被耦合以储存由所述仲裁电路从所述多个同步FIFO存储器读取的数据,其中缓冲FIFO响应于所述本地时钟信号而进行操作。
2.如权利要求1所述的通信系统,其特征在于,进一步包括处理单元,所述处理单元响应于所述本地时钟信号而以最大吞吐量从所述缓冲FIFO存储器检取数据。
3.如权利要求2所述的通信系统,其特征在于,其中每一个输入数据流具有小于或等于所述最大吞吐量的吞吐量。
4.如权利要求2所述的通信系统,其特征在于,进一步包括流量控制电路,所述流量控制电路控制从所述传输代理接收的输入数据流。
5.如权利要求4所述的通信系统,其特征在于,其中所述流量控制电路将所述输入数据流的平均吞吐量限制为所述最大吞吐量。
6.如权利要求1所述的通信系统,其特征在于,其中每一个时钟信号具有相同的频率。
7.如权利要求1所述的通信系统,其特征在于,其中所述多个同步FIFO存储器中的第一同步FIFO存储器被耦合以在第一双向环形网络上从第一方向接收第一输入数据流和第一时钟信号,并且其中所述多个同步FIFO存储器的第二同步FIFO存储器被耦合以在所述第一双向环形网络上从第二方向接收第二输入数据流和第二时钟信号。
8.如权利要求1所述的通信系统,其特征在于,其中所述多个同步FIFO存储器中的第一同步FIFO存储器被耦合以从第一环形网络接收第一输入数据流和第一时钟信号,并且其中所述多个同步FIFO存储器中的第二同步FIFO存储器被耦合以从第二环形网络接收第二输入数据流和第二时钟信号。
9.如权利要求1所述的通信系统,其特征在于,其中所述本地时钟信号具有至少与由所述同步FIFO存储器接收的时钟信号的最高频率一样高的频率。
10.一种通信系统,包括:
多个同步先进先出(FIFO)存储器,每一个同步FIFO存储器被耦合以接收并储存由对应的传输代理提供的数据;
仲裁电路,所述仲裁电路响应于本地时钟信号而从所述多个同步FIFO存储器读取数据,其中所述多个同步FIFO存储器中的每一个同步FIFO存储器包括由下列内容所指定的最小入口数:
将同步FIFO中储存的数据与所述本地时钟信号同步所需的入口数;
在所述传输代理的组合数据吞吐量被允许超过由所述本地时钟信号赋能的读数据吞吐量的阈值时段期间,将数据储存在所述同步FIFO中所需的入口数;
在停止数据被对应的传输代理提供给所述同步FIFO所需的流量控制响应时间期间,将数据储存在所述同步FIFO中所需的入口数;以及
在所述阈值时段以及所述流量控制响应时间期间,从所述同步FIFO读取的入口数,以及
缓冲FIFO存储器,所述缓冲FIFO存储器被耦合以储存所述仲裁电路从所述多个同步FIFO存储器读取的数据。
11.如权利要求10所述的通信系统,其特征在于,进一步包括处理单元,所述处理单元响应于所述本地时钟信号而以最大吞吐量从所述缓冲FIFO存储器检取数据。
12.如权利要求11所述的通信系统,其特征在于,其中每一个输入数据流具有小于或等于所述最大吞吐量的吞吐量。
13.如权利要求11所述的通信系统,其特征在于,进一步包括流量控制电路,所述流量控制电路控制由所述同步FIFO从所述传输代理接收的数据。
14.如权利要求13所述的通信系统,其特征在于,其中所述流量控制电路将由所述同步FIFO接收的数据的平均吞吐量限制为所述最大吞吐量。
15.如权利要求10所述的通信系统,其特征在于,其中所述多个同步FIFO存储器中的第一同步FIFO存储器被耦合以在第一双向环形网络上从第一方向接收第一输入数据流和第一时钟信号,并且其中所述多个同步FIFO存储器中的第二同步FIFO存储器被耦合以在所述第一双向环形网络上从第二方向接收第二输入数据流和第二时钟信号。
16.如权利要求10所述的通信系统,其特征在于,其中所述多个同步FIFO存储器中的第一同步FIFO存储器被耦合以从第一环形网络接收第一输入数据流和第一时钟信号,并且其中所述多个同步FIFO存储器中的第二同步FIFO存储器被耦合以从第二环形网络接收第二输入数据流和第二时钟信号。
17.一种方法,包括:
从对应的多个传输代理接收多(N)个输入数据流和对应的输入时钟信号;
响应于所述对应的输入时钟信号,将所述多个输入数据流中的每一个输入数据流储存在对应的同步FIFO存储器中;
对从每一个同步FIFO存储器读取数据进行仲裁,其中响应于本地时钟信号,从每一个同步FIFO存储器读取数据,其中所述本地时钟信号相对于输入时钟信号是异步的;
将从每一个同步FIFO存储器读取的数据储存在缓冲FIFO存储器中,其中缓冲FIFO响应于所述本地时钟信号而进行操作;以及
响应所述本地时钟信号将数据从所述缓冲FIFO存储器传送到下游处理单元。
18.如权利要求17所述的方法,其特征在于,进一步包括以最大吞吐量将数据从所述缓冲FIFO存储器传送到所述下游处理单元,其中所述多个输入数据流中的每一个输入数据流具有小于或等于所述最大吞吐量的吞吐量。
19.如权利要求18所述的方法,其特征在于,进一步包括控制所述多个输入数据流的所述吞吐量。
20.如权利要求19所述的方法,其特征在于,进一步包括将所述多个输入数据流的平均吞吐量限制为所述最大吞吐量。
21.如权利要求17所述的方法,其特征在于,其中所述多个输入时钟信号中的每一个输入时钟信号具有相同的频率。
22.如权利要求17所述的方法,其特征在于,其中第一同步FIFO存储器在第一双向环形网络上从第一方向接收第一输入数据流和第一时钟信号,并且其中第二同步FIFO存储器在所述第一双向环形网络上从第二方向接收第二输入数据流和第二时钟信号。
23.如权利要求17所述的方法,其特征在于,其中第一同步FIFO存储器从第一环形网络接收第一输入数据流和第一时钟信号,并且其中第二同步FIFO存储器从第二环形网络接收第二输入数据流和第二时钟信号。
CN201980025662.5A 2018-04-13 2019-03-29 异步多时钟域数据流接合及再同步系统和方法 Active CN111971648B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/953,237 2018-04-13
US15/953,237 US10476656B2 (en) 2018-04-13 2018-04-13 System and method for asynchronous, multiple clock domain data streams coalescing and resynchronization
PCT/US2019/024793 WO2019199490A1 (en) 2018-04-13 2019-03-29 System and method for asynchronous, multiple clock domain data streams coalescing and resynchronization

Publications (2)

Publication Number Publication Date
CN111971648A true CN111971648A (zh) 2020-11-20
CN111971648B CN111971648B (zh) 2024-06-18

Family

ID=68162190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980025662.5A Active CN111971648B (zh) 2018-04-13 2019-03-29 异步多时钟域数据流接合及再同步系统和方法

Country Status (7)

Country Link
US (1) US10476656B2 (zh)
EP (1) EP3776176B1 (zh)
CN (1) CN111971648B (zh)
CA (1) CA3096371A1 (zh)
ES (1) ES2969971T3 (zh)
TW (1) TWI759585B (zh)
WO (1) WO2019199490A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540642A (zh) * 2020-11-27 2021-03-23 山东云海国创云计算装备产业创新中心有限公司 一种多时钟域处理方法、装置、设备和介质
CN112965689A (zh) * 2021-02-26 2021-06-15 西安微电子技术研究所 一种基于源同步的分布式异步fifo数据交互方法及fifo结构
CN113360189A (zh) * 2021-06-04 2021-09-07 上海天旦网络科技发展有限公司 适用于流处理的异步优化方法、系统、装置和可读介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113612700B (zh) * 2021-08-12 2023-11-14 北京邮电大学 一种低时延零抖动的混合时间敏感流量调度方法及装置
CN113794849B (zh) * 2021-11-12 2022-02-08 深圳比特微电子科技有限公司 用于图像数据同步的装置、方法及图像采集系统
CN114448917B (zh) * 2022-04-07 2022-06-10 沐曦科技(北京)有限公司 基于多维仲裁器的数据处理系统和芯片
CN115080468B (zh) * 2022-05-12 2024-06-14 珠海全志科技股份有限公司 一种非阻塞的信息传输方法和装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030065987A1 (en) * 2001-09-28 2003-04-03 Koninklijke Philips Electronics N.V. Parallel data communication realignment of data sent in multiple groups
US6633966B1 (en) * 1998-06-16 2003-10-14 Mitsubishi Denki Kabushiki Kaisha FIFO memory having reduced scale
US7149186B1 (en) * 2001-12-20 2006-12-12 Cisco Technology, Inc. Apparatus and method for rate adaptation control
US20070036022A1 (en) * 2005-08-11 2007-02-15 Samsung Electronics Co., Ltd. Synchronizer for multi-rate input data using unified first-in-first-out memory and method thereof
CN101373424A (zh) * 2008-09-19 2009-02-25 北京中星微电子有限公司 一种异步先进先出存储器的数据读写方法、装置及系统
CN101403962A (zh) * 2008-11-13 2009-04-08 山东大学 基于fpga的异步双fifo的数据缓存方法
CN103019645A (zh) * 2013-01-08 2013-04-03 江苏涛源电子科技有限公司 Ccd信号处理电路高速数据流仲裁控制方法
CN104049909A (zh) * 2013-03-15 2014-09-17 国际商业机器公司 双异步和同步存储器系统
CN104484011A (zh) * 2014-11-25 2015-04-01 上海高性能集成电路设计中心 一种分布控制双时钟异步发送、接收模块及fifo装置
CN105320490A (zh) * 2014-07-31 2016-02-10 德克萨斯仪器股份有限公司 用于异步fifo电路的方法和设备
US20180059183A1 (en) * 2015-04-16 2018-03-01 Renesas Electronics Corporation Semiconductor device and scan test method

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4501021A (en) 1982-05-03 1985-02-19 General Signal Corporation Fiber optic data highway
DE69832691D1 (de) 1997-02-17 2006-01-12 Comm & Control Electronics Ltd Lokales kommunikationssystem
US6657969B1 (en) 1999-06-29 2003-12-02 Cisco Technology, Inc. Generation of synchronous transport signal data used for network protection operation
US6539488B1 (en) 1999-11-30 2003-03-25 Agere Systems Inc. System with a plurality of media access control circuits with a shared memory for storing data and synchronizing data from a clock domain to a host clock domain
US6992975B1 (en) 2000-08-15 2006-01-31 Cisco Technology, Inc. Multiple ring support within a single network element
US7509403B1 (en) 2000-09-28 2009-03-24 Alcatel-Lucent Usa Inc. Method and apparatus for SONET/SDH ring load balancing
US7356030B2 (en) * 2000-11-17 2008-04-08 Foundry Networks, Inc. Network switch cross point
US7212490B1 (en) 2001-07-06 2007-05-01 Cisco Technology, Inc. Dynamic load balancing for dual ring topology networks
ITMI20012088A1 (it) 2001-10-10 2003-04-10 Cit Alcatel Metodo per propagare l'informazione di guasto in una rete rpr e relativo tipo di pacchetto rpr
CA2467404A1 (en) 2001-11-15 2003-05-30 Visto Corporation System and methods for asychronous synchronization
JP2004193686A (ja) * 2002-12-06 2004-07-08 Nec Access Technica Ltd カメラ付き携帯端末
US7710878B1 (en) 2003-01-10 2010-05-04 Verizon Laboratories Inc. Method and system for allocating traffic demands in a ring network
US20070255874A1 (en) * 2006-04-28 2007-11-01 Jennings Kevin F System and method for target device access arbitration using queuing devices
US8179787B2 (en) 2009-01-27 2012-05-15 Smsc Holding S.A.R.L. Fault tolerant network utilizing bi-directional point-to-point communications links between nodes
US20100268977A1 (en) * 2009-04-17 2010-10-21 Himax Media Solutions, Inc. Method and apparatus for accessing memory units
CN102253916B (zh) * 2010-05-21 2013-09-18 淮阴工学院 同异步转换的双端双通道fifo
US8713277B2 (en) * 2010-06-01 2014-04-29 Apple Inc. Critical word forwarding with adaptive prediction
US8352774B2 (en) 2010-06-23 2013-01-08 King Fahd University Of Petroleum And Minerals Inter-clock domain data transfer FIFO circuit
CN103026349B (zh) * 2010-07-16 2016-04-06 拉迈亚高级研究院 数据接口电路
US8713221B1 (en) * 2010-12-01 2014-04-29 Juniper Networks, Inc. Rate controlled first in first out (FIFO) queues for clock domain crossing
US9552619B2 (en) * 2012-08-08 2017-01-24 Megachips Corporation Image processing apparatus and image processing interface circuit
US9292456B2 (en) * 2013-09-16 2016-03-22 Freescale Semiconductor, Inc. System and method for data synchronization across digital device interfaces

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633966B1 (en) * 1998-06-16 2003-10-14 Mitsubishi Denki Kabushiki Kaisha FIFO memory having reduced scale
US20030065987A1 (en) * 2001-09-28 2003-04-03 Koninklijke Philips Electronics N.V. Parallel data communication realignment of data sent in multiple groups
US7149186B1 (en) * 2001-12-20 2006-12-12 Cisco Technology, Inc. Apparatus and method for rate adaptation control
US20070036022A1 (en) * 2005-08-11 2007-02-15 Samsung Electronics Co., Ltd. Synchronizer for multi-rate input data using unified first-in-first-out memory and method thereof
CN101373424A (zh) * 2008-09-19 2009-02-25 北京中星微电子有限公司 一种异步先进先出存储器的数据读写方法、装置及系统
CN101403962A (zh) * 2008-11-13 2009-04-08 山东大学 基于fpga的异步双fifo的数据缓存方法
CN103019645A (zh) * 2013-01-08 2013-04-03 江苏涛源电子科技有限公司 Ccd信号处理电路高速数据流仲裁控制方法
CN104049909A (zh) * 2013-03-15 2014-09-17 国际商业机器公司 双异步和同步存储器系统
CN105320490A (zh) * 2014-07-31 2016-02-10 德克萨斯仪器股份有限公司 用于异步fifo电路的方法和设备
CN104484011A (zh) * 2014-11-25 2015-04-01 上海高性能集成电路设计中心 一种分布控制双时钟异步发送、接收模块及fifo装置
US20180059183A1 (en) * 2015-04-16 2018-03-01 Renesas Electronics Corporation Semiconductor device and scan test method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540642A (zh) * 2020-11-27 2021-03-23 山东云海国创云计算装备产业创新中心有限公司 一种多时钟域处理方法、装置、设备和介质
CN112540642B (zh) * 2020-11-27 2023-09-05 山东云海国创云计算装备产业创新中心有限公司 一种多时钟域处理方法、装置、设备和介质
CN112965689A (zh) * 2021-02-26 2021-06-15 西安微电子技术研究所 一种基于源同步的分布式异步fifo数据交互方法及fifo结构
CN112965689B (zh) * 2021-02-26 2023-05-09 西安微电子技术研究所 一种基于源同步的分布式异步fifo数据交互方法及fifo结构
CN113360189A (zh) * 2021-06-04 2021-09-07 上海天旦网络科技发展有限公司 适用于流处理的异步优化方法、系统、装置和可读介质

Also Published As

Publication number Publication date
TW201944258A (zh) 2019-11-16
EP3776176B1 (en) 2023-11-08
ES2969971T3 (es) 2024-05-23
CN111971648B (zh) 2024-06-18
WO2019199490A1 (en) 2019-10-17
EP3776176A1 (en) 2021-02-17
US20190319775A1 (en) 2019-10-17
TWI759585B (zh) 2022-04-01
EP3776176A4 (en) 2021-12-29
US10476656B2 (en) 2019-11-12
CA3096371A1 (en) 2019-10-17

Similar Documents

Publication Publication Date Title
CN111971648B (zh) 异步多时钟域数据流接合及再同步系统和方法
US8352774B2 (en) Inter-clock domain data transfer FIFO circuit
US4922244A (en) Queueing protocol
US10027433B2 (en) Multiple clock domains in NoC
EP3545424B1 (en) Permutated ring network
JP4808513B2 (ja) システムオンチップの大域的非同期通信アーキテクチャ
US8149979B2 (en) Method and apparatus for handling of clock information in serial link ports
JP2008532169A (ja) 共有されたリソースを調停するための電子装置及び方法
US8503482B2 (en) Interconnects using self-timed time-division multiplexed bus
CN110546922B (zh) 环形网络
US7426632B2 (en) Clock distribution for interconnect structures
CN114679423B (zh) 一种面向流控机制的无死锁可扩展互连裸芯架构
US7861018B2 (en) System for transmitting data between transmitter and receiver modules on a channel provided with a flow control link
US7076680B1 (en) Method and apparatus for providing skew compensation using a self-timed source-synchronous network

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant