【组成原理-处理器】处理器的相关概念_平均指令周期计算公式-程序员宅基地

技术标签: # 计算机组成原理  cpu  

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 个时钟周期,因此 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。

【例 2】下列部件中属于控制部件的是( )

A. 指令寄存器

B. 操作控制器

C. 程序计数器

D. 状态条件寄存器

【答案】属于控制部件的是 A、B、C,属于运算(执行)部件的是 D。

【例 3】下列部件中属于执行部件的是( )

A. 控制器

B. 存储器

C. 运算器

D. 外围设备

【答案】属于执行部件的是 B、C、D,属于控制部件的是 A。

4 CPU 的总线结构

4.1 内部总线

在 CPU 内部,寄存器之间和算术逻辑部件 ALU 与控制部件之间传输数据所用的总线称为片内总线(又称内部总线,即芯片内部的总线)。它是外设与处理器之间的总线,用于芯片一级的互连。关于总线的知识点,会在另一篇文章有更详细的讨论。

4.2 系统总线(内总线、板级总线)

又称内总线或板级总线,它将 CPU、主存、I/O 接口之间相互连接起来。系统总线的结构可分为三类(除这三类外还有四总线结构):

4.2.1 单总线结构

将 CPU、主存、I/O 接口挂在同一组总线上,注意是同一组,一组里有三种总线——数据总线、地址总线、控制总线。

  • 数据总线:双向传输,用来传输各部件之间的数据信息,总线位宽与机器字长、存储字长有关
  • 地址总线:单向传输,用来指出数据总线上的数据所在的主存单元或 I/O 端口地址,总线位宽与主存地址空间大小有关
  • 控制总线:传输控制信号,包括 CPU 送出的控制命令和主存返回 CPU 的反馈信号
4.2.2 双总线结构

一条是主存总线,另一条是 I/O 总线,而通道作为两条总线的传输中介。这种结构支持突发传送。

  • 主存总线:这里面实际是三种总线——数据总线、地址总线、控制总线。
  • I/O 总线:用于连接中低速的 I/O 设备,通过 I/O 接口与系统总线相连,目的是将低速设备与高速设备分离,如 USB、PCI 总线。
  • I/O 通道:具有特殊功能的处理器,能对 I/O 设备进行统一管理,减轻了设备控制器的负担。通道程序统一放在主存中。
4.2.3 三总线结构

主存总线(这里面实际是三种总线——数据总线、地址总线、控制总线)、I/O 总线、DMA 总线。

  • 主存总线:这里面实际是三种总线——数据总线、地址总线、控制总线。
  • I/O 总线:用于连接中低速的 I/O 设备,通过 I/O 接口与系统总线相连,目的是将低速设备与高速设备分离,如 USB、PCI 总线。
  • DMA 总线:直接内存访问总线。

4.3 外部总线(外总线、通信总线)

计算机和外部设备之间的总线称为外部总线,当然它不属于 CPU 总线的范畴,这里就简单提一提了。

5 多处理机

  • 并发:指两个或多个事件在同一时间间隔内发生。
  • 并行:指两个或多个事件在同一时刻发生。

【注】对于单处理机,在多道程序环境下,一段时间内,宏观上有多道程序在同时执行,而在每个时刻,单处理机仅能有一道程序执行。此时操作系统
是通过分时来实现并发性的,没有真正实现并行性。

5.1 单指令流单数据流(SISD)结构

  • 特性:各指令序列只能并发、不能并⾏,每条指令处理⼀两个数据
  • 不是数据级并⾏技术!
  • 硬件组成:⼀个处理器 + ⼀个存储器(若采用流水线,则需采⽤多模块交叉存储器)

5.2 单指令流多数据流(SIMD)结构

  • 特性:各指令序列只能并发、不能并⾏,但每条指令可同时处理很多个具有相同特征的数据
  • 是⼀种数据级并⾏技术!
  • 硬件组成:⼀个指令控制部件(CU)+ 多个处理单元/执⾏单元(ALU)+ 多个局部存储器
    • 每个执⾏单元有各⾃的寄存器组、局部存储器、地址寄存器,但整体只有⼀个程序计数器 PC
    • 不同执⾏单元执⾏同⼀条指令,处理不同的数据
SIMD指令集——向量处理机
  • 特性:
    • ⼀条指令的处理对象是“向量”
    • 擅⻓对向量型数据并⾏计算、浮点数运算,常被⽤于超级计算机中,处理科学研究中巨⼤运算量
  • 硬件组成:
    • 多个处理单元,多组“向量寄存器”
    • 主存储器应采⽤“多个端⼝同时读取”的交叉多模块存储器
    • 要有⼤容量的、集中式的主存储器,因为主存储器⼤⼩限定了机器的解题规模

5.3 多指令流单数据流(MISD)结构

多条指令并⾏执⾏,处理同⼀个数据。现实中不存在这种计算机

