计算机系统结构教程 武汉理工大学.

Slides:



Advertisements
Similar presentations
2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
Advertisements

数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
高校教师、高级项目经理 任铄 QQ : 第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 OS 结构设计.
会计从业资格 初级会计电算化. 考试题型: 本章内容在考试中以单选题、多选题、判断题 形式出现; 重点理解计算机软件的概念,掌握计算机软件 的构成,了解常用软件的内容。 计算机软件.
第2章 电子计算机的基本结构 2. 1 冯·诺依曼计算机模型 2. 2 电子计算机的组成结构 2. 3 计算机系统的分类
William Stallings Computer Organization and Architecture
并行计算机体系结构 东南大学计算机学院 任国林
计算机系统结构 主讲:任国林
四川大学计算机学院 主讲:倪云竹 计算机系统结构 四川大学计算机学院  主讲:倪云竹
信息技术:硬件、软件、网络、数据库 计算机技术、多媒体技术、压缩技术...
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
2017年3月5日 单片机原理与应用 背景知识调查.
第一章 计算机体系结构的基本概念.
计算机系统结构 第一章 基本概念 第二章 指令系统 第三章 存储系统 第四章 输入输出系统 第五章 标量处理机 第六章 向量处理机
初级会计电算化 (用友T3) 制作人:张爱红.
电子数字计算机 计算机性能 计算机硬件 计算机软件 多级层次结构
第1章 导论 【学习内容】 1.1计算机系统结构的基本概念 1.2计算机性能评测价 学习目标.
计算机体系结构 Computer Architecture
Welcome to the world of Computer Architecture 计算机体系结构 李 东
实用操作系统概念 张惠娟 副教授 1.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
Oracle数据库 Oracle 子程序.
1.2 计算机体系结构的概念 计算机系统中的层次概念 1. 计算机系统=软件+硬件/固件 2. 计算机语言由低级向高级发展
计算机系统结构 西南林业大学计信学院 邢丽伟.
计算机系统结构 南京航空航天大学 计算机科学与技术学院 主讲:刘佳
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
计算机基础知识 丁家营镇九年制学校 徐中先.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
OpenMP简介和开发教程 广州创龙电子科技有限公司
嵌入式系统课程简介 宋健建 南京大学软件学院 2004/02/10.
存储系统.
SOA – Experiment 3: Web Services Composition Challenge
走进编程 程序的顺序结构(二).
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第17章 网站发布.
逆向工程-汇编语言
CPU结构和功能.
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
Instructions: Language of the Machine
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
微机系统的组成.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
VisComposer 2019/4/17.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
计算机组成与系统结构 陈泽宇 副教授.
项目二:HTML语言基础.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
Parallel Programming Xuanhua Shi/Pingpeng Yuan
临界区问题的硬件指令解决方案 (Synchronization Hardware)
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
第二节 C语言的特点.
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
入侵检测技术 大连理工大学软件学院 毕玲.
第二次课后作业答案 函数式编程和逻辑式编程
Presentation transcript:

计算机系统结构教程 武汉理工大学

目 录 第1章 导论 1.1 计算机系统结构的基本概念 1.2 计算机性能评测 1.3 并行计算机的发展

1.1 计算机系统结构的基本概念 计算机系统性能的不断提高主要靠器件的变革和计算机系统结构的改进。 1.1 计算机系统结构的基本概念 计算机系统性能的不断提高主要靠器件的变革和计算机系统结构的改进。 计算机的器件 计算机换代的标志: 计算机系统的结构 推动计算机系统结构发展的关键是提高计算机系统的并行性

1.1.1 计算机系统的层次结构 从计算机语言的角度,可将通用计算机系统划分成多级层次结构,每一层以一种不同的语言为特征。 1.1.1 计算机系统的层次结构 从计算机语言的角度,可将通用计算机系统划分成多级层次结构,每一层以一种不同的语言为特征。 按由低层到高层的顺序,各层分别是: 微程序机器级 传统机器语言机器级 操作系统机器级 汇编语言机器级 高级语言机器级 应用语言机器级

