计算机组成原理之计算机的性能指标

目录

计算机的性能指标

复习提示

1.计算机的主要性能指标

1.1机器字长

1.1.1与机器字长位数相同的部件

1.2数据通路带宽

1.3主存容量

1.4运算速度

1.4.1提高系统性能的综合措施

1.4.2时钟脉冲信号和时钟周期的相关概念

1.4.3主频和时钟周期的转换计算

1.4.4IPS的相关计算

1.4.5CPU执行时间的相关计算

1.4.6MIPS 相关的计算

1.4.7浮点数运算指标的概念

1.5基准程序

2.几个专业术语

知识回顾

3.本章小结

4.常见问题和易混淆知识点


计算机的性能指标

复习提示

本章是组成原理的概述,考查时易针对有关概念或性能指标出选择题,也可能综合后续章节的内容出有关性能分析的综合题。

掌握本章的基本概念,是学好后续章节的基础。

部分知识点在初学时理解不深刻也无须担忧,相信随着后续章节的学习,一定会有更为深入的理解。

学习本章时,请读者思考以下问题:

  • 1) 计算机由哪几部分组成? 以哪部分为中心?
  • 2) 主频高的 CPU 一定比主频低的 CPU 快吗? 为什么?
  • 3) 翻译程序、汇编程序、编译程序、解释程序有什么差别? 各自的特性是什么?
  • 4) 不同级别的语言编写的程序有什么区别? 哪种语言编写的程序能被硬件直接执行? 

请读者在学习本章的过程中寻找答案,本章末尾会给出参考案。

1.计算机的主要性能指标

1.1机器字长

1.1.1与机器字长位数相同的部件

命题追踪——与机器字长位数相同的部件(2020、2021)】

通常所说的“某 16 位或 32 位机器”,其中的 16、32 指的是机器字长,简称字长

字长是指计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数,通常与 CPU 的寄存器位数、ALU 有关。

因此,字长一般等于通用寄存器的位数或 ALU 的宽度,字长越长,数的表示范围越大,计算精度越高。

计算机字长通常选定为字节(8位)的整数倍。

注 意:机器字长、指令字长和存储字长的关系(见章末的常见问题3)

1.2数据通路带宽

数据通路带宽是指数据总线一次所能并行传送信息的位数

这里所说的数据通路宽度是指外部数据总线的宽度,它与 CPU 内部的数据总线宽度(内部寄存器的大小)有可能不同。

注 意:各个子系统通过数据总线连接形成的数据传送路径称为数据通路

1.3主存容量

主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量,也可用字数x字长(如512Kx16 位)来表示存储容量。

其中,MAR 的位数反映了存储单元的个数MDR 的位数反映了存储单元的字长

例如,MAR 为16 位,表示 2¹⁶=65536,即此存储体内有 65536 个存储单元(可称为 64K 内存,1K=1024),

若 MDR 为32 位,则表示存储容量为64Kx32 位。

1.4运算速度

1.4.1提高系统性能的综合措施

命题追踪——提高系统性能的综合措施(2010)】

(1) 吞吐量和响应时间

吞吐量。指系统在单位时间内处理请求的数量。

它取决于信息能多快地输入内存,CPU 能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。

几乎每步都关系到主存储器,因此系统吞吐量主要取决于主存储器的存取周期。

响应时间。指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间。

通常包括 CPU 时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/O 操作、操作系统开销等的时间)。

(2) 主频和 CPU 时钟周期

1.4.2时钟脉冲信号和时钟周期的相关概念

命题追踪——时钟脉冲信号和时钟周期的相关概念(2019)】

CPU 时钟周期。机器内部主时钟脉冲信号的宽度,它是 CPU 工作的最小时间单位

时钟脉冲信号由机器脉冲源发出的脉冲信号经整形和分频 后形成。

时钟周期以相邻状态单元间组合逻辑电路的最大延迟为基准确定。

时钟周期也以指令流水线的每个流水段的最大延迟时间确定。

1.4.3主频和时钟周期的转换计算

命题追踪——主频和时钟周期的转换计算(2013)】

主频(CPU 时钟频率)。机器内部主时钟的频率,即时钟周期的倒数,它是衡量机器速度的重要参数。

对于同一个型号的计算机,其主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快。

主频最直观的理解就是每秒有多少个时钟周期

注意:CPU 时钟周期 =1/主频,主频通常以 Hz(赫兹)为单位,10Hz表示每秒 10 次。

(3) CPI(Cycle Per Instruction)。

即执行一条指令所需的时钟周期数。