5.4 多指令流多数据流(MIMD)结构

  • 特性:各指令序列可以并⾏执⾏,分别处理多个不同的数据
  • 是⼀种线程级并⾏、甚⾄是线程级以上并⾏技术
5.4.1 多处理器系统(共享内存多处理器)
  • 概念:⼀个CPU芯⽚中包含多个处理器,即多个核(core),因此通常也称为片级多处理器(Chip-Level MultiProcessing,CMP)
  • 特性:
    • 多个处理器共享⼀个主存储器,所有核共享⼀个LLC(Last-Level Cache)
    • 多个处理器共享单⼀的地址空间,都可以通过 LOAD、STORE 指令访问共享的主存储器
  • 硬件组成:(Intel i5、i7 处理器)
    • ⼀台计算机内,包含多个处理器 + ⼀个主存储器
    • 多个处理器共享单⼀的物理地址空间
5.4.2 多计算机系统
  • 特性:
    • 多个计算节点都有各⾃私有的主存储器
    • 各计算结点的地址空间相互独⽴,不能通过 LOAD、STORE 指令访问另⼀个计算结点的主存储器
  • 硬件组成:
    • 由多台计算机组成,因此拥有多个处理器 + 多个主存储器
    • 每台计算机拥有各⾃的私有存储器,物理地址空间相互独⽴

6 硬件多线程

在这里插入图片描述
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/baidu_39514357/article/details/126764352

智能推荐

攻防世界_难度8_happy_puzzle_攻防世界困难模式攻略图文-程序员宅基地

文章浏览阅读645次。这个肯定是末尾的IDAT了,因为IDAT必须要满了才会开始一下个IDAT,这个明显就是末尾的IDAT了。,对应下面的create_head()代码。,对应下面的create_tail()代码。不要考虑爆破,我已经试了一下,太多情况了。题目来源:UNCTF。_攻防世界困难模式攻略图文

达梦数据库的导出(备份)、导入_达梦数据库导入导出-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏10次。偶尔会用到,记录、分享。1. 数据库导出1.1 切换到dmdba用户su - dmdba1.2 进入达梦数据库安装路径的bin目录,执行导库操作  导出语句:./dexp cwy_init/[email protected]:5236 file=cwy_init.dmp log=cwy_init_exp.log 注释:   cwy_init/init_123..._达梦数据库导入导出

js引入kindeditor富文本编辑器的使用_kindeditor.js-程序员宅基地

文章浏览阅读1.9k次。1. 在官网上下载KindEditor文件,可以删掉不需要要到的jsp,asp,asp.net和php文件夹。接着把文件夹放到项目文件目录下。2. 修改html文件,在页面引入js文件:<script type="text/javascript" src="./kindeditor/kindeditor-all.js"></script><script type="text/javascript" src="./kindeditor/lang/zh-CN.js"_kindeditor.js

STM32学习过程记录11——基于STM32G431CBU6硬件SPI+DMA的高效WS2812B控制方法-程序员宅基地

文章浏览阅读2.3k次,点赞6次,收藏14次。SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。_stm32g431cbu6

计算机网络-数据链路层_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输

软件测试工程师移民加拿大_无证移民,未受过软件工程师的教育(第1部分)-程序员宅基地

文章浏览阅读587次。软件测试工程师移民加拿大 无证移民,未受过软件工程师的教育(第1部分) (Undocumented Immigrant With No Education to Software Engineer(Part 1))Before I start, I want you to please bear with me on the way I write, I have very little gen...

随便推点

Thinkpad X250 secure boot failed 启动失败问题解决_安装完系统提示secureboot failure-程序员宅基地

文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure

C++如何做字符串分割(5种方法)_c++ 字符串分割-程序员宅基地

文章浏览阅读10w+次,点赞93次,收藏352次。1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include <string.h>#include <stdio.h&_c++ 字符串分割

2013第四届蓝桥杯 C/C++本科A组 真题答案解析_2013年第四届c a组蓝桥杯省赛真题解答-程序员宅基地

文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答

基于供需算法优化的核极限学习机(KELM)分类算法-程序员宅基地

文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。

metasploitable2渗透测试_metasploitable2怎么进入-程序员宅基地

文章浏览阅读1.1k次。一、系统弱密码登录1、在kali上执行命令行telnet 192.168.26.1292、Login和password都输入msfadmin3、登录成功,进入系统4、测试如下:二、MySQL弱密码登录:1、在kali上执行mysql –h 192.168.26.129 –u root2、登录成功,进入MySQL系统3、测试效果:三、PostgreSQL弱密码登录1、在Kali上执行psql -h 192.168.26.129 –U post..._metasploitable2怎么进入

Python学习之路:从入门到精通的指南_python人工智能开发从入门到精通pdf-程序员宅基地

文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf

推荐文章

热门文章

相关标签