1 / 67

计算机体系结构学科发展简介

计算机体系结构学科发展简介. 石教英 浙江大学计算机学院计算机系统研究所 2002 年 11 月. 目录. 一、计算机体系结构学科发展回顾 1 .计算机性能高速发展及其原因 2 .计算机的分类 3 .计算机设计的任务 4 .技术发展趋向 二、指令级并行性开发技术 1 . RISC 与 CISC 2 .流水线技术 3 .指令级并行性技术 三、指令多发射技术 1 .指令多发射技术概述 2 .超标量处理器 3 .超长指令字处理器 4 .多发射处理器的技术难点. 四、 Cache 技术 1 .为什么要引入 Cache

darin
Download Presentation

计算机体系结构学科发展简介

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 计算机体系结构学科发展简介 石教英 浙江大学计算机学院计算机系统研究所 2002年11月

  2. 目录 一、计算机体系结构学科发展回顾 1.计算机性能高速发展及其原因 2.计算机的分类 3.计算机设计的任务 4.技术发展趋向 二、指令级并行性开发技术 1.RISC与CISC 2.流水线技术 3.指令级并行性技术 三、指令多发射技术 1.指令多发射技术概述 2.超标量处理器 3.超长指令字处理器 4.多发射处理器的技术难点

  3. 四、Cache技术 1.为什么要引入Cache 2.为什么引入Cache能提高计算机性能? 3.Cache技术的发展 五、多处理器技术 1.  并行计算机体系结构分类 2.  集中共享存储器型多处理计算机 3.  分布式存储器型多处理器计算机 4.  并行处理的难点 六、我国计算机体系结构研究进展

  4. 一、计算机体系结构学科发展回顾 • Computer Architecture定义 • 应用机器语言的程序员为了能正确编写时序无关的程序所必须了解的计算机的结构。 • 简单讲:计算机体系结构是一门设计计算机的学科,包括计算机的指令系统设计,结构设计,实现技术,以及与系统软件操作系统和编译器相关的技术。

  5. 1、计算机性能高速发展及其原因 • 1946年第一台通用电子计算机ENIAS诞生至今仅56年——每秒5000次运算加法 • 计算机技术以惊人速度发展,并将继续高速发展 • 1980年百万美元机器的性能比不上今年<1千美元的机器 • 今天最高性能的微处理器超过10年前的超级计算机 • 如用于高端网络交换机和最新电子游戏机的微处理器速度可达每秒10亿次运算

  6. 计算机性能高速发展原因 • 1.构建计算机的各种技术进步 • 2.计算机本身的创新设计技术的发展 技术进步—以稳定速度发展,主要指IC技术 创新设计—发展速度不稳定,有时快有时慢

  7. 各年代的性能提高速率

  8. 截止2001年微处理器性能增长率

  9. RISC、Cache技术发展阶段 • RISC体系结构发展又可分为两个阶段 • 早期集中发展指令级并行技术 • 后期集中发展多指令发射技术 • Cache技术发展同样经历两个阶段 • 早期集中发展Cache的原理性应用 • 后期集中发展新的Cache组织和各种Cache性能优化技术

  10. 计算机创新设计对每年58%性能提高率的贡献 ——超过技术进步贡献达15倍之多 • 说明:计算机体系结构学科的重要性!!

  11. 计算机性能高速提高带来的影响 • 用户拥有越来越高的性能和功能,今天最高性能的微处理器已经超出10年前超级计算机的性能。 • 基于微处理器的计算机成为计算机设计的主流 • 现状: PC机、工作站成为主流产品 小型机被采用微处理器的服务器所代替 大型机被采用数十个至上百个微处理器构成的多 处理器计算机所代替 超级计算机正在被成千上万个微处理器构成的 多处理器计算机所代替

  12. 体系结构发展的核心-定量方法 • 近年来计算机体系结构发展的核心,也是计算机创新设计技术的核心归功于 ——定量方法。 • 用定量方法进行计算机设计 • 用定量方法作为工具分析程序实际运行结果、各类实验和仿真 • 用定量方法寻找计算机体系结构的新思路、新技术,保证计算机性能继续按现在速率提高

  13. 2、计算机的分类 • 传统的计算机分类: • 大型机、小型机、巨型机(成熟超级计算机) • 按机器规模指令(字长,内外存储器容量,速度等指标),价格等指标进行分类(PC)机、工作站,服务器 • 1980年代产生了新的机型: • 个人(PC)机、工作站、服务器 • 主要按用途来分类 • 1990年代产生了嵌入式系统: • 高性能家电、机顶盒、电子游戏机、手机、网络路由器、交换机等 • 这里微处理器成为设备的一个组件,如马达所起的作用,主要不是作计算用

  14. 计算机的新分类 • 台式机 • 服务器 • 嵌入式计算机 它们分别面向不同应用,具有不同要求,采用不同技术

  15. 台式机、服务器、嵌入式系统特征对比

  16. 3、计算机设计的任务 • 计算机设计目标: • 应满足市场对功能的要求,同时也应满足成本,功耗和性能的目标

  17. 计算机设计任务 • 指令集设计 ——这是传统计算机体系结构的任务,即程序员面对的(看得见的)指令系统的设计 • 计算机组织设计 ——存储器设计,CPU设计,I/O总线结构设计等高层内容,同一个指令集可以对应不同组织设计 • 硬件设计 ——芯片的逻辑设计、封装、冷却。 相同的指令集和组织可以对应不同的硬件实现形成一个产品系列,如PentiumⅡ和Celeron,使Celeron适用于低端产品 计算机体系结构学科应包含上述三方面的内容

  18. Fig1。4, p10

  19. 计算机设计技术人员的任务 • 明确具体的功能要求,因为来自市场的功能要求往往是不明确的 • 明确最主要的任务是什么,最主要的功能往往是使用最频繁的部件,做好了最主要部件的设计对提高性能影响最大。 • 优化设计——根据不同准则来选择最优的设计方案,例如前面介绍过对于个人机、服务器和嵌入式计算机的不同优化目标

  20. 4、技术发展趋向 • 由于计算机技术发展十分快速,一个成功的指令集设计不应该因为技术发展而遭淘汰 • 计算机体系结构设计师应预见到技术发展的趋向,在设计下一代产品时,预见到产品大规模进入市场时恰好是所用的下一代技术的性价比达到最佳的时候,从而使其设计的产品生命周期得以延长

  21. 影响最大的四种关键技术 • 集成电路技术 • 半导体DRAM • 磁盘技术 • 网络技术

  22. 集成电路技术 • 晶体管密度每年增加35%,即每4年增加4倍 • 集成电路芯片的尺寸每年提高10%-20% • 综合上述两个参数,芯片的晶体管数每年提高55%

  23. 半导体DRAM(动态随机存取存储器) • 芯片密度每年递增40%-60%,即每3-4年增加4倍 • 存取周期缩短相对较慢,每10年缩短1/3 • DRAM接口改进提高了存取带宽

  24. 磁盘技术 • 近年来磁盘的存储密度以每年100%速度递增,并将继续一段时间 (1990年以前每年以30%速度递增) • 磁盘的存取周期缩短相对较慢,每10年缩短1/3

  25. 网络技术 • 网络性能与交换机和发射端的性能有关 • 衡量网络的指标有:延迟时间和带宽等,带宽是主要指标 • 近年来带宽提高速度较快 • 如以太网从10Mbps提高到100Mbps花了10年时间,而从100Mbps提高到1Gbps只用了5年

  26. 二、指令级并行性技术(Instruction Level Parallelism-ILP) • 指令级并行性技术是RISC(精减指令集计算机)(——Reduced Instruction set Computer)的主要贡献

  27. 1、RISC与CISC • CISC即复杂指令集计算机(——Complex Instruction set Computer) • RISC思想在1980年代初提出 • 1980年代末大规模投入实际使用 • 1980年代中期以前的微处理器可统称为CISC体系结构微处理器

  28. RISC与CISC的最主要的区别 • 平均执行每条指令的时钟周期数CPI(Cycles per Instruction)的不同 • RISC的CPI≤1 • CISC的CPI<1 • CPI的作用: • CPI数越小,CPU速度越快 • CPI数越大,CPU速度越慢

  29. CPU性能公式 • CPU fime = IC× CPI × CC • CPUfime ——执行一般代码所需的中央处理站(CPU)时间 • IC——代码的指令条数(Instruction Comt),与指令集设计编译器的优化有关 • CPI——平均执行每条指令的时钟周期数,与指令集设计、体系结构等技术有关 • CC——时钟周期(Clock Cyde)与计算机组成,IC工艺等技术有关

  30. 缩短CPI成为缩短CPUtime 的主要技术途径 • RISC体系结构追求精减的指令集 • 数据类型、寻址主式精减,指令长度统一,格式统一,提高流水线的效率,实现了每一时钟周期能执行一条指令(CPI=1) • RISC体系结构进一步提出指令多发射技术 • 即每一时钟周期可发射多条指令,执行多条指令,进一步实现CPI<1

  31. CISC计算机速度提高较慢的原因 • 传统CISC体系结构计算机的CPI≌5-8 • 原因: • 以DEC公司的VAX机器为例,指令系统复杂,指令集有304条指令,指令长度:1 Byte~64 Byte,操作数不足:0-6个,操作数达十几种,寻址方式达几十种;采用微程序控制 ——导致流水线结构复杂,效率低下,速度提高有困难 • 目前几乎所有微处理器,包括传统著名的CISC微处理器,如Intel系列和Motorola系列微处理器都采用RISC体系结构

  32. 这是理想流水线的性能:达到每一个时钟周期可以完成一条指令这是理想流水线的性能:达到每一个时钟周期可以完成一条指令 与指令串行执行相比较,速度提高5倍 2.流水线技术 • 简介:流水线是一种多条指令重叠执行的实现技术

  33. 流水线的竞争 • 实际流水线不可能像上述理想流水线那样完美 • 存在三种流水线竞争 • 结构竞争:由硬件资源不足造成流水线停顿 • 数据竞争:由前后指令之间存在数据相关性造成流水线停顿 • 控制竞争:由转移指令造成流水线停顿

  34. 实际流水线的性能 • 实际流水线的CPI=理想流水线的CPI + 结构竞争造成的停顿周期 + 数据竞争造成的停顿周期 + 控制竞争造成的停顿周期 • 要提高CPU的性能就是要消除或减少三种竞争造成的停顿周期

  35. 流水线竞争的解决 • 结构竞争可以通过增加硬件资源来解决 • 数据竞争和控制竞争只有通过挖掘代码指令之间的平行性,即通过开发和发现指令之间存在的可并行(重叠)执行的可能性,然后对指令执行顺序进行调度,即用不相关的指令来填补本来应该停顿周期的方法,达到消除或减少停顿周期,提高指令执行速度

  36. 3.指令级并行性(ILP)开发技术 • ILP开发技术分两大类: • 基于硬件的ILP开发技术,又称动态开发ILP技术 • 基于软件的ILP开发技术,又称静态开发ILP技术

  37. 用于解决数据竞争的ILP开发技术 • 静态调度技术 • 动态调度技术 • 采用改名技术的动态调度技术 • 编译分析数据相关性 • 软件流水线 • 路经调度

  38. 用于解决控制相关性的ILP开发技术 • 静态转移预测技术 • 动态转移预测技术 • 静脉投机技术 • 动态投机技术 • 循环体展开技术 • 延时转移技术

  39. 三、指令多发射技术 1.指令多发射技术概述 • 从CPUtime = IC×CPI×CC公式出发,进一步提高CPU性能的途径是令CPI<1 • 要达到CPI<1的目的,必须做到每个时钟周期发射多条指令,有多个处理部件和足够的硬件资源来并行处理多条指令,达到平均每条指令的处理时间小于1个时钟周期

  40. 指令多发射处理器有两类: • 超标量处理器(Superscalar precessors) • 超长指令字处理器(VLIW-very honginstruction word) • 根据指令发射机制,即调度、组织可同时发射指令的机制,也可分为两类: • 动态多发射机制,即由硬件在程序执行过程中调度 • 静态多发射机制,即由编译器在程序编译过程中调度

  41. 2.超标量处理器 • 超标量处理器流水线操作

  42. 超标量处理器的特点 • 在一个周期里能发射可变数量的指令,通常为1-8条指令/周期 • 同时发射的指令按规定搭配,不能自由搭配,即有限制:如同时发射的指令必须是独立的,即无数据竞争,以及满足访存次数规定等等。 • 采用静态调度(compiler完成)和/或动态调度(硬件完成)方法确定可同时发射的指令

  43. 3.超长指令字处理器(VLIW) • VLIW处理器特点 • 一次发射一条超长指令,其中包含多个操作,而不像超标量处理器那样一次发射多条指令 • 在超长指令当中多个操作按规定搭配顺序排列,即指令类型不能任意搭配,操作顺序不能任意颠倒

  44. 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

  45. 超长指令字的组装由编译器完成,即由编译器作静态调度,选择无相关性指令按搭配顺序填入超长指令字超长指令字的组装由编译器完成,即由编译器作静态调度,选择无相关性指令按搭配顺序填入超长指令字 • 为充分发挥VLIW处理器功能单元的作用,必须要有足够多的可并行执行指令提供给VLIW,编译器必须采用功能更强的全局调度技术

  46. 4.多发射处理器的技术难点 • 程序固有指令级并行性有限是多发射处理器的本质困难,需要的可并行执行的指令数大致等于功能单元数乘以流水线级数。 • 多发射处理器硬件数量多、速度快,且复杂性高,从而成本高。

  47. 超标量处理器的特殊困难 • 发射逻辑复杂且高速 • 动态调度硬件极其复杂 • 超长指令字处理器的特殊困难 • 对编译器的要求高 • VLIW系列机二进制代码兼容困难

  48. 四、Cache技术 • Cache—一种小容量的高速缓冲存储器 • Cache 在计算机中的位置

  49. 1、为什么要引入Cache? • 首先看一下CPU芯片速度与内存储器DRAM芯片速度的差别有多大

More Related