Files
2026-05-16 17:16:51 +08:00

57 KiB
Raw Permalink Blame History

第1章 概述 - 章节关键原文

说明以下内容严格按原文摘抄所有老师的PPT核心知识点、定义、公式、核心论述分老师、分slide整理标记清楚来源。


曲冠南老师原PPT第1章 概述 - 曲冠南上课用--202603124共58张幻灯片

Slide 4 - ENIAC诞生背景

社会的需求对科技进步的作用要超过10所大学。
                                           ----  恩格斯

第一台通用电子计算机诞生于1946年 
世界上第一台现代电子计算机"埃尼阿克"ENIAC诞生于1946年2月14日的美国宾夕法尼亚大学并于次日正式对外公布。ENIAC长30.48米宽1米占地面积约170平方米30个操作台约相当于10间普通房间的大小重达30吨耗电量150千瓦造价48万美元。它包含了17,468真空管7,200水晶二极管, 1,500 中转, 70,000电阻器, 10,000电容器1500继电器6000多个开关每秒执行5000次加法或400次乘法是继电器计算机的1000倍、手工计算的20万倍。
ENIAC于1955年退役。

Pentium 4  2.0 CPU 每秒约80亿次二进制加法

Slide 6-7 - 计算机技术的发展

1.1.1 计算机技术的发展
计算机性能的发展源于如下两个方面
半导体技术的发展
计算机体系结构的发展

处理器性能的增长主要是半导体技术驱动。
虽然半导体技术发展迅速,但是这一阶段的飞速发展更归功于体系结构和组织思想的发展。
功耗和指令级的并行限制了单处理机的性能。2007年开始单芯片上核数每年都在增长。
性能增长在降低摩尔定律受限并行化受Amdahl定律

计算机性能的发展是由半导体制造工艺和计算机体系结构的发展共同促成的。

Slide 9 - Flynn分类法

1.1.2 并行度和并行体系结构
20世纪60年代Michael Flynn在研究并行计算工作量时提出一种简单的分类方式至今我们仍在使用
单指令流、单数据流Single Instruction Stream, Single  Data Stream, SISD。
单指令流、多数据流Single Instruction Stream, Multiple  Data Stream, SIMD。
多指令流、单数据流Multiple Instruction Stream, Single  Data Stream, MISD。
多指令流、多数据流, Multiple Instruction Stream, Multiple  Data Stream, MIMD。

Slide 10 - SISD

单指令流单数据流SISD
这个类别是单处理器;
可以使用指令级并行,如流水线、动态调度、超标量。

Slide 11 - SIMD

单指令流多数据流SIMD
同一指令操纵多条数据流,由不同处理器,对多个数据项进行并行数据处理;
每个数据处理器可有自己的数据存储器,但是只有一个指令存储器和控制器;
向量体系结构GPU

Slide 12 - MIMD

多指令流多数据流MIMD
每个处理器都自己取指令,并对自己的数据进行处理;
任务级并行;
紧密耦合的MIMD结构—线程级并行
松散耦合MIMD结构—集群。

Slide 13 - MISD

多指令流单数据流, MISD
目前为止,没有此种类型的商用机;
脉动阵列。

Slide 16 - 计算机体系结构定义

1.2 计算机体系结构
狭义的定义 Amdahl的定义
指令集的设计;
需要考虑:寄存器、内存地址、访存方式、指令集的设计;
经典定义:机器语言程序员所见到的计算机的属性,即概念性结构和功能特性。
广义的定义 (《计算机体系结构-量化研究方法》中的定义)
包括计算机设计所有三个方面 
指令集结构
组成
硬件

Slide 17 - 指令集结构ISA

指令集结构ISA
分类
现在几乎所有的ISA都划分为通用寄存器体系结构中
两种主流版本:寄存器-存储器如80X86  载入-存储如ARM和MIPS。
存储器寻址
字节寻址
访问对齐
寻址模式:立即寻址、寄存器寻址、偏移寻址等
操作数类型和大小
指令类型:数据传输、算逻运算、控制指令、浮点指令 等;
指令格式:固定、可变

Slide 18 - 组成和硬件

组成和硬件
组成是计算机的逻辑实现包括存储系统、存储器连接、CPU内部设计。
硬件是计算机的具体实现,包括详尽的逻辑设计和封装技术。

真正的计算机体系结构:设计满足目标和功能需求的组织和硬件。
                                                                  --- 《计算机体系结构-量化研究方法》

Slide 20 - 技术趋势

1. 不可或缺的实现技术
1.3.1 技术趋势
晶体管密度大概每年增加35% 差不多每四年翻两番。晶片大小的增长速度要慢一点。两者综合起来一个芯片上的晶体管数目每年大约增长40%-55%这就是摩尔定律单位面积上的晶体管数目每18个月翻一翻。
最近大约十年单个DRAM芯片容量每年大约增加25%-40%大约每2-3年翻一翻但是增长速度在下降。DRAM技术是主存储器的基础。
个人移动设备中存储器件。近十年来,个人移动设备迅速普及,这种趋势刺激了半导体闪存容量的迅速提升。
磁盘技术是服务器和数据存储的核心技术。在1990年之前磁盘密度每年提高大约30%3年翻一翻。之后每年增长60%1996年的增速为100%。从2004年开始每年增长40%左右。
网络的性能取决于交换机的性能和传输系统的性能。

Slide 21 - 性能趋势:带宽和延迟

2.  性能趋势:带宽和延迟
带宽 或 吞吐量
单位时间的工作量
处理器的带宽增长 32,000-40,000 倍
内存和磁盘的带宽增长 300-1200 倍
延迟 或 响应时间
一个事件从开始到完成所经历的时间
处理器响应时间改进 50-90 倍
内存和磁盘的响应时间改进 6-8 倍

显然,在这些技术的发展过程中,带宽的改进要明显优于延迟。一个简单的经验法则是:带宽的增长速度至少是延迟改进速度的平方。

Slide 22 - 晶体管性能与连线发展

3.  晶体管Transistors性能与连线wire的发展
集成电路的制造工艺是以特征尺寸来衡量的
特征尺寸 就是一个晶体管或者一条连线在x方向或者y方向的最小尺寸。
特征尺寸1971为 10 微米, 2011年0.032微米32纳米技术2017年 0 .016微米16纳米技术。
特征尺寸下降时,晶体管性能以线性提升,晶体管的密度将以平方曲线上升。

