可重构机器人范文

2024-07-28

可重构机器人范文(精选8篇)

可重构机器人 第1篇

面对大量克隆代码在软件中存在的复杂性, 仅仅检测出这些克隆代码对降低软件维护成本并不能起到关键性作用。所以, 基于克隆检测, 研究者们又开展了克隆重构、克隆管理等方面的研究。

克隆管理[3]就是采用多种技术有效利用有益克隆而尽量避免有害克隆, 或者充分利用克隆代码的积极作用而避免它的负面效益。为了提高克隆管理效率, 已有研究将机器学习方法与克隆管理技术相结合使用, 但是并没有做验证性比较。

1 相关技术描述

1.1 克隆检测

克隆检测是指查找源代码中的克隆代码, 并以克隆对 (Clone Pair) 或克隆群 (Clone Group) 的形式反馈[4]。克隆对是指相互之间存在克隆关系的代码段;克隆群是一些克隆代码段的集合, 其中任意两个代码段都是克隆对。当前相继提出许多检测方法与技术[5], 主要包括:基于Token串、基于AST (Abstract Syntax Trees) 、基于PDG (Program Dependence Graphs) 、基于低级语言等。

1.2 克隆演化

克隆演化体现了软件的多个版本中克隆代码的变化情况。在分析克隆及克隆带来的影响时, 不仅要研究软件的单一版本中的克隆, 还要研究克隆代码以时间为序的演变关系[6]。

Kim[7]最早开展了相关研究, 将演化模式分为无变化、增加、 去除、 一致变化、 不一致变化和位移六种模式;Bakota[8]介绍了四种不同的单个克隆片段演化方式:消失克隆实例 (VCI) 、发生克隆实例 (OCI) 、移动克隆实例 (MCI) 以及迁移克隆实例 (MGCI) 。

1.3 克隆重构建议

随着时间的推移, 研究者已普遍认为应有选择地重构克隆代码。Manishankar Mondal等人[9]在克隆演化过程中分析了克隆代码发生改变的情况, 设计了一种基于挖掘辅助规则的克隆代码一致改变模式SPCP, 他们认为经历过SPCP的克隆代码应被重构。与该研究相似的有克隆代码后期繁殖相关研究[10], 克隆代码后期繁殖 (Late Propagation, LP) 是以克隆对为粒度, 在克隆演化过程中分析克隆对不一致改变的情况。研究者们认为经历了后期繁殖的克隆对很有可能将bugs引入软件系统, 应对其进行重构操作。本团队张丽萍[11]等人对克隆代码不一致改变情况也进行了较为深入的研究, 在克隆家系中发生不一致改变的克隆代码是有害克隆代码, 借鉴度量评估方式成功挖掘出了发生不一致改变的克隆代码, 为克隆重构提供建议。

1.4 机器学习方法

李智超等人[12]使用支持向量机预测了克隆演化过程中发生一致改变的克隆代码, 认为发生一致改变的克隆代码有可能产生新的bugs。黄建明等人[13]提出一种以学生课程成绩为数据样本, 用于学生成绩预测的贝叶斯网络预测方法, 为教学管理部门进行科学决策提供了依据。王维等人[14]建立了一种基于决策树的恶意代码判定方法, 从大量已知数据挖掘过程中学习并建立了决策树模型, 应用于未知样本预分拣流程中, 取得了较为显著的成就。

2 预测克隆代码可重构性的机器学习方法比较研究

本研究为了提高克隆管理效率, 在张丽萍研究基础上进行改进, 并且使用多种机器学习方法进行对比研究, 试图寻找最适合预测克隆代码可重构性的机器学习方法。

2.1 确定克隆代码可重构性

根据前期研究发现, 在克隆演化过程中, 发生不一致改变的克隆代码很有可能将bugs引入软件系统, 较为充分地考虑了克隆代码的特性, 但是并没有结合克隆代码与软件代码之间的共性。克隆代码属于软件代码, 因此, 可以借鉴目前较为成熟的软件质量评估方法中的度量方法, 将度量指标归纳为5 个二级指标, 15 个三级指标。层次分析结构模型如下所示:

第一, 可维护性:Halstead度量、注释比例、圈复杂度、代码行数、函数深度以及代码寿命。

第二, 有害性:克隆代码不一致改变频率、不一致改变时间。

第三, 有益性:克隆代码完整程度、克隆代码功能、克隆代码易读性。

第四, 可测试性:克隆代码可靠性、可封装性。

第五, 可移植性:适应性、便携性。

基于以上提出的克隆代码管理模型, 从其可维护性和有害性方面判断克隆代码的可重构性, 将对应二级指标进行量化并且度量提取。将所有度量值进行离散化处理, 离散化的度量值包括:克隆代码行数、克隆改变频率、克隆上次改变时间、克隆寿命、克隆复杂度、可维护性、漏洞等级、漏洞数量以及重构建议等。

2.2 对比机器学习方法

本研究选择目前较为常用的5 种机器学习方法进行比较, 分别是:贝叶斯网络、决策树、线性回归、支持向量机和人工神经网络。

为了确定该预测模型的效率, 本文采用K2 评分作为测度, 评估该预测模型的性能。拟使用K2 分类输出作为评估测度, 如下所示:

正确分类实例 (Correctly Classified Instances, 简称CCI) :度量值正确分类的百分比。

Kappa值:评判分类器的分类结果与随机分类的差异度。K=1 表明分类器完全与随机分类相异, 所以该值越接近1 分类效果越好。

案例覆盖度 (Coverage) :分类节点覆盖率。

TP:显示真养性率, 即正确的正例。

FP:显示假阳性率, 即错误的正例。

FN:错误的反例。

查准率 (Precision) :Precision=TP/ (TP+FP) 。

查全率 (Recall) :Recall=TP/ (TP+FN) 。

F值:F=2*Recall*Precision/ (Recall+Precision) 。

CLASS:显示类别标签。

3 实验结果与分析

本研究选用C语言开源软件Xorriso的29 个稳定版本, 平均每个版本中包含61 个克隆群, 作为实验数据。

使用K2 算法结合分类器评价贝叶斯网络性能的指标如表1 所示, Refac节点评价指标如表2 所示。

从表1 可以看出, 使用贝叶斯网络、支持向量机和线性回归训练预测模型时有较高的效率, 但是从时间开销角度来看, 支持向量机所需的时间明显高于其他方法。

从表2 整体评价数据来看, 使用线性回归时的各个指标都有较好表现, 但是耗时较长。为了确定耗时方面的影响, 将原有数据量扩大了10 倍进行实验, 发现贝叶斯网络与决策树的耗时基本保持较低水平, 但是线性回归所花费的时间比前两者高出300 多倍。可见, 随着软件体积不断增大, 使用线性回归训练预测模型浪费了大量时间。

经过试验发现, 使用人工神经网络训练预测模型需要花费更多时间, 没有达到所期望的阈值, 因此, 这里不再与人工神经网络做比较。

经过以上比较试验, 发现使用贝叶斯网络训练预测模型时具有较高效率。因为使用贝叶斯网络保持较高准确率、召回率、正确分类率等指标, 同时, 耗时较少, 能够更加高效完成预测模型的训练。

4 结语

本文针对开源的C语言软件进行实验, 使用五种不同的机器学习训练预测模型, 经过对比发现使用贝叶斯网络时具有较高效率。为机器学习方法在预测方面的研究做出了贡献, 并且提出将软件质量评估方法与克隆代码特性相结合的方式, 构建克隆代码可重构性评估方法的思想, 为克隆重构建议做了前期探索。

可快速充电的安防机器人 第2篇

电动安防机器人能够“默默无闻”地守护在我们身边,有效地提高我们的工作和生活质量。但如果把充电电池作为安防机器人的储能元件,亟需解决的一个重要问题就是电池的快速充电。针对亟需解决的问题,我们又设计了安防机器人的快速充电装置,实现了以超级电容器为储能元件的能够快速充电的安防机器人演示系统。

我们通过改装工作电压为4.8V的玩具电动车来制作安防机器人的移动底盘,选择两个容量为150F、电压为2.7V的SU0150E-0027V-1CA单体电容器串联后作为电源。两个超级电容器串联后的最高电压将达到5.4,可以满足玩具电动车4.8V的电压要求。

为实时监测超级电容器在充电或机器人运行过程中的电压和容量,我们设计和加工了一个LED电压指示灯,超级电容器的电压与容量成正比,所以LED电压指示器是根据超级电容器的工作电压设计和制作的(如图1)。电容器的电压是5.4V,所以LED电压指示器用5个发光二极管进行显示,另用五个普通二极管分别与发光二极管相连,因为红色发光二极管的导通电压是1.8V,所以只要电压在1.8V基础上增加0.6~0.7V,第一个发光二极管就会慢慢亮起,以后电压每上升0.6~0.7V,就会有一个发光二极管亮起,若5个全亮,说明电压达到4.8~5.3V,电容器完成充电。

