Difference between revisions of "KT11-B Technical Manual"
(→Detailed logic description: save again to prevent lossage) |
(clarify pre reqs) |
||
Line 1: | Line 1: | ||
As a Special Systems Option, the [[KT11-B Paging Option|KT11-B]] does not have the usual [[DEC]] Technical Manual. This page attempts to provide at least the high-level portions of such a manual. | As a Special Systems Option, the [[KT11-B Paging Option|KT11-B]] does not have the usual [[DEC]] Technical Manual. This page attempts to provide at least the high-level portions of such a manual. | ||
− | '''Note:''': The KT11-B theory of operation (either from the page above, or the Option Description manual), must be thoroughly understood before trying to read this page. In particular, KT11-B external register names must be known, as well as the function of high-level internal entities such as the associative | + | '''Note:''': The KT11-B theory of operation (either from the page above, or the Option Description manual), must be thoroughly understood before trying to read this page. In particular, KT11-B external register names must be known, as well as the function of the CPU and device UNIBUSes, as well as high-level internal entities such as the associative memories, and the scratchpad memory. |
==Prints== | ==Prints== |
Revision as of 01:21, 13 September 2016
As a Special Systems Option, the KT11-B does not have the usual DEC Technical Manual. This page attempts to provide at least the high-level portions of such a manual.
Note:: The KT11-B theory of operation (either from the page above, or the Option Description manual), must be thoroughly understood before trying to read this page. In particular, KT11-B external register names must be known, as well as the function of the CPU and device UNIBUSes, as well as high-level internal entities such as the associative memories, and the scratchpad memory.
Contents
- 1 Prints
- 2 Drawing Conventions
- 3 States
- 4 Detailed logic description
- 4.1 Address Bus and Control Logic
- 4.2 State Control Logic
- 4.3 Scratchpad Input Mux
- 4.4 Associative Memory Control
- 4.5 Scratchpad and State Control Logic
- 4.6 Data Bus and Control Logic
- 4.7 Keys and Associative Memory
- 4.8 XP Option for KT11 Associative Memory Control
- 4.9 PGM Register
- 4.10 PGC Register
- 4.11 Timing Logic
- 4.12 Buffered Signals and Main Logic
- 4.13 Extended Associative Memory
- 5 Construction
- 6 Card Information
Prints
The Engineering Drawings for the KT11-B (7605071) include the following logic prints:
Number | Page Count | Content |
---|---|---|
2 | 2 | Address Bus and Control Logic |
3 | 1 | State Control Logic |
4 | 1 | SP Input Mux |
5 | 2 | Associative Memory Control |
6 | 1 | Scratch Pad and State Control Logic |
7 | 3 | Data Bus and Control Logic |
8 | 1 | Keys and Associative Memory |
9 | 1 | XP Option for KT11 Associative Memory Control |
10 | 1 | PGM Register |
11 | 1 | PGC Register |
12 | 1 | Timing Logic |
13 | 1 | Buffered Signals and Main Logic |
14 | 1 | Extended Associative Memory |
15 | 1 | KA11 to KT11 Interface |
17 | 1 | KT11-B Bus Connectors |
The KT11-B is not composed of discrete boards, but rather a large number of mostly small FLIP CHIPs, so the division into drawings, some of which are multi-sheet (as opposed to them all being single-sheet) is a bit arbitrary. It is probably intended to align the drawings with the high-level internal structure.
References to drawing pages are given as 'x-y', where 'x' the drawing number, and 'y' is the individual sheet.
Drawing Conventions
The drawings are somewhat easier to understand if the conventions used in the drawings are understood. Although no document lists them, they can be ascertained by study of the drawings.
Signal Names
Signal names in this drawing set usually start with 'Dxx', where 'xx' is related to the drawing number (given in the table above). (This is similar to the convention in the KA11 drawings, where 'Kxx-y' means that the signal originates on page y of drawing xx.) Note that the 'Dxx' correspondence seems to sometimes be off by one; i.e. a signal tagged 'D04' can be found originating on drawing 05.
In signal names of the form 'XXX (yy)', 'yy' is a bit number (in standard PDP-11 order) in a register or bus. For signals which are provided in both asserted low and asserted high forms, one will see signal names of the form 'XXX (y)', where 'y' is 1 or 0. Note that sometimes these two notations are combined, and one can find signal names of the form 'XXX (yy) (z)'. Inverted (asserted low) signals are also sometimes shown as '-XXX'.
The following specific signal names have the meaning given:
- Signals of the form 'x.y' are states, with 'x' being the major state, and 'y' being the minor state.
- Signal names starting with 'SP' refer to the scratchpad memory, which holds both cache page table entries, as well as some KT11-B registers; SPIN is its input bus, and SPDA is its output bus.
- Signal names starting with 'AM' refer to the associative memory.
- Signal names starting with 'DV' refer to the UNIBUS from the KT11-B to the devices and memory of the system.
- Signal names starting with 'CP' refer to the UNIBUS to the KT11-B from the KA11 CPU.
- Signal names starting with 'PGC' refer to the contents of the Control Status register.
- Signal names starting with 'PGM' refer to the contents of the Maintainence register.
Common Circuits
This circuit (first used in the KA11) is seen in several places in the KT11-B. It is almost always seen as an array of identical circuits, since it provides a 3-input multiplexor with latching capability, and it is used on data paths (usually 16 bits wide).
The latch is cleared by de-asserting the 'Latch' input; data from any of the three inputs (A, B, C) may then be selected for output, and potentially storage, by asserting the matching 'Gate' input. Asserting 'Latch' then stores the current output of the mux.
(Asserting more than one input simultaneously ORs the two inputs together; this capability is used in the KA11, but probably not here.)
States
The KT11-B has a state composed of two parts, the 'X' or major part, and the 'Y' or minor part; the progression of this through the various states is the major control mechanism in the KT11-B.
The X state counter is on print 12; it is composed of a 2-bit counter (allegedly a shift register, but that could not generate 4 discrete states) composed of a pair of D flops, with 4 AND gates with inverting inputs to create individual major state outputs, signals 'XSRx' (x = 0-3).
The Y state counter is an M826 Flip Chip, shown on print 8; its outputs are signals 'YSRx' (x = 0, 1 ,3, 7, 15, 14, 12, 8). (The odd sequence of minor state numbers, and the fact that they are not in numerical order, is confusing, but since that's what's on the prints, that nomenclature has to be used.)
The two groups of signals are combined into signals which indicate that the KT11-B is in that state, for each individual major/minor state, by NAND gates shown on drawing 12; inverters then provide non-inverted forms of each.
There are 4 signals XSHL, XSHR, YSHL, YSHR which control state transitions.
State Table
The following table shows the state transitions:
State | Next State(s) | Comment |
---|---|---|
0.0 | 0.8, 1.0 | Idle |
0.8 | 0.12 | Interrupt, Trap and Start User |
0.12 | 0.14 | |
0.14 | 0.15 | |
0.15 | 0.7A | |
0.7A | 0.3A | |
0.3A | 0.1A | |
0.1A | 0.0 | |
0.7B | 0.3B | Although the state names are identical to the preceding ones, this is shown on the state diagram as a separate state loop |
0.3B | 0.1B | Window? |
0.1B | 1.1 | |
1.0 | 1.1, 3.0 | |
1.1 | 1.3 | |
1.3 | 1.7, 3.3 | Exec-per-Process |
1.7 | 0.7B, 1.15 | |
1.15 | 1.14 | Page Violation? |
1.14 | 1.12 | |
1.12 | 0.12 | |
1.8 | 1.0 | |
2.0 | 0.0 | |
2.1 | 2.0, 2.3 | Shared Entry? |
2.3 | 2.7 | |
2.7 | 2.15 | |
2.15 | 2.14 | Page Violation? |
2.14 | 0.14 | |
2.12 | - | State does not exist |
2.8 | - | State does not exist |
3.0 | 2.0, 3.1, 3.8 | |
3.1 | 1.1, 2.1, 3.0 | |
3.3 | 3.1, 3.7A | |
3.7A | 1.7 | Although the state name is identical to the preceding ones, this is shown on the state diagram as a separate state loop |
3.7B | 3.3 | |
3.15 | 3.7B | |
3.14 | 3.15 | |
3.12 | 3.14 | |
3.8 | 1.8, 3.12 |
This table is a transcription of the single-page one in the KT11-B Option Description; that diagram contains a number of labels, but it is not completely clear which states (or transitions) the labels apply to. Over time the hope is to check this table against the multi-page table in that document, and also better described what each state means.
Detailed logic description
This section covers each drawing in more detail, explaining what functions are found in each one.
Since the KT11-B does not contain any internal registers to which the CPU does not have access, the term 'register' (obviously) refers to any of the registers visible to the CPU in the KT11-B. The term 'logic' below means a group of gates (and sometimes flops as well), often used to produce control signals.
Note: For describing which part of a print is being discusssed, the terms 'left', 'center' and 'right' refer to the side-side axis, and 'top', 'middle' and 'bottom' refer to the up-down axis. Which ones 'center' and 'middle' relate to can be remembered by the observation that 'center' is usually used in a side-side context, not an up-down one.
Address Bus and Control Logic
The first sheet contains, on the left, buffering between the address lines of the CPU's UNIBUS, and an internal address bus; and in the center and right, logic which generates control signals for the address mux (on the next page).
The left of the second sheet contains an address latching mux (see above for the implementation), divided into high and low 9-bit halves, which selects between:
- Scratch-pad data output (9 bits wide, repeated in the low and high halves)
- Scratch-pad data input (18 bits wide, with the low and high halves swapped, although the low bit in the low half is zero, and the low bit in the high half is a synthetic signal, )
- An internal address bus
The right half of the second sheet contains drivers for the address lines of the device UNIBUS, sourced from the above mux.
State Control Logic
This drawing contains logic which generates two state change control signals for each of the major and minor states (XSHL, XSHR, YSHL, YSHR).
Scratchpad Input Mux
At the top, a 16-bit wide latching mux (see above) which provides the input to the scratchpad memory. The three inputs are:
- An internal address bus
- An internal data bus
- Scratchpad data output
At the bottom is logic which generates the selection control signals for that mux.
Associative Memory Control
The first sheet contains a number of different logical units: the top left contains logic which indicates that the CPU is executing a TRAP instruction; the top right contains logic to recognize references to KT11-B internal registers.
The second sheet also contains a number of different logical units: the right side contains logic to load individual associative memories; the bottom left contains logic to generate the binary-coded identification of the scratchpad memory entry corresponding to a matching associative memory; the center bottom contains logic to indicate an associative memory match.
Scratchpad and State Control Logic
Logic which controls the scratchpad memory: the center top and entire right side contain logic which (apparently) indicates which register (stored in the scratchpad) the KT11-B itself needs access to ("SPOR 2 (0-2)"); the center bottom contains logic which indicates which set of scratchpad address inputs (out of four, see the "Keys and Associative Memory" section) are to be used ("ENB SPOR (0-3)").
Data Bus and Control Logic
The first sheet contains logic to create various control signals.
The far left of the second sheet contains inputp buffers (from the CPU's UNIBUS) for various bus control signals; the center left contains the drivers for data lines of the device UNIBUS, which are fed from the (buffered) data lines of the CPU's UNIBUS; the right contains half of a multiplexor (built from NAND gates connected in a wired-OR network) which drives the data lines of the CPU's UNIBUS, for which the inputs are:
- The data lines of the device UNIBUS (through a set of receivers, which also generate the internal data bus)
- Scrarchpad data output
- The KT11-B Control and Maintainence registers
The left and centter of the third sheet contains the other half of the data mux; the right shows the KW11-L Line Time Clock card.
Keys and Associative Memory
The left-hand side shows the scratchpad memory; note that the address input select lines (top group, left side) select one of four sets of address input lines. From the top, they are:
- The binary-coded number of the associative memory that matched
- Replacement counter (from the KTMR); note that the lowest value this can have is 010, i.e. cache entries are stored in the top 010 locations in the scratchpad - note that in the input above, the high bit is tied high
- A set of signals which apparently indicate which register the KT11-B needs to be able to store - note that the high bit here is tied low
- The low bits of the internal address bus, likely for register read-out
The top center shows the associative memories; the top right shows a comparator (use unknown); the bottom right is the counter?/shift register? which generates the minor state. The bottom center is a 3-bit wide latching mux which generates and holds key information.
XP Option for KT11 Associative Memory Control
This contains logic to control the optional cache entries; the left-hand side contains gates to control loading of associative memories, and the right hand side contains logic for handling matches.
PGM Register
The KT11-B's Maintenance register: the center top is the replacement counter; the rest of the page is random logic (including S/R flops) to generate the currently undocumented other bits in the Maintenance register - bits 6, 7, 11, 12, 13, 14. (The Option Description indicates - Section 3.3.2.6 - that there are 5 bits, but the drawings show 6.)
PGC Register
The KT11-B's Control and Status register - S/R flops to store the bits, and random logic to control setting and clearing them. In the upper right, the Source and Destination bits; in the center and lower right, the five Violation bits; in the upper left and center, the two Function bits; in the left and center middle, the User and Interrupted User bits, respectively.
Timing Logic
The top and lower right contain gates which combine major and minor state lines into lines for each individual state. The lower left contains the counter (not a shift register, as per the Option Description Section 4.3; it can produce 4 different states from 2 bits, not possible with a shift register) to produce the major state, and logic to produce major state lines.
Buffered Signals and Main Logic
The left side shows the W130 Maintaince Card; the top and right contains buffering for various internal signals.
Extended Associative Memory
The scratchpad memory and associative memories for the optional 16-entry extension (to 24 entries total) for the page table entry cache.
Construction
As mentioned, the KT11-B is constructed out of a large number of smaller Flip Chips, plugged into a custom-wired backplane.
Module Counts
The module type usage counts are:
Type | Function | Count | Comment |
---|---|---|---|
M111 | 16 x Inverters | 10 | |
M112 | 10 x 2-input NOR | 5 | |
M116 | 6 x 4-input NOR | 10 | |
M133 | 10 x 2-input NAND | 24 | |
M135 | 8 x 3-input NAND | 6 | |
M139 | 3 x 8-input NAND | 1 | |
M167 | Magnitude comparator | 1 | |
M203 | 8 x R/S flip flops | 1 | |
M206 | 6 x D flip flops | 1 | |
M207 | 6 x J/K flip flops | 1 | |
M225 | Scratchpad memory | 1 | 2 for 24 cache entries |
M240 | R/S flip flop | 1 | |
M244 | 6 x quad-2-input-AND/OR gates | 6 | Used as multiplexor latches (see above) |
M259 | Associative memory | 4 | 12 for 24 cache entries |
M602 | 2 x Pulse amplifier | 1 | |
M611 | 14 x Power inverter | 3 | |
M627 | 6 x NAND amplifier | 7 | |
M721 | UNIBUS transceiver | 4 | |
M783 | 12 x UNIBUS NAND transmitters | 6 | |
M784 | 16 x UNIBUS inverter receivers | 2 | |
M826 | Clock/shift register | 1 |
The counts are from the list in the "KT11-B Option Description" document; they have been cross-checked against the 'Module Utilization' sheet from the KT11-B Engineering Drawings, and also the module location chart (below) and all known variances have been sorted out.
Module Locations
The following table, drawn from the 'Module Utilization' sheet from the KT11-B Engineering Drawings, gives the location of the various modules in the backplane:
Slot | A | B | C | D |
---|---|---|---|---|
01 | UNIBUS In | M259 | M133 | |
02 | M930 | M259 | M133 | |
03 | UNIBUS Out | M259 | M133 | |
04 | M930 | M259 | ||
05 | M721 | M721 | M259% | |
06 | M721 | M721 | M259% | |
07 | M783 | M784 | M259% | |
08 | M783 | M784 | M259% | M133 |
09 | M783 | M787 $ | M259% | M133 |
10 | M783 | M244 | M259% | M133 |
11 | M783 | M244 | M259% | M133 |
12 | M783 | M244 | M259% | M903 @ |
13 | M826 | M244 | M627 | M111 |
14 | W130 $ | M244 | M627 | M133 |
15 | M116 | M244 | M627 | M133 |
16 | M225 | M627 | M133 | |
17 | M225% | M111 | M133 | |
18 | M116 | M112 | M627 | M133 |
19 | M116 | M112 | M627 | M133 |
20 | M116 | M112 | M627 | M133 |
21 | M116 | M112 | M133 | |
22 | M116 | M112 | M133 | |
23 | M116 | M602 | M133 | |
24 | M116 | M135 | M133 | |
25 | M116 | M135 | M611 | M133 |
26 | M116 | M135 | M611 | M133 |
27 | M203 | M135 | M111 | M133 |
28 | M206 | M135 | M111 | M133 |
29 | M207 | M135 | M611 | M133 |
30 | M240 | M133 | M111 | M111 |
31 | M139 | M111 | M111 | |
32 | M167 | M111 | M111 |
- % = Optional
- $ = Not part of KT11-D
- @ = Cable
Questionable entries (since the table is hand-written, and hard to read in places because of poor-quality duplication from the originals) have been cross-checked against the prints, and all known uncertainties have been cleared up.
Card Information
The drawings contain a number of different Flip Chips as blocks, without showing individual details; those are given here.
M167
Shown on page 8-1, this is a 8-bit comparator; it compares the value of two 8-bit numbers and provides four outputs which provide the relationships between those two numbers (A=B, A>B, A>=B, and B>=A). (An EQUAL IN input is provided for cascading them, but it is not used here.)
Inputs (bits nummbered in PDP-11 style, with LSB = bit 0):
Input | Pin | Input | Pin |
---|---|---|---|
A7 | F2 | B7 | H2 |
A6 | H1 | B6 | S1 |
A5 | E2 | B5 | D2 |
A4 | F1 | B4 | E1 |
A3 | C1 | B3 | D1 |
A2 | J1 | B2 | M1 |
A1 | K1 | B1 | M2 |
A0 | B1 | B0 | A1 |
Outputs:
Pin | Signal |
---|---|
P1 | EQUAL OUT (L) |
R1 | EQUAL OUT (H) |
V1 | A>B (H) |
U1 | B>=A (H) |
L1 | A>=B (H) |
M203
Shown on pages 7-1, 10-1 and 11-1, although not as as a single block, but rather individual units, this contains R/S flip flops. They are formed from a pair of NAND gates interconnected in the usual fashion; they provide inverted S and R inputs, and normal and inverted outputs.
M225
Shown on pages 8-1 and 14-1, this is a 16x16-bit scratchpad memory; this card is also used in the KA11 processor of the PDP-11/20, and is documented there. In addition to 16-bit wide input and output, and byte write controls, it also provides an 4 sets of the 4 address inputs, and 4 inputs to select the desired set of addresz input. (I.e. the address lines are binary encoded, but the address input select lines are not.) An internal 4-way mux selects the desired set of address inputs.
Data pins:
Input | Pin | Output | Pin |
---|---|---|---|
I00 | AF2 | O00 | AE1 |
I01 | AA1 | O01 | AC1 |
I02 | AK2 | O02 | AL1 |
I03 | AH1 | O03 | AJ1 |
I04 | AE2 | O04 | AF1 |
I05 | AD2 | O05 | AD1 |
I06 | AJ2 | O06 | AM1 |
I07 | AH2 | O07 | AK1 |
I08 | BR2 | O08 | BM2 |
I09 | BL1 | O09 | BM1 |
I10 | BV2 | O10 | BU1 |
I11 | BP1 | O11 | BR1 |
I12 | BP2 | O12 | BT2 |
I13 | BN2 | O13 | BN1 |
I14 | BU2 | O14 | BV1 |
I15 | BS2 | O15 | BS1 |
There may be a certain amount of variance between which pin is used for which bit; since the card is purely memory, the bits can be re-ordered without harm.
Control pins:
Address set select | Pin | Address set A | Pin | Address set B | Pin | Address set C | Pin | Address set D | Pin |
---|---|---|---|---|---|---|---|---|---|
A0 | BE1 | AA0 | BF2 | AB0 | BH1 | AC0 | BE2 | AD0 | BF1 |
A1 | BJ1 | AA1 | BD1 | AB1 | BD2 | AC1 | BC1 | AD1 | BA1 |
A2 | AP2 | AA2 | AV2 | AB2 | AV1 | AC2 | AU1 | AD2 | AU2 |
A3 | AS1 | AA3 | AT2 | AB3 | AS2 | AC3 | AR2 | AD3 | AR1 |
Pin BK1 is 'WRITE 15/8', and pin AM2 is 'WRITE 7/0'. In addition, pin AN1 is a control input of some sort, but it is not yet clear what it does.
M240
Shown on pages 10-1 and 11-1, although not as as a single block, but rather individual units, this contains R/S flip flops.
M259
Shown on pages 8-1 and 14-1, this is a dual 8-bit associative memory.
M602
Shown on pages 6-1 and 13-1, although not as as a single block, but rather individual units, this is a dual pulse amplifier. It produces a negative-going pulse (nominally 50 nsec wide), triggered by an input transitioning from high to low; the input is a triple-input OR with inverting inputs.
M787
Shown on page 7-3, this is actually not a part of the KT11-B; rather, it is the KW11-L Line Time Clock, which must reside in the KT11-B's backplane.
M826
Shown on page 8-1, this is a clock with counter?/shift-register?
W180
Shown on page 13-1, this is actually not a part of the KT11-B; rather, it is the Maintenance Card, which must plug into the KT11-B's backplane.
v • d • e PDP-11 Computers and Peripherals |
---|
UNIBUS PDP-11s - PDP-11/20 • PDP-11/15 • PDP-11/35 • PDP-11/40 • PDP-11/45 • PDP-11/50 • PDP-11/55 • PDP-11/70 PDP-11/05 • PDP-11/10 • PDP-11/04 • PDP-11/34 • PDP-11/60 • PDP-11/44 • PDP-11/24 • PDP-11/84 • PDP-11/94 QBUS PDP-11s - PDP-11/03 • PDP-11/23 • PDP-11/23+ • MicroPDP-11/73 • MicroPDP-11/53 • MicroPDP-11/83 • MicroPDP-11/93 QBUS CPUs: LSI-11 • LSI-11/2 • KDF11-A • KDF11-B • KDJ11-A • KDJ11-B • KDJ11-D • KDJ11-E Buses: UNIBUS • UNIBUS map • SPC • MUD • EUB • QBUS • CD interconnect • PMI Also: PDP-11 architecture • PDP-11 Extended Instruction Set • FP11 floating point • PDP-11 Memory Management |
UNIBUS CPUs: KA11 • KC11 • KB11-A • KB11-B • KB11-C • KB11-D • KD11-A • KD11-B • KD11-D • KD11-E • KD11-EA • KD11-K • KD11-Z • KDF11-U
Co-processors: FP11-A • FP11-B • FP11-C • FP11-E • FP11-F • KE44-A • FPF11 Chips: LSI-11 • KEV11-A • KEV11-B • KEV11-C • F-11 • KEF11-A • KTF11-A • T-11 • J-11 • FPJ11 CPU options: KE11-E • KE11-F • KJ11-A • KT11-C • KT11-D • KK11-A • KK11-B • KT24 • KTJ11-B Rare CPU options: KS11 Memory Protection and Relocation option • KT11-B Paging Option • KUV11 Writeable Control Store Front panels: KY11-A • KY11-D • KY11-J • KY11-LA • KY11-LB • KY11-P More on buses: UNIBUS and QBUS termination • Bus Arbitration on the Unibus and QBUS • CTI BUS PDT-11s - PDT-11/110 • PDT-11/130 • PDT-11/150 CTI PDP-11s - PRO-325 • PRO-350 • PRO-380 Other: FIS floating point • PDP-11 Commercial Instruction Set • PDP-11 stacks • PDP-11 family differences |