嵌入式可重构信号处理计算机设计技术

2020-11-17 06:56刘婷婷
计算机工程与设计 2020年11期
关键词:信号处理嵌入式滤波

赵 谦,邓 豹,刘婷婷

(中国航空工业集团公司 西安航空计算技术研究所,陕西 西安 710068)

0 引 言

动态可重构技术可以实现硬件资源的分时复用,能够有效地解决嵌入式系统的小型化、低功耗、高可靠等问题,如何将动态可重构技术应用到嵌入式计算机中成为目前研究的热点。文献[1]讨论了动态可重构技术如何满足实时系统中的最坏执行时间;文献[2,3]讨论了利用动态可重构技术提高计算系统的容错能力;文献[4]讨论了一种动态可重构系统的仿真工具,用于提高可重构计算系统的设计探索能力。随着嵌入式SOC技术的发展,动态可重构技术在嵌入式系统中的应用更加广泛。文献[5]利用动态可重构技术减少可穿戴设备的SWaP;文献[6]将动态可重构技术应用到无人机机载信号处理平台中。但是,目前尚缺少对嵌入式动态可重构计算机的体系架构和控制方法的系统研究。因此,本文在研究动态可重构技术的基础上,提出一种可重构信号处理计算机系统架构,在原型系统上讨论计算机系统的重构方式和控制方法,并对其功能、性能进行验证分析。

1 系统架构

1.1 动态可重构技术

动态可重构技术包括两种典型的实现方法:部分可重构和软件可编程重构,本文基于部分可重构方法讨论嵌入式信号处理计算机的设计方法。Xilinx公司推出的Zynq UltraScale+等系列FPGA,提供了部分可重构的控制接口,为动态可重构技术的实现提供了可能。Xilinx公司在FPGA芯片中提供了一个ICAP(internal configuration access port)内部配置接口,该接口允许用户控制和回读配置文件,以此来完成对FPGA中部分逻辑区域的动态重构。同时,Xilinx公司XC5系列以后的FPGA,允许用户通过IP重用技术快速地构建嵌入式SOC系统,以此实现嵌入式信号处理计算机的快速开发。图1为典型的FPGA动态可重构结构图,FPGA上构建嵌入式SOC用于控制管理,静态区域实现公共的通用算法,可重构区域实现定制的专用算法,专用算法通过动态可重构技术分时共享可重构区域的硬件资源。FPGA可以有多个可重构区域,每个可重构区域可以被多个专用算法分时复用。嵌入式信号处理计算机中使用动态可重构技术可以提高系统的灵活性和可扩展性,有助于实现硬件资源的优化配置。

图1 典型的FPGA动态可重构结构

1.2 可重构信号处理计算机系统架构

本文结合动态可重构技术、高速串行交换技术、嵌入式SOC技术以及多核技术,提出一种可重构信号处理计算机系统架构[7],如图2所示,使用多核DSP和FPGA两种计算单元:其中DSP为系统提供高效能的数字信号处理能力;FPGA配置嵌入式SOC系统和动态可重构区域,为系统提供简单的通用处理能力和可重构能力,嵌入式SOC系统控制ICAP接口,实现对可重构区域中硬件任务的实时加载。可重构信号处理计算机系统架构采用SRIO作为主要的内部互连网络,通过RapidIO交换芯片实现DSP与FPGA之间的通信互连。同时,DSP与FPGA之间也采用其它方式互连,如PCIE、以太网、I2C总线等,用于系统的辅助通信,以增加系统的灵活性。RapidIO交换芯片配备配置管理器,可由CPU、单片机、CPLD等实现,用于交换网络的监控、管理。

图2 可重构信号处理计算机系统架构

2 设计技术

2.1 原型系统

根据可重构信号处理计算机系统架构实现可重构信号处理计算机原型系统,如图3所示,原型系统由信号处理节点和可重构计算节点组成,两者间通过SRIO交换网络和I2C总线互连,SRIO交换网络用于任务数据的传输[8],I2C总线用于控制命令和工作状态的传输。原型系统中的应用任务被划分为通用处理任务和可重构计算任务,可重构计算任务主要是信号处理应用中的特殊功能和专用算法。信号处理节点主要执行通用处理任务,并向可重构计算节点分配可重构计算任务。可重构计算节点主要执行定制的专用计算任务,根据信号处理节点的重构命令,实时地加载相应的配置位流来改变硬件功能,实现硬件专用算法的动态配置,在发挥硬件加速优势的同时实现软硬件算法的统一调度。原型系统中信号处理节点选用TI的TMS320C6678[9]作为主处理器件,可重构计算节点选用Xilinx的XC7K325T[10]作为主处理器件。

