《计算机组成原理》学习笔记:第四章

本文探讨了如何测量和评估计算机性能,重点关注硬件性能对系统整体性能的影响。介绍了吞吐量、响应时间和CPU时间等性能指标,并讨论了如何通过CPI(每条指令的平均时钟周期数)来衡量CPU性能。此外,还阐述了性能测量的挑战,如多任务环境下响应时间和吞吐率的关系,以及如何通过基准程序来评估系统性能。
摘要由CSDN通过智能技术生成

第四章:评估和理解性能

4.1概述

本章将讨论如何对计算机中的性能进行测量、报告与归纳,并描述决定计算机性能的一些主要因素。一个完整的计算机系统是由硬件系统和软件系统所构成的整体,而硬件性能的好坏对于整个计算机系统的性能来说,则起着非常关键的作用,这也是进行性能检测的主要原因。本章中的对数内容很重要,特别是本节和下一节。

对计算机系统的性能进行评估是一件非常有挑战性的事情。在如今的计算机系统中,软件的规模越来越大,复杂度越来越高,而硬件方面则采用了大量精心设计的、意在提高系统性能的新技术,因此对计算机系统的性能评估也变得越来越困难。事实上,不同类型应用程序的运行效果只能反映处不同的性能指标,而只有综合所有这些不同的性能指标,才有可能对计算机系统的整体性能做出恰当的评价。

在本章中,我们希望能弄清楚为什么某个软件会有这样的运行效果。为什么采用某个指令集会获得比采用另一个指令集更好的性能,各种硬件特性又是如何影响系统性能的,等等。为此,我们有必要弄清楚决定计算机性能到底有哪些主要因素。例如,为了提高软件系统的性能,我们需要知道哪些硬件因素对系统整体性能的影响较大,以及相对重要性如何。这样的因素有很多,如程序是否充分利用了机器指令集的特点,底层的硬件是否很好地实现了该指令集,以及内存、I/O系统是否具有较好的性能等等。只有弄清楚这些因素是如何影响系统的性能的,我们才能搞清楚,对机器的各个部分进行的各种特殊设计究竟是出于何种考虑。这一点非常重要,我们将在下面的章节中进行介绍。4.2节从计算机用户以及计算机设计人员两个角度除法,列出对计算机进行评价时用到的一些性能指标。同时,我们将说明这些性能指标之间的相互关系,并给出惊呆的处理器性能公式(在以后的各章中,我们将多次用到这个性能公式)。4.3和4.4就选择基准程序来评估计算机的性能优势进行分析,并说明如何根据一组基准程序的运行情况总结并量化处系统的整体性能指标。

4.1.1性能的概述

1.吞吐量与响应时间

(1)用更快的处理器来替换原来的处理器

(2)有些计算机中装有多个处理器,并且不同的处理器处理不同的任务。

缩短响应时间通常也意味着提高吞吐率。因此,在第一种情况下,响应时间和吞吐率都能得到一定程度的改善。而在第二种情况下,单个任务的处理速度并不会加快,只有吞吐率得到了提高。不过,如果第二种情况中请求处理的数量超过了系统的吞吐能力的话,这些请求就不得不在系统中排队等候处理。在这种情况下,提高系统吞吐率的同时,由于请求在队列中等待的时间减少了,响应时间也会相应地有所改善。因此,在许多实际的计算机系统中,执行时间与吞吐率的变化常常是相互影响的。

在讨论计算机的性能时,我们在前几章中主要将考虑响应时间。要最大限度地提高系统的性能,就要尽可能地缩短任务的响应时间(即执行时间)。对于某台计算机X而言,我们可以用程序的执行时间(execution time)来表示机器的性能(performance):

4.1.2性能测量

对计算机的性能进行比较时,最基本的标准就是时间标准:完成同样的工作量所需时间最短的那台计算机就是最快的。程序的执行时间可以用运行一个程序需时多少秒来表示。不过,程序的运行时间也有不同的定义方法,它取决于我们关注哪些方面。最直观的一种定义就是响应时间(response time 或 elapsed time)。响应时间指的是完成一个任务所需要的时间的总和,包括磁盘存取时间、内存存取时间、输入输出(I/O)操作所需的时间,以及操作系统为运行这个程序而必不可少的时间开销等。不过计算机通常是以分时的方式运行的;也就是说,一台处理机有可能同时执行多个程序。在这种情况下,操作系统可能更侧重于优化系统的整体吞吐率,而不是设法最小化某个特定程序的执行时间。因此,我们常常需要将总的执行时间与系统真正用在运行我们的程序上的时间区分开来。为此,我们引入CPU执行时间(简称CPU时间)的概念,用来表示CPU真正花费在我们的程序上的时间。CPU时间不包括因为等待I/O操作完成而花去的时间,也不包括CPU执行其他程序所花费的时间。我们还可以将CPU时间进一步划分为两部分:第一部分是用来运行用户程序代码的时间,称为用户CPU时间;第二部分是为了执行用户程序而不得不运行一些操作系统代码时所花费的时间,称为系统CPU时间。

我们将使用系统性能一词来表示系统在没有其他负载的情况下的响应时间,而使用CPU性能一词来表示用户CPU时间。

4.2CPU的性能和影响因素

用户与硬件设计人员衡量系统性能的指标通常是不一样的。若能给出这些指标之间的关系,在设计方案发生变化时,就可以确定由此带来的用户可见的性能变化。到目前为止,我们考虑的主要是CPU的性能,而在CPU性能的各种评价指标中,最重要的则是CPU执行时间。下面这个简单的公式就与这个最基本的性能指标——CPU时间(包括时钟周期的长度和时钟周期数)有关:

 CPI:每条指令的平均时钟周期数,简称CPI。

CPU时间=指令数 x CPI x 时钟周期

 

那么在,怎样才能得到性能评估等式中各个参数值呢?只要运行测试程序,我们就可以得到程序的CPU执行时间,而机器时钟周期的长度通常都可以从随机附带的文档中找到。至于指令数以及CPI则要困难一些。当然了,有了机器的时钟频率和CPU执行时间以后,我们只需知道指令数与CPI中的任何一个,就可以求出另一个来。

我们可以利用某些记录程序执行过程的软件工具,或者运行与被评测机器相对应的仿真程序,从而得到程序运行时执行的指令的总条数。而有的处理器中设置了一些硬件计数器,用来记录包括所执行的指令条数在内的各种运行参数。对于这类机器而言,我们就可以通过这些应该能计数器得到程序执行的指令条数、平均CPI以及性能损失的来源。由于指令条数取决于这令集系统结构,而与该指令集的具体实现方式无关,因此我们在测量程序指令的指令条数时无需了解相应设计是爱你方式的具体细节。不过,CPI却与机器的许多设计细节密切相关,包括存储器系统和处理器的结构,以及应用程序所包含的各类指令的组成情况等。因此,不同的应用程序有不同的CPI,同一指令集的不同实现方式也会带来不同的CPI。系统设计员们通常是通过细致的仿真实验,或者是在处理器可操作时的硬件计数器上测定CPI的。我们也可以根据程序中的各类指令以及它们各自所需的时钟周期数来求出平均的执行周期数。在这种情况下,我们可以使用如下公式: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值