Presentation is loading. Please wait.

Presentation is loading. Please wait.

第1章 导论 【学习内容】 1.1计算机系统结构的基本概念 1.2计算机性能评测价 学习目标.

Similar presentations


Presentation on theme: "第1章 导论 【学习内容】 1.1计算机系统结构的基本概念 1.2计算机性能评测价 学习目标."— Presentation transcript:

1 第1章 导论 【学习内容】 1.1计算机系统结构的基本概念 1.2计算机性能评测价 学习目标

2 【学习目标】 通过本章的学习,应: 深刻理解通用计算机系统的层次结构及透明概念; 掌握计算机系统结构、组成、实现的概念及它们之间的关系;
3.掌握实现软件移植的主要技术途径,领会软件兼容的定义以及对软件兼容的基本要求; 4.了解并行性的定义,领会并行性的2层含义和发展并行性的3种途径;了解Flynn分类法及其典型机器的结构; 5.领会指令平均周期数CPI和加速比S的概念,掌握其计算方法;掌握Amdahl定律及其用用于性能改进的定量分析计算方法.

3 1.1计算机系统结构的基本概念 引言 电子数字计算机的发展历史 1.1.1计算机系统的层次结构 1.1.2计算机系统并行性的基本概念

4 电子数字计算机的发展历史 早期的计算机: Clolossus:1944.1.19(英国)----二战期间
ENIAC: (美国) Baby: (英国) EDSAC:1949年英国剑桥大学,第一台 存储式计算机

5 计算机的发展历史 计算机系统的发展历程 发展经历了五次更新换代 从使用的器件看: 从结构的发展看: 电子管、继电器存储 晶体管 磁介质存储
集成电路 大规模和超大规模集成电路 从结构的发展看: 单个CPU组成的单机系统 流水线机 多处理机 大规模的并行处理机

6 计算机系统的发展历程 从技术的发展看: 从语言及应用方面看: 变址技术 中断技术 微程序技术 缓冲技术 重用技术 虚拟技术
由汇编到高级语言从单用户到多用户,到并行处理的语言、编译,操作系统,直到如今计算机网络、异构系统处理等等

7 计算机系统的发展历程 从使用的器件来划分,可分为五代:
第一代:1945~1954年,电子管和继电器; 第二代:1955~1964年,晶体管和磁芯存储器; 第三代:1965~1974年,中小规模集成电路; 第四代:1975~1990年,LSI/VLSI和半导体存储器; 第五代:1990年至今,巨大规模集成电路。

8 五代计算机的基本特点 结构的变化是衡量计算机换代的重要标志 器件 结构技术 软件及语言 第1代 电子管 继电器 单一CPU,程序控制I/O
计数器与累加器完成定点运算 机器语言 汇编语言 第2代 晶体管 磁芯 多路存储器,I/O处理机,变址寄存器,浮点运算 高级语言 子程序库 批处理监控 第3代 中小规模 集成电路 微程序控制,流水线,高速缓存 先行处理机 多道程序设计 分时操作系统 第4代 大规模集 成电路 共享存储器,分布存储器,并行计算机 多处理操作系统、专用语言 第5代 VLSI 大规摸并行处理 结构的变化是衡量计算机换代的重要标志

9 计算机系统的层次结构 1.计算机系统的层次结构 2.计算机系统结构的含义 3.透明性 4.计算机系统结构、组成与实现 5.软件可移植性

10 计算机系统的层次结构 6级 5级 4级 3级 硬件 2级 固件 1级 0级 3~6级为虚拟机 图中0级~2级为物理机
计算机系统的层次结构   6级 应 用 语 言 级 高 级 语 言 级 汇 编 语 言 级 操 作 系 统 级 传 统 机 器 级 微程序机器级 电 子 线 路 应用软件 系统软件 翻译(编译程序) 翻译(汇编程序) 软硬件界面 物理机 解释 翻译(应用程序包) 5级 虚拟机 4级 3级 解释 硬件 2级 固件 1级 0级 3~6级为虚拟机 图中0级~2级为物理机 3级是操作系统中对各种资源的管理与控制程序 6级是应用语言级 5级是高级语言的运行程序 4级是汇编语言的运行程序

11 名词解释 翻译:是先用转换程序将高一级机器级上的程序整个地变成低一级机器级上可运行的等效程序,然后再在低一级机器级上去实现的技术。
解释:是在低一级机器级上用它的一串语句或指令来仿真高一级机器级上的一条语句或指令的功能,通过对高一级机器语言程序中的每条语句或指令逐条解释来实现的技术。 各机器级的实现主要就是靠翻译或解释,或者是两者的结合。 应用语言虚拟机器:是为了满足管理、人工智能、图像处理、辅助设计等专门的应用来设计的。使用面向某一种应用环境的的应用语编写的程序,一般是经过应用程序包翻译成高级语言程序后,再逐级向下实现的。

