Cache容量计算例题:

假定主存地址位数为32位,按字节编址,主存和cache之间采用4-路组相联映射方式,主存块大小为4个字,每字32位,采用直写(Write Throght)方式和LRU替换策略,则能存放32K字数据的cache的总容量至少应有( )位。

得分/总分

A.

4672K

B.

1168K

C.

1184K

D.

4736K

正确答案:C

解析: C、cache共有32K字/4字=8K行,因为采用4-路组相联,因而共有8K/4=2K组,组号占11位;每个主存块为4字=4×32位=16B,故块内地址占4位。因此,标志占32-11-4=17位。4路组相联方式下,LRU替换算法需要每行有2位LRU位 (因为要表示0-3的数字吧);直写(Write Throght)方式无需修改位(dirty bit)。因而cache总容量为8K×(1+17+2+4×32)=1184K位。

Cache 写穿和写回模式

CPU使用高速缓存(dcache)时,它对内存的的写操作有两种模式:写穿(write-throuht)、写回(write-back)。

写穿(write-throuht)模式: 也叫直写式

该模式下,CPU对主存写数据时,不经过dcache直接写到内存,此时对于写的实现比较简单,如果系统只用写穿模式的话,dcache则变成了读缓存了。

写回(write-back)模式:

  1. 什么是写回 

    CPU写入数据时,不直接将数据写入内存,而是写入cache,当cache数据被替换出去时才写回主存。 

    此时存在一个问题,并不是所有的cache中的数据都被修改过,因此没必要把所有替换出去的数据都重新写入主存。 

    为了表示哪些数据被修改过(dcache中是数据和主存中的数据是否不一致),cache中每一块增加了一个记录信息位,CPU修改过的cache时,设置此记录信息位(此时数据块为脏的(dirty), cache数据写入到主存时清理此位(此时数据块为干净的(clean)。 

    有了次记录信息位,数据从cache替换到主存时只替换脏的数据块即可),
  2. 为什么有写回模式 

    大家都是知道cache速度远大于RAM(主存)。通过dcache吸收系统的写操作,在必要的时候再统一写入主存,从而减少频繁的相对较慢的对主存的写操作,这样明显能加速系统。同样的思想在主存与磁盘中也存在。

cache容量计算总结:

有效位1位必存在。

如果是写回法:多个1位脏位;如果是直写法,不用多脏位;

在组相联映射中,如果采用LRU替换,2路组相联映射:有1位LRU位,4路组相联映射,有2位LRU位

 

 

计算机系统原理:cache容量计算的更多相关文章

  1. [svc][op]磁盘(结构)容量计算

    磁盘结构和容量计算 fdisk -l显示信息详解 [root@www.linuxidc.com ~]# fdisk -l Disk /dev/sda: bytes heads, sectors/tra ...

  2. Ceph中的容量计算与管理

    转自:https://www.ustack.com/blog/ceph%ef%bc%8drongliang/ 在部署完Ceph集群之后,一般地我们可以通过Ceph df这个命令来查看集群的容量状态,但 ...

  3. 【转】Android SDCard操作(文件读写,容量计算)

    android.os.Environment 提供访问环境变量 java.lang.Object     android.os.Environment   Environment 静态方法: 方法 : ...

  4. 软考计算机网络原理之IP计算问题汇总

    转自 http://www.cnblogs.com/jyh317/archive/2013/04/14/3018650.html 1.IP地址 分类: ①A类IP地址 ②B类IP地址 ③C类IP地址 ...

  5. HTTP Cache怎样计算Age

    这里的Age指的是响应头Age.以下内容有部分翻译,也有部分自己的理解.欢迎讨论. 我们用now表示当前主机的当前时间,用request_time表示缓存发起请求的时间,用response_time表 ...

  6. zabbix (三) 所需磁盘容量计算

    一.zabbix 磁盘容量大小 zabbix的数据库大小取决于NVPS(new values per second)大小,NVPS从总体上反应了处理速度,与监控项的数目,监控项的类型,取值间隔,His ...

  7. BP原理 - 前向计算与反向传播实例

    Outline 前向计算 反向传播 很多事情不是需要聪明一点,而是需要耐心一点,踏下心来认真看真的很简单的. 假设有这样一个网络层: 第一层是输入层,包含两个神经元i1 i2和截距b1: 第二层是隐含 ...

  8. Cache的原理、设计及实现

    Cache的原理.设计及实现 前言 虽然CPU主频的提升会带动系统性能的改善,但系统性能的提高不仅仅取决于CPU,还与系统架构.指令结构.信息在各个部件之间的传送速度及存储部件的存取速度等因素有关,特 ...

  9. 【底层原理】深入理解Cache (下)

    得到了我的PC的cache参数如下: L1 Cache : 32KB , 8路组相连,linesize为 64Byte 64个组 L2 Cache:256KB 8路组相连,linesize为 64By ...

随机推荐

  1. C语言:试探算法解决“八皇后”问题

    #include <stdio.h> #define N 4 int solution[N], j, k, count, sols; int place(int row, int col) ...

  2. MySQL连接中出现的问题

    异常: Establishing SSL connection without server's identityverification is not recommended. According ...

  3. C++核心篇

    C++核心编程 本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓. 1 内存分区模型 C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统 ...

  4. 树莓派4刷FreeBSD

    树莓派4可以刷FreeBSD了.需要替换boot文件.​加群获得文件QQ交流群817507910.

  5. LNMP配置——PHP安装

    一.下载 #cd /usr/local/src //软件包都放在这里方便管理 #wget http://cn2.php.net/distributions/php-5.6.30.tar.gz 二.解压 ...

  6. TensorFlow学习(2)

    TensorFlow学习(2) 一.jupyter notebook的安装和使用 1. 什么是jupyter notebook jupyter notebook(http://jupyter.org/ ...

  7. P3388 【模板】割点(割顶) 题解 (Tarjan)

    题目链接 P3388 [模板]割点(割顶) 解题思路 最近学的东西太杂了,多写点博客免得自己糊里糊涂的过去了. 这个题求割点,感觉这篇文章写得挺好. 割点是啥?如果去掉这个点之后连通图变成多个不连通图 ...

  8. 在CentOS上安装Nginx配置HTTPS并设置系统服务和开机启动(最全教程)

    友情提示:全部配完大约需要20分钟,本教程配合 xshell 和 xftp 使用更佳. 系统配置:CentOS 7.5 本教程 摘繁华 版权所有. 操作按键 常用按键: 复制操作:Shift+Ins ...

  9. python torndb模块

    一.torndb概述 torndb是一个轻量级的基于MySQLdb封装的一个模块,其是tornado框架的一部分.其项目主页为:https://github.com/bdarnell/torndb . ...

  10. Linux 用户登陆提示This account is currently not available

    使用 su 切换到用户 hdfs 时提示:This account is currently not available,使用 hdfs 用户登陆会直接退出 ssh 窗口. 此时可以尝试检查文件 /e ...