snifer

[原创]Blackfin ADSP BF535 Cache全透视

0
阅读(6691)

Blackfin ADSP BF535 接口丰富,功能强大,性能优良,能广泛用于因特网的大量图像、声音、文本和数据流,适用于电信和各种因特网设备,这其中Cache的作用功不可没,具有46KKB L1内存可配置为Cache。

一、Cache工作原理。在Cache存储系统中,把Cache和主存划分为相同大小的块。主存地址可以使用块号(B)和块内地址(W)两部分组成。同样Cache的地址也可以使用块号(B)和块内地址(W)两部分组成。cache有一个非常重要的指标就是命中率。
命中率:当CPU访问存储器时,通过存储器地址变换部件把地址变换成cache的块号和块内地址,如果变换成功(称为cache命中),就用得到的cache地址访问cache,从cache中取数;如果变换失败,则产生cache失效信息,并用主存储器的地址访问主存储器,同时将包含被访问字在内的一整块都从主存储器读出来,装入到cache中,但如果这时cache已满,需要采用适当的替换算法来更新cache。
二、 Cache的地址映象和变换方法
地址映象指把主存地址空间映象到cache地址空间,具体说就是把存放在主存中的程序按照某种规则装入到cache中,并建立主存地址到cache地址之间的对应关系。
地址变换是指当程序已经装入到cache中后(形成地址映象),在实际运行过程中,把主存地址如何变换成cache地址。
地址映象和变换是密切相关的,算法需要统一。但所有方法都将主存和cache划分为同样大小的存储单元(称为块),在进行变换时都是以块为单位。
ADSP BF535 地址映象和变换方法包括:全相联映象、直接映象、组相联映象三种方法。
1、全相联映象 主存中任意一块可以映射到cache中的任意一块的位置上。
如果cache的块容量为C,主存的块容量为M,则两则之间的映象关系有C*M中,如果采用目录表来存放这些映象关系,目录表的容量为C。
2、 直接映象方式: 这是最简单也是最直接的方法。主存中一块只能映象到cache中的一个特定的块中。
假设主存的块号为B,cache的块号为b,则他们之间的映象关系可以使用下面的公司表示:
b =B mode Cb 其中Cb为cache的块容量
3、 组相联映象方式
在这种方式下,把主存和cache按照同样大小划分成组,每个组都由相同的块数组成。这样,主存的组数要比cache的组数多;
主存的组与cache的组之间采用直接映象的方式;在两个对应的组之间采用全相联映象方式。
三、 Cache的分类
统一/独立的数据和指令cache
适应独立的数据和指令cache,可以在同一个时钟周期中读取指令和数据,而不需要双端口的cache。但这时需要保证指令和数据的一致性。
写回和写通cache
写回cache指执行写操作时,被写的数据只写入cache,仅当cache需要被替换时才将数据写入到实际的存储器中;
写通则是在指执行写操作时,同时向cache和存储器执行写操作,从而保证数据的一致性。
四、Cache替换算法
ADSP BF535的替换算法有三种,分别是:1、随即替换算法2、FIFO(先进先出)3、LRU(最近最少使用算法)
这个是ADSP BF535的一些基础知识,下面我想写一些关于ADSP BF535的Cache如何使用的方法,悠悠假期,祝大家快哉快哉。
Baidu
map