数据传输装置、数据传输方法及芯片

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

阅读说明:本技术 数据传输装置、数据传输方法及芯片 (Data transmission device, data transmission method and chip ) 是由 龚源泉 徐子轩 夏杰 于 2021-09-18 设计创作,主要内容包括:本申请提供了一种数据传输装置、数据传输方法及芯片,应用于将M个源接口的多个数据传输至N个目的接口,包括:M个源接口存储器,用于存储所述多个数据;锁存寄存器,用于存储每一源接口存储器对应于每一目的接口分别预取的N个数据;M个第一调度器,被配置为用于通过轮询调度的方式实现每一源接口存储器的N个数据的预取;以及N个第二调度器,被配置为将存储于所述锁存寄存器中的数据,通过轮询调度的方式分发至各目的接口;通过数据预取锁存及两级调度逻辑的隔离,实现了第一调度器和第二调度器可以同时运行且相互之间没有制约关系,数据传输装置结构清晰,逻辑简单,优化了芯片时序,利于后端实现。(The application provides a data transmission device, a data transmission method and a chip, which are applied to transmitting a plurality of data of M source interfaces to N destination interfaces, and comprise the following steps: m source interface memories for storing the plurality of data; the latch register is used for storing N data which are respectively prefetched by each source interface memory corresponding to each destination interface; m first schedulers configured to implement prefetching of N data per source interface memory by round robin scheduling; the N second schedulers are configured to distribute the data stored in the latch register to each destination interface in a polling scheduling mode; through data prefetching latching and isolation of two-stage scheduling logic, the first scheduler and the second scheduler can operate simultaneously and have no restriction relation with each other, the data transmission device is clear in structure and simple in logic, chip time sequence is optimized, and back-end implementation is facilitated.)

数据传输装置、数据传输方法及芯片

技术领域

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

背景技术

在一些应用场景中,芯片规模越来越大,尤其是在人工智能,网络交换等领域,需要对大量数据进行分类存储和处理。这些芯片中,往往会遇到来自多个接口的数据需要传输到不同的多个接口的问题。假设有m个输入接口,每个接口交替输出发送到n个目的接口的相同大小的数据,每个数据中都包含了目的接口编号,即指示传输到哪个目的接口。

如图1所示,如何在每个时钟周期从源接口中进行挑选,向每个目的接口最多输出一个数据,并保证源接口得到公平的调度机会,是芯片设计中必须解决的问题。同时,对源接口进行调度的设计方法直接影响到芯片的时序和性能。

使用存储器将每个源接口的数据按照目的接口进行分区,存储传输到每个目的接口的数据。如图2所示,为描述方便,以下将该存储器称为源接口存储器。采用轮询的方式先选出第一个源接口存储器,并用轮询的方式从中挑选一个目的接口的信息,假设选出的目的接口为a;再用轮询的方式选择第二个源接口存储器,再用轮询的方式从中挑选一个不为a的目的接口的信息,假设选出的目的接口为b;用同样的方法选择第三个源接口存储器并从中挑选一个与a和b都不相同的目的接口,假设选出的目的接口为c。以此类推,直到所有n个目的接口都被挑选完毕。这种方法每一步都要进行两次调度,先挑选源接口存储器,再挑选目的接口。为了保证公平性和挑选效率,必须保证每一步挑选出来的源接口存储器存储了与已经选出的目的接口都不相同的目的接口的数据。这样,越到后面的步骤,挑选源接口存储器以及再从中挑选目的接口的时候受到已选出目的接口的制约越大,逻辑也变得越复杂。

挑选最后源接口存储器以及目的接口的时候受到的制约条件最多,逻辑最为复杂。当n的数目变大的时候,芯片实现上组合逻辑的时序可能会变得很差。同时,由于前后接口挑选行为相互关联,需要切分成多级流水线实现,也无规律可循,控制逻辑复杂,同时也增加了延迟。

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

发明内容

鉴于现有技术中存在的上述技术问题,本申请提供了一种数据传输装置,应用于将M个源接口的多个数据传输至N个目的接口,包括:M个源接口存储器,用于存储所述多个数据;锁存寄存器,用于存储从每一源接口存储器对应于每一目的接口分别预取的N个数据;M个第一调度器,被配置为用于通过轮询调度的方式实现每一源接口存储器的N个数据的预取;以及N个第二调度器,被配置为将存储于所述锁存寄存器中的数据于同一时钟周期内,通过轮询调度的方式分发至各目的接口;其中,M、N均为整数,M≥2,N≥1。

可选地,所述源接口存储器具有对应于各所述目的接口的分区,所述源接口存储器被配置为:

基于所述分区向所述第一调度器发送第一发送请求,所述第一调度器通过轮询调度的方式响应某一所述分区的请求,并将该所述分区中存储的一个数据预取到对应的所述锁存寄存器,其中,若一个所述分区对应的所述锁存寄存器上存储的数据无效,则所述第一发送请求置为1;否则,将所述第一发送请求清0,只有所述第一发送请求置为1的所述分区才能参与所述第一调度器的轮询调度,该操作所有所述源接口存储器并行执行。

