关于嵌入式ARM多核处理器的并行方法

目前,嵌入式多核处理器已经在嵌入式设备领域得到广泛运用,但嵌人式系统软件开发技术还停留在传统单核模式,并没有充分发挥多核处理器的性能。程序并行化优化目前在PC平台上有一定运用,但在嵌入式平台上还很少,另外,嵌入式多核处理器与PC平台多核处理器有很大不同,因此不能直接将PC平台的并行化优化方法应用到嵌人式平台。本文分别从任务并行和缓存优化两方面进行并行化优化的研究,探索在嵌人式多核处理器上对程序进行并行化优化的方法。

1 嵌入式多核处理器结构

嵌人式多核处理器的结构包括同构(Symmetric)和异构(Asymmetric)两种。同构是指内部核的结构是相同的,这种结构目前广泛应用在PC多核处理器;而异构是指内部核的结构是不同的,这种结构常常在嵌入式领域使用,常见的是通用     嵌入式处理器   +     DSP   核。本文探究的嵌入式多核处理器采用同构结构,实现同一段代码在不同处理器上的并行执行。

 关于嵌入式ARM多核处理器的并行方法_设计制作_接口/总线/驱动

图1     ARM   SMP处理器结构

在目前嵌入式领域中,使用最为广泛的为ARM 处理器,因此以ARM 双核处理器OMAP4430作为研究对象。ARM 对称多处理(Symmetric Mul     ti   -Processing,SMP)结构如图1所示,根据程序的局部性原理,每一个处理器都具有私有的内存(Local Memory),常见的是一级缓存(L1Cache)。然而,多个处理器之间又涉及到相互通信问题,因此在常见的ARM 处理器中使用二级缓存(L2 Cache)来解决这一问题。基于对称多处理器结构,所有的处理器(通常为2的倍数)在硬件结构上都是相同的,在使用系统资源上也是平等的。在嵌入式多核平台上进行并行化优化,需要考虑以下问题:

① 并行化程序的性能取决于程序中串行化部分,程序性能不会随着并行线程数目的提升而不断提升;

② 嵌入式多核处理器相对于PC处理器而言,其总线速度较慢,并且缓存(Cache)更小,会造成大量数据在内存(Memory)和缓存(Cache)问不断拷贝,因此在进行并行化优化的过程中,应考虑缓存友好性(Cache friendly);

③ 程序并行化执行线程数目应当小于或等于物理处理器的数目,线程过多会造成线程间抢占处理器资源,致使并行化性能下降。

2 OpenMP并行化优化

2.1 0penMP工作原理简介

OpenMP是一个基于共享内存模式的跨平台多线程并行的编程     接口   。主线程生成一系列的子线程,并将任务映射到子线程进行执行,这些子线程并行执行,由运行时环境将线程分配给不同的物理处理器。默认情况下,各个线程独立执行并行区域的代码。可以使用work-sharingconstructs来划分任务,使每个线程执行其分配部分的代码。通过这种方式,使用OpenMP可以实现任务并行和数据并行。

 关于嵌入式ARM多核处理器的并行方法_设计制作_接口/总线/驱动

图2 任务并行模型

任务并行模式创建一系列独立的线程,每一个线程运行一个任务,线程之间相互独立,如图2所示。OpenMP使用编译原语session direc  TI ve和task direc  TI ve来实现任务分配,每个线程可以独立运行不同的代码区域,同时支持任务的嵌套和递归。一旦创建任务,该任务就可能会在线程池(其大小等于物理线程数目)中空闲的线程上执行。

数据并行也就是数据级并行,对任务中处理的数据进行分块并行执行,如图3所示。C语言中的for循环最适合使用数据并行。

60
11
0
14

相关资讯

  1. 1、《菊石》:两代影后的同性片,戏在爱情外2473
  2. 2、《等风来》首映群星闪耀刘雅瑟戏里戏外皆热血1565
  3. 3、《山海情》走红的文化密码307
  4. 4、《爱情3》开播陈赫恳求观众看电视争取第四季2464
  5. 5、《碟仙诡谭》定档6月13日概念海报惊恐袭人4996
  6. 6、电影院里,观众掏出去年的《唐探3》电影票,问:今年还能不能看?2946
  7. 7、上海影视摄制服务机构,将打造长三角影视服务一体化体系1351
  8. 8、《戴安娜》预告片曝光地下情曝光王妃脆弱痛哭3853
  9. 9、流水的流量艺人中没有他?参演电影票房破百亿,却惨遭质疑2914
  10. 10、黄景瑜跟乾隆撞脸?看到对比照都让鲸鱼查族谱,这么像他知道么?2472
全部评论(0)
我也有话说
0
收藏
点赞
顶部