CACHE与住存之间的全相联映射,直接映射和组相联映射的区别

合集下载

5.2Cache的基本知识

5.2Cache的基本知识
n (路数)
全相联 直接映象 组相联
M
1
相联度越高,Cache空间的利用率就越高,块冲
G (组数)
1
M
1<G<M
1<n<M
– 绝大多数计算机的Cache: n ≤4
想一想:相联度一定是越大越好?
第一组课件

5.2.2 查找算法 – 当CPU访问Cache时,如何确定Cache中 是否有所要访问的块? – 若有,如何确定其位置?
• 若主存第i 块映象到第k 组,则 k=i mod(G) (G为Cache的组数) • 设G=2g,则当表示为二进制数时,k 实际上就是i 的低 g 位:
i: k
– 低g位以及直接映象中的低m位通常称为索 引。
g位
第一组课件

– n 路组相联:每组中有n个块(n=M/G )。 n 称为相联度。
突 概率就越低,失效率也就越低。
– 减少写停顿的一种常用的优化技术:
采用写缓冲器
第一组课件

7. “写”操作时的调块
– 按写分配(写时取)
写失效时,先把所写单元所在的块调入Cache, 再行写入。
– 不按写分配(绕写法)
写失效时,直接写入下一级存储器而不调块。
8. 写策略与调块
– 写回法 ── 按写分配 – 写直达法 ── 不按写分配
第一组课件

– 设M=2m,则当表示为二进制数时,j实际上 就是i的低m位:
i: j
m位
第一组课件

第一组课件

3. 组相联映象
– 组相联:主存中的每一块可以被放置到 Cache中唯一的一个组中的任何一个位置。 举例 – 组相联是直接映象和全相联的一种折中
第一组课件

以下习题来自《计算机系统结构》第七章 存储体系。

以下习题来自《计算机系统结构》第七章 存储体系。

以下习题来自《计算机系统结构》第七章存储体系。

7.1解释下列术语直接映像:每个主存地址映像到Cache中的一个指定地质的方式称为直接映像。

全相联映像:任何主存地址可映像到任何Cache地址的方式称为全相联映像。

组相联映像:组相联映像指的是将存储空间的页面分成若干组,各组之间是直接映像,而组内各块之间是全相联映像。

全写法:全写法也称直达法,即写操作将数据同时写入Cache和缓存。

写回法:写Cache时不写主存,仅当被写Cache数据块要被替换出去时才写回主存。

虚拟存储器:虚拟存储器是主存的扩展,当主存的容量不能满足要求时,数据可存放在外存中,在程序中仍然按地址访问外存空间。

大小取决于计算机的访存能力。

段式管理:把主存按段分配的存储管理方式称为段式管理。

页式管理:把虚拟存储空间和实际存储空间等分成固定大小的页,各虚拟页可装入主存中不同的实际页面位置。

段页式管理:段页式管理式段式管理和页式管理的结合,他将存储空间按逻辑模块分成段,每段又分成若干个页,访存通过一个段表和若干个页表进行。

段的长度必须是页的长度的整数倍,段的起点必须是某一页的起点。

快表:为了提高页表中常用项的访问速度,采用快速硬件构成的比全表小的多的部分表格。

慢表:存放在主存中的整个页表。

高速缓存:高速缓冲存储器是位于CPU和主存之间的高层存储子系统。

时间局部性:如果一个存储项被访问,则可能该项会很快再次被访问。

空间局部性:如果一个存储项被访问,则该项及其邻近的相也可能很快被访问。

段表:在对虚拟内存进行管理时,系统中用于指明各段在主存中的位置的表,表中包括段名或段号、段起点、装入位和段长等。

页表:在对虚拟内存进行管理时,系统中用于指明各页在主存中的位置的表,表中包括页号、每页在主存中的起始位置、表示该页是否已装入主存的装入位等。

块表:存储系统中的一个用于解决块和页的定位、标志、和寻址问题的表。

7.2 有人认为,随着存储器芯片集成度的提高,主存的容量将越来越大,虚拟存贮器将被淘汰,未来的计算机中将不采用虚拟存储器。

主存与cache的地址映射关系

主存与cache的地址映射关系

主存与cache的地址映射关系主存与Cache的地址映射CPU对存储器的访问,通常是⼀次读写⼀个字单元。

当CPU访Cache不命中时,需将存储在主存中的字单元连同其后若⼲个字⼀同调⼊Cache中,之所以这样做,是为了使其后的访存能在Cache中命中。

因此,主存和Cache之间⼀次交换的数据单位应该是⼀个数据块。