可选地,所述源接口能够向其锁存于所述锁存寄存器的数据所对应的各所述目的接口分别发送一个第二发送请求,所述第二调度器能够通过轮询调度的方式选择一个发送所述第二发送请求的所述源接口,并将该源接口对应的存储于所述锁存寄存器的数据发送至所述第二调度器对应的所述目的接口。

可选地,所述目的接口能够向向其发送第二发送请求的所述锁存寄存器发送第三发送请求,响应于该锁存寄存器的第二发送请求,将所选的所述源接口对应的所述目的接口的第三发送请求置为1,该操作所有所述第二调度器并行执行。

可选地,所述锁存寄存器被配置为:对应的所述源接口接收到的来自所述目的接口的所述第三发送请求为1时,将对应源接口与发送该第三发送请求的所述目的接口所对应的第二发送请求清零。

为了实现上述发明目的,本申请提供了一种数据传输方法,应用上文所述的数据传输装置传输数据,包括步骤:

S1、为每一所述源接口存储器对应于每一所述目的接口各预取一个数据并锁存于所述锁存寄存器;

S2、通过所述第二调度器以轮询调度的方式在一个时钟周期内自所述锁存寄存器为每一所述目的接口调取一个数据;

S3、通过所述第一调度器以轮询调度的方式为步骤S2中的所述锁存寄存器自对应的所述源接口存储器的所述分区预取数据。

为了实现上述发明目的,本申请提供了一种数据传输方法,应用于将M个源接口的多个数据传输至N个目的接口,包括步骤:

数据预取步骤:基于每一源接口对应于每一目的接口分别预取N个数据并锁存于锁存寄存器中;

第一调度步骤:对锁存于所述锁存寄存器中的数据通过轮询调度方式为各目的接口各调取一个数据;

第二调度步骤:为所述锁存寄存器通过轮询调度的方式预取最多N个数据以填补所述第一调度步骤中被调取的数据的空缺。

可选地,每一所述源接口能够向其锁存于所述锁存寄存器的数据所对应的各所述目的接口分别发送一个第二发送请求,在所述第一调度步骤中,能够通过轮询调度的方式选择一个发送所述第二发送请求的所述源接口,并将该源接口对应的存储于所述锁存寄存器的数据发送至所述第二调度器对应的所述目的接口。

可选地,所述目的接口能够向向其发送第二发送请求的所述锁存寄存器发送第三发送请求,在所述第二调度步骤中,响应于对应的所述源接口接收到的所述第三发送请求为1时,自对应的所述源接口对应于所述目的接口预取数据。

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

本申请所提供的数据传输装置及数据传输方法,至少具有以下优点:

通过数据预取锁存及两级调度逻辑的隔离,实现了第一调度器和第二调度器可以同时运行且相互之间没有制约关系,数据传输装置结构清晰,逻辑简单,优化了芯片时序,利于后端实现。

附图说明

图1为现有技术中接口数据传输的结构示意图;

图2为现有技术中数据存储方式的结构示意图;

图3为本申请的实施例中数据传输装置的结构示意图;

图4为图3中数据传输装置的其中一个源接口的结构示意图;

图5为图3中数据传输装置中源接口和第一目的接口的结构示意图;

图6为本申请的实施例中提供的数据传输方法的流程示意图;

图7为本申请的实施例中提供的另一数据传输方法的流程示意图。

具体实施方式

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

本实施例提供了一种适合芯片设计实现的调度多个接口数据的数据传输装置及数据传输方法,以用于解决现有技术中数据调度控制逻辑复杂、延迟较大的技术问题。

本实施例所提供的数据传输装置100,应用于将M个源接口的多个数据传输至N个目的接口,其中,M≥2,N≥1,为了便于说明,下文中以M=3,N=2作为示例。

如图3所示,数据传输装置100包括:三个源接口20,每一源接口20均包括源接口存储器10,用于存储每一源接口20的多个数据;锁存寄存器30,用于存储每一源接口存储器10对应于两个目的接口40分别预取的两个数据。

可选地,如图3和图4所示,每一源接口存储器10基于其存储的数据的目的接口40进行分区,如此设置,能够便于实现对源接口存储器10的数据的预取。

具体地,三个源接口存储器10分别为第一源接口存储器11、第二源接口存储器12以及第三源接口存储器13,目的接口40包括第一目的接口41及第二目的接口42,每一源接口存储器10具有对应于第一目的接口41的第一分区01以及对应于第二目的接口42的第二分区02。

第一源接口存储器11存储有对应于第一目的接口41的数据A及数据B,对应于第二目的接口42的数据C及数据D;第二源接口存储器12存储有对应于第一目的接口41的数据E及数据F,对应于第二目的接口42的数据G及数据H;第三源接口存储器13存储有对应于第一目的接口41的数据I及数据J,对应于第二目的接口42的数据K及数据L。

