Microelectronic学习章节总结(1)-- 计算机架构复习

文章目录

  • Part1. 处理器架构,以及流水线的实现方法
  • part2 DLX架构
  • part3 ULTRA SPARC T2架构
  • part4 PENTIUM 4架构
  • part5 不同架构之间的性能比较

PPT:2,4,5,6

这一章主要对之前的计算机架构一些知识进行复习,因为目前的处理器架构大多都是流水线,因此对流水线的构成,计算机处理器基本架构和一些设计中需要注意的问题进行了比较详细的复习。同时也简单介绍了几种典型的处理器的大致结构:DLX(MIPS), ULTRA SPARC T2(RISC), PENTIUM 4(CISC)

Part1. 处理器架构,以及流水线的实现方法

这里的处理器实际上是指处理器核,一般来说市面上广义所说的“处理器”是指为当前的处理器核配置了外设SoC。这个SoC的主要组成结构如fig1所示:
Microelectronic学习章节总结(1)-- 计算机架构复习_第1张图片

fig1.处理器SoC基本结构
在处理器内核中主要由data path和control unit两部分组成。其中data path是处理器本身处理各种数据和指令的功能部件,而control unit用于控制处理器data path的运行。要设计一个处理器,换句话就是设计data path和control unit完成instruction set architecture中指令的任务。当前来说指令集主要有两种,一种是CISC,另一种是RISC指令集,RISC指令集是在CISC上进行了一些优化, 将其中不常用到的指令剔除后剩下的(保留大约20%)。由于指令集本身更小,因此设计起来也更加简单。CISC和RISC比较起来,CISC的主要优势还是在于CISC指令集提供大量的复杂操作,这样可以减少程序设计时的负担。但是目前RISC指令集的扩展能力也不差,由其在RISCV上,很多处理器在本身specification的基础上还扩展了很多其它的组合指令。因此CISC指令集的使用实际上也越来越少,唯一的理由就是与旧版本程序应用的兼容性问题,在后期,处理器指令即使是更新也不需要重写编译器来兼容新版本的指令集。当然,目前CISC指令集架构也越来越向RISC靠拢,很多变成 RISC指令集作为核心功能再套上一个指令扩展shell的形式。在这种结构下,CISC的microinstruction实际上是被翻译成了多条基本的RISC指令执行。

这里拿DLX处理器来举例,这是一个最基本的RISC架构处理器,在实际的工业生产中没有流片,但是能实现基本的一些RISC指令操作并且也具有处理器中最基本的结构。其data path实现了MIPS处理器中的5级流水线即:IF, ID, EXE, MEM, WB。在流水线运行的过程中主要有3类hazard:structure hazard, data hazard, control hazard.

  • structure hazard :由于处理器的结构资源引起的冲突,比如说memory hazard。当data和instruction在同一个memory中时由于IF和MEM阶段都要对memory进行操作但是无法同时访问将会引起这类冲突。这种冲突直接多用一些资源就可以解决。
  • data hazard:在顺序执行的过程中register或者memory中的数据会由于前后指令数据之间的dependence导致WAR,RAR,RAW三种问题。主要有三种解决方式:第一种是将EXE stage中的结果不通过后面的stage由EXE寄存器输出直接发送到ALU的输入上。如果是在MEM阶段数据冲突则需要从MEM的输出寄存器中直接发送到ALU;第二种解决方法是register renaming,这种方法解决的是寄存器或者memory由于前后数据不相关,但是使用同一个存储空间的情况。这种情况通常是在数据失效之前就对存储空间内的值进行操作导致的问题,解决方法简而言之就是让这两条指令不共用同一个寄存器,这通常是由编译器处理的。第三种方法就是使用乱序流水线,在数据结果确认之前乱序可以消除数据之间的相互依赖,只需要在确认结果的时候将数据前后写入和读取的顺序调整好即可。
  • control hazard:由于转跳指令没办法准确预测到即将转跳的PC地址而导致的流水线暂停。这一般来说是无法完全避免的。但是可以有优化的空间,即使用分支预测技术。当预测的结果和实际结果一致的时候就不需要暂停流水线。

在单流水线的基础上,我们可以进行改进使得处理器在一个周期内处理的事情更多,即超标量流水线(superscalar)技术和多发射流水线(multi-issue)技术。这两个描述的是data path上不同的部分,超标量是指流水线本身在处理器中不只一条。而多发射是指流水线在IF stage一次性发送给instruction decoder多条指令。

part2 DLX架构

这是一个最基本的5级流水线架构,Data path如图fig2所示。
Microelectronic学习章节总结(1)-- 计算机架构复习_第2张图片

fig2. DLX架构

part3 ULTRA SPARC T2架构

T2架构是一个多核架构,总共有8个内核(运行时可以同时运行8个线程),每一个内核在运行时对应了不同的instruction cache(即instruction memory)。同时对于单核下其有两个EXE unit也是超标量流水线,与此同时在IF阶段每次分别选择两个instruction buffer中的两条指令中的两个发送到decoder中解析。Microelectronic学习章节总结(1)-- 计算机架构复习_第3张图片

fig3. T2简化版data path模块拓扑

part4 PENTIUM 4架构

这是一个CISC架构的芯片,正如之前所述,其本质是一个超标量的RISC基础上套上一个解析器,将执行的microinstruction( μ \mu μops)翻译为多条RISC指令。此外其还是一个乱序执行的处理器。处理器的执行主要包括以下几个模块如fig3所示
Microelectronic学习章节总结(1)-- 计算机架构复习_第4张图片

fig4. p4指令执行模块
其中inorder front end会先将由instruction memory中取出的 $\mu$ops 按顺序排列到一个将要执行的指令队列中。然后通过out of order engine进行指令乱序调度和优化。最后经过EXE unit返回数据存储空间中(data memory/cache)。

part5 不同架构之间的性能比较

目前的市场上Arm和x86架构是嵌入式设备的主流,其中x86更加倾向高性能处理器的设计,而Arm则倾向低功耗处理器。
对于基于MIPS架构的芯片目前在军工或者航天航空这类行业中中使用得更多,在民用小型嵌入式设备上基本上已经销声匿迹。以上这些”架构“说的并不是单单指一个ISA,而是指包括ISA以外的处理器IP,从而才有了性能上比较的标准,就上述所说的Arm架构,其使用的指令集实际上是名称为Thumb和Thumb-2,这两个指令集属于RISC指令集的范畴,而上面提到的Arm架构则是指的一些处理器的实现方式,例如Cortex-MX, ArmX等等。当前越发受欢迎的是RISCV架构,主要原因是指令集的开源生态。目前在网上已经有很多实现的开源架构并且其中的一些已经流片实现了商用。

你可能感兴趣的:(microelectronic,学习,架构)