CN111290986B - 一种基于神经网络的总线互联系统 - Google Patents

一种基于神经网络的总线互联系统 Download PDF

Info

Publication number
CN111290986B
CN111290986B CN202010138762.3A CN202010138762A CN111290986B CN 111290986 B CN111290986 B CN 111290986B CN 202010138762 A CN202010138762 A CN 202010138762A CN 111290986 B CN111290986 B CN 111290986B
Authority
CN
China
Prior art keywords
interface
data
module
configuration
slave
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
CN202010138762.3A
Other languages
English (en)
Other versions
CN111290986A (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.)
Shenzhen Corerain Technologies Co Ltd
Original Assignee
Shenzhen Corerain Technologies 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 Shenzhen Corerain Technologies Co Ltd filed Critical Shenzhen Corerain Technologies Co Ltd
Priority to CN202010138762.3A priority Critical patent/CN111290986B/zh
Publication of CN111290986A publication Critical patent/CN111290986A/zh
Application granted granted Critical
Publication of CN111290986B publication Critical patent/CN111290986B/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • 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

Abstract

本发明实施例公开了一种基于神经网络的总线互联系统。该总线互联系统包括:数据路由模块R,包括路由从接口RS和第一路由主接口RM1,路由从接口RS连接至PCIe的PCIe主接口PCIeM以接收第i层计算数据;第一仲裁模块N1,包括第一仲裁第一从接口N1S1、第一仲裁第二从接口N1S2和第一仲裁主接口N1M,第一仲裁第一从接口N1S1连接至第一路由主接口RM1以接收第i层计算数据,第一仲裁主接口N1M连接至第一存储器DDR1的第一存储第一从接口DDR1S1以将第i层计算数据存储,第一仲裁第二从接口N1S2连接至第一计算引擎E1的第一存储读写接口D1以使第一计算引擎E1读取第i层计算数据并计算得到第i+1层计算数据。本发明实施例实现了应用于神经网络计算的总线互联系统更灵活和高效。

Description

