第三课:寄存器与内存、中央处理器(CPU)、指令和程序及高级 CPU 设计

第三课:寄存器与内存、中央处理器(CPU)、指令和程序及高级 CPU 设计

  • 第六章:寄存器与内存
    • 课程导入
    • 1、概念梳理
    • 2、锁存器
    • 3、门锁
    • 4、寄存器
    • 5、门锁矩阵
    • 5、内存
  • 第七章:中央处理器(CPU)
    • 1、概念梳理
    • 2、CPU 工作原理
      • 1)必要组件
      • 2)过程
      • 3)图示
  • 第八章:指令和程序
    • 1、概念梳理
    • 2、指令的执行
    • 3、计算机指令长度
  • 第九章:高级 CPU 设计
    • 概念梳理
    • 1、现代 CPU 如何提升性能
    • 2、缓存
    • 3、缓存同步
    • 4、指令流水线
    • 5、一次性处理多条指令
    • 6、同时运行多个指令流(多核 CPU)
    • 7、超级计算机(多个 CPU)

各位小伙伴想要博客相关资料的话,关注公众号:chuanyeTry即可领取相关资料!

第六章:寄存器与内存

课程导入

  • 当玩游戏、写文档时如果断电,进度会丢失,这是为什么?
    – 这是电脑使用的是 RAM(随机存取存储器),俗称内存,内存只能在通电情况下存储数据。
    – 本节课程将讲述内存的工作原理。

1、概念梳理

锁存器:利用 AND、OR、NOT 逻辑门,实现存储 1 位数字的器件。
寄存器:1 组并排的锁存器。
矩阵:以矩阵的方式来存放锁存器的组合件,n* n 门锁矩阵可存放 n^2 个锁存器,但同一时间只能写入/读取 1 个数字。(早期为 16*16 矩阵)。
位址:锁存器在矩阵中的行数与列数。eg.12 行 8 列。
多路复用器:一组电线,输入 2 进制的行址&列址,可启用矩阵中某个锁存器。
内存(RAM):随机存取存储器,由一系列矩阵以及电路组成的器件,可根据地址来写入、读取数据。类似于人类的短期记忆,记录当前在做什么事情。

2、锁存器

作用:存储 1 位数字。
图示:在这里插入图片描述

3、门锁

锁存器需要同时输入 2 个数字,不太方便。
为了使用更方便,只用 1 根电线控制数据输入,发展了门锁这个器件。另外,用另一根电线来控制整个结构的开关。(和复位作用不同)在这里插入图片描述

4、寄存器

作用:并排使用门锁,存储多位数字
图示:在这里插入图片描述

5、门锁矩阵

作用:n* n 的矩阵有 n^ 2 个位址,则可以存储 n^2 个数。但 1 个矩阵只可记录 1 位数字,n 个矩阵组合在一起,才可记录 n 位数。如 1 个 8 位数,会按位数分成 8 个数,分别存储在 8 个矩阵的同一个位址中。
8 个矩阵,则可以记录 256 个 8 位数字。

通俗理解:16* 16 的门锁矩阵,可理解为 1 个公寓,1 个公寓 256 个房间。
8 个门锁矩阵并排放,则有了 8 个公寓。
规定每一个公寓同一个编号的房间,都有一样的标记(地址),共同组成 8 位数字。
那么 8 个公寓就能存 (8*256 / 8)个数字。

原因:16*16 的门锁矩阵虽然有 256 个位置,但每次只能存/取其中 1 个位置的数字。因此,要表示 8 位数字,就需要同时调用 8 个门锁矩阵。

图示:在这里插入图片描述
在这里插入图片描述

使用方法:在多路复用器中输入位址,x 行 x 列(2 进制),即可点亮 x 行 x 列的锁存器。

举例:
在这里插入图片描述

5、内存

粗略定义:将一堆独立的存储模块和电路看做 1 个单元,组成内存方块,n 个内存方块组成内存模块。在一个电路板上所有的内存方块统称为内存(RAM)。
图示:在这里插入图片描述

第七章:中央处理器(CPU)

