计算机系统结构 西南林业大学计信学院 邢丽伟.

Slides:



Advertisements
Similar presentations
第五节 函数的微分 一、微分的定义 二、微分的几何意义 三、基本初等函数的微分公式与微分运算 法则 四、微分形式不变性 五、微分在近似计算中的应用 六、小结.
Advertisements

2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
高校教师、高级项目经理 任铄 QQ : 第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 OS 结构设计.
四川大学计算机学院 主讲:倪云竹 计算机系统结构 四川大学计算机学院  主讲:倪云竹
信息技术:硬件、软件、网络、数据库 计算机技术、多媒体技术、压缩技术...
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
2017年3月5日 单片机原理与应用 背景知识调查.
第一章 计算机体系结构的基本概念.
初级会计电算化 (用友T3) 制作人:张爱红.
电子数字计算机 计算机性能 计算机硬件 计算机软件 多级层次结构
计算机系统结构教程 武汉理工大学.
第1章 导论 【学习内容】 1.1计算机系统结构的基本概念 1.2计算机性能评测价 学习目标.
计算机体系结构 Computer Architecture
实用操作系统概念 张惠娟 副教授 1.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
第5章 定积分及其应用 基本要求 5.1 定积分的概念与性质 5.2 微积分基本公式 5.3 定积分的换元积分法与分部积分法
1.1 计算机系统简介 1.2 计算机的基本组成 1.3 计算机硬件的主要技术指标 1.4 本书结构.
第三节 格林公式及其应用(2) 一、曲线积分与路径无关的定义 二、曲线积分与路径无关的条件 三、二元函数的全微分的求积 四、小结.
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
1.2 计算机体系结构的概念 计算机系统中的层次概念 1. 计算机系统=软件+硬件/固件 2. 计算机语言由低级向高级发展
计算机系统结构 南京航空航天大学 计算机科学与技术学院 主讲:刘佳
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
计算机基础知识 丁家营镇九年制学校 徐中先.
北京移动(中国移动的子公司)是中国主要的无线运营商之一。中国移动做为无线市场的开拓者,拥有中国70%的无线通信市场,也是世界上第二大的无线提供商,北京移动拥有上亿的手机用户,支持60多个国家的漫游业务。 为北京移动创造的价值 … 优秀的性能,支持了庞大的用户群 标准化了系统接口 加强了系统的灵活性.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
嵌入式系统课程简介 宋健建 南京大学软件学院 2004/02/10.
存储系统.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
数 控 技 术 华中科技大学机械科学与工程学院.
课程设计.
逆向工程-汇编语言
数据挖掘工具性能比较.
CPU结构和功能.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
第一章 计算机体系结构的基本概念 1.1 引言 1.2 计算机体系结构的概念 1.3 计算机体系结构的发展 1.4 影响计算机体系结构的成本和价格因素 1.5 定量分析技术基础 1.6 计算机体系结构中并行性的发展.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
程序设计工具实习 Software Program Tool
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
K60入门课程 02 首都师范大学物理系 王甜.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
计算机组成与系统结构 陈泽宇 副教授.
实验七 安全FTP服务器实验 2019/4/28.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
iSIGHT 基本培训 使用 Excel的栅栏问题
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
临界区问题的硬件指令解决方案 (Synchronization Hardware)
OpenStack vs CloudStack
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二节 C语言的特点.
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第十七讲 密码执行(1).
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
入侵检测技术 大连理工大学软件学院 毕玲.
Presentation transcript:

计算机系统结构 西南林业大学计信学院 邢丽伟

计算机系统结构 第1章 计算机系统结构基础 1.1 引言 1.2 计算机系统结构基本概念 1.3 计算机系统的设计 第1章 计算机系统结构基础 1.1 引言 1.2 计算机系统结构基本概念 1.3 计算机系统的设计 1.4 计算机系统的性能评测 1.5 计算机系统结构的发展 1.6 计算机系统结构中并行性的发展

第1章 计算机系统结构基础 1.1 引言 第一台通用电子计算机诞生于1946年 计算机技术的飞速发展受益于两个方面 经历了四个发展过程 第1章 计算机系统结构基础 1.1 引言 第一台通用电子计算机诞生于1946年 计算机技术的飞速发展受益于两个方面 计算机制造技术的发展 计算机系统结构的创新 经历了四个发展过程

1.1 引言 时 间 原 因 每年的性能增长 1946年起的25年 两种因素都起着主要的作用 25% 20世纪70年代末 ~80年代初 1.1 引言 时 间 原 因 每年的性能增长 1946年起的25年 两种因素都起着主要的作用 25% 20世纪70年代末 ~80年代初 大规模集成电路和微处理器 出现,以集成电路为代表的制 造技术的发展 约35% 80年代中开始 RISC结构的出现,系统结构不断更新和变革,制造技术不断发展 50%以上 维持了约17年 2003年以来 大功耗问题; 可以进一步有效地开发的指令级并行性已经很少; 存储器访问速度的提高缓慢。 约20%

1.1 引言 体系结构与组织方式的发展一起促成了计算机 性能以超过50%的年增长率持续增长17年( 1986~2003),这一飞速发展共有四重效果: 显著增强了可供计算机用户使用的功能 性价比的大幅度提高导致了新型计算机的出现。 根据摩尔定律的预测,半导体制造业的持续发展已 经使基于微处理器的计算机在整个计算机设计领域 中占据了主导地位。 对软件开发的影响,允许今天的程序员以性能换取 生产效率。

1.1 引言 从2003年开始,由于风冷芯片最大功耗和无法有效地 开发更多指令级并行这两大孪生瓶颈,单处理器的性 能提高速度下降到每年不足22%。事实上,Intel在 2004年取消了自己的高性能单核处理器项目,转而和 其他公司一起宣布:为了获得更高性能的处理器,应 当提高一个芯片上集成的核心数目,而不是加快单核 处理器的速度。 这是一个标着历史性转折的里程碑信号,处理器性能 的提高从单纯依赖指令级并行转向数据级并行和线程 级并行甚至请求级并行。 结论:计算机系统结构在计算机的发展中有着极其重 要的作用。

1.1 引言 计算机的分类: 特征 个人移动设备 台式机 服务器 机群/仓库级计算机 嵌入式 系统 价格 $100~ $1000 1.1 引言 计算机的分类: 特征 个人移动设备 台式机 服务器 机群/仓库级计算机 嵌入式 系统 价格 $100~ $1000 $300~$2500 $5000~ $10 000 000 $100 000~ $200 000 000 $10~ $100 000 微处理器价格 $10~$100 $50~500 $200~$2000 $50~$250 $0.01~$100 关键的系统设计问题 成本; 能耗; 媒体性能 响应率。 性价比; 图形性能。 吞吐量; 可用性; 可扩展性; 能耗。 能耗均衡性。 价格; 应用的特有性能。

