【计算机组成原理】考纲第二章 数据的表示和运算
考纲 (二)、数据的表示和运算
数制与编码
定点数和浮点数的表示和运算
算术逻辑单元 ALU
- 串行加法器和并行加法器
- ALU 的功能和结构
2.1 数制与编码
2.1.0 概览
推荐课程 车向泉老师《计算机系统中的数据表示》

2.1.1 数制及进制转换
-
基数 $r$:数制所使用数码的个数。例如,二进制的基数为2(0和1);十进制的基数为10(0~9)。
-
**位权 $ri$:**数制中某一位上的1所表示数值的大小。例如,二进制的位权为$2i$,$i$ 为所在位数。
-
不同进制数的转换
-
⑵ ⇨ ⑻ / ⒃ :二进制的3(4)位编为一组就是1位八(十六)进制的数码;

-
• ⇨ ⑽ :各位数码与它们的权值相乘,再把乘积相加;

-
⑽ ⇨ • :基数乘除法,整数部分用除基取余,小数部分用乘基取整。

-
2.1.2 编码
-
真值: 实际值(带正负号);机器数:数的符号和数值一起编码,“符号数字化”,如原码、补码、反码等。
-
数值编码(见 2.2)
-
非数值编码
- 逻辑数据编码(1位):真(1),假(0);
- 西文字符编码(ASCII码,7位)
- 包含0-9、A-Z、a-z、专用符号($, %, +……)等128个字符;
- 编码值为031为控制字符;<u>32126为可印刷字符。
- 汉字编码(GB,16位)
- 输入码:用于汉字的输入,如拼音码、五笔字型码;
- 内码:用于汉字存储、查找、传送等,基于国标码,占 2 个字节;
- 点阵码或汉字向量描述:用于汉字的显示和打印。
- 国际多字符集(Unicode,2字节)
-
*** 校验码**
2.2 定点数
- 无符号数:数值编码中只有数值位,没有符号位,表示正整数;
- 有符号数:设置符号位,0表示正,1表示负,表示带符号整数或小数。
2.2.1 定点数的表示
以下假设需要表示的数的字长为 n+1。 [🔗附:博客讲解]
-
原码:最高位表示符号,其余各位表示数的绝对值。
容易理解,但是,① “0”的表示不唯一;②加、减运算不统一;③需要对符号位单独处理,不利于硬件设计。
-
纯小数 $-(1-2^{-n})\leq x\leq 1-2^{-n}$

-
纯整数 $-(2^n-1)\leq x\leq 2^n-1$

-
-
反码:正数的反码是其本身;负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
-
纯小数 $-(1-2^{-n})\leq x\leq 1-2^{-n}$

-
纯整数 $-(2n-1)\leq2n-1$

-
-
补码:正数补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
① “0”的表示唯一;②加减法统一;③符号位参与运算,不需要单独处理。
-
纯小数 $-1\leq x\leq 1-2^{-n}$

-
纯整数 $-2^n\leq x\leq 2^n-1$

-
-
移码:真值x加上一个常数(偏置值),通常这个常数取 $2^n$,相当于x在数轴上向正方向偏移了若干单位。
-
计算

-
特点

-
-
小结

2.2.2 定点数的运算
-
移位运算
-
算术移位(有符号数)

-
逻辑移位(逻辑代码、无符号数):左移右移都补0
-
循环移位:带进位标志位CF的大循环和不带CF的小循环
-
-
加减运算
-
原码

-
补码:直接加减
-
-
符号扩展
-
正数:空位用 0 填充。 e.g. 01010101(8位) → 0000……1010101(32位)
-
负数 e.g. 10101010(8位)
-
原码:空位用 0 填充。 1000……0101010(32位)
-
反码:空位用 1 填充。 1111……0101010
-
补码:分情况讨论。
整数:空位用 1 填充。1111……0101010 ;
小数:空位用 0 填充。1000……0101010
-
-
-
溢出检测
-
乘除运算
*2.2.3 C语言中的整数转换
- 无符号数 ↔ 有符号数
- 长字长 ↔ 短字长
*2.2.4 数据的存储和排列
-
现代计算机采用 字节编址,即每个地址编号中存放 1 字节。
-
最低有效字节(LSB) 和 最高有效字节(MSB):e.g. 32位机器数01_23_45_67 H 的 LSB = 67H,MSB = 01H
-
多字节存放方式:大端存储(big endian) 与 小端存储(little endian)

2.3 浮点数
2.4 算数逻辑单元 ALU
2.4.0 预备知识 - 逻辑代数
⑴ 门电路
是能实现某种逻辑关系的电路,它是数字电路中的基本逻辑单元电路。
数字电路分类: 组合逻辑电路 和 时序逻辑电路

