Chapter1
提升性能:
- 处理速度
- 传输速率
- 存储容量与速率
1.2 Performance
影响性能的因素:
- Architecture 架构怎么设计
- 架构的硬件实现
- 架构的编译器
- 操作系统
评估性能
- 对于单个的用户:减少响应时间
- 对于大数据的处理:关注吞吐量最大化
响应时间与吞吐量
- 响应时间:用户发出请求到收到响应的时间,评估了完成任务的速度
- 吞吐量(带宽):给定时间内做的所有工作量
二者受到以下因素的影响:
- 用更快的处理器替换计算机中的处理器。
- 增加更多的处理器?
性能
性能与执行时间成反比。
\(performance = \frac{1}{execution\ time_x}\)
faster than ...就是说执行时间是多少多少倍。

那什么是执行时间呢?
- Elapsed time:从开始到结束的时间,包括阻塞时间(all aspects)。
-
CPU time:CPU实际运行的时间,不包括阻塞时间(即排除I/O时间和其他任务的时间占用)。
-
包括用户CPU时间和系统CPU时间
- 用户CPU时间:程序本身所消耗的CPU时间
- 系统CPU时间:操作系统为程序执行任务时所消耗的CPU时间
-
The main goal of architectural design is to improve the performance of the system.
1.3 Technology trend
硬件实现的比例越来越高,且硬件成本大幅降低。
对于具有相同功能的计算机系统,软件和硬件功能的比例可以在一定范围内进行调整。
计算机体系结构的改进
- 输入/输出的改进
- 内存组织结构的发展
-
联想存储器与相关处理器
- 通用寄存器组
- 缓存
-
指令集发展的两种方向:
- CISC(复杂指令集计算机)
- RISC(精简指令集计算机)
-
并行处理技术
- 如何在传统机器中发展并行性?
- 在不同层次上发展并行技术。
- 例如:微操作级、指令级、线程级、进程级、任务级等。

1.4 CPU performance
Measuring Data Size

- bit
- niblle (4 bits)
- byte
- word (4 bytes / 32 bits)
- kibibyte (1024 bytes) KB
- mebibyte (1024 kibibytes) MB
- gibibyte (1024 mebibytes) GB
- tebibyte (1024 gibibytes) TB
- pebibyte (1024 tebibytes) PB
CPU Performance
\(CPU\ Execution\ Time = \frac{CPU\ Clock\ Cycle}{Clock\ Rate} = CPU\ Clock\ Cycle * Clock\ Period\)


\(CPI = \frac{CPU\ Clock\ Cycle}{Instruction\ Counts}\)
so我们有:
\(CPU\ Execution\ Time = CPI * Instruction\ Counts * Clock\ Period\)

性能依赖于以下因素:
- 算法:影响指令计数(IC),可能影响每指令时钟周期(CPI)。
- 编程语言:影响指令计数(IC),可能影响每指令时钟周期(CPI)。
- 编译器:影响指令计数(IC),可能影响每指令时钟周期(CPI)。
- 指令集架构(ISA):影响指令计数(IC)、每指令时钟周期(CPI)和时钟周期时间(Tc)
Amdahl's law:
使用某种更快的执行模式所带来的性能提升是有限的,受限于更快模式可被利用的时间比例。
依赖于以下两个因素:
- 可利用时间的比例:增强功能能够被利用的时间占总执行时间的比例。
- 增强带来的改进:在可利用的时间段内,增强所带来的性能改进
\(Improved\ Execution\ Time = \frac{Affected\ Execution\ Time}{Amount\ of\ Improvement} + Unaffected\ Execution\ Time\)


\(Speendup_{overall} = \frac{1}{(1-Fraction_{enhanced}) + \frac{Fraction_{enhanced}}{Speedup_{enhanced}}}\)
-
改进比例:在改进之前的系统中,改进部分的执行时间与总执行时间的比例。
- 这个比例总是小于或等于1。
- 例如:一个程序需要运行60秒,其中20秒的计算可以加速, 则比例为 \(\frac{20}{60}\)
-
组件加速比:某个改进后的加速倍数。它是改进前执行时间与改进后执行时间的比值
-
通常情况下,组件加速比大于1。
- 例如:如果系统经过改进,改进部分的执行时间为2秒,在改进前其执行时间为5秒,则组件加速比为 \(\frac{5}{2} = 2.5\)。



因为对于可改变的部分,其改变不足以将该部分的时间变为0(即速率不可能无穷大)
1.6 ISA
Instruction Set Architecture:指令集架构
指令集就是给定机器所有可能指令的集合。