微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 可扩展动态重配置的新型FPGA平台设计

可扩展动态重配置的新型FPGA平台设计

时间:09-09 来源:互联网 点击:

负责托管任务的动态区域 (DR) 被包含操作系统服务硬件实现的静态区域 (SR) 所包围,同时在 RR 内外部提供通信介质。内部数据流通信依靠专用的片上网络。DR 和 SR 之间的接口采用总线宏并且有固定的位置。为实现该约束以及通信介质异构性的抽象,我们采用中间件方案来提供到可重配置分区的虚拟访问。RR 根据图 2 中定义的模型构建。FOSFOR 原型平台由能够直接支持这种架构模型的动态可重配置 FPGA 器件构成。我们选用了 Virtex-5? 器件,因为其能够重配置矩形区域。

我们根据预先测算的应用线程资源需求定义了调度/布局算法,以确保每个 RR 中 FPGA 元件(LUT、寄存器、分布式存储器、I/O)的高效利用。

图2 可重配置区域结构

图中文字:

控制 上下文(比特流) 静态区域 可重配置区域 静态区域 数据 硬件操作系统 控制 动态区域 线程 数据 片上网络 硬件分区

3 操作系统、片上网络及中间件

为具备灵活性,FOSFOR 架构使用了至少两个操作系统实例:一个为运行在每个处理器上且负责处理软件线程的软件操作系统;另一个为能够管理硬件线程的硬件操作系统。为了在性能、开发时间以及标准化之间实现最佳平衡,我们使用了现有的软件操作系统和全新的硬件操作系统。

该硬件操作系统利用赛灵思 FPGA 的动态部分重配置功能,在调度硬件线程方面与传统操作系统调度软件线程一样灵活。

对软件操作系统的要求是实时行为、能够处理多个处理器并提供基本的进程间通信服务。我们选用了一个免费的开源操作系统 RTEMS。出于兼容性原因,我们选用了 LEON Sparc 软核处理器,同软件节点一样,其也是免费和开源的。

该硬件操作系统(HwOS)利用赛灵思 FPGA 的动态部分重配置功能,在调度硬件线程方面与传统操作系统调度软件线程一样灵活。硬件线程由动态和静态两大部分组成。动态部分内含一个用来执行线程功能的 IP 模块和一个用来使服务调用次序与硬件操作系统同步的有限状态机。静态部分则内含一个与硬件操作系统相连的控制接口和一个用于与其它软硬件任务进行交换数据的网络接口。

为支持多种线程间数据传输需要,我们开发出了一种灵活的片上网络 DRAFT。传统操作系统的通信服务足以支持软件线程间的通信。但在我们的设计中,操作系统还需要支持硬件线程间的通信。为此,我们专门设计了 DRAFT 网络。我们针对一个或者多个 DR 逐一综合硬件线程,同时静态地定义每个 DR 接口。

通信接口的静态定义让我们可以定义静态的片上网络。一般来说,硬件线程要求高带宽和低时延,故片上网络必须提供高性能。我们为 DRAFT 选择的拓扑是一种胖树拓扑的扩展。我们设计的主要目的是为了限制资源开销,同时实现高性能的线程间通信。

硬件平台的异构性是设计人员部署应用时面临的主要的复杂性障碍。在 FOSFOR 项目中,这种异构性不仅来自软件域中的不同嵌入式处理器,还来自在单个平台上同时集成软件和硬件计算模型的做法。

采用中间件在硬件和软件间建立抽象层,并提供同构编程模型,可以很好地解决这一问题。中间件实现了一组虚拟通道,可以在不必理会线程的实现区域的情况下进行线程间通信。这些服务跨平台分布,提供了一个灵活的可扩展抽象层,让 FOSFOR 构想臻于完善。4 性能加速

构建硬件操作系统的主要原因出于性能和灵活性方面的考虑。该操作系统本可以采用纯软件或纯硬件。由于每次调用操作系统原语都会涉及开销,即线程等待时间,操作系统速度越快,浪费的时间就越少。为了评估开销,我们必须就硬件操作系统的时序和原始的软件操作系统 RTEMS 做一比较。

硬件本地运行只需要数十个周期,而为了访问共享存储器,硬件全局运行需要数百个周期。经我们评估,与软件操作系统的运行结果相比,本地创建-删除操作速度提高了 60 倍,其它操作速度也提高了约 50 倍。

硬件操作系统的资源使用(表 1)相差较大,这主要取决于激活的服务的数量及功能,比如我们为每项服务选择对象(信号量、线程等)的数量。我们使用赛灵思 Virtex-5 FX100T 来实现系统。表中列出了硬件操作系统使用的资源。余下的资源可用于实现其它系统组件及硬件线程自身。

表1 硬件操作系统 (Virtex-5 FX100) 的资源使用情况

对于网络性能,在 DRAFT 连接 8 个32 位字宽、缓冲深度为 4 个字,频率为100MHz 的组件的配置下,片上网络可使每个连接的组件的最大数据速率高达 1,040Mbps。网络的拓扑和路由协议保证不会出现争用和拥堵现象。在两个互连的组件间,至少一直保留着一条通信路径。数据通过 DRAFT 的平均时延接近 45 个时钟周期(450 纳秒),这符合许多应用的要求。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top