中国科学院大学_计算机体系结构_胡伟武|汪文祥_第二章
计算机体系结构
胡伟武老师下的定义:计算机体系结构是一门研究计算机软硬件之间的关系的学问。需要“上知天文,下知地理”
什么是计算机?
计算机是人们为了满足各种不同的计算需求而设计的自动化设备。大到一个大屋子放不下,小到电饭煲上的控制模块,这些都是计算机,都是计算机体系结构的研究范围。
计算机的基本组成
冯诺依曼结构:运算器、控制器、存储器、输入和输出五个部分,但是这不是最核心的东西。现代CPU实际上集成了运算器和控制器,也有很多基于冯诺依曼结构的衍生/变种结构,比如哈弗架构。但是其实,冯诺依曼结构最核心的本质是:存储程序。
衡量计算机的指标
有三个:性能、价格和功耗。
性能评价
性能评价的标准
从体系结构来看,常用的评价指标叫MIPS(Million Instruction Per Second),即每秒执行多少条指令。这看起来是一个很合理的指标,但是一条指令能干多少事没讲清楚。如果两台机器使用同一个ISA,跑同样的指令,那么这个指标是有意义的。类似的指标还有MFLOPS(Million Float-point Operations Per Second)。
考点:计算MIPS,根据定义,就是每秒执行多少百万条指令,要记得M是$10^6$.
从逻辑和电路设计角度看,主频就是性能。
不同的角度有不同的性能评价指标,没法评价哪个更好,因此要评价就要有一个大家信服的标准。“是骡子是马,拉出来遛遛”,基于这样的思想,就要建立一系列的基准程序来衡量哪个处理器运算的快,以此作为公认的性能评价标准。基准程序要有足够的代表性、权威性和公开性。SPEC是评价通用CPU的一个基准程序集。
影响性能的因素
《计算机体系结构》一书中,把“完成一个任务所需要的时间”作为性能的最本质的定义。
计算公式如下:
\[CPUTime = \frac{Seconds}{Program} = \frac{Instructions}{Program} \times \frac{Cycles}{Instruction} \times \frac{Seconds}{Cycle}\]影响性能的因素主要有以下几点:
- 算法
- 编译器
- 指令系统
- 微结构:IPC(Instructions Per Cycle)
- 主频
优化性能的方法
在指令系统确定后,系统架构设计者的主要目标就是降低CPI或者提高IPC。
\[CPUTime = Cycle Time \times \sum_{j=1}^{n} CPI_j \times I_j = CycleTime \times CPI \times Instruction Count\]Amdahl定律(可自己推导):
\[ExTime_{new} = ExTime_{old} \times [(1 - Fraction_{enhanced}) + \frac{Fraction_{enhanced}}{Speedup_{enhanced}}]\] \[Speedup_{overall} = \frac{ExTime_{old}}{ExTime_{new}} = \frac{1}{(1 - Fraction_{enhanced}) + \frac{Fraction_{enhanced}}{Speedup_{enhanced}}}\]成本评价
考点:计算芯片成本,记住以下公式,可参考课后例题:
\[芯片成本 = (晶片成本 + 测试成本 + 封装成本) / 最终成片率\] \[晶片成本 = 晶圆成本 / (每片晶圆的晶片数 \times 晶片成本率)\] \[晶片成品率 = (1 + b \times 晶片面积 / a) ^ {-a}\]a是衡量工艺复杂度的参数, b是单位面积的缺陷数, a可为4, b可为0.4~0.8个/cm^2, 题目会给。
\[每个晶圆的晶片数 = (晶圆面积/晶片面积) - (晶圆的周长 / (2 \times 晶片面积)^{1/2})\]功耗计算
考点:计算功耗,要记住以下公式,可参考课后题:
\[P_{total} = P_{switch} + P_{short} + P_{leakage}\]意思是总功耗等于动态切换时的功耗加上短路功耗加上漏电功耗
\[P_{switch} = C_{out}V_{dd}^2f_{clk}/2\]