第1章 计算机系统结构基础 1.2 计算机系统结构基本概念 本节导引: 计算机系统的层次结构 计算机系统结构的定义 计算机组成和计算机实现 第1章 计算机系统结构基础 1.2 计算机系统结构基本概念 本节导引: 计算机系统的层次结构 计算机系统结构的定义 计算机组成和计算机实现 计算机系统的分类

1.2 计算机系统结构基本概念 1.2.1 计算机系统的层次结构 计算机系统=硬件/固件+软件 计算机语言从低级向高级发展 1.2 计算机系统结构基本概念 1.2.1 计算机系统的层次结构 计算机系统=硬件/固件+软件 计算机语言从低级向高级发展 高一级语言的语句相对于低一级语言来说功能更 强,更便于应用,但又都以低级语言为基础。 从计算机语言的角度,把计算机系统按功能 划分成多级层次结构。 每一层以一种语言为特征

1.2 计算机系统结构基本概念 虚拟机 物理机 应用语言程序经应用程序包翻译成高级语言程序 1.2 计算机系统结构基本概念 应用语言程序经应用程序包翻译成高级语言程序 高级语言程序经编译程序翻译成汇编语言(或是某种中间语言程序,或是机器语言程序) 虚拟机 汇编语言程序经汇编程序翻译成机器语言程序 一般用机器语言程序解释作业控制语句等 用微指令程序解释机器指令 物理机 微指令由硬件直接执行

1.2 计算机系统结构基本概念 物理机: 用硬件/固件实现的机器 虚拟机:由软件实现的机器 各机器级的实现主要靠翻译或解释,或两者的结合。 1.2 计算机系统结构基本概念 物理机: 用硬件/固件实现的机器 固件:具有软件功能的硬件。 虚拟机:由软件实现的机器 各机器级的实现主要靠翻译或解释,或两者的结合。 翻译:先用转换程序把高一级机器上的程序转换为低一级 机器上等效的程序,然后再在这低一级机器上运行,实现 程序的功能。 解释:对于高一级机器上的程序中的每一条语句或指令, 都是转去执行低一级机器上的一段等效程序。执行完后, 再去高一级机器取下一条语句或指令,再进行解释执行, 如此反复,直到解释执行完整个程序。 解释执行比编译后再执行所花的时间多,但占用的存储空间较少。

1.2 计算机系统结构基本概念 1.2.2 计算机系统结构的定义 计算机系统结构的经典定义 透明性 计算机系统结构的实质: 1.2 计算机系统结构基本概念 1.2.2 计算机系统结构的定义 计算机系统结构的经典定义 传统机器程序员所看到的计算机属性,即概念性结构与功能特性。(1964年 Amdahl在介绍IBM360系统时提出的) 按照计算机系统的多级层次结构,不同级程序员所看到的计算 机具有不同的属性。 透明性 在计算机技术中,把这种本来存在的事物或属性,但从某 种角度看又好像不存在的概念称为透明性。 计算机系统结构的实质: 确定计算机系统中软硬件的界面,界面之上是软件实现的 功能,界面之下是硬件和固件实现的功能。

1.2 计算机系统结构基本概念 1.2.3 计算机组成和计算机实现 计算机系统结构:计算机系统的软、硬件的界面 1.2 计算机系统结构基本概念 1.2.3 计算机组成和计算机实现 计算机系统结构:计算机系统的软、硬件的界面 即机器语言程序员所看到的传统机器级所具有的属性。 计算机组成:计算机系统结构的逻辑实现 包含物理机器级中的数据流和控制流的组成以及逻辑设 计等。 着眼于:物理机器级内各事件的排序方式与控制方式、 各部件的功能以及各部件之间的联系。

第1章 计算机系统结构基础 计算机实现:计算机组成的物理实现 包括处理机、主存等部件的物理结构,器件的集 第1章 计算机系统结构基础 计算机实现:计算机组成的物理实现 包括处理机、主存等部件的物理结构,器件的集 成度和速度,模块、插件、底板的划分与连接, 信号传输,电源、冷却及整机装配技术等。 着眼于:器件技术(起主导作用)、微组装技术。 具有相同系统结构的计算机可以采用不同的计算机组成。 同一种计算机组成又可以采用多种不同的计算机实现。

1.2 计算机系统结构基本概念 1.2.4 计算机系统的分类 常见的计算机系统分类法: Flynn分类法、冯氏分类法

1.2 计算机系统结构基本概念 Flynn分类法 按照指令流和数据流的多倍性进行分类。 据此把计算机系统分为4类: 1.2 计算机系统结构基本概念 Flynn分类法 按照指令流和数据流的多倍性进行分类。 指令流:计算机执行的指令序列 数据流:由指令流调用的数据序列,包括输入数据和 中间结果。 多倍性:在系统性能瓶颈部件上处于同一执行阶段的 指令或数据的最大可能个数。 据此把计算机系统分为4类: 单指令流单数据流SISD 单指令流多数据流SIMD 多指令流单数据流MISD 多指令流多数据流MIMD

1.2 计算机系统结构基本概念 单指令流单数据流(SISD) 1.2 计算机系统结构基本概念 单指令流单数据流(SISD) 传统的单处理器计算机。每次指令部件对一条 指令进行译码并只对一个操作部件分配数据。 CU--控制部件;PU—处理机;MM—主存模块; SM—共享主存;IS—指令流;CS—控制流;DS—数据流

1.2 计算机系统结构基本概念 单指令流多数据流(SIMD) 阵列处理机和相联处理机。 CU--控制部件;PU—处理机;MM—主存模块; 1.2 计算机系统结构基本概念 单指令流多数据流(SIMD) 阵列处理机和相联处理机。 CU--控制部件;PU—处理机;MM—主存模块; SM—共享主存;IS—指令流;CS—控制流;DS—数据流

1.2 计算机系统结构基本概念 多指令流单数据流(MISD) 1.2 计算机系统结构基本概念 多指令流单数据流(MISD) 处理机间的宏流水及脉动阵列流水处理机。按不同指 令的要求对同一数据流及其中间结果进行不同的处理 ,一个处理单元的输出作为另一个处理单元的输入。 CU--控制部件;PU—处理机;MM—主存模块; SM—共享主存;IS—指令流;CS—控制流;DS—数据流

1.2 计算机系统结构基本概念 多指令流多数据流 能实现作业、任务、指令、数组各级全面并行 的多机系统。 1.2 计算机系统结构基本概念 多指令流多数据流 能实现作业、任务、指令、数组各级全面并行 的多机系统。 CU--控制部件;PU—处理机;MM—主存模块; SM—共享主存;IS—指令流;CS—控制流;DS—数据流

1.2 计算机系统结构基本概念 冯氏分类法 1、字串位串(WSBS) 2、字串位并(WSBP) 3、字并位串(WPBS) 1.2 计算机系统结构基本概念 冯氏分类法 按数据处理的并行度进行分类。 1、字串位串(WSBS) 位串处理方式,每次只处理一个字中的一位,早期的位串行计算机。 2、字串位并(WSBP) 字(字片)处理方式,每次处理一个字中的n位,位并行单处理机。 3、字并位串(WPBS) 位(位片)处理方式,每次处理m个字中的一位,相联处理机,阵列处理机。 4、字并位并(WPBP) 全并行处理方式,一次处理m个字,其每个字为n位,相联处理机,阵列处理机,多处理机。

