计算机原理(硬件角度—CPU)

article/2025/9/24 6:25:31


一、概述

1、关于计算机原理:
(1)从硬件角度学习计算机的基本工作原理——CPU的基本工作原理。
(2)从操作系统软件角度,学习我们的程序是如何工作起来的——进程管理。

2、程序=指令+数据
程序=算法(有特定意义的指令)+数据结构(有组织的数据)
只有指令,才最终在运行阶段时,被运行程序的计算机的CPU去执行(其中指令也可以看作是一种特殊的数据)。

3、开发阶段->编译阶段->链接阶段(构建阶段)->运行阶段 【程序员 编译器 链接器 CPU】

4、冯诺依曼体系:
处理器(CPU)=运算器+控制器
存储器(Memory)=内存 【storage(二级存储)、memory(内存)】
外部数据(物理数据)进入到存储器via 输入设备(Input Device)
存储器内的数据出来到外部世界via 输出设备(Output Device)
运算器+控制器+存储器+输入设备+输出设备
处理器+存储器+输入设备+输出设备
在这里插入图片描述
一些基本功能
【CPU 中央处理器: 进行算术运算和逻辑判断.
存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)
输入设备: 用户给计算机发号施令的设备.
输出设备: 计算机个用户汇报结果的设备】
【 *针对存储空间 :硬盘 > 内存 >> CPU
*针对数据访问速度 :CPU >> 内存 > 硬盘 】

5、程序=指令+数据
(1)指令:是一组预规定的动作,表现为一种特殊的数据,需要存储在内存中【利用编码表规定】。
(2)数据:同样需要存储在内存中,前提是(内存是电子元件组装而成以二进制的形式存储。)

6、广义数据在内存的存储问题(数||非数的数据)
(1)“” 类型的数据在内存中的表示方法(整数(整数型)、小数(浮点型)…)。
有限范围内的整数表示:正码、反码、补码 -> 整型数
有限范围的小数表示:IE标准 ->浮点数
(2)“非数数据” 都会按照一定的标准格式编码成整数。
任何的数据,基本上都是以整型、浮点型进行表示,以保存到内存中。其中,“非数数据”都会按照一定的标准格式编码成整数。接下来的内容我们局限在整型中,但表示的数据可能是整数、指令、字符、图片、声音等…

二、CPU的基本工作原理 (CPU =ALU + CU)

CPU:逻辑算术运算器
【(与、或、非、加、减、乘、除、取余)、控制器、临时存储数据的存储单元(每个只能保存一个整型数、但是不止一个)——寄存器(register)。】
现代的高级CPU为了提升性能,一般都带有缓存(CPU内缓存)

(一)逻辑门

1、非门【真假、假真】​

在这里插入图片描述
2、与门【串联,两个都为1才为1】【1000】

在这里插入图片描述
在这里插入图片描述
3、或门【并联,有一个1即为1】【1110】

在这里插入图片描述
在这里插入图片描述
4、异或门 【相同为0】【0110】

在这里插入图片描述
(二)ALU(Arithmetic & Logic Unit) 算术逻辑单元ALU

【负责进行 逻辑+算术运算,需要利用寄存器完成中间数据的临时保存】
算术:加法、减法、乘法、除法、取余
逻辑:与、或、非
利用 与或非 + 异或门 构建8位加法器

1、进制的回顾与理解

246 = 210^2 + 410^1 + 610^0
Ob11011 = 1
2^4 + 12^3 + 02^2 + 12^1 + 12^0
13进制的数13A6 = 113^3 + 313^2 + A13^1 + 613^0

在这里插入图片描述【遇10进1】和【遇2进1】

2、算术单元(Arithmetic Unit)

算数单元,负责计算机里的所有数字操作,比如四则运算,接下来我们会
带着大家实现一个 8 位(bits)的加法器(adder)。
8位数的加法器 = 1半加器 + 7全加器

(1)半加器:进行两个1位(bit)数的相加

在这里插入图片描述

(2)全加器:进行三个1位(bit)数的相加

在这里插入图片描述
3、逻辑单元(Logic Unit)
逻辑单元主要用来进行逻辑操作,最基本的操作就是 与、或、非操作,但不只是一位(bit)数的比较。

