RK11 disk controller

From Computer History Wiki
Revision as of 02:28, 9 November 2016 by Jnc (talk | contribs) (aqdd cat)
Jump to: navigation, search

The RK11 series of controllers for the UNIBUS and QBUS are for the earlier RK moving-head magnetic disk drives (RK02-RK05), all based on the IBM 2315 drive and pack. (The later RK06 and RK07, and their controller, the RK611, are a different drive and pack.)

There are several models of the RK11, which are basically identical in their programming interface; differences between them are discussed in the sections on the individual models (below).

The UNIBUS RK11's all connect to the RK drive through a BC11A cable, the standard UNIBUS cable.

RK11-C

Like many of the earlier large peripheral controllers for the PDP-11, the RK11-C was a large custom wire-wrapped backplane which bolts into the front of a 19 inch rack, such as an H960; into it plugged about 40 small M-Series FLIP CHIPs.

The backplane is wired for connection to a standard DEC indicator panel, but no inlay for such has even been sighted, although the RK11-C Engineering Drawings allow one to work out exactly what such an inlay would have looked like.

See the table at the bottom of the page for a listing of the Flip Chips used in the RK11-C, and their location in the backplane.

RK11-D

The RK11-D was a re-implementation of the RK11-C on four quad cards (M7254-7), which plugged into a custom-wired quad-wide hex-high system unit backplane, for a BA11 slide-out mounting box.

It was program-compatible with the RK11-C, except that the RK11-D did not contain the Maintenance Register of the earlier controller. In the RK11-D, the bus location of the MR responds, but according to the prints, it reads as zero, and written data is ignored.

RK11-E

The RK11-E (sometimes called the RK15) was a variant of the RK11-D which supported 18-bit data; it was used with the PDP-15. It used the same cards as the RK11-D, with a jumper selection for 18-bit operation, and a different clock crystal.

It was used with the UC15 Unichannel, which used a PDP-11/05 acting as a slave to the PDP-15 via shared memory; the RK11-E was plugged into the UNIBUS on the PDP-11. It used the two UNIBUS parity lines for the two extra data bits. The two extra bits were not used by the PDP-11 or its memory, but went through the MX15-B Memory Multiplexer, directly to the PDP-15's memory.

RKV11-D

The RKV11-D is a variant of the RK11-D for the QBUS (the others are all UNIBUS).

It uses three of the four cards of the RK11-D (M7254-6), along with a different custom quad-wide quad-high system unit backplane, and a replacement fourth card (M7268) which is connected via ribbon cables to two dual cards, one of which (M7269) plugs into a QBUS backplane slot, and the other (M993-YA) into the first RK05 drive.

It is programming compatible with the RK11-D, except that it only supports Q16 QBUS mode, so the two extended memory bits in the CSR have no effect; they may be read and written, but are not connected to anything.

Device registers

Register Abbreviation Address
Drive Status Register RKDS 777400
Error Register RKER 777402
Control Status Register RKCS 777404
Word Count Register RKWC 777406
Current Bus Address Register RKBA 777410
Disk Address Register RKDA 777412
Maintenance Register RKMR 777414
Data Buffer Register RKDB 777416


777400: Drive Status Register (RKDS)

Drive Ident. DPL HDEN DRU SIN SOK DRY ARDY WPS SC=CA Sector Counter
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777402: Error Register (RKER)

DRE OVR WLO SKE PGE NXM DLT RTE NXD NXC NXS CSE WCE
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777404: Control Status Register (RKCS)

ERR H.E. SCP M IBA FMT R/WA SSE RDY IDE EX. MEM FUNCTION GO
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777406: Word Count Register (RKWC)

WC15 <---> WC00
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777410: Current Bus Address Register (RKBA)

BA15 <---> BA00
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777412: Disk Address Register (RKDA)

DRIVE SELECT CYLINDER ADDRESS SUR SECTOR ADDRESS
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777414: Maintenance Register (RKMR)

M. RCP M. RDP M. SPS M. ADA M. LAI M. DRY M. R/W/S MAINT. SECTOR COUNTER
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