第1章 计算机系统结构基础 1.3 计算机系统的设计 本节导引: 计算机系统设计的定量原理 计算机系统设计者的主要任务 第1章 计算机系统结构基础 1.3 计算机系统的设计 本节导引: 计算机系统设计的定量原理 计算机系统设计者的主要任务 计算机系统设计的主要方法

1.3 计算机系统的设计 1.3.1 计算机系统设计的定量原理 4个定量原理: 以经常性事件为重点 Amdahl定律 CPU性能公式 1.3 计算机系统的设计 1.3.1 计算机系统设计的定量原理 4个定量原理: 以经常性事件为重点 Amdahl定律 CPU性能公式 程序的局部性原理

1.3 计算机系统的设计 以经常性事件为重点 对经常发生的情况采用优化方法的原则进 行选择,以得到更多的总体上的改进。 1.3 计算机系统的设计 以经常性事件为重点 对经常发生的情况采用优化方法的原则进 行选择,以得到更多的总体上的改进。 优化是指分配更多的资源、达到更高的性 能或者分配更多的电能等。 如,处理器的取值指令和译码器比乘法器用 得更频繁,所以应该先对取值指令和译码器 进行优化设计。

1.3 计算机系统的设计 Amdahl定律 该定律是1967年IBM公司的Amdahl在设计 IBM360系列机时首先提出的。该定律可用 于确定对系统中性能瓶颈部件采取措施提 高速度后能得到的系统性能改进的程度。 加快某部件执行速度所能获得的系统性能 加速比,受限于该部件的执行时间占系统 中总执行时间的百分比。 系统性能加速比:

1.3 计算机系统的设计 加速比依赖于两个因素 可改进比例:在改进前的系统中,可改进部分的执行时 间在总的执行时间中所占的比例。 1.3 计算机系统的设计 加速比依赖于两个因素 可改进比例:在改进前的系统中,可改进部分的执行时 间在总的执行时间中所占的比例。 它总是小于等于1。 例如:一个需运行60秒的程序中有20秒的运算可以加速, 那么这个比例就是20/60。 部件加速比:可改进部分改进以后性能提高的倍数。它 是改进前所需的执行时间与改进后执行时间的比。 一般情况下部件加速比是大于1的。 例如:若系统改进后,可改进部分的执行时间是2秒, 而改进前其执行时间为5秒,则部件加速比为5/2。

1.3 计算机系统的设计 改进后程序的总执行时间:

1.3 计算机系统的设计 系统加速比

1.3 计算机系统的设计 在多个部件可改进的情况下, Amdahl定理的 扩展: 1.3 计算机系统的设计 在多个部件可改进的情况下, Amdahl定理的 扩展: 其中:Sn为系统加速比,Fi为第i个部件的可改进比例,Si为第i个部件的部件加速比。

1.3 计算机系统的设计 例1.1 将计算机系统中某一功能的处理速度加快15倍,但 该功能的处理时间仅占整个系统运行时间的40%,则采用此增强 功能方法后,能使整个系统的性能提高多少? 解 由题可知:可改进比例Fe= 40% = 0.4 部件加速比Se = 15 根据Amdahl定律可知: 采用此增强功能方法后,能使整个系统的性能提高到原 来的1.6倍。

1.3 计算机系统的设计 例1.2 某计算机系统采用浮点运算部件后,使浮点运算速 度提高到原来的25倍,而系统运行某一程序的整体性能提高到 原来的4倍,试计算该程序中浮点操作所占的比例。 解 由题可知: 部件加速比Se= 25 系统加速比Sn = 4 根据Amdahl定律可知: 由此可得:可改进比例 = 78.1% 即程序中浮点操作所占的比例为78.1%。

1.3 计算机系统的设计 例1.3 计算机系统中有三个部件可以改进,这三个部件的部件加速比为: 1.3 计算机系统的设计 例1.3 计算机系统中有三个部件可以改进,这三个部件的部件加速比为: 部件加速比1=30; 部件加速比2=20; 部件加速比3=10 如果部件1和部件2的可改进比例均为30%,那么当部件3的可改进比例为多少时,系统加速比才可以达到10? 解:(1)在多个部件可改进情况下,Amdahl定理的扩展: 已知S1=30,S2=20,S3=10,Sn=10,F1=0.3,F2=0.3,得: 得F3=0.36,即部件3的可改进比例为36%。

Amdahl定律:一种性能改进的递减规则 1.3 计算机系统的设计 Amdahl定律:一种性能改进的递减规则 如果仅仅对计算任务中的一部分做性能改进,则 改进得越多,所得到的总体性能的提升就越有限。 以例1.1来说,如果部件加速比由15增大到100, 则在可改进比例仍为0.4的条件下,系统加速比 只约为1.66。 Amdahl定律告诉我们,改进效果好的高性能系 统应是一个各部分性能均能平衡地得到提高的系 统,不能只是其中某一个功能部件的性能得到提 高。

1.3 计算机系统的设计 CPU性能公式 执行一个程序所需的CPU时间 每条指令执行的平均时钟周期数CPI 1.3 计算机系统的设计 CPU性能公式 执行一个程序所需的CPU时间 CPU时间 = 执行程序所需的时钟周期数×时钟周期时间 其中:时钟周期时间是系统时钟频率的倒数。 每条指令执行的平均时钟周期数CPI (Cycles Per Instruction) CPI = 执行程序所需的时钟周期数/IC IC:所执行的指令条数 程序执行的CPU时间可以写成 CPU时间 = IC ×CPI ×时钟周期时间

1.3 计算机系统的设计 CPU的性能取决于三个参数 对CPU性能公式进行进一步细化 时钟周期时间:取决于硬件实现技术和计算机组成; 1.3 计算机系统的设计 CPU的性能取决于三个参数 时钟周期时间:取决于硬件实现技术和计算机组成; CPI:取决于计算机组成和指令系统的结构; IC:取决于指令系统的结构和编译技术。 对CPU性能公式进行进一步细化 假设:计算机系统有n种指令; CPIi :第i种指令的处理时间; ICi :在程序中第i种指令出现的次数; 则: CPU时钟周期数 =  (CPIi  Ici) n i=1

1.3 计算机系统的设计 CPU时间 = 执行程序所需的时钟周期数×时钟周期时间 = (CPIi×ICi)×时钟周期时间 n 1.3 计算机系统的设计 CPU时间 = 执行程序所需的时钟周期数×时钟周期时间 = (CPIi×ICi)×时钟周期时间 CPI可以表示为: CPI = = = 其中:(ICi/IC)反映了第i种指令在程序中所占的比例。 i=1 n 时钟周期数 IC (CPIi×ICi) (CPIi× ) ICi