随着特征尺寸缩小,连线会变短,但是单位长度的电阻和电容都会变差。和晶体管性能相比,连线延迟方面的改进少的可怜。
借助这种增长微处理器从4位迅速发展到64位并从单核发展到多核。

Slide 23 - 功率和能耗趋势

功率和能耗:系统观点
处理器需要的最大功率是多少?

持续功耗 -- 热设计功耗 Thermal Design Power TDP 

能耗和能耗效率。
对于几乎所有类型的计算机来说,功率都是计算机设计人员面对的挑战。
第一,必须将功率引入芯片,并进行分配;
第二,功率以热的形式耗散,必须消除。
如果处理器需要的最大功率超过电源系统能提供的功率,就会导致电压下降,而电压下降会导致期间无法正常工作;
决定了冷却需求,当温度接近节点温度上限时,电路降低时钟频率,从而减小功率;如果不成功,启动热过载启动装置,以降低芯片的功率。
所谓的功率,就是单位时间的能耗。 用能耗更适合作为对比处理器的参数。因为能耗这个参数同时包含了执行任务的时间。 也就是,如果对比两个处理器对于某一给定任务,那个更高效,那么应该对比的是执行该项任务的能耗,而非功率。

Slide 24 - 微处理器内部的能耗和功率

2. 微处理器内部的能耗和功率
主要能耗源:开关晶体管(动态能耗)
时钟频率和电源电压保持不变的情况下,提高能耗效率。
关闭非活动模块,以节省能耗和动态功率;
动态电压-频率调整。微处理器可以提供不同工作频率。
针对典型情景的设计PMD、笔记本等的省电模式
超频。Intel在2008年开始提供Turbo模式在这种模式下芯片可以判定在少数几个核心上以较高的时钟频率短时间运行。

Slide 26 - Intel架构史

1. 8086架构1978年
家族代表工业控制的基石80186
关键点x86架构的奠基者16位处理器分段内存管理。
工艺3微米。

3. 80486架构1989年
家族代表i486DX
关键点片上缓存出现集成浮点单元FPU优化五级流水时钟倍频。
工艺1微米到0.6微米

2. 80386架构1985年
家族代表80386DX。
关键点迈入32位时代保护模式现代os的基石首次集成MMU流水线开始形成。
工艺1.5微米到1微米。

4. Pentium P5架构1993年
家族代表Pentium 60开山Pentium 133巅峰Pentium MMX终极。
关键点超标量双流水线分支预测64位外部数据总线与突发模式。
工艺0.8微米到0.35微米

5. P6架构  1995年         
家族代表Pentium ProPentium ll。
关键点动态执行分支预测乱序执行推测执行多媒体扩展指令集MMXSIMD技术独立L2缓存外置/内置)。
工艺0.35微米到0.13微米

6. Netburst架构2000年
家族代表Pentium 4 willamette。
关键点超高频最高达3.8GHz超长流水31级超线程单核模拟双核SIMD扩展指令集SSE2/SSE3。
工艺0.18微米到65纳米

Slide 27-29 - 后续Intel架构

7. Core架构 2006年
家族代表core 2 Duo conroe。"扣肉"
工艺65纳米到45纳米。

8. Nehalem架构2008年 -- 第1代酷睿
家族代表core i7 900系列
关键点集成内存控制器DDR3高速点对点QPI总线替代FSB超线程技术turbo boost技术动态频率调节三级缓存架构。
工艺45纳米。

9. Sandy bridge架构2011年-- 第2代酷睿
家族代表core i7 2600Kcore i5 2500K
关键点融合架构CPU与GPU同芯片集成共享三级缓存环形总线引入256位高级矢量扩展AVX指令集。
工艺32纳米。

10. Haswell架构2013年-- 第4代酷睿
家族代表core i7 4770Kcore i5 4670K。
关键点功耗控制图形性能指令集扩展。采用集成式FIVR全集成电压调节模块降低功耗。给"超级本"铺了路。
工艺22纳米。

11. Skylake架构 2015年-- 第6代酷睿
家族代表core i7 6700Kcore i5 6600K
关键点架构优化提升ILP支持DDR4内存提升高速互联DMI 3.0。但是去掉了FIVR。
工艺14纳米工艺的成熟之作。

12. Coffee Lake架构 2017年 -- 第8代酷睿
家族代表core i7 8700K
关键点核数跃进i7 从4核8线程到6核12线程缓存与频率增强。
工艺成熟的14纳米++14nm的终极版本

13. Alder Lake架构 2021年 -- 第12代酷睿
家族代表core i9 12900K
关键点首次采用混合架构大小核即P性能核+E效能核。
              首发支持PCIe5.0。首发支持DDR5。
被誉为英特尔近十年来最具革新意义的桌面处理器架构。
工艺Intel 7 工艺10纳米工艺的终极改进版

14. Raptor lake 架构2023年 - 第13代酷睿
家族代表core i9 13900K。
关键点对Alder Lake的深度优化和规格扩充核心数量堆叠 + 频率极限压榨)
工艺增强版Intel 7工艺

15. Raptor lake Refresh架构2023年 - 第14代酷睿
家族代表core i9 14900K。
关键点:本质未变,小幅升级。
工艺增强版Intel 7工艺
core i 时代终结者

Slide 30 - 最新架构

16. Meteor lake架构2023年 -- 酷睿Ultra系列1
家族代表core ultra 9 185H 。(主要是移动设备)
关键点P和E核升级强大的GPU模块独立的NPU。
英特尔首款具备专用AI引擎的PC处理器真正开启了 AI PC 的浪潮
工艺Intel 4 工艺。从"单芯片"到"模块化芯粒chiplet"。
AI PC时代

17. Arrow lake架构2024年 -- 酷睿Ultra系列2
家族代表core ultra 200S系列。将Meteteor lake推向桌面端
关键点AI入桌。
工艺Intel 4 工艺。
最新的加强版plus系列产品基于Arrow lake refresh 架构于2026年3月11日发布。

Slide 32 - 性能测试指标

1. 如何评价性能? -- 性能指标
响应时间/执行时间 -- 用户关心的
吞吐量  --  仓库级计算机的操作人员关心的
2. 加速比
机器X比机器Y快 是什么意思?  --  执行时间是稳定、可靠的性能度量
3. 执行时间
单个用户 访问内存所需要的时间访问磁盘所需要的时间输入输出操作所需要的时间操作系统开销CPU执行时间。。。

