组成原理-处理器处理器的相关概念

Posted Mount256

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组成原理-处理器处理器的相关概念相关的知识,希望对你有一定的参考价值。

文章目录

1 CPU 的性能参数

1.1 常用性能参数

CPU 性能参数别名描述公式
CPU 时钟周期时钟周期、节拍、T 周期处理器的时钟周期,是 CPU 操作的基本单位时钟周期 = 1/主频(单位:s)
CPU 时钟频率主频处理器的时钟频率主频 = 1/时钟周期(单位:Hz)
平均指令周期数CPI、平均执行周期数执行一条指令所需的时钟周期数,一般取平均值CPI = 机器周期数 * (每个机器周期所包含的)时钟周期数(无单位)
平均指令周期平均执行周期执行一条指令所需的时钟周期,一般取平均值平均指令周期 = 执行时间/指令条数 = 1/平均指令执行速度 = CPI*CPU时钟周期(T) = CPI/主频(单位:s)
CPU 执行时间~运行一个程序所花费的时间执行时间 = CPU时钟周期数/主频 = (指令条数*CPI)/主频(单位:s)
IPS平均指令执行速度每秒执行多少条指令平均指令执行速度 = 1/平均指令周期 = 指令条数/执行时间 = 主频/CPI(单位:IPS,无量纲)
MIPS平均指令执行速度每秒执行多少百万条指令平均指令执行速度 = 1/(平均指令周期*106) = 指令条数/(执行时间*106) = 主频/(CPI*106)(单位:MIPS,无量纲)

1.2 浮点性能参数

浮点性能参数别名描述公式
FLOPS~每秒执行多少次浮点运算浮点操作次数/执行时间
MFLOPS~每秒执行多少百万次浮点运算浮点操作次数/(执行时间*106)
GFLOPS~每秒执行多少十亿次浮点运算浮点操作次数/(执行时间*109)
TFLOPS~每秒执行多少万亿次浮点运算浮点操作次数/(执行时间*1012)
PFLOPS~每秒执行多少千万亿次浮点运算浮点操作次数/(执行时间*1015)
EFLOPS~每秒执行多少百亿亿次浮点运算浮点操作次数/(执行时间*1018)
ZFLOPS~每秒执行多少十万亿亿次浮点运算浮点操作次数/(执行时间*1021)

【注】一万=104,一亿=108

1.3 相关例题

【例 1】计算器浮点运算速度为 93.0146 PFLOPS,这说明该计算器每秒完成的浮点数操作次数为( )。

A. 9.3×1013

B. 9.3×1015

C. 9.3 千万亿次

D. 9.3 亿亿次

【解】93.0146 PFLOPS = 93.0146*1015 = 9.30146*1016,而 1016=108*108,所以单位是亿亿次。选 D。

若题目改为 93.0146 EFLOPS = 9.30146*1019,则 1019=108*108*103,所以单位是千亿亿次。当然你需要记住 K,M,G,T,P,E,Z(谐音:昆明高铁票儿子)的数量级,只需记住这个顺序,对应的数量级以 10 为底,指数从 3 开始,依次加 3。

【例 2】程序 P 在机器 M 上的执行时间是 20 秒,编译优化后,P 执行的指令数减少到原来的 70%,而 CPI 增加到原来的 1.2 倍,则 P 在 M 上的执行时间是( )。

A.8.4 秒

B.11.7 秒

C.14 秒

D.16.8 秒

【解】CPU 执行时间 = (指令条数*CPI)/主频,所以设 CPU 主频为 f,指令条数为 n,CPI 为 a。因此,原来花费的时间为(n*a)/f = 20s,现在所花费的时间为(0.7n*1.2a)/f = 0.84*(n*a)/f = 0.84*20 = 16.8。选 D。

【例 3】微机 A 和 B 采用不同的主频的 CPU 芯片,片内逻辑电路完全相同。若 A 机主频是 8MHz,平均指令执行速度为 0.4MIPS;B机主频为 12MHz,则:

