1 package net.mograsim.machine;
5 public interface MachineDefinition {
8 * Creates a new instance of the machine
10 * @return a new object of an {@link Machine} implementation.
11 * @author Christian Femers
16 * Returns the schema that all possible ISAs (Instruction Set Architecture) must
19 * @return an {@link ISASchema} implementation fitting the machine
20 * @author Christian Femers
22 ISASchema getISASchema();
25 * Returns a set of all {@link Register}s present in the machine.
27 * @return all registers present in the machine.
28 * @author Christian Femers
30 Set<Register> getRegisters();
33 * The number of bits used by the machine to address main memory. Note that this
34 * should be the number of bits used in the CPU, not a possibly different one
35 * used by the bus system.
37 * @return the number of bits used by the CPU
38 * @see MainMemoryDefinition#getMemoryAddressBits()
39 * @author Christian Femers
44 * Returns the definition of the machines main memory.
46 * @return the {@link MainMemoryDefinition} that defines the main memory.
47 * @author Christian Femers
49 MainMemoryDefinition getMainMemoryDefinition();