第五部分 中央处理器-例题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【例1】2009年试题44
存储器
MemR MemW Data Addr CB DB AB MDRoutE
MAR
MARin
MDRin
MDR
MDRinE MDRout 内总线
R0out R0in R1out R1in
Ain
A PC ALU AC
PCout PCin
R0
Add
PC+1
R1
ACin ACout
IR
至指令译码部件
IRin
【例1】2009年试题44

下表给出了上述指令的取指和译码阶段每个节 拍(时钟周期)的功能和有效控制信号,请按 表中描述方式用表格列出指令执行阶段每个节 拍的功能和有效控制信号。
时钟 功能 有效控制信号 C1 MAR←(PC) PCout ,MARin C2 MDR←M(MAR) MemR, MDRin PC+1 PC ← (PC)+1
【例7】双总线控制器2
某计算机的CPU内部为双总线结构,如图所示, 图中Y为暂存器,PC为程序计数器,MAR和 MDR分别为存储器地址和数据寄存器,IR为 指令寄存器。所有数据传送都通过ALU,ALU 还具有下列功能。 F=A; F=B F=A+1; F=B+1 F=A-1; F=B-1 写出转子指令(JSR)的取指和执行周期的微 操作序列。JSR指令占两个字,第1个字是操作 码,第2个字为子程序的入口地址。返回地址 保存在存储器堆栈(上推堆栈)中,堆栈指针 始终指向栈顶空单元。

【例7】双总线控制器2
A
Y
SP
ALU
M D R
M A R
IR
PC
B
堆栈概念
堆栈:由若干个连续主存单 存储器 元组成的先进后出(first in last out,即FILO)存储区。 栈底:第1个放入堆栈的数 据所存放的单元,栈底是固 栈顶 堆 定不变的。 SP 栈 栈顶:最近放入的数据所存 段 放的单元; – 栈顶是随着数据的入栈和 栈底 出栈在时刻变化; – 栈顶的地址由堆栈指针SP 指明。
【例5】单总线控制器3
设CPU中各部件及其相互连接关系如图2-5-6所 示。图中W是写控制标志,R是读控制标志, R1和R2是暂存器。 (1)假设要求在取指周期由ALU完成(PC) +1→PC的操作(即ALU可以对它的一个源操 作数完成加1的运算)。要求以最少的节拍写 出取指周期全部微操作控制信号及节拍安排。 (2)写出指令ADD # a(#为立即寻址特征, 隐含的操作数在ACC中)在执行阶段所需的微 操作控制信号及节拍安排。

【例3】单总线控制器1
设CPU内部结构如图下所示,此外还设有B、 C、D、E、H、L6个寄存器(图中未画出), 它们各自的输入和输出端都与内部总线相通, 并分别受控制信号控制(如Bin为寄存器B的输 入控制;Bout为寄存器B的输出控制),假设 ALU的结果直接送入Z寄存器中。要求从取指 令开始,写出完成下列指令所需的控制信号。 ADD B,[C] (B)+((C))→B MOV AC,#data data →AC,data 在指令第二字

【例5】单总线控制器3
W R 存储器 MAR IR PC 微操作命令形成部件 CPU
内部总线bus
MDRΒιβλιοθήκη ACCR1ALUR2
【例5】单总线控制器3

(1)取指周期:
① PC→MAR , 1→R,M(MAR)→MDR,PC+1 →R2 ② MDR →IR ③ R2 →PC

(2)执行指令ADD # a(假设a在指令 中的地址码字段)
【例6】双总线控制器1