电动安防机器人主要由电源模块、电机驱动模块、传感器模块、单片机控制器模块、转向舵机等组成(如图2)。

电源分两部分,一是为机器人的控制电路提供电力,二是为驱动电机提供电力;电机驱动采用一片L293D芯片,该芯片内部集成两个H桥;传感器是为了让安防机器人能够沿既定巡检轨迹行驶,我们将黑色导引线(即车道线)设置在白色的地板上的方式实现这一任务;单片机控制器为机器人的大脑,是由一个飞思卡尔单片机为主的控制器;转向舵机主要收发主控制器发来的信号,进而控制前轮转向。

为实现安防机器人的自动充电,我们设计了一个智能车位式充电站。该充电站与停车位合二为一,主要有充电触头、触头升降机构、驱动电机、测距传感器、微动开关、车位指示灯、大电流AD/DC转换器、车位充电控制器组成(如图3)。

安防机器人能夠进行火灾安全巡检、自动预警、自动检测电压、自动充电。在电力充沛的情况下,机器人为安全巡检模式,沿内环道(即红色轨迹)巡检行驶,在行驶过程中自动检测红外热量传感器一级超级电容电压;在电力不足的情况下,机器人切换为充电模式,沿外环道(即蓝色轨迹)进入充电站进行充电并实时检测充电电压。当电力充足时,机器人又回到安全巡检模式,沿内环道行驶检测(如图4)。

可重构机器人 第3篇

可重构系统一般由主处理器耦合一组可重构的硬件部件, 处理器负责任务的调度, 而可重构的硬件部件负责执行算法[1]。可重构架构的研究主要集中在以下几个方面:不同粗细粒度的架构研究、处理单元结构研究、处理单元的互联方式研究、新型存储结构研究等。可重构系统的重构方法主要包含两大类:静态重构技术、动态重构技术。静态重构需要整个系统复位, 往往需要断电重启;动态重构技术是在系统不断电的情况下, 可以完成对指定计算资源、逻辑资源的模块级或电路级重构, 具有功能实时切换、资源可复用等优势。

动态重构技术作为一种计算系统的新型配置设计思路, 从传统的追求计算资源“大而全”, 向追求资源的利用率转变。与传统的静态配置或完全配置方法相比, 动态重构技术无需对所有计算资源重构, 可以有选择性的进行重构资源加载, 一方面, 能够保证系统在其他单元正常工作的同时, 根据待处理任务需求及数据特点完成自适应配置, 保证了对逻辑资源的时分复用;另一方面, 能够大大缩短功能切换单元的配置时间, 保证任务的无缝对接及实时处理。

文章组织结构如下:首先提出了可重构系统原型的设计思路, 从可重构计算单元、存储单元、可重构控制单元等多个方面做了细化阐述;然后分析了动态配置技术的实现原理, 并基于Xilinx开发平台, 搭建了“嵌入式处理器+可重构计算单元”的验证系统, 实现了粗化、细化两种边缘提取IP核的动态配置;最后对试验结果进行评估。

1 可重构计算系统架构设计方案

可重构计算原型系统的体系架构采用RISC架构通用处理器 (CPU) 、可重构控制单元、可重构计算阵列、可重构I/O接口和存储系统等部分组成。CPU与可重构计算阵列之间为并行处理关系。从系统设计复杂度和灵活度考虑, 两者采用总线结构耦合。因此, 在系统平台架构中, 通用处理器、计算单元和接口单元之间采用总线连接方式。其系统架构见图1。

系统变换形态流程如下:系统进行计算功能变换时, 通用处理器向可重构控制单元发送重构命令, 可重构控制单元管理、调度硬件资源, 并上报系统工作状态;当系统资源准备就绪后, 通用处理器控制可重构硬件读取硬件配置数据并加载到器件中, 以变换可重构计算单元或接口单元的形态, 统一变换系统中全局存储空间的划分、管理及访问控制, 各计算模块共享内存区的映射关系图;同时, 根据新的计算形态加载相应的软件和数据, 最终完成整个系统形态变换流程。功能切换时, 只对可重构硬件的一部分进行重新配置, 其他部分可继续执行任务。动态部分重构可以减少配置数据, 加快了计算形态变换速度, 提高了系统的适应性和灵活性。

通用处理器运行操作系统, 负责系统的控制、计算形态管理、计算资源管理和任务调度;处理那些控制比较复杂、不便映射到硬件上, 且计算量较少的计算任务, 如变长循环、分支控制、存储器读写等。可重构硬件则用于处理计算量大、并行度高、任务相关度低的部分, 执行程序中拥有规则的数据访问模式, 控制简单的那部分“计算密集型”代码, 主要由可重构控制单元、可重构计算单元、可重构I/O接口及片上高速总线组成。其中计算单元及I/O接口可根据应用需求重构为不同的计算形态。

1.1 可重构系统计算单元模型设计

可重构系统计算单元的基本思想要求将计算和存储两部分进行解耦合, 因此采用了数据和指令存储物理分离的哈佛结构, 将数据访问模块、指令组织与调度模块和指令执行模块分离。同时, 根据流处理模型中生产者消费者局部性的特点, 将数据访问模块划分成软件可管理的多个存储层次, 各自保持独立运行。可重构系统计算单元主要有三个部分组成:控制单元、存储单元、可重构处理单元阵列。

控制单元。执行算法时, 控制单元对可重构系统计算单元进行总体控制, 协调可重构处理单元阵列、配置存储器、本地存储器、数据分配单元、数据合并单元的运行, 根据系统运行状态和各个单元内部控制信号的反馈信息, 改变各个单元的状态, 保证系统正确运行。

存储单元。存储单元分为三部分:数据存储, 寄存器堆以及配置存储。数据存储包括本地存储器, 数据分配单元以及数据合并单元。本地存储器用于存储可重构处理单元阵列计算需要的输入数据和输出数据;数据分配单元用于从本地存储器或寄存器堆中读取数据;数据合并单元用于向本地存储器或寄存器堆写入计算单元的输出数据。寄存器堆用于存储中间数据, 并向阵列发送配置字。

可重构计算基础单元。可重构计算单元是可重构阵列的核心部分, 可以理解为粗粒度的最小计算单元。为了能够执行更多类型的算法, 需要支持尽量更多的功能。例如, 对于常用的计算密集型运算, 需要支持FFT、FIR、DCT和点积等功能。因此成熟的可重构系统中, 应该包含足够多基础功能、不同粒度需求的可重构计算资源库, 以便于更加灵活的资源组合。

1.2 可重构系统存储单元模型设计

可重构计算系统的存储单元由CPU和可重构阵列共同访问操作。因此, 存储单元主要研究CPU和可重构计算单元对内存访问的协调与控制机制, 存储单元的模型设计需要主要解决如下问题:避免内存访问冲突、解决多个处理器模块并行工作会降低主存的访问效率的问题、解决可重构计算单元面临的端口和速度的限制。

存储管理单元主要解决多个模块并行工作时会降低访存效率的问题:多个模块共享片外内存会引起访问冲突从而导致等待;访问片外内存的端口数量非常有限, 不利于数据通路中的并行访问。主要采取如下改进措施: (1) 为可重构硬件平台增加内存管理单元, 实现片外和片上内存的映射, 保持数据一致性; (2) 为内存访问提供多端口流水化处理或数据预读取;为应用提供定制化的缓存结构。

1.3可重构管理单元模型设计

可重构管理单元负责控制任务, 它主要接收通用处理器指令, 完成系统形态管理和资源管理;计算单元的软件加载、配置管理和数据交换等任务。

其主要完成的工作有: (1) 实现全局存储空间的划分、管理及访问控制, 解决数据访问冲突, 阻止非法访问;将各模块传递的数据存储在统一的存储区, 以并行方式协同完成计算任务; (2) 接收通用处理器的指令, 将共享存储系统中的操作系统及应用软件加载到计算单元; (3) 对系统内部可重构硬件资源进行管理, 确保相应可重构计算单元或I/O接口功能变换时, 不影响系统正常运行功能; (4) 用于实现对可重构计算单元的动态配置, 可以根据应用任务需求修改计算单元架构和计算模块的功能, 并将计算单元、I/O接口的总线转换为统一的内部互连总线, 提高了对外连接的适应性。

2 基于可编程逻辑阵列的动态配置技术实现

2.1 动态配置技术原理

动态配置技术是实现可重构计算单元切换的关键技术, 保证逻辑资源的时分复用, 在优化资源配置的基础上实现对不同任务的响应。动态配置技术支持的配置阶段及配置策略, 直接决定了不同重构单元是否能够实现无缝切换, 进而影响了任务实时响应能力。目前成熟的动态配置技术需要提前编译待重构的逻辑资源、定义各硬件模块的接口和时序约束、明确各模块在可编程逻辑阵列上的实现区域及模块之间的物理连线。动态配置技术主要包括三个阶段, 即设计阶段、编译阶段、运行阶段[2]。

