参考软考高级之系统架构师之计算机硬件基础,本文汇总整理既往历年软考高级系统架构师考试中出现的计算机软件基础知识点。
软件和硬件的区分,有些地方可能不精确,请见谅。
概念
三种周期:
- Clock Cycle:时钟周期,CPU主频,又称为时钟频率,时钟周期是时钟频率的倒数
- Instruction Cycle:指令周期,取出并执行一条指令的时间
- BUS Cycle:总线周期,也就是一个访存储器或I/O端口粮作所用的时间
三者关系:一个指令周期由若干个总线周期组成,一个总线周期时间又包含有若干个时钟周期。
主频为1GHz,则说明1秒钟有1G个时钟周期,每个时钟周期为1000*1000*1000/1G=1ns。
完成一个指令需要5个机器周期,一个机器周期为3µs(微秒),则MIPS=1/15=0.067。
另外,换算关系式为1秒=1000ms(毫秒)=1000000µs(微秒)=1000000000ns(纳秒)。
MIPS和MFLOPS
吞吐率:指的是单位时间内完成的任务数,常用表示方式有MIPS和MFLOPS:
- MIPS:Million Instructions Per Second,每秒百万次指令数。每秒处理的百万级的机器语言指令数,主要用于衡量标量处理机性能;
- MFLOPS:Million Floating-point Operations Per Second,每秒百万次浮点运算数。不能反映整体情况,只能反映浮点运算情况,主要用于衡量向量处理机性能。
标量和向量:
- scalar:标量,是指一个完全由其大小决定而没有方向的数量,如质量、长度等;
- vector:向量,是指完全由大小和方向确定的量,如速度等。在数学中,向量常用形如 A ( x 1 , x 2 , x 3 ) A(x_1,x_2,x_3) A(x1,x2,x3)的形式来表示。
在标量处理机中,一次处理中涉及的是标量,如处理向量A的分量3d。而在向量处理机中,是将A作为整体来处理,即并行处理 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3。而在标量处理机中只能依次串行处理。可见,向量处理机一次处理的往往是一组数据(向量)。向量机适用于线性规划、傅里叶变换、滤波计算以及矩阵、线性代数、偏微分方程、积分等数学问题的求解,主要解决气象研究与天气预报、航空航天飞行器设计、原子能与核反应研究、地球物理研究、地震分析、大型工程设计,以及社会和经济现象大规模模拟等领域的大型计算问题。
计算机性能的评价通常用峰值性能(peak performance)及持续性能(sustained performance)两个指标。MIPS指标和MFLOPS指标通常是峰值性能指标。峰值性能反映在理想情况下计算机系统可获得的最髙性能,而实际上程序运行时的资源冲突等因素造成计算机系统不能充分发挥最大计算能力。持续性能指标反映的是实际性能。
编码及浮点数
原码、反码、补码
原码:为二进制的数,如十进制数字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=尾数*基数指数- 一般尾数用补码,阶码用移码;
- 阶码的位数决定数的表示范围,位数越多范围越大;
- 尾数的位数决定数的有效精度,位数越多精度越高。
浮点数所能表示的数值范围如下:最大的正数
- 浮点数运算规则:
对阶>尾数计算>结果格式化- 对阶时,小数向大数看齐;
- 对阶是通过较小数的尾数右移实现的。
浮点数在机器中的表示形式如下图所示,若阶码长度(位数)为e,尾数长度为m。

