首页 > 其他分享 >408存储系统大题笔记

408存储系统大题笔记

时间:2024-09-12 13:13:31浏览次数:13  
标签:主存 映射 存储系统 Cache 笔记 地址 Tag bits 408

img
咸鱼25计组强化课P2的笔记,有点简陋。
课后需要把第三章的课后大题(真题做一下)

Cache类题目

做题要注意的点!!

  1. PA的位数=Cache地址总位数
  2. Cache总行数
  3. Cache块大小
  4. 第2和第3相乘得Cache数据区总大小(!=Cache总大小)
  5. 映射方式
  6. 一致性问题:写策略(直写/回写)
  7. 替换算法
  8. CPU先把VA翻译成PA,再用PA去访问Cache

求地址结构

先根据映射方式确定行号/组号和块内地址的位数,剩下的是Tag

映射方式

  1. 直接映射
    Cache地址拆分为 Tag+行号+块内地址
    直接映射相当于1行1组
    行号位数与总行数关系:$n = log_2{lines}$

  2. 组相联映射
    Cache地址拆分为 Tag+组号+块内地址
    n路组相联,1组有n行
    组数为总行数除以路数:$z=\frac{lines}{n}$

  3. 全相联映射
    Cache地址拆分为 Tag+块内地址
    只有1组

一致性问题

  • 直写法:Cache中数据块只要修改过,就同步修改主存中的数据,因此不需要脏位。
  • 回写法:Cache修改过的数据块先在1 bit 脏位标记,直到这个块即将被淘汰时写回主存。

替换算法

要替换时选择淘汰哪一个?

  • 随机替换:不需要替换信息位,因为随机,不需要关心优先级和顺序。
    • 直接映射也不需要替换位,因为1行1组,根据地址只能找到对应的1行/组
  • 其他:n选1替换,需要$log_2 n$ 位
    • FIFO:先进先出,替换位需要记录进入顺序
    • LRU:最近最少使用
    • 组相联需要替换位 $log_2 n$ bits,n为路数
    • 全相联需要替换位 $log_2 lines$ bits

例题

2020真题

(10分)假定主存地址为32位,按字节编址,指令Cache和数据Cache与主存之间均采用8路组相联映射方式,直写(Write Through)写策略和LRU替换算法,主存块大小为64B,数据区容量各为32KB。开始时Cache均为空。请回答下列问题。
(1)Cache每一行中标记(Tag)、LRU位各占几位?是否有修改位?
(2)有如下C语言程序段:

for(k = 0; k <1024; ++k)
    s[k] = * s[k];

若数组s及其变量k均为int型,int型数据占4B,变量k分配在寄存器中,数组s在主存中的起始地址为008000C0H,则该程序段执行过程中,访问数组s的数据Cache缺失次数为多少?
(3)若CPU最先开始的坊问操作是读取主存单元0001003H中的指令,简要说明从Cache中访问该指令的过程,包括Cache缺失处理过程。

分析(非答案):
(1).
抓重点

  • 主存地址32位->PA 32位
  • 8路组相联
  • 直写
  • LRU
  • 主存块大小64B->块内地址占 6 bits
  • 数据区32KB->行数=32KB/64B->组号=行数/路数

Tag(20 bits) + 组号(6 bits) + 块内地址(6 bits) = 32 bits

(2).
s[0] - 008000C0H
s[1] - 008000C4H
s[2] - 008000C8H
.......
同一Cache块内的不同元素,只有最后6 bits不一样
访问这些元素只有第一次会Cache缺失
这些元素总共填64块Cache块,会发生64此确实
(3).
根据地址找Cache
判断有效位->缺失
把64B的块读到Cache中
更新有效位、LRU替换位、Tag标记位

TLB类题目

img
用于VA->PA过程中,加快查询速度。原理与Cache类似
VA结构:页号+页内地址

