组路相联Cache

合集下载

存储之Cache

存储之Cache

存储之CacheCache存在的意义:根据局部性原理,对于当前访问的存储位置,接下来,它很可能会被多次访问(时间局部性),它的相邻位置也可能会被访问(空间局部性)。

由于访问内存的速度远⼤于访问寄存器,所以在⼆者之间设置cache,来暂存⼀部分指令或数据。

内存:假设每个内存地址有m位,那么共有M=2m个不同的地址,即内存容量为M字节。

如下图所⽰,m位地址划分为t位标记、s位组索引和b位块偏移,⽤于描述该地址所存数据(⼤⼩为byte)的副本在cache中的位置。

Cache:使⽤元组(S,E,B,m)来描述,具体为:S=2s表⽰Cache共有S个⾼速缓存组(cache set)E表⽰每组均有E个⾼速缓存⾏(cache line)B=2b表⽰每⾏均包含⼤⼩为B个字节的⾼速缓存块(block)总容量为C=S∗E∗B个字节特别注意:每个cache line包含两部分,有效位/标记位+⾼速缓存块;通常说line size是指⾼速缓存块的⼤⼩,即B假设指令指⽰CPU从地址A读取⼀个数据,CPU将地址A发送到Cache,如果Cache含有该数据的副本,它将⽴即返回数据给CPU;那么Cache如何找到该数据的呢?组选择,Cache根据地址A中的s位组索引定位到组⾏匹配,Cache根据地址A中的t位标记位定位到⾏(注意:当且仅当该⾏设置了有效位,并且该⾏的t位标记位与地址A的t位标记位完全相同时,该⾏才包含所需数据副本)取数据,Cache根据地址A中的b位块偏移定位到该数据在block中的位置Cache与内存的映射关系⾸先要明确,cache有多个组,每个组有⼀个或多个⾏;内存有多个块,每个块的⼤⼩为B(即line size),块的数量为2m/B;映射关系是内存块与cache line的映射⼀、直接映射⾼速缓存E=1,即cache中每组只有⼀⾏(即查取数据时没有⾏匹配过程)。

⽐如(S,E,B,m)=(4,1,2,4),即cache有4组/4⾏,内存有8块,则映射关系如下:⼆、全相联⾼速缓存S=1,即只有⼀个组;所以,查取数据时没有组选择过程,定位数据副本过程如下:三、组相联⾼速缓存Cache包含多个组,每组⼜有多个⾏,所以查取数据时组选择、⾏匹配都不会少,过程如下:理解关键:以上就是CSAPP对cache的主要描述,此时我们对cache的实现原理已经⽐较清楚了,但是有个很关键且令⼈困惑的问题:⼀直在说查取数据,cache与内存的三种映射关系并没有体现出来!我们在各种资料上常见的三张映射关系图,如何与上述知识对接呢?关键就在于t位的标记位!⾸先,t=m−s−b,它的含义是每⾏(或者说每个cache line)可以与2t=MS⋅B种不同的内存块产⽣映射关系(注意,是种,不是个)。

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

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

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的失效率。

计算机科学与技术考试:2022计算机系统结构真题模拟及答案(2)

计算机科学与技术考试:2022计算机系统结构真题模拟及答案(2)

计算机科学与技术考试:2022计算机系统结构真题模拟及答案(2)共126道题1、冯·诺依曼计算机的特点是()。

Ⅰ.采用二进制Ⅱ.存储程序Ⅲ.控制流驱动方式Ⅳ.数据流驱动方式(单选题)A. 仅Ⅰ、ⅡB. 仅Ⅰ、Ⅱ、ⅢC. 仅Ⅰ、Ⅱ、ⅣD. Ⅰ、Ⅱ、Ⅲ、Ⅳ试题答案:A2、一个八路组相联Cache共有64块,主存共有8192块,每块64个字节,那么主存地址的标记x,组号y和块内地址z分别是()。

(单选题)A. x=4,y=3,z=6B. x=1,y=6,z=6C. x=10,y=3,z=6D. x=7,y=6,z=6试题答案:C3、假定主存地址为32位,按字节编址,主存和Cache之间采用直接映射方式,主存块大小为4个字,每字32位,采用回写(Write Back)方式,则能存放4K字数据的Cache 的总容量的位数至少是()。

