5.2.4 指令执行过程

发布于:2025-07-21 ⋅ 阅读:(18) ⋅ 点赞:(0)

5.2 指令执行过程 (答案见原书 P217)

(1) 计算机工作的最小时间周期是( A )。

题目原文
(1) 计算机工作的最小时间周期是( )。
A. 时钟周期
B. 指令周期
C. 存取周期
D. 总线周期

正确答案:A

题目解析

  • 考点分析: 本题考察计算机中各种时间周期的定义和层次关系。
  • 正确选项分析 (A. 时钟周期):
    • 时钟周期 (Clock Cycle),也称节拍(T周期),是计算机中最基本、最小的时间单位。它由CPU的主时钟信号决定,CPU内所有的操作都是以时钟周期为基本单位来同步的。一个时钟周期内,CPU可以完成一个或多个最基本的微操作。
  • 错误选项分析:
    • B. 指令周期 (Instruction Cycle): 指CPU取出并执行一条指令所需要的全部时间。一个指令周期通常包含多个时钟周期,甚至多个机器周期(如取指周期、执行周期等)。
    • C. 存取周期 (Memory Access Cycle): 指CPU完成一次对主存储器的读或写操作所需要的时间,通常包含若干个时钟周期。
    • D. 总线周期 (Bus Cycle): 指CPU通过总线完成一次完整的数据传输(如读/写内存或I/O端口)所需要的时间,也包含若干个时钟周期。
  • 总结: 它们的关系通常是:指令周期 > 存取周期/总线周期 ≥ 机器周期 ≥ 时钟周期。时钟周期是最小的单位。

(2) 采用 DMA 方式传递数据时,每传送一个数据就要占用( D )。

题目原文
(2) 采用 DMA 方式传递数据时,每传送一个数据就要占用( )。
A. 指令周期
B. 时钟周期
C. 中断周期
D. 存取周期

正确答案:D

题目解析

  • 考点分析: 本题考察DMA(直接存储器存取)的工作原理。
  • 正确选项分析 (D. 存取周期):
    • DMA是一种允许外部设备(如硬盘、网卡)与主存之间直接进行数据交换的方式,无需CPU的直接干预。
    • 当DMA控制器需要传送一个数据(一个字或一个字节)时,它会向CPU请求总线的使用权。一旦获得总线控制权,DMA控制器就会执行一次内存的读或写操作。
    • 这个过程(传送一个数据字)占用总线的时间,正好对应于一次内存的存取周期。这种方式也称为“周期窃取”或“周期挪用”。
  • 错误选项分析:
    • A. 指令周期: DMA传送数据不涉及指令的执行,所以不占用指令周期。
    • B. 时钟周期: 存取周期由多个时钟周期构成,占用的是整个存取周期,而非单个时钟周期。
    • C. 中断周期: DMA在整个数据块传送完成后,会通过一次中断来通知CPU,但传送单个数据时占用的是存取周期。

(3) 指令周期是指( C )。

题目原文
(3) 指令周期是指( )。
A. CPU从主存取出一条指令的时间
B. CPU执行一条指令的时间
C. CPU从主存取出一条指令加上执行这条指令的时间
D. 时钟周期时间

正确答案:C

题目解析

  • 考点分析: 本题考察指令周期的准确定义。
  • 正确选项分析 (C. CPU从主存取出一条指令加上执行这条指令的时间):
    • 指令周期(Instruction Cycle)是CPU完成一条指令的完整过程。这个过程分为两个主要阶段:
      1. 取指周期 (Fetch Cycle): CPU从主存中取出指令。
      2. 执行周期 (Execute Cycle): CPU分析并执行这条指令。
    • 因此,指令周期是这两个阶段时间的总和。选项C是对这个完整过程最准确的描述。
  • 错误选项分析:
    • A. CPU从主存取出一条指令的时间: 这只是取指周期,不是完整的指令周期。
    • B. CPU执行一条指令的时间: 这只是执行周期,不是完整的指令周期。
    • D. 时钟周期时间: 时钟周期是最小时间单位,一个指令周期包含多个时钟周期。