1.4.4IPS的相关计算

命题追踪——IPS的相关计算(2023)】 

不同指令的时钟周期数可能不同,因此对于一个程序或一台机器来说,

其 CPI 指该程序或该机器指令集中的所有指令执行所需的平均时钟周期数,此时CPI是一个平均值。

  • IPS(Instructions Per Second),即每秒执行多少条指令,IPS= 主频/平均 CPI。

(4) CPU 执行时间

指运行一个程序所花费的时间。

1.4.5CPU执行时间的相关计算

命题追踪——CPU执行时间的相关计算(2012、2013、2014、2017、2022、2023)】

CPU 执行时间 =CPU 时钟周期数/主频=(指令条数×CPI)÷主频

上式表明,CPU 的性能(CPU执行时间)取决于三个要素:主频、CPI 和指令条数

主频、CPI 和指令条数是相互制约的。

例如,更改指令集可以减少程序所含的指令条数,但同时可能引起 CPU 结构的调整,从而可能会增加时钟周期的宽度(降低主频)。

【例 1.1】

假定计算机 M1和 M2具有相同的指令集体系结构,M1的主频为 2GHz,程序P在M1 上的运行时间为 10s。

M2 采用新技术可使主频大幅提升,但平均 CPI 也增加到 M1 的 15 倍。
则 M2 的主频至少提升到多少才能使程序P在 M2 上的运行时间缩短为 6s?


  • 程序P在M1上的时钟周期数 = 指令条数×CPI = CPU执行时间×主频=10s×2GHz=2x10¹⁰ 。
  • M2 的平均 CPI为 M1 的 1.5 倍,因此程序 P 在 M2 上的时钟周期数 =1.5×2×10¹⁰=3x10¹⁰ 。
  • 要使程序 P在 M2 上的运行时间缩短到 6s,则 M2 的主频至少应为
  •                 程序P所含时钟周期数 ÷ CPU 执行时间 =3x10¹⁰ ÷ 6s = 5GHz

由此可见,M2 的主频是 M1的 2.5 倍,但 M2 的速度却只是 M1 的 1.67 倍。

(5)MIPS(Million Instructions Per Second)。

即每秒执行多少百万条指令。

1.4.6MIPS 相关的计算

命题追踪——MIPS 相关的计算(2012、2013)】

MIPS = 指令条数 ÷ (执行时间×10⁶)= 主频 ÷ (CPIx10⁶)。

MIPS 对不同机器进行性能比较是有缺陷的,因为不同机器的指令集不同,指令的功能也就不同。

比如在机器 M1 上某条指令的功能也许在机器 M2 上要用多条指令来完成;

不同机器的 CPI和时钟周期也不同,因而同一条指令在不同机器上所用的时间也不同。

(6) FLOPS(Floating-point Operations Per Second)

即每秒执行多少次浮点运算

1.4.7浮点数运算指标的概念

命题追踪——浮点数运算指标的概念(2011、2021)】

  • MFLOPS (Million FLOPS),即每秒执行多少百万(10⁶)次浮点运算。
  • GFLOPS (Giga FLOPS),即每秒执行多少十亿(10⁹)次浮点运算。
  • TFLOPS (Tera FLOPS),即每秒执行多少万亿(10¹²)次浮点运算。
  • PFLOPS (Peta FLOPS),即每秒执行多少千万亿(10¹⁵)次浮点运算。
  • EFLOPS (Exa FLOPS),即每秒执行多少百京(10¹⁸)次浮点运算(1京 =1亿亿 =10¹⁶)。
  • ZFLOPS (Zetta FLOPS),即每秒执行多少十万京(10²¹)次浮点运算。

注意

  • 在描述存储容量、文件大小等时,K、M、G、T通常用2的幂次表示,如 1Kb=2¹⁰b;
  • 在描述速率、频率等时,k、M、G、T通常用 10 的幂次表示,如 1kb/s=10³b/s。
  • 通常前者用大写的K,后者用小写的k,但其他前缀均为大写,表示的含义取决于所用的场景

1.5基准程序

基准程序 (Benchmarks) 是专门用来进行性能评价的一组程序,能够很好地反映机器在运行实际负载时的性能,

可以通过在不同机器上运行相同的基准程序来比较在不同机器上的运行时间,从而评测其性能。

对于不同的应用场合,应该选择不同的基准程序。

使用基准程序进行计算机性能评测也存在一些缺陷,因为基准程序的性能可能与某一小段的短代码密切相关,而硬件系统设计人员或编译器开发者可能会针对这些代码片段进行特殊的优化,使得执行这段代码的速度非常快,以至于得不到准确的性能评测结果。