(单选题)A. 146KB. 147KC. 148KD. 158K试题答案:C4、CPU中,除了内部总线和必要的寄存器外,主要的两大部件分别是运算器和()。

(单选题)A. 控制器B. 存储器C. CacheD. 编辑器试题答案:A5、下列关于RISC的叙述中,错误的是()。

(单选题)A. RISC普遍采用微程序控制器B. RISC大多数指令在一个时钟周期内完成C. RISC的内部通用寄存器数量相对CISC多D. RISC的指令数、寻址方式和指令格式种类相对CISC少试题答案:A6、某计算机的Cache共有16块,采用2路组相联映射方式(即每组2块)。

每个主存块大小为32字节,按字节编址。

主存129号单元所在主存块应装入到的Cache组号是()。

(单选题)A. 0B. 1C. 4D. 6试题答案:C7、假设某计算机的存储系统由Cache和主存组成。

某程序执行过程中访存1000次,其中访问Cache缺失(未命中)50次,则Cache的命中率是()。

(单选题)A. 5%C. 50%D. 95%试题答案:D8、度量处理器CPU时钟频率的单位是()。

计算机组成原理——主存储器考研题

计算机组成原理——主存储器考研题

计算机组成原理——主存储器考研题(2009)14.某计算机的Cache共有16块,采⽤2路组相联映射⽅式(即每组2块)。

每个主存块⼤⼩为32字节,按字节编制。

主存129号单元所在主存块应装⼊到的Cache组号是A.0B. 2C. 4D.6答案:C考点:Cache组相联映射⽅式主存按字节变址,第129号单元代表第129个字节。

主存129单元,所在的块号为129/32=4(从0开始编号);由于Cache共有16块,采⽤2路组相联,因此共有8组,0,1,2, (7)主存的某⼀字块按模8映像到Cache某组的任⼀字块中,即主存的第0,8,16…字块可以映像到Cache第0组2个字块的任⼀字块中,⽽129号单元是位于第4块主存块中,因此将映射到Cache第4组2个字块的任⼀字块中。

21.假设某计算机的存储系统由 Cache 和主存组成,某程序执⾏过程中访存 1000 次,其中访问 Cache 缺失(未命中)50 次,则 Cache 的命中率是A 5% B.9.5%C. 50%D.95%答案:D考点:Cache命中率的计算(2010)17.下列命令组合情况,⼀次访存过程中,不可能发⽣的是( )A.TLB未命中,Cache未命中,Page未命中B.TLB未命中,Cache命中,Page命中C.TLB命中,Cache未命中,Page命中D.TLB命中,Cache命中,Page未命中答案:D考点:TLB,Cache,Page的含义。

TLB即为快表,快表只是慢表(Page)的⼩⼩副本,因此TLB命中,必然Page也命中,⽽当Page命中,TLB则未必命中,故D不可能发⽣;⽽Cache的命中与否与TLB、Page的命中与否并⽆必然联系。

(2012)17.假设某计算机按字编址,Cache 有 4 个⾏,Cache 和主存之间交换的块为 1 个字。

若 Cache 的内容初始为空,采⽤ 2 路组相联映射⽅式和 LRU 替换算法。

第五章课后习题答案

第五章课后习题答案

5.10 假设对指令Cache 的访问占全部访问的75%;而对数据Cache 的访问占全部访问的25%。

Cache 的命中时间为1个时钟周期,失效开销为50 个时钟周期,在混合Cache 中一次load 或store 操作访问Cache 的命中时间都要增加一个时钟周期,32KB 的指令Cache 的失效率为0.39%,32KB 的数据Cache 的失效率为4.82%,64KB 的混合Cache 的失效率为1.35%。

又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。

试问指令Cache 和数据Cache 容量均为32KB 的分离Cache 和容量为64KB 的混合Cache 相比,哪种Cache 的失效率更低?两种情况下平均访存时间各是多少?解:(1)根据题意,约75%的访存为取指令。

