背景

还有七天软考了,还没有准备呢,找个视频看看顺便记录一下笔记。

数值及其转换和数据的表示

进制转换

  1. R 进制 ——> 十进制:按权展开求和
    这个公式太长不好理解,以二进制——>十进制为例:

    1
    2
    3
    10100.01₂ = 1 × 2⁴ + 0 × 2³ + 1 × 2² + 0 × 2¹ + 0 × 2⁰ + 0 × 2⁻¹ + 1 × 2⁻²
    = 16 + 4 + 0.25
    = 20.25₁₀

    进制下标使用 Unicode(如 ₂),指数上标使用 Unicode(如 ⁴, ⁻¹)

    从 个位( 0 × 2⁰) 开始看,向左边依次+1次方递增,向右(小数点后)依次-1次方递减,最后相加就是十进制。
    其中 0 × 2⁰的底数2就是进制R,进制不一样就需要将2换位其他禁止就可以了。

  2. 十进制 → R 进制:整数短除倒余,小数乘基取整
    整数和小数要分开处理:

    • 其中整数除R,取余数倒序排列;
    • 小数部分乘R取整顺序排列;

      例子:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      【整数部分:除 2 取余,倒序排列】
      94 ÷ 2 = 47 ... 余 0 (低位)
      47 ÷ 2 = 23 ... 余 1 ↑
      23 ÷ 2 = 11 ... 余 1 ↑
      11 ÷ 2 = 5 ... 余 1 ↑
      5 ÷ 2 = 2 ... 余 1 ↑
      2 ÷ 2 = 1 ... 余 0 ↑
      1 ÷ 2 = 0 ... 余 1 (高位)
      结果:94₁₀ = 1011110₂
      【小数部分:乘 2 取整,顺序排列】
      0.25 × 2 = 0.5 ... 取整 0 (高位)
      0.5 × 2 = 1.0 ... 取整 1 (低位)
      结果:0.25₁₀ = 0.01₂

真数和机器数

真值:符合人类习惯的数字
机器数:计算机只能识别0和1,数字的绝对值可以使用进制转换,但是正负也需要使用0(正)和1(负)表示。

因此机器数分为:

  • 无符号数:只能表示整数,机器数中没有符号位。
  • 有符号数:原码、反码、补码、移码。

码制

码制分为原码、反码、补码、移码,其中:

  • 正数的原码、反码、补码完全相同,只有负数需要转换。
  • 负数的反码“除符号位全反”,补码是“反码+1”。
  • 正数和负数的移码都是补码符号位取反

定点数和浮点数

  1. 定点数,就是小数点的位置固定不变的数

    • 定点整数,就是纯整数,如123。
    • 定点小数,就是小数位数固定的小数,如0.1。
  2. 浮点数,小数点位置不固定的数,能表示更大的范围。

    • 浮点数通常表示为N = M · Rᴱ,类似科学计数法
      • M称为尾数,R称为基数,E称为阶码。
      • 阶码,决定浮点数所能表示的数值范围;
      • 尾数,决定浮点数所能表示的数值精度。

校验码

数据交换是会出错的,本质上计算机的0和1就是自然界的电信号的正负(古人的阴阳是正确的),在键盘输入传输到主机的时候,可能就会出现其他干扰导致0变成1类似的情况。

因此为了保证数据交换的稳定性:

  • 可以提高硬件电路的可靠性
  • 提高代码校验的能力

校验码,就是用来检测传送的数据是否出错的。

  • 海明码:在数据为之间插入k个校验码,通过扩大码距来实现检错和纠错。
    • 设数据位是n位,校验位是k位,则n和k必须满足以下关系:2-1≥n+k

循环冗余校验码(CRC)在物联网行业运用比较多。
码距:指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。

计算机组成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
【计算机系统五大部件】

┌──────────┐
│ 存储器 │
└───▲──────┘
│ 数据流
│
┌──────────┐ ┌───▼──────┐ ┌──────────┐
│ 输入设备 ├─────►│ 运算器 ├─────►│ 输出设备 │
└────▲─────┘ └───▲──────┘ └─────▲────┘
│ │ │
│ │ 控制流 │
│ │ │
│ ┌───▼──────┐ │
└───────────►│ 控制器 │◄───────────┘
└──────────┘

冯·诺伊曼计算机特点:

  • 计算机由五大部件组成
  • 指令和数据以同等地位存于存储器,可按地址寻访
  • 指令和数据用二进制表示
  • 指令由操作码和地址码组成
  • 存储程序
  • 以运算器为中心

主存储器

要了解这些东西,先要了解存储元,即存储二进制的电子原件,每个存储元可存1bit。

1bit只能存1或者0,属于是计算机存储的最小单元。
那么很多存储元就可以组成存储单元,这样这个存储单元就可以存放一串二进制代码,比如存8bit就是我们常见的1byte。这个8bit就是存储字,这个8bit的8就是存储字长,表示8位二进制数。

机器字长:计算机进行一次数据处理过程中可以处理的数据位数。

现在再来看主存储器的架构:

  • 存储体,就是上面的存储元一系列的东西。
  • MAR:地址寄存器,4位,就是4bit,可以存放2⁴种值。
  • MDR:数据寄存器,16位,就是16bit,8byte,可以存放,2¹⁶种值。

运算器(CPU)

主要实现算数运算和逻辑运算。

  • ACC:累加器,用于存放操作数,或者运算结果
  • MQ:乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。
  • X:通用的操作数寄存器,用于存放操作数。
  • ALU:算术逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算。
  • DR:数据缓存寄存器。
  • PSW:状态条件寄存器,用来保存指令运行标志。

控制器(CPU)

  • CU:控制单元,分析指令,给出控制信号。
  • IR:指令寄存器,存放当前执行的指令
  • PC:程序计数器,存放下一条指令地址,有自动+1功能。
  • AR:地址寄存器,保存当前CPU所访问的内存单元地址。
  • ID:指令译码器,对操作码进行分析。

指令系统

  1. 指令格式:
    一台计算机的所有的指令的集合构成该机的指令系统,也称指令集。
    一条指令就是机器语言的一个语句,它是一组有意义的二进制代码。
    一条指令通常要包括操作码字段和地址码字段两部分:

    • 操作码:指明操作的类型
    • 地址码:主要指明操作数及运算结果存放的地址
  2. 七种寻址方式
    寻找指令中操作数有效地址的方式称为寻址方式。
    立即寻址:操作数作为指令的一部分直接写在指令中,这种操作数称为立即数。
    寄存器寻址:指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。
    直接寻址:指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址。
    寄存器间接寻址:操作数在存储器中,操作数的有效地址用SI、DI、BX和BP四个寄存器之一来指定。
    寄存器相对寻址:操作数在存储器中,其有效地址是一个基址寄存器或变址寄存器中的内容和指令中的8位/16位偏移量之和。
    基址加变址寻址方式:操作数在存储器中,其有效地址是一个基址寄存器和一个变址寄存器的内容之和。
    相对基址加变址寻址:操作数在存储器中,其有效地址是一个基址寄存器的值、个变址寄存器的值和指令中的8位/16位偏移量之和。

  3. 指令的流水处理
    指令控制方式有顺序方式、重叠方式和流水方式三种。

  4. 流水线的计算

输入输出技术

视频地址

https://www.bilibili.com/video/BV1rc411t71D