跳转到内容

08、公式与题型速查

这份是考前快速翻看的版本。详细解释看前面的分章节资料。

教材页码说明:本速查默认标注《计算机组成原理(微课版)第 2 版》的印刷页码,PDF 阅读器页码通常约为“教材页码 + 13”。系统结构相关内容会单独标注《计算机系统结构 第 2 版》,这本书 PDF 阅读器页码通常约为“教材页码 + 11”。


教材查阅:数的机器码第 18-23 页;补码加减和溢出第 57-61 页。

2n1x2n11-2^{n-1} \leq x \leq 2^{n-1}-1 [x+y]=[x]+[y][x+y]_{补}=[x]_{补}+[y]_{补} [xy]=[x]+[y][x-y]_{补}=[x]_{补}+[-y]_{补}
双符号位结果
00正数,无溢出
01正溢,上溢
10负溢,下溢
11负数,无溢出

记忆:

两个符号位相同:无溢出
两个符号位不同:有溢出

教材查阅:浮点数表示第 25-29 页;浮点加减第 78-81 页。

固定步骤:

1. 检查规格化
2. 对阶:小阶向大阶对齐,尾数右移
3. 尾数加减
4. 规格化:左规或右规
5. 舍入
6. 判断阶码溢出
7. 写最终结果

左规:

尾数左移,阶码减 1

右规:

尾数右移,阶码加 1

教材查阅:存储系统第 90-114 页;RAM/ROM 第 95-105 页;主存与 CPU 连接第 109-111 页。

若有 nn 根地址线:

寻址单元数=2n寻址单元数=2^n

若芯片有 NN 个存储单元:

片内地址线=log2N片内地址线=\log_2N 末地址=首地址+容量1末地址=首地址+容量-1
字长不够:位扩展
容量不够:字扩展
都不够:字位同时扩展
高位地址线
A15~A13 -----------------> 译码器 ---- CS_ROM
| \- CS_RAM
|
低位地址线 v
A12~A0 ----------------+-----> ROM 地址端
\-----> RAM 地址端
D7~D0 <--------------------> ROM/RAM 数据端
RD --------------------------> ROM OE
RD --------------------------> RAM OE
WR --------------------------> RAM WE

速记:

低位地址线:进芯片,找片内单元;
高位地址线:进译码器,决定选哪片;
ROM:主要读,接 OE/RD;
RAM:可读可写,接 OE/RD 和 WE/WR;
数据总线:共用,但同一时刻只能一片芯片被选中。

教材查阅:第 111-114 页。

设模块字长 ww,存储周期 TT,总线周期 τ\tau,连续读 nn 个字。

数据量:

q=wnq=wn

顺序访问时间:

t=nTt_{顺}=nT

顺序带宽:

W=wTW_{顺}=\frac{w}{T}

交叉访问时间:

t=T+(n1)τt_{交}=T+(n-1)\tau

交叉带宽:

W=wnT+(n1)τW_{交}=\frac{wn}{T+(n-1)\tau}

教材查阅:第 114-130 页,地址映射重点看第 118-127 页。

主存地址=标记+块内地址主存地址=标记+块内地址 主存地址=标记+行号+块内地址主存地址=标记+行号+块内地址

映射:

Cache行号=主存块号modCache行数Cache行号=主存块号\bmod Cache行数 主存地址=标记+组号+块内地址主存地址=标记+组号+块内地址

映射:

Cache组号=主存块号modCache组数Cache组号=主存块号\bmod Cache组数

简单形式:

ta=Htc+(1H)tmt_a=Ht_c+(1-H)t_m

若题目说先访 Cache,未命中再访主存:

ta=Htc+(1H)(tc+tm)t_a=Ht_c+(1-H)(t_c+t_m)

效率:

e=tctae=\frac{t_c}{t_a}

教材查阅:第 149-162 页。

操作码 nn 位,可表示:

2n2^n

条指令。

寄存器编号 nn 位,可表示:

2n2^n

个寄存器。

地址字段 nn 位,直接寻址范围:

2n2^n

个地址单元。

扩展操作码规则:

短码至少给长码留下扩展标志
不要把短操作码全部用完

教材查阅:第 152-159 页。

寻址方式有效地址或操作数
立即寻址操作数在指令中
直接寻址EA=AEA=A
间接寻址EA=(A)EA=(A)
寄存器寻址操作数在 RiR_i
寄存器间接EA=(Ri)EA=(R_i)
变址寻址EA=A+(IX)EA=A+(IX)
基址寻址EA=A+(BR)EA=A+(BR)
相对寻址EA=(PC)+AEA=(PC)+A

