数据组合方法、芯片及装置

文档序号:1922102 发布日期:2021-12-03 浏览:15次 >En<

阅读说明:本技术 数据组合方法、芯片及装置 (Data combination method, chip and device ) 是由 龚源泉 徐子轩 夏杰 于 2021-09-18 设计创作,主要内容包括:本申请提供了一种数据组合方法、芯片及装置,应用于具有N个数据传输接口的芯片,所述方法包括步骤:分组步骤:将所述N个数据传输接口分为M组;数据组合步骤:将所述M组数据传输接口中的数据于组内分别进行组合,将各组的有效数据分别放置于对应组的前侧,并记录各组的有效数据个数;以及分组合并步骤:将所述M组数据传输接口中的至少部分组数据传输接口基于所述至少部分组的有效数据个数合并为P组并进行数据组合,其中,M、N均为整数,N≥4,M≥2,M>P>0,基于该方法能够降低数据组合的逻辑复杂程度,芯片实现芯片的时序和面积的优化。(The application provides a data combination method, a chip and a device, which are applied to a chip with N data transmission interfaces, wherein the method comprises the following steps: grouping: dividing the N data transmission interfaces into M groups; a data combination step: respectively combining the data in the M groups of data transmission interfaces in groups, respectively placing the effective data of each group on the front side of the corresponding group, and recording the number of the effective data of each group; and a grouping and merging step: and merging at least part of the M groups of data transmission interfaces into P groups based on the number of the effective data of the at least part of groups and carrying out data combination, wherein M, N are integers, N is not less than 4, M is not less than 2, and M is more than P and is more than 0.)

数据组合方法、芯片及装置

技术领域

本发明涉及通信技术领域,尤其涉及一种数据组合方法、芯片及装置。

背景技术

随着芯片规模的不断扩大,尤其是应用于人工智能、网络交换等领域的芯片,需要处理大量的数据。这些芯片中,往往会遇到来自多个接口的数据进行组合之后处理和存储的问题。假设有m个接口输入相同宽度的数据,每个接口有一个指示信号表示该接口当前的数据是否有效。一个接口的数据只有在有效的时候才能参与组合。以8接口为例的组合的示意图如图1所示。所以,m个接口最少有0个数据有效,最多有m个数据有效。总共有2m种情形。当m为8,有256种情形;当m为24时,情形多达16,777,216种。随着接口数目的增加,数据有效的情形数成指数增长。如何根据这么多种情形将接口的有效数据组合到一起,是芯片设计中必须解决的问题。同时,对这些数据进行组合的设计方法的复杂程度直接影响到芯片的时序和面积。

因此,有必要对现有数据组合方法及装置加以改进。

发明内容

鉴于现有技术中存在的上述技术问题,本申请提供了一种数据组合方法,应用于具有N个数据传输接口的芯片,所述方法包括步骤:

分组步骤:将所述N个数据传输接口分为M组;

数据组合步骤:将所述M组数据传输接口中的数据于组内分别进行组合,将各组的有效数据分别放置于对应组的前侧,并记录各组的有效数据个数;以及

分组合并步骤:将所述M组数据传输接口中的至少部分组数据传输接口基于所述至少部分组的有效数据个数合并为P组并进行数据组合,其中,M、N均为整数,N≥4,M≥2,M>P>0。

可选地,在所述分组步骤中,M组数据传输接口中的至少前M-1组中的数据传输接口数量相同。

可选地,P=1。

可选地,P>1,在所述分组合并步骤中,还包括:

将所述P组数据传输接口中的有效数据分别放置于对应组的前侧,并记录各组的有效数据个数,

将所述P组数据传输接口基于各组有效数据个数合并为一组并进行数据组合。

可选地,M=2,P=1,所述M组数据传输接口包括第一组数据传输接口以及第二组数据传输接口,在所述分组合并步骤中,“将所述M组数据传输接口中的至少部分组数据传输接口基于所述至少部分组的有效数据个数合并为P组并进行数据组合”实施为将所述第二组数据传输接口中的有效数据排列于所述第一组数据传输接口中的最后一个有效数据后。

可选地,在所述数据组合步骤中,采用列举的方式,对各组中的有效数据进行组合。

为了实现上述发明目的,本申请还提供了一种芯片,具有N个数据传输接口,应用上文所述的数据组合方法。

为了实现上述发明目的,本申请还提供了一种装置,应用上文所述的数据组合方法或芯片。

