处理器设计下一步——单芯片同步多处理技术

发布者:光明2599最新更新时间:2008-11-28 来源: MIPS关键字:处理器  单芯片  多处理 手机看文章 扫描二维码
随时随地手机看文章

      在指定的组织管理技术下,要将个别处理器性能发挥到极限非但不容易,也没有效率。更快的时脉、更深的管线和更大的缓冲存储器会占用更大的芯片面积同时增加功耗成本,削弱了原本可提升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上执行。

      分布式处理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

关键字:处理器  单芯片  多处理 引用地址:处理器设计下一步——单芯片同步多处理技术

上一篇:Tensilica授权富士通进行移动电话基带设计
下一篇:揭秘TI移动AP中ARM核的应用演变

推荐阅读最新更新时间:2024-05-03 11:02

观察:戴尔的漫漫AMD之路
  据海外媒体最新报道,作为全球最大的PC生产商,戴尔电脑公司近来对AMD的热情有增无减。   多年来,戴尔一直以种种理由解释为何不在其PC产品当中采用AMD处理器。比如,“没有足够的性能优势”;“我们需要大量芯片产品,而且超过AMD产能”;“在我们与英特尔排他合作关系中引入另一家芯片供应商将使我们的生产线变得复杂”;“我们的客户完全不需要AMD产品”等等。   尽管如此,就在AMD推出皓龙和64位速龙芯片三年之后,AMD在服务器芯片市场的占有率增至26%的时候,戴尔最终改变立场。该公司今年计划在服务器和台式机当中采用AMD处理器。很明显,他们的客户需要AMD产品。   但戴尔似乎太晚而无法搭乘AMD成功的“班车”,因为竞争