(1)A 机的 CPU 时钟周期为多少?

(2)A 机的平均指令周期为多少?

(3)B 机的平均指令执行速度为多少?

【解】(1)A 的 CPU 时钟周期 = 1/主频 = 1/8MHz = 0.125us。

(2)A 机的平均指令执行速度为 0.4MIPS,即“每秒执行 0.4 百万条指令”,则每条指令平均执行时间(平均指令周期) = 1/平均指令执行速度 = 1/0.4MIPS= 2.5us。

(3)A 机平均每条指令的时钟周期数(CPI) = 执行程序时间/平均指令周期 = 2.5us/0.125us = 20。

因为微机 A 和 B 采用不同的主频的 CPU 芯片,片内逻辑电路完全相同,因此对于一条指令来说,A 机和 B 机的 CPI = 20。

B 机的 CPU 时钟周期 = 1/主频 = 1/12MHz = 1/12us。

B 机的平均指令周期 = CPI * 时钟周期 = 20 * (1/12) = 5/3us。

B 机的平均指令执行速度 = 1/平均指令周期 = 1 / (5/3) = 0.6MIPS。

2 CPU 执行指令时的相关概念

2.1 执行指令时的不同周期

粒度排序:指令周期>机器周期>时钟周期

周期别名描述
时钟周期节拍、T 周期CPU 的基本(或最小度量)时间单位,CPU 的每一次活动至少需要一个时钟周期
机器周期CPU 周期CPU 通过内部或外部总线完成一个基本操作所需要的时间,包含若干时钟周期(通常细分为四种:取指周期、间址周期、执行周期、中断周期)
指令周期~CPU 从主存中取出并执行一条指令所用的时间,包含若干机器周期,平均指令周期 = CPI * CPU 时钟周期 = CPI / 主频,而CPI = 机器周期数 * (每个机器周期所包含的)时钟周期数

【注】区分指令周期和 CPI:前者表示执行一条指令所需的总时间,后者表示执行一条指令需要多少个时钟周期,所以这就是为什么把 CPI 称为执行周期数而不是执行周期的原因。

2.2 指令执行方案

  • 单指令周期:指令之间串行完成,每条指令都在固定的时钟周期内完成,因此,指令周期取决于执行时间最长的指令的执行时间。
  • 多指令周期:指令之间串行完成,每条指令可在不同的时钟周期内完成。
  • 流水线方案:指令之间并行完成,理想状态下,每个时钟周期都可以流出一条指令。

【注】单周期 CPU 和多周期 CPU 的区别

  • 单周期 CPU:一个时钟周期完成一条指令,即 CPU 会在一个时钟周期内完成从取指到执行的所有阶段,因此这种 CPU 的频率较低,此时 CPI 为 1。
  • 多周期 CPU:一条指令被分成了若干个阶段,假设为 n 个阶段,则每执行一条指令需要花费 n 个时钟周期,所以执行一条指令就需要 n 个时钟周期,因此 CPU 频率可以得到提高。此时 CPI 为 n。

2.3 相关例题

【例 1】若某机主频为 200MHz,每个指令周期平均为 2.5 个 CPU 周期,每个 CPU 周期平均包括 2 个主频周期,问:

(1)该机平均指令执行速度为多少 MIPS?

(2)若主频不变,但每条指令平均包括 5 个 CPU 周期,每个 CPU 周期又包含 4 个主频周期,平均指令执行速度为多少 MIPS?

(3)由此可得出什么结论?

【解】(1)平均指令周期数 = 机器周期数(CPU 周期数)* 每个机器周期包含的主频周期数(时钟周期数)= 2.5 * 2 = 5

时钟周期 = 1 / 主频 = 1/200MHZ = 0.005us

平均指令周期 = 平均指令周期数 * 时钟周期 = 5 * 0.005 = 0.025us

平均指令执行速度 = 1 / 平均指令周期 = 40MIPS

(2)时钟周期 = 0.005us

