计算机组成原理期末复习必考点

计算机组成原理

持续更新中
图文摘自PPT,附加一些作者自己的思考


概论

1.性能指标

  • 吞吐量
    表征一台计算机在某一时间间隔内能够处理的信息量。
  • 响应时间
    从输入有效到系统产生响应之间的时间度量,用时间单位来表示。
  • 利用率
    在给定的时间间隔内,系统被实际使用的时间所占的比率,用百分比表示。
  • 处理机字长(机器字长)
    处理机运算器中一次能够完成二进制运算的位数,如32、64位;
    机器字长与系统数据总线宽度具有一定的相关性。
  • 总线宽度
    一般指运算器与存储器之间的数据总线宽度。
  • 主存储器容量
    主存储器所能存储二进制数据的位数。
    或者说“主存储器中所有存储元的总数目,而非“存储单元”!
  • 主存储器带宽
    单位时间内从主存储器读出的二进制信息量,一般用字节数/秒表示。
  • 主频/时钟周期
  • CPU主时钟的频率——主频;其倒数为CPU的时钟周期(T周期)。
    CPU的运算速度
    • CPU执行时间:CPU执行一般程序所占用的CPU时间;
    • CPI:执行一条指令所需的平均时钟周期数;
    • MIPS:每秒百万指令数,即单位时间内执行的指令数;
      针对标量机(执行一条指令,只得到一个运算结果)
    • MFLOPS:每秒百万次浮点操作数,衡量机器浮点操作的性能。
      针对向量机(执行一条向量指令,通常可得到多个运算结果)
  • 其他的性能指标
    主存储器的读写速度、IO的数据传送率、带宽的均衡性……

2.冯·诺依曼机

  • 由运算器、存储器、控制器、输入设备和输出设备五个部分组成;
  • 存储器以二进制形式存储指令和数据;
  • 指令由操作码和地址码组成;
  • 存储程序并按地址顺序执行;
    冯·诺依曼机的核心设计思想,机器自动化工作的关键;
  • 以运算器为中心。

3.现代计算机

  • 将运算器、控制器和片内的高速缓存,统称为CPU;而将CPU、主存储器、输入/输出接口和系统总线统称为主机;其余的设备均为外设。
  • 主机内仅包含主存储器,辅助存储器属于I/O设备;
  • 以存储器为中心。
  • 减轻CPU的数据传送负担,提高系统的整体性能;

4.运算器/alu

  • 功能: 处理所有的算术及逻辑运算。
  • 特点:
    • 采用二进制数据进行运算;
    • 运算器一次可以处理的数据位数称为机器字长;
    • 机器字长一般为8、16、32、64位,机器字长直接决定着运算的精度和能力;
    • 运算器主要由ALU和各类通用寄存器构成。
  1. 存储器
  • 功能:保存所有的程序和数据。
  • 特点:
    • 二进制形式保存程序和数据;
    • 存储器是按存储单元组织的,读写存储单元必须给出单元地址;
  • 相关的概念
    • 存储元:用于保存一位0/1二进制数据的物理器件;
    • 存储单元:能够保存一个字数据的器件,由若干个存储元构成;
    • 单元地址:能区分每一个存储单元的编号,一般从0开始编号;
    • 存储容量:一个存储器所能保存的二进制信息的总量。
  • 存储器的分类:
  • 外存(辅助存储器)
    磁盘存储器、光盘存储器;
    CPU不可直接访问;
  • 内存(主存储器)
    半导体存储器;
    CPU直接访问,存放当前系统运行所需的所有的程序和数据。
  • 两个与主存相关的寄存器
    • MAR(存储器地址寄存器)Memory Address Register:接收由CPU送来的地址信息;
    • MDR(存储器数据寄存器)Memory Data Register:作为外界与存储器之间的数据通路。
  1. 控制器
  • 功能:根据所要执行指令的功能,按顺序发出各种控制命令,协调计算机的各个部件的工作。
  • 主要任务:
    解释并执行指令;
    • 控制指令的执行顺序;
    • 负责指令执行过程中,操作数的寻址;
    • 根据指令的执行,协调相关部件的工作,如运算类指令执行时对标志寄存器的影响设置。
  • 指令的形式
    • 操作码:指出指令所进行的操作,如加、减、数据传送等;
    • 地址码:指出进行以上操作的数据存放位置。
      控制器工作的周期
  • 取指周期:取指令的一段时间
  • 执行周期:执行指令的一段时间
  • 指令按顺序执行的控制部件:指令计数器PC
    每取出一条指令,指令计数器就加1;
    遇到转移类指令,控制器根据所执行指令设置指令计数器的值;
  • 相关概念
    • 数据字:该字代表要处理的数据;
    • 指令字:该字为一条指令;
    • 指令流:取指周期中,从内存读出的信息流;
    • 数据流:执行周期中,从内存读出的信息流。