设计阶段, 根据任务处理需求, 需要设计不同计算任务对应的功能电路, 每种计算任务可能对应一种功能电路, 或者是若干个功能电路的组合。在基于可编程逻辑阵列的逻辑设计中, 电路设计采用硬件语言描述或者原理图描述的方法;顶层设计文件通过综合器生成网表文件, 在布局/布线阶段, 依旧可以对流处理器进行优化设计。

编译阶段, 基于配置文件的生成工具, 生成初始配置文件及若干动态配置文件;初始配置文件包含了非重构区域的系统或电路描述, 每个动态配置文件对应一种计算任务。动态配置文件经过重构文件生成器, 生成最终可以动态加载的配置文件。

运行阶段, 非重构区域的处理器或者控制电路, 可以自行分析待处理数据的特点或依据顶层控制指令, 完成配置文件的动态加载。加载过程往往通过重构控制器及动态配置接口完成, 重构配置器在重构数据库中选择相应计算任务对应的配置文件, 通过动态配置接口将其加载到可重构平台中, 并将可重构分区内的逻辑资源重构。

2.2 基于ICAP动态配置技术实现

Xilinx公司提供支持动态配置技术的整套开发工具, 包括用于动态配置的配置接口IP硬核及相应的加载配置函数。开发者需要基于标准开发流程, 搭建硬件平台并制作可重构计算单元的IP核;根据可重构部分的资源占用情况, 在FPGA内部划分可重构区域资源的大小、位置及种类。ICAP (Internal Config Access Port) 是可重构资源的内部配置接口, 可以挂在到内部总线上;硬件平台搭建完成之后, 编译系统会为ICAP提供唯一寻址地址, 作为从外部存储空间向内部可重构区域加载的数据入口和通道。

如图2所示, 基于ICAP的动态配置技术主要包含如下步骤:创建处理器硬件系统、创建顶层设计、创建布局/布线工程、定义可重构分区、添加可重构模块、设计规则检测、自定义配置、生成比特流、生成启动文件。创建处理器硬件系统及顶层设计后, 需要对模块占用的资源进行预估, 并根据预估结果创建顶层设计的约束文件。定义可重构分区、添加可重构模块阶段, 需要充分考虑布局布线的时序及资源要求。图3为可重构系统的布局图, 主要包括处理器、可重构分区、数据总线及其他非重构IP核等, 处理器负责资源调度、可重构接口控制等;可重构分区用于实现流处理器的多形态变换;数据总线同时用作动态配置文件加载、各模块数据通信通道。

2.3 可重构计算系统平台搭建

如图4所示, 基于动态配置技术的可重构架构的验证系统包括上位机、可重构计算系统 (主要由可编程逻辑阵列组成) , 两者之间通过通信总线连接。主要包含以下模块: (1) 可重构控制单元。该单元包含:内嵌通用处理器Power PC、Linux操作系统、PLB总线等, 主要负责可重构单元的控制、数据传输、资源调度等。 (2) 通信单元。该单元主要包含:以太网接口及串口, 用于图像传输及控制指令传输。 (3) 内存管理单元。该单元主要包含片内定制的乒乓存储单元, 用于源图像及中间处理数据的缓存。 (4) 可重构逻辑单元。可重构控制单元根据待处理数据的信息特征, 通过动态重构方式加载不同配置文件。如可重构硬件模块1支持图像边缘的粗提取, 可重构硬件模块2支持图像边缘的精细化提取。

上位机负责可重构配置单元的加载控制, 能够根据待处理任务的数据特点和大小以及处理内容, 选择最适应的可重构加载文件, 并向可重构计算系统发出重构指令。可重构计算系统通过加载不同配置信息, 可重构计算单元来并完成处理任务。在任务处理过程中, 可重构计算系统可将任务状态信息、任务处理结果等用户关心的参数上报给上位计算机并打印输出。

文章实现的图像边缘提取算法包括如下步骤:图像平滑、图像锐化、边缘提取、边缘连接, 最终得到完整的边缘图像。高斯平滑与LOG锐化过程采用空间域滤波方法, 二值处理采用自适应阈值分离方法, 边缘细化采用形态学变换的方法。其中粗提取模块主要包含以下三个步骤:图像平滑、图像锐化、二值处理。精细提取模块包括以下四个步骤:图像平滑、图像锐化, 二值处理和边缘细化四个步骤。

3 试验结果分析

3.1 试验环境

可重构计算系统的试验平台基于Xilinx提供的ML507开发板, 处理器采用Power PC440, 操作系统采用Linux, 处理器通过PLB总线与可重构配置区域及其他IP核通信。具体配置参数如表1所示。

3.2 试验结果评估

配置文件规模评估。实验结果表明, 如果将“Power PC处理器+PLB总线+图像处理IP核”的硬件系统全部重构, 需要配置的比特流文件为1914KB;而图像处理IP核的重构只需285KB。由此可以看出, 与静态配置技术相比, 动态配置技术能够在保证大部分逻辑资源不变的情况下, 选择性的完成资源重构。

配置时间评估。动态配置技术实现中采用的内部配置访问接口ICAP的时钟频率为50MHz, 数据带宽8bit, 理论配置速度为0.5×108B/s。实验结果表明, 动态配置技术无论在配置数据的加载时间还是重构总耗时, 都大大减少。配置时间的减少, 保证了计算资源的无缝切换, 提高了不同任务的响应速度及实时处理能力。

4 结束语

文章主要有如下贡献: (1) 提出了可重构计算原型系统的设计思路, 着重介绍了可重构系统计算单元、可重构系统存储单元、可重构管理单元等关键模块的设计理念。 (2) 搭建验证平台, 并实现了动态配置技术。文章基于Xilinx开发平台, 搭建了“Power PC处理器+PLB总线+可重构计算单元”的验证系统, 设计了边缘提取的自主知识产权核, 实现了基于ICAP动态配置接口的可重构计算。实验结果表明该验证平台不仅具有较高的计算能力和计算灵活性, 而且具有较强的资源调度能力, 能够大大缩短资源重构的占用时间。

未来工作包括以下几方面: (1) 进一步完善体系结构设计方案和系统计算模型; (2) 结合可重构硬件的发展, 进一步开展可重构支撑技术的研究, 如:任务时域划分模型、软硬件划分及调度模型、硬件资源管理模型等; (3) 深入研究可重构计算基础模型, 建立多种架构的可重构单元模型库, 以适用于更多的应用场景。

摘要:可重构计算具有应用灵活、性能高、功耗低、成本低等优势。动态重构技术作为可重构计算的配置方法, 具有配置方法灵活、耗时短、任务实时响应能力强等特点。文章首先提出了可重构系统原型的设计思路, 并着重分析了可重构计算单元、存储单元、可重构管理单元等关键模块的设计理念。然后分析了动态配置技术的实现原理, 并且基于可编程逻辑阵列, 搭建了“嵌入式处理器+总线+可重构计算单元”的硬件系统, 并实现了两种图像处理IP核的动态配置。

关键词:可重构计算,系统原型,动态配置技术

参考文献

[1]方琛, 等.粗粒度可重构处理器的结构研究与设计[D].上海:上海交通大学, 2010.

[2]徐新民, 等.FPGA动态部分重构的研究及位流信息重构的实现[J].科技通报, 2008, 24 (2) :236-230.

[3]Krill B, Amira A, Ahmad A, Rabah H.A new FPGA-based dynamic partial reconfiguration design flow and environment for image processing applications[J].Visual Information Processing (EUVIP) , 2010.

[4]Interoperability and performance standards for data modems[Z].MIL-STD-188-110B, 2000.

[5]Giovanni D M, Gupta R K.Hardware-software codesign[J].Readings in Hardware/Software Co-Design, 2002

[6]Kchuai Wu, Jan Madsen.Run-timedynamic reconfiguration:Areality che ck based on FPGA Architectures form Xilinx[J].Norchip Conferenc e, 2005.

[7]Sergios Theodoridis, Konstantinos Koutroumbas.Pattern Recogntion, 2006.

[8]Christian Fda Silva, Alice M.Tokarnia.RECASTER:Synthesis of FaultTolerant Embedded Systems based on Dynamically Reconfigurable FPGAs[J].Proceedings of the 18th International Parallel and Distributed Processing Symposium, 2004.

一种可重构流水阵列系统 第4篇

传统的数据处理方法有两种,一种是对通用微处理器采用软件编程的方式,这种方法通用性好,但是效率不高。另一种是ASIC方式,这种方法处理数据速度很快,但是只能针对某一种运算,通用性不高。当代越来越多的应用领域,比如科学计算、流媒体、图形识别和处理等领域,同时要求计算的高性能和灵活性。研究表明90%的程序执行时间是被10%的程序代码所占用,于是针对运算次数多,耗时长的程序,人们普遍采用可重构硬件加速器来运行。可重构计算是指对结构可变的硬件进行软件配置,使其实现多种运算功能。这种方式即具备了软件的灵活性,也具备了ASIC的高速性,是解决重复次数多,数据量大的算法,比如H.264编解码中的DCT/IDCT运算的一种理想方法[1]。