12 对于不同层次上的使用者来说,他们观察到的计算机,在形式上是:
语言 (虚拟计算机) 机器 观察者 控制信息 作用 对象 解释器 状态信息 机器:并非是指真正的一台有鼠标、键盘、显示器等的 机器实体,而是指能够存贮和执行相应语言程序的算法 和数据结构的集合体,是同时存在于计算机内的。

13 例如:

14 例如:

15 例如:

16 多级层次的意义 1.有利于正确理解计算机系统的工作原理,明确软件、硬件和固件在计算机系统中的地位和作用;
将计算机系统按功能划分成多级层次结构,其意义在于: 1.有利于正确理解计算机系统的工作原理,明确软件、硬件和固件在计算机系统中的地位和作用; 2.有利于理解各种语言的实质及其实现; 3.有利于探索虚拟机器新的实现方法,设计新的计算机系统.

17 计算机系统结构的含义 计算机系统结构来源于英文computer architecture,而architecture在建筑领域是指”建筑学”、”建筑物的设计或式样”,是指系统的外貌. 1964年,IBM公司的系统设计师阿姆达尔(G.M.Amdahl)在介绍IBM 360机型时提出了系统结构的概念。 系统结构:从程序设计者的角度所看到的系统的属性,即概念性结构和功能特性。 计算机系统结构:指机器语言程序的设计者或是编译程序设计者所看到的计算机系统的概念性结构与功能特性,是计算机系统的外特性。

18 透明性 计算机系统中的”透明”与通常意义上的”透明”在含义上正好相反.
一种本来存在的有差异的事物和属性,从某种角度上看又好像不存在的现象,被称为是“透明性” (Transparency)。 例如,高级程序员看不到各种不同类型机器的差异性,只需通过该层的语言使用机器,而不必关心其下层机器是如何工作和实现对上层的支持。 计算机系统中的”透明”与通常意义上的”透明”在含义上正好相反.

19 计算机系统结构、组成与实现 三者区别: 1.计算机系统结构 -机器语言级的程序员所了解的计算机的属性即外特性.是研究硬件、软件的功能分配和对软件、硬件界面的确定,即哪些功能由软件完成,哪些功能由硬件完成. 2.计算机组成(Computer Organization) -计算机系统结构的逻辑实现 .是在计算机系统结构确定分配给硬件子系统的功能及其概念结构之后,研究各组成部分的内部构造和相互联系以实现机器指令级的各种功能和特性. 3.计算机的实现(Computer Implementation) -指其计算机组成的物理实现

20 计算机系统结构、组成与实现 计算机系统结构 包括:
数据表示 .即硬件能直接辨认和处理的那些数据类型 寻址方式.包括最小寻址单元和地址运算 寄存器定义.包括操作数、变址、控制寄存器定义 指令系统.指令的类型和格式,指令间的排序等 中断系统 .中断的类型和中断响应的硬件功能 存储系统 .存储器层次结构 输入输出结构.包括连接方式,设备间数据传输的方式和格式 机器工作状态. 信息保护 .信息保护方式,硬件对信息保护的支持

21 计算机系统结构、组成与实现 计算机组成 包括:
数据通路的宽度 专用部件的设置 各功能部件 控制机构的组成方式 缓冲技术 可靠性技术的采用和方式的选择 预估、预判、优化处理

22 计算机系统结构、组成与实现 计算机的实现 包括:
处理机、主存储器等部件的物理结构 器件的集成度和速度 信号传输 器件、模块、插件、底版的划分和连接 专用器件的设计 电源、冷却、装配等技术 有关的制造技术和工艺

23 可以看出:计算机系统的结构,组成,实现是三个完全不同的概念.但,它们之间又有着十分密切的依赖关系和相互的影响。
计算机系统结构、组成与实现 可以看出:计算机系统的结构,组成,实现是三个完全不同的概念.但,它们之间又有着十分密切的依赖关系和相互的影响。 相同的结构,计算机可有不同的组成,一种组成可 有多种实现。 结构不同组成会不同,组成反过来也影响结构。组 成设计上面取决于结构,下面受限于实现技术.结构设 计必须综合考虑,不应过多地限制组成、实现技术地 发展。

24 计算机系统结构、组成与实现 计算机组成与系统结构的关系
系列机 例如,设计某种系列机属于系统结构,系列内不同型号计算机的组织属于组成。如,IBM370系列有115、125、135、145、158、168等由低档到高档的多种型号机器。从汇编语言、机器语言程序设计者看的概念性结构都如图1.2所示。 系列机是指在一个厂家内生产的具有相同的系统结 构,但具有不同的组成和实现的一系列不同型号的机器.