多道程序–操作系统调度。。。太难了。
----- 墙上时间:  包括所有的系统开销
CPU时间:  only computation time
4. 基准测试
程序内核 :实际应用程序中的短小、关键部分;
玩具程序为了完成编程入门作业而编写的小程序通常不超过100行如快排程序
合成基准测试程序:为了匹配实际应用程序的特征和行为编写的虚拟程序;
基准测试套件Benchmark suites 衡量处理器处理各种应用程序的性能。优势在于任何一个基准测试的弱点都会因为其他基准测试的存在而变小。最常用的是SPEC所有SPEC基准测设套件及其报告都可以在www.spec.org中找到。

Slide 33 - SPEC基准测试

关于基准程序测试
1.  计算机性能的一种常用的评估方式是使用基准评测程序也就是benchmark。基准评测程序是专门设计用来评价计算机性能的一组程序从而反映机器在实际工作负载时的时间。在不同的机器上运行同一套基准程序通过比较运行时间来评价机器性能。
2. SPECSystem Performance Evaluation Cooperative是由许多计算机销售商联合出资赞助并支持的组织目的是为现代计算机系统建立基准评测程序集该组织成立于1988年。1989年SPEC建立了重点面向处理器性能的基准程序集即SPEC89。历经五代发展应用时间最长和最广泛的是SPEC CPU 2006。它是由SPECint和SPECfp组成前者包括了12个整数基准评测程序后者包括19个基准评测程序。随着SPEC CPU 2017的发布CPU 2006已经于2018年1月正式退休。

Slide 36-37 - 充分利用并行

并行性的含义:
        计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。即只要在时间上相互重叠,就存在并行性。
同时性:两个或两个以上的事件在同一时刻发生。
并发性:两个或两个以上的事件在同一时间间内发生。 
提高并行性的三种途径:
时间重叠: 引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
资源重复:引入空间因素,以数量取胜。通过重复设置硬件资源,大幅度地提高计算机系统的性能。
资源共享:这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。如,多道程序。

时间重叠
单处理机中  -- 部件功能专用化
把一件工作按功能分割为若干相互联系的部分;
把每一部分指定给专门的部件完成;
按时间重叠原理把各部分的执行过程在时间上重叠起来,使所有部件依次分工完成一组同样的工作。
多处理机中  处理机专用化
专用外围处理机
        例如,输入/输出功能的分离。 
专用处理机
         如数组运算、高级语言翻译、数据库管理等,分离出来。
异构型多处理机系统
             由多个不同类型、至少担负不同功能的处理机组成,它们按照作业要求的顺序,利用时间重叠原理,依次对它们的多个任务进行加工,各自完成规定的功能动作。

Slide 38 - 资源重复

资源重复
单处理机中  -- 重复设置功能部件
多存储体并行
数据/指令独立存储体
重复设置运算部件
多处理机中  重复设置处理机
容错系统
同构型多处理机系统
       由多个同类型或至少担负同等功能的处理机组成,它们同时处理同一作业中能并行执行的多个任务。
低位交叉多体并行

Slide 39 - 资源共享

资源共享
单处理机中  
分时系统
多处理机中
分布式系统

Slide 41 - 局部性原理

程序执行时所访问的存储器地址分布不是随机的,而是相对地簇聚。
常用的一个经验规则
程序执行时间的90%都是在执行程序中10%的代码。
程序的时间局部性
程序即将用到的信息很可能就是目前正在使用的信息。
程序的空间局部性
程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。

Slide 43-46 - Amdahl定律

加速比  衡量系统的性能改进了多少
1.5.4  Amdahl定律
加速比
=
系统性能改进后
系统性能改进前
=
性能 = 1/执行时间
=
通常 大于 1

换个方式来看
总执行时间改进后
不可改进部分比例 ×总执行时间改进前
不可改进部分的执行时间 + 可改进部分改进后执行时间
=
可改进比例 ×总执行时间改进前
部件加速比
+
1-可改进比例)
=
=
总执行时间改进前
×
总执行时间改进后
总执行时间改进前
=

部件加速比:可改进部分改进以后,性能提高的倍数。它是改进前所需的执行时间与改进后执行时间的比。  一般情况下部件加速比是大于1的。
例如若系统改进后可改进部分的执行时间是2秒而改进前其执行时间为5秒则部件加速比为5/2。

可改进比例:在改进前的系统中,可改进部分的执行时间在总的执行时间中所占的比例。
例如一个需运行60秒的程序中有20秒的运算可以加速那么这个比例就是20/60。

Amdahl定律表明加快某部件执行速度所能获得的系统性能加速比受限于该部件的执行时间占系统中总执行时间的百分比。

Slide 47-48 - Amdahl定律例题

例 将计算机系统中某一功能的处理速度提高到原来的20倍但该功能的处理时间仅占整个系统运行时间的40%,则采用此提高性能的方法后,能使整个系统的性能提高多少?
解  由题可知,可改进比例 = 40% = 0.4,部件加速比 = 20
    根据Amdahl定律可知
总加速比 = 1/(0.6 + 0.4/20) = 1.613
采用此提高性能的方法后能使整个系统的性能提高到原来的1.613倍。

Slide 49 - Amdahl定律推论

Amdahl定律一种性能改进的递减规则
如果仅仅对计算任务中的一部分做性能改进,则改进得越多,所得到的总体性能的提升就越有限。
重要推论:如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过 1/(1-可改进比例)

Slide 50 - 公式拓展

公式拓展
假设:
Si为第 i 种部件的加速比;
Pi为第 i 种部件执行时间占总执行时间中的比例。

Slide 51-53 - CPU性能公式

执行一个程序所需的CPU时间
       CPU时间 = 执行程序所需的时钟周期数×时钟周期时间
其中:
执行程序所需的时钟周期数 = 每条指令执行的平均时钟周期数 CPI ×所执行的指令条数 IC
时钟周期时间是系统时钟频率的倒数。
CPU时间公式也可以写为如下形式
               CPU时间 = IC ×CPI ×时钟周期时间 
       或:
                CPU时间 = IC ×CPI ×1/时钟频率)

请思考如何降低CPU时间
CPU时间 =    IC   ×   CPI    ×    时钟周期时间
指令集结构    编译技术    计算机组成    硬件实现技术
CISC → RISC
IC    CPI

