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,无量纲) |
浮点性能参数 | 别名 | 描述 | 公式 |
---|---|---|---|
FLOPS | ~ | 每秒执行多少次浮点运算 | 浮点操作次数/执行时间 |
MFLOPS | ~ | 每秒执行多少百万次浮点运算 | 浮点操作次数/(执行时间*106) |
GFLOPS | ~ | 每秒执行多少十亿次浮点运算 | 浮点操作次数/(执行时间*109) |
TFLOPS | ~ | 每秒执行多少万亿次浮点运算 | 浮点操作次数/(执行时间*1012) |
PFLOPS | ~ | 每秒执行多少千万亿次浮点运算 | 浮点操作次数/(执行时间*1015) |
EFLOPS | ~ | 每秒执行多少百亿亿次浮点运算 | 浮点操作次数/(执行时间*1018) |
ZFLOPS | ~ | 每秒执行多少十万亿亿次浮点运算 | 浮点操作次数/(执行时间*1021) |
【注】一万=104,一亿=108
【例 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。
粒度排序:指令周期>机器周期>时钟周期
周期 | 别名 | 描述 |
---|---|---|
时钟周期 | 节拍、T 周期 | CPU 的基本(或最小度量)时间单位,CPU 的每一次活动至少需要一个时钟周期 |
机器周期 | CPU 周期 | CPU 通过内部或外部总线完成一个基本操作所需要的时间,包含若干时钟周期(通常细分为四种:取指周期、间址周期、执行周期、中断周期) |
指令周期 | ~ | CPU 从主存中取出并执行一条指令所用的时间,包含若干机器周期,平均指令周期 = CPI * CPU 时钟周期 = CPI / 主频 ,而CPI = 机器周期数 * (每个机器周期所包含的)时钟周期数 |
【注】区分指令周期和 CPI:前者表示执行一条指令所需的总时间,后者表示执行一条指令需要多少个时钟周期,所以这就是为什么把 CPI 称为执行周期数而不是执行周期的原因。
【注】单周期 CPU 和多周期 CPU 的区别
- 单周期 CPU:一个时钟周期完成一条指令,即 CPU 会在一个时钟周期内完成从取指到执行的所有阶段,因此这种 CPU 的频率较低,此时 CPI 为 1。
- 多周期 CPU:一条指令被分成了若干个阶段,假设为 n 个阶段,则执行一条指令就需要 n 个时钟周期,因此 CPU 频率可以得到提高。此时 CPI 为 n。
【例 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 正确。
【例 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。
在 CPU 内部,寄存器之间和算术逻辑部件 ALU 与控制部件之间传输数据所用的总线称为片内总线(又称内部总线,即芯片内部的总线)。它是外设与处理器之间的总线,用于芯片一级的互连。关于总线的知识点,会在另一篇文章有更详细的讨论。
又称内总线或板级总线,它将 CPU、主存、I/O 接口之间相互连接起来。系统总线的结构可分为三类(除这三类外还有四总线结构):
将 CPU、主存、I/O 接口挂在同一组总线上,注意是同一组,一组里有三种总线——数据总线、地址总线、控制总线。
一条是主存总线,另一条是 I/O 总线,而通道作为两条总线的传输中介。这种结构支持突发传送。
主存总线(这里面实际是三种总线——数据总线、地址总线、控制总线)、I/O 总线、DMA 总线。
计算机和外部设备之间的总线称为外部总线,当然它不属于 CPU 总线的范畴,这里就简单提一提了。
【注】对于单处理机,在多道程序环境下,一段时间内,宏观上有多道程序在同时执行,而在每个时刻,单处理机仅能有一道程序执行。此时操作系统
是通过分时来实现并发性的,没有真正实现并行性。
多条指令并⾏执⾏,处理同⼀个数据。现实中不存在这种计算机
文章浏览阅读3.4k次,点赞8次,收藏42次。一、什么是内部类?or 内部类的概念内部类是定义在另一个类中的类;下面类TestB是类TestA的内部类。即内部类对象引用了实例化该内部对象的外围类对象。public class TestA{ class TestB {}}二、 为什么需要内部类?or 内部类有什么作用?1、 内部类方法可以访问该类定义所在的作用域中的数据,包括私有数据。2、内部类可以对同一个包中的其他类隐藏起来。3、 当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。三、 内部类的分类成员内部_成员内部类和局部内部类的区别
文章浏览阅读118次。分布式系统要求拆分分布式思想的实质搭配要求分布式系统要求按照某些特定的规则将项目进行拆分。如果将一个项目的所有模板功能都写到一起,当某个模块出现问题时将直接导致整个服务器出现问题。拆分按照业务拆分为不同的服务器,有效的降低系统架构的耦合性在业务拆分的基础上可按照代码层级进行拆分(view、controller、service、pojo)分布式思想的实质分布式思想的实质是为了系统的..._分布式系统运维工具
文章浏览阅读174次。1.数据源准备2.数据处理step1:数据表处理应用函数:①VLOOKUP函数; ② CONCATENATE函数终表:step2:数据透视表统计分析(1) 透视表汇总不同渠道用户数, 金额(2)透视表汇总不同日期购买用户数,金额(3)透视表汇总不同用户购买订单数,金额step3:讲第二步结果可视化, 比如, 柱形图(1)不同渠道用户数, 金额(2)不同日期..._exce l趋势分析数据量
文章浏览阅读3.3k次。堡垒机可以为企业实现服务器、网络设备、数据库、安全设备等的集中管控和安全可靠运行,帮助IT运维人员提高工作效率。通俗来说,就是用来控制哪些人可以登录哪些资产(事先防范和事中控制),以及录像记录登录资产后做了什么事情(事后溯源)。由于堡垒机内部保存着企业所有的设备资产和权限关系,是企业内部信息安全的重要一环。但目前出现的以下问题产生了很大安全隐患:密码设置过于简单,容易被暴力破解;为方便记忆,设置统一的密码,一旦单点被破,极易引发全面危机。在单一的静态密码验证机制下,登录密码是堡垒机安全的唯一_horizon宁盾双因素配置
文章浏览阅读7.7k次,点赞4次,收藏16次。Chrome作为一款挺不错的浏览器,其有着诸多的优良特性,并且支持跨平台。其支持(Windows、Linux、Mac OS X、BSD、Android),在绝大多数情况下,其的安装都很简单,但有时会由于网络原因,无法安装,所以在这里总结下Chrome的安装。Windows下的安装:在线安装:离线安装:Linux下的安装:在线安装:离线安装:..._chrome linux debian离线安装依赖
文章浏览阅读153次。中国发达城市榜单每天都在刷新,但无非是北上广轮流坐庄。北京拥有最顶尖的文化资源,上海是“摩登”的国际化大都市,广州是活力四射的千年商都。GDP和发展潜力是衡量城市的数字指...
文章浏览阅读3.3k次。前言spark在java使用比较少,多是scala的用法,我这里介绍一下我在项目中使用的代码配置详细算法的使用请点击我主页列表查看版本jar版本说明spark3.0.1scala2.12这个版本注意和spark版本对应,只是为了引jar包springboot版本2.3.2.RELEASEmaven<!-- spark --> <dependency> <gro_使用java调用spark注册进去的程序
文章浏览阅读4.8k次。汽车零部件开发工具巨头V公司全套bootloader中UDS协议栈源代码,自己完成底层外设驱动开发后,集成即可使用,代码精简高效,大厂出品有量产保证。:139800617636213023darcy169_uds协议栈 源代码
文章浏览阅读4.6k次,点赞20次,收藏148次。AUTOSAR基础篇之OS(下)前言首先,请问大家几个小小的问题,你清楚:你知道多核OS在什么场景下使用吗?多核系统OS又是如何协同启动或者关闭的呢?AUTOSAR OS存在哪些功能安全等方面的要求呢?多核OS之间的启动关闭与单核相比又存在哪些异同呢?。。。。。。今天,我们来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JCXrdI0k-1636287756923)(https://gite_autosar 定义了 5 种多核支持类型
文章浏览阅读2.2k次,点赞6次,收藏14次。原因:自己写的头文件没有被加入到方案的包含目录中去,无法被检索到,也就无法打开。将自己写的头文件都放入header files。然后在VS界面上,右键方案名,点击属性。将自己头文件夹的目录添加进去。_vs2013打不开自己定义的头文件
文章浏览阅读3.3w次,点赞80次,收藏342次。此时,可以将系统中所有用户的 Session 数据全部保存到 Redis 中,用户在提交新的请求后,系统先从Redis 中查找相应的Session 数据,如果存在,则再进行相关操作,否则跳转到登录页面。此时,可以将系统中所有用户的 Session 数据全部保存到 Redis 中,用户在提交新的请求后,系统先从Redis 中查找相应的Session 数据,如果存在,则再进行相关操作,否则跳转到登录页面。当数据量很大时,count 的数量的指定可能会不起作用,Redis 会自动调整每次的遍历数目。_redis命令
文章浏览阅读449次,点赞3次,收藏3次。URP的设计目标是在保持高性能的同时,提供更多的渲染功能和自定义选项。与普通项目相比,会多出Presets文件夹,里面包含着一些设置,包括本色,声音,法线,贴图等设置。全局只有主光源和附加光源,主光源只支持平行光,附加光源数量有限制,主光源和附加光源在一次Pass中可以一起着色。URP:全局只有主光源和附加光源,主光源只支持平行光,附加光源数量有限制,一次Pass可以计算多个光源。可编程渲染管线:渲染策略是可以供程序员定制的,可以定制的有:光照计算和光源,深度测试,摄像机光照烘焙,后期处理策略等等。_urp渲染管线