中断周期数据流,
中断周期首先保存程序pc的地址,就是断点地址。把pc地址,写入存储器某块位置。
在主存中一块堆栈,往里写入pc, 也就是进栈一个地址。进栈是先修改指针,后存入地址。
sp-1 ->sp (sp)->MAR sp指向的位置就是要保存断点的主存位置。给MAR 。所以给了MAR CPU就知道可以对这写入断点地址了?
控制器启动写操作。让主存对应位置可以被写入数据。pc断点地址放入MDR中,(pc)->MDR
这个MDR经过数据总线。把pc地址写入进去存储器。
断点保存完了。开始产生向量地址和引出服务程序入口地址。
向量地址由向量地址形成部件产生后,控制器把这个地址给pc
PC再根据这个地址。进行新一轮的程序。
中断周期首先保存程序pc的地址,就是断点地址。把pc地址,写入存储器某块位置。
在主存中一块堆栈,往里写入pc, 也就是进栈一个地址。进栈是先修改指针,后存入地址。
sp-1 ->sp (sp)->MAR sp指向的位置就是要保存断点的主存位置。给MAR 。所以给了MAR CPU就知道可以对这写入断点地址了?
控制器启动写操作。让主存对应位置可以被写入数据。pc断点地址放入MDR中,(pc)->MDR
这个MDR经过数据总线。把pc地址写入进去存储器。
断点保存完了。开始产生向量地址和引出服务程序入口地址。
向量地址由向量地址形成部件产生后,控制器把这个地址给pc
PC再根据这个地址。进行新一轮的程序。
根据数据流具体走向理解CPU指令周期访存过程。取指周期访存一次,只是取出指令。不是取出操作数。
取指令是根据pc地址去主存取。pc把地址给MAR,这个是寄存器。装地址的,缓冲的。mar做在cpu里,把地址码给地址总线。地址总线和存储器连通。控制器给出读命令信号,指令地址到了存储器,存储器就根据这个地址,把地址上的指令给数据总线上。数据总线就把指令给MDR,这个是寄存器,装数据的。做在CPU里。这个指令取来,来IR,是保存当前正在执行的指令。结束后。pc自增1。
开始下一次取指令过程。
用式子表示就是
(pc)->MAR
1->R
M(mar)->MDR
(MDR)->IR
Pc=pc+1
取指令是根据pc地址去主存取。pc把地址给MAR,这个是寄存器。装地址的,缓冲的。mar做在cpu里,把地址码给地址总线。地址总线和存储器连通。控制器给出读命令信号,指令地址到了存储器,存储器就根据这个地址,把地址上的指令给数据总线上。数据总线就把指令给MDR,这个是寄存器,装数据的。做在CPU里。这个指令取来,来IR,是保存当前正在执行的指令。结束后。pc自增1。
开始下一次取指令过程。
用式子表示就是
(pc)->MAR
1->R
M(mar)->MDR
(MDR)->IR
Pc=pc+1
[ok][ok][ok]今天忘不了了
MAR(地址寄存器)和地址译码器都在主存中,主存不属于CPU,但是现在大多数CPU中有集成MAR
所以MAR(地址寄存器)是在CPU中但地址译码器不在CPU中
没有学过组成原理的小王今天差点被这些个概念绕晕(๑•́ωก̀๑)(主要是做题的时候还不知道MAR已经集成到CPU了,还以为相互独立)
MAR(地址寄存器)和地址译码器都在主存中,主存不属于CPU,但是现在大多数CPU中有集成MAR
所以MAR(地址寄存器)是在CPU中但地址译码器不在CPU中
没有学过组成原理的小王今天差点被这些个概念绕晕(๑•́ωก̀๑)(主要是做题的时候还不知道MAR已经集成到CPU了,还以为相互独立)
✋热门推荐