Pipe的弹性缓冲电路及其状态同步方法
【专利摘要】本发明公开了一种PIPE的弹性缓冲电路,包括:命令字生成电路,在写时钟域下生成命令字,并将命令字加在后续的数据之上,使命令字与数据对齐;命令字缓存器,在写指针控制器的控制下对命令字进行缓存;数据缓存器,在写指针控制器的控制下对数据进行缓存;命令字解析电路,在读指针控制器的控制下,将相应的命令字从命令字缓存器中读出,并进行解析处理;输出数据控制器,在读指针控制器的控制下,将相应的数据从数据缓存器中读出,输出数据和弹性缓冲电路的状态。本发明还公开了一种所述弹性缓冲电路的状态同步方法。本发明能够实现状态标志设置与数据传输的精准同步。
【专利说明】PIPE的弹性缓冲电路及其状态同步方法
【技术领域】
[0001] 本发明涉及USB (Universal Serial Bus通用串行总线)领域,特别是涉及一种 PIPE的弹性缓冲电路。本发明还涉及一种所述弹性缓冲电路的状态同步方法。
【背景技术】
[0002] USB接口具有传输速度更快,支持热插拔以及连接多个设备的特点,目前已经在各 类外部设备中被广泛的采用。随着USB技术的发展,USB3.0 (通用串行总线3.0版本)超速 传输也开始广泛应用,是目前开始逐渐广泛应用的串行数据传输协议。USB3. 0能够实现理 论上5Gbps的数据传输,传输速度更加快,传输时间得到有效的节省。因此对于USB3. 0超 速的研究也成为一种趋势。
[0003] PIPE 全称是 PHY Interface For the PCI Express*and USB 3. OArchitectures [用于USB3. 0和PCI-E (周边元件扩展接口的快速版本)体系结构的物 理接口],是USB3. 0ΡΗΥ的一种接口协议。
[0004] 由于PIPE中的弹性缓冲电路一般存在读写两种时钟,必须当作异步时钟处理。因 此在写时钟状态传递到读时钟状态下时,一般不能保证状态信号与数据的同步。
【发明内容】
[0005] 本发明要解决的技术问题是提供一种PIPE的弹性缓冲电路,能够实现状态标志 设置与数据传输的精准同步;为此,本发明还要提供一种所述弹性缓冲电路的状态同步方 法。
[0006] 为解决上述技术问题,本发明的PIPE的弹性缓冲电路,包括:
[0007] 命令字生成电路,在写时钟域下生成命令字,并将命令字加在后续的数据之上,使 命令字与数据对齐;
[0008] 命令字缓存器,在写指针控制器的控制下对命令字进行缓存;
[0009] 数据缓存器,在写指针控制器的控制下对数据进行缓存;
[0010] 命令字解析电路,在读时钟域下,且在读指针控制器的控制下,将相应的命令字从 命令字缓存器中读出,并进行解析处理;
[0011] 输出数据控制器,在读时钟域下,且在读指针控制器的控制下,将相应的数据从数 据缓存器中读出,根据命令字解析电路的信号进行SKP order set (跳跃字符对)的插入, 以及溢出时插入SUB (替换字符);输出数据和弹性缓冲电路的状态。
[0012] 所述弹性缓冲电路的状态同步方法是采用如下技术方案实现的:
[0013] 写入端在写时钟域下生成命令字,并将命令字加在后续的数据之上,使命令字与 数据对齐;在写指针控制下,将相应的命令字和数据分别送入命令字缓存和数据缓存中;
[0014] 读出端在读时钟域下从所述命令字缓存和数据缓存中读出命令字和数据,解析处 理命令字,根据命令字设置标志,根据命令字插入SKP order set,实现读时钟域下数据与 弹性缓冲电路状态的同步输出。
[0015] 本发明利用命令字的方式,将弹性缓冲电路的状态在写时钟下与数据结合打包, 同时送入弹性缓冲电路的命令字缓存器和数据缓存器中,等待读时钟得到数据和命令字后 进行解析处理,从而实现读时钟下数据与状态的精准同步。
【专利附图】
【附图说明】
[0016] 下面结合附图与【具体实施方式】对本发明作进一步详细的说明:
[0017] 图1是弹性缓冲电路一实施例原理框图;
[0018] 图2是写入端设置命令字的一实施例时序图;
[0019] 图3是读出端解析命令字的一实施例时序图;
[0020] 图4是读出端解析命令字的另一实施例时序图。
【具体实施方式】
[0021] USB3.0协议对于收发两端的时钟频率补偿采用协议层的SKP order set序列实 现,要求发送端定时发送SKP order set,接收端根据弹性缓冲电路的状态,删除或者增加 SKP order set。而PIPE协议中对SKP order set处理后的状态以及弹性缓冲电路溢出的 状态要求有同步的状态输出信号(即标志)体现。
[0022] 参见图1所示,所述弹性缓冲电路分为读写两个时钟域,在电路设计上必须按照 异步时钟进行处理。对SKP order set的处理以及溢出的检测是在写时钟域下完成的,而 状态的输出则是在读时钟域下完成的。为了实现精准的数据与弹性缓冲电路的状态同步输 出,在数据通路上增加了命令字生成电路,使命令字严格与数据对齐。在写时钟域下由所述 命令字生成电路生成的命令字包含"SKP order set加 ,SKP order set减,溢出"。在读时 钟域下,由命令字解析电路负责解析处理命令字,包括根据命令字设置标志,根据命令字插 入 SKP order set。
[0023] 结合图2所示,在写时钟域下,如果发生SKP order set减或者溢出,会生成对应 的命令字加在后续的数据之上,并将相应的命令字和数据,在写指针控制器的控制下分别 送入命令字缓存器和数据缓存器中。
[0024] 参见图2,如果在数据C处检测到SKP order set,当弹性缓冲电路的存储容量超 过一半的时候,需要进行SKP order set减,则将下一数据D的命令字设置为SKP order set 减;当弹性缓冲电路的存储容量小于一半的时候,将下一数据D的命令字设置为SKP order set加。当在数据C处出现弹性缓冲电路溢出的情况时,需要将下一数据D的命令字设为溢 出。
[0025] 结合图3所示,在读出端,在读指针控制器的控制下,将相应的命令字和数据分别 从命令字缓存器和数据缓存器中读入命令字解析电路和输出数据控制器中。命令字解析电 路解析处理命令字。输出数据控制器根据命令字解析电路的信号进行SKP order set的插 入,以及溢出时插入SUB (替换字符)。当在数据D处发现SKP order set减或溢出这两种 命令字后,设置标志;然后进行状态输出和数据输出。
[0026] 读出端在读出数据的时候同时能够获得当前数据上的命令字。当出现SKPorder set减或者溢出命令字的时候,则将状态输出端需要输出的标志修改为对应的标志即可。为 保证输出数据与状态输出的标志同步,将数据延迟一拍输出。
[0027] 再结合图4所示,在读出端,在读指针控制器的控制下,将相应的命令字和数据分 别从命令字缓存器和数据缓存器中读入命令字解析电路和输出数据控制器中。命令字解析 电路解析处理命令字,当发现SKP order set加命令字后,暂停读出数据一拍,将输出数据 中插入SKP order set加,同时设置标志。然后进行状态输出和数据输出。
[0028] 参见图4,如果在数据D处检测到SKP order set加命令字后,首先在读指针控制 器的控制下停止读地址的变化,维持在读数据E的状态,同时保存已经读出的数据D,然后 在输出数据中插入一组SKP order set ;每组SKP order set由两个SKP (跳跃字符)组成, 其中,第一个SKP上需要设置标志。最后恢复保存的数据D,整体需要3拍的时间,当数据D 恢复之后整体读时序恢复正常操作,依次输出后续数据E,F。
[0029] 以上通过【具体实施方式】对本发明进行了详细的说明,但这些并非构成对本发明的 限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也 应视为本发明的保护范围。
【权利要求】
1. 一种用于通用串行总线3. 0版本USB3. 0和周边元件扩展接口的快速版本PCI-E体 系结构的物理接口 PIPE的弹性缓冲电路,其特征在于,包括: 命令字生成电路,在写时钟域下生成命令字,并将命令字加在后续的数据之上,使命令 字与数据对齐; 命令字缓存器,在写指针控制器的控制下对命令字进行缓存; 数据缓存器,在写指针控制器的控制下对数据进行缓存; 命令字解析电路,在读时钟域下,且在读指针控制器的控制下,将相应的命令字从命令 字缓存器中读出,并进行解析处理; 输出数据控制器,在读时钟域下,且在读指针控制器的控制下,将相应的数据从数据缓 存器中读出,根据命令字解析电路解析处理后得到的信号进行跳跃字符对SKP order set 的插入,以及溢出时插入替换字符SUB ;输出数据和弹性缓冲电路的状态。
2. -种用于通用串行总线3. 0版本USB3. 0和周边元件扩展接口的快速版本PCI-E体 系结构的物理接口 ΡΠ?的弹性缓冲电路的状态同步方法,其特征在于: 写入端在写时钟域下生成命令字,并将命令字加在后续的数据之上,使命令字与数据 对齐;在写指针控制下,将相应的命令字和数据分别送入命令字缓存和数据缓存中; 读出端在读时钟域下从所述命令字缓存和数据缓存中读出命令字和数据,解析处理命 令字,根据命令字设置标志,根据命令字插入跳跃字符对SKP order set,实现读时钟域下 数据与弹性缓冲电路状态的同步输出。
3. 如权利要求2所述的方法,其特征在于:如果在某一数据处检测到跳跃字符对SKP order set,当弹性缓冲电路的存储容量超过一半时,则将下一数据的命令字设置为跳跃字 符对SKP order set减;当弹性缓冲电路的存储容量小于一半时,将下一数据的命令字设置 为跳跃字符对SKP order set加;当在某一数据处出现弹性缓冲电路溢出时,则将下一数据 的命令字设为溢出。
4. 如权利要求3所述的方法,其特征在于:读出端在读出数据的同时能够获得当前数 据上的命令字;当出现跳跃字符对SKPorder set减或者溢出命令字时,则将状态输出端需 要输出的标志修改为对应的标志,且将数据延迟一拍输出。
5. 如权利要求3所述的方法,其特征在于:当发现跳跃字符对SKP order set加命令 字后,暂停读出数据一拍,在输出数据中插入跳跃字符对SKP order set加,同时设置标志; 具体方法是:如果在某一数据处检测到跳跃字符对SKP order set加命令字后,停止读地址 的变化,维持在读下一数据的状态,同时保存已经读出的数据;然后在输出数据中插入一组 跳跃字符对SKP order set;每组跳跃字符对SKP order set由两个跳跃字符SKP组成,其 中,第一个跳跃字符SKP上需要设置标志;最后恢复保存的数据,当保存的数据恢复后,读 时序恢复正常操作,依次输出后续数据。
【文档编号】G06F13/42GK104063352SQ201310090773
【公开日】2014年9月24日 申请日期:2013年3月20日 优先权日:2013年3月20日
【发明者】薛重阳 申请人:上海华虹集成电路有限责任公司