计算机组成原理-期末复习-第五章+第六章

注意事项:

序号有点问题,影响不大,内容都是各种资料整合和我自己归纳总结的,不喜勿喷,感觉扔回收站可惜了,所以分享出来,能有帮上你的忙就最好不过了,更多复习资料,可以去看我的合集。

5. 指令系统

a) 理解指令格式的基本概念;掌握指令操作码扩展方法(比如教材例 5.1 及 PPT 上 相关例题);

指令格式=操作数 OP+地址数 An

所谓的指令操作码扩展方法:是将原本地址码的位数给 OP 操作码,让操作码变大从而扩展,指令条数看的是 OP 操作码的大小。

  1. 上一个地址剩下的‘1’对于下一个地址来说=21=2 条指令

考试例题:

  1. 零地址的运算类指令即堆栈运算指令,参加的两个操作数来自堆栈的栈顶和次栈顶。
  2. 一条指令有 128 位,按字节编址。读取这条指令后, PC 的值自动加 16
    1. 按字节编址,128/8=16,一条指令有16个字节长度,所以PC值要自动加16
  1. 一个计算机系统采用32位单字长指令,地址码为12位,如果定义了250条二地址指令,那么一地址指令()条。
    1. 250<28,因此二地址指令的操作码为8位,现定义了250条二地址指令,采用扩展操作码技术,留下6(256-250=6)个扩展窗口,每个扩展窗口可以扩展212=4K条一地址指令,故可扩展6*4K=24K条一地址指令。

b) 掌握指令寻址方式特别是操作数寻址方式,能够计算各种寻址方式下的有效地址 或操作数。(立即数寻址、直接寻址、间接寻址;寄存器寻址、寄存器间接寻址、 相对寻址;基址寻址、变址寻址,8 种?)

形式地址 A: 指令字中的地址
有效地址 EA: 操作数的真实地址 w

  1. 概念:
  2. 立即数寻址:eg:mov,AL,5:将 5 送到 AL 寄存器中,指令中直接给出了操作数=立即数=5
    1. 有效地址计算方法:不需要寻址
  1. 直接寻址:指令的地址码 直接给出 操作数所在 主存 的存储单元地址,A=EA,EA 就是有效地址,A 是地址码
    1. 有效地址计算方法:指令中形式指令部分就是有效地址,EA=A
  1. 间接寻址:地址码 给出的地址 是 有效地址 EA 的地址,读取其中的内容,指向真正的数据地址
    1. 有效地址计算方法: 不懂
    2. 直接寻址和间接寻址都是在主存里面找 操作数
  1. 寄存器寻址:

    ,在寄存器里面找操作数,类似直接寻址
    1. 有效地址计算方法:指令中的形式地址直接指出寄存器的编号,操作数存储于寄存器中,即 Ri=EA,有效地址即为寄存器编号。
  1. 寄存器间接寻址:

    ,寄存器里面放 EA,再通过 EA 去主存里面找操作数
    1. 有效地址计算方法:指令中的形式地址为寄存器的编号,寄存器的内容是操作数的有效地址。EA=(Ri)
  1. 变址寻址:

    EA=首地址(Rx) +偏移量 A
    1. 计算有效地址:变址地址有效地址 = 主存中的首地址 +变址寄存器中储存的主存应该偏移的量=变址地址+指令中的形式地址
    2. 变化的,寄存器,偏移量,变质寄存器
    3. 在程序执行过程中,基址寄存器的内容不能改变而变址寄存器的内容可以改变
  1. 基址寻址:

    1. 计算有效地址:基址地址有效地址 = 基址寄存器中的首地址 +偏移量=基址地址+形式地址 EA=(Rx)+A
    2. 基本的,主存,首地址,基址寄存器
  1. 相对寻址:

    ,EA 在主存中向上或者向下偏移的量就是相对偏移量
    1. 计算有效地址:EA=当前 PC 值+相对偏移量+形式地址
    2. 有三个值,注意

c) 指令格式的设计(操作码+二地址+一地址+零地址,每种地址数的分配和计算)。

字长 16 位=主存容量:64K=地址位一共 16 位

