您的位置 首页 新能源

ARM与神经网络处理器的通讯方案设计

摘要:基于ARM芯片和FPGA的特点,设计了一种ARM与FPGA人工神经网络处理器之间的通信方案。该方案采用ARM的ZDMA控制器对数据传输进行控制,完成ARM与神经网络处理器的控制寄存器组、分布式存

摘要:依据ARM芯片和FPGA的特色,规划了一种ARMFPGA人工神经网络处理器之间的通讯计划。该计划选用ARMZDMA操控器对数据传输进行操控,完结ARM与神经网络处理器的操控寄存器组、散布式存储器、样本存储器等存储体的数据交换。

导言

人工神经网络在许多范畴得到了很好的运用,尤其是具有散布存储、并行处理、自学习、自组织以及非线性映射等特色的网络运用愈加广泛。嵌入式便携设备也越来越多地得到运用,多数是依据ARM内核及现场可编程门阵列FPGA嵌入式运用。某人工神经网络的FPGA处理器能够对数据进行运算处理,为了完结集数据通讯、操作操控和数据处理于一体的便携式神经网络处理器,需求规划一种依据嵌入式ARM内核及现场可编程门阵列FPGA的主从结构处理体系满意要求。

1 人工神经网络处理器

1.1 人工神经网络模型

人工神经网络是依据仿照大脑功用而树立的一种信息处理体系。它实践上是由很多的、很简略的处理单元(或称神经元),经过广泛的彼此衔接而构成的杂乱网络体系。最早的神经元模型是MP模型,由输入X、衔接权值W和阈值θ、激活函数f和输出O组成,如图1所示。

ARM与神经网络处理器的通讯计划规划

神经元j的输出为:

ARM与神经网络处理器的通讯计划规划

式中:netj是神经元j的净输入,xi是神经元j的输入,Wij是神经元i到神经元j的权值,θj是神经元j的阈值,f()是神经元净输入和输出之间的改换函数,称为激活函数。

后来的各种网络模型根本都由这几个要素构成,例如图2的三层BP神经网络模型。

ARM与神经网络处理器的通讯计划规划

三层BP网络的规范学习算法如下,当网络输出与希望输出不等时,存在输出差错E,界说如下:

ARM与神经网络处理器的通讯计划规划

简略看出,各层权值调整公式均由3个要素决议,即学习率η、本层输出的差错信号δ以及本层收支信号Y(或X)。其间,输出层差错信号与网络的希望输出与实践输出之差有关,直接反映了输出差错,而各隐层的差错信号与前面各层的差错信号都有关,是从输出层开端逐层反传过来的。

神经网络的练习学习的进程便是经过不断地调整各个节点的权值,使输出差错到达最小,终究取得安稳牢靠的权值,完结网络的预订功用。

1.2 人工神经网络的FPGA完结

算法公式实践隐含着各种运算进程,乘累加核算、激活函数及其导数的核算和逻辑运算是3种必不可少的运算,因而FPGA的完结首要是各种运算器的规划和衔接。处理器要处理各种类型的数据,样本数据X(练习样本、实践样本),网络参数(学习速率η、每层神经元个数n等)和权值W是必不可少的。网络参数和初始权值用来对网络初始化,练习样本用来练习网络学习,最终在网络运用阶段对实践样本进行处理。

ARM与神经网络处理器的通讯计划规划

图3展现的是FPGA神经网络处理器的主体部分:存储模块和运算模块。依据网络的结构特色,衔接权值处于各个神经元节点的衔接处,与各自的权值运算结构一一对应,为散布式,所以散布式存储器WM中存储权值数据;样本数据一致从网络的输入层进入网络,故DM中存储样本数据;MAE是处理器的运算部分。

2 通讯硬件规划

2.1 体系全体架构

体系全体结构框图如图4所示,分为ARM端和FPGA端两个部分。ARM端有两个功用:一是从内存中读取已有数据,经过DMA方法下载到FPGA端,依照数据类型将数据下载到不同的存储设备和存储空间;二是对FPGA进行操控,首要是各种中止操作。FPGA端的功用是接纳ARM传送的数据,存储数据,并在微程序操控器的操控下进行运算处理,最终把成果上传给ARM。

ARM与神经网络处理器的通讯计划规划

ARM端以S3C44B0X芯片为中心,外部扩展各类设备构成。S3C44B0X是三星公司的16/32位微处理器,片内集成了ARM7TDMI核,并在此根底上集成了丰厚的外围功用模块,为嵌入式设备供给一个低成本高性能的计划。

S3C4480X具有4通道的DMA操控器,两个ZDMA,衔接于SSB(三星体系总线);别的两个BDMA,衔接在SSB和SPB(三星外围总线)之间的接口层。其间ZDMA可从存储器到存储器、存储器到I/O设备和I/O设备到存储器传送数据。DMA操作由S/W或来自外部恳求引脚(nXDREQ0/1)的恳求来发动。

在DMA操作中,经过装备DMA特别功用寄存器来完结对DMA的操控,如图5所示。

ARM与神经网络处理器的通讯计划规划

FPGA端的组成为FPGA芯片和扩展存储器。按处理数据类型的不同规划不同的存储结构,详细如下所列。神经网络的结构参数寄存于操控寄存器组,初始权值、安稳权值寄存于散布式存储器,其他参数(学习速率、学习速率调整因子等)寄存于专用寄存器组A中,处理成果寄存于专用寄存器组B中,样本数据寄存于扩展存储器SD卡中。

ARM与神经网络处理器的通讯计划规划

