public abstract class Memory<D extends Data,A extends Address> extends java.lang.Object implements Buffer<D,A>, BufferObserver
Modifier and Type | Class and Description |
---|---|
class |
Memory.Proxy
Proxy class is used to simplify code of assignment expressions.
|
Constructor and Description |
---|
Memory(java.math.BigInteger byteSize) |
Modifier and Type | Method and Description |
---|---|
D |
getData(A address)
Returns the data associated with the given address.
|
protected abstract int |
getDataBitSize() |
boolean |
isHit(A address)
Checks whether the given address causes a hit.
|
boolean |
isHit(ru.ispras.fortress.data.types.bitvector.BitVector value)
Checks whether the given address causes a hit.
|
protected abstract A |
newAddress() |
protected abstract D |
newData(ru.ispras.fortress.data.types.bitvector.BitVector value) |
Memory.Proxy |
setData(A address) |
D |
setData(A address,
D data)
Updates the data associated with the given address.
|
void |
setStorage(MemoryDevice storage) |
public final void setStorage(MemoryDevice storage)
public boolean isHit(A address)
Buffer
public boolean isHit(ru.ispras.fortress.data.types.bitvector.BitVector value)
BufferObserver
isHit
in interface BufferObserver
value
- Address to be checked.true
if the address causes a hit; false
otherwise.public final D getData(A address)
Buffer
public final D setData(A address, D data)
Buffer
public final Memory.Proxy setData(A address)
protected abstract A newAddress()
protected abstract D newData(ru.ispras.fortress.data.types.bitvector.BitVector value)
protected abstract int getDataBitSize()