CPI公式拓展
CPI时间公式拓展 
 假设计算机系统有n种指令
      CPIi 第i种指令的处理时间周期数
      ICi 在程序中第i种指令出现的次数
  则 CPI = Σ(CPIi × ICi) / IC
其中,(ICi/IC)反映了第i种指令在程序中所占的比例。

Slide 54-57 - CPU性能公式例题

例  考虑条件分支指令的两种不同设计方法:
1CPUA通过比较指令设置条件码然后测试条件码进行分支。
2CPUB在分支指令中包括比较过程。
在这两种CPU中条件分支指令都占用2个时钟周期而所有其他指令占用1个时钟周期。对于CPUA执行的指令中分支指令占20%由于每条分支指令之前都需要有比较指令因此比较指令也占20%。由于CPUA在分支时不需要比较因此CPUB的时钟周期时间是CPUA的1.25倍。问哪一个CPU更快

分 析
CPUA
需要两条指令完成分支,比较置条件码指令 + 分支指令。
假设完成某一功能F使用CPUA程序需100条指令
程序指令构成比较指令20条分支指令20条其他指令60条

CPUB
需要一条指令完成比较和分支
假设完成同样功能F使用CPUB程序需80条指令
程序指令构成分支指令20条其他指令60条

解 
我们不考虑所有系统问题所以可用CPU性能公式。占用2个时钟周期的分支指令占总指令的20%剩下的指令占用1个时钟周期。所以 
            CPIA = 0.2 × 2 + 0.80 × 1 = 1.2
      则CPUA性能为
            总CPU时间A = ICA × 1.2 ×时钟周期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
 同时,根据假设,有
          时钟周期B = 1.25 × 时钟周期A
因此CPUB性能为
          总CPU时间B = ICB × CPIB × 时钟周期B
                    = 0.8 ×ICA × 1.25 ×1.25 ×时钟周期A
                     = 1.25 ×ICA ×时钟周期A

在这些假设之下尽管CPUB执行指令条数较少CPUA因为有着更短的时钟周期所以比CPUB快。

Slide 58 - 摩尔定律与Dennard定律

1.5.6  摩尔定律
摩尔定律是由英特尔(lntel)名誉董事长戈登·摩尔( Gordon moore)经过长期观察总结的经验  。被称为计算机第一定律。摩尔定律是指单芯片上可容纳的晶体管数目约每隔18个月便会增加一倍性能也将提升一倍。
1.5.7  Dennard定律
晶体管面积的缩小使得其所消耗的电压以及电流会以差不多相同的比例缩小。也就是说,如果晶体管的大小减半,该晶体管的静态功耗将会降至四分之一(电压电流同时减半)。

李宏图老师原PPT第1章 概述 - 改共55张幻灯片

Slide 4 - 计算机技术发展

计算机体系结构和组织方式的发展一起促成了计算及性能以超过50%的年增长率持续增长17年1986-2003。四重效果
增强可供计算机用户使用的功能;
导致新型计算机的出现;
半导体制造业的持续发展使得基于微处理器的计算机在整个计算机设计领域中占主导地位;
对软件开发的影响。
硬件复兴结束2004—     )。
原因功耗ILP开发受限。
发展方向数据级并行DLP线程级并行TLP

Slide 5 - 并行度和并行体系结构

1.1.2 并行度和并行体系结构
20世纪60年代Michael Flynn在研究并行计算工作量时提出一种简单的分类方式至今我们仍在使用
单指令流、单数据流
Single Instruction Stream, Single  Data Stream, SISD。
单指令流、多数据流
Single Instruction Stream, Multiple  Data Stream, SIMD。
多指令流、单数据流
Multiple Instruction Stream, Single  Data Stream, MISD。
多指令流、多数据流
Multiple Instruction Stream, Multiple  Data Stream, MIMD。

Slide 6-9 - Flynn分类法详解

单指令流单数据流SISD
这个类别是单处理器;
可以使用指令级并行,如流水线、动态调度、超标量。

同一指令操纵多条数据流,由不同处理器,对多个数据项进行并行数据处理;
每个数据处理器可有自己的数据存储器,但是只有一个指令存储器和控制器;
向量体系结构GPU

每个处理器都自己取指令,并对自己的数据进行处理;
任务级并行;
紧密耦合的MIMD结构—线程级并行
松散耦合MIMD结构—集群。

多指令流单数据流, MISD
目前为止,没有此种类型的商用机;
脉动阵列。

Slide 11 - 计算机体系结构定义

1.2 计算机体系结构
狭义的定义 Amdahl的定义
指令集的设计;
需要考虑:寄存器、内存地址、访存方式、指令集的设计;
经典定义:机器语言程序员所见到的计算机的属性,即概念性结构和功能特性。
广义的定义 (《计算机体系结构-量化研究方法》中的定义)
包括计算机设计所有三个方面 -- 指令集结构,组成和硬件。

Slide 14-18 - 技术趋势详述

不可或缺的实现技术
集成电路
晶体管密度每年大约增长35%约4年翻两倍。晶片大小每年增长10%-20%。
芯片上的晶体管数目每年大约增长40%-50%。18-24个月翻倍

不可或缺的实现技术
半导体DRAM
单个DRAM芯片的容量每年增长25%-40%
2-3年翻倍

不可或缺的实现技术
半导体闪存
单个芯片每年增长50%-60%
每比特的价格约是DRAM价格的1/15~1/20。

不可或缺的实现技术
磁盘技术
磁盘密度每年提高约40%
每比特价格约是DRAM的1/300~1/500。

不可或缺的实现技术
网络技术
取决于交换机性能和传输系统的性能。
以太网为例20世纪80年代的802.3标准的10Mbit/s——2010年802.3.ba标准的40G~100Gbit/s。

Slide 19 - 带宽和延迟趋势

带宽 或 吞吐量
单位时间的工作量
处理器的带宽增长 32,000-40,000 倍
内存和磁盘的带宽增长 300-1200 倍
延迟 或 响应时间
一个事件从开始到完成所经历的时间
处理器响应时间改进 50-90 倍
内存和磁盘的响应时间改进 6-8 倍
在这些技术的发展过程中,带宽的改进要明显优于延迟。一个简单的经验法则是:带宽的增长速度至少是延迟改进速度的平方。

Slide 20 - 晶体管性能与连线发展