8位数 != 0 的判断
在这里插入图片描述
0000 0000 = 0
0000 0001 = 1
… … = 1
1111 1111 = 1
只要有一个1就能够保存下来。

ALU
在这里插入图片描述

ALU的基本组成
(1)三个输入:
A:要参与计算的第一个数。
B:要参与计算的第二个数。
C:操作码(opcode),本次的运算是什么,指导ALU进行什么运算。

(2)输出
正常输出:加减乘除都有一个8位数的输出。
额外输出:一般有三个,都只有1个(bit),代表它是否溢出、为0、负数。

(三)控制单元CU(Control Unit)
【CU具有的两个功能:1、控制register <-> memory数据传递的指令 2、驱使ALU进行计算】

1、CU中有两个很重要的寄存器(RAM)
(1)PC寄存器(Program Counter)程序计数器寄存器,下一条要执行的指令在内存中的地址【很重要,可以影响当前CPU的执行流,默认情况下是正常顺序走(自动+1)。CPU中提供了指令,可以修改PC的值(可以带条件),产生分支逻辑】。
(2)IR寄存器(Instruction Register)指令寄存器 ,下一条要执行的指令。

2、指令(Instruction)
指令作为一种特殊的数据,完全也是以整型的形式保存在内存中。
首先,我们先介绍下我们需要到的指令(instruction)。
所谓指令,即指导 CPU 进行工作的命令,主要有操作码 + 被操作数组成。
其中操作码用来表示要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也可能是寄存器编号等。 指令本身也是一个数字,用二进制形式保存在内存的某个区域中。
在这里插入图片描述
流程:(此时人为认为PC为0)
(1)取码阶段
CU根据PC(0)寄存器的值,去内存的响应位置,读取指令(00101110)到IR寄存器。(正常情况下,PC寄存器中的值自动 + 1.)
(2)解码阶段
CU按照预先设计的指令集解读指令数据(opcode + 操作数)
Eg: 0010 1110,人为规定前面四位为操作码(查询指令表可以知道0010代表的意思),后四位才是地址(后四位指定内存的处),地址为10进制的14,从地址为14的内存中加载数据(00000011),加载到例如图中A寄存器中。
(3)执行阶段(CU)
LOAD指令应该由CU执行,所以按照规定执行指令:
从内存为14号地址处将数据(00000011)被读到A寄存器中,就执行结束。

结论:程序顺序执行的秘密
(1)由于硬件中PC在自动+1,所以我们的代码变成的指令才能顺利地执行下去
(2)代码中的一条语句,很可能需要多条指令才能完成。
语句是一组指令的封装抽象
变量是一段内存空间的封装抽象
(3)PC寄存器中的值在这个指令周期中很关键,可以控制执行哪里的指令

3、CPU主频可以粗略地看作:每秒钟CPU能执行多少个指令周期
【周期会一直执行,频率一般就是我们认为的主频】
CPU执行的快慢,就是看CPU执行指令周期的频率(假定每个指令周期的频率恒定)。

4、分支语句
分支语句是怎么来的:(if\else\while\for\break\continue…)
CPU中往往会提供一些指令,这些指令可以去修改PC的值。
通过CPU中预先规定指令,可以修改PC中的值(带条件修改),进而影响执行流(execution flow)。

5、CPU的正常工作流程:取码 -> 编码 -> 执行周期
只要在你的电脑开机状态下,CPU就在不停循环着这个周期。
在硬件CPU的视角中,只有指令的概念,没有指令属于谁的概念!!【即CPU视角是有要执行的下一条指令是什么,改变不知道执行的是属于哪个程序。】

6、CPU的中断模式(Interrupt Mode )【可以暂停当前的执行流】
正常模式下,CPU可以顺序执行,可以分支执行。但总归只能按照既定顺序去执行。但是现实中很多时候,需要暂停中断CPU的当前执行流,先让CPU去做点其他工作,再回过头来继续原来的执行流。
【CPU硬件中提供了一种机制(中断)让CPU停下
1、保存当前的PC的值到内存的某个位置
2、修改PC的值,让执行其他执行流
3、其他执行流执行结束后,通过将刚才保存的PC值恢复到PC寄存器
4、继续原来的执行流】

