注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

My Unix World

不要迷恋Unix,Unix只是计算世界很小的一部分!

 
 
 

日志

 
 

【Copy】从体系结构的演变看高性能微处理器的发展趋势  

2008-12-11 18:24:05|  分类: C-CPU |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

                                                         来源:电子产品世界 | 作者:单睿

       微处理器体系结构

       随着高性能计算的需求,计算机体系结构发生了很大变化。作为计算机核心部件的微处理器,其性能和复杂性(晶体管数、时钟频率和峰值)也按照摩尔定律增长。微处理器性能的改善在很大程度上归功于体系结构的发展和VLSI工艺的改进。体系结构的发展主要体现在三个方面,即超流水、多指令发射和多指令操作。

       超流水技术主要开发时间并行性。流水线技术是RISC处理器区别于CISC处理器的重要特征。采用超流水技术,尽管可以减少关键路径中每级流水的时间,但 同时也引入了更多的寄存器,进而增加了面积开销以及时钟歪斜问题。另一方面,深度流水在指令相关和指令跳转时会大大降低流水线的性能。

       多指令发射和多指令操作均是开发空间并行性。多指令发射面临的首要问题是如何保持应用程序语义的正确性,MIMD、超标量和数据流技术是多指


令发射的典型结构。MIMD是并行计算的重要研究领域。超标量采用 时序指令流发射技术,兼容性好,硬件开销大,功耗开销大,是目前多数商用高端处理器采用的主流技术。数据流采用token环技术,理论上可以开发出高度指 令并行性。然而,其商用开发不成功,原因是运行时间开销大,尤其是token环匹配需要很高的时间代价。

       多指令操作是当前体系结构的重要研究方向。多指令操作包括数据并行性开发和操作并行性开发。尽管在CISC处理器中均采用过这两种技术,但CISC给体系 结构开发带来三个负面影响:一是CISC指令不适合流水处理,二是指令差异很大造成译码困难,三是编译器很难开发出有效的指令操作。与CISC处理器相 反,多指令操作非常适合RISC处理器,其中SIMD和VLIW就是数据并行性和操作并行性的典型结构。

       向量处理器和SIMD处理器都是利用多个操作数来实现数据并行性。但二者有很大不同。向量处理器对线性向量元素顺序操作,SIMD则对向量元素进行并发操 作。对前者,每条指令只能作用于一个功能部件,执行时间较长;而后者在执行指令时可以作用于多个功能部件。向量处理器采用交叉存储器实现向量的访存操作, 同时可对短向量进行有效操作,即对稀疏向量进行压缩以获得高性能。SIMD适合多媒体中的分组数据流,通过特定算法将长的数据流截成定长短向量序列,从而 可以和向量处理器那样实现对定长短向量序列的高效处理。

       VLIW是实现操作并行性开发的重要途径。CISC处理器采用垂直编码技术,而VLIW则采用水平编码技术,指令中的每个操作域可以并发执行。同CISC 处理器相比,VLIW具有的优点是:指令操作域定长,译码简单;适合流水处理,减少CPI;编译器需要开发程序潜在的指令级操作并行性。传统VLIW的不 足是指令带宽较高,二进制目标代码不兼容。VLIW和SIMD结构都能接受单一指令流,每条指令可以包含多个操作。但前者允许每条指令包含多个不同类型的 操作,同时可以开发细粒度并行性。VLIW指令字较长,而SIMD具有很强的数据压缩能力。事实上,VLIW和SIMD技术相结合可以获得更高的性能加速 比,且非常适合多媒体数据处理。

       从微处理器体系结构和编译器界面划分的角度上讲,指令级体系结构可以分为顺序结构、相关结构和独立结构三类。在顺序结构中,程序不包含任何指令并行信息, 完全通过硬件进行调度,即硬件负责操作间的相关分析、独立操作分析和操作调度,编译器只负责程序代码的重组,程序中不附加任何信息。超标量是该类结构的典 型代表。在相关结构中,程序显式指定操作的相关信息,即编译器负责操作间的相关分析,而硬件负责独立操作分析和调度,如数据流处理器。独立结构完全由程序 提供各个独立操作间的信息,即编译器负责操作间相关性分析、独立操作间分析和指令调度,VLIW是其主要代表。

       超标量处理器架构

       现代超标量处理器体系结构均基于IBM360/91采用的Tomasulo和CDC6600采用的Scoreboard动态调度技术,MIPS R10000和DEC21264微处理器均基于该体系结构。典型超标量处理器通常采用如下逻辑结构实现动态调度:寄存器重命名逻辑、窗口唤醒逻辑、窗口选 择逻辑和数据旁路逻辑。Intel的Pentium处理器、Motorola的
PowerPC 604和SPARC64则采用基于预约站的超标量体系结构。
       两种体系结 构的主要区别是:在典型超标量结构中,无论是推测还是非推测寄存器值都放在物理寄存器堆中;在预约站超标量结构中,推测数据放在重排序缓冲器中,非推测数 据和已经执行完成提交的数据则放在寄存器文件中。在典型结构中,操作数不广播到窗口,而只将操作数标志TAG进行广播,操作数则送到物理寄存器文件。在预 约站结构中,指令执行结果广播到预约站,指令发射时从预约站去取操作数。

       超标量处理器性能与IPC(Instructions Per Cycle)和时钟频率的乘积成正比。时钟速率同系统结构的关键路径时延有关,而IPC和如下因素有关:程序中潜在的指令级并行性、体系结构字长宽度、指 令窗口大小和并行性开发策略。超标量处理器一般通过增加发射逻辑提高IPC,这将导致

更宽的发射窗口和更复杂的发射策略。

       众所周知,超标量处理器是通用微处理器的 主流体系结构,几乎所有商用通用微处理器都采用超标量体系结构。而在DSP方面,LSI 逻辑公司的 ZSP200、 ZSP400、ZSP500和ZSP600均采用超标量体系结构。ZSP200采用并行MAC和ALU运算部件,2发射超标量结构;ZSP400采用双 MAC单元、4 发射超标量处理器体系结构;ZSP500为4发射体系结构、采用增强型双MAC和双ALU运算单元;ZSP600采用4MAC和双ALU运算部件,每个时 钟周期发射6条指令。图1为ZSP400结构框图。

【Copy】从体系结构的演变看高性能微处理器的发展趋势 - liqix - Liqix的程序世界

                                                        图1 ZSP400 内核超标量体系结构框图

       ADI公司的TigerSHARC系列采用静态超标量体系结构。该系列采用了许多传统超标量处理器的特征,如load/store结构、分之预测和互锁寄 存器堆等技术。每个时钟周期发射4条指令。而静态超标量的含义是指指令级并行性识别是在运行之前,即编写程序时确定的(事实上以VLIW结构为基础)。同 时,Tiger SHARC系统处理器采用SIMD技术,用户可以对数据进行广播和合并。所有寄存器均是互锁的,支持简单的编程模型,该模型不依赖于不同型号间的时延变 化。分支目标缓冲器BTB为128位,可以有效减小循环操作和其它非顺序代码的执行时间。图2为TigerSHARC系列中的ADSP-TS201S结构 框图。

【Copy】从体系结构的演变看高性能微处理器的发展趋势 - liqix - Liqix的程序世界

                                             图2 ADSP-TS201S静态超标量体系结构框图
       超长指令字VLIW体系结构

       自从耶鲁大学的J.A Fisher于1979年首次提出VLIW体系结构以来,先后由耶鲁大学开发出基于跟踪调度(Trace Scheduling)技术的MultiFlow处理器和Cydrome公司Bob Rau等人开发的基于巨块调度(Superblock Scheduling)的Cydra-5处理器。但直到九十年代中期,基于VLIW结构的处理器基本上停留在实验室原型机阶段。因为VLIW本身固有的几 个关键问题一直没有彻底解决,导致了其后的商用处理器体系结构从RISC转向了超标量和超流水,而不是VLIW。尽管如此,由于VLIW结构的许多优点仍 然使许多研究机构竞相对该技术进行坚持不懈地研究,并在体系结构和编译器方面实现了突破,其中最重要的是解决了目标代码兼容问题并支持推断推测机制(尽管 大部分处理器仅支持部分推断推测机制)。这之后出现了Philip的Trimedia、Equator的MAP1000A媒体处理器、Chromatic 的Mact、TI的TMS320C6XX、Transmeta的Crusoe以及INTEL和HP联盟提出的IA-64体系结构(EPIC)。事实上 VLIW作为下一代高性能处理器体系结构的首选技术已成共识,该体系结构和优化编译器形成的SIMD指令流将更加适合多媒体数据处理。

       TI的TMS320C6系列是典型的超长指令字VLI

W体系结构,该系列每个指令周期可以执行8条32位指令,C62为定点处理器,C67为浮点处理器。C62和C67系列的CPU内核是相同的,包含 32个通用寄存器、8个执行部件。C64包含64个通用寄存器和8个执行部件。8个执行部件包含2个乘法器和6个ALU。支持8/16/32数据类型,所 有指令均为条件执行,减小了分支指令开销。图3为C62和C67系统框图。

 

【Copy】从体系结构的演变看高性能微处理器的发展趋势 - liqix - Liqix的程序世界

                                            图3  基于VLIW体系结构的TMS320C6系统框图

       中国科学院声学研究所在“973国家重大基础研究发展规划”资助下研制成功国内第一款基于多发射VLIW和SIMD技术的具有可重组结构的高性能微处理器芯 片-华威处理器(SuperV)。该处理器为四发射VLIW处理器,当执行向量处理功能时,每个周期可执行35个操作。在执行32位乘累加操作时可获得 2.9 GOPS 的数据处理速度;执行16位乘累加操作时可获得5.1 GOPS 的数据处理速度;执行8位乘累加操作时可获得9.3 GOPS 的数据处理速度。该处理器是目前国内数据处理能力最强的微处理器,可以广泛应用于信息家电、网络通信、声音图像以及雷达声纳等信号处理领域。

       可重构处理器架构

       从二十世纪七十年代开始的第一代CISC处理器开始至今,微处理器体系结构已经经过了三代。然而,即使是第三代的RISC技术仍然停留在固定模式的体系架 构设计。随着ASIC和SOC技术的发展,微处理器设计进入到第四代,即后RISC和可重构处理器时代。其重要特征是系统架构不再采用固定模式,而是将 DSP的灵活性与硬线连接的专用性相结合,使得微处理器可以针对不同的应用需求建立自己独特的体系结构,达到性能最优、功耗更低的目的。

       华威处理器(SuperV)体系结构不仅基于RISC、VLIW和SIMD技术,而且采用了可重构技术,使得用户在不增加硬件开销的情况下通过对系统功能 部件的重构完成对不同应用的处理,不仅提高了系统性能,而且大大降低了系统的功耗。例如,在华威处理器中设计了若干32位可重构乘法器,每个可重构乘法器 可以完成32位乘法、若干个16位乘法或者8位乘法。因此,华威处理器可以采用一条指令完成16个8位数据的乘(累)加操作;一条指令可以完成8个16位 数据的乘(累)加操作;一条指令可以完成4个32位数据的乘加操作;一条指令可以完成4个32位数据的累加操作;一条指令可以完成16个索引、16个地址 计算和16次数据加载操作;两条指令完成16个8位数据累加操作;两条指令可以完成8个16位数据累加操作;两条指令可以完成对256项、8位元素的数据 表进行的16路并行查找。
     Tensilica的可配置技术是可重构处理器的重要代表。例如,Vectra LX定点向量DSP引擎就是通过配置选项在Xtensa LX可配置处理器的基础上建立起来的。即Vectra LX定点DSP引擎是Xtensa LX微处理器内 核的一种配置。该定点DSP引擎是一个3发射SIMD处理器,具有四个乘法器/累加器(四MAC),它可以处理128位的向量。128位向量可以分成8个 16位或者4个32位的元素。整个Vectra LX DSP引擎是用TIE (Tensilica's Instruction Extension)语言开发的,通过修改可以适合不同的应用领域。Vectra LX DSP引擎增加了16个向量寄存器(每个寄存器160位宽)、四个128位的向量队列寄存器、第二个load/store单元和210多条现有 Xtensa LX处理器指令集体系结构中的通用DSP指令。Vectra LX DSP引擎如图4所示。

【Copy】从体系结构的演变看高性能微处理器的发展趋势 - liqix - Liqix的程序世界

                                            图4 Vectra LX DSP体系结构框图

       结  语

       作为信息产业的核心技术,微处理器体系结构正在发生很大的变化,而这种变化无不体现出市场需求的强大动力。现代微处理器,无论是通用微处理器还是数字信号 处理器在体系结构方面正在趋于融合。通用处理器通过增加媒体处理指令来提高数据处理器能力;而数字信号处理器也借鉴了通用处理器的体系结构,使得数字信号 处理器的数据处理器能力更加强大、管理更加灵活。同时,随着嵌入式应用的需求,对功耗的要求也越来越苛刻,使得可重构处理器在未来将会起到重要的作用。由 于不同的应用需求可以通过重构技术获得所需要的微处理器系统架构,这将大大提高产品的竞争力,同时也降低了整个系统的功耗和成本。
  评论这张
 
阅读(403)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017