集成电路的制造工艺是以特征尺寸来衡量的
特征尺寸 就是一个晶体管或者一条连线在x方向或者y方向的最小尺寸。
特征尺寸1971为 10 微米, 2011年0.032微米32纳米技术2017年 0 .016微米16纳米技术。
特征尺寸下降时,晶体管性能以线性提升。
随着特征尺寸缩小,连线会变短,但是单位长度的电阻和电容都会变差。和晶体管性能相比,连线延迟方面的改进少的可怜。
晶体管的密度将以平方曲线上升。

Slide 21-22 - 功率和能耗趋势

性能   功耗   能耗
处理器需要的最大功耗。
持续功耗 -- 热设计功耗 Thermal Design Power TDP 
决定了冷却需求;
当温度接近节点温度上限时,电路降低时钟频率,从而减小功率;如果不成功,启动热过载启动装置,以降低芯片的功率。
能耗和能耗效率。

2. 微处理器内部的能耗和功率
动态能耗
时钟频率和电源电压保持不变的情况下,提高能耗效率。
关闭非活动模块
动态电压-频率调整
针对典型情景的设计
超频

Slide 23-26 - 成本趋势

时间
学习曲线——制造成本随时间的推移而降低。
学习曲线是根据成品率的变化测量的。
产量
产量的提高缩短学习曲线时间。
产量的提高增加购买与制造效率。
大众化
是指多家销售商大量出售基本相同的产品。
个人计算机行业的大部分领域已经变成大众化商品业务。

集成电路成本
成本与价格
制造成本与销售价格之间的差额缩小。
制造成本与运行成本
仓库级计算机
云计算
挖矿

Slide 28 - 性能测试

性能指标
响应时间/执行时间
吞吐率
 加速比
机器X比机器Y快 是什么意思?
 执行时间
墙上时间:  包括所有的系统开销
CPU时间:  only computation time
基准测试
程序内核 :实际应用程序中的短小、关键部分;
玩具程序为了完成编程入门作业而编写的小程序通常不超过100行如快排程序
合成基准测试程序:为了匹配实际应用程序的特征和行为编写的虚拟程序;
基准测试套件Benchmark suites ):衡量处理器处理各种应用程序的性能。

Slide 30-34 - 充分利用并行

1.5.1 充分利用并行——并行性的含义
计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。即只要在时间上相互重叠,就存在并行性。
同时性:两个或两个以上的事件在同一时刻发生。
并发性:两个或两个以上的事件在同一时间间内发生。

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

时间重叠
单处理机中  -- 部件功能专用化
多处理机中  处理机专用化

资源重复
单处理机中  -- 重复设置功能部件
多处理机中  重复设置处理机

资源共享
单处理机中  
分时系统
多处理机中
分布式系统

Slide 36 - 局部性原理

程序执行时所访问的存储器地址分布不是随机的,而是相对地簇聚。
常用的一个经验规则
程序执行时间的90%都是在执行程序中10%的代码。
程序的时间局部性
程序即将用到的信息很可能就是目前正在使用的信息。
程序的空间局部性
程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。

Slide 37 - 重点关注常见情形

对经常发生的情况采用优化方法的原则进行选择,以得到更多的总体上的改进。
优化是指分配更多的资源、达到更高的性能或者分配更多的电能等。
例如:
相对溢出,不溢出是经常性事件。针对不溢出的情况进行性能设计,无需花过多的时间和精力在解决溢出上。
处理器的取值、译码比乘法器用的更加频繁,优先优化取指令和译码部件。

Slide 38-44 - Amdahl定律

加速比  衡量系统的性能改进了多少
1.5.4  Amdahl定律
加速比 = 系统性能改进后/系统性能改进前 = 性能 = 1/执行时间  通常 大于 1

换个方式来看
总执行时间改进后 = 不可改进部分的执行时间 + 可改进部分改进后执行时间
= 不可改进部分比例 ×总执行时间改进前 + 可改进比例 ×总执行时间改进前/部件加速比

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

Amdahl定律表明加快某部件执行速度所能获得的系统性能加速比受限于该部件的执行时间占系统中总执行时间的百分比。

系统加速比为改进前与改进后总执行时间之比

例 将计算机系统中某一功能的处理速度提高到原来的20倍但该功能的处理时间仅占整个系统运行时间的40%,则采用此提高性能的方法后,能使整个系统的性能提高多少?
       解  由题可知,可改进比例 = 40% = 0.4      
                 部件加速比 = 20
           根据Amdahl定律可知
           总加速比 = 1/(0.6 + 0.4/20) = 1/(0.6 + 0.02) = 1/0.62 = 1.613
        采用此提高性能的方法后能使整个系统的性能提高到原来的1.613倍。

Amdahl定律一种性能改进的递减规则
如果仅仅对计算任务中的一部分做性能改进,则改进得越多,所得到的总体性能的提升就越有限。
重要推论:如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过 1/(1-可改进比例)

Slide 45 - 公式拓展

公式拓展
加速比 = 1 / Σ(1-Si)/P
假设:
Si为第 i 种部件的加速比;
Pi为第 i 种部件执行时间占总执行时间中的比例。

Slide 46-50 - CPU性能公式

执行一个程序所需的CPU时间
       CPU时间 = 执行程序所需的时钟周期数×时钟周期时间
其中:
执行程序所需的时钟周期数 = 每条指令执行的平均时钟周期数 CPI ×所执行的指令条数 IC
时钟周期时间是系统时钟频率的倒数

CPU时间公式也可以写为如下形式
               CPU时间 = IC ×CPI ×时钟周期时间 
       或:
                CPU时间 = IC ×CPI ×1/时钟频率)

请思考如何降低CPU时间
CPU时间 =    IC   ×   CPI    ×    时钟周期时间
指令集结构    编译技术    计算机组成    硬件实现技术
CISC → RISC
IC    CPI

对CPU性能公式进行进一步细化 
 假设计算机系统有n种指令
      CPIi 第i种指令的处理时间
      ICi 在程序中第i种指令出现的次数
  则 CPU时钟周期数 = Σ(CPIi × ICi)

CPI可以表示为
CPI = Σ(CPIi × ICi) / IC = Σ(CPIi × (ICi/IC))
其中,(ICi/IC)反映了第i种指令在程序中所占的比例。

Slide 51-53 - CPU性能公式例题

