计算机组成原理——Cache与主存的地址映射

Cache–主存的地址映射

由主存地址映象到cache地址称为地址映射

cache的基本结构:

Cache的工作过程:
CPU发出一个地址,同时发给主存和cache的地址映射机构,CPU会从主存中取出字还是从cache中取出字,主存将块号送入主存cache地址变换机构,如果命中,就将主存地址转化为cache地址,从cache存储体中找到对应的字,然后通过数据总线送到CPU,完成一次读写过程;如果没有命中,这个字就不能从cache中取,而应该从主存中取出字送给CPU,与此同时,如果cache中有空间,可以装进,就将这个字所在的块拿到cache中。如果空间不够,不能装进cache,cache替换机构就将cache中不常用的块拿出,将该字的块替换进cache中。
在这里插入图片描述
主存与cache的映射过程:
当缓存接收到CPU送来的主存地址后,只需要根据cache字块地址字段(c位)找到cache字块,然后判断cache字块地址与主存地址的主存块标记是否相符,若符合且有效位为“1”,表示cache块已经和主存的某个块建立对应关系(cache命中);若不符合或有效位为“0”,就从主存中读入新的字块代替旧的字块,同时将信息送往CPU,并修改cache标记,将有效位置1。

在这里插入图片描述


1.全相联映射(灵活性大的映象关系)

主存中的任一块映象到缓存中的任一块,将主存中一个块的地址(块号)与块的内容(字)一起存与cache的行中,其中块地址存与cache行的标记部分。cache的数据块大小称为行,主存的数据块大小称为块。cache与主存之间的数据交换以块为单位,CPU与cache之间的数据交换以字为单位。

优点:灵活,命中率高
缺点:主存字块标记为全部块标记,访问cache时,主存的字块标记要和cache的全部标记位进行比较,所需的逻辑电路很多,成本较高,实际的cache还要采用各种措施来减少地址的比较次数。

在这里插入图片描述

例题:某内存64块,cache有4块,一个块为4个字节,按字节编址,采用全相联映射方式,写出cache和主存地址格式。

全相联映射方式中主存的主存块标记是全部块标记,,根据主存和cache的对应关系,一个块为4个字节,能得出主存和cache的块内地址的位数都是2位,根据cache的块数是4,得出cache块的位数是2。因为主存的块数为64块,得出主存块标记的位数是6位。

在这里插入图片描述

2.直接映射(固定的方式)

主存中的任意块映射到缓存中的唯一块,每个主存块只与一个缓存块相对应。

i为缓存块号,j为主存块号,C为缓存块数,映射关系式:i = j mod C
特点:不灵活,每个主存块只能与固定对应某个缓存块,即使还空着许多位置也不能使用。
主存地址的格式:
在这里插入图片描述

在这里插入图片描述

例题:某内存64块,cache有4块,一个块为4个字节,按字节编址,采用直接映射方式,写出cache和主存地址格式。

我们一个个的分析,先分析cache
cache:4块=16字节=2的4次方字节,cache的总位数是4。
主存:64块=64*4字节=2的8次方字节,主存的总位数是8

由题意得:一个块4个字节,就是2的2次方,可以得出cache的块内地址为2位,又因为cache的总位数是4,所以得出cache块有(4-2)位

主存块标记的位数就相当于主存的总位数减去cache的总位数,就是4位,最后就求出cache和主存的地址格式
在这里插入图片描述

3.组相联映射(上述两种映象的折中)

组间直接映射,组内全相联映射
主存块j按模Q(组数)映射到缓存的第i组中任一块,cache分为Q组,每组R块
对应关系有:i = j mod Q
i为缓存的组号,j为主存的块号

组内n块,组相联映射定义为n路组相联

在这里插入图片描述

在这里插入图片描述

例题:主存容量512K×16位,cache容量4096×16位,块长为4个16位的字,按字地址访存写出二路组相联映射下主存的地址格式。

cache地址的位数:4096=2的12次方,12位
主存地址的位数:512K=2的19次方,19位

