CN116701271B - Ucie适配层的兼容多种批长度的数据传输模块和方法 - Google Patents

Ucie适配层的兼容多种批长度的数据传输模块和方法 Download PDF

Info

Publication number
CN116701271B
CN116701271B CN202310694680.0A CN202310694680A CN116701271B CN 116701271 B CN116701271 B CN 116701271B CN 202310694680 A CN202310694680 A CN 202310694680A CN 116701271 B CN116701271 B CN 116701271B
Authority
CN
China
Prior art keywords
data
batch
mapping table
bit width
length
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.)
Active
Application number
CN202310694680.0A
Other languages
English (en)
Other versions
CN116701271A (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.)
Shanghai Kuixin Integrated Circuit Design Co ltd
Original Assignee
Shanghai Kuixin Integrated Circuit Design 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 Shanghai Kuixin Integrated Circuit Design Co ltd filed Critical Shanghai Kuixin Integrated Circuit Design Co ltd
Priority to CN202310694680.0A priority Critical patent/CN116701271B/zh
Publication of CN116701271A publication Critical patent/CN116701271A/zh
Application granted granted Critical
Publication of CN116701271B publication Critical patent/CN116701271B/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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion
    • 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/382Information transfer, e.g. on bus using universal interface adapter

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供一种UCIE适配层的兼容多种批长度的数据传输模块和方法,通过构建基准映射表,在不同的批长度和单个数据位宽情形下,可以复用基准映射表,在必要时对基准映射表进行微调,得到适应当前批长度和单个数据位宽的映射表,可以使得UCIE适配层在复用同一处理逻辑基础上得以兼容多种批长度的数据,并且包括基准映射表的存储空间、数据缓冲区的存储空间、计数寄存器等器件的控制逻辑在内的资源均可以在不同批长度场景下复用,大大提升了资源复用程度和资源利用率,因此降低了实现该数据传输模块处理逻辑的硬件数量和整体芯片面积。此外,利用基准映射表或其子表进行数据编码时,在多种场景下可以进行数据满载传输,有效提升了数据传输效率。

Description