Morphosys[2]是其中最具代表性的一个可重构阵列处理器。Morphosys互联比较复杂,阵列在进行数据处理前需要把数据绑定到每个阵列单元中去,在配置字广播下进行运算,这样不但使阵列规模比较庞大,而且不能充分利用每个处理单元。

本文描述了一种可重构流水阵列系统—RPAS(Reconfigurable Pipelined Array System),它作为一个基于AHB(Advanced High-performance Bus)[3]总线协议上的硬件加速模块,与ARM处理器构成一个通用嵌入式系统。

RPAS结构拥有两个突出优点:第一:阵列按列配置,每列的配置字对应流水线的某一级,对应流水线各级的配置字通过路由单元传输到指定的列里,通过控制路由单元就可以实现阵列的动态配置,相比较与主处理器控制逐列输入配置字的方式,配置字路由方式降低了主处理器的负荷。第二:根据对大量常见的数字信号处理算法的研究,阵列采用了简化的处理单元互联方式,以及对不同列采用不同的处理单元,降低了系统的面积与复杂度。

1 RPAS结构概述

流水阵列模块作为挂载在AHB总线上的Slave,整体架构如图1所示,ARM核通过向配置寄存器里写入控制字来对系统进行控制,控制字根据具体的算法进行编写。阵列具体做什么运算由存放在Context Buffer中的配置字决定,接口控制系统的运作,并在运算完成后将结果送回Frame Buffer,再通过DMA送回外部Memory。ARM核发出指令,经由AHB Interface处理,转发给各指令相关单元并进行处理。DMA负责数据的搬运,包括搬运DMEM中的配置字到Context Buffer;搬运DMEM中待处理数据到Frame Buffer中去;搬运Frame Buffer中的计算结果回DMEM。Frame Buffer负责存储待计算数据,以及阵列计算结果。Context Buffer负责存储配置字,通过Buffer Router的将配置字传输到阵列。

1.1 可重构流水阵列

可重构流水阵列包含一个4×4的处理单元阵列和4个路由器,如图2所示。数据流从左到右,PE有时钟输入,每一列就是流水线的一级。Router控制流水阵列的操作数来源。第四列的结果输出到第一列,形成环型流水。

1.2 处理单元

RC单元的组成如图3所示,主要有配置寄存器,输出寄存器,ALU和移位器。配置寄存器保存Context Buffer传来的配置字,根据配置字控制ALU和移位器的操作。输出寄存器负责保存PE的运算结果。

每个PE的ALU接收2个8位的操作数,输出1个8位的结果。本系统的处理单元采用列与列之间异构的方式,第一列PE可以实现乘法,加减法,移位,与或非操作,第二列PE可以实现求差绝对值,加减法,移位,与或非操作,第三,四列PE仅可以实现乘法,加减法,移位,与或非操作。只有第一列PE拥有乘法器单元,可以大大减少阵列的面积,对大多数需要乘法运算的数字信号处理算法来说,该阵列在效率方面依然可以得到较好的满足。

PE单元中的配置寄存器只需要控制ALU进行操作,不需要对操作数进行选择,因此配置信息大量减少,每个处理单元只需要8位,一列总共只需要32位,相比于传统的可重构系统的单个处理单元就需要32位,信息量大大减少。

1.3 路由器

根据对大量数字信号处理算法的研究发现,大多数算法结构都具有一定的对称性,其中蝶形互联方式是最常见的数据流互联形式,比如矩阵乘法,DCT/IDCT,MM,FFT等算法的流水线实现都频繁采用数据流蝶形互联方式。

因此本系统采用简化的路由设计方案,矩阵每一列四个PE对应的路由器只有8种配置情况,只需要3位控制信息,相比于传统的可重构系统的单个处理单元就需要多位配置信息控制其内部MUX进行操作数选取,信息量大大减少,如图4所示。

1.4 配置字传输方式

流水线阵列的配置方式是按列配置,如图5所示。首先将对应着各个流水级的配置字传入Context Buffer中,在通过Context Router将相应的配置字传输到相应得列里去。Context Buffer 的容量为32×8bits,最多支持八级流水的运算。每个Context(32bits)对应一个流水级,其中每个PE分到8位配置信息,在计算开始前先将Context装载到Context Buffer中,运算时可以通过控制路由在一个时钟周期内对阵列的所有四列进行配置。

1.5 数据流传输方式

可重构流水阵列通过Frame Buffer接收或发送数据,Frame Buffer分成两个Set,Set 0负责向流水阵列提供操作数,Set 1负责接收流水阵列的计算结果。两个Set可以同时工作,如图6所示。

其中,Set 0含有2个bank,每个bank含有64组,每组含有4个Byte,每个bank在一个时钟周期内可以将一组4个Byte(1个word)通过路由和阵列内部data bus传输到阵列中特定的列,该列的每个RC分配到一个8 bit的操作数。

同样的,Set 1可以在一个时钟周期内,通过路由和阵列内data bus接收指定某一列的计算结果,其中每个RC可以输出8位的结果。

2 性能分析

2.1 算法映射

H.264编码程序中包含大量的循环体,例如计算SAD值、量化、DCT、半像素插值、运动补偿和构建重建帧等。这些循环体代码并不复杂,且执行次数频繁,占据了编码的绝大部分时间,因此循环体的优化是重点[4]。首先分析H.264视频解码中使用的4×4的DCT变换。

H为变换矩阵,X为输入,Y为输出,二维DCT变换公式应该为:

Y=HXHT=((XHT)THT)T (1)

ΗΤ=[121111-1-21-1-121-21-1](2)

因此完成二维DCT变换可以有以下两种方式:

①直接进行二维DCT变换。

②进行两次一维DCT变换,通常称为“行列法”[5]。

一般来说,后者在结构上的对称性更好,易于在硬件上实现,而且可以复用一维DCT变换的硬件,因此采取了进行两次一维DCT变换的“行列法”。

X矩阵按行输入,依次从第一行到第四行输入阵列的第三列,第四列的结果输入第一列,最后从第二列接收结果,输出到寄存器堆。X矩阵从阵列的第三列输入是因为流水的第三步需要使用阵列的第一列的乘法器。

数据通过阵列实现右乘矩阵HT,将结果输入一个4×4的寄存器堆,按列输入按行输出,实现矩阵转置,再将转置后的数据通过阵列,得到的结果再转置,即可得到最终结果,如图7所示。

计算SAD值是H. 264编码过程中一个很重要的步骤 ,无论是帧内模式选择还是帧间预测中的运动搜索都需要频繁调用该模块 ,计算 SAD的公式为:

SAD=x=1,y=1Μ,Ν|S(x,y)-S(x˙,y˙)|(3)

对于一个16×l6大小的宏块来说,在搜索范围内的每一个点的SAD的总计算量为256次减法操作+256次求绝对值的操作+255次累加操作,可见对一个宏块失真度SAD的计算是H.264编码器中是一个非常耗时的模块,而SAD计算中包含的是对大量低精度(8位宽度)的像素数据进行密集的加减法运算,非常适合于本流水线阵列处理。S(x,y)从第二行输入,进行求差的绝对值操作,最后从第一列接收累加求和结果,如图8所示。

2.2 性能比较

如表1所示,RPAS系统完成一个4×4 DCT运算需要14个周期,完成一个16×16块求SAD值计算需要67个周期运算效率高,效率是Morphosys的两倍左右,但是阵列规模相比Morphosys(8×8)大大减小。RPAS处理DCT和求SAD值这两种算法,还有一个突出优点,阵列的配置信息在计算过程可以保持不变,主处理器只需要控制输入待处理的数据即可,而Morphosys需要不停切换配置信息,对时序要求相对较高。

3 结束语

本文提出了一种可重构流水阵列系统,它可以广泛应用在嵌入式多媒体处理中。它不仅具有一般硬件加速器效率高的优点,而且结构简单,通过路由单元控制配置字传播,高效简单,便于控制。系统还采用异构处理单元,简化矩阵互联,使得系统面积和复杂度得到优化。通过对H.264编码程序中执行次数频繁,占据了编码的绝大部分时间的计算SAD值、量化、DCT、半像素插值等运算的算法研究和手工映射分析,该系统能较好的实现复杂度与芯片面积之间,运算效率与系统通用性的权衡。

参考文献

[1]Miyamori T,Olukotun K.REMARC:Recongurable Multimedia Ar-ray Coprocessor[J].IEICE Trans,Information System,Feb.1999,E8ED(2):389-397.

[2]Singh H,Lee MH,Lu G,et al.MorphoSys:An Integrated Recon-figurable System for Data-Parallel and Computation-Intensive Appli-cations[J].IEEE Trans.Computers,May 2000,49(5):465-481.

