全相联映像:

特点:指主存的一个字块能够映像到整个Cache的不论什么一个字块中。这样的映射方法比較灵活,cache的利用率高。但地址转换速度慢,且须要採用某种置换算法将cache中的内容调入调出,实现起来系统开销大。

                  

直接相联映像:

特点:指主存的一个字块仅仅能映像到Cache的一个准确确定的字块中,主存的字块仅仅能够和固定的Cache字块相应,方式直接,利用率低。

成本低,命中率低,效率较低。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWlnb29nbGU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">


组相联映像:

         对全相联和直接映像的一种折中的处理方案。

既不在主存和Cache之间实现字块的全然任意相应,也不在主存和Cache之间实现字块的多对一的硬性相应。而是实现一种有限度的任意相应。

         特点:折中方案。组间全相联,组内直接映像。

集中了两个方式的长处。

成本也不太高。

最常见的Cache映像方式。

                                   

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWlnb29nbGU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

总结:

三种映射规则能够简单觉得是对取模运算和取商运算的组合;
如果:内存=30块,cache=5块,1块=10个字,所以内存=300个字。cache=50个字;内存包括的字数为memsize,块包括的字数为blocksize,cache包括的字数为cachesize,每一个区包括的块数为regionblocknum。每一个组包括的块数为groupblocknum,区内块号(区内偏移量)为regionblockoffset。
直接映射:memsize MOD blocksize获得的是字在块内的偏移量。memsize / blocksize获得的是块的标号作为标记。
全相联映射:regionblocknum取cache中的块的数量,所以cahce总是与内存中的一个区大小同样。(memsize / blocksize)获得全部的块数,然后再对块进行分区,分区操作是(memsize / blocksize)/regionblocknum获得全部的区数,
(memsize / blocksize)MOD
 regionblocknum获得区内块号(区内偏移量)。区内偏移量做索引,区号做标记。

组相联映射:regionblockoffset=(memsize / blocksize)MOD
 regionblocknum,regionblockoffset
/ groupblocknum获得组内偏移量,regionblockoffset
MOD  groupblocknum获得组号。


计算机组成原理——主存与cache的映射关系的更多相关文章

  1. ARM Cortex-A53 Cache与内存的映射关系以及Cache的一致性分析

    ARM Cortex-A53 Cache与内存的映射关系以及Cache的一致性分析 题记:如果文章有理解不对的地方,欢迎大家批评指正,谢谢大家. 摘要:本文以Cortex-A53为例,首先分析Cach ...

  2. 主存与Cache的地址映射

    最近在复习计算机体系结构,选用的教材是名闻遐迩的<计算机体系结构 量化研究方法 第五版>(Computer Architecture A Quantitative Approach), 关 ...

  3. linux的系统组成和计算机组成原理,linux常用操作

    Linux入门 linux简介   学习目的:linux服务器操作系统稳定长期运行,python,pycharm装于linux上 linux系统组成 应用软件:调用系统软件接口 linux操作系统分两 ...

  4. 主存和cache的地址映射

    cache是一种高速缓冲寄存器,是为解决CPU和主存之间速度不匹配而采用的一项重要技术. 主存与cache的地址映射方式有全相联方式.直接方式和组相联方式三种. 直接映射(directmapping) ...

  5. 重学计算机组成原理(十)- "烫烫烫"乱码的由来

    程序 = 算法 + 数据结构 对应到计算机的组成原理(硬件层面) 算法 --- 各种计算机指令 数据结构 --- 二进制数据 计算机用0/1组成的二进制,来表示所有信息 程序指令用到的机器码,是使用二 ...

  6. 计算机组成原理 — CPU 中央处理器

    目录 文章目录 目录 前文列表 逻辑电路部件 组合逻辑电路 时序逻辑电路 阵列逻辑电路 中央处理器(CPU) 控制单元(控制器) 运算单元(运算器) 存储单元(寄存器组和片内缓存) CPU 的工作原理 ...

  7. Hibernate映射解析——七种映射关系

    首先我们了解一个名词ORM,全称是(Object Relational Mapping),即对象关系映射.ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对 ...

  8. SSH深度历险(一)深入浅出Hibernate架构(一)-------映射解析——七种映射关系

            ORM,全称是(Object Relational Mapping),即对象关系映射.ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据 ...

  9. 计算机组成原理实验之CPU组成与指令周期实验

    (实验五  CPU组成与指令周期实验) 课程 计算机组成原理实验 实验日期 2015 年 12 月  8 日 一.实验目的 1.将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机. 2. ...

随机推荐

  1. 摘:PC客户端 XP兼容性调查

    现象1:XP SP2下,客户端安装失败(或者启动失败) 解决方案:需要安装以下3个补丁(已经集成到安装包中) ==系统Hotfix(仅仅XP SP2需要安装): http://support.micr ...

  2. NetCore指令集和

    1.查看当前目录的版本号 C:\Users\Administrator>dotnet --version 1.0.4 2.发布程式,进入到指定目录 dotnet publish 3.运行程式 # ...

  3. 【OpenFOAM案例】03 Docker安装OpenFOAM

    "工欲善其事必先利其器",软件装不上,讲再多的使用技巧也是白搭.近期不少留言说OpenFOAM不容易安装,今天来谈谈如何在Linux下利用Docker安装OpenFOAM. Lin ...

  4. 利用SEH防范BP(int 3)断点

    利用SEH技术实现反跟踪,这个方法比单纯用判断API函数第一个字节是否为断点更加有效,可以防止在API函数内部的多处地址设置断点 通过int 3指令故意产生一个异常,从而让系统转入自己的异常处理函数, ...

  5. mvc webapi路由重写

    修改app_start/webapiconfig.cs using System.Web.Http; using System.Web.Routing; using Ninject; using Tx ...

  6. Java代码实现文件添加数字签名、验证数字签名

    Linux下实现加签.验签 1.使用OpenSSL 生成公钥和密钥: #用 OpenSSL, Linux 上自带,常用命令如下: #生成 RSA 私钥(传统格式的) openssl genrsa -o ...

  7. mysql查看连接数排查问题

    #mysql查看连接数SHOW VARIABLES LIKE '%max_connections%'; # max_connections 最大连接数 SHOW VARIABLES LIKE '%co ...

  8. Laravel 添加路由文件

    在laravel 5.4中的routes文件夹里面默认有两个路由文件web.php和api.php. 新建路由文件 我们在routes文件夹下多创建一个admin.php文件作为管理后台的路由 修改R ...

  9. 从头配置,开发 cocos2dx 3.14.1

    要使用cocos2dx写一个麻将测试工具. 配置流程如下: 1. 下载安装最新版本的VS(VS2017): https://www.visualstudio.com/zh-hans/downloads ...

  10. git error: Your local changes to the following files would be overwritten by merge:xxxxxx ,Please commit your changes or stash them before you merge.的phpstorm解决办法

    git报错 error: Your local changes to the following files would be overwritten by merge: .idea/encoding ...