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

news2024/11/28 16:35:03

文章目录

  • 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

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中解析。

part4 PENTIUM 4架构

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

fig3. 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架构,主要原因是指令集的开源生态。目前在网上已经有很多实现的开源架构并且其中的一些已经流片实现了商用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/474372.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字中国建设峰会|大模型带来产业智能化新机遇

第六届数字中国建设峰会在福建省福州市举办。峰会期间,百度与福州市政府签署战略协议,将基于文心一言为代表的大模型和百度智能云通用AI能力深入合作。未来,双方将聚焦算力产业,共建百度智能云(福州)智算中…

移动推车定位查找方案

CK_Label_v24 产品型号 CK_Label_v24 尺寸 124x90x12mm(不含安装支架) 屏幕尺寸 4.2 inch 显示技术 电子墨水屏显示 显示区域面积 (mm) 84.8(H) x 63.6(V) 分辨率 400*300 像素密度 120dpi 显示颜色 黑/白 外观颜色 白色&灰外圏…

Mozilla 自身是如何模糊 Firefox 浏览器的?

导语:Mozilla一直在模糊Firefox及其底层组件,它已被证明是识别质量和安全漏洞的最有效方法之一。 Mozilla一直在模糊Firefox及其底层组件,它已被证明是识别质量和安全漏洞的最有效方法之一。通常,研究人员会在不同级别上应用模糊测…

二叉树的遍历及相关衍生

二叉树的遍历及相关衍生 前言二叉树的遍历建树二叉树的遍历遍历的分类代码部分 遍历根的应用打印树中的每个数据代码部分 遍历计算树节点个数代码部分 计算二叉树的深度思路代码部分 第k层个数 结束 前言 如标题所示,在这里我们要研究的是二叉树的遍历。 为什么不…

java获取星期几

如果你要问 java什么时候学习比较好,那么答案肯定是 java的星期几。 在 Java中,你可以使用 public static void main ()方法来获取一个类的所有成员变量,然后在所有类中调用这个方法来获取对象的所有成员变量。它能以对…

MCSM面板一键搭建我的世界服务器-外网远程联机【内网穿透】

文章目录 前言1.Mcsmanager安装2.创建Minecraft服务器3.本地测试联机4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射内网端口 5.远程联机测试6. 配置固定远程联机端口地址6.1 保留一个固定TCP地址6.2 配置固定TCP地址 7. 使用固定公网地址远程联机 转载自远程穿透文章&…

【C++】模拟实现map和set

1.关联式容器 关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是结构的 键值对,在数据检索时比序列式容器效率更高。 2 .键值对 用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和val…

2023-04-16 学习记录--C/C++-邂逅C/C++(上)

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、固定格式 ⭐️ stdio的理解: abbr.标准输入输出&#xff08;standard input/output&#xff09;。 #include <stdio.h>…

【LeetCode:72. 编辑距离 | 暴力递归=>记忆化搜索=>动态规划 】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【Linux篇】Shell脚本语法

前言 在安卓源码里&#xff0c;离不开两个东西&#xff0c;一个就是.sh文件&#xff0c;还有一个就是.mk文件。 这两个文件各持有一个语法&#xff0c;一个是Makefile语法&#xff0c;一个是Shell脚本语法。 这两个是真的让我头疼&#xff0c;就像看天书一样&#xff0c;呜呜…

Mysql为json字段创建索引的两种方式

目录 一、前言二、通过虚拟列添加索引&#xff08;Secondary Indexes and Generated Columns&#xff09;三、多值索引&#xff08;Using multi-valued Indexes&#xff09;四、官网地址 一、前言 JSON 数据类型是在mysql5.7版本后新增的&#xff0c;同 TEXT&#xff0c;BLOB …

国内首款多节点/无需密钥/无需登录的ChatGPT客户端开源项目

在这个AI浪潮推动下&#xff0c;涌现了一大批“参差不齐”的GPT产品&#xff0c;有的一直在更新迭代&#xff0c;有的不断升级乃至付费订阅&#xff0c;有的中途停止运营。在这个AI产品也需要优胜劣汰的时代下&#xff0c;谁能够“谁主沉浮&#xff0c;且看今朝&#xff01;”&…

Ansible的基础了解

目录 第一章.Ansible概述 1.1.Ansible是什么 1.2.Ansible的特性和过程 1.3.ansible 具有如下特点&#xff1a; 1.4.Ansible的四个组件 1.5.ansible 核心程序 1.6.ansible执行的过程 第二章.Ansible 环境安装部署 2.1.实验环境&#xff0c;安装部署 第三章.ansible 命…

BLE调制与解调的一些东西

BLE调制 BLE是GFSK的IQ调制 IQ调制 所谓IQ调制&#xff0c;就是利用IQ两个分量序列去控制两路正交信号&#xff0c;I和Q两个序列可以是任意数字&#xff0c;也可以是符合某些规律的序列。 总的原理公式就是&#xff1a; cos(ab)cos(a)cos(b)-sin(a)sin(b) Acos(b)-Bsin(b)M…

音视频 FFmpeg

文章目录 前言视频编解码硬件解码(高级)软解码(低级)软、硬解码对比视频解码有四个步骤Android 系统中编解码器的命名方式查看当前设备支持的硬解码 基础知识RGB色彩空间常见的格式对比YUV索引格式分离RGB24像素数据中的R、G、B分量 BMP 文件格式格式组成像素排列顺序RGB24格式…

双指针技巧总结

一、双指针技巧——情景1 通常&#xff0c;我们只需要一个指针进行迭代&#xff0c;即从数组中的第一个元素开始&#xff0c;最后一个元素结束。然而&#xff0c;有时我们会使用两个指针进行迭代。 双指针的典型场景 (1)从两端向中间迭代数组。 (2)一个指针从头部开始&#…

Spark RDD (Resilient Distributed Datasets) 弹性分布式数据集

设计需求 Spark RDD 的设计目的是为了实现快速、可扩展和容错的数据处理。它是一个不可变的分布式数据集&#xff0c;可以在集群中分布式存储和处理数据。RDD 提供了一系列操作来处理数据&#xff0c;包括转换操作和行动操作。转换操作可以将一个 RDD 转换为另一个 RDD&#x…

Arduino学习笔记4

一.声控灯实验 1.源代码 int led2;//定义板子上数字2口控制小灯 int flag0;//定义一个变量记录小灯是亮起还是熄灭 int shengyin3;//定义声音传感器的控制口void setup() {pinMode(led,OUTPUT);//定义小灯为输出模式pinMode(shengyin,INPUT);//定义声音控制口为输入模式 } vo…

python+Django社区疫情防控系统 uniapp微信小程序

随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&#xf…