计算机组成原理——指令系统与CPU概念梳理

指令系统

  1. 指令字指在计算机中的一个字表示的是一个指令,数据字同理
  2. 计算机中的所有指令字长不一(定长32位,不定长8位的倍数),所以在存储器存放时,可能会占用多个存储单元,从存储器读出并通过总线传输时,可能分多次进行,也可能一次读多条指令。每一条指令必须包含操作码
  3. 可以用硬件换取空间,减少指令字中需要指明的地址码,在不改变字长的情况下,扩大指令操作数的直接寻址范围。
  4. 地址格式也可用来表示寄存器,减少访存次数。
  5. 为什么要用位的扩展来确定指令操作码:。
    a) 短的操作码一定不能被用来作为长的操作码的前缀。
    b) 先确定短的操作码,那么接下来的操作码就一定不能含有短操作码,那就只有取出位中还未用作表示的作为长操作码的前缀。
    c) 数目可能不够,那就只有进行扩展来增大数目。
  6. 加括号:存储介质数值;不加括号:存储介质或编码。
  7. 在取址过程中,指令总是从内存单元被取到指令寄存器IR中。
  8. 在直接寻址的指令字中,地址码字段直接给出主存地址;在寄存器寻址的指令字中,地址码字段直接给出寄存器编号。
  9. 基址寄存器的内容由系统决定,程序执行过程中用户不可随意改变。当使用通用寄存器作为基址寄存器时,用户有权直到使用了哪个寄存器。
    中央处理器

中央处理器

  1. CPU的工作过程就是周而复始的执行指令,计算机各个部分所进行的工作都是有CPU根据指令的要求来启动的

  2. 指令译码器就是对操作码进行测试,从而识别出这条操作码所要求的操作。

  3. 用户可见寄存器指用户可以通过程序访问的寄存器;IR、MAR、MDR是CPU内部的工作寄存器,在程序执行过程中自动赋值,程序员无法进行操作,称为用户不可见寄存器。

  4. DMA工作层面是机器周期,中断工作层面是指令周期

  5. 当CPU采用中断方式实现主存与I/O交换信息时,CPU在每条指令的执行周期结束前,都要发出中断查询信号,以检测是否有I/O发出请求,如果有请求,则CPU要进入中断响应阶段,又称中断周期。

  6. Arithmetic and Logic Unit->ALU->算术逻辑单元。

  7. 以加法运算为例,首先把第一个操作数通过总线送往缓冲寄存器A暂存;再把第二个操作数通过总线送往缓冲寄存器B暂存;最后一步是将两个操作数从缓冲寄存器A和B送往ALU,并将运算结果通过总线送往相应的通用寄存器。

  8. 微指令的字段直接编码方式的每个小段要留出一个状态表示本子短不发出任何现行指令(一般是000)

  9. 微地址形成部件世纪是一个编码器,输入为指令操作码。即将机器指令的操作码送入地址译码器进行译码,输出结果就是对应机器指令微程序的首地址。
    a) 机器指令操作码->对应机器指令微程序首地址

  10. 微指令中,外部条件判断所占位数数目由编码方式决定
    a) 直接编码:几个外部条件就取几位
    b) 字段直接编码:还有无条件转移情况,要满足2^n>=N+1。

  11. 数据旁路技术:不必等待某条指令的执行结果送回到寄存器,再从寄存器中读取数据,而是直接将执行结果送到其他指令所需要的地方。

  12. 猜测法技术:机器先选中转移分支中的一个,按他取址并处理,条件码生效后,如果猜测正确则流水线继续执行,如果猜测错误,则流水线产生断流。

  13. 流水线断流(在执行了众多指令后,CPI比一定会=1):
    a) 当有多条指令的不同阶段都要用到同一个功能部件时,后面的指令要延时执行(资源冲突)
    b) 当层序的执行流程发生改变时,原来按顺序去除的指令无效(猜测法)(控制相关)
    c) 当后面指令的操作数是前面指令的运行结果时,后面的指令要延时执行(数据相关)

  14. 指令中断与缺页中断区别:
    a) 指令中断只有在某条指令相应完成之后才回去响应中断,终端完成后继续执行下一条指令
    b) 缺页中断指要访问的页不在主存,需要操作系统将其调入主存后再进行访问当前页面

  15. 程序断点的保护由中断隐指令完成,CPU内部各寄存器内容的保护在中断服务程序中由用户(或系统)用机器指令编程实现

  16. PC中的内容(即指令地址)在指令执行周期并不能变化,因为他用来存放指令(预取)。在取指令阶段:

    (1)(PC)->MAR		//将要执行的指令的地址放入到地址缓冲寄存器
    (2)1->R				//发出读命令
    (3)(MAR)->MDR	//从指令的地址中取出指令送入u数据寄存器
    (4)(MDR)->IR		//将要指令的指令打入指令寄存器
    (5)(IR)->CU			//指令送入CU进行处理
    (6)(PC)+1->PC	//形成下一条指令的地址
    

之后就会执行指令,其中可能会在执行完某条指令后遭遇中断等,直到执行完政令,就会进入下一个取址周期。

  1. CPU中的数据通路其实就是用来实现内部运算器/寄存器之间的数据交换,通过数据交换来对指令进行处理,一步步取出存入直到最后交给IR并转交给CU。

你可能感兴趣的:(计算机组成原理)