计算机组成原理-笔记-第五章

news2024/11/28 0:52:13

目录

五、第五章——中央处理器

1、CPU的功能和基本结构

(1)运算器内部结构

(2)控制器的基本结构

(3)CPU的四大部分

2、指令执行过程(数据流向 & 执行方案)

(1)时钟周期(机器周期 & 指令周期)

(2)指令流程

(3)取值周期 & 间址周期 & 中断周期

(4)指令执行方案(单个、多个、流水线)

(5)总结

3、数据流通——单总线结构 ※※※

(1)单总线——实战(例题)

(2)总结

4、数据流通——专用通路 ※※※

5、硬布线控制器的设计(超级多)——纯硬件

(1)CU——线的梳理

(2)设计控制器(4个步骤)

(2.1)分析各个阶段的微操作

(2.3)安排微操作时序(对应节拍执行的操作)

(2.4)电路设计

(3)总结

6、微程序控制(microprogram & microprocessor)

(1)概念梳理——指令、微程序、微指令、微操作(层层封装)

(2)指令如何从CU里面解析为 微指令 的

(3)存放的微指令(n个机器指令——对应n+1条微程序)

(4)总结

6、微指令——设计(微程序的微指令)

(1)微指令格式——水平、垂直、混合(水平+垂直)

(1.1)水平型

(2)地址的形成方式(怎么找下一个地址)

(3)练习题——计算下地址字段

(4)总结

7、微程序控制单元——设计

(1)设计步骤——4步

(2)微程序设计分类(更深一层的套娃)

(3)微程序 VS 硬布线

(4)总结

8、指令流水线(指令执行优化)

(1)顺序执行 & 流水执行

(2)流水线的表示方法(执行过程图 & 时空图)

(3)流水线的性能指标(吞吐量、加速比、效率)

(1)总结

9、指令流水线的影响因素

(1)MIPS架构(五段流水-五级流水线)

(2)影响因素(3点)结构 数据 控制

(2.1)结构 (资源抢占)

(2.2)数据

(2.3)控制(条件跳转问题)

(3)总结

9、指令流水线的分类

(1)粒度(部件功能、部件、车间) & 功能(多、单)

(2)【静态 & 动态】 & 【线性 & 非线性】

(3)多发技术(多路并发)

(3.1)超标量技术(空间复用)

(3.2)超流水技术

(3.3)超长指令字(当他发现可以并行执行,他就自动组合变成超长的指令)

(4)总结

10、五段花式流水(五级流水线)

(1)考试要考各种指令在流水线中的执行操作

(1.1)运算类指令——加法 ADD

(1.2)LOAD(load)指令

(1.3)STORE(存储指令)

(1.4)beq & bne ——有条件跳转指令

(1.5)JUMP——无条件跳转指令

(1.6)习题

11、多处理器

(1)多处理器的基本概念

(1.1)SISD(单指令流-单数据流)

(1.2)SIMD(单指令——多数据流)

(1.3)MISD(不存在-多指令-单数据流)

(1.4)MIMD(多指令-多数据流)

(2)向量处理器 & 向量数据库(存储器)

(3)多核处理器(一个CPU——多个处理器)

12、硬件多线程


五、第五章——中央处理器

1、CPU的功能和基本结构

(1)运算器内部结构

(2)控制器的基本结构

(3)CPU的四大部分

  1. ALU(Arithmetic Logical Unit逻辑运算单元)
  2. 寄存器
  3. CU(控制单元)
  4. 中断系统

2、指令执行过程(数据流向 & 执行方案)

(1)时钟周期(机器周期 & 指令周期)

CPU的时钟周期是指CPU在执行一个基本操作所需的时间。它通常以纳秒(ns)为单位表示,也可以用赫兹(Hz)来表示。

时钟周期的长度取决于CPU的设计和制造工艺。对于不同型号的CPU,时钟周期的长度可能会有所不同。一般来说,现代计算机的CPU时钟周期在几个纳秒到几十纳秒之间。

不同的CPU架构、不同的制造工艺以及不同的速度等因素都会影响时钟周期的长度。

(2)指令流程

(3)取值周期 & 间址周期 & 中断周期

执行周期——根据硬件设计来——千差万别!!!

没有最好的,只有最合适的!!!

(4)指令执行方案(单个、多个、流水线)