由块长可得块内地址位:2位
二路组相联,cache的组数:2的10次方/2=2的9次方。所以主存的区内组号是9位
主存字块标记的位数:19-2-9=8

在这里插入图片描述

4.段相联映射

段相联映射是直接映射和全相联映射相结合的方式,将主存和cache都分成若干段,并且使他们每段所包含的块数都相等,段之间采用全相联映射,段内块之间采用直接映射。

当段数与cache块数相等时(即每段只包含一块),为全相联映射
当段数为1时,为直接映射

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485209.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 日期与时间

1、获取当前时间 Date date new Date();System.out.println(date);//Sun Mar 31 11:45:14 CST 2019Calendar calendar Calendar.getInstance();System.out.println(calendar);//java.util.GregorianCalendar...//import java.sql.Timestamp;Timestamp timestamp new Timesta…

申工智能有没有作弊?

来源:北国骑士在2021年农心杯赛场,韩国天才棋手申真谞连胜五轮,帮助韩国队夺得了阔别很久的团队冠军奖杯。从一连串的棋局来看,不管是日本选手还是中国对手,在韩国棋手面前都“不堪一击”。以申真谞为例,几…

浮点数加减法运算(对阶、尾数求和、规格化、舍入、溢出判断)

浮点数的加减法运算 前言: 运算过程:对阶、尾数求和、规格化、舍入、溢出判断 浮点加减运算 在计算机中,加减法运算用补码实现。 算术运算的常识:两个浮点数如果要进行加减法运算,它们的阶或者指数必须相等。 一、…

【剑指offer】面试题63:股票的最大利润(Java)