平均指令周期数 = 机器周期数(CPU 周期数)* 每个机器周期包含的主频周期数(时钟周期数)= 5 * 4 = 20

平均指令周期 = 平均指令周期数 * 时钟周期 = 20 * 0.005 = 0.1us

平均指令执行速度 = 1 / 平均指令周期 = 10MIPS

(3)指令的复杂程度会影响指令的平均执行速度。

【例 2】单周期处理器中所有指令的指令周期为一个时钟周期。下列关于单周期处理器的叙述中,错误的是( )

A. 可以采用单总线结构数据通路

B. 处理器时钟频率较低

C. 在指令执行过程中控制信号不变

D. 每条指令的 CPI 为 1

【解】B 和 D 显然正确。

单周期处理器中所有的指令周期为一个时钟周期,而采用单总线结构数据通路,一个时钟周期只能完成一次操作,无法完成所有操作,所以 A 错误。

控制信号是 CU 根据指令操作码发出的信号,对于单周期处理器而言,每条指令的执行只有一个时钟周期,而在一个时钟周期内控制信号不会发生变化;若是多周期处理器,每条指令的执行需要多个时钟周期,在每个时钟周期 CU 都会发出信号。所以 C 正确。

3 CPU 的基本结构

3.1 控制器

  • 程序计数器 PC:指出下一条指令的存放地址,其位数与取决于存储器容量以及存储器的编址方式(按字节编址还是按字编址)
  • 指令寄存器 IR:保存当前正在执行的指令,其位数取决于指令字长
  • 指令译码器:对指令的操作码字段进行译码
  • 存储器地址寄存器 MAR:存放从主存访问到的信息,其位数与取决于存储器容量以及存储器的编址方式(按字节编址还是按字编址)
  • 存储器数据寄存器 MDR:存放要访问的主存单元地址,其位数取决于存储字长
  • 控制信号产生单元/微操作信号发生器:一条指令的去除和操作可以分解为很多基本操作,这种最基本的不可分割的操作成为位操作,也称为控制单元(CU)。不同机器指令具有不同的微操作序列。其结构有组合逻辑型和存储逻辑型(例如微程序控制器)。
  • 时序系统

3.2 运算器

  • 算术逻辑单元 ALU
  • 暂存寄存器:暂存从主存读来的数据,对程序员透明
  • 累加寄存器 ACC:暂存 ALU 运算结果
  • 通用寄存器组 GPRs:可编程的寄存器组,其位数取决于机器字长
  • 程序状态寄存器组 PSW
  • 移位器
  • 计数器 CT

3.3 相关例题

【例 1】某计算机主存空间是 4GB,字长是 32 位,按照字节编址。采用 32 位定长指令格式,若指令按照字边界对齐存放,则程序计数器 PC 和指令寄存器 IR 的位数至少分别是( )

A. 30, 30

B. 30, 32

C. 32, 30

D. 32, 32

【解】指令字长为 32 位,因此 IR 一定是 32 位。而主存空间为 4GB = 232B,按字节编址,则需要 32 位地址线,即存储器地址寄存器 MAR 需要 32 位。但要注意的是,指令按字边界(4B)对齐存放,所以实际上存储器能存储的指令条数是 232/4 = 230 条指令,PC 至少有 30 位。选 B。

以上是关于组成原理-处理器处理器的相关概念的主要内容,如果未能解决你的问题,请参考以下文章

(计算机组成原理)第三章存储系统-第六节1:高速缓冲存储器Cache及其相关基本概念程序访问的局部性原理和命中率

计算机组成原理和结构图式(第一章 概论)

计算机组成原理 王道考研2021 第三章:存储系统 -- 高速缓冲存储器Cache基本概念和原理(程序访问的局部性原理)Cache和主存的映射方式替换算法写策略

王道计算机组成原理笔记14 主存简单模型和寻址概念

(计算机组成原理)第五章中央处理器-第三节1:CPU内部单总线数据通路中数据的流动

408组成原理&操作系统知识整理