CN115469912B - 异构实时信息处理系统设计方法 - Google Patents
异构实时信息处理系统设计方法 Download PDFInfo
- Publication number
- CN115469912B CN115469912B CN202211361438.3A CN202211361438A CN115469912B CN 115469912 B CN115469912 B CN 115469912B CN 202211361438 A CN202211361438 A CN 202211361438A CN 115469912 B CN115469912 B CN 115469912B
- Authority
- CN
- China
- Prior art keywords
- updating
- node
- updated
- chip
- program
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- 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/08—Learning methods
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种异构实时信息处理系统设计方法,由多个异构嵌入式系统即多个节点组成分布式嵌入式系统,每一节点执行一个子任务,所有子任务组成当前部署的任务。当任一节点的子任务发生变化时,需要对相应节点中的至少一个芯片进行程序更新,以满足子任务需求。首先对比新程序与待更新芯片的现有程序,得到初始更新部分和初始更新区域;接着根据初始更新区域与Flash的覆盖度,以更新时间最短原则自适应动态调整更新粒度,确定优化更新部分和对应的优化更新区域,由对应节点的上级控制设备通过对应节点的通信接口向待更新芯片发送新程序,在优化更新区域写入对应的优化更新部分。综上,本发明可以实时更新程序以满足任务需求。
Description
技术领域
本申请涉及嵌入式系统技术领域,特别是涉及一种异构实时信息处理系统设计方法。
背景技术
超大规模集成电路和自动化智能化技术的飞速发展使得嵌入式计算系统融入我们日常生活,并向多核化、异构化和网络化发展。如今,异构嵌入式系统将计算与网络深度融合演化成一个复杂的系统。大量的处理单元(PE)分布在网络的各个位置。由于不同的计算任务负载和工作环境需要,PE可以使用不同的芯片、指令集架构,拥有不同的硬件协处理器,集成不同的电子单元从而呈现出明显的异构特性。PE之间可以通过如CAN、Uart、LIN、MOST以及Ethernet等多种网络互连,不同网络之间又可以通过中央网关相连。
从计算机系统的角度看,异构嵌入式系统由计算单元、控制器单元、执行器单元以及网络系统构成。异构性表现在PE计算效率的不同,PE集成了不同指令集的CPU、数字信号处理器、FPGA和其他专门定制的芯片,对于相同的计算任务,不同的PE耗时不同。例如,执行计算密集型的密码学任务,使用高效的FPGA会比使用通用计算的CPU更加迅速。从通信的角度看,物理分布的PE在网络中也是分布式的,网络可以是单总线网络。
根据应用场景不同,异构分布式嵌入式系统的设计实现着重考虑的系统约束和性能要求也不同。由此提出很多不同的优化设计方法,用于给出满足不同性能约束和优化目标的异构分布式嵌入式系统的任务划分策略。大体可以分为以下几种:软硬件划分启发式的优化方法,在系统执行时间约束、各处理器内存约束和各硬件部件面积约束下,最小化系统能源消耗。以时间优化作为核心目标的优化方法,在应用程序和系统环境相关的特定约束条件下,将并行应用程序任务分配给异构分布式计算资源,使系统完成时间最小化。以负载平衡和功率分配作为目标的优化方法,结合负载平衡、能源效率和任务优先级,使一般任务的平均响应时间最小化。这些方法各具特点,各自适应不同的应用场景,但较为理论化,较难投入实际应用。
发明内容
基于此,有必要针对上述技术问题,提供一种异构实时信息处理系统设计方法,以便确保信息处理速度。
一种异构实时信息处理系统设计方法,方法包括:
获取当前的异构分布式嵌入式系统以及当前部署的任务;异构分布式嵌入式系统包括多个节点;每一节点均为一个异构嵌入式系统;每一节点执行一个子任务,所有子任务组成当前部署的任务;
当任一节点执行的子任务发生变化时,确定对应节点中的待更新芯片,根据变化后的子任务确定新程序,对比新程序与待更新芯片的现有程序得到初始更新部分和对应的初始更新区域;
根据初始更新区域与待更新芯片的Flash的覆盖度,以更新时间最短原则自适应调整更新粒度,以确定优化更新部分和对应的优化更新区域,由对应节点的上级控制设备通过对应节点的通信接口向待更新芯片发送新程序,并在优化更新区域写入对应的优化更新部分,完成程序更新,以满足对应的子任务需求;更新粒度包括扇区、块和整片Flash。
上述异构实时信息处理系统设计方法,由多个异构嵌入式系统即多个节点组成异构分布式嵌入式系统,每一节点执行一个子任务,所有子任务组成当前部署的任务。当任一节点的子任务发生变化时,需要对相应节点中的至少一个芯片进行程序更新,以满足子任务需求。考虑到程序更新对Flash寿命的影响,本方法首先对比新程序与待更新芯片的现有程序,以此得到初始更新部分及其在待更新芯片Flash中的位置,即对应的初始更新区域;接着根据初始更新区域与Flash的覆盖度,以更新时间最短原则自适应调整更新粒度,即选择以扇区为更新单位、以块为更新单位还是以整片Flash为更新单位,动态调整更新粒度,在确保程序更新的实时性的前提下,可以延长Flash的使用寿命;调整更新粒度后可以确定优化更新部分和对应的优化更新区域,由对应节点的上级控制设备通过对应节点的通信接口向待更新芯片发送新程序,并在优化更新区域写入对应的优化更新部分,完成程序更新,以满足对应的子任务需求,可以知道,在程序更新过程中,本方法可以有选择地选择更新分布式系统中各节点中芯片核心上运行的应用程序,其他芯片核心不受影响。综上,本发明的系统设计方法,可以根据实际部署的任务需求,实时更新程序以满足任务需求。
附图说明
图1为一个实施例中异构实时信息处理系统设计方法的流程示意图;
图2为一个实施例中通过卷积神经网络执行异构分布式嵌入式系统部署的任务的示意图;
图3为一个实施例中异构嵌入式系统示意图;
图4为另一个实施例中异构嵌入式系统部署LSTM网络的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种异构实时信息处理系统设计方法,包括以下步骤:
步骤102,获取当前的异构分布式嵌入式系统以及当前部署的任务。
异构分布式嵌入式系统包括多个节点,每一节点均为一个异构嵌入式系统,每一节点执行一个子任务,所有子任务组成当前部署的任务。异构是指嵌入式系统中包含几种不同的核心芯片,例如ARM+DSP等。本方法中的分布式嵌入式系统是一种紧耦合互联架构,这种紧耦合互联架构可以基于SRIO总线网络实现。
步骤104,当任一节点执行的子任务发生变化时,确定对应节点中的待更新芯片,根据变化后的子任务确定新程序,对比新程序与待更新芯片的现有程序得到初始更新部分和对应的初始更新区域。
当某一节点的子任务需求提高,相应地需要提高该节点的计算能力,由于每个节点中包括多种核心芯片,若以节点为更新单位,将造成不必要的资源浪费,因此本方法根据新的子任务需求和节点中各个芯片的计算资源,确定节点中的待更新芯片,并通过对比待更新芯片的现有程序与新程序得到初始更新部分,即新程序相对现有程序的改动部分,以及改动部分对应的位置,即初始更新区域。
步骤106,根据初始更新区域与待更新芯片的Flash的覆盖度,以更新时间最短原则自适应调整更新粒度,以确定优化更新部分和对应的优化更新区域。
其中,更新粒度包括扇区、块和整片Flash,即对Flash中程序进行更新时,可以按照扇区、块、整片Flash擦除然后写入数据的方式进行,一般Flash只有几千次烧写寿命,如果更新程序频繁会导致Flash损坏。Flash包含若干个块,每个块包含若干扇区,各个块中的扇区连续存在,以块为单位进行擦除并写入花费的时间小于单独对块中每个扇区擦除写入的时间,对整个Flash进行更新时间小于以块为单位对所有块更新时间。
由于程序更新时不会改变所有的数据,因此使用增量更新的方式更新程序,仅对需要更新部分进行更新可以减少程序更新时间,并且动态改变程序烧写位置可以延长Flash使用寿命。
一般情况下,自适应调整更新粒度会导致除去初始更新区域中的现有程序需要被擦除重写外,还需要对其他区域进行擦除重写的更新操作,以满足更新时间最短原则,对应地会得到优化更新部分和对应的优化更新区域。
步骤108,由对应节点的上级控制设备通过对应节点的通信接口向待更新芯片发送新程序,并在优化更新区域写入对应的优化更新部分,完成程序更新,以满足对应的子任务需求。
可以理解,本方法在不破坏系统硬件整体设计和额外引入调试接口的情况下,通过已有的对上一级通信接口对指定多核芯片上指定核心的信息处理算法进行热更新,即可以有选择地选择更新分布式系统中各节点中芯片核心上运行的应用程序,其他芯片核心不受影响。
上述异构实时信息处理系统设计方法,由多个异构嵌入式系统即多个节点组成异构分布式嵌入式系统,每一节点执行一个子任务,所有子任务组成当前部署的任务。当任一节点的子任务发生变化时,需要对相应节点中的至少一个芯片进行程序更新,以满足子任务需求。考虑到程序更新对Flash寿命的影响,本方法首先对比新程序与待更新芯片的现有程序,以此得到初始更新部分及其在待更新芯片Flash中的位置,即对应的初始更新区域;接着根据初始更新区域与Flash的覆盖度,以更新时间最短原则自适应调整更新粒度,即选择以扇区为更新单位、以块为更新单位还是以整片Flash为更新单位,动态调整更新粒度,在确保程序更新的实时性的前提下,可以延长Flash的使用寿命;调整更新粒度后可以确定优化更新部分和对应的优化更新区域,由对应节点的上级控制设备通过对应节点的通信接口向待更新芯片发送新程序,并在优化更新区域写入对应的优化更新部分,完成程序更新,以满足对应的子任务需求,可以知道,在程序更新过程中,本方法可以有选择地选择更新分布式系统中各节点中芯片核心上运行的应用程序,其他芯片核心不受影响。综上,本发明的系统设计方法,可以根据实际部署的任务需求,实时更新程序以满足任务需求。
在一个实施例中,根据初始更新区域与待更新芯片的Flash的覆盖度,以更新时间最短原则自适应调整更新粒度,包括:
分别获取初始更新区域在待更新芯片的Flash的各个块中覆盖的扇区数,根据扇区数确定以扇区为更新粒度时的扇区更新总时间,将扇区更新总时间与对应的块更新时间比较,当块更新时间更短时,将对应的块中的更新粒度初步调整为块;根据以块为更新粒度的块总数得到块更新总时间,比较块更新总时间和整片Flash更新时间,当整片Flash更新时间较短时,将更新粒度进一步调整为整片Flash。
在第一次比较之后得到的更新粒度结果中可能包括a个块以扇区为更新粒度,b个块以块为更新粒度,那么进行第二次比较时是以b个块的块更新总时间与整片Flash更新时间比较,若整片Flash更新时间相比之下更短,则将待更新芯片的整片Flash擦除重写进行更新,否则第一次比较的结果为准进行更新。
假设某芯片使用Flash对单个扇区进行擦除并写入即更新需要的时间为t1,对一个块更新时间为t2,对整片Flash更新时间为t3,上位机编译好新程序之后会与系统现有程序进行对比,得到需要更新的部分在Flash中的位置,先对各个块内需要更新的扇区计算更新时间,假设某块内需要更新n1个扇区,则以扇区为单位更新该块需要n1*t1时间,按照时间最短原则,取min[t1*n1,t2]为该块更新最小时间,当t2小于t1*n1时以块为单位对该块以块为单位更新,反之对该块以扇区为单位更新。计算出所有需要更新块时间,假设共有m个块需要更新,再判断对块进行更新和对整片Flash进行更新时间,取对应方式进行更新,此时更新时间最短。
例如当芯片是SoC芯片如zynq时,zynq中两个ARM核与FPGA共用一个flash,现有技术会将整个zynq的Flash都更新,没有针对性地选择更新。而本方法可以更准确更新到zynq的某个核或是某部分处理资源,实现更准确地更新。这需要提前对zynq的Flash进行规划,指定出各核在Flash中占的地址。
在一个实施例中,在确定对应节点中的待更新芯片之前,包括:
由异构分布式嵌入式系统通过自举过程获取各个节点的的存储空间映射关系,由任务调度节点创建通用命名空间描述表,由各个节点基于通用命名空间描述表和存储空间映射关系得到全局存储映射描述表。当接入或移除节点时会动态更新全局存储映射描述表,这样每个节点都知道当前系统拥有的计算资源情况。基于SRIO总线实现的紧耦合系统互联架构,具备较强的灵活性,方便分系统(节点)内部、或是分系统(节点)之间进行灵活高效的互联,在互联架构上接入新的节点或是删除节点,都不会对以往的节点软硬件产生很大的影响,各个节点间可进行实时高效的网络通信。
在一个实施例中,在多个节点中包含一个任务调度节点;由对应节点的上级控制设备通过对应节点的通信接口向待更新芯片发送新程序,并在优化更新区域写入对应的优化更新部分,完成程序更新,包括:
由任务调度节点调用数据访问API,根据全局存储映射描述表得到待更新芯片对应的指定节点的局部地址,将局部地址和物理地址查询指令封装后传入事务控制层;
由事务控制层根据协议将指定节点的ID、功能配置参数、数据以及计算结果返回地址组成事务层数据包发送给任务调度节点;
由任务调度节点根据事务层数据包通过事务控制层解析得到指定节点的物理地址,将更新指令根据对应的物理地址通过通信接口传输至指定节点的待更新芯片,并在优化更新区域写入对应的优化更新部分,完成程序更新,并将更新结果返回给任务调度节点;更新指令中包含优化更新部分和优化更新区域;
由任务调度节点通过事务控制层解析得到更新结果,通过全局存储映射描述表将更新结果存储到任务调度节点用于存放计算结果的存储空间中。
在一个实施例中,每一节点包括一颗多核DSP芯片以及若干ZYNQ芯片;每颗ZYNQ芯片包括FPGA和ARM。
由一颗ZYNQ芯片作为中央处理单元,对应的ARM与外部上级控制设备通过通信接口进行通信,接收外部上级控制设备的控制指令并在对应节点内转发;由一颗ZYNQ芯片作为数据预处理单元,接收并对外部下级数据进行预处理后转发到对应的数据处理单元;由一颗多核DSP芯片和其余若干ZYNQ芯片作为数据处理单元,由作为数据处理单元的ZYNQ芯片接收数据预处理单元发送的原始的外部下级数据以及预处理后的外部下级数据并进行处理得到相应的处理结果,由多核DSP芯片对处理结果进行综合分析得到最终结果并经中央处理单元传输至外部上级控制设备。
ZYNQ和多核DSP的软件均分为监控软件和应用软件两类。软件二进制文件均存储在各自芯片配套的Flash存储器中。
监控软件指在本信息处理系统正式工作前所运行的程序,包括以下功能:初始化DDR,PLL,FLASH和GPIO等外围硬件设备;接受上级控制设备的自检指令,用以测试硬件是否能够正常工作,测试各单元之间和整个系统对外的连通性;接收上级控制设备的更新指令,逐帧接收更新程序文件并校验,然后更新对应FLASH上各自芯片核心指定应用软件文件,其中包括ZYNQ上PL端应用程序,PS端指定ARM核应用程序和多核DSP指定核应用程序;
应用程序指在本信息处理系统正式工作后所运行的程序,用以完成本信息处理系统所分配的信息处理任务。
本信息处理系息处理数据的流程如下:
1、 上电后,各处理单元的主核通过自加载的方法从各自的Flash中将二进制文件搬运到内存指定位置,设置主PC指针,然后引导各处理单元的监控程序启动。
2、 当上级控制设备发来运行指令时,当前处理单元芯片主核(Core0)的监控程序响应该指令并传递到本系统内下一层处理单元,同时将指定的多核应用程序文件逐个搬运内存指定位置,分别在指定寄存器填入程序在内存中的入口地址,并等待下一层处理单元回复,与本处理单元回复一起返回上一层处理单元,最后以中断方式触发多核跳转,使每个核的PC指针跳转到指定位置,开始运行各自应用程序,实现由主核启动监控程序,其他核休眠的监控阶段切换到多核均启动各自应用程序的应用阶段。
3、 当上级控制设备发来自检指令时,当前处理单元芯片主核(Core0)的监控程序或处理程序响应该指令并传递给本系统内下一层处理单元,然后完成本级单元以下操作:
1)测试本级单元所用到的各类硬件接口,例如GPIO,SRIO,DDR,FLASH等硬件设备是否工作正常;
2)读取本级单元所用到的软件版本信息,上电次数和其他软件配置信息等;
3)在等待时间结束时,读取下级单元的自检结果,与本自检结果拼接返回上级处理单元。
最终在对外控制接口单元返回整个系统的自检结果,以便上级控制设备根据自检结果发送后续控制指令。
4、 自检无误后,开始正常的数据处理流程,在预处理单元ZYNQ-1中进行数据预处理,通过数据传输通道在数据处理单元ZYNQ-2和ZYNQ-3中分别对不同通路的数据进行处理,并将处理后的数据通过数据传输通道发送给多核DSP单元进行数据融合处理,得到最终处理结果,结果通过通信通道转发给中央处理单元ZYNQ-4,并最终返回给上级控制单元。
在一个实施例中,程序更新的步骤包括:
由待更新芯片对应的指定节点的中央处理单元解析外部上级控制设备发送的更新控制指令,得到待更新芯片的主核位置以及含有帧头信息和数据段的更新帧,并根据指定芯片主核位置将更新帧逐帧转发至待更新芯片的主核;由主核根据帧头信息解析出需要更新的程序所属的核心编号Core_n(对于多核DSP或多核ARM),待更新程序文件传输完成并校验无误后,将完整的更新程序文件写入核心编号Core_n位置对应的Flash地址,完成对待更新芯片的待更新核心的在线更新。等待后续运行时,该指定核心会将更新程序文件搬运到内存指定位置并运行。
在一个实施例中,任务通过神经网络执行;本方法还包括:
将神经网络的多个网络层对应的计算任务依序分配给各个节点,由每一节点执行至少一个网络层的计算任务,当前节点执行完成当前输入在对应网络层的计算任务并传输计算结果至下一节点后,由下一节点执行计算结果在对应网络层的计算任务,并由当前节点继续接收下一输入并执行计算任务。如图2所示,提供通过卷积神经网络执行多异构分布式嵌入式系统部署的任务的示意图。在此示意图中,卷积神经网络包含9个网络层,多异构分布式嵌入式系统包括3个节点,每一节点负责执行3个网络层的计算任务。可以看到当节点1执行完成网络层1、2、3的计算任务后,将计算结果输入到网络层4,此时节点2开始执行计算任务,以此类推。可以注意到,当节点2开始执行任务时,节点1会接着接收下一网络输入并执行计算任务,也就是说,当网络运行一小段时间后,每个节点都在执行计算任务,例如在网络层1、2、3中为层间串行,在网络层1、2、3和网络层4、5、6之间为层间并行,层间串行+层间并行实现了信息的流水线处理,有效提高了信息处理速度和处理效率,充分利用了系统的计算资源。如果节点数足够多,即计算资源充足时,可以用多个节点完成一个计算任务,例如,假设有N个节点,可以给每一节点分配一个网络层的计算任务,同时如果节点的计算任务负担相差不大时,宏观上计算速度可增大N倍。
当节点数发生改变或部署的任务发生改变时,将神经网络的多个网络层对应的计算任务进行重新分配,得到每一节点的更新子任务,根据对应的更新子任务进行待更新节点的程序更新。
节点数发生变化,可能是因为部署的任务的需求发生变化,需要增/减节点数。通过通信接口对指定节点中的指定芯片进行在线更新,为独立更新,不影响其他节点中的芯片的使用,也不影响同一指定节点中其他芯片的使用。
当部署任务发生变化时,例如,当前执行目标检测任务,下一任务为目标跟踪,但是现有节点不足以同时运行两项任务,此时可以对指定芯片进行在线升级,使得升级后的分布式系统的计算资源可以满足目标跟踪任务的需求。
在一个实施例中,神经网络为卷积神经网络;将神经网络的多个网络层对应的计算任务依序分配给各个节点,由每一节点执行至少一个网络层的计算任务,包括:
将卷积神经网络的多个网络层对应的计算任务依序分配给各个节点,在对应节点的FPGA上例化卷积神经网络的卷积层、池化层和/或激活层,由对应的ARM根据卷积神经网络的结构并配置网络参数;由ARM将卷积神经网络各个网络层的权重和当前网络层的输入写入FPGA的DDR中,并调用对应的卷积层、池化层/或激活层进行运算得到当前网络层的输出;将当前网络层对应节点的FPGA的DDR的输出中作为下一网络层的输入,由下一网络层对应节点的ARM控制下一网络层的运算。
可以选择例化使用较多数量的3*3大小的卷积核和较少数量的其他尺寸的卷积核,算法使用不同尺寸卷积核进行训练,在部署推理时使用重参数化方法,将其余尺寸卷积核重参数化等效为3*3大小后部署,充分利用FPGA上的硬件资源。由于非线性函数计算复杂而且计算延迟大,所以采用了查表的方式来实现激活函数运算层,以前一层计算的结果在提前写好的非线性函数映射表中寻址,完成非线性变换。所有层运算结束后,得到最后一层输出。由于FPGA中例化的IP是以层为单位计算的,当系统计算资源足够时,可以以流水线的方式将顺序网络分为n层,由n个节点共同完成一个算法,宏观上可加速算法n倍。
只要单次计算数据缓存速度不大于DDR的带宽,不会带来额外的开销,对计算实时性不会有太大影响。
如图3所示,提供一个异构嵌入式系统的示意图。在该示意图中,该节点包括一颗多核DSP芯片和4颗ZYNQ芯片,ZYNQ芯片的型号为ZYNQ-7000。
在一个实施例中,神经网络为LSTM网络;将神经网络的多个网络层对应的计算任务依序分配给各个节点,由每一节点执行至少一个网络层的计算任务,包括:
将LSTM网络的多个网络层对应的计算任务依序分配给各个节点,在对应节点的FPGA上例化LSTM网络的L-PU(LSTM处理单元);L-PU包括CT模块(状态计算模块)和多个PU模块(处理单元模块);每一PU模块包括矩阵缓冲模块、矩阵乘法模块、矩阵加法模块以及第一寻址模块;CT模块包括锁存模块,缓冲模块和第二寻址模块;第一寻址模块和第二寻址模块用于通过查表法完成对应网络层的非线性激活函数的运算。
一个L-PU中有PU0,PU1,PU2,PU3,因其功能一致,用PUx表示。使用PUx模块完成矩阵乘法、矩阵加法、非线性激活,CT模块将PUx模块计算的结果和缓存中的数据进行矩阵乘法、矩阵加法、非线性激活,然后得到计算结果,同时将结果写入缓存。
如图4所示,提供异构嵌入式系统部署LSTM网络的示意图。其中W为权重,B为偏置,Ht-1为上一时刻隐藏层输出, Ct-1为上一时刻隐藏层状态,Ht为当前时刻隐藏层输出, Ct为当前时刻隐藏层状态。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种异构实时信息处理系统设计方法,其特征在于,所述方法包括:
获取当前的异构分布式嵌入式系统以及当前部署的任务;所述异构分布式嵌入式系统包括多个节点;每一节点均为一个异构嵌入式系统;每一节点执行一个子任务,所有子任务组成当前部署的任务;
当任一节点执行的子任务发生变化时,确定对应节点中的待更新芯片,根据变化后的子任务确定新程序,对比所述新程序与待更新芯片的现有程序得到初始更新部分和对应的初始更新区域;所述初始更新部分为新程序相对现有程序的改动部分,所述初始更新区域为改动部分对应的位置;
根据所述初始更新区域与所述待更新芯片的Flash的覆盖度,以更新时间最短原则自适应调整更新粒度,以确定优化更新部分和对应的优化更新区域;所述更新粒度包括扇区、块和整片Flash;
其中,根据所述初始更新区域与所述待更新芯片的Flash的覆盖度,以更新时间最短原则自适应调整更新粒度,包括:
分别获取所述初始更新区域在所述待更新芯片的Flash的各个块中覆盖的扇区数,根据所述扇区数确定以扇区为更新粒度时的扇区更新总时间,将所述扇区更新总时间与对应的块更新时间比较,当所述块更新时间更短时,将对应的块中的更新粒度初步调整为块;
根据以块为更新粒度的块总数得到块更新总时间,比较所述块更新总时间和整片Flash更新时间,当所述整片Flash更新时间较短时,将更新粒度进一步调整为整片Flash;
由对应节点的上级控制设备通过所述对应节点的通信接口向所述待更新芯片发送新程序,并在所述优化更新区域写入对应的优化更新部分,完成程序更新,以满足对应的子任务需求。
2.根据权利要求1所述的方法,其特征在于,在确定对应节点中的待更新芯片之前,包括:
由所述异构分布式嵌入式系统通过自举过程获取各个节点的存储空间映射关系,由任务调度节点创建通用命名空间描述表,由各个节点基于所述通用命名空间描述表和所述存储空间映射关系得到全局存储映射描述表。
3.根据权利要求2所述的方法,其特征在于,在所述多个节点中包含一个任务调度节点;
由对应节点的上级控制设备通过所述对应节点的通信接口向所述待更新芯片发送新程序,并在所述优化更新区域写入对应的优化更新部分,完成程序更新,包括:
由所述任务调度节点调用数据访问API,根据所述全局存储映射描述表得到待更新芯片对应的指定节点的局部地址,将所述局部地址和物理地址查询指令封装后传入事务控制层;
由所述事务控制层根据协议将指定节点的ID、功能配置参数、数据以及计算结果返回地址组成事务层数据包发送给所述任务调度节点;
由所述任务调度节点根据所述事务层数据包通过事务控制层解析得到指定节点的物理地址,将更新指令根据对应的物理地址通过通信接口传输至指定节点的待更新芯片,并在所述优化更新区域写入对应的优化更新部分,完成程序更新,并将更新结果返回给所述任务调度节点;所述更新指令中包含所述优化更新部分和所述优化更新区域;
由所述任务调度节点通过所述事务控制层解析得到所述更新结果,通过所述全局存储映射描述表将所述更新结果存储到所述任务调度节点用于存放计算结果的存储空间中。
4.根据权利要求1所述的方法,其特征在于,每一所述节点包括一颗多核DSP芯片以及若干ZYNQ芯片;每颗ZYNQ芯片包括FPGA和ARM;
由一颗ZYNQ芯片作为中央处理单元,对应的ARM与外部上级控制设备通过通信接口进行通信,接收所述外部上级控制设备的控制指令并在对应节点内转发;
由一颗ZYNQ芯片作为数据预处理单元,接收并对外部下级数据进行预处理后转发到对应的数据处理单元;
由一颗多核DSP芯片和其余若干ZYNQ芯片作为数据处理单元,由作为数据处理单元的ZYNQ芯片接收数据预处理单元发送的原始的外部下级数据以及预处理后的外部下级数据并进行处理得到相应的处理结果,由所述多核DSP芯片对所述处理结果进行综合分析得到最终结果并经所述中央处理单元传输至所述外部上级控制设备。
5.根据权利要求4所述的方法,其特征在于,程序更新的步骤包括:
由待更新芯片对应的指定节点的所述中央处理单元解析所述外部上级控制设备发送的更新控制指令,得到待更新芯片的主核位置以及含有帧头信息和数据段的更新帧,并根据所述主核位置将所述更新帧逐帧转发至待更新芯片的主核;
由所述主核根据所述帧头信息解析出需要更新的程序所属的核心编号,待更新程序文件传输完成并校验无误后,将完整的更新程序文件写入所述核心编号对应的Flash地址,完成对待更新芯片的待更新核心的在线更新。
6.根据权利要求4所述的方法,其特征在于,所述任务通过神经网络执行;
所述方法还包括:
将所述神经网络的多个网络层对应的计算任务依序分配给各个节点,由每一节点执行至少一个网络层的计算任务,当前节点执行完成当前输入在对应网络层的计算任务并传输计算结果至下一节点后,由所述下一节点执行所述计算结果在对应网络层的计算任务,并由所述当前节点继续接收下一输入并执行计算任务;
当节点数发生改变或部署的任务发生改变时,将所述神经网络的多个网络层对应的计算任务进行重新分配,得到每一节点的更新子任务,根据对应的更新子任务进行待更新节点的程序更新。
7.根据权利要求6所述的方法,其特征在于,所述神经网络为卷积神经网络;
将所述神经网络的多个网络层对应的计算任务依序分配给各个节点,由每一节点执行至少一个网络层的计算任务,包括:
将所述卷积神经网络的多个网络层对应的计算任务依序分配给各个节点,在对应节点的FPGA上例化所述卷积神经网络的卷积层、池化层和/或激活层,由对应的ARM根据所述卷积神经网络的结构并配置网络参数;
由所述ARM将所述卷积神经网络各个网络层的权重和当前网络层的输入写入所述FPGA的DDR中,并调用对应的卷积层、池化层和/或激活层进行运算得到当前网络层的输出;
将当前网络层对应节点的FPGA的DDR中的输出作为下一网络层的输入,由下一网络层对应节点的ARM控制所述下一网络层的运算。
8.根据权利要求6所述的方法,其特征在于,所述神经网络为LSTM网络;
将所述神经网络的多个网络层对应的计算任务依序分配给各个节点,由每一节点执行至少一个网络层的计算任务,包括:
将所述LSTM网络的多个网络层对应的计算任务依序分配给各个节点,在对应节点的FPGA上例化所述LSTM网络的LSTM处理单元;所述LSTM处理单元包括状态计算模块和多个处理单元模块;每一所述处理单元模块包括矩阵缓冲模块、矩阵乘法模块、矩阵加法模块以及第一寻址模块;所述状态计算模块包括锁存模块,缓冲模块和第二寻址模块;所述第一寻址模块和所述第二寻址模块用于通过查表法完成对应网络层的非线性激活函数的运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211361438.3A CN115469912B (zh) | 2022-11-02 | 2022-11-02 | 异构实时信息处理系统设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211361438.3A CN115469912B (zh) | 2022-11-02 | 2022-11-02 | 异构实时信息处理系统设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115469912A CN115469912A (zh) | 2022-12-13 |
CN115469912B true CN115469912B (zh) | 2023-01-24 |
Family
ID=84337198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211361438.3A Active CN115469912B (zh) | 2022-11-02 | 2022-11-02 | 异构实时信息处理系统设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115469912B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904850B (zh) * | 2023-01-09 | 2023-05-12 | 深流微智能科技(深圳)有限公司 | 多核处理器的上电检测方法、可读存储介质及gpu |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499086A (zh) * | 2008-01-29 | 2009-08-05 | 鸿富锦精密工业(深圳)有限公司 | 异构模块数据共享系统及方法 |
CN101951334A (zh) * | 2010-09-21 | 2011-01-19 | 电子科技大学 | 一种多模异构网络融合方法 |
CN104468235A (zh) * | 2014-12-25 | 2015-03-25 | 浙江中控研究院有限公司 | 一种基于iap的可配置全网络远程节点固件升级系统及装置 |
WO2015062181A1 (zh) * | 2013-11-04 | 2015-05-07 | 广东电子工业研究院有限公司 | 用于实现多源异构数据资源自动同步的方法 |
CN104699499A (zh) * | 2014-12-31 | 2015-06-10 | 青岛快乐视界数字传媒有限公司 | 一种异构终端软件升级方法 |
US9940125B1 (en) * | 2016-05-02 | 2018-04-10 | EMC IP Holding Company LLC | Generating upgrade recommendations for modifying heterogeneous elements of information technology infrastructure |
WO2019182509A1 (en) * | 2018-03-19 | 2019-09-26 | Huawei International Pte. Ltd. | Method and apparatus for updating devices in a remote network |
CN112083951A (zh) * | 2020-09-24 | 2020-12-15 | 中国人民解放军国防科技大学 | 一种支持多操作系统平台的软件包统一管理方法及系统 |
CN113806282A (zh) * | 2021-08-31 | 2021-12-17 | 歌尔股份有限公司 | 异构控制系统及异构控制系统的加载方法 |
CN114489743A (zh) * | 2022-01-07 | 2022-05-13 | 中国人民解放军国防科技大学 | 一种片上可编程系统的程序烧写及加载运行方法 |
WO2022227409A1 (zh) * | 2021-04-29 | 2022-11-03 | 苏州大学 | 一种嵌入式终端远程软件更新方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9235404B2 (en) * | 2012-06-27 | 2016-01-12 | Microsoft Technology Licensing, Llc | Firmware update system |
US10387454B2 (en) * | 2016-08-02 | 2019-08-20 | International Business Machines Corporation | Method for creating efficient application on heterogeneous big data processing platform |
-
2022
- 2022-11-02 CN CN202211361438.3A patent/CN115469912B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499086A (zh) * | 2008-01-29 | 2009-08-05 | 鸿富锦精密工业(深圳)有限公司 | 异构模块数据共享系统及方法 |
CN101951334A (zh) * | 2010-09-21 | 2011-01-19 | 电子科技大学 | 一种多模异构网络融合方法 |
WO2015062181A1 (zh) * | 2013-11-04 | 2015-05-07 | 广东电子工业研究院有限公司 | 用于实现多源异构数据资源自动同步的方法 |
CN104468235A (zh) * | 2014-12-25 | 2015-03-25 | 浙江中控研究院有限公司 | 一种基于iap的可配置全网络远程节点固件升级系统及装置 |
CN104699499A (zh) * | 2014-12-31 | 2015-06-10 | 青岛快乐视界数字传媒有限公司 | 一种异构终端软件升级方法 |
US9940125B1 (en) * | 2016-05-02 | 2018-04-10 | EMC IP Holding Company LLC | Generating upgrade recommendations for modifying heterogeneous elements of information technology infrastructure |
WO2019182509A1 (en) * | 2018-03-19 | 2019-09-26 | Huawei International Pte. Ltd. | Method and apparatus for updating devices in a remote network |
CN112083951A (zh) * | 2020-09-24 | 2020-12-15 | 中国人民解放军国防科技大学 | 一种支持多操作系统平台的软件包统一管理方法及系统 |
WO2022227409A1 (zh) * | 2021-04-29 | 2022-11-03 | 苏州大学 | 一种嵌入式终端远程软件更新方法 |
CN113806282A (zh) * | 2021-08-31 | 2021-12-17 | 歌尔股份有限公司 | 异构控制系统及异构控制系统的加载方法 |
CN114489743A (zh) * | 2022-01-07 | 2022-05-13 | 中国人民解放军国防科技大学 | 一种片上可编程系统的程序烧写及加载运行方法 |
Non-Patent Citations (2)
Title |
---|
Design and chip implementation of a heterogeneous multi-core DSP;Shuming Chen等;《https://ieeexplore.ieee.org/abstract/document/5722312》;20110303;全文 * |
面向边缘智能计算的异构并行计算平台综述;万朵;《计算机工程与应用》;20221009;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115469912A (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7958184B2 (en) | Network virtualization in a multi-node system with multiple networks | |
US8595736B2 (en) | Parsing an application to find serial and parallel data segments to minimize mitigation overhead between serial and parallel compute nodes | |
US20190286974A1 (en) | Processing circuit and neural network computation method thereof | |
US20190303018A1 (en) | Optimizing serverless computing using a distributed computing framework | |
WO2007103613A2 (en) | Streaming kernel selection for reconfigurable processor | |
US9779057B2 (en) | Autonomous memory architecture | |
US20200042216A1 (en) | Storage-based graph for enabling computation graph optimization | |
CN115469912B (zh) | 异构实时信息处理系统设计方法 | |
US11556756B2 (en) | Computation graph mapping in heterogeneous computer system | |
WO2021108356A1 (en) | Tile subsystem and method for automated data flow and data processing within an integrated circuit architecture | |
US20210073625A1 (en) | Partitioning control dependency edge in computation graph | |
US20230333913A1 (en) | Methods and apparatus to configure heterogenous components in an accelerator | |
US6675289B1 (en) | System and method for executing hybridized code on a dynamically configurable hardware environment | |
JP2022530873A (ja) | 機械学習アクセラレータに対する機械学習モデル更新 | |
US20230237320A1 (en) | Neural network processing method and device therefor | |
CN114330686A (zh) | 一种可配置的卷积处理装置与卷积计算方法 | |
US20190272460A1 (en) | Configurable neural network processor for machine learning workloads | |
CN108388943B (zh) | 一种适用于神经网络的池化装置及方法 | |
CN112199121A (zh) | Dsp按需扩容加载程序方法 | |
US20230162032A1 (en) | Estimating Throughput for Placement Graphs for a Reconfigurable Dataflow Computing System | |
US20230229899A1 (en) | Neural network processing method and device therefor | |
WO2021212045A1 (en) | Synchronization of processing elements and software managed memory hierarchy in a machine learning accelerator | |
CN114064225A (zh) | 一种自适应调度方法、装置、计算机存储介质及系统 | |
WO2020051918A1 (zh) | 神经元电路、芯片、系统及其方法、存储介质 | |
CN118301059B (zh) | 一种实体网络测试床的测试拓扑与物理拓扑映射方法 |
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 |