原理:程序访问局部性

        在较短时间内由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内
        时间:在一小段时间内,最近被访问过的程序和数据很可能再次被访问
        空间:在最近的未来要用到的信息很可能与现在正在使用的信息在程序空间上是相邻或相近的
主存和缓存按块存储
---- Cache的容量很小,它保存的内容只是主存内容的一个子集,且Cache与主存的数据交换是以块(cache line)为单位的。为了把信息放到Cache中,必须应用某种函数把主存地址定位到Cache中,这称为地址映射
 
---- 在信息按这种映射关系装入Cache后,CPU执行程序时,会将程序中的主存地址变换成Cache地址,这个变换过程叫做地址变换。
 
Cache的地址映射方式有直接映射、全相联映射和组相联映射。

全相联方式

地址映象规则:主存的任意一块可以映象到Cache中的任意一块
1. 主存与缓存分成相同大小的数据块。
2. 主存的某一数据块可以装入缓存的任意一块空间中。
cache与主存之间的数据交换是以“块”为单位进行的。一个“块”中包含若干个“字”,字长由实际情况确定。
习惯上,cache中的“块”称“行”,主存中称“块”。cache的“行”与主存的“块”存储容量相同
cache中的标记与cache的“行”一一对应的。如果某一块主存数据块拷贝到cache中的某一行,该cache行就会形成相应的标记。PPT中主存共有255个地址块,2的8次方等于255,因此需要8位来标记
 
在全相联映射方式中,将内存地址的前m位的块号与cache中所有行的标记同时在比较器中做比较。若块号命中,按b位字地址从cache中读取一个字;若未命中,则按内存地址从主存中读取这个字


直接映射

在直接映射方式中,首先用区内块号找到cache中的对应行,然后用地址中的区号与此行的标记在比较器中做比较。若符合命中,在cache中找到了对应的块,然后用地址中的低b位(块内地址)读取所需的字。若未命中,按内存地址从主存中读取这个字


组相联映射

 
主存分区,Cache分组,主存每个区的块数与Cache的分组数相同。如图,一个区分为4块,因此cache
分为4个组。
组件采用直接映射,主存块存放到哪个组是固定的。一个内存字块对应的cache的组号=字块号%cache组数。
组内采用全相联映射,存到该组哪一行是灵活的。
 
在组相联映射方式中,首先用cache组号找到cache的相应组,然后将区号与该组每一行的区号同时比较,哪一行的标记相符即该行命中。再以内存地址中的块内地址检索此行对应的字。
 

Cache地址映射的更多相关文章

  1. ****** 三十四 ******、软设笔记【存储器系统】-Cache存储器

    Cache存储器 Cache(高速缓冲存储器) 高速缓冲存储器是位于主存与CPU之间的一级存储器,有静态存储芯片(SRAM)组成,容量比较小,速度比主存高得多,接近于CPU的速度,单位成本比内存高.C ...

  2. Intel x86_64 Architecture Background 3

    多层次的cache结构解决了CPU和DRAM之间处理速度不一致的问题,在Intel体系架构下,CPU核心和主存DRAM之间有着三层的cache.其中一层缓存L1和二层缓存L2在CPU核心(core)中 ...

  3. 主存与Cache的地址映射

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

  4. 主存和cache的地址映射

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

  5. cache与MMU与总线仲裁

    为了以合理的价格,设计容量和速度满足计算机系统的需求,计算机体系结构设计者设计出了存储器的层次结构. "Cache-主存"和"主存-辅存"是最常见的两种层次结构 ...

  6. s3c6410_MMU地址映射过程详述

    参考: 1)<ARM1176 JZF-S Technical Reference Manual>: Chapter 3 System Control Coprocessor Chapter ...

  7. 内存管理概述、内存分配与释放、地址映射机制(mm_struct, vm_area_struct)、malloc/free 的实现

    http://blog.csdn.net/pi9nc/article/details/23334659 注:本分类下文章大多整理自<深入分析linux内核源代码>一书,另有参考其他一些资料 ...

  8. TMS320C64x DSP L1 L2 Cache架构(1)——C64x Cache Architecture

    [前沿]研究生阶段从事于DSP和FPGA技术的相关研究工作,学习并整理了大量的技术资料,包括TI公司的官方文档和网络上的详细笔记,花费了大量的时间和精力总结了前人的工作成果.无奈工作却从事于嵌入式技术 ...

  9. Something about cache

    http://www.tyut.edu.cn/kecheng1/2008/site04/courseware/chapter5/5.5.htm 5.5 高速缓冲存储器cache 随着CPU时钟速率的不 ...

随机推荐

  1. 一次对php大马的后门的简单分析

    有人分享了一个php大马(说是过waf),八成有后门,简单分析了一次 <?php $password='Shiqi';//登录密码(支持菜刀) //----------功能程序--------- ...

  2. hydra暴力破解

    hydra,是一个非常好用的暴力破解工具,而且名字也很cool. 下面是官网上的介绍: AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, ...

  3. [NOIp2014] luogu P1351 联合权值

    哎我博 4 了. 题目描述 无向连通图 GGG 有 nnn 个点,n−1n−1n−1 条边.点从 111 到 nnn 依次编号,编号为 iii 的点的权值为 WiW_iWi​,每条边的长度均为 111 ...

  4. PowerShell渗透--Empire

    0x00 简介 Empire是一款针对Windows平台的,使用PowerShell脚本作为攻击载荷的渗透攻击框架代码具有从stager生成,提权到渗透维持的一系列功能,无需powershell.ex ...

  5. 微信分享—ios和安卓机制居然不一样!

     实际项目中,在做微信分享追踪的时候,遇到了一个百思不得其解的问题. 在加入了用户分享追踪功能之后,页面已经加载完成的情况下,安卓分享功能没有任何问题,ios却总是分享失败. 关于ios和安卓设备的差 ...

  6. Uipath 勾选checkbox

    东京IT青年前线 http://www.rpatokyo.com/ Uipath 勾选checkbox 使用check Activity可以对check box 复选框进行勾选. 虽然Click也可以 ...

  7. 2、Struts2开始深入

    一.Struts2的配置文件加载顺序 1 .进入过滤器[StrutsPrepareAndExecuteFilter]跟代码,可以看到对应的文件加载顺序 进入StrtsPrepareAndExecute ...

  8. Spring Cloud ---- 服务消费与负载均衡(feign)

    feign是一个声明式的伪客户端,只需要创建一个接口并且注解,它具有可插拔的特性.feign集合了Ribbon,再与Eurake结合实现服务的注册发现与负载均衡.结合Hystrix,具有熔断功能. 1 ...

  9. The command ("dfs.browser.action.delete") is undefined 解决Hadoop Eclipse插件报错

    Hadoop Eclipse插件 报错. 使用 hadoop-eclipse-kepler-plugin-2.2.0.jar 如下所示 Error Log 强迫症看了 受不了 The command ...

  10. bash_history文件怎么删除

    Bash shell在“~/.bash_history”(“~/”表示用户目录)文件中保存了500条使用过的命令,这样可以使你输入使用过的长命令变得容易.每个在系统中拥有账号的用户在他的目录下都有一个 ...