public abstract class Mmu<A extends Address & Data> extends java.lang.Object implements Buffer<ru.ispras.fortress.data.types.bitvector.BitVector,A>, MemoryDevice
Constructor and Description |
---|
Mmu() |
Modifier and Type | Method and Description |
---|---|
boolean |
isHit(A address)
Checks whether the given address causes a hit.
|
boolean |
isInitialized(ru.ispras.fortress.data.types.bitvector.BitVector address)
Checks whether the specified address location has been initialized.
|
ru.ispras.fortress.data.types.bitvector.BitVector |
load(ru.ispras.fortress.data.types.bitvector.BitVector address)
Loads data from the given address.
|
protected abstract A |
newAddress() |
ru.ispras.fortress.util.Pair<ru.ispras.fortress.data.types.bitvector.BitVector,ru.ispras.fortress.data.types.bitvector.BitVector> |
seeData(ru.ispras.fortress.data.types.bitvector.BitVector index,
ru.ispras.fortress.data.types.bitvector.BitVector way)
Returns data and associated address without changing the state.
|
void |
store(ru.ispras.fortress.data.types.bitvector.BitVector address,
ru.ispras.fortress.data.types.bitvector.BitVector data)
Stores the specified data at the given address.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getAddressBitSize, getDataBitSize
public boolean isInitialized(ru.ispras.fortress.data.types.bitvector.BitVector address)
MemoryDevice
isInitialized
in interface MemoryDevice
address
- Address to be checked.true
is the address location is initialized or false
otherwise.public boolean isHit(A address)
Buffer
public ru.ispras.fortress.data.types.bitvector.BitVector load(ru.ispras.fortress.data.types.bitvector.BitVector address)
MemoryDevice
load
in interface MemoryDevice
address
- Load address.MemoryDevice.getDataBitSize()
.public void store(ru.ispras.fortress.data.types.bitvector.BitVector address, ru.ispras.fortress.data.types.bitvector.BitVector data)
MemoryDevice
store
in interface MemoryDevice
address
- Store address.data
- Data of size equal to returned by MemoryDevice.getDataBitSize()
.public ru.ispras.fortress.util.Pair<ru.ispras.fortress.data.types.bitvector.BitVector,ru.ispras.fortress.data.types.bitvector.BitVector> seeData(ru.ispras.fortress.data.types.bitvector.BitVector index, ru.ispras.fortress.data.types.bitvector.BitVector way)
Buffer
protected abstract A newAddress()