数据块的⼤⼩是固定的,由若⼲个字组成,且主存和Cache的数据块⼤⼩是相同的。

从Cache-主存层次实现的⽬标看,⼀⽅⾯既要使CPU的访存速度接近于访Cache的速度,另⼀⽅⾯为⽤户程序提供的运⾏空间应保持为主存容量⼤⼩的存储空间。

在采⽤Cache-主存层次的系统中,Cache对⽤户程序⽽⾔是透明的,也就是说,⽤户程序可以不需要知道Cache的存在。

因此,CPU每次访存时,依然和未使⽤Cache的情况⼀样,给出的是⼀个主存地址。

但在Cache-主存层次中,CPU⾸先访问的是Cache,并不是主存。

为此,需要⼀种机制将CPU的访主存地址转换成访Cache地址。

⽽主存地址与Cache地址之间的转换是与主存块与Cache块之间的映射关系紧密联系的,也就是说,当CPU访Cache未命中时,需要将欲访问的字所在主存中的块调⼊Cache中,按什么样的策略调⼊,直接影响到主存地址与Cache地址的对应关系,这也就是本⼩节要解决的主存与Cache的地址映射问题。

主要有三种地址映射⽅式,分别为全相联映射、直接相联映射和组相联映射。

1. 全相联映射全相联映射是指主存中任⼀块都可以映射到Cache中任⼀块的⽅式,也就是说,当主存中的⼀块需调⼊Cache时,可根据当时Cache的块占⽤或分配情况,选择⼀个块给主存块存储,所选的Cache块可以是Cache中的任意⼀块。

例如,设Cache共有2C块,主存共有2M块,当主存的某⼀块j需调进Cache中时,它可以存⼊Cache的块0、块1、…、块i、… 或块2C -1的任意⼀块上。

cache三种方式

cache三种方式

第三章存储系统第五节Cache存储器二、主存与Cache的地址映射由于Cache比主存小的多,因此必须使用一种机制将主存地址定位到Cache中,即地址映射。

这个映射过程全部由硬件实现,对程序员透明。

1.地址映射方法:采用查表法(用专用快速硬件实现表格)表中内容:映射的Cache地址、标记(命中判断)、有效位2.地址映射的三种方式:(1)全相联映射方式:灵活,但映射函数复杂,不易实现。

(2)直接映射方式:映照简单,不需计算,快速,但效率不高,易颠簸;。

(3)组相联映射方式:组内全相联映射,组间直接映射(1)全相联映射方式·任一主存块能映射到Cache中任意行(主存块的容量等于Cache行的容量),见图1:·映射过程:(见图2)①存入Cache:块表标记中存放主存的块号②检索:访问主存地址的块号与所有Cache行标记比较(图2阴影区)·符合,即数据在Cache中,形成访问Cache的地址(地址映射),访问Cache;·不符合:访问主存,并将该块调入Cache。

·优点:灵活,不易产生冲突;缺点:比较电路难于实现,且效率低,速度慢。

例:设访问存储器地址的块号序列为22、26、22、26、16、4、16、18,采用全相联映射方式时,Cache行分配情况(见图3)。

全相联映射方式实例演示(2)直接映射方式直接映射方式实例演示·某一主存块只能能映射到Cache的特定行,见图4:i = j mod m 其中:i:Cache的行号;j:主存的块号;m:Cache的总行数。

·映射过程:(见图5)①存入Cache:快表标记中存放主存地址的区号(将块地址分为二部分:·块(行)地址·标记(区号))②检索:根据访问主存地址的中间字段(行号),找到Cache快表中的这一行,读取该行中的标记字段与主存地址高位字段(区号)比较(图5阴影区)·符合:即数据在Cache中,形成访问Cache的地址(地址映射),访问Cache;·不符合:访问主存,并将该块调入Cache。

计算机系统结构(高教版)张晨曦 习题答案 第五章

计算机系统结构(高教版)张晨曦 习题答案 第五章

5.1 解释下列术语多级存储层次:由若干个采用不同实现技术的存储器构成的存储器系统,各存储器处在离CPU不同距离的层次上。

使得靠近CPU的存储器速度较快,容量较小。

整个存储系统的速度接近与离CPU最近的存储器的速度,而容量和每位价格接近于最低层次的容量和价格。

全相联映像:指主存中的任一块可以被放置到Cache中的任意一个位置。

直接映像:指主存中的每一块只能被放置到Cache中唯一的一个位置。

组相联映像:指主存中的每一块可以被放置到Cache中固定的一个组中的任意位置。