假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 1)的时候买入,在第 5 天(股票价格 6&a…

JSP实现登陆页面(表单提交、连接数据库、实现页面跳转)

JSP实现登陆页面(表单提交、连接数据库、实现页面跳转) 1.数据库设计 2.主页面展示 3.代码展示&#xff1a; index.jsp <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <!DOCTYPE html PUBLIC …

任正非在“GTS云与终端云合作与融合进展”汇报会上的讲话

任正非内部讲话音频版作者&#xff1a;任正非来源&#xff1a;蓝血研究&#xff08;lanxueyanjiu)2021年1月12日&#xff0c;任正非在“GTS云与终端云合作与融合进展”汇报会上发表讲话。任正非要求&#xff0c;要围绕着体验把端、管、云拉通&#xff0c;优化华为的GTS服务网络…

Valid BFS? CodeForces - 1037D(思维 bfs)

我真是一只菜狗。。。。。。emm。。。 题意&#xff1a; 判断一个从1开始的队列是否可以按照bfs的顺序 进行遍历。。必须从1开始。。。然后后边依次是bfs顺序 解析&#xff1a; 看代码能看懂吧。。。emm。。。就是把每个有关系的用map标记一下 然后bfs的时候 加一个循环进队列就…

【剑指offer】面试题65:不用加减乘除做加法(Java)

写一个函数&#xff0c;求两个整数之和&#xff0c;要求在函数体内不得使用 “”、“-”、“*”、“/” 四则运算符号。 示例: 输入: a 1, b 1 输出: 2 提示&#xff1a; a, b 均可能是负数或 0 结果不会溢出 32 位整数 代码&#xff1a; class Solution { public int…

Hinton一作新论文:如何在神经网络中表示“部分-整体层次结构”?

来源 | AI科技评论作者 | Geoffrey Hinton编译 | 陈彩娴AI科技评论在 Twitter 上发现了一篇Hinton的新论文&#xff0c;作者只有Hinton本人&#xff0c;这篇论文没有介绍具体的算法&#xff0c;而是描绘了一个关于表示的宏观构想&#xff1a;如何在神经网络中表示部分-整体层次…

概率校准与Brier分数

1.再提逻辑回归 前面已经讲过了逻辑回归&#xff0c;这里不再细讲&#xff0c;只是简单的说一个函数&#xff0c;主要是方便大家更好的理解概率校准。 在逻辑回归中&#xff0c;用的最多的就是sigmod函数&#xff0c;这个函数的作用就是把无限大或者无限小的数据压缩到[0,1]之间…

【剑指offer】面试题66:构建乘积数组(Java)

给定一个数组 A[0,1,…,n-1]&#xff0c;请构建一个数组 B[0,1,…,n-1]&#xff0c;其中 B 中的元素 B[i]A[0]A[1]…A[i-1]A[i1]…A[n-1]。不能使用除法。 示例: 输入: [1,2,3,4,5] 输出: [120,60,40,30,24] 提示&#xff1a; 所有元素乘积之和不会溢出 32 位整数 a.lengt…

费曼:所有科学知识都是不确定的

来源 &#xff1a; 网络作为科学家&#xff0c;我们知道伟大的进展都源于承认无知&#xff0c;源于思想的自由。那么这是我们的责任——宣扬思想自由的价值&#xff0c;教育人们不要惧怕质疑而应该欢迎它、讨论它&#xff0c;而且毫不妥协地坚持拥有这种自由——这是我们对未来…

遍历性能

iOS开发中数组常用的五种遍历方式 随着iOS的不断发展&#xff0c;apple也不断推出性能更高的数组遍历方式&#xff0c;下面将对熟悉的五种遍历方式进行列举。 首先定义一个数组&#xff0c;并获取数组长度 一、for循环 二、forin 快速枚举 三、NSEnumerator 四、快速遍历 五、快…

【剑指offer】面试题68 - I:二叉树的最近公共祖先(Java)

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也可以是它自…

工业传感器:工业互联网的第一道门

来源&#xff1a;北京物联网智能技术应用协会作者&#xff1a;刘沁沈阳仪表科学研究院副总工程师、传感器国家工程研究中心常务副主任工业的发展离不开众多感知技术的加持&#xff0c;其中最为关键的技术之一便是传感器。可以说&#xff0c;工业传感器让自动化智能设备有了感知…

数学:二项式定理

先贴一张网图来弥补一下知识点&#xff0c;回顾NOIP2011计算系数 既然我们要求的是展开式中某一项的系数&#xff0c;那么就直接求出其对应的组合数就好了&#xff0c;但是要注意x和y都是有系数a和b的 x,y换成ax,by&#xff0c;得到x^ny^m的系数是a^n*b^m*C(k,n) 这样就可以了 …

【剑指offer】面试题03:数组中重复的数字(java)

在一个长度为 n 的数组 nums 里的所有数字都在 0&#xff5e;n-1 的范围内。数组中某些数字是重复的&#xff0c;但不知道有几个数字重复了&#xff0c;也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1&#xff1a; 输入&#xff1a; [2, 3, 1, 0, 2, …

城市大脑全球标准研究2:如何理解和定义城市大脑?

作者&#xff1a;刘锋城市大脑作为一个新生事物&#xff0c;如何理解和定义反映了人们对这个新事物的理解程度&#xff0c;同时由于城市大脑是一个复杂的智能巨系统&#xff0c;如何理解和定义它对于后续的建设和发展也将产生重大和深远的影响。目前对城市大脑的定义有如下几种…

1036 跟奥巴马一起编程(15 分)

美国总统奥巴马不仅呼吁所有人都学习编程&#xff0c;甚至以身作则编写代码&#xff0c;成为美国历史上首位编写计算机代码的总统。2014 年底&#xff0c;为庆祝“计算机科学教育周”正式启动&#xff0c;奥巴马编写了很简单的计算机代码&#xff1a;在屏幕上画一个正方形。现在…

【剑指offer】面试题04:二维数组中的查找(java)

在一个 n * m 的二维数组中&#xff0c;每一行都按照从左到右递增的顺序排序&#xff0c;每一列都按照从上到下递增的顺序排序。请完成一个函数&#xff0c;输入这样的一个二维数组和一个整数&#xff0c;判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下&#xff1a; …