因此,分离Cache 的总体失效率为:(75%×0.15%)+(25%×3.77%)=1.055%;容量为128KB 的混合Cache 的失效率略低一些,只有0.95%。

(2)平均访存时间公式可以分为指令访问和数据访问两部分:平均访存时间=指令所占的百分比×(读命中时间+读失效率×失效开销)+ 数据所占的百分比×(数据命中时间+数据失效率×失效开销)所以,两种结构的平均访存时间分别为:分离Cache 的平均访存时间=75%×(1+0.15%×50)+25%×(1+3.77%×50)=(75%×1.075)+(25%×2.885)=1.5275混合Cache 的平均访存时间=75%×(1+0.95%×50)+25%×(1+1+0.95%×50)=(75%×1.475)+(25%×2.475)=1.725因此,尽管分离Cache 的实际失效率比混合Cache 的高,但其平均访存时间反而较低。

计算机组成习题考核 (1)

计算机组成习题考核 (1)

习题1:设主存容量1MB,Cache容量16KB,块的大小为0.5KB。

要求:写出主存地址格式;Cache地址格式;画出直接地址映像及变换图。

解题:主存地址格式:Cache地址格式:习题2:设主存容量1MB,字长32位,直接映像的Cache容量是512字。

Cache块长为8字。

请写出主存地址格式。

解题:Cache块长是8字,由于字长是32位,所以有32个字节,字地址有5位。

Cache容量是512字(题目给出)=512Χ32=211B,Cache地址格式是:主存地址格式:习题3:一个Cache的容量是2K字,每块为16字。

问:该Cache可容纳多少块;如果主存容量有256K字,有多少块;主存地址有多少位;Cache地址有多少位;在直接映射方式下,主存的第i块映射到Cache 中的第几块?解题:该Cache可容纳2K字/16字=128块;主存有256K字/16字=16384块;主存地址是18位(由于256K字=218);Cache地址位11位(Cache容量是2K=211);在直接映射方式下,主存的第i块映射到Cache中的第imod 128个块中。

习题4:一个采取4路组相联映像的Cache,其容量是16KB,主存容量是2MB,每个字块有8个字,每个字有32位。

请写出:(1)主存地址多少位(按字节编址),各字段如何划分?(2)设Cache起始为空,CPU从主存单元0,1……………101。

依次读出101字(主存一次读出一个字),并重复按此次序数读11次,问命中率为多少?(3)若Cache速度是主存的5倍,问采用Cache与不采用Cache速度提高多少倍?习题5:某计算机的组相联映像Cache由64个块组成,每组由4个块组成,主存块数4096,每块为128字,(1)写出Cache地址格式及位数。

(2)写出主存地址格式和位数。

(3)画出组相联映像方式变换示意图。

解题:(1)Cache由64块组成,而每组4块,因此Cache共有16组。

体系结构试题及答案

体系结构试题及答案

一.名词解释2:1Cache经验规则:大小为N的直接印象Cache的失效率约等于大小为N/2的两路组相联Cache的失效率。

通道处理机:通道的专用处理机,来专门负责整个计算机体系的输入/输出工作。

通道处理机只能执行有限的一组输入/输出指令。

透明性:在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。

向量处理机:设置了向量数据表示和相应的向量指令的流水线处理机称为向量处理机。

虚拟Cache:直接用虚拟地址进行访问的Cache计算机系统结构:传统机器程序员所看到的计算机属性,即概念性结构与功能特性。

系列机:由同一厂家生产的具有相同系统结构、但具有不同组成和实现的一系列不同型号的计算机。

同构型多处理机系统:由多个同类型或至少担负同等功能的处理机组成,它们同时处理同一作业中能并行执行的多个任务。

堆栈型机器:CPU 中存储操作数的单元是堆栈的机器。

累加器型机器:CPU 中存储操作数的单元是累加器的机器。

通用寄存器型机器:CPU 中存储操作数的单元是通用寄存器的机器。

数据相关:考虑两条指令i和j,i在j的前面,如果下述条件之一成立,则称指令j与指令i数据相关:(1)指令j使用指令i产生的结果;(2)指令j与指令k数据相关,而指令k又与指令i数据相关。

定向:用来解决写后读冲突的。

