当前位置:   article > 正文

408-机组一些小知识点_cache中的lru的位数与什么有关

cache中的lru的位数与什么有关

2024-1-6更新

因为很多人都有看到这篇文章,所以这里建议在你对机组有一定理解的情况下,再来看可能会理解的更好一些,不建议学习初期就直接看,可能有些地方比较模糊。还有一点就是,这些知识点可能需要你们自己去理解了,因为我已经一年多没有接触408的知识了,虽然当时机组考的还可以,但确实机组很多细节就是学了就忘,比较晦涩,所以解答这方面可能比较抱歉。


机组难度很大,机组决定了你的上限,所以如果想考高分的话,需要多花时间去理解"里面"的东西。这里我按照408给的大纲自己备考过程中的进行一些总结,笔记的话可以私聊我,这里不好给。

1、计算机系统概述

性能指标

这一章是408必考的知识点,年年考,分值占的比例很大,大题涉及,选择涉及,所以一定要好好掌握

2、数据的表示和运算

第二章的知识点难理解,涉及到数据的一些表示,这里不介绍数据的具体框架知识点,只介绍一些容易忽视的地方

小知识点
1、对于位数相同的定点数和浮点数,可表示的数据个数应该是一样多的。编码位数一定,编码出来的数据个数就是一定的。
2、补码的一位乘法和原码的除法,其中补码乘法需要做n+1次加,而原码的除法根据第n次余数是否与被除数同号,非同号需要n+1次加
3、正数原码、补码以及反码是一样的,负数的补码等于反码加一,负数的反码等于原码除符号位取反
4、C语言中类型转化方向:char—>int—>long—>double
5、基数越大精度越低,进制越大<span style='color:red;>精度越高。(比如某些10进制小数不能用2进制表示,但是所有二进制小数都可以用10进制表示,这样就很容易理解10进制精度更高)
6.原码表示时,正数规格化形式为0.1xxx,负数格式化形式为1.1xxx
7.注意⚠️IEEE745一定要记住,阶码计算是通过二进制算出来的值E,再减127,而不是128,即1001 0011算出来的阶码应该是20(128+16+2+1-127=20)。其中E的取值为1~254,所以阶码单位为-126~127
8.采用规格化的浮点数最主要是为了增加数据的表示精度。
9.对于无符号整数乘法,若乘积高n位全为0,即使第n位全为1也正好是2^32-1,不溢出,否则溢出
10.CF=count异或sub count为最高位的进位,sub为加减控制信号,加法0,减法1
11.OF=次高进位异或最高进位
12.乘法溢出判断
在这里插入图片描述

3、存储系统

小知识点
1.主存和cache之间的数据调动是由硬件自动完成的,对所有程序员均是透明的;而主存和辅存之间的数据调动,则是由硬件和操作系统共同完成的,对应用程序员是透明的(CPU与Cache之间的数据交换是以字为单位,Cache与主存是以块为单位)
2.DRAM的刷新是由硬件自动完成的
3.高速缓冲存储器是从系统结构上进行改造,使得速度变快
4.虚拟存储管理系统的基础是程序访问的局部性原理, 此理论的基本含义是 在程序的执行过程中, 程序对主存的访问是不均匀的
5.虚拟存储器采用的是全相联映射,因为关键是提高命中率,所以还是采用的是回写法
Cache

这一块得区分一下,细节的地方比较多,并且OS也涉及到了

映射方式

1.直接映射

  • Cache行的字段是:标记➕数据(这里的标记是,主存块号➖Cache总行数所占的位数)
  • 直接映射的地址结构是:标记➕Cache行号➕块内地址(可以看出来,其实就是主存的访问地址,只是先通过这个地址去Cache中找。标记➕Cache行号对应的就是主存块的地址,再加块内地址,找到具体位置)

2.全相联映射

  • Cache行的字段是:标记➕数据(这里的标记是就主存块号,所以全相联映射慢,需要和相联存储器一起用)
  • 地址结构:标记➕块内地址(因为是随机的,所以标记就是主存块号)

3.组相联映射

  • Cache行的字段是:标记➕数据(这里的标记是,主存块号位数➖Cache总组数所占的位数(可以和直接映射对比一下),比如主存块号位数是11,Cache有8组,也就是占3位,那么标记占了11 - 3 = 8位)
  • 地址结构:标记➕组号➕块内地址

其中直接映射和组相联映射都是先查找行号/组号找到对应的Cache行/组,然后再和标记进行对比,再检查有效位。

需要注意的点

直接上图

在这里插入图片描述

表格
1.有效位:为说明Cache行中的信息是否有效,每一个Cache行需要一个有效位
2.LRU位:替换算法如果采用LRU(最近最少使用算法),位数与Cache组的大小有关系,需要注意2路占一位LRU位,4路占两位LRU位;Clock算法还有访问位(不过用于操作系统)
3.修改位:回写法需要注意增加一个修改位(脏位)
4.失页率的计算要包括全部缺页
5.Cache缺失由CPU硬件实现,缺页处理由软件来完成
在这里插入图片描述
6.Cache对所有程序员都透明,而虚存对应用程序员透明,系统程序员不透明。
7.注意⚠️TLB路数并不能决定虚拟地址中标记要留多少位给组,而是根据TLB组数来决定标记留几位。
Cache总位数的计算

注意⚠️组相联和直接映射的区别,组相联和直接映射在计算Cache位数算的都是Cache总行数,组相联计算的不是总组数!

例题

在这里插入图片描述

答案

在这里插入图片描述

芯片引脚

芯片引脚408考得不深,大概就是SRAM和DRAM最少数目之类的,最多往年没有考过,所以记住即可。

SRAM

SRAM最小数考虑CS(片选信号线)➕读写信号线

例题

在这里插入图片描述

答案

在这里插入图片描述
DRAM

DRAM最小数考虑读写信号线➕行通选和列通选信号线(一共两根),并且DRAM采用地址复用,地址线减少一半

例题

在这里插入图片描述

答案

在这里插入图片描述

4、指令系统

无,指令系统因为本科阶段打比赛汇编学得比较多,所以当时这一部分学起来不是很困难。

5、中央处理器

这章知识点很多,容易漏的知识点也比较多,所以需要多总结多思考

小知识点
1.中断响应是CPU在每条指令执行结束前检查的,如果有,就进入中断周期,并且保存断点
2.理解什么是超标量流水线技术,超流水线技术
3.转移指令,PC并不总是修改为转移指令的目标地址,在转移指令时,需判别是否转移成功,成功则是目标地址,失败则是PC➕1
4.间址周期结束时,MDR中存放是的操作数的地址,而具体的操作数,需要到执行周期去取
5.按字节编制的时候需要注意,若题目又说按字边界对齐存放,此时MAR(或者有关的位数)就是主存空间/(字长/8)------16年统考选
6.指令字长一般取字节或者存储字长的整数倍,而不一定都和存储字长一样大
7.取指操作是自动进行的,控制器不需要得到相应的指令
8.空操作指令会导致PC增加,而不是寄存器都不变。并且空指令会进行访存,自己想想为什么?-------因为空指令,会在取指阶段去内存取这条空指令,所以会访存声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签