替换算法:由于主存中的块比Cache中的块多,所以当要从主存中调入一个块到Cache中时,会出现该块所映像的Cache块位置已经被占用的情况。

替换算法即解决如何选择替换块的问题。

LRU:最近最少使用法。

选择近期最少被访问的块作为被替换的块。

写直达法:在执行“写”操作时,不仅把信息写入Cache中相应的块,而且也写入下一级存储器中相应的块。

写回法:只把信息写入Cache中相应的块,该块只有在被替换时才被写回主存。

按写分配法:在写失效时,先把所写单元所在的块从主存调入Cache,然后再进行写入。

不按写分配法:写失效时,直接写入下一级存储器而不将相应的块调入Cache。

命中时间:CPU所要访问的块在Cache中,确认并取走所花费的时间开销。

失效率:CPU一次访存不命中的概率。

失效开销:CPU一次访存不命中,而额外增加的访存开销。

强制性失效:当第一次访问一个块时,该块不在Cache中,需从下一级存储器中调入Cache。

容量失效:如果程序执行执行时所需的块不能全部调入Cache中,则当某些快被替换后,若又重新被访问,就会发生失效。

冲突失效:在组相联或直接映像Cache中,若不多的块映像到同一组中,则会出现该组中某个块被别的块替换,然后又重新被访问的情况。

2:1 Cache经验规则:大小为N的直接映像Cache的失效率约等于大小为N/2的2路组相联Cache的失效率。

与主存之间的地址映射方式

与主存之间的地址映射方式
的任意一块
映射机构将主存地址分为两个字 段,即主存块标记和块内字地址。 主存块标记就是主存块号,块内 字地址就是128个字的编码 (0~127)。当主存字块装人 Cache 时,将主存块号存人Cache 字块的标记部分,把整块数据存 入相应字块。当CPU访问主存 时,Cache 收到要访问的主存地 址,并将主存地址的块号 与 Cache 中所有字块的标记进 行比较,如果有相符的,
说明 Cache 命中,则按主存地址 的块内字地址读取具体的字并送 至 CPU。否则从主存中读取该字 并送至 CPU,同时将该块调入 Cache 中
Cache与主存之间的地址映射方式
图5-4所示的主存-Cache系统 中,Cache 有8个字块,编号为0~7, 每个字块前有9位标记,用以区分 不同主存块;主存有512块,编号 为0~511。设块的大小为128个字 (此处的字是指系统编址的最小 单位,具体的字节数因系统而异)。 主存的512个字块中的任意一块 可以映射到Cache 的8个字块中
说明 Cache 命中,则按主存地址 的块内字地址读取具体的字并送 至 CPU。否则从主存中读取该字 并送至 CPU,同时将该块调入 Cache 中
Cache与主存之间的地址映射方式
图5-4所示的主存-Cache系统 中,Cache 有8个字块,编号为0~7, 每个字块前有9位标记,用以区分 不同主存块;主存有512块,编号 为0~511。设块的大小为128个字 (此处的字是指系统编址的最小 单位,具体的字节数因系统而异)。 主存的512个字块中的任意一块 可以映射到Cache 的8个字块中
说明 Cache 命中,则按主存地址 的块内字地址读取具体的字并送 至 CPU。否则从主存中读取该字 并送至 CPU,同时将该块调入 Cache 中

cache工作原理

cache工作原理

cache工作原理概述:Cache是计算机系统中的一种高速缓存,用于存储频繁访问的数据,以提高数据访问速度和系统性能。

本文将详细介绍Cache的工作原理及其在计算机系统中的应用。

一、Cache的定义和作用Cache是位于CPU和主存储器之间的一级或者多级高速存储器,用于暂时存储最近被访问的数据和指令。

其主要作用是减少CPU访问主存储器的次数,从而提高数据读取和指令执行的速度。

Cache能够存储大量数据,并且具有较低的访问延迟,因此能够快速响应CPU的读写请求。

二、Cache的工作原理1. 缓存行Cache将主存储器分成若干个连续的缓存行,每一个缓存行包含多个字节的数据。

缓存行的大小通常为64字节或者128字节,具体大小取决于计算机系统的设计。

2. 缓存映射方式Cache采用缓存映射方式将主存储器中的数据和指令映射到缓存中。

常见的缓存映射方式包括直接映射、全相联映射和组相联映射。

其中,直接映射将主存储器的每一个地址映射到惟一的缓存行,全相联映射将主存储器的每一个地址都可以映射到任意一个缓存行,而组相联映射则介于两者之间。

