参考教材
,计算机系统结构,陆鑫达 高教出版社 96年
,计算机系统结构,孙强南 科学出版社 92年
,计算机系统结构,苏东庄 西安电子科技大学 92年
,RISC单发射与多发射体系结构,
李三立 清华出版社 93年
,计算机系统结构,郑纬民等 清华出版社 97年
,Advanced Computer Architecture,
Kai Hwang 清华出版社 95年第一章 概 论
计算机的,年龄,,
Clolossus:1944.1.19(英国 )----二战期间
ENIAC,1946.2.14( 美国 )
Baby,1948.6.21( 英国 )
EDSAC,1949年英国剑桥大学,第一台存储式计算机本章要点
体系结构概念
弗林分类法
计算机层次结构
CPU 性能及计算作业 P23 1.12 1.14
1.1 现代计算机系统
发展经历了五次更新换代电子管、继电器存储 晶体管集成电路
从结构的发展而言,
单个 CPU组成的单机系统 流水线机大规模的并行处理机大规模和超大规模集成电路多处理机磁介质存储
从器件发展而言:
变址技术 中断技术 微程序技术缓冲技术共享 重用技术 虚拟技术
从语言及应用方面而言,
由汇编到高级语言从单用户到多用户,到并行处理的语言、编译,操作系统,直到如今计算机网络、异构系统处理等等
从技术的发展上而言,
五代:
第一代,1945~1954年,电子管和继电器;
第二代,1955~1964年,晶体管和磁芯存储器;
第三代,1965~1974年,中小规模集成电路;
第四代,1975~1990年,LSI/VLSI和半导体存储器;
第五代,1990年至今,巨大规模集成电路。
1.1.1 现代计算机的构成
现代计算机系统结构组成的基本模式程序设计应用软件硬 件结构操作系统计算问题算法与数据结构高级语言性能评价联 接
( 编 译,加 载 )
1.1.2 计算机系统的层次结构
层次结构应 用 语 言 级高 级 语 言 级汇 编 语 言 级操 作 系 统 级传 统 机 器 级微程序机器级电 子 线 路应用软件系统软件翻译 (编译程序 )
翻译 (编译程序 )
软硬件界面物理机 解释翻译 (汇编程序 )
虚拟机硬件固件
0级
1级
2级
3级
4级
5级
6级翻译 (应用程序包 )
图中 0级~ 2级为物理机3~ 6级为虚拟机5级是高级语言的运行程序4级是汇编语言的运行程序3级是操作系统中对各种资源的管理与控制程序6级是应用语言级
1.2 计算机系统结构
1.2.1 计算机系统结构的基本概念
1964年,IBM公司的系统设计师阿姆达尔
(G.M.Amdahl)在介绍 IBM 360机型时提出了系统结构的概念。
系统结构,从程序设计者的角度所看到的系统的属性,即概念性结构和功能特性。
计算机系统结构,指机器语言程序的设计者或是编译程序设计者所看到的计算机系统的概念性结构与功能特性。
应用级的程序设计者 与 传统机的程序设计者 所看到的计算机性能的区别:
前者,用应用语言编程,所以他所看到的机器的功能是能够识别和执行应用语言 。
后者,看到的是硬件设备所体现的具体功能。
透明性
一种本来存在的有差异的事物和属性,
从某种角度上看又好像不存在的现象,
被称为是,透明性,。
例如,高级程序员看不到各种不同类型机器的差异性就是一个明显的例证。
1.2.2 计算机系统结构、组成与实现
三者区别:
1.计算机系统结构 -机器语言级的程序员所了解的计算机的属性即外特性
2.计算机组成 -计算机系统结构的逻辑实现
3.计算机的实现 -指其计算机组成的物理实现
数据表示
寄存器定义
指令系统
中断系统
存储系统
输入输出结构
机器工作状态
信息保护计算机系统结构计算机组成
数据通路的宽度
专用部件的设置
各功能部件
控制机构的组成方式
缓冲技术
可靠性技术的采用和方式的选择
预估、预判、优化处理计算机系统的结构,组成,实现是三个完全不同的概念,相互间有着十分密切的依赖关系和相互的影响。
例 1、指令系统例 2、主存系统
1.2.3 系统结构的分类
计算机按系统的结构分类通常有三种方法,
(一 ) 弗林 (FLYNN)分类法 (1966年 Michael J.Flynn)
按指令流和数据流的多倍性状况对计算机系统分类。
指令流 (Instruction Stream),机器执行的指令序列。
数据流 (Data Stream),由指令流调用的数据序列。
多倍性 (Multiplicity):在系统性能瓶颈部件上处于同一执行阶段的指令或数据的最大可能个数。
此分类法反映出大多数计算机的并行工作方式和结构特点,使用较广。
分类对象,Von Neumann 型机器。
单指令流、单数据流 (SISD-Single Instruction Single
Data)结构如 PDP-11,IBM-360/370,PC 8086、
Z-80等微处理机单指令流、多数据流 (SIMD-Single Instruction
Multiple Data)结构如 ILLAC Ⅳ (64个单元 ) 阵列机多指令流、单数据流 (MISD)结构如 RISC机、
向量机多指令流、多数据流 (MIMD)结构
IBM 3081/3084,Univac 1100/80,Cray-2等均属这一类型类型 计算机的型号
SISD IBM 370,VAX 11/780,MC
680X0,INTEL 80X86
SIMD ILLIAC-IV,ICL-DAP,
CRAY-1,YH-1(银河 1),
CYBER-205,CM-2
MIMD IBM 370/168,Cmmp,CRAY X-
MP,YH-2(银河 2)
Flynn计算机分类举例缺点:
对于广泛流行的标量及向量流水计算机应属于哪一类系统,不明确。
因为它不包含多个处理机,所以应属 SISD
类型,但从一条指令的操作全过程来理解,应将每一个向量元素看作一个分离的数据流,则就存在多个数据流,可归为 SIMD计算机。
按用途:
专用机与通用机
按规模:
巨型机、大型机、中型机、小型机、工作站、微型机、单板机、单片机等等其他分类:
(二 )冯氏分类法 ( 1972年,美籍华人冯泽云教授提出)
最大并行度 是指计算机单位时间内能够处理的最大的二进制位数 。
(1) 字串位串,WSBS n=1,m=1
(2) 字并位串,WPBS n>1,m=1
(3) 字串位并,WSBP n=1,m>1
(4) 字并位并,WPBP n>1,m>1
n,一个字中同时处理二进制的位数;
m,一个位片或功能部件中能同时处理的字数。
(三 ) Wolfgang Handler(汉德勒 )法 ( 1977年德国)
从硬件设备结构的并行级和流水线的程度分类
程序控制部件的个数
算术逻辑运算部件或处理部件的个数
基本逻辑线路的套数
PDP-11=(1,1,64) Cray- =(1,12× 8,64)
1.3 计算机系统设计
1.3.1 计算机系统的设计原则
(一 ) 加速那些使用频率高的部件
(二 ) Amdahl定律
Amdahl定律,系统中某一部件由于采用某种改进的执行方式后,整个系统的性能提高了,其衡量指标为 加速比。
加速比加速比 =
采用改进措施后的性能没有采用改进措施的性能加速比 =
没有采用改进措施前执行某任务所用时间采用改进措施前执行某任务所用时间
Amdahl定律可表示为:
Sp:加速比;
Te:采用改进措施前执行某任务系统所用的时间;
T0:采用改进措施后所需的时间;
fe,被改进部分的执行时间占的百分比大小;
re,性能提高的倍数。
分析上式可以看出,
当 fe很小甚至 → 0时,则 Sp→ 1
当 re很大甚至 →∞ 时,则则例 1:计算机执行某测试程序,其中含有大量浮点数据的处理操作,为提高性能可以采用两种方案,一是采用硬件实现求浮点数平方根 (FPSQR)的操作,可以使该操作的速度提高 10倍;另一种方案是提高所有浮点数据操作 (FP)的速度,使其加快 2倍 。 同时已知 FPSQR操作时间占整个测试程序执行时间的 20%,而 FP操作占整个执行时间的 50%,现比较两种方案 。
按两种情况求出其加速比
Sp(FP)=
(1-0.5)+ 0.5
2
1
=1.33
Sp(FPSQR)=
(1-0.2)+ 0.2
10
1
=1.22
例 2,若考虑将系统中某一功能的处理速度加快 10倍,
但该功能的处理使用时间仅为整个系统运行时间的 40%,
则采用此增强功能方法后,能使整个系统的性能提高多少?
由题可知,fe=0.4,re=10,则可得,Sp=1.56
若以 Sp作纵坐标,fe作横坐标,可画出 Sp=f(fe)的函数。
0.0 0.5 1.0 fe
1
0
10
5
Sp
加速比 Sp与可增强性能部分 fe的关系由图中曲线可知,为使系统能获得较高性能加速比,
则功能性能可增强部分必须占有较大的比例;否则,增强该功能就没有多大意义。
(三)程序访问局部性原理程序访问局部性原理,
时间局部性,
近期 被访问的代码,很可能不久又将再次被访问。
空间局部性,
是指 地址上 相邻近的代码可能会被连续的访问。
程序往往重复使用它刚刚使用过的数据和指令。
原因:
程序的顺序指令和程序的循环等。
1.3.2 计算机系统结构设计
计算机系统的功能要求、性能要求、成本要求硬件功能分配的基本原则:
系统结构设计的方法:
基于 计算机系统结构层次结构,有以下三种设计方法,
自下而上的方法
自上而下的方法
由中间开始的方法最好系统结构设计的步骤
设计步骤可以分为:
需求分析
需求说明
概念性设计
具体设计
优化和评价最终目的:获得尽可能高的性能价格比。
1.4 计算机的性能评价
计算机的性能以及对系统评价的目标都指系统速度的性能。
计算机的速度性能通常是用 响应时间 来衡量响应时间 是指用户的一个任务从送入计算机处理到得到结果所需的时间
1.4.1 CPU性能
CPU性能,CPU执行程序所用的时间。
Tcpu=IN?CPI?Tc
CPU执行某一程序中所包含的指令总数时钟周期执行每条指令所需的平均时钟周期数
CPI=
执行整个程序所需的 CPU时钟周期数程序中指令的总数
CPI=
IN
n

