Ch1~2 导论 计算机的演变和性能¶
计算机发展简史¶
-
第一代:真空管
-
第二代:晶体管
-
第三代:集成电路
-
第三代以后:超大规模集成电路
IAS 计算机¶
- 1945 年,冯·诺依曼提出的计算机体系结构
摩尔定律¶
-
集成电路的集成度每年翻一倍,后修正为 18 个月
-
影响:
-
集成度增加的同时单芯片成本几乎不变;
-
高集成度,电路短,速度快;
-
体积、能耗、冷却需求小;
-
片外互联少,可靠性高。
-
微处理器速度¶
芯片制造技术¶
-
当代处理器内置技术:
-
流水线
-
分支预测
-
超标量执行
-
数据流分析
-
推测执行
-
性能平衡¶
-
问题 1:处理器比主存快太多
-
提高一次性读取数据位数;
-
改进 DRAM 接口(使用 cache);
-
减少主存访问频度(多级 cache);
-
提高互联带宽(更高速的总线,改进总线层次)
-
-
问题 2:频繁操作、高吞吐量的 IO 与处理器间的数据传输
-
提高 IO 设备速度;
-
减少 IO 操作频度(使用 cache);
-
改进 IO 接口(DMA);
-
改进互联结构(高速总线、改变互联结构)
-
改进芯片组成和体系结构¶
提高处理器速度的方法¶
-
提高硬件速度:缩小逻辑门尺寸,提高时钟频率(CLK)
- 但是时钟频率和逻辑密度的增加会造成:功率增加、RC 延迟增长、内存延迟和吞吐量滞后更严重
-
增加处理器与主存间高速缓存的大小和速度
-
改变体系结构:更复杂的指令执行逻辑,并行、流水线、超标量
- 上述方法收益递减,因此目前新方向是多核
计算机性能评估¶
-
时钟速度(也叫时钟频率):传统
- 缺点:不同指令需要的时钟周期不同;有流水线的处理器在相同时钟频率下执行的指令更多
-
CPI(程序每条机器指令所需的平均时间周期数):
-
通常不同类指令的 CPI 不同
-
\(I_c\):规定时间内执行的机器指令总条数
-
\(CPI_i\),\(I_i\):给定程序中 i 类指令的 CPI 和执行条数
-
\(f\):时钟频率,\(\tau=\frac{1}{f}\)
-
有:
\[ \begin{aligned} CPI&=\frac{\sum_{i=1}^{n}(CPI_i×I_i)}{I_c}\\ T&=I_c×CPI×τ \end{aligned} \]
-
-
MIPS 速率(每秒执行的百万条指令的数量):
-
\[ MIPS=\frac{I_c}{T\times 10^6}=\frac{f}{CPI\times 10^6} \]
-
注:关于 CPI 与 MIPS 计算,课本 p43 有例题
-
-
MFLOPS 速率(每秒执行的百万次浮点运算的数量):
-
是由于 CISC 相比 RISC,一条指令耗时更长但功能更多,用 MIPS 可能不合适
-
\[ MFLOPS=\frac{\text{程序中执行的浮点操作数量}}{\text{执行时间}\times 10^6} \]
-
-
SPEC 速度度量:
-
以基准程序 i 在参照系统上的运行时间作为基准程序 i 的参考运行时间 \(Tref_i\)
-
以基准程序 i 在被测系统上的运行时间作为基准程序 i 的参考运行时间 \(Tsut_i\)
-
\[ r_i=\frac{Tref_i}{Tsut_i} \]
- 是参考时间/被测时间,速度更快的机器比值更高
-
\[ r_G=(\prod_{i=1}^{n}r_i)^{\frac{1}{n}} \]
- 作几何平均,作为被测机器的 SPEC 速度度量
-
-
SPEC 频率度量:
-
测量执行多个任务的吞吐量,多个基准程序的拷贝同时执行
-
\[ r_i=\frac{N×Tref_i}{Tsut_i} \]
-
\(Tref_i\) 为基准程序 i 在参照系统上运行的时间,N 是同时执行的程序数量
-
\(Tsut_i\) 为 N 个基准程序在被测系统上从开始执行到全部完成所需时间
-
Amdahl 定律:衡量多个处理器的加速比¶
令:\(f\) 为程序中可以无限并行执行的部分,\(1-f\) 为程序中固定只能串行执行的部分,\(T\) 为程序在单处理器上的执行时间,\(N\) 为并行系统的处理器数,则:
结论:
-
\(f\) 非常小时并行处理意义不大;
-
\[ \lim_{N→∞}Speedup=\frac{1}{1-f} \]