1、概念梳理

  • CPU(Central Processing Unit):中央处理单元,负责执行程序。通常由寄存器/控制单元/ALU/时钟组成。与 RAM 配合,执行计算机程序。CPU 和 RAM 之间用“地址线”、“数据线”和“允许读/写线”进行通信。
    – 指令:指示计算机要做什么,多条指令共同组成程序。如数学指令,内存指令。
  • 时钟:负责管理 CPU 运行的节奏,以精确地间隔,触发电信号,控制单元用这个信号,推动 CPU 的内部操作。
    – 时钟速度:CPU 执行“取指令→解码→执行”中每一步的速度叫做“时钟速度”,单位赫兹Hz,表示频率。
    – 超频:修改时钟速度,加快 CPU 的速度,超频过多会让 CPU 过热或产生乱码。
    – 降频:降低时钟速度,达到省电的效果,对笔记本/手机很重要。
  • 微体系框架:以高层次视角看计算机,如当我们用一条线链接 2 个组件时,这条线只是所有必须线路的抽象。

2、CPU 工作原理

1)必要组件

  • 指令表:给 CPU 支持的所有指令分配 ID
  • 控制单元:像指挥部,有序的控制指令的读取、运行与写入。
    – 指令地址寄存器:类似于银行取号。该器件只按顺序通报地址,让 RAM 按顺序将指令交给指令寄存器。
    – 指令寄存器:存储具体的指令代码。

在这里插入图片描述

2)过程

  • 取指令:指令地址寄存器发地址给 RAM→RAM发该地址内的数据给指令寄存器→指令寄存器接受数据
  • 解码:指令寄存器根据数据发送指令给控制单元 →控制单元解码(逻辑门确认操作码)
  • 执行阶段:控制单元执行指令(→涉及计算时→调用所需寄存器→传输入&操作码给ALU执行)→调用RAM特定地址的数据→RAM将结果传入寄存器→指令地址寄存器+1

3)图示

第一个 CPU在这里插入图片描述

第八章:指令和程序

1、概念梳理

  • 指令:指示计算机要做什么的代码(机器码),多条指令共同组成程序。如数学指令,内存指令。
    – 注:指令和数据都是存在同一个内存里的。
  • 指令集:记录指令名称、用法、操作码以及所需 RAM 地址位数的表格。

在这里插入图片描述

2、指令的执行

  • 原则:
    – RAM 每一个地址中,都存放 0 或 1 个数据。
    – 特定的数字组合,就表示为一个指令,否则表示一个值。
  • LOAD 指令:
    – 计算机会按地址的顺序,读取 RAM 中所记录的指令/数据。
    – 计算机接受到指令后,如 LOAD_A,则通过数据线将数据传至寄存器 A。

在这里插入图片描述

  • ADD 指令:
    – ADD B A 指令告诉 ALU,把寄存器 B 和寄存器中的数字加起来,存到寄存器 A 中。
  • JUMP 指令:
    – 遇到 JUMP 指令,程序会跳转至对应的 RAM 地址读取数据。
    – JUMP 指令可以有条件跳转(如 JUMP-negative),也可以无条件跳转。

3、计算机指令长度

由于早期计算机每个字只有 8 位,指令只占 4 位,意味着只能有 16 个指令,这远远不够。
现代计算机有两种方式解决指令不够用的问题:
最直接的是用更多位来表示指令,如 32 位或 64 位。
采用“可变指令长度”,令不同的指令的长度不同,尽量节约位数。
– 假设 1 个字为 16 位,如果某指令不需要操作内存,则可以省去寻址的位数。
– 该情况下,部分指令后面需要跟数据,如 JUMP,称为立即值。

第九章:高级 CPU 设计

概念梳理

  • 缓存:在 CPU 中的小块 RAM,用于存储批量指令。
    – 缓存命中:想要的数据已经在缓存里
    – 缓存未命中:想要的数据不在缓存里脏位:缓存里每块空间,有个特殊标记,叫
    – 脏位,用于检测缓存内的数据是否与 RAM 一致。
  • 多核处理器:一个 CPU 芯片中,有多个独立处理单元。

1、现代 CPU 如何提升性能

早期通过加快晶体管速度,来提升 CPU 速度。但很快该方法到达了极限。
后来给 CPU 设计了专门除法电路+其他电路来做复杂操作:如游戏,视频解码。

2、缓存

