中央处理器CPU(2)---流水CPU与RISC

news2024/11/17 15:45:21

 1.流水CPU

(一看到这个就想起老家的流水席了,不知道各位吃过没。)

🌈1.1并行处理技术

对于计算机来说不论如何发展,最重要的一个追求目标就是很高的运算速度,冯诺依曼机是,现代计算机依然是,所以就不得不提及并行处理技术

早期冯诺依曼机采用串行处理,即任意时刻只能进行一个操作,并行是使得以上各个操作能同时进行,从而大大提高计算机的运行速度。

并行的两种含义:

  • 1)同时性:两个以上事物在同一时刻发生。
  • 2)并发性:两个以上事物在同一时间间隔内发生。

所以并行有三种形式:空间并行时间并行时空并行

  • 时间并行:让多个处理过程在时间上相互错开,轮流重叠的使用同一设备的各个部分,以加快硬件周转而赢得速度。
  • 空间并行:是指在计算或处理过程中,同时使用多个处理单元或资源来执行并行计算或处理任务的能力。它是一种并行计算的形式,其中不同的处理单元同时处理不同的数据或任务,以提高计算或处理的效率和性能。
  • 时空并行:指时间和资源重复的综合应用,同时利用上面两种,达到性能上的最高利用率。(这种技术的高速效益最好。)

而流水线CPU的设计就是根据上面的观点来设计的。

🌈1.2流水线CPU概念 

流水线CPU(Pipeline CPU)是一种计算机中央处理器(CPU)的设计和实现方式,旨在提高指令执行的效率和吞吐量。它将指令执行过程划分为多个阶段,并允许在同一时钟周期内同时执行多个指令的不同阶段。

例如去洗车我发现洗车流程是这样的:喷水、打泡沫、刷洗、擦拭、吹干。

(此图是我在隔壁某乎上借鉴的,比较形象)。

就这样一个工序完成后,车辆向下一个工序移动,当前工序又补进来一辆车。

同理流水线CPU就是按照这个思路来做事!!!

  • 在流水线CPU中,指令执行过程被划分为多个独立的阶段,通常包括取指(Instruction Fetch)、译码(Instruction Decode)、执行(Execution)、访存(Memory Access)和写回(Write Back)等阶段。每个阶段负责完成特定的操作,而不同的指令则依次经过这些阶段进行处理。
  • 流水线CPU中的每个阶段都有自己的专用硬件单元,这些单元可以并行地执行不同的指令。当一条指令进入流水线后,该指令的不同阶段会依次占用不同的硬件单元,形成一个流水线流程。这样,多条指令可以同时处于不同的阶段,从而提高指令执行的并行性和效率。
  • 通过流水线技术,CPU可以在同一时钟周期内同时处理多条指令的不同阶段,从而实现指令级并行和提高吞吐量。

🌈1.3流水CPU的时空图

对于流水CPU,只需拿出三张图就可以让你对他爱的更深!

🌈1.4流水CPU的四个过程

在流水线CPU中,通常将指令执行过程划分为四个主要阶段,分别是指令获取(Instruction Fetch,IF)、指令译码(Instruction Decode,ID)、执行(Execution,EX)和写回(Write Back,WB)。(看看就行,考场就忘了)

下面是对每个阶段的简要描述:

  1. 指令获取(IF):在这个阶段,流水线从指令存储器(Instruction Memory)中获取下一条要执行的指令,并将其送入流水线。这个阶段通常包括指令地址计算、内存访问和指令缓存等操作。

  2. 指令译码(ID):在这个阶段,取出的指令被解码并分析其操作码和操作数。该阶段还包括寄存器文件(Register File)的读取,以获取指令所需的操作数。此外,还可能进行分支预测和处理异常等操作。

  3. 执行(EX):在这个阶段,使用译码阶段提供的操作数执行指令的实际计算或操作。这个阶段的具体操作取决于指令的类型,例如算术运算、逻辑运算、内存访问或条件分支等。执行阶段可能涉及ALU(算术逻辑单元)、乘法器、除法器和浮点运算单元等硬件。

  4. 写回(WB):在这个阶段,执行阶段的结果被写回到寄存器文件或内存中,以完成指令的执行。这个阶段通常涉及将计算结果写入目标寄存器或内存位置,并更新相应的状态信息。