1.3 计算机系统的设计 例1.4 假设浮点数指令FP的比例为25%,其中,浮点数平方根 指令FPSQR占全部指令的比例为2%,FP操作的CPI为4, FPSQR操作的CPI为20 ,其他指令的平均CPI为1.33。现有两种 改进方案,第一种是把FPSQR操作的CPI减至2,第二种是把所 有的FP操作的CPI减至2,试比较两种方案对系统性能的提高程 度。 解 没有改进之前,每条指令的平均时钟周期CPI为:

1.3 计算机系统的设计 (1)采用第一种方案 FPSQR操作的CPI由CPIFPSQR=20减至CPI’FPSQR=2, 则整个系统的指令平均时钟周期数为(从原CPI中减去节省 的周期数): CPI1=CPI―(CPIFPSQR―CPI’FPSQR)×2% =2―(20―2) ×2%=1.64 (2)采用第二种方案 所有FP操作的CPI由CPIFP=4减至CPI’FP=2,则整个 系统的指令平均时钟周期数为: CPI2=CPI―(CPIFP―CPI’FP)×25% =2―(4―2) ×25%=1.5 从降低整个系统的指令平均时钟周期数的程度来看,第 二种方案优于第一种方案。

1.3 计算机系统的设计 例1.5 考虑条件分支指令的两种不同设计方法: (1)CPU1:通过比较指令设置条件码,然后测试条件码进行分支。 (2)CPU2:在分支指令中包括比较过程。 在这两种CPU中,条件分支指令都占用2个时钟周期,而所有其它指令占用1个时钟周期。对于CPU1,执行的指令中分支指令占30%;由于每条分支指令之前都需要有比较指令,因此比较指令也占30%。由于CPU1在分支时不需要比较,因此假设CPU2的时钟周期时间是CPU1的1.35倍。问:哪一个CPU更快?如果CPU2的时钟周期时间只是CPU1的1.15倍,哪一个CPU更快呢?

1.3 计算机系统的设计 解 我们不考虑所有系统问题,所以可用CPU性能公式。 占用2个时钟周期的分支指令占总指令的30%,剩下的 指令占用1个时钟周期。所以 CPI1 = 0.3 × 2 + 0.70 × 1 = 1.3 则CPU1性能为: 总CPU时间1 = IC1 × 1.3 ×时钟周期1 根据假设,有: 时钟周期2 = 1.35 × 时钟周期1 在CPU2中没有独立的比较指令,所以CPU2的程序量 为CPU1的70%,分支指令的比例为: 30%/70% = 42.8%

1.3 计算机系统的设计 这些分支指令占用2个时钟周期,而剩下的57.2%的指令占用 1个时钟周期,因此: CPI2 = 0.428 × 2 + 0.572 × 1 = 1.428 因为CPU2不执行比较,故: IC2 = 0.7 × IC1 因此CPU2性能为: 总CPU时间2 = IC2 × CPI2 × 时钟周期2 = 0.7×IC1 ×1.428 ×1.35×时钟周期1) = 1.349 ×IC1 ×时钟周期1 在这些假设之下,尽管CPU2执行指令条数较少,CPU1因为有着更 短的时钟周期,所以比CPU2快。

1.3 计算机系统的设计 如果CPU2的时钟周期时间仅仅是CPU1的1.15倍,则 时钟周期2 = 1.15 ×时钟周期1 1.3 计算机系统的设计 如果CPU2的时钟周期时间仅仅是CPU1的1.15倍,则 时钟周期2 = 1.15 ×时钟周期1 CPU2的性能为: 总CPU时间2 = IC2 ×CPI2 ×时钟周期2       = 0.7×IC1×1.428 ×1.15×时钟周期1)       = 1.15 × IC1 ×时钟周期1 因此CPU2由于执行更少指令条数,比CPU1运行更快。

1.3 计算机系统的设计 程序的局部性原理 程序执行时所访问的存储器地址分布不是随机的,而是 相对地簇聚。这种簇聚同时存在于指令访问和数据访问中。 常用的一个经验规则 程序执行时间的90%都是在执行程序中10%的代码。 程序的时间局部性 程序即将用到的信息很可能就是目前正在使用的信息。 程序的空间局部性 程序即将用到的信息很可能与目前正在使用的信 息在空间上相邻或者临近。 程序的这种局部性原理是计算机系统多层存储体系的基本 原理依据,特别是高速缓冲存储器Cache。

1.3 计算机系统的设计 1.3.2 计算机系统设计者的主要任务 1.3 计算机系统的设计 1.3.2 计算机系统设计者的主要任务 计算机系统设计者的任务包括:指令系统的设计、数据表 示的设计、功能的组织、逻辑设计以及其物理实现等。 设计一个计算机系统大致要完成3个方面的工作。 确定用户对计算机系统的功能、价格和性能的要求 计算机系统设计者的目标 设计出能满足用户的功能需求、有较长的生命周 期、且又具有很高的性能价格比的系统。

1.3 计算机系统的设计 功能需求:根据市场的需要以及所设计系统的应用领域来确定 应用领域 专用还是通用?面向科学计算还是面向商用处理? 1.3 计算机系统的设计 功能需求:根据市场的需要以及所设计系统的应用领域来确定 应用领域 专用还是通用?面向科学计算还是面向商用处理? 软件兼容 软件兼容是指一台计算机上的程序不加修改就可以搬到另一台计算机上正常运行。 操作系统需求 包括地址空间大小、存储管理、保护等。从系统结构上对操作系统的需求提供支持,是很重要的一点。 标准 确定系统中哪些方面要采用标准以及采用什么标准。 如:浮点数标准、I/O总线标准、网络标准、程序设计语言 标准等。

1.3 计算机系统的设计 软硬件功能分配 设计出生命周期长的系统结构 考虑如何优化设计? 必须考虑软硬件功能的合理分配。 1.3 计算机系统的设计 软硬件功能分配 考虑如何优化设计? 必须考虑软硬件功能的合理分配。 软件和硬件在实现功能上是等价的 用软件实现的优点:设计容易、修改简单,而且可以减少硬件成 本。但是所实现的功能的速度较慢。 用硬件实现的优点:速度快、性能高,但它修改困难,灵活性差。 在软硬件之间进行折中和取舍。 设计出生命周期长的系统结构 特别注意计算机应用和计算机技术的发展趋势 设计出具有一定前瞻性的系统结构,以使得它具有较长的 生命周期。

1.3 计算机系统的设计 1.3.3 计算机系统设计的主要方法 适合于专用机的设计,而不适合通用机的 设计。 1.3 计算机系统的设计 1.3.3 计算机系统设计的主要方法 “由上往下”(top-down)设计 从层次结构中的最上面一级开始,逐层往下设计各层的机器。 首先确定面对使用者的那级机器的基本特征、数 据类型和格式、基本命令等。 然后再逐级往下设计,每级都考虑如何优化上一 级的实现。 适合于专用机的设计,而不适合通用机的 设计。

