问题描述
一般问题描述:
如何计算指令缓存的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中修复,可从以下位置获得:
没有回复内容