3. 缓存命中和缓存失效当CPU需要访问数据或者指令时,首先会在Cache中进行查找。

如果所需数据或者指令在Cache中找到,即发生缓存命中,CPU可以直接从Cache中读取数据或者指令,从而避免了访问主存储器的开消。

如果所需数据或者指令不在Cache 中,即发生缓存失效,CPU需要从主存储器中读取数据或者指令,并将其存入Cache中,以备后续访问。

4. 缓存替换策略当Cache已满且发生缓存失效时,需要选择一个缓存行替换出来,以腾出空间存放新的数据或者指令。

常见的缓存替换策略包括最近至少使用(LRU)、先进先出(FIFO)和随机替换等。

其中,LRU是一种基于访问历史的替换策略,即替换最长期未被访问的缓存行。

5. 缓存一致性由于Cache和主存储器是分离的,因此可能存在数据不一致的情况。

《计算机组成原理》教学中几个基本概念的分析

《计算机组成原理》教学中几个基本概念的分析

《计算机组成原理》教学中几个基本概念的分析作者:李涛,章伟煊,陈建英来源:《教育教学论坛》2013年第38期摘要:《计算机组成原理》是计算机学科学生的一门必修课程,针对在教学过程中,学生不易理解或易混淆的几个基本概念进行分析,以期学生能加深对这些概念的理解,为后续课程的学习以及今后的工程实践中运用相关知识解决问题有所帮助。

关键词:计算机组成原理;教学改革;基本概念中图分类号:G642 文献标志码:A 文章编号:1674-9324(2013)38-0075-03《计算机组成原理》是所有计算机学科学生的专业基础课,是构成学生终生知识体系的重要组成部分,在整个计算机科学与技术专业的课程中起着承上启下的关键作用,是计算机学科的研究生入学考试必考科目之一。

从事该课程教学的教师们已进行了不少探索,包括教材的选择、教学内容设计,以及对教学模式、教学方法和实验教学等方面研究,为该课程的教学提供了有益的经验。

《计算机组成原理》这门课有一定的理论深度,其实践要求也高,涉及较多的前期知识和相关领域,课程的横向跨度大。

随着计算机硬件水平发展迅速,集成化程度不断提高,CPU由单核、双核发展到四核、多核;目前学生自己配置的计算机中笔记本已占大多数,学生很难直接了解计算机的内部结构,在课程学习中普遍感到概念抽象而难以感性化、内容多、难度大,他们认为《计算机组成原理》是一门比较难掌握的课程。

不少学生在完成该课程的学习后仍感到并未真正理解和掌握其中的基本原理。

为此,笔者介绍在近年来从事《计算机组成原理》教学过程中对几个基本概念的把握。

一、定点小数的补码表示范围定点小数在用补码表示时,负数最小时为-1,而-1本不属于小数范围,但是定点小数中[-1]的补码却存在,另外,整数的-1和小数的-1的表示也不一样,如机器字长为8时,整数的[-1]补=11111111和小数的[-1]补=1.0000000。

对此,学生难以理解和接受,进而影响浮点数表示范围的理解。

直接映射方式和组相联映射方式的主存地址格式

直接映射方式和组相联映射方式的主存地址格式
直接映射方式: 主存地址格式:主存组号+组内块号+块内偏移地址 cache地格式:cache行号+行内偏移地址 cache标记tag:映射到该行的主存块的主存地址的“组号”
组相联映射方式: 主存地址格式:主存组号+组内块号+块内偏移地址 cache地址格式:cache组号+组内行号+行内偏移地址 cache标记tag:组号
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
直接映射方式和组相联映射方式的主存地址格式
全相联映射方式: 主存地址格式:主存块号+块内偏移地址 cache地址格式: cache行号+行内偏移地址 cache标记tag:主存块号

Cache的原理与地址映像机制

Cache的原理与地址映像机制

二、பைடு நூலகம்址映像机制
4. 查找方法
基于目录表的查找
只需查找候选位置 所对应的目录表项
二、地址映像机制
4. 查找方法
并行查找 顺序查找
二、地址映像机制
4. 查找方法
顺序查找
主候选位置 (MRU块)
二、地址映像机制
4. 查找方法
并行查找
硬件: 相联存储器 单体多字存储器
二、地址映像机制
4. 查找方法
常用的地址映像方式 直接映像方式
全相联映像方式
组相联映像方式
二、地址映像机制
1. 直接相联
t位 Cache存储体 0 标记 * 1 标记
比较器(t位) 主存储体 字块0 字块1
字块 0 字块 1