2.几个专业术语

1) 系列机。具有基本相同的体系结构,使用相同基本指令系统的多个不同型号的计算机组成的一个产品系列。

2) 兼容。指软件或硬件的通用性,即运行在某个型号的计算机系统中的硬/软件也能应用于另一个型号的计算机系统时,称这两台计算机在硬件或软件上存在兼容性。

3) 固件。将程序固化在ROM 中组成的部件称为固件

固件是一种具有软件特性的硬件,吸收了软件/硬件各自的优点,其执行速度快于软件,灵活性优于硬件,是软/硬件结合的产物。

例如,目前操作系统已实现了部分固化(把软件永恒地存储于ROM 中)。

知识回顾

3.本章小结

本章开头提出的问题的参考答案如下。

1) 计算机由哪几部分组成?以哪部分为中心?

  • 计算机由运算器、控制器、存储器、输入设备及输出设备五大部分构成,现代计算机通常把运算器和控制器集成在一个芯片上,合称中央处理器。
  • 在微处理器面世之前,运算器和控制器分离,而且存储器的容量很小,因此设计成以运算器为中心的结构,其他部件都通过运算器完成信息的传递。
  • 随着微电子技术的发展,同时计算机需要处理、加工的信息量也与日俱增,大量 I/O 设备的速度和 CPU 的速度差距悬殊,因此以运算器为中心的结构不能满足计算机发展的要求。
  • 现代计算机已发展为以存储器为中心,使 I/O 操作尽可能地绕过 CPU,直接在 I/O 设备和存储器之间完成,以提高系统的整体运行效率。

2) 主频高的 CPU 一定比主频低的 CPU 快吗?为什么?

  • 衡量 CPU 运算速度的指标有很多,不能以单独的某个指标来判断 CPU的好坏。
  • CPU 的主频表示 CPU 内数字脉冲信号振荡的速度,主频和实际的运算速度存在一定的关系,但目前还没有一个确定的公式能够定量两者的数值关系,因为 CPU 的运算速度还要看 CPU 的流水线的各方面的性能指标(架构、缓存、指令集、CPU 的位数、Cache 大小等)。
  • 由于主频并不直接代表运算速度,因此在一定情况下很可能会出现主频较高的 CPU 实际运算速度较低的现象。

3) 翻译程序、汇编程序、编译程序、解释程序有什么差别?各自的特性是什么?

见常见问题和易混淆知识点 1。

4) 不同级别的语言编写的程序有什么区别?哪种语言编写的程序能被硬件直接执行?

  • 机器语言和汇编语言与机器指令对应,而高级语言不与指令直接对应,具有较好的可移植性。
  • 其中机器语言编写的程序可以被硬件直接执行。

4.常见问题和易混淆知识点

1.翻译程序、解释程序、汇编程序、编译程序的区别和联系是什么?

翻译程序有两种:

一种是编译程序,它将高级语言源程序一次全部翻译成目标程序,只要源程序不变,就无须重新翻译。

另一种是解释程序,它将源程序的一条语句翻译成对应的机器目标代码,并立即执行,然后翻译下一条源程序语句并执行,直至所有源程序语句全部被翻译并执行完。

所以解释程序的执行过程是翻译一句执行一句,并且不会生成目标程序。

汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译为机器语言程序。

编译程序与汇编程序的区别:若源语言是诸如C、C++、Java 等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言",则这样的一个翻译程序称为编译程序。

若源语言是汇编语言,而目标语言是机器语言,则这样的一个翻译程序称为汇编程序。
 

2.什么是透明性?透明是指什么都能看见吗?

在计算机领域中,站在某类用户的角度,若感觉不到某个事物或属性的存在,即“看”不到某个事物或属性,则称为“对该用户而言,某个事物或属性是透明的”。

这与日常生活中的“透明”概念(公开、看得见)正好相反。

例如,对于高级语言程序员来说,浮点数格式、乘法指令等这些指令的格式、数据如何在运算器中运算等都是透明的;

而对于机器语言或汇编语言程序员来说,指令的格式、机器结构、数据格式等则不是透明的。

在 CPU 中,IR、MAR 和 MDR 对各类程序员都是透明的。

3.字、字长、机器字长、指令字长、存储字长的区别和联系是什么?

字长是指 CPU 内部用于整数运算的数据通路的宽度,因此字长等于 CPU 内部用于整数运算的运算器位数和通用寄存器宽度,它反映了计算机处理信息的能力。

