CN108932208A - 一种数据处理的方法和设备 - Google Patents
一种数据处理的方法和设备 Download PDFInfo
- Publication number
- CN108932208A CN108932208A CN201710377227.1A CN201710377227A CN108932208A CN 108932208 A CN108932208 A CN 108932208A CN 201710377227 A CN201710377227 A CN 201710377227A CN 108932208 A CN108932208 A CN 108932208A
- Authority
- CN
- China
- Prior art keywords
- data
- caching
- base position
- serdes
- output
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开了一种数据处理的方法和设备;该方法可以包括:将当前SERDES输出时钟周期内的输出数据移入预设长度的缓存;根据当前缓存数据的信号变化沿在所述当前缓存数据中确定基准位置;根据所述基准位置以及预设的选取策略在所述当前缓存数据中选取有效输出数据。
Description
技术领域
本发明涉及信号处理技术,尤其涉及一种数据处理的方法和设备。
背景技术
串行-解串器(SERDES,SERializer-DeSerializer)是在高速应用中用来实现并行数据及串行数据之间的相互转换,在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体(光缆或铜线),最后在接收端高速串行信号重新转换成低速并行信号。从而充分地利用传输媒体的信道容量,减少所需的传输信道和器件引脚数目,大大降低通信成本。
在面对较低速率的以太网数据信号时,由于输入数据的速率低于SERDES的最低速率,而且以太网数据不自带同步时钟,因此只能利用SERDES对输入数据进行采样,并对采样的结果进行处理,来得到正确的输入数据。
由奈奎斯特采样定理可知,采样时钟必须至少是输入信号频率的2倍以上,才能正常采到信号的相位。实际应用中,为了避免时钟抖动、输入信号抖动等因素的影响,往往采用远大于奈奎斯特采样频率,例如8倍、16倍等对输入信号进行过采样。
当SERDES采用N倍过采样时,SERDES会在每个输出时钟输出N个比特bit采样数据,理想情况下,这N个bit输出数据恰好对应于输入信号的1个bit数据,因此在理想情况下,可以在SERDES每个时钟输出的N个bit中任取1个bit作为有效数据。但在实际情况中,由于采样时钟和输入信号的频偏或者抖动,对于输入信号的1个bit采用N倍过采样,可能会出现采样(N-1)次,或者(N+1)次,这时如果不加处理就会造成数据错误。
目前对这个问题的解决办法是,对SERDES的输出数据用更高频率的时钟再次进行处理,根据采集结果数据中的10或者01变化找出变化沿、不断校正采样边界,从而避免了SERDES中采样次数误差的积累。因为采用了比SERDES输出时钟更高频率的处理时钟,保证了有足够的速度处理所有的有效数据。
但这种处理方法,需要一个比SERDES恢复时钟更高频率的处理时钟,并需要对SERDES的输出数据在不同时钟域下进行处理。因此使用了大量时钟和逻辑资源,并增加了逻辑的复杂度,使逻辑难于维护。
发明内容
为解决上述技术问题,本发明实施例期望提供一种数据处理的方法和设备,能够减少针对输出数据的逻辑处理的复杂度,降低针对时钟和逻辑资源的使用量。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种数据处理的方法,所述方法包括:
将当前SERDES输出时钟周期内的输出数据移入预设长度的缓存;
根据当前缓存数据的信号变化沿在所述当前缓存数据中确定基准位置;
根据所述基准位置以及预设的选取策略在所述当前缓存数据中选取有效输出数据。
在上述方案中,所述将SERDES输出时钟的当前周期内的输出数据移入预设长度的缓存,包括:
当所述缓存中的数据已填满时,将所述输出数据移入所述缓存,并且按照所述输出数据长度将所述缓存中最先进入所述缓存的历史数据移出所述缓存。
在上述方案中,所述根据当前缓存数据的信号变化沿在所述当前缓存数据中确定基准位置,包括:
在所述当前SERDES输出时钟周期内的输出数据移入预设长度的缓存后,若所述缓存首次填满,则将最接近所述缓存中间位置的信号变化沿作为所述基准位置;
若所述缓存非首次填满,则将与前一次基准位置最接近的信号变化沿作为所述基准位置。
在上述方案中,所述根据所述基准位置以及预设的选取策略在所述当前缓存数据中选取有效输出数据,可以包括:
在所述当前缓存数据中,按照预设的偏移长度从所述基准位置进行偏移后的数据作为所述有效输出数据。
在上述方案中,所述预设的偏移长度为过采样倍数N的一半。
在上述方案中,所述方法还包括:
当所述基准位置距所述缓存的数据出口的距离小于预设的距离阈值,且当前输入数据包括空闲idle信号时,将最接近所述缓存中间位置的信号变化沿作为新的基准位置。
在上述方案中,所述缓存为先入先出缓存。
在上述方案中,所述信号的变化沿包括由0变1的位置,或者,由1变0的位置。
第二方面,本发明实施例提供了一种数据处理的设备,所述设备包括:存储器和处理器;
存储有数据处理程序的存储器;
处理器,配置为执行所述数据处理程序以实现如第一方面中任一项所述的数据处理方法的步骤。
第三方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现如第一方面中任一项所述的数据处理方法的步骤。
本发明实施例提供了一种数据处理的方法和设备,通过设置缓存,并根据缓存数据中的基准位置选取有效数据作为输出以及对基准位置进行修正,从而仅通过SERDES输出时钟就能够避免由于采样时钟和输入信号的频偏或者抖动所导致的数据错误,无需使用更高频率的处理时钟,并减少了针对输出数据的逻辑处理的复杂度,降低针对时钟和逻辑资源的使用量。
附图说明
图1为本发明实施例提供的一种时序图;
图2为本发明实施例提供的一种数据处理的方法流程示意图;
图3为本发明实施例提供的一种缓存示意图;
图4为本发明实施例提供的另一种时序图;
图5为本发明实施例提供的一种数据处理的方法的详细流程示意图;
图6为本发明实施例提供的一种数据处理的设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
当前SERDES对信号采用N倍过采样时,输入数据input_data以高低突变信号为例,参见图1,SERDES的被采样数据serdes_sample_data是与输入数据input_data相同的高低突变信号,设定SERDES采用4倍过采样,即期望的采样时钟频率为input_data频率的4倍,而由于采样时钟发生频偏,导致实际的采样时钟serdes_sample_clock仅是input_data频率的3倍,即对input_data的每个bit采样3次,这时,SERDES的输出时钟serdes_output_clock和输出数据serdes_output_data都会出现明显的错误,首先,SERDES的输出时钟serdes_output_clock比输入信号的时钟input_clock较慢,并且SERDES的输出时钟serdes_output_clock会按照过采样的倍数以及实际的采样时钟serdes_sample_clock来确定,也就是说SERDES的输出时钟serdes_output_clock的频率是实际的采样时钟serdes_sample_clock的四分之一,那么会导致Serdes输出数据serdes_output_data也不再是高低交变信号,具体以采样之后的Serdes输出数据serdes_output_data中的每次采样的首个bit数据serdes_output_data_bit0为例,如图1中所示,serdes_output_data_bit0并非是与输入数据input_data相同的高低突变信号。
为了解决图1所示的问题,本发明实施例为了避免出现由于使用更高频率时钟进行再次采样所导致的逻辑与时钟资源的增加,本申请通过以下实施例对技术方案进行说明。
实施例一
参见图2,其示出了本发明实施例提供的一种数据处理的方法,该方法可以应用于SERDES的接收端,该方法可以包括:
S201:将当前SERDES输出时钟周期内的输出数据移入预设长度的缓存;
在本实施例中,所述缓存为先进先出(FIFO,First Input First Output)缓存。
S202:根据当前缓存数据的信号变化沿在所述当前缓存数据中确定基准位置;
S203:根据所述基准位置以及预设的选取策略在所述当前缓存数据中选取有效输出数据。
本实施例通过设置缓存,并根据缓存数据中的基准位置选取有效数据作为输出,从而仅通过SERDES输出时钟就能够避免由于采样时钟和输入信号的频偏或者抖动所导致的数据错误,无需使用更高频率的处理时钟,并减少了针对输出数据的逻辑处理的复杂度,降低针对时钟和逻辑资源的使用量。
对于图2所示的技术方案,作为一种可选的实现方式,将SERDES输出时钟的当前周期内的输出数据移入预设长度的缓存,包括:
当所述缓存中的数据已填满时,将所述输出数据移入所述缓存,并且按照所述输出数据长度将所述缓存中最先进入所述缓存的历史数据移出所述缓存。
具体来说,以图3所示的FIFO缓存为例,该缓存中,左侧为缓存出口,右侧为缓存入口,箭头方向为数据进入缓存的移动方向,那么对于上述实现方式,可以将SERDES输出的并行数据不断的从右边移入缓存,丢弃缓存左边移出的数据。
对于图2所示的技术方案,作为一种可选的实现方式,根据当前缓存数据的信号变化沿在所述当前缓存数据中确定基准位置,包括:
在所述当前SERDES输出时钟周期内的输出数据移入预设长度的缓存后,若所述缓存首次填满,则将最接近所述缓存中间位置的信号变化沿作为所述基准位置;
若所述缓存非首次填满,则将与前一次基准位置最接近的信号变化沿作为所述基准位置。
具体来说,信号的变化沿可以是由0变1的位置,也可以是由1变0的位置。当所述缓存首次填满时,可以取最接近缓存中间位置的变化沿作为基准位置;而当缓存非首次填满时,则说明SERDES输出时钟的前一次周期内的输出数据在移入预设长度的缓存后,就已经确定了前一次的基准位置,于是,可以选取与前一次基准位置最接近的信号变化沿作为当前的基准位置,也就是说,当前基准位置可以按照上一次的基准位置进行修订和校正。
可以理解地,如果当前基准位置仍然是最接近所述缓存中间位置的信号变化沿,那就说明当前基准位置与前一次基准位置之间没有发生偏移,由此可知也不会发生采样时钟的频偏和抖动。否则就说明发生采样时钟的频偏和抖动。
由于采样时钟的频偏和抖动通常会被要求在一定范围内,所以变化沿的每次偏移也仅仅是1、2个bit,不会有突变,因此取最接近的变化沿作为基准位置可以保证基准位置的偏移与实际的偏移相同。
对于图2所示的技术方案,作为一种可选的实现方式,根据所述基准位置以及预设的选取策略在所述当前缓存数据中选取有效输出数据,可以包括:
在所述当前缓存数据中,按照预设的偏移长度从所述基准位置进行偏移后的数据作为所述有效输出数据。
具体来说,预设的偏移长度优选地可以采用过采样倍数N的一半,这是因为在通常情况下,过采样结果的N个bit对应输入信号的1个bit,即这N个bit的电平相同,取中间bit,可以避免因靠近变化沿而造成的误判。
对于图2所示的技术方案,需要说明的是,如果基准位置发生了偏移,说明发生采样时钟的频偏和抖动;而随着基准位置的不断偏移,最终将会移到缓存之外,一旦基准位置移到了缓存之外,就无法正确获取到有效数据,所以必须在基准位置偏移过大时进行纠正。
对于以太网来说,两个以太网数据包之间会有一些空闲idle信号,这些idle信号并不需要被处理。因此在基准位置接近缓存边缘时,若遇到idle信号,则可以将基准位置在缓存内部进行修正,修正为最接近缓存中心的信号变化沿。虽然此时由于基准位置修正会导致输出的idle数据出错,但由于idle数据属于丢弃内容,不会对正常数据处理不会受到影响。
所以,对于图2所示的技术方案,在S202之后,S203之前,还可以包括:
当所述基准位置距所述缓存的数据出口的距离小于预设的距离阈值,且当前输入数据包括空闲idle信号时,将最接近所述缓存中间位置的信号变化沿作为新的基准位置。
需要说明的是,如果SERDES采样时钟的偏移一直存在,那么基准位置将会不断偏移直至移出缓存,而一旦移出缓存之后就必然会出现数据错误。因此若基准位置偏移较大且遇到idle信号,那么就可以对基准位置进行修正,优选地依然是取最接近缓存中间位置的信号变化沿作为新的基准位置。
可以理解地,通过上述方案可以看出,由于本实施例总是在idle信号出现时调整和修正基准位置,因此,如果在基准位置因为信号的频偏而偏移出缓存之前,数据流中一直不出现idle信号,那么将会因为无法及时调整过采样的基准位置而出现误码。所以上述方案在实际应用中对时钟的频偏具有一定要求。更重要的是,在实际应用中,基准位置的偏移是一个较长时间的过程,而以太网包的长度是一个限制值,所以只要根据实际情况设置合适的缓存长度,就可以保证在非idle数据中不会出现基准位置偏移处缓存的情况,也就不会出现数据错误。
基于本实施例所述的方案,参见图4,可以看出,在图4中,输入数据input_data、输入信号的时钟input_clock、实际的采样时钟serdes_sample_clock、SERDES的被采样数据serdes_sample_data、SERDES的输出时钟serdes_output_clock和输出数据serdes_output_data以及采样之后的Serdes输出数据serdes_output_data中的每次采样的首个bit数据serdes_output_data_bit0均和图1相同,而由于采用的本实施例的技术方案,将Serdes输出的4bit数据(serdes_output_data)不断左移入缓存(serdes_output_data_buffer)中,并在缓存中寻找变化沿作为采样基准位置,然后取距离基准位置固定偏移长度的bit作为有效数据(serdes_output_valid_bit)。当存在多个变化沿时,取与前一次基准位置最近的变化沿作为当前的基准位置。由于采样时钟的频偏,所以基准位置将会不断偏移,在基准位置偏移出中心范围时,一旦遇到一个空闲idle信号is_idle,就将基准位置重新移回到中心范围内,这时虽然会出现错误数据,但由于以太网信号中idle信号并不参与处理,所以该idle数据错误不会造成影响。从图中可以看出,在is_idle为高的时间之外的有效数据serdes_output_valid_bit与SERDES的被采样数据serdes_sample_data以及输入数据input_data相同,三者均是高低突变信号。由此可以看出本实施例方案的可行性,也可以看出无需使用更高频率的处理时钟就能够解决采样时钟和输入信号的频偏或者抖动所带来的问题。
本实施例提供了一种数据处理的方法,通过设置缓存,并根据缓存数据中的基准位置选取有效数据作为输出以及对基准位置进行修正,从而仅通过SERDES输出时钟就能够避免由于采样时钟和输入信号的频偏或者抖动所导致的数据错误,无需使用更高频率的处理时钟,并减少了针对输出数据的逻辑处理的复杂度,降低针对时钟和逻辑资源的使用量。
实施例二
基于前述实施例相同的技术构思,参见图5,其示出了本发明实施例提供的一种数据处理的方法的详细流程,在本实施例中,利用FPGA的SERDESs对百兆光以太网(100BASE-FX)的光模块输出信号进行过采样。具体流程可以包括:
S501:将当前SERDES输出时钟周期内的输出数据移入预设长度的缓存,并在缓存数据内的高低电平的变化边沿中确定基准位置;
需要说明的是,以图3所示的缓存为例,将当前SERDES输出的并行数据不断的从右边移入缓存,并丢弃从缓存左边移出的数据。
在缓存中寻找变化沿。如果是刚启动时,说明缓存还未被填满,则取最接近缓存中间位置的变化边沿作为当前基准位置。如果已有基准位置,说明缓存已经被填满,则取与前一次基准位置最近的变化边沿作为当前基准位置。由于采样时钟的频偏和抖动被要求在一定范围内,所以变化边沿的每次偏移也仅仅是1、2个bit,不会有突变,因此取最近的变化边沿作为新的基准位置可以保证其与实际的偏移相同。
S502:判断基准位置是否发生偏移;若是,则转至S503;否则,转至S506;
可以理解地,若当前基准位置与前一次基准位置相同,那么可以保持当前基准位置不变。
S503:判断当前数据是否包括空闲数据idle;若是,则转至S504;否则,转至S505;
S504:将最接近缓存中间位置的变化边沿作为当前基准位置;
需要说明的是,当SERDES的采样时钟的偏移一直存在,则基准位置将会不断偏移直至移出缓存,而一旦移出缓存之后就必然会出现错误。因此当基准位置偏移较大时若遇到idle信号,则对基准位置进行修正,idle信号如图4中的is_idle的高电平处的波形所示。
S505:将与前一次基准位置最接近的变化边沿作为当前基准位置.
S506:从当前基准位置开始偏移一个固定位置,取该bit作为输出bit。
对于S506,该偏移的固定位置一般为过采样倍数N的一半,因为在通常情况下过采样结果的N个bit对应输入信号的1个bit,即这N个bit的电平相同,取中间bit,可以避免因靠近变化沿而造成的误判。S506中所述的输出bit形成了图4所示的serdes_output_valid_bit
通过图5所示的实施例,结合图4所示的serdes_output_valid_bit,可以看出,通过设置缓存,并根据缓存数据中的基准位置选取有效数据作为输出以及对基准位置进行修正,从而仅通过SERDES输出时钟就能够避免由于采样时钟和输入信号的频偏或者抖动所导致的数据错误,无需使用更高频率的处理时钟,并减少了针对输出数据的逻辑处理的复杂度,降低针对时钟和逻辑资源的使用量。
实施例三
基于前述实施例相同的技术构思,参见图6,其示出了本发明实施例提供的一种数据处理的设备60,该设备可以包括:
存储有数据处理程序的存储器601;
处理器602,配置为执行所述数据处理程序以实现以下步骤:
将当前SERDES输出时钟周期内的输出数据移入预设长度的缓存;
根据当前缓存数据的信号变化沿在所述当前缓存数据中确定基准位置;
根据所述基准位置以及预设的选取策略在所述当前缓存数据中选取有效输出数据。
可以理解,本发明实施例中的存储器601可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的系统和方法的存储器601旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器602可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器602中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器602可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器601,处理器602读取存储器601中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,所述处理器602,还被配置为执行所述数据处理程序以实现以下步骤:
当所述缓存中的数据已填满时,将所述输出数据移入所述缓存,并且按照所述输出数据长度将所述缓存中最先进入所述缓存的历史数据移出所述缓存。
可选地,作为另一个实施例,所述处理器602,还被配置为执行所述数据处理程序以实现以下步骤:
在所述当前SERDES输出时钟周期内的输出数据移入预设长度的缓存后,若所述缓存首次填满,则将最接近所述缓存中间位置的信号变化沿作为所述基准位置;
若所述缓存非首次填满,则将与前一次基准位置最接近的信号变化沿作为所述基准位置。
可选地,作为另一个实施例,所述处理器602,还被配置为执行所述数据处理程序以实现以下步骤:
在所述当前缓存数据中,按照预设的偏移长度从所述基准位置进行偏移后的数据作为所述有效输出数据。
可选地,作为另一个实施例,所述预设的偏移长度为过采样倍数N的一半。
可选地,作为另一个实施例,所述处理器602,还被配置为执行所述数据处理程序以实现以下步骤:所述方法还包括:
当所述基准位置距所述缓存的数据出口的距离小于预设的距离阈值,且当前输入数据包括空闲idle信号时,将最接近所述缓存中间位置的信号变化沿作为新的基准位置。
可选地,作为另一个实施例,所述缓存为先入先出缓存。
另外,在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
具体来讲,本实施例中的一种推荐候选词的方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种推荐候选词方法对应的计算机程序指令被一电子设备读取或被执行时,包括如下步骤:
将当前SERDES输出时钟周期内的输出数据移入预设长度的缓存;
根据当前缓存数据的信号变化沿在所述当前缓存数据中确定基准位置;
根据所述基准位置以及预设的选取策略在所述当前缓存数据中选取有效输出数据。
可选地,存储介质中存储的与步骤:所述将SERDES输出时钟的当前周期内的输出数据移入预设长度的缓存,包括:
当所述缓存中的数据已填满时,将所述输出数据移入所述缓存,并且按照所述输出数据长度将所述缓存中最先进入所述缓存的历史数据移出所述缓存。
可选地,存储介质中存储的与步骤:所述根据当前缓存数据的信号变化沿在所述当前缓存数据中确定基准位置,包括:
在所述当前SERDES输出时钟周期内的输出数据移入预设长度的缓存后,若所述缓存首次填满,则将最接近所述缓存中间位置的信号变化沿作为所述基准位置;
若所述缓存非首次填满,则将与前一次基准位置最接近的信号变化沿作为所述基准位置。
可选地,存储介质中存储的与步骤:所述根据所述基准位置以及预设的选取策略在所述当前缓存数据中选取有效输出数据,可以包括:
在所述当前缓存数据中,按照预设的偏移长度从所述基准位置进行偏移后的数据作为所述有效输出数据。
可选地,存储介质中存储的与步骤:所述预设的偏移长度为过采样倍数N的一半。
可选地,存储介质中存储的与步骤:所述方法还包括:
当所述基准位置距所述缓存的数据出口的距离小于预设的距离阈值,且当前输入数据包括空闲idle信号时,将最接近所述缓存中间位置的信号变化沿作为新的基准位置。
可选地,存储介质中存储的与步骤:所述缓存为先入先出缓存。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1.一种数据处理的方法,其特征在于,所述方法包括:
将当前SERDES输出时钟周期内的输出数据移入预设长度的缓存;
根据当前缓存数据的信号变化沿在所述当前缓存数据中确定基准位置;
根据所述基准位置以及预设的选取策略在所述当前缓存数据中选取有效输出数据。
2.根据权利要求1所述的方法,其特征在于,所述将SERDES输出时钟的当前周期内的输出数据移入预设长度的缓存,包括:
当所述缓存中的数据已填满时,将所述输出数据移入所述缓存,并且按照所述输出数据长度将所述缓存中最先进入所述缓存的历史数据移出所述缓存。
3.根据权利要求1所述的方法,其特征在于,所述根据当前缓存数据的信号变化沿在所述当前缓存数据中确定基准位置,包括:
在所述当前SERDES输出时钟周期内的输出数据移入预设长度的缓存后,若所述缓存首次填满,则将最接近所述缓存中间位置的信号变化沿作为所述基准位置;
若所述缓存非首次填满,则将与前一次基准位置最接近的信号变化沿作为所述基准位置。
4.根据权利要求1所述的方法,其特征在于,所述根据所述基准位置以及预设的选取策略在所述当前缓存数据中选取有效输出数据,可以包括:
在所述当前缓存数据中,按照预设的偏移长度从所述基准位置进行偏移后的数据作为所述有效输出数据。
5.根据权利要求4所述的方法,其特征在于,所述预设的偏移长度为过采样倍数N的一半。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述基准位置距所述缓存的数据出口的距离小于预设的距离阈值,且当前输入数据包括空闲idle信号时,将最接近所述缓存中间位置的信号变化沿作为新的基准位置。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述缓存为先入先出缓存。
8.根据权利要求1至6任一项所述的方法,其特征在于,所述信号的变化沿包括由0变1的位置,或者,由1变0的位置。
9.一种数据处理的设备,其特征在于,所述设备包括:存储器和处理器;
存储有数据处理程序的存储器;
处理器,配置为执行所述数据处理程序以实现如权利要求1至8中任一项所述的数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现如权利要求1至8中任一项所述的数据处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710377227.1A CN108932208A (zh) | 2017-05-25 | 2017-05-25 | 一种数据处理的方法和设备 |
PCT/CN2018/087764 WO2018214856A1 (zh) | 2017-05-25 | 2018-05-22 | 一种数据处理的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710377227.1A CN108932208A (zh) | 2017-05-25 | 2017-05-25 | 一种数据处理的方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108932208A true CN108932208A (zh) | 2018-12-04 |
Family
ID=64396219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710377227.1A Pending CN108932208A (zh) | 2017-05-25 | 2017-05-25 | 一种数据处理的方法和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108932208A (zh) |
WO (1) | WO2018214856A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806280A (zh) * | 2021-11-10 | 2021-12-17 | 新华三技术有限公司 | 一种数据处理方法、装置及处理芯片 |
CN113868166A (zh) * | 2021-10-09 | 2021-12-31 | 海光信息技术股份有限公司 | 自适应请求应答系统、方法、设备和计算机介质 |
CN114079601A (zh) * | 2020-08-19 | 2022-02-22 | 海能达通信股份有限公司 | 数据处理方法及其相关装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6693918B1 (en) * | 2000-04-28 | 2004-02-17 | Agilent Technologies, Inc. | Elastic buffers for serdes word alignment and rate matching between time domains |
CN102023946B (zh) * | 2010-12-02 | 2012-10-10 | 西北工业大学 | Usb1.1总线与高速智能统一总线的接口方法 |
CN102299787B (zh) * | 2011-08-25 | 2014-03-05 | 北京昆腾微电子有限公司 | 在高速系统级芯片电路中实现数据同步的方法和装置 |
CN102340316A (zh) * | 2011-09-07 | 2012-02-01 | 上海大学 | 基于fpga的微型空间过采样直流平衡串行解串器 |
CN103685060B (zh) * | 2012-09-12 | 2016-12-28 | 中兴通讯股份有限公司 | 数据包发送方法及装置 |
US9331724B2 (en) * | 2014-09-15 | 2016-05-03 | Xilinx, Inc. | Lane-to-lane de-skew for transmitters |
-
2017
- 2017-05-25 CN CN201710377227.1A patent/CN108932208A/zh active Pending
-
2018
- 2018-05-22 WO PCT/CN2018/087764 patent/WO2018214856A1/zh active Application Filing
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114079601A (zh) * | 2020-08-19 | 2022-02-22 | 海能达通信股份有限公司 | 数据处理方法及其相关装置 |
CN114079601B (zh) * | 2020-08-19 | 2023-10-20 | 海能达通信股份有限公司 | 数据处理方法及其相关装置 |
CN113868166A (zh) * | 2021-10-09 | 2021-12-31 | 海光信息技术股份有限公司 | 自适应请求应答系统、方法、设备和计算机介质 |
CN113868166B (zh) * | 2021-10-09 | 2024-05-17 | 海光信息技术股份有限公司 | 自适应请求应答系统、方法、设备和计算机介质 |
CN113806280A (zh) * | 2021-11-10 | 2021-12-17 | 新华三技术有限公司 | 一种数据处理方法、装置及处理芯片 |
Also Published As
Publication number | Publication date |
---|---|
WO2018214856A1 (zh) | 2018-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11061432B2 (en) | Data handoff between two clock domains sharing a fundamental beat | |
CN101771400B (zh) | 用于连续单元中建立/保持表征的方法和系统 | |
CN108932208A (zh) | 一种数据处理的方法和设备 | |
CN104702278A (zh) | 一种频率校准方法及装置 | |
TWI580215B (zh) | 訊號調變方法、可適性等化器及記憶體儲存裝置 | |
TWI363510B (en) | Data receiver and data retrieval method | |
CN110995241B (zh) | 一种自适应相位调整的lvds延时电路 | |
US20120177160A1 (en) | Communication circuit and method of adjusting sampling clock signal | |
US7587640B2 (en) | Method and apparatus for monitoring and compensating for skew on a high speed parallel bus | |
CN110768664B (zh) | 数据采样方法和装置 | |
US20200119727A1 (en) | Integrated circuit comprising circuitry to change a clock signal frequency while a data signal is valid | |
US9952281B2 (en) | Clock jitter and power supply noise analysis | |
CN113938361A (zh) | 一种通信编码防干扰方法、系统及存储介质 | |
JP2017135506A (ja) | スキュー調整回路、半導体装置およびスキューキャリブレーション方法 | |
CN105242903A (zh) | 随机数生成装置和方法 | |
US10020035B2 (en) | Reception circuit | |
US9514812B2 (en) | Apparatus and method for reading a storage device with a ring oscillator and a time-to-digital circuit | |
TWI635706B (zh) | 決定出取樣時脈訊號的取樣相位的方法及相關的電子裝置 | |
CN108345554B (zh) | 决定出取样时脉信号的取样相位的方法及相关的电子装置 | |
KR20160060873A (ko) | 반도체 장치 및 그 동작 방법 | |
US6317417B1 (en) | Method and apparatus for dynamic signal modification on a parallel bus | |
CN112306919A (zh) | 一种基于fpga的数据对齐方法、装置、设备及介质 | |
JP5259300B2 (ja) | サーボ制御装置 | |
US20170279461A1 (en) | Data serialization circuit | |
US11838398B2 (en) | Semiconductor device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181204 |