计算机原理 4.9 Cache地址映射与变换方法

Posted fate-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机原理 4.9 Cache地址映射与变换方法相关的知识,希望对你有一定的参考价值。

1、主存与cache地址映射概述

技术图片

 

 

 主存数据如何迁至Cache才能实现快速查找?

常见的三种映射方式:

全相联

直接相联

组相联

2、全相联映射的工作原理

技术图片

 

 

 主存分块,Cache分行,两者大小相同。

设每块4个字,主存大小为1024个字,则第61个字的主存地址为:

00001111    01  (块号     块内地址)

主存分块后地址就从一维变成二维

映射算法:主存的数据块可映射到Cache任意行,同时将该数据块地址对应行的标记存储体中保存

技术图片

 

 

 技术图片

 

 

 全相联映射的特点:

1、cache利用率高

2、块冲突率低

3、淘汰算法复杂

应用场合:

小容量Cache

 

3、直接映射的工作原理

技术图片

 

 

 主存分块,Cache分行,两者大小相同

主存分块后还将以cache行数为标准进行分区

设每块4个字,主存大小为1024个字,Cache分为4行,第61个字的主存地址为:

000011    11    01(区号,区内块号,块内地址)

主存地址从一维变成三维

映射算法:

Cache共n行,主存第j块号映射到Cache的行号为:

i=j mod n

即主存的数据块映射到Cache特定行。

 技术图片

 

 技术图片

 

 直接映射的特点

Cache利用率低

块冲突率高

淘汰算法简单

应用场合:

大容量Cache

 

4、组相联映射的工作原理

主存分块,cache分行,两者大小相同

Cache分组(分组中包含K行),本例假定K=4

主存分块后还将以Cache组数为标准进行分组(本例中,Cache共8行,两组,所以Cache每两个块就分一个组)

设每块4个字,主存大小为1024个字,Cache分为4行,第61个字的主存地址为

09000111   1   01  (组号,组内块号,块内地址)

主存地址从一维变成三维

映射算法:

Cache共n组,主存第j块号映射到Cache的组号为:

i=j mod n

即主存的数据块映射到Cache特定组的任意行。

技术图片

 

 技术图片

 

 

技术图片

 

 组相联映射各方面特点都位于全相联映射和直接映射之间。

以上是关于计算机原理 4.9 Cache地址映射与变换方法的主要内容,如果未能解决你的问题,请参考以下文章

主存与Cache的地址映射

主存与Cache间组相联映射计算

关于计算机组成原理的Cache-主存地址映象问题

计算机原理 4.7 Cache的基本原理

Cache地址映射替换算法写操作策略

浅谈主存和Cache间的地址映射