(4) 在一条无条件跳转指令的指令周期内,程序计数器(PC)的值被修改了( B )。

题目原文
(4) 在一条无条件跳转指令的指令周期内,程序计数器(PC)的值被修改了( )次。
A. 1
B. 2
C. 3
D. 不能确定

正确答案:B

题目解析

  • 考点分析: 本题考察在指令周期中PC值的变化情况,特别是针对跳转指令。
  • 正确选项分析 (B. 2):
    在无条件跳转指令 JMP target_addr 的指令周期内,PC会被修改两次:
    1. 第一次修改(在取指周期末): 当CPU完成了对 JMP 指令本身的取出操作后,PC会自动增加,指向内存中紧随 JMP 指令的下一条指令的地址。这是为了顺序执行做准备的常规操作。PC = (PC) + 指令长度
    2. 第二次修改(在执行周期): JMP 指令的执行阶段,其功能就是将指令中给出的目标地址 target_addr 送入PC,从而实现跳转。PC = target_addr
  • 总结: 一次是取指后的自动递增,一次是执行跳转指令时的强制修改。共2次。

(5) 在取指操作后,程序计数器中存放的是( D )。

题目原文
(5) 在取指操作后,程序计数器中存放的是( )。
A. 当前指令的地址
B. 程序中指令的数量
C. 已执行的指令数量
D. 下一条指令的地址

正确答案:D

题目解析

  • 考点分析: 本题考察取指周期中PC的更新机制。
  • 正确选项分析 (D. 下一条指令的地址):
    • PC的功能始终是存放下一条将要执行的指令的地址
    • 在取指周期的开始,CPU根据PC的当前值去内存取指令。
    • 在取指周期的结束阶段,PC的值会立即自动更新(通常是 PC = (PC) + 指令长度),使其指向顺序上的下一条指令。这样做是为了CPU能够连续地取出并执行程序指令。
    • 因此,当一次取指操作完成时,PC中已经存放好了下一条指令的地址。
  • 错误选项分析:
    • A. 当前指令的地址: 这是取指操作开始时PC中的内容。操作结束后,PC已经更新了。
    • B & C: PC与指令数量无关,它只关心地址。

(6) 下列关于指令执行的叙述中,错误的是( B )。

题目原文
(6) 下列关于指令执行的叙述中,错误的是( )。
A. 指令周期的第一个操作是取指令
B. 为了进行取指操作,控制器需要得到相应的指令
C. 取指操作是控制器自动进行的
D. 指令执行时有些操作是相同或相似的

正确答案:B

题目解析

  • 考点分析: 本题考察对指令执行流程和控制器功能的理解,要求找出错误描述。
  • 错误选项分析 (B. 为了进行取指操作,控制器需要得到相应的指令):
    • 这个描述颠倒了因果关系。取指操作是获取指令的前提,而不是需要先有指令才能去取指。控制器是在不知道下一条指令是什么的情况下,根据PC的地址去盲目地取回指令。取回之后,才能进行译码和执行。
  • 正确选项分析:
    • A. 指令周期的第一个操作是取指令: 这是指令周期的固定流程,任何指令都必须先被取出来才能执行。
    • C. 取指操作是控制器自动进行的: 取指是CPU的一项内置的、固定的硬件功能,由控制器中的时序逻辑自动完成,不需要任何指令的控制。
    • D. 指令执行时有些操作是相同或相似的: 这是正确的。例如,所有指令都有相同的“取指”阶段。许多访存指令都有相似的“计算有效地址”阶段。这种共性是微程序设计和流水线设计的基础。

(7) 下列关于指令执行过程的叙述中,错误的是( B )。

题目原文
(7) 下列关于指令执行过程的叙述中,错误的是( )。
A. 取指操作是控制器固有的功能,不需要在操作码控制下完成
B. 所有指令的取指操作是相同的
C. 在指令长度相同的情况下,所有指令的取指操作是相同的
D. 中断周期是在指令执行完成后出现的

正确答案:B

