CACHE与住存之间的全相联映射,直接映射和组相联映射的区别
5.2Cache的基本知识

全相联 直接映象 组相联
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的地址映射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中,即地址映射。
这个映射过程全部由硬件实现,对程序员透明。
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是位于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的原理与地址映像机制
二、பைடு நூலகம்址映像机制
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 …
…
主存地址
主存字块标记 字块内地址