计算机组成原理(复习题)(一)

指令周期指令流

取值周期

  1. 现行指令地址送至存储器地址寄存器,记作PC->MAR
  2. 向主存发送读命令,启动主存作读操作,记作1->R
  3. 将MAR(通过地址总线)所指的主存单元中的内容(指令)经数据总线读至MDR中,记作M(MAR)->MDR
  4. 将MDR的内容送至IR,记作MDR->IR
  5. 指令的操作码送至CU译码,记作OP(IR)->CU
  6. 形成下一条指令的地址,记作(PC)+1->PC

间址周期

  1. 将指令的操作码部分(形式地址)送至存储器地址寄存器,记作Ad(IR)->MAR
  2. 向主存发送读命令,启动主存作读操作,记1->R
  3. 将MAR(通过地址总线)所指的主存单元中的内容(有效地址)经数据总线读至MDR内,记作M(MAR)->MDR
  4. 将有效地址送至指令寄存器的地址字段,记作MDR->Ad(IR)。此操作在有些机器中可省略。

执行周期

  1. 非访存指令(略)
  2. 访存指令

(1)加法指令 ADD X

     1)将指令的地址码部分送入存储器地址寄存器,记作Ad(IR)->MAR

     2)  向主存发读命令,启动主存作读操作,记作1->R

     3) 将MAR(通过地址总线)所指的主存单元中的内容(操作数)经数据总线读至MDR内,记作M(MAR)->MDR

     4) 给ALU发送命令,将ACC的内容和MDR的内容相加,结果存于ACC,记作(ACC)+(MDR)->ACC

(2)存数指令 STA X

     1)  将指令的地址码部分送至存储器地址寄存器,记作Ad(IR)->MAR

     2)向主存发写命令,启动主存作写操作,记作1->W

     3)  将累加器内容送至MDR,记作ACC->MDR

     4)将MDR的内容(通过数据总线)写入到MAR(通过地址总线)所指的主存单元中,记作M(MAR)->MDR

  (3) 取数指令LDA X

     1)将指令的地址码部分送至存储器地址寄存器,记作Ad(IR)->MAR

     2)向主存发读命令,启动内存作读操作,记作1->R

     3) 将MAR(通过地址总线)所指的主存单元中的内容(操作数)将数据总线读至MDR内,记作M(MAR)->MDR

     4) 将MDR的内容送至ACC,记作MDR->ACC

3.转移类指令

中断周期

  1. 将特定地址“0”送至存储器地址寄存器,记作0->MAR
  2. 向主存发写命令,启动存储器作写操作,记作1->W
  3. 将PC的内容(程序断点)送至MDR,记作PC->MDR
  4. 将MDR的内容(程序断点)通过数据总线写入到MAR(通过地址总线)所指示的主存单元(0地址单元)中,记作MDR->M(MAR)
  5. 将向量地址形成部件的输出送至PC,记作向量地址->PC,为下一条指令的取值周期作准备。
  6. 关中断,将允许中断触发器清零,记作0->EINT(该操作可直接由硬件线路完成)

如果程序断点存入堆栈,而且进栈操作是先修改栈指针,后存入数据,只需将上述1)改为(SP)-1->SP,且SP->MAR

上述所有操作都是在控制单元发出控制信号(即微操作命令)控制下完成的

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值