- 计算机系统=硬件/固件+软件
- 计算机语言从低级向高级发展,高一级语言的语句相对于低一级语言来说功能更强,更便于应用,但又都以低级语言为基础。
- 从计算机语言的角度,把计算机系统按功能划分成多级层次结构。每一层以一种语言为特征。
- 翻译:先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后再在这低一级机器上运行,实现程序的功能。
- 解释:对于高一级机器上的程序中的每一条语句或指令,都是转去执行低一级机器上的一段等效程序。执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,直到解释执行完整个程序。
- 解释执行比编译后再执行所花的时间多,但占用的存储空间较少。
- 物理机: 用硬件/固件实现的机器,最下面的两级机器。
- 虚拟机:由软件实现的机器,虚拟机中有些操作可以由硬件或固件实现,第3、4、5、6级为虚拟机。
- 固件:具有软件功能的硬件。
- 各机器级的实现主要靠翻译或解释,或两者的结合。每一级的运行都需要依赖其上一级。
- 透明性:在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。
- 计算机系统结构的实质:确定计算机系统中软硬件的界面,界面之上是软件实现的功能,界面之下是硬件和固件实现的功能。
- 计算机系统结构:计算机系统的软、硬件的界面,即机器语言程序员所看到的传统机器级所具有的属性。
- 计算机组成:计算机系统结构的逻辑实现包含物理机器级中的数据流和控制流的组成以及逻辑设计等。它着眼于:物理机器级内各事件的排序方式与控制方式、各部件的功能以及各部件之间的联系。
- 计算机实现:计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。它着眼于:器件技术(起主导作用)、微组装技术。
- 具有相同系统结构的计算机可以采用不同的计算机组成。同一种计算机组成又可以采用多种不同的计算机实现。
-
计算机系统结构的分类
-
Flynn分类法
- 按照指令流和数据流的多倍性进行分类。把计算机系统的结构分为4类:单指令流单数据流SISD、单指令流多数据流SIMD、多指令流单数据流MISD、多指令流多数据流MIMD。
- 4类计算机的基本结构为:IS:指令流,DS:数据流,CS:控制流,CU:控制部件,PU:处理部件,MM和SM:存储器。
- 指令流:计算机执行的指令序列
- 数据流:由指令流调用的数据序列
- 多倍性:在系统最受限的部件上,同时处于同一执行阶段的指令或数据的最大数目。
-
冯氏分类法
- 用系统的最大并行度对计算机进行分类。
- 4类不同最大并行度的计算机系统结构
- 字串位串:n=1,m=1。
- (第一代计算机发展初期的纯串行计算机)
- 字串位并: n>1,m=1。这是传统的单处理机,同时处理单个字的多个位,如16位、32位等。
- 字并位串:n=1,m>1。同时处理多个字的同一位(位片)。
- 字并位并:n>1,m>1。同时处理多个字的多个位。
- 最大并行度:计算机系统在单位时间内能够处理的最大的二进制位数。
-
Handler分类法
- 根据并行度和流水线对计算机进行分类。把计算机的硬件结构分成3个层次:程序控制部件(PCU)的个数k、算术逻辑部件(ALU)或处理部件(PE)的个数d、每个算术逻辑部件包含基本逻辑线路(ELC)的套数w。
- 用公式表示:t(系统型号)=(k,d,w)
- 进一步改进:t (系统型号)=(k×k’,d×d’,w×w’) 其中:k’:宏流水线中程序控制部件的个数、d’:指令流水线中算术逻辑部件的个数、w’:操作流水线中基本逻辑线路的套数。
-
Flynn分类法
- 计算机系统设计的四个定量原理:以经常性事件为重点(对经常发生的情况采用优化方法的原则进行选择,以得到更多的总体上的改进),Amdahl定律(加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比),CPU性能公式(执行一个程序所需的CPU时间),程序的局部性原理(程序执行时所访问的存储器地址分布不是随机的,而是相对地簇聚)。
- 常用的一个经验规则:程序执行时间的90%都是在执行程序中10%的代码。
- 程序的时间局部性:程序即将用到的信息很可能就是目前正在使用的信息。
- 程序的空间局部性:程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。
- Amdahl定律:一种性能改进的递减规则:如果仅仅对计算任务中的一部分做性能改进,则改进得越多,所得到的总体性能的提升就越有限。
- 重要推论:如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过:1/(1-可改进比例)
- 计算机系统设计者的任务包括:指令系统的设计、数据表示的设计、功能的组织、逻辑设计以及其物理实现等。
- 计算机系统设计的主要方法:“由上往下”(top-down)设计(适合于专用机的设计,而不适合通用机的设计),“由下往上”(bottom-up)设计(以硬件为主,软件几乎全被动),“从中间开始”(middle-out)设计(综合考虑软、硬件的分工)。
- “由上往下”和“由下往上”设计方法的主要缺点:软、硬件设计分离和脱节。
- 计算机系统的性能评测:执行时间和吞吐率,基准测试程序,性能比较(总执行时间、平均执行时间、调和平均值、几何平均值)。
- 执行时间:执行单个程序所花的时间;吞吐率:在单位时间里能够完成的任务很多。
-
CPU时间:CPU执行所给定的程序所花费的时间,不包含I/O等待时间以及运行其它程序的时间。
- 用户CPU时间:用户程序所耗费的CPU时间。
- 系统CPU时间:用户程序运行期间操作系统耗费的CPU时间。
- 基准测试程序:用于测试和比较性能的基准测试程序的最佳选择是真实应用程序。(例如编译器)
- 桌面计算机的基准测试程序套件可以分为两大类:处理器性能测试程序,图形性能测试程序。
- 存储程序原理的基本点:指令驱动。
- 冯·诺依曼结构:运算器、控制器、存储器、输入设备和输出设备。
- 模拟:用软件的方法在一台现有的机器(称为宿主机)上实现另一台机器(称为虚拟机)的指令集。通常用解释的方法来实现。运行速度较慢,性能较差。
- 仿真:用一台现有机器(宿主机)上的微程序去解释实现另一台机器(目标机)的指令集。
- 并行性:计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。只要在时间上相互重叠,就存在并行性。
-
同时性和并行性的区别:
- 同时性:两个或两个以上的事件在同一时刻发生。
- 并发性:两个或两个以上的事件在同一时间间隔内发生。
计算类
1.系统性能加速比:
加速比=系统性能改进后/系统性能改进前=总执行时间改进前/总执行时间改进后
加速比依赖于两个因素
q可改进比例(Fe):在改进前的系统中,可改进部分的执行时间在总的执行时间中所占的比例。它总是小于等于1。
q部件加速比(Se) :可改进部分改进以后性能提高的倍数。它是改进前所需的执行时间与改进后执行时间的比。一般情况下部件加速比是大于1的。
2.改进后程序的总执行时间Tn
Tn=T0(1-Fe+Fe/Se)
T0:改进前整个程序的执行时间
3.系统加速比Sn为改进前与改进后总执行时间之比:
Sn=T0/Tn=1/((1-Fe)+Fe/Se)
CPU时间 = 执行程序所需的时钟周期数×时钟周期时间
其中:时钟周期时间是系统时钟频率的倒数。
CPI = 执行程序所需的时钟周期数/IC
IC:所执行的指令条数
CPU时间 = IC ×CPI ×时钟周期时间
假设:计算机系统有n种指令;
CPIi :第i种指令的处理时间;
ICi :在程序中第i种指令出现的次数;
则:
8.假设两台计算机为X和Y,X比Y快的意思是:
对于给定任务,X的执行时间比Y的执行时间少。
X的性能是Y的n倍:n=执行时间Y/执行时间X
执行时间与性能成反比: n=执行时间Y/执行时间X=(1/性能Y)/(1/性能X)=性能X/性能Y
其中:Ti:第i个测试程序的执行时间
n:测试程序组中程序的个数
其中, Ri:由n个程序组成的工作负荷中执行第i个程序的速度Ri=1/Ti
Ti:第i个程序的执行时间
Ri:由n个程序组成的工作负荷中执行第i个程序的速度
Ri=1/Ti
∏:连乘