CA-量化设计的基本原则

Molaters Lv5
# 量化设计的基本原则

[[CourseNotes/计算机体系结构/CA-CPU性能公式]]

大概率事件优先原则

基本思想:对于大概率事件,赋予它优先的处理权和资源使用权,以获得全局的最优结果,以达到事半功倍的效果

类似于:哈夫曼编码

比如说:CPU在进行加法的时候,运算结果无溢出为大概率事件,溢出是小概率事件,所以就针对无溢出情况来做CPU优化设计

Amdahl 定律

Amdahl定律既可以用来确定系统中对性能限制最大的组件,也可以用来计算通过改进某些部件所获得的系统性能的提高

加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性

加速比

系统加速比

$$
系统加速比 = \frac{系统性能_{改进之后}}{系统性能_{改进之前}}
$$
或者
$$
系统加速比 = \frac{总执行时间_{改进之前}}{总执行时间_{改进之后}}
$$

系统加速比 可以告诉人们 改进之后的机器比改进之前快多少

系统加速比依赖于两个因素

  1. 可改进部分在原系统计算时间中所占的比例

可改进比例 $\in (0,1) \rightarrow \delta$

  1. 该部分改进之后的性能提高

部件加速比 $\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 进行许可。
 评论