例  考虑条件分支指令的两种不同设计方法:
1CPUA通过比较指令设置条件码然后测试条件码进行分支。
2CPUB在分支指令中包括比较过程。
在这两种CPU中条件分支指令都占用2个时钟周期而所有其他指令占用1个时钟周期。对于CPUA执行的指令中分支指令占20%由于每条分支指令之前都需要有比较指令因此比较指令也占20%。由于CPUA在分支时不需要比较因此CPUB的时钟周期时间是CPUA的1.25倍。问哪一个CPU更快如果CPUB的时钟周期时间只是CPUA的1.1倍哪一个CPU更快呢

解 我们不考虑所有系统问题所以可用CPU性能公式。占用2个时钟周期的分支指令占总指令的20%剩下的指令占用1个时钟周期。所以 
            CPIA = 0.2 × 2 + 0.80 × 1 = 1.2
则CPUA性能为
            总CPU时间A = ICA × 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快。
如果CPUB的时钟周期时间仅仅是CPUA的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运行更快。

Slide 55 - 摩尔定律与Dennard定律

1.5.6  摩尔定律
摩尔定律是由英特尔(lntel)名誉董事长戈登·摩尔(Gordon moore)经过长期观察总结的经验。被称为计算机第一定律。摩尔定律是指单芯片上可容纳的晶体管数目约每隔18个月便会增加一倍性能也将提升一倍。
1.5.7  Dennard定律
晶体管面积的缩小使得其所消耗的电压以及电流会以差不多相同的比例缩小。也就是说,如果晶体管的大小减半,该晶体管的静态功耗将会降至四分之一(电压电流同时减半)。

谭婧炜佳老师原PPT第1章 概述共74张幻灯片

Slide 4 - 计算机技术发展

计算机技术的发展
第一台通用电子计算机诞生于1946年
ENIAC
占地面积约170平方米重达30吨耗电量150千瓦造价48万美元
每秒执行5000次加法或400次乘法
对比2025年11月Top500榜首美国El Capitan超级计算机
1.809 EFlop/s, (1 EFlop/s等于每秒1百京次浮点指令=10^18)

计算机技术的飞速发展得益于两个方面 
 计算机制造技术的发展
 计算机系统结构的创新

经历了4个发展过程

Slide 5 - 发展过程详解

I. 计算机体系结构和组织方式的发展一起促成了计算机性能以超过50%的年增长率持续增长17年1986-2003。
这一飞速发展带来四重效果:
1增强可供计算机用户使用的功能
2导致新型计算机的出现
3半导体制造业的持续发展使得基于微处理器的计算机在整个计算机设计领域中占主导地位
4对软件开发的影响。

II. 硬件复兴结束2004-)。
原因功耗ILP开发受限。
发展方向数据级并行DLP线程级并行TLP。

处理器性能的增长主要是半导体技术驱动。
虽然半导体技术发展迅速,但是这一阶段的飞速发展更归功于体系结构和组织思想的发展。
功耗和指令级的并行限制了单处理机的性能。2007年开始单芯片上核数每年都在增长。
性能增长在降低摩尔定律受限并行化受限Amdahl定律

Slide 6-7 - 摩尔定律

摩尔定律Moore's Law
摩尔定律是由英特尔(lntel)名誉董事长戈登·摩尔(Gordon Moore)经过长期观察总结的经验。被称为计算机第一定律。
摩尔定律: 单芯片上可容纳的晶体管数目约每隔18个月便会增加一倍性能也将提升一倍。

摩尔定律是一个指数定律它意味着在同样面积的芯片上晶体管数量将每10年增长100倍。
指数级发展使集成电路成本迅速降低,成本降低刺激新需求,生产规模增长进一步压低成本,这样的良性循环最终让集成电路走进了人类生活的方方面面,成为信息化社会的基石。

Slide 8-10 - Dennard Scaling

登纳德缩放比例定律(Dennard Scaling)
1974年 登纳德的论文 "Design of ion-implanted MOSFETS with very small physical dimensions"指出:
芯片的工作电压、电流会随着晶体管尺寸缩小而等比例缩小。
例如:如果晶体管的大小减半,该晶体管的静态功耗将会降至四分之一(电压、电流同时减半)。
芯片业发展目标:保证功耗不变尽可能提高性能。
根据登纳德缩放比例,设计者可以大大地提高芯片的时钟频率,因为提高频率所带来的更多的动态功耗会和减小的静态功耗相抵消。
于是登纳德缩放比例定律同摩尔定律一起引领了芯片行业30多年的飞速发展。因为在往同面积电路中集成更多晶体管的时候提高芯片时钟频率成为了一个"免费的午餐"。

晶体管越小,量子隧穿效应导致晶体管漏电现象开始出现。
漏电现象打破登纳德定律:晶体管更小,静态功耗不减反增,带来很大的热能转换,芯片的散热成为了急需解决的问题。
散热不好,芯片寿命减少,甚至变得不稳定。
没有解决晶体管漏电的问题之前,单纯的增加芯片的时钟频率因散热问题变得不再现实。
芯片商开始停止高频芯片的研发,转而向低频多核的架构开始研究。
2004年Intel公司宣布放弃高性能单处理器项目转向多核的研发。
2006年开始功耗墙问题导致处理器频率极限约为4GHz。

Slide 11-16 - Flynn分类法

并行度和并行体系结构
20世纪60年代Michael Flynn在研究并行计算工作量时提出一种简单的分类方式至今我们仍在使用
Flynn分类法Flynn's taxonomy
按照指令流和数据流的多倍性进行分类。
指令流:计算机执行的指令序列。
数据流:由指令流调用的数据序列。
多倍性:在系统受限的部件上,同时处于同一执行阶段的指令或数据的最大数目。

Flynn分类法把计算机系统的结构分为4类
单指令流、单数据流Single Instruction Single Data, SISD。
单指令流、多数据流Single Instruction Multiple Data, SIMD。
多指令流、单数据流Multiple Instruction Single Data, MISD。
多指令流、多数据流, Multiple Instruction Multiple Data, MIMD。

单指令流单数据流SISD
这个类别是单处理器;
可以使用指令级并行,如流水线、动态调度、超标量。
IS指令流DS数据流CS控制流CU控制部件PU处理部件MM和SM存储器。

单指令流多数据流SIMD
同一指令操纵多条数据流,由不同处理器,对多个数据项进行并行数据处理;
每个数据处理器可有自己的数据存储器,但是只有一个指令存储器和控制器;
向量体系结构GPU

多指令流多数据流MIMD
每个处理器都自己取指令,并对自己的数据进行处理;
任务级并行;
紧密耦合的MIMD结构—线程级并行
松散耦合MIMD结构—集群。