777416: Data Buffer Register (RKDB)

DB15 <---> DB00
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00


RK11-C Board chart/count tables

The Flip Chip module utilization chart for the RK11-C backplane is as follows (* = Connector):

Slot A B C D
1 UNIBUS in
2 UNIBUS out
3
4
5 M105 M784
6 M782 M79
7 M795
8 M784 M784
9 M623 M307
10 Disk 2* M623 M307
11 M623 M307
12 Disk 1* M207 M163
13 M798 G736 G740 M405
14 M149 M149 M116 M161
15 M149 M149 M304 M119
16 M149 M149 M113 M113
17 M239 M238 M216 M141
18 M239 M214 M115 M115
19 M214 M214 M121 M112
20 M208 M208 M111 M111
21 M203 M203 M112 M112
22 M149 M149 M205 M117
23 M149 M149 M203 M203
24 M121 M002 M116 M115
25 M216 M797 M611 M617
26 M141 M119 M113 M304
27 M304 M112 M112 M113
28 M236 M121 M216 M216
29 M205 M117 M117
30 W130* M113 M113
31 6775* M113 M205
32 6775* M116 M216

W130 = Cable to ??
6775 = Cable to indicator panel

Module counts

(Drawn from module utilization drawing, confirmed in module count chart):

Single height boards:

  • G736
  • G740
  • M002
  • M105
  • M111 2
  • M112 5
  • M113 7
  • M115 3
  • M116 3
  • M117 3
  • M119 2
  • M121 3
  • M141 2
  • M149 10
  • M161
  • M163
  • M203 4
  • M205 3
  • M207
  • M208 2
  • M214 3
  • M216 5
  • M236
  • M238
  • M239 2
  • M304 3
  • M307 3
  • M405
  • M611
  • M617
  • M623 3
  • M782
  • M784 3
  • M796
  • M797
  • M798

Double height boards:

  • M795


PDP-11 bootstraps

Disk 0

Address Data Mnemonic Description
1000 012700 MOV #177406,R0 Move the address of the Word Count register into R0
1002 177406 (constant)
1004 012710 MOV #177400,(R0) Move block size (negative) into Word Count register
1006 177400 (constant)
1010 012740 MOV #5,-(R0) Move 'Read Go' command into CSR
1012 000005 (constant)
1014 105710 TSTB (R0) Test for 'Done' bit in CSR
1016 100376 BPL 1014 Jump backward if not set
1020 005007 CLR PC Start loaded bootstrap with jump to 0


Note that the INIT pulse caused by hitting the 'Start' button will clear the Bus Adddress register, so the loaded block will be placed at location 0.

Disk n

This bootstrap will boot from any disk in a daisy-chained multi-drive configuration. Memory location octal 1006 contains the unit number, as follows:

Address Data Mnemonic Description
1000 012700 MOV #177406, R0 Store the address of the Word Count register in r0
1002 177406 (constant) (Which is 177406)
1004 012760 MOV xxxxxx, 000004(R0) Store the disk ID number in the Disk Address register
1006 xxxxxx (disk ID number) The disk number goes here.
1010 000004 (index)
1012 012700 MOV #177406, R0 Store the addresss of the Word Count register in r0
1014 177406 (constant) (Which is 177406)
1016 012710 MOV #177400, (R0) Store 177400 into the Word Count register,
1020 177400 (constant) meaning that octal 400 words are to be read.
1022 012740 MOV #000005, -(R0) Store 5 into the Control Status register
1024 000005 (constant) selecting the function "read" with 4, and "go" with 1
1026 105710 TSTB (R0) Test the Control Status Register (upper) byte
1030 100376 BPL *-1 Repeat if it's positive, that is Control Ready is cleared
1032 005007 CLR PC If not, clear the Program Counter (essentially, jump to 0)
Value Unit
020000 Unit 1
040000 Unit 2
060000 Unit 3
100000 Unit 4
120000 Unit 5
140000 Unit 6
160000 Unit 7

Documentation

RK11-C manual, 1971

RK11-C schematics, February 1971

EK-RK11D-MM-002, RK11-D Maintenance Manual