文章目录

  • 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所示:

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所示。

fig2. DLX架构

part3 ULTRA SPARC T2架构

T2架构是一个多核架构,总共有8个内核(运行时可以同时运行8个线程),每一个内核在运行时对应了不同的instruction cache(即instruction memory)。同时对于单核下其有两个EXE unit也是超标量流水线,与此同时在IF阶段每次分别选择两个instruction buffer中的两条指令中的两个发送到decoder中解析。

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

part4 PENTIUM 4架构

这是一个CISC架构的芯片,正如之前所述,其本质是一个超标量的RISC基础上套上一个解析器,将执行的microinstruction( μ \mu μops)翻译为多条RISC指令。此外其还是一个乱序执行的处理器。处理器的执行主要包括以下几个模块如fig3所示

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学习章节总结(1)-- 计算机架构复习相关推荐

  1. 23计算机考研复习规划和经验分享

    23计算机考研复习已经拉开序幕啦!! 23计算机考研复习,看这一篇就够了!全文共 18155字,历时两周时间整理!! 干货满满,建议点赞+收藏,方便以后查看!希望你能认真看完这篇文章,从而找到最适合自 ...

  2. 两大图灵奖得主力作:计算机架构的新黄金时代

    来源|Communications of ACM 撰文|John L. Hennessy, David A. Patterson 编译|机器之心 原文|https://cacm.acm.org/mag ...

  3. 图灵奖得主长文报告:是什么开启了计算机架构的新黄金十年?

    文 | 杨晓凡 任然 包永刚 来自雷锋网(leiphone-sz)的报道 雷锋网按:近几年来,不论是普通消费者还是科研人员们都可以感受到两种浪潮,一种是CPU速度的提升越来越不显著了,我们说CPU制造 ...

  4. 计算机系统结构复习:课程思维导图

    计算机系统结构:全课程思维导图 前言 课程思维导图 课程脉络: 链接 前言 DUT的计算机系统结构长期以来都是英文ppt.时值疫情期间,复习时稍有不便,再加上CA的内容本身比较琐碎.遂在此对知识进行一 ...

  5. 2019计算机考研百度云,2019计算机考研复习时间表(全年版)

    准备期.基础期.强化期和冲刺期,每个阶段都有要做的事情,小编写的很详细哟,大家好好看看吧~小编还为大家精心准备了计算机考研复习资料还有计算机考研报考指导助力你的考研路哦! 1准备期(还未准备的现在开始 ...

  6. 清华学霸计算机,2016计算机考研复习:清华学霸高分经验谈

    在一定程度上,我能够同意这样一个观点:天赋决定上限,努力决定下限.很多人连他的上限都差很远就开始抱怨自己天赋不够,事实上,再牛的天赋也要经过努力来表现出来.也只有真正努力过的人才有资格抱怨天赋的问题, ...

  7. 计算机考研专业课复习资料,考研计算机专业课复习重点归纳

    考研计算机专业课复习重点归纳中国大学网考研:一.数据结构的章节结构及重点构成 数据结构学科的章节划分基本上为:概论,线性表,栈和队列,串,多维数组和广义表,树和二叉树,图,查找,内排,外排,文件,动态 ...

  8. 大三阶段怎么准备计算机考研,计算机考研复习阶段的建议

    计算机考研复习阶段的建议 我们在进入计算机考研的复习阶段时,可以多听听过来人的建议.小编为大家精心准备了计算机考研复习阶段的指南,欢迎大家前来阅读. 计算机考研复习阶段的指导 一.专业课复习特点 计算 ...

  9. 结构分析的计算机方法有哪些,计算机考研复习的思路分析

    考生们在准备计算机的考研复习时,需要了解清楚它的做题思路是什么.小编为大家精心准备了计算机考研复习的思路解析,欢迎大家前来阅读. 计算机考研复习的思路解读 1."数据结构"复习思路 ...

最新文章

  1. undefined symbol: ap_log_rerror;apache2.4与weblogic点so文件
  2. 关于CI的服务器与最佳实践,这里有一些思考
  3. 快速傅里叶变换(FFT)算法【详解】
  4. java 18.9_Oracle: Java 11 (18.9 LTS) 正式上线!
  5. Vue源码: 关于vm.$watch()内部原理
  6. Sharepoint页面里添加.net托管代码
  7. Android系统架构图
  8. 为什么Spring需要三级缓存解决循环依赖,而不是二级缓存?
  9. [BZOJ3781]小B的询问
  10. [Matlab]求解线性方程组
  11. OpenCV将单通道的Mat转换为三通道的Mat
  12. 51nod 1478 括号序列最长合法子段
  13. js 查看是否为空值
  14. java8 function 多线程安全_Java8新特性_传统时间格式化的线程安全问题
  15. 挑战程序设计竞赛学习笔记2
  16. oracle驱动ojdbc6的下载安装
  17. 【数学建模】2 TOPSIS优劣解距离法
  18. js逆向——百度翻译
  19. 【图解线性代数】第一章——线性代数的几何意义导读(思维导图)
  20. verilog移位、取绝对值

热门文章

  1. 如何在YesDev,多团队协作程序员客栈的整包项目?
  2. 现在做网站到底需要多少钱?
  3. idea翻译插件Translation Tkk错误
  4. 微信浏览器 MP4播放失败,安卓下微信浏览器不能播放MP4问题的解决,gzip捣的鬼
  5. 服务器CPU跑满了怎么办
  6. 通过LIO工具 挂载共享 rbd 块设备
  7. U盘安装Win7操作系统
  8. iOS内购-iap-In-App Purchases-开发及注意事项
  9. 安徽省《市民一卡通服务通则》
  10. 提高员工执行力,提高项目执行力,提升企业执行力