1.3 计算机系统的设计 从层次结构的最下面一级开始,逐层往上 设计各层的机器。 1.3 计算机系统的设计 “由下往上”(bottom-up)设计 从层次结构的最下面一级开始,逐层往上 设计各层的机器。 采用这种方法时,软件技术完全处于被动 状态,这会造成软件和硬件的脱节,使整 个系统的效率降低。 (在早期被采用得比较多,现在已经很少被采用 了 )

1.3 计算机系统的设计 “从中间开始”(middle-out)设计 “由上往下”和“由下往上”设计方法的主要缺点 软、硬件设计分离和脱节 1.3 计算机系统的设计 “从中间开始”(middle-out)设计 “由上往下”和“由下往上”设计方法的主要缺点 软、硬件设计分离和脱节 解决方法:综合考虑软、硬件的分工,从中间开始设计。 “中间”:层次结构中的软硬件的交界面,目前一般是 在传统机器语言机器级与操作系统机器级之间。 从中间开始设计 首先要进行软、硬件功能分配,确定好这个界面。 然后从这个界面开始,软件设计者开始往上设计操作系 统、汇编、编译系统等,硬件设计者开始往下设计传统 机器级、微程序机器级等。

第1章 计算机系统结构基础 1.4 计算机系统的性能评测 本节导引: 执行时间和吞吐率 基准测试程序 性能比较

1.4 计算机系统的性能评测 1.4.1 执行时间和吞吐率 如何评测一台计算机的性能,与测试者看问 题的角度有关。 1.4 计算机系统的性能评测 1.4.1 执行时间和吞吐率 如何评测一台计算机的性能,与测试者看问 题的角度有关。 用户关心的是:单个程序的执行时间(执行 单个程序所花的时间很少) 数据处理中心的管理员关心的是:吞吐率 (在单位时间里能够完成的任务很多 )

1.4 计算机系统的性能评测 假设两台计算机为X和Y,X比Y快的意思是: 对于给定任务,X的执行时间比Y的执行时间少。 X的性能是Y的n倍: 1.4 计算机系统的性能评测 假设两台计算机为X和Y,X比Y快的意思是: 对于给定任务,X的执行时间比Y的执行时间少。 X的性能是Y的n倍: 执行时间与性能成反比: 执行时间Y = n 执行时间X 1 执行时间Y 性能Y 性能X n= = = 执行时间X 1 性能Y 性能X

1.4 计算机系统的性能评测 执行时间可以有多种定义: 1.4 计算机系统的性能评测 执行时间可以有多种定义: 计算机完成某一任务所花费的全部时间,包括磁盘 访问、存储器访问、输入/输出、操作系统开销等。 CPU时间:CPU执行所给定的程序所花费的时间,不 包含I/O等待时间以及运行其它程序的时间。 用户CPU时间:用户程序所耗费的CPU时间。 系统CPU时间:用户程序运行期间操作系统耗费 的CPU时间。

1.4 计算机系统的性能评测 1.4.2 基准测试程序 用于测试和比较性能的基准测试程序的最佳选择是真 实应用程序。 (例如编译器) 1.4 计算机系统的性能评测 1.4.2 基准测试程序 用于测试和比较性能的基准测试程序的最佳选择是真 实应用程序。 (例如编译器) 以前常采用简化了的程序,例如: 核心测试程序:从真实程序中选出的关键代码段构 成的小程序。 小测试程序:简单的只有几十行的小程序。 合成的测试程序:人工合成出来的程序。 Whetstone与Dhrystone是最流行的合成测试程序。 从测试性能的角度来看,上述测试程序不可信了。

1.4 计算机系统的性能评测 原因: 性能测试的结果除了和采用什么测试程序有 关以外,还和在什么条件下进行测试有关。 1.4 计算机系统的性能评测 原因: 这些程序比较小,具有片面性; 系统结构设计者和编译器的设计者可以“合谋”把他们的机器面向这些测试程序进行优化设计,使得该机器显得性能更高。 性能测试的结果除了和采用什么测试程序有 关以外,还和在什么条件下进行测试有关。 基准测试程序设计者对制造商的要求 采用同一种编译器; 对同一种语言的程序都采用相同的一组编译标志。

1.4 计算机系统的性能评测 基准测试程序套件:由各种不同的真实应用 程序构成。 SPEC系列:最成功和最常见的测试程序套件 1.4 计算机系统的性能评测 基准测试程序套件:由各种不同的真实应用 程序构成。 (能比较全面地反映计算机在各个方面的处理性能 ) SPEC系列:最成功和最常见的测试程序套件   (美国的标准性能测试公司创建) 桌面计算机的基准测试程序套件可以分为两大类:    处理器性能测试程序,图形性能测试程序

1.4 计算机系统的性能评测 SPEC89:用于测试处理器性能。10个程序(4个整数程 序,6个浮点程序) 演化出了4个版本 1.4 计算机系统的性能评测 SPEC89:用于测试处理器性能。10个程序(4个整数程   序,6个浮点程序) 演化出了4个版本     SPEC92:20个程序     SPEC95:18个程序     SPEC2000:26个程序     SPEC CPU2006: 29个程序 SPEC CPU2006 整数程序12个(CINT2006)   9个是用C写的,3个是用C++写的 浮点程序17个(CFP2006)   6个是用FORTRAN写的,4个是用C++写的,3个   是用C写的,4个是用C和FORTRAN混合编写的。

1.4 计算机系统的性能评测 SPEC测试程序套件中的其它一系列测试程序组件 1.4 计算机系统的性能评测 SPEC测试程序套件中的其它一系列测试程序组件 SPECSFS:用于NFS(网络文件系统)文件服务器的测试 程序。它不仅测试处理器的性能,而且测试I/O系统的性 能。它重点测试吞吐率。 SPECWeb:Web服务器测试程序。 SPECviewperf:用于测试图形系统支持OpenGL库的性能。 SPECapc:用于测试图形密集型应用的性能。

事务处理(TP)性能测试程序:用于测试计算机 在事务处理方面的能力,包括数据库访问和更新等。 1.4 计算机系统的性能评测 事务处理(TP)性能测试程序:用于测试计算机 在事务处理方面的能力,包括数据库访问和更新等。 20世纪80年代中期,一些工程师成立了称为TPC的 独立组织,目的是开发用于TP性能测试的真实而 公平的基准程序。 先后发布了多个版本: TPC-A、TPC-C、TPC-H、TPC-W、TPC-App等 (主要用于测试服务器的性能)

1.4 计算机系统的性能评测 用于测试基于Microsoft公司的Windows系列操作系统 平台的测试套件 1.4 计算机系统的性能评测 用于测试基于Microsoft公司的Windows系列操作系统 平台的测试套件 PCMark04:中央处理器测试组、内存测试组、图形芯片测 试组、硬盘测试组等。 Business Winstone 2004:主要用于测试计算机系统商业应 用的综合性能。 Multimedia Content Creation Winstone 2004:主要用于测 试计算机系统多媒体应用的综合性能。 SiSoft Sandra Pro 2004:一套功能强大的系统分析评比工 具,拥有超过30中以上的分析与测试模块。主要包括: CPU、存储器、I/O接口、I/O设备、主板等。

