系统结构の第一章.docx
《系统结构の第一章.docx》由会员分享,可在线阅读,更多相关《系统结构の第一章.docx(36页珍藏版)》请在冰豆网上搜索。
系统结构の第一章
♦第一台通用电子计算机诞生于1946年
♦计算机技术的飞速发展受益于两个方面
Ø计算机制造技术的发展
Ø计算机系统结构的创新
♦经历了四个发展过程
1.1计算机系统结构的基本概念
Ø大功耗问题;
Ø可以进一步有效地开发的指令级并行性已经很少;
Ø存储器访问速度的提高缓慢。
1.1计算机系统结构的基本概念
1.1计算机系统结构的基本概念
♦计算机系统=硬件/固件+软件
♦计算机语言从低级向高级发展
高一级语言的语句相对于低一级语言来说功能更强,
更便于应用,但又都以低级语言为基础。
♦从计算机语言的角度,把计算机系统按功能划分成
多级层次结构。
Ø每一层以一种语言为特征
1.1计算机系统结构的基本概念
Ø物理机:
用硬件/固件实现的机器
(最下面的两级机器)
Ø虚拟机:
由软件实现的机器
❑虚拟机中有些操作可以由硬件或固件实现。
❑固件:
具有软件功能的硬件。
Ø各机器级的实现主要靠翻译或解释,或两者的结合。
❑翻译:
先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后再在这低一级机器上运行,实现程序的功能。
❑解释:
对于高一级机器上的程序中的每一条语句或指令,都是转去执行低一级机器上的一段等效程序。
执行
1.1计算机系统结构的基本概念
完后,再去高一级机器取下一条语句或指令,再进行解释
执行,如此反复,直到解释执行完整个程序。
解释执行比编译后再执行所花的时间多,但占用的存储空间较少。
1.1计算机系统结构的基本概念
♦按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。
♦透明性
在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。
♦广义的系统结构定义:
指令系统结构、组成、硬件
(计算机设计的3个方面)
1.1计算机系统结构的基本概念
1.1计算机系统结构的基本概念
Ø包含物理机器级中的数据流和控制流的组成以及
逻辑设计等。
Ø着眼于:
物理机器级内各事件的排序方式与控制
方式、各部件的功能以及各部件之间的联系。
♦计算机实现:
计算机组成的物理实现
Ø包括处理机、主存等部件的物理结构,器件的集
成度和速度,模块、插件、底板的划分与连接,
信号传输,电源、冷却及整机装配技术等。
Ø着眼于:
器件技术(起主导作用)、微组装技术。
1.1计算机系统结构的基本概念
具有相同系统结构的计算机可以采用不同的计算机组成。
同一种计算机组成又可以采用多种不同的计算机实现。
举例:
乘法指令、主存容量与编址方式
♦系列机
由同一厂家生产的具有相同系统结构、但具有
不同组成和实现的一系列不同型号的机器。
例如IBM公司的IBM370系列,Intel公司的x86系列等。
1.1计算机系统结构的基本概念
♦Flynn分类法
Ø按照指令流和数据流的多倍性进行分类。
❑指令流:
计算机执行的指令序列
❑数据流:
由指令流调用的数据序列
❑多倍性:
在系统最受限的部件上,同时处于同一执行阶段的指令或数据的最大数目。
1.1计算机系统结构的基本概念
Ø把计算机系统的结构分为4类
❑单指令流单数据流SISD
(SingleInstructionstreamSingleDatastream)
❑单指令流多数据流SIMD
(SingleInstructionstreamMultipleDatastream)
❑多指令流单数据流MISD
(MultipleInstructionstreamSingleDatastream)
❑多指令流多数据流MIMD
(MultipleInstructionstreamMultipleDatastream)
1.1计算机系统结构的基本概念
Ø4类计算机的基本结构
❑IS:
指令流
❑DS:
数据流
❑CS:
控制流
❑CU:
控制部件
❑PU:
处理部件
❑MM和SM:
存储器
1.1计算机系统结构的基本概念
♦冯氏分类法
Ø用系统的最大并行度对计算机进行分类。
Ø最大并行度:
计算机系统在单位时间内能够处理
的最大的二进制位数。
用平面直角坐标系中的一个点代表一个计算机系
统,其横坐标表示字宽(n位),纵坐标表示一次能同
时处理的字数(m字)。
m×n就表示了其最大并行度。
1.1计算机系统结构的基本概念
1.1计算机系统结构的基本概念
Ø4类不同最大并行度的计算机系统结构
❑字串位串:
n=1,m=1。
(第一代计算机发展初期的纯串行计算机)
❑字串位并:
n>1,m=1。
这是传统的单处理机,同时处理单个字的多个位,如16位、32位等。
❑字并位串:
n=1,m>1。
同时处理多个字的同一位(位片)。
❑字并位并:
n>1,m>1。
同时处理多个字的多个位。
Ø平均并行度
与最大并行度密切相关的一个指标。
取决于系统的运用程度,与应用程序有关。
1.1计算机系统结构的基本概念
假设每个时钟周期内能同时处理的二进制位数为Pi,则T个时钟
周期内的平均并行度为:
系统在T个时钟周期内的平均利用率定义为:
1.1计算机系统结构的基本概念
♦Handler分类法
Ø根据并行度和流水线对计算机进行分类。
Ø把计算机的硬件结构分成3个层次
❑程序控制部件(PCU)的个数k
❑算术逻辑部件(ALU)或处理部件(PE)的个数d
❑每个算术逻辑部件包含基本逻辑线路(ELC)的套数w
Ø用公式表示
t(系统型号)=(k,d,w)
Ø进一步改进
t(系统型号)=(k×k’,d×d’,w×w’)
1.1计算机系统结构的基本概念
❑k’:
宏流水线中程序控制部件的个数
❑d’:
指令流水线中算术逻辑部件的个数
❑w’:
操作流水线中基本逻辑线路的套数
例如:
Cray-1有1个CPU,12个相当于ALU或PE的处理部件,可以
最多实现8级流水线。
字长为64位,可以实现1~14位流水线处理。
所以
Cray-1系统结构可表示为:
t(Cray-1)=(1,12×8,64×(1~14))
几个例子:
t(PDP-11)=(1,1,16)
t(IlliacⅣ)=(1,64,64)
t(STARAN)=(1,8192,1)
t(Cmmp)=(16,1,16)
t(PEPE)=(1×3,288,32)
t(TI-ASC)=(1,4,64×8)
4个定量原理:
♦以经常性事件为重点
Ø对经常发生的情况采用优化方法的原则进行选
择,以得到更多的总体上的改进。
Ø优化是指分配更多的资源、达到更高的性能或
者分配更多的电能等。
1.2计算机系统的设计
♦Amdahl定律
加快某部件执行速度所能获得的系统性能加速
比,受限于该部件的执行时间占系统中总执行时间
的百分比。
系统性能加速比:
1.2计算机系统的设计
Ø加速比依赖于两个因素
❑可改进比例(Fe):
在改进前的系统中,可改进部分的执行时间在总的执行时间中所占的比例。
它总是小于等于1。
例如:
一个需运行60秒的程序中有20秒的运算可以加速,
那么这个比例就是20/60。
❑部件加速比(Se):
可改进部分改进以后性能提高的倍数。
它是改进前所需的执行时间与改进后执行时间的比。
一般情况下部件加速比是大于1的。
例如:
若系统改进后,可改进部分的执行时间是2秒,
而改进前其执行时间为5秒,则部件加速比为5/2。
1.2计算机系统的设计
Ø改进后程序的总执行时间Tn
1.2计算机系统的设计
例1.1将计算机系统中某一功能的处理速度加快15倍,但该功能的处理时间仅占整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少?
解由题可知:
Fe=40%=0.4
Se=15
根据Amdahl定律可知:
采用此增强功能方法后,能使整个系统的性能提高到原来的1.6倍。
1.2计算机系统的设计
例1.2某计算机系统采用浮点运算部件后,使浮点运算速度提高到原来的25倍,而系统运行某一程序的整体性能提高到原来的4倍,试计算该程序中浮点操作所占的比例。
解由题可知:
Se=25Sn=4
根据Amdahl定律可知:
由此可得:
Fe=78.1%
即程序中浮点操作所占的比例为78.1%。
1.2计算机系统的设计
ØAmdahl定律:
一种性能改进的递减规则
❑如果仅仅对计算任务中的一部分做性能改进,则改
进得越多,所得到的总体性能的提升就越有限。
Ø重要推论:
如果只针对整个任务的一部分进行改
进和优化,那么所获得的加速比不超过:
1/(1-可改进比例)
1.2计算机系统的设计
♦CPU性能公式
Ø执行一个程序所需的CPU时间
CPU时间=执行程序所需的时钟周期数×时钟周期时间
其中:
时钟周期时间是系统时钟频率的倒数。
Ø每条指令执行的平均时钟周期数CPI
(CyclesPerInstruction)
CPI=执行程序所需的时钟周期数/IC
IC:
所执行的指令条数
Ø程序执行的CPU时间可以写成
CPU时间=IC×CPI×时钟周期时间
1.2计算机系统的设计
ØCPU的性能取决于三个参数
❑时钟周期时间:
取决于硬件实现技术和计算机组成;
❑CPI:
取决于计算机组成和指令系统的结构;
❑IC:
取决于指令系统的结构和编译技术。
Ø对CPU性能公式进行进一步细化
假设:
计算机系统有n种指令;
CPIi:
第i种指令的处理时间;
ICi:
在程序中第i种指令出现的次数;
则:
CPU时钟周期数=(CPIiICi)
1.2计算机系统的设计
CPU时间=执行程序所需的时钟周期数×时钟周期时间
=(CPIi×ICi)×时钟周期时间
CPI可以表示为:
CPI===
其中:
(ICi/IC)反映了第i种指令在程序中所占的比例。
1.2计算机系统的设计
例1.3假设FP指令的比例为25%,其中,FPSQR占全部指令的
比例为2%,FP操作的CPI为4,FPSQR操作的CPI为20,其他指令
的平均CPI为1.33。
现有两种改进方案,第一种是把FPSQR操作的
CPI减至2,第二种是把所有的FP操作的CPI减至2,试比较两种方案
对系统性能的提高程度。
解没有改进之前,每条指令的平均时钟周期CPI为:
1.2计算机系统的设计
(1)采用第一种方案
FPSQR操作的CPI由CPIFPSQR=20减至CPI’FPSQR=2,则整个系统的指令平均时钟周期数为:
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.2计算机系统的设计
例1.4考虑条件分支指令的两种不同设计方法:
(1)CPU1:
通过比较指令设置条件码,然后测试条件码进行分支。
(2)CPU2:
在分支指令中包括比较过程。
在这两种CPU中,条件分支指令都占用2个时钟周期,而所有其它指令占用1个时钟周期。
对于CPU1,执行的指令中分支指令占30%;由于每条分支指令之前都需要有比较指令,因此比较指令也占30%。
由于CPU1在分支时不需要比较,因此CPU2的时钟周期时间是CPU1的1.35倍。
问:
哪一个CPU更快?
如果CPU2的时钟周期时间只是CPU1的1.15倍,哪一个CPU更快呢?
1.2计算机系统的设计
解我们不考虑所有系统问题,所以可用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%,分支指令的比例为:
1.2计算机系统的设计
30%/70%=42.8%
这些分支指令占用2个时钟周期,而剩下的57.2%的指令占用1个时钟周期,因此:
CPI2=0.428×2+0.572×1=1.428
因为CPU2不执行比较,故:
IC2=0.8×IC1
因此CPU2性能为:
总CPU时间2=IC2×CPI2×时钟周期2
=0.7×IC1×1.428×(1.35×时钟周期1)
=1.349×IC1×时钟周期1
1.2计算机系统的设计
在这些假设之下,尽管CPU2执行指令条数较少,CPU1因为有着更
短的时钟周期,所以比CPU2快。
如果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.2计算机系统的设计
♦程序的局部性原理
程序执行时所访问的存储器地址分布不是随机
的,而是相对地簇聚。
Ø常用的一个经验规则
程序执行时间的90%都是在执行程序中10%的代码。
Ø程序的时间局部性
程序即将用到的信息很可能就是目前正在使用的信息。
Ø程序的空间局部性
程序即将用到的信息很可能与目前正在使用的信息
在空间上相邻或者临近。
1.2计算机系统的设计
♦计算机系统设计者的任务包括:
指令系统的设计、数据表示的设计、功能的组织、逻辑设计以及其物理实现等。
♦设计一个计算机系统大致要完成3个方面的工作。
Ø确定用户对计算机系统的功能、价格和性能的要求
❑计算机系统设计者的目标
设计出能满足用户的功能需求、有较长的生命周期、且又具有很高的性能价格比的系统。
❑功能需求:
根据市场的需要以及所设计系统的应用领域来确定
1.2计算机系统的设计
⏹应用领域
专用还是通用?
面向科学计算还是面向商用处理?
⏹软件兼容
软件兼容是指一台计算机上的程序不加修改就可以搬到另一台计算机上正常运行。
⏹操作系统需求
包括地址空间大小、存储管理、保护等。
从系统结构上对操作系统的需求提供支持,是很重要的一点。
⏹标准
确定系统中哪些方面要采用标准以及采用什么标准。
如:
浮点数标准、I/O总线标准、网络标准、程序设计语言
标准等。
1.2计算机系统的设计
Ø软硬件功能分配
❑考虑如何优化设计?
必须考虑软硬件功能的合理分配。
❑软件和硬件在实现功能上是等价的
⏹用软件实现的优点:
设计容易、修改简单,而且可以减少硬件成本。
但是所实现的功能的速度较慢。
⏹用硬件实现的优点:
速度快、性能高,但它修改困难,灵活性差。
❑在软硬件之间进行折中和取舍。
1.2计算机系统的设计
Ø设计出生命周期长的系统结构
❑特别注意计算机应用和计算机技术的发展趋势
❑设计出具有一定前瞻性的系统结构,以使得它具有较长的生命周期。
1.2计算机系统的设计
❑首先确定面对使用者的那级机器的基本特征、数据类型和格式、基本命令等。
❑然后再逐级往下设计,每级都考虑如何优化上一级的实现。
Ø适合于专用机的设计,而不适合通用机的设计。
♦“由下往上”(bottom-up)设计
Ø从层次结构的最下面一级开始,逐层往上设计各层的机器。
Ø采用这种方法时,软件技术完全处于被动状态,这会造成软件和硬件的脱节,使整个系统的效率降低。
(在早期被采用得比较多,现在已经很少被采用了)
1.2计算机系统的设计
♦“从中间开始”(middle-out)设计
Ø“由上往下”和“由下往上”设计方法的主要缺点
软、硬件设计分离和脱节
Ø解决方法:
综合考虑软、硬件的分工,从中间开始设计。
❑“中间”:
层次结构中的软硬件的交界面,目前一般是在传统机器语言机器级与操作系统机器级之间。
Ø从中间开始设计
❑首先要进行软、硬件功能分配,确定好这个界面。
❑然后从这个界面开始,软件设计者开始往上设计
1.2计算机系统的设计
操作系统、汇编、编译系统等,硬件设计者开始往下设
计传统机器级、微程序机器级等。
♦执行时间和吞吐率
如何评测一台计算机的性能,与测试者看问题
的角度有关。
Ø用户关心的是:
单个程序的执行时间(执行单个
程序所花的时间很少)
Ø数据处理中心的管理员关心的是:
吞吐率(在单
位时间里能够完成的任务很多)
1.3计算机系统的性能评测
假设两台计算机为X和Y,X比Y快的意思是:
对于给定任务,X的执行时间比Y的执行时间少。
X的性能是Y的n倍:
执行时间与性能成反比:
1.3计算机系统的性能评测
Ø执行时间可以有多种定义:
❑计算机完成某一任务所花费的全部时间,包括磁盘访问、存储器访问、输入/输出、操作系统开销等。
❑CPU时间:
CPU执行所给定的程序所花费的时间,不包含I/O等待时间以及运行其它程序的时间。
⏹用户CPU时间:
用户程序所耗费的CPU时间。
⏹系统CPU时间:
用户程序运行期间操作系统耗费的
CPU时间。
1.3计算机系统的性能评测
♦基准测试程序
Ø用于测试和比较性能的基准测试程序的最佳选择是真实应用程序。
(例如编译器)
Ø以前常采用简化了的程序,例如:
❑核心测试程序:
从真实程序中选出的关键代码段构
成的小程序。
❑小测试程序:
简单的只有几十行的小程序。
❑合成的测试程序:
人工合成出来的程序。
Whetstone与Dhrystone是最流行的合成测试程序。
从测试性能的角度来看,上述测试程序不可信了。
1.3计算机系统的性能评测
原因:
☐这些程序比较小,具有片面性;
☐系统结构设计者和编译器的设计者可以“合谋”把他
们的机器面向这些测试程序进行优化设计,使得该
机器显得性能更高。
Ø性能测试的结果除了和采用什么测试程序有关以
外,还和在什么条件下进行测试有关。
Ø基准测试程序设计者对制造商的要求
❑采用同一种编译器;
❑对同一种语言的程序都采用相同的一组编译标志。
1.3计算机系统的性能评测
Ø一个问题:
是否允许修改测试程序的源程序
三种不同的处理方法:
❑不允许修改;
❑允许修改,但因测试程序很复杂或者很大,几乎是
无法修改。
❑允许修改,只要保证最后输出的结果相同。
Ø基准测试程序套件:
由各种不同的真实应用程序
构成。
(能比较全面地反映计算机在各个方面的处理性能)
ØSPEC系列:
最成功和最常见的测试程序套件
(美国的标准性能测试公司创建)
1.3计算机系统的性能评测
❑桌面计算机的基准测试程序套件可以分为两大类:
处理器性能测试程序,图形性能测试程序
❑SPEC89:
用于测试处理器性能。
10个程序(4个整数程
序,6个浮点程序)
❑演化出了4个版本
SPEC92:
20个程序
SPEC95:
18个程序
SPEC2000:
26个程序
SPECCPU2006:
29个程序
❑SPECCPU2006
1.3计算机系统的性能评测
整数程序12个(CINT2006)
9个是用C写的,3个是用C++写的
浮点程序17个(CFP2006)
6个是用FORTRAN写的,4个是用C++写的,3个
是用C写的,4个是用C和FORTRAN混合编写的。
ØSPEC测试程序套件中的其它一系列测试程序组件
❑SPECSFS:
用于NFS(网络文件系统)文件服务器的测
试程序。
它不仅测试处理器的性能,而且测试I/O系统
的性能。
它重点测试吞吐率。
❑SPECWeb:
Web服务器测试程序。
1.3计算机系统的性能评测
❑SPECviewperf:
用于测试图形系统支持OpenGL库
的性能。
❑SPECapc:
用于测试图形密集型应用的性能。
♦性能比较
1.3计算机系统的性能评测
如何比较这三台机器的性能呢?
从该表可以得出:
执行程序1:
❑A机的速度是B机的10倍
❑A机的速度是C机的20倍
❑B机的速度是C机的2倍
执行程序2:
❑B机的速度是A机的100倍
❑C机的速度是A机的50倍
❑B机的速度是C机的2倍
1.3计算机系统的性能评测
Ø总执行时间:
机器执行所有测试程序的总时间
❑B机执行程序1和程序2的速度是A机的50.05倍
❑C机执行程序1和程序2的速度是A机的24.02倍
❑B机执行程序1和程序2的速度是C机的2倍
Ø平均执行时间:
各测试程序执行时间的算术平均值
其中:
Ti:
第i个测试程序的执行时间
n:
测试程序组中程序的个数
1.3计算机系统的性能评测
Ø加权执行时间:
各测试程序执行时间的加权平均值
其中,Wi:
第i个测试程序在测试程序组中所占的比重
Ti:
该程序的执行时间
1.3计算机系统的性能评测
Ø调和平均值法
其中,Ri:
由n个程序组成的工作负荷中执行第i个程序的速度
Ri=1/Ti
Ti:
第i个程序的执行时间
❑加权调和平均值公式
1.3计算机系统的性能评测
Ø几何平均值法:
以某台计算机的性能作为参考标准,其他计算机性能则除以该参考标准而获得一个比值。
Ri:
由n个程序组成的工作负荷中执行第i个程序的速度
Ri=1/Ti
∏:
连乘
1.3计算机系统的性能评测
❑加权几何平均值
❑Gm表示法有一个很好的特性
几何平均值的比等于比的几何平均值
1.4计算机系统结构的发展
♦存储程序原理的基本点:
指令驱动
程序预先存放在计算机存储器中,机器一旦启
动,就能按照程序指定的逻辑顺序执行这些程序,
自动完成由程序所