计算机原理概述

1.计算机发展史

人类对计算的需求从古至今一直存在的, 人均算力在不断攀升
第一阶段
一个国家组织共同使用一台计算机
第二阶段
一个商业组织共同使用一、多台计算机
第三阶段
PC — 以家庭为单位开始使用计算机
第四阶段
以个人为单位使用计算机
未来
一个人会有很多计算机

2.计算机体系结构

冯诺依曼体系

指令只是一种特殊的一些数据
处理器(CPU) = 运算器 + 控制器
存储器(Memory) = 内存
外部数据(物理数据)进入到存储器----输入设备(Input Device)
存储器内的数据出来到外部世界----输出设备(Output Device)
在这里插入图片描述
内部的数据交换通过总线(BUS)

现代计算机发展遵循的基本结构形式是冯·诺依曼机体系结构。
主要特点有:

1.机器以运算器为中心
2.采用程序存储思想
3.将软件和硬件完全分离
4.指令和数据一样可以参与运算
5.数据以二进制表示
6.指令由操作码和操作数组成
7.指令顺序执行

程序 = 指令 + 数据
只有指令,最终在运行阶段时,被运行程序的计算机的 CPU 去执行
在这里插入图片描述

3.广义数据的存储

(1).非数数据 都会按照一定的标准格式编码成整数。但表示的数据可能是整数、指令、字符、图片、声音等…

字符串 >> Unicode编码 (ASCII 编码是其字节)
图片 >> RGB 编码
声音 >> 波形

(2). 类型的数据在内存中的表示方法:整数(整数型)、小数(浮点型)…

有限范围内的整数表示:正码、反码、补码
有限范围的小数表示:IE标准

4.CPU的基本工作原理

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

逻辑门

  1. 非门
    在这里插入图片描述
  2. 与门
    在这里插入图片描述
  3. 或门
    在这里插入图片描述
  4. 异或门
    在这里插入图片描述

算数逻辑单元(ALU)

算数:加法、减法、乘法、除法、取余
逻辑:与、或、非
利用与或非 + 异或门构建 8 位加法器

进制的理解

246 = 2 * 10 ^ 2 + 4 * 10 ^ 1 + 6 * 10 ^ 0
0b11011 = 1 * 2 ^ 4 + 1 * 2 ^ 3 + 0 * 2 ^ 2 + 1 * 2 ^ 1 + 1 * 2 ^ 0
13进制数:【13A6】1 * 13 ^ 3 + 3 * 13 ^ 2 + A * 13 ^ 1 + 6 * 13 ^ 0

在这里插入图片描述
8 位数的加法器 = 7 * 全加器 + 1 * 半加器
半加器:进行两个1位数的相加
在这里插入图片描述
全加器:进行三个1位数的相加
在这里插入图片描述

8位数 != 0判断

0000 0000 > 0
0000 0001 > 1

1111 1111 > 1
在这里插入图片描述

ALU组成

CPU 是计算机的核心、ALU 是 CPU 的核心
所有程序的执行,本质上都是计算 + 读取 + 存入
程序:
opcode1 + a1 + b1
opcode2 + a2 + b2
opcode3 + a3 + b3

a、b都是需要寄存器来临时保存数据的
同理、计算的结果也是需要寄存器来保存的
在这里插入图片描述三个输入:
A:要参与计算的第一个数。
B:要参与计算的第二个数。
C:操作码(opcode),本次的运算是什么,指导ALU进行什么运算。

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

控制单元CU

CU具有的两个功能
1、控制register <~> memory数据传递的指令
2、驱使ALU进行计算
CU中有两个很重要的寄存器(RAM)
(1)PC寄存器(Program Counter)程序计数器寄存器,下一条要执行的指令在内存中的地址
(2)IR寄存器(Instruction Register)指令寄存器 ,下一条要执行的指令
指令(Instruction)
指令作为一种特殊的数据,完全也是以整型的形式保存在内存中。
所谓指令,即指导 CPU 进行工作的命令,主要有操作码 + 被操作数组成。 指令本身也是一个数字,用二进制形式保存在内存的某个区域中。
在这里插入图片描述
取码阶段
CU根据PC(0)寄存器的值,去内存的响应位置,读取指令(00101110)到IR寄存器。(正常情况下,PC寄存器中的值自动 + 1.)
解码阶段
CU按照预先设计的指令集解读指令数据(opcode + 操作数)
0010 1110,人为规定前面四位为opcode(查询指令表可以知道0010代表的意思),后四位才是地址(后四位指定内存的处),地址为10进制的14,从地址为14的内存中加载数据,加载到例如图中A寄存器中。

执行阶段(CU)
LOAD指令应该由CU执行,所以按照规定执行指令:
从内存为14号地址处将数据(00000011)被读到A寄存器中,就执行结束。

工作流程
取码 -> 解码 -> 执行

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值