Nameless Site

But one day, you will stand before its decrepit gate,without really knowing why.

0%

存储系统II

多体交叉存储器

image-20191224210559403

image-20191224210607265

image-20191224210614243

image-20191224210623500

Cache的基本原理

image-20191224212037889

image-20191224212100127

image-20191224212112439

image-20191224212119403

组相联存储器

image-20191224212557005

image-20191224212604189

Cache地址映射与变换方法

全相联

image-20191224215252084

image-20191224215303023

image-20191224215314152

特点:

  • Cache利用率高
  • 块冲突率低
  • 淘汰算法复杂
    应用场合:小容量Cache

直接映射

image-20191224215413222image-20191224215413308

image-20191224215420100

image-20191224215430954

特点:
特点:

  • Cache利用率低
  • 块冲突率高
  • 淘汰算法简单
    应用场合:大容量Cache

组相联

image-20191224215513463

image-20191224215520381

image-20191224215526406

image-20191224215532554

替换算法

先进先出-(First in First out)

image-20191224221407980

最不经常使用法-LFU (Least Frequently Used )

image-20191224221454348

近期最少使用法—- LRU(Least recently used )

image-20191224221523084

Cache例题选讲

假定主存和Cache之间采用直接映射方式,块大小为16B。Cache数据区容量 为64KB,主存地址为32位,按字节编址,数据字长32位。要求 1)给出直接映射方式下主存地址划分 2)完成Cache访问的硬件实现 3)计算Cache容量
解:1)由题目条件知:
数据块大小16B -> 块内偏移地址4位;
Cache数据区容量为64KB -> 64KB/16B = 4096行Cache);-> Index字段12位
Tag字段的位数为 32- 12 - 4 =16位(Tag)
由第一问的解答可知:Tag 为16 bit
由题目条件及Cache的工作原理知: Cache每行数据存储体容量为 168 = 128 bit
Cache 每行的总存储容量为: 1+ 16 + 128 = 145 bit
Cache 总容量为:4096 \
(1+16 +128)= 580Kbit
image-20191224224643640

设某机内存容量为16MB,Cache的容量16KB,每块8个字,每个字32位.设计一个四 路组相联映射(即Cache内每组包含4个字块)的Cache组织方式。
1)求满足组相联映射的主存地址字段中各字段的位数
2)设Cache的初态为空,CPU从主存第0号单元开始连续访问100个字(主存一次读出一 个字),重复此次序读8次,求存储访问的命中率
3)若Cache的速度是主存速度的6倍,求存储系统访问加速比

image-20191224224843910

image-20191224224850389
3)设Cache的存取周期为t,则主存存取周期为6t
直接从内存读取所有数据所需时间为: Tnc = 800*6t = 4800t
通过Cache访问800个数据的时间为: Tc = 13*6t +(800-13)*t = 865t
存储系统访问的加速比 S = Tnc/Tc =( 4800t/865t) = 5.5

虚拟存储器

  • 处于主存 –辅存存储层次
  • 解决主存容量不足的问题,为程序设计者提供比主存空间大的编程空间
  • 分类:页式虚拟存储器、段式虚拟存储器 、段页式虚拟存储器

采用MMU(Memory Management Unit):管理虚拟存储器与物理存储器
采用页表来判断CPU要访问的内容是否在主存,并与MMU配合实现 逻辑地址与物理地址之间的转换?

image-20191224231716146

image-20191224231728581

image-20191224231739198

image-20191224232305422

TLB (Translation Lookaside Buffer)

虚实地址转换过程中存在的问题

image-20191224233435375

image-20191224233447289

TLB工作原理

  • 根据局部性原理,增加一个小容量、高速存储部件存放当前访问页表地址变换条 目,该存储部件称为TLB(Translation Lookaside Buffer:地址转换后备缓冲器)。

  • TLB类似页表,也是PTE的集合。为实现对TLB的快速访问,类似于Cache中的映射方法, 对来自于CPU的虚页号进行逻辑划分,得到相应的标记和索引字段。

image-20191224233533276

image-20191224233543726

image-20191224233559705

RAID

Redundant Arrays of Independent Disks:独立磁盘冗余阵列
核心技术:

  • 将数据条带化后的存放在不同磁盘上,通过多磁盘的并行操作提高磁 盘系统的读写速率;
  • 使用基于异或运算为基础的校验技术恢复损坏的数据

