计算机基本硬件由 运算器、控制器、存储器、输入和输出设备 5部分组成。

CPU 是硬件核心系统的核心,用于加工处理、能够完成各种算数、逻辑运算以及控制功能。

1. 中央处理单元(CPU)

计算机系统的核心部件 - 中央处理单元(CPU),负责获取程序指令、对指令进行编码并加以执行。

1.1. CPU 的功能

  1. 程序控制:CPU通过执行命令来控制程序的顺序执行,这是CPU的重要功能

  2. 操作控制:一条指令功能的实现需要多种信号配合来完成。CPU 产生每条指令的操作信息并将操作信号送往对应的部件,控制对应的部件按指令的功能要求进行操作

  3. 时间控制:CPU对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间,持续时间及出现的时间顺序都需要进行严格控制

  4. 数据处理:CPU 通过对数据进行算术运算及逻辑运算等方式进行加工处理,数据加工处理的结果被人们所利用。所以,对数据的加工处理也是CPU最根本的任务

此外,CPU 还需要对系统内部和外部的中断(异常)做出响应,进行对应的处理。

1.2. CPU 的组成

  1. 运算器

运算器的组成:算术逻辑单元(ALU)、累加寄存器、数据缓冲器和状态条件寄存器。是数据加工处理的部件,用于完成计算机的各种运算和逻辑预算。

  • 执行所有的 算术运算

  • 执行所有的 逻辑运算 并进行逻辑测试

运算器组成

算术逻辑单元(ALU)

负责处理数据,实现对数据的算术运算和逻辑运算

累加寄存器(AC)

通用寄存器,当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作环境

数据缓冲寄存器(DR)

作为CPU和内存、外部设备之间数据传送的中转站

状态条件寄存器(PSW)

保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容。

  1. 控制器

控制器用于控制整个CPU的工作,决定了计算机运算过程的自动化

指令 = 操作码 + 地址码。例如1 + 2 中 1 2 为地址码;+ 为操作码

控制器组成

指令寄存器(IR)

保存当前CPU 执行的指令

程序计数器(PC)

初始时保存的内容是程序第一条指令的地址,执行命令时,CPU自动修改PC的内容对PC加1,使其保持的总是要执行的下一条指令的地址

地址寄存器(AR)

保存当前CPU所访问的内存单元的地址

指令译码器(ID)

对指令中的操作码字段进行分析解释,识别该指令规定的操作,向控制器发出信息,控制各部分工作,完成所需的功能

2. 计算机进制

2.1 计算器基本单位

单位

描述

转换

bit(b) 最小的数据单元

字节

Byte(B) 最小的存储单位

1B = 8bit

千字节

KM

1KB = 1024B = 210 B

兆字节

MB

1MB = 1024KB

吉字节

GB

1GB = 1024MB

太字节

TB

1TB = 1024MB

2.2. 进制

十进制(D): 0-9

二进制(B): 0,1

八进制(O): 0-7

十六进制(H): 0-15

进制转换规则:

  • 按权展开求和:n进制 -> 十进制

  • 除n取余法:十进制 -> n进制

进制加减法:

  • 加法:递 n 进 1

  • 减法:借 1 当 n

3. 原码、反码、补码、移码

数值在计算机中的表示为机器数,特点是采用二进制来表示

对于n位的机器数其表示编码移 原码、反码、补码、移码等表示

以下均假设 n = 8;

原码:最高位是符号位,0 表示正号,1表示负号,其余的n-1位表示数值的绝对值。

数值 0 的原码有两种表示形式:[+0] = 0 000 0000,[-0] = 1 000 0000

反码:最高位是符号位,0 表示正号,1表示负号,其余的n-1位表示数值的绝对值。其中,整数的反码与原码相同负数的反码则是除了符号位以外其余各位 按位取反

数值 0 的反码有两种表达形式:[+0] = 0 000 0000,[-0] = 1 111 1111

补码:最高位是符号位,0 表示正号,1表示负号,其余的n-1位表示数值的绝对值。其正数的补码与原码相同,负数的补码则是在其反码的基础上加 1补码的正负零相同,同时对补码再求一次补码等于其原码。

在补码表示中,0有唯一的编码:[+0] = [-0] = 0 000 0000

移码:正数和负数的移码都是在其补码的基础上对符号位取反。

4. 浮点数

阶码不一致,先对阶,小阶向大阶对其,尾数右移。

浮点数所能代表的数值范围由阶码决定,所表示数值的精度由尾数决定。

当机器字节长度为n时,补码和移码可表示个数(0的表示由相同的编码)

原码和反码只能表示个数(0的表示占了两个编码)

如果浮点数的阶码(包括1位阶符)用R位移码表示,尾数(包括1位阶符)用M位的补码表示,则这种浮点数所能表示的数值范围如下。

5. 寻址

  • 立即寻址。操作数就包括在指令中。

  • 直接裙纸。操作数存放在内存单元中,指令中支架给出操作数所在存储单元的地址。

  • 寄存器寻址。操作数存放在某一寄存器中,指令中给出存放操作数的寄存器名。

  • 寄存器间接寻址。操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中。

  • 间接寻址,指令中给出操作数地址的地址。

  • 相对寻址。指令地址码给出的是一个偏移量(可正可负),操作数地址等于本条指令的地址加上该偏移量。

  • 变址寻址。操作数地址等于变址寄存器的内容加偏移量。

6. 校验码

码距:一个编码方案中任意两个合法编码之间至少有多少个二进制位不同。

码距=2 有检错能力,码距> 2 才可能移纠错能力,也就是一个校验码要能够检错和纠错能力他的码距至少是3。

6.1 海明码

海明码利用多数组位的奇偶性来检错和纠错,可以检错和纠错,码距为3.

设数据位是n位,校验码是k位,则n和k必须满足 2k -1 >= n + k

6.2 奇偶校验码

码距为2,仅能检测出奇数位错误,不能纠错。

奇校验:增加一位校验码,使得编码中1的个数为奇数

偶校验:增加一位校验码,使得编码中1的个数为偶数

6.3 循环冗余校验码

k个数据位后跟着r个校验位,可以检错但不能纠错,码距为2,才有模2运算得到校验码。