[3]ARMLimited.AMBA Specification[Z].

[4]数字音视频编解码标准工作,信息技术先进音视频编码(第二部分:视频)[S].2003.

可重构的农业知识服务模式研究 第5篇

随着网络化和数字化的浪潮推动,信息技术作为一种新的生产要素正在农业生产中发挥越来越重要的作用,农业科技信息化服务也成为世界上许多国家农业科技推广与服务的主要方式。我国也不例外,如湖南省开展的农业信息综合服务平台[1]希望能将当前零散的农业知识有效地综合起来,让农业知识服务最大化。李红梅等针对农业知识的特点,重点探讨了基于网络的农业知识服务系统的结构和功能,以及要实现农业知识服务系统所要解决的关键技术[2];徐倩则从信息通讯技术角度分析农业知识传播机制[3];纪占武等从产业技术扩散的角度阐述了知识重构的策略[4];周国民等通过分析与设计,初步实现了基于网络的农业知识服务系统的设计[5]。

对于农业信息而言, 由于其生产的时间、区域、气候、土壤不同,因此产生的信息数据量大、涉及因素复杂、涵盖面广泛。然而基层农民处理信息能力较弱,特别是处理海量信息能力的不足,迫切需要获得相应农业知识服务。随着国家政策对农村的倾斜,近几年有关农业知识服务网站形成万马奔腾的局面,但没有经过整理加工的、纷繁复杂的农业知识条准确性良莠不齐,有时让农民不知所措,极大地损伤了农民对农业信息的信任程度。如何规范当前有关农业知识的准确性,将城市资源通过有效平台转移到农村,并服务好“三农”成为我国“十二五”规划的一个重要课题。国家科技部开展的“十二五”科技支撑计划重大专项“农村农业信息化关键技术集成与示范”将是对农业知识进行整合的有益尝试。

1 项目调研

根据湖南省国家农业农村信息化科技示范省建设的需要,由湖南农业大学相关人员组成的调研小组,自2009年7月12日-2010年12月8日止,分批深入湖南省7个地区12个县市15个乡镇18个村农户300余人进行了深入细致的农业农村信息化现状专题调查。

主要的调查对象:普通农民、种养大户、村支两委负责人、科技特派员、大学生村官、选调大学生、农技站站长、农技员、乡镇负责人、农村中小企业代表、农村专业合作社代表、远教站负责人、龙头企业负责人和县级农业局主要成员等。

主要调查方式:下基层入户、访谈、座谈、问答式、观察、记录、拍照等方式,并将领导干部与普通人员分开进行访谈,让各层次的人员有的放矢,尽可能谈论有关农村、农业、农民关心的话题,避免就信息化谈信息化,尽量涉及农业、农村、农民的各个方面,真实反映当前农村进行农业信息化的现状与存在的问题。主要调整对象如表1所示。

调查结果说明龙头企业、种养大户和专业合作组织正在农村快速成长,对农业知识的需求最旺盛,为了解决自身问题往往通过组成相应协会形式进行上下级沟通。除了原来的农村组织形式还在发挥作用外,由于受到市场化冲击,所具功能越来越小,而新的宣传人才—大学生村官、科技特派员由于国家政策落实力度小,他们发挥的作用不明显,主要技术人才还占据县级以上层次。

2 农村已有知识服务模式

由于地区差异,通过调研分析,农业知识在各地的服务功效迥异,主要表现如下几种方式。农村已有知识服务模式如表2所示。

除了以上几种形式,特别是受资源限制,大量地区还是以个体散户为主,特别是当前农村由于田地少,大多青壮年都外出打工,留下两类人较多,即老人多、小孩多,劳动能力有限,他们对农业知识的需求不强,或本身技术不强,资金不足,更担心失败。

3 当前农村信息化实施的喜与忧

通过近两年多次下基层的调研,针对农业信息化在农村的实施现状分析,主要现象如下:

1)农业农村农民对科技服务和信息服务需求存在两重性。一是对农业专业合作社、农村中小企业、种养大户、乡镇农技人员、村级负责人、大学生村官、农村新型产业或产品开创者而言,他们是“带头人”“能人”“精英”,是农村信息化需求的主体,特别渴望科技服务和信息服务,特别需要了解信息渠道以获取科技信息与服务;二是大量基层的农民,由于自身文化条件限制,只能跟着农村精英走,个人主动获取农业知识的刚性不足,也感觉不到农业信息化的作用。

2)农业农村信息化服务现状呈现多样性。一是网络部分,包括互联网和卫星网,4大网络(农村党员干部现代远程教育、农村远程教育、农村中小学远程教育、全国文化信息资源共享工程)都已达到基层;但由于资源有限、条块分割、各自为政,信息较混乱,或由于资金、技术力量不够,除热一阵外,真正发挥作用有限。二是电话部分,包括固定电话和移动电话,如科技部12396、农业部12316、卫生部12320在农村都有广告;但有的是长途电话,收费贵,农民不敢打电话,特别是信息员从基层转移到市局后,农业求助电话更少了。三是卫星电视已普遍,但有线电视发展艰难,特别是针对本地农业资源的科教片很少,宣传力度有限。

3)农村务农的村民都是那些不能在城镇打工的人,年龄在50岁以上,自身文化水平低、信息化意识淡薄,对远程教育和12396知之甚少,对信息化的作用认识不足、不到位。在农村能熟练操作手机短信和电脑的人少之又少,而且基层农技人员知识老化快,技术跟不上时代发展,没有知识更新渠道,而龙头企业需要的农业人才,由于条件待遇跟不上,能安稳在农村工作的年青人太少,也不稳定。

4 农业知识服务模式的重构

从以上调研分析可知,由于条块分割,重构农业知识服务不仅必要,而且是当前急需解决的难题。国家科技部、湖南科技厅相关领导及时洞察到这类问题,并组织相关科研机构精兵强将进行此类问题的研究,湖南农业大学有幸成为其中一员。

分析表明:要真正破除农业信息化实施的障碍,首先要转变农业知识服务模式,不要仅跟随国家政策一阵风的建设,而要让这种模式长久深入农村,需要在已有投资基础上具有造血功能,能让这种机制长久服务乡村。其次是农业知识的表达问题,区分哪些农业知识才是农业人员真正关心和需要的,同时又便于坐席人员与农业人员相互交流。三是要解决农民获取知识的途径,不仅知识要准确有效,而且要求方便快捷。四是要解决农业知识片段的准确性和时效性。五是要多方面多角度解决不同层次人员对不同农业知识的需求。六是要采取什么有效手段把有用的知识推送给有用的人。

通过对湖南省农村的广泛调研,提出如下的解决方案,如表3所示。

当前湖南省已开始构建一个集“12396、远教网、科特派”3大工作网于一体的综合服务平台。其前期目标是5∶4∶1模式,即农民诉求总量的50%由平台知识库直接解答,40%由专家在线服务解答,10%由专家现场解答;后期目标是7∶2∶1模式,惠及全省农民,形成多层次的农村科技信息化服务体系,引导和推进农业生产和农村经济发展方式的转变。

当前平台的主要架构如图1所示。

这种框架的主要特点:

1)综合“12396、远教网、科特派”3大工作网于一体,防止知识条块分割,信息相互冲突,丰富农业知识来源,保证农业知识有效传播途径。

2)综合湖南省当前农村农业知识服务的主要模式,并且进行优化与提升,同时考虑到近期与远期目标的实现。

3)充分考虑不同层次不同人员的需求,通过专家考核体制,能够有效地将农业专家、龙头企业、专业合作组织、基层信息人员有效绑定在一起,缩短农业知识传播途径,扩大农业知识服务范围,提升知识服务乡村的时效性与主动性。

4)配合国家在湖南省进行长株潭三网融合的综合实验。

当前系统主要的层次结构如图2所示。

综合服务系统原形如图3所示。

5 结论

本文提出的农业知识服务模式是针对湖南省农村市场充分调研基础上、重构当前农业知识服务模式提出的,对农业知识服务提出了更高的要求,也更能将农业知识有效传播到基层,其基础研究和实践将为农业知识服务农村、农业与农户提供新思路、新方法。

参考文献

[1]刘波,黄璜,沈岳.农业信息化建设关键环节的思考与对策[J].吉林农业,2010(10):15-16.

[2]李红梅,贺小扬,王雪冬.粗糙集理论在农业知识发现中的应用研究[J].安徽农业科学,2008,36(6):2 590-2 591.

[3]徐倩.基于信息通讯技术的农业知识传播机制研究[J].农机化研究,2006(1):31-33.

[4]纪占武,卢锡超.产业技术扩散的知识重构研究[J].科学学与科学技术管理,2008(8):33-37.

微型可重构数控机床本体研制 第6篇