教材查阅:第 191-217 页。

R[rd]R[rs]+R[rt]R[rd]\leftarrow R[rs]+R[rt] R[rd]R[rs]R[rt]R[rd]\leftarrow R[rs]-R[rt] R[rt]R[rs]+SignExt(imm)R[rt]\leftarrow R[rs]+SignExt(imm) R[rt]M[R[rs]+SignExt(imm)]R[rt]\leftarrow M[R[rs]+SignExt(imm)] M[R[rs]+SignExt(imm)]R[rt]M[R[rs]+SignExt(imm)]\leftarrow R[rt]
若 R[rs] == R[rt],则 PC 取分支目标地址

教材查阅:第 228-239 页。

直接控制法:

n个微命令需要nn个微命令需要n位

字段直接编码法:

若一组有 mm 个互斥微命令:

log2(m+1)\lceil \log_2(m+1) \rceil

位。

+1 是因为要留空操作编码。


教材查阅:组成原理教材第 254-280 页;系统结构教材第 76-88 页。

kk 段流水线,完成 nn 个任务,每段时间 Δt\Delta t

流水线总时间:

T=(k+n1)ΔtT=(k+n-1)\Delta t

吞吐率:

TP=n(k+n1)ΔtTP=\frac{n}{(k+n-1)\Delta t}

加速比:

S=nkk+n1S=\frac{nk}{k+n-1}

效率:

E=nk+n1E=\frac{n}{k+n-1}

教材查阅:系统结构教材第 89-93 页;具体预约表、冲突向量、状态转换图题型按课程 PPT 和课堂例题复习。

延迟禁止表:

同一功能段行内,被占用格子的时间距离

状态转移:

Cnew=(Cold>>d)C0C_{new}=(C_{old}>>d)\lor C_0

平均延迟:

dˉ=d1+d2++drr\bar d=\frac{d_1+d_2+\cdots+d_r}{r}

吞吐率:

TP=1dˉΔtTP=\frac{1}{\bar d\Delta t}

教材查阅:系统结构教材第 122-125 页;具体 Cube、PM2I、Shuffle、Butterfly 函数写法按课程 PPT 和课堂例题复习。

N=2nN=2^n

Cubei(P)=P2iCube_i(P)=P\oplus 2^i PM2+i(j)=j+2i(modN)PM2_{+i}(j)=j+2^i \pmod N PM2i(j)=j2i(modN)PM2_{-i}(j)=j-2^i \pmod N
循环左移
Exchange(P)=P1Exchange(P)=P\oplus 1
最高位和最低位交换

教材查阅:系统结构教材第 187-201 页、第 203-230 页可作并行模型和并行算法背景;BSP/PRAM 公式以课程 PPT 和课堂例题为准。

TBSP=mN(tmulti+tadd)+log2N(gh+l+tadd)T_{BSP}= \frac{m}{N}(t_{multi}+t_{add})+ \log_2N(g h+l+t_{add}) Sp=m(tmulti+tadd)TBSPS_p= \frac{m(t_{multi}+t_{add})}{T_{BSP}} TPRAM=mN(tmulti+tadd)+log2NtaddT_{PRAM}= \frac{m}{N}(t_{multi}+t_{add})+ \log_2N\cdot t_{add} Sp=m(tmulti+tadd)TPRAMS_p= \frac{m(t_{multi}+t_{add})}{T_{PRAM}}

考前至少确认自己能独立完成:

补码加减与溢出判断
浮点加减完整步骤
主存芯片扩展和地址范围
Cache地址字段划分
指令格式字段位数计算
lw/sw/beq/addi/add/sub数据通路
微指令字段编码位数
流水线吞吐率/加速比/效率
非线性流水线冲突向量和状态图
Cube/PM2I/Shuffle/Butterfly计算
BSP/PRAM公式代入

总线带宽=总线宽度×总线频率×每周期传送次数总线带宽=总线宽度\times 总线频率\times 每周期传送次数

注意 bit 和 Byte 换算:

8bit=1B8bit=1B
链式查询:3 根控制线
计数器定时查询:2 + log2 n 根控制线
独立请求:控制线最多,响应最快,硬件最复杂
中断:CPU 执行服务程序搬运或处理数据
DMA:DMA 控制器控制设备接口与主存之间直接传送数据

DMA 数据通路:

设备接口 ↔ 主存
M = Modified,已修改
E = Exclusive,独占
S = Shared,共享
I = Invalid,无效
TSISD=ntmulti+(n1)taddT_{SISD}=n t_{multi}+(n-1)t_{add}