23. 五条指令序列: 第一个 CPU 周期:取指令,每条指令都相同; CLA , JMP , NOP :两个 CPU 周期; ADD , STA :三个 CPU 周期 ABUS :地址总线 DBUS :数据总线 AC :累加器 PC :程序计数器 IR :指令寄存器 AR :地址寄存器 DR :数据缓冲寄存器
24. 取指周期 FE 执行周期 EX 间址周期 IND 中断周期 INT 8.2 3 )指令周期的数据流 一条指令完整的指令周期包括: 取指周期 FE 间址周期 IND 执行周期 EX 中断周期 INT 取指周期、执行周期是 每条指令都必须有的。 间址周期, 只有间址寻址的指令才有。 中断周期, 只有在条件满足时才有。 有间址吗? 有中断吗? 是 是 否 否
25. 例如: 设 CPU 内有下列部件: PC,IR,SP,AC,MAR,MDR 和 CU (控制单元) 要求: 1 )写出完成间址寻址的取数指令 LDA 的信息流。 (将某主存单元的内容取至 AC 中) 解: 1 )取指周期: PC 送 MAR 送 地址总线 CU 发 读内存命令 数据 送 数据总线 送 MDR 送 IR // 指令送入 IR 指令操作码部分 OP(IR) 送 CU PC + 1 送 PC 2 )间址周期 :指令地址码部分 送 MAR 送 地址总线 CU 发 读内存命令 数据 送 数据总线 送 MDR // 操作数地址送入 MDR 3 )执行周期: MDR 送 MAR 送 地址总线 CU 发 读内存命令 数据 送 数据总线 送 MDR 送 AC // 操作数送入 AC 3 )指令周期的数据流
26. 例如: 设 CPU 内有下列部件: PC,IR,SP,AC,MAR,MDR 和 CU (控制单元) 要求: 2 )写出中断周期的信息流。 解: 2 )在中断周期内需将程序断点(在 PC 中)保存起来,通常把断点存 入堆栈。(假设进栈操作是先修改堆栈指针,后存入数据) CU 发 修改堆栈指针命令 (SP) – 1 送 SP, 送 MAR 送 地址总线 CU 发 写内存命令 PC 送 MDR 送 数据总线 写入 存储单元 CU 送 程序入口地址 给 PC SP SP 断点 SP 3 )指令周期的数据流
27. 3 )指令周期的数据流 – 控制信号 PC IR AC CU 时钟 ALU 控制信号 标志 控制 信号 取指周期 例: ADD @ X 取指周期的控制信号发送顺序 : C0 、 C1 、读、 C2 、 C3 、 C4 PC IR CU 1 、不采用 CPU 内部总线的方式 PC PC PC M D R M A R M D R M A R … … … C 0 C 1 C 2 C 3 C 4
28. 3 )指令周期的数据流 – 控制信号 例: ADD @ X 间址周期的控制信号发送顺序: C5 、 C1 、读、 C2 、 C3 M D R M D R M A R 1 、不采用 CPU 内部总线的方式 PC IR AC CU 时钟 ALU … … … 控制信号 标志 控制 信号 M D R M A R C 1 C 2 C 3 C 5 IR
29. 3 )指令周期的数据流 – 控制信号 例: ADD @ X 执行周期的控制信号发送顺序: C5 、 C1 、读、 C2 、 C67 、加、 C8 AC ALU M D R M A R M D R 1 、不采用 CPU 内部总线的方式 PC IR AC CU 时钟 ALU … … … 控制信号 标志 控制 信号 M D R M A R C 1 C 2 C 5 C 7 C 6 C 8 … 控制 信号
30. 3 )指令周期的数据流 – 控制信号 例: ADD @ X 取指周期 2. 采用 CPU 内部总线方式( output 输出 input 输入 )
39. IF 取指 ID 译码 OF 取操作数 EX 执行 流水线 CPU 的时空图 计算机的流水线处理过程非常类似于工厂中的流水装配线。 为了实现流水,首先把输入的任务 ( 或过程 ) 分割为一系列子任务,并使各子任务能在流水线的各个阶段并发地执行。 当任务连续不断地输入流水线时,在流水线的输出端便连续不断地吐出执行结果,从而实现了子任务级的并行性。 8.2.2 指令流水 – 流水线 CPU IF ID OF EX 流入 流出
43. 例: 有五级流水线, 分别完成 IF 取指, ID 译码、读寄存器, EX 执行、访存地址, MEM 访存, WB 写寄存器,五个阶段。 假设完成各个阶段的操作时间一次为: 90 微秒, 60 微秒, 70 微秒, 100 微秒, 50 微秒。 问: 流水线的时钟周期应该取什么值? 8.2.2 指令流水– 流水线中的问题 解:时钟周期应该取其最大值,即访存 100 微秒。
44. 考研习题精选 1 、 CPU 是指() A 、控制器 B 、运算器和控制器 C 、运算器、控制器、主存 D 、 ALU 和寄存器 2 、控制器的全部功能是() A 、产生时序信号 B 、从主存中取出指令并完成指令操作码译码 C 、从主存中取出指令,分析指令并产生有关的操作控制信号 D 、以上都不对 3 、指令周期是() A 、 CPU 执行一条指令的时间 B 、 CPU 从主存中取出一条指令的时间 C 、 CPU 从主存中取出一条指令加上执行这条指令的时间 D 、时钟频率的倒数 4 、程序计数器的位数取决于() A 、存储器的容量 B 、机器字长 C 、指令字长 D 、存储字长
45. 考研习题精选 5 、指令寄存器的位数取决于() A 、存储器的容量 B 、机器字长 C 、指令字长 D 、存储字长 6 、通用寄存器的位数取决于() A 、存储器的容量 B 、机器字长 C 、指令字长 D 、中断服务程序 7 、在 CPU 的寄存器中,()对于用户是透明的。 A 、程序计数器 B 、状态条件寄存器 C 、指令寄存器 D 、通用寄存器 8 、程序计数器 PC 属于()。 A 、运算器 B 、控制器 C 、存储器 D 、 ALU 9 、 CPU 不包括()。 A 、通用寄存器 B 、指令寄存器 C 、地址译码器 D 、程序计数器
46. 考研习题精选 10 、 CPU 中的通用寄存器() A 、只能存数据,不能存地址 B 、可以存数据或地址 C 、不能存数据,不能存地址 D 、可以存数据或地址,也可以代替指令寄存器 11 、计算机操作的最小单位时间是() A 、时钟周期 B 、指令周期 C 、 CPU 周期 D 、存取周期 12 、由于内部操作快,而 CPU 访存速度慢,所以机器周期通常由() 来决定。 A 、间址周期 B 、指令周期 C 、机器周期 D 、存取周期 13 、在取指令操作后,程序计数器中存放的是()。 A 、当前指令的地址 B 、程序中指令的数量 C 、下一条指令的地址 D 、已经执行指令的计数值