单芯片同步多处理技术 处理器的下一步
数据平行算法
在指定的建置技术下,要将个别处理器性能发挥到极限非但不容易,也没有效率。更快的频率、更深的管线和更大的缓冲存储器会占用更大的芯片面积同时增加功耗成本,削弱了原本可提升10%性能的效益。有时候在没有选择的情况下,不得不将频率速度提高并将电源和冷却子系统升级;倘若使用将负载划分到多个处理器的方式,不但可以增加最大整体性能限制,亦可简化处理器设计使其更有效率。
目前有许多系统级芯片(SoC)设计利用多处理器的优势,但它们均针对特定应用或采用松散耦合方式。直到最近,针对软件多处理方案的SoC设计选项依然受到限制。但MIPS32 1004K同步处理系统(CPS) SoC组件的推出,意味着可在单一操作系统环境下实现芯片上对称式多重处理(SMP)。
虽然平行编程很容易让软件工程师理解,但并非所有现今的程序代码都是针对平行处理平台所编写,业界已有许多针对平行软件的范例,其中有一些对软件设计人员来说也相当熟悉。
数据平行算法
数据平行算法(Data-parallel algorithm)将数据组划分到多处理器,甚至到若干个CPU中。在教科书中,可将大型数据组看作一个大量输入文件或数据数组;但在嵌入式系统中,它可能意味着高I/O和事件服务频宽。在某些SoC架构中,多个输入数据来源(如网络接口端口)可以被静态地分配到针对自然平行数据、执行相同驱动程序/路由程序代码的多个处理器中。
当在单一数据数组或输入流中利用多处理器性能时,用于分割并管理数据的平行算法就很常见。这种算法对于单处理器来说通常不是最理想的,但由于具备了更灵活的频宽运算特性,因此可提供效率补偿。这些针对平行运算算法均具备灵活性,但要是将一个工作程序转换成一个平行数据算法也许不具任何意义,甚至是相当困难或是不可能实现的,而这完全取决于程序相依性这类因素。如果绝大部分的应用程序运算都仅采用很少的常规运算循环来实现,那么,为提高性能,系统设计师也许要明确地建置数据平行算法。
随着用于PC、工作站和服务器的多核心X86芯片问世,新的数据库和工具套件应运而生,使得平行算法得以轻易地在少量的处理器上实现。许多用于嵌入式架构的数据库和工具套件都是开放且可携的,如MIPS为GCC所做的C/C++以及Fortran扩展,也正逐渐成为标准GNU编译器的一部分。
平行控制编程
平行控制编程(Control-parallel programming)并非根据输入,而是根据任务分割工作。若将一个以100人制造一台汽车为单位的汽车制造工厂比喻为一个100信道平行数据算法,并将平行控制程序比喻为一个具有100人的组装线工作站,各工作站负责百分之一的工作量,通常组装线的效率会比较高,但组装一台车的工作量就只有这么多,这样的限制在科学程序代码扩充到几千个处理器时非常显著,然而对于平行SoC架构而言这并不是个问题。
软件工程师通常将程序划分成若干个阶段以易于编码、除错和维护,并减少指令内存和快取的工作量。通常,平行控制分解早已设在可见的操作系统(OS)任务层。在类似于Unix的系统中,单一命令‘cc’会依序呼叫C语言前置处理器、编译器、组译器和连结程序。它们之中的几个可以同时执行,每个连续程序利用前一个阶段的输出作为输入,在类似于Unix这样的OS内使用档案或软件管线。
当独立分解的执行任务尚未完成时,需进行一些软件工程,使应用程序在OS和底层硬件上是可见的,并能在任务间明确地传递数据。但是不应该需要对阶段算法进行重写。粗粒度的任务分解可透过档案、网络应用程序(socket)或管线的进程通讯来实现。而针对细粒度的控制,如Posix执行绪API——pthreads,可由许多OS支持,包括Linux、Windows以及许多实时操作系统。
复杂的、模块化的多任务嵌入式软件系统时常会展现出意外的同步。整体系统任务很可能涉及到对应不同输入的不同责任等多项任务。若没有一个时间共享的OS,各任务就必须在个别处理器上执行。在一个时间共享的单处理器上,它们在轮流时间中执行;在一个具有SMP操作系统的多核心处理器上,它们能在可利用的处理器上同步执行。
图1a:复杂的模块化多任务嵌入式软件系统时常会展现出意外的同步。有了一个时间共享的OS,各任务就必须在个别处理器上执行。在一个时间共享的单处理器上,它们在轮流时间中执行;在具有SMP操作系统的多处理器上,它们在可利用的处理器上同步执行。图1b:在SMP操作系统中,所有的处理器都面对相同的内存、I/O组件和全域OS状态。在单CPU上利用时间分段执行的多任务程序,将能同时在一个SMP系统中的CPU上执行。
- 1快速增强路由器安全的十个小技巧
- 2Linux系统能搞定的20件事情
- 3数据中心 迎接巨变
- 4企业需要谨慎进行网络运维管理的规划
- 5教你几招服务器数据备份方法
- 6探讨路由器基础配置与数据传输
- 7企业部署虚拟化要预防哪七个误区?
- 8了解Windows权限认识局域网共享与安全
- 9五大虚拟化热门技术:CPU虚拟化居首
- 10路由器网络分层诊断步骤与故障排除
- 11下一代网络业务的发展特征与趋势分析
- 12WEB应用防火墙瞄准盲点防御
- 13IT管理者应该如何应对虚拟风险的出现
- 14Windows系统紧急安全配置指南
- 15企业部署虚拟化前要想清楚的十大问题
- 16最新HPC TOP500公布 迈入千万亿次时代
- 17安全热议 您的企业安全策略真的有效吗
- 18安全公司称云计算涉嫌违法 企业需谨慎应用
- 19实施虚拟机高效管理的六大启示
- 20如何管理云计算和虚拟化环境中服务器
- 21IDC:全球经济危机给云计算带来曙光
- 22超量的存储采购将影响未来的存储预算
- 23带头执行,关于组织的OA使用来说必定事半功倍
- 24太阳、风、海藻:未来数据中心的能源
- 25如何理解虚拟私有云VPC?
- 26全面监测 保障虚拟服务器安全
- 27计世独家:虚拟化面临存储管理问题
- 28从存储论坛巡展看未来存储技术趋势
- 29用户是OA办公自动化系统的应用主体
- 30不可不知的路由交换的安全七宗罪