专利摘要
本发明公开了一种面向板级高速传输总线的多通道延迟斜偏纠正方法及装置,方法步骤如下:预先为每一个通道增加异步FIFO队列,每个时钟节拍监测队列出口的数据,当发现COM同步符则开始计数,判断在预设条件下是否在所有异步FIFO队列的队列头同时找到COM同步符,若同时找到则判定所有通道延迟偏斜纠正成功,移除所有通道对应的队列头位置的COM同步符,同步读取所有异步FIFO队列的数据;否则判定延迟偏斜纠正失败并进行重新偏斜纠正;装置包括多个异步FIFO队列和用于控制多个异步FIFO队列进行读、写和清空数据的延迟斜偏纠正控制模块。本发明具有延迟斜偏纠正延迟开销低、纠正快速高效、硬件资源占用低的优点。
权利要求
1.一种面向板级高速传输总线的多通道延迟斜偏纠正方法,其特征在于实施步骤如下:
1)预先为板级高速传输总线的每一个通道增加一个用于对通道中接收到的数据进行时钟域转换的异步FIFO队列,所述异步FIFO队列的写入时钟为每个通道来自发送方的发送时钟,读取时钟为每个通道来自接收方的接收时钟,所述异步FIFO队列按照先入先出的顺序保存接收到的多个数据完成从发送时钟到接收时钟的时钟域转换;
2)读取各个通道的异步FIFO队列的队列头数据,每个时钟节拍监测所有通道的异步FIFO队列的队列头数据是否是作为延迟斜偏标识的COM同步符,当在任何一个通道的异步FIFO的队列头发现COM同步符,则从该COM同步符开始时钟周期计数,如果在小于或等于配置最大值的时钟周期计数时间内能够在所有异步FIFO队列的队列头找到COM同步符,则判定所有通道延迟偏斜纠正成功,移除所有通道对应的异步FIFO队列的队列头位置的COM同步符,之后同步读取所有异步FIFO队列的数据;否则进行同步超时次数计数,如果同步超时次数的值尚未超过设定阈值,则清空所有通道对应的异步FIFO队列并跳转执行步骤2)重新进行延迟纠正,否则如果同步超时次数超过设定阈值则判定延迟偏斜纠正失败。
2.根据权利要求1所述的面向板级高速传输总线的多通道延迟斜偏纠正方法,其特征在于,所述步骤2)的详细步骤如下:
2.1)建立用于控制对各个通道的异步FIFO队列进行读、写、清空操作以实现多个通道间延迟偏斜的校准的状态机,所述状态机根据接收来自各通道异步FIFO的状态信息发出对异步FIFO队列进行读、写、清空操作的控制信号,所述各通道异步FIFO的状态信息包含空闲状态、等待任意通道收到COM同步符状态、等待若干时钟周期状态、复位FIFO状态、等待所有通道COM同步符到达状态、移除COM同步符状态、超时清空FIFO状态共7个状态;初始化状态机的状态为空闲状态,初始化用于记录延迟偏斜纠正超时的同步超时次数和设定阈值;
2.2)在空闲状态下,状态机判断是否收到多通道延迟斜偏纠正使能信号,如果收到多通道延迟斜偏纠正使能信号,则状态机进入等待任意通道收到COM同步符状态并跳转执行步骤2.3);
2.3)在等待任意通道收到COM同步符状态下,状态机每个时钟节拍监测所有通道的异步FIFO队列的队列头数据,若在任何一个通道对应的异步FIFO队列的队列头数据中发现COM同步符数据,则状态机进入等待若干时钟周期状态并跳转执行步骤2.4);
2.4)在等待若干时钟周期状态下,从所述通道对应的异步FIFO队列的队列头数据中发现COM同步符数据起开始时钟周期计数,当时钟周期计数达到异步FIFO队列的深度值时,状态机进入复位FIFO状态并跳转执行步骤2.5);
2.5)在复位FIFO状态下,复位每个通道对应的异步FIFO队列,通过禁止写操作同时连续读出异步FIFO队列中的数据直到异步FIFO队列为空为止的方式清除异步FIFO队列的所有内容,当各通道的异步FIFO队列均被清空后,状态机进入等待所有通道COM同步符到达状态并跳转执行步骤2.6);
2.6)在等待所有通道COM同步符到达状态下,从任何一个通道收到COM同步符开始时钟周期计数并等待所有通道COM同步符到达,如果在小于或等于配置最大值的时钟周期计数时间内能够在所有异步FIFO队列的队列头找到COM同步符,则判定所有通道延迟偏斜纠正成功,状态机进入移除COM同步符状态并跳转执行步骤2.7);否则如果在大于配置最大值的时钟周期计数时间仍未能够在所有异步FIFO队列的队列头找到COM同步符,此时最先接收到COM同步符的异步FIFO队列已满且在下一个时钟周期将溢出,无法继续进行同步,此时判定所有通道同步超时,将同步超时次数的值加1,状态机进入超时清空FIFO状态并跳转执行步骤2.8);
2.7)在移除COM同步符状态下,在指定的时钟节拍内移除所有通道对应的异步FIFO队列的队列头位置的COM同步符,状态机进入空闲状态并跳转执行步骤2.2);
2.8)在超时清空FIFO状态下,清除每个通道对应的异步FIFO队列的所有内容,判断同步超时次数的值是否超过设定阈值,如果尚未超过设定阈值,则状态机进入等待所有通道COM同步符到达状态并跳转执行步骤2.6);如果超过设定阈值,则判定延迟偏斜纠正失败,状态机进入空闲状态并跳转执行步骤2.2)。
3.根据权利要求2所述的面向板级高速传输总线的多通道延迟斜偏纠正方法,其特征在于:所述步骤2.1)中初始化用于记录延迟偏斜纠正超时的同步超时次数和设定阈值时,同步超时次数的初始化值为0,设定阈值的初始化值为8。
4.根据权利要求3所述的面向板级高速传输总线的多通道延迟斜偏纠正方法,其特征在于:所述步骤2.7)中指定的时钟节拍为1个时钟节拍。
5.一种面向板级高速传输总线的多通道延迟斜偏纠正装置,其特征在于包括:
多个异步FIFO队列,用于对通道中接收到的数据进行时钟域转换,与板级高速传输总线的每一个通道一一对应,所述异步FIFO队列的写入时钟为每个通道来自发送方的发送时钟,读取时钟为每个通道来自接收方的接收时钟,所述异步FIFO队列按照先入先出的顺序保存接收到的多个数据完成从发送时钟到接收时钟的时钟域转换;
延迟斜偏纠正控制模块,用于读取各个通道的异步FIFO队列的队列头数据,每个时钟节拍监测所有通道的异步FIFO队列的队列头数据是否是作为延迟斜偏标识的COM同步符,当在任何一个通道的异步FIFO的队列头发现COM同步符,则从该COM同步符开始时钟周期计数,如果在小于或等于配置最大值的时钟周期计数时间内能够在所有异步FIFO队列的队列头找到COM同步符,则判定所有通道延迟偏斜纠正成功,移除所有通道对应的异步FIFO队列的队列头位置的COM同步符,之后同步读取所有异步FIFO队列的数据;否则进行同步超时次数计数,如果同步超时次数的值尚未超过设定阈值,则清空所有通道对应的异步FIFO队列并重新进行延迟纠正,否则如果同步超时次数超过设定阈值则判定延迟偏斜纠正失败。
6.根据权利要求5所述的面向板级高速传输总线的多通道延迟斜偏纠正装置,其特征在于,所述延迟斜偏纠正控制模块具体包括用于控制对各个通道的异步FIFO队列进行读、写、清空操作以实现多个通道间延迟偏斜的校准的状态机,所述状态机根据接收来自各通道异步FIFO的状态信息发出对异步FIFO队列进行读、写、清空操作的控制信号,所述各通道异步FIFO的状态信息包含空闲状态、等待任意通道收到COM同步符状态、等待若干时钟周期状态、复位FIFO状态、等待所有通道COM同步符到达状态、移除COM同步符状态、超时清空FIFO状态共7个状态;初始化状态机的状态为空闲状态,初始化用于记录延迟偏斜纠正超时的同步超时次数和设定阈值;所述状态机包括:
空闲状态执行模块,用于在空闲状态下,状态机判断是否收到多通道延迟斜偏纠正使能信号,如果收到多通道延迟斜偏纠正使能信号,则状态机进入等待任意通道收到COM同步符状态并跳转执行等待任意通道收到COM同步符状态执行模块;
等待任意通道收到COM同步符状态执行模块,用于在等待任意通道收到COM同步符状态下,状态机每个时钟节拍监测所有通道的异步FIFO队列的队列头数据,若在任何一个通道对应的异步FIFO队列的队列头数据中发现COM同步符数据,则状态机进入等待若干时钟周期状态并跳转执行等待若干时钟周期状态执行模块;
等待若干时钟周期状态执行模块,用于在等待若干时钟周期状态下,从所述通道对应的异步FIFO队列的队列头数据中发现COM同步符数据起开始时钟周期计数,当时钟周期计数达到异步FIFO队列的深度值时,状态机进入复位FIFO状态并跳转执行复位FIFO状态执行模块;
复位FIFO状态执行模块,用于在复位FIFO状态下,复位每个通道对应的异步FIFO队列,通过禁止写操作同时连续读出异步FIFO队列中的数据直到异步FIFO队列为空为止的方式清除异步FIFO队列的所有内容,当各通道的异步FIFO队列均被清空后,状态机进入等待所有通道COM同步符到达状态并跳转执行等待所有通道COM同步符到达状态执行模块;
等待所有通道COM同步符到达状态执行模块,用于在等待所有通道COM同步符到达状态下,从任何一个通道收到COM同步符开始时钟周期计数并等待所有通道COM同步符到达,如果在小于或等于配置最大值的时钟周期计数时间内能够在所有异步FIFO队列的队列头找到COM同步符,则判定所有通道延迟偏斜纠正成功,状态机进入移除COM同步符状态并跳转执行移除COM同步符状态执行模块;否则如果在大于配置最大值的时钟周期计数时间仍未能够在所有异步FIFO队列的队列头找到COM同步符,此时最先接收到COM同步符的异步FIFO队列已满且在下一个时钟周期将溢出,无法继续进行同步,此时判定所有通道同步超时,将同步超时次数的值加1,状态机进入超时清空FIFO状态并跳转执行超时清空FIFO状态执行模块;
移除COM同步符状态执行模块,用于在移除COM同步符状态下,在指定的时钟节拍内移除所有通道对应的异步FIFO队列的队列头位置的COM同步符,状态机进入空闲状态并跳转执行空闲状态执行模块;
超时清空FIFO状态执行模块,用于在超时清空FIFO状态下,清除每个通道对应的异步FIFO队列的所有内容,判断同步超时次数的值是否超过设定阈值,如果尚未超过设定阈值,则状态机进入等待所有通道COM同步符到达状态并跳转执行等待所有通道COM同步符到达状态执行模块;如果超过设定阈值,则判定延迟偏斜纠正失败,状态机进入空闲状态并跳转执行空闲状态执行模块。
7.根据权利要求6所述的面向板级高速传输总线的多通道延迟斜偏纠正装置,其特征在于:所述状态机初始化用于记录延迟偏斜纠正超时的同步超时次数和设定阈值时,同步超时次数的初始化值为0,设定阈值的初始化值为8。
8.根据权利要求7所述的面向板级高速传输总线的多通道延迟斜偏纠正装置,其特征在于:所述移除COM同步符状态执行模块指定的时钟节拍为1个时钟节拍。
说明书
技术领域
本发明涉及板级高速传输总线延迟和带宽优化技术领域,具体涉及一种面向板级高速传输总线的多通道延迟斜偏纠正方法及装置。
背景技术
随着高性能服务器和超大规模计算机的发展,系统设计者对板级高速传输总线的要求越来越高,如何使芯片间的数据传输延迟更小、带宽更高是需要解决的重要问题。板级高速传输总线目前主要分为三类:一类是基于源同步技术和上下沿采样技术的并行传输总线,其典型代表是PCI总线、DDR总线、DDR2总线、DDR3总线和DDR4总线;另一类是基于时钟编解码技术的串行传输总线,其典型代表是以太网总线和InfiniBand总线;第三类是既有串行总线特点又有并行总线特点的新型总线,典型代表为PCI-Express总线、AMD的HyperTransport总线和Intel的QPI总线。传统并行总线技术采用单端(single-end)信号线传输数据,一根时钟信号线与若干根并行的数据信号线同时从发送方传输信号到接收方,接收方使用时钟信号控制读数据信号进行采样,当传输频率提高到一定程度后,由于数据信号线之间存在延迟偏斜,导致数据采样窗口越来也越小,因此,传输频率和时钟信号能够控制的数据信号线的位数均受到限制,从而限制了并行总线带宽的提高。串行数据传输方式采用差分信号串行传输数据,传输线少,抗干扰能力强,因此可以使用更高的频率进行数据传输,通过提高传输频率提高了数据传输带宽,缺点是时钟编解码过程需要额外的延迟开销。
为了满足板级数据传输越来越高的带宽要求,将多组并行总线或者差分串行总线再次并行使用,每一组作为一个通道(lane),多个通道以并行方式传输数据,能够实现更高的带宽。以主流的板级数据传输总线为例:高位宽的并行总线在具体实现时通常被分为多个组,每个组包含一个独立的时钟信号和一组并行数据线,这一组信号被称作一个通道,多个组之间采用多通道并行的方式传输数据;PCI-Express总线中每根数据传输线采用差分信号串行传输数据,时钟信号通过时钟编解码技术同数据共享一根数据线,因此一根差分数据线就是一个通道,多根传输线即多个通道能够并行传输数据;HyperTransport总线中每根传输数据线采用差分信号方式串行传输数据,但是采用独立的源同步时钟线传输时钟,因此时钟线与差分数据线一起构成一个通道,同样采用多根传输线实现多通道并行传输数据。综上,多通道传输技术已经作为提高板级总线传输带宽的有效方式被广泛使用。
在板级高速传输总线中采用多通道技术会遇到通道间的延迟偏斜(skew)问题。其产生原因是:每个通道上都有其各自的延迟,这些延迟包括芯片封装时本身管腿的延迟以及在PCB上的传输延迟等,在芯片封装及PCB设计时很有可能造成各个通道上的延迟不同,另外为了降低封装和PCB连线设计的复杂度,也需要通道之间能够容忍一定程度的延迟差异,一般将不同通道之间的延迟差称作通道延迟偏斜。在通道延迟偏斜的影响下,接收端从不同通道接收到的数据无法正常的按照发送的节拍拼装,造成各通道数据不同步。
当前解决多通道间延迟偏斜问题的装置通常采用先做时钟域同步,再做延迟偏斜纠正的方式。该方式的原理是:首先,不论是采用独立时钟信号方式还是采用时钟编解码方式,各通道在接收方用于数据采样的时钟各不相同,每个通道使用自己的发送时钟进行数据接收采样。接收方为了能够将各通道上的数据同步,首先需要对各通道接收到的数据进行时钟域转换,每个通道完成各自发送时钟域到接收时钟域的数据信号的时钟域转换;其次,经过时钟域转换的数据信号仍并不能直接合并在一起构成接收数据,因为各通道延迟不同、时钟域转换的时间也不同,造成转换后的各通道数据之间存在延迟偏斜,需要进行延迟纠正,确保在发送方同时进入到各通道的数据能够在接收方同时收到,这样合并出的数据才与发送方发送的数据完全一致。传统的多通道间延迟偏斜纠正装置分为两部分:第一部分为每个通道拥有一个异步FIFO队列,用于时钟域转换电路;第二部分为每个通道拥有一组级联的寄存器,用于实现线间传输延迟偏斜纠正电路,假设总线共有8个通道,通道间延迟偏斜最大为6个时钟周期,则延迟偏斜纠正电路共需要8×6=48个寄存器。传统的通道间延迟偏斜纠正装置的缺点是异步时钟域转换电路和链路延迟偏斜纠正电路是各自分离的,一方面由于延迟是两个独立电路的延迟之和,因此延迟较长,另一方面由于两个电路用分别用到了存储器和级联的寄存器电路,特别是级联的寄存器电路的数目多,因此硬件逻辑资源占用较高。
发明内容
本发明要解决的技术问题是提供一种延迟斜偏纠正延迟开销低、纠正快速高效、硬件资源占用低的面向板级高速传输总线的多通道延迟斜偏纠正方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向板级高速传输总线的多通道延迟斜偏纠正方法,其实施步骤如下:
1)预先为板级高速传输总线的每一个通道增加一个用于对通道中接收到的数据进行时钟域转换的异步FIFO队列,所述异步FIFO队列的写入时钟为每个通道来自发送方的发送时钟,读取时钟为每个通道来自接收方的接收时钟,所述异步FIFO队列按照先入先出的顺序保存接收到的多个数据完成从发送时钟到接收时钟的时钟域转换;
2)读取各个通道的异步FIFO队列的队列头数据,每个时钟节拍监测所有通道的异步FIFO队列的队列头数据是否是作为延迟斜偏标识的COM同步符,当在任何一个通道的异步FIFO的队列头发现COM同步符,则从该COM同步符开始时钟周期计数,如果在小于或等于配置最大值的时钟周期计数时间内能够在所有异步FIFO队列的队列头找到COM同步符,则判定所有通道延迟偏斜纠正成功,移除所有通道对应的异步FIFO队列的队列头位置的COM同步符,之后同步读取所有异步FIFO队列的数据;否则进行同步超时次数计数,如果同步超时次数的值尚未超过设定阈值,则清空所有通道对应的异步FIFO队列并跳转执行步骤2)重新进行延迟纠正,否则如果同步超时次数超过设定阈值则判定延迟偏斜纠正失败。
进一步地,所述步骤2)的详细步骤如下:
2.1)建立用于控制对各个通道的异步FIFO队列进行读、写、清空操作以实现多个通道间延迟偏斜的校准的状态机,所述状态机根据接收来自各通道异步FIFO的状态信息发出对异步FIFO队列进行读、写、清空操作的控制信号,所述各通道异步FIFO的状态信息包含空闲状态、等待任意通道收到COM同步符状态、等待若干时钟周期状态、复位FIFO状态、等待所有通道COM同步符到达状态、移除COM同步符状态、超时清空FIFO状态共7个状态;初始化状态机的状态为空闲状态,初始化用于记录延迟偏斜纠正超时的同步超时次数和设定阈值;
2.2)在空闲状态下,状态机判断是否收到多通道延迟斜偏纠正使能信号,如果收到多通道延迟斜偏纠正使能信号,则状态机进入等待任意通道收到COM同步符状态并跳转执行步骤2.3);
2.3)在等待任意通道收到COM同步符状态下,状态机每个时钟节拍监测所有通道的异步FIFO队列的队列头数据,若在任何一个通道对应的异步FIFO队列的队列头数据中发现COM同步符数据,则状态机进入等待若干时钟周期状态并跳转执行步骤2.4);
2.4)在等待若干时钟周期状态下,从所述通道对应的异步FIFO队列的队列头数据中发现COM同步符数据起开始时钟周期计数,当时钟周期计数达到异步FIFO队列的深度值时,状态机进入复位FIFO状态并跳转执行步骤2.5);
2.5)在复位FIFO状态下,复位每个通道对应的异步FIFO队列,通过禁止写操作同时连续读出异步FIFO队列中的数据直到异步FIFO队列为空为止的方式清除异步FIFO队列的所有内容,当各通道的异步FIFO队列均被清空后,状态机进入等待所有通道COM同步符到达状态并跳转执行步骤2.6);
2.6)在等待所有通道COM同步符到达状态下,从任何一个通道收到COM同步符开始时钟周期计数并等待所有通道COM同步符到达,如果在小于或等于配置最大值的时钟周期计数时间内能够在所有异步FIFO队列的队列头找到COM同步符,则判定所有通道延迟偏斜纠正成功,状态机进入移除COM同步符状态并跳转执行步骤2.7);否则如果在大于配置最大值的时钟周期计数时间仍未能够在所有异步FIFO队列的队列头找到COM同步符,此时最先接收到COM同步符的异步FIFO队列已满且在下一个时钟周期将溢出,无法继续进行同步,此时判定所有通道同步超时,将同步超时次数的值加1,状态机进入超时清空FIFO状态并跳转执行步骤2.8);
2.7)在移除COM同步符状态下,在指定的时钟节拍内移除所有通道对应的异步FIFO队列的队列头位置的COM同步符,状态机进入空闲状态并跳转执行步骤2.2);
2.8)在超时清空FIFO状态下,清除每个通道对应的异步FIFO队列的所有内容,判断同步超时次数的值是否超过设定阈值,如果尚未超过设定阈值,则状态机进入等待所有通道COM同步符到达状态并跳转执行步骤2.6);如果超过设定阈值,则判定延迟偏斜纠正失败,状态机进入空闲状态并跳转执行步骤2.2)。
进一步地,所述步骤2.1)中初始化用于记录延迟偏斜纠正超时的同步超时次数和设定阈值时,同步超时次数的初始化值为0,设定阈值的初始化值为8。
进一步地,所述步骤2.7)中指定的时钟节拍为1个时钟节拍。
本发明还提供一种面向板级高速传输总线的多通道延迟斜偏纠正装置,包括:
多个异步FIFO队列,用于对通道中接收到的数据进行时钟域转换,与板级高速传输总线的每一个通道一一对应,所述异步FIFO队列的写入时钟为每个通道来自发送方的发送时钟,读取时钟为每个通道来自接收方的接收时钟,所述异步FIFO队列按照先入先出的顺序保存接收到的多个数据完成从发送时钟到接收时钟的时钟域转换;
延迟斜偏纠正控制模块,用于读取各个通道的异步FIFO队列的队列头数据,每个时钟节拍监测所有通道的异步FIFO队列的队列头数据是否是作为延迟斜偏标识的COM同步符,当在任何一个通道的异步FIFO的队列头发现COM同步符,则从该COM同步符开始时钟周期计数,如果在小于或等于配置最大值的时钟周期计数时间内能够在所有异步FIFO队列的队列头找到COM同步符,则判定所有通道延迟偏斜纠正成功,移除所有通道对应的异步FIFO队列的队列头位置的COM同步符,之后同步读取所有异步FIFO队列的数据;否则进行同步超时次数计数,如果同步超时次数的值尚未超过设定阈值,则清空所有通道对应的异步FIFO队列并重新进行延迟纠正,否则如果同步超时次数超过设定阈值则判定延迟偏斜纠正失败。
进一步地,所述延迟斜偏纠正控制模块具体包括用于控制对各个通道的异步FIFO队列进行读、写、清空操作以实现多个通道间延迟偏斜的校准的状态机,所述状态机根据接收来自各通道异步FIFO的状态信息发出对异步FIFO队列进行读、写、清空操作的控制信号,所述各通道异步FIFO的状态信息包含空闲状态、等待任意通道收到COM同步符状态、等待若干时钟周期状态、复位FIFO状态、等待所有通道COM同步符到达状态、移除COM同步符状态、超时清空FIFO状态共7个状态;初始化状态机的状态为空闲状态,初始化用于记录延迟偏斜纠正超时的同步超时次数和设定阈值;所述状态机包括:
空闲状态执行模块,用于在空闲状态下,状态机判断是否收到多通道延迟斜偏纠正使能信号,如果收到多通道延迟斜偏纠正使能信号,则状态机进入等待任意通道收到COM同步符状态并跳转执行等待任意通道收到COM同步符状态执行模块;
等待任意通道收到COM同步符状态执行模块,用于在等待任意通道收到COM同步符状态下,状态机每个时钟节拍监测所有通道的异步FIFO队列的队列头数据,若在任何一个通道对应的异步FIFO队列的队列头数据中发现COM同步符数据,则状态机进入等待若干时钟周期状态并跳转执行等待若干时钟周期状态执行模块;
等待若干时钟周期状态执行模块,用于在等待若干时钟周期状态下,从所述通道对应的异步FIFO队列的队列头数据中发现COM同步符数据起开始时钟周期计数,当时钟周期计数达到异步FIFO队列的深度值时,状态机进入复位FIFO状态并跳转执行复位FIFO状态执行模块;
复位FIFO状态执行模块,用于在复位FIFO状态下,复位每个通道对应的异步FIFO队列,通过禁止写操作同时连续读出异步FIFO队列中的数据直到异步FIFO队列为空为止的方式清除异步FIFO队列的所有内容,当各通道的异步FIFO队列均被清空后,状态机进入等待所有通道COM同步符到达状态并跳转执行等待所有通道COM同步符到达状态执行模块;
等待所有通道COM同步符到达状态执行模块,用于在等待所有通道COM同步符到达状态下,从任何一个通道收到COM同步符开始时钟周期计数并等待所有通道COM同步符到达,如果在小于或等于配置最大值的时钟周期计数时间内能够在所有异步FIFO队列的队列头找到COM同步符,则判定所有通道延迟偏斜纠正成功,状态机进入移除COM同步符状态并跳转执行移除COM同步符状态执行模块;否则如果在大于配置最大值的时钟周期计数时间仍未能够在所有异步FIFO队列的队列头找到COM同步符,此时最先接收到COM同步符的异步FIFO队列已满且在下一个时钟周期将溢出,无法继续进行同步,此时判定所有通道同步超时,将同步超时次数的值加1,状态机进入超时清空FIFO状态并跳转执行超时清空FIFO状态执行模块;
移除COM同步符状态执行模块,用于在移除COM同步符状态下,在指定的时钟节拍内移除所有通道对应的异步FIFO队列的队列头位置的COM同步符,状态机进入空闲状态并跳转执行空闲状态执行模块;
超时清空FIFO状态执行模块,用于在超时清空FIFO状态下,清除每个通道对应的异步FIFO队列的所有内容,判断同步超时次数的值是否超过设定阈值,如果尚未超过设定阈值,则状态机进入等待所有通道COM同步符到达状态并跳转执行等待所有通道COM同步符到达状态执行模块;如果超过设定阈值,则判定延迟偏斜纠正失败,状态机进入空闲状态并跳转执行空闲状态执行模块。
进一步地,所述状态机初始化用于记录延迟偏斜纠正超时的同步超时次数和设定阈值时,同步超时次数的初始化值为0,设定阈值的初始化值为8。
进一步地,所述移除COM同步符状态执行模块指定的时钟节拍为1个时钟节拍。
本发明面向板级高速传输总线的多通道延迟斜偏纠正方法具有下述技术效果:
1、本发明设计了多功能的异步FIFO队列,异步FIFO队列具有两个主要功能,一个功能是对通道中接收到的数据进行时钟域转换,异步FIFO队列的写入时钟为每个通道来自发送方的发送时钟,读取时钟为每个通道来自接收方的接收时钟;另外一个功能是按照先入先出的顺序保存多个接收到的数据,在基于状态的控制下,通过对FIFO队列进行读、写、清空操作,实现多个通道间延迟偏斜的校准,通过异步FIFO队列代替了传统的延迟偏斜纠正装置中单一功能的异步FIFO队列和级联的寄存器,将传统方法中先进行时钟域转换再进行延迟校准的两个步骤合并成一个步骤,接收方从各通道开始收到数据到获得对齐的接收数据的延迟仅为各通道中最慢的异步FIFO队列的时钟域转换时间,节省了传统方法中专门用于进行延迟偏斜纠正的级联的寄存器逻辑额外的延迟开销,最多节省的时钟周期数为各通道的最大延迟偏斜时钟周期数。
2、本发明通过设计了异步FIFO队列,通过异步FIFO队列对通道中接收到的数据进行时钟域转换,异步FIFO队列的写入时钟为每个通道来自发送方的发送时钟,读取时钟为每个通道来自接收方的接收时钟,将传统延迟偏斜纠正装置中仅用于做时钟域转换的异步FIFO队列和仅用于进行延迟偏斜纠正的级联的寄存器合二为一,不仅能够降低延迟,还避免了硬件逻辑资源的浪费。以8通道的总线为例,按照异步FIFO队列深度至少为3、通道间延迟偏斜最大为6计算,传统延迟偏斜纠正装置需要8×3=24个寄存器用于时钟域转换,需要8×6=48个寄存器用于延迟偏斜纠正,而本发明只需要为每个通道设计6深度的异步FIFO队列就可以完成时钟域转换和延迟偏斜纠正,仅需要8×6=48个寄存器,比传统方法节省了三分之一的寄存器资源。
本发明面向板级高速传输总线的多通道延迟斜偏纠正装置为与本发明面向板级高速传输总线的多通道延迟斜偏纠正方法对应的装置,因此也就有本发明面向板级高速传输总线的多通道延迟斜偏纠正方法相同的技术效果,故在此不再赘述。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例方法中状态机的状态转换示意图。
图3为本发明实施例装置的基本流程示意图。
具体实施方式
如图1所示,本实施例面向板级高速传输总线的多通道延迟斜偏纠正方法的步骤如下:
1)预先为板级高速传输总线的每一个通道增加一个用于对通道中接收到的数据进行时钟域转换的异步FIFO队列,异步FIFO队列的写入时钟为每个通道来自发送方的发送时钟,读取时钟为每个通道来自接收方的接收时钟,异步FIFO队列按照先入先出的顺序保存接收到的多个数据完成从发送时钟到接收时钟的时钟域转换;
2)读取各个通道的异步FIFO队列的队列头数据,每个时钟节拍监测所有通道的异步FIFO队列的队列头数据是否是作为延迟斜偏标识的COM同步符,当在任何一个通道的异步FIFO的队列头发现COM同步符,则从该COM同步符开始时钟周期计数,如果在小于或等于配置最大值的时钟周期计数时间内能够在所有异步FIFO队列的队列头找到COM同步符,则判定所有通道延迟偏斜纠正成功,移除所有通道对应的异步FIFO队列的队列头位置的COM同步符,之后同步读取所有异步FIFO队列的数据;否则进行同步超时次数计数,如果同步超时次数的值尚未超过设定阈值,则清空所有通道对应的异步FIFO队列并跳转执行步骤2)重新进行延迟纠正,否则如果同步超时次数超过设定阈值则判定延迟偏斜纠正失败。
参见图2,本实施例步骤2)的详细步骤如下:
2.1)建立用于控制对各个通道的异步FIFO队列进行读、写、清空操作以实现多个通道间延迟偏斜的校准的状态机,状态机根据接收来自各通道异步FIFO的状态信息发出对异步FIFO队列进行读、写、清空操作的控制信号,各通道异步FIFO的状态信息包含空闲状态(IDLE)、等待任意通道收到COM同步符状态(WAIT_COM_IN_ANY_LANE)、等待若干时钟周期状态(WAIT_SEVERAL_CYCLES)、复位FIFO状态(RST_FIFO)、等待所有通道COM同步符到达状态(WAIT_ALL_COM_DONE)、移除COM同步符状态(REMOVE_COM)、超时清空FIFO状态(CLR_FIFO_FOR_TIMETOUT)共7个状态;初始化状态机的状态为空闲状态,初始化用于记录延迟偏斜纠正超时的同步超时次数和设定阈值;本实施例中,步骤2.1)中初始化用于记录延迟偏斜纠正超时的同步超时次数和设定阈值时,同步超时次数的初始化值为0,设定阈值的初始化值为8。
2.2)在空闲状态(IDLE)下,状态机判断是否收到多通道延迟斜偏纠正使能信号,如果收到多通道延迟斜偏纠正使能信号,则状态机进入等待任意通道收到COM同步符状态并跳转执行步骤2.3)。
2.3)在等待任意通道收到COM同步符状态(WAIT_COM_IN_ANY_LANE)下,状态机每个时钟节拍监测所有通道的异步FIFO队列的队列头数据,若在任何一个通道对应的异步FIFO队列的队列头数据中发现COM同步符数据,则状态机进入等待若干时钟周期状态并跳转执行步骤2.4)。
2.4)在等待若干时钟周期状态(WAIT_SEVERAL_CYCLES)下,从通道对应的异步FIFO队列的队列头数据中发现COM同步符数据起开始时钟周期计数,当时钟周期计数达到异步FIFO队列的深度值时,状态机进入复位FIFO状态并跳转执行步骤2.5)。
2.5)在复位FIFO状态(RST_FIFO)下,复位每个通道对应的异步FIFO队列,通过禁止写操作同时连续读出异步FIFO队列中的数据直到异步FIFO队列为空为止的方式清除异步FIFO队列的所有内容,当各通道的异步FIFO队列均被清空后,状态机进入等待所有通道COM同步符到达状态并跳转执行步骤2.6)。
2.6)在等待所有通道COM同步符到达状态(WAIT_ALL_COM_DONE)下,从任何一个通道收到COM同步符开始时钟周期计数并等待所有通道COM同步符到达,如果在小于或等于配置最大值的时钟周期计数时间内能够在所有异步FIFO队列的队列头找到COM同步符,则判定所有通道延迟偏斜纠正成功,状态机进入移除COM同步符状态并跳转执行步骤2.7);否则如果在大于配置最大值的时钟周期计数时间仍未能够在所有异步FIFO队列的队列头找到COM同步符,此时最先接收到COM同步符的异步FIFO队列已满且在下一个时钟周期将溢出,无法继续进行同步,此时判定所有通道同步超时,将同步超时次数的值加1,状态机进入超时清空FIFO状态并跳转执行步骤2.8)。
2.7)在移除COM同步符状态(REMOVE_COM)下,在指定的时钟节拍内移除所有通道对应的异步FIFO队列的队列头位置的COM同步符,状态机进入空闲状态并跳转执行步骤2.2);本实施例中,步骤2.7)中指定的时钟节拍为1个时钟节拍。
2.8)在超时清空FIFO状态(CLR_FIFO_FOR_TIMETOUT)下,清除每个通道对应的异步FIFO队列的所有内容,判断同步超时次数的值是否超过设定阈值,如果尚未超过设定阈值,则状态机进入等待所有通道COM同步符到达状态并跳转执行步骤2.6);如果超过设定阈值,则判定延迟偏斜纠正失败,状态机进入空闲状态并跳转执行步骤2.2)。
参见图2,本实施例中状态机对异步FIFO队列进行读、写、清空操作共包含前述步骤2.2)~2.8)提及的7个状态:空闲状态(IDLE)、等待任意通道收到COM同步符状态(WAIT_COM_IN_ANY_LANE)、等待若干时钟周期状态(WAIT_SEVERAL_CYCLES)、复位FIFO状态(RST_FIFO)等待所有通道COM同步符到达状态(WAIT_ALL_COM_DONE)、移除COM同步符状态(REMOVE_COM)、超时清空FIFO状态(CLR_FIFO_FOR_TIMETOUT)。
(a)空闲状态(IDLE)。空闲状态是状态机的初始状态,当系统复位时,将状态机置于该状态,当延迟偏斜纠正成功后,最终也会回到该状态。
(b)等待任意通道收到COM同步符状态(WAIT_COM_IN_ANY_LANE)。等待任意通道收到COM同步符状态用于等待任何一个通道的异步FIFO队列中收到COM同步符。
(c)等待若干时钟周期状态(WAIT_SEVERAL_CYCLES)。等待若干时钟周期状态用于从任何一个通道的异步FIFO队列中收到COM同步符起,开始时钟周期计数,当计数值达到接收异步FIFO队列的深度后,等待结束,进入下一状态,该状态的目的是让所有通道上的第一批COM同步符发送完毕,正式的链路偏斜纠正操作将从第二批COM同步符开始,计数器的值为异步FIFO队列的深度。
(d)复位FIFO状态(RST_FIFO)复位FIFO用于复位每个通道对应的多功能异步FIFO队列,清除其中的所有内容,清空数据的操作为:禁止写操作、同时连续读出这些FIFO中的数据直到FIFO空为止。
(e)等待所有通道COM同步符到达状态(WAIT_ALL_COM_DONE)。等待所有通道COM同步符到达状态用于等待每个多功能异步FIFO队列都收到了COM同步符。
(f)移除COM同步符状态(REMOVE_COM)。移除COM同步符状态用于移除所有通道对应的多功能异步FIFO队列的队列头位置的COM同步符.
(g)超时清空FIFO状态(CLR_FIFO_FOR_TIMETOUT)。超时清空FIFO状态用于延迟偏斜纠正超时后,清除每个通道对应的多功能异步FIFO队列的所有内容。
参见图2中,本实施例中状态机的上述7个状态之间的状态转换条件如下:
状态转换条件①:空闲状态(IDLE)向等待任意通道收到COM同步符状态(WAIT_COM_IN_ANY_LANE)的状态转换条件,当状态机收到通道延迟偏斜纠正使能信号,则条件成立,否则不成立。
状态转换条件②:该条件是等待任意通道收到COM同步符状态(WAIT_COM_IN_ANY_LANE)向等待若干时钟周期状态(WAIT_SEVERAL_CYCLES)的状态转换条件,状态机每个时钟节拍监测所有通道的多功能异步FIFO队列的队列头的数据,若在任何一个通道对应的异步FIFO队列的队列头发现COM同步符数据,则条件成立,否则不成立。
状态转换条件③:该条件是等待若干时钟周期状态(WAIT_SEVERAL_CYCLES)向复位FIFO状态(RST_FIFO)的状态转换条件,当等待的时钟周期数达到多功能异步FIFO队列的深度值,则条件成立,否则不成立。
状态转换条件④:该条件是复位FIFO状态(RST_FIFO)向等待所有通道COM同步符到达状态(WAIT_ALL_COM_DONE)的状态转换条件,当各通道的多功能异步FIFO队列被清空,则条件成立,否则条件不成立。
状态转换条件⑤:该条件是等待所有通道COM同步符到达状态(WAIT_ALL_COM_DONE)向超时清空FIFO状态(CLR_FIFO_FOR_TIMETOUT)的状态转换条件,若从任何一个通道收到COM同步符开始经过的时钟周期数大于配置最大值(由参数配置,一般设置为异步FIFO队列的深度)时,仍不能在所有异步FIFO队列的独立头同时看到COM同步符,此时第一个接收到COM同步符的异步FIFO队列已满,下一个时钟周期将溢出,无法继续进行同步,此时认为同步超时,本条件成立,否则不成立。
状态转换条件⑥:该条件是超时清空FIFO状态(CLR_FIFO_FOR_TIMETOUT)向等待所有通道COM同步符到达状态(WAIT_ALL_COM_DONE)的状态转换条件,当各通道对应的多功能异步FIFO队列均被清空,且总的同步超时次数未超过设定阈值(本实施例中设置阈值为8表示最多允许超时次数为8),则本条件成立,否则不成立。
状态转换条件⑦:该条件是超时清空FIFO状态(CLR_FIFO_FOR_TIMETOUT)向空闲状态(IDLE)的状态转换条件,当各通道对应的多功能异步FIFO队列均被清空,且总的同步超时次数超过设定阈值(例如设置阈值为8表示最多允许超时次数为8),则本条件成立,否则不成立。
状态转换条件⑧:该条件是等待所有通道COM同步符到达状态(WAIT_ALL_COM_DONE)向移除COM同步符状态(REMOVE_COM)的状态转换条件,若从任何一个通道收到COM同步符开始经过的时钟周期数小于等于配置最大值(最大值由参数配置,一般设置为异步FIFO队列的深度)时,能够在所有异步FIFO队列的独立头同时看到COM同步符,则认为同步完成,本条件成立,否则不成立。
状态转换条件⑨:该条件是移除COM同步符状态(REMOVE_COM)向空闲状态(IDLE)的状态转换条件,当移除COM符状态8保持一拍,则条件成立,否则不成立。
如图3所示,本实施例面向板级高速传输总线的多通道延迟斜偏纠正装置包括:
多个异步FIFO队列(FIFO_1~FIFO_N),用于对通道中接收到的数据进行时钟域转换,与板级高速传输总线的每一个通道(通道1~通道N)一一对应,异步FIFO队列的写入时钟为每个通道来自发送方的发送时钟,读取时钟为每个通道来自接收方的接收时钟,异步FIFO队列按照先入先出的顺序保存接收到的多个数据完成从发送时钟到接收时钟的时钟域转换;
延迟斜偏纠正控制模块,用于读取各个通道的异步FIFO队列的队列头数据,每个时钟节拍监测所有通道的异步FIFO队列的队列头数据是否是作为延迟斜偏标识的COM同步符,当在任何一个通道的异步FIFO的队列头发现COM同步符,则从该COM同步符开始时钟周期计数,如果在小于或等于配置最大值的时钟周期计数时间内能够在所有异步FIFO队列的队列头找到COM同步符,则判定所有通道延迟偏斜纠正成功,移除所有通道对应的异步FIFO队列的队列头位置的COM同步符,之后同步读取所有异步FIFO队列的数据;否则进行同步超时次数计数,如果同步超时次数的值尚未超过设定阈值,则清空所有通道对应的异步FIFO队列并重新进行延迟纠正,否则如果同步超时次数超过设定阈值则判定延迟偏斜纠正失败。
参见图3,本实施例中异步FIFO队列与板级高速传输总线的每一个通道一一对应,对于每个异步FIFO队列而言,异步FIFO队列的输入端接收来自对应通道发送方的发送时钟信号lanei_txclk和数据信号lanei_data,其中i为通道编号且i∈[0,N],N为最大的通道编号;异步FIFO队列的输出端连接接收方的接收时钟信号rxclk,各个异步FIFO队列输出的数据lanei_data_syn即组成完成延迟斜偏纠正后的数据;同时,异步FIFO队列还分别与延迟斜偏纠正控制模块相连,向延迟斜偏纠正控制模块发送自己的状态信息,并接收来自延迟斜偏纠正控制模块的控制信号。异步FIFO队列具有两个主要功能:一个功能是对通道中接收到的数据进行时钟域转换,异步FIFO队列的写入时钟为每个通道来自发送方的发送时钟,读取时钟为每个通道来自接收方的接收时钟;另外一个功能是按照先入先出的顺序保存多个接收到的数据,在延迟斜偏纠正控制模块的控制下,通过对FIFO队列进行读、写、清空操作,实现多个通道间延迟偏斜的校准。每个通道都具有独立的异步FIFO队列,FIFO队列的深度与FIFO队列写入和读出的时钟频率比值和多通道之间能够容忍的最大延迟偏斜时钟周期数两个参数有关,为了防止异步FIFO溢出,必须保证接收方的接收时钟频率高于发送方的发送时钟频率。延迟斜偏纠正控制模块连接接收方的接收时钟信号rxclk以及各个异步FIFO队列,接收来自各异步FIFO队列的状态信息并发送对各个异步FIFO队列的控制信号。延迟斜偏纠正控制模块的作用是对所有通道中的异步FIFO队列进行监控,检查FIFO队列的空满状态,判断FIFO队列中接收到的数据是否为指定的COM同步符(专门用于通道同步的特殊的数据),根据监控信息,通过对各异步FIFO队列进行读、写和清空操作,实现多个通道间延迟偏斜的校准。延迟斜偏纠正控制模块对所有通道中的多功能异步FIFO队列进行监控,检查FIFO队列的空满状态,判断FIFO队列中接收到的数据是否为特殊的同步符,根据监控信息,通过对各异步FIFO队列进行读、写和清空操作,实现多个通道间延迟偏斜的校准。
本实施例中,延迟斜偏纠正控制模块具体是指用于控制对各个通道的异步FIFO队列进行读、写、清空操作以实现多个通道间延迟偏斜的校准的状态机,状态机根据接收来自各通道异步FIFO的状态信息发出对异步FIFO队列进行读、写、清空操作的控制信号,各通道异步FIFO的状态信息包含空闲状态(IDLE)、等待任意通道收到COM同步符状态(WAIT_COM_IN_ANY_LANE)、等待若干时钟周期状态(WAIT_SEVERAL_CYCLES)、复位FIFO状态(RST_FIFO)、等待所有通道COM同步符到达状态(WAIT_ALL_COM_DONE)、移除COM同步符状态(REMOVE_COM)、超时清空FIFO状态(CLR_FIFO_FOR_TIMETOUT)共7个状态;状态机的初始化状态为空闲状态,且初始化有用于记录延迟偏斜纠正超时的同步超时次数和设定阈值;状态机包括:
空闲状态执行模块,用于在空闲状态下,状态机判断是否收到多通道延迟斜偏纠正使能信号,如果收到多通道延迟斜偏纠正使能信号,则状态机进入等待任意通道收到COM同步符状态并跳转执行等待任意通道收到COM同步符状态执行模块;
等待任意通道收到COM同步符状态执行模块,用于在等待任意通道收到COM同步符状态下,状态机每个时钟节拍监测所有通道的异步FIFO队列的队列头数据,若在任何一个通道对应的异步FIFO队列的队列头数据中发现COM同步符数据,则状态机进入等待若干时钟周期状态并跳转执行等待若干时钟周期状态执行模块;
等待若干时钟周期状态执行模块,用于在等待若干时钟周期状态下,从通道对应的异步FIFO队列的队列头数据中发现COM同步符数据起开始时钟周期计数,当时钟周期计数达到异步FIFO队列的深度值时,状态机进入复位FIFO状态并跳转执行复位FIFO状态执行模块;
复位FIFO状态执行模块,用于在复位FIFO状态下,复位每个通道对应的异步FIFO队列,通过禁止写操作同时连续读出异步FIFO队列中的数据直到异步FIFO队列为空为止的方式清除异步FIFO队列的所有内容,当各通道的异步FIFO队列均被清空后,状态机进入等待所有通道COM同步符到达状态并跳转执行等待所有通道COM同步符到达状态执行模块;
等待所有通道COM同步符到达状态执行模块,用于在等待所有通道COM同步符到达状态下,从任何一个通道收到COM同步符开始时钟周期计数并等待所有通道COM同步符到达,如果在小于或等于配置最大值的时钟周期计数时间内能够在所有异步FIFO队列的队列头找到COM同步符,则判定所有通道延迟偏斜纠正成功,状态机进入移除COM同步符状态并跳转执行移除COM同步符状态执行模块;否则如果在大于配置最大值的时钟周期计数时间仍未能够在所有异步FIFO队列的队列头找到COM同步符,此时最先接收到COM同步符的异步FIFO队列已满且在下一个时钟周期将溢出,无法继续进行同步,此时判定所有通道同步超时,将同步超时次数的值加1,状态机进入超时清空FIFO状态并跳转执行超时清空FIFO状态执行模块;
移除COM同步符状态执行模块,用于在移除COM同步符状态下,在指定的时钟节拍内移除所有通道对应的异步FIFO队列的队列头位置的COM同步符,状态机进入空闲状态并跳转执行空闲状态执行模块;
超时清空FIFO状态执行模块,用于在超时清空FIFO状态下,清除每个通道对应的异步FIFO队列的所有内容,判断同步超时次数的值是否超过设定阈值,如果尚未超过设定阈值,则状态机进入等待所有通道COM同步符到达状态并跳转执行等待所有通道COM同步符到达状态执行模块;如果超过设定阈值,则判定延迟偏斜纠正失败,状态机进入空闲状态并跳转执行空闲状态执行模块。
本实施例中,状态机初始化用于记录延迟偏斜纠正超时的同步超时次数和设定阈值时,同步超时次数的初始化值为0,设定阈值的初始化值为8。
本实施例中,移除COM同步符状态执行模块指定的时钟节拍为1个时钟节拍。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
面向板级高速传输总线的多通道延迟斜偏纠正方法及装置专利购买费用说明
Q:办理专利转让的流程及所需资料
A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。
1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。
2:按规定缴纳著录项目变更手续费。
3:同时提交相关证明文件原件。
4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。
Q:专利著录项目变更费用如何缴交
A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式
Q:专利转让变更,多久能出结果
A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。
动态评分
0.0