840 likes | 1.03k Views
1.4 计算机系统结构的å‘展. 1.4.1 冯 · 诺ä¾æ›¼ç»“æž„ 1.4.2 器件å‘å±•çš„å½±å“ 1.4.3 应用å‘å±•çš„å½±å“ 1.4.4 改进算法的影å“. 1.4.1 冯 · 诺ä¾æ›¼ç»“æž„. å˜å‚¨ç¨‹åºè®¡ç®—机体系结构 Van Nenmann 基本æ€æƒ³ 于 1936 年~ 1946 年期 é—´å½¢æˆï¼Œ 由冯 · 诺ä¾æ›¼ç‰äººäºŽ 1946 å¹´æ出. 1. 特点 : å˜å‚¨ç¨‹åºã€è¿ç®—器为ä¸å¿ƒã€é›†ä¸æŽ§åˆ¶ å˜å‚¨å™¨æ˜¯å—长固定的ã€é¡ºåºçº¿æ€§ç¼–å€çš„一维结构,æ¯ä¸ªåœ°å€æ˜¯å”¯ä¸€å®šä¹‰çš„。 4096 个å—ã€40ä½ã€‚ 由指令形å¼çš„低级机器è¯è¨€é©±åŠ¨ã€‚
E N D
1.4 计算机系统结构的发展 1.4.1 冯·诺依曼结构 1.4.2 器件发展的影响 1.4.3 应用发展的影响 1.4.4 改进算法的影响
1.4.1 冯·诺依曼结构 存储程序计算机体系结构 Van Nenmann基本思想于1936年~1946年期 间形成,由冯·诺依曼等人于1946年提出
1. 特点: 存储程序、运算器为中心、集中控制 存储器是字长固定的、顺序线性编址的一维结构,每个地址是唯一定义的。 4096个字、40位。 由指令形式的低级机器语言驱动。 指令顺序执行,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现。 运算器为中心,输入输出设备与存储器之间的数据传送都途经运算器。 运算器、存储器、输入输出设备的操作以及它们之间的联系都由控制器集中控制。
2. 现代处理机对冯·诺依曼结构的改进 不变的:存储程序 改变的:存储器为中心, 总线结构, 分散控制 从基于串行算法变为适应并行算法,出现了向量计算机,并行计算机、多处理机等 流水线处理机,超标量处理机,超流水线处理机,超标量超流水线处理机 数据库计算机和知识库计算机 专用计算机,如FFT变换机、过程控制计算机 为获得高可靠性而研制容错计算机 功能分散化、专业化,出现了各种分布计算机、外围处理机、通信处理机等
总线结构,分散控制 总线: 连接计算机各功能部件的连线和管理信息传输规则的逻辑电路称为总线。 特点:在任何时刻,只能有一个部件向总线上发送信息,可以有多个部件同时接收信息。 组成: 数据总线、地址总线、控制总线。 单总线结构 总线 输出 设备 输入 设备 CPU 主存
处理机总线 主存 双总线结构 CPU 32或64位 32MHz 扩展总线 控制线路 8.33MHz 8、16、32位 ISA / EISA I/O设备 I/O设备 . . . . .
三总线结构 处理机总线 主存 CPU 100MHz 32或64位 PCI桥 33MHz 4B PCI BUS 接快速设备 I/O设备 I/O设备 扩展总线 控制线路 8.33MHz 8、16、32位 ISA / EISA 接慢速设备 I/O设备 I/O设备 . . . . .
3. 非冯计算机的发展 什么是非冯计算机?非指令驱动,… 从传统的指令驱动型改变为数据驱动型,出现了数据流机计算机。 从传统的指令驱动型改变为需求驱动型,出现各种图归约计算机。 处理非数值化信息的智能计算机,自然语言、声音、图形和图象处理,虚拟现实处理等 第五代计算机,由推理机和知识库机等组成。历经10年,召开过多次专题国际会议。 神经网络计算机,仿生计算机,…
1.4.2 器件发展的影响 1. 第1代至第4代计算机以器件来划分 第一代:电子管(Valve) 第二代:晶体管(Transistor) 第三代:集成电路(LSI) 第四代:大规模集成电路(VLSI) 第五代:智能计算机? 第五代计算机以什么作为标志来划分? 第五代计算机什么时候诞生?
2. 器件发展的特点 (1) 集成度迅速提高 目前水平:每个芯片有1010个晶体管 单芯片内可以做大于1Gb存储器, 单芯片内可以集成2个CPU+全部Cache 每4~5年提高一个数量级 还远没有达到集成度的极限 问题? 如何利用器件集成度的提高,不断改进计算机系统的性能:例如,有更多指令并行执行,采用更深的流水线,集成更多的Cache等
(2) 提高速度空间不大 目前CPU主频已经到达6GHz, 时钟周期0. 16ns,门延迟小于0.01ns 极限速度30万公里/秒/2=1.5mm/0.01ns 信号在导体中传递速度小于光速的50%。 Pentium芯片面积500mm2,即23mm 23mm 器件速度提高的余地已经很小,将来提高处理 机速度更多依靠系统结构的发展 可从系统结构的两个方面提高处理机速度: 提高IPC,从目前的2左右提高到8以上, 采用更深度的流水线和并行处理技术
(3) 价格直线下降 CPU芯片的价格每年要下降>80% (4)可靠性越来越高 芯片可靠性达到108小时,连续使用1万年以上
3. 器件种类 通用片:逻辑关系确定 大批量生产,如:CPU、存储器、寄存器… 现场片:可以一次或多次改写逻辑关系 如:PLD、PAL、PROM、EPROM、FPGA… 用户片:各种专用芯片 需要单独设计和生产。 半用户片:门阵列片等 标准的门电路,前几到工序已经完成; 根据用户需要确定最终连线。
4. 器件发展对计算机组成技术的影响 器件速度与处理机工作主频 1955年第一台大型机 IBM704 机,主频12us, 1976年巨型向量计算机CRAY,主频12.5ns, 目前,Pentium4 的主频已经达到 3GHz 器件速度与指令执行时间 46年来器件速度提高104,指令速度快108以上 系统结构和组成技术的作用 器件速度提高减慢, 处理机主频提高速度减缓 指令执行速度的提高基本保持不变(摩尔定理)
1.4.3 应用发展的影响 1. 应用需求 高结构化数值计算:气象模型,流体流动,有限元分析。 非结构化的数值计算:蒙特卡洛模拟, 稀疏矩阵。 实时多因素问题:语音识别,图象处理, 计算机视觉。 海量存储和输入输出密集问题:数据库, 事务处理。 图形学和设计系统:计算机辅助设计。 2. 三个时期 通用计算机:主要是通用科学计算 专用计算机:科学计算、事务处理、实时控制 高性能通用机:满足多种需求 目前又开始多种专用处理机的研制
3. 两个发展趋势 维持价格不变,利用VLSI技术等,提高性能 性能基本不变,价格迅速下降 一般先推出中间机型,然后再分别向高端和低端两个方向发展 4. 三种设计思想 最高性能价格比:商用机。主要发展方向 最高性能:国家安全需要,科技发展需要 例如:银河计算机、神州计算机、… 最低价格:家用学习机等
1.4.4 改进算法的影响 在多个层次上,算法影响着系统结构,例如: 快速乘法、除法、开平方等的实现: 记分板算法、Tomasulo算法提高指令级并行性 消除名字相关、数据相关、控制相关的算法 有些问题,如果算法上有突破,不需要高性能的系统结构,而在普通系统上就能得到解决。 许多算法还有改进的余地,通过算法的研究能够大幅度提高系统的性能。 系统结构设计者要研究算法,应该研究一系列算法,使所有同类问题都能很好解决。
1.5影响计算机体系结构的成本和价格因素 • 设计者如果想在考虑成本因素的情况下对是否增加某一功能特性做出明智的选择,就必须对成本及其要素有所了解,否则就会像建筑师对钢筋和水泥的行情一无所知就去设计摩天大厦一样不可想像。 • 商品的标价(价格)由原料成本、直接成本、毛利、和折扣等因素构成。 • 原料成本是指一件产品中所有部件的采购成本总和。 • 直接成本通常是在原料成本上增加10%~30%。 • 毛利主要包括公司的研发费用、市场建立费、销售费用、行政管理费、生产设备维护费用、房租、贷款利息、固定资产折旧、税后利润和所得税等 • 直接成本+毛利相加=平均销售价格 • 一般标价还包括平均销售价格之上的折扣
影响因素 • 对计算机系统成本产生影响的主要因素有时间、产量、商品化等。 • 对成本产生最直接影响的是时间。产品的成本与成品率成反比。 • 产量是决定产品成本的第二个关键因素。产量的增加会加速工艺的稳定;产量的增加提高了生产效率;产量的增加可降低每台单机必须加入的开发费用。 • 商品化也是影响产品成本的重要因素,但更重要的是它影响产品的价格。
集成电路的成本 • 圆片和基片 • 对圆柱形的单晶硅进行切片,生产出大片的圆片(wafer) • 在圆片上制造出大量电路单元,圆片经过测试后按照制造的电路单元被切割成方形的基片(die)(图见P24)。
集成电路的成本 • 基片在外壳中封装好以后就是集成电路成品。 基片成本+基片测试成本+封装和最终测试成本 • 最终成品率 • 圆片成本 • 每块圆片上的基片数×基片成品率 • 圆片面积 ×圆片直径 • 基片面积 集成电路成本= 基片成本 = 每块圆片上的基片数= • 式中第2项用于计算在圆片边界上的基片数,其数量大约等于圆片圆周除以正方形基片的对角线长。
集成电路的成本 • 一块直径为20CM的圆片能够切割出边长为1CM的正方形基片个数为? • 一块直径为20CM的圆片能够切割出边长为1.5CM的正方形基片个数为?
集成电路的成本 • 采用直径为30CM的圆片能够切割出边长为1CM的正方形基片个数为? • 采用直径为30CM的圆片能够切割出边长为0.7CM的正方形基片个数为? 从上述计算可以看出,采用大直径的圆片可以一次生产出更多的基片, 当基片面积较小时,大圆片的这种优势更加明显。
主要依赖于集成电路使用的掩模层数和制造工艺,一般取主要依赖于集成电路使用的掩模层数和制造工艺,一般取 集成电路的成本 疵点密度是与生产工艺有关的随机数
集成电路的成本 成品基片数=基片成本率×每块圆片上的基片数 对于采用直径30CM的圆片,可以生产边长1CM的成品芯片个数为? 对于采用直径30CM的圆片,可以生产边长0.7CM的成品芯片个数为? 组合得到公式如下: 掩模成本也是集成电路成本的重要组成部分。
1.6定量分析技术基础 1.6.1计算机性能的评测 • 响应时间:从事件开始到结束之间的时间,也称为执行时间。 • 吞吐率(或流量throughput):在单位时间内所能完成的工作量。 • 相同点:以最短时间完成指定任务的计算机是最快的; • 不同点:响应时间针对单任务,而流量针对多任务。 • 目前公认的相对可靠的性能评价方法:真实程序的响应时间。
1.6.1性能设计和评测的基本原则 • 加快经常性事件的速度即大概率事件优先原则 对于大概率事件(最常见的事件),赋予它优先的处理权和资源使用权,以获得全局最优结果。 计算机体系结构设计中最重要和最常用的原则,首先确定什么是大概率事件,同时要说明针对该事件进行的改进将如何提高机器的性能。 • Amdahl定律 对机器进行某种改进,那么机器系统的加速比就是:
或者 系统加速比依赖于两个因素: • 可改进部分在原系统计算时间中所占的比例; 例如,一个需要运行60s的程序中有20s的运算可以加速,那么该比例就是20/60。这个值用“可改进比例”表示,它总是小于等于1的。 • 可改进部分改进后的性能提高。 例如,系统改进后执行程序,其中可改进部分花费2s的时间,而改进前该部分需花费5s,则性能提高为5/2。用“部件加速比”表示性能提高比,一般情况下上大于1的。 系统加速比告诉我们改进后的机器比改进前快多少。
部件改进后, 系统的总执行时间=不可改进部分的执行时间+可改进部分改进后的执行时间, 即:
系统加速比为改进前与改进后总执行时间之比,即:系统加速比为改进前与改进后总执行时间之比,即: 性能增加的递减规则:如果仅仅对计算机中的一部分做性能改进,则改进越多,系统获得的效果越小。 Amdahl定律的重要推论:如果只针对整个任务的一部分,进行优化,那么所获得的加速比不大于1/(1-可改进比例)。 指导意义:具有高性价比的计算机系统是一个带宽平衡的系统,而不是看它使用的某些部件的性能。
程序的局部性原理 • 程序的局部性原理是指: (a)程序在执行时所访问地址的分布不是随机的,而是相对簇聚;(b)这种簇聚包括指令和数据两部分;(c)程序局部性包括程序的时间局部性和程序的空间局部性。 • 阐释:时间局部性说如果一个存储单元被访问,则可能该单元会很快被再次访问;这是因为程序存在着循环。空间局部性说如果一个存储单元被访问,则该单元邻近的单元也可能很快被访问;这是因为程序中大部分指令是顺序存储、顺序执行的,数据一般也是以向量、数组、树、表等形式簇聚地存储在一起的。
4) CPU性能公式 • 响应时间有多种定义,其中最直观的定义是计算机完成某一任务所花费的全部时间,包括访问磁盘、访问存储器、输入/输出、操作系统开销等。在多任务系统中,CPU在一个程序等待I/O时,可以处理另一个程序,从而提高系统的运行效率。所以提出CPU时间的概念。 • CPU时间是CPU工作的时间,不包含I/O等待时间及运行其他程序的时间。 • 用户看到的响应时间是程序完成任务所花费的全部时间,而不是CPU时间。CPU时间还可细分为用户CPU时间和系统CPU时间,前者表示用户程序所花费的CPU时间,后者表示用户程序运行期间操作系统花费的CPU时间。
4) CPU性能公式 • 计算机工作的时钟频率,单位是MHz或GHz,可以测量执行程序使用的总时钟周期数;如此就知道程序执行的CPU时间: • 程序执行过程中所处理的指令数,记为IC(Instruction Counter)。“指令时钟数”CPI(Cycles Per Instruction): CPI = 总时钟周期数/IC • 程序执行的CPU时间就可以写成: 总CPU时间=CPI ×IC / 时钟频率 这个公式通常称为CPU性能公式。
CPU性能公式分析 CPU性能公式中三个参数反映了体系结构相关的三种技术: • 时钟频率:由硬件技术和计算机组成决定。 • CPI:由指令集的系统结构和计算机组成决定。 • IC:由指令集的系统结构和编译器技术决定。 启示:通过改进计算机系统的设计,可以提高这三个参数的指标,从而提高计算机系统的性能。从目前的情况看,提高某一个参数指标,不会明显地影响其它两个指标。这对于综合运用各种技术改进计算机系统的性能是非常有益的。
假设计算机系统有n种指令,其中第i种指令的处理时间为CPIi,在程序中第i种指令出现的次数为ICi,则程序执行时间为假设计算机系统有n种指令,其中第i种指令的处理时间为CPIi,在程序中第i种指令出现的次数为ICi,则程序执行时间为 这个公式同时反映了计算机系统中每条指令的性能。
例3 假设我们有如下的测量值: FP指令(包括FPSQR)的执行频度=25% FP指令的平均CPI=4.0 其它指令的CPI=1.33 FPSQR指令的执行频度=2% FPSQR指令的CPI=20 假定有两种备选的设计方案,一种是把FPSQR的CPI减至2,另一种是把所有FP的CPI减至2.5。接下来我们用CPU性能公式比较这两种方案。
例4 假设考虑条件分支指令的两种不同设计方法如下: • CPUA:通过比较指令设置条件码,然后测试条件码进行分支。 • CPUB:在分支指令中包括比较过程。 • 在两种CPU中,条件分支指令都占用2个时钟周期,而所有其他指令占用1个时钟周期,对于CPUA,执行的指令中分支指令占20%,;由于每个分支指令之前都需要有比较指令,因此比较指令占20%。由于CPUA在分支时不需要比较,因此假设它的时钟周期时间比CPUB快1.25倍。哪一个CPU更快?如果CPUA的时钟周期时间仅仅比CPUB快1.1倍,哪一个CPU更快?
1.6.2 运算速度 运算速度是表示处理机性能的主要指标。 有多种表示处理机运算速度的方法。 哪一种表示方法合理? 1. 时钟频率(处理机主频) 只能用于同一公司、同一类型、同一配置的处理机 如:Pentium42.0G比Pentium41.6G快25%? Pentium42.4G比Pentium41.6G快50%? 只表示CPU的指令处理能力 实际运算速度还与Cache、内存、I/O、被执行程序等均有关。
2.指令执行速度 • 一种经典的表示运算速度的方法 • MIPS(Million Instructions Per Second), GIPS, TIPS • 其中: Fz为处理机的工作主频 • CPI(Cycles Per Instruction)为 • 每条指令所需的平均时钟周期数 • IPC(Instruction Per Cycle)为 • 每个时钟周期平均执行的指令条数 • 例1:计算 PentiumIV 2GHz 处理机的指令执行速度。
解:由于 PentiumIV 2GHz 处理机的 • IPC=4(或CPI=0.25), • Fz=2000MHz • 因此,MIPSPentiumIV2G=FzIPC=20004 • =8000MIPS=8GIPS • 即每秒钟80亿次(平均每秒钟执行80亿条指令) • 主要优点:直观、方便。目前还经常使用 • 主要缺点: • (1) 不同指令的执行速度差别很大 • (2) 指令使用频度差别很大 • (3) 有相当多的非功能性指令
3. 指令执行速度的 4 种平均方法 • 算术平均: • 调和平均(用速率来度量): • 加权平均 • 加权算术平均: • 加权调和平均:
几何平均: • 其中:n 指不同的程序,ETR(execution time ratio) i是第i个程序相对于参考机器归一化后的执行时间 • 几何平均速度与所参考的机器无关,有如下性质: • 几何平均值的比率等于比率的几何平均值
运行程序P1时,A的速度是B的10倍; 运行程序P2时,B的速度是A的10倍; 运行程序P1时,A的速度是C的20倍; 运行程序P2时,C的速度是A的50倍; 运行程序P1时,B的速度是C的2倍; 运行程序P2时,C的速度是B的5倍。
算术平均: 程序P1和P2各执行1次,B的速度是A的9.1倍; 程序P1和P2各执行1次,C的速度是A的25倍; 程序P1和P2各执行1次,C的速度是B的2.75倍。 结论: 执行程序P1和P2相同次数, 机器A最慢,机器C最快 算术平均速度:三台机器的速度之比为: A:B:C = 1:9.1:25
加权算术平均 加权算术平均W1三台机器的速度:A < B < C加权算术平均W2三台机器的速度:A < C < B加权算术平均W3三台机器的速度:C < B < A
几何平均 几何平均值与所参考的机器无关,机器A与机器B的性能相同,机器C的执行时间是机器A或机器B 的0.63倍。 执行程序P1和P2的总时间,机器A几乎是机器B的10倍。
4. 核心程序法 把应用程序中使用最频繁的那部分程序作为评价计算机性能的标准程序。称为基准测试程序(benchmark) 整数测试程序:Dhrystone 用C语言编写,100条语句。包括:各种赋值语句,数据类型和数据区,控制语句,过程调用和参数传送,整数运算和逻辑操作等。 VAX-11/780的测试结果为每秒1757个Dhrystones,即:1VAX MIPS=1757 Dhrystones/Second 浮点测试程序:Linpack 用FORTRAN编写,主要是浮点加法和浮点乘法操作 用 MFLOPS(Million Floating Point Operations Per Second)表示,GFLOPS、TFLOPS
SPEC基准程序System Performance Evaluation Cooperative 由30个左右世界知名计算机大厂商所支持的非盈利性国际合作组织,包括:IBM、AT&T、BULL、Compaq、CDC、DG、DEC、Fujitsu、HP、Intel、MIPS、Motolola、SGI、SUN、Unisys等; 1989年10月宣布SPEC1.0,程序量超过15万行,包含4个定点程序和6个浮点程序, 测试结果用SPECint’89和SPECfp’89表示。 1992年增加到有6个定点程序和14个浮点程序,测试结果用SPECint’92和SPECfp’92表示。 1995年推出SPECint’95和SPECfp’95 SPEC2000,12个定点程序、14个浮点程序
SPEC基准测试程序举例 处理机 SPECint’95 SPECfp’95 PentiumII 450 18.5 13.3 PentiumIII 450 18.7 13.7 PentiumIII 500 20.6 14.7 PientiumIII 550 22.3 15.6 Celeron 300A 12.0 9.66 Celeron 333 13.1 10.20 Celeron 366 14.1 10.70 Celeron 400 15.1 11.20 Celeron 433 16.1 11.60 Celeron 466 17.0 12.00