1.4 计算机系统的性能评测 1.4.3 性能比较 两个程序在A、B、C三台机器上的执行时间 机器A 机器B 机器C W(1) W(2) 1.4 计算机系统的性能评测 1.4.3 性能比较 两个程序在A、B、C三台机器上的执行时间 机器A 机器B 机器C W(1) W(2) W(3) 程序1 1.00 10.00 20.00 0.50 0.909 0.999 程序2 1000.00 0.091 0.001 加权算术 平均值Am(1) 500.50 平均值Am(2) 91.91 平均值Am(3) 2.00 Wi:第i个测试程序在测试程序组中所占的比重

1.4 计算机系统的性能评测 如何比较这三台机器的性能呢? 从该表可以得出: 执行程序1: A机的速度是B机的10倍 1.4 计算机系统的性能评测 如何比较这三台机器的性能呢? 从该表可以得出: 执行程序1: A机的速度是B机的10倍 A机的速度是C机的20倍 B机的速度是C机的2倍 执行程序2: B机的速度是A机的100倍 C机的速度是A机的50倍

1.4 计算机系统的性能评测 总执行时间:机器执行所有测试程序的总时间 平均执行时间:各测试程序执行时间的算术平均值 1.4 计算机系统的性能评测 总执行时间:机器执行所有测试程序的总时间 B机执行程序1和程序2的速度是A机的50.05倍 C机执行程序1和程序2的速度是A机的24.02倍 B机执行程序1和程序2的速度是C机的2倍 平均执行时间:各测试程序执行时间的算术平均值 其中:Ti:第i个测试程序的执行时间 n:测试程序组中程序的个数

1.4 计算机系统的性能评测 加权执行时间:各测试程序执行时间的加权平均值 其中,Wi:第i个测试程序在测试程序组中所占的比重 1.4 计算机系统的性能评测 加权执行时间:各测试程序执行时间的加权平均值 其中,Wi:第i个测试程序在测试程序组中所占的比重 Ti:该程序的执行时间

1.4 计算机系统的性能评测 调和平均值法 其中, Ri:由n个程序组成的工作负荷中执行第i个程序的速度 Ri=1/Ti 1.4 计算机系统的性能评测 调和平均值法 其中, Ri:由n个程序组成的工作负荷中执行第i个程序的速度 Ri=1/Ti Ti:第i个程序的执行时间 加权调和平均值公式

1.4 计算机系统的性能评测 几何平均值法 :以某台计算机的性能作为参考标准,其 他计算机性能则除以该参考标准而获得一个比值。 1.4 计算机系统的性能评测 几何平均值法 :以某台计算机的性能作为参考标准,其 他计算机性能则除以该参考标准而获得一个比值。 Ri:由n个程序组成的工作负荷中执行第i个程序的速度 Ri=1/Ti 加权几何平均值 Gm表示法有一个很好的特性 几何平均值的比等于比的几何平均值

第1章 计算机系统结构基础 1.5 计算机系统结构的发展 本节导引: 冯·诺依曼结构及其改进 软件对系统结构的影响 器件发展对系统结构的影响 第1章 计算机系统结构基础 1.5 计算机系统结构的发展 本节导引: 冯·诺依曼结构及其改进 软件对系统结构的影响 器件发展对系统结构的影响 应用对系统结构的影响

1.5 计算机系统结构的发展 1.5.1 冯·诺依曼结构及其改进 存储程序计算机的结构

1.5 计算机系统结构的发展 存储程序原理的基本点:指令驱动 冯·诺依曼结构的主要特点 1.5 计算机系统结构的发展 存储程序原理的基本点:指令驱动 程序预先存放在计算机存储器中,机器一旦启动,就能按照程序指定的逻辑顺序执行这些程序,自动完成由程序所描述的处理工作。 冯·诺依曼结构的主要特点 计算机以运算器为中心。 在存储器中,指令和数据同等对待。 指令和数据一样可以进行运算,即由指令组成的程序是可以修改的。 存储器是按地址访问、按顺序线性编址的一维结构,每个单元的位数是固定的。

1.5 计算机系统结构的发展 指令的执行是顺序的。 指令由操作码和地址码组成。 指令和数据均以二进制编码表示,采用二 进制运算。 1.5 计算机系统结构的发展 指令的执行是顺序的。 一般是按照指令在存储器中存放的顺序执行。 程序的分支由转移指令实现。 由指令计数器PC指明当前正在执行的指令在存储 器中的地址。 指令由操作码和地址码组成。 指令和数据均以二进制编码表示,采用二 进制运算。

1.5 计算机系统结构的发展 对系统结构进行的改进 输入/输出方式的改进 采用并行处理技术 如何挖掘传统机器中的并行性? 1.5 计算机系统结构的发展 对系统结构进行的改进 输入/输出方式的改进 采用并行处理技术 如何挖掘传统机器中的并行性? 在不同的级别采用并行技术。 例如:微操作级、指令级、线程级、进程级、任务级等。

1.5 计算机系统结构的发展 存储器组织结构的发展 指令系统的发展两个发展方向: 相联存储器与相联处理机 通用寄存器组 1.5 计算机系统结构的发展 存储器组织结构的发展 相联存储器与相联处理机 通用寄存器组 高速缓冲存储器Cache 指令系统的发展两个发展方向: 复杂指令集计算机CISC 精减指令集计算机RISC

1.5 计算机系统结构的发展 1.5.2 软件对系统结构的影响 1.5 计算机系统结构的发展 1.5.2 软件对系统结构的影响 软件的可移植性:一个软件可以不经修改 或者只需少量修改就可以由一台机器移植 到另一台机器上正确地运行。差别只是执 行时间的不同。 我们称这两台机器是软件兼容的。 实现可移植性的常用方法 采用系列机,模拟与仿真,统一高级语言 。

1.5 计算机系统结构的发展 1. 统一高级语言 2. 系列机 实现软件移植的一种理想的方法 较难实现 1.5 计算机系统结构的发展 1. 统一高级语言 实现软件移植的一种理想的方法 较难实现 2. 系列机 由同一厂家生产的具有相同的系统结构,但具有不同组 成和实现的一系列不同型号的机器。 系列机与前述从中间向两边设计相呼应。在软、硬件 界面上设定好一种系统机构,其后,软件设计者按此 设计软件,硬件设计者根据机器速度、性能、价格的 不同,选择不同器件、硬件和组成、实现技术,研制 并提供不同档次的机器。 较好地解决软件开发要求系统结构相对稳定与器件、 硬件技术迅速发展的矛盾。

1.5 计算机系统结构的发展 软件兼容: 向上(下)兼容:按某档机器编制的程序,不加 修改就能运行于比它高(低)档的机器。 1.5 计算机系统结构的发展 软件兼容: 向上(下)兼容:按某档机器编制的程序,不加 修改就能运行于比它高(低)档的机器。 向前(后)兼容:按某个时期投入市场的某种型 号机器编制的程序,不加修改地就能运行于在它 之前(后)投入市场的机器。

