1 package net.mograsim.machine;
5 import net.mograsim.machine.mi.MicroInstructionMemoryDefinition;
7 public interface MachineDefinition {
10 * Creates a new instance of the machine
12 * @return a new object of an {@link Machine} implementation.
13 * @author Christian Femers
18 * Returns the schema that all possible ISAs (Instruction Set Architecture) must
21 * @return an {@link ISASchema} implementation fitting the machine
22 * @author Christian Femers
24 ISASchema getISASchema();
27 * Returns a set of all {@link Register}s present in the machine.
29 * @return all registers present in the machine.
30 * @author Christian Femers
32 Set<Register> getRegisters();
35 * The number of bits used by the machine to address main memory. Note that this
36 * should be the number of bits used in the CPU, not a possibly different one
37 * used by the bus system.
39 * @return the number of bits used by the CPU
40 * @see MainMemoryDefinition#getMemoryAddressBits()
41 * @author Christian Femers
46 * Returns the definition of the machines main memory.
48 * @return the {@link MainMemoryDefinition} that defines the main memory.
49 * @author Christian Femers
51 MainMemoryDefinition getMainMemoryDefinition();
54 * Returns the definition of the machines instruction memory.
56 * @return the {@link InstructionMemoryDefinition} that defines the instruction memory.
58 MicroInstructionMemoryDefinition getMicroInstructionMemoryDefinition();