① ② ③ ④ ⑤ ⑥ ⑦
(3)ADD addr,R1 双字指令:addr在指令第二字 PC→MAR,M(MAR)→MDR,MDR →IR,PC+1 PC→MAR,M(MAR)→MDR, PC+1 MDR →MAR M(MAR)→MDR MDR→RA R1 → bus,(R1)+(RA) →MDR MDR → M(MAR)
C7 C8 C9 C10
A ← (MDR) AC←(R0)+A MDR←(AC) M(MAR)←(MDR)
MDRout , Ain R0out , Add, ACin ACout , MDRin MDRoutE, MemW
时钟 功能 有效控制信号 【例 1 】 2009 年试题 44答案 2 C1 MAR←(PC) PCout ,MARin C2 MDR←M(MAR) MemR, MDRinE PC+1 PC ← (PC)+1 C3 C4 C5 C6 C7 C8 C9 C10 IR ← (MDR) 指令译码 A←(R0) MAR←(R1) MDR←M(MAR) AC←(MDR)+A MDR←(AC) M(MAR)←(MDR) MDRout , IRin 无 R0out , Ain R1out , MARin MemR, MDRinE MDRout , Add, ACin ACout , MDRin MDRoutE, MemW

RA IR PC R 1 R2 R3 R4 ALU
MAR G M MDR
【例6】双总线控制器1


① ② ③ ④ ⑤
(3)ADD addr,R1 单字指令:addr在地址码字段 PC→MAR,M(MAR)→MDR,MDR →IR,PC+1 IR(addr)→MAR,M(MAR)→MDR MDR→RA R1 → bus,(R1)+(RA) →MDR MDR → M(MAR)
【例2】控制器(大纲)
下图是一个简化的CPU与主存连接结构示意图 (图中省略了所有多路选择器)。其中有一个累 加寄存器AC、一个状态寄存器和其他四个寄 存器:主存地址寄存器MAR、 主存数据寄 存器MDR、程序计数器PC和指令寄存器IR, 各部件及其之间的连线表示数据通路,箭头表 示信息传送方向。要求: (1)请写出图中a、b、c、d四个寄存器的名称。 (2)简述图中指令从主存取到控制器的过程。 (3)说明数据从主存取出、运算、写回主存所经 过的数据通路(假定数据地址已在MAR中)。
M4
【例3】单总线控制器1
扩展: (均为双字指令) ADD E,#data ADD [addr],F JMP disp ;PC+disp →PC MOV AC,[H+X]; X是变址寻址的形式地 址,在指令第二字

【例4】单总线控制器2
某单总线计算机的主要部件如图所示,其中: LA—A输入选择器,LB—B输入选择器,C、 D—暂存器。 (1)请补充各部件间的主要连接线,并注明 数据流动方向。 (2)拟出指令ADD(R1),(R2)+的执行 流程(含取指过程与确定后继指令地址)。该 指令的含义是进行加法操作,源操作数地址和 目的操作数地址分别在寄存器R1和R2中,目 的操作数寻址方式为自增型寄存器间接寻址。

移位器
IR PC C
R0
MDR M
ALU
R2 MAR R3
LA
LB D
连 线
移位器
IR PC C
R0 R1 R2
MDR M MAR
ALU
LA
LB D R3
ADD(R1),(R2)+

① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩
功能: ((R1))+((R2)) →(R2), (R2)+1→R2 PC → MAR ,M(MAR)→MDR,PC+1 MDR →IR R1 →MAR, M(MAR)→MDR MDR→LA R2 →MAR, M(MAR)→MDR MDR→LB LA+LB →MDR MDR → M(MAR) R2 →LA LA+1 → R2

控制信号
时钟
… CU
IR
+1
IRin PCin PCOut MARin MDRin MDROut ACin ACOut Yin
PC
A M D
MAR
MDR AC Y
CPU 内 部 总 线
控制信号
ALU
Z
ALUin
ZOut

ADD
时钟
B,[C]
M1
M2 M3
操作 控制信号 PC → MAR , PCout ,MARin ,read, M(MAR) → MDR, +1 PC+1 MDR →IR C →MAR, M(MAR) → MDR MDR→ Y B +Y →Z Z→B MDRout,IRin Cout , MARin ,read

