CN114968861A - 一种两写两读的数据传输结构以及片上多通道交互网络 - Google Patents

一种两写两读的数据传输结构以及片上多通道交互网络 Download PDF

Info

Publication number
CN114968861A
CN114968861A CN202210579507.1A CN202210579507A CN114968861A CN 114968861 A CN114968861 A CN 114968861A CN 202210579507 A CN202210579507 A CN 202210579507A CN 114968861 A CN114968861 A CN 114968861A
Authority
CN
China
Prior art keywords
data
input
channel
transmission
interface
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
CN202210579507.1A
Other languages
English (en)
Other versions
CN114968861B (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN202210579507.1A priority Critical patent/CN114968861B/zh
Publication of CN114968861A publication Critical patent/CN114968861A/zh
Application granted granted Critical
Publication of CN114968861B publication Critical patent/CN114968861B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种两写两读的数据传输结构以及片上多通道交互网络,所述数据传输结构包括:两条传输通道,其中,每条传输通道包括依次连接的具有两个输入接口的仲裁器、先进先出队列和读接口,以及连接仲裁器和读接口的直通线路;两个写接口,所述写接口用于与数据输入通道连接接收输入数据,每个写接口连接到两条传输通道中的每个仲裁器的一个输入接口;其中,所述传输通道被配置为:在一个时钟周期,能同时允许两个写接口各自输入一个数据,并通过传输通道对数据进行缓存或者传输。

Description

一种两写两读的数据传输结构以及片上多通道交互网络
技术领域
本发明涉及计算机通信技术领域,具体来说涉及数据传输网络,更具体地说,涉及一种两写两读的数据传输结构以及片上多通道交互网络。
背景技术
为了追求单个处理芯片实现更高的吞吐量,现在的领域特定加速芯片在设计中常常采用多并行执行通道的设计。所期望的理想场景是各执行通道相互独立运行,互不干扰。但是,在现实应用场景中,由于数据结构的特殊性,应用程序算法规则等原因,多通道间的相互交互是不可避免的。比如在图计算中,由于点间的连接是不规则的,多执行通道结构存在大量交互。
常用于多通道交互的技术方案是仲裁,比如基于交叉开关矩阵(Crossbar)的仲裁算法。该仲裁算法作用原理为:当多个通道在交互区时,即其可能访问资源相同时,通过仲裁,决定谁通行。比如,参见图1a,如果两个通道A与通道B访问相同资源时,仲裁器决定A通行,则B停滞堵塞,直到所需资源可用。而仲裁的方法会导致两个问题,限制性能的进一步提升。
第一个问题为数据冲突,当多通道竞争相同的访问资源或者执行部件时,在仲裁中失败的通道其对应的计算过程会因没有获取计算所需的数据而停滞;而且,一方面,其停滞的效应可能进一步传播到前面的部件,影响其他通道,导致芯片整体性能进一步下降;另一面也会导致后续执行通道缺少足够的负载,从而空转。
第二个问题为设计集中性,多通道间交互过于密集,导致硬件实现困难,进而致使最终硬件实现时频率下降。如图1b所示,如果通道的数量增多,假设采用四写一读的先进先出队列(4W1R FIFO),则不仅存在设计集中性问题,还存在单个缓存空间(先进先出队列)需求大的问题,而其实际利用率往往又较低。而且,由于仲裁需要层层判断,其对通道数非常敏感,过大的通道数会导致其硬件实现困难,从而导致不得不下降频率来满足实现。而不管是频率的下降,还是通道数过小,都会限制对高吞吐量的追求,使得系统性能与理想性能存在差距。因此,有必要对现有技术进行改进。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种两写两读的数据传输结构以及片上多通道交互网络。
本发明的目的是通过以下技术方案实现的:
根据本发明的第一方面,提供一种两写两读的数据传输结构,包括:两条传输通道,其中,每条传输通道包括依次连接的具有两个输入接口的仲裁器、先进先出队列和读接口,以及连接仲裁器和读接口的直通线路;两个写接口,所述写接口用于与数据输入通道连接接收输入数据,每个写接口连接到两条传输通道中的每个仲裁器的一个输入接口;其中,所述传输通道被配置为:在一个时钟周期,能同时允许两个写接口各自输入一个数据,并通过传输通道对数据进行缓存或者传输。
在本发明的一些实施例中,数据传输结构被配置为:在一个时钟周期,能同时允许两个写接口各自输入一个数据,并根据数据的相应地址位将两个数据传递到同一个传输通道或者不同传输通道。
在本发明的一些实施例中,两条传输通道中的不同仲裁器具有不同的仲裁器地址,在数据的相应地址位的值与其中一个仲裁器的仲裁器地址匹配时,所述仲裁器对应的输入接口允许该数据输入该仲裁器所在的传输通道。
在本发明的一些实施例中,数据传输结构被配置为:在一个时钟周期,两个写接口各自输入的一个数据被传输到同一个传输通道时,按照以下方式处理:若该传输通道的先进先出队列内没有数据,则将其中一个写接口在该时钟周期输入的数据通过直通线路传输而另一个写接口在该时钟周期输入的数据通过先进先出队列缓存;若该传输通道的先进先出队列内有数据,则将两个写接口在该时钟周期输入的数据均通过先进先出队列缓存并在后续时钟周期发出。
在本发明的一些实施例中,数据传输结构被配置为:在一个时钟周期,两个写接口各自输入的一个数据被传输到不同传输通道时,按照以下方式处理:若相应传输通道的先进先出队列内没有数据,则其将该时钟周期输入的数据通过直通线路传输;若相应传输通道的先进先出队列内有数据,则其将该时钟周期输入的数据通过先进先出队列缓存并在后续时钟周期发出。
根据本发明的第二方面,提供一种片上多通道交互网络,包括:多个输入端口,每个输入端口分别用于相应的输入通道的数据输入;多阶段传输网络,其用于传输多个输入端口输入的数据;多个输出端口,其用于输出多阶段传输网络传输的数据,以传向相应的输出通道;其中,多阶段传输网络被配置为:通过分阶段设置的多个如第一方面所述的两写两读的数据传输结构以及对应的耦合线路在多个输入端口和多个输出端口之间分阶段地引导传输和/或缓存数据,以在每个时钟周期能从所述多个输入端口中的每个端口同时读取一个数据,并且将数据分阶段引导至对应的输出端口。
在本发明的一些实施例中,所述多阶段传输网络还被配置为:在每个时钟周期能同时向每个输出端口发出一个数据。
在本发明的一些实施例中,在每个阶段,数据传输结构通过数据对应的地址信息中的相应地址位引导数据分阶段地传输至其对应的输出端口。
在本发明的一些实施例中,每个阶段分别利用数据对应的地址信息中的一个地址位确定相应仲裁器的输入接口对应的使能信号,其中,在数据的相应地址位的值与其中一个仲裁器的仲裁器地址匹配时,所述仲裁器对应的输入接口被使能信号控制至允许数据通过的状态。
在本发明的一些实施例中,在每个阶段设置多个数据传输结构,每个阶段对应的上游接口按照预定的一个分组规则分成多个上游接口对,所述多个上游接口对与所述多个数据传输结构按照以下方式连接:每个上游接口对与一个数据传输结构相连接,其中每个上游接口通过所述数据传输结构的写接口连接到所述数据传输结构的两条传输通道中的每个仲裁器的一个输入接口;不同的上游接口对连接到不同的数据传输结构,其中,第一阶段对应的上游接口是输入端口,第一阶段以后的阶段对应的上游接口是上一阶段的数据传输结构的读接口。
在本发明的一些实施例中,对于除第一阶段的其他阶段,每个阶段设置与第一阶段相同数目的多个数据传输结构,将该阶段的上游接口按照与先前阶段不同的分组规则分成多个上游接口对。
根据本发明的第三方面,提供一种加速装置,其包括多个处理单元,相应处理单元之间通过第二方面所述的片上多通道交互网络连接。
与现有技术相比,本发明的优点在于:
本发明的数据传输结构对于两通道的数据传输而言,可以在每个时钟周期直接将两个写接口的数据直接引导到对应的传输通道,数据传输的效率更高;而且,对于多个通道的数据传输,可以将本发明的两写两读的数据传输结构作为基础结构设置在多个阶段,通过分阶段地引导传输和/或缓存数据,以在每个时钟周期能从所述多个输入端口中的每个端口同时读取一个数据,并且将数据分阶段引导至对应的输出端口,由此避免设计集中以及通过分阶段引导数据到达对应的输出端口的方式减少数据冲突,提高数据传输的吞吐量。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1a为根据现有技术设计的片上网络出现数据堵塞的原理示意图;
图1b为根据现有技术设计的片上网络出现设计集中性问题的示意图;
图2为根据本发明实施例的简化结构的原理示意图;
图3为根据本发明实施例的针对总通道为4的场景设计的片上多通道交互网络的结构示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如在背景技术部分提到的,常用于多通道交互的技术方案是仲裁,比如基于交叉开关矩阵(Crossbar)的仲裁算法。该仲裁算法作用原理为:当多个通道在交互区时,即其可能访问资源相同时,通过仲裁,决定谁通行。如果两个通道A与通道B访问相同资源时,仲裁器决定A通行,则B停滞堵塞,直到所需资源可用。仲裁的方法会导致两个问题,限制性能的进一步提升。第一个问题为数据冲突,当多通道竞争相同的访问资源或者执行部件时,在仲裁中失败的通道其对应的计算过程会因没有获取计算所需的数据而停滞;而且,一方面,其停滞的效应可能进一步传播到前面的部件,影响其他通道,导致芯片整体性能进一步下降;另一面也会导致后续执行通道缺少足够的负载,从而空转。第二个问题为设计集中性,多通道间交互过于密集,导致硬件实现困难,进而致使最终硬件实现时频率下降。因此,本发明提出一种两写两读的数据传输结构,包括:两条传输通道,其中,每条传输通道包括依次连接的具有两个输入接口的仲裁器、先进先出队列和读接口,以及连接仲裁器和读接口的直通线路;两个写接口,所述写接口用于与数据输入通道连接接收输入数据,每个写接口连接到两条传输通道中的每个仲裁器的一个输入接口;其中,所述传输通道被配置为:在一个时钟周期,能同时允许两个写接口各自输入一个数据,并通过传输通道对数据进行缓存或者传输。这种数据传输结构对于两通道的数据传输而言,可以在每个时钟周期直接将两个写接口的数据直接引导到对应的传输通道,数据传输的效率更高;而且,对于多个通道的数据传输,可以将本发明的两写两读的数据传输结构作为基础结构设置在多个阶段,通过分阶段地引导传输和/或缓存数据,以在每个时钟周期能从所述多个输入端口中的每个端口同时读取一个数据,并且将数据分阶段引导至对应的输出端口,由此避免设计集中以及通过分阶段引导数据到达对应的输出端口的方式减少数据冲突,提高数据传输的吞吐量。
在对本发明的实施例进行具体介绍之前,先对其中使用到的部分术语作如下解释:
FIFO:先进先出队列;
nW1R:n个写接口1个读接口;
2W1R:2个写接口1个读接口;
2W2R:2个写接口2个读接口。
根据本发明的一个实施例,一种两写两读的数据传输结构,包括:两条传输通道,其中,每条传输通道包括依次连接的具有两个输入接口的仲裁器、先进先出队列和读接口,以及连接仲裁器和读接口的直通线路;两个写接口,所述写接口用于与数据输入通道连接接收输入数据,每个写接口连接到两条传输通道中的每个仲裁器的一个输入接口(即每个写接口连接两个输入接口并且所述两个输入接口属于两条传输通道的不同仲裁器);其中,所述传输通道被配置为:在一个时钟周期,能同时允许两个写接口各自输入一个数据,并通过传输通道对数据进行缓存或者传输。根据本发明的一个实施例,此处通过如图2所示的简单结构来说明本发明实现在每个时钟周期能从多个输入端口中的每个端口同时读取一个数据的原理。虚线框出的结构为一个示意的两写两读的数据传输结构,包括传输通道0和传输通道1,其中,传输通道0包括依次连接的具有两个输入接口(比如图2所示的输入接口0和输入接口1)的仲裁器0、先进先出队列0和读接口0,以及连接仲裁器0和读接口0的直通线路0;传输通道1包括依次连接的具有两个输入接口(比如图2所示的输入接口2和输入接口3)的仲裁器1、先进先出队列1和读接口1,以及连接仲裁器1和读接口1的直通线路1;写接口0,其连接输入接口0(其属于传输通道0中的仲裁器0)和输入接口2(其属于传输通道1中的仲裁器1);写接口1,其连接输入接口1(其属于传输通道0中的仲裁器0)和输入接口3(其属于传输通道1中的仲裁器1);其中,数据传输结构被配置为:在一个时钟周期,能同时允许写接口0和写接口1各自输入一个数据,并利用传输通道0和传输通道1中的相应传输通道将数据进行缓存或者传输至下游。图2所示的结构可用于在每个时钟周期将每个输入端口的一个数据引导到对应的中间通道,因此没有输入通道会停止(除非相应的先进先出队列满了),可提高数据传输的效率。
根据本发明的一个实施例,数据传输结构被配置为:在一个时钟周期,能同时允许两个写接口各自输入一个数据,并根据数据的相应地址位将两个数据传递到同一个传输通道或者不同传输通道。优选的,两条传输通道中的不同仲裁器具有不同的仲裁器地址,在数据的相应地址位的值与其中一个仲裁器的仲裁器地址匹配时,所述仲裁器对应的输入接口允许该数据输入该仲裁器所在的传输通道。
根据本发明的一个实施例,假设图2所示结构中,仲裁器0对应的仲裁器地址设置为0,仲裁器1对应的仲裁器地址设置为1。此时输入通道0和输入通道1的两个数据的对应地址位的值可能是0或者1,由此,图2所示的两个输入通道对应的数据队列中头部的数据有4种可能的引导方式:
引导方式1:在一个时钟周期,输入通道0和输入通道1头部的数据对应的地址位的值均为0,均与仲裁器0的仲裁器地址(即0)匹配,则仲裁器0的两个输入接口(输入接口0和输入接口1)均被使能信号接通,写接口0和写接口1分别将输入通道0和输入通道1的头部的数据输入传输通道0(比如:写接口0将输入通道0对应的头部数据0通过输入接口0输入传输通道0以及写接口1将输入通道1对应的头部数据0通过输入接口1输入传输通道0);
引导方式2:在一个时钟周期,输入通道0头部的数据对应的地址位的值为0,而输入通道1头部的数据对应的地址位的值为1;可见,输入通道0头部的数据对应的地址位与仲裁器0的仲裁器地址(即0)匹配,输入通道1头部的数据对应的地址位与仲裁器1的仲裁器地址(即1)匹配;则仲裁器0的输入接口0被使能信号接通,仲裁器1的输入接口3被使能信号接通;写接口0将输入通道0对应的头部数据0通过输入接口0输入传输通道0,写接口1将输入通道1对应的头部数据0通过输入接口3输入传输通道1;
引导方式3:在一个时钟周期,输入通道0头部的数据对应的地址位的值为1,而输入通道1头部的数据对应的地址位的值为0;可见,输入通道0头部的数据对应的地址位与仲裁器1的仲裁器地址(即1)匹配,输入通道1头部的数据对应的地址位与仲裁器0的仲裁器地址(即0)匹配;则仲裁器0的输入接口1被使能信号接通,仲裁器1的输入接口2被使能信号接通;写接口0将输入通道0对应的头部数据0通过输入接口2输入传输通道1,写接口1将输入通道1对应的头部数据0通过输入接口1输入传输通道0;
引导方式4:输入通道0和输入通道1头部的数据对应的地址位的值均为1,均与仲裁器1的仲裁器地址(即1)匹配,则仲裁器1的两个输入接口(输入接口2和输入接口3)均被使能信号接通,写接口0和写接口1分别将输入通道0和输入通道1的头部的数据输入传输通道1(比如:写接口0将输入通道0对应的头部数据0通过输入接口2输入传输通道1以及写接口1将输入通道1对应的头部数据0通过输入接口3输入传输通道1)。
根据本发明的一个实施例,数据传输结构被配置为:在一个时钟周期,两个写接口各自输入的一个数据被传输到同一个传输通道时,按照以下方式处理:若该传输通道的先进先出队列内没有数据,则将其中一个写接口在该时钟周期输入的数据通过直通线路传输而另一个写接口在该时钟周期输入的数据通过先进先出队列缓存;若该传输通道的先进先出队列内有数据,则将两个写接口在该时钟周期输入的数据均通过先进先出队列缓存并在后续时钟周期发出。例如,假设在一个时钟周期中,采用上述引导方式1向传输通道0输入两个数据,如果传输通道0的先进先出队列0内此时没有数据,则可将其中写接口0(应当理解,此处仅为示意,可以按照随机或者优先级的方式决定某个写接口的数据先通过,本发明对此不作任何限制)在该时钟周期输入的数据0先通过直通线路传输而写接口1在该时钟周期输入的数据0暂时通过先进先出队列0缓存并在后续发出。又例如,假设在一个时钟周期中,采用上述引导方式1向传输通道0输入两个数据,如果传输通道0的先进先出队列0内有数据,则将其中写接口0和写接口1在该时钟周期输入的数据均暂时通过先进先出队列0缓存并在后续发出。
根据本发明的一个实施例,数据传输结构被配置为:在一个时钟周期,两个写接口各自输入的一个数据被传输到不同传输通道时,按照以下方式处理:若相应传输通道的先进先出队列内没有数据,则其将该时钟周期输入的数据通过直通线路传输;若相应传输通道的先进先出队列内有数据,则其将该时钟周期输入的数据通过先进先出队列缓存并在后续时钟周期发出。例如,假设在一个时钟周期中,采用上述引导方式2或者3分别向传输通道0和传输通道1输入一个数据,如果传输通道0的先进先出队列0和传输通道1的先进先出队列1内均没有数据,则该时钟周期输入到传输通道0和传输通道1的一个数据通过其所输入传输通道的直通线路传输。又例如,假设在一个时钟周期中,采用上述引导方式2向传输通道0输入1个数据,而传输通道0的先进先出队列内有数据,则将该时钟周期输入的数据通过先进先出队列0缓存并在后续时钟周期发出。
根据本发明的一个实施例,提供一种片上多通道交互网络,包括:多个输入端口,每个输入端口分别用于不同输入通道的数据输入;多阶段传输网络,其用于传输多个输入端口输入的数据;多个输出端口,其用于输出多阶段传输网络传输的数据,以传向相应的输出通道;其中,多阶段传输网络被配置为:通过分阶段设置的多个如前述实施例所述的两写两读的数据传输结构以及对应的耦合线路在多个输入端口和多个输出端口之间分阶段地引导传输和/或缓存数据,以在每个时钟周期能从所述多个输入端口中的每个端口同时读取一个数据,并且将数据分阶段引导至对应的输出端口。优选的,多阶段传输网络还被配置为:在每个时钟周期能同时向每个输出端口发出一个数据。该实施例的技术方案至少能够实现以下有益技术效果:在加速装置(如加速芯片)的片上设计中,执行多为流水线进行,所以在执行通道(对应于片上多通道交互网络)中增长总的阶段数,虽然会使得单个数据的执行延迟变长,但其对总体性能的影响小;而本发明将多通道密集的交互分散到多个阶段,并在每个阶段可利用中间通道缓冲数据,数据片上多通道交互网络根据确定的耦合路线不断沿各个阶段传播,直到到达它们的目的输出端口,可以较好地减少设计集中性;受益于多阶段、确定性传播数据,数据冲突问题将被缓解。同时,输入通道对应的数据队列中的行头数据不阻塞其背后的数据,数据逐级传播到目标输出端口,减少了数据路径冲突,提高了吞吐量。
根据本发明的一个实施例,在输入通道和输出通道之间设置多阶段传输网络,其中,阶段的数量根据输入端口或者输出端口的数量按照以下方式确定:
Stage=Log2n,
其中,Stage表示阶段的数量,n表示输入端口或者输出端口的数量。
以4个输入通道、4个输出通道为例,对应地,有4个输入端口、4个输出端口。此处n=4,阶段的数量Stage==Log24=2,即阶段的数量为2。
根据本发明的一个实施例,在每个阶段,数据传输结构通过数据对应的地址信息中的相应地址位引导数据分阶段地传输至其对应的输出端口。优选的,每个阶段分别利用数据对应的地址信息中的一个地址位确定相应仲裁器的输入接口对应的使能信号,其中,在数据的相应地址位的值与其中一个仲裁器的仲裁器地址匹配时,所述仲裁器对应的输入接口被使能信号控制至允许数据通过的状态。该实施例的技术方案至少能够实现以下有益技术效果:由于片上多通道交互网络中各阶段的交互执行通道数量有限(即每个阶段中仅数据传输结构所对应的上游接口会和数据传输结构中的传输通道交互),降低了实现的复杂性;另外,也使本发明可在不降低频率的情况下,提高了多并行执行信道设计的可扩展性。
根据本发明的一个实施例,在每个阶段设置多个数据传输结构,每个阶段对应的上游接口按照预定的一个分组规则分成多个上游接口对,所述多个上游接口对与所述多个数据传输结构按照以下方式连接:每个上游接口对与一个数据传输结构相连接,其中每个上游接口通过所述数据传输结构的写接口连接到所述数据传输结构的两条传输通道中的每个仲裁器的一个输入接口;不同的上游接口对连接到不同的数据传输结构,其中,第一阶段对应的上游接口是输入端口,第一阶段以后的阶段对应的上游接口是上一阶段的数据传输结构的读接口。优选的,对于除第一阶段的其他阶段,每个阶段设置与第一阶段相同数目的多个数据传输结构,将该阶段的上游接口按照与先前阶段不同的分组规则分成多个上游接口对。例如,根据本发明的一个实施例,在第一阶段,设置多个数据传输结构,多个输入端口(第一阶段对应的上游接口)按照预定的一个分组规则分成多个输入端口对,所述多个输入端口对与所述多个数据传输结构按照以下方式连接:每个输入端口对与一个数据传输结构相连接,其中每个输入端口通过所述数据传输结构的写接口连接到所述数据传输结构的两条传输通道中的每个仲裁器的一个输入接口;不同的输入端口对连接到不同的数据传输结构。根据本发明的一个实施例,对于除第一阶段的其他阶段,每个阶段设置与第一阶段相同数目的多个数据传输结构,将前一阶段的数据传输结构的读接口(其他阶段对应的上游接口)按照与先前阶段不同的分组规则分成多个读接口对,前一阶段的数据传输结构的多个读接口对与当前阶段的多个数据传输结构按照以下方式连接:每个前一阶段的数据传输结构的多个读接口对与一个数据传输结构相连接,其中前一阶段的数据传输结构的每个读接口通过当前阶段的数据传输结构的写接口连接到当前阶段的数据传输结构的两条传输通道中的每个仲裁器的一个输入接口;前一阶段的数据传输结构的不同的读接口对连接到不同的数据传输结构。
根据本发明的一个实施例,如图3所示,以4个输入通道、4个输出通道为例,按照上述计算阶段的数量的公式,对应的阶段的数量为2。此时数据的地址信息中的地址位需要两位,假设用其中处于高位的地址位来确定阶段1中的数据传输结构的连接关系,用其中处于低位的地址位来确定阶段2中的数据传输结构的连接关系,可以确定连接关系表。连接关系表指示当前阶段中各数据传输结构对应的上游接口对;比如连接关系表的形式为阶段1:{0,2}、{1,3}以及阶段2:{0,1}、{2,3};其中,阶段1:{0,2}表示在阶段1中,一个数据传输结构的一个写接口与输入端口0(或者输出端口0)相对应,而该数据传输结构另一个写读接口对与输入端口2(或者输出端口2)相对应;其他连接关系类似,此处不作赘述。根据连接关系表中的阶段1:{0,2},则阶段1中,一个数据传输结构的一个写接口连接输入端口0,另一写接口连接输入端口2;例如,传输通道0和传输通道2的数据传输结构的一个写接口连接输入端口0,另一写接口连接输入端口2;类似的,根据连接关系表中的阶段1:{1,3},则阶段1中,包括传输通道1和传输通道3的数据传输结构的一个写接口连接输入端口1,另一写接口连接输入端口3;根据连接关系表中的阶段2:{0,1},则阶段2中,包括传输通道0和传输通道1的数据传输结构的一个写接口连接阶段1的传输通道0的读接口,而另一写接口连接阶段1的传输通道1的读接口;其他写接口的连接方式类似,此处不作赘述。
在图3所示的结构中,4个输出端口对应的地址信息需要2个比特位(地址位),其中,阶段1利用处于高位的地址位来确定相应输入接口对应的使能信号,阶段2利用低位的地址位来确定相应输入接口对应的使能信号,此时,各个仲裁器的仲裁器地址可以参照图3中仲裁器中给出的数值设置。下面从两个示例来说明数据在片上多通道交互网络时不会跨越传输通道的场景和跨越多个传输通道的场景:
示例1(不会跨越传输通道的场景):假设一个数据从输入端口1输入(为了便于说明数据流向,假设当前各个传输通道内均没有缓存其他数据)其对应的地址信息为01,表示最终要通过输出端口1传输给通道1;时钟周期0时,在阶段1,利用其地址信息中高位的0来决定数据流向,0与阶段1的传输通道1的仲裁器地址(即0)相匹配,其被输入阶段1的传输通道1;时钟周期1时,在阶段2,利用其地址信息中低位的1来决定数据流向,1与阶段2的传输通道1的仲裁器地址(即1)相匹配,其被输入阶段2的传输通道1,并在下一个时钟周期(时钟周期3)可经由输出端口1传输到输出通道1。
示例2(跨越多个传输通道的场景):假设一个数据从输入端口3输入(为了便于说明数据流向,假设当前各个传输通道内均没有缓存其他数据)其对应的地址信息为00,表示最终要通过输出端口0传输给通道0;时钟周期0时,在阶段1,利用其地址信息中高位的0来决定数据流向,0与阶段1的传输通道1的仲裁器地址(即0)相匹配,其被输入阶段1的传输通道1;时钟周期1时,在阶段2,利用其地址信息中低位的0来决定数据流向,0与阶段2的传输通道0的仲裁器地址(即0)相匹配,其被输入阶段2的传输通道0,并在下一个时钟周期(时钟周期3)可经由输出端口0传输到输出通道0。由此数据分阶段地转发到对应的输出端口。
根据本发明的一个实施例,参照下面的伪代码,可以按照以下方式来确定阶段数量以及连接关系表。
Figure BDA0003661785150000121
对上述伪代码的解释如下:
输入:n,n表示总的通道数(可对应于输入端口、输出端口、输入通道、输出通道中任意一种的数量)
步骤1:建立2W2R模块(对应于如图2所示的两写两读的数据传输结构)
行1:使用2个2W1R FIFO建立2W2R模块
步骤2:输出连接关系
行2:用于根据基数2以及通道数n计算出需要多少个阶段,一共需要log2n阶段;
行3:每个阶段先建立一个表,用于记录成对的传输通道;
行4:每个阶段的分组数目;
行5:根据通道数n和分组数计算每个分组的传输通道的编号起始值;
行6:计算每个阶段中成对的传输通道中两个传输通道的编号差值;
行7-14:确定每个阶段内的成对的传输通道,以建立对应的连接关系表;
行15:根据地址信息中的相应地址位以及连接关系表建立不同传输通道间的耦合线路。
根据本发明的一个实施例,按照图2所示的规则,很容易构建一个2W2R模块(对应于如图2所示的两个传输通道组成的数据传输结构),其中的数据会根据其地址位选择进入对应的FIFO(对应于相应传输通道的先入先出队列)。当构建完2W2R模块,就可以将其用于片上多通道交互网络(Multiple-stage Decentralized Propagation network,MDP-network)的搭建了。然后便进入了端口连接,即为MDP-network的各个阶段的通路选择对应的2W2R模块。图3给出了总通道数为4个时片上多通道交互网络的样例。首先原本4个输入通道中的数据根据2个地址位addr[0,1](address)来选择目标通道。由于总通道数是4,基数是2,需要构建log24=2个阶段的网络,如图3所示。在阶段1,所有输入通道对应的输入端口的目标范围是一致的,即对应输出端口0-3。也就是说这4个输入端口的数据其可能的目标范围是一样,即输出端口0-3,因此阶段1中所有的传输通道划分为一个组(target_group=1,或者称目标组)。行6中的通道差值(channel_step)是一个数据传输结构中的两个传输通道ID之间的差值,阶段1中channel_step是2(channel_step=2)。所以可以找到{0,2}和{1,3}两对数据传输结构,我们将其分别连到2个2W2R模块,并用addr[1]作为地址选择。注意,在图3中如果2个2W1R FIFO来自同一个2W2R模块,采用了对应的底纹进行标注以便区分。在阶段2,行4中的target_group为2,行6中的channel_step为1。所以可以找到组1的输入端口{0,1}和组2的输入端口{2,3}是2对,然后用addr[0]将它们连接到2个2W2R模块。如此,便完成了一个片上多通道交互网络的搭建。
根据本发明的一个实施例,提供一种加速装置,其包括多个处理单元,相应处理单元之间通过上述实施例的片上多通道交互网络连接。加速装置例如是图计算加速器或者神经网络加速器等。由此,其数据堵塞情况下降,设计的拓展性得到提升。应当理解,一个片上多通道交互网络所连接的不一定必然是2的整数倍。比如,假设需要连接5个处理单元,可以按照8个总通道数构建本发明的片上多通道交互网络,然后仅利用其中的5个输入端口和对应的5个输出端口即可。
为了验证本发明的效果,申请人进行了相应的实验。
实验所采用的以下加速装置的总通道数为32个。我们将其中交互部分的交叉开关(Crossbar)设计替换成了本研究提出的MDP-network设计。采取的数据集信息如表1所示:
表1数据集表
Figure BDA0003661785150000141
采用的算法为BFS(Breadth-First Search)算法、SSSP(Single Source ShortestPath)算法、SSWP(Single Source Widest Path)算法、PR(PageRank)算法。
相比采用交叉开关,采取本发明的网络结构实现的加速比效果如表2所示:
表2
Figure BDA0003661785150000142
Figure BDA0003661785150000151
另一方面,申请人综合实验发现,即使总通道数增长到256,本发明的网络传输速度依然满足1GHz的要求,而交叉开关的设计在总通道数增加频率下降严重时,比如总通道数增加到64时频率基本跌为0;证明本发明减轻了设计集中性的影响。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (12)

1.一种两写两读的数据传输结构,其特征在于,包括:
两条传输通道,其中,每条传输通道包括依次连接的具有两个输入接口的仲裁器、先进先出队列和读接口,以及连接仲裁器和读接口的直通线路;
两个写接口,所述写接口用于与数据输入通道连接接收输入数据,每个写接口连接到两条传输通道中的每个仲裁器的一个输入接口;
其中,所述传输通道被配置为:在一个时钟周期,能同时允许两个写接口各自输入一个数据,并通过传输通道对数据进行缓存或者传输。
2.根据权利要求1所述的两写两出的数据传输结构,其特征在于,数据传输结构被配置为:在一个时钟周期,能同时允许两个写接口各自输入一个数据,并根据数据的相应地址位将两个数据传递到同一个传输通道或者不同传输通道。
3.根据权利要求2所述的两写两出的数据传输结构,其特征在于,两条传输通道中的不同仲裁器具有不同的仲裁器地址,在数据的相应地址位的值与其中一个仲裁器的仲裁器地址匹配时,所述仲裁器对应的输入接口允许该数据输入该仲裁器所在的传输通道。
4.根据权利要求2所述的两写两出的数据传输结构,其特征在于,数据传输结构被配置为:在一个时钟周期,两个写接口各自输入的一个数据被传输到同一个传输通道时,按照以下方式处理:
若该传输通道的先进先出队列内没有数据,则将其中一个写接口在该时钟周期输入的数据通过直通线路传输而另一个写接口在该时钟周期输入的数据通过先进先出队列缓存;
若该传输通道的先进先出队列内有数据,则将两个写接口在该时钟周期输入的数据均通过先进先出队列缓存并在后续时钟周期发出。
5.根据权利要求2所述的两写两出的数据传输结构,其特征在于,数据传输结构被配置为:在一个时钟周期,两个写接口各自输入的一个数据被传输到不同传输通道时,按照以下方式处理:
若相应传输通道的先进先出队列内没有数据,则其将该时钟周期输入的数据通过直通线路传输;
若相应传输通道的先进先出队列内有数据,则其将该时钟周期输入的数据通过先进先出队列缓存并在后续时钟周期发出。
6.一种片上多通道交互网络,其特征在于,包括:
多个输入端口,每个输入端口分别用于相应的输入通道的数据输入;
多阶段传输网络,其用于传输多个输入端口输入的数据;
多个输出端口,其用于输出多阶段传输网络传输的数据,以传向相应的输出通道;
其中,多阶段传输网络被配置为:通过分阶段设置的多个如权利要求1-5之一所述的两写两读的数据传输结构以及对应的耦合线路在多个输入端口和多个输出端口之间分阶段地引导传输和/或缓存数据,以在每个时钟周期能从所述多个输入端口中的每个端口同时读取一个数据,并且将数据分阶段引导至对应的输出端口。
7.根据权利要求6所述的片上多通道交互网络,其特征在于,所述多阶段传输网络还被配置为:在每个时钟周期能同时向每个输出端口发出一个数据。
8.根据权利要求6所述的片上多通道交互网络,其特征在于,在每个阶段,数据传输结构通过数据对应的地址信息中的相应地址位引导数据分阶段地传输至其对应的输出端口。
9.根据权利要求8所述的片上多通道交互网络,其特征在于,每个阶段分别利用数据对应的地址信息中的一个地址位确定相应仲裁器的输入接口对应的使能信号,其中,在数据的相应地址位的值与其中一个仲裁器的仲裁器地址匹配时,所述仲裁器对应的输入接口被使能信号控制至允许数据通过的状态。
10.根据权利要求8所述的片上多通道交互网络,其特征在于,在每个阶段设置多个数据传输结构,每个阶段对应的上游接口按照预定的一个分组规则分成多个上游接口对,所述多个上游接口对与所述多个数据传输结构按照以下方式连接:每个上游接口对与一个数据传输结构相连接,其中每个上游接口通过所述数据传输结构的写接口连接到所述数据传输结构的两条传输通道中的每个仲裁器的一个输入接口;不同的上游接口对连接到不同的数据传输结构,其中,第一阶段对应的上游接口是输入端口,第一阶段以后的阶段对应的上游接口是上一阶段的数据传输结构的读接口。
11.根据权利要求10所述的片上多通道交互网络,其特征在于,对于除第一阶段的其他阶段,每个阶段设置与第一阶段相同数目的多个数据传输结构,将该阶段的上游接口按照与先前阶段不同的分组规则分成多个上游接口对。
12.一种加速装置,其包括多个处理单元,相应处理单元之间通过权利要求6-11之一所述的片上多通道交互网络连接。
CN202210579507.1A 2022-05-25 2022-05-25 一种两写两读的数据传输结构以及片上多通道交互网络 Active CN114968861B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210579507.1A CN114968861B (zh) 2022-05-25 2022-05-25 一种两写两读的数据传输结构以及片上多通道交互网络

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210579507.1A CN114968861B (zh) 2022-05-25 2022-05-25 一种两写两读的数据传输结构以及片上多通道交互网络

Publications (2)

Publication Number Publication Date
CN114968861A true CN114968861A (zh) 2022-08-30
CN114968861B CN114968861B (zh) 2024-03-08

Family

ID=82956254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210579507.1A Active CN114968861B (zh) 2022-05-25 2022-05-25 一种两写两读的数据传输结构以及片上多通道交互网络

Country Status (1)

Country Link
CN (1) CN114968861B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841420A (zh) * 2010-05-24 2010-09-22 中国人民解放军国防科学技术大学 面向片上网络的低延迟路由器结构
US20100272117A1 (en) * 2009-04-27 2010-10-28 Lsi Corporation Buffered Crossbar Switch System
US20140269760A1 (en) * 2013-03-12 2014-09-18 Caustic Graphics, Inc. System And Method of Arbitrating Access to Interconnect
CN104484128A (zh) * 2014-11-27 2015-04-01 盛科网络(苏州)有限公司 基于一读一写存储器的多读多写存储器及其实现方法
CN112948322A (zh) * 2021-02-26 2021-06-11 西安微电子技术研究所 一种基于弹性缓存的虚通道及实现方法
CN113114593A (zh) * 2021-04-12 2021-07-13 合肥工业大学 一种片上网络中双信道路由器及其路由方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100272117A1 (en) * 2009-04-27 2010-10-28 Lsi Corporation Buffered Crossbar Switch System
CN101841420A (zh) * 2010-05-24 2010-09-22 中国人民解放军国防科学技术大学 面向片上网络的低延迟路由器结构
US20140269760A1 (en) * 2013-03-12 2014-09-18 Caustic Graphics, Inc. System And Method of Arbitrating Access to Interconnect
CN104484128A (zh) * 2014-11-27 2015-04-01 盛科网络(苏州)有限公司 基于一读一写存储器的多读多写存储器及其实现方法
CN112948322A (zh) * 2021-02-26 2021-06-11 西安微电子技术研究所 一种基于弹性缓存的虚通道及实现方法
CN113114593A (zh) * 2021-04-12 2021-07-13 合肥工业大学 一种片上网络中双信道路由器及其路由方法

Also Published As

Publication number Publication date
CN114968861B (zh) 2024-03-08

Similar Documents

Publication Publication Date Title
US9515961B2 (en) Credit flow control scheme in a router with flexible link widths utilizing minimal storage
US8718065B2 (en) Transmission using multiple physical interface
KR900006791B1 (ko) 패킷 스위치식 다중포트 메모리 n×m 스위치 노드 및 처리 방법
KR900006793B1 (ko) 패킷 스위치 다중 대기행렬 NxM 스위치 노오드 및 처리 방법
US6763426B1 (en) Cascadable content addressable memory (CAM) device and architecture
US8638665B2 (en) Router, information processing device having said router, and packet routing method
US20170063625A1 (en) Configurable router for a network on chip (noc)
US8589614B2 (en) Network system with crossbar switch and bypass route directly coupling crossbar interfaces
EP1468372B1 (en) Asynchronous crossbar with deterministic or arbitrated control
US5164939A (en) Packet switching device
US10101996B2 (en) Arithmetic processing apparatus, information processing apparatus, and method of controlling information processing apparatus
KR100785472B1 (ko) 긴급 NoC 패킷 대기시간 관리 장치 및 그 방법
CN101488922A (zh) 具备自适应路由能力的片上网络路由器及其实现方法
US10523599B2 (en) Buffer sizing of a NoC through machine learning
CN114090250A (zh) 一种基于Banyan网络和多FPGA结构的EDA硬件加速方法与系统
US10554584B2 (en) Dedicated SSR pipeline stage of router for express traversal (EXTRA) NoC
CN108768778A (zh) 一种网络时延计算方法、装置、设备及存储介质
CN114968861B (zh) 一种两写两读的数据传输结构以及片上多通道交互网络
JP4687925B2 (ja) 優先調停システム及び優先調停方法
JP6094321B2 (ja) バッファ回路及び半導体集積回路
JP2002252628A (ja) パケット出力調停装置
CN110659144B (zh) 支持请求响应多端口异步多播的高吞吐混合仲裁路由方法
Zeng et al. A performance enhanced dual-switch Network-on-Chip architecture
KR20060008205A (ko) 크로스바
Trigui et al. Mesh 2D Network on Chip with an open core protocol based network interface

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