题目解析

  • 考点分析: 本题深入考察取指操作的细节。
  • 错误选项分析 (B. 所有指令的取指操作是相同的):
    • 这个说法不够严谨。取指操作的核心是将指令从内存取到IR,并更新PC。如果一个计算机系统的指令长度是可变的(例如,有些指令1字节,有些2字节,有些4字节),那么取指操作中PC的增量就不同。取1字节指令时PC+1,取4字节指令时PC+4。因此,取指操作会因指令长度的不同而有所差异。
  • 正确选项分析:
    • A. 取指操作是控制器固有的功能,不需要在操作码控制下完成: 正确,取指是所有指令执行前的固定动作,由硬件自动完成。
    • C. 在指令长度相同的情况下,所有指令的取指操作是相同的: 这个描述是正确的。如果指令长度固定,那么每次取指操作的访存字节数和PC的增量都是一样的,操作过程完全相同。
    • D. 中断周期是在指令执行完成后出现的: 正确。CPU通常在一条指令的执行周期结束、下一条指令的取指周期开始之前,检查有无中断请求。如果有,就会进入中断周期。

(8) 下列关于指令周期的叙述中,错误的是( B )。

题目原文
(8) 下列关于指令周期的叙述中,错误的是( )。
A. 指令周期的第一个阶段一定是取指阶段
B. 乘法指令和加法指令的指令周期总是一样长
C. 一个指令周期可由若干时钟周期组成
D. 单周期CPU中的指令周期就是一个时钟周期

正确答案:B

题目解析

  • 考点分析: 本题考察不同指令的指令周期长度。
  • 错误选项分析 (B. 乘法指令和加法指令的指令周期总是一样长):
    • 这是错误的。在多周期CPU设计中,不同指令的复杂程度不同,执行所需的时钟周期数也不同。乘法运算通常比加法运算复杂得多,需要更多的时钟周期来完成。因此,乘法指令的指令周期通常比加法指令的指令周期要长。
  • 正确选项分析:
    • A. 指令周期的第一个阶段一定是取指阶段: 正确,这是指令执行的固定起点。
    • C. 一个指令周期可由若干时钟周期组成: 正确,这是指令周期和时钟周期的基本关系。
    • D. 单周期CPU中的指令周期就是一个时钟周期: 正确,这是单周期CPU的定义。它要求所有指令都在一个固定的、足够长的时钟周期内完成。

(9) 下列关于CPU时钟信号的叙述中,错误的是( A )。

题目原文
(9) 下列关于CPU时钟信号的叙述中,错误的是( )。
A. 处理器总是每来一个时钟信号就开始执行一条新的指令
B. 边沿触发指状态单元总在时钟上升沿或下降沿开始改变状态
C. 时钟周期以相邻状态单元之间最长组合逻辑延迟为基准确定
D. 每个时钟周期称为一个节拍,机器的主频就是时钟周期的倒数

正确答案:A

题目解析

  • 考点分析: 本题考察对CPU时钟、时序和多周期CPU概念的理解。
  • 错误选项分析 (A. 处理器总是每来一个时钟信号就开始执行一条新的指令):
    • 这个描述只对单周期CPU成立。
    • 在更常见的多周期CPU流水线CPU中,一条指令的执行需要跨越多个时钟周期。因此,处理器并不是每个时钟信号都开始执行一条新指令。例如,在5级流水线中,理想情况下是每个时钟周期完成一条指令的某个阶段,并送入一条新指令的第一个阶段。
  • 正确选项分析:
    • B. 边沿触发…: 这是时序逻辑电路(如寄存器、触发器)的基本工作原理,数据在时钟的特定边沿(上升或下降)被锁存,以保证同步和状态的稳定。
    • C. 时钟周期以…最长组合逻辑延迟…确定: 这是确定CPU最高时钟频率的物理依据。时钟周期必须大于两个寄存器之间最长的信号传播延迟(组合逻辑延迟+建立时间),否则数据会在下一个时钟沿到来前无法稳定,导致错误。
    • D. 每个时钟周期称为一个节拍…: 这是基本概念的定义。

(10) 下列关于多周期CPU的说法中,合理的是( C )。

