P1 计组大题备考策略&存储系统串讲
1.基本信息
2.段式和段页式大概率不考大题
3.安装在外存的App,在调入内存的时候大小和外存不等。调入内存时,最多分配的空间和操作系统是多少位有关,比如32位操作系统,给每个进程最多分配4G大小的虚拟地址空间。但实际调入的一般比最大分配的空间要少。
4.虚实地址转换
在取指令和取数据的时候,涉及虚实地址转换,然后去内存中拿数据
5.MAR中存储的是物理地址
PC和IR中存储虚拟地址,在这个虚拟地址里根据页号去TLB中查询实际物理地址,如果命中则直接将物理地址给MAR去内存中读数据;如果没有命中,则根据页表始址寄存器中存储的页表始址,加上页号x页表项大小(相当于一维数组寻址),得到对应页表项的地址,读出其内容就是该虚拟地址的物理存储地址。此外,还会将得到的PA复制一份给TLB。
TLB是相联存储器。
TLB是硬件。
TLB采用全相联映射,每一项设置一个比较器。
进程映像PCB中会存该进程的页表始址,当PCB调入内存时,会将相应的页表始址复制到页表始址寄存器。
比较器是异或逻辑实现的,需要将虚拟页号和TLB标记逐位相异或,相同的时候取0,最后将得到的结果逐位相与,如果是1,则说明每一位都相同,即命中。
6.对于多级页表,比如二级页表,是根据查页目录985H得到二级目录的起始地址1111H找到二级页表,然后根据二级页表211H得到页框号AE866H。
但是复制到TLB的时候,是将一级页表和二级页表的内容(985211H)一起放到TLB标记信息里。
7.TLB命中时(即快表有效位为1)不会发生缺页,因为TLB只是页表的副本,当对应页调出内存,会把TLB的内容一并抹去
访问页表的时候可能会缺页
8.Cache行是完整的,包括Cache块和标记信息、有效位,而单纯的Cache块只有数据
P2 存储系统大题总结
P3 数据的表示与运算大题总结
知识点
1.
2.数制与编码
①进位计数制及其相互转换
注意除基取余法和乘基取整法
②定点数的编码表示
原码、反码和移码一般不会直接参与加减法运算
补码的减法和无符号整数的减法使用同一套电路实现的,逻辑如下:
1)被减数不变,减数全部按位取反,末尾加1,减法变加法
2)从最低位开始,按位相加,并往更高位进位
3.浮点数的表示
①IEEE标准
②浮点数的加减运算
4.运算方法和运算电路
①基本运算部件
注意加法器与ALU的区别
②加减运算
CF为无符号数溢出判断标志
OF为带符号数溢出判断标志
5.整数的表示和运算
6.浮点数的表示和运算
尾数右规发生上溢时,OF=1
题目
1.
2.
3.数据类型转换
4.精度问题
5.
6.
在408的考试中,整数除法不会发生溢出。因为除以一个整数,只可能得到比被除数更小的数,一定是可以表示的
7.
P4 一堆指令的执行(第四章)大题总结
前置知识
1.指令基本格式
2.
3.指令定长为RISC,不定长为CISC
正题
1.
2.X86分析
精简指令集(RISC-5 MIIPS等)分析
MIPS一般是根据指令流水线进行考察
3.
总得来说:
注意相对寻址:
①PC会首先指向下一条指令。在下一条指令地址的基础上进行偏移
②偏移量是补码,既可能是正数又可能是负数
扩展:
五段式指令流水线题型总结
1.
2.结构冒险
3.数据冒险&控制冒险
4.真题练习
如果一条指令写了某个数据,那么就要检查后面的三条指令是否读了相关寄存器
解决方法:
如果I2和I3发生数据冒险,将I3阻塞3个周期,则I4相应的也不能进入IF周期,因为I3会一直占用IF的硬件资源
5.结构冒险
一般都是条件转移类指令,但是call、ret也属于转移类指令哦
P5 一条指令的执行(第五章)大题总结
1.16年更换了命题组,体会两个老师的命题风格
2.一条指令的执行过程
①取指令
②数据传送指令
③运算类指令
I/O操作总结
1.
感觉最有含金量的是P2 存储系统大题总结,其他部分爱看不看吧。