1 package net.mograsim.machine;
5 import net.mograsim.machine.mi.MicroInstructionMemoryDefinition;
7 public interface MachineDefinition
11 * Creates a new instance of the machine
13 * @return a new object of an {@link Machine} implementation.
14 * @author Christian Femers
19 * Returns the schema that all possible ISAs (Instruction Set Architecture) must be based on.
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 should be the number of bits used in the CPU, not a
36 * possibly different one used by the bus system.
38 * @return the number of bits used by the CPU
39 * @see MainMemoryDefinition#getMemoryAddressBits()
40 * @author Christian Femers
45 * Returns the definition of the machines main memory.
47 * @return the {@link MainMemoryDefinition} that defines the main memory.
48 * @author Christian Femers
50 MainMemoryDefinition getMainMemoryDefinition();
53 * Returns the definition of the machines instruction memory.
55 * @return the {@link InstructionMemoryDefinition} that defines the instruction memory.
57 MicroInstructionMemoryDefinition getMicroInstructionMemoryDefinition();