概述
今天是9月28日,距离软考高级只剩37天,加油!
概念
三种周期:
- Clock Cycle:时钟周期,CPU主频,又称为时钟频率,时钟周期是时钟频率的倒数
- Instruction Cycle:指令周期,取出并执行一条指令的时间
- BUS Cycle:总线周期,也就是一个访存储器或I/O端口粮作所用的时间
三者关系:一个指令周期由若干个总线周期组成,一个总线周期时间又包含有若干个时钟周期。
主频为1GHz,则说明1秒钟有1G个时钟周期,每个时钟周期为1000*1000*1000/1G=1ns
。
吞吐率
吞吐率指的是单位时间内完成的任务数,常用表示方式有MIPS和MFLOPS:
- MIPS:Million Instructions Per Second,每秒处理的百万级的机器语言指令数,主要用于衡量标量机性能
- MFLOPS:Million Floating-point Operations Per Second,每秒百万个浮点操作,不能反映整体情况,只能反映浮点运算情况,主要用于衡量向量机性能。
完成一个指令需要5个机器周期,一个机器周期为3微秒(µs),则MIPS=1/15=0.067
。
1秒=1000毫秒(ms)=1000000微秒(µs)=1000000000纳秒(ns)
编码及浮点数
原码、反码、补码
原码:为二进制的数,如十进制数字10的原码为0000 1010
反码:正数与原码相同,如:十进制数字10的反码0000 1010
,负数为原码0变1,1变0,符号位不变。如:十进制数字-10
,原码1000 1010
,反码1111 0101
补码:正数的补码与原码相同,如10的补码为:0000 1010
。负数的反码为补码减1,如-10
的反码:1111 0101
,补码:1111 0110
计算机中数字以补码储存,因为原码和反码计算不准确,而补码是准确的,补码可以直接处理正负数的加减。
浮点数
科学计数法:N=尾数*基数(的指数)
- 浮点数各部分表示意义:
N = 尾数*基数指数
- 一般尾数用补码,阶码用移码;
- 阶码的位数决定数的表示范围,位数越多范围越大;
- 尾数的位数决定数的有效精度,位数越多精度越高。
浮点数所能表示的数值范围如下:最大的正数
- 浮点数运算规则:
对阶 > 尾数计算 > 结果格式化
- 对阶时,小数向大数看齐;
- 对阶是通过较小数的尾数右移实现的。
流水线
流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
流水线的思想:在CPU中把一条指令的串行执行过程变为若干指令的子过程在CPU中重叠执行。
并行包括同时性与并发性两种含义,同时性指两个或两个以上的事件在同一时刻发生,并发性指的是两个或两个以上的事件在同一时间间隔发生。
流水线建立时间:1条指令执行时间。
流水线周期:执行时间最长的一段
一条指令的执行过程可以分3个阶段:
- 取指:按照指令计数器的内容访问主存储器,取出一条指令送到指令寄存器。
- 分析:对指令操作码部分进行译码,按照给定的寻址方式和地址字段中的内容形成操作数地址,并用这个地址读取操作数。
- 执行:把运算结果写到通用寄存器或主存中。
顺序执行的过程:取址 -> 分析 -> 执行
使用流水线执行过程:
相关考点:
流水线执行时间(理论公式):(t1+t2+..+tk)+(n-1)*∆t
流水线执行时间(实践公式):k*∆t+(n-1)*∆t
流水线吞吐率:吞吐率TP=指令数/执行时间
流水线最大吞吐率:
流水线加速比:顺序执行时间/流水线执行时间
开机过程
BIOS引导程序是固化在ROM芯片上的,每当开机时自动执行BIOS引导程序。主要执行如下任务:
- 标识和配置所有的即插即用设备。如果系统有即插即用设备的BIOS,系统将搜索和测试所有安装的即插即用设备,并为它们分配DMA通道、IRQ及它们需要的其他设备
- 完成加电自检(POST)。加电自检主要检测和测试内存、端口、键盘、视频适配器、磁盘驱动器等基本设备。有一些新版本的系统还支持CD-ROM驱动器
- 对引导驱动器可引导分区定位。在CMOS中,用户可以设置系统的引导顺序,以便对引导驱动器的可引导分区重新定位。大多数系统的引导顺序是软件驱动,然后是硬件驱动,其次是CD-ROM驱动器
- 加载主引导记录及引导驱动器的分区表,执行主引导记录MBR。主引导记录在硬盘上找到可引导分区后,将其分区引导记录装入内存,并将控制权交给分区引导记录。由分区引导记录定位根目录,再装入操作系统。
Cache
Cache的功能全部由硬件实现。提高CPU数据输入输出的速率,突破冯·诺依曼瓶颈,即CPU与存储系统间数据传送带宽限制。在计算机的存储系统体系中,Cache是访问速度最快的层次。使用Cache改善系统性能的依据是程序的局部性原理。
- 时间局部性:如果一个信息项正在被访问,那么在近期很可能还会被再次访问。程序的循环,堆栈等是产生时间局部性的原因;
- 空间局部性:指一旦程序访问某个存储单元,不久以后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围内,其典型情况是程序顺序执行。
工作集理论:工作集是进程运行时被频繁访问的页面合集
工作原理:依据局部性原理,把主存储器中访问概率高的内容存放在cache中。当CPU需要读取数据时,首先在cache中查找是否有所需内容,如果有,则直接从cache中读取;若没有,再从主存中读取该数据,然后同时送往CPU和cache。
如果CPU需要访问的内容大多能在cache中找到(访问命中),则可以大大提高系统性能。CPU发出访存请求后,存储器地址先被送到cache控制器以确定所需数据是否已在cache中,若命中则直接对cache进行访问,该过程称为cache的地址映射。常见的映射方法有直接映射、相联映射和组相联映射:
- 直接相联映像:Direct Mapping,硬件电路较简单,但冲突率很高
- 全相联映像:Fully Associative Mapping,电路难于设计和实现,只适用于小容量的cache,冲突率较低
- 组相联映像:n路组相联映射,N-ways Set-Associative Mapping,直接相联与全相联的折中
Cache中数据装满后必须淘汰现有数据,装入新数据,淘汰算法有:随机淘汰法、先进先出法FIFO、近期最少使用淘汰法LRU。LRU平均命中率最高。
Cache写数据常用方法包含以下几类:
- 写直达:当要写cache时,数据同时写回主存储器,也称写通、贯穿
- 写回:CPU修改cache的某一行后,相应数据不立即写入主存,而在该行被从cache中淘汰时,才把数据写回主存储器中。
- 标记法:对cache中的每个数据设置一个有效位。当数据进入cache后,有效位置1,当CPU要对该数据进行修改时,只需将其写入主存储器,并将该位清0。当要从cache中读取数据时,需要测试其有效位:若为1则从cache中取,否则从主存中取。
校验码
校验码通常是一组数字的最后一位,由前面的数字通过某种运算得出,用以检验该组数字的正确性。
常见的校验码有:中华人民共和国居民身份证的最后一位、ISBN号码的最后一位、组织机构代码的最后一位、数据传输的正确性验证码等。
代码作为数据在向计算机或其它设备进行输入时,容易产生输入错误,为减少输入错误,编码专家发明各种校验检错方法,并依据这些方法设置校验码。
奇偶校验:只检奇数位错,不能纠错。
循环校验码CRC:可查错,不可纠错,运用模二除法计算校验码。
海明校验:可查错,可纠错;海明校验码校验位计算:2r>=r+m-1
。
性能评估
性能指标
计算机系统的性能一般包括两个大的方面:
- 可用性,也就是计算机系统能正常工作的时间,其指标可以是能够持续工作的时间长度,也可以是在一段时间内,能正常工作的时间所占的百分比
- 处理能力,可分为三类指标:吞吐率、响应时间、资源利用率,即在给定时间区间中,各种部件被使用的时间与整个时间之比。
通常,计算机系统的可用性可从故障率(Failurerate)、健壮性(Robustness)和可恢复性(Recoverability)三个方面来进行评测:
- 故障率是指在给定的时间里,系统故障和维护事件出现的次数
- 健壮性是指系统检测和处理故障的能力,以及系统在各种故障情况下仍然具有的工作能力
- 可恢复性是指系统从故障状态恢复到正常状态的能力。
计算机应用系统的可移植性对推广应用来说是重要的,但对于使用单一系统的多数用户而言,可用性指标主要包括故障率、健壮性和可恢复性。
另外,不同计算机(系统、模块)的性能指标也是不尽相同,重在理解:
- 计算机:时钟频率(主频)、高速缓存、运算速度、运算精度、内存的存储容量、存储器的存取周期、数据处理速率、响应时间、RASIS特性、平均故障响应时间、兼容性
- 网络:设备级、网络级、应用级、用户级、吞吐量
- 操作系统:系统的可靠性、系统的吞吐量、系统响应时间、系统资源利用率、可移植性
- 数据库:数据库描述功能、管理功能、查询和操纵功能、维护功能、
- web服务器:括最大并发连接数、响应延迟、吞吐量(每秒处理的请求数)、成功请求数、失败请求数、每秒点击次数、每秒成功点击次数、每秒失败点击次数、尝试连接数、用户连接
性能评估
计算机性能评估(评价)方法基本上分为两大类,测量方法和模型方法
- 测量方法:通过一定的测量设备或测量程序,可以直接从系统中测得各项性能指标或与之密切的相关度量,然后由它们经过一些简单的运算,求出相应的性能指标。
- 模型方法:其基本思想是,首先对要评估的系统建立适当模型,然后求出模型的性能指标,以便对系统进行性能评估。
测量方法中经典的性能评估方法:
- 时钟频率法:计算机的时钟频率在一定程度上反映机器速度,对于同一种机型的计算机,时钟频率越高,计算机的速度就越快,但是不同体系结构的计算机,相同频率下,其速度和性能可能会差别很大。
- 指令执行速度法:计算机发展中,由于加法的指令速度大体上可反映出乘法、除法等其他算术运算的速度,而逻辑运算、转移指令等简单指令的执行时间往往设计成与加法指令相同,因此可以采用加法指令的运算速度来衡量计算机的速度。常用MIPS评估系统性能。
- 等效指令速度法:也称为吉普森或混合比例计算法,是通过各类指令在程序中所占比例进行计算后得到的计算机运算速度。需要计算各类指令在程序中所占的比例。
- 数据处理速率法:Processing Data Rate,PDR,采用计算PDR值的方法来衡量机器性能,PDR值越大,机器性能越好。PDR与每条指令和每个操作数的平均位数以及每条指令的平均运算速度有关。PDR主要对CPU和主存储器的速度进行度量,不适合衡量机器的整体速度,不能全面反映计算机的性能,因为它没有涉及Cache、多功能部件等技术对性能的影响。
- 综合理论性能法:CPT,该方法是首先计算出处理部件每个计算单元的有效计算率,再按不同字长加以调整,得出该计算单元的理论性能,所有组成该处理部件的计算单元的理论性能之和即为最终的计算机性能。采用每秒百万次理论运算(MTOPS)评估系统性能。
- 基准程序法:把应用程序中用得最多、最频繁的那部分核心程序作为评估计算机系统性能的标准程序,称为基准测试程序(benchmark)。基准程序法是目前一致承认的测试系统性能的较好方法。考虑诸如IVO结构、操作系统、编译程序的效率对系统性能的影响,
另有一说,对计算机系统的性能进行评价的方法主要有三种:
- 测量方法:主要是通过采用各种性能数据获取方法和运行各种不同类型的基准测试程序或工具来测量目标系统的性能情况
- 分析方法:通过为计算机系统建立一种数学模型,进而在给定输入条件下通过计算来获取目标系统的性能情况
- 模拟方法:通过构造系统模型和工作负载模型来近似模仿目标系统,以了解系统的特性
基准程序法
大多数情况下,为测试新系统的性能,用户必须依靠评价程序来评价机器的性能。把应用程序用的最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序(benchmark)。
真实程序、核心程序、小型基准程序和合成基准程序,其评测的准确程度依次递减。
事务处理性能委员会(Transaction Processing Performance Council,TPC)是制定商务应用基准程序标准规范、性能和价格度量,并管理测试结果发布的非营利组织,其发布的TPC-C是在线事务处理的基准程序,TPC-D是决策支持的基准程序。
Web服务器性能指标主要有请求响应时间、事务响应时间、并发用户数、吞吐量、资源利用率、每秒钟系统能够处理的交易或者事务的数量等。
基准程序法主要针对CPU(有时包括主存)的性能,通常也会考虑I/O结构、操作系统、编译程序的效率等对系统性能的影响。
计算机系统的性能指标是一些精度较高的数据,用户调查问卷或专家小组法只能取得一些大致的、轮廓性的数据。多数用户并没有使用多种计算机系统,难以进行比较,所以计算机系统性能指标的评价一般不通过用户调查法来确定。
阿姆达尔定律
Gene Amdahl定律:提升一个系统的一个部分的性能对整个系统有多大影响。这里的系统,可指计算机系统或别的什么系统。
当提升系统的一部分性能时,对整个系统性能的影响取决于:
- 这一部分有多重要
- 这一部分性能提升多少
计算方法:
参考