1.5 计算机系统结构的发展 系列机软件必须保证向后兼容 力争向上兼容 至于之后的软件完全可以发展,不一定非要 向前兼容。 1.5 计算机系统结构的发展 系列机软件必须保证向后兼容 力争向上兼容 至于之后的软件完全可以发展,不一定非要 向前兼容。 不一定要向下兼容,特别是与机器速度有关 的实时性软件向下兼容就难以做到。

1.5 计算机系统结构的发展 3. 模拟和仿真 使软件能在具有不同系统结构的机器之间 相互移植。 在一种系统结构上实现另一种系统结构。 1.5 计算机系统结构的发展 3. 模拟和仿真 使软件能在具有不同系统结构的机器之间 相互移植。 在一种系统结构上实现另一种系统结构。 从指令集的角度来看,就是要在一种机器上实现 另一种机器的指令集。

1.5 计算机系统结构的发展 模拟: 例如,要求用原来在B机器上运行的应用软件,能移植到 有不同系统结构的A机器上,根据层次结构概念,可把B 机器的机器语言看成是在A机器的机器语言级之上的一个 虚拟机器语言,在A机器上用虚拟机的概念来实现B机器 的指令系统。B机器的每条机器指令用A机器的一段机器 语言程序解释,如同A机器上也有B机器的指令系统一样 。 这种用机器语言程序解释实现软件移植的方法称为模拟。 进行模拟的A机器称为宿主机,被模拟的B机器称为虚拟 机。 通常用解释的方法来实现。 运行速度较慢,性能较差。

1.5 计算机系统结构的发展 仿真 如果宿主机本身采用微程序控制,那么模拟时,一 条B机器指令就需要通过二重解释。先经A机器的 机器语言程序解释,然后每条A机器指令又经一段 微程序解释。如果能直接用微程序去解释B机器的 指令,显然就会加快这一解释过程。 这种用微程序直接解释另一种机器指令系统的方法 就称为仿真。进行仿真的A机器称为宿主机,被仿 真的B机器称为目标机。 运行速度比模拟方法的快 仿真只能在系统结构差距不大的机器之间使用

1.5 计算机系统结构的发展 仿真和模拟的主要区别在于解释用的语言。仿 真是用微程序解释,而模拟是用机器语言程序 解释。 1.5 计算机系统结构的发展 仿真和模拟的主要区别在于解释用的语言。仿 真是用微程序解释,而模拟是用机器语言程序 解释。 不同系列间的软件移植一般是仿真和模拟并行 。频繁使用的、易于仿真的机器指令宜用仿真 以提高速度,很少使用的、难以仿真的指令及 I/O操作宜用模拟。即使两种机器系统差别不 大,往往也需用模拟来完成机器间的映象。

1.5 计算机系统结构的发展 1.5.3 器件发展对系统结构的影响 摩尔定律 集成电路芯片上所集成的晶体管数目每隔18个月 就翻一番。 1.5 计算机系统结构的发展 1.5.3 器件发展对系统结构的影响 推动计算机系统结构不断发展的最活跃的因素 摩尔定律 集成电路芯片上所集成的晶体管数目每隔18个月 就翻一番。 计算机的分代主要以器件作为划分标准。 它们在器件、系统结构和软件技术等方面都有各 的特征。 SMP:对称式共享存储器多处理机 MPP:大规模并行处理机 MP:多处理机

Cray-1,IBM 3090,DEC VAX 9000,Convax-1 分代 器件特征 结构特征 软件特征 典型实例 第一代 (1945—1954年) 电子管和继电器 存储程序计算机 程序控制I/O 机器语言 汇编语言 普林斯顿ISA, ENIAC,IBM 701 第二代 (1955—1964年) 晶体管、磁芯 印刷电路 浮点数据表示 寻址技术 中断、I/O处理机 高级语言和编译 批处理监控系统 Univac LAPC, CDC 1604, IBM 7030 第三代 (1965—1974年) SSI和MSI 多层印刷电路 微程序 流水线、Cache 先行处理 系列机 多道程序 分时操作系统 IBM 360/370, CDC 6600/7600, DEC PDP-8 第四代 (1975—1990年) LSI和VLSI 半导体存储器 向量处理 分布式存储器 并行与分布处理 Cray-1,IBM 3090,DEC VAX 9000,Convax-1 第五代 (1991年—) 高性能微处理器高密度电路 超标量、超流水 SMP、MP、MPP 机群 大规模、可扩展 SGI Cray T3E, IBM SP2,DEC AlphaServer 8400 1.5 计算机系统结构的发展

1.5 计算机系统结构的发展 1.5.4 应用对系统结构的影响 不同的应用对计算机系统结构的设计提出了不同的要求。 1.5 计算机系统结构的发展 1.5.4 应用对系统结构的影响 不同的应用对计算机系统结构的设计提出了不同的要求。 应用需求是促使计算机系统结构发展的最根本的动力。 一些特殊领域:需要高性能的系统结构 高结构化的数值计算 气象模型、流体动力学、有限元分析 非结构化的数值计算 蒙特卡洛模拟、稀疏矩阵 实时多因素问题 语音识别、图象处理、计算机视觉

1.5 计算机系统结构的发展 大存储容量和输入输出密集的问题 数据库系统、事务处理系统 图形学和设计问题 计算机辅助设计 人工智能 1.5 计算机系统结构的发展 大存储容量和输入输出密集的问题 数据库系统、事务处理系统 图形学和设计问题 计算机辅助设计 人工智能 面向知识的系统、推理系统等

第1章 计算机系统结构基础 1.6 计算机系统结构中并行性的发展 本节导引: 并行性的概念 提高并行性的技术途径 单机系统中并行性的发展 第1章 计算机系统结构基础 1.6 计算机系统结构中并行性的发展 本节导引: 并行性的概念 提高并行性的技术途径 单机系统中并行性的发展 多机系统中并行性的发展 并行机的发展变化

并行性:计算机系统在同一时刻或者同 一时间间隔内进行多种运算或操作。 1.6 计算机系统结构中并行性的发展 1.6.1 并行性的概念 并行性:计算机系统在同一时刻或者同 一时间间隔内进行多种运算或操作。 只要在时间上相互重叠,就存在并行性。 并行性包含同时性和并发性两种含义: 同时性:两个或两个以上的事件在同一时 刻发生。 并发性:两个或两个以上的事件在同一时 间间隔内发生。

1.6 计算机系统结构中并行性的发展 从执行程序的角度来看,并行性等级从低到高可分为: 指令内部并行:单条指令中各微操作之间的并行。 1.6 计算机系统结构中并行性的发展 从执行程序的角度来看,并行性等级从低到高可分为: 指令内部并行:单条指令中各微操作之间的并行。 指令级并行:并行执行两条或两条以上的指令。 线程级并行:并行执行两个或两个以上的线程。 通常是以一个进程内派生的多个线程为调度单位。 任务级或过程级并行:并行执行两个或两个以上 的过程或任务(程序段) 以子程序或进程为调度单元。 作业或程序级并行:并行执行两个或两个以上的 作业或程序。

