예제 #1
0
class BaseProcessor(UpdateBroadcaster, LoggerClient):
    def __init__(self, registers, memory, api, instructions):
        pass
    def cycle(self):
        """Updates the processor's state"""
        pass
    def reset(self):
        """Resets the processor's state"""
        pass
    def get_registers(self):
        """Returns a reference or copy of processor registers"""
        pass
    def get_memory(self):
        """Returns a reference or copy of memory"""
        pass
    def get_pipeline(self):
        """Returns a reference or copy of processor pipeline"""
        pass
    def get_pipeline_length(self):
        """Returns the number of stages in the pipeline."""
        pass
    def get_pc_value(self):
        """Returns the value of the program counter."""
        pass
    def add_break_point(self, offset):
        """Add a breakpoint to halt execution."""
        pass
    def remove_break_point(self, number):
        """Remove a breakpoint."""
        pass
    def get_break_points(self):
        """Returns a list of breakpoints."""
        pass
    def set_traps_off(self):
        """Disables break points."""
        pass
    def open_log(self, logger):
        self._log = CpuLogger(logger)
        self._log.buffer(self, "created a cpu, `{:}'"
                         .format(self.__class__.__name__),
                         level.INFO)
        self._log.buffer(self, "pc is register {0}".format(hex(self._pc)),
                         level.FINE)
        self._log.buffer(self, "pipeline: {0}"
                         .format(", ".join(self._pipeline_stages)),
                         level.INFO)
        self._log.buffer(self, "pipeline flags: {0}"
                         .format(self._pipeline_flags.replace(' ', ', ')),
                         level.FINE)

    def open_monitor(self, monitor):
        self.log.write("Attempted to attach monitor", level.ERROR)
예제 #2
0
 def open_log(self, logger):
     self._log = CpuLogger(logger)
     self._log.buffer(self, "created a cpu, `{:}'"
                      .format(self.__class__.__name__),
                      level.INFO)
     self._log.buffer(self, "pc is register {0}".format(hex(self._pc)),
                      level.FINE)
     self._log.buffer(self, "pipeline: {0}"
                      .format(", ".join(self._pipeline_stages)),
                      level.INFO)
     self._log.buffer(self, "pipeline flags: {0}"
                      .format(self._pipeline_flags.replace(' ', ', ')),
                      level.FINE)