📜  多级缓存组织

📅  最后修改于: 2021-06-28 16:41:48             🧑  作者: Mango

缓存是CPU使用的一种随机访问存储器,用于减少访问存储器所需的平均时间。
多级缓存是通过减少“ MISS PENALTY”来提高缓存性能的技术之一。罚错小姐是指每当高速缓存中有“未命中”时,将数据从主存储器带入高速缓存所需的额外时间。
为了清楚理解,让我们考虑一个示例,其中CPU需要10个内存引用来访问所需的信息,并在以下3种系统设计情况下考虑这种情况:

情况1:没有高速缓存的系统设计

在这里,CPU直接与主内存进行通信,并且不涉及任何高速缓存。
在这种情况下,CPU需要访问主存储器10次才能访问所需的信息。

情况2:具有高速缓存的系统设计

在这里,在首先检查CPU所期望的数据是否存在于高速缓冲存储器或不即是否有在高速缓存中高速缓存或“命中”一个“命中”。假设高速缓存内存中有3个未命中,那么主内存将仅被访问3次。我们可以看到,由于访问主存储器的次数比前一种情况要少,因此减少了未命中罚款。

情况3:具有多级缓存的系统设计

通过引入多级缓存,可以进一步优化缓存性能。如上图所示,我们正在考虑2级缓存设计。假设有3次错过在L1高速缓冲存储器和这些3个未中有2次命中在L2高速缓冲存储器,然后在主存储器将被访问只有2次。显然,与以前的情况相比,此处的未命中处罚已大大降低,从而提高了高速缓存的性能。

笔记 :
我们可以从以上3个案例中观察到,我们正在尝试减少主内存引用的数量,从而减少未命中处罚,以提高整体系统性能。另外,需要注意的是,在多级缓存设计中,L1缓存连接到CPU,它虽然小巧但速度很快。虽然,L2高速缓存连接到主高速缓存,即L1高速缓存,但它的大小更大,速度较慢,但仍比主内存快。

Effective Access Time = Hit rate * Cache access time
                      + Miss rate * Lower level access time

 

多级缓存的平均访问时间:(T avg )

T avg = H 1 * C 1 +(1 – H 1 )*(H 2 * C 2 +(1 – H 2 )* M)

在哪里
H1是L1缓存中的命中率。
H2是L2缓存中的命中率。
C1是访问L1缓存中信息的时间。
C2是将信息从L2缓存传输到L1缓存的未命中罚款。
M是将信息从主存储器传输到L2高速缓存的未命中代价。

例子:
查找具有2 ns时钟周期时间,每条指令的未命中率0.04的未命中率,25个时钟周期的未命中代价以及1个时钟周期的高速缓存访问时间(包括命中检测)的处理器的平均内存访问时间。同样,假设读写未命中罚款相同,并且忽略其他写入停顿。

解决方案:

平均内存访问时间(AMAT)=命中时间+未命中率*未命中刑罚。

命中时间= 1个时钟周期(命中时间=命中率*访问时间),但是此处直接给出命中时间,

失误率= 0.04

未命中罚分= 25个时钟周期(这是命中后上述内存水平占用的时间)

因此,AMAT = 1 + 0.04 * 25
AMAT = 2个时钟周期

根据问题1个时钟周期= 2 ns

AMAT = 4ns