image-20191224235157669

image-20191224235206899

image-20191224235212960

image-20191224235218656

image-20191224235224206

image-20191224235229473

image-20191224235234864

image-20191224235241651

习题

以下关于虚拟存储管理地址转换的叙述中错误的是(C
A.MMU在地址转换过程中要访问页表项
B.地址转换过程中可能会发生“缺页”
C.一般来说,逻辑地址比物理地址的位数少
D.地址转换是指把逻辑地址转换为物理地址

假定主存按字节编址,cache共有64行,采用4路组相联映射方式,主存块大小为32字节,所有编号都从0开始。问主存第3000号单元所在主存块对应的cache组号是13

主存第3000号单元,一个主存块为32字节,故有3000/32 = 93余24,因此在第94块上,又因为编号从0开始,因此在编号为93的块中,因为 Cache有64行,一组有4行,因此 C =16 组,所以i =93mod16 = 13

下列关于CaChe的说法中,错误的是( C
A.CaChe行大小与主存块大小一致
B.分离CaChe(也称哈佛结构)是指存放指令的CaChe与存放数据CaChe分开设置
C.读操作也要考虑CaChe与主存的一致性问题
D.CaChe对程序员透明

下列关于命中组合的情况中,一次访存过程中可能发生的是(acd)。

A.TLB未命中,CaChe命中,Page未命中
B.TLB未命中,CaChe未命中,Page命中
C.TLB命中,CaChe命中,Page未命中
D.TLB命中,CaChe未命中,Page未命中

因此,TLB命中,页表一定命中;TLB不命中,页表可能命中可能不命中;页表命中,TLB可能命中也可能不命中;页表不命中,TLB一定不命中。
TLB和页表命中与否与Cache无关。

虚拟存储器中, 程序执行过程中实现虚拟地址到物理地址映射部件(系统)是 操作系统和MMU配合完成

相联存储器是按(内容指定方式 )进行寻址的存储器。

关于cache存储器,下面的叙述中正确的是 (D) 。

A.cache存储器是内存中的一个特定区域
B.cache存储器的存取速度介于内存和磁盘之间
C.cache存储器中存放的内容是内存的备份
D.cache存储器存放正在处理的部分指令和数据/

一个组相联高速缓存由64个字块组成,每个字块有256字节,分为8组,主存有4096个字块。请问:
1)主存地址有多少位
2)请写出主存地址的格式。

解答:
1)主存容量为4096块*256字=2^20字,故主存地址为20位
Cache容量为64块*256字
共有4096/8 = 512 = 2^9个组群
即2^20=2^9 * 2^3 * 2^8
2)Cache3,字块为256字节=2^8,所以主存地址的格式为:

cache练习及答案

在请求分页存储管理方案中,若某用户空间为16个页面,页长1KB,现有页表如下,则逻辑地址102B(H)所对应的物理地址为(082BH )。
页号 块号
0 1
1 5
2 3
3 7
4 2

16个页面,2的4次方=16,可知页号部分占4位,页长为1k,2的10次方=1k,页面大小(偏移)占10位
102B(H)十六进制表示法,B=11,所以102B(H)=0001 0000 0010 1011
页内地址为:00 0010 1011
页号为:0100=4.查表可知页号4对应的块号为2,
物理地址=物理块号*物理块号大小+页面位移
页号=(int)(逻辑地址/页面大小)
页面位移=逻辑地址%页面大小=0001 0000 0010 1011%100 0000 0000=0010 1011
所以逻辑地址102B(H)所对应的物理地址=2*1k +0010 1011=1000 0010 1011
转化为16进制082B(H)

计算机主存容量8MB,分为4096个主存块,cache有64KB,请问若按照采用直接映射方式。
1)cache有多少字块?
2)Cache的字块内地址为多少位
3)Cache的字块地址为多少位
4)请写出该主存的地址格式
5)若按照全相联映射方式请写出该主存的地址格式

解答:
1)每字块大小为8MB/4096= 2KB ,cache有64KB,cache块的大小与主存的块大小一样,都为2KB,所以有64KB/2KB=32个块
2)Cache的字块与主存的字块一样大小都为2KB=211B,所以cache的字块内地址为11位3)Cache有32块=25,所以Cache的字块地址为5位
4)主存容量23
cache练习及答案
5
cache练习及答案