THIS PAGE IS UNDER CONSTRUCTION

„uTracer11“ (read: "micro-step-tracer for PDP-11") is a tool to visualize internal operation of a DEC PDP-11 CPU.

When explaining the function of a computer, we typically end at the level of "opcode execution and memory access". uTracer11 goes one level deeper and presents the level of micro machine operation, internal register states and UNIBUS cycles.

This is cool for education, as repair tool, or just for entertainment.

And: I always wanted to have this.

The whole project is under development, and will be for long time ... some features described here are not fully usable.

m93x2 rendered

uTracer11 works by plugging into the CPU diagnostic interfaces of older UNIBUS CPU models, and visualizing the raw data gathered there.

gui micro program flow detail


The PDP-11 CPU is generally operated in "single-micro-step-mode".

Primary targets are the PDP11/04, 11/05, 11/34 and 11/40.
Use in 11/20, 11/45 and 11/70 should be possible, but needs to be checked and implemented.

***

The uTracer11 system consist of several connected components.

1. GUI

The graphical user interface ("GUI") runs on a standard PC (Linux/Windows) with serial RS232 interface.
This is the control center. It allows to control the CPU operation (run, single step, UNIBUS code upload), and has several modules to visualize system state:

  • UNIBUS and memory activity
  • disassembled code fetches and execution
  • micro program flow
  • data path operation

Some of these are shown in scans of the original DEC documentation, with additional highlighting .

2. M93X2 FlipChip board

M93X2 is an intelligent hub between the GUI, CPU diagnostic interfaces and UNIBUS.
M93X2 is also a full M9302 terminator, and can let the PDP-11 CPU execute arbitray code on CPU-Reset, like the M9312 BOOT ROM. Hence the name.

Physically it is a dual-slot card mounted in the UNIBUS terminator Slot A/B, or into a MUD (modified UNIBUS) slot.
The SPC slot C/D/E/F is not used because 11/05 and 11/40 have *no* SPC slot free in the basic CPU back plane.
It has an onboard Arduino, communication to GUI is via high speed serial RS232, exchanging well-defined message strings.

3. CPU diagnostic adapters

M93X2 connects to DEC CPUs via the DEC diagnostic headers.
for 11/05,11/40: Connection of two KM11 probes .
for 11/04,11/34: uTracer11 is plugged between the KY11LB programmers console and the CPU M8266 control board in 11/34 (or M7263 in 11/04).
Function of the Programmer Console KY11LB is further possible.

4. Simulators

Its is possible to write PDP-11 simulators on micro-machine-level and connect them to the GUI, just like a real PDP-11 over the M93X2.
Communcation between GUI and simulator is via a TCP/IP socket then.
The simulator implements a subset of the command messages controlling the M93X2 board.

Benefit of a simulator are:

  •  when repairing your CPU, you have a reference of a correct program flow.
  •  a simulator can expose much more of the CPU internal registers, latches and data path state as the M93X2 board.

 

Talking Micro and Macro

As a micro machine is in fact a "computer within a computer", its easy to get confused what we're talking about.

The "Macro CPU" is the PDP-11 CPU as documented to programmers. All PDP-11 CPUs are (more or less) identically and implement the same Instruction Set Architecture.
The term "Macro" is choosen to differentiate from the underlying micro machine.
It has nothing to do with "Macros" as knows from the MACRO-11 Assembler or C #define.

The "micro machine" is the hardware sequencing mechnism which implements a certain Macro CPU. The micro machine is different for each PDP-11model, and highly tuned to meet price-performance goals.
Generally: the cheaper the "data path" logic is, the longer go the micro programs. For example the low-price LSI11-03 chip set is in fact an 8-bit micro machine, which must implement a 16 bit PDP-11 CPU.

To get enlighted, see https://wwww.bitsavers.org/pdf/dec/_Books/Bell-ComputerEngineering.pdf, Chapter "Impact of Implementations: Design Tradeoffs on Performance", pages 327ff.
Also all other chapters in this book !

And check the "Timescales in a 11/34" article for micro/macro operation.

Usually the micro machine is always running, even if the Macro CPU has executed a HALT opcode or was stopped by flipping some HALT switch on the Blinkenlight panel. It just executes another micro code loop on HALT then. Often (11/05, 11/40) the active micro machine even manages panel switches and lamps.