Overview
I’ve started using my PDP-11 for instrument control and wanted faster floating point (FP) calculations. My PDP-11/83 is based on the DCJ11 chipset which provides a microcoded implementation of the PDP-11 FP instructions. However, there was a hardware FP co-processor, the FPJ11, that was designed to work with the DCJ11 and provides a 5x-8x speedup on FP operations. Unfortunately, the documentation contains a few references that made me hesitant to simply purchase an FPJ11 and plug it in.
For example, DEC Micronote #25 mentions that
An FPJ11-AA installed on a KDJ11-AA may APPEAR to work
but cache errors and parity errors may occur.
Yikes!
What follows is the compatibility information necessary to add an FPJ11 to a DCJ11-based PDP-11. It has been condensed from various USENET postings and DEC manuals.
DJC11/FPJ11 Compatibility
Commercially released DCJ11 chipsets ran at either 15 or 18 MHz and there were two versions of the FPJ11 to match. The part number is written on the gold cover in the middle of the ceramic package. If you have an 18 MHz DCJ11 but can only find a 15 MHz FPJ11 it is possible to change the crystal on the CPU board to 15 Mhz. This would require an extremely FP-heavy workload to be worthwhile.
FPJ11 | Speed |
---|---|
21-21858-05 | 15 MHz |
21-21858-06 | 18 MHz |
In addition to clock speed, the earliest DCJ11s must be avoided as they are simply incompatible. This part number is located on the white ceramic package, between the DC334 Data chip and DC335 Control chip.
DCJ11 | Speed | FPA Compat? |
---|---|---|
57-19400-04 | 15 MHz | No |
57-19400-08 | 15 MHz | Yes |
57-19400-09 | 18 MHz | Yes |
KDJ11 CPU Board Compatibility
Excluding the PDP-11/53 CPU boards that lack a socket for the FPJ11 and the PDP-11/93 CPU board that always includes the FPJ11 leaves us with the following set of CPU boards from the PDP-11/73 and /83 that are potential FPJ11 recipients.
KDJ11-xx | M819x-xx | FPA Compat? | Notes |
---|---|---|---|
KDJ11-AA | M8192 | No | DEC uNOTE #25 states this board was upgradeable. Some FPJ11-compatible versions may exist. |
KDJ11-AB | M8192-YB | Yes | When the FPJ11 is installed this board magically becomes an M8192-YC/KDJ11-AC. |
KDJ11-BC | M8190 | No | |
KDJ11-BB | M8190-AB | Yes | When the FPJ11 is installed this board magically becomes an M8190-AC/KDJ11-BD. |
KDJ11-BA | M8190-AD | Yes | When the FPJ11 is installed this board magically becomes an M8190-AE/KDJ11-BF. |
FPJ11 Testing
When the KDJ11-B detects an installed FPJ11 it flags bit 8 (counting from 0) in
the Maintenance Register located at 17 777 750
. Using ODT to test on a
freshly powered up Qbus system with FPJ11 installed:
@17777750/000445
And on the same system with the FPJ11 removed:
@17777750/000045
Note that your results may be different since this register also encodes Unibus/Qbus, KDJ11 module type, BPOK status, power up mode, and halt/trap options. Exact details can be found in the KDJ11-B CPU Module User’s Guide (EK-KDJ1B-UG-001) starting on page 1-43.