多指令流单数据流, MISD
目前为止,没有此种类型的商用机;
最接近:脉动阵列。

Slide 17 - SIMD与MISD

SIMD与MISD
SIMD: 
C[i]=A[i]+B[i]

MISD: systolic array脉动阵列
Y[i]=X[i]*W[1]+X[i+1]*W[2]+X[i+2]*W[3]…

Slide 18-22 - 脉动阵列计算

卷积计算Convolution
Given the sequence of weights {w1, w2, …, wk} and the input sequence {x1, x2, …, xn}
Compute the result sequence {y1, y2, … yn+1-k} defined by
Yi=w1xi+w2xi+1+…+wkxi+k-1
Y1=w1x1+w2x2+w3x3
Y2=w1x2+w2x3+w3x4
Y3=w1x3+w2x4+w3x5

脉动阵列计算过程 - Cycle 1-4 详细图示

Slide 25 - 计算机体系结构定义

计算机体系结构
狭义的定义 Amdahl的定义
指令集的设计;
需要考虑:寄存器、内存地址、访存方式、指令集的设计;
经典定义:机器语言程序员所见到的计算机的属性,即概念性结构和功能特性。
广义的定义 (《计算机体系结构-量化研究方法》中的定义)
包括计算机设计所有三个方面 
指令集结构
组成
硬件

Slide 26 - 指令集结构ISA

指令集结构ISA
分类:
现在几乎所有的ISA都划分为通用寄存器体系结构中
两种主流版本:寄存器-存储器如80X86载入-存储如ARM和MIPS。
存储器寻址:
字节寻址
访问对齐
寻址模式:立即寻址、寄存器寻址、偏移寻址等
操作数类型和大小
指令类型:数据传输、算逻运算、控制指令、浮点指令 等;
指令格式:固定、可变

Slide 27 - 组成和硬件

组成和硬件
组成是计算机的逻辑实现包括存储系统、存储器连接、CPU内部设计。
硬件是计算机的具体实现,包括详尽的逻辑设计和封装技术。

真正的计算机体系结构:设计满足目标和功能需求的组成和硬件。
                                                                  --- 《计算机体系结构-量化研究方法》

Slide 30 - 技术趋势

技术趋势
1. 不可或缺的实现技术
集成电路技术晶体管密度大概每年增加35%差不多每四年翻两番。晶片大小的增长速度要慢一点。两者综合起来一个芯片上的晶体管数目每年大约增长40%-55%这就是摩尔定律单位面积上的晶体管数目每18个月翻一翻。

半导体DRAM技术最近大约十年单个DRAM芯片容量每年大约增加25%-40%大约每2-3年翻一翻但是增长速度在下降。DRAM技术是主存储器的基础。

半导体闪存(电可擦写只读存储器)。个人移动设备中存储器件。近十年来,个人移动设备迅速普及,这种趋势刺激了半导体闪存容量的迅速提升。

磁盘技术磁盘技术是服务器和数据存储的核心技术。在1990年之前磁盘密度每年提高大约30%3年翻一翻。之后每年增长60%1996年的增速为100%。从2004年开始每年增长40%左右。

网络技术:取决于交换机的性能和传输系统的性能。

Slide 31 - 带宽和延迟

技术趋势
2. 性能趋势:带宽和延迟
带宽 或 吞吐量
单位时间的工作量
处理器的带宽增长 32,000-40,000 倍
内存和磁盘的带宽增长 300-1200 倍
延迟 或 响应时间
一个事件从开始到完成所经历的时间
处理器响应时间改进 50-90 倍
内存和磁盘的响应时间改进 6-8 倍

显然,在这些技术的发展过程中,带宽的改进要明显优于延迟。一个简单的经验法则是:带宽的增长速度至少是延迟改进速度的平方。

Slide 32 - 晶体管性能与连线

技术趋势
晶体管Transistors性能与连线wire的发展
集成电路的制造工艺是以特征尺寸来衡量的
特征尺寸 就是一个晶体管或者一条连线在x方向或者y方向的最小尺寸。
特征尺寸1971年为 10 微米, 2011年0.032微米32纳米技术2017年 0.016微米16纳米技术。
特征尺寸下降时,晶体管性能以线性提升。
随着特征尺寸缩小,连线会变短,但是单位长度的电阻和电容都会变差。和晶体管性能相比,连线延迟方面的改进少的可怜。
晶体管的密度将以平方曲线上升。

Slide 33-34 - 功率和能耗趋势

功率和能耗趋势
功率和能耗:系统观点
处理器需要的最大功率是多少?
持续功耗 -- 热设计功耗 Thermal Design PowerTDP 
决定了冷却需求;
当温度接近节点温度上限时,电路降低时钟频率,从而减小功率;如果不成功,启动热过载启动装置,以降低芯片的功率。
能耗和能耗效率。

功率和能耗趋势
微处理器内部的能耗和功率
动态能耗
时钟频率和电源电压保持不变的情况下,提高能耗效率。
关闭非活动模块,以节省能耗和动态功率;
动态电压-频率调整。微处理器可以提供不同工作频率。
针对典型情景的设计个人移动设备PMD、笔记本等的省电模式
超频。Intel在2008年开始提供Turbo模式在这种模式下芯片可以判定在少数几个核心上以较高的时钟频率短时间运行。

Slide 37-38 - 性能测试

性能测试
性能指标
响应时间/执行时间 -- 用户关心的
吞吐量  --  仓库级计算机的操作人员关心的
加速比
机器X比机器Y快 是什么意思?  --  执行时间是稳定、可靠的性能度量
执行时间
墙上时间:  包括所有的系统开销
CPU时间:  only computation time

基准测试
程序内核:实际应用程序中的短小、关键部分;
玩具程序为了完成编程入门作业而编写的小程序通常不超过100行如快排程序
合成基准测试程序:为了匹配实际应用程序的特征和行为编写的虚拟程序;
基准测试套件Benchmark suites衡量处理器处理各种应用程序的性能。优势在于任何一个基准测试的弱点都会因为其他基准测试的存在而变小。最常用的是SPECwww.spec.org

Slide 40-44 - 充分利用并行

充分利用并行
并行性的含义:
计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。即只要在时间上相互重叠,就存在并行性。
同时性:两个或两个以上的事件在同一时刻发生。
并发性:两个或两个以上的事件在同一时间内发生。 
提高并行性的三种途径:
时间重叠:引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
资源重复:引入空间因素,以数量取胜。通过重复设置硬件资源,大幅度地提高计算机系统的性能。
资源共享:这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。如,多道程序。

