硬件平台的异构性是设计人员部署应用时面临的主要的复杂性障碍。在 FOSFOR 项目中,这种异构性不仅来自软件域中的不同嵌入式处理器,还来自在单个平台上同时集成软件和硬件计算模型的做法。
采用中间件在硬件和软件间建立抽象层,并提供同构编程模型,可以很好地解决这一问题。中间件实现了一组虚拟通道,可以在不必理会线程的实现区域的情况下进行线程间通信。这些服务跨平台分布,提供了一个灵活的可扩展抽象层,让 FOSFOR 构想臻于完善。
性能加速
构建硬件操作系统的主要原因出于性能和灵活性方面的考虑。该操作系统本可以采用纯软件或纯硬件。由于每次调用操作系统原语都会涉及开销,即线程等待时间,操作系统速度越快,浪费的时间就越少。为了评估开销,我们必须就硬件操作系统的时序和原始的软件操作系统 RTEMS 做一比较。
硬件本地运行只需要数十个周期,而为了访问共享存储器,硬件全局运行需要数百个周期。经我们评估,与软件操作系统的运行结果相比,本地创建-删除操作速度提高了 60 倍,其它操作速度也提高了约 50 倍。
硬件操作系统的资源使用(表 1)相差较大,这主要取决于激活的服务的数量及功能,比如我们为每项服务选择对象(信号量、线程等)的数量。我们使用赛灵思 Virtex-5 FX100T 来实现系统。表中列出了硬件操作系统使用的资源。余下的资源可用于实现其它系统组件及硬件线程自身。
实现的结构数量