CN114723023A - 数据通信方法及系统、脉冲神经网络运算系统 - Google Patents
数据通信方法及系统、脉冲神经网络运算系统 Download PDFInfo
- Publication number
- CN114723023A CN114723023A CN202210200553.6A CN202210200553A CN114723023A CN 114723023 A CN114723023 A CN 114723023A CN 202210200553 A CN202210200553 A CN 202210200553A CN 114723023 A CN114723023 A CN 114723023A
- Authority
- CN
- China
- Prior art keywords
- data frame
- data
- module
- neural network
- chip
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 74
- 238000004891 communication Methods 0.000 title claims abstract description 53
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000005540 biological transmission Effects 0.000 claims abstract description 28
- 230000003993 interaction Effects 0.000 claims abstract description 8
- 230000003139 buffering effect Effects 0.000 claims abstract description 3
- 238000006243 chemical reaction Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 16
- 238000012421 spiking Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 12
- 230000007704 transition Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 7
- 210000002569 neuron Anatomy 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 4
- 210000004556 brain Anatomy 0.000 description 3
- 239000012528 membrane Substances 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 210000003050 axon Anatomy 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明公开一种数据通信方法及系统、脉冲神经网络运算系统,其中数据通信系统,包括:第一接口模块、数据帧缓存模块、第二接口模块及控制模块;第一接口模块用于通过第一总线接收上位机传输的数据,并转换下行数据帧,以及读取上行数据帧并转换后通过第一总线发送给上位机;数据帧缓存模块用于缓存下行数据帧及上行数据帧;第二接口模块用于读取下行数据帧,并根据芯片协议转换成脉冲传输给脉冲神经网络芯片,以及根据芯片协议将接收的脉冲转换为上行数据帧;控制模块用于控制第一接口模块与上位机之间的数据传输交互,以及第二接口模块与脉冲神经网络芯片之间的数据传输交互。本发明可以实现大数据量的数据传输。
Description
技术领域
本发明涉及集成电路技术领域,尤其涉及一种数据通信方法及系统、脉冲神经网络运算系统。
背景技术
脉冲神经网络(Spiking Neural Network,简称SNN)借鉴人脑处理信息的机制,模拟人脑工作模式,其直接利用神经元的脉冲发放时间作为其输入与输出,充分利用时间信息,具备脉冲稀疏性,同时,脉冲神经元接收到脉冲时,将累计输入至膜电位,当膜电位达到阈值时才进行脉冲发放,即为事件驱动型。由于SNN具备脉冲稀疏性和其本身为事件驱动型,其可以类似于人脑更加高效地进行信息处理,实现低延时、低功耗。
现有脉冲神经网络运算系统主要由三部分组成:(1)ARM(Acorn RISC Machine)上位机,对整个系统的数据流进行控制,负责数据的预处理、脉冲神经网络输入数据的生成以及输出数据的解析,同时挂载多种外设,与用户及环境进行交互;(2)脉冲神经网络芯片,负责脉冲神经网络的推理运算,是系统的运算核心,输入和输出均为脉冲形式;(3)现场可编程门阵列(Field-Programmable Gate Array,简称FPGA),负责系统的数据通信,将ARM上位机与SNN芯片连接在一起,二者之间的数据通路和控制逻辑主要在FPGA上实现,将上位机的标准协议转换为SNN芯片的特定协议。图1为现有技术中脉冲神经网络运算系统的结构示意图,如图1所示,其中的FPGA包括两块FPGA,分别用于SNN芯片的数据输入和输出,FPGA与ARM上位机之间通过USB 2.0协议进行通信,即USB数据通信通过与FPGA集成的USB 2.0PHY芯片实现。
当网络规模不大,单次传输处理数据较少时,上述系统可以满足数据处理要求。然而当脉冲神经网络的输入尺寸较大时,推理运算的每个时间步内(工作频率192Mhz下,一个时间步约为6.25毫秒)需要传输数万个数据帧时,上述系统会出现数据溢出,从而存在数据丢失的问题。
发明内容
本发明提供一种数据通信方法及系统、脉冲神经网络运算系统,用以克服上述现有技术中存在的技术问题,可以实现大数据量的数据传输而不会溢出。
本发明提供的一种数据通信系统,适用于脉冲神经网络芯片,包括:第一接口模块、数据帧缓存模块、第二接口模块及控制模块;所述第一接口模块用于通过第一总线接收上位机传输的数据,并转换为写入数据帧缓存模块的下行数据帧,以及从数据帧缓存模块中读取上行数据帧并转换后通过第一总线发送给上位机;所述数据帧缓存模块用于缓存下行数据帧及上行数据帧;所述第二接口模块用于从数据帧缓存模块读取下行数据帧,并根据芯片协议将下行数据帧转换成脉冲传输给脉冲神经网络芯片,以及根据芯片协议将接收的脉冲神经网络芯片输出的脉冲转换为上行数据帧传输给数据帧缓存模块;所述控制模块用于控制第一接口模块与上位机之间的数据传输交互,以及第二接口模块与脉冲神经网络芯片之间的数据传输交互。
本发明还提供一种数据通信方法,适用于脉冲神经网络芯片,包括:
通过第一总线接收上位机传输的数据,并转换为下行数据帧缓存到数据帧缓存模块;
根据芯片协议将从数据帧缓存模块中读取的下行数据帧转换成脉冲传输给脉冲神经网络芯片;
根据芯片协议将脉冲神经网络芯片输出的脉冲转换为上行数据帧,并缓存到数据帧缓存模块;
将上行数据帧转换后通过第一总线发送给上位机。
本发明还提供一种脉冲神经网络运算系统,包括:上位机、脉冲神经网络芯片和上述的数据通信系统;上位机用于对脉冲神经网络运算系统的数据流进行控制、人机环境进行交互以及数据预处理及解析;脉冲神经网络芯片用于脉冲神经网络的推理运算。
本发明通过配置数据帧缓存模块使得SNN芯片需要大数据量时也能够得到满足,其运算输出的大量数据也能够及时得到缓存,避免了数据溢出丢失;通过配置第二接口模块使得SNN芯片所需的脉冲数据与缓存的数据帧之间进行有效转换。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为类脑模型示意图;
图2为本发明实施例提供的一种数据通信系统的结构示意图;
图3为本发明实施例中的SNN芯片数据帧传输协议的时序图;
图4为本发明实施例提供的数据下行读写状态机的状态转移图;
图5为本发明实施例提供的数据下行协议转换状态机的状态转移图;
图6为本发明实施例提供的数据上行协议转换状态机的状态转移图;
图7为本发明实施例提供的数据上行读写状态机的状态转移图;
图8为本发明实施例提供的另一种数据通信系统的结构示意图;
图9为本发明实施例提供的一种数据通信方法的流程图;
图10为本发明实施例提供的一种脉冲神经网络运算系统的结构示意图;
图11为本发明实施例提供的另一种基于FPGA实现数据通信的脉冲神经网络运算系统;
图12为图11中基于FPGA实现数据通信的详细结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的技术方案更加清楚,以下结合附图对本发明的实施例进行详细说明。
图2为本发明实施例提供的一种数据通信系统的结构示意图,如图2所示,本实施例的数据通信系统适用于脉冲神经网络芯片,本实施例的数据通信系统,包括:第一接口模块10、数据帧缓存模块20、第二接口模块30及控制模块40;第一接口模块10用于通过第一总线接收上位机传输的数据,并转换为写入数据帧缓存模块20的下行数据帧,以及从数据帧缓存模块20中读取上行数据帧并转换后通过第一总线发送给上位机;数据帧缓存模块20用于缓存下行数据帧及上行数据帧;第二接口模块30用于从数据帧缓存模块读取下行数据帧,并根据芯片协议将下行数据帧转换成脉冲传输给脉冲神经网络芯片,以及根据芯片协议将接收的脉冲神经网络芯片输出的脉冲转换为上行数据帧传输给数据帧缓存模块;控制模块40用于控制第一接口模块10与上位机之间的数据传输交互,以及第二接口模块30与脉冲神经网络芯片之间的数据传输交互。
本实施例中,数据帧缓存模块20可缓存下行数据帧及上行数据帧,当SNN芯片的输入输出数据量较大时,可以通过数据帧缓存模块对数据进行缓存,以对运算所需数据进行准备,同时在这个过程中,将从上位机传输过来的数据转换成下行数据帧,以适配SNN芯片的数据帧格式,之后通过第二接口模块根据SNN芯片所需进行协议转换成脉冲,该下行数据帧的帧格式如下表:
当SNN芯片推理运算完成输出数据时,可以将已完成协议转换的上行数据帧缓存在数据帧缓存模块,以避免数据溢出,上行数据帧格式也如上表的帧格式。本实施例中的数据帧缓存模块的缓存量可以根据不同SNN芯片推理运算所需数据帧的数量进行配置调整。
在实际应用中,对SNN芯片的模型参数配置以及对神经元参数的检测也可通过上述帧格式进行数据传输。即上述帧格式适用于配置帧、测试帧及工作帧。配置帧用于脉冲神经网络模型参数的配置,测试帧用于对神经元参数的检测,工作帧表示推理运算过程中的脉冲。在脉冲神经网络推理运算过程中,输入和输出的数据帧都是工作帧。对于工作帧来说,14bit的负载数据(LOAD)由两部分组成,高10bit为AXON地址(轴突地址),低4bit为时间标签(TICK),表示该脉冲所处的时间步区间。默认情况下,一个时间步的长度为120万个芯片时钟周期。对于每个脉冲神经网络模型,进行一次推理运算所消耗的时间步数量是固定的,由模型结构以及数据精度等信息共同决定。
图3为本发明实施例中的SNN芯片数据帧传输协议的时序图,如图3所示,为适配SNN芯片的数据输入输出而配置数据帧传输协议,该协议基于握手完成,每次握手传递一个数据帧,共有16根信号线,分别为:时钟信号CLK、请求信号REQ、应答信号ACK、数据有效信号VALID以及12bit的并行数据信号。由于每个数据帧有40个有效位,所以每次握手成功后需要传递4个周期的数据,组成一个完整数据帧。如图3所示,数据帧传输过程为:
(1)发送方拉高请求信号REQ,等待接收方应答。
(2)接收方收到请求信号REQ后,拉高应答信号ACK,完成握手。
(3)发送方检测到应答信号ACK,开始传输第一个12bit数据D1,同时拉高数据有效信号VALID,继续传输数据。
(4)发送方给出最后一个12bit数据D4,同时拉低VALID,完成一次完整的数据传输。
如果发送方拉高请求信号REQ后没有收到应答信号ACK(接收方此时无法接收数据),会持续拉高REQ直至握手完成。接收方只有在收到请求信号REQ后,才会拉高应答信号ACK。传输过程中的时钟信号CLK由发送方提供。
由于SNN芯片处理的是脉冲信号,所以数据帧缓存模块中缓存的数据需要第二接口模块根据上述协议进行转换成脉冲。在FPGA中,数据帧缓存模块的缓存区可以由BRAM(Block Random Access Memory)实现。
具体实施中,第二接口模块30包括:数据下行子模块和数据上行子模块,其中,数据下行子模块包括:用于控制下行数据帧从数据帧缓存模块读出的数据下行读写状态机、用于暂存从数据帧缓存模块读出的下行数据帧的第一异步FIFO和用于控制将第一异步FIFO中暂存的下行数据帧根据芯片协议转换成脉冲,发送给脉冲神经网络芯片的数据下行协议转换状态机。本实施例中,通过数据下行子模块,即从数据帧缓存模块的缓存区中读取数据帧,暂存在第一异步FIFO中,再将第一异步FIFO中的数据帧以芯片协议通过脉冲的形式传输给芯片阵列的输入端口。
图4为本发明实施例提供的数据下行读写状态机的状态转移图,数据下行读写状态机共有4个状态,状态转移图如图4所示:
IDLE状态为空闲状态,当收到控制模块40发送的控制信号ctrl_start时,表明下行数据已经准备好,跳转到READY状态,否则继续维持在IDLE状态;
READY状态为准备状态,向缓存区BRAM发出读请求,准备接收下一组数据,跳转到DATA状态;
DATA状态为数据处理状态,若读出的是低24bit数据,则暂存,若读出的是高16bit数据,则将完整的40bit数据送入第一异步FIFO,完成数据处理后跳转回READY状态。当读出停止标识(stop_sign)时,表示数据已读完,跳转到FINISH状态;
FINISH状态为结束状态,表明缓存区中的所有数据已经读取完成,跳转到IDLE状态。
数据下行中的第一异步FIFO,深度为5,宽度为40bit,用于BRAM读写和协议转换过程中的数据暂存,维持数据传输的吞吐率。数据暂存入第一异步FIFO后,即可以进行协议转换完成数据帧脉冲化以适于SNN芯片处理。
图5为本发明实施例提供的数据下行协议转换状态机的状态转移图,数据下行协议转换状态机共有4个状态,状态转移图如图5所示:
IDLE状态为空闲状态,当FIFO中有数据(!empty,非空)时跳转到REQ状态,否则维持在IDLE状态;
REQ状态为请求状态,FPGA将REQ拉高,向SNN芯片输入端口发出请求信号;
ACK状态为等待应答状态,若收到芯片阵列输入端口的应答信号ACK,则表示握手成功,跳转到VALID状态,否则维持在ACK状态;
VALID状态为数据有效状态,表示正在传输有效的数据,由于芯片输入端口的数据位宽是12bit,即每个周期传输12bit数据,40bit数据共需要4个周期,当数据传输完成,则跳转到IDLE状态。
通过上述状态机的控制,完成下行数据帧从数据帧缓存模块到SNN芯片数据的转换传输。当SNN芯片完成推理运算后输出脉冲数据由数据上行子模块转换成上行数据帧并写入数据帧缓存模块的缓存区。具体来说,数据上行子模块包括:用于控制将脉冲神经网络芯片输出的脉冲进行协议转换形成上行数据帧暂存在第二异步FIFO中的数据上行协议转换状态机、用于暂存上行数据帧的第二异步FIFO和用于控制从第二异步FIFO中读取上行数据帧并写入数据帧缓存模块的数据上行读写状态机。
本实施例中,通过数据上行,即从芯片输出端口接收输出脉冲,整理为输出数据帧后暂存在第二异步FIFO中,再将FIFO中的数据帧写入到上行数据帧缓存区。
图6为本发明实施例提供的数据上行协议转换状态机的状态转移图,数据上行协议转换状态机共有4个状态,状态转移图如图6所示:
IDLE状态为空闲状态,等待SNN芯片输出端口发出的请求信号,当收到请求信号REQ时跳转到ACK状态,否则维持在IDLE状态;
ACK状态为应答状态,将应答信号ACK拉高,若收到芯片输出端口发出的数据有效信号VALID,则表明双方握手成功,跳转到VALID状态,否则持续拉高应答信号,直至成功握手;
VALID状态为数据有效状态,持续接收芯片输出端口发出的12bit有效数据,当收到4个周期的完整数据后,跳转到PUSH状态;
PUSH状态为FIFO写入状态,若第二异步FIFO已满,则维持在PUSH状态,等待FIFO中的数据被读出,此状态下不对新的请求信号REQ进行应答;若此时第二异步FIFO未满,则将收到的数据帧写入FIFO,并跳转到IDLE状态。特殊地,若此时已经收到控制模块的ctrl_done信号,则会在PUSH状态多停留一个周期,向FIFO中写入结束标识。
数据上行中的第二异步FIFO,深度为5,宽度为40bit,数据经过协议转换后暂存在第二异步FIFO,接下来在数据上行读写状态机的控制下完成数据向数据帧缓存模块的缓存区进行写入。
图7为本发明实施例提供的数据上行读写状态机的状态转移图,数据上行读写状态机共有4个状态,状态转移图如图7所示:
IDLE状态为空闲状态,当FIFO中有数据(!empty,非空)时,跳转到READY状态,否则维持在IDLE状态;
READY状态为准备状态,从FIFO中读出要写入缓存区的数据帧,跳转到DATA状态;
DATA状态为数据写入状态,若数据为停止标识符(stop_sign),则写入数据帧缓存区后跳转到FINISH状态,否则写入数据后跳转到IDLE状态;
FINISH状态为结束状态,向数据帧缓存区的基地址写入起始标识符,表示输出数据接收完成,跳转到IDLE状态。
在数据上行中,异步FIFO除了承担上行数据帧缓存读写与协议转换之间的数据暂存功能外,由于数据帧缓存区与芯片输出端口工作在不同的频率下,因此第二异步FIFO同时还解决了跨时钟域数据传输的问题。
本发明实施例通过配置数据帧缓存模块使得SNN芯片需要大数据量时也能够得到满足,其运算输出的大量数据也能够及时得到缓存,避免了数据溢出丢失;通过配置第二接口模块使得SNN芯片所需的脉冲数据与缓存的数据帧之间进行有效转换。
在上述实施例中的数据帧中时间标签(TICK)为4bit,所以Tick的最大值为15,即每16个时间步循环一次,当脉冲神经网络复杂度较高,运算所需的时间步出现大于16的情况下,则SNN芯片无法准确识别数据帧所处的真实时间步区间,从而导致运算错误。
图8为本发明实施例提供的另一种数据通信系统的结构示意图,如图8所示,在上述图2所示实施例的基础上,本发明实施例还进一步包括:计时器模块50,用于标识记录当前推理运算所处的时间步区间,并将其反馈给控制模块。计时器模块60除了记录当前的Tick信息以外,当一次完整的推理运算所需要的时间步大于16时,还会计算出当前所处的真实时间步区间,将信息反馈给控制模块40。在计时器模块反馈进入新的时间步区间时控制模块发出中断信号,通知上位机本时间步内的推理运算已经完成,开始传输下一个时间步的输入数据。
本实施例中还包括:复位信号处理模块60,用于检测脉冲神经网络芯片输出端口发出的用于表示推理运算完成的推断间复位信号,并将其反馈给控制模块40。复位信号处理模块60还可以过滤电平抖动等干扰情况,将真实的Done信号反馈给控制模块以使控制模块产生中断信号,该中断信号在复位信号处理模块反馈本次推理运算完全结束后由控制模块发出,即所有时间步的运算均已完成,通知上位机开始读取上行数据帧缓存区中的输出数据。Done信号只对神经元的膜电位进行复位,不影响电路的其它部分。Done信号通过独立的信号线在芯片间进行传递。
本实施例在上述实施例达到技术效果的基础上,进一步通过配置计时器模块以适用于多时间步的复杂脉冲神经网络;通过配置复位信号处理模块可以过滤电平抖动等干扰,将真实的Done信号反馈给控制模块,以使其控制第二接口模块及时停止数据接收写入结束标识。
上述实施例中,为提升数据传输速率,第一总线采用PCIe标准协议总线,可以将数据传输速率提高到2GB/s。相比USB总线的60MB/s,数据传输速率有明显提升。
基于上述实施例的数据通信系统,本发明实施例还提供如下对应的数据通信方法,同样,该数据通信方法适用于脉冲神经网络芯片。
图9为本发明实施例提供的一种数据通信方法的流程图,如图9所示,本实施例的方法,包括:
步骤101、通过第一总线接收上位机传输的数据,并转换为下行数据帧缓存到数据帧缓存模块;
步骤102、根据芯片协议将从数据帧缓存模块中读取的下行数据帧转换成脉冲传输给脉冲神经网络芯片;
步骤103、根据芯片协议将脉冲神经网络芯片输出的脉冲转换为上行数据帧,并缓存到数据帧缓存模块;
步骤104、将上行数据帧转换后通过第一总线发送给上位机。
本实施例中,通过数据帧缓存模块将从上位机接收的数据进行缓存以满足脉冲神经网络芯片所需的大数据量,以及将脉冲神经网络芯片输出的数据及时缓存,避免了数据不溢出丢失;并通过根据芯片协议对缓存的数据帧与脉冲神经网络芯片处理的脉冲数据之间进行转换,以适应不同模块的数据处理。
在另一实施例中,数据通信方法还包括:对推理运算所处的时间步区间进行标识记录,并将其反馈给控制模块。通过对推理运算所处的时间步区间进行标识记录可以使数据通信方法适用于多时间步的复杂脉冲神经网络。
在另一实施例中,数据通信方法还包括:检测脉冲神经网络芯片输出端口发出的用于表示推理运算完成的推断间复位信号,并将其反馈给控制模块。通过检测脉冲神经网络芯片输出端口发出的推断间复位信号可以过滤电平抖动等干扰,反馈真实的Done信号,通知上位机结束本次推理运算。
上述的第一总线采用PCIe标准协议总线以提升数据传输速率。
本实施例中数据的通信及转换过程控制可由上述系统实施例的描述中得到,此处不再详细赘述。
上述实施例中的数据通信系统和方法可用于脉冲神经网络运算系统。图10为本发明实施例提供的一种脉冲神经网络运算系统的结构示意图,如图10所示,本发明实施例中的脉冲神经网络运算系统,包括:ARM上位机200、脉冲神经网络芯片300和上述图2或图8所示的数据通信系统100。
本实施例中,ARM上位机100用于对整个系统的数据流进行控制,负责数据的预处理、脉冲神经网络输入数据的生成以及输出数据的解析,同时挂载多种外设,可与用户及环境进行交互。脉冲神经网络芯片300,负责脉冲神经网络的推理运算,是系统的运算核心,输入和输出均为脉冲形式。数据通信系统100用于系统的数据通信,将ARM上位机与SNN芯片连接在一起,二者之间的数据通路和控制逻辑主要由数据通信系统100完成,将上位机的标准协议转换为芯片的特定协议。
图11为本发明实施例提供的另一种基于FPGA实现数据通信的脉冲神经网络运算系统,图12为图11中基于FPGA实现数据通信的详细结构示意图。如图11和12所示,本实施例中脉冲神经网络运算系统由三部分组成,即ARM上位机(选型为Nvidia Jetson NX)、脉冲神经网络芯片阵列(以3*3阵列为例)以及FPGA(选型为Xilinx Zynq-7100)。本实施例中的数据通信方法主要由FPGA实现。
作为ARM上位机与芯片阵列之间进行数据通信的枢纽,FPGA通过PCIe标准协议与上位机进行通信,通过芯片特定协议与芯片阵列进行通信。如图12所示,FPGA内部主要实现系统的数据通路与控制逻辑,是数据通信方法的核心。FPGA主要包括四个部分:XDMA、数据帧缓存区(Data Frame Buffer)、芯片通信IP(SNN Communication IP)以及控制模块(Control)。图中深色箭头表示数据流,浅色箭头表示控制流。系统中数据通信的大致工作流程为:
(1)ARM上位机生成输入数据,通过PCIe传输给FPGA,并由XDMA转化为AXI4数据包,写入下行数据帧缓存区;
(2)芯片通信IP从下行缓存区中读取数据,以芯片协议将输入数据转为脉冲,送入芯片阵列输入端口。
(3)芯片阵列进行脉冲神经网络运算的过程中,芯片通信IP接收从芯片阵列输出端口发出的脉冲,并整理为数据帧,存入上行数据帧缓存区。
(4)ARM上位机通过XDMA,以AXI4协议读取上行缓存区中的输出数据,转换为PCIe协议后送回上位机,对输出结果进行解析。
以下对FPGA的四个部分进行详细说明。
(1)XDMA
XDMA负责实现PCIe底层协议的转换,协议采用PCIe Gen2 x4,最高传输速率可达5.0GT/s。XDMA作为PCIe设备挂载在ARM上位机的设备树上,输入输出数据以链表形式储存在上位机中,经过XDMA的转化,将数据包以AXI4协议传输到数据帧缓存区或者从数据帧缓存区中读取出来。
(2)数据帧缓存区(Data Frame Buffer)
下行(上行)数据帧缓存区均由BRAM搭建,位宽为32bit,深度为131072,大小为512KB。下行数据帧缓存区可以存储的数据帧数量为65536帧,每个数据帧为40bit,将低24bit存储在低地址空间,高16bit存储在高地址空间。上行数据帧缓存区可以存储的数据帧数量为131072帧,这是由于数据帧的高16bit表示的是帧头以及芯片地址,对于输出数据帧来说二者是已知的信息(同类型数据帧的帧头是相同的,芯片阵列输出端口的位置也已经包含了芯片地址信息),所以只需要存储输出帧的低24bit。
(3)芯片通信IP(SNN Communication IP)
芯片通信IP分为数据下行和数据上行两个部分,二者内部均由BRAM读写状态机、协议转换状态机以及异步FIFO三个主要部分加上一些控制逻辑组成,状态机转换过程详见前述实施例的描述。
(4)控制模块(Control)
控制模块负责整个FPGA内部功能的控制,以及与上位机的交互,除主体部分之外,还有复位信号处理(Done Signal Process)以及计时器(Tick Counter)两个外围模块。
复位信号处理模块会检测芯片阵列输出端口发出的推断间复位信号Done,当Done信号拉高时,表明本次推理运算已经完成。复位信号处理模块负责过滤电平抖动等干扰情况,将真实的Done信号反馈给控制模块主体。
计时器模块会指示本次推理运算当前所处的时间步区间。对于所有的工作帧,都有一个4bit的时间标签,称为Tick信息。当一次推理运算开始时,Tick为0,之后每次经过指定的周期数(默认为120万个周期),则进入下一个时间步,即Tick增加1。由于时间标签只有4bit,所以Tick的最大值为15,即每16个时间步循环一次。计时器模块除了记录当前的Tick信息以外,当一次完整的推理运算所需要的时间步大于16时,还会计算出当前所处的真实时间步区间,将信息反馈给控制模块主体。
控制模块主体的具体功能包括:
(1)对芯片通信IP进行控制,主要包括:当收到上位机指令,表明下行数据帧缓存区中的数据准备完成时,向芯片通信IP发出ctrl_start信号,开始一次数据传输;当收到复位信号处理模块的反馈,表明本次推理运算完全结束后,向芯片通信IP发出ctrl_done信号,停止数据接收并向上行数据帧缓存区中写入结束标识。
(2)通过AXI-Lite总线,对上位机发出中断信号。中断类型共有3种,中断1在下行数据缓存区中的数据传输完成(即芯片通信IP读到结束标识)时发出,通知上位机发送新的下行数据,刷新缓存区;中断2在计时器模块反馈进入新的时间步区间时发出,通知上位机本时间步内的推理运算已经完成,开始传输下一个时间步的输入数据;中断3在复位信号处理模块反馈本次推理运算完全结束后发出,即所有时间步的运算均已完成,通知上位机开始读取上行数据帧缓存区中的输出数据。
基于上述实施例可知,计时器模块和复位信号处理模块可以作为单独的模块,也可以为控制模块的一部分,本发明对此不做限定。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种数据通信系统,适用于脉冲神经网络芯片,其特征在于,包括:第一接口模块、数据帧缓存模块、第二接口模块及控制模块;
所述第一接口模块用于通过第一总线接收上位机传输的数据,并转换为写入数据帧缓存模块的下行数据帧,以及从数据帧缓存模块中读取上行数据帧并转换后通过第一总线发送给上位机;
所述数据帧缓存模块用于缓存下行数据帧及上行数据帧;
所述第二接口模块用于从数据帧缓存模块读取下行数据帧,并根据芯片协议将下行数据帧转换成脉冲传输给脉冲神经网络芯片,以及根据芯片协议将接收的脉冲神经网络芯片输出的脉冲转换为上行数据帧传输给数据帧缓存模块;
所述控制模块用于控制第一接口模块与上位机之间的数据传输交互,以及第二接口模块与脉冲神经网络芯片之间的数据传输交互。
2.根据权利要求1所述的系统,其特征在于,还包括:计时器模块,用于标识记录当前推理运算所处的时间步区间,并将其反馈给控制模块。
3.根据权利要求1所述的系统,其特征在于,所述第一总线为PCIe标准协议总线。
4.根据权利要求1-3中任一项所述的系统,其特征在于,所述第二接口模块包括:数据下行子模块和数据上行子模块,
所述数据下行子模块包括:用于控制下行数据帧从数据帧缓存模块读出的数据下行读写状态机、用于暂存从数据帧缓存模块读出的下行数据帧的第一异步FIFO和用于控制将第一异步FIFO中暂存的下行数据帧根据芯片协议转换成脉冲,发送给脉冲神经网络芯片的数据下行协议转换状态机;
所述数据上行子模块包括:用于控制将脉冲神经网络芯片输出的脉冲进行协议转换形成上行数据帧暂存在第二异步FIFO中的数据上行协议转换状态机、用于暂存上行数据帧的第二异步FIFO和用于控制从第二异步FIFO中读取上行数据帧并写入数据帧缓存模块的数据上行读写状态机。
5.根据权利要求1所述的系统,其特征在于,还包括:复位信号处理模块,用于检测脉冲神经网络芯片输出端口发出的用于表示推理运算完成的推断间复位信号,并将其反馈给控制模块。
6.一种数据通信方法,适用于脉冲神经网络芯片,其特征在于,包括:
通过第一总线接收上位机传输的数据,并转换为下行数据帧缓存到数据帧缓存模块;
根据芯片协议将从数据帧缓存模块中读取的下行数据帧转换成脉冲传输给脉冲神经网络芯片;
根据芯片协议将脉冲神经网络芯片输出的脉冲转换为上行数据帧,并缓存到数据帧缓存模块;
将上行数据帧转换后通过第一总线发送给上位机。
7.根据权利要求6所述的方法,其特征在于,还包括:对推理运算所处的时间步区间进行标识记录,并将其反馈给控制模块。
8.根据权利要求6所述的方法,其特征在于,所述第一总线为PCIe标准协议总线。
9.根据权利要求6-8中任一项所述的方法,其特征在于,还包括:检测脉冲神经网络芯片输出端口发出的用于表示推理运算完成的推断间复位信号,并将其反馈给控制模块。
10.一种脉冲神经网络运算系统,其特征在于,包括:上位机、脉冲神经网络芯片和如权利要求1-5中任一项所述的数据通信系统;
所述上位机用于对脉冲神经网络运算系统的数据流进行控制以及人机环境进行交互;
所述脉冲神经网络芯片用于脉冲神经网络的推理运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210200553.6A CN114723023B (zh) | 2022-03-03 | 2022-03-03 | 数据通信方法及系统、脉冲神经网络运算系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210200553.6A CN114723023B (zh) | 2022-03-03 | 2022-03-03 | 数据通信方法及系统、脉冲神经网络运算系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114723023A true CN114723023A (zh) | 2022-07-08 |
CN114723023B CN114723023B (zh) | 2024-04-23 |
Family
ID=82235713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210200553.6A Active CN114723023B (zh) | 2022-03-03 | 2022-03-03 | 数据通信方法及系统、脉冲神经网络运算系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114723023B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116074267A (zh) * | 2023-02-02 | 2023-05-05 | 北京大学 | 一种数据通信系统及SoC芯片 |
CN116155843A (zh) * | 2023-02-01 | 2023-05-23 | 北京大学 | 一种基于pynq的脉冲神经网络芯片数据通信方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104702474A (zh) * | 2015-03-11 | 2015-06-10 | 华中科技大学 | 一种基于FPGA的EtherCAT主站装置 |
CN108470190A (zh) * | 2018-03-09 | 2018-08-31 | 北京大学 | 基于fpga定制脉冲神经网络的图像识别方法 |
CN111967586A (zh) * | 2020-07-15 | 2020-11-20 | 北京大学 | 一种用于脉冲神经网络存内计算的芯片及计算方法 |
WO2021115262A1 (zh) * | 2019-12-09 | 2021-06-17 | 南京惟心光电系统有限公司 | 脉冲卷积神经网络算法、集成电路、运算装置及存储介质 |
-
2022
- 2022-03-03 CN CN202210200553.6A patent/CN114723023B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104702474A (zh) * | 2015-03-11 | 2015-06-10 | 华中科技大学 | 一种基于FPGA的EtherCAT主站装置 |
CN108470190A (zh) * | 2018-03-09 | 2018-08-31 | 北京大学 | 基于fpga定制脉冲神经网络的图像识别方法 |
WO2021115262A1 (zh) * | 2019-12-09 | 2021-06-17 | 南京惟心光电系统有限公司 | 脉冲卷积神经网络算法、集成电路、运算装置及存储介质 |
CN111967586A (zh) * | 2020-07-15 | 2020-11-20 | 北京大学 | 一种用于脉冲神经网络存内计算的芯片及计算方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116155843A (zh) * | 2023-02-01 | 2023-05-23 | 北京大学 | 一种基于pynq的脉冲神经网络芯片数据通信方法及系统 |
CN116155843B (zh) * | 2023-02-01 | 2024-04-16 | 北京大学 | 一种基于pynq的脉冲神经网络芯片数据通信方法及系统 |
CN116074267A (zh) * | 2023-02-02 | 2023-05-05 | 北京大学 | 一种数据通信系统及SoC芯片 |
CN116074267B (zh) * | 2023-02-02 | 2024-04-09 | 北京大学 | 一种数据通信系统及SoC芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN114723023B (zh) | 2024-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114723023A (zh) | 数据通信方法及系统、脉冲神经网络运算系统 | |
CN110471872B (zh) | 一种基于zynq芯片实现m-lvds总线数据交互系统和方法 | |
CN109412914A (zh) | 流数据与axi接口通信装置 | |
CN106951388A (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
CN109165178B (zh) | 一种基于RapidIO的弹上系统SoC芯片间高速通信方法 | |
CN110837486B (zh) | 一种基于FPGA的FlexRay-CPCIe通信系统 | |
CN208283943U (zh) | 一种基于fpga的cnn加速优化装置 | |
WO2014146455A1 (zh) | 一种以太网接口控制系统及方法 | |
CN107562672A (zh) | 一种提高矢量网络分析仪数据传输速率的系统及方法 | |
CN107038135A (zh) | 一种串口波特率自适应系统和方法 | |
CN110445585A (zh) | 基于ppp数据帧组帧和解帧硬件加速器 | |
CN102841871A (zh) | 基于高速串行总线的DMA结构的pipeline读写方法 | |
CN113961494A (zh) | 一种pcie总线与axi总线的桥接系统 | |
CN107153412B (zh) | 一种具有发送fifo的can总线控制器电路 | |
CN110058207B (zh) | 一种用于雷达信号传输的多lane数据同步及重组系统与方法 | |
CN109800195A (zh) | 一种基于fpga的光纤通道适配器及数据传输方法 | |
Zhou et al. | Optimization design of high-speed data acquisition system based on DMA double cache mechanism | |
CN105808476A (zh) | 跨时钟域数据的传输方法及装置 | |
CN111130691B (zh) | 一种星载异步速率通信匹配装置 | |
CN116074267B (zh) | 一种数据通信系统及SoC芯片 | |
CN210155653U (zh) | 基于zynq芯片实现m-lvds总线数据交互装置 | |
CN113033087B (zh) | 一种基于fpga用于光神经网络的高速数据传输方法 | |
CN104008076A (zh) | 一种支持dvfs的总线数据信号传输的方法及装置 | |
CN113676253A (zh) | 一种基于FPGA的FlexRay总线光纤通信模块 | |
CN110096461A (zh) | 一种基于usb3.0辅助协议的实时高速数据传输方法及系统 |
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 |