1.6 计算机系统结构中并行性的发展 从处理数据的角度来看,并行性等级从低到高可分为: 字串位串:每次只对一个字的一位进行处理。 1.6 计算机系统结构中并行性的发展 从处理数据的角度来看,并行性等级从低到高可分为: 字串位串:每次只对一个字的一位进行处理。 最基本的串行处理方式,不存在并行性。 字串位并:同时对一个字的全部位进行处理,不 同字之间是串行的。 开始出现并行性。 字并位串:同时对许多字的同一位(称为位片) 进行处理。 具有较高的并行性。 全并行:同时对许多字的全部位或部分位进行处理。 最高一级的并行。

1.6 计算机系统结构中并行性的发展 1.6.2 提高并行性的技术途径 时间重叠 1.6 计算机系统结构中并行性的发展 1.6.2 提高并行性的技术途径 时间重叠 引入时间因素,让多个处理过程在时间上相互错 开,轮流重叠地使用同一套硬件设备的各个部分, 以加快硬件周转而赢得速度。 资源重复 引入空间因素,以数量取胜。通过重复设置硬件 资源,大幅度地提高计算机系统的性能。 资源共享 这是一种软件方法,它使多个任务按一定时间顺 序轮流使用同一套硬件设备。

1.6 计算机系统结构中并行性的发展 1.6.3 单机系统中并行性的发展 在发展高性能单处理机过程中,起主导作用的是时 间重叠原理。 1.6 计算机系统结构中并行性的发展 1.6.3 单机系统中并行性的发展 在发展高性能单处理机过程中,起主导作用的是时 间重叠原理。 在单处理机中,资源重复原理的运用也已经十分普 遍。 多体存储器 多操作部件 阵列处理机(并行处理机) 在单处理机中,资源共享的概念实质上是用单处理 机模拟多处理机的功能,形成所谓虚拟机的概念。 如分时系统。

1.6 计算机系统结构中并行性的发展 1.6.4 多机系统中并行性的发展 1.6 计算机系统结构中并行性的发展 1.6.4 多机系统中并行性的发展 多机系统遵循时间重叠、资源重复、资源共享原理, 发展为3种不同的多处理机: 同构型多处理机、异构型多处理机、分布式系统 耦合度 反映多机系统中各机器之间物理连接的紧密程度 和交互作用能力的强弱。 紧密耦合系统(直接耦合系统):在这种系统中, 计算机之间的物理连接的频带较高,一般是通过 总线或高速开关互连,可以共享主存。 松散耦合系统(间接耦合系统):一般是通过通 道或通信线路实现计算机之间的互连,可以共享 外存设备(磁盘、磁带等)。机器之间的相互作 用是在文件或数据集一级上进行。

1.6 计算机系统结构中并行性的发展 功能专用化(实现时间重叠 ) 专用外围处理机 专用处理机 异构型多处理机系统 机间互连 容错系统 1.6 计算机系统结构中并行性的发展 功能专用化(实现时间重叠 ) 专用外围处理机 专用处理机 异构型多处理机系统 机间互连 容错系统 可重构系统 同构型多处理机系统

1.6 计算机系统结构中并行性的发展 1.6.5 并行机的发展变化 并行机的发展可分为5个阶段。 并行机的萌芽阶段(1964年~1975年) 1.6 计算机系统结构中并行性的发展 1.6.5 并行机的发展变化 并行机的发展可分为5个阶段。 并行机的萌芽阶段(1964年~1975年) 20世纪60年代初期 CDC6600:非对称的共享存储结构,中央处理 机采用了双CPU,并连接了多个外部处理器。 60年代后期,一个重要的突破 在处理器中使用流水线和重复设置功能单元,所 获得的性能提高是明显的,并比单纯地提高时钟 频率来提高性能更有效。

1.6 计算机系统结构中并行性的发展 在1972年,Illinois大学和Burroughs公司联合研制Illiac Ⅳ SIMD计算机(64个处理单元构成的)在1975年 Illiac Ⅳ系统 (16个处理单元构成) 向量机的发展和鼎盛阶段(1976年~1990年) 1976年,Cray公司推出了第一台向量计算机Cray-1 在随后的10年中,不断地推出新的向量计算机。 包括:CDC的Cyber205、Fujitsu的VP1000/VP2000、 NEC的SX1/SX2以、我国的YH-1等 向量计算机的发展呈两大趋势 提高单处理器的速度 研制多处理器系统

1.6 计算机系统结构中并行性的发展 MPP出现和蓬勃发展阶段(1990年~1995年) 早期的MPP(大规模并行处理机) 1.6 计算机系统结构中并行性的发展 MPP出现和蓬勃发展阶段(1990年~1995年) 早期的MPP(大规模并行处理机) TC2000(1989年)、Touchstone Delta、Intel Paragon(1992年)、KSR1、Cray T3D(1993年)、 IBM SP2(1994年)和我国的曙光-1000(1995年) 等。(分布存储的MIMD计算机) MPP的高端机器 1996年,Intel公司的ASCI Red和1997年SGI Cray公 司的T3E900 (万亿次高性能并行计算机) 90年代的中期,在中、低档市场上,SMP以其更优的 性能/价格比代替了MPP。

1.6 计算机系统结构中并行性的发展 各种体系结构并存阶段(1995年~2000年) 1.6 计算机系统结构中并行性的发展 各种体系结构并存阶段(1995年~2000年) 从1995年以后,PVP(并行向量处理机)、MPP、 SMP、DSM(分布式共享存储多处理机)、 COW等各种体系结构进入并存发展的阶段。 MPP系统在全世界前500强最快的计算机中的占 有量继续稳固上升,其性能也得到了进一步的提 高。 如:ASCI Red的理论峰值速度已达到了1Tflop/s SX4和VPP700等的理论峰值速度也都达到了 1Tflop/s

1.6 计算机系统结构中并行性的发展 机群蓬勃发展阶段(2000年以后) 1.6 计算机系统结构中并行性的发展 机群蓬勃发展阶段(2000年以后) 机群系统:将一群工作站或高档微机用某种结构 的互连网络互连起来,充分利用其中各计算机的 资源,统一调度、协调处理,以达到很高的峰值 性能,并实现高效的并行计算。 1997年6月才有第一台机群结构的计算机进入 Top500排名 2003年11月,这一数字已达到208台,机群首次 成为Top500排名中比例最高的结构。 截至2008年6月,机群已经连续10期位居榜首, 其数量已经达到400,占80%。

1.6 计算机系统结构中并行性的发展 机群已成为当今 构建高性能并行 计算机系统的最 常用的结构。 1.6 计算机系统结构中并行性的发展 机群已成为当今 构建高性能并行 计算机系统的最 常用的结构。 1993年至2008年 期间,Top500中 机群和MPP的数 量的分布情况。