コード例 #1
0
        public WriteAlgorithm(WriteAlgorithms type)
        {
            this.Type = type;
            switch (type)
            {
            case WriteAlgorithms.WriteThroughWithAssignementOnWrite:
            case WriteAlgorithms.CopyBack:
                ShouldBringBlockOnWriteFail = true;
                break;

            case WriteAlgorithms.WriteThroughWithoutAssignementOnWrite:
                ShouldBringBlockOnWriteFail = false;
                break;

            default:
                ShouldBringBlockOnWriteFail = true;
                break;
            }
        }
コード例 #2
0
 public ProblemOption(UbicationAlgorithm ubicationAlg, WriteAlgorithms writeAlgo)
 {
     WriteAlgorithm     = writeAlgo;
     UbicationAlgorithm = ubicationAlg;
     Ways = null;
 }
コード例 #3
0
 public ProblemOption(UbicationAlgorithm ubicationAlg, WriteAlgorithms writeAlg, int ways)
 {
     WriteAlgorithm     = writeAlg;
     UbicationAlgorithm = ubicationAlg;
     Ways = ways;
 }
コード例 #4
0
ファイル: NWayCache.cs プロジェクト: DavidMarquezF/MemoriaCau
        public NWayCache(int size_bytes, int block_size_bytes, int ways, ReplacementAlgorithm al, WriteAlgorithms wrAl)
        {
            cacheSize = size_bytes;
            nWays     = ways;

            nSets   = cacheSize / (nWays * block_size_bytes);
            bitsSet = (int)Math.Log(nSets, 2);

            bitsOffset = (int)Math.Log(block_size_bytes, 2);

            bitsTag = 32 - bitsOffset - bitsSet;

            _sets = new IReplacementAlgorithm <T> [nSets];
            for (int i = 0; i < nSets; i++)
            {
                _sets[i] = new FIFO <T>(nWays, new WriteAlgorithm(wrAl));
            }
        }