UCIE适配层的兼容多种批长度的数据传输模块和方法
技术领域
本发明涉及数据传输技术领域,尤其涉及一种UCIE适配层的兼容多种批长度的数据传输模块和方法。
背景技术
UCIE(Universal Chiplet Interconnect Express,通用芯粒互连技术)是高速互联领域当前最快速的解决方案,适配层(Adapter Layer)是其三层结构的中间层。AdapterLayer在接收并传输协议层发送的数据时,需要支持多种批长度,并且需要缓存数据以进行编码。其中,批长度是指协议层单次发送的数据个数,目前UCIE支持的批长度包括16、8、4等。而不同的批长度对应不同的编码方式,因此需要一种可行方案支持多种批长度且高效实现对数据的缓存。然而,如果为了使Adapter Layer支持多种批长度,从而为单个数据位宽(例如64B、32B和16B等)和批长度的每种排列组合均单独设计数据编码和缓存逻辑,会导致实现该数据编码和缓存逻辑的底层芯片面积过大。
发明内容
本发明提供一种UCIE适配层的兼容多种批长度的数据传输模块和方法,用以解决为单个数据位宽和批长度的每种排列组合单独设计数据编码和缓存逻辑导致底层芯片面积过大的缺陷。
本发明提供一种UCIE适配层的兼容多种批长度的数据传输模块,包括:
数据接收单元,用于接收并保存协议层基于预设批长度发送的批量数据;
表查找单元,用于基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表;所述基准映射表是针对单个数据位宽为64B、批长度为16的情形建立的;所述基准映射表中每一行或列对应各个时钟周期的数据编码格式;
数据编码传输单元,用于基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输;编码后的数据的数据量等于所述批量数据中单个数据的位宽。
根据本发明提供的一种UCIE适配层的兼容多种批长度的数据传输模块,所述基准映射表中第一行或列对应的数据编码格式为数据头、当前时钟周期的待发送数据;所述基准映射表中最后一行或列对应的数据编码格式为数据缓冲区数据、校验码;所述基准映射表中其余行或列对应的数据编码格式为数据缓冲区数据、校验码、数据头、当前时钟周期的待发送数据;所述基准映射表中任一行或列对应的数据编码格式中各类数据的数据量之和等于64B;所述数据缓冲区数据为上一时钟周期的待发送数据中未发送的部分。
根据本发明提供的一种UCIE适配层的兼容多种批长度的数据传输模块,所述基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输,具体包括:
基于计数寄存器的当前值,确定所述批量数据中的当前待发送数据;
基于所述计数寄存器的当前值以及所述批量数据对应的映射表,确定当前时钟周期的数据编码格式;
基于所述当前时钟周期的数据编码格式对所述数据缓冲区中的数据以及所述当前待发送数据进行数据编码和传输;
基于所述当前待发送数据中未被传输的部分覆盖所述数据缓冲区;
若所述计数寄存器的当前值为所述计数寄存器取值范围的最大值,则将所述计数寄存器的值置0;否则,将所述计数寄存器的值加1。
根据本发明提供的一种UCIE适配层的兼容多种批长度的数据传输模块,当所述批量数据中单个数据的位宽等于64B且所述预设批长度为8或4时,所述基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表,具体包括:
针对所述批量数据中的第一足量批量数据,确定所述基准映射表作为所述第一足量批量数据对应的映射表;
针对所述批量数据中的第一余量批量数据,基于所述第一余量批量数据中的数据个数截取所述基准映射表,得到所述第一余量批量数据对应的映射表;
其中,当所述预设批长度为8时,第一余量批量数据为一个第一单批数据,所述第一单批数据由8个64B数据构成;当所述预设批长度为4时,第一余量批量数据由至多三个第二单批数据构成,所述第二单批数据由4个64B数据构成;所述第一足量批量数据由双倍数的第一单批数据或四倍数的第二单批数据构成。
根据本发明提供的一种UCIE适配层的兼容多种批长度的数据传输模块,针对所述批量数据中的第一余量批量数据,所述基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输,具体包括:
当基于所述第一余量批量数据对应的映射表中的最后一行或最后一列进行数据编码时,在校验码之后进行补零操作。
根据本发明提供的一种UCIE适配层的兼容多种批长度的数据传输模块,当所述批量数据中单个数据的位宽等于32B且所述预设批长度为8或4时,所述基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表,具体包括:
针对所述批量数据中的第二足量批量数据,截取所述基准映射表的前九行或前九列的特定位宽的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于32B,得到所述第二足量批量数据对应的映射表;
针对所述批量数据中的第二余量批量数据,截取所述基准映射表的前五行或前五列的特定位宽的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于32B,得到所述第二余量批量数据对应的映射表;
其中,当所述预设批长度为8时,所述批量数据中不存在第二余量批量数据,所述第二足量批量数据由一个第三单批数据构成;当所述预设批长度为4时,第二余量批量数据由一个第四单批数据构成,所述第二足量批量数据由双倍数的第四单批数据构成;所述第三单批数据由8个32B数据构成,所述第四单批数据由4个32B数据构成。
根据本发明提供的一种UCIE适配层的兼容多种批长度的数据传输模块,针对所述批量数据中的第二余量批量数据,所述基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输,具体包括:
当基于所述第二余量批量数据对应的映射表中的最后一行或最后一列进行数据编码时,在校验码之后进行补零操作。
根据本发明提供的一种UCIE适配层的兼容多种批长度的数据传输模块,当所述批量数据中单个数据的位宽等于16B且所述预设批长度为4时,所述基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表,具体包括:
截取所述基准映射表的前五行或前五列的特定位宽的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于16B,得到所述批量数据对应的映射表;其中,所述批量数据由一个第五单批数据构成,所述第五单批数据由4个16B数据构成。
本发明还提供一种UCIE适配层的兼容多种批长度的数据传输方法,包括:
接收并保存协议层基于预设批长度发送的批量数据;
基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表;所述基准映射表是针对单个数据位宽为64B、批长度为16的情形建立的;所述基准映射表中每一行或列对应各个时钟周期的数据编码格式;
基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输;编码后的数据的数据量等于所述批量数据中单个数据的位宽。
根据本发明提供的一种UCIE适配层的兼容多种批长度的数据传输方法,所述基准映射表中第一行或列对应的数据编码格式为数据头、当前时钟周期的待发送数据;所述基准映射表中最后一行或列对应的数据编码格式为数据缓冲区数据、校验码;所述基准映射表中其余行或列对应的数据编码格式为数据缓冲区数据、校验码、数据头、当前时钟周期的待发送数据;所述基准映射表中任一行或列对应的数据编码格式中各类数据的数据量之和等于64B;所述数据缓冲区数据为上一时钟周期的待发送数据中未发送的部分。
本发明提供的UCIE适配层的兼容多种批长度的数据传输模块和方法,通过构建基准映射表,在当前数据的批长度和单个数据位宽与基准映射表对应的批长度和单个数据位宽不一致时,可以复用基准映射表或其部分,在必要时对基准映射表进行微调,得到适应当前批长度和单个数据位宽的映射表,从而基于该映射表对批量数据中的各个数据进行编码和传输,可以使得UCIE适配层在复用同一处理逻辑(即数据接收→查找映射表→数据编码传输)基础上得以兼容多种批长度的数据,并且包括基准映射表的存储空间、数据缓冲区的存储空间、计数寄存器等器件的控制逻辑在内的资源均可以在不同批长度场景下复用,大大提升了资源复用程度和资源利用率,因此降低了实现该数据传输模块处理逻辑的硬件数量和整体芯片面积。此外,利用基准映射表或其子表进行数据编码时,在多种场景下可以进行数据满载传输,有效提升了数据传输效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的UCIE适配层的兼容多种批长度的数据传输模块的结构示意图;
图2是本发明提供的基准映射表的示意图;
图3是本发明提供的批量数据对应的映射表之一;
图4是本发明提供的批量数据对应的映射表之二;
图5是本发明提供的批量数据对应的映射表之三;
图6是本发明提供的批量数据对应的映射表之四;
图7是本发明提供的批量数据对应的映射表之五;
图8是本发明提供的UCIE适配层的兼容多种批长度的数据传输方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明提供的UCIE适配层的兼容多种批长度的数据传输模块的结构示意图,该数据传输模块应用于UCIE的适配层。如图1所示,该模块包括:数据接收单元110、表查找单元120和数据编码传输单元130。
其中,数据接收单元110用于接收并保存协议层基于预设批长度发送的批量数据;
表查找单元120用于基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表;所述基准映射表是针对单个数据位宽为64B、批长度为16的情形建立的;所述基准映射表中每一行或列对应各个时钟周期的数据编码格式;
数据编码传输单元130用于基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输;编码后的数据的数据量等于所述批量数据中单个数据的位宽。
此处,数据接收单元110实时接收协议层基于预设批长度发送的批量数据并将其保存。其中,协议层单次发送的数据个数等于上述预设批长度。以预设批长度为8、单个数据的位宽(即单个数据的数据量)为64B为例,协议层发送的批量数据可以为8个64B数据构成的单批数据,协议层还可以以背靠背模式发送无缝隙的批量数据,即可以连续发送多个预设批长度的数据,此时批量数据可以是多组单批数据。
针对数据接收单元保存的批量数据,需要对其进行编码处理从而将其传输至下一层。其中,表查找单元120可以基于预先构建的基准映射表,结合上述预设批长度以及批量数据中单个数据的位宽,确定该批量数据对应的映射表。
此处,基准映射表是针对单个数据位宽为64B、批长度为16的情形建立的,该基准映射表中每一行或列对应各个时钟周期的数据编码格式。即,基准映射表可以用于指示单个数据位宽为64B、批长度为16的批量数据的数据编码方式。当批量数据满足单个数据位宽为64B、批长度为16的条件时,该基准映射表即为该批量数据对应的映射表,后续数据编码传输单元130可以利用该映射表中各行或者各列中指示的不同时钟周期的数据编码格式依次对该批量数据中的各个数据进行数据编码并进行传输。
当数据接收单元110接收的批量数据对应的预设批长度不为16时,表查找单元120会基于该预设批长度以及批量数据中单个数据的位宽,在基准映射表的基础上进行截取或微调,以复用该基准映射表的资源。具体而言,当批量数据对应的预设批长度不为16但单个数据的位宽等于64B时,可以基于预设批长度截取基准映射表的部分作为该批量数据对应的映射表,以对该批量数据中的数据进行编码;当批量数据对应的预设批长度不为16且单个数据的位宽不等于64B时,除了基于预设批长度截取基准映射表的部分之外,由于单个数据的位宽发生了变化,还需要基于批量数据中单个数据的位宽对截取部分的数据编码格式进行数据量的微调,以满足编码后数据的数据量等于批量数据中单个数据的位宽的条件,并将微调后的结果作为该批量数据对应的映射表,以对该批量数据中的数据进行编码。
在一些实施例中,基准映射表中第一行或列对应的数据编码格式为数据头、当前时钟周期的待发送数据;所述基准映射表中最后一行或列对应的数据编码格式为数据缓冲区数据、校验码;所述基准映射表中其余行或列对应的数据编码格式为数据缓冲区数据、校验码、数据头、当前时钟周期的待发送数据;所述基准映射表中任一行或列对应的数据编码格式中各类数据的数据量之和等于64B;所述数据缓冲区数据为上一时钟周期的待发送数据中未发送的部分。基准映射表的一种构建形式如图2所示,每一列对应相应时钟周期的数据编码格式,且编码顺序为由上至下,除第一列和最后一列以外,每一列对应的数据编码格式为数据缓冲区数据、校验码、数据头、当前时钟周期的待发送数据,而第一列的编码格式为数据头、当前时钟周期的待发送数据,最后一列的编码格式为数据缓冲区数据、校验码。基准映射表中的数值代表相应位置的数据量,h代表数据头(默认2B),e代表校验码(默认2B)。可见,由于数据头与校验码的数据量是固定的,而数据缓冲区数据的数据量是上一时钟周期的待发送数据中未发送的部分,因此根据前一列的数据编码格式可以推导出当前列的数据编码格式。
当批量数据满足单个数据位宽为64B、批长度为16的条件时,利用该基准映射表对该批量数据中的各个数据进行数据编码后进行传输可以实现满载的效果(即每个时钟周期都传输了64B数据),最大效率地实现了数据的实时处理。其中,适配层的TX模块可以每16个时钟周期将协议层挂起1个时钟周期,以防止溢出并确保自身的实时操作。
在一些实施例中,当所述批量数据中单个数据的位宽等于64B且所述预设批长度为8或4时,可以通过如下方式确定批量数据对应的映射表:
针对所述批量数据中的第一足量批量数据,确定所述基准映射表作为所述第一足量批量数据对应的映射表;
针对所述批量数据中的第一余量批量数据,基于所述第一余量批量数据中的数据个数截取所述基准映射表,得到所述第一余量批量数据对应的映射表;
其中,当所述预设批长度为8时,第一余量批量数据为一个第一单批数据,所述第一单批数据由8个64B数据构成;当所述预设批长度为4时,第一余量批量数据由至多三个第二单批数据构成,所述第二单批数据由4个64B数据构成;所述第一足量批量数据由双倍数的第一单批数据或四倍数的第二单批数据构成。
具体而言,当协议层采用不同的发送模式(例如背靠背模式或非背靠背模式)发送批量数据时,批量数据可能存在多种情况。以预设批长度为8为例,若协议层采用背靠背模式发送了偶数个无缝隙的第一单批数据,则批量数据仅包含第一足量批量数据,针对第一足量批量数据,由于两个第一单批数据可以组合为一个批长度为16的单批数据(即16个64B数据),故第一足量批量数据可以划分为多组批长度为16的单批数据,因此针对此种情况,可以直接复用基准映射表,将其作为第一足量批量数据的映射表,利用该映射表依次对第一足量批量数据中的各个数据进行编码,实现资源复用。此外,通过两两组合第一单批数据,利用基准映射表对两个第一单批数据中的各个数据进行编码,也能实现数据满载传输,提升了数据传输效率和资源利用率。若协议层发送了奇数个第一单批数据(一个第一单批数据或三个以上奇数个无缝隙的第一单批数据),则该批量数据包含第一余量批量数据(即一个未能参与组合的第一单批数据)。针对该第一余量批量数据,可以基于第一余量批量数据中的数据个数(此例为8)截取基准映射表的前九行或前九列的特定位宽(此例中为64B)的数据,得到第一余量批量数据对应的映射表,该映射表的一种形式如图3所示。
需要说明的是,基准映射表的前九行或前九列(以及后文中的前五行或前五列)是指按时间先后顺序的前九个(或前五个)时钟周期对应的数据编码格式。
接下来以预设批长度为4为例,若协议层采用背靠背模式发送了四倍数(例如4、8、16等)的无缝隙的第一单批数据,则批量数据仅包含第一足量批量数据,针对第一足量批量数据,由于每四个第二单批数据可以组合为一个批长度为16的单批数据(即16个64B数据),故第一足量批量数据可以划分为多组批长度为16的单批数据。针对此种情况,仍然可以直接复用基准映射表,将其作为第一足量批量数据的映射表,利用该映射表依次对第一足量批量数据中的各个数据进行编码,实现资源复用。此外,通过组合四个第二单批数据,利用基准映射表对每四个第二单批数据中的各个数据进行编码,也能实现数据满载传输,提升了数据传输效率和资源利用率。若协议层发送了非四倍数的第二单批数据(一个第二单批数据或两个以上非四倍数的无缝隙的第二单批数据),则该批量数据包含第一余量批量数据(即一、二或三个第二单批数据)。针对该第一余量批量数据,可以基于第一余量批量数据中的数据个数(此例为4、8或12)截取基准映射表的部分(此例为前5、9或13行/列的特定位宽(此例为64B)的数据),得到第一余量批量数据对应的映射表,该映射表的一种形式如图4所示。
需要说明的是,在对批量数据中的第一余量批量数据进行编码的过程中,当利用其对应的映射表的最后一行或最后一列进行数据编码时,若检测到协议层已经停止发送数据,当前时钟周期已经不存在新的待发送数据,因此在编码时可以在校验码之后进行补零操作,以避免空载。
在另一些实施例中,当所述批量数据中单个数据的位宽等于32B且所述预设批长度为8或4时,可以通过如下方式确定批量数据对应的映射表:
针对所述批量数据中的第二足量批量数据,截取所述基准映射表的前九行或前九列的特定位宽的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于32B,得到所述第二足量批量数据对应的映射表;
针对所述批量数据中的第二余量批量数据,截取所述基准映射表的前五行或前五列的特定位宽的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于32B,得到所述第二余量批量数据对应的映射表;
其中,当所述预设批长度为8时,所述批量数据中不存在第二余量批量数据,所述第二足量批量数据由一个第三单批数据构成;当所述预设批长度为4时,第二余量批量数据由一个第四单批数据构成,所述第二足量批量数据由双倍数的第四单批数据构成;所述第三单批数据由8个32B数据构成,所述第四单批数据由4个32B数据构成。
具体而言,当预设批长度为8时,会针对单个第三单批数据进行数据编码和传输,即数据接收单元110单次接收并保存的批量数据仅为一个第三单批数据,即批量数据中仅包含第二足量批量数据。对此,可以截取基准映射表的前九行或前九列的特定位宽(此例为32B)的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于32B,得到第二足量批量数据对应的映射表,该映射表的一种形式如图5所示。此处,利用相应的映射表对第三单批数据中的各个数据进行编码,可以实现数据满载传输,在资源复用的同时还提升了数据传输效率和资源利用率。其中,适配层的TX模块可以每8个时钟周期将协议层挂起1个时钟周期,以防止溢出并确保自身的实时操作。
当预设批长度为4时,批量数据可能存在多种情况。其中,若协议层采用背靠背模式发送了偶数个无缝隙的第四单批数据,则批量数据仅包含第二足量批量数据,针对第二足量批量数据,由于两个第四单批数据可以组合为一个批长度为8的单批数据(即8个32B数据),故第二足量批量数据可以划分为多组批长度为8的单批数据,因此针对此种情况,可以类似于批长度为8的情形,截取基准映射表的前九行或前九列的特定位宽(此例为32B)的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于32B,得到第二足量批量数据对应的映射表。此外,通过两两组合第四单批数据,利用相应的映射表对两个第四单批数据中的各个数据进行编码,也能实现数据满载传输,提升了数据传输效率和资源利用率。若协议层发送了奇数个第四单批数据(一个第四单批数据或三个以上奇数个无缝隙的第四单批数据),则该批量数据包含第二余量批量数据(即一个未能参与组合的第四单批数据)。针对该第二余量批量数据,截取基准映射表的前五行或前五列的特定位宽(此例为32B)的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于32B,得到第二余量批量数据对应的映射表,该映射表的一种形式如图6所示。
需要说明的是,在对批量数据中的第二余量批量数据进行编码的过程中,当利用其对应的映射表的最后一行或最后一列进行数据编码时,若检测到协议层已经停止发送数据,当前时钟周期已经不存在新的待发送数据,因此在编码时可以在校验码之后进行补零操作,以避免空载。
在另一些实施例中,当所述批量数据中单个数据的位宽等于16B且所述预设批长度为4时,可以通过如下方式确定批量数据对应的映射表:
截取所述基准映射表的前五行或前五列的特定位宽(此例为16B)的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于16B,得到所述批量数据对应的映射表;其中,所述批量数据由一个第五单批数据构成,所述第五单批数据由4个16B数据构成。
具体而言,当预设批长度为4时,会针对单个第五单批数据进行数据编码和传输,即数据接收单元110单次接收并保存的批量数据仅为一个第五单批数据。对此,可以截取基准映射表的前五行或前五列的特定位宽(此例为16B)的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于16B,得到该批量数据对应的映射表,该映射表的一种形式如图7所示。此处,利用相应的映射表对第五单批数据中的各个数据进行编码,可以实现数据满载传输,在资源复用的同时还提升了数据传输效率和资源利用率。其中,适配层的TX模块可以每4个时钟周期将协议层挂起1个时钟周期,以防止溢出并确保自身的实时操作。
当确定了批量数据对应的映射表后,数据编码传输单元130可以基于批量数据对应的映射表中的各行或列,依次对批量数据中的各个数据进行数据编码和传输。其中,编码后的数据的数据量等于批量数据中单个数据的位宽。
此处,可以基于计数寄存器的当前值,取出批量数据中的当前待发送数据,并基于计数寄存器的当前值以及批量数据对应的映射表,从该映射表中确定当前时钟周期的数据编码格式,具体可以将计数寄存器的当前值作为下标获取映射表中相应位置的数据编码格式。其中,计数寄存器的初始值为0,且计数寄存器的取值范围与当前的映射表列数相一致。假设映射表的列数为17,则计数寄存器的取值范围为0至16。基于当前时钟周期的数据编码格式对数据缓冲区中的数据以及当前待发送数据进行数据编码和传输。以图2中展示的基准映射表以及计数寄存器的当前值为1为例,编码后的数据为2B的数据缓冲区数据+2B校验码+2B数据头+58B当前待发送数据。由于当前待发送数据未被完全编码,其中部分未被编码传输的部分(例如前例中未被编码传输的部分为6B)可以覆盖至数据缓冲区中,利用数据缓冲区保存该部分数据,以在下一时钟周期将其编码传输。随后,若计数寄存器的当前值为计数寄存器取值范围的最大值,则将计数寄存器的值置0,否则将计数寄存器的值加1。
需要说明的是,当批量数据对应的映射表变化时,计数寄存器的取值范围会实时地随之变化,以确保获取的数据编码格式正确。可见,在上述实施例中,当部分情形下批量数据的映射表是基准映射表的一部分时,可以通过调整计数寄存器的取值范围从基准映射表的相应部分读取正确的数据编码格式,而无需另外开辟空间存储不同情形下批量数据的映射表,提升了资源复用程度。
综上所述,本发明实施例提供的数据传输模块,通过构建基准映射表,在当前数据的批长度和单个数据位宽与基准映射表对应的批长度和单个数据位宽不一致时,可以复用基准映射表或其部分,在必要时对基准映射表进行微调,得到适应当前批长度和单个数据位宽的映射表,从而基于该映射表对批量数据中的各个数据进行编码和传输,可以使得UCIE适配层在复用同一处理逻辑(即数据接收→查找映射表→数据编码传输)基础上得以兼容多种批长度的数据,并且包括基准映射表的存储空间、数据缓冲区的存储空间、计数寄存器等器件的控制逻辑在内的资源均可以在不同批长度场景下复用,大大提升了资源复用程度和资源利用率,因此降低了实现该数据传输模块处理逻辑的硬件数量和整体芯片面积。此外,利用基准映射表或其子表进行数据编码时,在多种场景下可以进行数据满载传输,有效提升了数据传输效率。
下面对本发明提供的UCIE适配层的兼容多种批长度的数据传输方法进行描述,下文描述的UCIE适配层的兼容多种批长度的数据传输方法与上文描述的UCIE适配层的兼容多种批长度的数据传输模块可相互对应参照。
基于上述任一实施例,图8是本发明提供的UCIE适配层的兼容多种批长度的数据传输方法的流程示意图,如图8所示,该方法包括:
步骤810,接收并保存协议层基于预设批长度发送的批量数据;
步骤820,基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表;所述基准映射表是针对单个数据位宽为64B、批长度为16的情形建立的;所述基准映射表中每一行或列对应各个时钟周期的数据编码格式;
步骤830,基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输;编码后的数据的数据量等于所述批量数据中单个数据的位宽。
基于上述任一实施例,所述基准映射表中第一行或列对应的数据编码格式为数据头、当前时钟周期的待发送数据;所述基准映射表中最后一行或列对应的数据编码格式为数据缓冲区数据、校验码;所述基准映射表中其余行或列对应的数据编码格式为数据缓冲区数据、校验码、数据头、当前时钟周期的待发送数据;所述基准映射表中任一行或列对应的数据编码格式中各类数据的数据量之和等于64B;所述数据缓冲区数据为上一时钟周期的待发送数据中未发送的部分。
基于上述任一实施例,所述基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输,具体包括:
基于计数寄存器的当前值,确定所述批量数据中的当前待发送数据;
基于所述计数寄存器的当前值以及所述批量数据对应的映射表,确定当前时钟周期的数据编码格式;
基于所述当前时钟周期的数据编码格式对所述数据缓冲区中的数据以及所述当前待发送数据进行数据编码和传输;
基于所述当前待发送数据中未被传输的部分覆盖所述数据缓冲区;
若所述计数寄存器的当前值为所述计数寄存器取值范围的最大值,则将所述计数寄存器的值置0;否则,将所述计数寄存器的值加1。
基于上述任一实施例,当所述批量数据中单个数据的位宽等于64B且所述预设批长度为8或4时,所述基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表,具体包括:
针对所述批量数据中的第一足量批量数据,确定所述基准映射表作为所述第一足量批量数据对应的映射表;
针对所述批量数据中的第一余量批量数据,基于所述第一余量批量数据中的数据个数截取所述基准映射表,得到所述第一余量批量数据对应的映射表;
其中,当所述预设批长度为8时,第一余量批量数据为一个第一单批数据,所述第一单批数据由8个64B数据构成;当所述预设批长度为4时,第一余量批量数据由至多三个第二单批数据构成,所述第二单批数据由4个64B数据构成;所述第一足量批量数据由双倍数的第一单批数据或四倍数的第二单批数据构成。
基于上述任一实施例,针对所述批量数据中的第一余量批量数据,所述基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输,具体包括:
当基于所述第一余量批量数据对应的映射表中的最后一行或最后一列进行数据编码时,在校验码之后进行补零操作。
基于上述任一实施例,当所述批量数据中单个数据的位宽等于32B且所述预设批长度为8或4时,所述基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表,具体包括:
针对所述批量数据中的第二足量批量数据,截取所述基准映射表的前九行或前九列的特定位宽的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于32B,得到所述第二足量批量数据对应的映射表;
针对所述批量数据中的第二余量批量数据,截取所述基准映射表的前五行或前五列的特定位宽的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于32B,得到所述第二余量批量数据对应的映射表;
其中,当所述预设批长度为8时,所述批量数据中不存在第二余量批量数据,所述第二足量批量数据由一个第三单批数据构成;当所述预设批长度为4时,第二余量批量数据由一个第四单批数据构成,所述第二足量批量数据由双倍数的第四单批数据构成;所述第三单批数据由8个32B数据构成,所述第四单批数据由4个32B数据构成。
基于上述任一实施例,针对所述批量数据中的第二余量批量数据,所述基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输,具体包括:
当基于所述第二余量批量数据对应的映射表中的最后一行或最后一列进行数据编码时,在校验码之后进行补零操作。
基于上述任一实施例,当所述批量数据中单个数据的位宽等于16B且所述预设批长度为4时,所述基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表,具体包括:
截取所述基准映射表的前五行或前五列的特定位宽的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于16B,得到所述批量数据对应的映射表;其中,所述批量数据由一个第五单批数据构成,所述第五单批数据由4个16B数据构成。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种UCIE适配层的兼容多种批长度的数据传输模块,其特征在于,包括:
数据接收单元,用于接收并保存协议层基于预设批长度发送的批量数据;
表查找单元,用于基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表;所述基准映射表是针对单个数据位宽为64B、批长度为16的情形建立的;所述基准映射表中每一行或列对应各个时钟周期的数据编码格式;
数据编码传输单元,用于基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输;编码后的数据的数据量等于所述批量数据中单个数据的位宽;
其中,批长度为协议层单次发送的数据个数;当批量数据满足单个数据位宽为64B、批长度为16的条件时,所述基准映射表为所述批量数据对应的映射表;当批量数据对应的预设批长度不为16但单个数据的位宽等于64B时,基于预设批长度截取基准映射表的部分作为所述批量数据对应的映射表;当批量数据对应的预设批长度不为16且单个数据的位宽不等于64B时,基于预设批长度截取基准映射表的部分,并基于批量数据中单个数据的位宽对截取部分的数据编码格式进行数据量的微调,以满足编码后数据的数据量等于批量数据中单个数据的位宽的条件。
2.根据权利要求1所述的UCIE适配层的兼容多种批长度的数据传输模块,其特征在于,所述基准映射表中第一行或列对应的数据编码格式为数据头、当前时钟周期的待发送数据;所述基准映射表中最后一行或列对应的数据编码格式为数据缓冲区数据、校验码;所述基准映射表中其余行或列对应的数据编码格式为数据缓冲区数据、校验码、数据头、当前时钟周期的待发送数据;所述基准映射表中任一行或列对应的数据编码格式中各类数据的数据量之和等于64B;所述数据缓冲区数据为上一时钟周期的待发送数据中未发送的部分。
3.根据权利要求2所述的UCIE适配层的兼容多种批长度的数据传输模块,其特征在于,所述基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输,具体包括:
基于计数寄存器的当前值,确定所述批量数据中的当前待发送数据;
基于所述计数寄存器的当前值以及所述批量数据对应的映射表,确定当前时钟周期的数据编码格式;
基于所述当前时钟周期的数据编码格式对所述数据缓冲区中的数据以及所述当前待发送数据进行数据编码和传输;
基于所述当前待发送数据中未被传输的部分覆盖所述数据缓冲区;
若所述计数寄存器的当前值为所述计数寄存器取值范围的最大值,则将所述计数寄存器的值置0;否则,将所述计数寄存器的值加1。
4.根据权利要求2所述的UCIE适配层的兼容多种批长度的数据传输模块,其特征在于,当所述批量数据中单个数据的位宽等于64B且所述预设批长度为8或4时,所述基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表,具体包括:
针对所述批量数据中的第一足量批量数据,确定所述基准映射表作为所述第一足量批量数据对应的映射表;
针对所述批量数据中的第一余量批量数据,基于所述第一余量批量数据中的数据个数截取所述基准映射表,得到所述第一余量批量数据对应的映射表;
其中,当所述预设批长度为8时,第一余量批量数据为一个第一单批数据,所述第一单批数据由8个64B数据构成;当所述预设批长度为4时,第一余量批量数据由至多三个第二单批数据构成,所述第二单批数据由4个64B数据构成;所述第一足量批量数据由双倍数的第一单批数据或四倍数的第二单批数据构成。
5.根据权利要求4所述的UCIE适配层的兼容多种批长度的数据传输模块,其特征在于,针对所述批量数据中的第一余量批量数据,所述基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输,具体包括:
当基于所述第一余量批量数据对应的映射表中的最后一行或最后一列进行数据编码时,在校验码之后进行补零操作。
6.根据权利要求2所述的UCIE适配层的兼容多种批长度的数据传输模块,其特征在于,当所述批量数据中单个数据的位宽等于32B且所述预设批长度为8或4时,所述基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表,具体包括:
针对所述批量数据中的第二足量批量数据,截取所述基准映射表的前九行或前九列的特定位宽的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于32B,得到所述第二足量批量数据对应的映射表;
针对所述批量数据中的第二余量批量数据,截取所述基准映射表的前五行或前五列的特定位宽的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于32B,得到所述第二余量批量数据对应的映射表;
其中,当所述预设批长度为8时,所述批量数据中不存在第二余量批量数据,所述第二足量批量数据由一个第三单批数据构成;当所述预设批长度为4时,第二余量批量数据由一个第四单批数据构成,所述第二足量批量数据由双倍数的第四单批数据构成;所述第三单批数据由8个32B数据构成,所述第四单批数据由4个32B数据构成。
7.根据权利要求6所述的UCIE适配层的兼容多种批长度的数据传输模块,其特征在于,针对所述批量数据中的第二余量批量数据,所述基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输,具体包括:
当基于所述第二余量批量数据对应的映射表中的最后一行或最后一列进行数据编码时,在校验码之后进行补零操作。
8.根据权利要求2所述的UCIE适配层的兼容多种批长度的数据传输模块,其特征在于,当所述批量数据中单个数据的位宽等于16B且所述预设批长度为4时,所述基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表,具体包括:
截取所述基准映射表的前五行或前五列的特定位宽的数据,使得相应行或列对应的数据编码格式中各类数据的数据量之和等于16B,得到所述批量数据对应的映射表;其中,所述批量数据由一个第五单批数据构成,所述第五单批数据由4个16B数据构成。
9.一种UCIE适配层的兼容多种批长度的数据传输方法,其特征在于,包括:
接收并保存协议层基于预设批长度发送的批量数据;
基于基准映射表,结合所述预设批长度以及所述批量数据中单个数据的位宽,确定所述批量数据对应的映射表;所述基准映射表是针对单个数据位宽为64B、批长度为16的情形建立的;所述基准映射表中每一行或列对应各个时钟周期的数据编码格式;
基于所述批量数据对应的映射表中的各行或列,依次对所述批量数据中的各个数据进行数据编码和传输;编码后的数据的数据量等于所述批量数据中单个数据的位宽;
其中,批长度为协议层单次发送的数据个数;当批量数据满足单个数据位宽为64B、批长度为16的条件时,所述基准映射表为所述批量数据对应的映射表;当批量数据对应的预设批长度不为16但单个数据的位宽等于64B时,基于预设批长度截取基准映射表的部分作为所述批量数据对应的映射表;当批量数据对应的预设批长度不为16且单个数据的位宽不等于64B时,基于预设批长度截取基准映射表的部分,并基于批量数据中单个数据的位宽对截取部分的数据编码格式进行数据量的微调,以满足编码后数据的数据量等于批量数据中单个数据的位宽的条件。
10.根据权利要求9所述的UCIE适配层的兼容多种批长度的数据传输方法,其特征在于,所述基准映射表中第一行或列对应的数据编码格式为数据头、当前时钟周期的待发送数据;所述基准映射表中最后一行或列对应的数据编码格式为数据缓冲区数据、校验码;所述基准映射表中其余行或列对应的数据编码格式为数据缓冲区数据、校验码、数据头、当前时钟周期的待发送数据;所述基准映射表中任一行或列对应的数据编码格式中各类数据的数据量之和等于64B;所述数据缓冲区数据为上一时钟周期的待发送数据中未发送的部分。
CN202310694680.0A 2023-06-13 2023-06-13 Ucie适配层的兼容多种批长度的数据传输模块和方法 Active CN116701271B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310694680.0A CN116701271B (zh) 2023-06-13 2023-06-13 Ucie适配层的兼容多种批长度的数据传输模块和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310694680.0A CN116701271B (zh) 2023-06-13 2023-06-13 Ucie适配层的兼容多种批长度的数据传输模块和方法

