石教英 浙江大学计算机学院计算机系统研究所 2002年11月 计算机体系结构学科发展简介 石教英 浙江大学计算机学院计算机系统研究所 2002年11月
目录 一、计算机体系结构学科发展回顾 二、指令级并行性开发技术 三、指令多发射技术 1.计算机性能高速发展及其原因 2.计算机的分类 3.计算机设计的任务 4.技术发展趋向 二、指令级并行性开发技术 1.RISC与CISC 2.流水线技术 3.指令级并行性技术 三、指令多发射技术 1.指令多发射技术概述 2.超标量处理器 3.超长指令字处理器 4.多发射处理器的技术难点
四、Cache技术 五、多处理器技术 六、我国计算机体系结构研究进展 1.为什么要引入Cache 2.为什么引入Cache能提高计算机性能? 五、多处理器技术 1. 并行计算机体系结构分类 2. 集中共享存储器型多处理计算机 3. 分布式存储器型多处理器计算机 4. 并行处理的难点 六、我国计算机体系结构研究进展
一、计算机体系结构学科发展回顾 Computer Architecture定义 应用机器语言的程序员为了能正确编写时序无关的程序所必须了解的计算机的结构。 简单讲:计算机体系结构是一门设计计算机的学科,包括计算机的指令系统设计,结构设计,实现技术,以及与系统软件操作系统和编译器相关的技术。
1、计算机性能高速发展及其原因 1946年第一台通用电子计算机ENIAS诞生至今仅56年——每秒5000次运算加法 计算机技术以惊人速度发展,并将继续高速发展 1980年百万美元机器的性能比不上今年<1千美元的机器 今天最高性能的微处理器超过10年前的超级计算机 如用于高端网络交换机和最新电子游戏机的微处理器速度可达每秒10亿次运算
计算机性能高速发展原因 1.构建计算机的各种技术进步 2.计算机本身的创新设计技术的发展 技术进步—以稳定速度发展,主要指IC技术 创新设计—发展速度不稳定,有时快有时慢
各年代的性能提高速率 年代 性能的年提高率 原因 1970年代初 25%-30% 1970年代末 35% 微处理器芯片广泛应用 1970年代末 35% 微处理器芯片广泛应用 1980年代末 58% RISC体系结构、Cache等创新设计技术
截止2001年微处理器性能增长率
RISC、Cache技术发展阶段 RISC体系结构发展又可分为两个阶段 Cache技术发展同样经历两个阶段 早期集中发展指令级并行技术 后期集中发展多指令发射技术 Cache技术发展同样经历两个阶段 早期集中发展Cache的原理性应用 后期集中发展新的Cache组织和各种Cache性能优化技术
计算机创新设计对每年58%性能提高率的贡献 ——超过技术进步贡献达15倍之多 说明:计算机体系结构学科的重要性!!
计算机性能高速提高带来的影响 用户拥有越来越高的性能和功能,今天最高性能的微处理器已经超出10年前超级计算机的性能。 基于微处理器的计算机成为计算机设计的主流 现状: PC机、工作站成为主流产品 小型机被采用微处理器的服务器所代替 大型机被采用数十个至上百个微处理器构成的多 处理器计算机所代替 超级计算机正在被成千上万个微处理器构成的 多处理器计算机所代替
体系结构发展的核心-定量方法 近年来计算机体系结构发展的核心,也是计算机创新设计技术的核心归功于 ——定量方法。 用定量方法进行计算机设计 用定量方法作为工具分析程序实际运行结果、各类实验和仿真 用定量方法寻找计算机体系结构的新思路、新技术,保证计算机性能继续按现在速率提高
2、计算机的分类 传统的计算机分类: 1980年代产生了新的机型: 1990年代产生了嵌入式系统: 大型机、小型机、巨型机(成熟超级计算机) 按机器规模指令(字长,内外存储器容量,速度等指标),价格等指标进行分类(PC)机、工作站,服务器 1980年代产生了新的机型: 个人(PC)机、工作站、服务器 主要按用途来分类 1990年代产生了嵌入式系统: 高性能家电、机顶盒、电子游戏机、手机、网络路由器、交换机等 这里微处理器成为设备的一个组件,如马达所起的作用,主要不是作计算用
计算机的新分类 台式机 服务器 嵌入式计算机 它们分别面向不同应用,具有不同要求,采用不同技术
台式机、服务器、嵌入式系统特征对比
3、计算机设计的任务 计算机设计目标: 应满足市场对功能的要求,同时也应满足成本,功耗和性能的目标
计算机设计任务 计算机体系结构学科应包含上述三方面的内容 指令集设计 计算机组织设计 硬件设计 ——这是传统计算机体系结构的任务,即程序员面对的(看得见的)指令系统的设计 计算机组织设计 ——存储器设计,CPU设计,I/O总线结构设计等高层内容,同一个指令集可以对应不同组织设计 硬件设计 ——芯片的逻辑设计、封装、冷却。 相同的指令集和组织可以对应不同的硬件实现形成一个产品系列,如PentiumⅡ和Celeron,使Celeron适用于低端产品 计算机体系结构学科应包含上述三方面的内容
Fig1。4, p10
计算机设计技术人员的任务 明确具体的功能要求,因为来自市场的功能要求往往是不明确的 明确最主要的任务是什么,最主要的功能往往是使用最频繁的部件,做好了最主要部件的设计对提高性能影响最大。 优化设计——根据不同准则来选择最优的设计方案,例如前面介绍过对于个人机、服务器和嵌入式计算机的不同优化目标
4、技术发展趋向 由于计算机技术发展十分快速,一个成功的指令集设计不应该因为技术发展而遭淘汰 计算机体系结构设计师应预见到技术发展的趋向,在设计下一代产品时,预见到产品大规模进入市场时恰好是所用的下一代技术的性价比达到最佳的时候,从而使其设计的产品生命周期得以延长
影响最大的四种关键技术 集成电路技术 半导体DRAM 磁盘技术 网络技术
集成电路技术 晶体管密度每年增加35%,即每4年增加4倍 集成电路芯片的尺寸每年提高10%-20% 综合上述两个参数,芯片的晶体管数每年提高55%
半导体DRAM(动态随机存取存储器) 芯片密度每年递增40%-60%,即每3-4年增加4倍 存取周期缩短相对较慢,每10年缩短1/3
磁盘技术 近年来磁盘的存储密度以每年100%速度递增,并将继续一段时间 (1990年以前每年以30%速度递增) 磁盘的存取周期缩短相对较慢,每10年缩短1/3
网络技术 网络性能与交换机和发射端的性能有关 衡量网络的指标有:延迟时间和带宽等,带宽是主要指标 近年来带宽提高速度较快 如以太网从10Mbps提高到100Mbps花了10年时间,而从100Mbps提高到1Gbps只用了5年
二、指令级并行性技术 (Instruction Level Parallelism-ILP) 指令级并行性技术是RISC(精减指令集计算机)(——Reduced Instruction set Computer)的主要贡献
1、RISC与CISC CISC即复杂指令集计算机(——Complex Instruction set Computer) 1980年代末大规模投入实际使用 1980年代中期以前的微处理器可统称为CISC体系结构微处理器
RISC与CISC的最主要的区别 平均执行每条指令的时钟周期数CPI(Cycles per Instruction)的不同 CPI的作用: RISC的CPI≤1 CISC的CPI<1 CPI的作用: CPI数越小,CPU速度越快 CPI数越大,CPU速度越慢
CPU性能公式 CPU fime = IC× CPI × CC CPUfime ——执行一般代码所需的中央处理站(CPU)时间 IC——代码的指令条数(Instruction Comt),与指令集设计编译器的优化有关 CPI——平均执行每条指令的时钟周期数,与指令集设计、体系结构等技术有关 CC——时钟周期(Clock Cyde)与计算机组成,IC工艺等技术有关
缩短CPI成为缩短CPUtime 的主要技术途径 RISC体系结构追求精减的指令集 数据类型、寻址主式精减,指令长度统一,格式统一,提高流水线的效率,实现了每一时钟周期能执行一条指令(CPI=1) RISC体系结构进一步提出指令多发射技术 即每一时钟周期可发射多条指令,执行多条指令,进一步实现CPI<1
CISC计算机速度提高较慢的原因 传统CISC体系结构计算机的CPI≌5-8 原因: 以DEC公司的VAX机器为例,指令系统复杂,指令集有304条指令,指令长度:1 Byte~64 Byte,操作数不足:0-6个,操作数达十几种,寻址方式达几十种;采用微程序控制 ——导致流水线结构复杂,效率低下,速度提高有困难 目前几乎所有微处理器,包括传统著名的CISC微处理器,如Intel系列和Motorola系列微处理器都采用RISC体系结构
2.流水线技术 简介:流水线是一种多条指令重叠执行的实现技术 这是理想流水线的性能:达到每一个时钟周期可以完成一条指令 与指令串行执行相比较,速度提高5倍
流水线的竞争 实际流水线不可能像上述理想流水线那样完美 存在三种流水线竞争 结构竞争:由硬件资源不足造成流水线停顿 数据竞争:由前后指令之间存在数据相关性造成流水线停顿 控制竞争:由转移指令造成流水线停顿
实际流水线的性能 实际流水线的CPI=理想流水线的CPI + 结构竞争造成的停顿周期 + 数据竞争造成的停顿周期 + 控制竞争造成的停顿周期 要提高CPU的性能就是要消除或减少三种竞争造成的停顿周期
流水线竞争的解决 结构竞争可以通过增加硬件资源来解决 数据竞争和控制竞争只有通过挖掘代码指令之间的平行性,即通过开发和发现指令之间存在的可并行(重叠)执行的可能性,然后对指令执行顺序进行调度,即用不相关的指令来填补本来应该停顿周期的方法,达到消除或减少停顿周期,提高指令执行速度
3.指令级并行性(ILP)开发技术 ILP开发技术分两大类: 基于硬件的ILP开发技术,又称动态开发ILP技术
用于解决数据竞争的ILP开发技术 静态调度技术 动态调度技术 采用改名技术的动态调度技术 编译分析数据相关性 软件流水线 路经调度
用于解决控制相关性的ILP开发技术 静态转移预测技术 动态转移预测技术 静脉投机技术 动态投机技术 循环体展开技术 延时转移技术
三、指令多发射技术 1.指令多发射技术概述 从CPUtime = IC×CPI×CC公式出发,进一步提高CPU性能的途径是令CPI<1
根据指令发射机制,即调度、组织可同时发射指令的机制,也可分为两类: 指令多发射处理器有两类: 超标量处理器(Superscalar precessors) 超长指令字处理器(VLIW-very honginstruction word) 根据指令发射机制,即调度、组织可同时发射指令的机制,也可分为两类: 动态多发射机制,即由硬件在程序执行过程中调度 静态多发射机制,即由编译器在程序编译过程中调度
2.超标量处理器 超标量处理器流水线操作
超标量处理器的特点 在一个周期里能发射可变数量的指令,通常为1-8条指令/周期 同时发射的指令按规定搭配,不能自由搭配,即有限制:如同时发射的指令必须是独立的,即无数据竞争,以及满足访存次数规定等等。 采用静态调度(compiler完成)和/或动态调度(硬件完成)方法确定可同时发射的指令
3.超长指令字处理器(VLIW) VLIW处理器特点 一次发射一条超长指令,其中包含多个操作,而不像超标量处理器那样一次发射多条指令 在超长指令当中多个操作按规定搭配顺序排列,即指令类型不能任意搭配,操作顺序不能任意颠倒
VLIW究竟有多长? 以一个拥有多个功能单元的VLIW处理器为例: 设7个功能单元可支持:2个整数操作、2个FP操作、2个存储器访问操作和1个转移操作,这样这条含7个操作的VLIW的功能相当于7条指令,为支持每一功能单元正常工作,应分配每一功能单元相应的数据域;一般每个数据域为16~24位 这一VLIW长度为:16 bits×7 = 112 bits 或为: 24 bits×7 = 168 bits 比较:一个拥有7个功能单元的超标量处理器,一次发射7条指令,总长度为32 bits×7=224 bits
超长指令字的组装由编译器完成,即由编译器作静态调度,选择无相关性指令按搭配顺序填入超长指令字 为充分发挥VLIW处理器功能单元的作用,必须要有足够多的可并行执行指令提供给VLIW,编译器必须采用功能更强的全局调度技术
4.多发射处理器的技术难点 程序固有指令级并行性有限是多发射处理器的本质困难,需要的可并行执行的指令数大致等于功能单元数乘以流水线级数。 多发射处理器硬件数量多、速度快,且复杂性高,从而成本高。
超标量处理器的特殊困难 超长指令字处理器的特殊困难 发射逻辑复杂且高速 动态调度硬件极其复杂 对编译器的要求高 VLIW系列机二进制代码兼容困难
四、Cache技术 Cache—一种小容量的高速缓冲存储器 Cache 在计算机中的位置
1、为什么要引入Cache? 首先看一下CPU芯片速度与内存储器DRAM芯片速度的差别有多大
CPU与DRAM速度差意味着什么? 说明单纯地改善CPU的设计,一味追求提高CPU的速度,并不能提高计算机整机的性能,因为高速CPU的性能被低速的存储器访问所抵销。 为了提高计算机整机性能,必须消除两者性能差,或者仅可能缩小两者性能差。
解决办法 在高速CPU与低速Memory之间引入一个小容量的高速缓冲存储器(Cache),Cache速度与CPU速度之差(不足1个数量级)远远小于CPU与DRAM速度差(3个数量级~4个数量级),通过将存储器分级的方法来缓解这一巨大的速度差,提高计算机的性能。
2、为什么引入Cache能提高计算机性能? 问: 既然用作Cache的SRAM芯片的速度远远高于用作主存储器的DRAM芯片,那么为什么主存储器不用SRAM芯片来实现? 答案: SRAM的价格远高于DRAM,而且主存储器的容量大,采用高速SRAM使成本急剧上升,因此从性能/价格综合考虑只能采用小容量的Cache。
问: 小容量的Cache能否满足程序存取指令和数据的需求? 答案: 计算机设计定量原理中有一条局部性原理告诉我们:程序总是倾向于重用那些刚刚用过的数据和指令,这是计算机程序非常重要的性质。局部性原理的另一种表述:程序90%的执行时间是花在10%的代码上。 局部性原理告诉我们:可以根据程序最近访问的数据和指令来预测程序将要调用的数据和指令,且这一预测正确度是比较高的。 所以小容量的Cache能满足程序存取数据和指令的需求
3. Cache技术的发展 采用多级Cache 增加Cache容量 采用各种优化技术来提高Cache性能,包括 1980年代的片外Cache通常只有几十KB 2001年的微处理器三级Cache的容量可达16MB 采用各种优化技术来提高Cache性能,包括 减少失配造成的代价 减少失配率 减少命中时间
五、多处理器技术 单处理器计算机性能是否已接近其极限? 然而从1985起到2000,这一段正是单处理器计算机性能突飞猛进的时代 单处理器计算机至少在未来5年仍将以目前速度发展
多处理器计算机将越来越重要的理由 微处理器已主宰单处理器计算机技术,因此为了提高单处理器计算机性能而将多个微处理器连接起来就成为很自然的选择 现在还不清楚使计算机体系结构不断创新的指令级并行技术能否继续无限地发展下去 曾经是并行机发展障碍的软件有了新的发展和进展,主要是在服务器和嵌入式系统方面为多处理器计算机发展带来曙光
1.并行计算机体系结构分类 Flynn在1966年提出的计算机分类方法,即按指令流和数据流进行计算机分类的方法仍适用至今 单指令流,单数据流(SISD)—单处理器计算机 单指令流,多数据流(SIMD)—矢量计算机 多指令流,单数据流(MISD)—市场上无此类计算机 多指令流,多数据流(MIMD)—通用多处理器并行计算机,是广泛应用的多处理器并行计算机体系结构
MIMD多处理器计算机分类 可按处理器数目,存储器组织以及互连网络的策略来分类 按存储器组织进行分类的两种多处理器计算机 : 集中共享存储器体系结构 分布式存储器体系结构
2.集中共享存储器型多处理器计算机 基本结构
此类计算机适用于处理器数目相对较少的场合,对于只有几个、十几个处理器,有可能共享一个主存储器,以及采用总线实现处理器和主存的互连 对于含有二、三十个处理器的机器需用多总线,甚至用交换器才能满足存储器带宽的要求
集中共享存储器型多处理器计算机只有一个主存储器,对所有处理器都是对称的,访问存储器的时间都是均等的,所以这种体系结构又称为对称(共享存储器)处理器(SMP) 集中共享存储器型多处理器是目前最成功的多处理器计算机
3.分布式存储器型多处理器计算机 基本结构
此类计算机适用于处理器相对较多的场合,可以是上百个、上千个、甚至数千个之多。 此类计算机要求互连网络的带宽较高,通常采用交换机或多维网格实现处理器之间的直接互连。 分布式存储器型体系结构的最大缺点是处理器之间的数据通信变得非常复杂(一致性问题),并且延时较长。
4.并行处理的难点 程序固有并行性不足,导致并行计算机很难达到理想的加速比 处理器之间通信代价高(即延时长),同样将导致加速比下降
六、我国计算机体系结构研究进展 过去重视多处理器并行计算机,即高性能计算机的研制,如银河系列超级计算机,以及不对外公布的军用超级计算机,曙光4000服务器运行速度已达千亿次/秒 前不久对外宣布的“龙芯”研制成功的消息表明我国有能力研制高性能微处理器。龙芯相当于Intel 1997推出的PentiumⅡ
谢 谢