MicroBlaze缓存 – 如何计算指令和数据缓存的标记地址大小?-Altera-Intel社区-FPGA CPLD-ChipDebug

MicroBlaze缓存 – 如何计算指令和数据缓存的标记地址大小?

问题描述

一般问题描述:

如何计算指令缓存的MicroBlaze MHS参数C_ADDR_TAG_BITS和数据缓存的C_DCACHE_ADDR_TAG?

解决/修复方法

以下数据缓存示例有助于解释此过程:

硬件(MHS文件)中配置的数据高速缓存大小为4 KB:

参数C_DCACHE_BYTE_SIZE = 4096

因此,cache_size = 4 KB

可缓存数据内存区域(在MHS文件中配置)大小为16 MB:

PARAMETER C_DCACHE_BASEADDR = 0x00000000

PARAMETER C_DCACHE_HIGHADDR = 0x00FFFFFF

然后:

cache_word_address_size + tag_address_size =(log(base 2)[cacheable_area_size])

在这种情况下,cacheable_area_size = 16 MB:

然后:

cache_word_address_size + tag_address_size = 24

在另一种情况下:

cache_word_address_size = log(base 2)[cache_size]其中cache_size = 4 KB

然后:

cache_word_address_size = 12

所以:

tag_address_size = 24 – 12 = 12

此问题已在最新的6.3 EDK Service Pack中修复,可从以下位置获得:

http://www.xilinx.com/ise/embedded/edk.htm。

请登录后发表评论

    没有回复内容