Difference between revisions of "Floating device address space"
m (→Further reading: +PDP-11 Architecture Handbook) |
(probable explanation for base units) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 56: | Line 56: | ||
| 23 || [[ISB11]] || 010 | | 23 || [[ISB11]] || 010 | ||
|- | |- | ||
− | | | + | | 24 || [[DMV11 Synchronous Controller|DMV11]] || 020 |
+ | |- | ||
+ | | 25 || [[Digital Ethernet UNIBUS Network Adapter|DEUNA]] || 010 | ||
+ | |- | ||
+ | | 26 || [[UDA50 Disk Controller|UDA50]] || 04 || Only extra | ||
+ | |- | ||
+ | | 27 || [[DMF32 Multi-Function Communications Interface|DMF32]] || 040 | ||
+ | |- | ||
+ | | 28 || KMS11 || 20 | ||
+ | |- | ||
+ | | 29 || [[VS100]] || 20 | ||
+ | |- | ||
+ | | 30 || [[TU81 magtape drive|TU81]] || 04 || Only extra | ||
|} | |} | ||
+ | |||
+ | It will be noticed that the types with an 'extra unit' annotation are all [[mass storage]] devices, generally [[disk]]s. This probably means that the 'base' unit is assigned a fixed address, so that [[bootstrap]]s do not have to contain the lengthy algorithm to deal with floating addresses in order to boot from them. | ||
==See also== | ==See also== |
Latest revision as of 14:44, 8 February 2023
The floating device address space is a block of address space in the I/O page of the UNIBUS (and later the QBUS) used to hold the control registers of peripherals. Originally, each specific peripheral was assigned a fixed address for its registers; once the number of different device types became large, circa 1975, this was no longer feasible (or scalable), and the 'floating' approach was adopted instead.
In this, a block of address space (on the UNIBUS, from 0760010 to 0763776) is allocated for 'floating' devices. Within that block, devices are assigned in a fixed order, with all the devices of any type in a contiguous group. There is an empty minimum-sized group for each type of which there are no devices of that type present, and a gap between each group of devices (to mark the end of each group). (Each actual group must start on an address of the required modulus; e.g. if there is one DJ11 and one DH11, the DJ11 would be at 0760010, the 'end of DJ11s gap' would be at 0760020, the DH11 could not be at 0760030, but would have to be at 0760040.)
Floating devices, in assignment order:
Rank | Device | Size (modulus) |
Comment |
---|---|---|---|
1 | DJ11 | 010 | |
2 | DH11 | 020 | |
3 | DQ11 | 010 | |
4 | DU11 | 010 | |
5 | DUP11 | 010 | |
6 | LK11 | 010 | |
7A | DMC11 | 010 | |
7B | DMR11 | 010 | |
8 | DZ11 | 010 | |
9 | KMC11 | 010 | |
10 | LPP11 | 010 | |
11 | VMV21 | 010 | |
12 | VMV31 | 020 | |
13 | DWR70 | 010 | |
14 | RL11 | 010 | Only extra |
15 | LPA11 | 020 | Only extra |
16 | KW11-C | 010 | |
17 | Reserved | 010 | |
18 | RX11 | 010 | Only extra |
19 | DR11-W | 010 | |
20 | DR11-B | 010 | After second |
21 | DMP11 | 010 | |
22 | DPV11 | 010 | |
23 | ISB11 | 010 | |
24 | DMV11 | 020 | |
25 | DEUNA | 010 | |
26 | UDA50 | 04 | Only extra |
27 | DMF32 | 040 | |
28 | KMS11 | 20 | |
29 | VS100 | 20 | |
30 | TU81 | 04 | Only extra |
It will be noticed that the types with an 'extra unit' annotation are all mass storage devices, generally disks. This probably means that the 'base' unit is assigned a fixed address, so that bootstraps do not have to contain the lengthy algorithm to deal with floating addresses in order to boot from them.
See also
Further reading
- PDP-11 Architecture Handbook (not online); 'Floating CSR Address Devices', in Appendix A
External links
- peripherals handbook (1981-82) - Appendix D, 'Floating CSR Address Devices' (pg. 494 of the PDF]