综上所述,本申请通过将多个接口分组的方式,使得每一组内的数据较少,进而使得采用列举的方式即可实现对其快速便捷的数据组合,进一步地,本申请通过分级的方式,基于接口的数量及数据组合的复杂程度适应性地设置多级接口组,通过将多个接口组(或者说多组接口)内的有效数据排列于前侧、记录有效数据数量并逐步合并接口组的方式最终得出数据组合结果,不仅能够降低数据组合的逻辑复杂程度,芯片实现芯片的时序和面积的优化。

附图说明

图1为现有技术中的数据组合示意图;

图2为本申请的实施例提供的数据组合方法的数据组合示意图。

具体实施方式

在下文,将参照附图详细描述示范性实施方式。然而,本申请不限于下面的实施方式,而是包括在本公开的技术范围内的各种改变、替代和变形。术语“第一”、“第二”等可以用于解释各种元件,元件的个数并不受这样的术语的限制。这些术语只是用于将一个元件与另一元件区分开。因此,在一个实施方式中被称为第一元件的元件可以在另一实施方式中被称为第二元件。除非上下文有另外的要求,否则单数形式不排除复数形式。以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效。

在下述描述中,参考附图,附图描述了本申请的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本申请的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本申请的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本申请。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、“下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。

虽然在一些实例中术语第一、第二等在本文中用来描述各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。例如,第一预设阈值可以被称作第二预设阈值,并且类似地,第二预设阈值可以被称作第一预设阈值,而不脱离各种所描述的实施例的范围。第一预设阈值和预设阈值均是在描述一个阈值,但是除非上下文以其他方式明确指出,否则它们不是同一个预设阈值。相似的情况还包括第一音量与第二音量。

再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。

如图1所示,以8个输入接口的数据组合为例:m个接口最少有0个数据有效,最多有m个数据有效,总共有2m种情形。当m为8,有256种情形;当m为24时,情形多达16,777,216种。随着接口数目的增加,数据有效的情形数成指数增长。如何根据这么多种情形将接口的有效数据组合到一起,是芯片设计中必须解决的问题。同时,对这些数据进行组合的设计方法直接影响到芯片的时序和面积。

现有实施方式之一为使用枚举的方式,将所有的情形全部列举出来,针对每种情形确定组合之后的有效数据。

以接口数为8为例。假设8个接口的有效信号组成一个向量记为:valid[7:0]。

将8个接口的输入数据记为data0、data1、……、data7,将组合之后的数据记为dataOut。根据valid的取值列举及数据组合方法如下(其中xxx表示无效数据):

valid==8’b0000_0001:dataOut={data0,xxx};

valid==8’b0000_0010:dataOut={data1,xxx};

valid==8’b0000_0011:dataOut={data0,data1,xxx};

……

以此类推。

如上所述,总共需要列举valid的256个可能取值。如果接口数为24的时候,通过手工列举valid的16,777,216个取值已经不可能。即使通过脚本工具,由于数量太大,也需要花费很长时间才能完成valid取值的列举,而且生成的文件巨大。综合工具也需要花费很多的时间才能将硬件描述语言转换成门级网表。

为了解决上述技术问题,本实施例提供了一种数据组合方法,应用于具有N个数据传输接口的芯片,该方法包括步骤:

分组步骤:将N个数据传输接口分为M组;

数据组合步骤:将M组数据传输接口中的数据分别进行组合,将各组的有效数据分别放置于对应组的前侧,并记录各组的有效数据个数;以及

分组合并步骤:将M组数据传输接口中的至少部分组数据传输接口基于至少部分组的有效数据个数合并为P组并进行数据组合,其中,M、N均为整数,N≥4,M≥2,M>P>0。

需要说明的是,本实施例中所提及的“数据传输接口”,既可以为芯片与外部传输数据的接口,也可以为芯片内部的传输接口,本实施例对此不作限定。

为了便于说明,下文中,以N=16,M=4,P=2作为示例,具体说明本实施例提供的方法的原理和步骤。

如图2所示,本实施例提供的方法包括步骤:

分组步骤:将数据传输接口(下文中简称接口)依次进行分组,每组包含相同数目的接口(如果接口数目不能被分组数目整除,保证除最后一组之外其他组包含相同数目的接口)。下面以分成4组,每组4个接口为例进行说明。其中接口0到接口3分为第一组,接口4到接口7分为第二组,接口8至接口11为第三组,接口12至接口15为第四组,依次类推。