在发生写后读相关的情况下,在计算结果尚未出来之前,后面等待使用该结果的指令并不见得是马上就要用该结果。

如果能够将该计算结果从其产生的地方直接送到其它指令需要它的地方,那么就可以避免停顿。

指令级并行:简称ILP。

是指指令之间存在的一种并行性,利用它,计算机可以并行执行两条或两条以上的指令。

指令的动态调度:是指在保持数据流和异常行为的情况下,通过硬件对指令执行顺序进行重新安排,以提高流水线的利用率且减少停顿现象。

是由硬件在程序实际运行时实施的。

指令的静态调度:是指依靠编译器对代码进行静态调度,以减少相关和冲突。

4路组相联cache设计实验报告

4路组相联cache设计实验报告

4路组相联cache设计实验报告实验报告一、实验目的本实验旨在实现4路组相联cache的设计,并用科学方法评价其性能。

二、实验内容(一)实现4路组相联cache实现4路组相联cache的功能,具体内容如下:1. 设计cache结构:设计4路组相联cache的数据结构;2. 编写读取程序:编写程序从cache中读取数据;3. 代码实现:利用设计的结构,实现cache的功能程序;4. 性能评估:采用科学可靠的方法评估程序的性能。

(二)运行实验1. 选择测试数据:采用规范的测试数据集,以便对结果进行科学评价;2. 调参:根据不同特征的数据集,调动cache结构上的参数,以获取最优性能;3. 性能评估:运行不同参数设定,定量评估4路组相联cache性能;4. 绘制图表:根据实验结果,绘制折线图,可视化实验结果。

三、实验结果(一)实验数据实验采用了5张不同特征的数据表作为评估数据,见表1:表1 测试数据表数据集特征Row数 100Column数 10每行中数值型字段 5每行中日期字段 2每行中字符字段 3每行数据大小 100 Byte(二)实验结果1. cache结构改进:依据不同测试数据表,改进cache结构,并增加数据对应的查找时间;2. 程序性能:以三种不同的参数设定ֵ,计算4路组相联cache的运行结果,得出的读取时间与标准时间的误差依次为:-40%,+50%,+20%。

3. 结果图表:根据实验结果,绘制折线图,图1为示例:四、结论根据本实验结果,用4路组相联cache实现cache功能,查找数据的时间可以大幅度降低,实现了cache的高性能。

Cache的基本知识

Cache的基本知识
34/46
5.2 Cache 基本知识
75%×(1+1.99%×50)+ 平均访存时间混合=75%×(1+1.99%×50)+ 25%×(1+ 1.99%× 25%×(1+1+1.99%×50) (75%×1.995)+(25%× =(75%×1.995)+(25%×2.995) 1.496+0.749= =1.496+0.749=2.24 3. 程序执行时间 CPU时间 (CPU执行周期数 存储器停顿周期数) 时间= 执行周期数+ CPU时间=(CPU执行周期数+存储器停顿周期数) ×时钟周期时间 其中, 其中, 存储器停顿周期数=访存次数×失效率× 存储器停顿周期数=访存次数×失效率× 失效开销
22/46
5.两种写策略的比较 ◆ 写回法的优点:速度快,所使用的存储器频 写回法的优点 速度快, 优点: 带较低; 带较低; ◆ 写直达法的优点:易于实现,一致性好。 写直达法的优点 易于实现,一致性好。 优点:
23/46
5.2 Cache 基本知识
6. 写缓冲器 7. “写”操作时的调块 ◆ 按写分配(写时取) 按写分配(写时取) 写失效时, 写失效时,先把所写单元所在的块调入 Cache,再行写入。 Cache,再行写入。 ◆ 不按写分配(绕写法) 不按写分配(绕写法) 写失效时,直接写入下一级存储器而不调块。 写失效时,直接写入下一级存储器而不调块。 8. 写策略与调块 写回法 ── 按写分配 写直达法 ── 不按写分配
2/46
5.2 Cache 基本知识
2. 直接映象
◆ 直接映象:主存中的每一块只能被放置到 直接映象:
Cache中唯一的一个位置。 Cache中唯一的一个位置。 中唯一的一个位置 举例 循环分配) (循环分配) ◆ 对比:阅览室位置 ── 只有一个位置可 对比: 以坐 ◆ 特点:空间利用率最低,冲突概率最高, 特点:空间利用率最低,冲突概率最高, 实现最简单。 实现最简单。 ◆ 对于主存的第i 块,若它映象到Cache的第 若它映象到Cache Cache的第 j 块,则: j=i mod (M ) Cache的块数 的块数) (M为Cache的块数)