字块2c-1
2c-1
标记 字块
2c-1
字块2c
字块2c +1 字块2c+1-1
=
有效位=1? 是 命中 否
命中率 与 Cache 的 容量 与 块长 有关 H
C
命中率
CPU 欲访问的信息在 Cache 中的 比率
命中率 与 Cache 的 容量 与 块长 有关
H 1 容量大
容量小 BC
Cache –主存系统的效率
效率 e 与 命中率 有关
访问 Cache 的时间 e= × 100% 平均访问时间
设 Cache 命中率 为 h,访问 Cache 的时间为 tc , 访问 主存 的时间为 tm
标记 标记 字块0 字块1 …
主存储器
字块0
字块1
标记
字块2c-1 字块2c-1 …

主存地址
主存字块标记 字块内地址

Cache和主存之间的映像

Cache和主存之间的映像

3.7.3 Cache和主存之间的映像方式为了把信息放到Cache中,必须应用某种函数把主存地址映像到Cache中定位,称为地址映像(映射)。

而将主存地址变换成Cache地址,称做地址变换,它们之间是密切相关的。

常用的地址映像方式有三种,分别是全相联映像、直接映像和组相联映像。

1.全相联映像全相联映像是指将内存和Cache按照固定的相同的大小进行分块。

内存的块和Cache的块可以任意对应,即内存的任何一块都可以映像到Cache的任何一块。

在Cache的存储空间被占满的情况下,也允许确实已被占满的Cache存储器中替换出任何一个旧块,具体如图3-14所示。

2.直接映像直接映像先将Cache分成若干块,每个块的大小相同,并对每个块进行编号。

同时根据Cache容量大小将内存分成若干区(页),每个区的容量都跟Cache的容量相同,然后对内存进行分块,每块的大小跟Cache块的大小相同,同样对区内的块进行编号。

映像时,内存的某个区的块只能保存在与其块号相同的Cache块中。

如图3-15所示,内存各区中的第0块只能映像到Cache的第0块,而不能映像到其他块。

3.组相联映像组相联映像实际上是直接映像和全相联映像的折中方案。

组相联映像方式先将Cache分成大小相同的若干区(组),对每个区按照直接映像的方式进行分块,并且编号,因此,Cache中有多个编号相同的块。

对内存按照Cache区的大小进行分页,再对每页按照Cache块的大小进行分块,每个内存块可以对应不同Cache区中的相同块号的块。

如图3-16中内存第0页的第0块,可以对应Cache的第0区的第0块,也可以对应第j区的第0块。

在三种方式中,全相联映像方式比较灵活,Cache的块冲突概率最低、空间利用率最高,但是地址变换速度慢,而且成本高,实现起来比较困难;直接映像方式是最简单的地址映像方式,成本低,易实现,地址变换速度快,而且不涉及其他两种映像方式中的替换算法问题。

全相连映射,组相连映射,直接映射例如解释

全相连映射,组相连映射,直接映射例如解释

全相连映射、组相连映射和直接映射是计算机科学中常见的术语,它们在计算机存储器和缓存系统中扮演着重要的角色。

通过深入探讨这些映射方式的特点和应用,我们可以更好地理解计算机存储器和缓存系统的工作原理和优化方法。

1. 全相连映射全相连映射是一种常见的存储器映射方式,它的特点是任何给定的存储器块都可以映射到存储器缓存的任何一个位置上。

任何一个存储器块都可以放置在缓存中的任意一个位置,只要这个位置没有被其他块占用。

在全相连映射中,当需要访问存储器块时,系统会先计算存储器块的位置区域在缓存中的映射位置,然后检查这个位置是否已经被其他块占用。

如果该位置已经被其他块占用,就需要进行替换操作。

全相连映射的优点是实现简单、应用广泛,但缺点是替换算法相对复杂,性能可能不如其他映射方式。

2. 组相连映射组相连映射是全相连映射的一种改进方式,它将缓存划分为多个组,每个组包含多个缓存行。

存储器块的映射位置由该块的位置区域的一部分决定,这样可以将存储器块映射到特定的组中。

在组内部,采用全相连映射的方式进行存储器块的替换操作。

组相连映射的优点是减少了替换操作的复杂性,提高了替换算法的效率;缺点是需要对存储器位置区域进行分组,增加了硬件的复杂性。

但是,相比于全相连映射,组相连映射在实际应用中更为有效。

3. 直接映射直接映射是另一种常见的存储器映射方式,它的特点是将存储器块映射到缓存中的特定位置。