7.适配器与输入输出设备

  • 输入设备
    将人们熟悉的某种信息形式变换为机器内部所能接收和识别的二进制信息形式的设备。
  • 输出设备
    把计算机的处理结果变成人或其他机器设备所能接收和识别的信息形式的设备。
  • 适配器
    保证外围设备用计算机系统特性要求的形式发送或接收信息。
  • 系统总线
    构成计算机系统的骨架,是多个系统部件之间进行数据传送的公共通路。

8.计算机系统的层次结构

  • 微程序设计级
    硬件级,硬件信号作用于计算机;
  • 一般机器级
    硬件级,使用微程序解释机器语言;
  • 操作系统级
    混合级,使用机器指令和广义指令;
  • 汇编语言级
    软件级,使用汇编语言;
  • 高级语言级
    软件级,使用高级语言;

运算方法与运算器

2.0 数据的类型
2.1 数据与文字的表示方法(掌握)
负数和其绝对值的差别只在第一位——符号位上(正0负1)
原码表示法

  • 原码表示法

    • 0有两种表示法
      [+0]原 = 0000 ; [-0]原 = 1000 (0表正数,1表示负数)
    • 数据表示范围
      定点小数:-1<X<1
      定点整数: -2^n <X< 2^n (若数值位n=3即:-8<X<8)
    • 优点
      与真值对应关系简单;
    • 缺点
      参与运算复杂,需要将数值位与符号位分开考虑。
  • 由原码求补码

    • 除符号位以外,其余各位按位取反,末位加1;
    • 从最低位开始,遇到的第一个1以前的各位保持不变,之后各位取反。
    • 例:[X]原= 1 1 0 1 1 0 1 0 0
      [X]补=1 0 1 0 0 1 1 0 0
  • 补码表示法

    • 0有唯一的表示法
      [-0]补= [24+(-0 )] mod 24 = 0000 = [+0]补
    • 数据表示范围
      定点小数:-1≤X<1
      定点整数: -2^n ≤X< 2^n (若n=3,则-8≤X<8)[n为机器字长-1(符号占一位)]
    • 加减运算规则
      [X±Y]补=[X]补± [Y]补 (mod 2)
      只要结果不溢出,可将补码符号位与数值位一起参与运算。
      [[x]补]补=[x]原
    • 补码除2操作,可通过算术右移实现
      [-0.0110]补=11010,则[(-0.0110)/10]补 = 11101,真值为-0.0011
  • 移码表示法

    • 移码通常用于表示浮点数的阶码
    • 用定点整数形式的移码
    • 定义: [x]移=2^n +x 2^n > x ≥ -2^n
      与[x]补的区别:符号位相反
    • 优点:
      • 可以比较直观地判断两个数据的大小;
      • 浮点数运算时,容易进行对阶操作;
      • 表示浮点数阶码时,容易判断是否下溢;
      • 当阶码为全0时,浮点数下溢。
  • 反码表示法

    • 特点:
      • 原码求反码方法:
        正数: [x]原 = [x]反 = x
        负数: 符号位不变,其余各位变反
        正数反码等于本身,负数不变符号位其他位取反
      • 表示范围
        定点小数:-1<X<1
        定点整数: -2^n <X< 2^n (若n=3即:-8<X<8)
  • 浮点数的IEEE754 标准表示

    • 数符S:表示浮点数的符号,占1位,0—正数、1—负数;
    • 尾数M:23位/52位,原码纯小数表示,小数点在尾数域的最前面;
      由于原码表示的规格化浮点数要求,最高数值位始终为1,因此该标准中隐藏最高数值位(1),尾数的实际值为1.M;
    • 阶码E:8位/11位,采用有偏移值的移码表示;
      移127码,即E=e+127,E的8位二进制数即为移127码的编码;
      (32/64位机器字长阶码/尾码位数不同)
    • 浮点数的真值:N=(-1)^S ×(1.M)× 2^(E-127)

2.2 定点加法、减法运算(掌握)

  • 补码加法

    • 补码加法运算基本公式
      定点整数: [x+y]补 =[x]补 + [y]补 (mod 2n+1)
      定点小数: [x+y]补 =[x]补 + [y]补 (mod 2)
  • 补码减法

    • 定点整数:[x - y]补=[x]补 - [y]补=[x]补 + [-y]补 (mod 2n+1)
      定点小数:[x - y]补=[x]补 - [y]补=[x]补 + [-y]补 (mod 2)
      ([-y]补等于[y]补的各位取反,末位加1。)
  • 定点数补码加减法运算

    • 基本公式
      定点整数:[x ± y]补 = [x]补 + [± y]补 (mod 2n+1)
      定点小数:[x ± y]补 = [x]补 + [± y]补 (mod 2)
    • 定点数补码加减法运算
      符号位和数值位可同等处理;
      只要结果不溢出,将结果按2n+1或2取模,即为本次运算结果。
  • 溢出概念与检测方法

    • 溢出
      在定点数机器中,数的大小超出了定点数能表示的范围。
    • 上溢
      数据大于机器所能表示的最大正数;
    • 下溢
      数据小于机器所能表示的最小负数;(这里特指定点数下溢,浮点数下指的是小数位为无穷小————趋近于0)
      例如,4位补码表示的定点整数,范围为[-8,+7]
      若x = 5,y = 4,则x+y产生上溢
      若x = -5,y = -4,则x+y产生下溢
      若x = 5,y = -4,则x-y产生上溢
    • 溢出判别方法——进位判别法
      溢出标志V=Cf ⊕ Cn-1
      其中Cf为符号位产生的进位, Cn-1为最高数值位产生的进位。
  • 校验码的类型

    • 奇偶校验码
      判断数据中1的个数设置1位校验位;
      分奇校验和偶校验两种,只能检错,无纠错能力;
    • 海明校验码
      在奇偶校验的基础上增加校验位而得;
      具有检错和纠错的能力;
    • 循环冗余校验码(CRC)
      通过模2的除法运算建立数据信息和校验位之间的约定关系;
      具有很强的检错纠错能力。