中断一般都有编号,内存中提前保存好了中断向量表。

中断经常用作:
(1)IO设备的处理
当有外部数据到达Input设备时,触发某个中断。
让当前正在执行的执行流暂停,切换到Input驱动对应的执行流。
把Input设备中读取到的数据,放到内存中的某个位置。
恢复之前的执行流。
(2)操作系统中用来作进程调度(线程调度)。


http://chatgpt.dhexx.cn/article/QOpb3Bqj.shtml

相关文章

计算机组成原理——数据的表示与运用

数值与编码 进位记数制及其相互转换十进制、二进制、八进制、十六进制真值、机器数&#xff08;原码、反码、补码&#xff09;字符与字符串的编码&#xff08;小端和大端方式存储 &#xff09;数据校验奇偶校验、CRC冗余校验、海明校验 定点数的表示和运算 无符号数的表示&…

【计算机组成原理】04-计算机的计算单位

一、容量单位 字节&#xff1a;1Byte8bits ◆ 理论上只认识0/1两种状态 ◆ 在物理层面&#xff0c;高低电平记录信息 ◆ 0/1能够表示的内容太少了&#xff0c;需要更大的容量表示方法 1G内存&#xff0c;可以存储多少字节的数据&#xff1f;可以存储多少比特数据&#xff1f;…

计算机组成原理_虚拟存储器

计算机组成原理总目录 虚拟存储器 虚拟存储器主要解决的是用于解决存储数据的容量问题 例如在电脑的辅存磁盘中存放了几百GB甚至几TB的数据&#xff0c;包括几十个上百个程序 但我们在实际运行时&#xff0c;并不需要使用到所有的数据&#xff0c;而只需要用到其中一个或者两个…

计算机原理-数据

数据 二进制 十进制&#xff08;人类use&#xff09; 十六进制 &#xff08;2&#xff0c;4&#xff0c;16 是权&#xff09; 1011.0112^30*2^22^12^00*2^-11*2^-21*2^-3802100.250.125 27.375 七进制转十进制&#xff08;权不一样&#xff09; 604.01 6*7^20*7^14*7^00*7…

(一)计算机组成原理之计算机系统导论(冯诺依曼计算机以及cpu,机器字长,MAR,存储单元,MDR,存储字长等)

❤️ 知识点 1.冯诺依曼计算机的构成&#xff1a;运算器&#xff0c;控制器&#xff0c;存储器&#xff0c;输入设备和输出设备 2.计算机的硬件组成&#xff1a;.原始的冯诺依曼在结构上是以运算器为中心&#xff0c;而发展到现在&#xff0c;以转向以存储器为中心。&#xff…

计算机组成原理:如何衡量计算机的性能

在计算机组成原理乃至体系结构中&#xff0c;“性能”都是最重要的一个主题。学习和研究计算机组成原理&#xff0c;就是在理解计算机是怎么运作的&#xff0c;以及为什么要这么运作。“为什么”所要究竟的事情&#xff0c;很多时候就是提升“性能” 什么是性能&#xff1f;时…

计算机组成原理 --- 计算机性能指标

一.存储器的性能指标 1.MAR是地址寄存器&#xff0c;MDR是数据寄存器 2.MAR的位数能够体现最多存多少个地址&#xff0c;而每个地址就代表一个存储单元&#xff0c;所以MAR的位数能表示存储器中有多少个存储单元 3.MDR是数据寄存器&#xff0c;它的容纳极限 每个存储单元的…

通用计算机器

还是下面这句话&#xff1a; 将固定的资源在所有使用者中分配&#xff0c;而不是为每一个使用者分配固定额度的资源。 还是那个简单的倒换&#xff0c;通用计算机就设计出来了。 人们就意识到内存和CPU之间的总线成了瓶颈&#xff0c;于是人们拼命缩短这条总线的长度&#xff…

量子计算机是什么?量子计算机和传统计算机之间有什么区别?

1.突破1000量子比特大关&#xff01; 2022年11月9日的IBM年度量子峰会上&#xff0c;IBM宣布了Osprey在量子硬件和软件方面取得的突破性进展&#xff0c;同时推出了“鱼鹰”&#xff08;Osprey&#xff09;芯片。“鱼鹰”是全球迄今为止量子比特最多的量子计算机&#xff0c;而…

