全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 存储技术 >

Cache的原理和地址映射

时间:2023-10-31 11:21

人气:

作者:admin

标签: 处理器  存储器  Cache  ARM 

导读:在cache存储系统中,把cache和主存储器都划分成相同大小的块。 主存地址由块号B和块内地址W两部分组成,cache地址由块号b和块内地址w组成。 当CPU访问cache时,CPU送来主存地址,放到主存...

在cache存储系统中,把cache和主存储器都划分成相同大小的块。

主存地址由块号B和块内地址W两部分组成,cache地址由块号b和块内地址w组成。

CPU访问cache时,CPU送来主存地址,放到主存地址寄存器中,通过地址变换部件把主存地址中的块号B变换成cache的块号b,并放到cache地址寄存器中,同时将主存地址中的块内地址W直接作为cache的块内地址w装入cache地址寄存器中,如果变换成功(又叫cache命中),就用得到的cache地址去访问cache,从cache中取出数据送到CPU中;

如果变换不成功(cache不命中),则产生cache失效信息,并且用主存地址访问主存储器,从主存储器中读出一个字送往CPU,同时把包含该字在内的一整块数据都从主存储器读出来装入cache,这时,如果cache已经满了,则要采用某种cache替换策略把不常用的块先调出到主存储中相应的块中,以便腾出空间来存放新调入的块。

由于程序具有局部性特点,每次块失效时都把一块(由多个字组成)调入到cache中,能够提高cache的命中率。

Cache地址映射和变换方法

地址的映射和变换是密切相关的,采用什么样的地址映射方法就必然有与这种映射方法相对应的地址变换方法。

无论采用什么样的地址映射方式和地址变换方式,都要把主存和cache划分成同样大小的存储单位,每个存储单位成为“块”,在进行地址映射和变换时,都是以块为单位进行的。常用的映射方式和变换方式有以下3种:

•■ 全相联映射方式 主存中任意一块可以映射到cache中的任意一块上。

•■ 直接映射方式 主存中一块只能映射到cache中的一个特定块上,假定主存的块号为B,cache的块号为b,cache的总块数为Cb,则它们之间的映射关系可以用下面的公式表示:b = B mode Cb

•■ 组相连映射方式 在这种相联的地址映射和变换方式中,把主存和cache按同样大小划分成组(set),每个组都由相同块数组成。从主存的组到cache的组之间采用直接映射方式,在主存中的组与cache中的组之间建立好映射关系之后,在两个对应的组内部采用全相联的映射方式。

ARM处理器中,主存与cache采用组相联地址映射和变换方式,如果cache的块大小为2L,则同一块中各地址的bit[31:L]是相同的。

如果cache中组的大小(每组中包含的块数)为2S, 则虚拟地址的bit[L+S-1:L]用于选择cache中的某个组, 而虚拟地址中其他位[31:L+S]包含了一些标志。

将cache每组中的块数称为组容量(set-associativity),当组容量等于cache中的总块数时,对应的映射方式为全相联映射方式;

当组容量等于1时,对应的映射方式为直接映射方式;

当组容量为其他值时,称为组相联映射方式。

在组相联映射方式中,cache的大小CACHE_SIZE(字节数)可以通过下面的公式来计算:

CACHE_SIZE = LINELEN*ASSOCIATIVITY*NSETS

其中,

•LINELEN为cache块(line)大小;

•ASSOCIATIVITY为组容量;

•NSETS为cache的组数。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信