CN115964333B - 一种基于fpga主控的多芯片神经网络算法的通信方法 - Google Patents

一种基于fpga主控的多芯片神经网络算法的通信方法 Download PDF

Info

Publication number
CN115964333B
CN115964333B CN202310259598.5A CN202310259598A CN115964333B CN 115964333 B CN115964333 B CN 115964333B CN 202310259598 A CN202310259598 A CN 202310259598A CN 115964333 B CN115964333 B CN 115964333B
Authority
CN
China
Prior art keywords
frame
data
chip
main control
state
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
CN202310259598.5A
Other languages
English (en)
Other versions
CN115964333A (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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202310259598.5A priority Critical patent/CN115964333B/zh
Publication of CN115964333A publication Critical patent/CN115964333A/zh
Application granted granted Critical
Publication of CN115964333B publication Critical patent/CN115964333B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

  • Communication Control (AREA)

Abstract

本发明公开了一种基于FPGA主控的多芯片神经网络算法的通信方法,通过对原始数据帧、状态帧、分层数据帧、分层权重帧、计算结果帧、分层数据请求帧、分层权重请求帧、计算结果请求帧、运行状态请求帧的设计,再根据发送及接收过程的调度,完成基于神经网络算法的图片处理。本发明保证了基于神经网络算法多层数据结构、多种数据类型的通信,并准确调度多芯片系统中主控及各芯片所需数据的发送、接收,以及发出数据请求命令;在接收、发送及芯片运行状态及发生的错误及错误类型进行反馈方面扮演了非常积极的角色。

Description

一种基于FPGA主控的多芯片神经网络算法的通信方法
技术领域
本发明涉及通信领域,具体涉及一种基于FPGA主控的多芯片神经网络算法的通信方法。
背景技术
多芯片协作是解决单颗芯片功能、运算能力不足的重要途经,多芯片协作目前采用的主要方法是多芯片通信中以一颗芯片作为主控芯片,随着FPGA技术迅猛发展,其多样化的功能设计、方便快捷的电路调整、可灵活配置的管脚接口,极大的缩减了多芯片系统的开发时间,基于FPGA的多芯片通信对于实现这一系统的具有十分积极的促进作用。
但是,现有技术中,并没有特定的基于FPGA主控的多芯片神经网络算法的通信方法,无法完成基于人工智能神经网络算法的多层数据结构、多种数据类型的通信,无法明确对应数据类型及层数,无法准确执行对应功能和收发所需要数据,也无法及时反馈数据的传输状态。
发明内容
针对现有技术的不足,本发明的目的在于提供一种基于FPGA主控的多芯片神经网络算法的通信方法。
为实现上述目的,本发明采用的技术方案是:本发明提供了一种基于FPGA主控的多芯片神经网络算法的通信方法,所述方法包括如下步骤:
(1)由基于FPGA主控的多芯片结构对帧结构进行构建,所述帧结构包括原始数据帧、状态帧、分层数据帧、分层权重帧、计算结果帧、分层数据请求帧、分层权重请求帧、计算结果请求帧和运行状态请求帧;由基于FPGA主控的多芯片结构指导主控接口模块及芯片数据接收模块工作,实现针对芯片或芯片组的数据通信;
(2)由原始数据帧或请求帧发起数据传输,包括FPGA主控向芯片或芯片组发送数据和请求数据以及芯片或芯片组向FPGA主控请求数据;
(3)由FPGA主控向芯片或芯片组传输数据,芯片接收完成后,进行数据存储或计算,然后将计算结果传输给FPGA主控;若FPGA主控传输期间在解帧和校验过程发生传输错误,则由接收方传输错误帧;若FPGA主控传输期间有状态请求及控制需求,则FPGA主控向芯片或芯片组传输状态请求或控制命令;
(4)由FPGA主控向芯片或芯片组发送数据传输请求帧,芯片接收完成后,将数据或数据存储或计算结果传输给FPGA主控;芯片向FPGA主控请求数据,FPGA主控向芯片或芯片组传输数据,若FPGA主控传输期间在解帧和校验过程发生传输错误则由接收方传输错误帧;若FPGA主控传输期间有状态请求及控制需求,则FPGA主控向芯片或芯片组传输状态请求或控制命令。
进一步地,所述帧结构具体为:
所述原始数据帧包括帧指令段、数值状态段、数据段和校验段;其中,所述帧指令段包括帧起始码、帧编号码和帧类型码;所述数值状态段为数据结构,包括帧起始码、图像帧高度和图像帧宽度;所述数据段为要发送的数据,根据每次要发送的数据按照每32bit编为1组进行发送,数据排列方式为从底位到高位,对于不足32bit的最后一个数据段,高位采用补0方法;所述校验段采用checksum校验法将帧指令段、数值状态段、数据段和校验段的所有数据值取反加1,按高低位排列,不足32bit的高位补0,超过32bit的取低32bit;
所述状态帧包括帧指令段和数值状态段;其中,所述帧指令段包括帧起始码、帧编号码和帧类型码,所述数值状态段包括接收正确状态、数据计数错误状态、数据校验错误状态和芯片运行错误状态;
所述分层数据帧、分层权重帧和计算结果帧均包括帧指令段、数值状态段、数据段和校验段;其中,所述帧指令段包括帧起始码、帧编号码和帧类型码;所述数值状态段包括数据长度码、层数信息、图像帧高度和图像帧宽度;所述数据段的组帧方法与所述原始数据帧一致;所述校验段的校验方法与所述原始数据帧一致;
所述分层数据请求帧、分层权重请求帧和计算结果请求帧均包括帧指令段和数值状态段,分层数据请求帧、分层权重请求帧和计算结果请求帧分别用于请求所述分层数据帧、分层权重帧和计算结果帧;其中,所述帧指令段包括帧起始码、帧编号码和帧类型码;所述数值状态段包括数据长度码、层数信息、图像帧高度和图像帧宽度;
所述运行状态请求帧包括帧指令段和数值状态段;其中,所述帧指令段包括帧起始码、帧编号码和帧类型码;所述数值状态段包含帧接收完成状态、帧接收错误状态、芯片状态请求帧和主控FPGA状态请求帧及主控给芯片的状态命令。
进一步地,通过所述帧指令段结构的调整能够同时控制芯片或芯片组的传输;在每帧发送的前32bit发送,用于指导FPGA主控接口模块及芯片数据接收模块工作,根据帧类型码将对应的帧信息传输到帧编号码对应的芯片或芯片组中;所述帧指令段包括按数据编号发送,忽略第一位重复发送,忽略第一位和第二位重复发送,忽略第一位、第二位和第三位重复发送,忽略第一位、第二位、第三位和第四位重复发送,全部重复发送,可保证数据发送至对应芯片或对应的2颗、4颗、8颗、16颗和32颗芯片重复发送数据。
进一步地,根据神经网络的二值或多值网络算法,可以灵活调整原始数据或者任一层数据以及数据总长度、数据结构和数据所属层数;通过所述原始数据帧、分层数据帧或分层权重帧实现神经网络算法所需数据的传输后进行组帧,并将其组好的帧传输给芯片或芯片组;接收完成后,在芯片或芯片组进行计算,再由芯片向主控发送计算结果帧。
进一步地,所述方法能够运用图像、文字、语音、人脸、物体和行为的多应用场景神经网络算法,各场景下原始数据、中间运算数据、权重和运算结果数据均通过该方法传输;所述方法能处理神经网络算法中的二值、三值和多值数据及二值、三值和多值权重的传输。
进一步地,所述基于FPGA主控的多芯片结构包含一个FPGA主控系统和多个芯片节点;所述FPGA主控系统和每个芯片节点通过数据连接线和片选信号线连接。
进一步地,所述FPGA主控或芯片在计算开始前和计算过程中及计算完成后随时向对方发起分层数据请求、分层权重请求或计算结果请求,并将需传输的数据、权重和计算结果进行传输。
进一步地,所述FPGA主控对多芯片系统的状态监测和控制,通过运行状态请求获得芯片运行状态和主控FPGA运行状态请求帧;对于运行状态不佳的芯片,FPGA主控通过给芯片状态命令以调整芯片运行状态。
本发明还提供了一种基于FPGA主控的多芯片神经网络算法的通信装置,包括一个或多个处理器,用于实现上述基于FPGA主控的多芯片神经网络算法的通信方法。
本发明还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,用于实现上述基于FPGA主控的多芯片神经网络算法的通信方法。
本发明的有益效果如下:适用于完成基于神经网络算法图片处理,其在多层数据结构、多种数据类型的通信,准确调度多芯片系统中主控及各芯片所需数据的发送、接收,并准确明确其数据结构,以及发出数据请求命令,对于接收、发送及芯片运行状态及发生的错误及错误类型进行反馈方面扮演了非常积极的角色。
附图说明
图1为本发明基于FPGA主控的多芯片结构示意图;
图2为本发明的原始数据帧结构示意图;
图3为本发明的状态帧结构示意图;
图4本发明的分层数据帧、分层权重帧、计算结果帧结构示意图;
图5为本发明的分层数据请求帧、分层权重请求帧、计算结果请求帧结构示意图;
图6为本发明的运行状态请求帧结构示意图;
图7为本发明的原始数据及分层数据传输、处理流程示意图;
图8为本发明的含请求帧的数据传输、处理流程示意图;
图9为本发明实施例提供的基于FPGA主控的多芯片神经网络算法的通信装置图。
具体实施方式
下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
首先给出技术术语解释:
(1)FPGA:Field Programmable Gate Array 现场可编程门阵列;
(2)SoC:System on Chip 系统级芯片;
(3)AMBA:Advanced Microcontroller Bus Architecture 高级微控制器总线架构。
本发明能够完成基于神经网络算法的多层数据结构、多种数据类型的通信,并准确调度多芯片系统中主控及各芯片所需数据的发送、接收,并准确明确其数据结构;通过发出数据请求命令对接收、发送、芯片运行状态、发生的错误及错误类型进行反馈。
实施例1
本发明提供的基于FPGA主控的多芯片神经网络算法的通信方法的具体执行过程如下:
步骤一:构建一个基于FPGA主控的多芯片结构,参见图1的基于FPGA主控的多芯片结构示意图,该结构包含一个FPGA主控系统和多个SoC芯片节点;FPGA主控系统和每个SoC芯片节点通过数据连接线和片选信号线连接;FPGA主控系统包含组帧解帧模块和FPGA接口模块,组帧解帧模块和FPGA接口模块通过片上总线连接;SoC芯片节点包含芯片接口模块和组帧解帧模块。图1仅显示3个芯片节点,其中N<=31,表示不超过32个节点。FPGA主控系统与每个SoC芯片节点之间通过通用数据接口进行数据传输,各方采用相同的数据传输协议。FPGA主控在发送数据时,通过读取帧结构的帧指令段的帧编号码,确定要发送数据的芯片编号或芯片组编号,然后通过片选信号选中对应芯片,若要发送的数据为芯片组,则根据芯片编号从小到大原则来进行发送。FPGA主控在数据接收过程中,根据先到先得原则,由最先选中的片选信号对应芯片进行数据发送,若存在同时选中情况,则根据芯片编号从小到大进行接收。
由基于FPGA主控的多芯片结构对帧结构进行构建,帧结构包括原始数据帧、状态帧、分层数据帧、分层权重帧、计算结果帧、分层数据请求帧、分层权重请求帧、计算结果请求帧和运行状态请求帧。每种帧结构均包含帧指令段、帧状态段;其中,每种帧结构的帧指令段结构一致,均为32位,帧指令段结构包含帧起始码、帧编号码、帧类型码;帧状态段根据不同的帧类型,进行不同的组帧。原始数据帧、分层数据帧、分层权重帧、计算结果帧的帧结构含有帧数据段、帧校验段;帧数据段、帧校验段均为根据不同的帧类型,进行不同的组帧。
参见图2的原始数据帧结构示意图,原始数据帧包括帧指令段、数值状态段、数据段、校验段;其中,帧指令段包括帧起始码、帧编号码、帧类型码;数值状态段为数据结构,包括帧起始码、图像帧高度、图像帧宽度。原始数据帧的帧指令段包括帧指令段在内的16位帧起始码,发送命令开始时,帧编码模块将特定字节起始码作为发送数据的帧起始码;接收过程中,帧起始码接收完成后进入帧起始码校验,若校验通过,则触发帧起始校验通过信号,若校验未通过,则触发错误信号。在发送过程中,帧指令段的帧编号码共8位,帧编号码前3位表示发送模式,包括按数据编号发送,忽略第一位重复发送,忽略第一、二位重复发送,忽略第一、二、三位重复发送,忽略第一、二、三、四位重复发送,全部重复发送,可保证数据发送至对应芯片或对应的2颗、4颗、8颗、16颗及32颗芯片重复发送数据;帧编号码后5位表示向对应编号的芯片发送数据,00000到11111共计支持32颗芯片通信。接收到的数据前3位全部定义为000,后5位为对应芯片编号,再根据接收到的数据所对应芯片型号进行数据处理。帧指令段的帧类型码共8位,帧类型码高6位为表示帧特定含义的结构,原始数据帧为000001;帧类型码低2位为表示帧图像类型含义的结构。原始数据帧中包括单值数据帧00、二值图像帧01、三值图像帧灰度图像帧10、彩色图像帧11。数据段为要发送的数据,根据每次要发送的数据按照每32bit编为1组进行发送,数据排列方式为从低位到高位;对于不足32bit的最后一个数据段,其高位采用补0方法。计数器在开始进行数据接收后开始计数,计数完成后剩余数据不再进行数据接收。校验段采用checksum校验法将前述帧指令段、数值状态段、数据段、校验段的所有数据值取反加1,按高低位排列,不足32bit的高位补0。
参见图3的状态帧结构示意图,状态帧的帧指令段包括帧指令段、数值状态段;其中,帧指令段包括帧起始码、帧编号码、帧类型码。状态帧的帧指令段最后两位为0;状态帧的数值状态段共32位,包含帧接收完成状态32bit全部为0,错误状态类型包括数据计数错误01、数据校验错误01、芯片运行错误110,还包括主控FPGA状态正确111、FPGA状态错误1101、芯片状态正确1110,芯片状态错误1111,主控期望芯片静默10000;状态帧不含数据段、校验段。
参见图4的分层数据帧、分层权重帧、计算结果帧结构示意图,分层数据帧、分层权重帧、计算结果帧均包括帧指令段、数值状态段、数据段、校验段;其中,所述帧指令段包括帧起始码、帧编号码、帧类型码。分层数据帧、分层权重帧、计算结果帧的帧指令段的帧类型码均为共8位,高6位为表示帧特定含义的结构,原始数据帧为000011,帧指令段最后两位为0。数值状态段包括共32位,高8位表示数值大小,其数值表示为N;数据段总长度为N*32,表示有N*32 bit原始数据传输,次高8位为层数信息,表示此数据帧、权重帧属于算法第几层;低16位表示图像,其中高8位表示图像帧高度,低8位表示图像帧宽度,原始数据帧总长为32*(N+1)位。计数器在开始进行数据接收后开始计数,计数完成后剩余数据不再作为数据进行接收。校验段采用checksum校验法将前述帧指令段、数值状态段、数据段、校验段的所有数据值取反加1,按高低位排列,不足32bit的高位补0。
图5为分层数据请求帧、分层权重请求帧、计算结果请求帧结构示意图,分层数据请求帧、分层权重请求帧、计算结果请求帧均包括帧指令段、数值状态段,分别用于请求所述分层数据帧、分层权重帧、计算结果帧;其中,所述帧指令段包括帧起始码、帧编号码、帧类型码;所述数值状态段包括数据长度码、层数信息、图像帧高度,图像帧宽度。分层数据请求帧、分层权重请求帧、计算结果请求帧的帧指令段的帧类型码均为共8位,高6位为表征帧特定含义的结构,原始数据帧为000100,帧指令段最后两位为0。数值状态段共32位,其中高8位表示所需数值大小,其数值表示为N,数据段总长度为N*32,表示FPGA主控需要有N*32bit原始数据读取;次高8位为层数信息,表示此数据帧、权重帧属于算法第几层;低16位表示图像,其中高8位表示图像帧高度,低8位表示图像帧宽度,分层数据请求帧、分层权重请求帧、计算结果请求帧不含数据段、校验段。
图6为运行状态请求帧结构示意图,运行状态请求帧包括帧指令段、数值状态段;其中,所述帧指令段包括帧起始码、帧编号码、帧类型码。运行状态请求帧的帧指令段的帧类型码共8位,高6位为表征帧特定含义的结构,原始数据帧为000101,帧指令段最后两位为0。数值状态段共32位,分别包含帧接收完成状态、帧接收错误状态、芯片状态请求帧、主控FPGA状态请求帧及主控给芯片的状态命令,运行状态请求帧不含数据段、校验段。
步骤二:根据不同算法的设计,在数据采集完成后,由主控FPGA进行任务分发和数据整合,主控FPGA执行部分算法或全部算法交给芯片执行,数据传输由原始数据帧或请求帧发起;其中,FPGA主控向对应芯片或芯片组发送数据,这个数据是原始数据或处理后的分层数据;FPGA主控向对应芯片或芯片组请求数据,这个数据主要为芯片处理完成后的分层结果数据、最终运算结果数据或经过训练后的权重数据;芯片或芯片组向FPGA主控请求数据,这个数据主要为芯片或芯片组在计算完成后向主控请求的进一步的数据。
步骤三: FPGA主控向对应芯片或芯片组传输数据,对应芯片接收完成后,进行数据存储或计算,然后将计算结果传输给FPGA主控;若FPGA主控传输期间在解帧、校验过程发生传输错误,则由接收方传输错误帧;若FPGA主控传输有状态请求及控制需求,则FPGA主控向对应芯片或芯片组传输状态数据。参见图7的原始数据及分层数据传输、处理流程示意图,当有FPGA主控原始数据发送或分层数据任务发送时,将要发送的数据按照上述方式进行组帧,然后将数据通过接口模块发送至对应的芯片或芯片组;芯片端接收到数据后,先进行解帧,若帧头与约定不一致,则表示发生错误,芯片端进入状态帧组帧,发送错误帧;若帧头正确则继续接收,数据接收完成后进行数据校验,若校验不正确,则表示发生错误,芯片端进入状态帧组帧,发送错误帧;若帧头校验正确,则进行数据存储及计算,数据存储及计算完成后芯片端将接收正确结果或计算结果进行组帧,并通过接口发送给FPGA主控。FPGA主控在接收到错误帧之后,重新进行对应数据帧组帧,并重新进行数据发送;FPGA主控接收到正确帧之后,继续进行数据发送,若发送完成则进入等待状态;FPGA主控在接收到计算结果帧之后,进入结果处理模块。
步骤四:FPGA主控向对应芯片或芯片组发送数据传输请求帧,对应芯片接收完成后,将对应数据或数据存储或计算结果传输给FPGA主控;或芯片向FPGA主控请求数据、FPGA主控向对应芯片或芯片组传输数据,若FPGA主控传输期间在解帧、校验过程发生传输错误,则由接收方传输错误帧,若FPGA主控传输期间有状态请求及控制需求,则FPGA主控向对应芯片或芯片组传输状态请求或控制命令。参见图8的含请求帧的数据传输、处理流程示意图,当FPGA主控有数据请求任务发送时,将要发送的请求帧按照上述方式进行组帧,然后将数据通过接口模块发送至对应的芯片或芯片组;芯片端接收到数据后,先进行解帧,若帧头与约定不一致,则表示发生错误,芯片端进入状态帧组帧,发送错误帧;若接收正确,芯片端根据对应的数据、权重、结果帧组帧,然后通过接口模块发送到FPGA主控;FPGA主控在接收到错误帧之后,重新进行对应数据帧组帧,然后重新进行数据发送;FPGA主控在接收到数据传输帧后,若帧头与约定不一致,则表示发生错误,主控端进入状态帧组帧,发送错误帧;当芯片端对FPGA主控有数据请求任务发送时,其发送与应答方式与FPGA主控发起一致。
本发明提供的基于FPGA主控的多芯片神经网络算法的通信方法能够灵活运用图像、文字、语音、人脸、物体、行为多应用场景神经网络算法,各场景下原始数据、中间运算数据、权重、运算结果等数据均通过该方法传输;基于FPGA主控的多芯片神经网络算法的通信方法能灵活处理神经网络算法中的二值、三值、多值数据及二值、三值、多值权重的传输。
实施例2
参见图9,本发明实施例提供的一种基于FPGA主控的多芯片神经网络算法的通信装置,包括一个或多个处理器,用于实现上述实施例中的基于FPGA主控的多芯片神经网络算法的通信方法。
本发明基于FPGA主控的多芯片神经网络算法的通信装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图9所示,为本发明基于FPGA主控的多芯片神经网络算法的通信装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图9所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于FPGA主控的多芯片神经网络算法的通信方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。

Claims (9)

1.一种基于FPGA主控的多芯片神经网络算法的通信方法,其特征在于,所述方法包括如下步骤:
(1)由基于FPGA主控的多芯片结构对帧结构进行构建,所述帧结构包括原始数据帧、状态帧、分层数据帧、分层权重帧、计算结果帧、分层数据请求帧、分层权重请求帧、计算结果请求帧和运行状态请求帧;
所述原始数据帧包括帧指令段、数值状态段、数据段和校验段;其中,所述帧指令段包括帧起始码、帧编号码和帧类型码;通过所述帧指令段结构的调整能够同时控制芯片或芯片组的传输;在每帧发送的前32bit发送,由基于FPGA主控的多芯片结构指导主控接口模块及芯片数据接收模块工作,根据帧类型码将对应的帧信息传输到帧编号码对应的芯片或芯片组中;所述帧指令段包括按数据编号发送,忽略第一位重复发送,忽略第一位和第二位重复发送,忽略第一位、第二位和第三位重复发送,忽略第一位、第二位、第三位和第四位重复发送,全部重复发送,能够保证数据发送至对应芯片或对应的2颗、4颗、8颗、16颗和32颗芯片重复发送数据;实现针对芯片或芯片组的数据通信;
(2)由原始数据帧或请求帧发起数据传输,包括FPGA主控向芯片或芯片组发送数据和请求数据以及芯片或芯片组向FPGA主控请求数据;
(3)由FPGA主控向芯片或芯片组传输数据,芯片接收完成后,进行数据存储或计算,然后将计算结果传输给FPGA主控;若FPGA主控传输期间在解帧和校验过程发生传输错误,则由接收方传输错误帧;若FPGA主控传输期间有状态请求及控制需求,则FPGA主控向芯片或芯片组传输状态请求或控制命令;
(4)由FPGA主控向芯片或芯片组发送数据传输请求帧,芯片接收完成后,将数据或数据存储或计算结果传输给FPGA主控;芯片向FPGA主控请求数据,FPGA主控向芯片或芯片组传输数据,若FPGA主控传输期间在解帧和校验过程发生传输错误则由接收方传输错误帧;若FPGA主控传输期间有状态请求及控制需求,则FPGA主控向芯片或芯片组传输状态请求或控制命令。
2.根据权利要求1所述的基于FPGA主控的多芯片神经网络算法的通信方法,其特征在于,所述帧结构具体为:
所述原始数据帧的数值状态段为数据结构,包括帧起始码、图像帧高度和图像帧宽度;所述数据段为要发送的数据,根据每次要发送的数据按照每32bit编为1组进行发送,数据排列方式为从底位到高位,对于不足32bit的最后一个数据段,高位采用补0方法;所述校验段采用checksum校验法将帧指令段、数值状态段、数据段和校验段的所有数据值取反加1,按高低位排列,不足32bit的高位补0,超过32bit的取低32bit;
所述状态帧包括帧指令段和数值状态段;其中,所述帧指令段包括帧起始码、帧编号码和帧类型码,所述数值状态段包括接收正确状态、数据计数错误状态、数据校验错误状态和芯片运行错误状态;
所述分层数据帧、分层权重帧和计算结果帧均包括帧指令段、数值状态段、数据段和校验段;其中,所述帧指令段包括帧起始码、帧编号码和帧类型码;所述数值状态段包括数据长度码、层数信息、图像帧高度和图像帧宽度;所述数据段的组帧方法与所述原始数据帧一致;所述校验段的校验方法与所述原始数据帧一致;
所述分层数据请求帧、分层权重请求帧和计算结果请求帧均包括帧指令段和数值状态段,分层数据请求帧、分层权重请求帧和计算结果请求帧分别用于请求所述分层数据帧、分层权重帧和计算结果帧;其中,所述帧指令段包括帧起始码、帧编号码和帧类型码;所述数值状态段包括数据长度码、层数信息、图像帧高度和图像帧宽度;
所述运行状态请求帧包括帧指令段和数值状态段;其中,所述帧指令段包括帧起始码、帧编号码和帧类型码;所述数值状态段包含帧接收完成状态、帧接收错误状态、芯片状态请求帧和主控FPGA状态请求帧及主控给芯片的状态命令。
3.根据权利要求2所述的基于FPGA主控的多芯片神经网络算法的通信方法,其特征在于,根据神经网络的二值或多值网络算法,能够灵活调整原始数据或者任一层数据以及数据总长度、数据结构和数据所属层数;通过所述原始数据帧、分层数据帧或分层权重帧实现神经网络算法所需数据的传输后进行组帧,并将其组好的帧传输给芯片或芯片组;接收完成后,在芯片或芯片组进行计算,再由芯片向主控发送计算结果帧。
4.根据权利要求3所述的基于FPGA主控的多芯片神经网络算法的通信方法,其特征在于,所述方法能够运用图像、文字、语音、人脸、物体和行为的多应用场景神经网络算法,各场景下原始数据、中间运算数据、权重和运算结果数据均通过该方法传输;所述方法能处理神经网络算法中的二值、三值和多值数据及二值、三值和多值权重的传输。
5.根据权利要求1所述的基于FPGA主控的多芯片神经网络算法的通信方法,其特征在于,所述基于FPGA主控的多芯片结构包含一个FPGA主控系统和多个芯片节点;所述FPGA主控系统和每个芯片节点通过数据连接线和片选信号线连接。
6.根据权利要求4所述的基于FPGA主控的多芯片神经网络算法的通信方法,其特征在于,所述FPGA主控或芯片在计算开始前和计算过程中及计算完成后随时向对方发起分层数据请求、分层权重请求或计算结果请求,并将需传输的数据、权重和计算结果进行传输。
7.根据权利要求6所述的基于FPGA主控的多芯片神经网络算法的通信方法,其特征在于,所述FPGA主控对多芯片系统的状态监测和控制,通过运行状态请求获得芯片运行状态和主控FPGA运行状态请求帧;对于运行状态不佳的芯片,FPGA主控通过给芯片状态命令以调整芯片运行状态。
8.一种基于FPGA主控的多芯片神经网络算法的通信装置,其特征在于,包括一个或多个处理器,用于实现权利要求1-7中任一项所述的基于FPGA主控的多芯片神经网络算法的通信方法。
9.一种计算机可读存储介质,其上存储有程序,其特征在于,该程序被处理器执行时,用于实现权利要求1-7中任一项所述的基于FPGA主控的多芯片神经网络算法的通信方法。
CN202310259598.5A 2023-03-17 2023-03-17 一种基于fpga主控的多芯片神经网络算法的通信方法 Active CN115964333B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310259598.5A CN115964333B (zh) 2023-03-17 2023-03-17 一种基于fpga主控的多芯片神经网络算法的通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310259598.5A CN115964333B (zh) 2023-03-17 2023-03-17 一种基于fpga主控的多芯片神经网络算法的通信方法

Publications (2)

Publication Number Publication Date
CN115964333A CN115964333A (zh) 2023-04-14
CN115964333B true CN115964333B (zh) 2023-06-09

Family

ID=85901504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310259598.5A Active CN115964333B (zh) 2023-03-17 2023-03-17 一种基于fpga主控的多芯片神经网络算法的通信方法

Country Status (1)

Country Link
CN (1) CN115964333B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702474A (zh) * 2015-03-11 2015-06-10 华中科技大学 一种基于FPGA的EtherCAT主站装置
CN112583683A (zh) * 2020-12-29 2021-03-30 中国科学院声学研究所 一种主从式can fd总线应用层通信方法及系统、电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789507A (zh) * 2016-12-19 2017-05-31 北京格林伟迪科技股份有限公司 一种实现中央处理器与功能芯片通信的方法和装置
CN108880686B (zh) * 2018-07-14 2020-06-16 中天宽带技术有限公司 面向多应用pon的fpga收发器的单芯片onu
CN115729879A (zh) * 2021-08-27 2023-03-03 北京希姆计算科技有限公司 数据帧格式、芯片通信方法及芯片
US20230082536A1 (en) * 2021-08-30 2023-03-16 Nvidia Corporation Fast retraining of fully fused neural transceiver components

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702474A (zh) * 2015-03-11 2015-06-10 华中科技大学 一种基于FPGA的EtherCAT主站装置
CN112583683A (zh) * 2020-12-29 2021-03-30 中国科学院声学研究所 一种主从式can fd总线应用层通信方法及系统、电子设备

Also Published As

Publication number Publication date
CN115964333A (zh) 2023-04-14

Similar Documents

Publication Publication Date Title
CN104702474B (zh) 一种基于FPGA的EtherCAT主站装置
US4551721A (en) Method for initializing a token-passing local-area network
US4556974A (en) Method for passing a token in a local-area network
CN205263808U (zh) Spi从设备及spi通信系统
CN110519374B (zh) ZigBee网络化工业控制系统的边缘计算方法及其边缘节点
CN106598889A (zh) 一种基于fpga夹层板的sata主控器
CN102664779A (zh) 一种can总线数据传送方法
CN115964333B (zh) 一种基于fpga主控的多芯片神经网络算法的通信方法
CN107436851A (zh) 串行外设接口四线隔离系统及其控制方法
CN103716115A (zh) 时分复用的fec编码方法及装置
CN106372026A (zh) 一种链路检测方法和接收设备
CN107748509A (zh) 基于单片机收发控制的asi通信从机实施方法
CN109933547B (zh) 一种ssd主控中的raid被动加速装置和加速方法
CN107479891B (zh) 一种基于mvc模型数据处理系统及方法
CN115903744A (zh) 一种汽车远程检测方法、装置、电子设备及存储介质
CN111311471B (zh) 一种基于fpga计算的批量图片分割调度处理合成系统及方法
CN115878534A (zh) 串行外设接口spi通信方法
CN213517952U (zh) 一种新型四线无干预F-bus高速通讯系统
CN107248883B (zh) 一种面向高吞吐量负载平衡硬件的实时监测系统
JPS6262696A (ja) デ−タ信号をリング回線網に所属の一群の制御装置に伝送する方法および装置
CN113395285B (zh) 一种cpu与fpga间的网络层通信方法
CN114978798B (zh) 串行通信方法、装置及板卡
CN112699145B (zh) 一种数据处理系统
CN112506100A (zh) 一种新型四线无干预F-bus高速通讯系统及方法
JPS5822893B2 (ja) デ−タハイウエイシステムの回線制御方式

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