题目原文
(10) 下列关于多周期CPU的说法中,合理的是( )。
A. 执行各条指令的机器周期数相同,各机器周期的长度均匀
B. 执行各条指令的机器周期数相同,各机器周期的长度可变
C. 执行各条指令的机器周期数可变,各机器周期的长度均匀
D. 执行各条指令的机器周期数可变,各机器周期的长度可变

正确答案:C

题目解析

  • 考点分析: 本题考察多周期CPU的设计特点。
  • 正确选项分析 (C. 执行各条指令的机器周期数可变,各机器周期的长度均匀):
    • 多周期CPU的核心思想是:将一条指令的执行过程分解为若干个阶段(如取指、译码、执行、访存、写回),每个阶段用一个或多个长度固定的时钟周期(即机器周期)来完成。
    • 机器周期数可变: 不同的指令复杂程度不同,需要的阶段也不同。例如,ADD指令可能不需要访存阶段,而LOAD指令需要。因此,不同指令执行完所需的总机器周期数是可变的。
    • 机器周期长度均匀(固定): 机器周期的长度通常就等于时钟周期,是一个固定的值。这使得控制器设计相对简单。
  • 总结: 指令周期 = 可变数量的、长度固定的机器周期。

(11) 以下关于间址周期的描述中,正确的是( C )。

题目原文
(11) 以下关于间址周期的描述中,正确的是( )。
A. 所有指令的间址操作都是相同的
B. 凡是存储器间接寻址的指令,它们的操作都是相同的
C. 对于存储器间接寻址和寄存器间接寻址,它们的操作是不同的
D. 都不对

正确答案:C

题目解析

  • 考点分析: 本题考察间接寻址的两种不同实现方式。
  • 正确选项分析 (C. 对于存储器间接寻址和寄存器间接寻址,它们的操作是不同的):
    • 存储器间接寻址: 需要访问内存。指令中给出的地址是存放有效地址的内存单元的地址。操作是:EA = M[指令地址码]。这个过程需要一个完整的访存周期,即间址周期
    • 寄存器间接寻址: 有效地址存放在一个寄存器中。指令中指定了该寄存器的编号。操作是:EA = R[指令地址码]。这个过程只需要访问CPU内部的寄存器,速度非常快,不需要一个独立的间址周期,通常在译码/取操作数阶段就完成了。
    • 因此,两者的操作对象(内存 vs 寄存器)和所需的时间/周期都完全不同。
  • 错误选项分析:
    • A & B: 都是错误的,因为存在不同类型的间接寻址,其操作不同。即使都是存储器间接寻址,如果存在多重间址,操作也会不同。

(12) ( A )可区分存储单元中存放的是指令还是数据。

题目原文
(12) ( )可区分存储单元中存放的是指令还是数据。
A. 控制器
B. 运算器
C. 存储器
D. 数据通路

正确答案:A

题目解析

  • 考点分析: 本题考察冯·诺依曼结构中“指令和数据同等看待”原则下的区分机制。
  • 正确选项分析 (A. 控制器):
    • 在内存中,指令和数据都以二进制形式存储,本身没有区别。
    • CPU通过指令执行的不同阶段来区分它们。这个区分工作是由控制器来指挥的。
    • 在取指周期,控制器根据PC地址从内存中取出的内容,一律视为指令,并送入指令寄存器(IR)。
    • 在执行周期,控制器根据IR中已被译码的指令,如果需要操作数,再根据指令指定的寻址方式去访问内存或寄存器,此时取出的内容则被视为数据
    • 所以,是控制器通过控制CPU在不同时间(不同周期)访问内存,并规定了取回内容的用途,从而区分了指令和数据。
  • 错误选项分析:
    • B, C, D: 运算器处理数据,存储器存放信息,数据通路传输信息,它们本身都无法区分信息的性质。

(13) 下列关于单周期CPU和多周期CPU的描述中,错误的是( A )。

题目原文
(13) 下列关于单周期CPU和多周期CPU的描述中,错误的是( )。
A. 执行任何指令,单周期CPU的时间都要小于多周期CPU
B. 单周期CPU部件冗余大,时间利用率低,多周期CPU则刚好相反
C. 单周期CPU在1个时钟周期内执行一条指令,CPI = 1
D. 多周期CPU至少需要2个时钟周期才能执行一条指令,CPI > 1

