4.3、多体交叉存储器、Cache的基本原理、相联存储器、 Cache地址映射与变换方法

一、多体交叉存储器

其基本思想是在不提高存储器速率、不扩展数据通路位数的前提下,通过存储芯片的交叉组织,提高CPU单位时间内访问的数据量,从而缓解快速的CPU与慢速的主存之间的速度差异。

1.1、高位多体交又存储器的组织方式
1.2、低位多体交叉存储器的组织方式
1.3、低位多体交叉存储器的性能分析

二、Cache的基本原理

2.1、存储系统中的Cache视图
2.2、Cache的读、写操作
2.3、Cache的地址映射机制
2.4、Cache的结构

三、相联存储器

3.1、相联存储器的作用

判断依据和查找方式

3.2、相联存储器的基本结构及工作原理
3.3、相联存储器的一种技术实现

通过cpu给的主存地址(1111011010011...1111),剥离出标记部分,然后将标记部分送到相关电路,给出了有效位和标记的存储体,这些内容会送到硬件的并发比较电路当中去进行比较,从地址中剥离出来的标记与原来存放在相联存储器当中的标记进行多路并发比较,当比较命中(也就是说判断基于这个地址要访问的内容在Cache当中)时,命中的这个信号会通过多路选择器从Cache的数据存储当中将cpu基于这个地址要访问的数据取出来送给cpu,从而实现快速查找。

四、相联存储器

在引入Cache之前,CPU是基于地址访问主存的,在引入Cache之后,CPU会基于相联存储器去判断访问的内容是否在Cache当中。那么主存数据映射到Cache的方式有以下3种:

①、全相联(fully-associated);

②、直接相联 (direct mapped);

③、组相联(set-associated);

4.1、全相联(fully-associated)映射
4.1.1、工作原理

cpu基于地址访问主存时,会将一个地址剥离出标记部分和块的偏移地址,此时,因为主存数据送到Cache中的数据可能存在Cache当中的任意一行,所以,Cache会将Cache所有行当中存放的标记全部送到多路硬件中进行并发比较。如果比对时命中了某个Cache行,那么cpu就从命中的这一块偏移地址上剥离出要访问的具体的块;反之,如果比对时没有命中任何一个Cache行,那么cpu会根据原始的地址再次访问主存。

4.1.2、全相联映射的特点
4.2、直接相联(direct mapped)映射
4.2.1、工作原理

与全相连类似Cache当中保存有有效位,标记位,以及从主存当中搬迁过来的数据,不同的是,cpu在Cache当中进行查找时会根据主存地址中的index指定特定的行进行查找(全相连映射时全部比较),因此直接相联(direct mapped)映射的比较器比全相连映射简单。如果比对时命中了index指定的Cache行,那么cpu就从命中的这一块偏移地址上剥离出要访问的具体的块,反之,如果比对时没有命中index指定的Cache行,那么cpu会根据原始的地址再次访问主存,并将主存中对应的数据块搬迁到Cache当中,并且填充标记部分。

4.2.2、直接相联映射的特点
4.3、组相联(set-associated)映射
4.3.1、工作原理

组相连是将cpu的地址分为标记、组、字这3个部分,如果映射组成的数据块在Cache当中时,只会在Cache当中特定组的任意行,因此,组相连的比较器要比较的对象是index字段指向的特定组的所有行,如果比对时命中了index指定的特定组,那么cpu就从命中的这一块偏移地址上剥离出要访问的具体的块,反之,如果比对时没有命中index指定的特定组,那么cpu会根据原始的地址再次访问主存,并将主存中对应的数据块搬迁到Cache中的特定组上,这与全相连映射中所有行的比较方式和直接相联映射中特定index行的比较方式都不同,因此组相连映射的比较器的复杂度是介于全相连映射和直接相联映射之间的。

4.3.2、组相联映射的特点

Cache利用率、块冲突率、淘汰算法复杂度都介于全相连映射和直接映射之间,若Cache分8行,当K路组相连=8时,组相连映射=全相连映射;当K路组相连=1时,组相连映射=直接映射。