这意味着每个存储器块只能映射到缓存中的一个固定位置,当需要替换时,只能替换该位置上的存储器块。

直接映射的优点是实现简单、硬件成本低,但缺点是可能会出现替换频繁的情况,导致性能下降。

在实际应用中,直接映射往往作为全相连映射和组相连映射的一种辅助方式来使用。

通过对全相连映射、组相连映射和直接映射的深入探讨,我们可以看到它们在计算机存储器和缓存系统中的重要性和应用价值。

在实际应用中,不同的映射方式可以根据具体的需求来选择,以达到最佳的性能和效率。

主存和Cache的几种映射方式

主存和Cache的几种映射方式

主存和Cache的⼏种映射⽅式在⼀切开始之前,⾸先最重要的是需要去明⽩和掌握内存的块的定义:内存被分为若⼲块,这些块:1.⼤⼩相等,2.每块由若⼲字组成,3.块的长度成为块长,块的长度是指由⼏个字组成就是多长,⽐如⼀个块由x个字组成,那么块长为x.4.每个块由连续的字组成。

在Cache中这种块被某些替换原则替换进⼊Cache之后,称为Cache的⾏(有些书上也称为块,这⾥就⽤⾏表⽰,以免混淆)。

有以下⼏个特点:1.块长(⼀般是取⼀个存取周期内从主存调出的信息长度,和交互存取有关系)与⾏长相等,这点和物理页和逻辑页的页内地址的长度是⼀样的原理类似。

2.Cache中⾏的位数=⾏号+⾏内地址内存中块的位数=块号+块内地址。

3.块内地址的位数由块的长度决定(设块的长度为x,块内地址的位数其实就是⽤⼏位能表⽰x的问题),块号的位数由块的数⽬决定(⽐如块的数⽬是x,块号其实就是⽤⼏位⼆进制数能表⽰x个数的问题),⾏号的位数由⾏数决定。

块⾥的内容就是⾏的内容,⾏内地址和块内地址相同。

、标记位是什么?先记住⼀点,标记位和cache的地址没有⼀点关系。

每个⾏对应⼀个标记位。

后⾯会进⾏说明CPU与内存以及Cache之间的交互⽅式好了,明⽩了块和⾏的定义之后,我们来看看CPU与内存和Cache之间的交互:1.CPU同时(也有可能不是同时,这时事先访问cache cahce⾥⾯没有再对主存进⾏访问,如果缺失的话访存时间会长⼀点)向Cache和内存发出读请求。

把地址同时送给Cache和内存。

2.Cache控制逻辑(由硬件实现)判断此内存地址是否在Cache中,在则⽴马将此内存的字送给CPU,与此同时,终⽌访问内存。

3.若不在Cache中,⽤主存读取周期从主存中将字取出送往CPU,与此同时,把含有这个字的整个数据块通过Cache与主存的直接通路送到Cache 中。

(由这个交互过程我们可以看到,主存和Cache与CPU交互的时候传送的是字,但是Cache和主存交互传送的是块)了解了过程之后我们来看看映射关系是什么,映射关系是CPU在访存时,将主存地址变换成Cache地址的过程。

Cache和主存的三种映射方式

Cache和主存的三种映射方式

Cache和主存的三种映射方式Cache與主存之間的全相聯映射,直接映射和組相聯映射的區別1.高速緩沖存儲器的功能、結構與工作原理高速緩沖存儲器是存在於主存與CPU之間的一級存儲器,由靜態存儲芯片(SRAM)組成,容量比較小但速度比主存高得多,接近於CPU 的速度。

Cache的功能是用來存放那些近期需要運\行的指令與數據。

目的是提高CPU對存儲器的訪問速度。

為此需要解決2個技術問題:一是主存地址與緩存地址的映象及轉換;二是按一定原則對Cache的內容進行替換。

Cache的結構和工作原理如圖2.3.1所示。

主要由三大部分組成:Cache存儲體:存放由主存調入的指令與數據塊。

地址轉換部件:建立目錄表以實現主存地址到緩存地址的轉換。

替換部件:在緩存已滿時按一定策略進行數據塊替換,並修改地址轉換部件。

2.地址映象與轉換地址映象是指某一數據在內存中的地址與在緩沖中的地址,兩者之間的對應關系。

下面介紹三種地址映象的方式。

1.全相聯方式地址映象規則:主存的任意一塊可以映象到Cache中的任意一塊(1) 主存與緩存分成相同大小的數據塊。

(2) 主存的某一數據塊可以裝入緩存的任意一塊空間中。

全相聯方式的對應關系如圖2.3.2所示。

