(1)直接映射Cache的地址格式,(2)全关联映射Cache的地址格式,(3)两路组关联Cache的地址格式。(提示:每个映射方式下,需要将标记、 块内地址等分开表示。)
解: Cache字数:4K=4*2^10=2^12 总共12位地址 块的大小32=2^5 5位字长 行数2^7 用7位表示 主存地址为6位16进制即24位二进制,其中5位表示字长. 一.直接映射:
标记位:19-7=12 行数: 7 块内地址:5
二.全关联映射
标记为 19 块内地址 5
三.两路组关联映射
组数 2^6 6位表示组数 标记为 19-6=13 块内地址 5位
以BBBBBB为例 化为二进制位1011 1011 1011 1011 1011 1011 直接映射 101110111011 1011101 11011
BBB
5D 1B
全关联映射 101 1101 1101 1101 1101 11011
5DDDD 1B
两路组关联映射 1 0111 0111 0111 01 1101 11011
1777 1D 1B
对命中的判断以及LRU算法的应用
2. 计算机系统包含容量为32K×16位的主存,按字编址,每字16位。Cache采用4路组关 联的映射方式,数据区大小为4K字,主存块大小为64字。假设Cache初始时是空的, 处理器顺序地从存储单元(每个存储单元中包含1个字)0,1,…,4351中取数,然后再 重复这一顺序9次,并且Cache的速度是主存的10倍,同时假设块替换用LRU算法。 请说明使用Cache后的改进。
主存共32K=2^15个字,每块2^6=64个字,所以一共2^9块. Cache 共2^12 字 所以一共 2^6=64 行 采用4路组关联 组数=2^4=16 所以标记位为9-4=5 组: 4
设Cache的速度为t,则主存的速度为10t 采用cache:
第一次: 0 miss 11t
1-63 hit 1t*15 64 miss 11t 64-127 hit 1t*15
4351/64 = 68 所以一共有68次miss.
第二次: 因为第一次中 0 1 2 3 行中的内容被替换成了 64 65 66 67 块.
根据LRU原则 0 1 2 3 换下的是 16 17 18 19 那一路,以此类推、 0123 16171819 32333435 48495051 64656667永远miss
所以综上p= ( 4352*10-68-20*9)/43520 = 99.43%
时间10V/(V+10*(1-0.9943))=9.5倍
LRU算法与FIFO算法的应用与比较
3.假设主存中的5 个块{1,2,3,4,5}映射到cache 的同一组,对于主存块访问地址流 {1,2,3,4,1,2,5,1,2,3,4,5},在3-路组关联、4-路组关联、5-路组关联方式下,分别 说明LRU算法和FIFO算法的命中情况。
下面只考虑3-路组关联:
LRU 算法
1
1 2
1 2 3
最近最少使用的
FIFO 1
1 2
1 2 3
最先进的
1
1
4 2 3 2
4 1 3 3
4 1 2 4
5 1 2 1
5 1 2 1
5 1 2 1
5 3 2 2
5 3 4 5
5 3 4 5
1
4 2 3 2
4 1 3 3
4 1 2 4
5 1 2 1
5 1 2 2
5 1 2 5
3 1 2 1
3 4 2 2
3 4 5
多层次Cache的计算
4:对一个有两级Cache的系统,定义:TC1 = 第一级Cache存取时间;TC2 = 第二级Cache 存取时间;H1 = 第一级Cache命中率;H2 = 组合的第一/二级Cache命中率。请给出读 操作时间的表示。(提示:需要假设主存的存取时间) 解: 设主存存取时间为Tm T=Tc1+(1-H2)Tm+(1-H1)Tc2
5:假设某处理器的时钟频率为1.2GHz,当L1 cache无缺失时的CPI为1(即CPU可以快 速地从L1 cache中读取指令,并在1个时钟周期内完成)。访问一次主存的时间为100ns (包括所有缺失处理),L1 cache的局部缺失率为2%。若增加一个L2 cache,并假定 L2 cache的访问时间为5ns,而且其容量足够大到使全局缺失率仅为0.5%。分析增加 L2 cache后处理器执行程序的效率提高了多少?
解: 1.2Ghz=1.2*10^9次/s 所以处理一次需要1/1.2 = 0.833nm
未增加L2时平均读取一条指令的时间为 0.833+0.02*100= 2.833nm 增加L2后平均读取一条指令的时间为 0.833+0.005*100+0.02*5=1.433nm 2.833/1.433=1.97倍
Ⅳ Internal Memory 主存 存储位元:
有0/1两个稳定状态 可以至少被写入一次 可以读取状态
RAM(Random Access Memory,随机访问存储器):
特性:
可以简单迅速地读取和写入数据
类型:
DRAM(Dynamic RAM,动态随机访问存储器):电容存储 需要刷新
相似:
易失性 都需要提供电能来维持数据
区别:
SRAM(Static RAM,静态随机访问存储器):门 易失性(volatile)
DRAM设计简单但是需要刷新
SRAM比DRAM更快,但是集成度低造价高 DRAM多用于主存
SRAM多用于寄存器
ROM(Read Only Memory,只读存储器):
特性:
非易失性(Nonvolatile) 可读取但是不可写入数据
应用: 问题:
无出错空间 成本高 微编程 系统程序 函数表
PROM(Programmable ROM,可编程只读存储器):
特性:
非易失性(Nonvolatile)
只能写入一次:电子写入并且需要特殊的环境
与ROM的区别:
更加灵活方便
Read-Mostly Memory:
读的次数比写的次数多很多 类型:
非易失
EPROM(Erasable PROM,可擦除编程只读存储器):
特性:可读写
紫外线擦除整块
比PROM更贵
EEPROM(Electrically EPROM, 可电擦除编程只读存储器):
特性:可写入并且无需擦除数据 可按字节写入(覆盖) 比EPROM擦除速度快但
造价更高
Flash Memory(闪存):
特性:电擦除 可擦除几块 集成度高