高速缓冲存储器cache

高速缓冲存储器cache

高速缓冲存储器cache程序的访问局部性程序的访问局部性定义在较短时间间隔内,程序产生的地址往往聚集在很小的一段地址空间内。

具体体现有两方面:时间局部性:被访问的某一存储单元,在一个较短的时间间隔内可能被再次访问;空间局部性:被访问的存储单元的邻近单元在一个较短的时间间隔内,可能也会被访问。

产生访问局部性的原因程序是由指令和数据组成的。

指令在主存中是按序存放的,存储单元是连续的,地址也是连续的,循环结构程序段或函数等子程序段再较短时间间隔内可能被重复执行,因此,指令的访问具有明显的局部化特性;数据在主存中的也是按序连续存放的,尤其是数组元素,常常被按序重复访问,因此,数据的访问也具有明显的局部化特性。

命中(Hit):若CPU访问单元所在的块在cache中,则称为命中。

命中的概率称为命中率(Hit Rate),是命中次数与访问总次数之比。

命中时,CPU在cache直接存取信息,所用的时间开销为cache的访问时间,称为命中时间(Hit Time)。

缺失(Miss):若CPU访问单元所在的块不在cache中,则称为不命中或缺失,缺失的概率称为缺失率(Miss Rate),是缺失次数与访问总次数之比。

缺失时,需要从主存读取一个主存块送cache,同时将所需信息送CPU,所用的时间开销为主存访问时间和cache访问时间之和。

通常将从主存读入一个主存块到cache的时间称为缺失损失(Miss Penalty)。

CPU在cache—主存层次的平均访问时间为。

由于程序访问的局部性特定,cache的命中率可以达到很高,接近于1,因此,即使Miss Penalty 远远大于Hit Time,但最终的平均访问时间仍可接近cache的访问时间。

cache工作流程程序执行中过程中,需要从主存取指令或读数据时,先检查cache是否命中,若命中,则直接从cache中读取信息送CPU进行运算,而不用访问主存储器;若缺失,则将访问地址内的数据送CPU进行运算,同时将当前访问的主存块复制到cache中。

Cache的工作原理

Cache的工作原理

Arm cacheCache的工作原理Cache的工作原理是基于程序访问的局部性。

对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。

指令地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次。

因此,对这些地址的访问就自然地具有时间上集中分布的倾向。

数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。

这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的局部性。

根据程序的局部性原理,可以在主存和CPU通用寄存器之间设置一个高速的容量相对较小的存储器,把正在执行的指令地址附近的一部分指令或数据从主存调入这个存储器,供CPU在一段时间内使用。

这对提高程序的运行速度有很大的作用。

这个介于主存和CPU 之间的高速小容量存储器称作高速缓冲存储器 (Cache)。

系统正是依据此原理,不断地将与当前指令集相关联的一个不太大的后继指令集从内存读到Cache,然后再与CPU高速传送,从而达到速度匹配。

CPU对存储器进行数据请求时,通常先访问Cache。

由于局部性原理不能保证所请求的数据百分之百地在Cache中,这里便存在一个命中率。

即CPU在任一时刻从Cache中可靠获取数据的几率。

命中率越高,正确获取数据的可靠性就越大。

一般来说,Cache的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低;也没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显地增长。

只要Cache的空间与主存空间在一定范围内保持适当比例的映射关系,Cache的命中率还是相当高的。

一般规定Cache与内存的空间比为4:1000,即128kB Cache可映射32MB内存;256kB Cache可映射64MB内存。

在这种情况下,命中率都在90%以上。

计算机专业基础综合真题汇编11

计算机专业基础综合真题汇编11