2.6 浮点运算方法和浮点运算器(掌握)
数符S 尾数M 阶码E

  • 浮点数加减运算
    • 设有两个浮点数X = Mx×2^Ex 和 Y = My×2Ey ,且Ex> Ey
      若要求X±Y的结果S,则
      S =X±Y =MS×2^ES
      其中 ,ES =Ex,MS =Mx±(My SHR (Ex - Ey))
  • 浮点数加减运算的步骤
    • 零操作数检查 一个操作数为0,则不必运算,节省运算时间

    • 两操作数对阶 使小数点位置对齐,为加减运算做准备

      • 对阶的原则
        以较大的阶码为标准,调整阶码较小的数(增大阶码,尾数右移)
        避免阶码较大的浮点数的尾数左移,导致最高有效数位丢失;
      • 具体操作
        求阶差△E = EX-EY
        调整阶码较小的数据
        若△E >0,则MY右移△E位,结果的阶码为EX
        若△E <0,则MX右移|△E|位,结果的阶码为EY
    • 尾数相加减 以双符号位的补码形式进行加减法操作

    • 结果的规格化

      • 两尾数加减的结果有两种情况
        • 尾数溢出
          两符号位为01或10
          尾数右移1位,阶码加1
        • 尾数为非规格化数据
          补码表示的符号位与最高数值位相同
          尾数左移1位,阶码减1,直至数值位最高位与符号位相反。
    • 结果的舍入处理

      • 在对阶或右规操作时,会使加数或结果的尾数低若干位移出,影响精度,常用两种舍入处理方法
        • 方法1:0舍1入法
          保留右移时的移出位,若最高位为1,则尾数加1;否则舍去;
          特点:精度较高,但需要记录所有的移出位。
        • 方法2:恒置1法
          若之前步骤有右移操作,则直接将结果的最低位置1;
          特点:精度较0舍1入法较低,但应用简单。
    • 结果的溢出判断

      • 小数部分是否过小/整体是否超出可表示范围

两浮点数进行加减,首先看两数的阶码是否相同,即小数点位置是否对齐。若两数阶码相同,表示小数点是对齐的,就可以进行尾数相加减,反之,此时需要使两数的阶码相同,这个过程叫做对阶。


多层次的存储器

3.1 存储器概述

  • 存储器分类
    • 只读存储器(ROM)Read Only Memory
      只能读出而不能写入的半导体存储器;
    • 随机读写存储器(RAM)Random Access Memory
      既能读出又能写入的半导体存储器
  • 存储器的分级结构
    • 寄存器/chace————cpu内
    • chache/主存————主板内
    • 硬盘————主板外
  • 存储容量:指存储器能存放二进制代码的总数。
    • 存储容量=存储单元个数×存储字长
      用a×b表示
      存储容量=存储单元个数×存储字长/8
      单位为B(字节)
    • 地址线:CPU在访问主存数据时传送地址信息的信号线。
    • 数据线:CPU在访问主存数据时传送主存数据的信号线。
    • 要求:已知存储容量能计算该存储器的地址线和数据线的根数。
      例如
      某机存储容量为 2K×16,则该系统所需的地址线为11根(2^11),数据线位数为16根。

3.3 DRAM存储器Dynamic Random Access Memory(掌握)

  • DRAM芯片的逻辑结构
    • 外部地址引脚比SRAM减少一半;
      送地址信息时,分行地址和列地址分别传送;
    • 内部结构:比SRAM复杂
      • 刷新电路:用于存储元的信息刷新;
      • 行、列地址锁存器:用于保存完整的地址信息;
        行选通信号RAS(Row Address Strobe)
        列选通信号CAS(Columns Address Strobe)
    • DRAM的读写周期
      与SRAM的读写周期相似,只是地址总线上的信号有所不同;
      在同一个读写周期内发生变化,分别为行地址、列地址;

读写周期

  • 存储器容量的扩充
    • 单个存储芯片的容量有限,实际存储器由多个芯片扩展而成;

    • 存储器容量扩充方式

      • 位扩展、字扩展、字位扩展
    • 存储器容量的字扩展
      存储器容量的字扩展
      低位的地址线与各芯片的地址线并联;
      多余的高位地址线用来产生相应的片选信号。

    • 存储器容量的位扩展
      存储器容量的位扩展

    • 存储器容量的字位扩展
      存储器容量的字位扩展

3.6 CACHE存储器 (掌握)

  • Cache的基本构成

    • 存储体
      基本单位为字,若干个字构成一个数据块;
    • 地址映射变换机构
      用于将主存地址变换为Cache地址,以利用CPU发送的主存地址访问Cache;
    • 替换机构
      若要更新Cache中数据时使用的机制;
    • 相联存储器
      Cache的块表,快速指示所要访问的信息是否在Cache中;
    • 读写控制
  • Cache的读操作

    • CPU发出有效的主存地址;
      • 经地址变换机构,变换为可能的Cache地址;
      • 查找块表,判断所要访问的信息是否在Cache中;
      • 若在,则CPU直接读取Cache获取数据;
      • 若不在,则CPU访问主存,并判断Cache是否已满;
        • 若Cache未满,将该数据所在块从主存中调入Cache;
        • 若Cache已满,使用某种替换机制,使用当前数据块替换掉Cache中的某些块。
  • Cache的写操作

    • CPU发出有效的主存地址;
      • 经地址变换机构,变换为可能的Cache地址;
      • 查找对应的相联存储器,判断所要访问的信息是否在Cache中;
        • 若不在,则使CPU直接写主存数据;
        • 若在,则使用某种写策略将数据写入Cache。
  • Cache的命中率

    • 命中率是指CPU要访问的信息在cache中的比率;
      -命中率=访问信息在Cache中的次数/访问总次数x100%(一般>95%)
      失效率=1- 命中率
    • 影响命中率的主要因素
      • Cache 容量:
        • 过小时,局部信息装不完,命中率低。
        • 过大时,对提高效率不明显,且成本高。
      • Cache中块的大小:
        • 一般用一个主存周期所能调出的单元数(字或字节)作为一个块大小。
  • 主存系统的平均访问时间

    • Cache/主存系统的平均访问时间ta为
      • ta = htc+(1-h)tm
        • tc ——命中时的cache访问时间
        • tm ——未命中时的主存访问时间
        • h ——命中率
    • 设r = tm/tc,则系统的访问效率e为
      • e=1/r+(1-r)h(由tc/ta逐步推导)
  • 主存与cache的地址映射

    • 信息从主存→Cache中,如何定位?
      Cache的容量小于主存,需要采用某种算法确定主存和Cache中块的对应关系;

    • 地址映射
      CPU访存时,将主存地址按某种映射函数关系变换成Cache地址的过程;

    • 地址映射的方式
      全相联映射、直接映射、组相联映射

    • 全相联映射方式
      全相联映射:
      (1)行与块等长;
      (2)主存中的每一块可以放到cache中的任意一行中;
      (3)在全相联映射中,将主存中一个块的地址(块号)与块的内容(字)
      一起存于cache某一行中,其中块地址存于cache的标记部分中。

      • 优点
        灵活性好(最理想)
        Cache中只要有空行,就可以调入所需要的主存数据块;
      • 缺点
        成本高
        标记位为m位,使cache标记容量变大;
        速度太慢
        访问cache时,需将所有标记比较一遍,才能最后判出所需主存中的字块是否在cache中;
      • 一般较少使用。
  • 直接映射(Direct Mapping)

    • 映射关系
      • 主存中的每一块数据只能调入Cache的特定行中;
        假设主存的块号为j,Cache的行号为i,则直接映射的地址映射函数为:
        i = j mod 2c (c是Cache行地址的位数)
      • 映射结果
        主存第0、2c 、 2c+1 、…块只能映射到Cache第0块;
        主存第1、2c+1、2c+1+1 …块只能映射到Cache的第1块;
        …… …… …… ……
    • 特点
      一个主存块只能调入cache的一个特定行中 。
    • 优点
      该映射函数实现简单,查找速度快;
      主存地址的中间c位即为Cache的行地址;
      在对应的块表中使用高t位地址进行比较,决定是否命中;
    • 缺点
      灵活性差;
      主存的2t个字块只能对应唯一的Cache字块,即使Cache中别的字块空着也不能占用。
    • 适合需要大容量cache的场合
  • 组相联映射(Set-associative Mapping)
    组相联映射是直接映射和全相联映射的一种折中方案。

    • 映射关系
      将Cache中的行等分为若干组,主存中的每一块只能映射到Cache的特定组中,但是可调入到该组的任一行中;
      组间为直接映射,组内为全相联映射。
    • 设Cache共u组,每组v行,则映射函数如下
      组号 q= j mod u(j——主存块号)
    • 当Cache的一组包含r行时,通常称为r路组相联映射。
    • 特点:
      • 灵活性:比直接映射灵活(主存可映射到组内任一块);
      • 快速性:比全相联比较次数少,只需组内全部比较;
      • 由于比较次数少,电路也较易于实现。
  • Cache的替换策略

    • 最不经常使用(LFU)算法
    • 近期最少使用(LRU)算法
    • 随机替换算法
    • 写回式
    • 全写式
    • 写一次法

