计算机系统结构的分类
20世纪60年代,Michael Flynn提出的Flynn分类法:
单指令流、单数据流 (SISD)
每个指令部件每次仅译码一条指令,而且在执行时仅为操作部件提供一份数据。
当指令、资料处理流水化/管线化时,单指令流单数据流也可以拥有并行计算的特点。 属于指令级并行
流水线、动态调度、前瞻执行、超标量、多发射
单指令流、多数据流 (SIMD)
每条指令操纵多条数据流,属于数据级并行,距离 : 向量体系结构,GPU
多指令流、单数据流 (MISD)
流式计算 片内流式计算:脉动阵列(紧密耦合) 大数据工作流:流式集群(松散耦合)
多指令流、多数据流 (MIMD)
这个就晋升到 线程级并行(紧密耦合)和进程级(松散耦合)并行了
冯诺依曼体系结构 : 控制器 运算器 存储器 输入设备 输出设备
摩尔定律 : 集成电路上可以容纳的晶体管数目在大约每经过18个月便会增加一倍
摩尔定律是由英特尔(lntel)名誉董事长戈登·摩尔( Gordon moore)经过长期观察总结的经验 。被称为计算机第一定律。
Amdahl定律
-
加速比的计算 :
\[性能 = \frac{1}{执行时间} \tag{1} \]\[加速比 = \frac{系统性能_{改进后}}{系统性能_{改进前}} = \frac{执行时间_{改进前}}{执行时间_{改进后}} \tag{2} \]PS : 加速比是大于 1 的 , 所以在时间上是改进前 除以 改进后 在性能上 是改进后 除以 改进前
-
可改进比例与部件加速比
\[总执行时间_{改进后} = 不可改进部分的执行时间 + 可改进部分改进后执行时间 =(1 - 可改进比例) * 总执行时间_{改进前} + \frac{可改进比例 * 总执行时间_{改进前}}{部件加速比} = 总执行时间_{改进前} * [(1 - 可改进比例) + \frac{可改进比例}{部件加速比}] \]\[加速比 = \frac{1}{(1 - 可改进比例) + \frac{可改进比例}{部件加速比}} \tag{3} \]可改进比例 : 可改进部分的执行时间在总的执行时间中所占的比例。 例如 : 一个需运行60秒的程序中有20秒的运算可以加速,那么这个比例就是20/60
部件加速比 : 可改进部分改进以后,性能(\(\frac{1}{时间}\))提高的倍数。例如:若系统改进后,可改进部分的执行时间是2秒,而改进前其执行时间为5秒,则部件加速比为5/2。
-
对公式的扩展 (多个部件可加速的加速比计算公式)
\(S_i\) 是第 i 中部件的加速比
\(P_i\) 是第 i 中部件执行时间占总执行时间中的比例
\[加速比 = \frac{1}{(1 - \sum Pi) + \sum \frac{P_i}{S_i} } \]
Amdahl定律表明:
加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比
Amdahl定律 : 一种性能改进的递减规则
a. 如果仅仅对计算任务中的一部分做性能改进,则改进的越多,得到的总体性能的提升就越有限
b. Amdahl定律的重要推论
由公式 \((3)\) 可以推得 如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过 $$\frac{1}{(1 - 可改进比例)}$$
CPU性能公式
CPI 每条指令执行的平均时钟周期数 CI 指令条数