【转】例说STM32F7高速缓存 您所在的位置:网站首页 例说stm32f7高速缓存 【转】例说STM32F7高速缓存

【转】例说STM32F7高速缓存

2024-06-03 16:18| 来源: 网络整理| 查看: 265

1.3 Cache的工作方式Cache的工作原理

  相信如果大家认真看了上面描述的基本概念后,大概也猜到 Cache 的工作流程,下面我们一起来理清一下吧。

1.png (86.99 KB )

下载附件

2018-4-30 14:26 上传

  在 cache 存储系统中,把 cache 和主存储器都划分成相同大小的块。因此,主存地址可以由块号 B 和块内地址 W 两部分组成。同样,cache 的地址也可以由块号 b 和块内地址 w 两部分组成。   当 CPU 要访问 cache 时,CPU 送来主存地址,放到主存地址寄存器中。通过地址变换部件把主存地址中的块号 B 变换成 cache 的块号 b,并放到 cache 地址寄存器中。同时将主存地址中的块内地址 W 直接作为 cache 的块内地址 w 装入到 cache 地址寄存器中。如果变换成功(即 Cache 命中),就用得到的 cache 地址去访问 cache,从 cache 中取出数据送到 CPU 中。如果变换不成功,则产生 Cache 失效信息,并且用主存地址访问主存储器。从主存储器中读出一个字送往 CPU,同时,把包含被访问字在内的一整块都从主存储器读出来,装入到 cache 中去。这时,如果 cache 已经满了,则要采用某种 cache 替换策略把不常用的块先调出到主存储器中相应的块中,以便腾出空间来存放新调入的块。由于程序具有局部性特点,每次块失效时都把一块(由多个字组成)调入到 cache 中,能够提高 cache 的命中率。

Cache 的映射方式

  上面我们提高,cache 中的块与主存储器中的块有一个地址转换关系,也就是 cache 的映射方式。   一般来说有如下几种映射方式:   (1)全关联(full-associative)方式   【区块划分】   将主存与 Cache 划分成若干个大小相等的块(lines)。   【映射关系】   主存中任意一块都可以映射到 Cache 中的任意一块的位置上。

2.png (36.44 KB )

下载附件

2018-4-30 14:26 上传

  如果 Cache 的块容量为 Cb,主存的块容量为 Mb,则主存和 cache 之间的映射关系共有 Cb * Mb 种。如果采用目录来存放这些映射关系,则目录表的容量为 Cb。   【优缺点】   优点:访问灵活,命中率高,Cache 存储空间利用率高,冲突率低,只有 Cache 满时才会出现在冲突。   缺点:地址变换比较复杂,每次都要与全部内容比较,速度相对慢,成本高,因而应用少。   【地址组成】   主存:块号 + 块内地址   缓存:块号 + 块内地址

3.png (38.49 KB )

下载附件

2018-4-30 14:26 上传

  (2)直接映射(direct-mapping)方式   【区块划分】   将主存根据 Cache 的大小分成若干分区(主存的大小为 Cache 的整数倍),Cache 分成若干个相等的块(lines),主存的每个分区也分成与 Cache 相等的块。   【映射关系】   主存中的每一个分区由于大小与 Cache 完全相同,可以与整个 Cache 相像,每个分区中的每一块正好与 Cache 的每一块配对。也就是说,主存中一块只能映射到 Cache 中的一个特定的块,编号不一致的块是不能相互映射的。

4.png (49.77 KB )

下载附件

2018-4-30 14:26 上传

  【优缺点】   优点:地址变换简单,只需检查区号是否相等即可,因而可以得到比较快的访问速度,硬件设备简单。   缺点:替换操作频繁,命中率比较低,每块相互对应,不够灵活。   【地址组成】   主存:区号 + 块号 + 块内地址   缓存:块号 + 块内地址

5.png (43.23 KB )

下载附件

2018-4-30 14:26 上传

     (3)组相联(set-associative)方式   【区块划分】   主存:主存根据 Cache 大小划分成若干个区,每个区内划分成若干个组(sets),每个组再划分成若干个块(lines)。   Cache:划分成若干个组(sets),每个组划分成若干个块(lines)。   【映射关系】   从主存的组到 Cache 的组之间采用直接映射方式,当主存中的一组与 Cache 中的一组之间建立了直接映射关系之后,在两个对应的组内部采用全关联映射方式。   【优缺点】   融合了直接映射与全关联映射两种映射方式,结合了两者的优点。具体实现容易,命中率与全关联映射接近。   【地址组成】   主存:区号 + 组号 + 块号 + 块内地址   缓存:组号 + 块号 + 块内地址

  实际上,现代的 CPU 或者 MCU,绝大多数都是采用组相联的 cache 映射方式。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有