25

26 计算机系统结构、组成与实现 计算机组织与系统结构的关系
它们均是由中央处理机/主存—通道—设备控制器—外设4级构成,以主存为中心,采用通道方式输入输出。 从层次结构看,IBM370系列中不同型号机器从高级语言机器级、汇编语言机器级到传统机器语言机器级都是相同的,只是使用不同的组成和实现,不同的微程序机器级,使机器性能价格不同。 因此,设计何种系列机属于计算机系统结构,而系列内不同型号计算机的组织属于计算机组成。即相同的系统结构,可以有不同的计算机组成.

27 计算机系统结构、组成与实现 计算机系统结构、组织与实现的关系
指令系统 指令系统的确定属于计算机系统结构。指令的实现,如取指令、指令操作码译码、计算操作数地址、取数、运算、送结果等的操作安排和排序属于计算机组成。实现这些指令功能的具体电路、器件的设计及装配技术属于计算机实现。 确定指令系统中是否要设乘法指令属于计算机系统结 构。乘法指令是用专门的高速乘法器实现,还是靠用 加法器和移位器经一连串时序信号控制其相加和右移 来实现属于计算机组成。乘法器、加法—移位器的物 理实现,如器件的类型、集成度、数量、价格,微组 装技术的确定和选择属于计算机实现。

28 计算机系统结构、组成与实现 计算机系统结构、组织与实现的关系
主存容量与编址方式 主存容量与编址方式(按位、按字节还是按字访问等)的确定属于计算机系统结构。为达到性能价格要求,主存速度应多快,逻辑结构是否采用多体交叉属于计算机组成。主存器件的选定、逻辑设计、微组装技术使用属于计算机实现。

29 数据表示和数据通路 从程序设计者编程时所看到的数据形式(即数据表示)都是相同的32位字长,定点数都是半字长16位或全字长32位,浮点数都是单字长32位、双字长64位或四字长128位。 考虑速度、价格因素,在组成和实现时,数据通路宽度(数据总线线数)可分别采用8、16、32或64位。一个64位的字在8位数据通路宽度的机器上需分8次传送完,而在64位数据通路宽度的机器上只需一次即可传送完,速度快但硬件多价格贵。数据总线宽度对程序程序员透明.

30 计算机系统结构、组成与实现 计算机系统结构、组织与实现的关系
通道方式 IBM370系列的各档机器都采用通道方式进行输入输出,但在计算机组成上,低档机器可以采用结合型通道,让通道的功能借用中央处理机的某些部件完成。同一套硬件分时执行中央处理机和通道的功能,虽然系统速度性能低,但可以降低成本。而高档机器上却采用独立型通道,让通道单独设置硬件,与中央处理机并行,成本虽高,但系统速度高了。 可见,机器/汇编指令系统、数据表示、是否采用通道方式输入输出的确定属于系统结构;而指令采用顺序、重叠、流水还是其他方式解释,数据通道宽度的确定,通道采用结合型还是独立性均属计算机组成。

31 系统结构不同,会使可能采用的组成技术不同。
计算机系统结构、组成与实现 计算机系统结构、组织与实现的关系 系统结构不同,会使可能采用的组成技术不同。 例如,为实现 A:=B+C D:=E*F 对面向主存的三地址寻址方式的结构,其程序可以是: ADD B,C,A MPY E,F,D

32 计算机系统结构、组成与实现 计算机系统结构、组织与实现的关系 若采用面向寄存器的系统结构,其程序可以是: LOAD R1,B
ADD R1,C STORE A, R1 LOAD R2,E MPY R2,F STORE D, R2

33 计算机系统结构、组织与实现的关系 组成和实现的不同,对计算机性能的影响 例1:
如有一个经解释实现的计算机,可以按功能分成4级。每一级为了执行一条指令需下一级的N条指令解释。若执行第一级的一条指令需Kns时间,那么执行第2,3,4级的一条指令各需要多少时间? 解: (1)一条第二级指令需第一级N条指令解释,执行需要 KNns (2) 一条第三级指令需第一级N2条指令解释,执行需要 KN2ns (3) 一条第四级指令需第一级N3条指令解释,执行需要 KN3ns