时间重叠
单处理机中  -- 部件功能专用化
多处理机中  处理机专用化

资源重复
单处理机中  -- 重复设置功能部件
多处理机中  重复设置处理机

资源共享
单处理机中  
分时系统
多处理机中
分布式系统

Slide 45 - 重点关注常见情形

重点关注常见情形
对经常发生的情况采用优化方法的原则进行选择,以得到更多的总体上的改进。
优化是指分配更多的资源、达到更高的性能或者分配更多的电能等。
例如:
与溢出相比,不溢出是经常性事件。针对不溢出的情况进行性能设计,无需花过多的时间和精力在解决溢出上。
处理器的取指、译码比乘法器用的更加频繁,优先优化取指令和译码部件。

Slide 46-53 - Amdahl定律

Amdahl定律
加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比。

系统性能加速比:
加速比=系统性能改进后/系统性能改进前=总执行时间改进前/总执行时间改进后

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

Amdahl定律 - 公式
总执行时间改进后  不可改进部分的执行时间  可改进部分改进后的执行时间
总执行时间改进后  (1可改进比例)×总执行时间改进前 + 可改进比例×总执行时间改进前/部件加速比

加速比  总执行时间改进前/总执行时间改进后
 1/[(1可改进比例) + 可改进比例/部件加速比]

例1 将计算机系统中浮点加减法的处理速度提高到原来的5倍且该功能的处理时间占整个系统运行时间的40%,则采用此提高性能的方法后,能使整个系统的性能提高多少?
    解 由题可知,可改进比例 = 40% = 0.4,部件加速比 = 5
    根据Amdahl定律可知
    总加速比 = 1/(0.6 + 0.4/5) = 1/(0.6 + 0.08) = 1/0.68 = 1.47
        采用此提高性能的方法后能使整个系统的性能提高到原来的1.47倍。

例2 将计算机系统中浮点平方根的处理速度提高到原来的40倍且该功能的处理时间占整个系统运行时间的5%,则采用此提高性能的方法后,能使整个系统的性能提高多少?
    解 由题可知,可改进比例 = 5% = 0.05,部件加速比 = 40
    根据Amdahl定律可知
    总加速比 = 1/(0.95 + 0.05/40) = 1/(0.95 + 0.00125) = 1/0.95125 = 1.05
        采用此提高性能的方法后能使整个系统的性能提高到原来的1.05倍。

例3 某计算机系统采用浮点运算部件后使浮点运算速度提高到原来的20倍而系统运行某一程序的整体性能提高到原来的5倍试计算该程序中浮点操作所占的比例。
    解 由题可知,部件加速比 = 20系统加速比 = 5
       根据Amdahl定律可知
       5 = 1/[(1-可改进比例) + 可改进比例/20]
       由此可得:可改进比例 = 84.2%  
       即程序中浮点操作所占的比例为84.2%。

Amdahl定律
一种性能改进的递减规则

如果仅仅对计算任务中的一部分做性能改进,则改进得越多,所得到的总体性能的提升就越有限。

重要推论:如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过 1/1可改进比例

Slide 54-60 - CPU性能公式

CPU性能公式
CPU性能公式: 执行一个程序所需的CPU时间
      CPU时间 = 执行程序所需的时钟周期数×时钟周期时间
其中,时钟周期时间是系统时钟频率的倒数。

每条指令执行的平均时钟周期数CPICycles Per Instruction
      CPI = 执行程序所需的时钟周期数IC
  IC所执行的指令条数
程序执行的CPU时间可以写成
      CPU时间 = IC ×CPI ×时钟周期时间

CPU的性能取决于3个参数
时钟周期时间:取决于硬件实现技术和计算机组成。
CPI取决于计算机组成和指令集结构。
IC取决于指令集结构和编译技术。

对CPU性能公式进行进一步细化 
假设计算机系统有n种指令
      CPIi 第i种指令的处理时间
      ICi 在程序中第i种指令出现的次数
则
   CPU时钟周期数 = Σ(CPIi × ICi)

CPU性能公式
CPU时间 = 执行程序所需的时钟周期数×时钟周期时间
            = Σ(CPIi×ICi)×时钟周期时间
CPI可以表示为
CPI = Σ(CPIi × ICi) / IC = Σ(CPIi × (ICi/IC))
其中,(ICi/IC)反映了第i种指令在程序中所占的比例。

CPU性能公式
例: 考虑条件分支指令的两种不同设计方法:
       1CPUA通过比较指令设置条件码然后测试条件码进行分支。
       2CPUB在分支指令中包括比较过程。
        在这两种CPU中条件分支指令都占用2个时钟周期而所有其他指令占用1个时钟周期。对于CPUA执行的指令中分支指令占20%由于每条分支指令之前都需要有比较指令因此比较指令也占20%。由于CPUA在分支时不需要比较因此CPUB的时钟周期时间是CPUA的1.25倍。问哪一个CPU更快如果CPUB的时钟周期时间只是CPUA的1.1倍哪一个CPU更快呢

解 我们不考虑所有系统问题所以可用CPU性能公式。占用2个时钟周期的分支指令占总指令的20%剩下的指令占用1个时钟周期。所以 
            CPIA = 0.2 × 2 + 0.80 × 1 = 1.2
则CPUA性能为
            总CPU时间A = ICA × 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快。

如果CPUB的时钟周期时间仅仅是CPUA的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运行更快。

Slide 61-72 - 程序的局部性原理

程序的局部性原理
程序执行时所访问的存储器地址分布不是随机的,而是相对地簇聚。
常用的一个经验规则
程序执行时间的90%都是在执行程序中10%的代码。
程序的时间局部性
程序即将用到的信息很可能就是目前正在使用的信息。
程序的空间局部性
程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。

局部性原理
可以通过一件事情的发生很好的预测其接下来的行为。

时间局部性: 重复发生一件事。
上课:同一学期多次上同一门课程

空间局部性: 一件事情的发生与今后发生的事情空间上相同或相似。
上课:周围位置的同学较固定

例子:程序局部性
j=1;
k=2;
For (i=0; i<5;i++) {
    A[i] += j;
    B[i] += k;}

数据局部性: i,A,B,j,k?
多张幻灯片展示变量i, A, B, j, k在内存中的访问模式变化