一种usb3.0中处理skp序集的方法
【专利摘要】本发明公开了一种USB3.0中处理SKP序集的方法,SKP序集是在发送端是成对地随机添加到数据流之中的SKP字符,其作用是用于解决读、写过程中由于时钟冲突导致的数据丢失或者溢出的问题,进而保证数据传输的完整性和准确性。该方法对USB设备的物理层传递到接收端的数据流中含有的SKP序集通过暂时寄存器和替换方法进行集中处理,做到了使输出的每个时钟单元内的字符全部是数据字符,或者全部是SKP字符,而不能同时包含有数据字符和SKP字符,从而高效且准确地移除了随机插入的SKP序集,既保持了原输入数据的流量的正确无误,同时也将SKP序集与数据分离开来了。
【专利说明】—种USB3.0中处理SKP序集的方法
【技术领域】
[0001]本发明涉及一种USB3.0中处理SKP序集的方法。
【背景技术】
[0002]1、缩略语和关键术语定义:
[0003]USB !Universal Serial Bus 通用串行总线。
[0004]IP核:Intellectual Property core是一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。
[0005]PHY:物理层,OSI的最底层。
[0006]FIFO:First Input First Output 的缩写,先入先出队列。
[0007]U30DC_RXPI:USB3.0设备控制器的物理层接口接收信号。
[0008]2、随着计算机在各个领域中的应用日益普及和深入,外围设备日益增多,传统计算机虽然能够提供高性能的通用运算处理能力,但用于外围设备扩展的功能十分有限。传统计算机在新增外设时,因兼容性给计算机外围设备的设计、安装、调试直至正常运行的过程复杂,而且成本高。USB技术突破了传统计算机外围设备的设计方法,简化了计算机外围设备的设计、安装和调试的过程,具有即插即用、数据传输可靠、扩展方便、低成本等优点,已成为当前计算机必备的接口之一。
[0009]USB总线协议自从1996年推出后,先后经历了低速USB1.0、全速USB1.1、高速USB2.0和超高速USB3.0四个阶段,其数据传输速率也相应大幅提高,由最初USB1.0的1.5Mbps提升到USB1.1的12Mbps,然后又大幅提高至USB2.0的480Mbps,再到目前USB3.0的5.0Gbps的超高数据传输速率。USB的高数据传输速率、向后兼容、使用方便等特点使它在计算机外设、消费电子、通讯和汽车等领域都有着广泛的应用。
[0010]2000年4月发布的USB2.0协议,大大拓宽了 USB技术的应用范围,并逐步成为了计算机的主流接口。但随着人们对大容量数据传输的需求日益迫切,USB2.0的速度早已无法满足实际应用的需要,USB3.0便应运而生。2008年11月,新一代超高速USB3.0协议正式发布,其理论数据传输速率为现行USB2.0的10倍,满足了当今人们对大容量数据传输的急切需求。不仅如此,USB3.0还依然保持着USB技术的即插即用、支持热插拔和向后兼容等良好特性,这对实现USB2.0向USB3.0的平滑过渡起到了积极的作用。除了极大地提高了带宽(USB3.0为双单工,USB2.0为半双工)及继续保持与USB2.0的兼容性外,USB3.0还实现了更好的电源管理(支持空闲、休眠和挂起等状态)、供电电流由USB2.0的500mA提高至900mA、主机识别设备的速度更快、数据处理效率更高等新特性。
[0011]正像从USB1.1向USB2.0转变的潮流谁都无法阻挡一样,USB3.0必将逐步取代USB2.0成为最为通用的USB接口。USB3.0接口芯片主要有两类:一类是带有USB3.0接口的单片机,比如USB3.0存储控制器、USB3.0闪存控制器等;另一类是纯粹的USB3.0接口芯片,这是一类通用的USB3.0控制器芯片,需要使用外部的微控制器、DSP或其他的处理器对接口芯片进行控制,可以应用于各种需要USB3.0接口的设备中,比如键盘、鼠标等,而不仅仅是U盘等存储设备。这两类接口芯片的核心部分都是USB3.0控制器IP核+USB3.0物理层(PHY),为了实现与USB2.0的兼容,接口芯片内部还都包括USB2.0控制器IP核+USB2.0物理层(PHY),其他还有数据缓存、时钟模块以及各类接口等。其中USB3.0控制器IP核主要由MAC、LLE和PLE三部分组成,MAC(Media Access Layer,即媒体接入层)通过USB3.0PIPE(全称为 PHY Interface for the PCI Express and USB SuperSpeed Architectures,是Intel为USB3.0及PCI Express定义的物理层接口规范)接口实现与PHY的互连,负责从LLE到PHY的数据加扰和PHY到LLE的数据解扰;LLE为Link Layer Engine即链路层引擎,用于实现USB3.0链路层部分的功能;PLE为Protocol Layer Engine即协议层引擎,用于实现USB3.0协议层部分的功能。
【发明内容】
[0012]本发明要解决的技术问题是提供一种USB3.0中处理SKP序集的方法。
[0013]为了解决上述技术问题,本发明采用的技术方案是:一种USB3.0中处理SKP序集的方法,SKP序集是在发送端是成对地随机添加到数据流之中的SKP字符;当混杂着SKP字符的数据流从USB设备的物理层传递到接收端的USB的IP核时,数据流全部转化成32位X 125兆赫兹的数据流,使得IP核以每8个纳秒处理32位、即4个字符一个单元(下称4字符单元)进行后续数据处理,其特征在于包括以下步骤:
[0014](I)当含有η (η=1或2或3)个SKP字符和4_η个数据字符的4字符单元从USB设备的物理层传递过来到USB的IP核时,IP核先把4-η个数据字符按照先后顺序存入预先准备的暂存寄存器里,使得在总线上的4字符单元中剩下η个SKP字符且空出4-η个空字符的位置;所述暂存寄存器为24位且可存储3个字符;
[0015](2)将4-η个SKP字符补充到IP核中的4_η个空字符的位置并且使4字符单元中皆为SKP字符,同时记录已经补充的SKP字符数为4-η ;
[0016](3)将所述皆为SKP字符的4字符单元送往IP核的后续处理环节,然后开始对下一个4字符单元进行流水线式的处理;
[0017](4)所述下一个4字符单元中如果含有m (m=l或2或3)个SKP字符,IP核直接将其除去,并把所述记录已经补充的SKP字符数4-η减掉除去的SKP字符数m ;如果不含有SKP字符,则不进行此操作;
[0018](5)单元中含有的数据字符,按照顺序替换出暂存寄存器里所寄存的4-η个数据字符,并将之前存在暂存寄存器里的数据字符取回到总线上,而总线上顺序靠后的数据字符被暂时存在了暂存寄存器里,并等待后续过来的一个4字符单元中的数据字符的替换;
[0019](6)如果在第(4)步骤中有SKP字符被IP核除去的话,在第(5)步中,暂存寄存器里所存储的数据字符数也会相应地减少同样的数量,是因为暂存寄存器里的数据字符已被取回到总线上填补SKP字符被移除所留下的空缺;直到IP核记录的数目和暂存寄存器里的数据字符数目为O时,这一处理周期结束;
[0020](7)重复步骤(I)?(6),使得输出的每个单元的4个字符中必须全部是数据字符,或者全部是SKP字符,而且在4个输出字符中不能同时包含有数据字符和SKP序集的字符,从而将SKP序集和数据字符分离开。
[0021]本发明的有益效果是:[0022]可以高效且准确地移除随机插入的SKP序集,从而既保持了原输入数据的流量的正确无误,同时将SKP序集与数据分离开来了。
【具体实施方式】
[0023]首先,SKP字符在发送端是成对地随机添加到数据流之中的,所以,在接收端这边,当混杂着SKP字符的数据流从USB设备的物理层传递过来到USB的IP核时,有可能是3种模式:1.32位xl25兆赫兹(4个字符、4个字符地从USB设备的物理层传递过来到USB的IP核);2.16位x250兆赫兹(2个字符、2个字符地从USB设备的物理层传递过来到USB的IP核);3.8位x500兆赫兹(I个字符、I个字符地从USB设备的物理层传递过来到USB的IP核)。但由于IP核设计的难度和可行性的原因,混杂着SKP字符的数据流在进入IP核时,必须经过“乒乓操作”,把以上3种模式的数据流统统转化成32位xl25兆赫兹的数据流以方便后续的处理和操作。这样,IP核在后续处理数据的时候就是每8个纳秒处理32位,即4个字符。这样,在长长的数据流总线上,可以假想出每4个字符为一个单元,因为IP核在处理总线上的数据流的时候就是按照每4个字符为一个单元的顺序来处理的。没遇到SKP字符出现时,IP核就简单地4个字符、4个字符地处理纯数据字符,当遇到SKP字符时,由于SKP字符是成对出现的(下面出现只有I个SKP和3个SKP字符的情况,是因为在上一个处理周期中已经过去了 I个SKP,或者是在下一个周期中还有I个SKP字符还没过来,留在了下一个处理周期来处理),具体可以概括为以下4类情况:
[0024]第一类情况:4个字符的单元中只有I个SKP字符;
[0025]第二类情况:4个字符的单元中有2个SKP字符;
[0026]第三类情况:4个字符的单元中有3个SKP字符;
[0027]第四类情况:4个字符的单元中4个都是SKP字符;
[0028]另外预先准备一个大小为24位的、可存储3个字符的暂存寄存器。
[0029]当第一类情况发生时,按以下的处理步骤来分离SKP序集与数据字符:
[0030](I)当只含有一个SKP字符的4字符单元从USB设备的物理层传递过来到USB的IP核时,IP核先把3个字符的数据按照先后顺序存入暂存寄存器里,在总线上的这个4字符单元中,就只剩下I个SKP字符和空出来的3个字符的位置;
[0031](2) IP核在这空出来的3个字符的位置上补上3个SKP字符,即使单元中4个字符皆为SKP字符,并且记录下补上的SKP字符数为3 ;
[0032](3)这个4字符皆为SKP字符的单元送到IP核的下一环节进行处理,再接着对过来的一个4字符单元进行处理;
[0033](4)下一个单元中如果含有SKP字符,IP核直接将其除去,并把之前记录的补上的SKP字符数减掉除去的数目。如果不含有SKP字符,则不进行此操作;
[0034](5)单元中含有的数据字符,按照顺序替换出暂存寄存器里的3个数据字符,这样之前存在暂存寄存器里的数据字符就回到了总线上,而总线上顺序靠后的数据字符就被暂时存在了暂存寄存器里,以等待后续过来下一单元的数据字符的替换。
[0035](6)如果在第(4)步骤中有SKP字符被IP核除去的话,在第(5)步中,暂存寄存器里的数据字符数目也会相应地减少同样的数量,是因为暂存寄存器里的数据字符要被取回到总线上来填补SKP字符被移除所留下的空缺。直到IP核记录的数目和暂存寄存器里的数据字符数目为O时,这一处理周期结束。
[0036](7)重复以上述步骤(I)- (6)即可做到输出的每个单元的4个字符中必须全部是数据字符,或者全部是SKP字符,在4个输出字符中不能同时包含有数据字符和SKP序集的字符,从而就把SKP和数据成功地分离开了。
[0037]同理,当第二、三类情况发生时,跟第一类情况的处理方法一样。当第四类情况发生时,是不需要处理的。
[0038]以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
【权利要求】
1.一种USB3.0中处理SKP序集的方法,所述SKP序集是在发送端是成对地随机添加到数据流之中的SKP字符;当混杂着SKP字符的数据流从USB设备的物理层传递到接收端的USB的IP核时,数据流全部转化成32位X 125兆赫兹的数据流,使得IP核以每8个纳秒处理32位、即4个字符一个单元(下称4字符单元)进行后续数据处理,其特征在于包括以下步骤: (O当含有η (η=1或2或3)个SKP字符和4_η个数据字符的4字符单元从USB设备的物理层传递过来到USB的IP核时,IP核先把4-η个数据字符按照先后顺序存入预先准备的暂存寄存器里,使得在总线上的4字符单元中剩下η个SKP字符且空出4-η个空字符的位置;所述暂存寄存器为24位且可存储3个字符; (2)将4-η个SKP字符补充到IP核中的4_η个空字符的位置并且使4字符单元中皆为SKP字符,同时记录已经补充的SKP字符数为4-η ; (3)将所述皆为SKP字符的4字符单元送往IP核的后续处理环节,然后开始对下一个4字符单元进行流水线式的处理; (4)所述下一个4字符单元中如果含有m(m=l或2或3)个SKP字符,IP核直接将其除去,并把所述记录已经补充的SKP字符数4-η减掉除去的SKP字符数m ;如果不含有SKP字符,则不进行此操作; (5)单元中含有的数据字符,按照顺序替换出暂存寄存器里所寄存的4-η个数据字符,并将之前存在暂存寄存器里的数据字符取回到总线上,而总线上顺序靠后的数据字符被暂时存在了暂存寄存器里,并等待后续过来的一个4字符单元中的数据字符的替换; (6)如果在第(4)步骤中有SKP字符被IP核除去的话,在第(5)步中,暂存寄存器里所存储的数据字符数也会相应地减少同样的数量,是因为暂存寄存器里的数据字符已被取回到总线上填补SKP字符被移除所留下的空缺;直到IP核记录的数目和暂存寄存器里的数据字符数目为O时,这一处理周期结束; (7)重复步骤(I)?(6),使得输出的每个单元的4个字符中必须全部是数据字符,或者全部是SKP字符,而且在4个输出字符中不能同时包含有数据字符和SKP序集的字符,从而将SKP序集和数据字符分离开。
【文档编号】G06F13/38GK103473195SQ201310370184
【公开日】2013年12月25日 申请日期:2013年8月22日 优先权日:2013年8月22日
【发明者】王亚君 申请人:安徽虹庄微电子有限公司