Interface SnoopController<E,​A>

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      ru.ispras.fortress.util.Pair<E,​java.lang.Boolean> snoopEvict​(A address, ru.ispras.fortress.data.types.bitvector.BitVector oldEntry)
      Snoops an evict transaction from another cache unit.
      ru.ispras.fortress.util.Pair<E,​java.lang.Boolean> snoopRead​(A address, ru.ispras.fortress.data.types.bitvector.BitVector oldEntry, boolean invalidate)
      Snoops a read transaction from another cache unit.
      ru.ispras.fortress.util.Pair<E,​java.lang.Boolean> snoopWrite​(A address, ru.ispras.fortress.data.types.bitvector.BitVector newEntry)
      Snoops a write transaction from another cache unit.
    • Method Detail

      • snoopRead

        ru.ispras.fortress.util.Pair<E,​java.lang.Boolean> snoopRead​(A address,
                                                                          ru.ispras.fortress.data.types.bitvector.BitVector oldEntry,
                                                                          boolean invalidate)
        Snoops a read transaction from another cache unit.
        Parameters:
        address - the address used in the transaction.
        oldEntry - the entry in the cache or null.
        invalidate - the invalidation flag.
        Returns:
        the local entry w/ the dirty bit or null.
      • snoopWrite

        ru.ispras.fortress.util.Pair<E,​java.lang.Boolean> snoopWrite​(A address,
                                                                           ru.ispras.fortress.data.types.bitvector.BitVector newEntry)
        Snoops a write transaction from another cache unit.
        Parameters:
        address - the address used in the transaction.
        newEntry - the updated entry or null.
        Returns:
        the local entry w/ the dirty bit or null.
      • snoopEvict

        ru.ispras.fortress.util.Pair<E,​java.lang.Boolean> snoopEvict​(A address,
                                                                           ru.ispras.fortress.data.types.bitvector.BitVector oldEntry)
        Snoops an evict transaction from another cache unit.
        Parameters:
        address - the address used in the transaction.
        oldEntry - the entry being evicted.
        Returns:
        the local entry w/ the dirty bit or null.