CN105955915A - 一种并行数据去偏斜的方法、装置及系统 - Google Patents

一种并行数据去偏斜的方法、装置及系统 Download PDF

Info

Publication number
CN105955915A
CN105955915A CN201610252125.2A CN201610252125A CN105955915A CN 105955915 A CN105955915 A CN 105955915A CN 201610252125 A CN201610252125 A CN 201610252125A CN 105955915 A CN105955915 A CN 105955915A
Authority
CN
China
Prior art keywords
parallel data
length
data
target position
shift register
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.)
Granted
Application number
CN201610252125.2A
Other languages
English (en)
Other versions
CN105955915B (zh
Inventor
李国川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201610252125.2A priority Critical patent/CN105955915B/zh
Publication of CN105955915A publication Critical patent/CN105955915A/zh
Application granted granted Critical
Publication of CN105955915B publication Critical patent/CN105955915B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

本发明提供了一种并行数据去偏斜的方法、装置及系统,该方法包括:将串行数据解析为特定位宽的并行数据,其中串行数据头部包括特定长度的特征序列;将并行数据输入移位寄存器,通过移位寄存器从最高位向最低位对所述并行数据进行移位;确定移位寄存器中首次出现识别序列时所述识别序列头部所处的目标位,其中所述识别序列为所述特征序列头部的一段连续序列;判断在移位寄存器中,从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据是否与所述特征序列相同;如果是,根据所述目标位确定偏移位数,将所述并行数据偏移所述偏移位数后发送给外部的数据接收端。本方案能够提高对高带宽并行数据进行去偏斜处理的效率。

Description

一种并行数据去偏斜的方法、装置及系统
技术领域
本发明涉及通信技术领域,特别涉及一种并行数据去偏斜的方法、装置及系统。
背景技术
随着计算机技术的发展与进步,用户对数据传输的速度要求越来越高,为了满足用户对数据传输速度的要求,需要通过更高带宽的数据通道来传输数据。例如,在并行处理数据库、分布式文件系统、云计算平台等大数据应用领域,一般采用带宽达到10G以上的高速通道来传输数据,甚至采用具有25G、30G或者更高带宽的高速通道来满足用户对数据传输速度的要求。
为了保证数据传输的可靠性,并行数据发送端与并行数据接收端之间通过串行线路传输数据,因此并行数据发送端需要将下发的并行数据转换为串行数据,串行数据到达并行数据接收端之前,需要将串行数据再次转换为相应的并行数据。由于并行线路的长度不同或并行数据发送端的时钟信号与并行数据接收端的时钟信号不同步,造成并行数据接收端接收到的并行数据与并行数据发送端发送的并行数据不一致,出现并行数据偏斜的情况,导致并行数据发送端与并行数据接收端无法正常通信,因而需要对通过串行数据转换而成的并行数据进行去偏斜处理后再发送给并行数据接收端。
目前,对并行数据进行去偏斜处理的方法主要是通过去偏斜逻辑电路实现。
针对于现有技术对并行数据进行去偏斜处理的方法,数据通道带宽越大大,去偏斜逻辑电路的复杂程度越高,当数据通道带宽达到10G以上时,去偏斜逻辑电路将极其复杂,需要耗费较长的时间对并行数据进行去偏斜处理,因而对高带宽并行数据进行去偏斜处理的效率较低。
发明内容
本发明实施例提供了一种并行数据去偏斜的方法、装置及系统,能够提高对高带宽并行数据进行去偏斜处理的效率。
本发明实施例提供了一种并行数据去偏斜的方法,包括:
接收外部的数据发送端发送的串行数据,并将所述串行数据解析为特定位宽的并行数据,其中所述串行数据头部包括特定长度的特征序列;
将所述并行数据输入移位寄存器,通过所述移位寄存器从最高位向最低位对所述并行数据进行移位;
确定所述移位寄存器中首次出现识别序列时所述识别序列头部所处的目标位,其中所述识别序列为所述特征序列头部的一段连续序列;
判断在所述移位寄存器中,从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据是否与所述特征序列相同;
如果是,根据所述目标位确定偏移位数,将所述并行数据偏移所述偏移位数后发送给外部的数据接收端。
优选地,所述移位寄存器的深度,即从所述最高位至所述最低位共包括的位数大于或等于所述特定长度与所述特定位宽之和。
优选地,在所述目标位至所述最低位之间,确定距所述目标位最近且与所述最低位之间的长度等于所述特定位宽整数倍的标准位,将所述目标位与所述标准位之间的长度值确定为所述偏移位数。
优选地,所述确定所述移位寄存器中首次出现识别序列时所述识别序列头部所处的目标位包括:
将所述特征序列头部预设长度的一段序列定义为所述识别序列;
以不同的起始位置将进入所述移位寄存器中的所述并行数据划分为至少一个长度等于所述预设长度的序列段;
判断所述至少一个序列段中是否包括与所述识别序列相同的序列段;
如果是,将与所述识别序列相同的序列段的头部所处位置确定为所述目标位。
优选地,所述预设长度大于或等于4bit。
优选地,该方法进一步包括:
如果判断从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列不同,则执行所述确定所述移位寄存器中首次出现识别序列时所述识别序列头部所处的目标位。
优选地,所述判断在所述移位寄存器中,从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据是否与所述特征序列相同包括:
重复对所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列进行匹配,如果所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列相同判断匹配成功,直至匹配成功次数达到预设次数后,判断所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列相同。
本发明实施例还提供了一种并行数据去偏斜的装置,包括:解析单元、移位单元、定位单元、判断单元及校正单元;
所述解析单元,用于接收外部的数据发送端发送的串行数据,并将所述串行数据解析为特定位宽的并行数据,其中所述串行数据头部包括特定长度的特征序列;
所述移位单元,用于将所述解析单元解析出的并行数据输入移位寄存器,通过所述移位寄存器从最高位向最低位对所述并行数据进行移位;
所述定位单元,用于确定所述移位寄存器中首次出现识别序列时所述识别序列头部所处的目标位,其中所述识别序列为所述特征序列头部的一段连续序列;
所述判断单元,用于判断在所述移位寄存器中,从所述定位单元确定出的目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据是否与所述特征序列相同;
所述校正单元,用于根据所述判断单元的判断结果,如果是,根据所述目标位确定偏移位数,将所述并行数据偏移所述偏移位数后发送给外部的数据接收端。
优选地,
所述校正单元,用于在所述目标位至所述最低位之间,确定距所述目标位最近且与所述最低位之间的长度值等于所述特定位宽整数倍的标准位,将所述目标位与所述标准位之间的长度值确定为所述偏移位数。
优选地,
所述定位单元,用于将所述特征序列头部预设长度的一段序列定义为所述识别序列,以不同的起始位置将进入所述移位寄存器中的所述并行数据划分为至少一个长度等于所述预设长度的序列段,判断所述至少一个序列段中是否包括与所述识别序列相同的序列段,如果是,将与所述识别序列相同的序列段的头部所处位置确定为所述目标位。
优选地,
所述判断单元,用于重复对所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列进行匹配,如果所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列相同判断匹配成功,直至匹配成功次数达到预设次数后,判断所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列相同。
本发明实施例还提供了一种并行数据去偏斜的系统,包括:数据发送端、数据接收端、移位寄存器及上述实施例提供的任意一种并行数据去偏斜的装置;
所述数据发送端,用于向所述并行数据去偏斜的装置发送串行数据;
所述移位寄存器,用于对所述并行数据去偏斜的装置解析出的并行数据进行移位;
所述数据接收端,用于接收所述数据去偏斜的装置发送的并行数据。
本发明实施例提供了一种并行数据去偏斜的方法、装置及系统,在串行数据头部设置特征序列,对串行数据进行解析获取并行数据后,将并行数据输入到移位寄存器中进行移位,通过确定特征序列头部在移位寄存器中的位置,确定出并行数据发生偏斜的量,根据并行数据发送偏斜的量对并行数据进行去偏斜校准,最终将校准后的并行数据发送给数据接收端。该方法不依赖于逻辑电路,无论带宽的高低均能够快速的对并行数据进行去偏斜处理,从而提高了对高带宽并行数据进行去偏斜处理的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种并行数据去偏斜的方法流程图;
图2是本发明另一个实施例提供的一种并行数据去偏斜的方法流程图;
图3是本发明一个实施例提供的一种以状态机实现并行数据去偏斜的方法流程图;
图4是本发明一个实施例提供的一种并行数据去偏斜的装置示意图;
图5是本发明一个实施例提供的一种并行数据去偏斜的系统示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种并行数据去偏斜的方法,该方法可以包括以下步骤:
步骤101:接收外部的数据发送端发送的串行数据,并将所述串行数据解析为特定位宽的并行数据,其中所述串行数据头部包括特定长度的特征序列;
步骤102:将所述并行数据输入移位寄存器,通过所述移位寄存器从最高位向最低位对所述并行数据进行移位;
步骤103:确定所述移位寄存器中首次出现识别序列时所述识别序列头部所处的目标位,其中所述识别序列为所述特征序列头部的一段连续序列;
步骤104:判断在所述移位寄存器中,从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据是否与所述特征序列相同,如果是,执行步骤105,否则结束当前流程;
步骤105:根据所述目标位确定偏移位数,将所述并行数据偏移所述偏移位数后发送给外部的数据接收端。
本发明实施例提供了一种并行数据去偏斜的方法,在串行数据头部设置特征序列,对串行数据进行解析获取并行数据后,将并行数据输入到移位寄存器中进行移位,通过确定特征序列头部在移位寄存器中的位置,确定出并行数据发生偏斜的量,根据并行数据发送偏斜的量对并行数据进行去偏斜校准,最终将校准后的并行数据发送给数据接收端。该方法不依赖于逻辑电路,无论带宽的高低均能够快速的对并行数据进行去偏斜处理,从而提高了对高带宽并行数据进行去偏斜处理的效率。
在本发明一个实施例中,用于对并行数据进行移位的移位寄存器的深度大于或等于特征序列的长度与并行数据的位宽之和,因为并行数据发生偏移的最大偏移量比并行数据的位宽小1,将移位寄存器的深度设置为大于或等于特征序列的长度与并行数据的位宽之和,可以保证并行数据的偏移量达到最大值时移位寄存器能够存放下所有的特征序列,从而能够快速对特征序列的头部进行定位,提高了对并行数据进行去偏斜处理的效率。
在本发明一个实施例中,确定目标位后,在移位寄存器中确定距目标位最近且与最低位之间的长度值等于并行数据位宽整数倍的标准位,将目标位于标准位之间的长度值确定为偏移位数。在并行数据不发生偏斜时,并行数据进入移位寄存器后,特征序列的头部处于与最低位之间的长度值等于并行数据位宽整数位的标准位上,通过确定目标位与标准位之间的长度值便可以确定并行数据发生的最小偏移位数,以该最小偏移位数对并行数据进行校正,可以减小去偏斜时对并行数据的偏移量,提高并行数据的输出速率。
在本发明一个实施例中,将特征序列头部预定长度的一段序列定义为识别序列,以不同的起始位置将进入移位寄存器中的并行数据划分为至少一个长度与识别序列长度相等的序列段,将各个序列段与识别序列进行比较,从中确定出与识别序列相同的序列端,将该序列段头部所处的位置确定为目标位。以不同的其实位置将进入移位寄存器中的并行数据划分为多个与识别序列长度相等的序列段,可以快速的查找到与识别序列相同的序列段,进而快速的确定特征序列头部在移位寄存器中所处的位置,从而提高对并行数据进行去偏移处理的效率。
在本发明一个实施例中,可以将识别序列的长度定义为大于或等于4bit,因为计算机数据均是以二进制代码传输的,如果识别序列的长度小于4bit,并行数据中将会有很多与识别序列相同的序列段,需要进行多次匹配才能确定特征序列的位置。当识别序列的长度大于或等于4时,并行数据中包括的干扰序列段将明显较少,缩短确定特征序列所处位置的时间,进一步提高了并行数据进行去偏斜处理的效率。
在本发明一个实施例中,当从目标位开始向移位寄存器最高位方向长度等于特征序列长度的并行数据与特征序列不相同时,说明对特征序列的捕获失败,重新对目标位进行确定,进而重新对特征序列进行捕获。这样保证在一次对特征序列进行捕获失败后,立即开始下一次的对特征序列进行捕获的过程,直至成功捕获到特征序列,从而保证每一次都能够对并行数据进行去偏斜处理,提高了对并行数据进行去偏斜处理的可靠性。
在本发明一个实施例中,在确定目标位后,将从目标位开始向移位寄存器最高位方向长度等于特征序列长度的并行数据与特征序列进行匹配,如果被匹配的两者相同判断为匹配成功,重复上述的匹配过程,直至匹配成功的次数达到预设的次数后,判断从目标位开始向移位寄存器最高位方向长度等于特征序列长度的并行数据与特征序列相同。这样,通过多次匹配的方法判断从目标位开始向移位寄存器最高位方向长度等于特征序列长度的并行数据与特征序列是否相同,可以避免非特征序列与特征序列匹配成功的情况出现,从而提高了对并行数据进行去偏斜处理的准确性。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图2所示,本发明实施例提供了一种并行数据去偏斜的方法,该方法可以包括以下步骤:
步骤201:判断是否与数据发送端连通,如果是,执行步骤202,否则结束当前流程。
在本发明一个实施例中,向数据发送端发送一个检测信号,如果检测信号发送成功,判断与数据发送端已经连接成功,相应的执行步骤202,否则说明与数据发送端的连接不成功,相应的结束当前流程。
例如,通过RX PMA(物理媒介适配层)产生一个输出寄存器指令,将该输出寄存器指令发送给数据发送端,如果该输出寄存器指令有效,判断已经与数据发送端连接成功,相应地执行步骤202。
步骤202:接收数据发送端发送的串行数据,并将所述串行数据转换为特定位宽的并行数据。
在本发明一个实施例中,数据发送端产生的待传输数据是并行数据,当数据发送端需要将待传输数据发送给数据接收端时,首先需要将待传输数据转换为串行数据,通过光纤、双绞线、PCB(印刷电路板)走线等物理媒介向数据接收端传输该串行数据。数据接收端接收待传输数据之前,需要将串行数据形式的待传输数据转换为特定位宽的并行数据。
例如,数据发送端通过一个数据lane(信道)发送了一个包括1024bit的串行数据,接收到该串行数据后,通过接口位宽为32的RX PMA将该串行数据解串为32位的并行数据。其中1024bit的串行数据头部包括有128bit的特征序列。
步骤203:将并行数据输入移位寄存器,从最高位开始向下对并行数据进行移位。
在本发明一个实施例中,将串行数据解串为并行数据后,将并行数据输入到移位寄存器中,从移位寄存器的最高位开始向下对并行数据进行移位,使并行数据逐位进行移位寄存器,其中移位寄存器的深度要多大或等于特征序列的长度与并行数据位宽之和。
例如,由于特征序列的长度为128bit,并行数据的位宽为32,所以可以选择深度为160的移位寄存器对并行数据进行移位。将32位的并行数据输入深度为160的移位寄存器后,从移位寄存器的159位开始,向移位寄存器的0位方向对并行数据进行移位处理。
步骤204:确定识别序列在移位寄存器中首次出现时,识别序列中所处的目标位。
在本发明一个实施例中,预先将特征序列头部预设长度的一端序列定义为识别序列,根据识别序列的长度,将进入移位寄存器中的并行数据划分为多个与识别序列长度相等的序列段,其中对并行数据进行划分时,以不同的起始位置对并行数据进行划分。对并行数据划分完成后,将以此将划分出的各个序列段与识别序列进行比较,从中确定出一个与识别序列相同的序列段,将该序列段头部(靠近移位寄存器最低位的一端)所处的位置确定为目标位。
例如,将128bit的特征序列头部的17bit定义为识别序列。针对于已经进入移位寄存器中的并行数据,以不同的开始位置对已经进入的并行数据进行划分,将并行数据划分为多个长度等于17bit的序列段,比如将移位寄存器中159位至143位、158位至142位、157位至141位……16位至0位的并行数据划分为144个序列段,将这144个序列段分别与识别序列进行比较,最终确定出移位寄存器中31位至15位的序列段与识别序列相同,将15位定位目标位。
步骤205:判断移位寄存器中从目标位开始向最高位方向长度等于特征序列长度的并行数据是否与特征序列相同,如果是,执行步骤206,否则执行步骤204。
在本发明一个实施例中,确定出目标位后,获取以目标位开始,向移位寄存器最高位方向长度等于特征序列的并行数据,将获取到的并行数据与特征序列进行比较,如果获取到的并行数据与特征序列相同,说明获取到的并行数据即为特征序列,相应地的执行步骤206,如果获取到的并行数据与特征序列不同,说明获取到的并行数据不是特征序列,目标位为干扰目标位,对特征序列的捕获失败,相应地执行步骤204,重新对目标位进行定位。
例如,获取移位寄存器中从142位至15位的并行数据,将这128bit的并行数据与128bit的特征序列进行比较,如果这128bit的并行数据与128bit的特征序列相同,则判断这128bit的并行数据即为特征序列,相应地执行步骤206,如果这128bit的并行数据与128bit的特征序列不同,则说明对特征序列的捕获失败,需要重新对目标位进行定位,返回重新执行步骤204。
步骤206:根据目标位确定偏移位数。
在本发明一个实施例中,根据步骤204确定出的目标位,在目标位至最低位之间,确定距目标位最近且与最低位之间的长度值等于并行数据位宽整数倍的标准位,将目标位与标准位之间的长度值确定为偏移位数。
例如,目标位在移位寄存器中为15位,移位寄存器中与最低位0位之间的长度等于并行数据位宽32整数倍的标准位有0为、32位、64位、96位及128位,而位于15位至最低位之间的仅有0位,因而将15位于0位之间的长度15确定为偏移位数。
步骤207:根据偏移位数对并行数据进行校正,将校正后的并行数据输出给数据结合端。
在本发明一个实施例中,确定出偏移位数之后,即可以确定RX PMA解串后的并行数据与数据发送端产生的并行数据相比发生了偏移位数大小的偏移,根据偏移位数将并行数据向对应的方向偏移一定位数进行校正,并将校正后的并行数据发送给数据接收端。
例如,如果解串后的并行数据与数据发送端产生的并行数据相比没有发生偏移,那么解串后的并行数据进入移位寄存器后,特征序列头部的第一个数据应该位于移位寄存器的0位、32位、64位、96位或128位,当前判断目标位为15位,说明解串后的并行数据向移位寄存器最高位方向偏移了15位,所以将并行数据向移位寄存器的最低位方向偏移15位后可以使解串后的并行数据与数据发送端产生的并行数据保持一致,从而使移位寄存器保持偏移15位的偏移机制,对并行数据进行校正,并将校正后的并行数据流发送给数据接收端。
需要说明的是,如图2所示的并行数据去偏斜的方法,该方法可以通过状态机实现,下面对状态机的工作流程进行详细说明:
如图3所示,在RX PMA输出寄存器指令有效表明两端设备连接后,初始化位漂移计数器所示的初始值为0,初始化状态机到Lock_idle状态301,将RX PMA解串成的32位并行数据接入状态机中,由MSB(最高位)开始向下移位,其中状态机的深度为32+128,标记状态机pre_lock_data[128+32-1:0];
在状态机pre_lock_data[128+32-1:0]第一次接收到特征序列的部分连续序列(最少为4bit)后,置slip_en脉冲为1。当第一次检测到特征序列的部分连续序列在状态机中位置为pre_lock_data[127+32-128:15]=“特征序列的低16位”,标定slip_en=1,设位漂移计数器的初始值为15,状态机跳转至Slip_start转态302,在状态Slip_start转态302初始化计数器be_count+1,当be_count=3时,状态机跳转至Slip_check状态303;
在Slip_check状态303检测pre_lock_data[127+15:15]是否等于特征序列,如果相等,跳转至Slip_good状态306,置good_count+1,如果err_count==1,则err_count-1;状态机跳转至Slip_check状态303,检测pre_lock_data[127+15:15]是否等于特征序列,如果相等继续执行检测pre_lock_data[127+15:15]是否等于特征序列的步骤,在Slip_good状态306中good_count大于或等于3后,状态机跳转至Slip_lock_done状态305,在Slip_lock_done状态305清零good_count、err_count,保持位漂移计数器的初始值为15,输出校正后的数据流;
在Slip_check状态303如果pre_lock_data[127+15:15]与特征序列不相等,状态机跳转至Slip_err状态304,置err_count+1,在Slip_err状态304如果good_count大于1则置good_count-1,同时在Slip_err状态304,如果err_count大于1,则状态机跳转至Lock_idle状态301,同时清零good_count、err_count、位偏移计数器的初始值及slip_en,重新开始捕捉和检测。
如图4所示,本发明一个实施例提供了一种并行数据去偏斜的装置,包括:解析单元401、移位单元402、定位单元403、判断单元404及校正单元405;
所述解析单元401,用于接收外部的数据发送端发送的串行数据,并将所述串行数据解析为特定位宽的并行数据,其中所述串行数据头部包括特定长度的特征序列;
所述移位单元402,用于将所述解析单元401解析出的并行数据输入移位寄存器,通过所述移位寄存器从最高位向最低位对所述并行数据进行移位;
所述定位单元403,用于确定所述移位寄存器中首次出现识别序列时所述识别序列头部所处的目标位,其中所述识别序列为所述特征序列头部的一段连续序列;
所述判断单元404,用于判断在所述移位寄存器中,从所述定位单元403确定出的目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据是否与所述特征序列相同;
所述校正单元405,用于根据所述判断单元404的判断结果,如果是,根据所述目标位确定偏移位数,将所述并行数据偏移所述偏移位数后发送给外部的数据接收端。
在本发明一个实施例中,所述校正单元,用于在所述目标位至所述最低位之间,确定距所述目标位最近且与所述最低位之间的长度值等于所述特定位宽整数倍的标准位,将所述目标位与所述标准位之间的长度值确定为所述偏移位数。
在本发明一个实施例中,所述定位单元用于将所述特征序列头部预设长度的一段序列定义为所述识别序列,以不同的起始位置将进入所述移位寄存器中的所述并行数据划分为至少一个长度等于所述预设长度的序列段,判断所述至少一个序列段中是否包括与所述识别序列相同的序列段,如果是,将与所述识别序列相同的序列段的头部所处位置确定为所述目标位。
在本发明一个实施例中,所述判断单元用于重复对所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列进行匹配,如果所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列相同判断匹配成功,直至匹配成功次数达到预设次数后,判断所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列相同。
需要说明的是,上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
如图5所示,本发明一个实施例提供了一种并行数据去偏斜的系统,包括:数据发送端501、数据接收端502、移位寄存器503及本发明实施例提供的任意一种并行数据去偏斜的装置504;
所述数据发送端501,用于向所述并行数据去偏斜的装置504发送串行数据;
所述移位寄存器503,用于对所述并行数据去偏斜的装置504解析出的并行数据进行移位;
所述数据接收端502,用于接收所述数据去偏斜的装置504发送的并行数据。
本发明提供的各个实施例,至少具有如下有益效果:
1、本发明实施例中,在串行数据头部设置特征序列,对串行数据进行解析获取并行数据后,将并行数据输入到移位寄存器中进行移位,通过确定特征序列头部在移位寄存器中的位置,确定出并行数据发生偏斜的量,根据并行数据发送偏斜的量对并行数据进行去偏斜校准,最终将校准后的并行数据发送给数据接收端。该方法不依赖于逻辑电路,无论带宽的高低均能够快速的对并行数据进行去偏斜处理,从而提高了对高带宽并行数据进行去偏斜处理的效率。
2、本发明实施例中,移位寄存器的深度大于或等于特征序列长度与并行数据位宽之和,这样,即使并行数据发生偏斜的量达到最大值时,移位寄存器也能够存放下所有的特征序列,从而能够实现快速的对特征序列进行定位,提高对并行数据进行去偏斜处理的效率。
3、本发明实施例中,设定的识别序列的长度要大于或等于4bit,当识别序列的长度大于或等于4bit时,并行数据中与识别序列相同的序列段将明显减少,防止并行数据中包括多个与识别序列相同的序列段,减小并行数据中非特征序列上的与识别序列相同的序列段对识别序列定位造成的干扰,从而可以缩短对特征序列进行捕获所需的时间,进一步提高对并行数据进行去偏斜处理的效率。
4、本发明实施例中,对从目标位开始向最高位方向长度等于特征序列长度的并行数据与特征序列进行多次匹配,直至匹配成功的次数达到预设的次数后,比如匹配成功的次数达到3次后,才确定从目标位开始向最高位方向长度等于特征序列长度的并行数据就是特征序列。这样通过多次匹配的方法,可以避免非特征序列与特征序列匹配成功的情况出现,从而提高了对并行数据进行去偏斜处理的准确性。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种并行数据去偏斜的方法,其特征在于,包括:
接收外部的数据发送端发送的串行数据,并将所述串行数据解析为特定位宽的并行数据,其中所述串行数据头部包括特定长度的特征序列;
将所述并行数据输入移位寄存器,通过所述移位寄存器从最高位向最低位对所述并行数据进行移位;
确定所述移位寄存器中首次出现识别序列时所述识别序列头部所处的目标位,其中所述识别序列为所述特征序列头部的一段连续序列;
判断在所述移位寄存器中,从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据是否与所述特征序列相同;
如果是,根据所述目标位确定偏移位数,将所述并行数据偏移所述偏移位数后发送给外部的数据接收端。
2.根据权利要求1所述的方法,其特征在于,
所述移位寄存器的深度,即从所述最高位至所述最低位共包括的位数大于或等于所述特定长度与所述特定位宽之和;
和/或,
所述根据所述目标位确定偏移位数包括:
在所述目标位至所述最低位之间,确定距所述目标位最近且与所述最低位之间的长度值等于所述特定位宽整数倍的标准位,将所述目标位与所述标准位之间的长度值确定为所述偏移位数。
3.根据权利要求1所述的方法,其特征在于,
所述确定所述移位寄存器中首次出现识别序列时所述识别序列头部所处的目标位包括:
将所述特征序列头部预设长度的一段序列定义为所述识别序列;
以不同的起始位置将进入所述移位寄存器中的所述并行数据划分为至少一个长度等于所述预设长度的序列段;
判断所述至少一个序列段中是否包括与所述识别序列相同的序列段;
如果是,将与所述识别序列相同的序列段的头部所处位置确定为所述目标位。
4.根据权利要求3所述的方法,其特征在于,
所述预设长度大于或等于4bit。
5.根据权利1所述的方法,其特征在于,进一步包括:
如果判断从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列不同,则执行所述确定所述移位寄存器中首次出现识别序列时所述识别序列头部所处的目标位。
6.根据权利要求1至5中任一所述的方法,其特征在于,
所述判断在所述移位寄存器中,从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据是否与所述特征序列相同包括:
重复对所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列进行匹配,如果所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列相同判断匹配成功,直至匹配成功次数达到预设次数后,判断所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列相同。
7.一种并行数据去偏斜的装置,其特征在于,包括:解析单元、移位单元、定位单元、判断单元及校正单元;
所述解析单元,用于接收外部的数据发送端发送的串行数据,并将所述串行数据解析为特定位宽的并行数据,其中所述串行数据头部包括特定长度的特征序列;
所述移位单元,用于将所述解析单元解析出的并行数据输入移位寄存器,通过所述移位寄存器从最高位向最低位对所述并行数据进行移位;
所述定位单元,用于确定所述移位寄存器中首次出现识别序列时所述识别序列头部所处的目标位,其中所述识别序列为所述特征序列头部的一段连续序列;
所述判断单元,用于判断在所述移位寄存器中,从所述定位单元确定出的目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据是否与所述特征序列相同;
所述校正单元,用于根据所述判断单元的判断结果,如果是,根据所述目标位确定偏移位数,将所述并行数据偏移所述偏移位数后发送给外部的数据接收端。
8.根据权利要求7所述的装置,其特征在于,
所述校正单元,用于在所述目标位至所述最低位之间,确定距所述目标位最近且与所述最低位之间的长度值等于所述特定位宽整数倍的标准位,将所述目标位与所述标准位之间的长度值确定为所述偏移位数;
和/或,
所述定位单元,用于将所述特征序列头部预设长度的一段序列定义为所述识别序列,以不同的起始位置将进入所述移位寄存器中的所述并行数据划分为至少一个长度等于所述预设长度的序列段,判断所述至少一个序列段中是否包括与所述识别序列相同的序列段,如果是,将与所述识别序列相同的序列段的头部所处位置确定为所述目标位。
9.根据权利要求7或8所述的装置,其特征在于,
所述判断单元,用于重复对所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列进行匹配,如果所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列相同判断匹配成功,直至匹配成功次数达到预设次数后,判断所述移位寄存器中从所述目标位开始向所述最高位方向长度等于所述特定长度的所述并行数据与所述特征序列相同。
10.一种并行数据去偏斜的系统,其特征在于,包括:数据发送端、数据接收端、移位寄存器及权利要求7至9中任一所述的并行数据去偏斜的装置;
所述数据发送端,用于向所述并行数据去偏斜的装置发送串行数据;
所述移位寄存器,用于对所述并行数据去偏斜的装置解析出的并行数据进行移位;
所述数据接收端,用于接收所述数据去偏斜的装置发送的并行数据。
CN201610252125.2A 2016-04-21 2016-04-21 一种并行数据去偏斜的方法、装置及系统 Active CN105955915B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610252125.2A CN105955915B (zh) 2016-04-21 2016-04-21 一种并行数据去偏斜的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610252125.2A CN105955915B (zh) 2016-04-21 2016-04-21 一种并行数据去偏斜的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN105955915A true CN105955915A (zh) 2016-09-21
CN105955915B CN105955915B (zh) 2018-10-26

Family

ID=56915023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610252125.2A Active CN105955915B (zh) 2016-04-21 2016-04-21 一种并行数据去偏斜的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN105955915B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106980592A (zh) * 2017-03-21 2017-07-25 电子科技大学 一种连续并行序列检测方法
CN112188203A (zh) * 2020-09-11 2021-01-05 烽火通信科技股份有限公司 一种高速数据流的快速定帧方法及系统
CN114546495A (zh) * 2021-09-03 2022-05-27 北京睿芯众核科技有限公司 适用于risc-v架构处理器的地址属性检查的方法及系统
CN114564441A (zh) * 2022-04-24 2022-05-31 飞腾信息技术有限公司 片上系统、数据处理方法及计算机设备
CN115617400A (zh) * 2022-12-20 2023-01-17 杭州加速科技有限公司 一种寄存器匹配方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030112827A1 (en) * 2001-12-13 2003-06-19 International Business Machines Corporation Method and apparatus for deskewing parallel serial data channels using asynchronous elastic buffers
CN1561619A (zh) * 2001-09-28 2005-01-05 皇家飞利浦电子股份有限公司 具有不耐歪斜的数据群及数据有效性指示符的并行数据通信
CN1902613A (zh) * 2003-12-31 2007-01-24 英特尔公司 为串行点到点链路通过非数据符号处理进行通道到通道的偏斜校正
CN102113220A (zh) * 2008-06-26 2011-06-29 高通股份有限公司 低功率解串器和解多路复用方法
CN102201848A (zh) * 2011-03-23 2011-09-28 西安电子科技大学 基于发射天线的多通道同步上变频系统及方法
CN103503391A (zh) * 2011-03-09 2014-01-08 美国亚德诺半导体公司 用于对串行数据传输进行偏斜校正的设备和方法
CN105279128A (zh) * 2014-06-22 2016-01-27 航天恒星科技有限公司 并行数据同步方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1561619A (zh) * 2001-09-28 2005-01-05 皇家飞利浦电子股份有限公司 具有不耐歪斜的数据群及数据有效性指示符的并行数据通信
US20030112827A1 (en) * 2001-12-13 2003-06-19 International Business Machines Corporation Method and apparatus for deskewing parallel serial data channels using asynchronous elastic buffers
CN1902613A (zh) * 2003-12-31 2007-01-24 英特尔公司 为串行点到点链路通过非数据符号处理进行通道到通道的偏斜校正
CN102113220A (zh) * 2008-06-26 2011-06-29 高通股份有限公司 低功率解串器和解多路复用方法
CN103503391A (zh) * 2011-03-09 2014-01-08 美国亚德诺半导体公司 用于对串行数据传输进行偏斜校正的设备和方法
CN102201848A (zh) * 2011-03-23 2011-09-28 西安电子科技大学 基于发射天线的多通道同步上变频系统及方法
CN105279128A (zh) * 2014-06-22 2016-01-27 航天恒星科技有限公司 并行数据同步方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
卢姝颖等: "抗数据偏斜的高效并行join运算算法研究", 《电脑知识与技术》 *
张鹏宇等: "抗偏斜的并行二元连接算法研究", 《华中理工大学学报》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106980592A (zh) * 2017-03-21 2017-07-25 电子科技大学 一种连续并行序列检测方法
CN106980592B (zh) * 2017-03-21 2019-06-21 电子科技大学 一种连续并行序列检测方法
CN112188203A (zh) * 2020-09-11 2021-01-05 烽火通信科技股份有限公司 一种高速数据流的快速定帧方法及系统
CN114546495A (zh) * 2021-09-03 2022-05-27 北京睿芯众核科技有限公司 适用于risc-v架构处理器的地址属性检查的方法及系统
CN114546495B (zh) * 2021-09-03 2022-12-20 北京睿芯众核科技有限公司 适用于risc-v架构处理器的地址属性检查的方法及系统
CN114564441A (zh) * 2022-04-24 2022-05-31 飞腾信息技术有限公司 片上系统、数据处理方法及计算机设备
CN114564441B (zh) * 2022-04-24 2022-07-05 飞腾信息技术有限公司 片上系统、数据处理方法及计算机设备
CN115617400A (zh) * 2022-12-20 2023-01-17 杭州加速科技有限公司 一种寄存器匹配方法及装置

Also Published As

Publication number Publication date
CN105955915B (zh) 2018-10-26

Similar Documents

Publication Publication Date Title
CN105955915A (zh) 一种并行数据去偏斜的方法、装置及系统
CN107113087B (zh) 将帧经由总线系统从发送器串行传输至至少一个接收器的方法和用于总线系统的参与站
KR20110080175A (ko) 다중 직렬 수신기용 자동 데이터 정렬기를 위한 방법, 장치, 및 시스템
US8281189B2 (en) SATA primitive prediction and correction
US10601576B2 (en) Communication devices, method for detecting an edge in a received signal and method for receiving data
EP2436130B1 (en) Method and apparatus for aligning a serial bit stream with a parallel output
CN109871344B (zh) 通讯系统、接口电路及其传输信号的方法
US9058266B2 (en) Deskew apparatus and method for peripheral component interconnect express
CN112235218B (zh) 曼彻斯特信号解码方法及装置
CN104270155B (zh) 一种曼彻斯特码流接收抗干扰比特解析方法
US7190739B2 (en) Regenerator circuit of serial data and method of regenerating the same
US7528748B2 (en) Serial data receiving circuit and serial data receiving method
US7509226B2 (en) Apparatus and method for testing non-deterministic device data
CN112235221B (zh) Bpsk信号解码方法及装置
US5003390A (en) Search and lock technique for reliable acquisition of data transmitted via television signals
CN102111401A (zh) 协议识别方法、协议识别装置及设备
EP4152659A1 (en) Communication device and communication system
CN115086454A (zh) 一种自适应振镜控制信号接口的方法、系统及存储介质
US7151470B1 (en) Data converter with multiple conversions for padded-protocol interface
KR20030075140A (ko) 데이터의 위치 정보 탐색을 통한 데이터 복원 방법 및상기 알고리즘을 적용한 직렬 데이터 수신기
KR940000180B1 (ko) 통신제어장치
CN100388653C (zh) 高速码流多类型数据统计总线的实现方法
CN114614949B (zh) 状态机状态指示功能验证方法、装置和电子设备
CN114640403B (zh) eSIM终端的测试方法、装置、终端及存储介质
CN116455365B (zh) 一种捕获电路、微处理芯片及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant