zoukankan      html  css  js  c++  java
  • 超标量、超级流水线、超长指令字、向量机

     

    记得本科学计算机系统结构时,在了解了流水线这一用于提高cpu处理速度的方法后,
    书中还介绍了一些其他的结构,这些结构一般用于较高性能的计算机中
    (呵呵,嵌入式系统中我还没看到,连multi issue的cpu都不多),包括:
    超标量(Super Scalar)、超级流水线(Super Pipeline)、超长指令字(VLIW)、
    和向量机。这些概念我总混淆,现在随着理解的深入,已经完全知道了它们各自的
    特点,写点简要的介绍,贴在这里。

    1、超标量(Super Scalar)
        将一条指令分成若干个周期处理以达到多条指令重叠处理,从而提高cpu部件利用
    率的技术叫做标量流水技术.
        超级标量是指cpu内一般能有多条流水线,这些流水线能够并行处理.在单流水线结构
    中,指令虽然能够重叠执行,但仍然是顺序的,每个周期只能发射(issue)或退休(retire)
    一条指令.超级标量结构的cpu支持指令级并行,每个周期可以发射多条指令(2-4条居多).
    这样,可以使得cpu的IPC(Instruction Per Clock) > 1, 从而提高cpu处理速度.
        超级标量机能同时对若干条指令进行译码,将可以并行执行的指令送往不同的执行
    部件,在程序运行期间,由硬件(通常是状态记录部件和调度部件)来完成指令调度.
        超级标量机主要是借助硬件资源重复(例如有两套译码器和ALU等)来实现空间的并行
    操作.
        我们熟知的pentium系列(可能是p-II开始),还有SUN SPARC系列的较高级型号,以及
    MIPS若干型号等都采用了超级标量技术.

    2、超级流水线(Super Pipeline)
        超级流水线又叫做深度流水线,它是提高cpu速度通常采取的一种技术。CPU处理指令
    是通过Clock来驱动的,每个clock完成一级流水线操作。每个周期所做的操作越少,那么
    需要的时间久越短,时间越短,频率就可以提得越高。所以超级流水线就是将cpu处理
    指令是得操作进一步细分,增加流水线级数来提高频率。频率高了,当流水线开足马力
    运行时平均每个周期完成一条指令(单发射情况下),这样cpu处理得速度久提高了。
    当然,这是理想情况下,一般是流水线级数越多,重叠执行的执行就越多,那么发生
    竞争冲突得可能性就越大,对流水线性能有一定影响。
        现在很多cpu都是将超标量和超级流水线技术一起使用,例如pentium IV,流水线达
    到20级,频率最快已经超过3GHZ.我们教科书上用于教学的经典MIPS只有5级流水。

    3、超长指令字(VLIW:Very Long Instruction Word)
        超常指令字是由美国Yale大学教授Fisher提出的。它有点类似于超级标量,是一条
    指令来实现多个操作的并行执行,之所以放到一条指令是为了减少内存访问。通常
    一条指令多达上百位,有若干操作数,每条指令可以做不同的几种运算。那些指令可以
    并行执行是由编译器来选择的。通常VLIW机只有一个控制器,每个周期启动一条长指令,
    长指令被分为几个字段,每个字段控制相应的部件。由于编译器需要考虑数据相关性,
    避免冲突,并且尽可能利用并行,完成指令调度,所以硬件结构较简单。
        VLIW机器较少,可能不太容易实现,我们平时很少接触VLIW机器(也许是我孤陋寡
    闻),我知道业界比较有名的VLIW公司之一是Transmeta,在加州硅谷Santa Clara(呵呵
    我心目中硅谷圣地之一,还有San Jose, Palo Alto,都是it英雄辈出的地方)。它做的
    机器采用X86指令集,VLIW实现,具体资料可以去访问公司的网站。

    4、向量机(Vector Machine)
        我们平时接触的计算机都是标量机,向量机都是大型计算机,一般用于军事工业,气
    象预报,以及其他大型科学计算领域,这也说明了向量机都很贵。国产的银河计算机就是
    向量机。
        普通的计算机所做的计算,例如加减乘除,只能对一组数据进行操作,
    被称为标量运算。向量运算一般是若干同类型标量运算的循环。
    向量运算通常是对多组数据成批进行同样运算,所得结果也是一组数据。
        很多做科学计算的大(巨)型机都是向量机,例如国产银河。这个好像我们平时不太
    接触的到。

    5、SIMD技术
       刚刚看到网上一段介绍SIMD的文字,贴在这里:
       单指令多数据(Single Instruction Multiple Data)
       简称SIMD。SIMD结构的CPU有多个执行部件,但都在同一个指令部件的控制下。
    SIMD在性能上有什么优势呢?以加法指令为例,单指令单数据(SISD)的CPU对加法指令
    译码后,执行部件先访问内存,取得第一个操作数;之后再一次访问内存,取得第二个操
    作数;随后才能进行求和运算。
       而在SIMD型CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进
    行运算。这个特点使得SIMD特别适合于多媒体应用等数据密集型运算。AMD公司的3D NOW!
    技术其实质就是SIMD,这使K6-2处理器在音频解码、视频回放、3D游戏等应用中显示出优
    异性能。
  • 相关阅读:
    [Python自学] PyQT5-Web控件、与JavaScript交互
    [Python自学] PyQT5-选项卡窗口、堆栈窗口、停靠窗口、子窗口
    [Python自学] PyQT5-窗口风格、窗口样式、GIF动画、窗口透明
    [Python自学] PyQT5-子线程更新UI数据、信号槽自动绑定、lambda传参、partial传参、覆盖槽函数
    [Python自学] PyQT5-信号与槽
    [Python自学] PyQT5-菜单栏、工具栏、状态栏
    [Python自学] PyQT5-控件拖拽、剪切板
    [Python自学] PyQT5-各种QDialog对话框
    [Python自学] PyQT5-QSpinBox、QSlider控件
    Linux操作系统分析 | 课程学习总结报告
  • 原文地址:https://www.cnblogs.com/lsjjob/p/6035971.html
Copyright © 2011-2022 走看看