👿1.非流水时空图

 👿2.流水时空图

👿3.超流水时空图

 

 超流水CPU比流水CPU功能更加厉害为啥不选这个?

答案很明确:你一天学10小时,没学够;学18个小时,正好,还有点意犹未尽;学23个小时学的挺多但是效果减半,还有可能直接猝死。

超流水(Superpipelining)是一种进一步细分流水线阶段的技术,旨在进一步提高流水线CPU的执行效率和吞吐量。在超流水设计中,CPU的流水线阶段数量更多,每个阶段的操作更细粒度,允许更快的时钟周期和更高的指令吞吐量。

尽管超流水技术在理论上可以进一步提高流水线CPU的性能,但在实践中并不常见,并且不被广泛推荐使用,主要有以下原因:

  1. 数据冒险和控制冒险的风险增加:随着流水线阶段的增加,指令在流水线中的停顿和冲突的可能性也增加。数据冒险和控制冒险是流水线中常见的问题,在超流水设计中更容易发生。这些冒险会导致流水线停顿,降低吞吐量和性能。

  2. 硬件复杂性增加:超流水设计需要更多的流水线阶段和更细粒度的操作,这会导致更多的硬件资源和更复杂的控制逻辑。这增加了设计、验证和实现的复杂性,可能导致更高的成本和更长的开发周期。

  3. 时钟频率限制:随着流水线阶段的增加,每个阶段的操作时间必须缩短,以保持整个指令流水线的时钟周期不变。然而,更短的操作时间可能受到物理限制和电路延迟的限制,导致时钟频率的限制。这可能抵消了超流水设计带来的性能增益。

所以说别卷了,洗洗睡吧!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

🌈1.5 流水线中的问题

要使流水线具有良好的性能,必须使流水线畅通流动,不发生断流。但由于流水过程中会出现以下三种相关冲突,实现流水线的不断流是非常困难的。这三种是:资源相关数据相关控制相关

  1. 资源相关(Resource Hazards),也称为结构相关(Structural Hazards),是指多个指令需要同时访问同一硬件资源,但该资源在同一时刻只能被一个指令所使用。这种冲突会导致指令无法同时执行,从而影响流水线的性能。
  2. 数据相关(Data Hazards):数据相关是指后续指令需要使用前一条指令的结果,但前一条指令的结果还未就绪或者不可用的情况。数据相关包括以下几种类型:读后写(Read-after-Write)相关:后续指令需要读取前一条指令刚刚写入的数据。写后读(Write-after-Read)相关:后续指令需要读取前一条指令刚刚写入的数据。写后写(Write-after-Write)相关:后续指令需要写入与前一条指令相同的寄存器或内存位置。

  3. 控制相关(Control Hazards):控制相关是指分支指令(如条件分支或无条件分支)的转移目标依赖于前一条指令的条件结果。在流水线中,当分支指令的条件判断结果还未就绪时,后续指令已经进入流水线并开始执行。这可能导致错误的分支预测和浪费的指令执行。常见的控制相关问题包括:分支相关(Branch Hazards):分支指令的条件判断结果还未就绪,导致后续指令的执行路径选择出现错误。

 1.资源相关

2.数据相关 

 3.控制相关

引起原因:转移指令,当前指令有跳转,但流水已经开启后续指令处理过程。

  1. 解决办法1:延迟转移法,让跳转的指令接在最后流水入口 。
  2. 解决方法2:转移预测法,用硬件预测将来的行为,提前让转移指令进流水。

🌈1.6小结回顾

--------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

2.CISC和RISC CPU