浮点数的精度由尾数部分来确定,范围则取决于阶码的长度,阶码位数e越大,所表示的浮点数值范围越大;尾数位数m越大,所表示的浮点数精度越高。
某浮点数格式如下:7位阶码(包含1个符号位),9位尾数(包含1个符号位)。若阶码用移码、尾数规格化的补码表示,则浮点数所能表示数的范围是()。
解析:
用浮点格式表示数
N
N
N时,形式为:
N
=
2
E
×
F
N=2^E×F
N=2E×F,其中
E
E
E称为阶码,
F
F
F为尾数。如果浮点数的阶码(包括1位阶符)用R位的移码表示,尾数(包括1位数符)用M位的补码表示,则这种浮点数所能表示的数值范围如下,最大的正数
(
1
−
2
−
M
+
1
)
×
2
2
R
−
1
−
1
(1-2^{-M+1})×2^{2^{R-1}-1}
(1−2−M+1)×22R−1−1,最小的负数
−
1
×
2
2
R
−
1
−
1
-1×2^{2^{R-1}-1}
−1×22R−1−1。
流水线
流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
流水线的思想:在CPU中把一条指令的串行执行过程变为若干指令的子过程在CPU中重叠执行。
并行包括同时性与并发性两种含义,同时性指两个或两个以上的事件在同一时刻发生,并发性指的是两个或两个以上的事件在同一时间间隔发生。
流水线建立时间:1条指令执行时间。
流水线周期:执行时间最长的一段
一条指令的执行过程可以分3个阶段:
- 取指:按照指令计数器的内容访问主存储器,取出一条指令送到指令寄存器。
- 分析:对指令操作码部分进行译码,按照给定的寻址方式和地址字段中的内容形成操作数地址,并用这个地址读取操作数。
- 执行:把运算结果写到通用寄存器或主存中。
顺序执行的过程:取址 -> 分析 -> 执行
使用流水线执行过程:

相关考点:
流水线执行时间(理论公式):
(
t
1
+
t
2
+
.
.
.
+
t
k
)
+
(
n
−
1
)
∗
∆
t
(t_1+t_2+...+t_k)+(n-1)*∆t
(t1+t2+...+tk)+(n−1)∗∆t
流水线执行时间(实践公式):
k
∗
∆
t
+
(
n
−
1
)
∗
∆
t
k*∆t+(n-1)*∆t
k∗∆t+(n−1)∗∆t
流水线吞吐率:
T
P
=
指令数
/
执行时间
TP=指令数/执行时间
TP=指令数/执行时间
流水线最大吞吐率:

流水线加速比:顺序执行时间/流水线执行时间。
微程序
计算机系统是一个硬件和软件的综合体,可以把它看作是按功能划分的多级层次结构,如下图所示。这种结构的划分,有利于正确理解计算机系统的工作过程,明确软件、硬件在系统中的地位和作用。

