Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计算集合关联映射缓存的地址索引_C#_Visual Studio 2010_Caching_Associative - Fatal编程技术网

C# 计算集合关联映射缓存的地址索引

C# 计算集合关联映射缓存的地址索引,c#,visual-studio-2010,caching,associative,C#,Visual Studio 2010,Caching,Associative,我已经实现了一个直接映射缓存模拟,现在我想实现集合关联缓存,为此我使用以下代码从跟踪主内存引用计算地址的索引: long index = ((address >> BLOCK_SHIFT) & (CACHE_SIZE - 1)) / 6; 其中,address是用于缓存模拟的跟踪主存引用,对于32位缓存块大小,块移位为5,缓存大小为1024 除以6,获得关联性=64,等于2^6=64 但是这个除以6并不能给出正确的结果 如何计算64位关联性级别的地址索引。re“块移位为5,

我已经实现了一个直接映射缓存模拟,现在我想实现集合关联缓存,为此我使用以下代码从跟踪主内存引用计算地址的索引:

long index = ((address >> BLOCK_SHIFT) & (CACHE_SIZE - 1)) / 6;
其中,address是用于缓存模拟的跟踪主存引用,对于32位缓存块大小,块移位为5,缓存大小为1024

除以6,获得关联性=64,等于2^6=64

但是这个除以6并不能给出正确的结果


如何计算64位关联性级别的地址索引。

re“块移位为5,对于32位缓存块大小”:如果缓存块大小为32位,是否应该右移位32位而不是5位?我错过了Smeting吗?@PieterGeerkens不明白,请解释,块大小是由用户提到的,当2^5=32时,5位必须从地址移走…但它是一个32位缓存块,不是一个5位缓存块,32==2^5不能承受。你的意思是说我将地址移了32位,它给出了一个完全错误的缓存命中和未命中。然后更好地解释你的问题。你目前的解释似乎表明32是正确的,5是错误的。现在甚至没有其他人在帮助你,因为你的帖子现在已经写好了。