计算机中的单位换算

1 基本单位 信息存储量是度量存储器存放程序和数据的数量。 位&#xff08;Bit&#xff09;&#xff1a;计算机当中最小的信息单位 存放一个二进制位数&#xff0c;即 0 或 1字节&#xff08;Byte&#xff09;&#xff1a;计算机中的基本信息单位 常用的单位字&#xff08;Wo…

计算机原理(一)

计算机基本原理 现代计算机&#xff0c;大部分都是基于冯诺依曼体系结构&#xff0c;而我们这里谈论的也是此问前提。冯诺依曼的核心是&#xff1a;存储程序&#xff0c;顺序执行。所以不管计算机如何发展&#xff0c;基本原理是相同的。计算机程序实际上是告诉计算机做…

计算机组成原理——算术逻辑单元(ALU)

逻辑门器件&#xff08;与或非&#xff09; 与门 两个数相与&#xff0c;当两个都为1&#xff0c;结果才为1&#xff0c;一旦有一个0结果就是0 或门 两个数相与&#xff0c;当有一个数等于1&#xff0c;结果就为1&#xff0c;当两个数都为0时结果才为0 非门 一个数取反 …

计算机模型

计算机模型 1、图灵模型 图灵机&#xff1a;一种可以计算任何数据的特殊机器&#xff1b;一台优秀的计算机必须具备和图灵机一样的运算 首先将计算机定义成一个 数据处理器&#xff0c;数据处理器对输入的数据进行处理&#xff0c;后再将处理后的数据输出。 此模型弊端&…

计算机的计算单位

容量单位 在物理层面&#xff0c;高低电平记录信息理论上只认识0/1两种状态0/1能够表示的内容太少了&#xff0c;需要更大的容量表示方法0/1称为bit&#xff08;比特位&#xff09;字节&#xff1a;1Byte 8bits 硬盘商一般使用10进位标记容量&#xff0c;500G一般格式化后只…

计算机的核心:ALU(算术和逻辑单元)

本节我们将揭秘计算机的核心部件&#xff1a;算术和逻辑单元。了解计算机里基础的加法&#xff0c;左移&#xff0c;右移&#xff0c;非&#xff0c;与&#xff0c;或&#xff0c;异或&#xff0c;比较操作是如何被选择和处理的。 算术和逻辑单元 目前&#xff0c;我们已经见到…

计算机组成.计算机在计算啥.运算与ALU

一身冷汗原本打算在iPad上写下一篇“处理器”。上一次用iPad写的这篇在打开浏览器后还保存着&#xff0c;我就直接删掉重写了。结果把原本的我的这篇给覆盖了……幸亏我有备份……不过格式还是得再MarkDown上重新调整……心好累 突然发现在iPad的网页上也可以写博客哎&#xff…

云平台常见风险

0x00 前言 云技术&#xff08;Cloud technology&#xff09;基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称&#xff0c;可以组成资源池&#xff0c;按需所用&#xff0c;灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务…

OneNET云平台设备数据管理工具

联系电话&#xff1a;15712339322 1 产品介绍 终端设备上报数据到OneNET云平台&#xff0c;除了云平台可以提供的可视化web页面外&#xff0c;还可以通过定制数据管理工具的方式对云数据进行展示。在该版本中提供对最细粒度的数据样本展示。基于最细粒度的基础上&#xff0c;…

混合云平台打破数据壁垒

导读数字经济时代&#xff0c;作为塑造企业未来竞争力的关键&#xff0c;数据的价值正受到越来越多企业的关注。与传统生产要素相比&#xff0c;数据作为新型生产要素&#xff0c;具有更强的可复制性、更易共享、且可无限增长和供给&#xff0c;使突破有限自然资源供给对经济增…

云平台包含的基本特征介绍

1&#xff09;按需自助服务。消费者无需同服务提供商交互就可以自动地得到自助的计算资源能力&#xff0c;如服务器的时间、网络存储等&#xff08;资源的自助服务&#xff09;。 2&#xff09;无所不在的网络访问。借助于不同的客户端来通过标准的应用对网络访问的可用能力。…