图 1:通用 FOSFOR 架构
图中文字:
灵活的操作系统 软件 线程 应用 中间件(虚拟化、分布、灵活性) 操作系统 1(X 服务) 操作系统 n(Y 服务) 硬件抽象层 (HAL) 软件通信单元 硬件通信单元 硬件 软件节点 (GPP) 硬件节点(可重配置区域) 片上网络 共享存储器
全局架构
全局架构如图 1 所示,其组成包括:
一系列非专用(通用)处理器 (GPP)。GPP 负责支持软件线程的执行,以及包括线程调度在内的一系列操作系统服务。GPP 在指令集架构和提供的服务数量方面不必同构。
一系列动态可重配置分区(也称可重配置区域 (RR))。动态可重配置分区负责并行或串行执行一系列硬件线程。与 GPP 相似,由于采用硬件操作系统 (HwOS),RR 也支持操作系统服务的执行。这些区域对应着精粒度 (FPGA) 或粗粒度(可重配置处理器)架构。
共享着一条或多条物理通信通道的虚拟通信通道,用于控制、数据和配置。控制通道负责把操作系统服务之间的通信分配给执行单元(GPP 和 RR)。数据通道负责传输与环境(器件、传感器)有关的信息和线程之间的信息交换。配置通道负责在配置存储器和执行单元之间传输软件线程(二进制代码)和硬件线程(部分比特流)的配置。
每个处理器都有自己的本地存储器。该存储器负责存储本地数据,在适用的情况下,也可存储软件代码。连接到数据通道的共享存储器可以实现不同处理器上线程间的数据共享。每个执行单元都可以访问共享存储器上存储的数据和软件执行资源程序。每个资源还可以访问配置存储器,以保存和恢复其执行上下文。采用这种结构,可以在任何执行资源上实现任何线程或服务。
在 RR 内部,只有硬件任务需要动态重配置。负责托管任务的动态区域 (DR) 被包含操作系统服务硬件实现的静态区域 (SR) 所包围,同时在 RR 内外部提供通信介质。内部数据流通信依靠专用的片上网络。DR 和 SR 之间的接口采用总线宏并且有固定的位置。为实现该约束以及通信介质异构性的抽象,我们采用中间件方案来提供到可重配置分区的虚拟访问。RR 根据图 2 中定义的模型构建。FOSFOR 原型平台由能够直接支持这种架构模型的动态可重配置 FPGA 器件构成。我们选用了 Virtex-5® 器件,因为其能够重配置矩形区域。
我们根据预先测算的应用线程资源需求定义了调度/布局算法,以确保每个 RR 中 FPGA 元件(LUT、寄存器、分布式存储器、I/O)的高效利用。
图 2 — 可重配置区域结构
图中文字:
控制 上下文(比特流) 静态区域 可重配置区域 静态区域 数据 硬件操作系统 控制 动态区域 线程 数据 片上网络 硬件分区
操作系统、片上网络及中间件为具备灵活性,FOSFOR 架构使用了至少两个操作系统实例:一个为运行在每个处理器上且负责处理软件线程的软件操作系统;另一个为能够管理硬件线程的硬件操作系统。为了在性能、开发时间以及标准化之间实现最佳平衡,我们使用了现有的软件操作系统和全新的硬件操作系统。