计算机体系结构之一量化设计和分析的基础

1.体系结构发展历史

image.png

image.png

image.png

体系结构发展历史

  • 1985年以前,CISC 位级并行(bit level parallelism) :(4-8-16位)
  • 80年代中期到90年代后期,主要指令级并行(Instruction level parallelism)
    • RISC,流水线 ==>挖掘指令级并行
    • cache,功能部件
    • 乱序执行和预测执行
  • 现状,线程级并行和多处理器

从CISC 到 RISC

  • 使用简单的ISA
    指令像微指令一样简单;
    能采用流水线方式实现;
    编译生成的指令只是部分CISC指令;
  • 使用指令cache

PC时代
硬件将x86指令转换成RISC指令;
在MPU中使用RISC技术;
X86在桌面和服务器市场占据主导地位;
350M/年

后PC时代:客户端/云

  • Soc中的处理器 vs MPU
  • 芯片面积,能耗,和性能同等重要;
  • 99% 处理器是RISC
  • 多于20B /年 2017
    x86在2011年达到顶峰,现在每年下降约8%

影响体系结构发展的主要因素

  • 集成电路方面
    -Moore 定律的放缓:晶体管的集成度提升放缓;


    image.png

    -Dennard 缩放定律的终结:功耗成为关键制约因素


    image.png
  • 体系结构方面
    -指令级并行方面的性能提升,04年结束了单处理器时代;
    -Amdahl定律暗示了简单多核时代的结束

2.计算机架构的八大great ideas

2.1 Great idea

  • 1)Moore 定律
  • 2)通过抽象来简化设计
  • 3)让常见的情况更快
  • 4)通过并行提升性能
  • 5)通过流水线提升性能
  • 6)通过预测提升性能
  • 7)存储层级
  • 8)通过冗余设计提升可靠性

2.2 Moore 定律

  • 1965年,自从发明集成电路,晶体管单位面积的数量每年翻倍,并且这种趋势会持续;1975年,修改为电路复杂度每两年翻倍;
  • 晶体管越来越多 == 更大可能利用多的晶体管来提升指令级并行(ILP);
    流水线(Pipeline),单指令多数据指令(SIMD),超标量(superscalar), 超长指令(VLIW), branch prediction
  • 通用路径的缩放;
    -更长的流水线
    -更多更大的register 和cache
  • 增加电路的密度 ~= 增加frequency ~= 增加性能;
  • 对用户透明;
    很容易得到更好的性能:买更快的处理器

2.3 让常见的情况更快(Make the common case faster)

  • 在进行设计时,重点优化常发生的情况
  • 优化不经常执行的代码意义不大
  • 选择一个性能度量方式来确定经常性情况(common case)

2.4 通过冗余设计提升可靠性

  • 通过冗余部分,使得部分部件失效不影响整个系统的运行


    image.png

2.5 存储层级

image.png

处理器与memory 之间性能gap


image.png

局部性原理

  • 在任何时间,程序访问相对小的部分的地址空间
  • 两种不同的局部性
    • 时间局部性:若引用一个item,那往往会再次引用同一个item。(循环)
    • 空间局部性:若引用了一个item, 那往往很快会访问它附近的item。(比如:数组访问)
  • 过去30年,HW 处于速度考虑依赖局部性

2.6 通过流水线设计提升性能

  • 指令的基本执行生命周期


    image.png
  • 流水线的指令执行生命周期


    image.png

2.7 通过并行提升性能

image.png

2.8 通过抽象来简化设计

  • 程序的层级抽象


    image.png
  • 内存的抽象
    • {变量名字,取值} 关联起来: int a = b
    • 写操作绑定一个值到一个地址;左值
    • 读地址返回最近写到这个地址的值;右值
    • 底层硬件操作


      image.png

3 技术趋势

IC

  • 特征尺寸(feature size)不断减小,芯片集成度不断增高
  • 三极管密度:35%/year 增长
  • die 尺寸:10-20%/year 增长
  • 总体效果:40-55%/year 增长
  • 定律:Moore 定律,Dennard 缩放定律

DRAM 容量:25-40%/year 增长

FLASH

  • 容量:50-60%/year,翻倍/2 year
  • 比DRAM 要8-10X 便宜/bit

磁盘

  • 容量:40%/year 增长
  • 比Flash 要8-10X 便宜/bit
  • 比DRAM 要200-300X 便宜/bit

性能趋势:带宽胜于latency

image.png

  • 带宽(bandwidth)或者 吞吐量(throughput)

    • 给定时间总的完成的量;
    • 第一个里程碑处理器带宽10,000-25,000倍的提升
    • 第一个里程碑内存和磁盘带宽300-1200倍的提升
  • 延迟(latency)或者响应时间(response time)

    • 一个事件从开始到完成的时间间隔;
    • 第一个里程碑,处理器30-80倍latency 的提升;
    • 第一个里程碑,和磁盘带宽6-8倍的提升

晶体管性能与连线的发展

  • 特征尺寸
    • 晶体管在x或y 方向的最小尺寸
    • 1971年10 微米(um) 下降到2011年0.016微米
    • 晶体管性能线性扩展;
    • 集成密度以二次方扩展;
    • 性能线性扩张和密度二次方扩展呈现了挑战和机遇

4 计算机设计量化原理

充分利用并行

  • 系统级并行
    • workload 的处理请求分散到多个处理器和多个存储设备
    • 为了并行读写,数据分散到多个存储设备能enable 数据级并行;
  • 处理器级并行
    • 指令间的并行(ILP)
      如流水线,基本思想是多个指令重叠执行,以缩短完成指令序列的总时间;流水线实现的关键是意识到指令之间完全有可能并行或部分并行的执行

局部性原理

  • 程序的局部性原理:程序常常重复使用它们最近用过的数据和指令;
  • 经验规律:一个程序90%的时间花费在仅仅10%的代码中。
  • 局部性原理适用于数据访问,不够没有代码访问那样明显

重点关注常见情况

  • 权衡设计时,常见情形优先于非常见情形,改进效果更大。
  • 对于功耗,资源分配和性能,这一原则同样有效。
    处理器的取指与译码使用比乘法器要频繁得多,应优先优化
  • 对于可靠性,同样适用。

Amdahl定律

image.png

image.png

image.png

并行Amdahl 定律


image.png
  • 通过并行,改进的部分的比例是F;
    -N个处理器,F的加速比例是N;
  • 总体加速度


    image.png
  • 加速度上限(N-> ∞): S(N) <= 1/(1-F)
    -(1-F): 程序的串行处理部分比例
    当F= 95%,MaxSpeedup = 20;
    当F =90%, MaxSpeedup = 10;
    当F = 75%, MaxSpeedup = 4;
    当F = 50%, MaxSpeedup = 2;
    image.png
image.png

处理器性能公式

image.png

不同类型指令,CPI 不同。
image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容