如果Cache的塊數為Cb,主存的塊數為Mb,則映象關系共有Cb×Mb種。

圖2.3.3示出了目錄表的格式及地址變換規則。

目錄表存放在相關(聯)存儲器中,其中包括三部分:數據塊在主存的塊地址、存入緩存後的塊地址、及有效位(也稱裝入位)。

由於是全相聯方式,因此,目錄表的容量應當與緩存的塊數相同。

舉例:某機主存容量為1M,Cache的容量為32KB,每塊的大小為16個字(或字節)。

劃出主、緩存的地址格式、目錄表格式及其容量。

容量:與緩沖塊數量相同即211=2048(或32K/16=2048)。

優點:命中率比較高,Cache存儲空間利用率高。

缺點:訪問相關存儲器時,每次都要與全部內容比較,速度低,成本高,因而應用少。

CACHE与主存之间的全相联映射,直接映射和组相联映射的区别

CACHE与主存之间的全相联映射,直接映射和组相联映射的区别
优点:可靠性较高,操作过程比较简单。
缺点:写操作速度得不到改善,与写主存的速度相同。
2.写回法(WB法-Write back)
方法:在CPU执行写操作时,只写入Cache,不写入主存。
优点:速度较高。
缺点:可靠性较差,控制操作比较复杂。
2.3.5 Cache性能分析
1.Cache系统的加速比
存储系统采用Cache技术的主要目的是提高存储器的访问速度,加速比是其重要的性能参数。Cache存储系统的加速比SP(Speedup)为:
其容量为Cache中替换时参与选择的块数。如在组相联方式中,则是同组内的块数。堆栈由栈顶到栈底依次记录主存数据存入缓存的块号,
现以一组内4块为例说明其工作情况,如表2.3.2所示,表中1~4为缓存中的一组的4个块号。
表2.3.2 寄存器栈法实现
缓存操作初始状态调入2命中块4替换块1
寄存器03241
寄存器14324
3.最近最少使用法(LRU法)
LRU法是依据各块使用的情况, 总是选择那个最近最少使用的块被替换。这种方法比较好地反映了程序局部性规律。
实现LRU策略的方法有多种。 下面简单介绍计数器法、寄存器栈法及硬件逻辑比较对法的设计思路。
计数器方法:缓存的每一块都设置一个计数器,计数器的操作规则是:
(1) 被调入或者被替换的块, 其计数器清“0”,而其它的计数器则加“1”。
相关存储器中每个单元包含有:
主存地址中的区号E与组内块号B,两者结合在一起,其对应的字段是缓存块地址b。相关存储器的容量,应与缓存的块数相同。当进行数据访问时,先根据组号,在目录表中找到该组所包含的各块的目录,然后将被访数据的主存区号与组内块号,与本组内各块的目录同时进行比较。如果比较相等,而且有效位为“1”则命中。

Cache基本知识

Cache基本知识

张晨曦 刘依
22/46
5.两种写策略的比较 ◆ 写回法的优点:速度快,所使用的存储器频 带较低; ◆ 写直达法的优点:易于实现,一致性好。
张晨曦 刘依
23/46
5.2 Cache 基本知识
6. 写缓冲器
7. “写”操作时的调块 ◆ 按写分配(写时取) 写失效时,先把所写单元所在的块调入 Cache,再行写入。 ◆ 不按写分配(绕写法) 写失效时,直接写入下一级存储器而不调块。
2. “写”操作必须在确认是命中后才可进行
3.“写”访问有可能导致Cache和主存内容的不一 致
张晨曦 刘依
21/46
5.2 Cache 基本知识
4.两种写策略 ◆ 写直达法 执行“写”操作时,不仅写入Cache,而且 也写入下一级存储器。 ◆ 写回法 执行“写”操作时,只写入Cache。仅当 Cache中相应的块被替换时,才写回主存。 (设置“污染位”)
Cache和两路组相联Cache,试问它们对CPU的性 能有何影响?先求平均访存时间,然后再计算 CPU性能。分析时请用以下假设:
⑴ 理想Cache(命中率为100%)情况下的CPI 为2.0,时钟周期为2ns,平均每条指令 访存1.3次。
⑵ 两种Cache容量均为64KB,块大小都是32 字节。
张晨曦 刘依
14/46
5.2 Cache 基本知识
◆ 并行查找的实现方法: 相联存储器 单体多字存储器+比较器 举例: 4路组相联并行标识比较 (比较器的个数及位数)
张晨曦 刘依
15/46
◆ 4路组相联Cache的查找过程
◆ 直接映象Cache的查找过程
5.2 Cache 基本知识
5.2.3 替换算法