为了不让 CPU 空等数据,在 CPU 内部设置了一小块内存,称为缓存,让 RAM 可以一次传输一批数据到 CPU 中。(不加缓存,CPU 没位置放大量数据)
缓存也可以当临时空间,存一些中间值,适合长/复杂的运算。
脏位:储存在缓存中与 RAM 不一致的数据。
空等原因:从 RAM 到 CPU 的数据传输有延迟(要通过总线,RAM 还要时间找地址、取数据、配置、输出数据)。

3、缓存同步

缓存同步一般发生在 CPU 缓存已满,但 CPU 仍需往缓存内输入数据。此时,被标记为脏位的数据会优先传输回 RAM,腾出位置以防被覆盖,导致计算结果有误。

4、指令流水线

作用:让取址→解码→执行三个步骤同时进行。并行执行指令,提升CPU性能。
原本需要 3 个时钟周期执行 1 个指令,现在只需要 1 个时钟周期。

设计难点:数据具有依赖性 跳转程序

数据依赖性解决方法:乱序运行、预测分支(高端 CPU)
在这里插入图片描述

5、一次性处理多条指令

在这里插入图片描述

6、同时运行多个指令流(多核 CPU)

多核处理器:一个 CPU 芯片中,有多个独立处理单元。但因为它们整合紧密,可以共享一些资源。

7、超级计算机(多个 CPU)

在一台计算机中,用无数个 CPU,做怪兽级的复杂运算,如模拟宇宙形成。

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

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

相关文章

Illustrator脚本 #015 自动角线

这是一个在画板上自动生成辅助线和角线的脚本,只要单击最右边按钮运行脚本即可。 绿色的为参考线及出血线。 #target "Illustrator" var settings = {addTrim : true,addBleedGuide : true,addCenterGuide : true,addCover : false,overlapAlert : false,trimma…

WEB 3D技术 three.js 设置环境贴图 高光贴图 场景设置 光照贴图

上文WEB 3D技术 three.js 基础网格材质演示几何体贴图 ao贴图效果我们简单构建了一个贴图和ao贴图的几何体材质 我们接下来 来看一下透明度贴图 我们还是官网搜索 MeshBasicMaterial 然后 是我们的 alphaMap 属性 这里 黑色为完全透明 白色 完全不透明 黑白之间还有灰色 这个灰…

【数据库系统概论】第6章-关系数据库理论

真别看吧,抄ppt而已啊 文章目录 6.1 引言6.2 规范化6.2.1 函数依赖6.2.2 码6.2.3 范式(Normal Form)6.2.4 BC范式6.2.5 规范化小结 6.1 引言 我们有这样一张表: but 为啥这样设计呢?由此引出怎样设计一个关系数据库…

Mac电脑如何长截图?

https://zhuanlan.zhihu.com/p/543012365 1、打开需要截图的网页(小编随意输入的内容),如图 2、按下组合快捷键【commandoptioni】,出现“html”界面,如图 3、按下组合快捷键【commandshiftp】,出现搜索界…

使用激光干涉测量时克服振动问题

