zoukankan      html  css  js  c++  java
  • 《计算机组成与体系结构:性能设计》读后小记 13、精简指令集计算机

    一、指令执行特征

      1、精简指令集计算机(RISC)的关键特征:

        (1)有限的指令集并具有固定格式;

        (2)大量的寄存器或利用编译器来优化寄存器的使用;

        (3)强调对指令流水线的优化;

      2、操作:研究结论中,赋值语句和条件语句在程序中占有很大比例,这表明简单的数据传送和指令集的顺序控制机制都很重要。

      3、操作数:Pascal和C程序中主要使用简单标量变量,而且80%以上的标量是(过程的)局部变量。所以,优化的主选方向是对局部标量变量的存储和访问。

      4、过程调用:过程调用和返回是HLL(高级语言)程序中最耗时的操作,其中过程使用的参数及变量和嵌套的深度有显著意义。研究发现,程序保持在相当窄的过程调用窗口区域内,进一步证实了操作数访问是“高度局部化”的。

      5、推论:试图让指令集结构更接近HLL并不是一个有效的策略。相反,通过优化典型HLL程序中最耗时操作的性能,能更好地支持HLL。

    二、大存储器组方案的使用

       1、采用寄存器的理由:

        (1)寄存器是比主存和cache还要快的最快存储装置;

        (2)寄存器从物理上讲是最小的,通常是与ALU和控制器在同一芯片上;

        (3)并且使用比主存和cache地址还要短的地址;

      2、寄存器窗口

        (1)由于过程调用的嵌套深度过多,会导致数据频繁的在寄存器和存储器中传递。故总结两条结论用于解决这个问题:

          A、一个典型的过程调用只使用少量的传送参数和局部变量;

          B、过程调用的深度仅限定在一个相对窄的范围内;

        (2)环形缓冲器:寄存器窗口只用于保持少数最近过程的调用,更早的过程调用必须保存到存储器中,当嵌套深度减少时再恢复。

       3、解决全局变量的两种方式:

        (1)由编译器为高级程序设计语言(HLL)中声明的全局变量指派存储器位置,所有访问这些变量的机器指令将使用存储器引用的操作数;

        (2)在CUP中包括一组全局寄存器,这些寄存器的数量是固定的,并且可以被所有寄存器使用;

      4、大寄存器组与高速缓存的对比:尽管cahce能与寄存器组一样的快,但cache的存取时间肯定要长。于是,从性能观点看,基于窗口的寄存器组对于局部标量而言是更优化的。通过加入专门的指令cache,能进一步改善性能。

    三、基于编译器的寄存器优化

       其原理不太懂,具体见P315页。

    四、精简指令集体系结构

       1、采用CISC是理由:

        (1)简化编译器;

        (2)CISC可生成更小、更快的程序;

      2、CISC上的真实情况:

        (1)CISC上的编译器有偏爱简单指令的倾向,结果使得复杂指令所提供的简洁性很少发能发挥作用;

        (2)CISC上更多的指令数要求较长的操作码,这使指令较长;

        (3)RISC强调寄存器而不是存储器的访问,因而要求的指令位数也更少;

      3、使用CISC的结论:

        (1)并不能生成更小的程序;

        (2)并不能生成更快的程序;

      4、精简指令集的共同特征:

        (1)每机器周期一条指令:机器周期被定义成由寄存器取两个操作数,ALU完成算术操作,然后再将结果写入寄存器的时间;

        (2)大多数操作应是寄存器到寄存器的,只以简单的LOAD和STORE操作访问存储器;

        (3)使用简单的寻址方式。几乎全部指令都使用寄存器寻址方式,其他几种寻址方式,像偏移寻址和PC相对寻址,也可能包含进来;

        (4)使用简单的指令格式,而且通常仅使用一种或少数几种格式;

      5、RISC的潜在优势:

        (1)能开发出更有效的优化编译器;

        (2)编译器生成的大多数指令从任何方面讲都是相对简单的指令;

        (3)RISC程序应能更好的响应中断,因为中断是相当于在基本操作之间检查的;

    五、RISC流水线技术

      1、使用规整的流水线技术

      2、流水线的优化,没看懂,详情见P320

      3、指令流水线的设计不应与其他适用于系统的优化技术隔离开进行。例如,流水的指令调度策略应与寄存器的动态分配一起考虑,以提高效率。

  • 相关阅读:
    linux下后台执行shell脚本nohup
    notepad++常用命令
    dmidecode查看硬件信息
    CSV文件自动化(自定义参数)
    服务器数据恢复案例分享-硬盘掉线恢复
    DELL EqualLogic PS6100存储硬盘坏道数据恢复
    成功恢复某服务器丢失数据过程
    分析Linux raid6同步成raid5导致数据丢失的情况
    服务器RAID硬盘离线和数据库损坏数据恢复方法
    chkdsk 后数据丢失的恢复方法
  • 原文地址:https://www.cnblogs.com/gaojiang/p/4026610.html
Copyright © 2011-2022 走看看