🌈2.1概念

  • CISC(Complex Instruction Set Computer)和 RISC(Reduced Instruction Set Computer)是两种计算机体系结构的设计理念。
  • CISC是一种复杂指令集计算机体系结构它的设计思想是提供丰富而复杂的指令集,可以执行一条指令完成多个高级操作。CISC体系结构中的指令通常具有不同的格式和长度,可以执行复杂的操作,包括内存访问、算术运算、逻辑运算等。CISC体系结构的特点是指令集复杂、指令格式多样、指令执行周期长。
  1. 常见的CISC架构包括x86架构。CISC 的典型代表: x86 架构
  2. CISC优势: 少量指令实现大量功能,同时节省了程序本身的大小,降低内存空间的占用。
  3. CISC 劣势: 指令集中包含的指令非常多, 而且功能复杂,难以理解。大多数场景下, CISC 的指令使用频率相差极为悬殊,其中 20% 的指令被频繁重复使用,占据了程序功能中的 80% 代码。而剩下的 80% 的指令被闲置。
  • RISC是一种精简指令集计算机体系结构它的设计思想是通过简化指令集,提高指令执行的效率和性能。RISC体系结构中的指令通常具有固定的格式和长度,执行的操作也比较简单和基本,例如加载、存储、算术和逻辑操作等。RISC体系结构的特点是指令集简单、指令格式统一、指令执行周期短。常见的RISC架构包括ARM和MIPS架构。
  1. RISC 的典型代表: ARM 架构、THUMB 架构、RISC-V 架构。
  2. RISC 优势: CPU 一个时钟周期能同时运行多条指令,效率得以提升, 同时指令集相对较少, 便于理解。
  3. RISC 劣势:完成同样的功能,相比 CISC 来说要使用更多的指令, 导致内存空间要消耗的更多, 但是随着目前内存空间的持续增加,其实也不是什么大的问题。

🌈2.2RISC和CISC对比

CISC和RISC主要特征对比
                  比较内容                   CISC            RISC        
 指令系统复杂,庞大 简单,精简
 指令数目 一般大于200 一般小于100
 指令格式 一般大于4一般小于4
 寻址方式一般大于4一般小于4
指令字长不固定等长
各种指令使用频率相差很大相差还不大
程序源代码长度较短较长
控制器实现方式大多微程序控制器大多硬布线控制器
  • CISC和RISC之间的主要区别在于指令集的复杂性和执行效率。
  1. CISC体系结构通过提供复杂的指令集,可以在一条指令中完成多个操作,但指令执行的效率相对较低。
  2. 而RISC体系结构通过简化指令集,使得指令的执行更加高效,但需要更多的指令来完成复杂的操作。

随着技术的发展和计算机体系结构的演进,CISC和RISC之间的界限逐渐模糊。现代的处理器通常采用了一种混合的设计,称为CISC-RISC结合体(CISC-RISC Hybrid),它结合了CISC和RISC的优点,将复杂的指令翻译成更简单的内部微操作执行,以提高执行效率。

🎵2.3CPU知识小结

  1. 早期的CPU由控制器和运算器组成当今的CPU芯片由运算器cache,控制器三部分
  2. CPU中至少有6种寄存器:指令寄存器,程序计数器,地址寄存器,数据缓冲寄存器,通用寄存器,状态条件寄存器
  3. CPU从存储器取出一条指令并执行这条指令的时间和称为指令周期。CISC中,由于各种指令的操作功能不同,各种指令的指令周期是不尽相同的,划分指令周期,是设计操作控制器的重要依据。RISC中,由于流水执行,大部分指令在一个机器周期完成。
  4. 微程序设计技术是利用软件方式设计操作控制器的一门技术,具有规整性,灵活性,可维护性等一系列优点,因而在计算机设计中得到广泛应用。随着ULSI技术的成熟和对机器速度的要求,硬布线逻辑设计思想又得到重视。(微程序和硬布线的应用场景特性对比)。
  5. 并行技术已成为计算机发展的主流,并行处理技术可贯穿于信息加工的各个步骤和阶段。概括起来主要有三种形式:时间并行空间并行时空并行
  6. 流水CPU是以时间并行为原理设计的处理机。是一种是一种非常经济实用的并行技术。目前的高性能微处理器几乎都是用流速技术。
  7. 流水技术的主要问题是:资源相关数据相关控制相关。为此需要采取相应的技术才能保证流水线不断流。
  8. RISC CPU 是继承CISC CPU的成功技术,并在克服CISC的缺点基础上发展起来的。RISC三个基本要素:1.一个有限的简单指令系统,2.CPU配备大量的通用寄存器,3.强调指令流水线的优化。RISC机器一定是流水CPU

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

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

