单元 1.1.1 处理器的结构和功能
算术逻辑单元 (ALU) - 这是一个由大量逻辑门组成的组件,它处理逻辑运算,例如比较值和基本算术运算,如二进制加法或减法。它能够执行许多复杂的数学函数,例如正弦、余弦和浮点除法。
控制单元 (CU) - 该组件通过使用“控制信号”来协调处理器内部的各个单元,这些信号决定数据流入处理器和在处理器周围流动的方式。在 FDE 周期中,指令在控制单元中被解码。
下面是一个典型的冯·诺依曼体系结构计算机的简化图
识别并解释上面组件 A 和 B 的功能。[4]
回答
组件 A
• 名称:控制单元
• 解释:按顺序获取每个指令,对其进行解码和同步,然后通过向计算机的其他部分发送控制信号来执行它。
组件 B
• 名称:算术逻辑单元 (接受 ALU)
• 解释:对通常包括算术运算或逻辑比较的数据进行处理和操作,使程序能够做出决策。
- 可以存储单个数据项的位置。
- 它们是位于 CPU 内部的专用高速存储区域。
- 在对任何数据进行处理之前,必须先在寄存器中表示它。
- 例如,在对任何两个数字进行相乘之前,它们必须分别存储在单独的寄存器中。
位于处理器中的寄存器
- 程序计数器 (PC) - 包含要执行的下一条指令的地址。
- 内存地址寄存器 (MAR) - 包含当前正在使用的内存位置的地址。
- 内存数据寄存器 (MDR) - 临时存储要执行的指令/数据。
- 当前指令寄存器 (CIR) - 在解码指令时保存指令。
- 累加器 (ACC) - 存储 CPU (ALU) 处理的计算结果。
CIR 和 MDR 的原因:可能看起来 CIR 和 MDR 总是保存相同的值。但是,考虑一条输入指令。如果没有 CIR,MDR 将保存输入指令。但是,当数据输入时,输入值将覆盖 MDR 中的输入指令,因此需要 CIR 和 MDR。
总线是数据从计算机的一部分传输到另一部分所经过的一组导线。这些通常包括
- 数据总线 - 数据传输的路径,通常在 CPU 和内存之间。这是一条半双工路径;数据可以在两个方向上传输,但一次只能在一个方向上传输。双向总线。
- 地址总线 - 当数据被保存到/从内存加载时,必须将其存储到/从其加载的内存位置的地址也必须被发送。地址总是沿着地址总线传输。这是一条单向路径;CPU 只发送内存地址,它永远不会从内存接收地址。单向总线。
- 控制总线 - 控制单元向计算机的所有部分发送和接收信号,确保所有进程在正确的时间以正确的顺序发生。这些信号沿着控制总线传输,控制总线由多条控制线组成,包括中断请求线、内存读取线和内存写入线,以及用于同步操作的时钟。双向总线。
该循环描述了处理发生所需的基本步骤。
- 程序计数器中的地址被复制到内存地址寄存器。
- 程序计数器被递增。
- 控制单元通过控制总线向内存发送取指信号,同时将内存地址寄存器中保存的地址沿着地址总线发送到内存。存储在内存中的值沿着数据总线返回到 CPU,并保存在内存数据寄存器中。
- 内存数据寄存器中的这个值被复制到当前指令寄存器。
- 当前指令寄存器的内容被发送到控制单元进行解码。
- 必须识别指令使用的寻址类型
- 如果地址是直接地址,则将此地址加载到内存地址寄存器并检索该地址的内容。
- 如果地址是索引地址,则将索引寄存器的内容加到该地址,然后将此值复制到内存地址寄存器。检索此内存位置的内容。
- 如果指令是跳转指令
- 将地址操作数加载到程序计数器,并将当前指令寄存器中的地址组件复制到程序计数器。
- 此时执行已完成。
- 否则,执行指令。
https://pastpapers.co/aqa/A-Level/Computing-2510/AQA-COMP2-QP-JUN15.PDF
下图 1 显示了简单处理器取指执行循环中使用的一些寄存器,以及通过系统总线连接到它的主内存的一小部分内容。
1 (a) 在图 1 中,指令的前 4 位表示操作码,表示要执行的指令类型。
指令的第二组 4 位叫什么名字?[1 分]
1 (b) (i) 当前程序计数器 (PC) 中的值为 0001。
完成下面的表格,在完成取指执行循环的取指部分后,用二进制表示以下寄存器中的值。
寄存器 | 值 |
---|---|
PC | |
MAR | |
MBR |
[3 分]
1 (b) (ii) 描述在循环的译码和执行部分会发生什么。[3 分]
1 (c) 执行指令 01000011 的结果是什么?[1 分]
回答
1a) 操作数
b)i)
- PC 0010;
- MAR 0001;
- MBR 00100100;
ii)
- 指令保存在 CIR 中 // CIR 中的指令被解码;
- 控制单元/指令解码器对指令进行解码;
- 指令将被拆分为操作码和操作数;
- 处理器/CPU 的相关部分执行指令 // 使用 ALU 进行计算;
- 如果需要,执行进一步的内存取值/保存操作;
- 计算结果存储在累加器/寄存器中,写入主内存;
- 更新状态寄存器,如果执行的是跳转/分支指令,则更新 PC;
c) 累加器中的当前值将被存储在 (内存) 地址“locauon 0011/3”中;数字 011/3 被存储在 (内存) 地址/位置 0011/3 中;
CPU 的性能会受到 4 个不同因素的影响
处理器的时钟速度是它每秒可以执行的 FDE 循环次数,例如 3.4 GHz 是每秒 3,400,000,000 个循环。时钟速度越高,每秒发生的 FDE 循环次数就越多,因此更高的时钟速度可以提高性能。
缓存内存是直接内置于 CPU 的内存。它比 RAM 快得多,因为它离需要数据的寄存器更近,并且它的运行速度也与 CPU 相似,因此与从 RAM 中检索数据相比,它的延迟非常小。它包含多个级别的缓存,它们的大小和距离 CPU 的距离不同,分别是 L1、L2 和 L3 缓存。L1 距离 CPU 最近,并且是最小的,而 L3 距离 CPU 最远,并且是最大的。所有缓存不都简单地设置为 L1 的原因是成本 - 更快的内存更贵。
经常使用的数据(如操作系统的一部分)存储在缓存中,这使处理器能够更快地运行,因为它不需要经常依赖从 RAM 中进行较慢的获取。
多核处理器是在单个 CPU 中包含多个独立处理单元的处理器。每个核心可以独立于其他核心运行,并且每个核心都有自己的低级缓存,以及共享高级缓存。不同的核心可以在多任务处理期间同时运行不同的应用程序,从而使每秒执行更多操作。
但是,多个核心并不总是能提高处理器性能;如果一个核心正在处理一条依赖另一个核心处理的另一条指令结果的指令,它将不得不等待该核心返回结果,然后才能完成该指令的处理。这会导致挂起,即一个核心在等待另一条指令执行的结果时被浪费。
流水线是用于提高 CPU 性能的一种过程。它的工作原理是,在处理器对一条指令进行解码时,可以从内存中获取下一条指令。这在下一条指令不依赖于前一条指令的代码中效果最佳 - 当代码分支时,CPU 将解码错误的下一条指令,因此将不得不通过消除当前的获取和解码步骤来“清除流水线”。
步骤 | 取指 | 译码 | 执行 |
---|---|---|---|
步骤 1 | 指令 1 | ||
步骤 2 | 指令 2 | 指令 1 | |
步骤 3 | 指令 3 | 指令 2 | 指令 1 |
步骤 4 | 指令 4 | 指令 3 | 指令 2 |
- 温度
- 多线程能力
- 总线宽度
- 寄存器大小
James 正在考虑升级他的电脑,以便他能够玩最新的电脑游戏。
他目前的规格如下
- 2.1 GHz 单核
- 2 GB RAM
- 500 GB HDD
确定 James 可以升级电脑的两种方式,并解释这些方式如何提高 CPU 的性能。(4 分)
回答
4 分,其中 2 分用于确定功能,2 分用于解释。每个功能最多 2 分。仅标记前两个功能。
- 添加多核处理器。
- 每个核心可以同时执行两个取指-解码-执行 (FDE) 周期。
- 任务可以在核心之间分配执行。
- 添加具有更快时钟速度的处理器。
- 处理器每秒可以完成更多 FDE 周期。
- 添加更多 RAM。
- 处理器可以同时打开更多软件和文件。
我们的教学大纲涉及两种主要的架构 - 冯·诺依曼和哈佛。
这种架构有一个控制单元和一个地址、数据和控制总线。它按顺序执行指令,并将指令和数据一起存储在同一个内存单元中。它无法同时获取指令和运行数据操作,因为数据和指令共享一个公共总线 - 这被称为冯·诺依曼瓶颈。指令在两个时钟周期内完成(解码和执行)。
这种架构与冯·诺依曼几乎相同,但是它将数据和指令存储在单独的内存单元中。CPU 也能够同时读取指令和执行内存访问,即使没有缓存。这是因为数据和指令有单独的总线。在哈佛架构中可以使用流水线,因为它为指令和数据提供了独立的内存,以及独立的总线 - 如果使用流水线,指令在一个时钟周期内完成。
这是哈佛架构的一种修改形式。它放宽了数据和指令的严格分离,并且仍然允许 CPU 访问超过 2 个内存总线。
一台计算机使用冯·诺依曼处理器架构。
描述这种架构。
回答
该架构使用存储程序概念 (1)。答案还应包括对取指-解码-执行周期的解释 (2)。