cache详解

cache详解

CPU对存储器的访问,通常是一次读写一个字单元。

当CPU访Cache不命中时,需将存储在主存中的字单元连同其后若干个字一同调入Cache中,之所以这样做,是为了使其后的访存能在Cache中命中。

因此,主存和Cache之间一次交换的数据单位应该是一个数据块。

数据块的大小是固定的,由若干个字组成,且主存和Cache的数据块大小是相同的。

从Cache-主存层次实现的目标看,一方面既要使CPU的访存速度接近于访Cache的速度,另一方面为用户程序提供的运行空间应保持为主存容量大小的存储空间。

在采用Cache-主存层次的系统中,Cache对用户程序而言是透明的,也就是说,用户程序可以不需要知道Cache的存在。

因此,CPU每次访存时,依然和未使用Cache的情况一样,给出的是一个主存地址。

但在Cache-主存层次中,CPU首先访问的是Cache,并不是主存。

为此,需要一种机制将CPU的访主存地址转换成访Cache地址。

而主存地址与Cache地址之间的转换是与主存块与Cache块之间的映射关系紧密联系的,也就是说,当CPU访Cache未命中时,需要将欲访问的字所在主存中的块调入Cache中,按什么样的策略调入,直接影响到主存地址与Cache地址的对应关系,这也就是本小节要解决的主存与Cache的地址映射问题。

主要有三种地址映射方式,分别为全相联映射、直接相联映射和组相联映射。

1. 全相联映射全相联映射是指主存中任一块都可以映射到Cache中任一块的方式,也就是说,当主存中的一块需调入Cache时,可根据当时Cache的块占用或分配情况,选择一个块给主存块存储,所选的Cache块可以是Cache中的任意一块。

例如,设Cache共有2C块,主存共有2M块,当主存的某一块j需调进Cache中时,它可以存入Cache的块0、块1、…、块i、…或块2C -1的任意一块上。

如图4-28所示。

图4-28全相联映射方式在全相联映射方式下,CPU的访主存地址为如下形式:其中,M为主存的块号,W为块内的字号。

四路组相联原理(一)

四路组相联原理(一)

四路组相联原理(一)四路组相联原理什么是四路组相联原理四路组相联原理是一种缓存映射技术,用于提高计算机系统的访存效率。

在计算机系统中,CPU通过高速缓存(cache)来缓存一部分被频繁访问的内存数据,以减少对主存和外部存储设备的访问次数,从而提高系统的整体性能。

而四路组相联原理是一种高效的缓存映射方式,能够更好地利用缓存的存储空间。

传统的缓存映射方式在传统的缓存映射方式中,常用的有直接映射和全相联映射两种方式。

直接映射将主存地址直接映射到缓存中的某一行,每个主存块只能映射到缓存中的某个特定位置,这样在访问冲突较多的情况下,会导致较多的缓存未命中,从而降低系统的效率。

全相联映射则不限制主存地址映射到缓存中的位置,每个主存块可以映射到任意缓存行,有效避免了访问冲突,但需要消耗较大的硬件资源来实现全相联缓存。

四路组相联原理的工作原理四路组相联原理旨在在保证较高命中率的情况下,降低硬件资源的消耗。

其采用了一种层次化的缓存结构,将缓存划分为若干组,每组包含四个缓存行。

在访问缓存时,CPU从主存中读取指定块的数据,并计算其在缓存中的组编号。

然后,CPU会在该组的四个缓存行中查找目标数据的存放位置。

如果找到了,则表示命中缓存,直接从缓存中获取数据。

如果没有找到,则表示缓存未命中,需要从主存中读取数据,并将其写入缓存中。

四路组相联原理的优势相比于传统的直接映射或全相联映射方式,四路组相联原理有以下优势: 1. 提高命中率:四路组相联能够更好地利用缓存的存储空间,减少缓存未命中的情况,从而提高系统的命中率。

2. 减少访问冲突:相对于直接映射方式,四路组相联映射减少了对缓存行的争用,降低了访问冲突的可能性,提高访存效率。

3. 节省硬件资源:相比于全相联映射,四路组相联只需要四个缓存行来存放一组数据,省去了全相联缓存中的重复硬件资源,降低了成本。

浅析四路组相联原理应用场景四路组相联原理适用于中等规模的计算机系统,尤其对于需要高效利用缓存空间且访问冲突频繁的应用场景非常合适,例如数据库系统、虚拟机等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档