相关文章

高效实用的电商数据分析产品之店铺分析如何入手?

在电商行业,如何做好店铺分析?应该从哪几个方面进行? 1、寻找竞品店铺 在众多店铺中找到与自己风格(定位/用户群体等)相仿的相关竞争对手的标签。研究竞品店铺中爆款产品作为一个店铺运营(新品开发等&…

HubSpot CRM:卓越客户服务的关键引擎

在数字化时代,提供卓越的客户服务是企业成功的关键之一。HubSpot CRM以其强大的功能和灵活性,成为实现卓越客户服务的关键引擎,以下是强调HubSpot CRM在客户服务中的应用的关键方面: 1. 全面的客户视图 HubSpot CRM集成了全面的…

解决:接口中返回的文本不能保持原本格式也无法换行

一、问题&#xff1a; 原本传入的文本是有换行的&#xff0c;但是用div展示接口返回的文本&#xff0c;所示内容没有保持原有格式没达到换行效果 以下是传入到接口的文本格式 使用div标签展示接口返回的文本&#xff0c;但并没有保持原有格式&#xff0c;文本也没换行 <di…

docker 容器添加指定网络地址

docker 容器添加指定网络地址 在搭建halo博客时&#xff0c;准备让 halo、mysql8.1、nginx 三个容器在同一个网段中&#xff0c;并指定IP。 实现docker内部容器之间网络互通。 查看容器网络信息命令 docker inspect 容器名各容器部署成功后网络效果如下&#xff1a; nginx …

城堡世界源码

随着数字技术的飞速发展和人们对于娱乐需求的不断提升&#xff0c;城堡世界源码开发逐渐成为了新的热门话题。城堡世界是一个集潮流、艺术、科技于一体的数字娱乐新领域&#xff0c;通过将虚拟现实、增强现实等技术融入传统玩具设计中&#xff0c;为玩家们带来了全新的互动体验…

如何高效阅读Linux的man page

有时候需要在man page中查某个命令的用法&#xff0c;我们一般会使用man command的方式来查询&#xff0c;例如man vmstat.但是对于一些bash内置的命令&#xff0c;如alias,如果使用man alias会打开General Commands Manual ,如下图 可以看到&#xff0c;内置命令很多&#xff…

计算机毕业设计---ssm实验室设备管理系统

项目介绍 ssm实验室设备管理系统。前台jsplayuieasyui等框架渲染数据、后台java语言搭配ssm(spring、springmvc、mybatis、maven) 数据库mysql8.0。该系统主要分三种角色&#xff1a;管理员、教师、学生。主要功能学校实验设备的借、还、修以及实验课程的发布等等&#xff1b;…

使用kennycason.kumo.WordCloud For JAVA 制作词云图

官网&#xff1a;https://kennycason.com/posts/2014-07-03-kumo-wordcloud.html 一&#xff1a;添加POM文件 <!-- 词云 --><dependency><groupId>com.kennycason</groupId><artifactId>kumo-core</artifactId><version>1.27<…

【Verilog】期末复习——分别画出下面两个程序综合后的电路图/reg型数据和wire型数据的区别

系列文章 数值&#xff08;整数&#xff0c;实数&#xff0c;字符串&#xff09;与数据类型&#xff08;wire、reg、mem、parameter&#xff09; 运算符 数据流建模 行为级建模 结构化建模 组合电路的设计和时序电路的设计 有限状态机的定义和分类 期末复习——数字逻辑电路分…

认识Linux指令之 “find grep” 命令

01.find指令&#xff1a; -name Linux下find命令在目录结构中搜索文件&#xff0c;并执行指定的操作。 Linux下find命令提供了相当多的查找条件&#xff0c;功能很强大。由于find具有强大的功能&#xff0c;所以它的选项也很多&#xff0c;其中大部分选项都值得我们花时间来…

LeetCode 84:柱状图中的最大矩形

一、题目描述 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 示例 1: 输入&#xff1a;heights [2,1,5,6,2,3] 输出&#xff1a;10 解释&#xff1a…

智慧工地SaaS云平台源码:监管端、工地端、危大工程、智慧大屏、物联网、塔机、吊钩、升降机

智慧工地解决方案依托计算机技术、物联网、云计算、大数据、人工智能、VR&AR等技术相结合&#xff0c;为工程项目管理提供先进技术手段&#xff0c;构建工地现场智能监控和控制体系&#xff0c;弥补传统方法在监管中的缺陷&#xff0c;最终实现项目对人、机、料、法、环的全…

vue组件内外数据保持同步 组件数据加载解析顺序

背景与简介 一个公共的组件&#xff0c;比如BaseTable&#xff0c;需要同步组件内外部数据的同步&#xff0c;组件内部数据修改&#xff0c;组件外数据同步修改&#xff0c;组件外部数据修改&#xff0c;组件内部数据同步修改&#xff1b;同时&#xff0c;当组件内外部数据修改…

Java建筑工程建设智慧工地源码

智慧工地管理平台依托物联网、互联网&#xff0c;建立云端大数据管理平台&#xff0c;形成“端云大数据”的业务体系和新的管理模式&#xff0c;从施工现场源头抓起&#xff0c;最大程度的收集人员、安全、环境、材料等关键业务数据&#xff0c;打通从一线操作与远程监管的数据…

【Pytorch】学习记录分享13——OCR(Optical Character Recognition,光学字符识别)

[TOC](OCR(Optical Character Recognition,光学字符识别)) 1. OCR资源汇总 OCR(Optical Character Recognition,光学字符识别)指提取图像中的文字信息&#xff0c;通常包括文本检测和文本识别。 文字检测&#xff1a;将图片中的文字区域位置检测出来&#xff08;如图1(b)所示…

FaceChain-FACT:免训练的丝滑体验,秒级别的人像生成

FaceChain-FACT&#xff1a;免训练的丝滑体验&#xff0c;秒级别的人像生成 项目主页&#xff1a;FaceChain-fact&#xff1a;Face Adapter for Human AIGC github项目&#xff1a;https://github.com/modelscope/facechain 1.介绍 作为AI人像写真开源项目的佼佼者&#xff…

华硕飞行堡垒FX53VD键盘全部失灵【除电源键】

华硕飞行堡垒FX53VD键盘全部失灵【除电源键】 前言一、故障排查二、发现问题三、使用方法总结 前言 版本型号&#xff1a; 型号 ASUS FX53VD&#xff08;华硕-飞行堡垒&#xff09; 板号&#xff1a;GL553VD 故障情况描述&#xff1a; 键盘无法使用&#xff0c;键盘除开机键外…

Qt During startup program exited with code 0xc0000135

网上试了好多办法没有用&#xff0c;可以试试在pro目录下加入如图所示的.dll 可以下个everything搜索整个电脑查看是否有上述dll&#xff0c;如果没有也可以网上下载或者点击连接

【博士每天一篇论文-算法】Optimal modularity and memory capacity of neural reservoirs

阅读时间&#xff1a;2023-11-15 1 介绍 年份&#xff1a;2019 作者&#xff1a;Nathaniel Rodriguez 印第安纳大学信息学、计算和工程学院&#xff0c;美国印第安纳州布卢明顿 期刊&#xff1a; Network Neuroscience 引用量&#xff1a;39 这篇论文主要研究了神经网络的模块…

认识SpringBoot中的条件注解

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 循序渐进学SpringBoot ✨特色专栏&…