|
Simple Machine | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.util.Observable
Machine.AbstractCPU
public abstract class AbstractCPU
Nested Class Summary | |
---|---|
static class |
AbstractCPU.InvalidInstructionException
Exception indicating than an invalid instruction was just detected by the CPU. |
static class |
AbstractCPU.MachineHaltException
Exception indicating that the CPU just retired a halt instruction. |
Field Summary | |
---|---|
static java.lang.String |
CURRENT_INSTRUCTION_ADDRESS
|
protected boolean |
isInterrupt
Interrupt flag |
protected AbstractMainMemory |
mem
|
static java.lang.String |
PC
|
protected java.util.Vector<RegisterSet> |
processorState
Processor state registers. |
protected RegisterSet |
reg
General purpose register file. |
Constructor Summary | |
---|---|
AbstractCPU(AbstractMainMemory aMem)
|
|
AbstractCPU(java.lang.String aName,
AbstractMainMemory aMem)
|
Method Summary | |
---|---|
protected abstract void |
cycle()
Abstract class that implements cpu control logic. |
AbstractMainMemory |
getMainMemory()
|
java.lang.String |
getName()
Name of this ISA implementation (optional). |
DataModel |
getPC()
Export the PC register. |
java.util.Vector<RegisterSet> |
getProcessorState()
|
RegisterSet |
getRegisterFile()
|
void |
setPC(int aPC)
Set PC to value |
boolean |
start()
Start processor execution. |
void |
triggerInterrupt()
|
Methods inherited from class java.util.Observable |
---|
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected RegisterSet reg
protected java.util.Vector<RegisterSet> processorState
public static final java.lang.String PC
public static final java.lang.String CURRENT_INSTRUCTION_ADDRESS
protected boolean isInterrupt
protected AbstractMainMemory mem
Constructor Detail |
---|
public AbstractCPU(java.lang.String aName, AbstractMainMemory aMem)
public AbstractCPU(AbstractMainMemory aMem)
Method Detail |
---|
public AbstractMainMemory getMainMemory()
public RegisterSet getRegisterFile()
public java.util.Vector<RegisterSet> getProcessorState()
public java.lang.String getName()
public DataModel getPC()
public void setPC(int aPC)
protected abstract void cycle() throws AbstractCPU.InvalidInstructionException, AbstractCPU.MachineHaltException, AbstractMainMemory.InvalidAddressException
AbstractCPU.InvalidInstructionException
AbstractCPU.MachineHaltException
AbstractMainMemory.InvalidAddressException
public void triggerInterrupt()
public boolean start() throws AbstractCPU.InvalidInstructionException, AbstractMainMemory.InvalidAddressException
AbstractCPU.InvalidInstructionException
AbstractMainMemory.InvalidAddressException
|
Simple Machine | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |