首页 > 其他分享 >性能的测量(COD Section 1.6)

性能的测量(COD Section 1.6)

时间:2023-10-15 23:15:25浏览次数:29  
标签:CPI 1.6 性能 CPU 指令 时间 COD Section 时钟

Performance Evaluation 性能的测量

性能的评价是具有挑战性的。本节将介绍性能评价的不同方法,然后从计算机用户和设计者的角度描述性能的度量标准,最后分析它们之间的联系,并提出经典的处理器性能公式。

1. 性能的定义

个人计算机用户对降低**响应时间 (response time) **感兴趣:它代表开始一个任务到该任务完成需要的总时间,包括硬盘访问、内存访问、I/O 活动、操作系统开销和 CPU 执行时间。

数据中心的管理者通常对 吞吐率/带宽 (band width) 感兴趣——在给定时间内完成的任务数量。因此,在大多数时候,我们需要对个人移动设备采用不同的应用程序作为评测基准,并采用不同的性能度量标准。

如果考虑响应时间,那么就有 \(性能=\frac{1}{执行时间}\)。

2. 性能的度量

尽管我们都知道时间是度量计算机性能的标准,但其实它可以用不同的方式来定义,这取决于我们所计数的内容。如果在一个处理器同时运行多个程序的情况下,系统可能更侧重于优化吞吐率,而不是致力于将单个程序的执行时间变得最短。因此,我们需要区分运行自己任务的时间和一般的运行时间,于是就有 CPU 执行时间 来加以区分,只表示 CPU 上运行的时间,不包括等待 I/O 占用的时间。还可以分为用于用户程序的时间和操作系统为其执行相关任务花去的时间,分别称为 用户 CPU 时间和系统 CPU 时间

几乎所有的计算机构建都需要时钟,它确定各类事件在硬件中何时发生。这些离散时间间隔被称为 时钟周期数

3. CPU 性能及其度量因素

一个最简单的公式可以帮我们考虑 CPU 时间:

\[\text{CPU}\ 执行时间=\frac{\text{CPU}\ 时钟周期数}{时钟频率} \]

这个公式表明,我们可以通过执行所需的 CPU 时钟周期数或缩短时钟周期长度来改进性能。

4. 指令性能

上述性能公式并没有设计指令的数量,但其实我们清楚,执行时间必然依赖于程序中的指令数。一个简单的想法能帮我们改写 CPU 执行时间:

\[CPU\ 时钟周期数=程序指令数\cdot指令平均时钟周期数 \]

后者简称为 CPI,可以帮我们在相同指令系统下比较性能。

5. 经典的 CPU 性能公式

根据上面的内容,可以方便地写出:

\[CPU\ 时间=指令数\cdot CPI\cdot 时钟周期长度 \]

\[CPU\ 时间=\frac{指令数\cdot CPI}{时钟频率} \]

如果确定这些因素的值呢?我们可以通过运行程序来测量 CPU 的执行时间,并且说明书中通常有时钟周期长度,难以测量的是指令数和 CPI。当然,如果确定了时钟频率和 CPU 执行之间,我们只需要知道指令数和 CPI 中其中之一就能算出另一个了。

指令数可以通过体系结构仿真器来获取,而大多数处理器中的硬件计数器也可以用来测量执行的指令数、平均 CPI 等信息。另外, 指令数量完全取决于计算机体系结构,因而即便我们不知道具体实现,也可以测量指令数。但是 CPI,其实和计算机的各种细节都是息息相关的。

须知,只有一种因素去评价性能是危险的,必须考虑全部三个因素才能确定执行时间。如果某个因素相同,则需要考虑不同的因素。

参考资料

计算机组成与设计(硬件/软件接口)1.6 性能

标签:CPI,1.6,性能,CPU,指令,时间,COD,Section,时钟
From: https://www.cnblogs.com/lixingyang/p/17766413.html

相关文章

  • LeetCode59. 螺旋矩阵Ⅱ
    题目描述给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的nxn正方形矩阵matrix。示例提交的代码classSolution{intmatrixLen=0;publicint[][]generateMatrix(intn){ //初始化空数组int[][]matrix=newint[n][......
  • Educational Codeforces Round 91 (Rated for Div. 2) A. Three Indices
    给一个\(n\)个整数的排列\(p_1,p_2,\cdots,p_n\),需要找到三个数\(i,j,k\)满足:\(1\leqi<j<k\leqn\)\(p_i<p_j\),\(p_j<p_k\)否则回答不可能。\(key\):若存在上述\(i,j,k\),则存在\(x\)满足\(p_{x-1}<p_{x},p_{x}>p_{x+1......
  • * Codeforces Round 665 (Div. 2) A. Distance and Axis
    有一个点\(A\)在\(OX\)正坐标轴上的\(x\)坐标为\(n\)。需要找到一个点\(B\),使得\(||OB|-|AB||=k\)。现在给出非负整数\(n\)\(k\),你可以执行任意次以下操作:每步操作可以使\(A\)的坐标加一或减一。询问最少需要进过多少次操作使\(B\)可以存在。先假设出......
  • VSCode 配置C++环境
    MinGW肯定要装的。复制json这篇就够了,但终端会闪掉:VsCode安装和配置c/c++环境(超完整,小白专用)_vscodec++环境-CSDN博客这篇文章配终端:VSCode中C/CPP的完美配置(完成环境搭建、解决终端自动闪退、解决无法调试)-知乎(zhihu.com)......
  • cygwin works with vs code
    Incasesomeonestumblesonthisthread.ThereisabuginCygwin'sgdb(v11.x-v12.x)thatpreventsVSCodefromstoppingatbreakpoints.Atthemomentrollingbackgdbtov9.xseemstosolvetheissue.Currently,thegcc/g++versionisgcc(GCC)1......
  • 模拟集成电路设计系列博客——2.4.2 全差分折叠Cascode放大器
    2.4.2全差分折叠Cascode放大器下图展示了一个简化的全差分折叠Cascode放大器。使用两个Cascode电流源来取代之前介绍的结构中的n沟道电流镜,并增加了一个共模反馈电路。这些电流源的驱动晶体管的栅压由共模反馈电路的输出电压\(V_{cntrl}\)决定。共模反馈电路的输入是全差分放大......
  • leetcode2845. 统计趣味子数组的数目
    题解classSolution{public:longlongcountInterestingSubarrays(vector<int>&nums,intmodulo,intk){inta[100010];unordered_map<int,int>mp;mp[0]=1;longlongans=0;intpre=0;......
  • LeetCode Day04 24&19&02.07&142
    24. 两两交换链表中的节点这题使用虚拟头结点会更好做,因为有虚拟头结点我们交换结点的时候步骤会更加清晰。操作此类有指针类型的题目要注意:1.画图避免混乱2.注意指针先后顺序classSolution{publicListNodeswapPairs(ListNodehead){ListNodedumyhea......
  • Media Encoder 2022「视频与音频编码工具」免激活直装汉化版下载
    MediaEncoder是由Adobe公司开发的一款专业的视频和音频转码工具,可以将几乎所有格式的媒体文件转换为其他格式而无需重新导出视频或音频剪辑。 软件地址:看置顶贴AdobeMediaEncoderCC2022怎么使用对文件进行编码时,AdobeMediaEncoder中有五个主面板可供使用。您可以将面板作......
  • AtCoder Beginner Contest 324
    D-SquarePermutation须知:最大的平方数的平方一定小于等于10n,平方数最多为10(n/2)(因为再大会越界)因为要求的数一定是原数的排列组合,所以它们的元素和对应的元素个数一定相同所以只要判断平方数的字符串是否与原字符串相等即可(这里可以利用排序判断)点击查看代码#include<bi......