堆栈的结构
一般计算机中,堆栈从高地址向低地
址扩展,即栈底的地址总是大于或等 于栈顶的地址,称为上推堆栈;也有 少数计算机相反,称为下推堆栈。 堆栈指针的管理:
– SP总是指向最后压入的有效数据 – SP总是指向栈顶的空单元
对堆栈的访问与操作

只对栈顶操作; 两种操作:
–压入:PUSH指令;
【例6】双总线控制器1
ALU IR PC R 1 R2 R3 R4 RA MAR M MDR
RA IR PC R 1 R2 R3 R4 ALU
MAR M MDR
【例6】双总线控制器1
(2)直接寻址:指令为单字,则不需要更改(存 在IR到MAR的通路); 若为双字指令,在取出指令第二字后,要送入 MAR,所以必须存在MDR到MAR之间的数据 通路。方法:通过设置一个连通器连接双总线。

【例2】控制器(大纲)
主存储器 CPU a MDR AC c MAR
b IR
PC d
操作控 制器
状态寄存器
(2)取指令 PC→MAR,M(MA R) →MDR, MDR →IR, PC+1 (3)取数、运算、 写回 +1 M(MAR)→MDR, MDR →ALU, 运 算结果→AC, AC→MDR, MDR →M (MAR)
① IR(addr)→R1 ② ACC→内部bus,R1+ACC→R2 ③ R2 →ACC
【例6】双总线控制器1





一CPU数据通路为双总线结构,如下图所示。 图中连线有误。 回答下列问题: (1)画出修正错误后的连线图,不能改变原 有的双总线结构。 (2)如要实现直接寻址方式,如何修改? (假设指令为双字,第二字是直接地址;或者 假设指令为单字) (3)描述ADD addr,R1指令从取指令开始的 实现过程。指令的功能为 (R1)+(addr)→addr
存储器
00000000H:

弹出指令POP Ri:从堆栈 栈顶 中弹出1个数据送Ri寄存器: SP
–((SP)) → Ri ,(SP)+1→SP
思考: –指令的两个操作,顺序互换? –堆栈结构改变后,如何实现?
计算机组成原理 考研辅导
第五部分 中央处理器CPU 例题
【例1】2009年试题44

某计算机字长16位,采用16位定长指令字结构, 部分数据通路结构如下图所示,图中所有控制 信号为1时表示有效,为0时表示无效,例如控 制信号MDRinE为1表示允许数据从DB打入 MDR,MDRin为1时表示允许数据从内部总线 打入MDR。假设MAR的输出一直处于使能状 态。加法指令“ADD(R1),R0”的功能为 (R0)+ ((R1))→(R1),即将R0中的数 据与R1的内容所指主存单元的数据相加,并将 结果送入R1的内容所指主存单元中保存。
存储器
00000000H:
数据存入堆栈 –弹出:POP指令; 从堆栈取出数据

栈顶
SP
假设一堆栈:
–结构? –数据字长为1B;
×× ×× ×× 栈底 ××
堆 栈 段
0FFFFFFFFH:
堆栈指令的实现

压入指令 PUSH Ri:将Ri 寄存器内容压入堆栈:
–(SP)-1→SP,(Ri) →(SP)
C3 C4
IR ← (MDR) 指令译码
MDRout , IRin 无
时钟 功能 有效控制信号 1← 】 44答案 1 C1【例 PC ,MAR MAR (2009 PC) 年试题 out in C2 MDR←M(MAR) MemR, MDRinE PC+1 PC ← (PC)+1 C3 C4 C5 C6 IR ← (MDR) 指令译码 MAR←(R1) MDR←M(MAR) MDRout , IRin 无 R1out , MARin MemR, MDRinE
M4 M5 M6
MDRout,Yin Bout , ALU(+) Zout , Bin
MOV AC,#data
时钟 M1 M2 M3 操作 PC → MAR , M(MAR) → MDR, PC+1 MDR →IR PC → MAR , M(MAR) → MDR, PC+1 MDR→ AC 控制信号 PCout ,MARin ,read, +1 MDRout,IRin PCout ,MARin ,read, +1 无
相关文档
最新文档