[真题] 计算机专业基础综合真题汇编11单项选择题第1题:假设某计算机按字编址,Cache有4个行,Cache和主存之间交换的块大小为1个字。

若Cache的内容初始为空,采用2路组相联映射方式和LRU替换策略。

访问的主存地址依次为0,4,8,2,0,6,8,6,4,8时,命中Cache的次数是_______。

A.1B.2C.3D.4参考答案:C解析:地址映射采用2路组相联,则主存地址为0~1、4~5、8~9可映射到第0组Cache中,主存地址为2~3、6~7可映射到第1组Cache中。

Cache置换过程如下表所示。

<img src="/UI/AttachFilePick.aspx?path=\ExamPaperRes\2017\5\11\d214a0dc21b c46158a6211d2e4cc574d\900e4a42-d21d-4490-bd4b-8ec2ef91836c.jpg" onload="resizeImgSize(this);">第2题:某机器有一个标志寄存器,其中有进位/借位标志CF、零标志ZF、符号标志SF和溢出标志OF,条件转移指令bgt(无符号整数比较大于时转移)的转移条件是_______。

参考答案:C解析:假设两个无符号整数A和B,bgt指令会将A和B进行比较,也就是将A 和B相减。

如果A>B,则A—B肯定无进位腊位,也不为0(为0时表示两数相同),故而CF和ZF均为0,选C。

其余选项中用到了符号标志SF和溢出标志OF,显然应当排除。

第3题:某机器字长为16位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段。

假定取指令时,每取一个字节PC自动加1。

若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转移后的目标地址是_______。

A.2006HB.2007HC.2008HD.2009H参考答案:C解析:相对寻址EA=(PC)+A,首先要求的是取指令后PC的值。

计算机组成原理多层次的存储器

计算机组成原理多层次的存储器

1. 一个组关联Cache由64个行组成,每组4行。

主存储器包含4k个块,每块128字节,请表示主存地址格式2.设某机主存容量为2MB ,Cache 容量为16KB ,每块包含4 个字,每字32 位,设计一个四路组相联映像(即Cache 每组内共有四个块)的内存组织结构。

3. 考虑一个机器带有字节可寻址的主存,其容量是256字节,块(行)的大小是8字节,假设它使用直接映射式cache,其容量是32行(1)16位存储器地址如何划分成标记、行号、和字节号?(2)如下地址的内容将存入cache的哪些行?0001 0001 0001 10111100 0011 0011 01001101 0000 0001 11011010 1010 1010 1010 地址是什么?(3)存储器总共有多少字节能保存于cache中?4.某机字长8位,设计一个存储器,容量为10KB,其中RAM为高8KB,ROM为低2KB,最低地址为0,选用的芯片类型为4KB*8,ROM芯片类型为2KB*4,问:1.地址线,数据线各多少根?2.RAM和ROM的地址范围分别是多少?3.各种芯片各需要多少片?4.画出存储器结构图与CPU连接示意图5.计算机主存储器由8k字的ROM区和2K字的RAM区组成,主存字长16位,容量总共10k字。

RAM区选用2K*8位的6116组成,地址分配2000~27FF ROM区选用8k*8位的58c65组成,地址分配在0000~1FFF5.一个计算机有cache,主存和用于虚拟存储的磁盘。

若所访问的字在cache中,则存取它只需20ns。

若字在主存而不在cache中,则需要60ns将它装入cache,然后从cache中存取。

若字不在主存中,则需要12ms将它从磁盘取来装入主存,再用60ns复制到cache,最后从cache存取。

Cache的命中率0.9,主存命中率0.6,那么此系统访问一个字的平均存取时间是多少?。

计算机体系结构问答题第5章

计算机体系结构问答题第5章

第5章存储层次1. 单级存储器的主要矛盾是什么?通常采取什么方法来解决?主要矛盾:(1) 速度越快,每位价格就越高。

(2) 容量越大,每位价格就越低。

(3) 容量越大,速度越慢。

采取多级存储层次方法来解决。

2. 评价存储层次的主要参数有哪些?存储层次的平均每位价格、命中率或失效率、平均访问时间。