信号处理节点中多核DSP上执行信号处理应用的主程序,可重构计算节点作为协处理器和加速单元执行专用算法。一般的处理流程中,信号处理节点通过I2C通信接口向可重构计算节点发送专用算法的重构命令,并通过SRIO通信接口将相应的任务数据传输到可重构计算节点。可重构计算节点接收到命令后,完成专用算法的调度、配置和执行,通过SRIO通信接口返回处理结果,并通过I2C通信接口上报节点状态和任务执行情况。可重构计算节点中构建的嵌入式SOC系统,包括MicroBlaze处理器、存储器控制器、SRIO接口、ICAP接口等,以提供通用的控制处理功能,用于执行系统监控、计算控制、重构控制和数据交换等功能单元。系统监控功能单元用于监控本地计算功能单元的执行状态与重配置状态。计算控制功能单元根据通信接口传递的计算任务发起响应,并结合系统监控情况,以确定在可重构区域加载相应的功能单元。

2.2 重构方式

原型系统支持两种重构方式:自重构方式和被重构方式,如图4所示,自重构方式由可重构计算节点上的嵌入式SOC完成重构任务的调度,重构任务的配置位流存储在可重构计算节点本地,通过本地存储接口实现重构任务的加载;被重构方式由信号处理节点中的多核DSP或者嵌入式信号处理计算机外部互连的其它处理器完成重构任务的调度,重构任务的配置位流存储在可重构计算节点外部的存储体中,通过互连总线实现重构任务的加载。两种重构方式中,最终均由ICAP接口实现可重构区域任务的重加载。原型系统中,自重构方式用于实现本地专用计算功能的动态重配置,被重构方式用于实现系统功能重构或者任务故障迁移时其它计算功能的动态重配置。本地专用计算功能的配置位流存放在FPGA的PROM中,可通过EMC控制器实现加载,系统功能重构或任务故障迁移时的配置位流存放在DSP的FLASH或者外部控制节点的存储器中,通过SRIO接口实现加载。一般地,可重构计算节点的嵌入式SOC系统根据信号处理节点的重构命令或者规划的配置蓝图,采用自重构方式实现可重构区域任务的动态重加载。信号处理节点的DSP或者外部处理器根据系统的重构命令或者故障迁移策略,采用被重构方式实现可重构区域的动态重加载。

图4 原型系统的重构方式

2.3 控制方法

原型系统中任务重构的控制管理流程,如图5(a)所示,主要分为4个阶段:命令解析阶段,信号处理节点或嵌入式SOC系统接收重构命令,并解析重构命令、识别重构任务;重配置阶段,根据命令读取相应的位流文件头部,解析位流头部获取位流文件的长度以及初始地址,并控制ICAP控制器实现位流的加载;任务执行阶段,初始化重构的功能单元,并执行功能任务;状态反馈阶段,监控功能任务的执行状态,根据重构功能任务的执行情况,向应用程序反馈相应的执行状态。

图5 控制方法

图5(b)和图5(c)详细定义了原型系统的重构命令,可以实现任务的动态重构、位流校验、功能任务状态获取等。重构命令由Start、Command、Reconfig和Stop这4部分组成:Start和Stop标识重构命令的开始和结束;Command标识命令的任务内容,图5(c)中定义了6种命令和7种状态,并可支持16种命令和16种状态的扩展;Reconfig可以有多个,标识不同重构区域对应的功能任务。可重构计算节点接收到读取状态命令时,通过上报状态命令回复相应区域的任务状态,上报状态命令中任务号的 4 bit 编码表示当前区域的状态码。

3 功能验证

在原型系统中采用自重构方式,实现中值滤波和均值滤波信号处理算法的动态重构。中值滤波[8],它是典型的非线性信号处理技术,对消除椒盐噪声非常有效;均值滤波[9],它是典型的线性信号处理技术,对消除高斯噪声非常有效。原型系统验证如图6所示,DSP信号处理节点接收高斯噪声图像时,信号处理节点通过I2C接口向可重构计算节点发送自重构加载均值滤波算法的命令,可重构计算节点的嵌入式SOC系统接收到命令后,加载并初始化均值滤波算法,最后可重构区域中运行均值滤波位流完成高斯噪声图像的处理,并送VGA接口显示。同样,DSP信号处理节点接收椒盐噪声图像时,发送加载中值滤波算法的命令,可重构计算节点完成中值滤波算法重构,并实现椒盐噪声图像的滤波处理,最后送VGA接口显示。当可重构区域没有重构任务时,可以在该区域加载空位流,可以有效降低可重构计算节点的功耗。

图6 原型系统的实验验证

4 性能评估

强实时的嵌入式信号处理计算机中引入动态可重构技术,在提高硬件资源利用率的同时,还需要考虑系统的实时性要求。

4.1 实时性

