题目
画出主机框图,分别以存数指令“ STA M ”和加法指令“ ADD M ”( M均为 主存地址)为例,在图中按序标出完成该指令(包括取指令阶段)的信息流程(如 一①)。假设主存容量为256M*32位,在指令字长、存储字长、机器字长相等 的条件下,指出图中各寄存器的位数。
画出主机框图,分别以存数指令“ STA M ”和加法指令“ ADD M ”( M均为 主存地址)为例,在图中按序标出完成该指令(包括取指令阶段)的信息流程(如 一①)。假设主存容量为256M*32位,在指令字长、存储字长、机器字长相等 的条件下,指出图中各寄存器的位数。
题目解答
答案
解:主机框图如P13图1.11所示。
(1) STA M 指令:PC— MAR,MAR — MM,MM — MDR,MDR — IR,
OP(IR) — CU,Ad(IR) — MAR,ACC — MDR,MAR —
MM,WR
(2) ADD M 指令:PC—MAR,MAR — MM,MM — MDR,MDR — IR,
OP(IR)—CU,Ad(IR) — MAR,RD,MM — MDR,MDR
—X, ADD , ALU — ACC, ACC— MDR , WR
假设主存容量256M*32位,在指令字长、存储字长、机器字长相等的条件
下,ACC、X、IR、MDR寄存器均为32位,PC和MAR寄存器均为28位。
解析
步骤 1:画出主机框图
主机框图包括了CPU、主存、输入设备和输出设备等主要部件。CPU内部包括了程序计数器PC、指令寄存器IR、地址寄存器MAR、数据寄存器MDR、累加器ACC、X寄存器、控制单元CU和算术逻辑单元ALU等。主存包括了存储体MM和地址译码器等。输入设备和输出设备通过I/O接口与CPU相连。
步骤 2:STA M 指令的信息流程
1. PC — MAR:程序计数器PC将当前指令地址送到地址寄存器MAR。
2. MAR — MM:地址寄存器MAR将指令地址送到主存的地址译码器,选择相应的存储单元。
3. MM — MDR:主存的存储体MM将指令内容送到数据寄存器MDR。
4. MDR — IR:数据寄存器MDR将指令内容送到指令寄存器IR。
5. OP(IR) — CU:指令寄存器IR中的操作码送到控制单元CU,控制单元根据操作码产生相应的控制信号。
6. Ad(IR) — MAR:指令寄存器IR中的地址码送到地址寄存器MAR。
7. ACC — MDR:累加器ACC将数据送到数据寄存器MDR。
8. MAR — MM:地址寄存器MAR将数据地址送到主存的地址译码器,选择相应的存储单元。
9. WR:主存的存储体MM将数据寄存器MDR中的数据写入相应的存储单元。
步骤 3:ADD M 指令的信息流程
1. PC — MAR:程序计数器PC将当前指令地址送到地址寄存器MAR。
2. MAR — MM:地址寄存器MAR将指令地址送到主存的地址译码器,选择相应的存储单元。
3. MM — MDR:主存的存储体MM将指令内容送到数据寄存器MDR。
4. MDR — IR:数据寄存器MDR将指令内容送到指令寄存器IR。
5. OP(IR) — CU:指令寄存器IR中的操作码送到控制单元CU,控制单元根据操作码产生相应的控制信号。
6. Ad(IR) — MAR:指令寄存器IR中的地址码送到地址寄存器MAR。
7. RD:主存的存储体MM将数据送到数据寄存器MDR。
8. MAR — MM:地址寄存器MAR将数据地址送到主存的地址译码器,选择相应的存储单元。
9. MDR — X:数据寄存器MDR将数据送到X寄存器。
10. ADD:控制单元CU产生加法控制信号,使累加器ACC和X寄存器中的数据相加。
11. ALU — ACC:算术逻辑单元ALU将加法结果送到累加器ACC。
12. ACC — MDR:累加器ACC将数据送到数据寄存器MDR。
13. WR:主存的存储体MM将数据寄存器MDR中的数据写入相应的存储单元。
步骤 4:确定寄存器的位数
假设主存容量为256M*32位,即2^28*32位,因此主存地址需要28位。在指令字长、存储字长、机器字长相等的条件下,指令字长、存储字长、机器字长均为32位。因此,ACC、X、IR、MDR寄存器均为32位,PC和MAR寄存器均为28位。
主机框图包括了CPU、主存、输入设备和输出设备等主要部件。CPU内部包括了程序计数器PC、指令寄存器IR、地址寄存器MAR、数据寄存器MDR、累加器ACC、X寄存器、控制单元CU和算术逻辑单元ALU等。主存包括了存储体MM和地址译码器等。输入设备和输出设备通过I/O接口与CPU相连。
步骤 2:STA M 指令的信息流程
1. PC — MAR:程序计数器PC将当前指令地址送到地址寄存器MAR。
2. MAR — MM:地址寄存器MAR将指令地址送到主存的地址译码器,选择相应的存储单元。
3. MM — MDR:主存的存储体MM将指令内容送到数据寄存器MDR。
4. MDR — IR:数据寄存器MDR将指令内容送到指令寄存器IR。
5. OP(IR) — CU:指令寄存器IR中的操作码送到控制单元CU,控制单元根据操作码产生相应的控制信号。
6. Ad(IR) — MAR:指令寄存器IR中的地址码送到地址寄存器MAR。
7. ACC — MDR:累加器ACC将数据送到数据寄存器MDR。
8. MAR — MM:地址寄存器MAR将数据地址送到主存的地址译码器,选择相应的存储单元。
9. WR:主存的存储体MM将数据寄存器MDR中的数据写入相应的存储单元。
步骤 3:ADD M 指令的信息流程
1. PC — MAR:程序计数器PC将当前指令地址送到地址寄存器MAR。
2. MAR — MM:地址寄存器MAR将指令地址送到主存的地址译码器,选择相应的存储单元。
3. MM — MDR:主存的存储体MM将指令内容送到数据寄存器MDR。
4. MDR — IR:数据寄存器MDR将指令内容送到指令寄存器IR。
5. OP(IR) — CU:指令寄存器IR中的操作码送到控制单元CU,控制单元根据操作码产生相应的控制信号。
6. Ad(IR) — MAR:指令寄存器IR中的地址码送到地址寄存器MAR。
7. RD:主存的存储体MM将数据送到数据寄存器MDR。
8. MAR — MM:地址寄存器MAR将数据地址送到主存的地址译码器,选择相应的存储单元。
9. MDR — X:数据寄存器MDR将数据送到X寄存器。
10. ADD:控制单元CU产生加法控制信号,使累加器ACC和X寄存器中的数据相加。
11. ALU — ACC:算术逻辑单元ALU将加法结果送到累加器ACC。
12. ACC — MDR:累加器ACC将数据送到数据寄存器MDR。
13. WR:主存的存储体MM将数据寄存器MDR中的数据写入相应的存储单元。
步骤 4:确定寄存器的位数
假设主存容量为256M*32位,即2^28*32位,因此主存地址需要28位。在指令字长、存储字长、机器字长相等的条件下,指令字长、存储字长、机器字长均为32位。因此,ACC、X、IR、MDR寄存器均为32位,PC和MAR寄存器均为28位。