单个指令周期:(所有指令执行的周期是相同的!

缺点:但对于简单的指令,早早执行完后,就会空转!(浪费时间!)——速度慢!!(串行的)

优点:硬件设计——制作简单

多个指令周期:(不同的指令有不同的时钟周期!

优点:周期不同,灵活,执行速度快(但还是串行的)

缺点:但设计就很复杂!

(5)总结

3、数据流通——单总线结构 ※※※

设计结构多种多样!还是那句话,没有最好的,只有最合适滴!!!

这里只对单总线的数据流通进行说明。

明白了其中的数据是怎么一步一步由CU控制,从总线流动的过程后,

对于其他通路(多总线)——也是一样的道理!具体就看自己的硬件设计啦!

学完后,一个冲动——自己去设计一个CPU的数据通路!嘻嘻(逐渐胡言乱语~)

 

(1)单总线——实战(例题)

取指令周期

间址周期(将间接地址进行转换——并送到目的地)

执行周期

前期工作完成——指对应的数据都准备好了,要转换的数据都转换了

根据操作数,执行对应的操作

(2)总结

明白各个指令周期该干的事情!

首先分析指令——明白该指令存在哪些操作,具有哪些周期!

然后细化到每个周期,该干什么事情!(最后一步一步写,就可以啦~)

4、数据流通——专用通路 ※※※

思路和【单总线】一样!

专用通路——就是在CPU中的各个部件的通信——由CU单独控制

缺点:不占用总线,这样硬件设计更加复杂!成本更高!

优点:速度快!!!

有一种说法,虽然他慢,但是他快呀!(滑稽.jpg)

虽然他慢(运行速度),但是他快(开发速度)呀!

 


5、硬布线控制器的设计(超级多)——纯硬件

指令牌套娃:一个指令——对应四个周期——周期里面对应着节拍数来执行微操作

(每一个节拍,可以执行若干个微操作)

具体情况,就看我们的设计啦——经典层层封装!(操作+节拍+周期 = 指令)

(1)CU——线的梳理

一个CU——全身上下都是线(斩不断,理还乱!)——其实还好啦~

  1. 顶部的一排线——操作码译码器——来接收指令
  2. 左边的一排线——节拍发生器——来控制每个周期里执行的节拍数(流水线必备,这样才知道执行到周期中哪一个环节了)
  3. 右边的一排线——4个触发器(对应了4个指令周期)——并且再加上每个执行单元完成的flag(许多标志位)
  4. 下边的一排线——控制对应的微操作(微命令)——发出执行指令,通过右边的flag来判断是否执行完成(毕竟,电路可不是全双工的)

GPT也夸我唉

(2)设计控制器(4个步骤)

第二步——选用的是定长机器周期(这里就不纠结啦~)

(2.1)分析各个阶段的微操作

本质——找到哪些指令,在哪些阶段中有使用!

(2.3)安排微操作时序(对应节拍执行的操作)

(2.4)电路设计

组合逻辑电路设计(列出操作时间表:如下)

并且不止这个,要逐个分析——取址——间址——执行(3个周期中)

对应的节拍(T0、T1、T2)里面的微操作!!!

第一步:列出操作时间表(对应三个周期)

第二步:针对微操作——写出表达式

比如这个从内存中取数据的操作——从三个表中得到结果——写出逻辑表达式

第三步:画出逻辑图

根据逻辑图——我们就可以得出——对应微操作的命令信号(简称微命令)

(3)总结

硬布线太复杂!!!——适用于 精简指令集!!!——毕竟指令少!

对于复杂指令集——指令可能有100多条,太多——硬布线太复杂!!!

优点:速度快

缺点:扩充指令,设计改进困难(复杂),不适用太多的指令集系统

6、微程序控制(microprogram & microprocessor)

软件思想——封装!!!(无线套娃!一层麻烦,那我就再加一层!)

既然微操作这么多,那么我就用微程序段来封装这些微操作!

比如说——对于【取值周期】那一套微操作——我就封装一个微程序段

微程序段——加起来——就是一个微程序——对应一个机器指令!

即——n个机器指令——对应n条微程序

(1)概念梳理——指令、微程序、微指令、微操作(层层封装)

微命令 = 微操作

(2)指令如何从CU里面解析为 微指令 的

指令——翻译为【微程序】——顺序逻辑处理(支持中断等)——传输微程序

微程序存储【CMAR】——翻译【对应的地址】——找出对应【微指令】——执行

并根据他的下地址——找下一个【微指令】(循环往复!)

(3)存放的微指令(n个机器指令——对应n+1条微程序)

为什么是n+1条?

因为n个机器指令,是不是执行的东西各部相同?那么必然有n条!

还有一条是哪里来的呢?是因为指令需要共用一个【取值周期的 微程序】!

那么,为什么没有间址、中断的周期 微程序呢?

因为在那个时代,还没有这些,不用考虑了!(可以说这个教程已经落伍了)

不过思想一直都是这个思想,理解就行啦~

(4)总结

6、微指令——设计(微程序的微指令)

(1)微指令格式——水平、垂直、混合(水平+垂直)

(1.1)水平型

  1. 直接编码
  2. 字段直接编码

套娃——加译码器——减少位数

  1. 字段间接编码

(2)地址的形成方式(怎么找下一个地址)

(3)练习题——计算下地址字段

(4)总结

7、微程序控制单元——设计

为什么微程序比硬布线慢呢?

为什么x86架构(AMD和Intel)要比arm架构慢呢?

因为x86采用的是微程序——微指令——精简指令集

Arm采用的是硬布线——指令——节拍+微操作——复杂指令集

(1)设计步骤——4步

①(分析操作——②微操作封装——微指令封装【③格式+④编码】)

(2)微程序设计分类(更深一层的套娃)

 这个动态修改挺好的(测试+修改——如果是硬布线,得重新再造)

(3)微程序 VS 硬布线

 

(4)总结

 

8、指令流水线(指令执行优化)

传统的冯洛伊曼机——串行(顺序)执行

优点:结构简单

缺点:速度慢

(1)顺序执行 & 流水执行

顺序 & 重叠执行(这里可以细分多个阶段)

(2)流水线的表示方法(执行过程图 & 时空图)

(3)流水线的性能指标(吞吐量、加速比、效率)

吞吐量——吞吐率

加速比(原时间 / 加速时间)        

效率 

(1)总结

9、指令流水线的影响因素

(1)MIPS架构(五段流水-五级流水线)

周期统一的方式——添加锁存器——以此来控制进度

(2)影响因素(3点)结构 数据 控制

设计师们要针对这些问题(冲突),专门进行优化和调整

真是令人头秃!!!老老实实用顺序的,就不会有这些问题了!(doge.jpg)

互斥——指令之间的问题(抢占同一个资源)

同步——数据之间的问题(同时要读 or 写 数据)

(2.1)结构 (资源抢占)

(2.2)数据

(2.3)控制(条件跳转问题)

 

(3)总结


9、指令流水线的分类

(1)粒度(部件功能、部件、车间) & 功能(多、单)

还是那句话,只要设计多个操作,那么就必然存在互斥、同步等操作!

需要我们去优化!

(2)【静态 & 动态】 & 【线性 & 非线性】

其实这些的诞生,是由于前面的流水线优化,而来的

(3)多发技术(多路并发)

(3.1)超标量技术(空间复用)

 

(3.2)超流水技术

(3.3)超长指令字(当他发现可以并行执行,他就自动组合变成超长的指令)

(4)总结

10、五段花式流水(五级流水线)

(1)考试要考各种指令在流水线中的执行操作

运算器里面的三大东西——IMM(立即数)、A、B

(1.1)运算类指令——加法 ADD

注意——写回寄存器是在WB 阶段

(1.2)LOAD(load)指令

一般情况下,也就load和store才访存!(在RISC中)

(1.3)STORE(存储指令)

(1.4)beq & bne ——有条件跳转指令

(1.5)JUMP——无条件跳转指令

(1.6)习题

11、多处理器

(1)多处理器的基本概念

(1.1)SISD(单指令流-单数据流)

(1.2)SIMD(单指令——多数据流)

(1.3)MISD(不存在-多指令-单数据流)

多个输入+一个处理(想想都离谱)

(1.4)MIMD(多指令-多数据流)

(2)向量处理器 & 向量数据库(存储器)

为什么要知道?(向量处理器)

就是让我们明白:专业的东西,就得专业的人和物去做!

所以——不要局限于当下!!!(如果这个东西,我们用着不方便!那么咬咬牙,自己做一个!)

(3)多核处理器(一个CPU——多个处理器)

这很正常——但是:一旦设计共享,并发——那么就存在“锁的问题”

这就不赘述啦~

12、硬件多线程

用硬件——实现多线程


多线程是一种通过在同一进程中同时执行多个线程来提高程序性能和资源利用率的方式。使用硬件来实现多线程有以下好处和坏处:

好处:

  1. 并发性:通过多线程,可以使程序并发执行,充分利用多核处理器的计算能力,提高程序的执行效率和响应速度。
  2. 资源共享:多线程可以共享同一进程的地址空间和资源,避免了进程间的昂贵的上下文切换和数据复制操作,加快了数据共享和通信的速度。
  3. 任务分解:将程序分解成多个较小的线程,可以更容易地管理和调度任务,实现更细粒度的并行计算,提高系统的吞吐量和响应性。
  4. 负载平衡:多线程可以根据系统的负载情况自动调整任务的分配,使得不同的线程可以充分利用系统资源,达到负载均衡的效果。

坏处:

  1. 线程竞争:多个线程访问共享数据时可能会发生竞争条件(如死锁、数据竞争等),导致程序的正确性受到影响,需要使用同步机制来确保数据的一致性和正确性。
  2. 上下文切换开销:线程之间的切换需要保存和恢复上下文信息,这会引入一定的开销。当线程数量过多时,频繁的上下文切换可能会造成系统性能下降。
  3. 调试困难:多线程程序的调试相对于单线程程序更加困难,由于线程之间的交互和并发执行,出现问题时排查和定位错误可能更加复杂。

因此,尽管多线程能够提高程序性能和资源利用率,但也需要谨慎使用,合理设计线程数量和同步机制,以克服潜在的竞争和调试困难带来的问题。


学习的道路,可能是孤独的!但是为了自己梦想,自己的未来,加油!相信你一点可以做到!

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

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

相关文章

libheif —— 2、编写苹果、小米的.heic图片查看器

效果图 .heic简介 HEIC,是iOS 11更新后,iPhone 7及其后硬件,在拍摄照片时的默认图像存储格式。 HEIC是一种图像格式,上线时间还比较短,只有4年左右。自iOS 11和macOS High Sierra(10.13)内测开始,苹果将HEIC设置为图片存储的默认格式。与JPG相比,它占用的空间更小,画…

【ADS】在同一个symbol层次化实现理想器件和EM仿真的切换

ADS层次化切换理想器件和电磁仿真 1.需求描述2.实现步骤2.1 层次结构2.2 新建schematic2.3 新建symbol2.4 使用演示 3.后言 1.需求描述 在使用ADS做电磁仿真时,得到的结果需要多次迭代去接近原理图,那么就需要反复与原理图切换进行对比。 比较直接的方法…

Spring Initailizr--快速入门--SpringBoot的选择

😀前言 本篇博文是关于IDEA使用Spring Initializer快速创建Spring Boot项目的说明,希望能够帮助到您😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可…

tsmc12 via0_grid

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?拾陆楼知识星球入口 PG VIA0连接ME1和ME0,存在cell中奇数site中,如下图,所以两个cell在竖直方向邻接时要对其有via0的site,为了方便place与检查需要place前定义via0_grid,辅助奇数cell site落在grid上 自定义的via0_…

AcWing算法提高课-1.3.18能量石

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 本题链接&#xff08;AcWing&#xff09; 点这里 题目描述 岩石怪物杜达生活在魔法森林中&#xff0c;他在午餐时收集了 N N N 块能量石准备开吃。 由于他的嘴很小&#xff0c;所以一次只能…

Elasticsearch 与 OpenSearch:揭开性能差距

作者&#xff1a;George Kobar, Ugo Sangiorgi 对于任何依赖快速、准确搜索数据的组织来说&#xff0c;强大、快速且高效的搜索引擎是至关重要的元素。 对于开发人员和架构师来说&#xff0c;选择正确的搜索平台可以极大地影响你的组织提供快速且相关结果的能力。 在我们全面的…

突破笔试:力扣计算布尔二叉树的值(medium)

1.题目链接&#xff1a;2331. 计算布尔二叉树的值 2. 题目描述&#xff1a; 给你一棵 完整二叉树 的根&#xff0c;这棵树有以下特征&#xff1a;叶子节点 要么值为 0 要么值为 1 &#xff0c;其中 0 表示 False &#xff0c;1 表示 True 。 非叶子节点 要么值为 2 要么值为 …

通过Easy Excel导入数据

目录 &#x1f351;一、背景&#x1f351;二、开发验证&#x1f34a;2.1、引入easyexcel依赖&#x1f34a;2.2、创建表及基础代码&#x1f34a;2.3、处理类及接口&#x1f353;2.3.1、EasyExcel监听处理器&#x1f353;2.3.2、Controller接口&#x1f353;2.3.3、service调用监…

Vue3使用wangEditor

那么这一节我们在编辑公司信息的弹窗中使用富文本插件wangEditor官网 Vue3使用wangEditor 安装wangEditor在弹窗中引入wangEditor结构api接口部分editor组件script部分怎么去修改富文本的编辑器&#xff1f; 案例内效果&#xff1a; 安装wangEditor npm install wangeditor/…

bash: make: command not found

make之后报错信息如下&#xff1a;cd 对应的文件路径后 make 发现报错&#xff1a;bash: make: command not found 这个原因可能是没有安装make工具,也可能是安装了make之后,没有将make的文件路径添加到系统环境变量中 有没有安装make,可以使用Search Everything搜索是否有make…

24聊城大学823软件工程考研

1.软件发展有几个阶段&#xff1f;各有何特征&#xff1f; ①程序设计阶段 硬件特征&#xff1a;价格贵、存储容量小、运行可靠性差。 软件特征&#xff1a;只有程序、程序设计概念&#xff0c;不重视程序设计方法。 ②程序系统阶段。 硬件特征&#xff1a;速度、容量及工作可…

JS逆向系列之猿人学爬虫第11题 - app抓取 - so文件协议破解

题目地址 http://match.yuanrenxue.com/match/11这是个app题目,先下载下来安装到测试手机上 安装完成后的app界面长这样 打开之后是这样的: 要求已经简单明了了。 二话不说先反编译app 不出意外的是没出意外,源代码里面没啥混淆,所有东西都展示的明明白白的。 "…

Java转换流

文章目录 转换流的理解**InputStreamReader****OutputStreamWriter**练习 引入情况1&#xff1a; 使用FileReader 读取项目中的文本文件。由于IDEA设置中针对项目设置了UTF-8编码&#xff0c;当读取Windows系统中创建的文本文件时&#xff0c;如果Windows系统默认的是GBK编码&a…

每天一个知识点——Normalization

这里结合大模型的学习&#xff0c;主要分析Layer Norm、RMS Norm和Deep Norm的异同&#xff0c;与此同时&#xff0c;究竟是在之前执行Normalization&#xff08;Pre-Norm&#xff09;还是之后执行&#xff08;Post-Norm&#xff09;&#xff0c;也是一个比较喜欢拿来讨论的知识…

LoRaWAN网关与网络服务器(NS)的通信CUPS 协议介绍

LoRa Basics™ Station 定期查询 CUPS 服务器以获取更新。该协议是 HTTP/REST,使用Credentials中描述的客户端/服务器身份验证方法。对于每个查询,工作站都会提供有关其当前状态的信息,并接收包含其 LNS 和 CUPS 凭证更新的二进制 blob,以及具有任意更新的通用数据段。 通…

AIRIOT搭建低成本、更聪明的智能环卫系统,让管理更加高效智能

环卫工程作为城市基础设施保障&#xff0c;是城市建设管理中不可或缺的重要组成部分。随着城市进程的加快及技术的进步&#xff0c;环卫工程管理也在逐渐向精细化、智能化、绿色化等趋势发展。 智能环卫依托物联网、AI、大数据等技术&#xff0c;对环卫管理所涉及到的人、车、物…

ACM算法竞赛中在编辑器中使用输入输出样例-CPH

通用方法 我们可以在编辑器中创建三个文件&#xff0c;一个是main.cpp,一个是test.in,一个是test.out分别用来写代码&#xff0c;输入输入数据&#xff0c;显示输出数据 这种方法的好处是不需要插件&#xff0c;在任何编辑器中都可以实现&#xff0c;例如Devc,sublime,vscode…

【Unity细节】Unity打包后UI面板消失是怎么回事

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏&#xff1a;unity细节和bug ⭐关于物体的动画碰到其他碰撞器后停止播放的问题⭐ 文章目录 ⭐关于物体的动画碰…

Camunda 7.x 系列【3】Camunda 简介

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址&#xff1a;https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 概述2. 核心组件2.1 流程引擎2.2 模型2.3 Web…

无涯教程-Perl - grep函数

描述 此函数从LIST中提取EXPR为TRUE的所有元素。 语法 以下是此函数的简单语法- grep EXPR, LIST返回值 此函数返回在标量context中表达式返回true的次数以及在列表context中与表达式匹配的元素列表。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perllist (1,&qu…