国内外对可重构数控机床的研究多局限于单一加工工艺范畴。如美国密歇根大学Dhupia等研制的拱形可重构组合机床[3], 可实现铣削、钻削加工功能。国内如上海交通大学机械工程学院研制了能够基本实现卧铣、立铣、龙门铣功能的小型简易数控加工平台[4]; 天津大学王庆祎等研制的多功能微型三轴立式机床[5], 可以实现微细铣削和电火花加工。

现代制造高柔性化需求对机床可重构性提出了更高的要求。现面向微细加工等领域, 合理划分、设计机床可重构功能模块件, 研制了集铣削、车削和钻削等功能于一体的微型数控机床, 从不同加工种类大跨度实现了机床重构。

1 机床功能需求及主参数确定

机床定位为微型数控机床, 可重构成数控车床、数控铣床 ( 数控钻床) 两种机床, 能够加工普通碳素结构钢等材料。机床的基本参数、性能要求如表1。

微型数控机床一方面很大程度上减少了机床制造中能源、资源消耗, 降低了机床制造成本; 另一方面, 微型机床各部件运动惯量相对较小, 更容易实现高速加工、高精度加工和高刚度运动控制。综合考虑加工范围、加工精度、装配易操作性等因素, 确定机床的尺寸如表1。

机床切削功率Pc为切削力Fc和进给力Ff所消耗的功率之和, 则:

主切削力Fc为:

切削速度vc为:

式中, d为工件 ( 车床) 或刀具 ( 铣床) 最大直径, 单位为mm; n为主轴转速, 单位为r / min。

忽略进给力所占的极小部分功率 ( 约为1% ~ 2%) , 切削时消耗的功率Pc为:

选用YT150 硬质合金车刀, 以常用易加工的热轧钢 ( 屈服强度 σb= 0.588 GPa) 棒料为例, 车削加工。微型机床主轴转速范围一般为250~2 500 r/min, 取1 550 r/min, 切削速度vc= 0. 243 m / s, 背吃刀量ap= 2 mm, 进给量f =0.3 mm / r的切削参数下, 查表得影响系数、指数和修正系数, 将式 ( 2) 和式 ( 3) 代入式 ( 4) 计算得:

取机床的总传动效率 ηc= 0.85, 则机床主轴电机功率PE需满足:

由此计算, 可确定主轴电机的选型。对机床负载力矩与负载惯量进行计算[6], 确定进给轴电机的选型。最终机床主轴和进给轴电机参数如表2。

2 机床功能模块划分

可重构机床的一个显著特征是功能模块的模块化。根据数控机床的结构原理, 将数控车床的功能模块划分为床身模块、主轴模块、工作台模块、卡盘、刀架和尾座顶针模块; 相应地将数控铣床的各个功能模块分为床身模块、主轴模块、工作台模块、立柱模块、配重模块和铣刀夹持模块。对比两种机床的功能模块, 相同功能的模块有床身模块、工作台模块和主轴箱模块。因此, 重复出现的部分可设计成可重构的模块。

为了简化装配和提高装配精度, 数控铣床的立柱部分和配重部分可以模块化为一个装配整体。最终, 可重构机床的组成模块划分如图1 所示。其中, 床身工作台模块和主轴箱模块是在重构过程中重复利用的模块。

3 机床功能模块化设计

3.1 主轴模块化

实现主轴的重构, 要解决数控车床主轴和数控铣床主轴重构时装夹对象不同的问题。综合考虑车床主轴和铣床主轴结构, 重新设计的主轴可实现车床和铣床通用。将主轴部分整合为一个装配整体。

同一个主轴, 用于数控车床时, 其前端装配卡盘, 如图2 所示; 用于数控铣床时, 其前端为铣刀夹持装置, 如图3所示。重构过程中, 主轴的其余部分无需拆卸和替换。

1—主轴装配部分;2—卡盘

1—主轴装配部分;2—锁紧螺钉;3—铣刀夹持部分

将模块化后的主轴固定在主轴箱上, 和主轴电机等组成主轴箱模块, 如图4 所示。这样在重构过程中, 主轴箱模块始终作为一个整体, 避免了拆卸、重新装配带来的误差, 简化了装配过程, 提高了主轴箱模块的装配精度。

3.2 床身工作台模块化

采用右手笛卡尔坐标系, 不难发现数控车床的z轴和x轴在分别和数控铣床中x轴和y轴的运动方向相同。因此, 可以将运动方向相同的机体设计成重构过程中共用的模块。数控车床z轴方向所在的床身和x轴方向所在的x托板可以模块化为一个可重构的整体: 床身工作台模块。其效果如图5 所示。床身工作台模块作为可重构部分, 成为机床可重构的基础。

工作台模块中有设计为带T型槽的工作平台, 用于安装数控刀架 ( 车床) 或虎钳 ( 铣床) 等。

3.3 立柱配重模块化

数控铣床比数控车床多了1 个数字轴。车床的z轴和x轴在重构过程中分别重构为铣床的x轴和y轴。此时, 需要另加一个数字轴作为铣床的z轴。考虑到数控铣床z轴所在的立柱和配重块的位置关系, 将二者整合为立柱配重模块, 装配效果如图6 所示。立柱配重模块作为一个整体, 其主轴箱固定板用来安装主轴箱模块, 实现z轴上下运动。

3.4 尾座顶针模块化

尾座、顶针是数控车床所专用的部分。在车削加工细长轴类零件或加工螺纹时, 尾座中的顶针起辅助夹持作用。尾座顶针模块的设计需要满足拆卸方便和快速安装。尾座顶针模块结构设计如图7 所示。

4 机床可重构数控系统

机床配置了与企业合作研发的EAMA-3000i型数控系统。系统架构如图8 所示。

按数控系统架构, 将数控系统的设计模块化。对于每一个运动轴, 将其数控程序封装为一个独立的程序模块。对微型可重构数控机床, 其数控系统可分为5 个独立模块: 3 个数字轴程序模块, 主轴程序模块和刀架程序模块。而数控车床和数控铣床的各个数字轴的行程都是110 mm, 简化了重构后数控程序模块切换的过程和实现。

可重构系统根据数控车床和数控铣床数控系统的异同点, 实现二者数控系统的转换[7]。微型数控铣床共有3 个数字轴和1 个主轴, 每个轴则对应单独封装的数控程序模块。按照右手笛卡尔坐标法则, 铣床的3 个进给轴分别为x、y和z轴。而数控铣床的主轴和x、y 2 个进给轴在重构过程中是可重构模块, 分别作为数控车床的主轴和z、x 2 个进给轴。这样相应的数控程序模块就实现了重构。

铣床重构成车床的时候, 屏蔽掉铣床z轴程序模块。铣床的x轴, y轴数控模块则分别对应为车床的z轴, x轴模块。铣床和车床的主轴程序模块则无需改变。同理, 在车床重构成铣床的过程中, 只需要车床的x轴和z轴程序模块分别作为铣床的y轴和x轴程序模块, 同时增加1 个z轴数控模块。而车床的主轴数控模块在重构时仍然作为铣床主轴数控模块。

数控系统的模块化设计实现了数控系统的可重构性, 充分利用了资源, 降低了重构成本, 也使机床重构极大简化, 缩短了重构时间。

5 机床可重构实现

机床可重构功能部件含床身工作台模块、主轴箱模块等。数控系统中可重构模块有2 个数字轴程序模块和主轴箱程序模块。

数控车床由床身工作台模块、主轴箱模块、卡盘、数控刀架和尾座顶针模块等装配而成。装配时, 在床身工作台左端固定主轴箱模块, 卡盘装配在主轴箱模块上, 在工作台模块上安装数控刀架, 在床身右端装上尾座顶针模块。同时, 配置z轴、x轴和刀架的数控模块。完成装配的数控车床如图9 所示。

重构成数控铣床时, 拆卸尾座顶针模块、主轴箱模块、刀架和卡盘。在安装过主轴箱的位置添加立柱配重模块, 将装上了铣刀夹持装置的主轴箱模块安装在立柱上的主轴箱固定板。同时, 重构的2 个进给轴和主轴箱数控程序模块不变, 实现程序的重构, 另外新增一个铣床z轴数控程序模块。重构成数控铣床的实物如图10 所示。

尾座顶针模块直接可以从床身导轨上滑出, 装卸方便。高度的模块化, 使重构过程中只需要拆卸、固定主轴箱模块和立柱配重模块, 无需拆卸和分解其他部分, 保证了模块在重构过程中的精度。同时, 极大缩短了重构时间。

6 结语

基于模块数量尽可能少、装配方便快捷和减少重构误差的原则, 将可重构模块进行合理粒度划分, 划为床身工作台模块、立柱配重模块、主轴箱模块、尾座顶针模块等, 进行相应部组件设计, 不同种加工类型大跨度实现了数控车床、数控铣床等机床形态快速可重构。目前已产品化, 重构装配简单, 对装配人员技术水平要求较低, 装配精度较高, 耗时短 ( 一般为30 min) 。机床精度可达0.01 mm, 可加工材料含: 碳素结构钢; 铝合金、铜等有色金属材料;塑料、有机玻璃、木材等非金属材料。

