单芯片同步多处理技术



  在指定建置技术下要将个别处理器性能发挥到极限非但不容易也没有效率更快频率、更深管线和更大缓冲存储器会占用更大芯片面积同时增加功耗成本削弱了原本可提升10%性能效益有时候在没有选择情况下不得不将频率速度提高并将电源和冷却子系统升级;倘若使用将负载划分到多个处理器方式不但可以增加最大整体性能限制亦可简化处理器设计使其更有效率

  目前有许多系统级芯片(SoC)设计利用多处理器优势但它们均针对特定应用或采用松散耦合方式直到最近针对软件Software多处理方案SoC设计选项依然受到限制但MIPS32 1004K同步处理系统(CPS) SoC组件推出意味着可在单操作系统环境下实现芯片上对称式多重处理(SMP)

  虽然平行编程很容易让软件Software工程师理解但并非所有现今代码都是针对平行处理平台所编写业界已有许多针对平行软件Software范例其中有些对软件Software设计人员来说也相当熟悉

  数据平行算法

  数据平行算法(Data-parallel algorithm)将数据组划分到多处理器甚至到若干个CPU中在教科书中可将大型数据组看作个大量输入文件或数据;但在嵌入式系统中它可能意味着高I/O和事件服务频宽在某些SoC架构中多个输入数据来源(如网络接口端口)可以被静态地分配到针对自然平行数据、执行相同驱动/路由代码多个处理器中

  当在单数据或输入流中利用多处理器性能时用于分割并管理数据平行算法就很常见这种算法对于单处理器来说通常不是最理想但由于具备了更灵活频宽运算特性因此可提供效率补偿这些针对平行运算算法均具备灵活性但要是将个工作转换成个平行数据算法也许不具任何意义甚至是相当困难或是不可能实现而这完全取决于相依性这类原因如果绝大部分应用运算都仅采用很少常规运算循环来实现那么为提高性能系统设计师也许要明确地建置数据平行算法

  随着用于PC、工作站和服务器多核心X86芯片问世数据库和工具套件应运而生使得平行算法得以轻易地在少量处理器上实现许多用于嵌入式架构数据库和工具套件都是开放且可携如MIPS为GCC所做C/C以及Fortran扩展也正逐渐成为标准GNU编译器部分

  平行控制编程

  平行控制编程(Control-parallel programming)并非根据输入而是根据任务分割工作若将个以100人制造台汽车为单位汽车制造工厂比喻为个100信道平行数据算法并将平行控制比喻为个具有100人组装线工作站各工作站负责百分的工作量通常组装线效率会比较高但组装台车工作量就只有这么多这样限制在科学代码扩充到几千个处理器时非常显著然而对于平行SoC架构而言这并不是个问题

  软件Software工程师通常将划分成若干个阶段以易于编码、除错和维护并减少指令内存和快取工作量通常平行控制分解早已设在可见操作系统(OS)任务层在类似于Unix系统中命令‘cc’会依序呼叫C语言前置处理器、编译器、组译器和连结它们的中几个可以同时执行每个连续利用前个阶段输出作为输入在类似于Unix这样OS内使用档案或软件Software管线

  当独立分解执行任务尚未完成时需进行些软件Software工程使应用在OS和底层硬件上是可见并能在任务间明确地传递数据但是不应该需要对阶段算法进行重写粗粒度任务分解可透过档案、网络应用()或管线进程通讯来实现而针对细粒度控制如Posix执行绪API——pthreads可由许多OS支持包括Linux、Windows以及许多实时操作系统

  复杂、模块化多任务嵌入式软件Software系统时常会展现出意外同步整体系统任务很可能涉及到对应区别输入区别责任等多项任务若没有个时间共享OS各任务就必须在个别处理器上执行个时间共享单处理器上它们在轮流时间中执行;在个具有SMP操作系统多核心处理器上它们能在可利用处理器上同步执行

