Difference between revisions of "DM11 Asynchronous 16-line Single-Speed Multiplexer"
m (better flow) |
m (New cat scheme) |
||
(11 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | The '''DM11 | + | The '''DM11 Asynchronous 16-Line, Single-Speed Multiplexer''' (formally, the '''DM11-AA''') was a very early [[UNIBUS]] [[peripheral]] which provided up to 16 [[asynchronous serial line]] connections. It was in some sense a predecessor to the [[DH11 asynchronous serial line interface|DH11]], in that it used [[Direct Memory Access|DMA]]. |
− | However, unlike any other UNIBUS peripheral, much of its internal state was actually stored in [[main memory]], not in [[register]]s in the device itself | + | However, unlike any other UNIBUS peripheral, much of its internal state was actually stored in [[main memory]], not in [[register]]s in the device itself (not even in ones not directly accessible from the UNIBUS); DMA was used to gain access to it. (Perhaps this was early enough in time that [[gate]]s for [[flip-flop]]s for registers were too expensive, or took too much space on the [[printed circuit board|board]].) |
+ | |||
+ | The data stored in memory included: | ||
* per-line current output [[buffer]] [[address]] | * per-line current output [[buffer]] [[address]] | ||
* per-line current output transfer length | * per-line current output transfer length | ||
− | * per-line input shift | + | * per-line input [[shift register]]s |
− | * input buffer (a circular [[First-In First-Out buffer|FIFO buffer]]) | + | * input buffer (a shared, circular [[First-In First-Out buffer|FIFO buffer]]) |
− | (The 'input shift registers' | + | (The 'input shift registers' were needed because [[Universal Asynchronous Receiver/Transmitter|UART]] [[integrated circuit|chips]] did not exist yet. The [[sampling]] of the incoming serial data stream, and the conversion to [[parallel]] form, was done in discrete [[logic]].) |
− | + | There were separate receive and transmit [[interrupt]]s, and [[half-duplex]] and [[full-duplex]] operation are supported in [[hardware]]. The 64-[[character]] FIFO buffer made input over-runs unlikely. | |
− | |||
− | The | ||
− | |||
− | |||
− | |||
− | |||
The line parameters: | The line parameters: | ||
Line 24: | Line 20: | ||
* output stop bits (1 or 2) | * output stop bits (1 or 2) | ||
− | were the same for all lines, and set by [[jumper]]s; parity was computed on incoming data. A 'break' condition on the line (i.e. continuous assertion) could also be generated and detected. | + | were the same for all lines, and set by [[jumper]]s; [[parity]] was computed on incoming data. A 'break' condition on the line (i.e. continuous assertion) could also be generated and detected. |
+ | |||
+ | ==Implementation== | ||
+ | |||
+ | The implementation of the basic DM11-AA used a custom double [[system unit]] [[backplane]], containing multiple cards; a [[flat cable]] connected this to separate rack-mounted [[DEC card form factor|dual-height]] [[DM11 distribution panel]] backplane (which required its own independent [[power supply]]). | ||
+ | |||
+ | Modular 'line conditioning' units from the [[DF11 Communications Line Adapter]] series were installed in the distribution panel to allow support of either [[20mA current loop serial line interface|20mA]] or [[EIA RS-232 serial line interface|EIA RS-232]] serial lines. The alternative DC08CS distribution panel allowed connection to telegraph and Telex lines. | ||
+ | |||
+ | Lines could be connected to [[modem]]s, provided the correct line conditioning units were installed, but modem control required a [[DM11-BB Modem Control Option]], mounted in the main DM11 backplane along with the rest of the DM11-AA cards, and connected to the distribution panel via other flat cables which carried the modem control signals. The DM11-BB is logically a separate device from the DM11-AA, albeit one housed in the same DM11 backplane. | ||
==DM11-AA Device registers== | ==DM11-AA Device registers== | ||
Line 39: | Line 43: | ||
|Base Address Register || DMBADR || 775006 | |Base Address Register || DMBADR || 775006 | ||
|} | |} | ||
+ | |||
+ | The Buffer Active Register has one bit per line to indicate that has output pending (described by the Current Address and Word Count tables below); the Break Status Register also has one bit per line. The Base Address Register is 8 bits wide, so the in-memory tables must start on a 0400 boundary. | ||
The addresses shown are for the first DM11-AA11 in a system; additional ones (up to 16 total) are normally set to be at 775010, 775020, etc to 775170. | The addresses shown are for the first DM11-AA11 in a system; additional ones (up to 16 total) are normally set to be at 775010, 775020, etc to 775170. | ||
Line 44: | Line 50: | ||
===775000: Status Register (DMCSR)=== | ===775000: Status Register (DMCSR)=== | ||
{{16bit-header}} | {{16bit-header}} | ||
− | | TINT || TO || | + | | TINT || TO || SOVR || TIE || colspan=4 | Unused || DONE || RIE || colspan=2 | MEMEX || Unused || MAINT || FHD || RENB |
{{16bitoctal-bitout}} | {{16bitoctal-bitout}} | ||
− | + | *TINT - Transmit Interrupt | |
+ | *TO - Timeout; non-existent memory referenced | ||
+ | *SOVR - System Overrun; bus access not gained in time | ||
+ | *TIE - Transmit Interrupt Enable | ||
+ | *DONE - Done; input character placed in the Circular Buffer | ||
+ | *RIE - Receiver Interrupt Enable | ||
+ | *MEMEX - Memory Extension | ||
+ | *MAINT - Maintenance Bit; connects line 0 (only) receiver directly to transmitter | ||
+ | *FHD - Full/Half Duplex Select; disables receivers on lines that are transmitting | ||
+ | *RENB - Receiver Enable | ||
==Memory tables== | ==Memory tables== | ||
Line 65: | Line 80: | ||
|} | |} | ||
− | The first two are for transmitting, the last two for receiving. The format of the entries in the buffer is: | + | The first two are for transmitting, and defined the output buffer; the last two for receiving. The format of the entries in the input buffer is: |
{{16bit-header}} | {{16bit-header}} | ||
| Valid || Break || Parity || colspan="4" | Channel || Unused || colspan="8" style="text-align:center;" | Character | | Valid || Break || Parity || colspan="4" | Channel || Unused || colspan="8" style="text-align:center;" | Character | ||
Line 81: | Line 96: | ||
* M7243 - Transmitter D | * M7243 - Transmitter D | ||
* M7244 - Transmitter E | * M7244 - Transmitter E | ||
− | * | + | * M7245 - Receiver |
and 4 single-width, non-DM11-specific cards: | and 4 single-width, non-DM11-specific cards: | ||
Line 113: | Line 128: | ||
|} | |} | ||
− | ('''''NOTE''''': ''The | + | ('''''NOTE''''': ''The diagram which is the source for this table has two different cards marked as 'M7245', and no 'M7243's. So it clearly has errors; the M7243 is referred to elsewhere as the transmitter card, and the M7245 as the receiver, so the numbers are correct, but the locations might be swapped.'') |
Power comes in on a single-width stub card in the A3 slots (as is canonical in the [[PDP-11/20]] generation of [[PDP-11]]s). | Power comes in on a single-width stub card in the A3 slots (as is canonical in the [[PDP-11/20]] generation of [[PDP-11]]s). | ||
− | [[Category: UNIBUS Serial Interfaces]] | + | ==Further reading== |
+ | |||
+ | * ''DM11 asynchronous 16-line single-speed multiplexer manual'' (DEC-11-HDMA-D, EK-DM11A-TM-002) - latter is available in fiche, but neither is online | ||
+ | * ''DM11 Asynchronous 16-Line Single-Speed Multiplexer Engineering Drawing Manual'' - not available online | ||
+ | * ''DM11-BB Modem Control Option Engineering Drawings'' - not available online | ||
+ | |||
+ | ==External links== | ||
+ | |||
+ | * [http://www.bitsavers.org/www.computer.museum.uq.edu.au/pdf/DEC-11-HDMBA-A-D%20DM11-BB%20Modem%20Control%20Option%20Manual.pdf DM11-BB modem control option manual], (DEC-11-HDMBA-A-D) pp. 1-5 | ||
+ | * [http://www.bitsavers.org/pdf/dec/pdp11/handbooks/PDP11_PeripheralsHbk_1972.pdf pdp11 peripherals and interfacing handbook (1972 edition)] - the DM11 is covered on pp. 141-160 of the PDF | ||
+ | |||
+ | [[Category: UNIBUS Asynchronous Serial Interfaces]] |
Latest revision as of 01:24, 19 February 2023
The DM11 Asynchronous 16-Line, Single-Speed Multiplexer (formally, the DM11-AA) was a very early UNIBUS peripheral which provided up to 16 asynchronous serial line connections. It was in some sense a predecessor to the DH11, in that it used DMA.
However, unlike any other UNIBUS peripheral, much of its internal state was actually stored in main memory, not in registers in the device itself (not even in ones not directly accessible from the UNIBUS); DMA was used to gain access to it. (Perhaps this was early enough in time that gates for flip-flops for registers were too expensive, or took too much space on the board.)
The data stored in memory included:
- per-line current output buffer address
- per-line current output transfer length
- per-line input shift registers
- input buffer (a shared, circular FIFO buffer)
(The 'input shift registers' were needed because UART chips did not exist yet. The sampling of the incoming serial data stream, and the conversion to parallel form, was done in discrete logic.)
There were separate receive and transmit interrupts, and half-duplex and full-duplex operation are supported in hardware. The 64-character FIFO buffer made input over-runs unlikely.
The line parameters:
- baud rates (ranging from 45 to 1200)
- character length (5-8 bits)
- output stop bits (1 or 2)
were the same for all lines, and set by jumpers; parity was computed on incoming data. A 'break' condition on the line (i.e. continuous assertion) could also be generated and detected.
Contents
Implementation
The implementation of the basic DM11-AA used a custom double system unit backplane, containing multiple cards; a flat cable connected this to separate rack-mounted dual-height DM11 distribution panel backplane (which required its own independent power supply).
Modular 'line conditioning' units from the DF11 Communications Line Adapter series were installed in the distribution panel to allow support of either 20mA or EIA RS-232 serial lines. The alternative DC08CS distribution panel allowed connection to telegraph and Telex lines.
Lines could be connected to modems, provided the correct line conditioning units were installed, but modem control required a DM11-BB Modem Control Option, mounted in the main DM11 backplane along with the rest of the DM11-AA cards, and connected to the distribution panel via other flat cables which carried the modem control signals. The DM11-BB is logically a separate device from the DM11-AA, albeit one housed in the same DM11 backplane.
DM11-AA Device registers
Register | Abbreviation | Address |
---|---|---|
Status Register | DMCSR | 775000 |
Buffer Active Register | DMBAR | 775002 |
Break Status Register | DMBSR | 775004 |
Base Address Register | DMBADR | 775006 |
The Buffer Active Register has one bit per line to indicate that has output pending (described by the Current Address and Word Count tables below); the Break Status Register also has one bit per line. The Base Address Register is 8 bits wide, so the in-memory tables must start on a 0400 boundary.
The addresses shown are for the first DM11-AA11 in a system; additional ones (up to 16 total) are normally set to be at 775010, 775020, etc to 775170.
775000: Status Register (DMCSR)
TINT | TO | SOVR | TIE | Unused | DONE | RIE | MEMEX | Unused | MAINT | FHD | RENB | ||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
- TINT - Transmit Interrupt
- TO - Timeout; non-existent memory referenced
- SOVR - System Overrun; bus access not gained in time
- TIE - Transmit Interrupt Enable
- DONE - Done; input character placed in the Circular Buffer
- RIE - Receiver Interrupt Enable
- MEMEX - Memory Extension
- MAINT - Maintenance Bit; connects line 0 (only) receiver directly to transmitter
- FHD - Full/Half Duplex Select; disables receivers on lines that are transmitting
- RENB - Receiver Enable
Memory tables
The four tables of per-line data kept in main memory were:
Table | Offset (in bytes) | Size (in bytes) |
---|---|---|
Current Address | 0 | 32 |
Word Count | 040 | 32 |
Bit Assembly | 0100 | 32 |
Circular Buffer | 0200 | 128 |
The first two are for transmitting, and defined the output buffer; the last two for receiving. The format of the entries in the input buffer is:
Valid | Break | Parity | Channel | Unused | Character | ||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
The input character, which may be less than 8 bits wide, is stored right-justified.
Implementation
The DM11-AA boards (all quad, except for the Control C, which is a dual) which plugged into the DM11 backplane are:
- M7240 - Control A
- M7241 - Control B
- M7242 - Control C
- M7243 - Transmitter D
- M7244 - Transmitter E
- M7245 - Receiver
and 4 single-width, non-DM11-specific cards:
Board locations (as seen from the board insertion side of the backplane, not the wire-wrap pin side, as is common in DEC documentation) are:
Connector | ||||||
---|---|---|---|---|---|---|
Slot | A | B | C | D | E | F |
1 | UNIBUS In | M7240 | ||||
2 | M105 | M7241 | ||||
3 | Power | M405 | M782 | M782 | M7242 | |
4 | M974 Cable | M7245 | ||||
1 | M7244 | |||||
2 | M7243 | |||||
3 | Power | Reserved for DM11-BB | ||||
4 | UNIBUS Out | Reserved for DM11-BB |
(NOTE: The diagram which is the source for this table has two different cards marked as 'M7245', and no 'M7243's. So it clearly has errors; the M7243 is referred to elsewhere as the transmitter card, and the M7245 as the receiver, so the numbers are correct, but the locations might be swapped.)
Power comes in on a single-width stub card in the A3 slots (as is canonical in the PDP-11/20 generation of PDP-11s).
Further reading
- DM11 asynchronous 16-line single-speed multiplexer manual (DEC-11-HDMA-D, EK-DM11A-TM-002) - latter is available in fiche, but neither is online
- DM11 Asynchronous 16-Line Single-Speed Multiplexer Engineering Drawing Manual - not available online
- DM11-BB Modem Control Option Engineering Drawings - not available online
External links
- DM11-BB modem control option manual, (DEC-11-HDMBA-A-D) pp. 1-5
- pdp11 peripherals and interfacing handbook (1972 edition) - the DM11 is covered on pp. 141-160 of the PDF