字和字长的概念不同。字用来表示被处理信息的单位,用来度量数据类型的宽度,如x86 机器中将一个字定义为 16 位。

指令字长:一个指令字中包含的二进制代码的位数。

存储字长:一个存储单元存储的二进制代码的位数。

它们都必须是字节的整数倍。

指令字长一般取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要2个访存周期来取出一条指令;

若指令字长等于存储字长,则取指令周期等于机器周期。

早期的存储字长一般与指令字长、字长相等,因此访问一次主存储器便可取出一条指令或一个数据。

随着计算机的发展,指令字长、字长都可变,但必须都是字节的整数倍

4.计算机体系结构和计算机组成的区别和联系是什么?

计算机体系结构是指机器语言或汇编语言程序员所看得到的传统机器的属性,包括指令集、数据类型、存储器寻址技术等,大都属于抽象的属性。

计算机组成是指如何实现计算机体系结构所体现的属性,它包含许多对程序员来说透明的硬件细节。

例如,指令系统属于结构的问题,但指令的实现即如何取指令、分析指令、取操作数、如何运算等都属于组成的问题。

因此,当两台机器的指令系统相同时,只能认为它们具有相同的结构,至于这两台机器如何实现其指令,则完全可以不同,即可以认为它们的组成方式是不同的。

例如,一台机器是否具备乘法指令是一个结构的问题,但实现乘法指令采用什么方式则是一个组成的问题。

许多计算机厂商提供一系列体系结构相同的计算机,而它们的组成却有相当大的差别,即使是同一系列的不同型号机器,其性能和价格差异也很大。
 

5.基准程序执行得越快说明机器的性能越好吗?

一般情况下,基准测试程序能够反映机器性能的好坏。但是,由于基准程序中的语句存在频度的差异,因此运行结果并不能完全说明问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/698373.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

任务3.8.1 利用RDD实现词频统计

实战:利用RDD实现词频统计 目标 使用Apache Spark的RDD(弹性分布式数据集)模块实现一个词频统计程序。 环境准备 选择实现方式 确定使用Spark RDD进行词频统计。 Spark版本与Scala版本匹配 选择Spark 3.1.3与Scala 2.12.15以匹配现有Spar…

使用seq2seq架构实现英译法

seq2seq介绍 模型架构: Seq2Seq(Sequence-to-Sequence)模型是一种在自然语言处理(NLP)中广泛应用的架构,其核心思想是将一个序列作为输入,并输出另一个序列。这种模型特别适用于机器翻译、聊天…

定个小目标之刷LeetCode热题(11)

这是道简单题,只想到了暴力解法,就是用集合存储起来,然后找出其中的众数,看了一下题解,发现有多种解法,我觉得Boyer-Moore 投票算法是最优解,看了官方对这个算法的解释,我是这样理解…

每天一个数据分析题(三百五十九)- 多维分析模型

图中是某公司记录销售情况相关的表建立好的多维分析模型,请根据模型回答以下问题: 2)产品表左连接品牌表的对应关系属于? A. 一对多 B. 一对一 C. 多对一 D. 多对多 数据分析认证考试介绍:点击进入 题目来源于CD…

高光谱成像光源 实现对细微色差的分类--51camera

光源在机器视觉中的重要性不容小觑,它直接影响到图像的质量,进而影响整个系统的性能。然而自然光LED光源不能完全满足实际需求,比如对细微的色差进行分类,我们就需要考虑红外高光谱光源。 所谓高光谱成像,是指使用具有…

实现思路:Vue 子组件高度不固定下实现瀑布流布局

实现思路:Vue 子组件高度不固定下实现瀑布流布局 一、瀑布流布局基础实现原理 在深入解说不定高度子组件的瀑布流如何实现之前,先大体说一下子组件高度固定已知的这种实现原理: 有一个已知组件高度的数组。定义好这个瀑布流的列数&#xff…

【回调函数】

1.回调函数是什么? 回调函数就是⼀个通过函数指针调用的函数。 如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被用来调用其所指向的函数 时,被调用的函数就是回调函数。回调函数不是由该函数的实现方…

linux的持续性学习

安装php 第一步:配置yum源 第二步:下载php。 yum install php php-gd php-fpm php-mysql -y 第三步:启动php。 systemctl start php-fpm 第四步:检查php是否启动 lsof -i :9000 计划任务 作用&am…

问题:下列关于信息的说法,错误的是( )。 #媒体#知识分享#学习方法

