让生物识别技术成为FPGA动态部分重配置功能的“杀手级”应用

时间:2011-02-27来源:电子产品世界

  重配置控制器

  设计高效的重配置控制器是部署面向单一环境 FPGA 的 PR (部分重配置)系统的成功关键。虽然在重配置 PRR 期间,FPGA 的非重配置区域仍然处于工作状态,但 PRR 资源此时并没有处于工作状态,故应尽量加快重配置过程,以便最大限度地降低开销。重配置的时间取决于三个因素:数据总线宽度、重配置频率以及比特流大小。前两个因素与接口特性有关,而最后一个与 PRR 的大小及其中的部分重配置模块 (PRM) 的设计复杂程度有关。

  我们的工作实现了一个重配置控制器,其能在运行时将部分比特流以高带宽从外部存储器传输到 FPGA 的片上配置存储器中。在不限制部分比特流大小,同时将外部存储作为共享资源(各种处理器可通过系统总线同时访问)的条件下,仍然可以达到Virtex-4最高重配置带宽。

  在系统初始化阶段,部分比特流将在运行中被下载到 FPGA 配置存储中,并从外部的Flash中传输到外部 DDR-SDRAM。该存储器与多端口存储控制器 (MPMC) 相连接,因而成为系统中任何主从处理器都可以访问的资源。可以使用 CoreConnect PLBv46 总线等不同类型的总线连接到 MPMC,这些总线可用作通用系统总线,而赛灵思 Cachelink (XCL) 总线则用于 CPU 的快速指令和数据缓存。系统 CPU (MicroBlaze) 实际上是与这两个总线相连接的。

  不过我们的重配置解决方案是建立在新总线基础之上的,即专用于快速链接外部 DDR-SDRAM 存储库和 ICAP 接口之间的原始端口界面 (NPI)。作为我们重配置控制器的组成部分,我们设计了可用来处理 NPI 协议的主系统存储管理单元 (MMU)。外部 DDR-SDRAM(部分比特流)和 ICAP 原始之间的连接需要经过一个内部 FIFO 存储器。借助这种方法,我们可以实现两个不同的定制界面,它们各自拥有独立的数据总线大小和速度,一个与 NPI 协议耦合,另一个则与 ICAP 协议进行耦合。

  FIFO 的写入端口与 NPI 相连接,并使用 64 位数据总线;而 FIFO 的读取端口则连接到 ICAP,使用 32 位数据宽度,这是 ICAP 在 Virtex-4 器件中的最高数据宽度。FIFO 的读取端口和写入端口(在 NPI 侧和 ICAP 侧)的运行频率为 100MHz。为使传输时延降至最低,主系统 MMU 负责以 64 字(32 位)突发传输向内部 FIFO 传输配置数据,从而完成模块的重配置。这是可接受的最大突发长度,因而所有的重配置数据传输都能够以最低突发时延完成。在另一侧,只要 FIFO 不为空,重配置控制器就能读取已存储的 FIFO 数据,并将其以 32 位格式传输给 ICAP 接口。重配置控制器(就是主 MMU)负责处理对大型 DDR-SDM 存储器进行直接存储器存取 (DMA)。为了实现,我们定制了一个从MMU,并在其中设置了多个控制寄存器,将这个MMU挂在PLBv46总线上并由CPU直接控制。

  采用这种方式,CPU 仅需做两件事情:配置在 PRR 中下载的部分比特流的初始地址和大小;向主系统 MMU 发出执行指令,以启动重配置过程。而后,主系统 MMU 开始将比特流以 DMA(直接内存存储)的方式直接传输给内部的 FIFO,随后再从该 FIFO 传输给 ICAP 接口。一旦传输完毕,重配置控制器就会通知 CPU。

  结果,即使在 CPU 通过 XCL 或 PLBv46 总线访问 DDR-SDRAM 的同时,我们也能实现部分比特流传输的最大吞吐量。其最终原因在于 CPU 在内部 BM(block-M)高速缓存中运行程序流,将对外部 DDS-SDRAM 的访问释放给了重配置控制器。值得重点指出的是,这个为部分比特流和软件应用分配的 DDR-SDRAM 存储器并非专用资源,而是共享资源。即使如此,该方案与其它现有的重配置控制器方案相比性能也有显著的改善,因为其能够实现 Virtex-4的最大重配置吞吐量(通过 32 位数据总线以 100MHz 的频率或 3.2 Gbps 的速率将部分比特流传输给 ICAP)。

  实验结果

  从本质上讲,文中所述的嵌入式自动指纹识别系统是一种高性能图像处理应用,因为它拥有大量的并行性,且需要实时认证响应。从人机工程角度上讲,此系统可使每位用户的认证时间不超过 2 s或3s。

  该设计流程涉及多个开发环路。首先,我们在 PC 平台上的 MATLAB 的软件里开发算法。随后,我们将软件代码用 C 编程语言导入到嵌入式软件中,并且首先在同一 PC 上执行,以确认我们能够获得同样的结果,然后在 FPGA 器件内合成的 MicroBlaze 嵌入式微处理器上执行。

  通过这种方式,Virtex-4 器件可在不使用任何定制硬件协处理器和不达到实时性能要求的情况下实施基于 MicroBlaze 的纯软件解决方案。为缩短运行时间,我们根据任务概要,下一步工作是引入 PRR,并在上面构建各种定制生物识别协处理器,使用硬件/软件协同设计解决方案。此刻,我们已经采用 C 编程语言和 VHDL 硬件描述语言完成了此系统的开发工作。

  我们采用 268x460 像素的 8 位灰度指纹图像进行了一些识别测试。同时,我们在基于 Virtex-4 的 PR 系统上和运行速度为 1.83GHz 的 Intel Core 2 Duo T5600 处理器的个人电脑上也进行了相同的测试。然后,我们运行相同的算法,包括纯软件实施方式和软硬件混合实施方式,以比较登录和识别阶段的性能。

  如果不考虑采集工作(由于扫描传感器的性能限制,需以 5ms 积分时间采集 100 片并在运行中重构图像,故采集时间固定为 500ms),PR 方法可以把运行其他处理任务所形成的延迟降低到 205ms。与在 PC 上运行纯软件方法的 3,274ms 的延迟相比,PR 方法可提高 16 倍速度。

  因此,表 1 说明运用并行和流水线技术进行软硬件协同设计,同时配合低重配置延迟的 PR 技术,明显实现实时认证是可行的。另外,在动态重配置时,可以指定模块运行的频率,这个频率是由新模块的特性所决定。在我们的设计中,所有模块运行在50MHz或者100MHz的频率下。

  此外,重配置流程一直以 100MHz 运行,在每个时钟周期里传输 32 位比特,从而保证 Virtex-4 上的最低重配置延迟。根据每个 PRR 硬件环境的比特流复杂性,每个重配置流程花费的时间在 0.8ms(例如标准化)和 1.1ms(例如二进制化)之间。与生物识别应用的总体运行时间相比,该重配置时间可忽略不计。

  由于我们已经成功完成了概念验证工作,我们准备把原型导出到新一代赛灵思低端具有 PR 功能的 28 纳米FPGA 器件中(Artix-7 系列)。我们的目标是以最低的成本设计出一款能够在任何消费类电子产品中嵌入高性能且真正安全的生物识别系统。

1 2

关键词: 生物识别 FPGA 201102

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版