以上所述的存储体,除扩展存储器外其他结构都在FPGA芯片内部规划完结。选用这种规划是依据FPGA片上存储资源的运用情况:①FPGA的装备文件占用;②散布式存储器占用;③各类寄存器组占用。当样本数据数量较大时会占用比较大的空间,FPGA芯片将不能满意,因而不能把样本数据存储在片上,而是存储于扩展存储器。

2.2 硬件衔接

从上面的介绍简略发现,ARM芯片的通讯对象是依据SRAM工艺的FPGA芯片上的存储体。因而,FPGA芯片作为存储设备时,ARM芯片可直接与其相连。ARM与FPGA硬件衔接示意图如图6所示。

ARM与神经网络处理器的通讯计划规划

ARM与FPGA的片上存储体的地址总线衔接设置为12位,满足存储和寻址需求。

数据总线的宽度为28位。神经网络处理器的数据精度为16位,FPGA样本数据寄存器还有12位外部扩展存储器的地址数据,因而整个数据总线的宽度为二者之和。除样本数据寄存器之外的片上存储体,数据线占用28位数据总线中的低16位。

操控总线包含ARM端的片选线nGCS6和读/写操控线。对ARM相应的寄存器进行装备可激活BANK6(FPGA片上存储体)和读/写数据。

依据数据存储方位的不同,硬件衔接可分红两方面。如图7所示。

ARM与神经网络处理器的通讯计划规划

榜首,存储方位为FPGA端的外部扩展存储器。①ARM与FPGA经过12位地址总线、28位数据总线及操控总线直接相连,数据写入样本数据寄存器。②样本数据寄存器的28位数据依照12位地址数据、16位样本数据,经过FPGA与外部扩展存储器之间的12位地址总线、16位数据总线,在存储操控模块的操控下,把样本数据写入扩展存储器。因而,把样本数据寄存器分为两部分,低16位为样本数据,高12位为该样本数据在外部扩展存储器的存储地址,如下所示。

ARM与神经网络处理器的通讯计划规划

第二,存储方位为FPGA的片上存储体。ARM与FPGA经过12位地址总线、28位数据总线中的低16位、操控总线直接相连,操控寄存器组、专用寄存器组、散布式存储器衔接在这些总线上面。

片上集成存储体系选用一致编址的方法,其优势在于能够经过ARM芯片的DMA方法进行数据传输,既能够进步传输速率又能够开释CPU。外部扩展存储器由于只受FPGA操控而选用独立编址,但地址域的规划接续片上集成存储体系的地址,如此便利操作。

3 ZDMA操控规划

ARM端与FPGA端的数据通讯如图8所示,分为3个阶段:

①网络初始化阶段的数据通讯:装备网络初始化数据。a)需对网络练习履行阶段②,b)不然履行阶段③。

②网络练习阶段的通讯:下载练习样本数据,练习完结上传安稳的权值。

③实践运用阶段的通讯:下载实践样本数据,上传处理成果。

ARM与神经网络处理器的通讯计划规划

每一个阶段都是在ZDMA的方法下进行。每一个阶段完结后都会进入中止,提示本阶段完结并进行下一步操作。

3.1 下载数据时ZDMA的装备

依照是否为样本数据,通讯可分为两个阶段:一是面向FPGA片上集成存储体系的非样本数据通讯,二是面向FPGA片外扩展存储器的样本数据通讯。

本规划运用ZDMA0、ZDMA1两个通道中的一个。与ZDMA有关的特别功用寄存器有:

ZDMA操控寄存器(①ZDCONn):首要用于对DMA通道进行操控,答应外部DMA恳求(nXDREQ)。

ZDMA0/1初始源/意图地址和计数寄存器、ZDMA0/1当时源/意图地址和计数寄存器。

ZDMAn初始/当时源地址寄存器(②ZDISRC、③ZDCSRC):初始源地址为数据在ARM芯片内存的寄存地址;当时源地址为行将传输的数据的内存地址,值为初始源地址+计数值。

ZDMAn初始/当时意图地址寄存器(④ZDIDES、⑤ZDCDES):分为两个阶段:榜首阶段传输非样本数据时初始意图地址为BANK6的开始地址;当时意图地址是改变的,为初始意图地址+计数值。第二阶段传输样本数据时初始意图地址也是当时意图地址,为样本数据寄存器的地址。

ZDMAn初始/当时意图计数寄存器(⑥ZD%&&&&&%NT、⑦ZDCCNT):初始值为0,当时值跟着传输数据的个数逐个递加,直至到达一切数据的数量。样本数据和非样本数据的传输分两个阶段进行,各自独立。

从这个进程中能够看出,装备ZDMA时需考虑FPGA端存储结构体多样性的问题。

3.2 上传数据时ZDMA的装备

神经网络处理器的安稳权值和处理成果存储在FPGA上一致编址的专用寄存器组B中,不存在存储结构体多样性的问题,所以上传数据时ZDMA的装备相对简略:

初始源地址即专用寄存器组B的开始地址,每传送一次数据专用寄存器组的地址指针+1并作为当时源地址。

初始意图地址为要寄存数据的内存块的开始地址,每传送一次数据内存块地址指针+1并作为当时意图地址。

计数寄存器的初始值为0,每传送一次数据其值+1,到达设定的目标值时数据上传即完结。

结语

本文首要介绍了人工神经网络的模型和算法以及FPGA的完结,并经过对网络结构的剖析规划了FPGA端的数据存储体系。然后剖析了ARM端和FPGA端各自的功用,在此根底上把两者结合在一起,规划了一种使用ARM的ZDMA方法彼此通讯的计划。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/295993.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部