则“每一源接口存储器10对应于两个目的接口40分别预取的两个数据”具体可以为:

锁存寄存器30存储有数据A、数据C、数据E、数据G、数据I、数据K。

可选地,数据传输装置100包括三个第一调度器50,被配置为用于通过轮询调度的方式将三个源接口存储器10中的数据存储至锁存寄存器30。

可选地,每一源接口存储器10的第一分区01和第二分区02能够向锁存寄存器30发送一个请求(下文中称之为第一发送请求),如果一个分区(例如第一源接口存储器11的第一分区01)对应于锁存寄存器30上存储的数据无效,则可以将该分区对应的第一发送请求置为1;否则,将该第一发送请求清零。只有第一发送请求为1的分区才能参与轮询调度,本操作所有源接口存储器10并行执行,由此,可以实现各源接口存储器10针对目的接口40的数据预取。

可选地,本实施例中,如图5所示,对每一目的接口40均设置有第二调度器60,锁存寄存器30能够向其锁存的数据所对应的各目的接口40分别发送一个请求(下文中称之为第二发送请求);相对应地,目的接口40能够向向其发送第二发送请求的锁存寄存器30发送一个请求(下文中称之为第三发送请求)。

第二调度器60能够搜集发送至对应目的接口40的来源于不同源接口20的锁存数据及第二发送请求,每个第二调度器60理论上最多可以收到三个第二发送请求(分别对应于三个源接口存储器10),每一第二调度器60采用轮询调度的方式选择一个发送第二发送请求的源接口20,将该源接口20对应的存储于锁存寄存器30的数据发送至该第二调度器60对应的目的接口40,同时,将所选源接口20对应的目的接口40的第三发送请求置为1,第三发送请求为1的目的接口40表明在该时钟周期内已经可以接收来自锁存寄存器30的数据,该操作所有第二调度器60并行执行,如此设置,可以保证每个时钟周期内,每一目的接口40均有一个数据输出。

可选地,对于每一第一调度器50,能够在对应的源接口20接收到的第三发送请求为1时,将与该第三发送请求对应的锁存器的第二发送请求清零,同时,如果对应于该锁存寄存器30的分区还有数据,将该分区的第一发送请求重新置1,则该分区可以重新参与轮询调度并自源接口存储器10的相应区域读取数据并进行锁存,如此设置,能够在锁存寄存器30中的数据传输至目的接口40后重新自源接口存储器10预取数据。

本实施例中所提供的数据传输装置100,至少具有以下优点:

通过数据预取锁存及两级调度逻辑的隔离,实现了第一调度器50和第二调度器60可以同时运行且相互之间没有制约关系,数据传输装置100结构清晰,逻辑简单,优化了芯片时序,利于后端实现。

可选地,如图6所示,本实施例还提供了一种数据传输方法,应用于自M个源接口20将多个数据分配至N个目的接口40,包括步骤:

数据预取步骤:基于每一源接口20对应于每一目的接口40分别预取N个数据并锁存于锁存寄存器30中;

第一调度步骤:对锁存于锁存寄存器30中的数据通过轮询调度方式为各目的接口40各调取一个数据;

第二调度步骤:为锁存寄存器30通过轮询调度的方式预取最多N个数据以填补第一调度步骤中被调取的数据的空缺。

可选地,每一源接口20能够向其锁存于锁存寄存器30的数据所对应的各目的接口40分别发送一个第二发送请求,在第一调度步骤中,能够通过轮询调度的方式选择一个发送第二发送请求的源接口20,并将该源接口20对应的存储于锁存寄存器30的数据发送至第二调度器60对应的目的接口40。

可选地,目的接口40能够向向其发送第二发送请求的锁存寄存器30发送第三发送请求,在第二调度步骤中,响应于对应的源接口20接收到的第三发送请求为1时,自对应的源接口20对应于目的接口40预取数据。

可选地,如图7所示,本实施例还提供了一种数据传输方法,应用于使用上文中所述的数据传输装置100调度数据。

可选地,数据传输方法包括步骤:

S1、为每一源接口存储器10对应于每一目的接口40各预取一个数据并锁存于锁存寄存器30;

S2、通过第二调度器60以轮询调度的方式在一个时钟周期内自锁存寄存器30为每一目的接口40调取一个数据;

S3、通过第一调度器50以轮询调度的方式为步骤S2中的锁存寄存器30自对应的源接口存储器10的分区预取数据。

本实施例所提供的数据传输方法,其通过数据的预期及两级独立的调度实现数据传输,逻辑简单,易于实现,优化了芯片时序。

其中,步骤S2及步骤S3的具体实现方式可以参考上文中对数据传输装置100及数据传输方法的说明,此处不再赘述。

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

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

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:存储器装置和包括存储器装置的存储器模块

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!