1、1.1 计算机系统结构设计的重要性,计算机的发展历史,计算机飞速发展的原因,技术进步 集成电路技术的进步,还有存储器(包括内外存)和各类外设的进步。 特点:稳定发展,即按Moore定律发展,即微处理器性能(按芯片上晶体管数定义)每18个月翻一番,即每年提高58%。 计算机设计创新-体系结构的不断创新。 历程:简单复杂极其复杂简单复杂极其复杂 有时快,有时慢(1977年的VAX/780为MIPS机器,1985年VAS/785仅为1.5 MIPS,几乎停止不前。 有很多技术,经不起时间考验,已退出历史舞台。,1.4 计算机系统结构的发展,计算机系统结构发展历程,Von Neumann计算机的特征:
2、(1)、存储器,一维结构(2)、存储器,一级地址空间(3)、低级机器语言驱动(4)、指令,顺序执行(5)、以运算器为中心,计算机系统结构的改进:(1)、并行算法(2)、面向高级语言机器(3)、面向操作系统机器(4)、数据驱动型、需求驱动型(5)、专用计算机(6)、容错计算机(7)、外围处理机、通信处理机(8)、LSI、VLSI(9)、智能计算机,软件对系统结构的影响,软件危机 软件的可兼容性 软件的可移植性三种方法:系列机的方法、模拟与仿真的方法、统一的高级语言的方法,1、采用系列机的方法,向上兼容: 486机器的程序,可以运行在586机器上向下兼容: 586机器的程序,可以运行在486机器上
3、向前兼容: 2002年生产的机器上的程序,可以运行在1999年生产的机器上向后兼容: 1999年生产的机器上的程序,可以运行在2002年生产的机器上系列机: 同一厂家生产的机器兼容机: 不同厂家生产的机器 Amdahl 470/480与IBM 370兼容,2、采用模拟与仿真的方法,在一种机器的系统结构上实现另一种机器的系统结构,模拟方法:采用纯软件的方法 速度慢在A上模拟BA称为宿主机,B称为虚拟机,仿真方法:采用微程序直接解释另一种机器指令系统的方法 速度快在A上仿真BA称为宿主机,B称为目标机,3、采用统一的高级语言方法,语言的标准化,应用对系统结构的影响,应用领域:(1)、科学计算(2)
4、、事物处理(3)、实时控制(4)、大存储器容量(5)、图形学(6)、人工智能通用机和专用机,1.4.5 器件对系统结构的影响,那时看来使用大型计算机在经济上是合算的,现在许多用户共享一台大型机看来并不非常经济了 用户片 现场片 通用片,体系结构演化过程,今天计算机体系结构的研究内容,进一步提高单个微处理器的性能 基于微处理器的多处理器体系结构。 全面提高计算机的系统性能:可用性,可维护性,可缩放性。 新型器件的处理器。,计算机系统的分类,当前计算机的种类 Flynn分类法 SISD SIMD MISD MIMD 冯氏分类法 Handle分类法 Kuck分类法,当前计算机的种类,1989IEEE
5、电气与电子工程师委员会提出的计算机分类: 个人计算机 Personal Computer (PC) 工作站 WorkStation (WS) 小型机 Mini Computer 中型机 Mainframe 小巨型机 Minisupercomputer 巨型机 Supercomputer * 网络并行计算机,Flynn分类法,Flynn分类法: 根据指令流和数据流的多倍性对计算机系统结构进行分类, 基本思想:是计算机工作过程是指令流的执行和数据流的处理。 指令流:机器执行的指令序列 数据流:由指令流调用的数据序列(包括输入数 据和中间结果) 多倍性:在系统性能的瓶颈部件上处于同一执行 阶段的指令
6、或数据的最大个数。,.单指令流单数据流 SISD,典型的SISD机器:传统的顺序计算机 SISD机器结构:CU:控制部件 IS:指令流 PU:处理部件 DS:数据流 MU:存储部件,典型的SISD: 冯诺依曼结构,典型结构:冯诺依曼结构-传统的顺序计算机,2.单指令流多数据流 SIMD,单指令流一多数据流 SIMD 超级计算机单控制器、多处理单元和多对数据进行处理 PU:处理单元 MM:本地存储器(分布存储器),例:典型的SIMD结构 -H.J. Siegel 1979 提出的操作模型,3. 多指令流单数据流 MISD,多指令流一单数据流 MISD 多个处理器,对同一数据流进行处理MM主存贮模
7、块,SM共享存储器,典型的MISD机器,这类计算机的实际机器并不多,一般认为超标量计算机、长指令字计算机(VLIW)和退耦(Decounted)计算机和专用脉动阵列(Systoic arrays)计算机可以作为此类计算机。 例:典型结构:脉动阵列计算机,4多指令流多数据流MIMD,多机系统-多个处理器系统或多计算机系统每个处理机可以独立执行指令和处理数据一般并行计算机大多采用这种结构。,例:矩阵运算,例:矩阵运算,=,ae+cf ag+chbe+df bg+dh,C,例:阵列计算机矩阵运算,冯氏分类法,1972年,美藉华人冯泽云,提出根据最大并行度Pm进行分类 最大并行度Pm:单位时间内能处理
8、的最大二进制位数 设每个时钟ti内处理Pi位数据,共N个时钟平均并行度: 并行度取决于系统运行程度,与应用程序有关, 平均利用率:,冯氏分类法(续),两参数决定计算机并行度结构类型:可构成四种计算机结构: 字串行,位串行 WSBSW = 1,B = 1 字并行,位串行 WPBSW1,B = 1 传统 字串行,位并行 WSBPW = 1,B1 MPP 字并行,位并行 WPBPW1,B1,1.2 计算机设计的任务,确定用户的目标(需求功能, 价格, 性能) 确定计算机的属性(计算机系统结构) 指令集结构设计(程序员可见的指令集, 软硬件界面) 组成设计(存储系统,总线结构,CPU内部设计) 硬件设
9、计(详细逻辑设计, IC设计,封装 ,电源 ,冷却) 设计优化 在一定价格限度下追求性能最优(性能/价格比) 软硬件设计的复杂度,实现技术及使用机器的发展趋势 可靠性, 容错性(事务处理) 编译和OS优化,计算机功能需求,确定用户的目标,确定用户的目标 需求功能计算机的使用者根据应用要求提出的功能不同的应用有不同的要求:图形、计算、控制、商务 价格计算机的价位-对于成本估价非常重要 性能 计算速度 可用性指标 故障恢复时间,确定计算机的属性-功能设计(1),功能选择的原则基本原则设计者:成本性能比有赢利使用者:价格性能比能承受 功能结构设计 -根据基本原则在需求功能中选择计算机应有的功能 考虑
10、因素:用户、价格、应用领域、技术、兼容性、市场功能的使用情况 实现方法:直接实现、间接实现,软硬件功能分配,软件实现 优点: 低成本 可改性好、适用性强 设计周期短、升级提高较简单 好的软件算法比差的硬件实现的算法来的快 缺点: 执行速度慢:是以牺牲时间来实现其功能的存储费用、软件设计费用增加 编译重要性:软件的算法变得越来越重要 硬件实现-基本功能一般用硬件直接实现 优点: 速度快、性能高 缺点: 成本高,设计周期长(工艺),软硬件功能分配,直接实现用硬件或指令直接支持 价格性能比好的的给与直接实现 现代技术能实现的给与直接实现 计算机实现必需的给与直接实现 使用概率高的给与直接实现 间接实
11、现用软件或编译间接支持 成本太高的将其分解,间接实现 技术上达不到的将其分解间接实现 使用概率低的将其分解间接实现,计算机系统设计的主要方法,Buttom-upTop-downMiddle-out (软件设计与硬件设计同时进行),1.5 性能测量与分析报告,常用性能指标 性能测量发展历史 测试程序的选择 测量结果的分析报告,常用性能指标,MIPS-百万条指令数 / 秒指令数 MIPS = -执行时间106注意 MIPS与指令集有关,不适于比较不同指令集结构的机器 不同程序测同一台计算机会得到不同的MIPS值 MIPS反映的性能可能会与实际情况相反,MFLOPS-百万个浮点操作/秒,浮点操作次数
12、MFLOPS= 执行时间106 可以比较不同机器的浮点运算能力, 但有局限性 MFLOPS不仅和机器有关, 也和所用测试程序有关 不同机器的浮点指令不同 MFLOPS与整数. 浮点操作的比例有关,响应时间-系统性能,响应时间(elapsed time)-计算机系统完成某一任务(程序)的时间, 包括磁盘访问,存储器访问,输入/输出以及OS开销的时间。,CPU time- CPU性能,用户CPU时间! CPU真正执行用户代码的时间 系统CPU时间 CPU执行OS代码所占用的时间 系统CPU时间难测的原因: 1. 不同的机器用不同的OS 2. 系统CPU时间是由OS自身测量的 3. OS系统代码在有
13、些机器上也算用户代码,基准程序测试,正确评价性能的两个关键问题: 如何选择测试程序 如何对测量的数据进行统计分析 最好的测试程序:实际工作负载 如何模拟用户环境: 主体:CPU、存贮器空间、I/O和软件 客体:处理对象、事件环境根据使用环境设计、选择测试程序基准程序 实际测试 模拟测试 仿真测试 局部测试,基准测试程序的一般设计原则,具有代表性,反映用户的实际应用 不能对基准程序进行优化 复现性:能重复测试,环境相同,结果相同 可移植性:系统相关性要小 紧凑性:基准程序不宜太庞大 成本效率比要高,1.6 计算机的定量设计原则,高频事件高速处理(Make The Common Case Fast
14、) Amdahl定律 CPU性能计算公式 局部性原理,Make The Common Case Fast,提高高频事件的执行速度,有助于提高整体性能 高频事件往往是简单事件,更易于提高速度 例1. 常用指令用硬件实现 , 复杂杂指令用软件实现 例2. 优先考虑不溢出的情况 高频事件尽量高速 低频事件保证正确,Amdahl定律,Amdahl定律:计算机性能的改善程度受其采用的快速部件(被提高性能的部件)在原任务中使用所占的时间百分比的限制。 使用增强部件后的性能 Speedup =-未用增强部件时的整机性能未用增强部件时执行一个任务的时间 =- 使用增强部件后执行该任务的时间Told= - (1
15、)Tnew,Amdahl定律形式(2),Told Told 1 Speedup = - = - = - Tnew (1-F)Told+FT/S (1-F) + F/S 其中 F -任务在可改进部件上的执行时间 在(未用增强部件的原机器上)总执行时间中的百分比 S -改进后部件性能提高的倍数(部件性能加速比),Amdahl 定律的作用,机器性能提高有一极限值:1/1-F 在F不变时,无限制地提高某一部件的性能无助于提高整机性能;从成本上看,反而会得不偿失。 指明了设计原则: 按各部分所占的时间比例来分配资源。 指出了两种改进设计提高性能的方法: 提高S,即优先考虑高频事件,使之尽量快速实现 减小
16、(1-F ),进一步提高高频事件的使用频度给出了定量比较不同设计方案的方法,例1 软硬件实现的选择,已知某商用计算机拟增加字符串操作功能。若用软件实现,与无字符串操作相比,速度提高了4倍,CPU成本提高了1/5倍;若用硬件实现,则速度是原来的100倍,CPU成本是原来的5倍。由实验测得,字符串操作占总运行时间的50%;CPU成本约占整机成本的1/3。你选用哪种设计方案?,两种方法均提高性能,且程度相近。增加此功能是恰当的。,用软件实现此功能较好: 硬件:成本性能比增加了0.18倍,软件:成本性能比却下降了0.36倍,例2.FP SQRT的实现方法比较,已知某一基准测试程序中FPSQRT操作占2
17、0%的运行时间。一种实现方法是引入FPSQRT硬件, 它能使运算速度提高9倍; 另一种方法是把所有浮点操作的速度提高到原来的2倍。已知运行时间的50%是在执行浮点操作, 问哪种方法更好?,CPU性能计算公式,CPUtime = 程序执行所用的CPU时钟周期数* 时钟周期(CC)= 程序执行所用的CPU时钟周期数 / 时钟频率(CR)(1) 若已知程序动态执行的指令条数(IC), 则可得:程序执行所用的CPU时周期数 平均指令执行时钟周期数(CPI) = -程序动态执行的指令总条数 由此可得公式的另一种表示方式:CPUtime = IC * CPI * CC (2) 或表示为 = IC * CP
18、I / CR,CPUtime 计算公式的意义,CPU性能依赖于三个参量: IC, CPI, CC; 说明改进CPU性能的三种途径.尽管同时缩小三个参数是不可能的,而且改变其中的一个都可能因此影响其他两个参量,但改变这三个参数的技术途径是独立的: CC -硬件和组成技术 CPI-组成和指令集系统结构 IC -指令集系统结构和编译技术,CPUtime 计算公式形式(3),若已知每种指令执行所需的时钟周期数(CPI i),和每种指令的动态执行次数(IC i),则可得CPUtime的第三种表示形式:nCPUtime = ( CPIi ICi )CC (3)i=1 CPUtime计算公式的优点:在Amd
19、ahl定律中, F的计算是很困难的, 而统计IC或测量CPI 却相对容易得多.,例1 计算CPUtime,CPI = 43%121%212%224%2=1.57 CPUtime = IC1.57CC,例2 FP SQRT的实现方法比较,已知测量数据如下: FP操作指令的使用频度= 25%, FP指令的平均CPI = 4.0, 其他指令的平均CPI = 1.33, FPSQRT的使用频度=2%,FPSQRT的CPI=20.一种方法是设法把FPSQRT的CPI减少到 2;另一种方法是使所有FP指令的平均CPI减少到 2. 问哪种方案更好? 原CPI = (425%)(1.3375%) = 2.0新CPI FPQRT = 2 2%(20-2)= 1.64新CPI FP = (225%)(1.3375%) = 1.5原CPUtime 原CPI 2.0Speedup FP= = = = 1.33新CPUtime 新CPIFP 1.5,局部性原理,90/10局部性规则 90%的运行时间是花费在执行10%的指令上 代码的局部性特征更明显 时间局部性 若某一数据被引用,则不久以后它可能被再次引用 空间局部性 若某一数据被引用,则它附近的数据不久也将被引用,