CA-量化设计的基本原则

[[CourseNotes/计算机体系结构/CA-CPU性能公式]]
大概率事件优先原则
基本思想:对于大概率事件,赋予它优先的处理权和资源使用权,以获得全局的最优结果,以达到事半功倍的效果
类似于:哈夫曼编码
比如说:CPU在进行加法的时候,运算结果无溢出为大概率事件,溢出是小概率事件,所以就针对无溢出情况来做CPU优化设计
Amdahl 定律
Amdahl定律既可以用来确定系统中对性能限制最大的组件,也可以用来计算通过改进某些部件所获得的系统性能的提高
加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性
加速比
系统加速比
$$
系统加速比 = \frac{系统性能_{改进之后}}{系统性能_{改进之前}}
$$
或者
$$
系统加速比 = \frac{总执行时间_{改进之前}}{总执行时间_{改进之后}}
$$
系统加速比
可以告诉人们 改进之后的机器比改进之前快多少
系统加速比
依赖于两个因素
- 可改进部分在原系统计算时间中所占的比例
可改进比例 $\in (0,1) \rightarrow \delta$
- 该部分改进之后的性能提高
部件加速比 $\in (1,\infty) \rightarrow \alpha$
所以总执行时间:
$T = (1-\delta) \times T_{改进前} + \frac{\delta \times T_{改进前}}{\alpha}$
所以系统加速比:
$\alpha_{系统}=\frac{1}{(1-\delta)+\frac{\delta}{\alpha}}$
程序的局部性原理
程序的局部性原理(Principle of Locality)是指在程序访问内存时,往往倾向于访问最近才使用过的数据和即将使用的数据。这个原理可以分为两个方面:时间局部性和空间局部性。
时间局部性(Temporal Locality)指的是程序中的数据项一旦被访问,很可能在不久的将来再次被访问。这意味着在程序的执行过程中,某个数据项的访问往往会连续发生,因此将该数据项保留在高速缓存中,可以显著提高程序的性能。
空间局部性(Spatial Locality)指的是程序中的数据项的访问往往是以连续的方式进行的,即如果一个数据项被访问,那么与之相邻的数据项也很可能被访问。因此,将这些连续的数据项一起加载到高速缓存中,可以提高缓存的命中率,从而减少了访问内存的时间。
在程序设计和优化中,能够充分利用局部性原理可以提高程序的性能。例如,可以通过使用数组而不是链表来提高空间局部性,因为数组中的元素在内存中是连续存储的;可以通过合理安排数据访问的顺序来提高时间局部性,避免频繁地访问不相邻的数据。
参考来源:知乎专栏:深入理解程序的局部性原理
[!hello]
- 标题: CA-量化设计的基本原则
- 作者: Molaters
- 创建于 : 2023-11-24 11:30:49
- 更新于 : 2023-11-18 13:09:05
- 链接: https://molaters.github.io/2023/11/24/计算机体系结构/CA-量化设计的基本原则/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。