可重构信号处理计算机中,多个硬件任务分时共享同一个可重构区域,在系统运行时可进行硬件任务的动态切换。但是,在强实时嵌入式信号处理系统中,一般的软件任务切换时间为数10 μs,而使用动态可重构的方法进行硬件任务切换时,切换时间为数10 ms。在可重构信号处理计算机中需要减小硬件任务切换时间,以保证满足系统的实时性要求。硬件任务的切换时间包括任务调度时间、动态重构时间和任务初始化时间,其中硬件任务切换的时间开销主要用于实现任务的动态重构,硬件任务的调度时间、初始化时间和软件任务的时间开销一致,所以减小硬件任务的动态重构时间是提高可重构信号处理计算机实时性的主要途径。

一般地,可以通过缩小配置文件的规模和提高配置带宽来缩短硬件任务的重构时间。在可重构硬件任务的设计初期,通过合理的任务划分和可重构区域的选择,可以有效地缩小配置文件的规模。系统的配置带宽取决于硬件任务加载的路径,可重构信号处理计算机原型系统中,硬件任务位流存放在NOR FLASH中,由嵌入式SOC系统读入并从ICAP接口写入FPGA的配置空间,其中NOR FLASH的实测读带宽为2 MB/s,ICAP接口的实测写带宽是300 MB/s,系统设计中可以通过挂接NAND FLASH等快速存储设备来提高配置带宽,同时可以使用配置缓冲的方法来提高配置带宽。

表1为计算机原型系统“中/均值滤波”动态重构的时间,中/均值滤波算法的位流大小为100.8 KB,分别测试了无缓冲、BRAM缓冲和DDR3缓冲时的动态重构时间,虽然BRAM缓冲能获得较高的配置带宽,但是FPGA芯片内部BRAM容量有限,能够容纳的配置位流规模较小,在嵌入式信号处理系统的设计中实用性有限。DDR3的存储容量较大,实用性更强,更加符合嵌入式环境的应用需求。一般地,以Xilinx公司的Kintex-7系列FPGA为例,FPGA 位流总大小为10 MB,动态重构功能单元的位流按 1 MB 估算(实际应用中动态重构功能单元的位流远小于该数值),使用DDR3缓冲方式,动态重构时间约8 ms,远小于一般的图像信号一帧处理时间33 ms,均能满足嵌入式信号处理系统的实时性要求。如果能够采用流水技术,将重构时间隐藏到处理流程中,可以更好提高嵌入式信号处理系统的实时性。

表1 动态重构时间

4.2 硬件资源利用率

本文提出一种资源利用率提升比的量化分析方法,评估可重构信号处理计算机中采用中值/均值滤波算法时的硬件资源利用率提升情况。表2为可重构区域中两种滤波算法对FPGA这3种资源的占用情况。

表2 中/均值滤波FPGA资源占用情况

定义资源利用率U,r为任务使用资源,R为任务占用资源

(1)

定义资源利用率提升比A,U1为重构方式资源利用率,U2为非重构方式利用率

(2)

(3)

(4)

类似,可以推算出SLICEL和SLICEM的资源利用率提升比,由此,可以得到FPGA这3种资源的利用率提升比曲线(SLICEL和LUT的利用率提升比曲线近似,图中大部分重叠),如图7所示。可见ALUT至少为21.7%(当Tx=33 ms时),即至少可以将LUT资源的利用率提升21.7%。同时,同一可重构区域中多个硬件任务占用的资源越接近,任务占用可重构区域时间越短,则可重构区域资源利用率提升比越高。所以,在系统设计中应当将任务时间短、功能耦合度低、占用硬件资源接近的功能任务划分到同一个可重构区域中,可以更好提高硬件资源的利用率。

图7 资源利用率提升比

5 结束语

本文在可重构信号处理计算机原型系统上讨论了系统的重构方式和控制方法,采用典型算法对信号处理计算机原型系统进行了功能验证,并对系统的实时性和资源利用率提升情况进行了量化分析,得出以下结论。

(1)可重构信号处理计算机,可以正确执行典型的嵌入式信号处理应用任务,能实现系统功能的动态重配置。

(2)采用BRAM或DDR3等配置缓冲的方法,可以减小硬件任务的动态重构时间,使得可重构信号处理计算机能够满足系统的实时性要求。

(3)可重构信号处理计算机可以有效地提高硬件资源的利用率。

同时,可重构信号处理计算机在嵌入式系统工程中成熟应用,还需要解决计算机系统的可靠性设计、复杂应用中重构任务划分、软硬件任务统一调度等技术难点,这些问题都留待下一阶段的研究工作进行解决。

猜你喜欢
信号处理嵌入式滤波
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
TS系列红外传感器在嵌入式控制系统中的应用
《信号处理》征稿简则
《信号处理》第九届编委会
《信号处理》征稿简则
《信号处理》第九届编委会
搭建基于Qt的嵌入式开发平台
一种GMPHD滤波改进算法及仿真研究
基于自适应Kalman滤波的改进PSO算法
RTS平滑滤波在事后姿态确定中的应用