指令系统

4.1 指令系统的发展和性能要求

4.1.1 指令系统的发展

  • 程序——用于解决实际问题的一系列的指令;

  • 指令——使计算机执行某种操作的命令;

  • 从组成的层次结构来说,计算机的指令可分为如下3类:
    1.微指令:微程序级的命令,它属于硬件;
    2.机器指令(指令):可完成一个独立的算术或逻辑运算;
    3.宏指令:由若干条机器指令组成的软件指令,它属于软件;

  • 指令系统:一台计算机中所有机器指令的集合。
    直接影响机器的硬件结构、软件系统、以及机器的适用范围。

  • CISC(complex instruction set computer)如X86架构

    • 采用复杂的的指令系统,来达到增强计算机的功能、提高机器速度的目的。
    • 特点:
      指令系统复杂庞大,指令数目多;
      指令格式多,字长不固定,多种寻址方式;
      可访存指令不受限制;
      各种指令的执行时间相差很大;
      大都采用微程序控制器;
      -RISC(Reduced instruction set computer)如ARM架构
    • 从简化指令系统和优化硬件设计的角度来提高系统的性能与速度。
    • RISC指令系统的主要特点:
      选取使用频率高的简单指令;
      指令长度固定,指令格式少,寻址方式种类少;
      采用流水线技术;
      使用较多的通用寄存器,减少访存;
      控制器以组合逻辑控制为主;
      采用优化编译技术;
  • 4.1.2 指令系统性能的要求

    • 完备性
      常用指令齐全,编程方便;
    • 有效性
      程序占用内存少,运行速度快;
    • 规整性
      指令和数据的使用规则统一,易学易记;
    • 兼容性
      同一系列的低档计算机的程序能够在新的高档计算机上运行。

4.2 指令格式

  • 指令的一般格式

    • 指令字用二进制代码表示的结构形式,由操作码字段和地址码字段组成。
      操作码字段OP+地址码字段A
    • 操作码字段:表征指令的操作特性与功能;
    • 地址码字段:通常指定参与操作的操作数的地址。
  • 操作码

    • 操作码字段的位数取决于指令系统的规模;
      操作码的类型:
    • 固定长度的操作码(操作码字段为4位,则指令系统中的指令数目为24=16条)
      • 特征:所有指令长度均相同。
      • 优点:控制简单,速度快,适用于指令条数不多的场合。
    • 可变长度的操作码
      • 特征:频繁使用的指令用位数较少的操作码;
      • 不常使用的指令可利用操作码扩展技术进行扩展;
    • 优点:充分利用软硬件资源,适用于大规模的指令系统
  • 地址码

    • 一条指令格式中有几个地址码字段,就称为是几地址指令;
    • 零地址指令
      无任何操作数运算,如NOP、HALT等指令。
      单操作数运算:隐含一个操作数,如CBW指令 。
    • 一地址指令
      单操作数运算,如 INC指令,(AC) OP (A)->(AC)。
      双操作数运算:隐含一个操作数,如MUL指令。
    • 两地址指令
    • 三地址指令
    • 多地址指令(如四地址)
      这类指令功能强,一般用高档小型机或中大型机,用于实现成批数据处理,字符串处理、向量或矩阵运算指令等。
  • 两地址指令的分类(根据操作数的物理位置分。)

    • 存储器-存储器(SS)型指令
    • 寄存器-寄存器(RR)型指令
    • 寄存器-存储器(RS)型指令
      注意:有些寻址方式可能会用到主存,比如隐含寻址,直接寻址,间接寻址(如果用到了主存就算是S型)
  • 指令操作码的优化

    • 指令由两部分组成:操作码、地址码
    • 指令格式的设计
      确定指令字的编码方式,包括操作码字段和地址码字段的编码和表示方式。
    • 指令格式的优化:如何用最短的位数来表示指令的操作信息和地址信息。
  • 哈夫曼编码

    • 基本思想:当各种事件发生的概率不均等时,可对发生概率最高的事件用最短的位数(时间)表示(处理),而对于出现概率较低的事件,则可用较长的位数(时间)表示(处理),从而使总的平均位数(时间)缩短。
  • 等长扩展码
    为了便于分级译码,一般都采用等长扩展码。
    (在早期的计算机上),如4-8-12位。
    例如:15/15/15法和8/64/512法

    • 选用哪种编码法取决于指令使用频度pi的分布。若在头15种指令中pi 的值都比较大,但在后30种指令后急剧减少,则应选择15/15/15法;若pi 的值在头8种指令中较大,之后的64种指令的pi值也不太低,则应选择8/64/512法。
    • 衡量标准:看哪种编码法能使平均码长最短。
  • 定长操作码

    • 固定长度的操作码:所有指令的操作码都是同一的长度(如8位)。
      许多计算机都采用(特别是RISC结构的计算机)
    • 保证操作码的译码速度、减少译码的复杂度。
    • 以程序的存储空间为代价来换取硬件实现上的好处
  • 指令字长度

    • 机器字长
      运算器一次能处理的二进制数的位数。
      机器指令的长度直接决定着CPU运算的精度和直接寻址能力的大小;
    • 指令字长
      一个指令字中包含二进制代码的位数;
      指令字长由操作码长度、操作数长度和个数共同决定。
    • 指令有半字长、单字长、双字长、多字长等不同的长度类型;
      • 单字长指令:指令长度=机器字长
      • 双字长指令:指令长度=2x机器字长
      • 半字长指令:指令长度=1/2x机器字长
  • 指令系统可分为等长指令字结构、变长指令字结构两种。

  • 指令助记符

    • 指令助记符
      使用3~4个英文缩写字母来表示的指令操作码。
    • 在不同的计算机中,指令助记符的规定是不一样的;
      指令助记符只是指令操作码字段的一种表示方法;
      机器内部保存的还是二进制代码形式的机器指令;
      由汇编或编译程序,将助记符翻译成机器代码。
  • 4.4指令和数据的寻址方式

    • 指令的寻址方式

      • 顺序寻址方式
        当程序按顺序执行时的指令寻址方式;
        必须用程序计数器记录所要执行指令的存放单元地址;
        • 一般做顺序加1的操作;
        • 程序计数器又称指令指针寄存器;
      • 跳跃寻址方式
        当程序转移执行时的指令寻址方式;
        程序计数器的内容由本条指令给出,而不是顺序改变。
    • 操作数的寻址方式
      一种单地址码指令的结构如下图:
      操作码OP 变址X 间址I 形式地址A(X,I为寻址特征位)
      将指令中的形式地址A变换成操作数有效地址的过程,称为寻址过程。

    • 典型而常用的寻址方式有
      隐含寻址、立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、偏移寻址、堆栈寻址;

    • 隐含寻址
      操作数地址隐含在操作码中;

    • 立即寻址
      形式地址A就是操作数;

    • 直接寻址
      有效地址由形式地址字段A直接给出;
      EA = A(EA指有效地址,A指形式地址)

    • 间接寻址
      有效地址由形式地址字段A间接提供,EA =(A)

    • 寄存器寻址
      形式地址字段A为寄存器编号
      EA = Ri

    • 寄存器间接寻址
      形式地址字段A用于指出存放有效地址的寄存器编号;
      EA = ( Ri )

    • 偏移寻址
      直接寻址和寄存器间接寻址方式的结合
      有效地址EA=A+®
      A是显式的形式地址字段;
      R可以是显式的,也可以隐含的,某个专用的寄存器;
      常用的偏移寻址

      • 相对寻址:指令转移时,常用相对寻址方式;
        EA=A+(PC)
      • 基址寻址:EA=(基址R)+A ,A+1->A
      • 变址寻址:EA=A+(变址R) ,变址R+1->变址R

