南京审计学院计算机系
,计算机体系结构,
1.计算机直 1946年发明以来,性能大幅度提高表现在,● 运行速度,功能,规模,可靠性等指标的不断提高
● 体积,功耗等指标的不断下降 。
2,计算机性能的高速增长受益于:
● 电路技术的发展
● 体系结构技术的发展
● 其他因素 (OS,Compiler 的发展 )
第一章 计算机体系结构的基本概念
1.1 引论
3,八十年代后,有两种技术使得体系结构技术对 计算机性能发展的影响越来越大:
1)RISC技术 --- 使得体系结构的发展空间一下子被打开;
2)微处理器技术 --- 使得设计新型体系结构的风险,成本,耗时都大为降低 。
结果:
体系结构对计算机性能发展的影响更为明显,达到
80%以上,并且体系结构的发展带动芯片技术,编译技术的进步,使得计算机的发展速度达到每年 50%以上 。
1.2.1 计算机系统中的层次概念
1,计算机系统是=软件+硬件 /固件复杂性 → 当考察它时,通常需要选择某种合适的角度;
→ 同一台计算机在不同人眼里可以是不一样的。
例如:系统设计者和高级语言使用者。
1.2 计算机体系结构的概念
2.考查计算机通常从计算机语言的使用者角度进行一般:
一个计算机系统所支持的计算机语言由低级到高级有多个层面,高一级语言的语句相对于低级语言功能更强,更便于应用,但又都以低级语言为基础。
因此,
从计算机语言的角度,把计算机系统按功能划分成多级层次结构:
第 6 级:应用语言虚拟机第 5 级:高级语言虚拟机第 4 级:汇编语言虚拟机第 3 级:操作系统虚拟机第 2 级:机器语言 ( 传统机器级 )
第 1 级:微程序机器级概念:
虚拟机,由软件实现的机器。
(2) 语言实现的两种基本技术
◆ 翻译,先把 N+1级程序全部变换成 N级程序后,
再去执行新产生的 N级程序,在执行过程中 N+1
级程序不再被访问。
◆ 解释,每当一条 N+1级指令被译码后,就直接去执行一串等效的 N级指令,然后再去取下一条 N+1级的指令,依此重复进行。
一般:
解释执行比翻译花的时间多,但存储空间占用较少。
1.2.2 计算机体系结构
1,计算机体系结构的定义,分经典和广义两种经典定义( Amdahl于 1964年提出):
程序员所看到的计算机的属性,即概念性结构与功能特性。
由于:
按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。
因此:
同一个计算机系统在不同层面上有不同的体系结构。
但一般:
Amdahl提出的体系结构 ---传统机器级的体系结构,
即一般所说的机器语言程序员所看到的传统机器级所具有的属性。
2.体系结构概念包含内容对于通用寄存器型机器,这些属性主要是指:
(1) 数据表示
(硬件能直接辩认和处理的数据类型 )
(2) 寻址规则
(包括最小寻址单元、寻址方式及其表示 )
(3) 寄存器定义
(包括各种寄存器的定义、数量和使用方式 )
(4) 指令集
(包括机器指令的操作类型和格式、指令间的排序和控制机构等 )
(5) 中断系统
(中断的类型和中断响应硬件的功能等 )
(6) 机器工作状态的定义和切换
(如管态和目态等 )
(7) 存储系统
(主存容量、程序员可用的最大存储容量等 )
(8) 信息保护
(包括信息保护方式和硬件对信息保护的支持 )
(9) I/O结构
(包括 I/O联结方式、处理机 /存储器与 I/O设备间数据传送的方式和格式以及 I/O操作的状态等 )
经典计算机体系结构概念的实质:
计算机系统中软硬件界面的确定,其界面之上的是软件的功能,界面之下的是硬件和固件的功能。
广义体系结构概念?
1.2.3 计算机组成和计算机实现技术
1,计算机组成,计算机体系结构的逻辑实现。
2,计算机实现,计算机组成的物理实现。
计算机组成包括的内容可以有:
处理机,主存等部件的逻辑结构,机器级内数据流和控制流的组成,各部件的功能以及之间的联系等 。
计算机实现包括的内容可以有:
处理机,主存等部件的物理结构,包括器件的集成度和速度的确定,器件,模块,插件,
底板的划分与连接,组装装配技术及信号连接,电源,冷却方法等 。
体系结构与组成,实现之间的关系为:
体系结构是组成的抽象,组成是实现的抽象一种体系结构可以有多种组成 。
一种组成可以有多种物理实现 。
广义的计算机体系结构概念包括体系结构的外部特性和内部特性:
计算机体系结构外部特性 ---计算机体系结构的经典定义计算机体系结构内部特性 ---计算机组成与实现中一些比较抽象的内容广义体系结构概念:
体系结构经典定义 + 计算机组成和实现中的部分比较抽象的概念。
系列机在一个厂家内生产的具有相同的体系结构 (经典定义 ),但具有不同组成和实现的一系列不同型号的机器。
例如
IBM 370系列有 370/115,125,135,145,158,168
等一系列从低速到高速的各种型号。
相同点,程序员所看到的概念性结构和功能属性
指令系统一致不同点,组成和实现技术
速度特性不一样系列机是否必须体系结构的严格一致?
事实上,真正需要的是软件兼容而非体系结构的严格一致。
软件兼容,同一个软件可以不加修改地运行于另一台机器,而且它们所获得的结果一样,差别只在于有不同的运行时间。
分四类:
向上兼容,按某档机器编制的程序,不加修改的就能运行于比它高档的机器。
向下兼容,按某档机器编制的程序,不加修改的就能运行于比它低档的机器。
向前兼容,按某个时期投入市场的某种型号机器编制的程序,不加修改地就能运行于在它之前投入市场的机器。
向后兼容,按某个时期投入市场的某种型号机器编制的程序,不加修改地就能运行于在它之后投入市场的机器。
时间机器档次高低向上兼容向下兼容向前兼容向后兼容当前机器这四种属性中,我们通常只坚持向后兼容,这表示系列机中后续各档的机器的体系结构可以以扩充的方式进行发展,这是 系列机的根本特征 。
IBM PC系列机
(处理器、处理器字宽,I/O总线、地址空间、
寻址方式和计算机结构)
8088 / 8 0 2 8 6 C P U
(a ) PC,XT 和 P C A T
存储器 I / O 设备
PC / A T 总线
80 386
/ 80 48 6 C P U
(b ) 80 38 6/ 80 48 6 A T
存储器
I / O 设备
I S A 总线总线控制器处理器总线 / V L 总线
VL 设备
P e n ti u m
C P U
存储器
P C I 设备
P C I 总线总线控制器 1
处理器总线
(c ) P e n ti u m AT
I / O 设备
IS A 总线总线控制器 2
P e n ti u m I I
C P U
存储器
P C I 设备
P C I 总线总线控制器 1
处理器总线
(d ) P e n ti u m I I AT
I / O 设备
I S A 总线总线控制器 2
A G P 总线
A G P 显示卡
PC系列机特性比较计算机型号 PC 和
XT
PC AT 80386
AT
80486
AT
Pentium
AT
Pentium II
AT
处理器型号 8088 80286 80386 80486 Pentium Pentium II
处理器上市时间
1979 1982 1985 1989 1993 1997
处理器字宽 16位 16位 32位 32位 32位 32位
I/O总线 PC总线 AT(ISA
)
ISA/EI
SA
ISA+V
L
ISA+PCI ISA+PCI+
AGP
地址空间 20位 20/24位 20/32位 20/32位 20/32位 20/32(36)位寻址方式 实地址 实 /虚地址实 /虚地址实 /虚地址实 / 虚地址实 /虚地址兼容机不同厂家生产的具有相同体系结构的计算机这使得多个硬件生产厂商可以共享软件成果 。
1.3 计算机体系结构的发展
1.3.1 存储程序计算机体系结构及其发展存储程序计算机的结构是由冯 ·诺依曼等人提出的,当今的计算机体系结构基本上仍是冯 ·诺依曼计算机结构,它的基本结构如下:
运算器
(A L U )
控制器存储器输入设备 输出设备数据流 控制流
1,存储程序计算机的主要特点
(1) 机器以运算器为中心。
(2) 采用存储程序原理,
(3) 存储器是按地址访问的、线性编址的空间。
(4) 控制流由指令流产生,
(5) 指令由操作码和地址码组成。
(6) 数据以二进制编码表示,采用二进制运算。
2,对体系结构进行的改进
(1) 分布的 I/O处理能力以运算器为中心带来了慢速输入/输出操作占用快速运算器的问题。
程序控制输入输出方式 D M A
I / O 处理机程序等待程序中断成组传递周期挪用通道外围处理机
(2) 保护 的 存储器空间是否把指令和数据放在同一存储器中?
优点,
不必预先区分指令和数据,易实现存储管理软件,
程序和指令在执行过程中可以被修改,因而可以编写出灵活的可修改的程序,
对于存取指令和数据仅需一套读\写和寻 址 电路,
硬件简单,
数据可以分配于任何可用空间,从而可更有 效 地利用存储空间等,
缺点:
不利于进行程序调试诊断;
不利于实现程序的可再入性和程序的递归调用;
不利于重叠和流水方式的操作。
现在绝大多数计算机都规定,在执行进程中不准修改程序。
(3) 存储器组织结构的发展
相联存储器:支持内容查找
堆栈的引入:支持高级语言过程调用、递归机制以及表达式计算
通用寄存器:提高运行速度
高速缓冲存储器和多级存储器组织结构:提高运行速度并降低成本
虚拟存储器:方便高级语言编程
(4) 并行处理技术
◆ CPU内部的并行
重迭方式
先行控制
多操作部件
流水方式
◆ 在体系结构上把本来可并行计算的题目使之能并行计算。
如向量计算
◆ 多机并行处理系统把一个作业 (程序 )划分成能并行执行的多个任务 (程序段 ),把每个任务分配给一个处理机执行。
复杂指令集计算机 (CISC)
精简指令集计算机 (RISC)
(5) 指令集结构的发展指令集的功能,
指令的地址空间和寻址方式,
多种灵活的寻址方式。
1.3.2 计算机的分代和分型
1,计算机到目前为止已经发展了 五代这五代计算机分别具有明显的器件、体系结构技术和软件技术的特征。
2,计算机可以根据价格分为 五个档次,
巨型机、大型机、中型机、小型机、微型机第一代
(1945
-1954)
电子管和继电器存储程序计算机、程序控制
I/O
机器语言和汇编语言普林斯顿 ISA、
ENIAC,IBM701
第二代
(1955
-1964)
晶体管、磁芯、印刷电路浮点数据表示、
寻址技术、中断,I/O处理机高级语言和编译、批处理监控系统
Univac LARC、
CDC1604,IBM7030
第三代
(1965
-1974)
SSI和 MSI、
多层印刷电路、微程序流水线,Cache、
先行处理、系列计算机多道程序和分时操作系统
IBM360/370、
CDC6600/7600、
DEC PDP-8
第四代
(1974
-1990)
LSI和 VLSI、
半导体存储器向量处理、分布式存储器并行与分布处理
Cray-1,IBM 3090、
DEC VAX9000、
Convax-1
第五代
(1991-)
高性能微处理器、高密度电路超标量、超流水,SMP,MP、
MPP
大规模、可扩展并行与分布处理
SGI Cray T3E,IBM
SP2,DEC
AlphaServer8400
时间价格
(
对数坐标
)
巨型机
t
大型机中型机小型机微型机虚线为等性能线
3,计算机系统性能随时间,下移,
虚线 为等性能线,随时间是动态下移的同种机器价格在相当长的一段时间内保持不变途径 价格不变 提高性能(沿水平线)
性能不变 降低价格(沿虚线)
4,新型体系结构发展的基本趋势
(1) 合理地 增加计算机系统中硬件的功能比例,
这种体系结构对操作系统、高级语言甚至应用软件提供更多更好的支持;
(2) 通过多种途径 提高计算机体系结构中的并行性等级,使得凡是能并行计算和处理的问题都能并行计算和处理,使这种体系结构和组成对算法提供更多更好的支持。
1.3.3 应用需求的发展应用对体系结构的基本要求是高的运算速度、大的存储量、
大的 I/O吞吐量
1,计算机的设计受两方面因素的影响
2,软件技术的发展趋势
(1) 程序及数据所使用存储器容量的不断增大;
(2) 编译器的重要性日益突出,逐渐成为用户与计算机的主要界面。
计算机现在和未来的使用方法
下层的实现技术
1.3.4 计算机实现技术的发展
逻辑电路
◇ 速度的不断提高
◇ 集成度的不断提高
◇ 主频的提高 ( 2GHz),
◇ 64位 - 128位机器的可能性
◇ 成本的下降门级 —— 寄存器级 —— 部件级 —— 系统级均在一个 VLSI芯片中实现 ( 如 FPGA器件 )
◇ 物理实现,逻辑组成和体系结构之间的差别模糊化对编译的支持已成为应用对体系结构的一个基本要求。
半导体 DRAM(动态随机访问存储器 )
◇ 密度每三年增长四倍
◇ 访问时间每 10年减少 1/3
◇ 通过接口的变化改善带宽
磁盘
◇ 密度每年增长 50%
◇ 访问时间每 10年减少 1/3
1.3.5 体系结构的生命周期一般分成四个阶段,诞生发展成熟消亡硬件的出现系统软件的成熟大量的应用软件被新的体系结构取代任何一个体系结构都有其生命周期。
硬件系统软件应用软件
5 ~7 年
5 ~7 年一般发展
80386,1985
W i n 32,1992
32 位应用,1997
32 位 x86
21064,1990
D i gi tal U N I X 4,1996
64 位应用:?
64 位 A l p h a
消亡
5~ 7 年
1.4 计算机体系结构中并行性的发展
1.4.1 并行性概念
1.并行性指在同一时刻或是同一时间间隔内完成两种或两种以上性质相同或不相同的工作。
只要时间上互相重迭,就存在 并行性。
◆ 同时性两个或多个事件在同一时刻发生
◆ 并发性两个或多个事件在在同一时间间隔内发生这两类并行性从计算机性能角度来看没有太大差别。
2,计算机系统中的并行性的不同方面和等级
指令内部并行,指令内部的微操作之间的并行。
指令级并行,并行执行两条或多条指令。
任务级或过程级并行,并行执行两个或多个过程或任务 (程序段 )。
作业或程序级并行,在多个作业或程序间的并行。
(1) 从执行程序的角度看,并行性等级从低到高可分为:
(2) 从处理数据的角度,并行性等级从低到高可以分为
◆ 字串位串,同时只对一个字的一位进行处理。
◆ 字串位并,同时对一个字的全部位进行处理,
不同字之间是串行的。
◆ 字并位串,同时对许多字的同一位 (称位片 )进行处理。
◆ 全并行,同时对许多字的全部或部分位进行处理。
* 程序运行和数据处理这两种类型的并行性并没有直接的联系
1.4.2 提高并行性的技术途径
1,三种途径
(1) 时间重迭多个处理过程在时间上相互错开,轮流重迭地使用同一套硬件设备的各个部分,
以加快硬件周转而赢得速度。
(2) 资源重复根据,以数量取胜,的原则,通过重复地设臵资源,尤其是硬件资源,以大幅度提高计算机系统的性能。
(3) 资源共享这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。
单处理机系统:
1)时间重迭,流水线技术
2)资源重复,多操作部件处理机 ( 加减法运算器,
乘法器,逻辑运算器等 )
多体存储器并行处理机 ( 一个控制器多个相同处理单元 )
阵列处理机
3)资源共享,分时系统 ---在单处理机上模拟多个独立系统的功能
2,单机系统中并行性的发展
IF ID EX M WB IF ID EX M WB IF ID EX M WB
IF ID EX M WB
IF ID EX M WB
IF ID EX M WB
IF ID EX M WB
指令 i 指令 i+ 1 指令 i+ 2
指令 i
指令 i+ 1
指令 i+ 2
指令 i+ 3
时间串行执行流水执行例如 对于解释指令的五个过程,就分别需要五个专用的部件,即取指令部件 (IF)、指令译码部件 (ID)、指令执行部件 (EX)、访问存储器部件 (M)和写结果部件 (WB)。
3,多机系统中并行性的发展
(1) 耦合度反映多机系统的各机器之间的物理连接的紧密程度和交互作用能力的强弱。
◆ 最低耦合耦合度最低的系统。除通过某种中间存储介质之外,各计算机之间没有物理连接,也无共享的联机硬件资源。
◆ 松散耦合或间接耦合系统通过通道或通信线路实现计算机间互连,
共享某些外围设备 (例如磁盘、磁带等 ),机间的相互作用是在文件或数据集一级进行。
◆ 紧密耦合系统或直接耦合系统机间物理连接的频带较宽,它们往往通过总线或高速开关实现互连,可以共享主存。
多机系统
(1) 时间重叠专用外围处理机(松散耦合系统)
高级语言编译处理机、数据库处理机异构型多处理机系统
(2) 资源重复容错多处理机 ( 紧密耦合系统 )
同构型多处理机系统
(3) 资源共享局部计算机网 ( 松散耦合系统 )
分布处理系统同构型多处理机 项目 异构型多处理机 分布处理系统提高系统性能
(可靠性、速度 )
目的 提高系统使用效率 兼顾效率与性能资源重复
(机向互连 )
技术途径时间重迭
(功能专用化 )
资源共享
(网络化 )
同类型
(同等功能 )
组成 不同类型
(不同功能 )
不限制任务分布 分工方式 功能分布 硬件、软件、数据等各种资源分布一个作业由多机协同并行地完成工作方式 一个作业由多机协同串行地完成一个作业由一台处理机完成,必要时才请求它机协作常采用浮动控制方式 控制形式 采用专用控制方式 分布控制方式紧密耦合 耦合度 紧密、松散耦合 松散、紧密耦合快速性、灵活性、可重构性 对互连网络的要求 专用性 快速、灵活、简单、通用三种类型多处理机比较
1.5 定量分析技术基础
1.5.1 计算机性能的评测最常用的评价尺度是以时间为基础的:
◆ 响应时间,从事件开始到结束之间的时间,也称为 执行时间
(计算机完成某一任务所花费的全部时间 )
◆ 流量,在单位时间内所能完成的工作量。
相同点,以时间为基础不同点,响应时间针对单任务,而流量针对多任务通用评测方法,以真实程序的响应时间为度量。
响应时间与性能成反比,上式变成
n = = =
X
Y
响应时间响应时间
X
Y
性能性能
1
1
Y
X
性能性能
1,假设两台计算机为 X和 Y,,X比 Y快,的意思是对于给定任务,X的响应时间比 Y少。
X比 Y快 n倍,= n
X
Y
响应时间响应时间
用户 CPU时间
系统 CPU时间系统性能? 响应时间
CPU性能? CPU用户时间
◆ CPU时间,CPU工作的时间,不包含 I/O等待时间及运行其它程序的时间。
响应时间是指完成某一任务的全部时间,包括输入输出时间以及 CPU切换到其他任务时所花时间 → 无法衡量 CPU的性能。
1.5.2 测试程序目前常用的测试程序可以分为四类:
(按测试可靠性由高至低的顺序列出)
(1) 真实程序,真实使用的程序 ;
(2) 核心程序,从真实程序中提取能反映系统性能的关键程序段组成的程序 ;
(3) 小测试程序,特地编写的反映系统某一方面性能的一些小程序 ;
(4) 合成测试程序,根据对大量应用程序中各种操作的比例进行统计后按照这个比例人为制造出来的程序。
目前,还有一种测量方法被越来越多地采用,就是用一组各方面有代表性的真实程序和相应的输入来评价计算机性能,这种测评方法我们也称为 Benchmark方法,
这方面有两个例子,
(1) SPEC典型测试程序由 HP,DEC,MIPS和 SUN等公司联合推出由 GCC等十个真实程序组成包括 SPECint和 SPECfp两部分组成
(2)WinBench’98
基于 Windows操作系统从 MS Word等几十个真实程序中截取完整功能模块组成 。
1.5.3 性能设计和评价的基本原则三条基本原则和方法:
1,大概率事件优先的原则对于大概率事件(最常见的事件),赋予它优先的处理权和资源使用权,以获得全局的最优结果。
2,Amdahl定律加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。
定量分析可改进比例,该部件的原执行时间在原系统总执行时间中所占的比例,它总是小于等于 1,
例如,一个需运行 60秒的程序中有 20秒的运算可以加速,那么该比例就是 20/60。
系统加速比 = =
改进前改进后系统性能系统性能改进后改进前总执行时间总执行时间部件加速比,部件改进前后执行时间之比,一般情况下它大于1 。
例如,系统改进后执行程序,其中某部分花费 2秒的时间,而改进前该部分需花费 5秒,
则该部分的部件加速比为 5/2。
总执行时间 改进后 =(1-可改进比例 )?总执行时间 改进前
+
= [ (1-可改进比例 ) + ]?总执行时间 改进前总执行时间 改进后 = 不可改进部分的执行时间 +
可改进部分改进后的执行时间部件加速比总执行时间可改进比例 改进前?
部件加速比可改进比例系统加速比 为改进前与改进后总执行时间之比,
系统加速比 =
=
改进后改进前总执行时间总执行时间部件加速比可改进比例可改进比例 )1(
1
两种情况,
1)可改进比例为0,这时系统加速比等于1,即系统性能无法提高。
2)部件加速比趋于无穷,这时分母中可改进比例与部件加速比之比趋于0,由此系统加速比趋于1除以1减可改进比例,这是加速这个部件所获得的系统性能改善的极限 。
(1) 推 论,如果只针对整个任务的一部分进行优化,那么所获得的加速比不大于 1/(1-fe)。
部件加速比系统性能
(2) 性能递减规则如果仅仅对计算机中的一部分做性能改进,则改进越多,系统获得的效果越小。
(3) 一个,好,的计算机系统,具有高性能价比的计算机系统是一个带宽平衡的系统,而不是看它使用的某些部件的性能 。
3,程序的局部性原理程序在执行时所访问地址的分布不是随机的,而是相对地簇聚;这种簇聚同时存在于指令访问和数据访问中。
◆ 程序的时间局部性,程序即将用到的信息很可能就是目前正在使用的信息 。
◆ 程序的空间局部性,程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。
* 程序的这种局部性原理是计算机系统多层存储体系的基本原理依据,特别是高速缓冲器 Cache。
1.5.4 CPU的性能
1,将程序执行的时间进行分解
(1) 计算机工作的时钟频率计算机系统中与实现技术和工艺有关的因素。
单位是 MHz或 GHz 。
(2) 总时钟周期数
CPU时间 = 总时钟周期数 / 时钟频率
CPI = 总时钟周期数 / IC
CPU时间 = CPI? IC / 时钟频率
IC:程序执行过程中所处理的指令数。
时钟频率,受计算机实现技术和计算机组成影响
CPI,受计算机指令集结构和计算机组成影响
IC,受计算机指令集结构和编译技术影响对许多 CPU来说,不同的指令运行时所用的周期数是不同的,如果我们假设:计算机系统有 n种指令,其中
CPIi,第 i种指令所用的时钟周期数;
ICi,在程序运行过程中中第 i种指令被运行的次数;
CPU时间 =? (CPIi? ICi) / 时钟频率
CPI =? (CPIi? ICi) / IC =? (CPIi? ICi / IC)
其中,(ICi / IC)反映了第 i种指令在程序中所占的比例。 i=1
i=1 i=1
nn
n
i=1
例 1.1
假设我们考虑条件分支指令的两种不同设计方法如下:
(1) CPUA:通过比较指令设臵条件码,然后测试条件码进行分支。
(2) CPUB:在分支指令中包括比较过程在两种 CPU中,条件分支指令都占用 2个 时钟周期而所有其它指令占用 1个 时钟周期,对于 CPUA,执行的指令中分支指令占 20%;由于每个分支指令之前都需要有比较指令,因此比较指令也占 20%。由于 CPUA
在分支时不需要比较,因此假设它的时钟周期时间比 CPUB快 1.25倍。哪一个 CPU更快?如果 CPUA的时钟周期时间仅仅比 CPUB快 1.1倍,哪一个 CPU更快呢?
解,我们不考虑所有系统问题,所以可用 CPU
性能公式。占用 2个 时钟周期的分支指令占总指令的 20%,剩下的指令占用 1个 时钟周期。所以
CPIA = 0.2? 2 + 0.80? 1 = 1.2
则 CPU性能为:
总 CPU时间 A = IC? 1.2? 时钟周期 A
根据假设,有:
时钟周期 B = 1.25? 时钟周期 A
在 CPUB中没有独立的比较指令,所以 CPUB的程序量为 CPUA的 80%,分支指令的比例为:
20%/80% = 25%
这些分支指令占用 2个 时钟周期,而剩下的 75%的指令占用 1个 时钟周期,因此:
CPIB = 0.25? 2 + 0.75? 1 = 1.25
因为 CPUB不执行比较,故:
ICB = 0.8? ICA
因此 CPUB性能为:
总 CPU时间 B = ICB? CPIB? 时钟周期 B
= 0.8? ICA? 1.25? (1.25? 时钟周期 A)
= 1.25? ICA? 时钟周期 A
在这些假设之下,尽管 CPUB执行指令条数较少,CPUA
因为有着更短的时钟周期,所以比 CPUB快。
如果 CPUA的时钟周期时间仅仅比 CPUB快 1.1倍,则时钟周期 B = 1.10? 时钟周期 A
CPUB的性能为,
总 CPU时间 B = ICB? CPIB? 时钟周期 B
= 0.8? ICA? 1.25? (1.10? 时钟周期 A)
= 1.10? ICA? 时钟周期 A
因此 CPUB由于执行更少指令条数,比 CPUA运行更快。
1.6 影响计算机体系结构的成本和价格因素
1.6.1 集成电路的成本集成电路的基本制造工艺:
1,首先生产圆片;
2,在圆片上制造出大量电路单元;
3,园片经过测试后按照制造的电路单元被切割成基片;
4,基片在外壳中封装好以后就是集成电路成品。
圆片基片集成电路的圆片和基片集成电路成本 =
最终成品率封装成本基片测试成本基片成本
基片成本 =
基片成品率每块圆片上的基片数圆片成本
每块园片上的基片数 = -
基片面积圆片面积基片面积圆片直径
2
基片成品率 = 园片成品率? (1+ )-?
基片面积疵点密度?
基片成本 =
基片成品率每块圆片上的基片数圆片成本
)1()
2
( 基片面积疵点密度园片成品率基片面积圆片直径基片面积圆片面积圆片成本=
园片成本、园片成品率,?值及疵点密度等由生产工艺决定的;
基片面积由设计人员控制。
1.6.2 计算机系统的成本和价格
1,影响计算机系统成本的主要因素:
时间对成本产生最直接影响的是时间。
即使实现技术没有变动,计算机系统的制造成本也会不断下降。
因为随着不断生产,生产工艺会日趋稳定,成品率不断提高,成品率提高意味花同样的劳动可获得更多产品,分摊到每个产品的成本当然就下降了 ;
产 量
◆ 产量的增加会加速工艺的稳定,提高生产效率;
◆ 产量增加降低每台单机必须加入的开发费用,
从而使得单机成本下降商品化商品化也是影响产品成本的重要因素,但更重要的是它影响产品的价格。
商品化意味着较大产量和相对清晰稳定的产品概念商品化会导致更多原料供应商加入原料供应竞争
2.影响计算机系统价格的主要因素:
商品的标价 (价格 )由这样一些因素构成:
(1) 原料成本一件产品中所有部件的采购成本总和。
(2) 直接成本与一件产品生产直接相关的成本。包括:
劳务成本
采购成本
零头 (剩余的零头 )
产品质量成本
(3) 毛利主要包括:
公司的研发费用
市场建立费用
销售费用
生产设备维护费用
房租
贷款利息
税后利润和所得税
(4) 折扣主要指批零折扣
3,工作站的成本和价格工作站的成本和价格标价
33.3% 折扣平均销售价格
50% 毛利 33.3% 毛利
25% 直接成本 12.5% 直接成本 8.3% 直接成本
100 % 原料成本 75% 原料成本 37.5% 原料成本 25.1% 原料成本增加 增加 增加
33.3% 100% 50%
,计算机体系结构,
1.计算机直 1946年发明以来,性能大幅度提高表现在,● 运行速度,功能,规模,可靠性等指标的不断提高
● 体积,功耗等指标的不断下降 。
2,计算机性能的高速增长受益于:
● 电路技术的发展
● 体系结构技术的发展
● 其他因素 (OS,Compiler 的发展 )
第一章 计算机体系结构的基本概念
1.1 引论
3,八十年代后,有两种技术使得体系结构技术对 计算机性能发展的影响越来越大:
1)RISC技术 --- 使得体系结构的发展空间一下子被打开;
2)微处理器技术 --- 使得设计新型体系结构的风险,成本,耗时都大为降低 。
结果:
体系结构对计算机性能发展的影响更为明显,达到
80%以上,并且体系结构的发展带动芯片技术,编译技术的进步,使得计算机的发展速度达到每年 50%以上 。
1.2.1 计算机系统中的层次概念
1,计算机系统是=软件+硬件 /固件复杂性 → 当考察它时,通常需要选择某种合适的角度;
→ 同一台计算机在不同人眼里可以是不一样的。
例如:系统设计者和高级语言使用者。
1.2 计算机体系结构的概念
2.考查计算机通常从计算机语言的使用者角度进行一般:
一个计算机系统所支持的计算机语言由低级到高级有多个层面,高一级语言的语句相对于低级语言功能更强,更便于应用,但又都以低级语言为基础。
因此,
从计算机语言的角度,把计算机系统按功能划分成多级层次结构:
第 6 级:应用语言虚拟机第 5 级:高级语言虚拟机第 4 级:汇编语言虚拟机第 3 级:操作系统虚拟机第 2 级:机器语言 ( 传统机器级 )
第 1 级:微程序机器级概念:
虚拟机,由软件实现的机器。
(2) 语言实现的两种基本技术
◆ 翻译,先把 N+1级程序全部变换成 N级程序后,
再去执行新产生的 N级程序,在执行过程中 N+1
级程序不再被访问。
◆ 解释,每当一条 N+1级指令被译码后,就直接去执行一串等效的 N级指令,然后再去取下一条 N+1级的指令,依此重复进行。
一般:
解释执行比翻译花的时间多,但存储空间占用较少。
1.2.2 计算机体系结构
1,计算机体系结构的定义,分经典和广义两种经典定义( Amdahl于 1964年提出):
程序员所看到的计算机的属性,即概念性结构与功能特性。
由于:
按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。
因此:
同一个计算机系统在不同层面上有不同的体系结构。
但一般:
Amdahl提出的体系结构 ---传统机器级的体系结构,
即一般所说的机器语言程序员所看到的传统机器级所具有的属性。
2.体系结构概念包含内容对于通用寄存器型机器,这些属性主要是指:
(1) 数据表示
(硬件能直接辩认和处理的数据类型 )
(2) 寻址规则
(包括最小寻址单元、寻址方式及其表示 )
(3) 寄存器定义
(包括各种寄存器的定义、数量和使用方式 )
(4) 指令集
(包括机器指令的操作类型和格式、指令间的排序和控制机构等 )
(5) 中断系统
(中断的类型和中断响应硬件的功能等 )
(6) 机器工作状态的定义和切换
(如管态和目态等 )
(7) 存储系统
(主存容量、程序员可用的最大存储容量等 )
(8) 信息保护
(包括信息保护方式和硬件对信息保护的支持 )
(9) I/O结构
(包括 I/O联结方式、处理机 /存储器与 I/O设备间数据传送的方式和格式以及 I/O操作的状态等 )
经典计算机体系结构概念的实质:
计算机系统中软硬件界面的确定,其界面之上的是软件的功能,界面之下的是硬件和固件的功能。
广义体系结构概念?
1.2.3 计算机组成和计算机实现技术
1,计算机组成,计算机体系结构的逻辑实现。
2,计算机实现,计算机组成的物理实现。
计算机组成包括的内容可以有:
处理机,主存等部件的逻辑结构,机器级内数据流和控制流的组成,各部件的功能以及之间的联系等 。
计算机实现包括的内容可以有:
处理机,主存等部件的物理结构,包括器件的集成度和速度的确定,器件,模块,插件,
底板的划分与连接,组装装配技术及信号连接,电源,冷却方法等 。
体系结构与组成,实现之间的关系为:
体系结构是组成的抽象,组成是实现的抽象一种体系结构可以有多种组成 。
一种组成可以有多种物理实现 。
广义的计算机体系结构概念包括体系结构的外部特性和内部特性:
计算机体系结构外部特性 ---计算机体系结构的经典定义计算机体系结构内部特性 ---计算机组成与实现中一些比较抽象的内容广义体系结构概念:
体系结构经典定义 + 计算机组成和实现中的部分比较抽象的概念。
系列机在一个厂家内生产的具有相同的体系结构 (经典定义 ),但具有不同组成和实现的一系列不同型号的机器。
例如
IBM 370系列有 370/115,125,135,145,158,168
等一系列从低速到高速的各种型号。
相同点,程序员所看到的概念性结构和功能属性
指令系统一致不同点,组成和实现技术
速度特性不一样系列机是否必须体系结构的严格一致?
事实上,真正需要的是软件兼容而非体系结构的严格一致。
软件兼容,同一个软件可以不加修改地运行于另一台机器,而且它们所获得的结果一样,差别只在于有不同的运行时间。
分四类:
向上兼容,按某档机器编制的程序,不加修改的就能运行于比它高档的机器。
向下兼容,按某档机器编制的程序,不加修改的就能运行于比它低档的机器。
向前兼容,按某个时期投入市场的某种型号机器编制的程序,不加修改地就能运行于在它之前投入市场的机器。
向后兼容,按某个时期投入市场的某种型号机器编制的程序,不加修改地就能运行于在它之后投入市场的机器。
时间机器档次高低向上兼容向下兼容向前兼容向后兼容当前机器这四种属性中,我们通常只坚持向后兼容,这表示系列机中后续各档的机器的体系结构可以以扩充的方式进行发展,这是 系列机的根本特征 。
IBM PC系列机
(处理器、处理器字宽,I/O总线、地址空间、
寻址方式和计算机结构)
8088 / 8 0 2 8 6 C P U
(a ) PC,XT 和 P C A T
存储器 I / O 设备
PC / A T 总线
80 386
/ 80 48 6 C P U
(b ) 80 38 6/ 80 48 6 A T
存储器
I / O 设备
I S A 总线总线控制器处理器总线 / V L 总线
VL 设备
P e n ti u m
C P U
存储器
P C I 设备
P C I 总线总线控制器 1
处理器总线
(c ) P e n ti u m AT
I / O 设备
IS A 总线总线控制器 2
P e n ti u m I I
C P U
存储器
P C I 设备
P C I 总线总线控制器 1
处理器总线
(d ) P e n ti u m I I AT
I / O 设备
I S A 总线总线控制器 2
A G P 总线
A G P 显示卡
PC系列机特性比较计算机型号 PC 和
XT
PC AT 80386
AT
80486
AT
Pentium
AT
Pentium II
AT
处理器型号 8088 80286 80386 80486 Pentium Pentium II
处理器上市时间
1979 1982 1985 1989 1993 1997
处理器字宽 16位 16位 32位 32位 32位 32位
I/O总线 PC总线 AT(ISA
)
ISA/EI
SA
ISA+V
L
ISA+PCI ISA+PCI+
AGP
地址空间 20位 20/24位 20/32位 20/32位 20/32位 20/32(36)位寻址方式 实地址 实 /虚地址实 /虚地址实 /虚地址实 / 虚地址实 /虚地址兼容机不同厂家生产的具有相同体系结构的计算机这使得多个硬件生产厂商可以共享软件成果 。
1.3 计算机体系结构的发展
1.3.1 存储程序计算机体系结构及其发展存储程序计算机的结构是由冯 ·诺依曼等人提出的,当今的计算机体系结构基本上仍是冯 ·诺依曼计算机结构,它的基本结构如下:
运算器
(A L U )
控制器存储器输入设备 输出设备数据流 控制流
1,存储程序计算机的主要特点
(1) 机器以运算器为中心。
(2) 采用存储程序原理,
(3) 存储器是按地址访问的、线性编址的空间。
(4) 控制流由指令流产生,
(5) 指令由操作码和地址码组成。
(6) 数据以二进制编码表示,采用二进制运算。
2,对体系结构进行的改进
(1) 分布的 I/O处理能力以运算器为中心带来了慢速输入/输出操作占用快速运算器的问题。
程序控制输入输出方式 D M A
I / O 处理机程序等待程序中断成组传递周期挪用通道外围处理机
(2) 保护 的 存储器空间是否把指令和数据放在同一存储器中?
优点,
不必预先区分指令和数据,易实现存储管理软件,
程序和指令在执行过程中可以被修改,因而可以编写出灵活的可修改的程序,
对于存取指令和数据仅需一套读\写和寻 址 电路,
硬件简单,
数据可以分配于任何可用空间,从而可更有 效 地利用存储空间等,
缺点:
不利于进行程序调试诊断;
不利于实现程序的可再入性和程序的递归调用;
不利于重叠和流水方式的操作。
现在绝大多数计算机都规定,在执行进程中不准修改程序。
(3) 存储器组织结构的发展
相联存储器:支持内容查找
堆栈的引入:支持高级语言过程调用、递归机制以及表达式计算
通用寄存器:提高运行速度
高速缓冲存储器和多级存储器组织结构:提高运行速度并降低成本
虚拟存储器:方便高级语言编程
(4) 并行处理技术
◆ CPU内部的并行
重迭方式
先行控制
多操作部件
流水方式
◆ 在体系结构上把本来可并行计算的题目使之能并行计算。
如向量计算
◆ 多机并行处理系统把一个作业 (程序 )划分成能并行执行的多个任务 (程序段 ),把每个任务分配给一个处理机执行。
复杂指令集计算机 (CISC)
精简指令集计算机 (RISC)
(5) 指令集结构的发展指令集的功能,
指令的地址空间和寻址方式,
多种灵活的寻址方式。
1.3.2 计算机的分代和分型
1,计算机到目前为止已经发展了 五代这五代计算机分别具有明显的器件、体系结构技术和软件技术的特征。
2,计算机可以根据价格分为 五个档次,
巨型机、大型机、中型机、小型机、微型机第一代
(1945
-1954)
电子管和继电器存储程序计算机、程序控制
I/O
机器语言和汇编语言普林斯顿 ISA、
ENIAC,IBM701
第二代
(1955
-1964)
晶体管、磁芯、印刷电路浮点数据表示、
寻址技术、中断,I/O处理机高级语言和编译、批处理监控系统
Univac LARC、
CDC1604,IBM7030
第三代
(1965
-1974)
SSI和 MSI、
多层印刷电路、微程序流水线,Cache、
先行处理、系列计算机多道程序和分时操作系统
IBM360/370、
CDC6600/7600、
DEC PDP-8
第四代
(1974
-1990)
LSI和 VLSI、
半导体存储器向量处理、分布式存储器并行与分布处理
Cray-1,IBM 3090、
DEC VAX9000、
Convax-1
第五代
(1991-)
高性能微处理器、高密度电路超标量、超流水,SMP,MP、
MPP
大规模、可扩展并行与分布处理
SGI Cray T3E,IBM
SP2,DEC
AlphaServer8400
时间价格
(
对数坐标
)
巨型机
t
大型机中型机小型机微型机虚线为等性能线
3,计算机系统性能随时间,下移,
虚线 为等性能线,随时间是动态下移的同种机器价格在相当长的一段时间内保持不变途径 价格不变 提高性能(沿水平线)
性能不变 降低价格(沿虚线)
4,新型体系结构发展的基本趋势
(1) 合理地 增加计算机系统中硬件的功能比例,
这种体系结构对操作系统、高级语言甚至应用软件提供更多更好的支持;
(2) 通过多种途径 提高计算机体系结构中的并行性等级,使得凡是能并行计算和处理的问题都能并行计算和处理,使这种体系结构和组成对算法提供更多更好的支持。
1.3.3 应用需求的发展应用对体系结构的基本要求是高的运算速度、大的存储量、
大的 I/O吞吐量
1,计算机的设计受两方面因素的影响
2,软件技术的发展趋势
(1) 程序及数据所使用存储器容量的不断增大;
(2) 编译器的重要性日益突出,逐渐成为用户与计算机的主要界面。
计算机现在和未来的使用方法
下层的实现技术
1.3.4 计算机实现技术的发展
逻辑电路
◇ 速度的不断提高
◇ 集成度的不断提高
◇ 主频的提高 ( 2GHz),
◇ 64位 - 128位机器的可能性
◇ 成本的下降门级 —— 寄存器级 —— 部件级 —— 系统级均在一个 VLSI芯片中实现 ( 如 FPGA器件 )
◇ 物理实现,逻辑组成和体系结构之间的差别模糊化对编译的支持已成为应用对体系结构的一个基本要求。
半导体 DRAM(动态随机访问存储器 )
◇ 密度每三年增长四倍
◇ 访问时间每 10年减少 1/3
◇ 通过接口的变化改善带宽
磁盘
◇ 密度每年增长 50%
◇ 访问时间每 10年减少 1/3
1.3.5 体系结构的生命周期一般分成四个阶段,诞生发展成熟消亡硬件的出现系统软件的成熟大量的应用软件被新的体系结构取代任何一个体系结构都有其生命周期。
硬件系统软件应用软件
5 ~7 年
5 ~7 年一般发展
80386,1985
W i n 32,1992
32 位应用,1997
32 位 x86
21064,1990
D i gi tal U N I X 4,1996
64 位应用:?
64 位 A l p h a
消亡
5~ 7 年
1.4 计算机体系结构中并行性的发展
1.4.1 并行性概念
1.并行性指在同一时刻或是同一时间间隔内完成两种或两种以上性质相同或不相同的工作。
只要时间上互相重迭,就存在 并行性。
◆ 同时性两个或多个事件在同一时刻发生
◆ 并发性两个或多个事件在在同一时间间隔内发生这两类并行性从计算机性能角度来看没有太大差别。
2,计算机系统中的并行性的不同方面和等级
指令内部并行,指令内部的微操作之间的并行。
指令级并行,并行执行两条或多条指令。
任务级或过程级并行,并行执行两个或多个过程或任务 (程序段 )。
作业或程序级并行,在多个作业或程序间的并行。
(1) 从执行程序的角度看,并行性等级从低到高可分为:
(2) 从处理数据的角度,并行性等级从低到高可以分为
◆ 字串位串,同时只对一个字的一位进行处理。
◆ 字串位并,同时对一个字的全部位进行处理,
不同字之间是串行的。
◆ 字并位串,同时对许多字的同一位 (称位片 )进行处理。
◆ 全并行,同时对许多字的全部或部分位进行处理。
* 程序运行和数据处理这两种类型的并行性并没有直接的联系
1.4.2 提高并行性的技术途径
1,三种途径
(1) 时间重迭多个处理过程在时间上相互错开,轮流重迭地使用同一套硬件设备的各个部分,
以加快硬件周转而赢得速度。
(2) 资源重复根据,以数量取胜,的原则,通过重复地设臵资源,尤其是硬件资源,以大幅度提高计算机系统的性能。
(3) 资源共享这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。
单处理机系统:
1)时间重迭,流水线技术
2)资源重复,多操作部件处理机 ( 加减法运算器,
乘法器,逻辑运算器等 )
多体存储器并行处理机 ( 一个控制器多个相同处理单元 )
阵列处理机
3)资源共享,分时系统 ---在单处理机上模拟多个独立系统的功能
2,单机系统中并行性的发展
IF ID EX M WB IF ID EX M WB IF ID EX M WB
IF ID EX M WB
IF ID EX M WB
IF ID EX M WB
IF ID EX M WB
指令 i 指令 i+ 1 指令 i+ 2
指令 i
指令 i+ 1
指令 i+ 2
指令 i+ 3
时间串行执行流水执行例如 对于解释指令的五个过程,就分别需要五个专用的部件,即取指令部件 (IF)、指令译码部件 (ID)、指令执行部件 (EX)、访问存储器部件 (M)和写结果部件 (WB)。
3,多机系统中并行性的发展
(1) 耦合度反映多机系统的各机器之间的物理连接的紧密程度和交互作用能力的强弱。
◆ 最低耦合耦合度最低的系统。除通过某种中间存储介质之外,各计算机之间没有物理连接,也无共享的联机硬件资源。
◆ 松散耦合或间接耦合系统通过通道或通信线路实现计算机间互连,
共享某些外围设备 (例如磁盘、磁带等 ),机间的相互作用是在文件或数据集一级进行。
◆ 紧密耦合系统或直接耦合系统机间物理连接的频带较宽,它们往往通过总线或高速开关实现互连,可以共享主存。
多机系统
(1) 时间重叠专用外围处理机(松散耦合系统)
高级语言编译处理机、数据库处理机异构型多处理机系统
(2) 资源重复容错多处理机 ( 紧密耦合系统 )
同构型多处理机系统
(3) 资源共享局部计算机网 ( 松散耦合系统 )
分布处理系统同构型多处理机 项目 异构型多处理机 分布处理系统提高系统性能
(可靠性、速度 )
目的 提高系统使用效率 兼顾效率与性能资源重复
(机向互连 )
技术途径时间重迭
(功能专用化 )
资源共享
(网络化 )
同类型
(同等功能 )
组成 不同类型
(不同功能 )
不限制任务分布 分工方式 功能分布 硬件、软件、数据等各种资源分布一个作业由多机协同并行地完成工作方式 一个作业由多机协同串行地完成一个作业由一台处理机完成,必要时才请求它机协作常采用浮动控制方式 控制形式 采用专用控制方式 分布控制方式紧密耦合 耦合度 紧密、松散耦合 松散、紧密耦合快速性、灵活性、可重构性 对互连网络的要求 专用性 快速、灵活、简单、通用三种类型多处理机比较
1.5 定量分析技术基础
1.5.1 计算机性能的评测最常用的评价尺度是以时间为基础的:
◆ 响应时间,从事件开始到结束之间的时间,也称为 执行时间
(计算机完成某一任务所花费的全部时间 )
◆ 流量,在单位时间内所能完成的工作量。
相同点,以时间为基础不同点,响应时间针对单任务,而流量针对多任务通用评测方法,以真实程序的响应时间为度量。
响应时间与性能成反比,上式变成
n = = =
X
Y
响应时间响应时间
X
Y
性能性能
1
1
Y
X
性能性能
1,假设两台计算机为 X和 Y,,X比 Y快,的意思是对于给定任务,X的响应时间比 Y少。
X比 Y快 n倍,= n
X
Y
响应时间响应时间
用户 CPU时间
系统 CPU时间系统性能? 响应时间
CPU性能? CPU用户时间
◆ CPU时间,CPU工作的时间,不包含 I/O等待时间及运行其它程序的时间。
响应时间是指完成某一任务的全部时间,包括输入输出时间以及 CPU切换到其他任务时所花时间 → 无法衡量 CPU的性能。
1.5.2 测试程序目前常用的测试程序可以分为四类:
(按测试可靠性由高至低的顺序列出)
(1) 真实程序,真实使用的程序 ;
(2) 核心程序,从真实程序中提取能反映系统性能的关键程序段组成的程序 ;
(3) 小测试程序,特地编写的反映系统某一方面性能的一些小程序 ;
(4) 合成测试程序,根据对大量应用程序中各种操作的比例进行统计后按照这个比例人为制造出来的程序。
目前,还有一种测量方法被越来越多地采用,就是用一组各方面有代表性的真实程序和相应的输入来评价计算机性能,这种测评方法我们也称为 Benchmark方法,
这方面有两个例子,
(1) SPEC典型测试程序由 HP,DEC,MIPS和 SUN等公司联合推出由 GCC等十个真实程序组成包括 SPECint和 SPECfp两部分组成
(2)WinBench’98
基于 Windows操作系统从 MS Word等几十个真实程序中截取完整功能模块组成 。
1.5.3 性能设计和评价的基本原则三条基本原则和方法:
1,大概率事件优先的原则对于大概率事件(最常见的事件),赋予它优先的处理权和资源使用权,以获得全局的最优结果。
2,Amdahl定律加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。
定量分析可改进比例,该部件的原执行时间在原系统总执行时间中所占的比例,它总是小于等于 1,
例如,一个需运行 60秒的程序中有 20秒的运算可以加速,那么该比例就是 20/60。
系统加速比 = =
改进前改进后系统性能系统性能改进后改进前总执行时间总执行时间部件加速比,部件改进前后执行时间之比,一般情况下它大于1 。
例如,系统改进后执行程序,其中某部分花费 2秒的时间,而改进前该部分需花费 5秒,
则该部分的部件加速比为 5/2。
总执行时间 改进后 =(1-可改进比例 )?总执行时间 改进前
+
= [ (1-可改进比例 ) + ]?总执行时间 改进前总执行时间 改进后 = 不可改进部分的执行时间 +
可改进部分改进后的执行时间部件加速比总执行时间可改进比例 改进前?
部件加速比可改进比例系统加速比 为改进前与改进后总执行时间之比,
系统加速比 =
=
改进后改进前总执行时间总执行时间部件加速比可改进比例可改进比例 )1(
1
两种情况,
1)可改进比例为0,这时系统加速比等于1,即系统性能无法提高。
2)部件加速比趋于无穷,这时分母中可改进比例与部件加速比之比趋于0,由此系统加速比趋于1除以1减可改进比例,这是加速这个部件所获得的系统性能改善的极限 。
(1) 推 论,如果只针对整个任务的一部分进行优化,那么所获得的加速比不大于 1/(1-fe)。
部件加速比系统性能
(2) 性能递减规则如果仅仅对计算机中的一部分做性能改进,则改进越多,系统获得的效果越小。
(3) 一个,好,的计算机系统,具有高性能价比的计算机系统是一个带宽平衡的系统,而不是看它使用的某些部件的性能 。
3,程序的局部性原理程序在执行时所访问地址的分布不是随机的,而是相对地簇聚;这种簇聚同时存在于指令访问和数据访问中。
◆ 程序的时间局部性,程序即将用到的信息很可能就是目前正在使用的信息 。
◆ 程序的空间局部性,程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。
* 程序的这种局部性原理是计算机系统多层存储体系的基本原理依据,特别是高速缓冲器 Cache。
1.5.4 CPU的性能
1,将程序执行的时间进行分解
(1) 计算机工作的时钟频率计算机系统中与实现技术和工艺有关的因素。
单位是 MHz或 GHz 。
(2) 总时钟周期数
CPU时间 = 总时钟周期数 / 时钟频率
CPI = 总时钟周期数 / IC
CPU时间 = CPI? IC / 时钟频率
IC:程序执行过程中所处理的指令数。
时钟频率,受计算机实现技术和计算机组成影响
CPI,受计算机指令集结构和计算机组成影响
IC,受计算机指令集结构和编译技术影响对许多 CPU来说,不同的指令运行时所用的周期数是不同的,如果我们假设:计算机系统有 n种指令,其中
CPIi,第 i种指令所用的时钟周期数;
ICi,在程序运行过程中中第 i种指令被运行的次数;
CPU时间 =? (CPIi? ICi) / 时钟频率
CPI =? (CPIi? ICi) / IC =? (CPIi? ICi / IC)
其中,(ICi / IC)反映了第 i种指令在程序中所占的比例。 i=1
i=1 i=1
nn
n
i=1
例 1.1
假设我们考虑条件分支指令的两种不同设计方法如下:
(1) CPUA:通过比较指令设臵条件码,然后测试条件码进行分支。
(2) CPUB:在分支指令中包括比较过程在两种 CPU中,条件分支指令都占用 2个 时钟周期而所有其它指令占用 1个 时钟周期,对于 CPUA,执行的指令中分支指令占 20%;由于每个分支指令之前都需要有比较指令,因此比较指令也占 20%。由于 CPUA
在分支时不需要比较,因此假设它的时钟周期时间比 CPUB快 1.25倍。哪一个 CPU更快?如果 CPUA的时钟周期时间仅仅比 CPUB快 1.1倍,哪一个 CPU更快呢?
解,我们不考虑所有系统问题,所以可用 CPU
性能公式。占用 2个 时钟周期的分支指令占总指令的 20%,剩下的指令占用 1个 时钟周期。所以
CPIA = 0.2? 2 + 0.80? 1 = 1.2
则 CPU性能为:
总 CPU时间 A = IC? 1.2? 时钟周期 A
根据假设,有:
时钟周期 B = 1.25? 时钟周期 A
在 CPUB中没有独立的比较指令,所以 CPUB的程序量为 CPUA的 80%,分支指令的比例为:
20%/80% = 25%
这些分支指令占用 2个 时钟周期,而剩下的 75%的指令占用 1个 时钟周期,因此:
CPIB = 0.25? 2 + 0.75? 1 = 1.25
因为 CPUB不执行比较,故:
ICB = 0.8? ICA
因此 CPUB性能为:
总 CPU时间 B = ICB? CPIB? 时钟周期 B
= 0.8? ICA? 1.25? (1.25? 时钟周期 A)
= 1.25? ICA? 时钟周期 A
在这些假设之下,尽管 CPUB执行指令条数较少,CPUA
因为有着更短的时钟周期,所以比 CPUB快。
如果 CPUA的时钟周期时间仅仅比 CPUB快 1.1倍,则时钟周期 B = 1.10? 时钟周期 A
CPUB的性能为,
总 CPU时间 B = ICB? CPIB? 时钟周期 B
= 0.8? ICA? 1.25? (1.10? 时钟周期 A)
= 1.10? ICA? 时钟周期 A
因此 CPUB由于执行更少指令条数,比 CPUA运行更快。
1.6 影响计算机体系结构的成本和价格因素
1.6.1 集成电路的成本集成电路的基本制造工艺:
1,首先生产圆片;
2,在圆片上制造出大量电路单元;
3,园片经过测试后按照制造的电路单元被切割成基片;
4,基片在外壳中封装好以后就是集成电路成品。
圆片基片集成电路的圆片和基片集成电路成本 =
最终成品率封装成本基片测试成本基片成本
基片成本 =
基片成品率每块圆片上的基片数圆片成本
每块园片上的基片数 = -
基片面积圆片面积基片面积圆片直径
2
基片成品率 = 园片成品率? (1+ )-?
基片面积疵点密度?
基片成本 =
基片成品率每块圆片上的基片数圆片成本
)1()
2
( 基片面积疵点密度园片成品率基片面积圆片直径基片面积圆片面积圆片成本=
园片成本、园片成品率,?值及疵点密度等由生产工艺决定的;
基片面积由设计人员控制。
1.6.2 计算机系统的成本和价格
1,影响计算机系统成本的主要因素:
时间对成本产生最直接影响的是时间。
即使实现技术没有变动,计算机系统的制造成本也会不断下降。
因为随着不断生产,生产工艺会日趋稳定,成品率不断提高,成品率提高意味花同样的劳动可获得更多产品,分摊到每个产品的成本当然就下降了 ;
产 量
◆ 产量的增加会加速工艺的稳定,提高生产效率;
◆ 产量增加降低每台单机必须加入的开发费用,
从而使得单机成本下降商品化商品化也是影响产品成本的重要因素,但更重要的是它影响产品的价格。
商品化意味着较大产量和相对清晰稳定的产品概念商品化会导致更多原料供应商加入原料供应竞争
2.影响计算机系统价格的主要因素:
商品的标价 (价格 )由这样一些因素构成:
(1) 原料成本一件产品中所有部件的采购成本总和。
(2) 直接成本与一件产品生产直接相关的成本。包括:
劳务成本
采购成本
零头 (剩余的零头 )
产品质量成本
(3) 毛利主要包括:
公司的研发费用
市场建立费用
销售费用
生产设备维护费用
房租
贷款利息
税后利润和所得税
(4) 折扣主要指批零折扣
3,工作站的成本和价格工作站的成本和价格标价
33.3% 折扣平均销售价格
50% 毛利 33.3% 毛利
25% 直接成本 12.5% 直接成本 8.3% 直接成本
100 % 原料成本 75% 原料成本 37.5% 原料成本 25.1% 原料成本增加 增加 增加
33.3% 100% 50%