一台在未知的土地上行进的自动机器人;一部能够根据信号强度改变解压缩格式的视频解码器;一套宽带电子对抗系统;一种用于机动车辆的自适应图像跟踪算法……这些都属于大量涌现的随环境瞬变做出快速响应的新兴嵌入式或者关键任务应用。在过去,静态决策最坏情况分配曾为严格的实时约束提供了解决方案,而现在灵活性也成为一项要求。法国某研究项目建议使用的解决方案是一种分布在 FPGA 资源上,对软硬件线程进行管理的操作系统。
我们的目标是设计一种支持新的系统分区类型的架构,让软/硬件组件遵循同一执行模型。这就要求高度灵活的可扩展操作系统。
近年来,特别是在嵌入式系统中,随着片上系统 (SoC) 密度的增大,可以通过并行处理任务和数据,来增加运算单元,最终满足设计约束的要求。目前,随着异构计算内核的加入,这种趋势仍在继续。不过这种技术遇到了难以逾越的复杂性障碍,因为它需要对编程模型进行更高层次的抽象。
为了攻克这些难题,我们建议定义一个统一的执行模型,不管线程是映射到硬件还是软件上都可以使用。该执行模型的硬件实现高度依赖动态可重配置逻辑的使用。全分布式架构结合传统多核软件子系统,可同时兼备软/硬件的优点。软件部分很适用于智能化事件控制和决策,而硬件部分则擅长于提高能效、吞吐量以及数字运算。通过两者的结合,无论是针对每种特定的应用,还是针对某一应用的某一特定状态,我们都能在性能与资源利用率之间实现最佳平衡。
新型 FPGA 平台具有高度的灵活性和可扩展性,且集成度高,能够在单个或两个芯片上集成一个完整的异构动态运算系统。
自适应硬件在诸如导弹电子和软件无线电等功耗和系统尺寸有限,同时对环境高度敏感的应用中非常有用。采用动态重配置技术,可以在不增加系统功耗或电路板尺寸的情况下,实现支持不同应用模式的专用架构。传统解决方案侧重于控制部分,现在看来似乎已经不能有效地满足执行单元的数量及其异构性要求。只有采用兼具灵活性和可扩展性的分布式方案,才能够创建出面向未来的架构。
虽然这种技术潜力无限,但对整个业界来说,动态重配置的使用仍然有相当大的难度。工程师需要一种清晰明确的设计方式,既能够充分地发挥动态重配置的优势,又不影响应用描述,而且最重要的是,不增加开发成本。为了将动态性和高性能结合起来,我们建议采用基于多线程的执行模型对异构性进行抽象。开发人员可以将应用当作线程集来进行编程,而不必考虑线程是在标准处理器还是专用硬件上执行。在这种情况下,动态重配置的作用是进行线程优先调度(thread preemption)和上下文切换。由法国国家研究署 (French National Research Agency (ANR)) 赞助的 FOSFOR(灵活的可重配置平台操作系统)项目就专门负责开发这种新一代嵌入式、分布式实时操作系统。