从下到上包括:
- 硬联逻辑级:计算机的内核,由门、触发器等逻辑电路组成。
- 微程序级:微指令集,程序员用微指令编写的微程序一般直接由硬件执行。
- 传统机器级:该机器的指令集,程序员用机器指令编写的程序可以由微程序进行解释。
- 操作系统级。从操作系统的基本功能来看,一方面它要直接管理传统机器中的软硬件资源,另一方面它又是传统机器的延伸。
- 汇编语言级:汇编语言,完成汇编语言翻译的程序称为汇编程序。
- 高级语言级:各种高级语言,通常用编译程序来完成高级语言翻译的工作;
- 应用语言级:为了使计算机满足某种用途而专门设计的,各种面向问题的应用语言。
开机过程
BIOS引导程序是固化在ROM芯片上的,每当开机时自动执行BIOS引导程序。主要执行如下任务:
- 标识和配置所有的即插即用设备。如果系统有即插即用设备的BIOS,系统将搜索和测试所有安装的即插即用设备,并为它们分配DMA通道、IRQ及它们需要的其他设备
- 完成加电自检(POST)。加电自检主要检测内存、端口、键盘、视频适配器、磁盘驱动器等基本设备。有一些新版本的系统还支持CD-ROM驱动器
- 对引导驱动器可引导分区定位。在CMOS中,用户可以设置系统的引导顺序,以便对引导驱动器的可引导分区重新定位。大多数系统的引导顺序是软件驱动,然后是硬件驱动,其次是CD-ROM驱动器
- 加载主引导记录及引导驱动器的分区表,执行主引导记录MBR。主引导记录在硬盘上找到可引导分区后,将其分区引导记录装入内存,并将控制权交给分区引导记录。由分区引导记录定位根目录,再装入操作系统。
校验码
校验码通常是一组数字的最后一位,由前面的数字通过某种运算得出,用以检验该组数字的正确性。
常见的校验码有:中华人民共和国居民身份证的最后一位、ISBN号码的最后一位、组织机构代码的最后一位、数据传输的正确性验证码等。
代码作为数据在向计算机或其它设备进行输入时,容易产生输入错误,为减少输入错误,编码专家发明各种校验检错方法,并依据这些方法设置校验码。
在数据中间加入几个校验码,码距均匀拉大,将数据的每个二进制位分配在几个奇偶校验组里,当某一位出错,会引起几个校验位的值发生变化。
三种校验码:
- 奇偶校验:只检奇数位错,不能纠错;
- CRC:循环校验码,可查错,不可纠错,运用模二除法计算校验码;
- 海明校验:可查错,可纠错;海明校验码校验位计算: 2 r > = r + m − 1 2r>=r+m-1 2r>=r+m−1。
海明不等式:校验码个数为K,2的K次方个校验信息,1个校验信息用来指出没有错误,其余2k-1个指出错误发生在那一位,但也可能是校验位错误,所以满足m+k+1<=2k。
真题
利用海明校验码在工程上可有效提高内存可靠性。若不加校验功能时,内存的可靠性为0.98,出错位数为1的概率为80%,当采用海明码校验,将内存出错1位加以纠正后,内存的可靠性为()。
解析:
1位出错概率是80%,对1位纠错能纠正总错误中的80%。即(1-0.98)*80%。纠错后的可靠性为:0.98+0.02*80%=0.996。
计算机体系结构分类
Michael J. Flynn于1972年提出计算平台分类法,从三个维度,即指令流(Instruction Stream,机器执行的指令序列,对应控制部分)、数据流(Data Stream,指令流调用的数据序列,对应处理器和主存模块)、多倍性(Multiplicity在系统结构的流程瓶颈上同时执行的指令或数据可能最大个数),分为四类:
- SISD:Single Instruction Single Data,单指令流单数据流机器
SISD机器是一种传统的串行计算机,其硬件不支持任何形式的并行计算,所有指令都是串行执行,并且在某个时钟周期内,CPU只能处理一个数据流。早期的计算机、单处理器系统。 - SIMD:Single Instruction Multiple Data,单指令流多数据流机器
SIMD是采用一个指令流处理多个数据流。这类机器在数字信号处理、图像处理,以及多媒体信息处理等领域非常有效。Intel处理器实现的MMXTM、SSE(Streaming SIMD Extensions)、SSE2及SSE3扩展指令集,都能在单个时钟周期内处理多个数据单元。也就是说人们现在用的单核计算机基本上都属于SIMD机器。以并行处理机(矩阵处理机)、超级向量处理机为代表。 - MISD:Multiple Instruction Single Data,多指令流单数据流机器
MISD是采用多个指令流来处理单个数据流。在实际情况中,采用多指令流处理多数据流才是更有效的方法,因此MISD只是作为理论模型出现,没有实际应用。称流水线计算机。 - MIMD:Multiple Instruction Multiple Data,多指令流多数据流机器
MIMD机器可同时执行多个指令流,这些指令流分别对不同数据流进行操作。可实现作业、任务、指令等各级全面并行。代表是最新的多核计算平台,如Intel和AMD的双核处理器。
计算机系统中开发并行性的方法有资源重复、时间重叠和资源共享三种基本途径。