一种基于神经网络的总线互联系统
技术领域
本发明实施例涉及神经网络技术,尤其涉及一种基于神经网络的总线互联系统。
背景技术
AXI(Advancede Xtensible Interface)是一种总线协议,该总线协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持Outstanding传输访问和乱序访问,并更加容易进行时序收敛。AXI是AMBA中一个新的高性能协议。AXI技术丰富了现有的AMBA标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。APB(Advanced Peripheral Bus)是外围总线的意思,该总线协议是ARM公司提出的AMBA总线结构之一,几乎已成为一种标准的片上总线结构。APB主要用于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像AHB支持多个主模块,在APB里面唯一的主模块就是APB桥。其特性包括:两个时钟周期传输;无需等待周期和回应信号;控制逻辑简单,只有四个控制信号。SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议,比如AT91RM9200。这三种总线协议应用最广,大规模被应用在各种SoC芯片上。但是,随着片上系统芯片的规模越来越大,芯片的设计特别是不同总线间的互联结构也变得越来越复杂。如何设计一个简单的、易用的且通用的互联结构是一个很大的挑战。
传统的指令集架构要经过几个阶段才能完成一次完整操作,取指令阶段,指令译码阶段,执行指令阶段,访存取数阶段,结果写回阶段,整个过程延时较大,架构效率极低。数据流架构即没有指令集参与的架构,根据数据的不断流动完成整个计算过程,只要有数据就会有计算和数据的传输,数据流架构中间的缓存使得即使当前模块的计算停止也不会影响上下游模块的计算,使得整个系统任何时间都处在运算和传输当中。如图1所示,上层编译器Compiler可以实现深度学习算法的通用性,完成对计算引擎Engine的配置,计算引擎Engine根据配置开始神经网络算法的计算,只要第一模块Module0接收到数据就立刻开始计算,输出的数据经过缓冲器Buffer送给第二模块Module1继续计算。缓冲器Buffer只要没有满就可以继续接收数据,只要没有空,就可以不断输出数据。如果第一模块Module0不再有数据输出,缓冲器Buffer中的缓存数据仍会继续输出给第二模块Module1继续计算并输出,如果第一模块Module0重新恢复输出数据,会继续往缓冲器Buffer里面送数据。直到所有的数据都处理完成并输出。基于数据流架构,可以显著提高芯片的架构效率。因此数据流架构和传统的指令集架构相比优势明显,数据流架构具有高度可拓展性和不同神经网络算法下的通用性,可以提供高能效比、低延时的多引擎并行计算性能,最大化地利用硬件资源。
对于传统的总线互联系统来说,如图2所示,总线互联系统允许多个Master主设备和多个Slave从设备的接入,比如Master0主设备、Master1主设备、Slave0从设备、Slave1从设备和Slave2从设备同时接入到总线互联系统。如果两个Master主设备同时访问总线互联系统,就需要通过Arbiter仲裁模块来仲裁决定访问的优先级。通过Bridge桥来选择具体访问哪一个Slave从设备。如果Slave2从设备想访问其他的Slave从设备,比如访问Slave20从设备或者Slave21从设备,可以继续使用Bridge桥进行扩展,此时Slave2从设备对于Slave20从设备和Slave21从设备来说就是Master主设备,基于此方法就可以进行总线互联系统的扩展。
这种传统的总线互联系统扩展性较好,但是也有很多不足:1.性能低,同一时间每个Master主设备只能访问一个Slave从设备,即当一个Master主设备申请到总线的使用权时,其他的Master主设备必须排队,当Slave从设备被其中一个Master主设备访问时,其他的Slave从设备只能闲置。且任何Master主设备和Slave从设备之间的传输都要经过仲裁,速度极慢,影响性能,适合点对点的数据传输,无法应用在大量计算和传输存在的且需要此两种操作时间高度重叠的神经网络加速芯片中;2.不够灵活,接入此互联网络的所有设备必须是基于相同协议的接口,不支持不同协议的转换。对于神经网络加速芯片来说,数据传输的时间有严格要求,神经网络每层的计算时间和传输时间差异较大,传统的总线互联系统无法在多个设备之间灵活的配合,无法调整吞吐率和带宽,因此会成为阻碍神经网络加速芯片性能的瓶颈。
发明内容
本发明实施例提供一种基于神经网络的总线互联系统,以实现应用于神经网络计算的总线互联系统更灵活和高效。
为达此目的,本发明实施例提供了一种基于神经网络的总线互联系统,该基于神经网络的总线互联系统包括:
数据路由模块R,包括路由从接口RS和第一路由主接口RM1,所述路由从接口RS连接至外部基于AXI协议的PCIe的PCIe主接口PCIeM以接收第一神经网络计算图的第i层计算数据;
第一仲裁模块N1,包括第一仲裁第一从接口N1S1、第一仲裁第二从接口N1S2和第一仲裁主接口N1M,所述第一仲裁第一从接口N1S1连接至所述第一路由主接口RM1以接收所述第i层计算数据,所述第一仲裁主接口N1M连接至外部第一存储器DDR1的第一存储第一从接口DDR1S1以将所述第i层计算数据存储在所述第一存储器DDR1中,所述第一仲裁第二从接口N1S2连接至外部第一计算引擎E1的第一存储读写接口D1以使所述第一计算引擎E1从所述第一存储器DDR1中读取所述第i层计算数据并进行计算得到第i+1层计算数据。
进一步的,该基于神经网络的总线互联系统还包括:
协议转换模块IB,包括转换从接口IBS和转换主接口IBM,所述数据路由模块R还包括第二路由主接口RM2,所述转换从接口IBS连接至所述第二路由主接口RM2以接收所述PCIe发送的基于AXI协议的第一配置数据并将所述第一配置数据转换为基于ABP协议的第二配置数据,所述转换主接口IBM连接至外部计算引擎的配置模块CSR的配置从接口CSRS以将所述第二配置数据发送至所述配置模块CSR,所述配置模块CSR连接至所述第一计算引擎E1以根据所述第二配置数据对所述第一计算引擎E1进行配置。
进一步的,该基于神经网络的总线互联系统还包括:
第二仲裁模块N2,包括第二仲裁第一从接口N2S1、第二仲裁第二从接口N2S2和第二仲裁主接口N2M,所述数据路由模块R还包括第三路由主接口RM3,所述第二仲裁第一从接口N2S1连接至所述第三路由主接口RM3以接收所述数据路由模块R发送的第二神经网络计算图的第j层计算数据,所述第二仲裁主接口N2M连接至外部第二存储器DDR2的第二存储第一从接口DDR2S1以将所述第j层计算数据存储在所述第二存储器DDR2中,所述第二仲裁第二从接口N2S2连接至外部第二计算引擎E2的第二存储读写接口D2以使所述第二计算引擎E2从所述第二存储器DDR2中读取所述第j层计算数据并进行计算得到第j+1层计算数据。
进一步的,所述第二计算引擎E2还用于接收所述第一计算引擎E1发送的第i+1层计算数据并进行计算得到第i+2层计算数据,所述第一计算引擎E1还用于接收所述第二计算引擎E2发送的第i+2层计算数据并进行计算得到第i+3层计算数据。
进一步的,所述第一计算引擎E1包括基于AXI协议的第一主接口EM1和第一从接口ES1,所述第二计算引擎E2包括基于AXI协议的第二主接口EM2和第二从接口ES2,所述第一主接口EM1和第二从接口ES2相连,所述第二主接口EM2和第一从接口ES1相连。
进一步的,该基于神经网络的总线互联系统还包括:
本地存储器RAM,包括第一RAM从接口RAMS1和第二RAM从接口RAMS2,所述第一计算引擎E1包括第一主接口EM1,所述第二计算引擎E2包括第二主接口EM2,所述第一主接口EM1和第一RAM从接口RAMS1相连,所述第二主接口EM2和第二RAM从接口RAMS2相连。
进一步的,该基于神经网络的总线互联系统还包括:
配置选通模块B,包括选通从接口BS、第一选通主接口BM1、第二选通主接口BM2和第三选通主接口BM3,所述转换主接口IBM用于依次通过所述配置选通模块B的选通从接口BS和第一选通主接口BM1连接所述配置模块CSR的配置从接口CSRS,所述转换主接口IBM还用于依次通过所述配置选通模块B的选通从接口BS和第二选通主接口BM2连接所述外部第一存储器DDR1的第一存储第二从接口DDR1S2,所述转换主接口IBM还用于依次通过所述配置选通模块B的选通从接口BS和第二选通主接口BM2连接所述外部第二存储器DDR2的第二存储第二从接口DDR2S2。
进一步的,所述配置选通模块B还包括第四选通主接口BM4,所述第四选通主接口BM4用于连接所述PCIe的PCIe从接口PCIeS。
进一步的,该基于神经网络的总线互联系统还包括:
配置选择开关MUX,包括第一输入端MUX1、第二输入端MUX2以及第一输出端MUX3,所述转换主接口IBM用于依次通过所述配置选择开关MUX的第一输入端MUX1和第一输出端MUX3连接所述配置选通模块B的选通从接口BS,所述第二输入端MUX2用于连接外部基于APB协议的Debug模块的Debug主接口DM,所述Debug模块还包括用于接收基于SPI协议数据的Debug从接口DS;
选择使能引脚EN,用于发送外部控制信号给所述配置选择开关MUX以选择输出来自所述第一输入端MUX1的数据或者输出来自所述第二输入端MUX2的数据。
进一步的,该基于神经网络的总线互联系统还包括:
跨时钟域转换模块CDC,连接在所述协议转换模块IB和配置选择开关MUX之间,所述跨时钟域转换模块CDC用于调整所述协议转换模块IB输出的时钟信号。本发明实施例通过数据路由模块R,包括路由从接口RS和第一路由主接口RM1,所述路由从接口RS连接至外部基于AXI协议的PCIe的PCIe主接口PCIeM以接收第一神经网络计算图的第i层计算数据;第一仲裁模块N1,包括第一仲裁第一从接口N1S1、第一仲裁第二从接口N1S2和第一仲裁主接口N1M,所述第一仲裁第一从接口N1S1连接至所述第一路由主接口RM1以接收所述第i层计算数据,所述第一仲裁主接口N1M连接至外部第一存储器DDR1的第一存储第一从接口DDR1S1以将所述第i层计算数据存储在所述第一存储器DDR1中,所述第一仲裁第二从接口N1S2连接至外部第一计算引擎E1的第一存储读写接口D1以使所述第一计算引擎E1从所述第一存储器DDR1中读取所述第i层计算数据并进行计算得到第i+1层计算数据,解决了传统的总线互联系统应用于神经网络计算不够灵活和高效的问题,实现了应用于神经网络计算的总线互联系统更灵活和高效的效果。
附图说明
图1是现有技术中数据流架构的结构示意图;
图2是现有技术中总线互联系统的结构示意图;
图3是本发明实施例一提供的基于神经网络的总线互联系统的结构示意图;
图4是本发明实施例二提供的基于神经网络的总线互联系统的结构示意图;
图5是本发明实施例二提供的基于神经网络的总线互联系统的结构示意图;
图6是本发明实施例二提供的基于神经网络的总线互联系统的结构示意图;
图7是本发明实施例二提供的基于神经网络的总线互联系统的结构示意图。
图8是本发明实施例三提供的基于神经网络的总线互联系统的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一模块称为第二模块,且类似地,可将第二模块称为第一模块。第一模块和第二模块两者都是模块,但其不是同一模块。术语“第一”、“第二”等不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明实施例的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
实施例一
如图3所示,本发明实施例一提供了一种基于神经网络的总线互联系统100,该总线互联系统100包括数据路由模块R和第一仲裁模块N1,其中:
数据路由模块R包括路由从接口RS和第一路由主接口RM1,所述路由从接口RS连接至外部基于AXI协议的PCIe的PCIe主接口PCIeM以接收第一神经网络计算图的第i层计算数据;第一仲裁模块N1包括第一仲裁第一从接口N1S1、第一仲裁第二从接口N1S2和第一仲裁主接口N1M,所述第一仲裁第一从接口N1S1连接至所述第一路由主接口RM1以接收所述第i层计算数据,所述第一仲裁主接口N1M连接至外部第一存储器DDR1的第一存储第一从接口DDR1S1以将所述第i层计算数据存储在所述第一存储器DDR1中,所述第一仲裁第二从接口N1S2连接至外部第一计算引擎E1的第一存储读写接口D1以使所述第一计算引擎E1从所述第一存储器DDR1中读取所述第i层计算数据并进行计算得到第i+1层计算数据。
具体的,该总线互联系统100可以设置在神经网络的芯片中,在总线互联系统100中,数据路由模块R可以为基于AXI协议的Axi_router_1to2模块,数据路由模块R可以实现一个基于AXI协议的主接口对不同的基于AXI协议的从接口的访问,实现路由功能,并检测每个通路的状态。第一仲裁模块N1可以为基于AXI协议的Noc_axi_2to1模块,第一仲裁模块N1可以实现当多个基于AXI协议的主接口同时访问同一个基于AXI协议的从接口时,实现跨时钟域处理和仲裁等功能,即决定访问同一个基于AXI协议的从接口的先后顺序。与总线互联系统100连接的外部元件中:PCIe(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,本实施例中所指的PCIe为与PCIe对应的模块,PCIe包括一个基于AXI协议的PCIe主接口PCIeM,第一计算引擎E1为神经网络的AI计算引擎,第一存储器DDR1包括一个基于AXI协议的第一存储第一从接口DDR1S1,配置模块CSR包括一个基于APB协议的配置从接口CSRS。
本实施例中,采用本发明实施例提供的总线互联系统100进行神经网络的计算时,在计算之前首先需要对第一计算引擎E1传输计算的输入数据,PCIe可以接收来自外部传输的输入计算图,即接收外部存储器发送的第一神经网络计算图的第i层计算数据,因PCIe和第一计算引擎E1无法直接传输数据,PCIe通过PCIeM将第一神经网络计算图的第i层计算数据传输给数据路由模块R的路由从接口RS,数据路由模块R选择将该第i层计算数据通过第一路由主接口RM1输出,第一仲裁模块N1的第一仲裁第一从接口N1S1接收来自第一路由主接口RM1输出的第i层计算数据,并通过第一仲裁主接口N1M将该第i层计算数据输出至第一存储器DDR1的第一存储第一从接口DDR1S1中存储,当需要开始计算时,第一存储器DDR1的第一存储第一从接口DDR1S1中会将存储的第i层计算数据传输至第一仲裁模块N1的第一仲裁主接口N1M,第一仲裁模块N1继续通过其第一仲裁第二从接口N1S2将该第i层计算数据输出至第一计算引擎E1的第一存储读写接口D1,对于卷积神经网络的计算来说,上一层的输出计算图需要作为下一层的输入计算图,在第一计算引擎E1计算第i层计算数据得到输出计算图,即第i+1层计算数据后,第一计算引擎E1的第i+1层计算数据可以直接作为第i+2层计算数据给到第一计算引擎E1进行计算,第i+1层计算数据也可以依次通过第一计算引擎E1的第一存储读写接口D1、第一仲裁第二从接口N1S2、第一仲裁主接口N1M和第一存储第一从接口DDR1S1存储到第一存储器DDR1中用于下一层的计算或者被PCIe读走。
进一步的,因为神经网络的计算是连续的,当出现同时访问同一个模块的情况时,第一仲裁模块N1可以选择各模块访问的先后顺序,访问的先后顺序也可以是预先设置的。第一计算引擎E1可以包括第一直接内存存取器DMA1,第一存储读写接口D1设置在第一直接内存存取器DMA1上。配置模块CSR可以对第一计算引擎E1进行计算前的配置以保证计算的正确性,由于第一计算引擎E1已经接收到第i层计算数据,在其配置完成后便可以开始计算。其中,除第一计算引擎E1的第一存储读写接口D1和第一仲裁模块N1的第一仲裁第二从接口N1S2的通信时钟域为mem clock,即内存时钟域,本实施例中的所有通信传输的时钟域都被看作为同一时钟域,即PCIe的时钟域。
本发明实施例通过数据路由模块R,包括路由从接口RS和第一路由主接口RM1,所述路由从接口RS连接至外部基于AXI协议的PCIe的PCIe主接口PCIeM以接收第一神经网络计算图的第i层计算数据;第一仲裁模块N1,包括第一仲裁第一从接口N1S1、第一仲裁第二从接口N1S2和第一仲裁主接口N1M,所述第一仲裁第一从接口N1S1连接至所述第一路由主接口RM1以接收所述第i层计算数据,所述第一仲裁主接口N1M连接至外部第一存储器DDR1的第一存储第一从接口DDR1S1以将所述第i层计算数据存储在所述第一存储器DDR1中,所述第一仲裁第二从接口N1S2连接至外部第一计算引擎E1的第一存储读写接口D1以使所述第一计算引擎E1从所述第一存储器DDR1中读取所述第i层计算数据并进行计算得到第i+1层计算数据,解决了传统的总线互联系统应用于神经网络计算不够灵活和高效的问题,实现了应用于神经网络计算的总线互联系统更灵活和高效的效果。
实施例二
如图4所示,本发明实施例二提供了一种基于神经网络的总线互联系统100,本发明实施例二是在本发明实施例一的基础上作进一步优化,该总线互联系统100包括数据路由模块R、第一仲裁模块N1、协议转换模块IB和第二仲裁模块N2,其中:
数据路由模块R包括路由从接口RS和第一路由主接口RM1,所述路由从接口RS连接至外部基于AXI协议的PCIe的PCIe主接口PCIeM以接收第一神经网络计算图的第i层计算数据;第一仲裁模块N1包括第一仲裁第一从接口N1S1、第一仲裁第二从接口N1S2和第一仲裁主接口N1M,所述第一仲裁第一从接口N1S1连接至所述第一路由主接口RM1以接收所述第i层计算数据,所述第一仲裁主接口N1M连接至外部第一存储器DDR1的第一存储第一从接口DDR1S1以将所述第i层计算数据存储在所述第一存储器DDR1中,所述第一仲裁第二从接口N1S2连接至外部第一计算引擎E1的第一存储读写接口D1以使所述第一计算引擎E1从所述第一存储器DDR1中读取所述第i层计算数据并进行计算得到第i+1层计算数据。
进一步的,协议转换模块IB包括转换从接口IBS和转换主接口IBM,所述数据路由模块R还包括第二路由主接口RM2,所述转换从接口IBS连接至所述第二路由主接口RM2以接收所述PCIe发送的基于AXI协议的第一配置数据并将所述第一配置数据转换为基于ABP协议的第二配置数据,所述转换主接口IBM连接至外部计算引擎的配置模块CSR的配置从接口CSRS以将所述第二配置数据发送至所述配置模块CSR,所述配置模块CSR连接至所述第一计算引擎E1以根据所述第二配置数据对所述第一计算引擎E1进行配置。第二仲裁模块N2包括第二仲裁第一从接口N2S1、第二仲裁第二从接口N2S2和第二仲裁主接口N2M,所述数据路由模块R还包括第三路由主接口RM3,所述第二仲裁第一从接口N2S1连接至所述第三路由主接口RM3以接收所述数据路由模块R发送的第二神经网络计算图的第j层计算数据,所述第二仲裁主接口N2M连接至外部第二存储器DDR2的第二存储第一从接口DDR2S1以将所述第j层计算数据存储在所述第二存储器DDR2中,所述第二仲裁第二从接口N2S2连接至外部第二计算引擎E2的第二存储读写接口D2以使所述第二计算引擎E2从所述第二存储器DDR2中读取所述第j层计算数据并进行计算得到第j+1层计算数据。其中,第二计算引擎E2的第j+1层计算数据可以直接作为第j+2层计算数据给到第二计算引擎E2进行计算,第j+1层计算数据也可以依次通过第二计算引擎E2的第二存储读写接口D2、第二仲裁第二从接口N2S2、第二仲裁主接口N2M和第二存储第一从接口DDR2S1存储到第二存储器DDR2中用于下一层的计算或者被PCIe读走。这样,多个神经网络计算引擎并行处理相同或不同神经网络,相同或不同数据源的数据,大大地提高了芯片的性能。尤其适用于传输时间和计算时间相近或者传输时间小于计算时间的神经网络的加速。
本实施例中,协议转换模块IB可以为AXI2APB bridge模块,协议转换模块IB用来实现基于AXI协议的从接口到基于APB协议的主接口的数据的协议转换,具体为根据基于AXI协议的主接口不同通道的状态和基于APB协议的主接口总线的状态设置不同的状态机,以此对两种协议进行转换。数据路由模块R可以为基于AXI协议的Axi_router_1to3模块。具体的,当神经网络开始计算之前,用户控制PC端发送第一配置数据给PCIe,并通过PCIe主接口PCIeM将第一配置数据传输给数据路由模块R的路由从接口RS,数据路由模块R选择将该第一配置数据通过第二路由主接口RM2输出,协议转换模块IB的转换从接口IBS接收第二路由主接口RM2输出的第一配置数据,因APB协议更适宜配置数据的传输,协议转换模块IB会将该基于AXI协议的第一配置数据转换为基于APB协议的第二配置数据并从转换主接口IBM输出,配置模块CSR通过配置从接口CSRS接收从转换主接口IBM输出的第二配置数据,并根据该第二配置数据对第一计算引擎E1和第二计算引擎E2,或更多神经网络计算引擎进行计算前的配置,以保证计算的正确性。如此设置后,上层的编译器或者驱动可以更灵活地配置计算引擎需要处理的算法模型,使芯片可以实现对神经网络算法的加速,大大增强了灵活性。
一实施例中,对于第一计算引擎E1来说,当神经网络开始计算之前,用户也可以控制PC端发送第一配置数据给PCIe,并通过PCIe主接口PCIeM接口将第一配置数据通过数据路由模块R和仲裁模块N1批量地写入到第一存储器DDR1中,这样神经网络每层的配置都可以通过从第一存储器DDR1中获取第一配置数据以配置第一计算引擎E1。
本实施例中,第二仲裁模块N2、第二计算引擎E2和第二存储器DDR2中的通信方式和实现方法与本发明实施例一中所述的第一仲裁模块N1、第一计算引擎E1和第一存储器DDR1相同,本发明实施例在此不再作过多赘述。可选的,还可以对应的增加仲裁模块、计算引擎和存储器,数据路由模块R对应增加一个路由主接口,配置模块CSR对应多配制一个计算引擎,以实现互联系统的扩展,适用于大数据量的应用场景计算,基于数据流架构设计的第一计算引擎E1和第二计算引擎E2,或更多神经网络计算引擎只要接收到足够多的数据就可以开始计算,一旦算出结果便迅速输出,实现多个计算引擎并行处理,提高整个加速芯片的处理速度。
本实施例中,第一计算引擎E1包括第一直接内存存取器DMA1,第二计算引擎E2上包括第二直接内存存取器DMA2,增加了第二仲裁模块N2后,PCIe可以通过PCIe主接口PCIeM将第一神经网络第i层计算数据传输到第一存储器DDR1中,然后第一计算引擎E1将第i层计算数据从第一存储器DDR1中读回,开始第i层的神经网络计算,同时PCIe通过PCIe主接口PCIeM接口将第二神经网络的第j层计算数据传输到第二存储器DDR2中,然后第一计算引擎E1将计算得到的第i+1层计算数据写回到第一存储器DDR1中,同时第二计算引擎E2将第j层计算数据从第二存储器DDR2中读回并开始第j层的神经网络计算,然后PCIe通过PCIe主接口PCIeM将第一神经网络的第i+1层需求数据继续写入到第一存储器DDR1中,第一计算引擎E1从第一存储器DDR1中读取第i+1层需求数据,或者同时读取第i+1层需求数据和第i+1层计算数据以开始第i+1层的神经网络计算,同时第二计算引擎E2将计算得到的第j+1层计算数据写回到第二存储器DDR2,当第一计算引擎E1和第二计算引擎E2将最后一层的计算数据写入到第一存储器DDR1和第二存储器DDR2后,PCIe通过PCIe主接口PCIeM接口将计算结果一次性读回即可。其中PCIe发送计算数据给第一存储器DDR1和第二存储器DDR2的数据源可以是相同数据源也可以是不同数据源,第一神经网络和第二神经网络可以是相同的神经网络也可以是不同的神经网络。
一实施例中,对于神经网络计算需要的计算数据,当前层的计算数据的计算结果即为下一层计算需要的计算数据,而计算的需求数据是每一层都需要从客户端通过PCIe来更新的。所述第二计算引擎E2还用于接收所述第一计算引擎E1发送的第i+1层计算数据并进行计算得到第i+2层计算数据,所述第一计算引擎E1还用于接收所述第二计算引擎E2发送的第i+2层计算数据并进行计算得到第i+3层计算数据。示例性的,PCIe通过PCIe主接口PCIeM接口将第一神经网络的第i层计算数据写入到第一存储器DDR1,第一计算引擎E1从第一存储器DDR1中读取第i层计算数据并开始神经网络计算,同时PCIe将第i+1层需求数据传输到第二存储器DDR2中,然后第一计算引擎E1将输出计算图,即第i+1层计算数据输出给第一存储器DDR1,PCIe将第i+1层计算数据从第一存储器DDR1中读回来并写到第二存储器DDR2中,第二计算引擎E2根据从第二存储DDR2中读出的第i+1层计算数据和第二存储器DDR2中已经存好的第i+1层需求数据开始第i+1层的神经网络计算,同时PCIe将第i+2层需求数据传输到第一存储器DDR1中,第二计算引擎E2完成计算后将输出计算图,即第i+2层计算数据输出给第二存储器DDR2后,PCIe将第i+2层计算数据从第二存储器DDR2读出并写到第一存储器DDR1中,并继续输出给第一计算引擎E1,第一计算引擎E1根据第i+2层计算数据,或根据第i+2层计算数据和第一存储器DDR1中已经存好的第i+2层需求数据开始第i+2层的神经网络计算,如此往复,通过这种方法,多个神经网络计算引擎同时协同处理同一神经网络的计算,在任一神经网络计算引擎空闲时还可以处理其他神经网络的计算,大大地提高了芯片的处理速度,尤其适合神经网络的数据传输时间(计算数据的传输时间和需求数据的传输时间之和)远大于神经网络的数据计算时间,需要预先传输数据的应用场景,通过在当前层计算的同时将下一层的需求数据预先存储好以达到减小传输时间的目的。对于同一神经网络的计算,第二计算引擎E2的计算也可能需要用到第一计算引擎E1的计算结果,因此,当第二计算引擎E2的计算需要用到第一计算引擎E1的输出计算图时,第一计算引擎E1和第二计算引擎E2之间可以间接地通过PCIe调取计算图,大大减小了传输时间,提高了神经网络的计算效率。
进一步的,多个神经网络计算引擎之间互相调取数据的方式可以有多种,示例性的,如图5所示,第一计算引擎E1上的第一直接内存存取器DMA1还包括一个基于AXI协议的主接口EM,第二计算引擎E2上的第二直接内存存取器DMA2还包括一个基于AXI协议的从接口ES,该主接口和从接口相连,当第二计算引擎E2的计算需要用到第一计算引擎E1的输出计算图时,第一计算引擎E1得到输出计算图可以直接通过该主接口传输至该从接口,可以进一步地减少通过PCIe频繁地从存储器和计算引擎之间搬运数据,同样的,多个计算引擎之间也可通过该方式连接而直接传输数据。这样可以大大减小数据传输时间,从而大大提高芯片性能。
进一步的,如图6所示,第一计算引擎E1上的第一直接内存存取器DMA1还包括基于AXI协议的第一主接口EM1和第一从接口ES1,第二计算引擎E2上的第二直接内存存取器DMA2还包括基于AXI协议的第二主接口EM2和第二从接口ES2,第一主接口EM1和第二从接口ES2相连,第二主接口EM2和第一从接口ES1相连,由此第一计算引擎E1和第二计算引擎E2可以相互传输数据。这样使得多个神经网络计算引擎之间不仅可以通过该方式连接而直接相互传输数据。还可以增大其中一个神经网络计算引擎的传输数据的吞吐率和带宽。
本实施例中,对于大吞吐量数据的应用场景,可以两个计算引擎或多个计算引擎并行处理多个数据源,示例性的,两个存储器各自服务对应的计算引擎,以最大化整个芯片的性能。另一方面,对于性能要求较高的场景,当神经网络中某一层计算需要的数据量极大时导致数据传输时间大于数据计算时间时,可以使PCIe通过PCIe主接口PCIeM接口将神经网络第i层计算数据写入到第一存储器DDR1和第二存储器DDR2中,第一计算引擎E1开始从第一存储器DDR1中读取数据,同时第二计算引擎E2也可以第二存储器DDR2中将第i层计算数据读出并传输给第一计算引擎E1,这样第一计算引擎E1单位时间内收到的数据量是原来的2倍,可以极大地提高第一计算引擎E1的数据输入传输速度,当计算引擎E1开始计算时,PCIe继续向第一存储器DDR1和第二存储器DDR2中继续写入第二计算引擎E2计算的需求数据,第一存储器DDR1和第二存储器DDR2同时向第二计算引擎E2提供数据,这样第二计算引擎E2单位时间内收到的数据也是原来的2倍,这种方式可以最小化地减少PCIe频繁地从存储器和计算引擎之间搬运数据,两个计算引擎直接共享数据,这样可以大大地提高单个引擎的性能,减小了神经网络因为数据量不够而不能及时完成计算的性能瓶颈,尤其适用于对峰值性能要求较高的场景,比如自动驾驶的神经网络计算芯片中。对于其他神经网络计算引擎也可以使用相同的方法,使得数据传输时间减小,和神经网络的计算时间重叠起来,大大提高整个架构的处理速度和效率。
一实施例中,如图7所示,该总线互联系统100还包括本地存储器RAM,第一计算引擎E1上的第一直接内存存取器DMA1还包括一个基于AXI协议的第一主接口EM1,第二计算引擎E2上的第二直接内存存取器DMA2还包括一个基于AXI协议的第二主接口EM2,该本地存储器RAM包括第一RAM从接口RAMS1和第二RAM从接口RAMS2,第一主接口EM1和第一RAM从接口RAMS1相连,第二主接口EM2和第二RAM从接口RAMS2相连,通过配置模块CSR控制第一计算引擎E1和第二计算引擎E2对本地存储器RAM的访问,在不需要额外的仲裁模块的情况下实现第一计算引擎E1和第二计算引擎E2相互传输数据,多个计算引擎之间也可通过连接本地存储器RAM而直接相互传输数据,在计算同一个神经网络中,不需要神经网络计算引擎频繁地访问存储器,同时,通过本地存储器RAM的缓存可以平衡整个系统的传输和计算时间,从而进一步增加整个系统的性能和效率。因此计算速度和架构效率都可以大幅提升。
本发明实施例通过第二仲裁模块N2,包括第二仲裁第一从接口N2S1、第二仲裁第二从接口N2S2和第二仲裁主接口N2M,所述数据路由模块R还包括第三路由主接口RM3,所述第二仲裁第一从接口N2S1连接至所述第三路由主接口RM3以接收所述数据路由模块R发送的第二神经网络计算图的第j层计算数据,所述第二仲裁主接口N2M连接至外部第二存储器DDR2的第二存储第一从接口DDR2S1以将所述第j层计算数据存储在所述第二存储器DDR2中,所述第二仲裁第二从接口N2S2连接至外部第二计算引擎E2的第二存储读写接口D2以使所述第二计算引擎E2从所述第二存储器DDR2中读取所述第j层计算数据并进行计算得到第j+1层计算数据,解决了神经网络计算中的调用数据低效率的问题,实现了提高神经网络计算的计算效率的效果。
实施例三
如图8所示,本发明实施例三提供了一种基于神经网络的总线互联系统100,本发明实施例三是在本发明实施例二的基础上作进一步优化,该总线互联系统100包括数据路由模块R、第一仲裁模块N1、协议转换模块IB、第二仲裁模块N2、配置选通模块B、配置选择开关MUX、跨时钟域转换模块CDC和选择使能引脚EN,其中:
配置选通模块B包括选通从接口BS、第一选通主接口BM1、第二选通主接口BM2和第三选通主接口BM3,所述转换主接口IBM用于依次通过所述配置选通模块B的选通从接口BS和第一选通主接口BM1连接所述配置模块CSR的配置从接口CSRS,所述转换主接口IBM还用于依次通过所述配置选通模块B的选通从接口BS和第二选通主接口BM2连接所述外部第一存储器DDR1的第一存储第二从接口DDR1S2,所述转换主接口IBM还用于依次通过所述配置选通模块B的选通从接口BS和第二选通主接口BM2连接所述外部第二存储器DDR2的第二存储第二从接口DDR2S2。配置选择开关MUX包括第一输入端MUX1、第二输入端MUX2以及第一输出端MUX3,所述转换主接口IBM用于依次通过所述配置选择开关MUX的第一输入端MUX1和第一输出端MUX3连接所述配置选通模块B的选通从接口BS,所述第二输入端MUX2用于连接外部基于APB协议的Debug模块的Debug主接口DM,所述Debug模块还包括用于接收基于SPI协议数据的Debug从接口DS。所述配置选通模块B还包括第四选通主接口BM4,所述第四选通主接口BM4用于连接所述PCIe的PCIe从接口PCIeS。跨时钟域转换模块CDC连接在所述协议转换模块IB和配置选择开关MUX之间,所述跨时钟域转换模块CDC用于调整所述协议转换模块IB输出的时钟信号。选择使能引脚EN用于发送外部控制信号给所述配置选择开关MUX以选择输出来自所述第一输入端MUX1的数据或者输出来自所述第二输入端MUX2的数据。
本实施例中,配置选择开关MUX与外部的Debug模块连接,Debug模块可以为程序除错模块。具体的,当芯片工作不正常,PCIe无法正常配置第一计算引擎E1时,可以通过Debug模块实现对第一计算引擎E1的配置,Debug模块包括基于APB协议的Debug模块的Debug主接口DM,还包括Debug模块从接口DS,其中Debug模块从接口DS可以是基于SPI协议的接口,用于接收来自外部的基于SPI协议的配置数据,Debug模块可以将基于SPI协议的配置数据转换为基于APB协议的配置数据,当进行对第一计算引擎E1配置时,配置选择开关MUX可以选择将来自第一输入端MUX1的PCIe的配置输出通过第一输出端MUX3输出给配置模块CSR的配置从接口CSRS以进行配置,也可以选择将来自第二输入端MUX2的Debug模块的配置输出通过第一输出端MUX3输出给配置模块CSR的配置从接口CSRS以进行配置,当哪个输入端有输入配置数据就选择哪个输入端的配置数据输出,当两个输入端同时输入配置数据时,配置选择开关MUX可以根据预选的设置选择优先输出其中一个输入端输入的配置数据。其中,选择第一输入端MUX1的数据输出时,配置选择开关MUX与配置模块CSR的通信时钟域为PCIe的时钟域,选择第二输入端MUX2的数据输出时,配置选择开关MUX与配置模块CSR的通信时钟域为SPI的时钟域。通过在总线互联系统100中增加与外部的Debug模块的接口,当芯片功能有问题或者芯片达到非预期的状态时,可以通过此接口读取芯片的状态来调试,此外,还可以通过该接口对整个总线互联系统100中接入的所有模块和设备进行配置,从而重新配置整个芯片。进一步的,增加与外部的Debug模块的接口也使得数据流架构可以进一步扩展,例如通过Debug模块外接微控制器(ARM或单片机等芯片)等,大大地增大了互联系统的可扩展性和通用性。
本实施例中,配置选通模块B包括选通从接口BS和第一选通主接口BM1,所述转换主接口IBM用于依次通过所述配置选通模块B的选通从接口BS和第一选通主接口BM1连接所述外部AI计算引擎的配置模块CSR的配置从接口CSRS。配置选通模块B还包括第二选通主接口BM2,所述转换主接口IBM用于依次通过所述配置选通模块B的选通从接口BS和第二选通主接口BM2连接所述外部第一存储器DDR1的第一存储第二从接口DDR1S2。配置选通模块B还包括第三选通主接口BM3,所述转换主接口IBM用于依次通过所述配置选通模块B的选通从接口BS和第二选通主接口BM2连接所述外部第二存储器DDR2的第二存储第二从接口DDR2S2。配置选通模块B还包括第四选通主接口BM4,所述第四选通主接口BM4用于连接外部基于APB协议的PCIe的PCIe从接口PCIeS。这样使得整个架构的所有设备都是可以配置的,不管是通过PC端控制PCIe对各个设备进行配置,还是通过外部微控制器设备通过Debug接口对各个模块进行配置。这样使得整个系统更加灵活。
本实施例中,跨时钟域转换模块CDC连接在所述协议转换模块IB和配置选通模块B之间,所述跨时钟域转换模块CDC用于调整协议转换模块IB输出的时钟信号。配置选择开关MUX包括第一输入端MUX1、第二输入端MUX2以及第一输出端MUX3,所述转换主接口IBM用于依次通过所述配置选择开关MUX的第一输入端MUX1和第一输出端MUX3连接所述配置选通模块B的选通从接口BS;所述第二输入端MUX2用于连接外部基于APB4协议的Debug模块的Debug主接口DM。选择使能引脚EN,用于发送控制信号给所述配置选择开关MUX以选择输出来自所述第一输入端MUX1的数据或者输出来自所述第二输入端MUX2的数据。
进一步的,跨时钟域转换模块CDC可以为APB_cdc模块,如果经过协议转换模块IB转换后的PCIe配置数据的时钟和配置选通模块B的时钟不在同一个时钟域,需要做跨时钟域处理,因此跨时钟域转换模块CDC和配置选择开关MUX的通信时钟域为cfg clock,即配置时钟域。配置选通模块B可以为APB_bridge模块,用来实现APB协议的路由和分发功能,配置选通模块B根据地址偏移来选择具体访问哪些设备,与上述实施例不同,配置选通模块B通过第一选通主接口BM1发送配置数据给配置模块CSR以进行计算引擎的配置,本实施例中第一存储器DDR1还包括第一存储第二从接口DDR1S2,第二存储器DDR2还包括第二存储第二从接口DDR2S2,配置选通模块B可以分别通过第二选通主接口BM2和第三选通主接口BM3对第一存储器和第二存储器进行配置,此外,PCIe还包括PCIe从接口PCIeS,配置选通模块B还可以通过第四选通主接口BM4对PCIe的PCIe从接口PCIeS发送配置数据以对PCIe进行配置。
本实施例中,PCIe主接口PCIeM、路由从接口RS、第一路由主接口RM1、第二路由主接口RM2、第三路由主接口RM3、第一仲裁第一从接口N1S1和第二仲裁第一从接口N2S1所在的时钟域为PCIe的时钟域;第一存储读写接口D1和第一仲裁第二从接口N1S2所在的时钟域为第一计算引擎E1的时钟域;第二存储读写接口D2和第二仲裁第二从接口N2S2所在的时钟域为第二计算引擎E2的时钟域;第一仲裁主接口N1M和第一存储第一从接口DDR1S1所在的时钟域为第一存储器DDR1的时钟域;第二仲裁主接口N2M和第二存储第一从接口DDR2S1所在的时钟域为第二存储器DDR2的时钟域;当配置选择开关MUX选择输出Debug模块发送的配置数据时,配置选通模块B的所有接口、第一存储第二从接口DDR1S2、第二存储第二从接口DDR2S2和配置从接口CSRS所在的时钟域为Debug模块的时钟域;当配置选择开关MUX选择输出PCIe发送的配置数据时,配置选通模块B的所有接口、第一存储第二从接口DDR1S2、第二存储第二从接口DDR2S2和配置从接口CSRS所在的时钟域为PCIe经过跨时钟域转换模块CDC转换后的的时钟域。
可选的,配置选择开关MUX连接有选择使能引脚EN,选择使能引脚EN可以根据外部的控制信号发送使能信号给所述配置选择开关MUX以选择输出来自所述第一输入端MUX1的数据或者输出来自所述第二输入端MUX2的数据。
综上所述,本发明实施例所提供的基于神经网络的总线互联系统100在传统的总线互联系统的基础上进行扩展升级,整个系统中的所有设备都可以通过多种方式被配置使用,增设多种接口的同时支持多种通信协议,使得架构更灵活且可扩展性更好,因此尤其适用于人工智能加速芯片进行神经网络计算,本发明实施例所提供的基于神经网络的总线互联系统100不仅可以灵活调整存储器和计算引擎的数量,还可以根据不同的神经网络的特征调整数据的流向、数据计算及传输的带宽和吞吐率,因此可以支持神经网络硬件加速的绝大部分需求场景。
本发明实施例通过配置选通模块B、配置选择开关MUX、跨时钟域转换模块CDC和选择使能引脚EN解决了总线互联系统100无法满足多模块配置的问题,实现了总线互联系统100的简单易用和高度通用的效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种基于神经网络的总线互联系统,其特征在于,包括:
数据路由模块R,包括路由从接口RS和第一路由主接口RM1,所述路由从接口RS连接至外部基于AXI协议的PCIe的PCIe主接口PCIeM以接收第一神经网络计算图的第i层计算数据;
第一仲裁模块N1,包括第一仲裁第一从接口N1S1、第一仲裁第二从接口N1S2和第一仲裁主接口N1M,所述第一仲裁第一从接口N1S1连接至所述第一路由主接口RM1以接收所述第i层计算数据,所述第一仲裁主接口N1M连接至外部第一存储器DDR1的第一存储第一从接口DDR1S1以将所述第i层计算数据存储在所述第一存储器DDR1中,所述第一仲裁第二从接口N1S2连接至外部第一计算引擎E1的第一存储读写接口D1以使所述第一计算引擎E1从所述第一存储器DDR1中读取所述第i层计算数据并进行计算得到第i+1层计算数据。
2.根据权利要求1所述的系统,其特征在于,还包括:
协议转换模块IB,包括转换从接口IBS和转换主接口IBM,所述数据路由模块R还包括第二路由主接口RM2,所述转换从接口IBS连接至所述第二路由主接口RM2以接收所述PCIe发送的基于AXI协议的第一配置数据并将所述第一配置数据转换为基于ABP协议的第二配置数据,所述转换主接口IBM连接至外部计算引擎的配置模块CSR的配置从接口CSRS以将所述第二配置数据发送至所述配置模块CSR,所述配置模块CSR连接至所述第一计算引擎E1以根据所述第二配置数据对所述第一计算引擎E1进行配置。
3.根据权利要求1所述的系统,其特征在于,还包括:
第二仲裁模块N2,包括第二仲裁第一从接口N2S1、第二仲裁第二从接口N2S2和第二仲裁主接口N2M,所述数据路由模块R还包括第三路由主接口RM3,所述第二仲裁第一从接口N2S1连接至所述第三路由主接口RM3以接收所述数据路由模块R发送的第二神经网络计算图的第j层计算数据,所述第二仲裁主接口N2M连接至外部第二存储器DDR2的第二存储第一从接口DDR2S1以将所述第j层计算数据存储在所述第二存储器DDR2中,所述第二仲裁第二从接口N2S2连接至外部第二计算引擎E2的第二存储读写接口D2以使所述第二计算引擎E2从所述第二存储器DDR2中读取所述第j层计算数据并进行计算得到第j+1层计算数据。
4.根据权利要求3所述的系统,其特征在于,所述第二计算引擎E2还用于接收所述第一计算引擎E1发送的第i+1层计算数据并进行计算得到第i+2层计算数据,所述第一计算引擎E1还用于接收所述第二计算引擎E2发送的第i+2层计算数据并进行计算得到第i+3层计算数据。
5.根据权利要求4所述的系统,其特征在于,所述第一计算引擎E1包括基于AXI协议的第一主接口EM1和第一从接口ES1,所述第二计算引擎E2包括基于AXI协议的第二主接口EM2和第二从接口ES2,所述第一主接口EM1和第二从接口ES2相连,所述第二主接口EM2和第一从接口ES1相连。
6.根据权利要求4所述的系统,其特征在于,还包括:
本地存储器RAM,包括第一RAM从接口RAMS1和第二RAM从接口RAMS2,所述第一计算引擎E1包括第一主接口EM1,所述第二计算引擎E2包括第二主接口EM2,所述第一主接口EM1和第一RAM从接口RAMS1相连,所述第二主接口EM2和第二RAM从接口RAMS2相连。
7.根据权利要求2所述的系统,其特征在于,还包括:
配置选通模块B,包括选通从接口BS、第一选通主接口BM1、第二选通主接口BM2和第三选通主接口BM3,所述转换主接口IBM用于依次通过所述配置选通模块B的选通从接口BS和第一选通主接口BM1连接所述配置模块CSR的配置从接口CSRS,所述转换主接口IBM还用于依次通过所述配置选通模块B的选通从接口BS和第二选通主接口BM2连接所述外部第一存储器DDR1的第一存储第二从接口DDR1S2,所述转换主接口IBM还用于依次通过所述配置选通模块B的选通从接口BS和第二选通主接口BM2连接外部第二存储器DDR2的第二存储第二从接口DDR2S2。
8.根据权利要求7所述的系统,其特征在于,所述配置选通模块B还包括第四选通主接口BM4,所述第四选通主接口BM4用于连接所述PCIe的PCIe从接口PCIeS。
9.根据权利要求7所述的系统,其特征在于,还包括:
配置选择开关MUX,包括第一输入端MUX1、第二输入端MUX2以及第一输出端MUX3,所述转换主接口IBM用于依次通过所述配置选择开关MUX的第一输入端MUX1和第一输出端MUX3连接所述配置选通模块B的选通从接口BS,所述第二输入端MUX2用于连接外部基于APB协议的Debug模块的Debug主接口DM,所述Debug模块还包括用于接收基于SPI协议数据的Debug从接口DS;
选择使能引脚EN,用于发送外部控制信号给所述配置选择开关MUX以选择输出来自所述第一输入端MUX1的数据或者输出来自所述第二输入端MUX2的数据。
10.根据权利要求9所述的系统,其特征在于,还包括:
跨时钟域转换模块CDC,连接在所述协议转换模块IB和配置选择开关MUX之间,所述跨时钟域转换模块CDC用于调整所述协议转换模块IB输出的时钟信号。
CN202010138762.3A 2020-03-03 2020-03-03 一种基于神经网络的总线互联系统 Active CN111290986B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010138762.3A CN111290986B (zh) 2020-03-03 2020-03-03 一种基于神经网络的总线互联系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010138762.3A CN111290986B (zh) 2020-03-03 2020-03-03 一种基于神经网络的总线互联系统

Publications (2)

Publication Number Publication Date
CN111290986A CN111290986A (zh) 2020-06-16
CN111290986B true CN111290986B (zh) 2023-05-23

Family

ID=71029393

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010138762.3A Active CN111290986B (zh) 2020-03-03 2020-03-03 一种基于神经网络的总线互联系统

Country Status (1)

Country Link
CN (1) CN111290986B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752689B (zh) * 2020-06-22 2023-08-25 深圳鲲云信息科技有限公司 一种基于数据流的神经网络多引擎同步计算系统
CN111984548B (zh) * 2020-07-22 2024-04-02 深圳云天励飞技术股份有限公司 神经网络计算装置
CN112506824A (zh) * 2020-12-17 2021-03-16 上海燧原智能科技有限公司 一种芯片和数据交互方法
CN114844775A (zh) * 2021-01-14 2022-08-02 南宁富桂精密工业有限公司 路由器的故障转移方法、路由器及计算机存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6070205A (en) * 1997-02-17 2000-05-30 Ssd Company Limited High-speed processor system having bus arbitration mechanism
CN101013407A (zh) * 2007-02-05 2007-08-08 北京中星微电子有限公司 支持多总线多类型存储器的内存仲裁实现系统和方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190279083A1 (en) * 2018-03-06 2019-09-12 DinoplusAI Holdings Limited Computing Device for Fast Weighted Sum Calculation in Neural Networks
CN108665059A (zh) * 2018-05-22 2018-10-16 中国科学技术大学苏州研究院 基于现场可编程门阵列的卷积神经网络加速系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6070205A (en) * 1997-02-17 2000-05-30 Ssd Company Limited High-speed processor system having bus arbitration mechanism
CN101013407A (zh) * 2007-02-05 2007-08-08 北京中星微电子有限公司 支持多总线多类型存储器的内存仲裁实现系统和方法

Also Published As

Publication number Publication date
CN111290986A (zh) 2020-06-16

Similar Documents

Publication Publication Date Title
CN111290986B (zh) 一种基于神经网络的总线互联系统
JP2021530813A (ja) 専用低レイテンシリンクを使用した複数のハードウェアアクセラレータのための統合されたアドレス空間
US20070180310A1 (en) Multi-core architecture with hardware messaging
US20020194418A1 (en) System for multisized bus coupling in a packet-switched computer system
JP4621604B2 (ja) バス装置、バスシステムおよび情報転送方法
US7769933B2 (en) Serialization of data for communication with master in multi-chip bus implementation
EP4029219A1 (en) Methods and apparatus for network interface fabric send/receive operations
CN114265872B (zh) 一种用于总线的互联装置
US11714776B2 (en) Enabling a multi-chip daisy chain topology using peripheral component interconnect express (PCIe)
US6532511B1 (en) Asochronous centralized multi-channel DMA controller
US8352695B2 (en) Selectable access rates in a memory and memory communication system
US10445267B2 (en) Direct memory access (DMA) unit with address alignment
CN106326172A (zh) 一种APB总线slave接口扩展电路及其使用方法
KR101061187B1 (ko) 버스 시스템 및 그 제어 장치
Pande et al. Performance optimization for system-on-chip using network-on-chip and data compression
RU2360282C2 (ru) Программируемый контроллер последовательных шин
CN114443530B (zh) 基于TileLink的芯片互联电路及数据传输方法
CN116225995B (zh) 一种总线系统及芯片
Litz Improving the scalability of high performance computer systems
CN114443530A (zh) 基于TileLink的芯片互联电路及数据传输方法
CN115640245A (zh) 一种基于axi总线协议的dsp片上可扩展ebiu的方法和装置
Taube et al. Comparison of CAN gateway modules for automotive and industrial control applications
Mohamed et al. SoC Buses and Peripherals: Features and Architectures
CN115408983A (zh) 一种fpga原型验证装置、系统及方法
CN115658594A (zh) 一种基于nic-400交叉矩阵的异构多核处理器架构

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