Publications (2)

Publication Number Publication Date
CN116701271A CN116701271A (zh) 2023-09-05
CN116701271B true CN116701271B (zh) 2023-11-17

Family

ID=87823434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310694680.0A Active CN116701271B (zh) 2023-06-13 2023-06-13 Ucie适配层的兼容多种批长度的数据传输模块和方法

Country Status (1)

Country Link
CN (1) CN116701271B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116743317B (zh) * 2023-06-29 2024-01-23 上海奎芯集成电路设计有限公司 基于通用芯片互联标准的数据传输方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724505A (zh) * 2012-06-06 2012-10-10 西安电子科技大学 Jpeg_ls游程编码fpga实现方法
CN104375962A (zh) * 2014-11-10 2015-02-25 中国航天科技集团公司第九研究院第七七一研究所 系统芯片中cache与总线接口的统一位宽转换结构及其转换方法
CN108988991A (zh) * 2018-07-26 2018-12-11 电子科技大学 带宽自适应的串行数据传输系统
CN113055027A (zh) * 2021-03-18 2021-06-29 北京得瑞领新科技有限公司 可变位宽的ldpc编码方法、编码器、ssd及存储介质
WO2022261991A1 (zh) * 2021-06-18 2022-12-22 华为技术有限公司 一种数据处理方法、装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8793467B2 (en) * 2011-09-30 2014-07-29 Pure Storage, Inc. Variable length encoding in a storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724505A (zh) * 2012-06-06 2012-10-10 西安电子科技大学 Jpeg_ls游程编码fpga实现方法
CN104375962A (zh) * 2014-11-10 2015-02-25 中国航天科技集团公司第九研究院第七七一研究所 系统芯片中cache与总线接口的统一位宽转换结构及其转换方法
CN108988991A (zh) * 2018-07-26 2018-12-11 电子科技大学 带宽自适应的串行数据传输系统
CN113055027A (zh) * 2021-03-18 2021-06-29 北京得瑞领新科技有限公司 可变位宽的ldpc编码方法、编码器、ssd及存储介质
WO2022261991A1 (zh) * 2021-06-18 2022-12-22 华为技术有限公司 一种数据处理方法、装置及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CCSDS标准Turbo码编码器的FPGA设计与实现;蔺吉顺 等;电子器件;第37卷(第06期);全文 *