34 计算机系统结构、组织与实现的关系 组成和实现的不同,对计算机性能的影响 2级:kN/M ns 3级:N×N/(M ×M)kns
例2: 有一个计算机系统可按功能分成4级,各级的指令都不相同,每一级的指令都比下一级的指令在效能上强M倍,即第i级的指令能完成地i-1级的M条指令的计算量。现若需第i级的N条指令来解释第i+1级的一条指令,而有一段第1级的程序需要运行kns,问在第二,三,四级上的一段等效的程序需要运行多长的时间? 解: 2级:kN/M ns 3级:N×N/(M ×M)kns 4级:N×N×N /(M×M×M)kns

35 软件可移植性 软件可移植性(Software Portability)是指在一台机器上编制的软件不用修改或只经少量修改就可以在另一台机器上运行,使得同一个软件可以应用到不同的硬件环境中. 在计算机系统结构范畴内,实现可移植性的基本途径有: (1)统一高级语言 (2)采用系列机 (3)模拟和仿真

36 软件可移植性 (1)统一高级语言 是指设计出一种对各种应用领域都比较高效的通用高级语言,在结构相同甚至完全不同的机器之间,通过配备不同的语言翻译程序就可以实现高级语言应用软件的移植. 但是,由于不同的应用对高级语言的语法、语义结构的要求差别比较大,实际上实现一种统一的通用高级语言是很困难的,可作为一种长远的目标.

37 软件兼容性(Software Compatibility) 同一个软件不加修改地运行结构相同的各档机器上,而运行的结果一致.
软件可移植性 (2)采用系列机 系列机是指具有相同的系统结构,但具有不同的组织和实现技术的一系列不同型号的机器.它们采用不同的组织和实现技术,从而具有不同的性能和价格,但从机器语言机器级的程序设计者角度来看,机器属性是相同的. 软件兼容性(Software Compatibility) 同一个软件不加修改地运行结构相同的各档机器上,而运行的结果一致. 兼容方式:向上兼容,向下兼容,向前兼容,向后兼容 向上(下)兼容:在某档机器上编制的程序可以不加修改地运行于比它高(低)档的机器上. 向前(后)兼容:在某型号机器上编制的程序可以不加修改地运行于在它之前(后)投放市场的机器上.

38 软件可移植性 (2)采用系列机 系列机的根本特征 软件向后兼容是兼容机的根本特征,既是说,在先生产出的机器上编制的程序可以不加修改地在后生产的新机器上运行,而后生产的新机器增强了功能并提高了速度,从而提高了整机的性能. 不属于系统结构设计,而属于计算机组成和实现的内容,不管是增加、删除,还是修改,都不会影响汇编语言程序和机器语言程序在系列机上的向后兼容,如把CPU与主存之间的数据通路的宽度由16位扩展到32位,以加速主机内部信息传送. 属于系统结构设计范畴的内容,为保证软件向后兼容,只能增加其新功能或部件,而不能删除或更改已有的功能或部件.例如,指令的功能设计与指令格式的设计和编码都属于系统结构的范畴,如果将原来全部采用定长操作码的指令改成操作码扩展编码,虽然可以减小平均指令长度,但会直接导致以前编写的程序不能正确运行.

39 兼容机(Compatible Machine) 不同厂家生产的具有相同系统结构的计算机称为兼容机.
软件可移植性 (2)采用系列机 兼容机(Compatible Machine) 不同厂家生产的具有相同系统结构的计算机称为兼容机.

40 软件可移植性 (3)模拟和仿真 模拟与仿真能实现在结构不同的机器之间的机器语言程序的移植. 模拟(Simulation)是用机器语言程序解释另一机器指令来实现软件移植的.在两种机器的机器指令系统差异较大时,使用模拟方法会使程序的运行速度严重下降. 仿真(Emulation)是用微程序直接解释另一机器的机器指令来实现软件移植的.采用仿真方法可以提高被移植软件的运行速度,但在机器结构差异较大的情况下,难以实现仿真.

41 软件可移植性 (3)模拟和仿真 不同系列机器之间实现软件移植时,可将两种方法结合起来,对于频繁使用且容易仿真的机器指令部分采用仿真的方法,以提高被依植软件的运行速度;对于较少使用、对速度要求不高且难以仿真的指令部分及I/O操作采用模拟的方法. 两者的区别是:模拟是用机器语言程序解释指令,其解释程序存储在主存中;仿真是用微程序解释指令,其解释程序存储在控制存储器中.

42 计算机系统并行性的基本概念 并行性(parallelism) 只要时间上互相重叠,就存在并行性. 1.发展计算机系统并行性的技术途径
广义的讲,并行性有着两种含义: 一是同时性(simultaneity),指两个或多个事件在同一时刻发生的并行性; 二是并发性(concurrency),指两个或多个事件在同一时间间隔内发生的并行性。 只要时间上互相重叠,就存在并行性. 1.发展计算机系统并行性的技术途径 2.并行性等级 3.计算机系统结构的分类

