文章目录
前言
本文意在从高层次总览一系列计算机话题,帮助“计算机小白”快速入门计算机科学。
相关课程链接如下:(配合课程,使用效果更佳!!)
Youtube 原视频:https://www.youtube.com/playlist?list=PL8dPuuaLjXtNlUrzyH5r6jN9ulI
Bilibili(特别鸣谢CrashCourse字幕组的辛苦付出,你们是真正的共产主义者):https://www.bilibili.com/video/BV1EW411u7th?spm_id_from=333.337.search-card.all.click
(可不可以点个赞呢,支持下博主,爱你哟,顺着评论区回访!!!)
五、算术逻辑单元
1、什么是算术逻辑单元
1 命名:简称 ALU,Arithmetic&Logic Unit
2 组成:ALU 有 2 个单元,1 个算术单元和 1 个逻辑单元(Arithmetic Unit 和 Logic Unit)
3 作用:计算机中负责运算的组件,处理数字/逻辑运算的最基本单元。
2、算术单元
1)基本组件:由半加器、全加器组成
半加器、全加器由 AND、OR、NOT、XOR 门组成
2)加法运算
1 组件:AND、OR、NOT、XOR 门
2 元素:输入 A,输入 B,输出(均为 1 个 bit,即 0 或 1)
3 半加器:
作用:用于计算个位的数字加减。
输入:A,B
输出:总和
sum:总和 carry:进位
4 全加器:
作用:用于计算超过 1 位的加法(ex:1+1+1),由于涉及进位,因此有 3 个输入(C 充当进位)。
原理图示:
3)如何用半加器与全加器做 8 位数的加法
说明:以 8 位行波加法器为例
用半加器处理第 1 位数(个位)的加法,得到的和为结果的第 1 位。
将输出的进位,输入到第 2 位用的全加器的输入 C 中。
将第 2 位的 2 个数用全加器计算,得到的和为结果的第 2 位(sum)。
将第 2 位计算的进位连接到百位的全加器输入 C 中。
在第 3-8 位上,循环第 3-4 步的操作。
注:*现在电脑使用的加法器叫“超前进位加法器”
4)算术单元支持的其他运算
3、溢出的概念
内容:在有限的空间内,无法存储位数过大的数,则称为溢出。
说明:第 8 位的进位如果为 1,则无法存储,此时容易引发错误,所以应该尽量避免溢出。
4、逻辑单元
作用:执行逻辑操作,如 NOT、AND、OR 等操作,以及做简单的数值测试。
5、ALU 的抽象
1)作用:ALU 的抽象让工程师不再考虑逻辑门层面的组成,简化工作。
2)图示:像一个大“V”。
3)说明:
图示内容包括:
输入 A,B
输出标志:溢出、零、负数
六、 寄存器与内存
1、概念梳理
锁存器:锁存器是利用 AND、OR、NOT 逻辑门,实现存储 1 位数字的器件。
寄存器:1 组并排的锁存器矩阵:以矩阵的方式来存放锁存器的组合件,n*n 门锁矩阵可存放 n^2 个锁存器,但同一时间只能写入/读取 1 个数字。(早期为 16x16 矩阵)
位址:锁存器在矩阵中的行数与列数。eg.12 行 8 列
多路复用器:一组电线,输入 2 进制的行址&列址,可启用矩阵中某个锁存器
内存(RAM):随机存取存储器,由一系列矩阵以及电路组成的器件,可根据地址来写入、读取数据。类似于人类的短期记忆,记录当前在做什么事情。
2、锁存器
作用:存储 1 位数字。
图示:
2.5、门锁
锁存器需要同时输入 2 个数字,不太方便。
为了使用更方便,只用 1 根电线控制数据输入,发展了门锁这个器件。
另外,用另一根电线来控制整个结构的开关。(和复位作用不同)
3、寄存器
作用:并排使用门锁,存储多位数字
图示:
4、门锁矩阵
作用:
n*n 的矩阵有 n^2 个位址,则可以存储 n^2 个数。但 1 个矩阵只可记录 1 位数字,n 个矩阵组合在一起,才可记录 n 位数。如 1 个 8 位数,会按位数分成 8 个数,分别存储在 8 个矩阵的同一个位址中。
eg:8 个16x16矩阵,则可以记录 256 个 8 位数字。
原因:
16*16 的门锁矩阵虽然有 256 个位置,但每次只能存/取其中 1 个位置的数字。因此,要表示 8 位数字,就需要同时调用 8 个门锁矩阵。
5、内存(RAM)
粗略定义:
将一堆独立的存储模块和电路看做 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,称为立即值。
最后
本篇博客为P5~P8部分
后续博主将持续更新,各位看官莫急呀。
欢迎各位大可爱小可爱的点赞评论加关注!!