Also Published As

Publication number Publication date
CN116701271A (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
CN116701271B (zh) Ucie适配层的兼容多种批长度的数据传输模块和方法
US9282570B2 (en) Method and apparatus for transmitting uplink control signaling on physical uplink shared channel
CN103210640B (zh) 对数据重新格式化以减小视频编码器和缓冲器之间的带宽
US7460041B2 (en) Arithmetic decoding system and apparatus based on an adaptive content
US8364916B2 (en) Method and apparatus for implementing interleaving and de-interleaving at second time
US8649350B2 (en) Method and system for transmitting uplink control signaling on physical uplink shared channel
US9491649B2 (en) Method and apparatus for transmitting periodic feedback report
CN109120276A (zh) 信息处理的方法、通信装置
WO2021139751A1 (zh) 数据处理方法、配置方法及通信设备
CN101702631A (zh) 上行控制信令传输方法和装置
CN101183875A (zh) 一种Turbo码的有限长度循环缓存的速率匹配方法
WO2015006947A1 (zh) 一种低码率的编码方法和设备
US20230245420A1 (en) Image processing method and apparatus, computer device, and storage medium
US7340669B2 (en) Memory efficient streamlined transmitter with a multiple instance hybrid ARQ
US8171317B2 (en) Conserving power in a platform supporting network interfaces
CN110620739B (zh) 一种bfd报文发送方法及装置
CN101771554B (zh) 一种余度管理电路及其管理方法
US20190207716A1 (en) Video encoding apparatus for rearranging packet transmission order and procedure of operating video encoding apparatus
US10728356B2 (en) Communication device and communication system
WO2016179743A1 (zh) 一种编码装置及方法
CN108521869A (zh) 无线数据传输方法和设备
CN107615810A (zh) 用于在线网络代码的包头压缩系统和方法
US20230021167A1 (en) Coding method and apparatus for data communication
WO2018201903A1 (zh) 数据传输方法、终端和基站
CN1917519B (zh) 高级数据链路控制协议串行数据的并行传输方法及其系统

Legal Events

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