参考文献

[1]顾琪, 刘德仿, 倪红军, 等.组合机床cad技术的研究现状及进展[J].机械设计与制造, 2010 (07) :260-261.

[2]Song J-y, Wu L-k, Sheng Z-q.Development of Modular Design System for CNC Machine Tools[M].//QI E, SHEN J, DOU R.Proceedings of 20th International Conference on Industrial Engineering and Engineering Management.City:Springer Berlin Heidelberg, 2013:69-77.

[3]Dhupia Jaspreet S, Galip Ulsoy A, Yoram K.Arch-type Reconfigurable Machine Tool[M].//WANG L, XI J.Smart Devices and Machines for Advanced Manufacturing.City:Springer London, 2008:219-238.

[4]李晔, 王宇晗, 胡俊.小型可重组数控机床的设计[J].制造技术与机床, 2002 (05) :25-28.

[5]王庆祎.多功能微型机床及其加工技术的研究[D].天津:天津大学, 2010.

[6]魏胜.FANUC 0i系统进给伺服电机的选择[J].机械工程师, 2009 (12) :125-127.

可重构计算平台的硬件结构设计 第7篇

1 设计要求

为了进行硬件结构设计,首先应该了解具体的设计需求和期望的系统性能。第一,可重构计算平台是基于PC机设计的,PC机通过总线( 如PCI - 33,PCI - X,Fire Wire或者USB) 访问FPGA,要使得处理数据和FPGA重构信号传输速度足够快就必须选择合适的总线,因为PC总线接口标准是各种各样的,在PC端其他标准可用时,PC接口的核心即可切换到其他标准。第二,本文的主要工作就是开发一个能够通过PC机快速重构FPGA的系统,即以运行在PC机上的软件仿真平台[5]作为处理器,当需要时可以下载重构算法信号到FPGA。当处理算法链将结果返回给PC机之前,数据在FPGA上通过特定的算法进行处理,而且重构FPGA以待处理下一步的算法链数据,快速重构可以减少重构过程中的延迟。第三,运用尽可能少的元件设计出理想并简单的物理硬件,这将使得这个平台的开发成本较低,在同一FPGA同时运行PC机接口核心和算法实现能够实现该要求,即使FPGA存储算法和PC机接口在同一芯片上运性,但是部分FPGA存储算法应该动态可重构并且独立于PC机接口。由于软件平台允许多个硬件模块并行使用FPGA,所以为了保持硬件设计简单,不需要用多个FPGA来实现各个硬件模块。虽然已经有人开发了可重构平台结构,但是没有一个满足以上所有要求。例如,Blodget[6]等设计了一个利用内置FPGA的软处理器核心代替外部PC机的自动重构的嵌入式系统平台,Fong等[7]开发了一种采用RS - 232 端口传输可重构数据到FPGA的系统,但是限制该系统重构性能的一个关键因素就是传输速度低。

2 系统设计

考虑到第1 节中的设计要求,运用PCI总线和自重构FPGA Xilinx Virtex Ⅴ来设计硬件结构。典型PC机都配备有PCI总线,而且硬件设备可以完全由总线本身进行供电,这将减少额外供电电路的设计,同时还避免了PCI信号中的电流分离问题。此外,高吞吐量的总线( 32 位、33 MHz的PCI总线的速度为132 Mbit / s) 使得从PC机到FPGA重构信号的传输速度更快。通过Select Map总线传输信号到可重构FPGA的最大速度是50 Mbit /s,因此PCI总线可以满足Select Map总线的所有操作都是在它的最大速度下进行。可重构FPGA运用其部分资源来控制PCI接口,而其他部分资源用来执行下载的算法,这就不需要单独设计PCI接口芯片,从而使得硬件模块非常简单,这种方法还可以减少由物理连接点导致的系统故障的数量。同时,尽管PCI接口和算法在同一FPGA上执行,但是FPGA的模块化设计流程[8]允许两者独立开发和测试。这些功能的结合满足以下3 个要求: 使用同一个普通PC机总线标准、快速FPGA重构时序和一个简单的物理硬件模块,下面将详细介绍系统的结构框架。

2. 1 物理硬件设计和初始启动配置

正如上文所述,物理硬件要尽可能简单,因此本文给出的硬件模块主要由FPGA和Flash RAM芯片组成,如图1 所示。为了满足PCI规范对信号线路长度的要求,将FPGA放置在尽可能接近PCI接口的位置。闪存芯片中存储的是FPGA的初始配置信号,当Select Map接口上电时将该信号下载到FPGA,基于SRAM的FPGA失电时配置信号就会丢失,所以需要通过闪存存储配置信号,初始配置信号控制PCI接口芯片和自重构控制器。一旦初始配置完成,主机PC就会根据算法需要通过PCI总线下载部分比特流到可重构FPGA。

现有的可重构硬件平台一般都是用多个FPGA设计实现,本文给出的硬件设计只用一片FPGA即可实现,但是这也会引入一些额外问题,比如: 芯片内部连接、通信协议规范、任务分配等。近年来随着FPGA可用资源的增多,一片FPGA即可实现复杂算法,这种单一芯片解决方案的好处是不需要考虑FPGA各个模块设计的复杂性,而且将按线路发送的内部芯片信号线的通信限制转换为算法设计。

2. 2 单一芯片结构的FPGA划分

同时处理PCI总线和算法的单个FPGA芯片可以划分为以下2 个部分: 固定部分和可重构部分。固定部分包括PCI核心和配置控制器,而且启动时通过Flash下载到FPGA的配置比特流进行初始化,可重构部分根据算法通过PC机下载的比特流进行动态重构。运用FPGA设计部分可重构系统时,固定部分配置控制器在可重构部分内部执行动态重构操作,这两部分是通过总线宏[9]进行连接,该指令给出了物理接口信号线的定义,划分的FPGA由4个主要部分组成,如图2 所示。

2. 3 模块化设计流程

在实现算法的可重构部分时,每次都将整个设计( 包括固定部分) 当作一个整体进行编译和测试,这种方法是不可取的而且也很麻烦。FPGA模块化设计流程中,每个模块( 包括固定部分和可重构部分) 独立进行开发、测试和调试,只有预留模块区域和总线宏接口必须保持一致,并且通过用于单一模块设计的顶端信息进行定义。模块边界是通过用于布局布线步骤模块区域进行定义的,而逻辑位置和信号路由以外的区域都是无效的。对于单个模块设计需要生成一个对单个模块配置信息的部分比特流,可重构部分根据算法生成该部分比特流,并由PC机下载FPGA动态重构相应的部分。全部比特流由顶端和固定部分设计生成并存储在闪存中用于FPGA初始启动配置。

2. 4 运用内部配置访问通道( ICAP) 自动重构

固定部分的配置控制器通过FPGA的ICAP执行自动重构[10],并且这一过程的执行不受主机CPU的影响。配置控制器通过PC机共享内存获得可重构数据,这可以避免FPGA芯片上的可用内存对配置比特流大小的限制。而其他可重构系统则是运用有限的片上内存来存储可重构数据,由于需要反复加载配置比特流,并逐步重构FPGA的部分区域,因此可重构过程的时间就会很长。第二个限制是发送可重构比特流线路的吞吐量,如果使用低吞吐量的传输线路就会限制可重构的速度,比如RS - 232串行线。本文中PCI核的Busmaster直接使用PC机的内存来存储整个配置比特流,通过PCI总线传输到ICAP的数据是一个连续数据,这就消除了重构增量,并且高吞吐量的PCI总线使得重构速度更快,ICAP通过Select Map总线协议将配置控制器用作为ICAP与PCI总线之间的一个桥梁。为了给各个模块提供独立的时钟,把片上双向端口的RAM模块设定为缓冲区,该方法避免了PCI接口和Select Map接口之间共享RAM空间使用权的交换,因此最大限度地缩短了访问ICAP的时间。该模型实现使用FPGA的2 个BRAMS,总的缓冲区大小为256 × 32 bit。配置控制器内部采用与PCI总线宽度相同的32 位,为了通过8 位的Select Map总线,运用一个多路复用器将这32 位分隔为4 个单字节项,在这个过程中,当PCI总线不能提供足够的数据缓冲区时,控制器通过停止配置时钟暂停操作,一旦再次获得数据就会恢复操作。

2. 5 固定部分设计

PCI接口将部分重构比特流传输到FPGA,并将算法下载到FPGA来交换数据,而这两种数据的传输都是通过PCI总线的Busmaster来完成,因为Busmaster可以直接访问PC机的共享RAM获得数据。这确保了FPGA设计片上内存小的限制,并且还为PC的直接数据传输提供了最快的速度,固定部分的设计如图3 所示。固定部分主要由以下几个部分组成: 固定部分控制区、可重构部分控制区、公共部分控制区、流数据区和Select Map数据区。