正确答案:A

题目解析

  • 考点分析: 本题比较单周期和多周期CPU的性能特点。
  • 错误选项分析 (A. 执行任何指令,单周期CPU的时间都要小于多周期CPU):
    • 这是错误的。单周期CPU的时钟周期必须按照最长、最复杂的指令(如LOAD)来设置,所以其时钟周期非常长。
    • 多周期CPU的时钟周期可以设置得较短。对于简单的指令(如ADD),它可能只需要2-3个短的时钟周期就能完成。
    • 在这种情况下,多周期CPU执行简单指令的总时间(周期数 * 短周期)可能小于单周期CPU执行该指令的时间(1 * 长周期)。
  • 正确选项分析:
    • B: 单周期CPU为了在一个周期内完成所有操作,可能需要多个功能部件(如两个加法器),部件利用率低。多周期CPU可以复用部件(如ALU可用于地址计算和算术运算),利用率高。
    • C & D: 这是单周期和多周期CPU关于CPI(每条指令的平均时钟周期数)的定义。

(14) 【2009统考真题】冯·诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是( C )。

题目原文
(14) 【2009统考真题】冯·诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是( )。
A. 指令操作码的译码结果
B. 指令和数据的寻址方式
C. 指令周期的不同阶段
D. 指令和数据所在的存储单元

正确答案:C

题目解析

  • 考点分析: 本题与第(12)题考点相同,只是表述方式不同。
  • 正确选项分析 (C. 指令周期的不同阶段):
    • 如(12)题解析所述,CPU通过指令周期的不同阶段来赋予从内存中取出的二进制串不同的含义。
    • 取指阶段取出的,是指令
    • 执行阶段根据指令要求取出的,是数据
    • 这是最根本的区分依据。
  • 错误选项分析:
    • A. 指令操作码的译码结果: 必须先认定取出的内容是指令,才能去译码操作码。译码是区分之后的事情。
    • B. 指令和数据的寻址方式: 寻址方式是指令的一部分,同样需要先认定为指令才能知道寻址方式。
    • D. 指令和数据所在的存储单元: 指令和数据可以混合存放在内存中,没有固定的区域划分,所以无法根据存储位置区分。

(15) 【2011统考真题】假定不采用Cache和指令预取技术,且机器处于“开中断”状态,则在下列有关指令执行的叙述中,错误的是( C )。

题目原文
(15) 【2011统考真题】假定不采用Cache和指令预取技术,且机器处于“开中断”状态,则在下列有关指令执行的叙述中,错误的是( )。
A. 每个指令周期中CPU都至少访问内存一次
B. 每个指令周期一定大于或等于一个CPU时钟周期
C. 空操作指令的指令周期中任何寄存器的内容都不会被改变
D. 当前程序在每条指令执行结束时都可能被外部中断打断

正确答案:C

题目解析

  • 考点分析: 本题综合考察指令周期、访存、中断和PC寄存器的行为。
  • 错误选项分析 (C. 空操作指令的指令周期中任何寄存器的内容都不会被改变):
    • 这是错误的。即使是空操作指令(NOP),它也必须经历一个完整的取指周期。在取指周期结束时,程序计数器(PC) 的内容会自动增加指令长度,指向下一条指令。PC是一个寄存器,所以它的内容被改变了。
  • 正确选项分析:
    • A. 每个指令周期中CPU都至少访问内存一次: 正确。因为不采用Cache和指令预取,每条指令都必须通过访问内存来完成“取指”操作。所以至少有一次访存。
    • B. 每个指令周期一定大于或等于一个CPU时钟周期: 正确,指令周期由一个或多个时钟周期构成。
    • D. 当前程序在每条指令执行结束时都可能被外部中断打断: 正确。机器处于“开中断”状态,意味着CPU会在每条指令执行结束时检查中断请求,并响应中断。

网站公告

今日签到

点亮在社区的每一天
去签到