如上图,计算机有一个控制单元,所以是单指令流;多个处理和存储部件,是多数据流,因此属于(SIMD)。该计算机通过(资源重复)实现并行性。
MPP
Massively Parallel Processing,大规模并行处理系统,指使用专用通信网络构成的大型多机系统。每个节点都是一个完全独立的计算机,节点间采用分布式存储器结构,节点间通信采用消息机制,可包容多处理器系统。
大多数MPP系统使用标准的CPU作为它们的处理器,常用的有Intel Pentium系列、Sun UltraSPARC和IBM PowerPC等。MPP系统使用高性能的定制的高速互连网络及网络接口,可以在低延迟和高带宽的条件下传递消息。MPP是一种异步的分布式存储器结构的MIMD系统,它的程序有多个进程,分布在各个微处理器上,每个进程有自己独立的地址空间,进程之间以消息传递进行相互通信。大规模的MPP系统使用特殊的硬件和软件来监控系统、检测错误并从错误中平滑地恢复。
使用多处理机系统的主要目的是实现作业和任务级代码的并行性。
广义上说,使用多台计算机协同工作来完成所要求的任务的计算机系统都是多处理机系统。传统的狭义多处理机系统是指利用系统内的多个CPU并行执行用户多个程序,以提高系统的吞吐量或用来进行冗余操作以提高系统的可靠性。程序级的并行,属于作业级和任务级。
评估
可用性
通常,计算机系统的可用性可从故障率(failure rate)、健壮性(robustness)和可恢复性(recoverability)三个方面来进行评测:
- 故障率:指在给定的时间里,系统故障和维护事件出现的次数
- 健壮性:指系统检测和处理故障的能力,以及系统在各种故障情况下仍然具有的工作能力
- 可恢复性:指系统从故障状态恢复到正常状态的能力
性能
计算机系统的性能一般包括两个大的方面:
- 可用性,也就是计算机系统能正常工作的时间,其指标可以是能够持续工作的时间长度,也可以是在一段时间内,能正常工作的时间所占的百分比
- 处理能力,可分为三类指标:吞吐率、响应时间、资源利用率(即在给定时间区间中,各种部件被使用的时间与整个时间之比)。
通常,计算机系统的可用性可从故障率(Failurerate)、健壮性(Robustness)和可恢复性(Recoverability)三个方面来进行评测:
- 故障率是指在给定的时间里,系统故障和维护事件出现的次数
- 健壮性是指系统检测和处理故障的能力,以及系统在各种故障情况下仍然具有的工作能力
- 可恢复性是指系统从故障状态恢复到正常状态的能力。
计算机应用系统的可移植性对推广应用来说是重要的,但对于使用单一系统的多数用户而言,可用性指标主要包括故障率、健壮性和可恢复性。
另外,不同计算机(系统、模块)的性能指标也是不尽相同,重在理解:
- 计算机:时钟频率(主频)、高速缓存、运算速度、运算精度、内存的存储容量、存储器的存取周期、数据处理速率、响应时间、RASIS特性、平均故障响应时间、兼容性
- 网络:设备级、网络级、应用级、用户级、吞吐量
- 操作系统:系统的可靠性、系统的吞吐量、系统响应时间、系统资源利用率、可移植性
- 数据库:数据库描述功能、管理功能、查询和操纵功能、维护功能、
- web服务器:括最大并发连接数、响应延迟、吞吐量(每秒处理的请求数)、成功请求数、失败请求数、每秒点击次数、每秒成功点击次数、每秒失败点击次数、尝试连接数、用户连接
RASIS:Reliability(可靠性)、Availability(可用性)、Serviceability(可服务性)、Integrity(完整性)和Security(安全性)
性能评估
计算机性能评估(评价)方法基本上分为两大类:
- 测量方法:通过一定的测量设备或测量程序,可直接从系统中测得各项性能指标或与之密切的相关度量,然后由它们经过一些简单的运算,求出相应的性能指标。
- 模型方法:首先对要评估的系统建立适当模型,然后求出模型的性能指标,以便对系统进行性能评估。
测量方法中经典的性能评估方法:
- 时钟频率法:计算机的时钟频率在一定程度上反映机器速度,对于同一种机型的计算机,时钟频率越高,计算机的速度就越快,但是不同体系结构的计算机,相同频率下,其速度和性能可能会差别很大。
- 指令执行速度法:加法的指令速度大体上可反映出乘法、除法等其他算术运算的速度,而逻辑运算、转移指令等简单指令的执行时间往往设计成与加法指令相同,因此可以采用加法指令的运算速度来衡量计算机的速度。常用MIPS评估系统性能。
- 等效指令速度法:也称为吉普森或混合比例计算法,是通过各类指令在程序中所占比例进行计算后得到的计算机运算速度。
- 数据处理速率法:Processing Data Rate,PDR,采用计算PDR值的方法来衡量机器性能,PDR值越大,机器性能越好。PDR与每条指令和每个操作数的平均位数以及每条指令的平均运算速度有关。PDR主要对CPU和主存储器的速度进行度量,不适合衡量机器的整体速度,不能全面反映计算机的性能,因为它没有涉及Cache、多功能部件等技术对性能的影响。
- 综合理论性能法:CPT,该方法是首先计算出处理部件每个计算单元的有效计算率,再按不同字长加以调整,得出该计算单元的理论性能,所有组成该处理部件的计算单元的理论性能之和即为最终的计算机性能。采用每秒百万次理论运算(MTOPS)评估系统性能。
- 基准程序法:把应用程序中用得最多、最频繁的那部分核心程序作为评估计算机系统性能的标准程序,称为基准测试程序(benchmark)。基准程序法是目前一致承认的测试系统性能的较好方法。考虑诸如I/O结构、操作系统、编译程序的效率对系统性能的影响,可以较为准确评估计算机系统的实际性能。
另有一说,对计算机系统的性能进行评价的方法主要有三种:
- 测量:主要是通过采用各种性能数据获取方法和运行各种不同类型的基准测试程序或工具来测量目标系统的性能情况
- 分析:通过为计算机系统建立一种数学模型,进而在给定输入条件下通过计算来获取目标系统的性能情况
- 模拟:通过构造系统模型和工作负载模型来近似模仿目标系统,以了解系统的特性
计算机系统的性能指标是一些精度较高的数据,用户调查问卷或专家小组法只能取得一些大致的、轮廓性的数据。多数用户并没有使用多种计算机系统,难以进行比较,所以计算机系统性能指标的评价一般不通过用户调查法来确定。
为测量高负载大型计算机系统的性能,最适宜的方法(硬件监控),而不是软件监控,软件监控的开销很大,会严重降低系统性能。
基准程序法
大多数情况下,为测试新系统的性能,用户必须依靠评价程序来评价机器的性能。把应用程序用的最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序(benchmark)。
真实程序、核心程序、小型基准程序和合成基准程序,其评测的准确程度依次递减。
事务处理性能委员会(Transaction Processing Performance Council,TPC)是制定商务应用基准程序标准规范、性能和价格度量,并管理测试结果发布的非营利组织,其发布的TPC-C是在线事务处理的基准程序,TPC-D是决策支持的基准程序。
Web服务器性能指标主要有请求响应时间、事务响应时间、并发用户数、吞吐量、资源利用率、每秒钟系统能够处理的交易或者事务的数量等。
基准程序法主要针对CPU(有时包括主存)的性能,通常也会考虑I/O结构、操作系统、编译程序的效率等对系统性能的影响。
阿姆达尔定律
Gene Amdahl定律:提升一个系统的某个部分的性能对整个系统有多大影响。系统,可指计算机系统或别的什么系统。
当提升系统的一部分性能时,对整个系统性能的影响取决于:
- 这部分有多重要
- 这部分性能提升多少
计算方法:

223

被折叠的 条评论
为什么被折叠?



