引言
人工神经网络在很多领域得到了很好的应用,尤其是具有分布存储、并行处理、自学习、自组织以及非线性映射等特点的网络应用更加广泛。嵌入式便携设备也越来越多地得到应用,多数是基于arm内核及现场可编程门阵列fpga的嵌入式应用。某人工神经网络的fpga处理器能够对数据进行运算处理,为了实现集数据通信、操作控制和数据处理于一体的便携式神经网络处理器,需要设计一种基于嵌入式arm内核及现场可编程门阵列fpga的主从结构处理系统满足要求。
1人工神经网络处理器
1.1人工神经网络模型
人工神经网络是基于模仿大脑功能而建立的一种信息处理系统。它实际上是由大量的、很简单的处理单元(或称神经元),通过广泛的互相连接而形成的复杂网络系统。最早的神经元模型是mp模型,由输入x、连接权值w和阈值θ、激活函数f和输出o组成,如图1所示。
图1人工神经元的mp模型
神经元j的输出为:
式中:netj是神经元j的净输入,xi是神经元j的输入,wij是神经元i到神经元j的权值,θj是神经元j的阈值,f()是神经元净输入和输出之间的变换函数,称为激活函数。[1]
后来的各种网络模型基本都由这几个因素构成,例如图2的三层bp神经网络模型。
图2三层bp神经网络模型
三层bp网络的标准学习算法如下[2],当网络输出与期望输出不等时,存在输出误差e,定义如下:
容易看出,各层权值调整公式均由3个因素决定,即学习率η、本层输出的误差信号δ以及本层出入信号y(或x)。其中,输出层误差信号与网络的期望输出与实际输出之差有关,直接反映了输出误差,而各隐层的误差信号与前面各层的误差信号都有关,是从输出层开始逐层反传过来的。
神经网络的训练学习的过程就是通过不断地调整各个节点的权值,使输出误差达到最小,最终获得稳定可靠的权值,实现网络的预定功能。
1.2人工神经网络的fpga实现
算法公式实际隐含着各种运算过程,乘累加计算、激活函数及其导数的计算和逻辑运算是3种必不可少的运算,因此fpga的实现主要是各种运算器的设计和连接。处理器要处理各种类型的数据,样本数据x(训练样本、实际样本),网络参数(学习速率η、每层神经元个数n等)和权值w是必不可少的。网络参数和初始权值用来对网络初始化,训练样本用来训练网络学习,最后在网络应用阶段对实际样本进行处理。
图3神经网络的运算模块和数据存储结构图
图3展示的是fpga神经网络处理器的主体部分:存储模块和运算模块。根据网络的结构特点,连接权值处于各个神经元节点的连接处,与各自的权值运算结构一一对应,为分布式,所以分布式存储器wm中存储权值数据;样本数据统一从网络的输入层进入网络,故dm中存储样本数据;mae是处理器的运算部分。
2通信硬件设计
2.1系统整体架构
系统整体结构框图如图4所示,分为arm端和fpga端两个部分。arm端有两个功能:一是从内存中读取已有数据,通过dma方式下载到fpga端,按照数据类型将数据下载到不同的存储设备和存储空间;二是对fpga进行控制,主要是各种中断操作。fpga端的功能是接收arm传送的数据,存储数据,并在微程序控制器的控制下进行运算处理,最后把结果上传给arm.
图4系统整体结构框图
arm端以s3c44b0x芯片为核心,外部扩展各类设备构成。s3c44b0x是三星公司的16/32位微处理器,片内集成了arm7tdmi核,并在此基础上集成了丰富的外围功能模块,为嵌入式设备提供一个低成本高性能的方案。
s3c44b0x拥有4通道的dma控制器,两个zdma,连接于ssb(三星系统总线);另外两个bdma,连接在ssb和spb(三星外围总线)之间的接口层。其中zdma可从存储器到存储器、存储器到i/o设备和i/o设备到存储器传送数据。dma操作由s/w或来自外部请求引脚(nxdreq0 /1)的请求来启动。[3]
在dma操作中,通过配置dma特殊功能寄存器来实现对dma的控制,如图5所示。
图5 zdma控制器框图
fpga端的组成为fpga芯片和扩展存储器。按处理数据类型的不同设计不同的存储结构,具体如下所列。神经网络的结构参数存放于控制寄存器组,初始权值、稳定权值存放于分布式存储器,其他参数(学习速率、学习速率调整因子等)存放于专用寄存器组a中,处理结果存放于专用寄存器组b中,样本数据存放于扩展存储器sd卡中。
以上所述的存储体,除扩展存储器外其他结构都在fpga芯片内部设计完成。采用这种设计是基于fpga片上存储资源的使用情况:①fpga的配置文件占用;②分布式存储器占用;③各类寄存器组占用。当样本数据数量较大时会占用比较大的空间,fpga芯片将不能满足,因此不能把样本数据存储在片上,而是存储于扩展存储器。
2.2硬件连接
从上面的介绍容易发现,arm芯片的通信对象是基于sram工艺的fpga芯片上的存储体。因此,fpga芯片作为存储设备时,arm芯片可直接与其相连。arm与fpga硬件连接示意图如图6所示。
图6 arm与fpga硬件连接示意图
arm与fpga的片上存储体的地址总线连接设置为12位,足够存储和寻址需求。
数据总线的宽度为28位。神经网络处理器的数据精度为16位[4],fpga样本数据寄存器还有12位外部扩展存储器的地址数据,因此整个数据总线的宽度为二者之和。除样本数据寄存器之外的片上存储体,数据线占用28位数据总线中的低16位。
控制总线包括arm端的片选线ngcs6和读/写控制线。对arm相应的寄存器进行配置可激活bank6(fpga片上存储体)和读/写数据。
根据数据存储位置的不同,硬件连接可分成两方面。如图7所示。
图7 fpga端部分硬件连接示意图
第一,存储位置为fpga端的外部扩展存储器。①arm与fpga通过12位地址总线、28位数据总线及控制总线直接相连,数据写入样本数据寄存器。②样本数据寄存器的28位数据按照12位地址数据、16位样本数据,通过fpga与外部扩展存储器之间的12位地址总线、16位数据总线,在存储控制模块的控制下,把样本数据写入扩展存储器。因此,把样本数据寄存器分为两部分,低16位为样本数据,高12位为该样本数据在外部扩展存储器的存储地址,如下所示。
第二,存储位置为fpga的片上存储体。arm与fpga通过12位地址总线、28位数据总线中的低16位、控制总线直接相连,控制寄存器组、专用寄存器组、分布式存储器连接在这些总线上面。
片上集成存储系统采用统一编址的方式,其优势在于可以通过arm芯片的dma方式进行数据传输,既可以提高传输速率又能够释放cpu.外部扩展存储器因为只受fpga控制而采用独立编址,但地址域的设计接续片上集成存储系统的地址,如此方便操作。
3 zdma控制设计
arm端与fpga端的数据通信如图8所示,分为3个阶段:
①网络初始化阶段的数据通信:配置网络初始化数据。a)需对网络训练执行阶段②,b)否则执行阶段③。
②网络训练阶段的通信:下载训练样本数据,训练完成上传稳定的权值。
③实际应用阶段的通信:下载实际样本数据,上传处理结果。
每一个阶段都是在zdma的方式下进行。每一个阶段完成后都会进入中断,提示本阶段完成并进行下一步操作。
图8 数据通信阶段流程图
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初始/当前目的计数寄存器(⑥zdicnt、⑦zdccnt):初始值为0,当前值随着传输数据的个数逐一递增,直至达到所有数据的数量。样本数据和非样本数据的传输分两个阶段进行,各自独立。
从这个过程中可以看出,配置zdma时需考虑fpga端存储结构体多样性的问题。
3.2上传数据时zdma的配置
神经网络处理器的稳定权值和处理结果存储在fpga上统一编址的专用寄存器组b中,不存在存储结构体多样性的问题,所以上传数据时zdma的配置相对简单:
初始源地址即专用寄存器组b的起始地址,每传送一次数据专用寄存器组的地址指针+1并作为当前源地址。
初始目的地址为要存放数据的内存块的起始地址,每传送一次数据内存块地址指针+1并作为当前目的地址。
计数寄存器的初始值为0,每传送一次数据其值+1,达到设定的目标值时数据上传即完成。
结语
本文首先介绍了人工神经网络的模型和算法以及fpga的实现,并通过对网络结构的分析设计了fpga端的数据存储系统。然后分析了arm端和fpga端各自的功能,在此基础上把两者结合在一起,设计了一种利用arm的zdma方式相互通信的方案。
USB设备分类:HOST,OTG,DEVICE
国内最大规模的5G智能电网已经建成了
英伟达四款CMP矿卡规格曝光
三星S8 Plus配置和真机图曝光 , 售价近7000元
DxOMark将在本周陆续发布新的iPhone评测
用ARM和FPGA搭建神经网络处理器通信方案
智能搬运机器人系列之利用X3派实现目标物块的识别与抓取
特斯拉不排除与一家传统车企友好合并
Galaxy Note9最新消息 谍照图大曝光
在高速应用中使用JFET输入放大器有哪些优势
苹果发布会汇总 除了加入双卡双待功能之外还有哪些看点
AI或将颠覆全球可穿戴设备市场
荣耀9i高清图赏
水文监测设备的特点以及应用领域的介绍
中移动TD-LTE基站采购招标 三星弃权
索尼计划在明年发布三款旗舰机型最高将支持50倍数码变焦功能
RFTOP推出两款高性能3.5mm隔直器
英特尔或进军芯片代工,首要目标拿下苹果A系列
AGV小车自动乘坐电梯是如何做到的?
业内首款融合式仿生事件视觉相机,锐思智芯ALPIX-Pilatus正式发布