⑵ *晶体管和MOS管、逻辑门电路实现
⑶ 逻辑代数
① 基本运算

② 基本定律

③ 基本定理
-
代入定理:在任何一个包含某个相同变量的逻辑等式中,用另外一个函数式代入式中所有这个变量的位置,等式仍然成立。
-
反演定理:将原函数F中的全部“•”换成“+”,“+”换成“•”,“0”换成“1”,“1”换成“0”,原变量换成反变量,反变量换成原变量,所得到的新函数就是原函数的反演式。

-
对偶定理:与反演定理的变换规则类似,但不将原变量与反变量互换。若已知某公式成立,则其对偶式仍成立。
④ 常用公式
⑤ 常用表达式

⑦ 标准表达式
-
最小项表达式 是全部由最小项构成的 与或式 (积之和式,又称标准与或式)
-
最大项表达式 是全部由最大项构成的 或与式 (和之积式,又称标准或与式)
-
最大项与最小项的编号(下标 $i$ 相同的最小项与最大项 互补,即 $m_i=\overline{M_i}$)

-
标准表达式可由真值表直接得出

⑧ 设计优化
- 面积优化:使设计的电路或系统占用的逻辑资源尽可能少
- 逻辑函数的简化是面积优化的一种方式
- 时间优化:使设计的电路或系统的输入信号到达输出的路程尽可能短
- 优化方法
- “与或”表达式的化简:1.乘积项的个数最少(用门电路实现,用的与门数最少);2.在满足1的条件下,乘积项中的变量最少(与门的输入端最少)
- “或与”表达式的化简:1.利用对偶定理化成“与或式”;2.化简;3.再转化为“或与”式
- 常用简化法:合并乘积项法、吸收项法、配项法
2.4.1 组合逻辑电路
是将逻辑门以一定的方式组合在一起,使其具有一定逻辑功能的数字电路。
-
组合逻辑电路的特点
-
输出不能再直接反馈到输入(不能有环路),没有存储电路
-
是一种 无记忆 电路 —— 任一时刻的输出信号,仅取决于该时刻的输入信号,而与信号作用前电路原来所处的状态无关。
-
-
组合逻辑电路的四种表示方式

2.4.2 运算单元电路
⑴ 加减法运算的规则
$$
[A+B]_补=[A]_补+[B]_补 \
[A-B]_补=[A]_补+[-B]_补=[A]_补+\overline{[B]_补}+1
$$
⑵ 半加器(不考虑低位的进位)
能对两个1位二进制数进行相加求和,并向高位进位的逻辑电路

⑵ 全加器(考虑低位的进位)
能对两个1位二进制数进行相加并考虑低位来的进位、求得和并向高位进位的逻辑电路

-
HDL建模(算法级描述 - 根据真值表)
module adder_1(A, B, CI, SO, CO); input A, B, CI; output SO, CO; assign SO = (!A && !B && !C) || (!A && !B && C) || …… ; assign CO = (!A && B && C) || (A && !B && C) || …… ; endmodule -
HDL建模(系统级描述 - 根据逻辑功能定义)
module adder_2(A, B, CI, SO, CO); input A, B, CI; output SO, CO; assign {CO, SO} = A + B + CI; endmodule
⑷ 并行加法器
① 串行进位
计算速度取决于进位产生和传递的速度,具体见下。
② 并行进位
| 串行进位 | 并行进位 | |
|---|---|---|
| 示意图 | ![]() |
![]() |
| 进位链 | ![]() |
![]() |
| 特点 | 1. 进位串行传递 2. 进位延时较长 |
1. 同时产生进位,加法延时缩短 2. 实现较为复杂 |
③ 分组并行进位加法器
其实下面两种加法器分别对应了上表中的“串行进位”与“并行进位”,不同之处在于组内使用的加法器为并行加法器而非一位全加器。(可无限套娃)
| 组内并行,组间串行 | 组内并行,组间并行 |
|---|---|
![]() |
![]() |
module adder_3(a,b,cin,sum,cout);
parameter width=8;
input [width-1:0] a,b;
input cin;
output [width-1:0] sum;
output cout;
assign {cout,sum} = a+b+cin;
endmodule
⑸ *阵列乘法器
⑹ *数值比较器
⑺ 算数逻辑运算单元 ALU
功能:逻辑运算、算数运算、比较
| 抽象表示 | 具体示例:1位ALU |
|---|---|
![]() |
![]() |









浙公网安备 33010602011771号