干涉仪的工作原理 干涉仪可以极其精确地测量物体。他们的工作原理是使用分束器将一束光分成相等的两半,分束器实际上是一块涂有薄银的玻璃。当光照射到分束器上时,一半的光通过,一半的光被反射回来。其中一束光束(称为参考光束&a…

软件测试常见的面试题,这些题面试前看提高百分之60的通过率

01、您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 答:有黑盒和白盒两种测试种类,黑盒有等价类划分法,边界分析法,因果图法和错误猜测法。白盒有逻辑覆盖法&…

Ubuntu18.04安装GTSAM库并验证GTSAM是否安装成功(亲测可用)

在SLAM(Simultaneous Localization and Mapping)和SFM(Structure from Motion)这些复杂的估计问题中,因子图算法以其高效和灵活性而脱颖而出,成为图模型领域的核心技术。GTSAM(Georgia Tech Smo…

关于Redis面试题

前言 之前为了准备面试,收集整理了一些面试题。 本篇文章更新时间2023年12月27日。 最新的内容可以看我的原文:https://www.yuque.com/wfzx/ninzck/cbf0cxkrr6s1kniv Redis 是什么 全名:远程字典服务。这是一个开源的在内存中的数据结构存…

C#高级 01.Net多线程

一.基本概念 1.什么是线程? 线程是操作系统中能独立运行的最小单位,也是程序中能并发执行的一段指令序列线程是进程的一部分,一个进程可以包含多个线程,这些线程共享进程资源进程有线程入口,也可以创建更多的线程 2.…

C++ DAY2作业

1.课堂struct练习&#xff0c;用class&#xff1b; #include <iostream>using namespace std;class Stu { private:int age;char sex;int high; public:double score;void set_values(int a,char b,int c,double d);int get_age();char get_sex();int get_high(); }; vo…

FreeRTOS学习--59讲 Tickless低功耗

Tickless低功耗作用&#xff1a;降低功耗 配置方法&#xff1a; a.在FreeRTOSConfig.h中将configUSE_TICKLESS_IDLE置1(自动配置tickless函数)&#xff0c;2(手动配置)&#xff0c;0(关闭低功耗) b.在FreeRTOSConfig.h中将configEXPECTED_ID…

【数据结构】插入排序、选择排序、冒泡排序、希尔排序、堆排序

前言&#xff1a;生活中我们总是会碰到各种各样的排序&#xff0c;今天我们就对部分常用的排序进行总结和学习&#xff0c;今天的内容还是相对比较简单的一部分&#xff0c;各位一起加油哦&#xff01; &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f44…

使用Rust发送邮件

SMTP协议与MIME协议 SMTP&#xff08;简单邮件传输协议,Simple Mail Transfer Protocol&#xff09;是一种用于发送和接收电子邮件的互联网标准通信协议。它定义了电子邮件服务器如何相互发送、接收和中继邮件。SMTP 通常用于发送邮件&#xff0c;而邮件的接收通常由 POP&#…

每日一题--------求数字的每⼀位之和

大家好今天的每日一题又来了&#xff0c;有啥不对的请在评论区留言哦 文章目录 目录 文章目录 求数字的每⼀位之和 题⽬描述&#xff1a; 输⼊⼀个整数m&#xff0c;求这个整数m的每⼀位之和&#xff0c;并打印。 一、解题思路 我们可以通过不断获取该整数的个位数&#xff0c…

算法导论复习(七) 动态规划

动态规划一般用来求解最优化问题 设计一个动态规划算法一般有以下四步&#xff1a; 描述一个最优解的结构特征。递归地定义最优解的值。计算最优解的值&#xff0c;通常采用自底向上的方法。利用计算出的信息构造出一个最优解。 钢条切割问题 体现了动态规划的一个重要性质&a…

磁盘管理 :逻辑卷、磁盘配额

一 LVM可操作的对象&#xff1a;①完成的磁盘 ②完整的分区 PV 物理卷 VG 卷组 LV 逻辑卷 二 LVM逻辑卷管理的命令 三 建立LVM逻辑卷管理 虚拟设置-->一致下一步就行-->确认 echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- -…

什么是https证书?

HTTPS证书&#xff0c;也称为SSL&#xff08;Secure Sockets Layer&#xff09;证书或TLS&#xff08;Transport Layer Security&#xff09;证书&#xff0c;是一种数字证书&#xff0c;用于在网络上建立安全的加密连接。它的主要目的是确保在互联网上进行的数据传输的安全性和…

探索Apache Commons Imaging处理图像

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;咱们今天来聊聊图像处理。在这个数字化日益增长的时代&#xff0c;图像处理已经成为了一个不可或缺的技能。不论是社交媒体上的照片编辑&#xff0c;还是专业领域的图像分析&#xff0c;图像处理无处不在。而作为…

HTML网页设计 科幻风格引入页

成品如下 html <!DOCTYPE html> <html><head><meta charset"utf-8"><title>引入页</title><link href"css/引入页.css" type"text/css" rel"stylesheet" /><style>body{background…

【SD】IP-Adapter 进阶 - 同款人物【2】

测试模型&#xff1a;###最爱的模型\flat2DAnimerge_v30_2.safetensors [b2c93e7a89] 原图&#xff1a; 加入 control1 [IP-Adapter] 加入 control 2 [OpenPose] 通过openpose骨骼图修改人物动作。 加入 control 3 lineart 加入cotrol3 …