1.什么是异构多核SoC处理器
顾名思义,单颗芯片内集成多个不同架构处理单元核心的SoC处理器,我们称之为异构多核SoC处理器,比如:
- TI的OMAP-L138(DSP C674x + ARM9)、AM5708(DSP C66x + ARM Cortex-A15)SoC处理器等;
- Xilinx的ZYNQ(ARM Cortex-A9 + Artix-7/Kintex-7可编程逻辑架构)SoC处理器等。
2.异构多核SoC处理器有什么优势
相对于单核处理器,异构多核SoC处理器能带来性能、成本、功耗、尺寸等更多的组合优势,不同架构间各司其职,各自发挥原本架构独特的优势。比如:
- ARM廉价、耗能低,擅长进行控制操作和多媒体显示;
- DSP天生为数字信号处理而生,擅长进行专用算法运算;
- FPGA擅长高速、多通道数据采集和信号传输。
同时,异构多核SoC处理器核间通过各种通信方式,快速进行数据的传输和共享,可完美实现1+1>2的效果。
3.常见核间通信方式
要充分发挥异构多核SoC处理器的性能,除开半导体厂家对芯片的硬件封装外,关键点还在于核间通信的软硬件机制设计,下面介绍几种在TI、Xilinx异构多核SoC处理器上常见的核间通信方式。
- OpenCL
OpenCL(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在能源电力、轨道交通、工业自动化、医疗、通信、军工等应用领域都有广阔的发展前景。
在异构多核SoC处理器上,OpenCL将其中一个可编程内核视为主机,将其他内核视为设备。在主机上运行的应用程序(即主机程序)管理设备上的代码(内核)的执行,并且还负责使数据可用于设备。设备由一个或多个计算单元组成。比如,在TI AM5728异构多核SoC处理器中,每个C66x DSP都是一个计算单元。

OpenCL运行时,一般包含如下两个组件:
- 主机程序创建和提交内核以供执行的API。
- 用于表达内核的跨平台语言。
参考开发资料:
http://downloads.ti.com/mctools/esd/docs/opencl
https://training.ti.com/sites/default/files/docs/Introduction_to_OpenCL_slides.pdf
DCE(Distributed Codec Engine)分布式编解码器引擎,是TI基于AM57x异构多核SoC处理器的视频处理框架,提供的完整Gstreamer插件框架。
DCE由三部分硬件模块组成,分别为MPU核心、IPU2核心以及IVA-HD硬件加速器,其主要功能如下:
MPU:基于ARM用户空间Gstreamer应用,控制libdce模块。libdce模块在ARM RPMSG框架上实现与IPU2的IPC通信。
IPU2:构建DCE server,基于RPMSG框架与ARM实现通信,使用编解码器引擎和帧组件控制IVA-HD加速器。
IVA-HD:实现视频/图像编解码的硬件加速器。

IPC(Inter-Processor Communication)是一组旨在促进进程间通信的模块。通信包括消息传递、流和链接列表。这些模块提供的服务和功能可用于异构多核SoC处理器中ARM和DSP核心之间的通信。

如下为TI异构多核SoC处理器常用的核间通信方式的优缺点比较:
| 方式 |
优点 |
缺点 |
| OpenCL |
|

本文介绍了异构多核SoC处理器的概念,如TI的OMAP-L138和AM5708,以及Xilinx的ZYNQ SoC。异构多核处理器具有性能、成本和功耗优势,不同架构核心各司其职。常见的核间通信方式包括OpenCL、DCE、IPC和AXI。文章详细探讨了这些通信方式的原理和应用,如OpenCL的主机和设备概念,DCE的视频处理框架,IPC的MessageQ机制,以及地址映射和内存访问策略。

7339

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



