Beispiel #1
0
 public CacheResult(MemoryCacheSimulator memCache, int cycleUse, Dictionary <int, bool> hitMissRecord)
 {
     MemCache = memCache;
     CycleUse = cycleUse;
     AmountOfMemoryAddressCalls = hitMissRecord.Count;
     HitMissRecord = hitMissRecord;
 }
Beispiel #2
0
        static CacheResult simulateCacheUses(int[] addresses, MemoryCacheSimulator aCacheSimulator)
        {
            Dictionary <int, bool> hitMissRecord = new Dictionary <int, bool>();
            int cyclesTaken = -1;

            for (int i = 0; i < 2; i++)
            {
                cyclesTaken = 0;
                foreach (int address in addresses)
                {
                    bool isCacheHit = aCacheSimulator.getMem(address);
                    hitMissRecord[address] = isCacheHit;
                    cyclesTaken           += (isCacheHit) ? aCacheSimulator.getHitTime() : aCacheSimulator.getMissTime();
                }
            }

            return(new CacheResult(aCacheSimulator, cyclesTaken, hitMissRecord));
        }