1、“821.2016T1(1)”,表示821真题,2016年的题,T1是 选择题/填空题/大题 的第一题,其他类似标记也是相通
2、个人小白总结自用,不一定适用于其他人,请自行甄别
3、有任何疑问,欢迎私信探讨,看到后会及时回复
4、另外,想要获取 NUDT 计算机免费的相关资料,建议加官方QQ群756084430,资料全部都是免费的,收费的都是骗纸
选择题
- 双极型RAM同SRAM比较,最突出的优点:速度更快大概因为数据和地址线都不能复用
- 随机存取方式:
不采用随机存取方式:CDROM
采用随机存取方式:EPROM、“RAM、ROM都采用“
- Cache失效开销 = 将主存一块加载到Cache所需的时钟周期数
- 地址映射:
Cache和主存的地址映射:由硬件自动完成的
Cache缺失:只用访问主存,由硬件处理
页面缺失:需要访问磁盘,由 “OS,操作系统,软件“ 处理
主存与虚存的地址映射:OS,操作系统,软件
- 利用程序局部性:Cache、快表、虚存√页表X
- 页表未命中,TLB快表绝对不会命中,因为TLB的数据是页表的复制(Cache的数据是主存的复制一样
- 半导体存储器并不都采用随机存取方式(按地址随机存取)进行读写操作,也有按内容存取的
填空题
- 主存的4个主要组成:存储矩阵、选址系统(地址总线) 、读写系统(数据总线) 、时序控制线路(控制总线)
- SRAM,双稳态触发器
速度快,但集成度低、功耗大
- DRAM,栅极电容
- DMAR刷新的方式:
集中式
分离式
透明式
- 计算出虚拟地址的位数x后,有2x个页面(不要直接填x啦
- 虚存只是一个的概念,是一种存储管理机制,实际上是不存在的,虚拟空间的大小与逻辑地址的位数有关
- 光盘/CD
按存取方式/读写特性有3种:只读型、可擦写型、追记型
按存储介质有3种:形变型、相变型、磁光型
- 磁性材料的磁头具有3个特性:留磁少、导磁率高、软磁
- RAID盘阵由多个小容量廉价磁盘构成,被操作系统当作一个整体的大容量磁盘。校验盘用于保存备份冗余的信息
简答题(Cache)
直接映射:标记位数 + 行号位数 + 块内地址位数
全相联映射:标记位数 + 块内地址位数
组相联映射:标记位数 + 组号位数 + 块内地址位数
--------------------------------------------------------------------
注:全相联映射,是Cache中的任意空闲位置都可以放,不一定非得按照顺序的空位放
块大小设置为1字节的影响(2点)[袁主教材P259]
- 没有利用空间局部性,只有可能有时间局部性
- 块太小导致映射到同一个cache行的主存块数增加,导致冲突概率增加
块大小越大的缺点:
- 块越大,缺失损失也就越大,需要花费更多的时间从主存复制一个块
- 在Cache空间一定的情况下,块越大,Cache行就会越少,触发替换的可能性就越大,导致命中率降低
简述全相联映射的访问过程
1、全相联映射:标记位数(20-9=11位) + 块内地址位数(9位)
2、0240CH = 0000 0010 0100 0000 1100
标记位数 | 块内地址位数 |
0000 0010 010 | 0 0000 1100 |
3、访问过程:
①命中时:
- 用高11位0000 0010 010与Cache的每一行的标记位进行一一比较,若有一个相等且有效位为1,则命中
- 此时CPU根据后9位块内地址位0 0000 1100取出块内的数据
②反之,则不命中:
- 将高11位0000 0010 010(在主存中为第18块)复制到Cache中任何一个空闲的行中
- 置该行有效位为1,标记位设置为0000 0010 010
简述组相联映射的访问过程
1、组相联映射:
Cache:13 = 3+1(2块一组,占1位)+9
主存:标记位数(20-9-3=8位)+ 组号位数(3位) + 块内地址位数(9位)
2、0240CH = 0000 0010 0100 0000 1100
标记位数 | 组号位数 | 块内地址位数 |
0000 0010 | 010 | 0 0000 1100 |
3、访问过程:
①命中时:
- 先用中间3位010,找到Cache第2组
- 再用高8位0000 0010与该组Cache的每一行的标记位进行一一比较,若有一个相等且有效位为1,则命中
- 此时CPU根据后9位块内地址位0 0000 1100取出块内的数据
②反之,则不命中:
- 将高11位0000 0010 010(在主存中为第18块)复制到Cache第010组(即第2组)的任意空闲行中
- 置该行有效位为1,标记位设置为0000 0010
简述CPU从主存地址067A H,取出的数据值是多少?并描述过程。(TLB、页表、Cache、虚存、分页《袁春风解答P222T25》)
其中位数:
- 虚拟页号,简称虚页号,该TLB项对应哪个虚页的页表项
- 虚存地址的页内偏移量 = 物理地址的页内偏移量
- 虚存地址的虚拟页号 = TLB标记 + TLB组索引
- 物理地址的位数 = Cache的位数
访问内存地址067A H过程描述
①(见以下对比)
- CPU根据TLB组索引00,在TLB的第0组中,匹配所有TLB标记字段0000 011 B = 03H的页表项,有相等的但是有效位不等于1,所以在TLB未命中
- CPU继续在主存的页表中查找,虚拟页号为0000 0110 0 B = 0C H 的页表项,有效位为1,取出页框号19H(注意,不是十进制,因为表中有ABCDEF,明显是十六进制),与页内偏移量组成物理地址:1 1001B + 111 1010B = 1100 1111 1010B
②组相联映射的访问过程
命中时:
- 先用中间4位1110,找到Cache第E组
- 再用高6位1100 11B = 33 H与该组Cache的每一行的标记位进行一一比较,若有一个相等且有效位为1,则命中
- 此时CPU根据后2位块内地址位10取出块内的数据的值,为4A H = 0100 1010 B
虚拟地址、页目录号、页号、页目录物理地址、页表项物理地址
(821.2018.T4(1))例如:
已知,页大小4KB,页表项4B,虚拟地址42位
30,虚拟页号 | 12,页内偏移量 |
可知:页表大小 = x 4B
----------------------------------------------------------
408.2020
预备知识:
- 数组可以随机存取
虚拟地址空间所占的区域必须是连续的
物理地址空间所占的区域可以不连续
题目所给条件梳理:
- C程序:
数组下标从0开始
按行优先方式存储
- 页目录项 = 4B
- 页表长度 = 4B
- 数组元素 = 4B
- 字节编址
- 页内偏移量 = 12位
一个页面大小 = 212B
一个数据4B,所以,一个页面有 212B / 4B = 210个数据
- 数组起始的虚拟地址:1080 0000 H
- 页目录起始物理地址:0020 1000 H
分析
1、因为数组a 一行是1024个数据,起始虚拟地址10800 H 刚好存下 a[0] 的所有数据,a[1][2]的虚拟地址是
1080 0 H + 1 H = 1080 1 H,这就是a[1]的页号
1080 1 H + (3-1)x 4B = 1080 0000 H + 8 H = 1080 1008 H,这就是a[1][2]的虚拟地址
其中4B,一个数据的大小,按字节编址,1B占一个地址
1080 1008 H | ||
10位,页目录号 | 10位,页号 | 12位,页内偏移量 |
0001 0000 10 | 00 0000 0001 | 0000 0000 1000 |
64+2 = 66 | 1 | |
042 H | 001 H |
2、页目录的物理地址 = 页目录起始物理地址 + 页目录项 x 页目录号
页目录的物理地址 = 0020 1000 H + 4B x 66 = 0020 1000 H + 108 H = 0020 1108 H
3、页表项的物理地址 = 目录项种存放的页框号 + 页表长度 x 页号
页表项的物理地址 = 0030 1000 H + 4B x 1 = 0030 1004 H
大题
存储器扩展
存储空间的容量(请务必引起重视!!!直接关系到后面的问答)
需要的存储芯片数量
哪几位作为字扩展控制CS
主存字段的划分(Cache与存储器的映射方式)
Cache的总容量
Cache命中率
CPU访存时钟周期
Cache命中率x命中时钟周期开销 + (1-Cache命中率)x失效时钟周期开销
画存储芯片的片选逻辑电路
磁盘:(边读题边在草稿纸写下有效信息)
虚拟地址、物理地址、Cache、主存,字段划分,与数据的读取过程(821.15.T3、袁春风解析.P222T25)
补充知识点
Cache 高速缓冲存储器
地址映射 | 直接映射 (1路组相联映射) | 全相联映射 | (N路)组相联映射 |
主存地址结构 | Tag | Cache块号位 - 0 | 块位(B) 其中,1=20 | Tag | 0 | 块位(B) | Tag | Cache块号位 - 组号位 | 块位(B) |
例子 - 主存:32位 - 块大小:16B - Cache总大小:4K块 | 主存: Tag | 12 | 4 Tag = 32-12-4 = 16 | Tag | 4 Tag = 32 - 4 = 28 | (假设 2路组相联) Tag+1 | 12-1 | 4 Tag = 32 - (12-1) -4 = 17 |
关联度 | 1(唯一) | Cache的行数 | N |
备注 | 1、不需要使用替换算法 | 按内容寻址的相联存储器 | |
共同点 | 0、Cache 标记容量:(Tag + 1 + 1 + 1) · 行数 1、只占 Cache 空间:有效位(1bit)、一致性维护位/脏位/修改位(1bit)、替换算法控制位(1bit) 2、关于Tag: ①一定是由主存地址结构推导出的 ②Tag 是 Cache 和主存之间的唯一标识 ∴Tag占Cache和主存的位数 3、Cache命中的2个条件:①有效位为1;且②Tag 相同 |
替换算法
替换算法 | 随机算法 RAND | 先进先出算法 FIFO | 近期最少使用算法 LRU | 最不经常使用算法 LFU |
原理 | / | / | 唯一遵循,程序局部性原理 | / |
操作方式 | 被访问置0,其他+1,替换掉计数器最高的 | 被访问的+1,最小的替换 | ||
备注 | 最容易发生抖动现象 | 堆栈类算法 |
写策略
写策略 | 写命中 | 写不命中 | ||
方式 | 全写法/写直达 | 回写法 | 写分配 | 写不分配 |
操作 | CPU同时写数据到Cache和写缓冲中,由写缓冲写入主存 | Cache块被替换时才写入主存,修改时脏位置1 | 主存加载块到Cache,然后只在Cache中更新 | 直接修改主存数据 |
备注 | 1、主存和Cache全都修改 2、解决”写缓冲“溢出,增加一个L2级Cache 3、能保证数据的一致性 | 1、计算Cache位数时,要算:1bit有效位+1bit脏位 2、可减少访存次数 |
Cache-主存-辅存
Cache-主存 | 主存-辅存 | |
位置不同 | Cache靠近CPU | 辅存远离CPU |
目的不同 | 加快CPU访问信息的速度 | 采用虚拟存储器机制,扩大系统的存储器容量 |
交换信息块的不同 | 主存块block,8-128B | 页page,4KB-64KB |
缺失处理 | (处理器)硬件 | (操作系统)软件 |
映射方式不同 | 直接、全相联、组相联 由(处理器)硬件实现 | 只有全相联 由(操作系统)软件实现 |
写策略不同 | 写直达、写回2种策略 | 只采用写回策略 ∵每次都写直达的开销巨大,无法容忍 |
相同点 | 1、都用到了程序访问局部性,把相邻的局部信息,从慢速存储器复制到快速存储器 2、都需要考虑:映射方式、替换策略 3、在快速存储器找不到数据时,都需要从慢速存储器装入整个信息所在的块到快速存储器 |