第2级 机器语言 机器语言 程序员 计算机 传统机器语言机器级 第1级 逻辑设计员 实现机器指定功能的中央控制部分 硬件维护员 第0级 处理机 机器程序 机器指令 系统 第2级 机器语言 计算机 机器语言 程序员 传统机器语言机器级 微程序控制 寄存器 传送门 机器指令 时序 第1级 逻辑设计员 实现机器指定功能的中央控制部分 硬联逻辑 逻辑线路 内核 硬操作时序 第0级 硬件维护员 设计员

第6级 用户 应用语言机器级 第5级 高级语言 计算机 程序员 高级语言机器级 第4级 汇编语言 计算机 程序员 汇编语言机器级 第3级 应用程序 信息处理 系统 应用语言 第6级 用户 应用语言机器级 解释程序 编译程序 运行程序 高级语言 第5级 计算机 高级语言 程序员 高级语言机器级 汇编程序 运行程序 汇编语言 第4级 计算机 汇编语言 程序员 汇编语言机器级 操作系统 系统资源 键盘命令 系统原语 第3级 操作员 操作系统机器级

1. 低层机器级对高层机器级的支持 各层机器级语言的功能是依靠下一层机器级的支持才能实现的,而且,这种支持要满足透明性要求。 透明性: 从计算机系统的某一层的使用者角度看,只需通过该层的语言就可以使用机器,而不必关心其下层的机器级是如何工作和如何实现对上层的支持的。 计算机系统的“透明”是看不到的意思,即对某一层的使用者来说,他看不到该层以下各层的机器属性。

2. 计算机系统结构、计算机组成与实现 计算机系统结构: 计算机组成 : (Computer Architecture)也称为计算机体系结构,经典的计算机系统结构的定义是指计算机系统多级层次结构中机器语言机器级的结构,它是软件和硬件/固件的主要交界面,是由机器语言程序、汇编语言源程序和高级语言源程序翻译生成的机器语言目标程序能在机器上正确运行所应具有的界面结构和功能。 计算机组成 : (Computer Organization)是计算机系统结构的逻辑实现,它主要研究硬件系统在逻辑上是如何组织的,机器级内部数据流和控制流的组成与逻辑设计。计算机实现(Computer Implementation)是指计算机组成的物理实现,主要着眼于器件技术和微组装技术。

结构、组成与实现之间的相互影响 相同结构的计算机可以因速度等性能要求不同而采用不同的组成,相同的组成可有多种不同的实现方法,这都取决于计算机系统的性能和价格要求以及器件技术的发展情况。 结构不同则可用的组成技术会有所不同,而不同的组成又会反过来影响系统结构的设计。

3. 软件可移植性 软件可移植性 : 在计算机系统结构的范畴内,实现软件可移植性的基本途径有: 统一高级语言 采用系列机 模拟和仿真等。 (Software Portability)是指在一台机器上编制的软件不用修改或只经少量修改就可在另一台机器上运行,使得同一个软件可以应用于不同的硬件环境中。 在计算机系统结构的范畴内,实现软件可移植性的基本途径有: 统一高级语言 采用系列机 模拟和仿真等。

系列机: 软件兼容 : 具有相同的系统结构,但具有不同组成和实现技术的一系列不同型号的机器。 系列机技术既可以使同一系列的机器在汇编语言上实现统一,又能在同一系列内开发出性能价格比更高的新机器。因此,在结构相同或相近的机器之间能实现汇编语言应用软件和部分系统软件的移植。 软件兼容 : 是指同一个软件可以不加修改地运行于结构相同的各档机器上,而且运行结果一致。 向上(下)兼容是指在某档机器上编制的程序可不加修改地运行于比它高(低)档的机器上; 向前(后)兼容是指在某型号机器上编制的程序可不加修改地运行于在它之前(后)投入市场的机器上。 对于系列机必须保证做到向后兼容,力争做到向上兼容。

模拟与仿真 (1) 模拟与仿真能实现在结构不同的机器之间的机器语言程序的移植。 模拟(Simulation)是用机器语言程序解释另一机器的机器指令来实现软件移植的。在两种机器的机器指令系统差异较大时,使用模拟方法会使程序运行速度严重下降。 仿真(Emulation)是用微程序直接解释另一机器的机器指令来实现软件移植的。采用仿真方法可以提高被移植软件的运行速度,但在机器结构差异较大的情况下,难以实现仿真。

模拟与仿真 (2) 在不同系列机器之间实现软件移植时,可将模拟和仿真两种技术结合起来使用,模拟与仿真的区别是:模拟是用机器语言程序解释指令,其解释程序存储在主存中;仿真是用微程序解释指令,其解释程序存储在控制存储器中。

1.1.2 计算机系统并行性的基本概念 并行性 : 同时性 : 并发性 : 1.1.2 计算机系统并行性的基本概念 并行性 : 是指同一时刻或同一时间间隔内发生两种或两种以上性质相同或不相同的事件。 同时性 : 是指两个或多个事件在同一时刻发生。 并发性 : 是指两个或多个事件在同一时间间隔内发生。

1. 发展计算机系统并行性的技术途径 可以通过3类技术途径来提高计算机系统的并行性,这就是时间重叠、资源重复和资源共享。 时间重叠是在并行性概念中引入时间因素,让多个处理过程在处理时间上错开,轮流重叠地使用同一套硬件设备的各个部件,提高多个处理过程的并发性。 资源重复是在并行性概念中引入空间因素,通过重复设置硬件资源分别同时用于多个处理过程,实现多个处理过程的同时性。 资源共享是利用软件方法让多个任务按一定顺序轮流使用一套资源,通过提高系统资源利用率来提高系统的性能和效率。

2. 并行性等级 (1)按计算机系统中执行程序的并行性划分 ① 指令内部并行 ② 指令之间并行 ③ 任务或进程之间并行 2. 并行性等级 (1)按计算机系统中执行程序的并行性划分 ① 指令内部并行 ② 指令之间并行 ③ 任务或进程之间并行 ④ 作业或程序之间并行 (2)按计算机信息加工的并行性划分 ① 存储器操作并行 ② 处理器操作步骤并行 ③ 处理器操作并行 ④ 指令、任务、作业并行

3. 计算机系统结构的分类 指令流 : 数据流 : 多倍性 : 是指机器执行的指令序列。 3. 计算机系统结构的分类 是指机器执行的指令序列。 指令流 : 是指由指令流调用的数据序列,包括输入数据和中间结果。 数据流 : 是指在系统最受限制的部件上,同时处于同一执行阶段的指令或数据的最大可能个数。 多倍性 : Flynn按指令流和数据流的多倍性对计算机系统结构进行分类: 单指令流单数据流(SISD)体系结构 单指令流多数据流(SIMD)体系结构 多指令流单数据流(MISD)体系结构 多指令流多数据流(MIMD)体系结构

CU:控制部件 PU:处理部件 MM:存储器模块 IS:指令流 DS:数据流 图1.4 Flynn分类法各类机器结构

1.2 计算机性能评测 计算机性能 : 通常是指计算机的工作速度,它是程序执行时间的倒数。 1.2 计算机性能评测 计算机性能 : 通常是指计算机的工作速度,它是程序执行时间的倒数。 计算机的性能不仅与计算机的系统结构有关,而且与程序和算法有关。

1.2.1 计算机性能评测的作用与分级 1. 性能评测的作用 (1)改进体系结构设计,提高机器的性能 (2)促进软/硬件结合,合理功能划分 (3)优化“结构—算法—应用”的最佳组合 (4)提高高性能计算机的使用效率

2. 性能评测的分级 计算机性能的评测可以划分为机器级、算法级和程序级3个层次。 机器级的性能评测主要包括:CPU的基本性能指标;存储器的基本性能指标;并行计算机的并行计算与通信的开销;并行计算机的可用性和好用性以及机器成本、价格与性能/价格比等。 算法级的性能评测主要是为了评价算法的性能。在并行计算机上进行计算的主要目的是要加速整个计算过程,其中,并行算法的加速性能是最关键的因素,它体现了对于一个给定的应用,并行算法相对于串行算法的执行速度加快了多少倍。 程序级的性能评测主要使用一组基准测试程序测试和评价计算机系统的各种性能。

基准测试程序 ① 真实程序 真实程序是指实际应用程序,例如,C语言的各种编译程序、Tex文本处理软件、CAD设计工具Spice等。 ② 核心程序 核心程序是从实际程序中抽取少量但很关键的代码段组成。 ③ 小测试程序 小测试程序是指代码长度一般在100行以内的测试程序。用户可以根据自己的测试目的编写一些小段程序,并按已预知的输出结果。 ④ 综合测试程序 程序中各种操作类型和操作数类型所占的比例不同,程序运行的时间也就不相同。综合测试程序试图使程序中各类操作和操作数的比例与大量应用程序中的比例一致,从而提高测评的准确性。。 ⑤ 测试程序组件 最常见的测试组件有SPEC’95和WinBench’98