例题:

  1. 字长16位,主存64K,指令单字长单地址,80条指令。寻址方式有直接、间接、相对、变址。请设计指令格式。
    1. 解:80条指令→OP字段需要7位( 2^7=128 )
      4种寻址方式→寻址方式特征位2位
      单地址位长度:16-7-2 =7位
  1. 设某指令系统指令字长16位,每个地址码为6位。若要求设计二地址指令15条、一地址指令34条,问最多还可设计多少条零地址指令?
    1. 解: 二地址指令的地址码占12位,故操作码为4位,所以最多有 24=16种编码,用去15种,就剩下1种编码1111还没用
      1. 初始指令数量= 2 操作数
    1. 单指令剩余状态数:1*26-34=30
    2. 零地址指令最多:30*26 条指令
  1. 某机器指令码长度16位,地址码长度都为6位,包含一地址指令、二地址指令和零地址指令。一地址指令最多能有多少条?此时二地址指令和零地址指令各为多少条?
    1. 一地址指令最多能有(24-1)×26-1=959条。此时二地址指令只有一条,零地址指令最多可有26=64条。
    2. 题干说的要一地址最多,所以二地址指令分配一条,给零地址指令留1个扩展窗口。
    3. 24-1:OP的四位全部用作一地址指令的条数,并给二地址指令留一条。
    4. (24-1)×26:再把第一个地址码的6位用作一地址指令的OP。
    5. (24-1)×26-1:最后剩下一个全1用作零地址的扩展窗口,所以要减去1.

6. 中央处理器

a) 了解 CPU 的组成及相关寄存器的作用;(PC、IR、MDR、MAR)

CPU 的组成:

  1. 控制器:取指令、计算下一条指令的地址、对指令译码、产生相应的操作控制信号序列,形成完成指令所需要的数据通路,控制指令执行的步骤和数据流动的方向
  2. 运算器:运算器是执行部件,由算术逻辑单元和各种寄存器组成。运算器接受控制器的命令执行功能

CPU 中各种寄存器及其功能:

  1. PC:程序计数器。用于存放下一条指令的地址,当取完一个字节以后,PC的值会自动加一,为取在下一条指令做准备。
    1. 思考:为什么不直接存放下一条指令而存放下一条指令的地址呢?
    2. 如果存放地址的话可以很方便的自动加一定位到下一条指令的地址,但是如果存放的是指令的话,那只能在每一天指令的后面加上下一条指令的内容,导致指令长度过长,同时不便于程序转移。
  1. IR:指令寄存器。用于存放当前正在执行的指令
  2. MAR:主存地址寄存器。存在于CPU中,存放的是 将要访问主存的地址。注意,MAR之中存放的只有地址,即存储单元的索引地址。
  3. MDR:主存数据寄存器。存在于CPU中,存放的是 某一个存储单元

b) 掌握指令执行的一般流程、指令周期的基本概念;(指令周期、CPU 周期/机器周期、时钟周期)

指令周期:将一条命令从取出到执行完成所需的全部时间

  1. 取指令,修改 PC 值,
  2. 指令译码,就是破译指令
  3. 是否分支?
    1. 是:计算分支地址,修改 PC 值
    2. 否:开始取操作数,执行指令,存操作数(执行阶段)
  1. 是否中断、异常?
    1. 异常:中断响应,保存断点,打回重做
    2. 不异常:取下一条命令,循环执行

c) 掌握单总线结构的计算机从 取指到执行完毕 整个过程的 数据通路建立过程 及相关 控制信号 产生过程;(取指令阶段)(数据流和控制流)

解题方法:

例题:单总线,写 ADD,R1,(R2)的微操作序列?

题目的含义是:

  1. ADD:加法运算
  2. R1:R1 的内容
  3. (R2):R2 内容对应的地址,先转化一步才能得到 R2 的内容
  4. (R1)+((R2)) -> R1:将R1 的内容加上R2 的内容得到的结果再存入 R1 的地址

具体解法:

  1. 取指:固定第一步套路:直接写就有分
    1. PC -> MAR:PCout,MARin
    2. M(MAR) -> MDR:具体数值,MARin
    3. MDR -> IR:MDRout,IRin
    4. (PC)+1 -> PC:+1
      1. 这一步一般情况下,是取出了 R1 的内容存入了 IR 的地址
  1. 译码:根据实际情况调整,
    1. (R2)-> MAR:R2out,MARin
    2. M(MAR) -> MDR:R,MARin
    3. MDR -> LB:MDRout,LBin
    4. (R1) -> LA:R1out,LAin
    5. (LA)+(LB)-> R1:+,移码器 out(反正就是一个存结果的东西,不一定是移码器),R1in

d) 掌握微程序控制器的基本概念,理解微指令及其编码方法(直接表示法和编码表 示法),了解硬布线和微程序控制器的各自特点。(微程序、微指令、微命令、微操作的概念)(编码表示法:互斥、兼容的关系)

微操作:执行部件收到微命令后进行的操作

微命令:控制部件向执行部件发出的各种控制信号

微指令:一个 CPU 周期或者时钟周期中,一组实现一定操作功能的微命令组合

微程序:实现一条指令功能的若干条微指令的集合

微操作 <- 微命令 -> 微指令 -> 微程序

三、复习资料:

教材+PPT+学习通作业(不要去网上找资料,帮助不大)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值