中央处理器

5.1 CPU的功能和组成 ——掌握

  • CPU的功能

    • CPU(中央处理器)
      控制程序按设定方式执行;
    • CPU的主要功能:
      • 指令控制 顺序寻址、跳跃寻址
        控制程序的执行顺序;
      • 操作控制 对指令操作码译码后产生控制信号
        产生和发送各操作信号;
      • 时间控制 维持各类操作的时序关系
        控制指令、或操作的实施时间;
      • 数据加工 由ALU完成具体的运算
        对数据进行算术逻辑运算;
  • CPU的基本组成

    • 现代的CPU的组成
      运算器,控制器,片内cache(冯诺依曼机只有控制器)
    • 控制器的主要功能
      从内存中取出一条指令,并指出下条指令的存放位置;(PC、IR)
      对指令进行译码,产生相应的操作控制信号;
      控制CPU、内存和输入/输出设备之间数据流动;(CU、时序电路、操作控制器)
    • 运算器的主要功能:
      执行所有的算术运算;
      执行所有的逻辑运算,并进行逻辑测试。(ALU、通用寄存器组、标志寄存器
  • CPU中的主要寄存器

    • 数据缓冲寄存器(DR)
      暂时存放CPU与外界传送的数据,可以是指令字或数据字。
      作用 :
      作为CPU和内存、外部设备之间信息传送的中转站;
      补偿CPU和内存、外围设备之间在操作速度上的差别;
    • 通用寄存器
      功能:暂时存放ALU运算的数据或结果。
      CPU中的通用寄存器可多达16个,32个,甚至更多。
    • 状态条件寄存器(PSW)
      保存各种状态和条件控制信号;
      进位标志©,溢出标志(V),零标 志(Z),符号标志(N)
      每个信号由一个触发器保存,从而拼成一个寄存器。
    • 地址寄存器(AR)
      保存当前CPU所访问数据的内存单元地址;
      主要用于解决主存/外设和CPU之间的速度差异,使地址信息可以保持到主存/外设的读写操作完成为止 。
    • 程序计数器(PC)
      始终存放下一条指令的地址,对应于指令Cache的访问;
      其内容变化分两种情况
      顺序执行: PC+1->PC (计数功能)
      转移执行: (指令OPR)->PC (寄存功能)
    • 指令寄存器(IR)
      保存当前正在执行的一条指令。
      指令寄存器中操作码字段的输出就是指令译码器的输入。
  • 操作控制器与时序产生器

    • 数据通路
      寄存器之间传送信息的通路。
    • 操作控制器
      根据指令操作码和时序信号,产生各种操作控制信号;
      建立正确地数据通路,从而完成指令的执行。
    • 根据设计方法不同,操作控制器可分为
      硬布线控制器: 采用时序逻辑技术实现;
      微程序控制器: 采用存储逻辑实现;
      前两种方式的结合;
    • 时序产生器
      对各种操作实施时间的控制。

5.2 指令周期 ——掌握

  • 指令周期的基本概念

    • CPU执行程序是一个“取指令—执行指令”的循环过程。
    • 指令周期
      CPU从内存中取出一条指令,并执行的时间总和;
    • CPU周期
      又称机器周期,一般为从内存读取一条指令字的最短时间;
      一个CPU周期可以完成CPU的一个基本操作。
    • 时钟周期
      也叫节拍脉冲或T周期,是计算机处理操作的基本时间单位。
  • 一个完整的指令周期有若干机器周期/cpu周期:
    取指周期——间址周期——执行周期——中断周期(其中有间址才有间址周期,有中断才有中断周期)
    本教材上,间址周期和执行周期统称为执行周期!

    • 所有指令的第一个机器周期必为取指周期;
    • 一个基本的CPU周期包含4个时钟周期,对于某些CPU周期可以包含更多的时钟周期。
    • 不同指令的指令周期所包含的时钟周期个数不一定相同。
    • 举例
    • MOV是一条RR型指令,它需要两个CPU 周期:
      • 取指周期
        从存储器中取出指令;
        程序计数器PC加1;
        译码或测试指令操作码,发出控制信号;
      • 执行周期
        在控制信号的作用下,将R1中的数据经过ALU送入R0;
    • LAD指令是RS型指令,需要访存获取操作数,共包含三个CPU周期:
      • 取值周期
      • 间址周期
        从IR的地址码字段获取操作数地址;(或者通过计算获得EA)
      • 执行周期
        访存获取操作数送入通用寄存器R1;

5.4 微程序控制器 ——掌握

  • 微程序控制原理
    微程序设计技术是利用软件方法来设计硬件的一门技术。
    具有规整性、灵活性、可维护性等一系列优点;
    逐渐取代了早期的组合逻辑控制器,已被广泛地应用。

    • 基本思想
      仿照通常的解题程序的方法,把操作控制信号编成所谓的“微指令”,存放到一个只读存储器里;
      当机器运行时,一条一条地读出这些微指令,从而产生全机所需要的各种操作控制信号,使部件执行规定的操作。
  • 微命令和微操作

    • 控制部件与执行部件之间的联系–控制线
      控制部件向执行部件发出控制信号;
      执行部件向控制部件返回状态信息;
    • 微命令
      控制部件通过控制线向执行部件发出的各种控制命令;
    • 微操作–执行部件的最基本的操作
      执行部件接受微命令后所执行的操作;
    • 状态测试
      执行部件通过反馈线向控制部件反映当前操作状态,以使控制部件决定下一步的微命令;
  • 微操作的分类

    • 相容性微操作
      在同时或同一个CPU周期内可以并行执行的微操作;
    • 相斥性微操作
      不能在同时或不能在同一个CPU周期内并行执行的微操作。
  • 微指令和微程序

    • 微指令
      一个CPU周期中,实现一定操作功能的一组微命令的组合。
      微指令一般包含操作控制和顺序控制两大部分
      • 操作控制:用于发出管理和指挥全机工作的控制信号;
      • 顺序控制:用于决定产生下一条微指令的地址;
        所有的微指令都存放于控制存储器中,使用地址访问;
    • 微程序
      能实现一条机器指令功能的多条微指令序列;
      每条机器指令都对应着一段微程序;

    指令->微程序->微指令->微命令->微操作
    对应重数关系如下(1->1)(1->n)(1->n)(1->1)

  • 微程序控制器原理框图
    微程序控制器主要构成部件: P147图5.23

    • 控制存储器(CM)
      • 存放实现全部指令系统的微指令;
      • 由只读存储器构成,要求速度快,读出周期短。
    • 微指令寄存器
      存放由控制存储器读出的一条微指令信息;
      • 微地址寄存器:决定将要访问的下一条微指令的地址;
      • 微命令寄存器:保存一条微指令的操作控制字段和判别测试字段的信息。
    • 地址转移逻辑
      用于跳跃寻址微指令时,承担自动完成修改微地址的任务.
  • 微程序控制器的工作过程

    • “取指微指令”为所有指令的公用微指令;
      通常放在控制存储器中的“0”地址单元;
      所有机器指令的最后一条微指令的直接地址都指向0地址单元,用以取下一条微指令。
    • 取得机器指令后,经过P1测试,即操作码测试,产生对应的微程序入口地址,并送入微地址寄存器。
    • 指令执行过程中,通过P2测试,修正下一条微指令的地址,逐条读取微指令执行。
    • 执行完对应于一条机器指令的微程序后,返回到取指微指令,不断重复,直至程序执行完毕。
  • CPU周期与微指令周期的关系

    • 微指令周期
      • 读出微指令的时间加上执行该条微指令的时间;
      • 串行方式的微程序控制器中的概念;
    • 一般来讲,一个微指令周期时间设计得恰好和CPU周期时间相等。
  • 机器指令与微指令的关系

    • 一条机器指令对应一个微程序,一个微程序由若干条微指令序列组成的;
      一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。
    • 从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,前者与内存有关,后者与控制存储器有关。
    • 每一个CPU周期对应一条微指令。
  • 微程序设计技术

    • 微命令编码

      • 微指令中操作控制字段的编码表示方法,以及如何把编码翻译成相应的微指令。
      • 微命令编码主要考虑的问题:
        如何有效缩短微指令字长;
        如何有利于缩短微程序,减少所需的控存空间;
        如何有利于提高微程序执行速度;
      • 微命令编码表示方法
        直接表示法、编码表示法、混合表示法
    • 编码表示法

      • 编码方法
        将微指令操作控制字段划分为若干个子字段;
        每个子字段的所有微命令进行统一编码;
        每个子字段的不同编码表示不同的微命令;
      • 例如,某机器指令系统总共需要256个微命令
        • 采用直接编码法
          微指令的操作控制字段需256位;
        • 采用编码表示法
          若4个位划分一个子字段,则每个子字段可编码16个微命令;
          256个微命令需16个子字段,即微指令的操作控制字段仅64位。
      • 遵循原则:
        把相斥的微命令划分在同一个字段中,相容的微命令划分在不同字段;
        字段的划分应与数据通路结构相适应;
        每个子字段应留出一个空操作状态;
        每个子字段所定义的微命令不宜太多;
      • 优点
        可大大缩短微指令字长;
      • 缺点
        需要微命令译码,故微程序的执行速度稍稍减慢。
    • 微地址的形成方法

      • 微程序的入口地址
        微程序的第一条微指令所在控存单元的地址;
      • 现行微指令
        执行微程序过程中,当前正在执行的微指令;
        现行微指令的地址称为现行微地址。
      • 后继微指令
        现行微指令执行完毕后,下一条要执行的微指令;
        后继微指令的地址称为后继微地址。
      • 微指令中确定下一条微指令地址的方法;
        计数器方式、多路转移方式;
    • 计数器方式

      • 同CPU中程序计数器产生机器指令地址的方法相类似。
      • 优点
        微指令的顺序控制字段较短,微地址产生机构简单。
      • 缺点
        多路并行转移功能较弱,速度较慢,灵活性较差。
    • 多路转移方式

      • 可根据“判别测试”标志和“状态条件”信息选定某一个候选微地址的方法。
      • 特点
        能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度较快;
        但转移地址逻辑需要用组合逻辑方法设计。
  • 微指令格式

    • 水平型微指令
      • 一次能定义并执行多个并行操作微命令的微指令;
        一般由操作控制字段、判别测试字段、下地址字段三部分构成;
      • 根据控制字段编码方式的不同,可分为全水平型、字段译码法水平型、直接和译码相混合的水平型三种微指令。
    • 垂直型微指令
      • 微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能;
      • 垂直型微指令的结构类似于机器指令的结构。
  • 水平型微指令与垂直型微指令比较

    • 水平型微指令并行操作能力强,效率高,灵活性强。垂直型微指令则较差。
    • 水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。
    • 由水平型微指令解释指令的微程序,具有微指令字比较长,但微程序短的特点。垂直型微指令则相反,微指令字比较短而微程序长。
    • 水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。
  • 动态微程序设计

    • 静态微程序设计
      对应于一台计算机的机器指令只有一组微程序,而且这一组微程序设计好之后,一般无需改变而且也不容易改变。
    • 动态微程序设计
      可通过改变微指令和微程序来改变机器的指令系统的微程序设计技术。

5.5 硬连线控制器 ——了解

  • 硬连线控制器
    • 硬布线控制器是一种由门电路和触发器构成的复杂树形网络。
    • 硬布线控制器是早期设计计算机的一种方法;
      随着新一代机器及VLSI技术的发展,硬布线逻辑设计思想又得到了重视。
    • 与微程序控制相比,硬布线控制的速度较快;
      微程序控制中每条微指令都要从控制存储器中读取一次,影响了速度,而硬布线控制主要取决于电路延迟;
    • 近年来在某些超高速新型计算机结构中,又选用了硬布线控制,或与微程序控制器混合使用。

总线

输入输出系统

  • 12
    点赞
  • 204
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值