固定部分访问PCI总线的Busmaster,控制所有驱动设备之间通信和从PCI总线到可重构部分( 或者可重构部分到PCI总线) 的数据传输。固定部分作为共享PCI总线面向数据包的传输和可重构部分连续数据流传输之间的一个桥梁。固定部分分为以下3 部分控制: 公共部分控制区、可重构部分控制区和固定部分控制区,而2 个数据部分包括流数据和Select Map数据。公共部分控制区有PCI的特定访问功能并且包含中断生成逻辑。可重构部分控制区使得可重构部分的静态寄存器很容易实现,该寄存器使得读取和写入单独处理,运用这些寄存器,可重构部分可以从PC机端和返回状态信息报告获得设置值,可重构部分还可以通过固定部分设计调用中断。固定部分控制区控制PCI总线和可重构部分之间的数据传输任务。数据部分控制PCI总线和可重构部分之间的从双端口RAM模块( BRAMs) 到缓冲区之间的数据,双端口特性允许BRAMs访问不同时钟域的两侧,一个端口访问PCI侧并由PCI时钟驱动,而另一端口访问可重构部分并由其时钟驱动。为了满足PCI总线的访问延迟时间,缓冲区的大小设定为256 × 32 bit ,固定部分控制区的功能模块如图4所示。

由图4 可见固定部分控制包括一个Busmaster启动程序和Busmaster地址生成程序,其中Busmaster启动程序通过PCI总线在PC机上对RAM进行分配从而实现Busmaster的数据传输,这一过程触发内部BRAM缓冲区为满状态。Busmaster地址生成程序跟踪PCI寻址,又因为在共享PCI总线上的数据传输在任何时候都可以被中断,所以这种跟踪是必需的,当中断发生时,只有当总线再次可用才可在下一地址到来时重新启动数据传输。

数据传输中枢模块通过4 个目标数据流对PCI接口进行调度,而这4 个目标数据流分别是上行数据流、下行数据流、读Select Map和写Select Map,这4 个目标在同一个PCI接口实现,因此数据传输中枢模块通过一个简单调度算法实现公平分配数据传输申请,该调度算法的具体要求是: 当有多个申请在等待时,同一个目标不可以连续2次对PCI接口发出申请。每个数据流目标有一个与之相对应的控制区,该控制区生成数据传输申请并监视数据区BRAM缓冲区的状态。

3 实验结果

对于上一节中描述的固定部分设计,运用Xilinx ISE13. 2 这一编译软件对型号为XC5VLX50T的FPGA进行程序编译,FPGA的区域ISE布局规划如图5 所示,其中白色部分为固定部分,而灰色部分为可重构部分。图6 给出了固定部分的资源使用情况,固定部分一共使用的模块数为2 211,而这一系列FPGA的总的资源数为7 200,因此约占总资源的30. 71% 。另外固定部分还运用了3 个BRAM,而总的BRAM数为2 340,因此约占总数的0. 13% 。由实验结果可以看出该设计方法能够有效实现FPGA的硬件重构,而且其物理硬件设计简单。

4 结论

共享存储可重构计算机的优化 第8篇

1 共享存储的可重构计算机介绍

可重构计算机主要由硬件和软件两部分组成。硬件方面主要是指编程的重新配置。硬件和软件部件较为相像。软件和硬件的结合是目前的最先进的系统模型,它的功能是只有软件或硬件的一部分完全无法实现的。可重构计算机能够完全取代了旧的程序模式,丰富和发展原有的计算机模型。加快计算机方面的发展和革新,从积累实现的过程中一个质的飞跃。然而,由于目前的技术水平还没有达到一个较高的水平,因此,为了实现可重构计算机,需要找到相关技术人员在当前技术的基础之上,以实现一个有针对性的研究来研究可重构计算机。面临的信息量的增加,以及它们的应急处理的其他方面是当前共享存储重构的计算机的主要问题。对于普通用户来说,可重构计算机系统主要是基于PCIE(和基于计算机的),通过相关的网络数据的处理和分析,等等。被连接到PCIE和FPGA,然后让FPGA访问系统的内容,计算出的数据信息就是用户需要的。

2 共享存储可重构计算机要点

2.1 计算机硬件粒度

硬件粒度是对计算机进行集中的、硬件方面的综合进行的相对完整的描述。在可重构计算机系统重新配置的硬件的集中量,要素的整合将确定硬件的利用是否高效。正常情况下,硬件的数量与其效率是成反比的情况,所使用的硬件的数量是较少的,使用效率将越高。换句话说,如果可重构计算机使用较少的硬件,那么相应的操作效率将得到改善,这种情况将被认为是提高了硬件的粒度,相反也是这样的情况。此外,如果计算机硬件的粒度增加,则伴随而来增加的效率将使得应用更加强大,并在同一时间,使硬件的使用量变少,降低成本。可是现在,计算机硬件的粒度是相对稀缺的。如果设计了更加简单的电路,就需要更加注重逻辑门,包括有以下的逻辑:非门,与门,或门,或非门,与非门,等。为了更好的设计出更加简单的电路,部分研究者认为,或许可以将一般意义的可重构计算机(FPGA)的主要单位,使用乘法器和算术逻辑单元来进行代替。这样设计可重构计算机系统单元会使得算法更加抽象,因为它是由算术单元来实施的重构,也被叫为功能块计算机;此外,通过FPGA和相关的计算机组件和重构,可以极大地使FPGA的优点得到发挥,提升计算机的能力。这种设计通常被称为网络表计算机。

2.2 处理器与硬件之间的距离

在该过程的操作阶段完成可重构计算机,计算机系统仍需要进一步对功能进行完善和增强,以确保其有效运转。比如,系统会检查是否连接到总线硬件接触良好,能否支持中央处理器有效工作。只有完善了硬件和中央处理器CPU,才能在真正意义上实现对于计算机通信的提升。

2.3 可重构计算机的容量分析

整体地看,可重构计算机在硬件方面对数量压缩,重新设计计算机系统,从而达到重构、增强计算机功能的作用。然而,那仅仅是理想的状况,在现实中会存在很多差异。所以软件和硬件的选择是非常重要的,这种选择会在很大程度上影响计算机的功效。此外,其综合实力还会受到技术人员的水平的影响。

3 共享存储可重构计算机的优化措施

共享存储可重构计算机主要是以FPGA为载体,利用NIOS2对数据以及信号进行协助处理,然后通过独立的计算完成其工作内容。同时,由于缺少足够的NIOS2的频率,所以最终会有较短的代码。和NIOS2不同,GPP在真实的运作中,会要求计算机提供更大的计算能力。因此,为了实现该共享存储器可以被构造为优化的可重构计算机,有必要确保NIOS2和虚拟地址同时独立。

3.1 访问独立虚拟存储

独立虚拟存储包括两个方面的内容:

(1)翻译和查阅地址;

(2)核算、传送、统计数据。

地址转换和访问,是在翻译的同时,总线对PICE进行设置,然后综合它的表格数据和地址,将其相互呼应。从而使得工作效率有所保证。PTE和PGD是对实际地址和虚拟地址的映射。而CEH是解答错误项。在处理期间,GPP获知错误故障。PCIE可以转换数据总线,它的特点是效率很低。为此,FPGA可由应用程序组件的方法来计算,以提高其工作的质量和效率。

3.2 加强计算机的同步存储

POSIX信号可以实现同步存储,它是一个16B的整形变量。对POSIX的有效访问需要访问语句是原子的。因此,他们要求在原报表的操作设计人员,要确保执行的原子操作。即当一个操作要对内存进行访问的时候,只有它自己能够访问,而别人是不能再同一时间进行访问的。这样可以确保访问过程不出错。

3.3 评测共享存储可重构计算机的性能

在实现各个部分的优化过程后,需要对所有的工作进行最终的评测,来确保实现优化计算机的目标。为此,可以进行以下一些方面的评测:

(1)评测远程服务系统。

(2)评测操作流程的流畅程度。

(3)评测虚拟访问能力。

(4)整体对共享存储可重构计算机的性能进行分析。

经过以上四个方面的分析和评测,可以及时发现在设计和实现过程中发生的各种错误和遗漏,从而及时进行改进,以期达到设计之初的目标。

4 总结

综上所述,对可重构计算机的研究和发展,可以使我国进一步在信息技术领域取得更进一步的发展,与世界高新技术水平和研究水平学习,然后自主创新,实现高新科技带动的快速发展,从而更好地服务于我国的经济建设。在这一方面,我国目前仍然有很长的路需要走,但是我们的科研人员艰苦朴素,脚踏实地,定能在可重构计算机方面取得不俗的进展。

参考文献

[1]陈小文,陈书明,鲁中海等.多核处理器中混合分布式共享存储空间的实时划分技术[J].计算机工程与科学,2012,34(7):54-59.

上一篇:先天性心脏病手术下一篇:生化检验项目