高性能微处理器核心与可重构硬件在嵌入式系统中的应用
1. 引言
在当今科技领域,小型低功耗处理器核心以及可重构硬件在嵌入式系统中的应用愈发重要。小型处理器软核在低功耗移动应用中需求旺盛,但市场上合适的产品并不多。同时,可重构设备如 FPGA 在自组织嵌入式系统中的应用也为解决复杂问题提供了新途径。本文将介绍 SIRIUS 微处理器核心以及利用可重构硬件优化工作流的相关内容。
2. SIRIUS 微处理器核心
2.1 设计背景
市场上虽然有众多 IP 核供应商,但适合低功耗移动应用、由少量逻辑单元构成且易于编程的小型处理器软核仍较为稀缺。随着可编程架构设备(FPGA)的普及,尤其是低功耗设备的出现,软处理器核心在电池供电设计中的应用将更加广泛。SIRIUS 核心就是在这样的背景下应运而生,它将应用于 ePille® 这一电子控制的可伪装医疗药物输送设备,有望部分取代现有的化学药物释放机制,例如为糖尿病患者非流血式输送胰岛素。
2.2 设计目标
SIRIUS 核心(Small Imprint RISC for Ubiquitous Systems 的缩写)的性能介于 ATMEL AVR、TI MSP 430、PicoBlaze 等架构与 ARM 7/9 等 32 位架构之间。其设计目标包括:
- 采用 16 位外部数据总线的 Load - Store 架构。
- 平均性能达到 0.8 MIPS/MHz。
- 具备 16 位/32 位内部总线结构,32 位 ALU 和 16x16 乘法器。
- 拥有 16 个正交寄存器,其中 12 个 16 位,4 个 32 位,16 位通用寄存器可组合为 32 位寄存器。
- 寄存器集包含 32 位指令指针和 32 位堆栈指针。
- 采用堆栈导向架构,嵌套层级无限制。
- 支持 16 位和 32 位指针。
- 采用多路复用总线系统,分离的 8 位 IO 总线和快速内存总线,所有 IO 通过独立的 8 位总线连接。
- 地址空间根据指针寻址可为 64k 或 4G。
- 支持向量硬件中断和软件中断(异常)。
- 紧凑的 16 位指令格式,仅三种模式。
- 指令集架构包含 56 条针对紧凑 C 编译优化的指令。
- 由门原语构成的网表版本,可映射到任何现有技术。
2.3 指令集架构
SIRIUS 的指令集是对 Fraser 和 Hanson 定义的 DAG 运算符的近似直接替换,是为 C 编译优化的结果。从 64 个可用的不同操作码中,实际使用 56 个用于指令。指令集接近最小化,但添加了立即数指令,这些指令使用常量作为一个参数,长度为 32/48 位。
Load/Store 指令基于寄存器中的指针,指针可以是 16 位或 32 位,数据长度也可以是 16 位或 32 位。调用同样基于指针,返回地址始终为 32 位,允许使用大内存模型。
大多数指令在 3 相流水线结构中 1 个周期内执行,除了 MPY 指令使用 2 个周期。分支指令是相对于指令指针的相对分支,偏移量限制为 +/- 1023 字节或 511 条指令,较大偏移的分支由汇编器替换为跳转指令。
2.4 合成结果与性能
SIRIUS 核心采用 VHDL 编码,并使用 Synopsys Inc. 的设计编译器 DC 合成到 VERILOG 网表,目标技术选用了 0.35µm 技术库,具有以下优势:
- 像 ASIC 设计一样优化时序,但无需具体映射到现有技术。
- 网表可轻松用 DC 重新映射到任何 CMOS 目标技术,无显著变化和风险。
- 可以进行基于 Synopsys DC 的完整时序仿真(SDF 文件)和静态时序分析。
- 网表可加载到任何 FPGA 设计 IDE,如 ALTERA - QUARTUS,通过仿真控制详细行为。
低功耗设计采用了仅对启用且需要写入的寄存器进行时钟操作、禁用未使用的电路、采用多路复用总线架构、使用低功耗目标库等方法。在正常操作模式下,只有一小部分逻辑处于活动状态,还可通过 DC 进行功耗优化。
2.5 在 ePille 中的应用
SIRIUS 核心的首个应用项目是医疗领域的 ePille®。这是一个可伪装的药物容器,通过近场通信(NFC)接口接收远程命令释放药物。
在该应用中,构建了一个复杂的控制器 ASIC,核心为 SIRIUS 处理器,所有外设通过 8 位外设总线连接,包括并行端口、串行 IO、SPI 和 I²C 接口、用于 DQPSK 通信的调制解调器块和用于 ISO 14443a RFID 通信的 NFC 块等。
原型中的内存采用 SRAM,在量产产品中将被 ROM 或 Flash - ROM 取代。启动由一个小的引导 ROM 完成,它包含一个加载器,通过 SPI 接口从外部串行闪存加载实际软件。
2.6 性能结果
以下是 SIRIUS 核心在 0.35µm AMI 库和 Altera Cyclone II FPGA 上的合成结果和估计性能数据:
| 模块 | 原语数量 (ASIC) | 逻辑单元 (FPGA) |
| — | — | — |
| SIRIUS 核心 | 4197 | 2870 |
| ROM | 392 | 106 |
| 总线控制器 | 92 | 335 |
| PIO | 52 | 20 |
| SIO | 388 | 132 |
| SPI | 241 | 123 |
| I2C | 343 | 191 |
| 看门狗 | 102 | 50 |
| 中断控制器 | 773 | 346 |
| ISO - 14443 接口 | 1407 | 617 |
| QPSK 接口 | 3186 | 1252 |
| 定时器 | 214 | 88 |
| 性能指标 | 值 | 注释 |
|---|---|---|
| 平均 MIPS/MHz | 0.8 | 取决于 J. v. Neumann 架构和 16 位外部总线 |
| 最大时钟频率 (ASIC) | 120 MHz | 0.35 CMOS 技术,3.3 V 供电 |
| 最大时钟频率 (FPGA) | 60 MHz | Altera Cyclone II 且优化布局 |
| HOLD 模式功耗 | <20uW | 主时钟运行,所有外设关闭,ASIC |
| 掉电模式功耗 | <3 µW | 仅 RTC 运行,主时钟关闭 |
| 代码密度 | 16 位 | 高,所有指令 16 位,接近 C 语句 |
| 架构 | RISC | J.v. Neumann,流水线执行,3 级流水线 |
| 地址空间 | 64k / 4G | 取决于指针大小,硬件均支持 |
| 可行操作系统 | LINUX | 配合外部 DRAM 和大内存模型 |
| 寄存器 | 12 + 4 | 16 位寄存器可组合为 32 位寄存器 |
| ALU | 32 位 | 指令使用 16/32 位 ALU |
| MPY | 16 x 16 | 硬件有符号/无符号乘法,2 个周期 |
| 中断 | 128 | 带中断控制器的向量中断,外设单元 |
| 指令集 | 56 | 16 位和 32 位指令大多相同 |
| 高级语言支持 | LCC | 可用 C 编译器和 IDE,支持 JVM |
3. 利用可重构硬件优化工作流
3.1 背景
芯片技术的进步带来了计算能力的提升和设备尺寸的缩小,同时电子电路成本降低。开发者能够创建由小型、高效且强大的可通信节点组成的大型复杂系统。然而,这些系统面临着因设备故障或环境条件变化而导致的适应性问题。
为增强系统的灵活性,可使用可重构设备如 FPGAs。它们在计算能力、能耗和灵活性之间取得了较好的平衡,能够进行配置和部分重构,为系统提供硬件加速。但需要强大而灵活的资源管理来优化系统的整体功耗和工作分配。
3.2 相关工作
在传感器网络硬件方面,Mica2Dot Mote、Tmote Sky 或 iMote 等系统功耗低,但计算能力较弱,时钟频率低且处理器不可灵活配置。相比之下,FPGAs 更适合需求。
在资源管理方面,使用 Linux 作为节点的操作系统,构建基于 PowerPC 端口的 Linux 内核和发行版,并借助 John Williams 的设备驱动将 ICAP 集成到 Linux 系统中。部分重构的相关内容在 Xilinx 文档中有描述。
市场机制的想法借鉴了之前的拍卖算法,但进行了简化以适应计算能力较弱的节点。Open Agent Architecture 适用于稳定网络,但本文更倾向于去中心化管理和易于替换故障单元的系统。
3.3 基本技术
3.3.1 FPGAs 的计算能力
使用 Xilinx 的 Virtex - II Pro FPGA 和 Virtex - 4 FX12 FPGA 进行开发和测试。这些 FPGAs 包含嵌入式 PowerPC 硬核 RISC 处理器,除了可配置逻辑单元外,还提供基本的硬连线电路,如乘法器、块 RAM 和 ICAP 模块。ICAP 模块是节点改变自身可重构逻辑的关键,且自 Virtex - II 系列起,Xilinx FPGAs 支持部分重构。
3.3.2 本地资源管理
采用通用的 Linux 操作系统进行本地资源管理。Linux 通过抽象驱动接口简化了硬件资源的部署,例如将 ICAP 集成到系统中。其完善的网络功能便于实现通信,丰富的应用和对高级编程语言的支持有利于软件开发,同时标准的 Linux 内核和大量的解决方案数据库也加快了开发速度。
3.3.3 通信
实现了标准化的通信设施,提供 TCP/IP 栈。对于电池驱动的节点网络,可采用能量感知路由协议优化通信。开发板提供 RJ45 和 USB 接口,支持以太网、无线 LAN、蓝牙或 ZigBee 通信。目前可通过 telnet 访问和控制远程节点,通过 HTTP 传输数据。
3.3.4 自适应处理
利用部分可重构硬件设备,节点能够实现自适应行为。初始阶段,节点提供一个固定大小的可重构区域,可实现硬件 - 软件协同设计以优化性能。通过 ICAP 模块,CPU 可以对节点进行重构,利用空闲的可重构空间或移除未使用的硬件加速器以节省能源。节点的行为由控制应用根据本地存储的参数文件决定,这些参数文件可根据环境变化进行修改,并可设置访问控制。
3.3.5 自组织
为了使能够改变自身行为的节点进行有效组织,提出了 LMGS(Local Marketplaces, Global Symbiosis)概念。该概念基于供需原则在网络中分配工作,控制和资源管理由运行 Linux 操作系统和应用程序的 CPU 负责,网络中的实际工作将在软件和专用硬件中完成。
3.4 LMGS 概念
3.4.1 请求
节点的客户组件发出的请求由以下元组组成:
Request = {Source, Target, Requester, Data Volume, Task, Max Hops}
其中,Source 为任务的数据来源,Target 为数据目的地,Requester 为发出请求的设备,Data Volume 为要处理的数据量,Task 为要执行的任务,Max Hops 为请求可被邻居节点转发的最大次数。
请求的发布和查找服务有三种方式:
1. 中央目录服务器方式:由中央服务器跟踪节点提供的服务,但存在单点故障、额外流量和资源瓶颈等问题。
2. 全网泛洪方式:灵活性高但效率低,会浪费网络资源。
3. 混合方式:仅在最近邻域内泛洪数据,若邻居节点的回复不足,则以更高的最大中继次数再次发布任务。同时,节点会维护一个满足特定请求的远程主机列表。
3.4.2 报价
节点对请求的响应包含成本向量和已知服务提供商列表:Offer = {CostVector, List of known providers}
成本向量根据时间、能量和空间三个维度的成本计算,节点的供应者根据本地资源使用意愿计算任务的成本向量。已知服务提供商列表通过记录节点任务委托消息或主动写入构建。
3.4.3 协商示例
协商流程包括发送请求、接收响应、确定最佳解决方案并委托供应商。在评估响应时,可考虑其中的替代供应商列表。客户根据加权成本选择最优合作伙伴,通过操纵相关参数可强调任务的执行速度、能源效率或空间利用率。节点可根据自身计算能力和意愿选择接受最早的报价或进行多目标优化。
3.5 对传感器网络的适应性
传统传感器网络由众多小传感器节点和至少一个数据汇节点组成,在复杂数据聚合场景中会引入具有更强计算能力的信标节点。
目标应用是一个光学跟踪大型区域内物体的传感器网络,传感器节点配备视频摄像头并具有一定计算能力。若节点计算能力不足,可轻松添加处理节点。
构建了一个基于 XUP 开发板的示例应用,用于捕获视频信号、数字化并应用滤波器。整个任务在 FPGA 硬件中完成,滤波器可在运行时进行部分重构。通过运行在 CPU 上的程序配置和控制 ICAP 及视频数字化模块,加载部分位流并启动滤波器重构。
与硬核图形处理单元相比,FPGA 节点不仅支持图形处理的硬件加速,还支持几乎任何可在硬件中实现的任务。未使用的 FPGA 模块可以物理断开,减少整体功耗。同时,Linux 支持多种节能模式,降低 CPU 功耗。
LMGS 可部署在不同性能的设备上,在传感器网络中,传感器节点只需运行供应者模块即可获取测量值,减少计算量。系统的灵活性和可扩展性使其能够在一定程度上补偿相机或计算节点的损失,通过将工作分配给其他节点来维持系统的正常运行。
3.6 结论
本文介绍了在半智能节点网络中部署(部分)可重构硬件以优化整体资源需求和提高稳定性的方法。通过将任务本地化和避免昂贵的通信,实现了更优的资源利用。引入的 LMGS 概念基于供需原则,为网络中的工作分配提供了有效的机制。
创建的示例系统展示了部分自重构、文件收发、远程控制等功能。本地资源管理由 Linux 操作系统负责,网络中的实际工作通过硬件 - 软件协同设计完成,显著提高了性能。
综上所述,SIRIUS 微处理器核心和可重构硬件在嵌入式系统中的应用为解决低功耗、高灵活性和复杂计算需求提供了有效的解决方案,具有广阔的发展前景。
下面是 LMGS 协商流程的 mermaid 流程图:
graph LR
A[发出请求] --> B[接收响应]
B --> C{评估响应}
C -->|考虑替代供应商| D[选择最优合作伙伴]
C -->|不考虑替代供应商| D
D --> E[委托供应商]
通过以上内容,我们可以看到小型高性能微处理器核心和可重构硬件在嵌入式系统中的重要作用和应用潜力,它们将为未来的科技发展带来更多的可能性。
4. 技术对比与优势分析
4.1 SIRIUS 核心与其他处理器架构对比
将 SIRIUS 核心与市场上常见的处理器架构进行对比,能更清晰地看出其特点和优势。以下是 SIRIUS 核心与 ATMEL AVR、TI MSP 430、ARM 7/9 等架构的对比表格:
| 处理器架构 | 性能范围 | 指令集优化 | 功耗 | 地址空间 | 可扩展性 |
| — | — | — | — | — | — |
| SIRIUS | 介于 ATMEL AVR、TI MSP 430 与 ARM 7/9 之间 | 针对 C 编译优化,指令集 56 条 | 低,采用多种低功耗设计方法 | 64k / 4G 可选 | 可适应不同应用场景,支持多种指针寻址 |
| ATMEL AVR | 相对较低 | 通用指令集 | 低 | 较小 | 扩展性有限 |
| TI MSP 430 | 中等 | 通用指令集 | 低 | 中等 | 扩展性一般 |
| ARM 7/9 | 较高 | 通用指令集 | 相对较高 | 较大 | 扩展性强,但成本较高 |
从表格中可以看出,SIRIUS 核心在性能、指令集优化和功耗方面取得了较好的平衡,适合对功耗和代码密度有要求的嵌入式应用。
4.2 FPGA 与传统处理器在传感器网络中的对比
在传感器网络应用中,FPGA 与传统处理器如 Mica2Dot Mote、Tmote Sky 或 iMote 等相比,具有明显的优势。以下是对比列表:
-
计算能力
:FPGA 具有更高的时钟频率和可配置的逻辑单元,能够提供更强的计算能力,满足复杂任务的需求。而传统处理器计算能力较弱,时钟频率低。
-
灵活性
:FPGA 支持部分重构,可根据不同的任务需求动态调整硬件结构,提供硬件加速。传统处理器则是静态和硬连线的,难以灵活适应变化。
-
功耗管理
:FPGA 未使用的模块可以物理断开,减少整体功耗。传统处理器在空闲时仍会消耗一定的能量。
-
资源管理
:FPGA 可通过市场机制进行资源管理,优化工作分配。传统处理器的资源管理相对固定。
4.3 LMGS 与其他资源管理机制对比
与中央目录服务器和全网泛洪的资源管理机制相比,LMGS 具有独特的优势。以下是对比分析:
| 资源管理机制 | 优点 | 缺点 |
| — | — | — |
| 中央目录服务器 | 集中管理,便于查询服务 | 单点故障,通信流量大,资源易耗尽 |
| 全网泛洪 | 灵活性高,可靠性强 | 效率低,浪费网络资源 |
| LMGS | 结合本地和远程资源,平衡灵活性和效率 | 需要一定的计算资源来维护远程主机列表 |
通过对比可以看出,LMGS 在资源管理方面更加灵活和高效,能够在满足系统需求的同时,减少资源的浪费。
5. 应用案例深入分析
5.1 ePille 应用案例详细解析
在 ePille 应用中,SIRIUS 核心的具体工作流程如下:
1.
启动阶段
:小的引导 ROM 中的加载器通过 SPI 接口从外部串行闪存加载实际软件,初始化系统。
2.
数据通信阶段
:通过 8 位外设总线与各种外设进行通信,如并行端口、串行 IO、SPI 和 I²C 接口等。
3.
药物释放控制阶段
:根据接收到的近场通信(NFC)接口的远程命令,控制药物的释放。
4.
功耗管理阶段
:在不工作时,进入低功耗模式,如 HOLD 模式或掉电模式,降低功耗。
以下是 ePille 系统工作流程的 mermaid 流程图:
graph LR
A[启动] --> B[数据通信]
B --> C{是否有命令}
C -->|是| D[药物释放控制]
C -->|否| E[进入低功耗模式]
D --> B
E --> B
5.2 传感器网络应用案例详细解析
在光学跟踪大型区域内物体的传感器网络应用中,基于 FPGA 的节点工作流程如下:
1.
视频数据采集阶段
:视频摄像头采集视频信号,通过 Digilent VDEC1 扩展卡进行数字化。
2.
数据处理阶段
:在 FPGA 硬件中对数字化的视频信号进行滤波等处理,滤波器可在运行时进行部分重构。
3.
数据传输阶段
:处理后的数据通过网络传输到用户终端。
4.
资源管理阶段
:根据任务需求和资源情况,通过 LMGS 机制进行任务分配和资源管理。
以下是传感器网络节点工作流程的 mermaid 流程图:
graph LR
A[视频数据采集] --> B[数据处理]
B --> C[数据传输]
C --> D{是否有新任务}
D -->|是| E[资源管理]
D -->|否| B
E --> B
6. 未来发展趋势与展望
6.1 SIRIUS 核心的未来发展
- 性能提升 :随着工艺技术的进步,SIRIUS 核心的时钟频率和性能有望进一步提高,以满足更复杂的应用需求。
- 应用拓展 :除了医疗领域的 ePille 应用,SIRIUS 核心可能会在工业控制、智能家居等领域得到更广泛的应用。
- 与其他技术融合 :可能会与人工智能、物联网等技术融合,实现更智能的嵌入式系统。
6.2 FPGA 与可重构硬件的未来发展
- 更高的集成度 :FPGA 芯片将集成更多的功能模块,如更多的乘法器、更大的内存等,提高计算能力。
- 更灵活的重构技术 :部分重构技术将更加成熟,重构时间更短,灵活性更高。
- 在新兴领域的应用 :在量子计算、区块链等新兴领域可能会有更多的应用。
6.3 LMGS 机制的未来发展
- 算法优化 :LMGS 机制的算法将不断优化,提高资源分配的效率和准确性。
- 与其他管理机制融合 :可能会与其他资源管理机制融合,形成更强大的管理体系。
- 在大规模网络中的应用 :在大规模的传感器网络、数据中心等网络中得到更广泛的应用。
7. 总结
本文详细介绍了 SIRIUS 微处理器核心和可重构硬件在嵌入式系统中的应用。SIRIUS 核心具有高性能、低功耗、指令集优化等特点,在 ePille 等医疗应用中发挥了重要作用。可重构硬件如 FPGA 通过部分重构技术和 LMGS 资源管理机制,在传感器网络等领域实现了高效的资源利用和任务分配。
通过技术对比和应用案例分析,我们可以看到这些技术的优势和应用潜力。未来,随着技术的不断发展,它们将在更多领域得到应用,为嵌入式系统的发展带来更多的可能性。
在实际应用中,开发者可以根据具体需求选择合适的处理器核心和硬件架构,并结合有效的资源管理机制,实现低功耗、高灵活性和复杂计算需求的平衡。同时,不断关注技术的发展趋势,及时引入新的技术和方法,以提升系统的性能和竞争力。
总之,小型高性能微处理器核心和可重构硬件是嵌入式系统发展的重要方向,它们将为未来的科技进步做出重要贡献。
超级会员免费看
1204

被折叠的 条评论
为什么被折叠?