3. “Cache-主存”和“主存-辅存”层次的主要区别是什么?4. 在存储层次中应解决哪四个问题?(1)映像规则:当把一个块调入高一层存储器时,可以放到哪些位置上。

(2)查找算法:当所要访问的块在高一层存储器中时,如何找到该块。

(3)替换算法:当发生失效时,应替换哪一块。

(4)写策略:当进行写访问时,应进行哪些操作。

5. 地址映像方法有哪几种?它们各有什么优缺点?(1)全相联映像。

实现查找的机制复杂,代价高,速度慢。

Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。

(2)直接映像。

实现查找的机制简单,速度快。

Cache空间的利用率较低,块冲突概率较高,因而Cache的失效率也高。

(3)组相联映像。

组相联是直接映像和全相联的一种折中。

6. 组相联Cache比相同容量的直接映像Cache的失效率低。

由此是否可以得出结论:采用组相联Cache一定能带来性能上的提高?为什么?不一定。

因为组相联命中率的提高是以增加命中时间为代价的,组相联需要增加多路选择开关。

7. Cache中,有哪两种实现并行查找的方法?(1)用相联存储器实现。

(2)用单体多字存储器和比较器来实现。

8. 替换算法有哪几种?它们各有什么优缺点?(1)随机法:简单、易于用硬件实现,但这种方法没有考虑Cache块过去被使用的情况,反映不了程序的局部性,所以其失效率比LRU的高。

(2)先进先出法:容易实现。

它虽然利用了同一组中各块进入Cache的顺序这一“历史”信息,但还是不能正确地反映程序的局部性。

(3)最近最少使用法LRU:失效率最低。

cache历程

cache历程

cache历程前言纵观PC系统和CPU二十年的发展,随着半导体加工工艺水平的不断提高,CPU和存储器的性能都有了很大的提高。

CPU频率的提高,必然要求系统中存储器的存取速度要提高,还要求其容量要增大。

主存储器DRAM容量的提高还是比较快的,但是DRAM读取时间的提高却很慢。

从而在速度上与CPU主频的提高产生了极不相配的情况,这样会影响整个系统的性能。

二十年来,CPU设计的问题之一就是解决高速CPU和低速DRAM之间的平衡或匹配问题,以求系统性能的整体提高。

在它们之间加入高速缓冲存储器Cache,就是这个问题的解决方案之一。

Cache随CPU的发展而不断改变,可以概括为:从无到有,由小到大,先外后内,纵深配备,软硬兼施。

初期的CPU没有Cache,在80386时期出现外部Cache;80486时期开始有内部仅8kB的Cache。

Cache的分级也由L1和L2级,发展到L0和L3级的纵深配备;Cache 的大小由当初的8kB,直到Merced的1~2MB。

为了更好地利用Cache,还专门配有缓存控制指令。

本文回顾了在过去的二十年中,Cache技术的发展历程,并对PC 其它设备使用Cache技术作了简单陈述。

PC初期无需Cache在八十年代初,由于CPU主频很低,DRAM的存取时间甚至快于CPU存取时间,因此无需Cache。

例如,当时PC机采用8088CPU,系统主频为4.77MHz,一个基本总线周期为4拍,即840ns。

此时64kB的DRAM存取周期200ns,造成DRAM等待CPU的执行的局面,无需Cache。

在PC/AT机采用80286CPU后,系统主频增加到10MHz,1个基本总线周期为2拍,即200ns。

此时必须用读取时间为100ns的DRAM。

在采用25MHz的80386DX时,一个基本总线周期为2拍,即80ns,当时已没有速度相匹配的DRAM可用。

解决方案有2种:一种是在基本总线周期中插入等待,降低CPU的处理能力;另一种是采用内部和外部Cache,使用SRAM芯片以提高存储器的读取速度。

计算机体系结构第五章课后习题答案

计算机体系结构第五章课后习题答案

第五章存储层次5.1名词解释1.存储层次——采用不同的技术实现的存储器,处在离CPU不同距离的层次上,目标是达到离CPU最近的存储器的速度,最远的存储器的容量。

2.全相联映象——主存中的任一块可以被放置到Cache中任意一个地方。

3.直接映象——主存中的每一块只能被放置到Cache中唯一的一个地方。

