1、中文 3300 字 基于高性能嵌入式多核 MPSoC 的多线程系统设计 1 摘要: 本文重点介绍了移植多线程系统 (OpenMP) , 将它作为 高性能嵌入式系统中的 一种编程模型 。一个好的 编程 模型 如 OpenMP,将提高 程序员的工作效率, 缩短产品研发周期, 降低成本。但为了满足嵌入式开发人员对系统设计时所需具备实时性和多线程管理等要求, OpenMP 应进行系统扩展,它 必须是能够支持映射不同的软件任务 或组件, 对每个设备都配置相应的体系结构。 1、 背景 多核和同步多线程的硬件技术的快速发展,决定着市场上的各种应用程序开发领域的走向。 多核技术 的应用,提高了计算能力,降低能
2、耗,扩大 设计空间 ,并且 提高 了 多处理器系统 ( MPSoCs) 在嵌入式应用的性能。嵌入式系统将变得更加复杂, 多核硬件 也将 在同一台设备上实现更多的功能。 系统的复杂化 使 得嵌入式产品 开发中的 软硬件设计更加困难,使得嵌入式系统的分区,调度,正确性验证,质量控制和质量保证等问题更加严峻。 本文将 介绍移植 OpenMP,以适应现有的共享内存编程接口,符合 高性能嵌入式应用的规范。 文中将提出 新的语言功能 作为指定符号,可以被上一层应用程序调用 , 它 允许 非功能性特征的限制,如截止日期,优先级 等。如何 用改写 OpenMP 使其能在 不同的嵌入式设备上运行。由于我们也需要
3、明确的接口规范和部件之间的数据传输,其结果将是一个混合型分布 /共享的编程模 型,该模型可用于 各个任务的嵌入式应用程序,以及它们之间的相互作用。基于 OpenUH 中 的 Open64 以及 编译器,这将 是评现有 系统 的重要依据 。 2、嵌入式系统设计 2.1 硬件 嵌入式系统设计 普遍是在并行系统上实现 。 MPSoCs 由多个处理单元组成 , 如 RISC处理器 、 数字信号处理器( DSP) 、 特定于应用程序的指令的处理器( ASIP) 、 现场可编程门阵列( FPGA) 、 SIMD 处理器,加速器等。 另外 其 内核是异步 流处理器, MPSoC 的存储器系统 也可以是异步
4、, 可以作为 处理器访问的存储块 的一个部分 。德州仪器( TI)达芬奇 11 Barbara Chapman, Lei Huang University of Houston Houston, TX, USA Eric Biscondi, Eric Stotzer, Ashish Shrivastava and Alan Gatherer 和 OMAP 32是 RISC+ DSP 的配置。德州仪器( TI) TNETV30203和 TMS320TCI64884,随着 内核数增加和异质性增强 ,同时非对称芯片多处理( AMP)和对称芯片多处理( SMP)技术的发展 5 ,拥有的多个子系统的 M
5、PSoCs 将会在不久将来出现 。 2.2 嵌入式应用 嵌入式系统的应用大致可分为事件驱动计算和数据 扩展 。在事件驱动的应用 中,像汽车的嵌入式系统,它的 特征在于 信号的输入及其 响应 , 一个给定的输入事件从 在严格时间限定中,无法执行完数据的采集计算 。 另一种是数据扩展应用 ,如无线基础设施, 在此 系统中,流经设备的数据流量大, 并在 需要对大量的数据流进行计算, 这种系统的计算复杂性的增加 。这种系统需要有 最佳的软件 /硬件配置 来实现性能上的条件,同时满足成本 。 在无线和多媒体等应用中,往往增加系统 复杂性, 增多 在软件中 的功能,来帮助缩短设计周期。此外,使用 简化应用
6、程序的专用指令集处理器( ASIP), 摒弃 通用微处理器 , 来 降低成本、 提高电源效率 6。 2.3 编程嵌入式系统 现有的编程模式对于来创建嵌入式系统是十分不利。嵌入式应用程序通常为了满足严格的性能,要求接近硬件的编程语言,如 C 语言或汇编语言。由于资源限制的设备,高性能嵌入式 系统 使用 Java 或 C 是不切实际的。 现今, MPSoCs 开发逐步占主导地位 ,以适应现有的编程语言, 而不是设计新的并行编程语言 。 现今编程 MPSoCs 行业标准 尚未统一 ,虽然已经提出了一些。特别是,多核协会提出了他们提到的通信 API( CAPI) 7,但这种模式尚未形成完整的传递模型。 总体上 , 使用不同的编程语言和运行环境针对于各种不同的系统,各个机制相互作用,设计和开发软件 采用松散结合的方法 ,为不同的设备单独 编写不同的 代码 。例如,基于 GPU的编程模型 8,9符合 GPU 的设备, 但 不适合于通用 CPU。 OpenCL 的 10是最近推出的 GPU编程作为一个行业标准。一些供应商已经定