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

Preview:

DESCRIPTION

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

Citation preview

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

石教英浙江大学计算机学院计算机系统研究所

2004 年 12 月

目录一、计算机体系结构学科发展回顾

1.计算机性能高速发展及其原因2.计算机的分类3.计算机设计的任务4.技术发展趋向

二、指令级并行性开发技术1. RISC与 CISC2.流水线技术3.指令级并行性技术

三、指令多发射技术1.指令多发射技术概述2.超标量处理器3.超长指令字处理器4.多发射处理器的技术难点

四、Cache技术1.为什么要引入 Cache

2.为什么引入 Cache能提高计算机性能?3. Cache技术的发展

五、多处理器技术 1.  并行计算机体系结构分类2.  集中共享存储器型多处理计算机3.  分布式存储器型多处理器计算机4.  并行处理的难点

六、我国计算机体系结构研究进展  

一、计算机体系结构学科发展回顾 Computer Architecture定义

应用机器语言的程序员为了能正确编写时序无关的程序所必须了解的计算机的结构。

简单讲:计算机体系结构是一门设计计算机的学科,包括计算机的指令系统设计,结构设计,实现技术,以及与系统软件操作系统和编译器相关的技术。

1、计算机性能高速发展及其原因 1946年第一台通用电子计算机 ENIAS诞生至今仅 56年——每秒 5000次运算加法

计算机技术以惊人速度发展,并将继续高速发展

1980年百万美元机器的性能比不上今年 <1千美元的机器

今天最高性能的微处理器超过 10年前的超级计算机 如用于高端网络交换机和最新电子游戏机的微处理器速度可达每秒 10亿次运算

计算机性能高速发展原因 1. 构建计算机的各种技术进步 2. 计算机本身的创新设计技术的发展

技术进步—以稳定速度发展,主要指 IC技术创新设计—发展速度不稳定,有时快有时慢 

各年代的性能提高速率

  年代 性能的年提高率

原因

1970 年 代初

25%-30%  

1970 年 代末

35% 微处理器芯片广泛应用

1980 年 代末

58% RISC体系结构、 Cache等创新设计技术

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

RISC、 Cache技术发展阶段 RISC体系结构发展又可分为两个阶段

   早期集中发展指令级并行技术    后期集中发展多指令发射技术

Cache技术发展同样经历两个阶段    早期集中发展 Cache的原理性应用    后期集中发展新的 Cache组织和各种 Cach

e性能优化技术 

计算机创新设计对每年 58%性能提高率的贡献         ——超过技术进步贡献达 15 倍之多

说明:计算机体系结构学科的重要性!! 

计算机性能高速提高带来的影响 用户拥有越来越高的性能和功能,今天最高性能的微处理器已经超出 10年前超级计算机的性能。 

基于微处理器的计算机成为计算机设计的主流 现状:       PC 机、工作站成为主流产品     小型机被采用微处理器的服务器所代替    大型机被采用数十个至上百个微处理器构成的多          处理器计算机所代替     超级计算机正在被成千上万个微处理器构成的      多处理器计算机所代替 

体系结构发展的核心-定量方法 近年来计算机体系结构发展的核心,也是计算机创新设计技术的核心归功于    ——定量方法。 用定量方法进行计算机设计 用定量方法作为工具分析程序实际运行结果、各类实验和仿真

用定量方法寻找计算机体系结构的新思路、新技术,保证计算机性能继续按现在速率提高

2、计算机的分类  传统的计算机分类:

大型机、小型机、巨型机(或称超级计算机)  按机器规模指令(字长,内外存储器容量,速度等指标),价格等指标进行分类( 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

DRAM接口改进提高了存取带宽 

磁盘技术  近年来磁盘的存储密度以每年 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即复杂指令集计算机(—— Comple

x Instruction set Computer)

RISC思想在 1980 年代初提出 1980 年代末大规模投入实际使用

1980 年代中期以前的微处理器可统称为CISC体系结构微处理器 

RISC与 CISC的最主要的区别 平均执行每条指令的时钟周期数 CPI( Cycles per Instruction)的不同 RISC的 CPI≤1 CISC的 CPI>1

CPI的作用: CPI数越小, CPU速度越快 CPI数越大, CPU速度越慢 

CPU性能公式  CPU time = IC× CPI × CC CPU time —— 执行一段代码所需的中央处理器( CPU)时间

IC——代码的指令条数( Instruction Count ),与指令集设计编译器的优化有关

CPI——平均执行每条指令的时钟周期数,与指令集设计、体系结构等技术有关

CC——时钟周期( Clock Cycle)与计算机组成, 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倍 

简介:流水线是一种多条指令重叠执行的实现技术

流水时钟数指令序列1 2 3 4 5 6 7 8 9

指令 i IF ID EX MEM WB

指令 i +1 IF ID EX MEM WB

指令 i +2 IF ID EX MEM WB

指令 i +3 IF ID EX MEM WB

指令 i +4 IF ID EX MEM WB

流水线的竞争  实际流水线不可能像上述理想流水线那样完美

存在三种流水线竞争结构竞争:由硬件资源不足造成流水线停顿数据竞争:由前后指令之间存在数据相关性造成流水线停顿

控制竞争:由转移指令造成流水线停顿  

实际流水线的性能 实际流水线的 CPI=理想流水线的 CPI

+ 结构竞争造成的停顿周期 + 数据竞争造成的停顿周期 + 控制竞争造成的停顿周期

要提高 CPU的性能就是要消除或减少三种竞争造成的停顿周期 

流水线竞争的解决 结构竞争可以通过增加硬件资源来解决

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

3.指令级并行性 (ILP)开发技术  ILP开发技术分两大类:

基于硬件的 ILP开发技术,又称动态开发 ILP技术

基于软件的 ILP开发技术,又称静态开发 ILP技术 

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

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

三、指令多发射技术 1.指令多发射技术概述 从 CPUtime = IC×CPI×CC公式出发,进一步提高 CPU性能的途径是令 CPI<1

要达到 CPI<1的目的,必须做到每个时钟周期发射多条指令,有多个处理部件和足够的硬件资源来并行处理多条指令,达到平均每条指令的处理时间小于 1个时钟周期

指令多发射处理器有两类:超标量处理器( Superscalar processors)   超长指令字处理器( VLIW—very long instr

uction word)

根据指令发射机制,即调度、组织可同时发射指令的机制,也可分为两类:动态多发射机制,即由硬件在程序执行过程中调度

静态多发射机制,即由编译器在程序编译过程中调度 

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

超标量处理器的特点  在一个周期里能发射可变数量的指令,通常为

1~ 8条指令 /周期

同时发射的指令按规定搭配,不能自由搭配,即有限制:如同时发射的指令必须是独立的,即无数据竞争,以及满足访存次数规定等等。

采用静态调度( compiler完成)和 /或动态调度(硬件完成)方法确定可同时发射的指令 

3.超长指令字处理器( VLIW)  VLIW处理器特点

一次发射一条超长指令,其中包含 7个操作,而不像超标量处理器那样一次发射多条指令

在超长指令当中多个操作按规定搭配顺序排列,即指令类型不能任意搭配,操作顺序不能任意颠倒

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

1980年代的微处理器大多没有片上 Cache,只有片外 Cache

2001年的微处理器大多都有 2级片上 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. 并行处理的难点  程序固有并行性不足,导致并行计算机很难达到理想的加速比 

处理器之间通信代价高(即延时长),同样将导致加速比下降 

六、我国计算机体系结构研究进展  过去重视多处理器并行计算机,即高性能计算机的研制,如银河系列超级计算机,以及不对外公布的军用超级计算机,曙光服务器运行速度已达万亿次 /秒

前不久对外宣布的“龙芯”研制成功的消息表明我国有能力研制高性能微处理器。龙芯相当于 Intel 1997推出的 PentiumⅡ

谢  谢