1.2.2 计算机的基本性能指标 1. 单CPU性能 一个程序在计算机上运行,花费的CPU时间为CPU的时钟周期与该程序所有机器指令使用CPU的时钟周期数的乘积,即 CPU时间 = CPU时钟周期数 × 时钟周期 或 CPU时间 = CPU时钟周期数 / 时钟频率 若程序使用的指令条数用IC表示,那么,指令的平均时钟周期数CPI为 CPI = CPU时钟周期数 / IC

可重写CPU时间表达式为 CPU时间 = ( IC × CPI ) / 时钟频率 上式表明,CPU的性能取决于3个因素: 时钟频率,时钟频率取决于硬件技术和组织。 机器指令的平均时钟周期数CPI,CPI 取决于系统结构及其指令集的设计与实现。 程序使用的指令条数IC,IC取决于系统结构的指令集和编译技术。

若指令 i 在程序中执行的次数为Ii,指令 i 所需的时钟周期数为CPIi ,那么,指令的平均时钟周期数 CPI 为 其中,Ii / IC表示指令i在程序所使用的指令条数中所占的比例,称为指令 i 的使用频度。

2. 加速比 Amdahl定律用加速比来衡量改进措施对系统性能提高的程度。 加速比S的定义为 S = T0 / T

若Fe表示改进前可被改进部分的执行时间相对T0的百分比,那么,改进前不被改进部分的执行时间相对T0的百分比为1-Fe。另外,用Se表示可被改进部分改进前执行时间对改进后执行时间的比值,即被改进部分改进后的速度提高倍数。可以用Fe和Se表示Tn为 Tn=T0(1-Fe)+T0Fe/Se=T0(1-Fe+Fe/Se) 可得改进后整个系统的加速比Sn为 由于0≤Fe≤1,Se≥1,故Sn≥1。可见性能的提高幅度受改进部分所占比例Fe的限制。即使改进部分的改进效果非常好,有Se→∞,可得Sn=1/(1-Fe),整个系统的性能提高的程序受Fe的限制。

【例1.3】 如果FP指令的比例为25%,其中,FPSQR占全部指令的比例为2%,FP操作的CPI为4,FPSQR操作的CPI为20,其他指令的平均CPI为1.33。现有两种改进方案,一种是把FPSQR操作的CPI减至2,另一种是把所有的FP操作的CPI减至2,试比较两种方案对系统性能的提高程度。

解:没有改进之前,系统的指令平均时钟周期CPI为 采用方案A,如果使FPSQR操作的时钟周期数由CPIFPSQR=20降至 ,那么,整个系统的指令平均时钟周期数为

采用方案B,如果使所有FP操作的平均时钟周期数由CPIFP=4降至 ,那么,整个系统的指令平均时钟周期数为

从降低整个系统的指令平均时钟周期数的程度来看,方案B优于方案A。 分别计算两种方案的加速比 同样可计算出方案B的加速比SB = CPI /CPIB = 2 / 1.5 = 1.33。从加速比来看,也可得出方案B优于方案A的结论。

3. MIPS和MFLOPS MIPS : 表示每秒百万指令条数。对于一个给定的程序,MIPS定义为 程序的执行时间为

表示每秒百万浮点操作次数。 MFLOPS定义为 MFLOPS :

是为测试比较机器性能而专门编制的程序,它考虑了各种操作和各种程序的比较。 4. 基准测试程序的执行时间 基准测试程序: 是为测试比较机器性能而专门编制的程序,它考虑了各种操作和各种程序的比较。 将n个测试程序在机器上运行,记录它们的执行时间,可按下述几种方法对n个执行时间进行处理之后来评价机器性能。 是各测试程序执行时间的算术平均值。 (1)平均执行时间 : 其中,Ti 为第 i 个测试程序的执行时间。

(2)加权执行时间 : 是各测试程序执行时间的加权平均值。 其中,权因子 Wi 是第 i 个测试程序在总共 n 个测试程序中所占的比重

