第一章
基本组成结构
总体图
冯诺依曼型计算机的基本思想是存储程序和程序控制,其中的“存储程序”是指将解题的步骤编写成程序,然后把存储存放到计算机的内存中,而“程序控制”是指控制器读出存放在存储器中的程序并根据该程序控制全机协调工作以完成程序的功能。
根据冯诺依曼型计算机的基本思想,计算机的硬件应该由运算器、控制器、存储器、输入/输出设备和总线组成。
各部件的作用:
运算器:对数据进行运算的部件。
存储器:存放程序和数据。
控制器:根据指令的功能控制构成计算机的各大功能部件协调工作,共同完成指令的功能。
输入设备:将外部信息输送到主机内部的设备。
输出设备:能将计算机内部的信息以不同并且相应的形式反馈给人们的设备。
总线:连接两个或多个设备(部件)的公共信息通路。
计算机的层次结构
CPI MIPS CPU时间计算
例题
第二章 数据表示
原码:将最高位作为符号位(0表示正,1表示负),其它数字位代表数值本身的绝对值的数字表示方式。
反码:如果是正数,则表示方法和原码一样;如果是负数,符号位不变,其余各位取反,则得到这个数字的反码表示形式。
补码:如果是正数,则表示方法和原码一样;如果是负数,则将数字的反码加上1。
移码:数值位与X的补码相同,符号位与补码相反
定点与浮点数据表示
IEEE 754
单精度浮点数:
S + 8位移码 + 23位有效尾数M 单精度
与上述
I
E
E
E
754
IEEE754
IEEE754格式相对应的32位浮点数的真值可表示为
N
=
(
−
1
)
S
×
2
E
−
127
×
1.
M
N = (−1)^S× 2^{E-127}× 1.M
N=(−1)S×2E−127×1.M
奇偶校验
奇校验:就是让原有数据序列中(包括要加上的那位)1的个数为奇数。
偶校验:就是让原有数据列中(包括要加上的那位)1的个数为偶数。
奇偶校验的特点:检测不出多位数据错误,更检测不出错误发生在哪位。
海明校验
特点:
1)指错字 G 4 G 3 G 2 G 1 = 0000 G_4G_3G_2G_1=0000 G4G3G2G1=0000 不一定无错(利用偶校验的特点去判断)
2)指错字不一定能区别一位错与两位错
第三章 运算方法与运算器
定点数运算及溢出检测
[ x ] 补 + [ y ] 补 = [ x + y ] 补 ( m o d M ) [ x ] 补 − [ y ] 补 = [ x − y ] 补 = [ x ] 补 + [ − y ] 补 ( m o d M ) [x]_补+[y]_补 = [x+y]_补 \ \ \ \ (mod M)\\ [x]_补-[y]_补 = [x-y]_补 =[x]_补+[-y]_补 \ \ (mod M) [x]补+[y]补=[x+y]补 (modM)[x]补−[y]补=[x−y]补=[x]补+[−y]补 (modM)
取反技巧:
通过右向左扫描
[
Y
]
补
[Y]_补
[Y]补在遇到数字1及之前,直接输出遇到的数字,遇到1之后,取反输出,即可得到
[
−
Y
]
补
[-Y]_补
[−Y]补,反之亦然!
溢出:运算结果超出了某种数据类型的表示范围。
溢出的检测方法
(1) 对操作数和运算结果的符号位进行检测
当结果的符号位与操作数的符号不相同时就表明发生了溢出
(设 X 0 X_0 X0 , Y 0 Y_0 Y0 为参加运算数的符号位, S 0 S_0 S0 为结果的符号位)
V = X 0 Y 0 S 0 ‾ + X 0 Y 0 ‾ S 0 V=X_0Y_0\overline {S_0}+\overline{X_0Y_0}S_0 V=X0Y0S0+X0Y0S0
当V=1时,运算结果溢出
(2)对最高数据位进位和符号进位进行检测
设运算时最高数据位产生的进位为 C 1 C_1 C1,符号位产生的进位为 C 0 C_0 C0,
溢出检测电路为: V = C 0 ⊕ C 1 V= C_0 ⊕ C_1 V=C0⊕C1
(3)用变型补码
[ X ] 补 = X f 1 X f 2 . X 1 X 2 X 3 … X n m o d 2 n + 2 [X]_补 = X_{f1}X_{f2}. X_1X_2X_3…X_n \ \ mod 2^{n+2} [X]补=Xf1Xf2.X1X2X3…Xn mod2n+2
溢出的判断:
V = X f 1 ⊕ X f 2 V=X_{f1}⊕X_{f2} V=Xf1⊕Xf2
原码⼀位乘法
符号位单独看,乘数取绝对值运算
补码⼀位乘法
运算规则:
(1) 如果** y n + 1 = y n y_{n+1}=y_n yn+1=yn,部分积加0**,部分积算术右移1位;
(2) 如果 y n + 1 y n = 10 y_{n+1}y_n=10 yn+1yn=10,部分积加[x]补,部分积算术右移1位;
(3) 如果 y n + 1 y n = 01 y_{n+1}y_n=01 yn+1yn=01,**部分积加[-x]补,**部分积算术右移1位;
算数右移:符号位保持不变,复制到左边空出来的位。
重复进行n+1步,但最后一步不移位。
原码恢复余数除法
利用减法,通过余数符号判断,部分商减去除数
■ 余数为正数时,够减 ,商上1,将余数左移⼀位,再与除数做减法比较
■ 余数为负数时,不够减,商上0,将余数恢复成原来的值 ,将余数左移⼀位,再与除数做减法比较
■ 重复上述过程直到商达到所需要的位数为止。
原码加/减交替除法(不恢复余数法)
第四章 存储系统
大端存储
数据的高字节存储在低地址中,数据的低字节存储在高地址中 如:
小端存储
数据的高字节存储在高地址中,数据的低字节存储在低地址中 如:
比如0x12345678在内存中的表示形式为:
采用小端模式:
高地址 --------------------> 低地址
0x12 | 0x34 | 0x56 | 0x78
采用大端模式:
高地址 --------------------> 低地址
0x78 | 0x56 | 0x34 | 0x12
内存扩展
位拓展增加存储字长,连接方式是并联:
字扩展是增加字长,连接方式是串联
字位拓展
Cache地址映射(必考)
全相联映射
主存分块,Cache分行,两者大小相同;
直接映射
将主存按cache的行数分成区,将主存中每个组里块号映射到cache中相同块号中。
主存地址: 区号+ 块号 +块内地址
【根据地址,先从Cache中找到对应的块,然后比较Tag,之后根据块内地址访问数据】
组相联映射
主存的组到cache的组之间采用直接映像。选好一个主存的组和相应的cache的组后,组内是全相联映像。
计算
注意是按字节编址还是按字编址
PPT和作业有例题,看例题,公式写的有点抽象
全相联映射
主存标记块号(Tag) | 块内地址(offset) |
---|
直接映射
主存标记区号(Tag) | 块号(索引index) | 块内地址(offset) |
---|
T a g 位数 = 总位数 − 块号位数 − 块内地址位数 Tag位数=总位数-块号位数-块内地址位数 Tag位数=总位数−块号位数−块内地址位数
块号位数 = c a c h e 大小 / 块大小 块号位数=cache大小/块大小 块号位数=cache大小/块大小
组相联
主存标记区号(Tag) | 组号(索引index) | 块内地址(offset) |
---|
区号位数 = 总位数 − 组号位数 − 块内地址位数 区号位数=总位数-组号位数-块内地址位数 区号位数=总位数−组号位数−块内地址位数
替换算法
• 先进先出法—FIFO(First in First out)
• 最不经常使用法—LFU (Least Frequently Used )
• 近期最少使用法— LRU(Least recently used )
• 随机替换法
虚拟存储器
第五章 指令系统
指令的分类
指令的格式
指令寻址方式
寻址方式只有两种!
◆顺序寻址
需要深刻理解 “+1” 存储1条指令占用的字节单元数与存储字长有关!
◆跳跃寻址
操作数寻址方式
立即数寻址
寄存器寻址
直接寻址
间接寻址
■地址码字段给出的是操作数主存地址的地址. E=(D), S= ((D))
寄存器间接寻址
■ 地址码字段给出的是寄存器编号R。E=®,S= (®)
基址寻址
变址寻址
相对寻址
指令格式设计
第六章 CPU
单总线CPU的典型指令数据通路和工作过程
微程序控制器
第七章 流水线
时空图:
第八章 系统总线
总线的组成
性能参数
注意是b还是B
同步定时:信息传送由公共时钟控制,总线中包含时钟线
异步定时:信息传送的每⼀个操作都是由主设备或从设备特定信号的跳变所确定,总线上每⼀个事件的发⽣取决于前⼀个事件的发⽣。
串行传送:特点是只需一条传输线,成本低。当远距离传输时,如几百米甚至几公里以上,采用这种方式比较经济。但是,串行传送速度慢。
并行传送:传送的⼆进位数就是数据宽度。优点是传送速度快。然而,这种方式要求线数多,成本高。因此,在距离不远时可以采用并行传输。