ahb为什么定义wrap-burst-type,ddr要支持wrap

文章详细介绍了cacheline的概念,指出其在CPU访问内存时的作用,如何通过wrap机制提升效率,并解释了cache的组织结构,包括组、行和存储单元,以及地址映射和命中检查的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cache line

比如定义cache line的size是16byte;

cpu访问的时候 要用wrap和cache有关

cache的更新是一条line一条line的更新,为了cache管理简单一点,看有没有被hit的时候简单一点,靠cache line要么都被更新,要么都被踢走。

cache line:每次内存和CPU缓存之间交换数据都是固定大小,cache line就表示这个固定的长度。

cpu取一个指令,从memory中

cpu连续两次访问同一个地址,cache看到cache缓存空间中有这个地址的数据,就不用再访问下面的slave,把这个地址的数据拿给cpu直接用,

一个cache被分为S个组,每个组有E个cacheline,而一个cacheline中,有B个存储单元,现代处理器中,这个存储单元一般是以字节(通常8个位)为单位的,也是最小的寻址单元。因此,在一个内存地址中,中间的s位决定了该单元被映射到哪一组,而最低的b位决定了该单元在cacheline中的偏移量。valid通常是一位,代表该cacheline是否是有效的(当该cacheline不存在内存映射时,当然是无效的)。tag就是内存地址的高t位,因为可能会有多个内存地址映射到同一个cacheline中,所以该位是用来校验该cacheline是否是CPU要访问的内存单元。

当tag和valid校验成功是,我们称为cache命中,这时只要将cache中的单元取出,放入CPU寄存器中即可。
cache地址和主存地址之间有对应关系:

主存和cache的块大小相同,块内地址是相对于块的起始地址的偏移量(低位地址相同),地址变换主要为:主存的块号和cache块号的转换。

1.从0地址开始 incr4;总线上地址回0-4-8-c,0-4-8是没用的数,cpu等到c的数据回来,指令才会往下走;

2.发两个甚至更多的burst,把cache line读回来;

3.从c开始发,发一个wrap 4;wrap就先把急需的c地址取回来,然后就回给cpu了,cpu在第一个周期就能得到数据,就可以往下走了。后面的0-4-8再填充到cache-line;

wrap是为了和cache配合。也提升了cpu效率。

如果cache发现 cpu要访问的地址不在cache里,需要把这个数据刷上来。

cpu访问的地址 在cache里面没有hit,这时候就要从memory取。op-code进cache,发incr4-burst4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值