i=1 (CPIi× Ii)
执行整个程序所需的 时钟周期数
×(CPIi Ii)
n∑
i=1
I:第 i类指令
Ii:第 i类指令的数目
CPIi:执行每条 i类指令所需的周期数
=∑( CPIi× )
n
i=1
Ii
IN
第 i类指令在总程序中占的比例例 1:某台计算机只有 Load/Store指令能对存储器进行读 /写操作其它指令只对寄存器进行操作,根据程序跟踪实验结果,
已知每种指令所占的比例及 CPI数如下,
求:上述情况的平均 CPI。
CPI=1× 0.43+2× 0.21+2× 0.12+2× 0.24
=0.43+0.42+0.24+0.48=1.57
指令类型 指令所占比例 CPI
算逻指令
LOAD指令
SRORE指令转移指令
43%
21%
12%
24%
1
2
2
2
例 2:如果 FP操作比例为 25%,FP的平均 CPI FP=4,其他指令的平均 CPI(它 ) 为 1.33,FPSQR操作比例为 2%,而 FPSQR
的 CPISQR=20,改进的方案有二:一是提高 FP操作的速度,
使其增加一倍即 CPIFP改 =2,一是提高 FPSQR的速度 10倍,即
CPISQR改 =10,试比较两个方案,求解:其中设定 IN与 TC都是不变的,在此基础上求出改进前后所具有的 CPI值,进行比较,
CPI( 原 ) =
=( 4?0.25) +(1.33?0.75)=2
采取以下两种方案进行改进,
( CPIi× )
n

