计组复习
约 3338 字大约 11 分钟
2025-12-29
一
计算机五大部件组成:
运算器
控制器
存储器(指令和数据以同等地位存于存储器)
输入设备
输出设备
存储程序
冯氏结构核心特征,具有存储程序特征的计算机统称为冯·诺依曼计算机
电子计算机问世至今,计算机类型不断推陈出新,但依然属于冯 · 诺伊曼计算机,其核心特征是 具有存储程序
硬件
主机
CPU
ALU
CU
主存
IO 设备
辅存
输入设备
输出设备
机器字长
- CPU 一次能处理数据的位数,通常与 CPU 中的寄存器位数相等
TM:指令执行的速度
ai:第 i 种指令占全部操作的百分比数
ti:第 i 种指令的执行时间
TM=Σi=1naiti
MIPS:每秒能执行多少百万条指令
- MIPS=IPC×f=f/CPI
FLOPS:浮点运算次数每秒
存储容量:存放二进制信息的总位数
反码是对原码的符号位不变,数值位按位取反得到的编码,分为正数和负数两种情况(以 n 位二进制为例,第 n-1 位为符号位,0 表示正,1 表示负)。
负数的反码:符号位保持 1,数值位对原码的数值位逐位取反
8 位二进制中,−5 的原码为 10000101,数值位取反后反码为 11111010
n位反码的表示范围:−(2n−1−1)∼(2n−1−1)
8 位二进制中,+0 反码为 00000000,−0反码为11111111,这是反码的标志性特点。
移码即为补码对符号位取反
时序电路
- 输出依赖 当前输入+历史状态 (需存储元件记忆状态),如寄存器、计数器。
组合逻辑电路
- 输出 仅依赖当前输入 ,无记忆功能
机器指令由操作码和地址码组成
IR 是 指令寄存器(Instruction Register) 的缩写,是 CPU 控制器中最核心的寄存器之一,专门用于存储 当前正在执行的指令
程序计数器(PC)存储下一条要执行的指令地址
浮点数一般表示形式:N=S×rj
S:尾数,j:阶码,r:尾数的基值
上溢:当浮点数的绝对值太大,导致阶码超过其最大可表示值(阶码溢出上限)
下溢:当浮点数的绝对值太小,导致阶码低于其最小可表示值(阶码溢出下限),此时数值接近零,通常当作 “机器零” 处理
二进制的规格化浮点数需满足 1/2≤∣S∣<1
奇校验:所有位数中 1 的个数为奇数
P=D1⊕D2⊕D3⊕...⊕Dn
检错码 G=P′⊕D1′⊕D2′⊕D3′⊕...⊕Dn′,若 G=1 则一定出错
奇偶校验最小码距为2
海明校验的核心公式围绕 校验位个数确定、编码规则、检错纠错逻辑 展开,以下是考试高频公式及说明(符号统一:n=数据位个数,k=校验位个数,H=海明码位,P=校验位,D=数据位,S=校验因子):
1. 校验位个数 k 的确定公式
需满足:
2k≥n+k+1
- 含义:k 位校验位可生成 2k 种状态,需覆盖“无错”+“n+k 个海明码位的单错定位”,因此需满足上述不等式。
- 例:n=4(4位数据),代入得 23=8≥4+3+1=8,故 k=3。
2. 校验位与海明码的位置对应
校验位 Pi(i=1,2,...,k)固定放在海明码 Hj 的 j=2i−1 位置:
j=2i−1(i=1,2,...,k)
- 例:k=3 时,P1 在 H1(20)、P2 在 H2(21)、P3 在 H4(22),剩余位置放数据位(H3=D1、H5=D2、H6=D3、H7=D4)。
3. 编码公式(偶校验,最常用)
每个校验位 Pi 负责校验“位置二进制含第 i 位1”的海明码位,通过异或运算生成:
Pi=j=1j的二进制第i位为1⨁n+kHj
- 简化:Pi 是对应分组内数据位的异或(因校验位位置仅含自身的二进制位1),例 k=3、n=4 时:
P1=H1⊕H3⊕H5⊕H7=P1⊕D1⊕D2⊕D4(移项后 P1=D1⊕D2⊕D4)
P2=H2⊕H3⊕H6⊕H7=P2⊕D1⊕D3⊕D4(移项后 P2=D1⊕D3⊕D4)
P3=H4⊕H5⊕H6⊕H7=P3⊕D2⊕D3⊕D4(移项后 P3=D2⊕D3⊕D4)
4. 检错纠错公式(接收端)
接收端计算校验因子 Si(与编码分组一致),偶校验下:
Si=j=1j的二进制第i位为1⨁n+kHj′
- 含义:Hj′ 是接收端的海明码位,Si=0 表示对应分组无错,Si=1 表示有错;
- 错误定位:将 SkSk−1...S1 视为二进制数,其值即为错误海明码位的位置(值为0表示无错)。
补充:奇校验公式
仅需在偶校验公式基础上取反:
Pi=j=1j的二进制第i位为1⨁n+kHjSi=j=1j的二进制第i位为1⨁n+kHj′
一位符号位判溢出=数值最高位进位⊕符号位进位=1
两位符号位判溢出,最高符号位代表真正符号
计算机数据分为 数值数据(如整数、浮点数) 和 非数值数据(如字符、汉字、图像)。汉字编码用于表示汉字信息,属于非数值数据,说法无误。
汉字信息处理的完整流程需经过4类核心编码,分工明确:
输入码:用于汉字录入(如拼音码、五笔码);
交换码:用于不同系统间汉字传输(如GB2312、GBK);
机内码:计算机内部存储/处理汉字的统一编码;
字形码:用于汉字输出(如点阵、矢量字模)。 说法完全符合汉字编码的应用逻辑,无误。
点阵字模的特点:需占用较大存储空间(如24×24点阵汉字占72字节),常用汉字库(数千个汉字)体积较大;
存储位置:汉字库通常存放在 外存(如硬盘、ROM芯片) 中,而非主存(内存)。主存是高速临时存储,容量有限,仅用于存放当前运行的程序和数据;输出汉字时,再从外存调入所需字模到主存缓存,而非直接存于主存。
汉字机内码的核心定义是 计算机内部存储、处理汉字的统一编码(如GB2312机内码=国标码+8080H,避免与ASCII码冲突),确保不同部件(CPU、内存、显卡)处理汉字时的一致性
原码一位乘运算
根据数值位 n ,执行 n 次加法和移位
结果:ACC(乘积高位)+MQ(乘积低位)= 完整乘积,X固定存被乘数, PC 不参与运算。
恢复余数法中,只有上商 0 时才需要恢复余数
- 上商 n+1 次,与操作数位数相同。移位 n 次。
存储周期
- 存储器进行连续读或写操作所需的最短间隔时间
存储器访问速度
- 寄存器 > 缓存 > 主存 > 闪存
浮点数规格化判断方式
原码:不论正数、负数,第一数位为1
补码:符号位和第一数位不同
若 RAM 芯片内有 1024 个存储单元,用重合法进行译码时,所有地址译码器加起来共 有几条输出线
- 若 RAM 芯片内有 1024 个存储单元,采用重合法(二维译码)进行译码时,通常将地址线分为行地址和列地址两部分。由于 1024 = 2^10,需要 10 根地址线,通常将地址线平均分为两组,每组 5 根。行译码器将 5 根行地址线译码为 2^5 = 32 条行选线,列译码器将 5 根列地址线译码为 2^5 = 32 条列选线。因此,所有地址译码器输出线的总数为 32 + 32 = 64 条。
用 1K×1 位的存储芯片组成容量为 16K×8 位的存储器,共需几片这样的存储芯片
要组成容量为 16K×8 位的存储器,使用 1K×1 位的存储芯片,需要进行字扩展和位扩展。
位扩展:每个 1K×1 位芯片提供 1 位数据,需要 8 片并联组成 1K×8 位的存储模块。
字扩展:将 1K×8 位的模块扩展为 16K×8 位,需要 16 个这样的模块(因为 16K / 1K = 16)。
因此,总芯片数量为 16 × 8 = 128 片。
主存和 CPU 间由三类总线进行连接,分别为数据总线、地址总线和控制总线。其中, 可以双向传输的总线为 数据总线
现代计算机系统最重要的两个存储层次分别为 主存-辅存 层次和 缓存-主存 层次
存储器有 3 个主要性能指标:速度、容量和位价
主存中一个存储单元所存储的二进制信息的位数被称为存储字长
浮点数加减运算规格化
左规
当尾数符号位和第一数位相同时,需左规(00.0×× ⋯ ×或11.1×× ⋯ ×)
尾数左移一位,阶码减1,直到尾数不溢出,且数符和第一数位不同为止
右规
当尾数溢出(绝对值> 1)时,需右规(01.×× ⋯ ×或10.×× ⋯ ×)
尾数右移一位,阶码加1,直到尾数不溢出,且数符和第一数位不同为止
最高符号位为真正符号,低位符号位为运算结果溢出部分
对双符号位补码来说
最高符号位视为真正符号,移位时需保留
低位符号位可视为数值位
舍入方法
截断法
0舍1法
被移去的最高数值位为0,直接舍去
被移去的最高数值位为1,在尾数的末位加1
可能导致尾数又溢出,需再做一次右规
Nc 为访问Cache的总命中次数, Nm 为访问主存的总次数,则命中率 h
h=Nc+NmNc
主存系统的访问效率 e
e=平均访问时间访问cache的时间×100%
cache命中率为 h ,其中 tc 为访问cache的时间 tm 为访问主存的时间
h×tc+(1−h)×tm
CPU 响应中断的时间是执行周期结束
隐指令是指令系统中没有的指令
基址寄存器内容由操作系统确定,在程序执行过程中不可变。但是形式地址 A 是可变的
基址寻址
隐式 EA=(BR)+A 其中 BR 为基址寄存器, A 为形式地址
显示 EA=(R0)+A 其中 R0 为用户指定的通用寄存器
变址寻址
隐式:采用专门的变址寄存器 IX , EA=(IX)+A
显示:用户指定通用寄存器 R0
变址寄存器的内容可变,形式地址 A 不变
相对寻址
- EA=(PC)+A
基址&变址复合寻址
- EA=(IX)+((BR)+A)
缓存块号有 c 位,块长有 b 位,主存容量可以推出地址位数(长度)
主存字块标记在左,组号(cache块号)在中,块内地址在右。
如果是 n 路组相联映射,则可以减少cache块号改为组号。减少位数即为表示 n 的位数。所以当全相联映射时,就没有中间的了。
译码驱动方式
线选法
地址线数量: n 个单元需要 n 个地址线
选中线(输出线)数量: n 根选中线
重合法
地址线数量: n 个单元拆成 x×y ,x,y 二进制表示需要的位数相加。详见上面
选中线(输出线)数量: x+y 根选中线。
寻址方式
指令寻址
顺序寻址
跳转寻址
数据寻址
立即寻址
可正可负, 补码表示
直接寻址
EA=A
间接寻址
EA=(A) ,执行两次访存
多次寻址
EA=((A)) ,执行三次访存之类的,用存储字的首位来标志间接寻址是否结束
若指令字长 = 存储字长 = 16位
- A < EA = 16位(一次间址)
- A < EA = 15位(多次间址)
寄存器寻址
A=EA=R , R 为寄存器编号
寄存器间接寻址
EA=(R) , R 为寄存器编号
相对寻址
EA=(PC)+A , PC 为程序计数器, A 内容不可变
基址寻址
EA=(BR)+A ,BR 为基址寄存器,也可以是用户指定的通用寄存器。 BR 内容不可变
变址寻址
EA=(IX)+A ,IX 为变址寄存器,也可以是用户指定的通用寄存器。 A 内容不可变
基址变址复合寻址
EA=(IX)+((BR)+A)。
取值周期 -> 间址周期 -> 执行周期 -> 中断周期
如何查找中断服务程序的入口地址?
硬件向量法
软件查询法
中断服务程序
保护现场
其他服务程序
恢复现场
中断返回
总线
片内总线
系统总线
通信总线
总线宽度通常指数据总线的根数