处理器设计<img src='/icons/52190de.gif' />下<img src='/icons/52190yi.gif' />步 单芯片同步多处理技术

  图1a:复杂模块化多任务嵌入式软件Software系统时常会展现出意外同步有了个时间共享OS各任务就必须在个别处理器上执行个时间共享单处理器上它们在轮流时间中执行;在具有SMP操作系统多处理器上它们在可利用处理器上同步执行图1b:在SMP操作系统中所有处理器都面对相同内存、I/O组件和全域OS状态在单CPU上利用时间分段执行多任务将能同时在个SMP系统中CPU上执行




  分布式处理

  分布式典型运算在网络客户服务器模式中很常见它在某些时候不被认为是‘平行’客户端服务器设计基本上是种控制流程分解形式任务并不是独自执行所有运算而是将工作请求发送到针对特定工作设计特殊系统任务客户端服务器设计大多都在LAN和WAN上完成但SMP SoC也遵循相同范例未作修改客户端服务器 2进制数据可透过芯片上TCP/IP或空回绕网络(loopback network)接口进行通讯或者使用更有效率思路方法利用区域通讯协议在内存中传递缓冲数据

  这些思路方法可能会被单独或组合使用以藉助SMP性能优势有人甚至可能会建构个分布式SMP服务器平行数据且各均建置个控制流程管线

  在SoC系统中可以对处理器静态实体分解任务进行平行处理处理器平行任务可于硬件中完成这可以减少软件Software开销和实体尺寸但却不能提供灵活性

  如果可以将个嵌入式应用静态地分解成客户端和服务器并透过芯片互连进行通讯那么只需要使用讯息传递代码建置个共享协议以便将系统互相连系讯息传递协议可提供个抽象层使或多或少处理器配置都能执行应用代码但无论任何配置处理器负载平衡就如同硬件分割样是静态要达到更灵活平行系统设计可利用具有共享资源多核心处理器系统上软件Software任务分配来实现

  在SMP操作系统中所有处理器都面对相同内存、I/O组件和全域OS状态这使得处理器间移转更简单、更有效率也更容易平衡负载不需要额外编程或系统管理在单CPU上利用时间分段执行多任务将能同时在个SMP系统中CPU上执行如同Linux个SMP排程器可切换处理器

  执行多个处理Linux应用不需要修改就可以利用SMP平行特性而且通常不需要进行重新编译SMP Linux环境为可用处理器的间调整提供了许多工具如提高/降低任务优先级或是对于在处理器子集上执行任意任务加以限制要使用区别实时排程体制必须要有适当核心支持

  类似UnixOS能为应用提供些针对相关任务优先级排程控制甚至在单核心处理器时间共享系统中也是如此传统外部命令和系统呼叫指令在Linux系统中被强化藉由更精致机制排定任务优先级、任务组或特定系统使用者另外在多核心处理器配置中Linux任务都具有个参数用来指定那组处理器可排定任务预设参数即为整个系统处理器组但这种具有类似于CPU系统处理器组却是可控制

  SMP范例要求所有处理器找寻所有相同地址下内存;对于低性能处理器必须透过将所有处理器指令预取和加载/储存流通量置放在个共享内存和I/O总线上来达成然而这种模式随着处理器增加而失去效用总线会成为瓶颈即使在单核心处理器系统中高性能嵌入式核心指令和数据频宽需求亦支配了主存储器和处理器间缓冲存储器

  在个每颗处理器均具备独立快取系统中其本质上已不属于SMP个处理器快取保存了内存中唯个最近位置值复制数据时这时不对称就产生了必须加入快取致性协议来恢复对称

  在个所有处理器都连接到个公共总线简单系统中快取控制器可监控总线以得知哪个高速缓存Cache保存了指定内存位置最新版本在更先进系统中是利用交换结构点对点连接将处理器连接到内存因此快取致性需要更高度支持致性管理单元应该对内存执行施加全域指令产生干涉讯号来维护处理器核心间高速缓存Cache致性

  像Linux这样SMP OS可自由地转移任务动态地均衡处理器负载在嵌入式SoC中绝大部份整体运算可以在中断服务中执行负载均衡和性能调整必须对发生中断服务地方进行控制Linux OS具有个类似于IRQ控制接口可让使用者和确认哪个处理器负责指定中断服务

  快取忆体致性基础架构很实用不仅在SMP处理器间在处理器和I/O DMA通道的间也相当有用若是使用软件Software方式便需要在每个I/O DMA作业的前或的后利用CPU来处理DMA缓冲器对于I/O密集应用而言性能将大受影响;而使用I/O致性硬件将I/O DMA连接到内存方式可以对DMA串流进行排序并和加载/储存流程整合在免除了软件Software开销

  快取致性管理单元应该对处理器、I/O和内存间内存串流施加命令这可增加处理器内存存取时间周期透过管线停滞产生处理器周期损失结果然而些如在单核心上使用硬件多执行绪思路方法可允许单核心执行并行指令串流以增加管线效率

  各核心执行绪看起来就如同OS软件Software中完善CPU包括具有独立中断输入执行绪共享相同缓冲存储器和功能单元并插入到它们管线执行中个执行绪停滞了个可以继续执行致性内存子系统延迟周期循环下去否则将会遗失管理多核心相同SMP OS可以管理它们硬件执行绪针对SMP编写软件Software可运用多执行绪处理反的亦然

  若两个执行绪同时争取个管线其性能相较于在许多独立核心上两个执行绪来得更低应该对SMP Linux核心进行负载均衡最佳化对于功耗最佳化排程器可以将工作个加载到个核心虚拟处理器上使其它处理器处于低功耗状态在性能最佳化方面可以将工作分配到许多核心上然后将多执行绪加载到每个核心中直到所有核心都有个进展中任务为止

  利用芯片上多处理功能可实现高SoC性能SMP平台和软件Software提供了个具有灵活性高性能运算平台能大幅提升单处理器速度而这通常只需要稍微、或者根本不需要修改应用代码

Tags:  芯片技术 同步技术

延伸阅读

最新评论

发表评论