43 发展计算机系统并行性的技术途径 (1)时间重叠
时间重叠(Time Interleaving)是让多个处理过程在处理时间上错开,轮流重叠地使用同一套硬件设备的各个部件,提高多个处理的并发性. 一条指令执行过程 :一条指令的执行分为三个阶段:取指令、分析与执行,每个操作步骤完成所需要的时间为△t. 顺序执行,3条指令需9 △t 流水线执行 部件 执行 分析 取指 k K+1 K+2 流水线执行,3条指令需5 △t k K+1 K+2 k K+1 K+2 △t 2△t 3△t 4△t 5△t t

44 发展计算机系统并行性的技术途径 (2)资源重复(Resource Replication)
在并行性概念中引入空间因素,通过重复设置硬件资源分别用于多个处理过程,实现多个处理过程的同时性. CU N个完全相同的PE在 同一个CU的控制下, 同时完成对分配给它 们的数据的同一种运算. PE0 PE1 PEN-1 资源重复的目的: 提高可靠性,如双工系统 提高系统的速度性能,如超标量处理机,阵列处理机 时间重叠是实现并行性中的并发性,资源重复是实现并行性中 的同时性.

45 发展计算机系统并行性的技术途径 (3)资源共享
资源共享(Resource Sharing)是利用软件方法让多个任务按一定顺序轮流使用一套资源,通过提高系统资源的利用率来提高系统的性能和效率.如多道程序分时系统,计算机网络和分布处理系统等. 资源共享包括对硬件资源和软件资源的共享.

46 并行性等级 执行程序的并行性 从执行程序的角度看,并行性等级从低到高可分为:
指令内部并行:指一条指令内部各操作之间的并行.取决于硬件及组成的设计。 指令之间并行:两条或多条指令并行执行.主要要解决相互关联问题。 任务或进程并行:两个或多个任务或 程序段并行执行。其关键是如何将任务分解. 作业或程序之间并行:在多个作业或多道程序的并行执行。将有限的硬、软件资源有效地分配给正在求解一个大题目的多个程序. 并行性等级由高到低反映了硬件实现比例在增大,所以并 行性的实现也是一个软硬功能分配问题.

47 并行性等级 处理数据的并行性 处理数据的并行性,从低到高可以分为:
字串位串:同时只对一个字的一位进行处理,这是最基本的串行处理方式,不存在并行性。 字串位并:同时对一个字的全部位进行处理。不同字之间是串行的。这里已开始出现并行性。 字并位串:同时对许多字的同一位(称位片)进行处理。这种方式有较高的并行性。 全并行:同时对许多字的全部或部分位进行处理。这是最高一级的并行。

48 并行性等级 计算机的并行处理技术 在计算机系统中,可以采取多种并行性措施。既可以有执行程序方面的并行性,又可以有处理数据方面的并行性。当并行性提高到一定级别时则称之为进入并行处理领域。 例如,执行程序的并行性达到任务或过程级。或者处理数据的并行性达到字并位串一级,即可认为进入并行处理领域。 所以,并行处理是信息处理的一种有效形式。它着重挖掘计算过程中的并行事件,使并行性达到较高的级别。并行处理是硬件、体系结构、软件、算法、语言等多方面综合研究的领域。