4.组相联映象——主存中的每一块可以放置到Cache中唯一的一组中任何一个地方(Cache分成若干组,每组由若干块构成)。

5.替换算法——由于主存中的块比Cache中的块多,所以当要从主存中调一个块到Cache中时,会出现该块所映象到的一组(或一个)Cache块已全部被占用的情况。

这时,需要被迫腾出其中的某一块,以接纳新调入的块。

6.L RU——选择最近最少被访问的块作为被替换的块。

实际实现都是选择最久没有被访问的块作为被替换的块。

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

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

9.按写分配法——写失效时,先把所写单元所在的块调入Cache,然后再进行写入。

10.不按写分配法——写失效时,直接写入下一级存储器中,而不把相应的块调入Cache。

11.写合并——在往缓冲器写入地址和数据时,如果缓冲器中存在被修改过的块,就检查其地址,看看本次写入数据的地址是否和缓冲器内某个有效块的地址匹配。

如果匹配,就将新数据与该块合并。

12.命中时间——访问Cache命中时所用的时间。

13.失效率——CPU访存时,在一级存储器中找不到所需信息的概率。

14.失效开销——CPU向二级存储器发出访问请求到把这个数据调入一级存储器所需的时间。

15.强制性失效——当第一次访问一个块时,该块不在Cache中,需要从下一级存储器中调入Cache,这就是强制性失效。

16.容量失效——如果程序在执行时,所需要的块不能全部调入Cache中,则当某些块被替换后又重新被访问,就会产生失效,这种失效就称作容量失效。

主存和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替换算法和写策略单元测试与答案

1、以下关于cache替换算法的叙述中,错误的是()。

A.直接映射方式是多对一映射,无需考虑替换问题B.LRU算法需要对每个cache行记录替换信息,即LRU位C.先进先出算法无需对每个cache行记录替换信息D.组相联和全相联映射都必须考虑如何进行替换正确答案:C解析: C、先进先出算法需要对每个cache行打一个时间戳,记录何时装入了一个新的主存块。

2、以下关于LRU替换算法的叙述中,错误的是()。

A.全相联映射方式特别适合采用LRU替换算法B.LRU是Least-Recently Used的缩写,表示最近最少用C.基于cache行有多久没有被访问来进行替换D.是一种栈算法,其命中率随组的增大而提高正确答案:A解析: A、LRU替换算法需要为每个cache行设置一个计数器,用于记录对应行的使用情况。

计数器的位数与组的大小有关,例如,对于2-路组相联,每组有两个cache 行,计数器为1位;对于4-路组相联,计数器为2位。

对于全相联,则组的大小等于cache行数,因而计数器的位数等于cache行号的位数,这样,不仅计数器所占容量开销大,而且对计数器进行修改的时间开销也大。

因而LRU算法不适合应用于全相联映射方式。

3、以下关于写策略的叙述中,错误的是()。

A.只有在写命中时才需考虑写策略问题,在写不命中时无需考虑B.多个带cache的CPU共享主存时会出现写策略问题C.写策略问题也是cache一致性问题D.对于写命中,有直写(Write Through)和回写(Write Back)两种写策略解析: A、写命中指要写的单元已经在cache中,写不命中指要写的单元不在cache 中。

不管是写命中还是写不命中,都需要考虑写策略问题。

在写命中时,可以采用直写(Write Through)或回写(Write Back)方式。

前者在写cache的同时也写主存;后者仅写cache,在被替换出去时再将整个主存块写入主存。

二路组相联映射cache总容量

二路组相联映射cache总容量

二路组相联映射cache总容量
二路组相联映射缓存总容量是指缓存中可以存储的数据块的总数。

在二路组相联映射中,缓存被分成两个组,每个组包含多个缓存行,每个缓存行存储一个数据块。

当需要将一个数据块放入缓存时,先根据数据块的地址计算出组号,然后在该组中选择一个缓存行存放该数据块。

假设一个缓存有N个缓存行,其中每个组有K个缓存行,则该缓存的总容量为N*K。

例如,如果该缓存有16个缓存行,每个组有2个缓存行,则该缓存的总容量为16*2=32个数据块。

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