Пример #1
0
        public void Write_FIFO_WriteThroughNoAssign_SecondSameFail()
        {
            var cache = new FIFO <int>(4, new WriteAlgorithm(WriteAlgorithms.WriteThroughWithoutAssignementOnWrite));

            cache.Write(0, 5);
            var result = cache.Write(0, 0);

            Assert.False(result.success);
            Assert.False(result.replacedNode);
        }
Пример #2
0
        public void Write_FIFO_CopyBack_SecondSameSuccess()
        {
            var cache = new FIFO <int>(4, new WriteAlgorithm(WriteAlgorithms.CopyBack));

            cache.Write(0, 5);
            var result = cache.Write(0, 0);

            Assert.True(result.success);
            Assert.False(result.replacedNode);
        }
Пример #3
0
        public void Write_FIFO_WriteThroughNoAssign_DontReplaceFirst()
        {
            var cache = new FIFO <int>(2, new WriteAlgorithm(WriteAlgorithms.WriteThroughWithoutAssignementOnWrite));

            cache.Write(1, 5);
            cache.Write(2, 6);
            var result = cache.Write(0, 0);

            Assert.False(result.success);
            Assert.False(result.replacedNode);
        }
Пример #4
0
        public void Write_FIFO_WriteThroughAssign_ReplaceFirst()
        {
            var cache = new FIFO <int>(2, new WriteAlgorithm(WriteAlgorithms.WriteThroughWithAssignementOnWrite));

            cache.Write(1, 5);
            cache.Write(2, 6);
            var result = cache.Write(0, 0);

            Assert.False(result.success);
            Assert.True(result.replacedNode);
            Assert.Equal(1U, result.replacedNodeTag);
            Assert.Equal(0U, result.block.Tag);
            Assert.Equal(0, result.block.Val);
        }
Пример #5
0
        public void Write_FIFO_CopyBack_ReplaceFirst()
        {
            var cache = new FIFO <int>(2, new WriteAlgorithm(WriteAlgorithms.CopyBack));

            cache.Write(1, 5);
            cache.Write(2, 6);
            var result = cache.Write(0, 0);

            Assert.False(result.success);
            Assert.True(result.replacedNode);
            Assert.Equal(1U, result.replacedNodeTag);
            Assert.Equal(0U, result.block.Tag);
            Assert.Equal(0, result.block.Val);
        }
Пример #6
0
        public void Write_FIFO_CopyBack_FirstFail()
        {
            var cache = new FIFO <int>(4, new WriteAlgorithm(WriteAlgorithms.CopyBack));

            var result = cache.Write(0, 0);

            Assert.False(result.success);
            Assert.False(result.replacedNode);
        }
Пример #7
0
        public void Write_FIFO_WriteThroughNoAssign_SecondSuccess()
        {
            var cache = new FIFO <int>(4, new WriteAlgorithm(WriteAlgorithms.WriteThroughWithoutAssignementOnWrite));

            cache.Read(0, 5);
            var result = cache.Write(0, 0);

            Assert.True(result.success);
            Assert.False(result.replacedNode);
            Assert.Equal(0U, result.block.Tag);
            Assert.Equal(0, result.block.Val);
        }
Пример #8
0
        public void ReadWrite_FIFO_CopyBack_SecondSuccess()
        {
            var cache = new FIFO <int>(4, new WriteAlgorithm(WriteAlgorithms.CopyBack));

            cache.Read(0, 5);
            var result = cache.Write(0, 0);

            Assert.True(result.success);
            Assert.False(result.replacedNode);
            Assert.Equal(0U, result.block.Tag);
            Assert.Equal(0, result.block.Val);
        }