数据组合步骤:每一组内部同时进行组合,将有效数据放在最前面,完成第一级的操作。同时记录每组有效数据的个数。各组有效数据个数分别记为validNum0S0、validNum1S0、validNum2S0和validNum3S0。可以看到,每组有效数据个数的可能取值为0到4。由于每组只有4个数据,有效标志valid的可能取值只有16个,很容易通过列举的方式将有效数据进行组合。

分组合并步骤:本实施例中还可以将第一级操作之后的四组接口合并为两组,也即每组8个数据。其中,第一组组合之后的4个数据加上第二组组合之后的4个数据,共8个数据形成新的第一组接口;第三组组合之后的4个数据加上第四组组合之后的4个数据,共8个数据形成新的第二组接口。将每组分成两半,每一半4个数据。第一组组合之后的4个数据组成新的第一组接口的前一半,第二组组合之后的4个数据组成新的第一组接口的后一半。同理,第三组组合之后的4个数据组成新的第二组接口的前一半,第四组组合之后的4个数据组成新的第二组接口的后一半。

执行第二级操作,每一组内部根据前一半数据的有效个数同时进行组合。即新的第一组接口的前一半4个数据根据validNum0S0的值与后一半4个数据进行组合;新的第二组接口的前一半4个数据根据validNum2S0的值与后一半4个数据进行组合。同时记录每组有效数据的个数。各组有效数据个数分别记为validNum0S1和validNum1S1。显然:

validNum0S1=validNum0S0+validNum1S0;

validNum1S1=validNum2S0+validNum3S0。

由于执行完第一级操作,每一半数据中一定只有前面部分是有效的(特别地,如果有效数据个数为0,则所有数据都是无效的),第二级操作中每组进行有效数据组合的情形只有5种。而且每组的后一半数据的第一个数据直接排列在前一半数据中的最后一个有效数据后面即可(特别地,如果前一半数据的有效数据个数为0,后一半数据直接覆盖前一个数据),组合方式非常简单。

执行第三级操作。所有16个数据合并为一组,每一半8个数据。根据validNum0S1的值将前一半8个数据与后一半8个数据进行组合得到输出数据。组合方式与第二级类似,只是有效组合情形变成9。同时得到最后的有效数据个,记为validNumOut。则:

validNumOut=validNum0S1+validNum1S1。

这种分组分级组合的方法,由于每组有效数据的可能情形不多。每次操作之后,对应分组的有效数据已经放在最前面,简化了后一级进行组合的复杂程度。

从上面的步骤可以看出,除了第一级每组组合的情况为固定值以外,组合情形最多的是最后一级,其组合情形为N/2+1。对于24个接口,最多的组合情形仅为13,逻辑复杂程度大大降低。本发明总体逻辑简单,芯片实现的时序和面积都能够得到优化。

需要说明的是,虽然本实施例中给出了分组分级组合数据的示例,但这并非对本申请的限定。

可选地,经过第一级有效数据组合后,可以选择执行分组合并步骤:将四组接口合并为一组,由于四组接口中每一组的有效数据都已经位于前侧,因此,对其进行合并时,无论采用列举的方式或其它方式,相比较于直接对16个接口的数据组合进行枚举,都简化了逻辑,进而实现了芯片时序和面积的优化。

另外,接口的分组及分级情况可以基于接口的数量或者说数据组合的逻辑复杂程度而适应性匹配,在一些实施方式中,可以将接口分为两组、三组或更多组,和/或,将其分为两级,四级,五级或更多级,以上实施方式均在本申请的保护范围内。

可选地,在一些实施方式中,例如M=2,P=1,M组数据传输接口包括第一组数据传输接口以及第二组数据传输接口,在分组合并步骤中,“将所述M组数据传输接口中的至少部分组数据传输接口基于所述至少部分组的有效数据个数合并为P组并进行数据组合”实施为将第二组数据传输接口中的有效数据排列于第一组数据传输接口中的最后一个有效数据后,基于此方式,使得数据组合方式得到简化。

可选地,本实施例还提供了一种芯片(未图示),具有N个数据传输接口,并应用上文所述的数据组合方法处理数据。

可选地,本实施例还提供了一种装置(未图示),应用上文所述的数据组合方法或芯片。

上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于CATIA与Cadence的数据协同方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类