什么是异构多处理系统,为什么需要异构多处理系统?
使有一个处理器核发生错误事件,子系统也可以继续运行。
配置和安全单元负责系统配置,包括加载处理器第一级Bootloader、可编程逻辑的配置bit stream,程序代码和bit文件均有可选的加密认证和解密功能。配置和安全单元还可提供持续的安全监控,比如过压或欠压、低温或高温、试图提取系统信息访问等。
片上可编程逻辑为异构处理带来了充分的灵活性。可以通过添加额外的现成的软核来处理特殊应用的计算任务,也可以在不同层级添加多pipeline和多pipeline stage自定义软核实现数据流的大规模并行处理。
4 异构多处理系统实例
机器人拾取和放置装配线是一个很常见的机器视觉和控制应用实例,这个应用通常有以下基本功能:
①高分辨率相机视频采集系统;
②包括亮度对比度调节、失真校正和消除死点等功能的视频图像处理;
③目标检测和识别;
④标记组件在装配中正确位置的算法决策;
⑤机器手臂运动路径选择;
⑥电机驱动控制;
⑦安全事件检测和关机;
⑧用于状态显示和系统控制的图形用户界面;
⑨配置和安全管理。
上述的每一个功能都可能需要特定的处理能力,比如,让通用处理器来处理实时HD图像,处理器很容易就会负载过重无法在特定时间完成处理。
那么,就让我们考虑使用这种异构多处理系统实现可能的解决方案。为了有助于更加形象的理解,Xilinx将会以Zynq UltraScale+ MPSoC控制机器人系统在平板电脑上玩纸牌游戏的例子来诠释。系统的部分功能已经实现并在“Embedded World 2016”展会上展示。
4.1 视频获取和处理
1080P60视频流要求3Gbps(373MB/s)的数据率,视频流路径上需要做的处理可能包括:亮度、对比度调节,白平衡,失真校正,死点剔除等。这些bit级处理用可编程逻辑完成非常高效,无需处理器太多参与。
4.2 目标检测和识别
初始对象检测通常需要扫描整幅图像寻找类似细节目标轮廓之类的关键特征,这项功能一般由可编程逻辑实现。一旦目标被判定为疑似目标,那么就可能需要执行更为复杂的算法对目标进行更进一步的决策判定。应用处理器通常负责目标识别的下一级数据量变小但算法更加复杂的处理。
在这个机器人纸牌游戏案例中,所有的图像都是通过可编程逻辑扫描,识别纸牌边界和定位游戏纸牌,以及纸牌的排列和花色。随着数据量明显降低,纸牌排列和边界图像被递交给应用处理器通过图像识别算法来识别排列和花色。
4.3 算法决策
算法决策一般是很复杂的处理,通常通用应用处理器可以很好的完成。在我们的例子里, 新牌打出的时候触发应用处理器计算新的关于牌的角色和运动可能的决策集。
4.4 运动路径选择
两点之间,直线最短,这样的路径会导致目标在两个端点之间发生冲突。运动路径通常被分为多段,并且需要从传统的笛卡尔坐标系中翻译到机器人运行系统坐标系。在我们的多核异构系统中,这既可以通过应用处理器完成也可以通过实时处理器完成。
机器人纸牌游戏相对而言会比较简单,因为在平板电脑上运动路径没有潜在的障碍物。我们在应用实例里选择了Delt机器人,Delt机器人结构通常是三个并联手臂连接到一个和受动器相关的通用关节执行器上。因此,受动器在3D笛卡尔坐标系中的运动必须翻译成三个独立马达的运动矢量,在这个应用中所需的x,y,z坐标参数传给实时处理器来计算三个机械手臂各自的运动路径。
4.5 电机驱动控制
电机控制算法用于控制加速、正常运行和减速,对机械约束允许的最小运动时间进行优化,确保在加减速的过程中不会对部件造成损害,减小能量消耗等等。上述计算和运动驱动一起,通常都是通过实时处理器来实现,实时处理器在这些方面体现出卓越的性能,在我们的例子里也是如此。实时处理器工作在锁步模式下来增加可靠性。
4.6 安全事件检测和关机
安全事件可以是人进入机器人视野,而机器人可能会对人类造成伤害,能够识别这一事件并且在一定程度上快速响应保护人类对系统而言至关重要。我们机器人纸牌运动员在其周围构建了一个红外线墙,当某一光束中断,机器人的电源会马上关闭,然后系统会立马停止。在这个例子里,可以使用三冗余平台管理单元,这个高度可靠的处理单元可以接收来自红外线墙的输入,在事件检测时关闭机器人。
4.7 图形用户接口
图形用户接口(GUIs)通常运行在Linux操作系统上层,Linux支持从基本的窗口管理器扩展到完整桌面环境。
这个纸牌机器人系统需要显示纸牌桌界面,实时预览HD相机图像,纸牌排列和花色检测窗口显示以及游戏状态窗口等等。Ubuntu桌面环境提供了一个很好的平台,
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)