
•
80
•
ELECTRONICS WORLD
・
探索与观察
2.2 FPGA加速模块的设计
1)并行设计
FPGA的主要计算优势体现在其可以支持电路级别的并行计算。对于3D卷积来说,
每个卷积核都可以同时和输入特征进行计算,每个卷积核的所有通道又可以单独和输入
特征进行计算,每个输入特征也可以单独参与计算。同时,以卷积核尺寸为3为例,需
要9个元素同时做乘法,再做加法,这个其中9次乘加操作也可以并行。
2)数据复用
为了支持计算的并行性,对于卷积计算的
权值部分,FPGA加速模块的要求是一次性将某
层的全部权值加载到FPGA的片上缓存。对于输
入特征,本论文采用的是Line buffer的形式,一
次性缓存四行输入特征矩阵的参数,当达到四
行之后,重新写入整个数组。
3)FPGA实现效果
最终实现效果如图2所示,输入特征和权
值通过AXI总线,缓存到FPGA片上,对于卷积
计算的乘累加操作,同时综合处N_PE个计算单
元,这些单元同时进行计算,将结果写入到Oc-
ache中,然后进行累加,得到该输出位置(x,y)上
的输出结果。
最终,使用Yolo v2算法检测单张图片在
FPGA上的运行时间大概为270ms,比英伟达
TX2的计算时间慢10ms,但是功耗比TX低,
FPGA上运行消耗的功耗只有6.13W,而TX2的
功耗最低还需要7.5W。因此本论文的实现在工
程项目中具有实际应用意义。
Figure 2 FPGA加速模块计算原理图
现代网络信息技术的发展革新,使人们的
生活和工作方式都实现大幅度的优化提升,对
社会各个领域都产生了深刻的影响。在此背景
下人们越来越重视计算机的网络技术的异常问
题。JAVA作为计算机可移植、跨平台的高级语
言,在实际编程过程中经常会遇到各种异常情
况。因此,本文从实践角度出发,对JAVA编程
中的异常问题进行了分析探讨,并在总结异常
处理语法的基础上,提出了科学有效的异常处
理方法和技巧。JAVA异常处理方法和技巧的掌
握,对JAVA编程过程意义重大,作为计算机面
向的高级语言,JAVA的应用非常广泛,由于具
备跨平台和可移植等诸多优势,JAVA已经成为
信息时代的最重要的编程语言之一。因此,在
JAVA编程实践过程中,程序员要全面掌握异常
处理的语法和JAVA代码的健壮性,在遇到异常
事件的情况下,可以及时抛出异常捕捉异常,
进而确保代码的可读性和执行效率。
一、JAVA异常处理的概念
JAVA异常处理是在实际编程过程中,遇
到的网络连接异常、文件丢失等一系列异常情
况,导致程序员的系统程序受到破坏,而在异
常情况下,Throwable是对JAVA异常的描述。
程序员在异常处理过程中,可以调用一些函
数,查看是否为常规值进行判断,如果函数运
行后不是常规值,就表明了异常情况的出现。
JAVA
编程中异常处理的方法和技巧研究
济宁职业技术学院电子信息工程系
马玉凤
姜
晗
二、JAVA编程中异常处理机制
Exception类是JAVA语言的标准,它是通过程序运
行而产生,JAVA异常处理机制具有方便快捷的特点,
能够为对象提供更加有针对性的服务。
(一)抛出异常
JAVA系统实际运行时,如果出现程序中的方法被
调用,此时往往会出现一些错误,导致这些错误产生
的原因往往是多方面的。在这样一种情况下,JAVA的
异常处理机制往往会因为错误的发生而间接的出现异
常对象,在此时实现抛出异常则是充分发挥JAVA虚拟
机的作用,确保系统能够正常有序的运行。
(二)异常捕获
通过一场处理机实现异常抛出之后,程序员需要查
找异常匹配关键语句,这样才可以帮助系统实现对异常
的捕获。JAVA语言通过try-catch-finally等关键语句可
以做到捕获异常。实际应用过程中try关键语句是一种常
见的、正常的程序代码,可以存放异常代码;catch关键
语句也能够捕获异常;finally能够处理异常;throw能
够抛出异常。在程序代码中异常的种类是多种多样的,
正因如此,程序员可以实现用try子句嵌套catch子句。
(三)异常处理
要想实现处理异常的目的就必须将与异常匹配的
关键语句找出来,如果程序员不能够找到异常,就必
须马上终止运行程序。当然,如果程序员再找到异常
后,没有实现对异常的有效处理,也可以做出抛出处
理的决定。在做出抛出异常决定后还可以将异常转交