做题要注意的点!!

  1. VA多少位,虚页号多少位,页内地址多少位(根据页大小确定)
  2. 映射方式:
    • 一般没有直接映射,因为会发生TLB的抖动,导致频繁的换入换出,效率低下
    • 组相联->K路:虚页号由Tag+组号构成,组号位数=$log_2 K$
    • 全相联:虚页号=Tag,题目没说一般默认全相联
  3. 替换算法(同Cache)

标签:主存,映射,存储系统,Cache,笔记,地址,Tag,bits,408
From: https://www.cnblogs.com/CauchyPt/p/18409981

相关文章

  • 密码算法设计与分析 - 课程笔记
    基本概念安全威胁安全威胁被动攻击消息内容获取业务流分析主动攻击中断(可用性)篡改(完整性)伪造(真实性)人为威胁被动攻击被动攻击即窃听,是对系统的保密性进行攻击,如搭线窃听、非法拷贝等,以获取他人的信息。被动攻击分类:消息内容获取:直接对消息内容进行窃听,......
  • 计算机网络 - 课程笔记
    基本概念以太网帧格式类型:0800是ipv4,86DD是ipv6,0806是ARP帧,8100是IEEE802.1Q帧ip报文格式首部长度单位是4字节。标志中:第一位未使用,值为0;第二位称为DF(不分片),值为1时不允许分片;第三位称为MF(更多分片),值为1时表示有更多分片需要发送。协议:6是tcp协议、17(0x11)是udp协议、1......
  • 算法 - 课程笔记
    调度问题插入排序分治法分治法是将原问题划分为多个规模较小的子问题,这些子问题可以独立求解,将子问题的解进行综合得到原问题的解。算法设计一般使用递归算法,算法分析一般使用递归表达式。归并排序归并排序,就是分组再合并,将一个数组等分为左右两个子数组,然后再使用......
  • 网络与系统安全 - 课程笔记
    对称与非对称密码的优缺点对称密码优点:加解密速度快易于硬件实现密钥相对较短,易于传输缺点:密钥分配问题,密钥分发困难,需要安全信道密钥管理问题,密钥量大,多人使用时,每两个用户都需要生成一个对称密钥没有签名功能,存在身份认证问题,接收方可能伪造信息非对称密码优点:......
  • 学习笔记 | endnote导入
    1.txt导入在万方网站上碰到了导出txt格式的文件,打开以后格式如下为将它导入进入EndNote,可以将其后缀名,改为“.ciw”文件,双击点开该文件,即可将导出的文献加载到EndNote数据库中。2.下载过的PDF文献一键导入EndNote数据库对于已经下载好的文件(要求是PDF格式,最好是有DIO号,并且......
  • MySQL学习笔记(二)InnoDB内存模型与磁盘同步机制
    InnoDB存储引擎ACID是我们在数据库设计的时候,尽可能的去满足的设计原则。A原子性、C一致性I隔离性D持久性,其中InnoDB存储引擎就是满足了我们ACID设计原则的。内存缓存结构(BufferPool)如果每次获取数据都去磁盘获取,这样效率明显比较慢。所以innoDB为了性......
  • 代码整洁之道--读书笔记(8)
    代码整洁之道简介:本书是编程大师“Bob大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。本......
  • c++primer第四章复合类型学习笔记
    数组数组创建声明:存储元素类型数组名数组的元素个数#include<iostream>usingnamespacestd;intmain(){intyams[3];yams[0]=7;yams[1]=8;yams[2]=6;intyamcosts[3]={20,30,5};cout<<"Totalyams=";cout<<......
  • c++primer第五章循环和关系表达式学习笔记
    for循环简单for循环#include<iostream>usingnamespacestd;intmain(){//5.1inti;for(i=0;i<5;i++)cout<<"C++knowsloops.\n";cout<<"C++knowswhentostop.\n";return0;}for循环组成部分#......
  • C++primer 第十章对象和类学习笔记
    OPP特性:抽象封装和数据隐藏多态继承代码的可重用性过程性和面向对象的编程从用户的角度考虑对象抽象和类基本类型完成的工作:决定数据对象需要的内存单元决定如何解释内存中的位决定可使用数据对象执行的操作或方法 c++中的类类规范类声明:以数据成员的方式描述数......