什么是异构多处理系统,为什么需要异构多处理系统?
早期嵌入式处理系统通常由一个微控制器和一系列外设构成。这些系统通常用来完成获取少量数据、处理数据、做出决策、基于决策结果输出信息等工作。在某些情况下会实现简单的人机交互接口如读取键盘并显示结果。处理需求、同时产生需求,以现在的标准来看似乎微不足道。现代嵌入式系统通常需要处理和分析十亿字节级的海量数据,而且常常在确定性和低延时运算上还有一些额外要求。许多应用还要求系统在满足相关行业标准的同时可靠符合可靠性和安全性要求。
目前,似乎还不可能在单一处理器上同时满足处理高带宽数据、执行系统应用程序、响应实时请求并满足行业安全标准。然而,多核异构芯片却可以实现这些功能。这样的设备具有多个处理单元,每一个单元都有能力负责处理一个或多个前述需求,我们称这样的设备为异构处理系统。
1 什么是异构多处理呢?
一个异构多处理系统由不同类型的多个单核心或多核心处理器构成,异构多核处理系统最简单的形式是由一个多核处理器和GPU组成。然而,现代科技让一颗芯片上的异构多处理系统包含以下模块:
①多核应用处理器(Multicore Applications Processors);
②多核图形处理器(Multicore Graphics Processors;
③多核实时处理器(Multicore Real-Time Processors);
④平台管理单元(Platform Management Unit);
⑤配置和安全系统(Configuration and Security Unit);
⑥在FPGA可编程逻辑上实现特定多核处理器。
本文所引用的异构多核处理系统包括上述的多个分类。使用FPGA逻辑实现多核处理器的优势是:它可以创建自定义特殊应用处理器,通过并行Pipes和多Pipeline stages来实现二维并行数据处理,使得在一个时钟周期里可以完成大量的计算。
多核处理器可以设计用来执行通用计算或者是专用计算。和通用处理器执行相同功能相比较,专用计算在减小硅片封装、提高单时钟周期吞吐率、低功耗的同时能实现数据优化处理。
2 含可编程逻辑的异构处理系统演变
Xilinx在2002年推出了第一款带PowerPC405应用处理器的FPGA,在接下来的FPGA里,Xilinx在单片内集成了更高性能的PowerPC单核或双核处理器。不像现今产品代的器件处理系统是一个集成的ASSP(包含处理器、互联、存储控制器和外设),早期产品需要大量的FPGA资源将各部分资源连接在一起形成一个ASSP-like的解决方案。
2011年,Xilinx推出了Zynq-7000系列高集成度的器件,它集成了ARM Cortex-A9 MPCore处理器、互联单元、内存控制器、外设以及基于Xilinx 7系列FPGA的可编程逻辑。有人肯能会认为Zynq-7000系列是第一代“异构多处理”系统,因为片上的可编程逻辑使得创建和使用专用处理单元成为现实。
3 含可编程逻辑的最新一代异构处理系统
2015年,Xilinx发布并且开始供货新一代异构多处理器件Zynq UltraScale+ MPSoC。之前的器件集成了可编程逻辑和一个或多个应用处理器,Zynq UltraScale+ MPSoC器件集成了:
①多核应用处理器:四核ARM Cortex-A53应用处理器;
②多核图形处理器:双核ARM Mali-400图形处理器;
③多核实时处理器:双核ARM Cortex-R5实时处理器,可同步运行安全性要求苛刻的应用;
④平台管理单元:一致性三冗余处理器用于power、错误管理和功能安全管理;
⑤配置和安全单元:一致性三冗余处理器用于系统配置和安全管理;
⑥FPGA可编程逻辑:用户可编程逻辑用于定制处理器、处理单元和外设。
多核应用处理器是传统的用于通用计算的重负载处理器。这些处理器一般工作在SMP模式,运行一个Linux或Andriod操作系统,当然也支持虚拟管理运行多操作系统。
图形处理单元是继浮点运算单元之后最流行的协处理器。GPU从应用处理器分担图形处理负载,实现复杂的用户界面和复杂的图形渲染。对Andriod或Windows CE之类的操作系统而言,这些都是必须的基本功能。通用目的GPU(GPGPU)除了图形处理,还可以胜任数据阵列通用计算。
实时处理器可以低延时响应事件,和应用处理器比较通常也更具确定性。在大多数情况下会运行支持低延时中断处理和确定性应答的实时操作系统。在功能安全性应用中,实时处理器通常会运行在双核锁步模式下,这样可以检测双处理器中一个处理器出现的错误。
平台管理单元负责管理关键的系统功能和服务。这些功能包括系统错误处理、功耗管理和功能安全任务等。作为系统的心脏,该单元不容失败。因此,这里使用了包含表决逻辑的三冗余处理器,这使得即
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)