【例1.4】 用一台时钟频率为40MHz的处理机执行标准测试程序,程序含有的各类指令条数和各类指令的平均时钟周期数如下表所示。 指令类型 指令条数 平均时钟周期数 整数运算 45 000 1 数据传送 32 000 2 浮点运算 15 000 控制传送 8000 求测试程序的CPI、MIPS和执行时间。

解: 测试程序的指令条数 测试程序的指令平均时钟周期数

测试程序在处理机上用每秒百万指令条数表示的执行速率为 测试程序在处理机上执行的时间

1.3 并行计算机的发展 并行计算机 : 串行计算机 : 1.3 并行计算机的发展 并行计算机 : 是由多个处理单元或处理器组成的计算机系统,这些处理单元或处理器之间通过互连网络相互通信和协作,能快速、高效地求解大型复杂问题。 串行计算机 : (又称为顺序计算机)只有单个处理单元,按顺序工作方式逐一顺序地执行程序中的指令。 当代的主流并行计算机是可扩放并行计算机,包括 共享存储的对称多处理机 分布存储的大规模并行处理机 分布式共享存储多处理机 工作站机群 网格计算环境

1.3.1 支持并行计算机的技术进展 1. 硬件进展 (1)处理器 1.3.1 支持并行计算机的技术进展 1. 硬件进展 (1)处理器 在单片上制造包括内存和 I/O 支持的较强功能的计算机系统,即片上计算机系统;或者在单片上放置多个处理器,即单片并行结构。 (2)存储系统 存储器工艺技术的进展远跟不上处理器的发展步伐。 处理器和存储器性能改进的悬殊差异,迫使在近代计算机中的存储系统使用多级存储器的结构。

2. 软件进展 至今,并行软件的进展主要有以下表现: 清楚地明确并行软件的要求和关键问题。 并行软件的开发应坚持与结构无关的基本原则。 应该开发公共使用的、开放的、标准的软件工具。 在串行编程语言(如Fortran或C语言)的基础上,加上某些用于并行进程通信、管理和相互作用的库函数或编译制导。 开发各自软件产品的并行软件版本。

1.3.2 并行结构的发展 1. 处理器级并行度的发展 (1)位级并行 (2)指令级并行 (3)线程级并行 1.3.2 并行结构的发展 1. 处理器级并行度的发展 (1)位级并行 (2)指令级并行 (3)线程级并行 是控制流程的简称,它是指被执行的一个指令序列。 线程 : 就是一台处理机有多个控制线程,能同时执行多个指令序列。 多线程 :

2. 并行结构的发展变化 (1)并行机的萌芽阶段(1964年~1975年) (2)向量机的发展和鼎盛阶段(1976年~1990年) (3) MPP出现和蓬勃发展阶段(1990年~1995年) (4)各种体系结构并存发展(1995年以后) 1995年以后,PVP、MPP、SMP、DSM和COW等各种体系结构进入并存发展的阶段。 3T要求:即1Tflop/s的计算能力,1TB的主存容量和1TB/s的I/O带宽。

网上资源 参考资源 http://bwrc.eecs.berkeley.edu/classes/cs252/index.htm http://inst.eecs.berkeley.edu/~cs152/ http://fizbin.eecs.lehigh.edu/~mschulte/ece401/ http://www.cs.utexas.edu/users/fussell/cs352/ http://www.cs.washington.edu/education/courses/548/02wi/ http://202.107.127.122/ncourse/txjg/architecture/chapter1/contents_chap1.htm http://www.softpanorama.org/Hardware/architecture.shtml http://www.cs.wisc.edu/~arch/www/

教材与主要参考书 John L. Hennessy & David A. Patterson, Computer Architecture: A Quantitative Apprach. 3rd ed. 2003 by Elsevier Science Pte Ltd., 北京:机械工业出版社(影印版),2002.9 John L. Hennessy, David A. Patternson, Computer Organization & Design : The Hardware/Software Interface, 2nd ed. San Francisco: Morgan Kaufmann Publishers, Inc. 1998, 机械工业出版社(影印版)1999 David A. Patternson, John L. Hennessy, Computer Architecture: A Quantitative Apprach. 2nd ed. San Francisco: Morgan Kaufmann Publishers, Inc.,1996, 机械工业出版社(影印版),1999