590 likes | 797 Views
1.4 计算机系统的分类. 一.按 “ 流 ” 分类的方法( Flynn 分类法) 这是 Flynn 教授提出的按 指令流和数据流的 多倍性概念 进行分类的方法。共有四大类,即:( S-single 单一的 I-instruction 指令 M-multiple 多倍的 D-data 数据). 1. Flynn 分类法. SISD(Single-Instruction Single-Data, 单处理机结构), 传统的单处理机属于 SISD 计算机 。
E N D
1.4计算机系统的分类 一.按“流”分类的方法(Flynn分类法) 这是Flynn教授提出的按指令流和数据流的多倍性概念进行分类的方法。共有四大类,即:(S-single 单一的 I-instruction 指令 M-multiple 多倍的 D-data 数据)
1. Flynn分类法 • SISD(Single-Instruction Single-Data,单处理机结构),传统的单处理机属于SISD计算机 。 • SIMD(Single-Instruction Multi-Data,带分布存储器),并行处理机是SIMD计算机的典型代表。我国的YH-I型是此类计算机型。 • MISD(Multi-Instruction Single-Data,脉动阵列),实际上不存在,但也有学者认为存在 。 • MIMD(Multi-Instruction Multi-Data,带共享存储器)包括了大多数多处理机及多计算机系统。我国的YH-II型计算机是这种类型的计算机。
2. 冯氏分类法 • 按最大并行度(degree of parallelism)Pm进行分类 • Pm的定义:计算机系统在单位时间内能够处理的最大二进制位数。 • 平均并行度为: 系统在T周期内的利用率为:
2. 冯氏分类法 字宽(n位):在一个字中同时处理二进制位的位数。 位片宽度(m位):在一个处理周期内能并行操作的字数。 最大并行度Pm=字宽×位片宽度
2. 冯氏分类法 • 按最大并行度可以分为四类不同的计算机系统结构: • 字串位串(Word Serial and Bit Serial,WSBS) :n=1,m=1,纯串行计算机; • 字并位串(Word Parallel and Bit Serial,WPBS):n>1,m=1,传统的并行单处理机; • 字串位并(Word Serial and Bit Parallel ,WSBP):n=1,m>1,20世纪70年代研制的并行处理机; • 字并位并(Word Parallel and Bit Parallel ,WPBP) N>1,m>1, 高性能并行处理机
Handler分类法 • 它是在计算机系统中的三个子系统级别上按并行程度及流水线处理程度进行分类的方法 • 计算机硬件划分的三个层次: • 程序控制部件(PCU)的个数k • 算术逻辑部件(ALU))或处理部件的个数d • 每个算术逻辑部件包含的基本逻辑线路(ELC)的套数w。 • t(系统型号)=(k,d,w)
Handler分类法 • 例:Cray1有1个CPU,12个相当于ALU或PE的处理部件,可以最多实现8级流水线。字长为64位,可以实现1~14位流水线处理。则Cray1的系统结构可表示为: • t(Cray1)=(1,12×8,64(1~14))
1.5 系统结构的评价标准 评价一个计算机系统结构好坏的标准是什么?一般可以用速度、程序和数据的容量、功耗、成本等指标来评价。其中最重要的是性能和成本两个指标。 性能指标主要取决于计算机的本质属性,即时空属性。时间是衡量计算机性能的标准,而衡量机器性能的唯一固定而且可靠的标准是真正执行程序的时间。
1.5.1 性能因子CPI • 时钟周期(Tc):计算机完成一个最基本的操作所需要的时间,单位通常用纳秒(ns)。 • 时钟频率(fc):时钟周期的倒数, 即CPU的主频,通常用MHz或GHz来表示。 • Tcpu:一个程序在CPU上运行所需的时间。其计算公式为: • TCPU =CPU时钟周期数×时钟周期 • 或TCPU =CPU时钟周期数/时钟频率
1.5.1 性能因子CPI • CPI:每条指令的平均时钟周期数。其计算公式为: Ii表示第i类指令在程序中执行的次数,CPIi表示执行一条第i类指令所需的平均时钟周期数 有效CPI
1.5.1 性能因子CPI 因为IN是一个常数,所以有效CPI的计算公式可以改写为: 上式计算的CPI称为平均CPI(有效CPI):每类指令的平均CPI和该类指令在整个程序中出现的百分比的乘积之和。
1.5.1 性能因子CPI 这里用CPU时间来评价CPU的性能,则有: 由上式可以看出,要改善CPU的性能,可以通过改变其中某一项或几项因素来实现。
1.5.2 计算机性能常用指标 1. MIPS(Million Instructions Per Second,每秒百万条指令):单位时间内执行指令的条数,其定义为 如果用TE代替TCPU来表示程序的执行时间,则TE为:
例 1.1 • 已知PentiumII处理机的CPI=0.5,试计算PentiumII 450处理机的运算速度。 • 解:因为PentiumII 450处理机的主频fc=450MHz,因此可计算出:
MIPS进行性能评价的缺陷 • 从MIPS公式可知,机器的工作频率越高,其MIPS越高,CPI越小,MIPS也越高,MIPS从一定程度上反映了机器的性能,但存在以下缺陷: • MIPS依赖于指令集,指令集不同的机器,其结果很不准确,只适合于评价指令集相同的机器。 • 在同一台机器上,MIPS因程序不同而变化,有时差异很大。 • MIPS可能与性能相反!(例如具有可选硬件浮点运算部件的机器,用硬件实现浮点运算的指令条数少,对应的MIPS低,而用软件实现浮点运算的指令条数多,MIPS反而高),因此,MIPS只适用于评估标量机。
2 . MFLOPS MLOPS(Million Floating Point Operations Per Second,每秒百万次浮点运算),其定义为 IFN表示程序中浮点运算的次数,MFLOPS只能用于衡量机器浮点操作的性能,而不体现机器的整体性能。 MFLOPS会随整数、浮点数操作混合比例的不同而变化,且会随程序中浮点快慢指令的混合比例的变化而变化。
例 1.2 • 在一个时钟频率f为40MHz的处理机上执行一个典型测试程序,该程序有4种类型指令,每种指令在程序中出现的条数和每种指令的CPI如表1.1所示。计算这个测试程序在该处理机上运行的CPI和相应的MIPS。 表1.1
解: • 该程序的总指令条数IN为 • IN=120 000+36 000+24 000+20 000 • =200 00
3. 用基准程序来评价计算机性能 • 基准程序(benchmark):是性能测试程序,用来测量和预测计算机系统的性能,并能提示它们的体系结构的弱点和优点。 • 基准程序组(benchmark suite):是一套控制基准程序的控制测试条件及过程的特定规则,包括输入数据、输出结果及性能指标。 • 基准程序序列(benchmark family) :是一套基准程序组。 • 宏基准程序:用于测量计算机系统的总体性能。 • 微基准程序:用于测量计算机系统某一特定方面的性能。(如CPU的速度、存储器速度、I/O速度、操作系统性能及网络性能等)见P13表1.2。
1.5.3 计算机系统结构的性能评价标准 • 计算机的性能通常用峰值性能(peak performance)及持续性能(sustained performance)两个指标评价。 • 峰值性能:是指在理想情况下计算机可获得的最高理论性能值。 • 持续性能:反映系统的实际性能,其值往往只有峰值性能的5%~35%(因算法而异)。 • 持续性能的表示:平均值、调和平均值和几何平均值。
持续性能的表示 1. 算术性能平均值Am 以程序执行的速率Ri来进行性能评价,设Ti表示第i个程序的执行时间,则n个程序的平均执行速率为: 若根据执行时间进行评价,则平均执行时间为:
持续性能的表示 2. 调和性能平均值Hm 与运行所有程序所需时间的总和成反比关系。
持续性能的表示 3.几何性能平均值Gm Gm的特性: 即几何平均值之比等于比的几何平均值。 优点:在对各种机器性能比较而进行性能规格化(以某台机器性能作参考标准,其它机器性能除以该参考标准所得到的值)的过程中,无论取哪一台作参考机,Gm均能保持比较结果的一致性。
例1.3 • 已知4个程序在计算机A、B、C上的执行时间(S)分别如表1.2所示。假设4个程序都分别执行100×106条指令,计算这4个程序分别在计算机A、B、C上执行的MIPS。根据这些速率值,你能否直接评价这3台计算机相对性能的优劣?如果不能,你能否找到一种方法对这3台计算机的相对性能进行排序? 表1.2 执行时间/S
解:1) 这4个程序在3台计算机上执行的MIPS如表1.3所示: 表1.33台计算机的MIPS速率/MIPS
由表1.3可以看出,不同的程序在同一台计算机上执行时的MIPS值不同,甚至差别很大,因此,仅用一个程序在不同计算机上运行的MIPS值来评价计算机之间性能的优劣是不可靠的。例如,若选用程序1的测试结果来评价,那么,计算机A的性能最好,计算机C的性能最差;若选用程序2的测试结果来评价,则计算机A的性能最差,计算机C的性能最好,情况正好相反。由表1.3可以看出,不同的程序在同一台计算机上执行时的MIPS值不同,甚至差别很大,因此,仅用一个程序在不同计算机上运行的MIPS值来评价计算机之间性能的优劣是不可靠的。例如,若选用程序1的测试结果来评价,那么,计算机A的性能最好,计算机C的性能最差;若选用程序2的测试结果来评价,则计算机A的性能最差,计算机C的性能最好,情况正好相反。
表1.4 程序 计算机A 计算机B 计算机C 程序1 程序2 程序3 程序4 100 (1) 10(0.1) 5(0.05) 0.1 (1) 1(10) 5(50) 0.2 (1) 0.1(0.5) 2(10) 1 (1) 0.125 (0.125) 1(1) Gmi/GmA 解:2) 以A机为标准的规格化测试值和Gmi/GmA值如表1.4所示:
加全算术平均值: 加全调和平均值: 加全几何平均值: • 由表1.4可知,GmC>GmA>GmB,所以C的性能最好,B的性能最差。 • 如果考虑工作负载中各程序出现的比例不等,就需要对各程序的执行时间或执行速率加上相应的权值。若第i个程序出现的权值(比例)为Wi,则可得加权平均值如下:
作业 • P23~24 习 题 1 8. 9.
1.5.4 计算机系统设计的定量原理 1.只加速使用频率高的部件 这是最重要也是最广泛采用的计算机设计准则。因为加快处理频繁出现事件对系统的影响远比加速处理很少出现事件的影响要大。
例1.4 • 假定你是一个计算机设计者,已设想了一个优化方案,它能减少过程调用和返回所需的取/存数次数。为了进行验证,对未加优化和已优化的方案进行实验测试,其中假定所使用的是相同的优化编译器。实验测得的结果如下: • 优化方案的时钟周期比未优化的快15%; • 未优化方案中的存/取指令数占总指令数的30%; • 优化方案中的存/取数指令比未优化的少1/3,对于其它指令,两种方案的动态执行数没有变化; • 未优化方案的所有指令执行均只需一个时钟周期,而优化方案只有存/取指令执行需要两个时钟周期,其它指令执行也只需一个时钟周期。
例1.4 • 试计算: • 优化方案和未优化方案的平均CPI; • 优化方案的加速比。 解:1)设未优化方案中总指令条数为IN 由题中条件2)、3)可知,优化后存/取数指令条数为: 30%×(1-1/3)×IN=0.2IN 其它指令条数不变,因此优化后总指令条数为: 0.2IN+0.7IN=0.9IN 因此优化后的平均CPI为: CPI优化 = 2×(0.2IN/0.9IN)+1×(0.7IN/0.9IN)1.22 而由条件4)可知:CPI未优化 = 1
2)加速比定义为: 设未优化方案的时钟周期为TC,由条件1)可知,优化后的时钟周期TC*=0.85TC,则:
2. 阿姆达尔(Amdahl)定律 定律表示:系统中某一部件由于采用某种更快的执行方式后整个系统性能的提高程度,与这种执行方式的使用频率或占总执行时间的比例有关。
2. 阿姆达尔(Amdahl)定律 Told——表示不采用任何增强功能措施完成某一任务的时间; Tnew——表示采用某种增强功能措施完成某一任务的时间; fnew ——表示可采取增强功能措施的部分所占的比例; Snew——表示采用增强功能措施后可加快执行的倍数 则性能加速比Sp可表示为:
当 时, 2. 阿姆达尔(Amdahl)定律 • 由上式可知: • 当fnew=0时,即没有可增强的性能部分,Sp=1
例1.5 • 如果某计算机系统有3个部件可以改进,则这3个部件改进后达到的加速比分别为:S1=30,S2=20,S3=10。 • (1)如果部件1和部件2改进前的执行时间占整个系统执行时间的比例都是30%,那么,部件3改进前的执行时间占整个系统执行时间的比例为多少,才能使3个部件都改进后的整个系统的加速比Sp达到10? • (2)如果3个部件改进前执行时间占整个系统时间的比例分别是30%、30%和20%,那么,3个部件都改进后系统的加速比是多少?未改进部件执行时间在改进后的系统执行时间中占的比例是多少?
由上式得: 解: (1)在多个部件同时改进的情况下,Amdahl定律应扩展为: 将已知条件代入上式后有:
(2) 设整个系统改进前的执行时间为T,则未改进部件的执行时间为:[1-(0.3+0.3+0.2)]T=0.2T 改进后整个系统的执行时间为: 0.3T/30+0.3T/20+0.2T/10+0.2T=0.245T 因此,未改进部件执行时间在改进后的系统执行时间中占的比例为:0.2T/0.245T=0.82
例1.6 • 假设高速缓存Cache的工作速度为主存的5倍,且Cache被访问命中的概率为90%,那么,采用Cache后能使整个存储系统获得多高的加速比? • 解:方法1:设CPU运行程序的访存次数为IC,CPU访问主存一次所需平均周期数为CPIM,CPU访问Cache一次所需平均周期数为CPIC,已知Cache的工作速度是主存的5倍,即有: CPIC=(1/5)CPIM • 若不采用Cache,则CPU完成IC次访存所需的时间: Told=IC×CPIM ×Tc • 若采用Cache,则CPU完成IC次访存操作所需的时间: • Tnew=(IC×90%×CPIC+IC×10%×CPIM) ×Tc • =0.28IC×CPIM ×Tc • 因此采用Cache后,存储系统的加速比为: Sp=Told/Tnew=3.57
方法2 直接使用Amdahl定律:
3. 程序访问的局部性规律 • 程序访问的局部性规律:是指程序执行中,呈现出的频繁重新使用那些最近已被使用过的数据和指令的规律。 • 程序访问的局部性主要反映在时间和空间局部性两个方面,时间局部性是指程序中近期被访问的信息项可能马上将被再次访问,空间局部性指那些在访问地址上相邻近的信息项很可能被一起访问。
程序访问的局部性规律的意义: (1)为指令系统设计提供了指导,即在设计常用指令的器件或电路时,尽可能使使用频率高的指令运行速度加快。 (2)为存储器结构设计提供了指导:按层次构成存储体系、高速缓存机制; (3)在计算机系统设计时,为解决高性能和低成本之间的矛盾提供了方法。
例1.7 设计指令存储器有2种方案,方案1是采用价格较贵的高速存储器芯片,每一个时钟周期可从中取出1条指令;方案2是采用价格较便宜的低速存储器芯片,若用与方案1同样的经费则可使存储器的总线带宽加倍,即一次访存可从中取出2条指令,但需要2个时钟周期。由于程序的空间局部性,一次同时取出的2条指令同时有用的概率为75%。试问这2种方案构成的存储器频宽分别是多少?
解: • 存储器频宽:平均每个时钟周期中取出有用指令字的条数。 • 方案1: • CPI1=1时钟周期/指令字 • 由于每次访存都是按需要取出有用的指令字,因此,存储器的频宽为: f1=1/CPI1=1指令字/时钟周期 方案2: 访存一次获得1条有用指令字的平均时钟周期数为: CPI2 = 0.75×(2时钟周期/2指令字) +0.25×(2时钟周期/1指令字)=1.25时钟周期 因此存储器的频宽为: f2=1/CPI2=0.8指令字/时钟周期
结论: 可见,由于程序空间的局部性,即大部分指令是按指令在存储器空间的存储顺序依次执行的,但仍有少部分指令并不按空间位置顺序执行,因此,方按1优于方案2。
1.6 软件可移植性及其实现途径 • 软件可移植性(Software Portability):是指在一台机器上编制的软件不用修改或只经少量修改就可在另一台机器上运行,使得同一个软件可以应用于不同的硬件环境中。为了实现软件的可移植性,可用以下方法: • 采用系列机 • 模拟与仿真 • 统一高级语言 • 采样开发系统
1.采用系列机的方法 • 系列机是指具有相同的系统结构,如我们使用的INTEL 的80X86微机系列及其兼容机,系统结构都是一致的,当然在发展过程中它的系统结构可以得到新的扩充,比如原来的586机器不支持MMX多媒体扩展指令集,但是后来的芯片中扩充了这些指令,使指令系统集扩大,但它们仍是同一系列的机器。这种系列机的方法主要是为了软件兼容。如上面的扩展指令,将使得以后针对这些指令优化的软件不能在以前的机子上运行(或不能发挥相应功能)导致向前兼容性不佳。但重要的是保证做到向后兼容,也就是在按某个时期推到市场上的该档机上编制的软件能不加修改地在它之后投入市场的机器上运行。
1.采用系列机的方法 • 在系列机上,软件的可移植性是通过各档机器使用相同的高级语言、汇编语言和机器语言,但使用不同的微程序来实现的。