i=1
Ii
IN
方案 1,改进所有浮点操作指令使 FP的平均 CPI值提高一倍,
即,CPIFP(改 )=2
整个程序在改进后的值为:
CPI (改 )=(2× 0.25)+(1.33× 0.75)=1.5
方案 2:只改进 FPSQR指令,使其 CPI值提高 10倍,即
CPISQR(改 )=2
整个程序改进后的值应为:
CPI(改 )=CPI(原 )-0.02× (CPIFPSQR(原 )-CPIFPSQR(改 ))
=2-0.02× (20-2)=1.64
两者比较还是方案 1更好些
=CPI(原 )-0.25× (CPIFP(原 )-CPIFP(改 ))
=2.0-0.25× (4-2)=1.5

1.4.2 MIPS和 MFLOPS
IPS:含义是每秒执行的指令条数 。
MIPS:以百万来计量。
MFLOPS:指每秒百万次浮点操作次数。
MIPS= 指令总数执行指令所需的时间 =
时钟频率
CPI× 106
Te
IN Rc
MFLOPS=
程序中的浮点操作次数执行时间?106
IFN
1.4.3 系统性能测试
采用实际应用程序
采用核心程序
综合测试程序基本测试程序:
性能评价结果的处理三机运算 2个程序的测试值及 Am值
A机 (秒 ) B机 (秒 ) C机 (秒 )
程序 1 1 10 20
程序 2 1000 100 20
总时间 1001 110 40
Am 500.5 55 20
峰值性能:理论值持续性能:实际值
1) 结果数据的处理算术性能平均法
)111(1
21 nTTTn




n
i i
n
i
im TnRnA
11
111
几何性能平均法
n
n
i i
n
i
n
im T
RG?


11
1)(
调和性能平均法
n
n
i i
m TTT
n
R
nH

21
1
1
几何平均值调和平均值算术平均值第 i个测试程序的速率第 i个测试程序所需的时间
2 )结果的比较
总执行时间 Am
各机器之间的比较 Gm
加权平均时间
Am=∑wiTi
n
i=1
1.5 计算机系统结构的发展
1.5.1 冯 ·诺依曼机型及其演变输入设备存储器运算器控制器输出设备数据控制信息流冯,诺依曼结构图主要特征
1,以运算器为中心,除了完成运算以外,机器内部的数据传送都经过运算器,控制器集中控制。
2,存储器按一维线性编址,顺序访问存储器地址单元,每个存储单元的位数固定。
3,程序存储,指令和数据都存放在存储器中 。
4,指令在存储器中按其执行顺序存放,由一个顺序控制器指定即将被执行的指令地址。
5,指令由操作码和地址码组成。
6,数据以二进制表示。
改进:
数据类型增加
指令种类、寻址方式增加
以存储器为中心
处理器采用新技术
1.5.2 系统结构并行技术的发展
1.5.3 影响计算机系统结构的因素
系列机与兼容机
(一 )软件对系统结构的影响
(二)应用需求对系统结构的影响
(三)器件对系统结构的影响
模拟和仿真系列机,指同一厂家生产的具有相同的系统结构,但采取了不同的组成与实现的技术方案,形成了不同型号的多种机型 。
向上兼容,为某档机种编制的软件应能不加修改地运行于比它高的档次的机种上;
向后兼容,为某个时期投入市场的机种编制的软件应能不加修改地运行于在它之后投入市场的机种上。
统一标准的高级语言模拟,指用软件的方法在一台计算机上,实现另一台计算机的指令系统。
仿真,用微程序的方法在一台计算机上实现另一台计算机的指令系统。