| OCR Text |
Show From now on, it is assumed that the interpreter works at the level of machine code. This is true for software and hardware interpreters. 2.3.2 In te rp re te r The interpreter is the central piece that provides the framework for introspection. It generates the execution stream and communicates with directors. It is assumed that the programming model of the interpreter consists o f a program counter and multiple general purpose registers, each of them one word wide. The word length depends on the implementation. For simplicity, it is assumed that each word is large enough to hold different types of values: integer, floating point, address, or instruction. Introspection requires one addition to the programming model that is not commonly present in processors: an instruction counter. The instruction counter counts the number of executed instructions. It is set to zero at the beginning o f the process execution and incremented for each executed instruction. This counter determines time in the process history. The instruction counter can be provided as a hardware or a software addition to an existing system [12, 57] or as a special register in the processor. The instruction set is assumed to be a load/store model [31]. In this model, load and store are the only instructions that access main memory. Another assumption is that instructions take at most two operands and they produce at most one result. This last assumption provides a limit to the amount of data describing one execution step. All assumptions are valid for generic RISC processors such as DLX [31]. 2.3.3 E x e cu t ion Stream An execution stream is dynamically emitted by the interpreter executing an executor. The execution stream consists of events, each event describing the execu23 |