硅系厂家
免费服务热线

Free service

hotline

010-00000000
硅系厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

多核与多绪在各种运算体系的整合与对抗

发布时间:2020-07-21 19:00:30 阅读: 来源:硅系厂家

多核心架构是处理器的主流设计方式之一,不论在超级计算机、服务器领域、个人计算机,小至掌上型行动装置,不论是同质核心,甚或是异质核心,多核架构带给消费者的好处也越来越明显。

本文引用地址: 但是多核架构必须结合多个核心,在电路规模以及芯片复杂度上的增加必须藉由制程来抵消,而多执行绪虽然也可以跟多核架构兼容并蓄,但在嵌入式环境中,却是呈现分庭抗礼的状态,两者各有优势,但也有其缺点,短期之内可预见此2大架构在嵌入式应用中各擅胜场。

多核与多执行绪架构其实都是相当成熟且具有历史的技术,两者其实可以相辅相成,在大型计算机、工作站等领域,其采用的处理器核心往往都同时具备此2大技术,而且在效能表现上取得了相当优秀的结果,然而在嵌入式应用中,却因为2大嵌入式处理器厂商的开发走向差异,让多核心与多执行绪技术成为各家独到的特性,并以此为卖点,然而随著处理器架构的进步,以及半导体制程的进化,两者其实也有可能结合,毕竟这2种技术其实没有太多相抵之处,目前无法在嵌入式处理器中并行,只能看成是厂商的技术限制,也或者是市场营销取向的不同,如果哪里天某阵营突然推出结合两者优点的处理器,其实也在预料之中。

图说:IBM的多核技术在高阶运算中相当普及。

多核心的架构特色

处理器的多核心技术其实已经行之有年,对于特定应用,多核心架构的确能够对效能起非常大的正面帮助,但是一般人在多核心对系统效能的帮助其实会有点误会,对基于多核心架构处理器的系统来说,多核心处理器并不能把单一执行绪的工作平均切割分配给处理器中的不同核心。

举个比较浅显的例子:单核心处理器在进行单一工作处理时,就好像1个工人在扫地,而场景转换到多核心处理器时,那扫地的工作并不会平均分配给多个工人,而仍然是1位工人在扫地,其它工人只能在旁边看,系统只能指定其它工人去进行别的工作,比如说浇花、洗衣或者是剪树,扫地这件工作本身在同1个时间点内依然只能由同1个工人进行。而多核心架构必须整合颗或多颗核心,在处理单元上多少都会有重复,若工作排程分配机制设计不佳、操作系统配合度不够高,最佳化程度不够,或者是工作本身过于单纯,那等于是会有大批的晶体管处于闲置状态,形成浪费。

多执行绪的技术特性

至于在多执行绪方面,我们可以将之想象成具有1个复杂的大脑,而且有8只手脚的工人,这种架构在应用上,可以视工作的需求,来分配其大脑和手脚的工作负载,当大脑觉得正在进行的工作内容单纯又轻松,那么可以依照其预设的工作模式,来将大脑的思考能力和手脚进行切割,将其分散出去进行其它工作,如果当目前的执行绪本身复杂度高,或者是仅处理单一执行绪,则可以将所有执行单元(大脑和手脚)结合为一体,全力应付目前的工作。

乍看之下,多执行绪在应用的弹性方面要高出许多,但是多执行序架构的处理器在本质上仍为单一处理器(以前例而言,则是基于同1个大脑),即使能够同时处理多个执行绪,但是执行单元总数仍有其限制,在资源有限(快取存储器、分支预测单元、整数、浮点运算单元等等)的状况之下,要如何为特定应用最佳化可能是相当困难的1件事。

多核心/多执行绪在PC平台上的发展

我们以x86处理器为例,其实多执行绪的引进要早于多核心体系,这主要是肇因于半导体制程的限制,在过去的制程技术之下,要导入多核心架构是相当困难的1件事,除了核心热功耗问题难以解决以外,制程的不成熟也让良率难以有效提高,IBM基于RISC架构的POWER处理器,早在2001年就已经迈入多核心,不过初期仅限于高阶的计算运用,x86平台则是迟至2005年才推出了首款双核心处理器。

图说:Power4的芯片结构。

POWER4的架构为64位元,采用深管线,非循序执行指令(Out-Of-Order Execute)和超纯量(superscalar,即在1个处理器中拥有多重资料流路径的技术,可以藉此加快计算的速度)设计,除此之外,POWER4还能执行POWER指令集。每个POWER4处理器拥有2个加载/储存单元;2个倍精度的乘法浮点计算单元;1个分支预测单元和1个条件程序码暂存器执行单元。2个加载/贮存单元本身也具备了执行简单整数指令的能力,例如加、减和逻辑运算等。

每个POWER4处理器拥有32KB的资料快取(data cache )和64KB的指令快取(instruction cache),资料快取每个时脉周期可以完成2个加载动作和1个贮存动作。L1逻辑控制器支持在资料快取和指令快取中实现硬件指令预取。POWER4是非常先进的架构,远远超越了当时的X86体系。不过POWER4的芯片成本非常高昂,晶体管面积庞大,功耗也相当惊人,也此该处理器在初期仅能被应用在高速资料处理硬件上,直到制程技术有了突破,才逐渐被应用到桌面平台。

x86平台方面要主要是消费性应用,因此价格与成本必须被摆到第一要件考量,双核心芯片面积过于庞大,功耗更是难以利用当时的技术解决,而x86处理器为了能够适应复杂的运算环境,在芯片上设计了许多执行单元,已被不时之需,事实上,这些执行单元在大多数的运算应用中总是被闲置,形成了效能上的浪费,为了解决这样的问题,Intel借镜其它处理器厂商的技术,推出了自有的双执行绪技术,也就是俗称的HyperThreading,藉由该技术,Intel Pentium处理器在单一周期中最多可以执行2道指令,这项技术在当时的x86环境上看起来很新鲜,实际上针对高阶运算的RISC平台早已行之有年,而这项技术也有其缺点,当开启HyperThreading时,因为部分处理单元被切割来作为执行第二个执行绪之用,在面对单一复杂的执行绪运算需求,效能表现反而可能会逊于关闭HyperThreading的状态。

在x86环境当中,微软的操作系统向来无法良好的负担起多核心处理器的资料分配需求,以WindowsXP为例,该操作系统在执行单元与存储器存取的流程分配上有很大的问题,当双核心处理器的1个核心在进行运算时,另1核心必须等到运算中的核心完成工作之后,才能从L2快取存储器中取得所需资料来进行运算,而如果该运算资料刚好在正在运算的另1核心的L2快取中,则处理器核心还要透过汇流排将对方L2快取资料传输过来,不仅耗费过多执行周期,对汇流排也是相当大的负担。Vista在某种程度上改善了这样的状况,但是存储器控制器仍会影响到处理器核心的资料分配与传输,一般来说,高效能处理器通常都会将存储器控制器内建,如此可以大幅降低存储器存取所造成的延迟,并提供处理器更大的频宽。

图说:具备HyperThreading技术的Intel处理器。

后来Intel逐渐发展成为半导体猛兽,拥有业界最先进的半导体制程技术,双核心设计逐渐取得领先,虽然存储器控制器仍是效能瓶颈,但是藉由不计工本的整合庞大快取存储器,在效能上仍是具有相当的可看性,为了避免抵消庞大快取存储器的加速作用,其对HyperThreading之类的多执行绪技术也采避而不谈的态度,新近的Core 微架构双核心处理器上也没有导入此技术,不过在45nm Penryn处理器家族上,藉由改善快取存储器的效率,将可见到Hyper Threading技术复活。不过将来计算环境预料将大幅向串流应用倾斜,针对此类串流应用,循序(In-Order)执行能力的核心将藉由核心数量以及可运用计算单元取胜,在此类架构导入多执行绪来避免执行管线阻塞,将是未来的设计主流,效率也将会更高。当然,为了避免多执行绪架构对读写效能带来冲击,整合存储器控制器是绝对必须的条件之一。

嵌入式环境中的SoC设计

在嵌入式系统方面,处理器多以SoC的形式进行发展,单一芯片内部可能包含了1到多个同质或非同质处理器核心,情况更不是如前述基本型态多核心处理器那般单纯,由于SoC除了中央处理器核心以外,还要包括了数码讯号处理器、存储器或周边控制器、音效处理单元、视讯处理单元、或是SIMD处理单元,在架构上非常的复杂,在此种型态芯片中采用多核心方案,其实有其困难度。先不论硬件方面的问题,在软件开发与整合方面,就已经是1大难关。

在一般应用上,同质多核心的性能成长幅度无法随著核心数目的增加而线性成长,就目前的例子来看,4核心同质处理器的效能表现,尚无法达到单一核心的3倍幅度,这是因为通用操作系统在安排工作时,通常对排程管理无法达到最佳化,而以一般PC平台最常面对的随机运算特性,系统很难去判断何时是特定核心工作交接或执行的最佳时间点,不过在嵌入式应用方面,其运算环境多为串流应用,或者是可预期的计算过程与资料来源,最佳化过的操作系统可以将不同特性的运算需求分配给不同性质的处理核心(也就是异质多核心),一般通用多核心处理器在此处所扮演的角色其实相当弱。

图说:德州仪器的OMAP3430是1款相当标准的异质多核心处理器。

多核心对于提升整体性能虽然具有效益,但是效率相对较低。例如设计1个4核心系统,每个核心都只有1个执行绪,当然每个核心的性能都能达到最大化;但即使4个核心的性能都能达到最大化,最多也仅能同时执行4个执行绪,因此免不了仍会有空闲的处理单元。考虑到不是所有的执行绪都需要用到所有的处理单元,如果能拥有4个具备多执行绪能力的处理器核心,藉由充分利用所有执行单元的处理能力,在理想状态下,甚至能达到8个或更多单执行绪的核心性能总和。也就是说,多执行绪能使多核心处理器整体的性能更容易达到硬件极限,两者互相搭配可以有效避免执行单元的闲置与浪费。

但是就目前的状况来看,多核心架构处理器在嵌入式应用中较占优势,除了核心较为单纯,藉由制程的进步可以很容易以内建更多核心的方式来达到更高的效能,这样的作法等于是将设计端的负载转移到芯片制造端,IC设计公司花费的设计时间能够减少,成品也能更快上市,因此大多数具备高性能需求的嵌入式应用多采用此方式。但是多执行绪在架构上有其效率高的优点,在较少的晶体管需求之下,能够拥有比起单执行绪更高的总和输出运算能量,除了功耗能够更为有效的控制以外,芯片的单位效率也更居优势,在成本效能比方面较高。

但是多执行绪架构并非毫无隐忧,由于多执行绪应用往往难以被明确界定,而且在程序码撰写上要更难以被一般人理解。这是因为多执行绪系统,程序执行的程序以及和处理器状态将可以在任何时间被转换,对于程序设计师而言,要确定是否每1个可能的程序都可以正常地运作将是非常困难的1件事,事实上,这个目标几乎是不可能实现的。而由这种不确定性所导致的结果,可能会使看似简单的程序由于潜在的死锁或其它的危险而漏洞百出。多核心体系等同于放大过后的多执行绪处理器,每1核心/执行绪都具备了完整的执行电路,但是在程序设计概念上其实都有互通之处,因此发生在多执行绪处理器身上的困难,在多核心处理器上同样也会有很大的机会可以见到。

x86入侵RISC体系面临大危机

多核心设计虽然可以在低时脉前提之下,取得相对较高的运算能量,但是多核心也同时代表著更庞大的晶体管数目,尤其以目前的核心架构仍以非循序执行(OOOE)为主流,非循序执行需要更多的分支预测电路、存储器管理以及更复杂的执行单元,以每晶体管效率来看,其实并不是相当理想,但即便是以MIPS为主流的多执行绪嵌入式处理器来看,为了针对通用运算达到更高的效能表现,也都是采用OOOE方式设计,加上为了多执行绪处理而增加的处理单元,在SoC整合多核心的难度要来得更高。由此来看,其实传统的RISC架构嵌入式处理器都不约而同的面临了瓶颈,单位芯片成本不够低、效能不够高,多核心必须结合多颗芯片来达成等状况,都是发展上的重重限制。

过去的嵌入式应用具备了长久且稳定的特性,因此IP厂商在推出1款处理器的架构时,基本上都可以沿用数年不做改变,但是这样的状况随著x86体系嵌入式处理器逐步逼近,逐渐有了根本上的改变。传统RISC处理器虽然目前仍然在架构上保有优势,但是这些优势总有一天会被追赶弭平,当RISC体系不再具备技术/功耗/效能上的优势,那要如何说服嵌入式系统厂商将其处理器应用在其产品之中?而且未来的信息产品将更为瞬息万变,世代更新也更为迅速,如恐龙般踩到尾巴五分钟之后才知道喊痛的话,将免不了会遭到灭种的命运。

西安磨骨价格

重庆吸脂价格

昆明植发价格

贵阳隆胸医院

相关阅读