• 计算机组成原理——部分速成总结存档


    这篇用来存档 基本并不能帮助大家速成 只是博主复习时用来巩固时用的(假装大家都看不见)

    教材:《计算机组成原理》唐朔飞版

    内容:第四章到第八章不完全总结

    chapter 4

    存储器

    存储器的层次结构:缓存-主存 提高速度 主存地址 实地址 物理地址

                                 主存-辅存 提高容量 虚拟存储器 虚地址 逻辑地址

     

    2^地址线 * 数据线 =存储容量

    半导体存储器芯片的译码驱动方式:线选法 重合法

    动态RAM刷新:

    1. 1.       集中刷新

    在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读、写操作。存在“死时间

    1. 2.       分散刷新

    对每行存储单元的刷新分散到每个存储周期内完成,不存在读写操作死时间,但存取周期长了,整个系统速度降低了

    1. 3.       异步刷新

    是两种方式的结合 既可缩短死时间,又充分利用最大刷新间隔为2ms的特点。

     

    海明码:2^k >=n+k+1

                  K=3                     1 3 5 7   2 3 6 7   4 5 6 7

                  K=4                      3 5 7 9 11      3 6 7 10 11     5 6 7       9 10 11

     

    Cache-主存地址映射

    直接映射:有固定的映射关系,某一主存块只能固定映射到某一缓存块

                  优点:实现简单,只要利用主存地址的某些位直接判断,即可确定所需字块是否在缓存中

                  缺点:不够灵活。

    全相联映射:某一主存块可以映射到任一缓存块

                  优点:方式灵活 命中率更高 缩小了块冲突率

                  缺点:逻辑电路甚多 成本较高

    组相联映射:是直接映射和全相联映射的一中折中。某一主存块能映射到某一缓存组中的任一块

                  性能及复杂度介于直接映射和全相联映射之间。

     

    chapter 5

    I/O设备与主机信息传送的控制方式

    程序查询方式:CPU启动I/O设备后便不断查询I/O设备是否已做好准备。启动I/O设备,CPU便不断查询I/O设备的状态,若查得I/O设备未准备就绪,就继续查询;若查得I/O设备准备就绪,就将数据从I/O接口送至CPU,再由CPU送至主存,一个字一个字地传送,直至全部结束,CPU回到原现行程序。

    特点:

    1. 只要一启动I/O设备,CPU便不断查询I/O设备的准备情况,从而终止了原程序的进行,反复查询过程进入“原地踏步
    2. CPU和I/O设备串行工作,CPU效率低

     

    程序中断方式:启动I/O设备后,不查询设备是否已准备就绪,继续执行自身程序,当I/O设备准备就绪并向CPU发出中断请求后才给予响应。处理完中断后返回原程序断点处,继续执行原程序

    特点:

    1. 不必不断查询I/O设备准备情况,没有“踏步”现象
    2. 中断了现行程序
    3. CPU执行程序和I/O设备准备同时进行,CPU和I/O并行工作(部分)。
    4. 相比程序查询方式提高了CPU利用率

    (硬件需增加相应电路,软件必须编制中断服务程序)

    过程:

    1. 中断请求、中断判优、中断响应、中断服务(保护现场、中断服务、恢复现场、中断返回)、中断返回
    2. (宏观上CPU与I/O并行工作,微观上CPU中断现行程序为I/O服务)
    3. INTR中断请求触发器           MASR中断屏蔽触发器 

    D设备准备就绪           EINT允许中断触发器(开中断、关中断)

    DMA方式:主存与I/O设备之间有一条数据通路,无需调用中断服务程序,若CPU和DMA同时访存,总是把总线占有权给DMA,DMA窃取或挪用一个存取周期。

    特点:

    1. 主存与I/O设备之间有一条数据通路
    2. 不中断现行程序,省去了保护现场和恢复现场
    3. 周期挪用/周期窃取
    4. CPU和I/O并行工作
    5. 相比程序查询方式和程序中断方式更提高了CPU利用率

    DMA与主存交换数据的三种方法(优缺点?):

    1. 停止CPU访问主存
    2. 周期挪用
    3. DMA与CPU交替访问

    DMA的数据传送过程:

    预处理 数据传送 后处理

    DMA接口类型:

    选择型 多路型

    DMA与程序中断方式比较:

     

    chapter 6

    无符号数和有符号数,定点表示和浮点表示

    X=0时,[+0]原=0,0000      [-0]原=1,0000  [+0][-0]

                  [+0]补=0,0000      [-0]补=0,0000  [+0][-0]

                  [+0]反=0,0000      [-0]反=1,1111  [+0][-0]

                  [+0]移=1,0000      [-0]移=1,0000  [+0][-0]

    补码或移码唯一

    原码小数点(小数)或逗号(整数)前永远是符号位

    [y]补求[-y]补连同符号位,每位取反,末位加一

    移码:补码符号位取反

     

    IEEE754: 短实数 符号位1 阶码8 位数23 总位数32

    定点运算

    有符号数的移位:算术移位              无符号数的移位:逻辑移位

    现代计算机使用补码加减法

    补码加减法(符号位也做运算,由于模2,溢出丢掉即可):

    [A]补+[B]补=[A+B]补          [A-B]补= [A]补+[-B]补  (记得溢出判断)

    补码:参与加减的两个数符号相同但与结果符号不同,则溢出

    变形补码:结果的符号位不用则溢出,高位为真正的符号

    原码一位乘:逻辑移位、移位次数判断结束、n次加法和n次移位

    原码两位乘:算术移位、移位次数判断结束、n/2+1次加法和n/2次移位(n为偶)

    补码乘法(booth算法,被乘数和乘数符号均任意的情况):

    原码乘符号位单独处理,补码乘符号位自然形成

    chapter 7

    指令的一般格式

    操作码:长度固定(集中放在指令字的一个字段内,用于指令字较长的情况)、

    长度不固定(分散在指令字的不同字段中,增加译码和分析的难度)、

    扩展操作码(位数随地址数减少而增加)

    扩展操作码:

     

    地址码(通常是形式地址而不是有效地址):两个源操作数、结果、下一条指令

    四地址:四次访存、A1(OP)A2 →A3

    三地址:四次访存、A1(OP)A2 →A3、PC代替A4

    二地址:四次访存(若结果存于ACC则三次访存)、A1(OP)A2 →A1、结果存于A1

    一地址:两次访存、ACC(OP)A1→ACC、ACC代替原A1

    零地址:无地址码

     

    指令字长:取决于操作码长度、操作数地址的长度、操作数地址的个数

    指令字长固定:指令字长=存储字长

    指令字长可变:按字节的倍数变化

     

    寻址方式

    寻址方式:确定本条指令地址的数据地址、确定下一条将要执行的指令地址,包括指令寻址数据寻址

    指令寻址:顺序寻址、跳跃寻址

    数据寻址:

    1. 立即寻址:形式地址A内放操作数(立即数)、指令执行阶段不访存、A的位数限制了立即数的范围
    2. 直接寻址:形式地址内放有效地址、执行阶段只访存一次、操作数的地址不易修改(必须修改A)
    3. 隐含寻址:操作数的地址隐含在操作码中(例如MUL被乘数在AX或AL中)、指令字中少了一个地    址字段所以可以缩短指令字长
    4. 间接寻址:有效地址由形式地址间接提供、指令执行阶段访存两次以上、指令执行时间变长、扩大寻址范围、便于编制程序
    5. 寄存器寻址:有效地址即为寄存器编号、执行阶段不访存 只访问寄存器 执行速度快、寄存器个数有限 可缩短指令字长
    6. 寄存器间接寻址:有效地址在寄存器中 操作数在存储器中 执行阶段访存、便于编制循环程序
    7. 基址寻址
      •   采用专用的寄存器做基址寄存器(隐式):扩大寻址范围、便于程序搬家、BR内容由操作系统或管理程序确定、程序执行过程中BR中内容不变,A的内容可变
      •   采用通用的寄存器做基址寄存器(显式):用户指定哪个寄存器做基址寄存器、基址寄存器的内容由操作系统决定、在程序执行过程中R0内容不变,形式地址A可变
    8. 变址寻址:IX为变址寄存器(通用寄存器也可以作为变址寄存器)、可扩大寻址范围、IX内容由用户给定、程序执行过程中IX内容可变、形式地址A不变、便于处理数组问题
    9. 相对寻址:A是相对于当前指令的位移量(可正可负,补码)、A的位数决定操作数的寻址范围、程序浮动、广泛用于转移指令     
    10. 堆栈寻址

       

    RISC的特点

     

     

    chapter 8

    CPU的结构(ALU、CU、寄存器、中断系统)

    CPU功能指令控制(控制程序的顺序执行)、操作控制(产生完成每条指令所需的控制命令)时间控制(对各种操作加以时间上的控制)、数据加工(对数据进行算术运算和逻辑运算)、处理中断

    CPU的寄存器

    1. 用户可见寄存器(通用寄存器、数据寄存器、地址寄存器、条件码寄存器)
    2. 控制和状态寄存器(控制:PC→MAR→M→MDR→IR,PC可见 状态:状态寄存器放条件码  PSW寄存器放程序状态字)

    CU控制单元:产生全部指令的微操作命令部件(两种方法:组合逻辑设计方法(硬连线逻辑)、微程序设计方法(存储逻辑))

    指令周期

    指令周期=取指周期(取指、分析)+间址周期+执行周期(执行)+中断周期

    指令流水

    为什么要用指令流水?提高细粒度并行性,开发系统的并行性,提高机器速度——小圆想的,错了不挨打

    指令的二级流水:如果指令的执行阶段不访问主存,就可以利用这段时间取下一条指令,使得取下一条指令的操作和执行当前指令的操作同时进行,这就是两条指令的重叠

    指令预取:由指令部件取出一条指令,并将它暂存起来,如果执行部件空闲,就将暂存的指令传给执行部件执行。与此同时,指令部件又可取出下一条指令并暂存起来。

    如果取值和执行阶段时间上完全重叠,指令周期减半,速度提高一倍。影响效率加倍的因素

    1. 指令执行时间一般大于取指时间。
    2. 当遇到条件转移指令时,下一条指令是不可知的。(用猜测法解决)

    影响流水线性能的因素?(看书上的例子)

    1. 结构相关:不同指令争用同一功能部件产生的,也称资源相关

        解决?

        a)       后推法:流水线在完成前一条指令对数据的存储器访问时,暂停(一个时钟周期)取后一条指令的操作

        b)      指令存储器和数据存储器分开,以免取指令和取操作数同时进行时互相冲突

        c)       指令预取技术,适用于访存周期短的情况

    1. 数据相关:各条指令因重叠操作,可能改变对数据的读写访问顺序

        解决?

        a)       后推法:遇到数据相关时,就停顿后继指令的运行,直至前面指令的结果已经生成

        b)      定向技术(旁路技术、相关专用通路技术):不必等某条指令的执行结果送回到寄存器后,再从寄存器中取出该结果,作为下一条指令的源操作数,而是直接将执行结果送到其他指令所需要的地方放。

    1. 控制相关:由转移指令引起

        解决?(了解

        尽早判别法,转移预测法,加快和提前生成条件码,提高猜准率

    数据相关分类

     

    流水线性能指标:吞吐率、加速比、效率

     

    流水线中的多发技术:

    1.  超标量技术:每个时钟周期内同时并发多条独立指令,即以并行操作方式将两条或两条以上指令编译并执行

    要求配置多个功能部件,要求通过编译优化技术把可并行的指令搭配起来,硬件不能调整指令执行顺序

    2.       超流水技术:将一些流水线寄存器插入到流水线段中,好比将流水线再分段。使得一个时钟周期内一个功能部件使用多次

    硬件不能调整指令的执行顺序,靠编译程序解决优化问题

    3.       超长指令字技术:由编译程序在编译时挖掘出指令间潜在的并行性后,把多条能并行操作的指令组合成具有多个操作码字段的超长指令

    采用多个处理部件。对优化编译器的要求高,对Cache容量要求大。

     

    中断系统

     

    中断系统
    [Zhōngduàn xìtǒng]
    Interrupt System
     
  • 相关阅读:
    c++学习笔记—二叉树基本操作的实现
    c++学习笔记—单链表基本操作的实现
    c++学习笔记—c++对txt文件的读取与写入
    c++学习笔记—动态内存与智能指针浅析
    c++学习笔记——个单词转换的map程序详解
    获取JAVA[WEB]项目相关路径的几种方法
    Oracle数据库体系结构及创建表结构
    锋利的jQuery学习总结
    SQL调优常用方法
    Oracle行转列操作
  • 原文地址:https://www.cnblogs.com/zhanjiahui/p/12234519.html
Copyright © 2020-2023  润新知