49 系统结构的分类 有不同的分类方法: 按性能与价格比 巨、大、中、小、微 按用途分 科学计算,事务处理,实时控制,家用
单处理机,多处理机,并行处理机,关联 处理机,超标量处理机,超流水线处理机, SMP(对称多处理机),MPP(大规模并行 处理机 按处理机 个数和种类

50 系统结构的分类 计算机按系统的结构分类通常有三种方法: (一) 弗林(FLYNN)分类法 (1966年Michael J.Flynn)
按指令流和数据流的多倍性状况对计算机系统分类。 指令流(Instruction Stream):机器执行的指令序列。 数据流(Data Stream):由指令流调用的数据序列。 多倍性(Multiplicity):在系统性能瓶颈部件上处于同 一执行阶段的指令或数据的最大可能个数。 此分类法反映出大多数计算机的并行工作方式和结构特点,使用较广。 分类对象:Von Neumann 型机器。

51 系统结构的分类 弗林(FLYNN)分类法 1.单指令流、单数据流(SISD-Single Instruction Single Data)结构
如PDP-11、IBM-360/370、PC 8086、Z-80等微处理机

52 系统结构的分类 弗林(FLYNN)分类法 2.单指令流、多数据流(SIMD-Single Instruction Multiple Data)结构
如ILLAC Ⅳ(64个单元) 阵列机

53 系统结构的分类 弗林(FLYNN)分类法 3.多指令流、单数据流(MISD)结构
如RISC机、向量机

54 弗林(FLYNN)分类法 4.多指令流、多数据流(MIMD)结构
IBM 3081/3084、Univac 1100/80,Cray-2等均属这一类型

55 Flynn计算机分类举例 类型 计算机的型号 SISD IBM 370,VAX 11/780,MC 680X0,INTEL 80X86
SIMD ILLIAC-IV,ICL-DAP,CRAY-1,YH-1(银河1),CYBER-205,CM-2 MIMD IBM 370/168,Cmmp,CRAY X-MP,YH-2(银河2)

56 系统结构的分类 (二)冯氏分类法(1972年,美籍华人冯泽云教授提出)
(三) Wolfgang Handler(汉德勒)法 (1977年德国)

57 计算机性能评测价 计算机性能(Computer Performance)通常是指计算机的工作速度,其数值等于程序执行时间的倒数.它不仅与计算机的系统结构有关,而且也与程序和算法有关. 计算机的性能评价与测试与计算机系统结构、计算机软件、计算机算法共同构成了新兴的计算科学(Computational Sciences). 1.2.1计算机性能评测的作用与分级 1.2.2计算机的基本性能指标

58 计算机性能评测价 1.2.1计算机性能评测的作用与分级 1.性能评测的作用 (1)改进系统结构设计,提高机器的性能.
(2)促进软/硬件结合,合理功能分配. (3)优化“结构-算法-应用”的最佳组合. (4)提高高性能计算机的使用效率.

59 计算机性能评测价 1.2.1计算机性能评测的作用与分级 2.性能评测的分级 计算机性能的评测可分为:机器级、算法级和程序级3个层次.
(1)机器级性能评测 主要包括:CPU的基本性能指标;存储器的基本性能指标;并行计算机的并行与通信的开销;并行计算的可用性和好用性以及机器成本、价格与性能/价格比等. 性能/价格比是机器之间可比的重要数据,也是拥护选购机器时的重要依据.

60 计算机性能评测价 1.2.1计算机性能评测的作用与分级 2.性能评测的分级
(2)算法级性能评测 目的是为了评价算法的性能,在并行计算机上,并行算法的加速性是最关键的因素,它体现了并行算法相对于串行算法的执行速度加快了多少倍.由于并行算法与并行程序的联系密切,并行算法的性能评方法也推广到并行程序的性能评测. 并行算法的一个重要性能是其可扩放性,即并行算法的性能是否能随着处理器数目的增加而按比例地增加.并行算法的可扩放性推广到程序的可扩放性、体系结构的可扩放性、工艺技术的可扩放性以及应用的可扩放性.

61 计算机性能评测价 1.2.1计算机性能评测的作用与分级 2.性能评测的分级 (3)程序级性能评测
主要是使用一组基准测试程序(Benchmark)测试和评价计算机系统的各种性能.不同的基准测试程序的测试目的也有所不同,但任何一组测试程序都应提供一组控制测试条件、步骤、测试说明等. 基准测试程序可分为5类: ①真实程序 用户用来解决问题的实际工作程序,即实际应用程序. 如C语言的各种编译程序,文本编辑器等.

62 基准测试程序 ②核心基准测试程序(kernel benchmark) 从实际程序中抽出来的核心代码段,适于独立评价某一方面的性能 如Livemore Loops(浮点循环), Linpack等 ③小测试程序 事先知道结果的小程序(10~100行) 如快速排序,八皇后问题 等. ④综合测试程序 根据大量实际程序的统计数据(指令和操作数的使用频度)人为设计编制的程序,程序中的各类操作和操作数的比例与大量的应用程序中的比例一致.如Whetstone, Dhrystone等

63 基准测试程序 ⑤测试程序组件(集) 1988年, Apollo/Hewlettchard,DEC,SUN和一些著名大学组成了 提供性能评价基准程序的组织-----SPEC Benchmark suits程序组: 核心基准程序+实际程序, 一组国际公认的标准测试程序,用这组程序在目标机器上运行,根据实际运行时间算出该计算机的运行速度指标。 形成了SPEC89, SPEC92 ,95 , 事实上的标准

64 基准测试程序 SPEC CPU2000覆盖的应用面最广,包括文件压缩、FPGA布局布线、编译器、组合优化、国际象棋、文字处理、计算机视觉、编程语言、解释器、数据库、布局布线模拟器、量子动力学、浅水模型、三维势场求解、偏微分方程、三维图形库、计算流体动力学、图象识别/神经网络、地震波传播模拟、计算化学、数论/素数测试等等,光源代码就有上百万行。 打分的标准是把这组程序在Sun公司一台300MHz的四发射Untra Sparc II 上运行的时间做为标准运行时间,其分值为100分,其它机器运行时间跟标准时间相比算出相应的分值。

65 1.2.2计算机的基本性能指标 1.单CPU性能 2.加速比 3.MIPS和MFLOPS 4.基准测试程序的执行时间

66 1.单CPU性能 计算机的性能以及对系统评价的目标都是指系统速度的性能。 计算机的基本性能指标 计算机的速度性能通常是用响应时间来衡量
响应时间(elapsed time)是指计算机系统完成某一任务(程序)的时间, 包括磁盘访问,存储器访问,输入/输出以及OS开销的时间. CPU时间直接反映了CPU的性能.CPU的性能对计算机系统的性能有着重要的影响.

67 CPU time 单CPU性能 CPU的性能 用户CPU时间 ------CPU真正执行用户代码的时间 系统CPU时间
------CPU执行OS代码所占用的时间 [例] 在UNIX系统中键入time命令得到: 101.8U S : % 用户占CPU 时间 系统开销 响应时间 (U+S) 百分比 难测的原因:1. 不同的机器用不同的OS 2. 系统CPU时间是由OS自身测量的 3. OS系统代码在有些机器上也算用户代码

68 单CPU性能 CPU性能 系统CPU时间 CPU时间(计算时间) 用户CPU时间 可以看出 CPU性能:CPU执行程序所用的时间。
与三个因素 有关: ①时钟频率 ②每条指令 所需的平均 时钟周期数 ③指令数目 CPU性能:CPU执行程序所用的时间。 CPU时间=ICCPI Tc 时钟 周期 CPU执行某一程序中所包含的指令总数 执行每条指令所需的平均时钟周期数

69 同时也可以通过CPI的值了解计算机的性能.
单CPU性能 ①时钟频率,取决于硬件技术和组织. ②每条指令所需的平均时钟周期数,取决于系统结构组织和指令集. ③指令数目,取决于系统结构的指令集和编译技术. 为提高CPU的性能提供了方向. 同时也可以通过CPI的值了解计算机的性能.

70 ∑ n ∑ (CPIi×Ii) i=1 IC × (CPIi Ii) n i=1 I:第i类指令 Ii:第i类指令的数目
执行整个程序所需的CPU时钟周期数 程序中指令的总数 执行整个程序所需的CPU时钟周期数 CPI= IC n i=1 (CPIi×Ii) 第i类指令在总程序中占的比例 =∑(CPIi× ) n i=1 Ii IC

71 例1.1:某台计算机只有Load/Store指令能对存储器进行读/写操作,其它指令只对寄存器进行操作,根据程序跟踪实验结果,已知每种指令所占的比例及CPI数如下:
指令类型 指令所占比例 CPI 算逻指令 LOAD指令 SRORE指令 转移指令 43% 21% 12% 24% 1 2 解: CPI=1×0.43+2×0.21+2×0.12+2×0.24 = =1.57

72 其中T0 为没有采用改进措施前的执行时间, Tn为采用改进措施后的执行时间.加速比用来衡量改进措施对系统性能提高的程度.(Amdahl定律)
计算机的基本性能指标 2.加速比 加速比的定义为: Sn=T0/ Tn 其中T0 为没有采用改进措施前的执行时间, Tn为采用改进措施后的执行时间.加速比用来衡量改进措施对系统性能提高的程度.(Amdahl定律) 若用Fe表示改进前可被改进的执行时间相对于T0的百分比,那么, 改进前不被改进部分的执行时间相对T0的百分比为1- Fe.另外,用 Se表示可被改进部分改进前执行时间对改进后执行时间的比值, 即被改进部分改进后的速度提高倍数,可用Fe和 Se表示Tn为: Tn=T0(1- Fe )+T0 Fe/ Se= T0(1- Fe+ Fe/ Se) Sn=T0/ Tn=1/(1- Fe+ Fe/ Se) 由于0≤Fe≤1 , Se ≥1,所以Sn≥1.当Se →∞时, Sn=1/(1- Fe) 即整个系统的性能提高程度受Fe的限制.

73 计算机的基本性能指标 2.加速比 例1.2 假设将某系统的某一部件的处理速度加快到原来的10倍,但该部件的原处理时间仅为整个执行处理时间的40%,那么,采用加快措施后能使整个系统的加速比提高到多少?

74 例1. 3:如果FP操作比例为25%,FP的平均CPI FP=4,其他指令的平均CPI(它) 为1
例1.3:如果FP操作比例为25%,FP的平均CPI FP=4,其他指令的平均CPI(它) 为1.33,FPSQR操作比例为2%,而FPSQR的CPISQR=20. 改进的方案有二: 一是提高FP操作的速度,使其增加一倍即CPIFP改=2; 一是提高FPSQR的速度10倍,即CPISQR改=2. 试比较两个方案,求解:其中设定IC与TC都是不变的,在此基础上求出改进前后所具有的CPI值,进行比较: CPI(原)= =(40.25)+(1.330.75)=2 采取以下两种方案进行改进: (CPIi× ) n i=1 Ii IC

75 或 两者比较还是方案1更好些 方案1: 改进所有浮点操作指令使FP的平均CPI值提高一倍,即: CPIFP(改)=2
整个程序在改进后的值为: CPI (改)=(2×0.25)+(1.33×0.75)=1.5 =CPI(原)-0.25×(CPIFP(原)-CPIFP(改)) = ×(4-2)=1.5 方案2:只改进FPSQR指令,使其CPI值提高10倍,即CPISQR(改)=2 整个程序改进后的值应为: CPI(改)=CPI(原)-0.02×(CPIFPSQR(原)-CPIFPSQR(改)) =2-0.02×(20-2)=1.64 两者比较还是方案1更好些

76 例1. 4:假设某个测试程序中FPSQR操作占整个程序执行时间的20%,而所有浮点运算指令FP操作占整个程序执行时间的50%
例1.4:假设某个测试程序中FPSQR操作占整个程序执行时间的20%,而所有浮点运算指令FP操作占整个程序执行时间的50%.现有两种技术来提高系统性能,一种方法是采用FPSQR硬件,使FPSQR的操作的速度速度提高10倍.另一种方法是使所有浮点运算指令速度加快,是FP指令的速度提高2倍,请比较这两种方案.

77 计算机的基本性能指标 3.MIPS和MFLOPS
由于影响程序执行时间的因素有系统结构、算法和程序,各机器间差异较大.通常用2种替代标准来衡量机器的性能. (1)MIPS(million instruction per second)—百万条指令数 / 秒 对于一个给定的程序,MIPS定义为: 程序的执行时间为:

78 1.MIPS与指令集有关,不适于比较不同指令集结构的机器 2.不同程序测同一台计算机会得到不同的MIPS值
4.不能反映机器的浮点运算能力

79 (2)MFLOPS—(million floating point operations per secont )百万个浮点操作/秒
可以比较不同机器的浮点运算能力, 但有局限性 MFLOPS不仅和机器有关, 也和所用测试程序有关,不同程序 在同一机器上的MFLOPS会不相同. 2. 只能测试机器浮点操作的性能,而不能反映机器的整体性能. 3.不同机器的浮点指令不同,MFLOPS不仅与浮点操作的比例有 关,还和快慢浮点操作的比例有关,因此比较的结果并不可靠.

80 4.基准测试程序的执行时间 计算机的基本性能指标 (1)平均执行时间 是各测试程序执行时间的算术平均值
基准测试程序是为测试比较机器性能而专门编制的程序,它考虑了各种操作和各种程序的比较.将n个程序在机器上运行,记录它们的执行时间,然后按照一定的方法对n个执行时间进行处理,之后来评价机器的性能. (1)平均执行时间 是各测试程序执行时间的算术平均值

81 4.基准测试程序的执行时间 计算机的基本性能指标 (2)加权执行时间 是各测试程序执行时间的加权平均值
其中,权因子Wi是第i个测试程序在总共n个测试程序中所占 的比重.

82 例1.5用一台40MHz处理机执行标准测试程序,该程序所含的混合指令数和相应所需的时钟周期数如下:
基准测试程序的执行时间 例1.5用一台40MHz处理机执行标准测试程序,该程序所含的混合指令数和相应所需的时钟周期数如下: 指令类型 指令数 时钟周期数 整数运算 数据传输 浮点运算 控制传送 45000 32000 15000 8000 1 2 求测试程序的CPI、MIPS速率和执行时间.

83 基准测试程序的执行时间 例1.6已知4个程序在计算机A、B、C上的执行时间分别如下表所示.
单位:S 程序 A机 B机 C机 程序1 1 10 20 程序2 1000 100 程序3 500 50 程序4 800 假设4个程序都分别执行100× 条指令,计算这4个程 序分别在计算机A、B、C上执行的MIPS.根据这些速 率值你能否直接评价这3台计算机相对性能的优劣?如 果不能,你能否找到一种方法对这3台计算机的性能进 行排序.


Download ppt "第1章 导论 【学习内容】 1.1计算机系统结构的基本概念 1.2计算机性能评测价 学习目标."

Similar presentations


Ads by Google