专利名称:串行互联多通道的对齐和纠偏的利记博彩app
技术领域:
本发明通常涉及高速数据通信,具体地,涉及减小用于接收、 串并转换、对齐高速串行数据的多个数据流的电路的复杂性。
背景技术:
半导体生产技术的发展产生了高度集成电路,其包含百万个晶 体管以及多种其他元件和互连。由前述发展产生的集成电路以相对低 的价格提供了重要的电气性能。这些发展已经被集成在数字集成电路 和模拟集成电路中,这些发展已经导致了非常多的消费电子产品的产 生,包括其中在多个集成电路或模块之间需要数据高速通信、或发送 的产品。
通常,通过诸如提高并行数据通信通路的数量之类的方法来满 足对增大数据发送率的需要。也就是,通常使用更宽的总线来满足对 增大数据发送率的需要。然而,这种方法有一些缺点。例如,宽并行 总线占用更多的板空间并从而导致成本的增大。另外,宽并行总线通 常要求芯片上或集成电路上有更多的引脚数,这些芯片或集成电路与 这些宽并行总线连接,反过来,这又占用更多的芯片面积,并需要更 大的封装,这两个因素都导致高成本。
另一个处理增大的数据发送速率的方法是提供较少的信号通 路,这些信号通路以更高的速度发送数据。通常,这样的安排用于发 送方的串并转换,以及接收方的并串转换。
当代的很多架构为集成电路和/或模块之间的数据通信提供了 高速串行通路来取代宽并行总线。这样的架构提供的优点包括,但不 限于,减小的引脚数量以及减小的板空间要求。
在一些例子中,为了增大有效数据发送速率,提供了多个高速 串行数据通路。遗憾的是,传统的集成了多个高速串行数据通路的系
5统受到偏移问题的影响,必须提供诸如缓冲存储器和控制逻辑之类的 额外的电路来对数据进行适当的纠偏和重新对齐。
所需要的是在集成电路和/或模块之间提供高速串行数据通信 的方法和设备,其减小或消除了对用于纠偏和/或重新对齐的缓冲存 储器和控制逻辑的需要。
发明内容
根据本发明,提供了用于在发送器和接收器之间沿多个串行链 路或通道进行数据通信的方法和设备,其使发送器以下述方式沿多个 串行链路中的每一条发送串行位组确保每个组的首位以正确的顺序 到达接收终端。
本发明的多个实施例包括声明通道间最大偏移的预算。在这样 的实施例中,在确定通道间的偏移预算之后,将要被发送的数据分成
N位的组,其中,N是任何比M承S大的合适的数,M是通道数,S 是以位时间计的预算的偏移。
只通过示例的方式,参照附图,现在对其他的特性和优点进行
描述,其中
图1是传统系统的示意框图,其包括多个在数据发送器和数据 接收器之间的串行链路,另外还示出了字节重新排序缓冲存储器,其 用于支持纠偏和重新对齐操作。
图2是根据本发明的系统的示意框图,其中,在串行链路的发
送方引入了预定的延迟,以便消除在接受方的数据重新对齐操作。 图3是图示根据本发明的方法的流程图。
具体实施例方式
通常,本发明涉及提供用于减小或消除在传统的数据接收器中 出现的纠偏和重新对齐的开销的方法和装置。具体地,通过在多个串 行链路(已知为通道)的几个不同链路的发送上引入预定量的延迟,已知数据顺序到达接收器,从而不需要进行字节重新对齐字节顺序。
这里提及的"一个实施例"、"一种实施例"或类似的系统陈 述是指结合实施例所描述的特定的特性、结构、操作或特征包含在本 发明的至少一个实施例中。从而,这里出现的这样的说法或系统陈述 并不一定指的是同一实施例。而且,在一个或多个实施例中,多个特 定的特性、结构、操作或特征可以以任何适当的方式结合在一起。
通常,在电子领域中,经常互换使用术语集成电路(IC)、半 导体器件、单片器件、微电子器件和芯片。本发明适用于所有上述器 件在该领域的通常理解。
当串行链路用于数据通信时,通常为并行的数据被转换为串行 位流,然后通过串行链路被发送。在接收终端,串行位流被转换回并 行数据,以便以并行的方式使用它。应当理解的是,互联的带宽受到 串行位流的位速率的限制。
一种用于增大由前述串行链路所提供的带宽的方法是提供多个 串行通道。对于发送器,这只不过需要在同一时间发送两个、三个、 四个或更多的位数。例如,如果有两个通道,那么可以一次发送两个 位。在每一个随后的位周期,发送另两个位。如果位被标记为
0,1,2, 3,4,5,6,7…,那么,在第一个位时间内一起发送位0和1,
在第二个位时间内一起发送2和3,以此类推。 一次发送的串行位数
通常被称为通道数。考虑四车道公路,其可以承载比二车道公路多一 倍的汽车(串行位)。
如果互联是同步的(即,数据定时与诸如时钟沿之类的某一同 步事件相关),那么,可以预期在同一同步事件下的这些位基本上在 同一时间到达接收器。然而,完全同步串行链路在频率上受到极大的 限制,这反过来限制了带宽。为了工作在更高的频率,用于驱动串行 线的电路可能要实现嵌入式同步技术,其中,串行数据以下述方式编 码接收器可以从串行数据中恢复"时钟"。在从串行数据流中恢复 时钟的情况下,可能在通道之间产生偏移。利用上述的示例,位1 可能在位0之前到达。可替换地,位0可能和位3—起到达,然后, 位2可能和位5—起到达,等等。在非常高的频率时,这可能实际上是通道间的偏移的多个位时间。为了恢复原始位流,接收器必须能够 重新对齐这些位。这种处理被称为位流纠偏。
对通道进行纠偏的通常方法是利用分别沿每个通道发送的同步 码。如果在同一时间沿每个通道发送同步码,那么接收器可以检测接 收到这些同步码间的延迟,并利用该信息来获悉如何对接收到的位流 进行纠偏。这种方法的一个缺点是接收器执行所有困难的工作。发送 器没有做任何使纠偏对接收器简单的事情。如果用昂贵的制造工艺或
者一种不是非常适合于数字逻辑的工艺(例如DR認工艺)来实现接
收器,这将是一个问题。还可以是这种情况将所有的工作推至一个 终端,导致一种比将所需的工作在发送器和接收器之间分开所实现的 设计更加复杂的设计。
本发明的多个实施例使起始器即发送器以下述方式沿每个通道 发送串行位组确保每个组(每个通道)的首位以正确的顺序到达接 收端。
本发明的多个实施例包括声明或确定通道间的最大偏移预算。 在这样的实施例中,在确定通道间的偏移预算之后,要被发送的数据
被分成N位的组,其中,N是任何比M承S大的合适的数,其中M是通 道数,S是以位时间计的预算偏移。
例如,在2个通道和5个位时间的偏移预算情况下,N必须比 10大。在该例中,16 (两个字节)会是一个好的选择。在4个通道 和5个位时间的情况下,N必须大于4*5=20,因此,也许24位(三 个字节)会是一个合适的选择。
然后,发送器捕获要被发送的数据的第一个N位,并开始在通 道0上发送这些位。将在通道1上发送接下来的N位,但要在过去 N/M个位时间之后。在每个通道上持续这种情况,直到在所有的通道 上开始发送位组。大概N/M个位时间之后(可能加一或减一,因为 N/M通常在一个整数附近),发送器在通道O上发送另一个N位组。
考虑本发明的具有两通道以及5个位时间偏移的说明性示例。 方便起见,将位数选择为N-16。沿通道0发送捕获的字节0和字节1。 随后,开始在8位周期之后的时间点,在通道1上开始发送字节2
8和字节3。 8个位时间后(即,在开始后的总的16个位时间),开始 在通道0上发送字节4和字节5。在这个例子中,在接收端,通道l 上的位可能在通道O上的位之后8个位时间到达。然而,由于5个位 时间的偏移预算,通道1的位可能在通道O上的位之后3个位时间到 达,或者可能在通道O上的位之后13个位时间到达。无论如何,通 过通道1发送的第一个N位组总是在通道0上的第一个N位组之后并 在通道0上的第二个N位组之前到达。这使得对于接收器而言,由于 保证了到达顺序,能够很容易地对这些组进行纠偏。
考虑更复杂的具有2个通道和9位的偏移预算的说明性示例。 这里假定选择N=24 (必须比2*9=18大)。第一个24位组在时间0 在通道O上开始。在12个位时间后(24/2=12),第二个24位组在 通道1上开始。在接收端,通道1的数据可能早至3个位时间(12-9) 之后到达或者晚至21个位时间(12+9)之后到达,但它总是在通道 0上发送的第一个和第二个组之间到达。
参照图3,对根据本发明的说明性过程300进行描述。在第一个 操作中,对通道间的偏移进行确定302。可以以任何合适的方式进行 这个确定,例如,发送器可以参照动态更新的表。这样的表可能布置 在发送器集成电路中,或者,它可以布置在发送器集成电路外部。可 替换地,对于特定的设计,可以表征通道间的偏移,而且,在工厂中, 可以将偏移预编程在发送器装置中。对被分在发送组中的位数N进行 确定304。如上所述,N比M》S大,其中M是通道数,S是以位时间 计的偏移。然后,从存储器中捕获306N位,这样的存储器可以指发 送缓冲存储器或存储器FIFO。可以用任何合适的存储元件来容纳被 发送的数据。然后,开始发送308捕获的数据,其中,在多个通道的 一个指定通道上发送数据。可以用任何合适的装置来指示在其上发送 的合适的通道。在一个实施例中,用指针来指示通道,然后递增310 或者更新该指针,以便它指向要在其上发送数据的下一个通道。然后, 捕获312发送数据的接下来N位。确定314自上一个发送开始是否已 经过去了 N/M个位时间。如果314的确定结果是否定的,过程300 等待确定结果变为肯定的。当314的确定结果是肯定的,确定316是否有多个数据要发送。如果没有多个数据要发送,那么,过程300
在318结束。然而,如果有多个数据要发送,控制转至步骤308,过 程300循环进行,直到适当的数据量已经被发送。
本发明的实施例可以适用于串行数据发送系统,其中,限制了 接收器的容许的复杂度。使在随后的通道上的位发送的延迟简单化, 这使一些复杂度从接收器转移至发送器,在没有显著增加发送器复杂 度的情况下,使接收器的任务更简单。
应当理解的是,本发明不局限于上述实施例,但包含所有在所 附的权利要求及其等同物范围内的任何和所有的实施例。
权利要求
1.一种用于在具有要发送的数据的发送器和接收器之间传输数据的方法(300),其中,在发射器和接收器之间布置了多个串行链路,所述方法包括步骤a)确定(302)多个串行链路间的偏移预算;b)确定(304)位数N,这里,N是比M*S大的整数,其中,M是串行链路数,S是以位时间计的偏移预算;c)捕获(306)要被发送的数据的第一个N位,并开始在多个串行链路的第一个链路上发送(308)第一个N位;以及d)捕获(312)要被发送的数据的第二个N位,这发生在开始在多个串行链路中的第一个链路上发送之后的大概N/M个位时间之后,然后,开始在多个串行链路的第二个链路上发送第二个N位。
2. 根据权利要求l所述的方法,其中,捕获第一个N位包括访 问布置在发送器中的存储器,并将第一个N位串行化。
3. 根据权利要求2所述的方法,其中,捕获第二个N位包括访 问布置在发送器中的所述存储器,并将第二个N位串行化。
4. 根据权利要求1所述的方法,还包括在接收器处的第一个N 位和第二个N位。
5. 根据权利要求1所述的方法,还包括在相继的指定通道上捕 获和发送其他的N位组,直到发送完全部要被发送的数据,发送的开 始部分被分成N / M个位时间。
6. —种发送器,其适于利用多个串行链路,其包括 分组存储器,其用于存储用于发送的分组,当访问所述分组存储器时,其产生多位输出;装置,其用以确定多个串行链路的偏移预算;装置,其用以确定位数N,其中N比M承S大,其中M是串行链路 数,S是以位时间计的偏移预算;装置,其用以捕获要被发送的数据的第一个N位,并开始在所 述多个串行链路中的第一个上发送第一个N位;以及装置,其用以捕获要被发送的数据的第二个N位,这发生在开 始在多个串行链路中的第一个链路上发送之后的大概N/M个位时间 之后,然后,开始在多个串行链路的第二个链路上发送第二个N位。
7. 根据权利要求6所述的发送器,其中,用以捕获第一个N位 的装置包括用以访问分组存储器并对第一个N位进行串行化的装置。
8. 根据权利要求7所述的发送器,其中,用以捕获第二个N位 的装置包括用以访问所述分组存储器并对第二个N位进行串行化的 装置。
9. 一种方法用以通过多个串行链路在发送器和接收器之间发送 数据(300),其包括步骤a) 确定(302)多个串行链路间的偏移;b) 确定(304)数字N,这里,N是比M水S大的数,其中,M是 串行铎路数,S是以位时间计的偏移;c) 从发送器缓冲存储器捕获(306) N位;d) 开始在串行链路指针指定的串行链路上发送捕获的N位;e) 更新(310)串行链路指针;f) 从发送器缓冲存储器捕获(312)下一个N位;g) 确定(314)从最后一个发送的开始后,是否已经过去了 N/M 个位时间;h) 确定(316)是否有多个数据要发送;i) 重复步骤(d)到(h)。
10. 根据权利要求9所述的方法,其中,确定链路间的偏移包括参照一个表。
11. 根据权利要求9所述的方法,其中,捕获N位包括从存储 器中读取数据并对数据进行串行化。
12. 根据权利要求IO所述的方法,其中,所述表布置在其上布 置有发送器的集成电路的外部。
13. 根据权利要求9所述的方法,其中,更新串行链路指针包 括递增计数器。
14. 根据权利要求9所述的方法,其中N是8的倍数。
全文摘要
提供了通过多个串行链路在发送器和接收器之间进行数据通信的方法和设备,这些链路使发送器以下述方式沿每条通道发送串行位组每个组(每条通道)的首位以正确的顺序到达接收终端。本发明的多个实施例包括声明通道之间的最大偏移的预算。在这样的实施例中,在确定通道之间的偏移预算之后,将要被发送的数据分成N位的组,其中N是任何比M*S大的合适的数,其中M是通道数,S是以位时间计的预算偏移。
文档编号H04L25/14GK101496367SQ200680040760
公开日2009年7月29日 申请日期2006年11月2日 优先权日2005年11月4日
发明者蒂姆·庞修斯 申请人:Nxp股份有限公司