1.2.2 (补充)各个硬件的工作原理
约 35 分钟
部件如何协同:用寄存器状态还原一次取指执行
同学,你已经会说五大部件。今天的新困难是把“CPU 从内存取一条指令”拆成可检查的微操作序列;综合题真正考的是每一步谁提供地址、谁暂存数据、哪个寄存器随后改变。
先固定四个角色:PC 保存下一条指令地址;IR 保存当前指令;MAR 保存本次访存地址;MDR 暂存从存储器读出或准备写入的内容。不同教材的数据通路写法可能略有差异,但职责边界相同。
陪做一次基本取指:
发出读存储器信号;存储器返回后
再把指令送入
同时 PC 更新到下一条指令地址。控制器对 IR 的操作码译码,再进入取数、执行或写回阶段。若是转移指令,执行阶段会用目标地址改写 PC;若是存数指令,MDR 则暂存准备写入主存的数据。
为什么不能把 IR 和 MDR 合并理解?MDR 是所有访存数据经过的缓冲,里面既可能是指令也可能是普通数据;IR 专门稳定保存当前指令,供译码和整个执行过程使用。两者在某个时刻内容可相同,但生命周期和用途不同。
再做反馈:假设按字节编址、定长 4 字节指令,顺序取指后 PC 通常增加 4,而不是永远加 1;若体系结构按字编址或指令变长,更新规则还会改变。答案必须以题目给出的编址和指令长度为依据。
针对性错解:写成 MDR←PC 会把地址当数据;认为每条指令执行完 PC 都只顺序增加,漏了转移与异常;只画数据箭头而不写读/写控制信号,不能说明存储器为何动作。
迁移题:执行 STORE [1000],R1 时 MAR 与 MDR 分别放什么?答案 MAR 放目标地址 1000,MDR 放 R1 中待写数据,控制器发出写信号;IR 仍保存当前 STORE 指令。独立验收是能从任一简化指令写出取指三步和执行阶段关键寄存器变化。下一课继续区分系统软件、应用软件及翻译程序。
不看正文,完成“1.2.2 (补充)各个硬件的工作原理”中的独立验收任务。
登录 后可看答案
Practice
本课练习
先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。