问题:下列关于信息的说法,错误的是( )。 A. 信息无时不在,无时不有 B. 信息随着时间的推移,效用会越来越小 C. 信息具有可处理性 D. 信息是同一时刻只能被单方使用 参考答案如图所示

pnpm : 无法加载文件 C:\Users\xxxxx\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本。

vscode中执行pnpm install的时候,直接报了上面的错误。 解决: 然后输入:set-ExecutionPolicy RemoteSigned,按回车,然后根据提示,我们选A。 然后回车。 这样我们再次回到vscode中的我们就会发现可以了。 …

C++:SLT容器-->stack

C:SLT容器--&#xff1e;stack 1. stack容器2. stack 常用接口 1. stack容器 先进后出&#xff0c;后进先出不允许有遍历行为可以判断容器是否为空可以返回元素的个数 2. stack 常用接口 构造函数 stack<T> stk; // stack采用模板类实现&#xff0c;stack对象的默认构造形…

认识Spring 中的BeanPostProcessor

关于BeanPostProcessor和BeanFactoryPostProcessors&#xff0c;将分2篇文章来写&#xff0c;这篇文章是对Spring 中BeanPostProcessor进行了总结 先看下大模型对这个类的介绍&#xff0c;随后再看下这两个类的示例&#xff0c;最后看下这两个类的实现。 这两个类从名字看都很类…

三丰云免费服务器

云网址&#xff1a; https://www.sanfengyun.com 可申请免费云服务器&#xff0c;1核/1G内存/5M宽带/有公网IP/10G SSD硬盘/免备案。 收费云服务器&#xff0c;买2年送1年&#xff0c;有很多优惠

MAVEN架构项目管理工具(下)

1、maven工程约定目录结构 每一个maven在磁盘中都是一个文件夹&#xff08;即项目&#xff0c;以hello项目为例&#xff09; Hello/---/src------/main #放置主程序Java代码和配置文件-----------/java #程序的包和包中的文件-----------/resource #java程…

敏捷风险管理:识别和应对项目威胁与机会

项目风险是一种不确定的事件或条件&#xff0c;一旦发生&#xff0c;就会对项目目标造成积极或消极的影响。 现实中&#xff0c;风险可能是微妙而复杂的&#xff0c;缺少经验的人很难对其进行识别和管理。 敏捷风险管理是敏捷项目治理的基础。在敏捷环境下&#xff0c;敏捷风险…

Spring Boot 项目启动时在 prepareContext 阶段做了哪些事?

概览 如果你对Spring Boot 启动流程还不甚了解&#xff0c;可阅读《Spring Boot 启动流程详解》这篇文章。如果你已了解&#xff0c;那就让我们直接看看prepareContext() 源码。 private void prepareContext(ConfigurableApplicationContext context, ConfigurableEnvironme…

Knife4j 全局鉴权需求 (在OpenAPI3规范中添加Authorization鉴权请求Header)

文章目录 引言I Knife4j 全局鉴权需求1.1 利用springdoc项目提供的customizer接口解决1.2 常见问题II 添加自定义Header参数(签名字段)see also引言 OpenAPI3规范对于Security的定义说明,主要分为两部分: 在compoents组件下定义Security的鉴权方案类型在接口级别的Operati…

工业机器人远程运维,增强智慧工厂运营管理

1、需求背景 随着工业自动化技术的普及和工业机器人应用的增加&#xff0c;制造业对于生产线稳定性和效率的要求不断提高。然而&#xff0c;传统的现场监控方式存在着地理位置限制、实时监控难度大以及诊断能力有限等问题&#xff0c;迫切需要一种更具灵活性和效率的监控方式。…

这可能是最清晰易懂的 G1 GC 资料

滑动验证页面 概述 G1 (Garbage-First) 于JDK 6u14版本发布&#xff0c;JDK 7u4版本发行时被正式推出&#xff0c;在JDK9时已经成了默认的垃圾回收器&#xff0c;算是CMS回收器的替代 方案&#xff08;CMS在JDK9以后已经废弃&#xff09; G1是一款分代的 (generational)&a…

AI漫画赛道,10分钟快速赚钱秘诀!

AI百宝箱-Chatgpt4.0、Midjourney绘画、人工智能绘画、AI换脸、AI图片放大、AI图片分析、AI图片融合https://h5.cxyhub.com/?invitationhmeEo7 先使用ChatGPT写小说 ComicAI 漫画小说生成网站 1. 创建小说漫画 2. 故事模板 3. 生成角色形…