[焦点新闻]
百元笔记本9月上海发货 2年月产量达1000万
5月23日消息,据中国台湾媒体报道,OLPC基金会(百元笔记本项目)首席技术官Mary Lou Jepsen日前表示,首批百元笔记本电脑今年9月将从中国上海发货。 Jepsen称,目前已有25个国家愿意加入“百元笔记本”项目。最初,百元笔记本的月产量在1万-2万部之间,但2年内即可达到1000万部。 百元笔记本的成本预计在175美元,但2009年可降至100美元。Jepsen还称,OLPC已经启动了“50美元笔记本”的计划。 升级后,百元笔记本当前的基本配置为:AMD XL700处理器、256MB DRAM内存和1GB闪存(替代硬盘)。最初,百元笔记本将只采用Linux系统,短期内还没有部署Windows系统的计划。 由于
[焦点新闻]
英特尔台式PC阵营有哪些亮点?
随着技术不断发展并且越发以数据为中心,台式机仍然是游戏玩家、内容创建者和专业型消费者的首选多功能平台。事实上,当人们真的需要完成工作时,超过80%的人会使用自己的PC1。在 英特尔 ,我们对PC的发展前景和未来机遇感到无比兴奋。从第一个英特尔8086 处理器 到最高可达5 GHz的最新第八代英特尔®™ 酷睿 i7 - 8086 k处理器,英特尔一直致力于通过创新为台式机提供领先的性能,我们还希望在今年晚些时候交付全新英特尔酷睿X系列和S系列处理器,以及28核处理器。   处理能力达到极限:英特尔®酷睿™ X系列处理器全新英特尔®酷睿™ X系列处理器已在2017年9月面市。作为英特尔有史以来扩展能力最强、最无障碍、功能最强大的台式机
[嵌入式]
AT91RM9200在嵌入式税控POS系统中的应用
1 引 言   据赛迪顾问统计,全国将有300~500万台的市场装机总容量及相关税务接口软硬件、配套设备、服务和培训等市场需求,会形成至少300~400亿元的巨大市场。然而,整个税控收款机市场急待解决的问题还不少。   税控POs概念在我国提出虽已有几年时间,但其现有方案总体技术含量较低,如今各商家的产品基本已趋于同质化。这一现象非常不利于行业的发展.淡化了人们对该行业发展的期望。分析其原因,有来自企业自身的自主创新能力缺乏,也有来自产业链的上下游厂商配合力度不够,甚至还有来自我国相关行业的法律法规相对滞后和不够完善。所有 这些问题,都严重影响着我国税控POS产业的发展。 2 方案需求分析   对于一个目标系统
[嵌入式]
PMC全新城域OTN处理器助力实现为分组优化的城域光网络
致力于存储网络、光网络以及移动网络半导体解决方案创新的PMC公司日前宣布推出第二代HyPHYOTN处理器产品系列,助力实现城域OTN网络,并继续保持其在光传输领域的领导地位。PMCHyPHY20Gflex和HyPHY10Gflex全面支持ODU0/ODUflex,将城域OTN网络的分组传送效率提高了一倍,使其拥有城域传送网络所需的多业务承载能力和可扩展性,以应对急剧增长的分组流量。对运营商而言,HyPHYFlex将以太网、SAN及视频业务的网络资源优化和管理提升到前所未有的高度,从而降低运营成本。对设备商而言,HyPHYFlex可以同时应用在OTN交换和DWDM 光交叉的光传输设备上,因此大幅降低研发成本。 HyPHY20
[网络通信]
Intel CEO:苹果除非是傻瓜,才会不在 Mac 尝试自家处理器
Intel CEO Brian Krzanich 在受访时,谈到了苹果如果在 Mac 改用自家的 ARM 处理器、而不是 Intel 产品时的想法。 Brian Krzanich 这么说道: 「身为一个工程师,我认为他们(指苹果)如果不去做这方面的测试,那他们一定是傻了。 」 虽然没有提到自家 X86 处理器相较苹果 ARM 芯片的优势,但话锋一转,Krzanich 提到 Intel 把这些看作一场「一定得赢的竞争」,而 Intel 的工作则是让产品更有说服力,比如效能或续航。 言下之意听得出 Intel 对苹果潜在竞品的轻松写意。 其实日前苹果也传出正在研究 Mac 专用的 ARM 处理器。 这笔由《彭博社》揭露的消息,后续也在
[手机便携]
STM32-(02):结识STM32
全新的Cortex架构系列,为嵌入式市场提供了一个三管齐下的解决方案。 1、 Cortex-A:高性能应用处理器;(越来越接近电脑) 2、 Cortex-R:专门针对实时、深度嵌入式解决方案;(又要快又要实时); 3、 Cortex-M:专注于低成本嵌入式微控制器;(好用又便宜) A:需要运行复杂应用程序的“应用处理器”,支持大型嵌入式操作系统(不一定实时),比如Symbian (诺基亚智能手机用),Linux,以及微软的WindosCE和智能手机操作系统Windos Mobile。这些应用需要劲爆的处理能力,并且需要硬件MMU实现的完整而强大的虚拟内存机制,还基本上配有Java支持,有时还要求一个安全程序执行环境(用于电子商务
[单片机]
STM32-(02):结识STM32
消息称三星电子在硅谷开设先进处理器实验室,聚焦 RISC-V IP 开发
4 月 19 日消息,据韩媒 Sedaily 报道,三星电子通过旗下三星综合研究院(SAIT,Samsung Advanced Institute of Technology)在美国硅谷开设了面向人工智能芯片设计的先进处理器实验室。 该实验室将专注于 RISC-V 架构处理器 IP 的设计工作,最终目标是打造基于 RISC-V 架构的自研人工智能芯片,打破英伟达在人工智能芯片领域的霸权。 三星电子目前的大部分处理器产品均基于 Arm 架构,这意味着其受制于 Arm 公司的处理器设计,同时需要向 Arm 公司支付相对较高的 IP 授权费用。 相比之下,RISC-V 采用开源模式,三星可获得更大的技术独立性。 根据IT之家此前报道,三
[嵌入式]
小广播
最新手机便携文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved