Difference between revisions of "PDP-10"
(Separate clones into real and hobbyist) |
m (→External links: +Rebuilding the world’s first gaming computer) |
||
(71 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | [[Image:PDP-10 1090.jpg| | + | [[Image:PDP-10 1090.jpg|350px|right|thumb|A PDP-10 KL10 Model 1090]] |
− | A series of large, 36-bit [[mainframe]]-like systems built by [[Digital Equipment Corporation|DEC]] | + | A series of large, [[List of 36-bit computers|36-bit]] [[word]] [[mainframe]]-like systems built by [[Digital Equipment Corporation|DEC]]. They were basically a re-implementation of the earlier [[PDP-6]] [[instruction set architecture|ISA]], whose [[hardware]] engineering had been a failure. (The machines were so similar at the programming level that PDP-6 [[object code]] could run on a PDP-10.) |
− | DEC sold 4 different generations of PDP-10 processors: the [[KA10]], the [[KI10]], the [[KL10]], and the [[KS10]]. The first three were marketed as the [[DECsystem-10]], running the [[TOPS-10]] [[operating system]]; the third was also sold as the [[DECSYSTEM-20]], running [[TOPS-20]]. (The varying capitalization was the result of a trademark infringment suit.) | + | DEC sold 4 different generations of PDP-10 processors: the [[KA10]], the [[KI10]], the [[KL10]], and the small [[KS10]]. All except the KS10 were available in [[multi-processor]] versions with two [[Central Processing Unit|CPUs]]. |
+ | |||
+ | PDP-10s were very important machines on the early [[ARPANET]] and [[Internet]], being one of the few (relatively!) cheaply available machines which could run a full [[Network Control Protocol|NCP]] and later [[TCP/IP]] stack as a multi-user environment at the time. | ||
+ | |||
+ | They still have a large following today, due in part to the innovative [[time-sharing]] [[operating system]]s written for them (especially [[Incompatible Timesharing System|ITS]]). There are several good [[simulator]]s available, notably [[SIMH]] and [[KLH10]]. | ||
+ | |||
+ | ==Hardware== | ||
+ | |||
+ | Like most mainframes, PDP-10's were composed of a number of separate free-standing units of various types (CPUs, [[main memory]], etc), connected together with [[bus]]ses carried in point-point cables. Systems could be upgraded by adding additional units, or replacing existing units with enhanced successors. | ||
+ | |||
+ | ===Busses=== | ||
+ | |||
+ | DEC-10's supported a number of different busses: there are different types of bus for main memory (the [[PDP-10 Memory Bus]]), and [[peripheral]]s. On the KA10 and KI10 models, the [[PDP-10 I/O Bus]] was provided for the latter; it allowed peripherals to [[interrupt]] the [[Central Processing Unit|CPU]], and supported [[programmed I/O]] (including block transfers). | ||
+ | |||
+ | On the KL10, an optional [[DIA20 In/Out Bus Controller]] could also be attached, to provide a KA10/KI10 compatible I/O bus. However, by the KL10 era, most low-speed peripherals were connected to [[front end]] computers, always DEC [[minicomputer]]s, which allowed the production of PDP-10-specific versions of all those devices to be dispensed with. | ||
+ | |||
+ | The KS10, which was ''sui generis'', had its own custom memory bus, which appeared only on the main [[backplane]]. For I/O, it used the [[UNIBUS]] and (via [[RH11 MASSBUS controller|RH11]]'s) the [[MASSBUS]]. | ||
+ | |||
+ | ===Channels=== | ||
+ | |||
+ | For [[Direct Memory Access|DMA]], [[mass storage]] peripherals connected directly to memories (PDP-10 memories are generally [[multi-port memory|multi-port]]). | ||
+ | |||
+ | In the KA10 and KI10, high-speed mass storage [[device controller]]s generally connected to both i) a [[channel]], the [[DF10 Data Channel]], which was attached to an [[PDP-10 Memory Bus|external memory bus]], and ii) the PDP-10 I/O Bus. The CPU controlled the channel via the device controller. This setup was used to connect mass storage controllers, such as: | ||
+ | |||
+ | * [[RP10 disk controller]] - [[RP01 disk drive|RP01]], [[RP02 disk drive|RP02]] and [[RP03 disk drive]]s | ||
+ | * RC10 disk/drum system - RD10 [[fixed-head disk]], RM10B [[drum]] | ||
+ | * [[TM10 Magnetic Tape Control]] - [[TU10 magtape drive|TU10]] and others | ||
+ | |||
+ | The [[RH10 MASSBUS controller]] (which appeared toward the end of the KI10 period), for MASSBUS mass storage devices, was similarly connected (to a DF10 channel, and the I/O bus). On the KL10, up to 8 [[RH20 MASSBUS controller]]s, which similarly supported mass storage devices, could be connected to the system. | ||
+ | |||
+ | ===Devices=== | ||
+ | |||
+ | On machines with an I/O bus, other optional devices (the [[paper tape]] reader and punch, and console [[asynchronous serial line]], were generally standard), which connected to the I/O bus, included: | ||
+ | |||
+ | * [[TD10 DECtape Control]] - [[TU55 DECtape Transport|TU55]] | ||
+ | * BA10 Hardcopy Control - LP10 line [[printer]], XY10 [[plotter]], CR10 [[punched card|card]] reader, CP10 card punch | ||
+ | * DC10 asynchronous serial line controller | ||
+ | * DS10 [[synchronous serial line]] controller | ||
+ | |||
+ | ===Front ends=== | ||
+ | |||
+ | PDP-10's made use of front end computers from an early stage. | ||
+ | |||
+ | The [[DA10 Twelve- and Eighteen-Bit Computer Interface]], which connected to the I/O bus, allowed a computer such as a [[PDP-8/I]] to exchange data with a PDP-10. The DC68A Data Communication System uses a DA10 to communicate with a PDP-8/I which has a DC08 Serial Line Multiplexer to interface with up to 128 asynchronous serial lines. | ||
+ | |||
+ | The [[DL10 PDP-11 Data Link|DL10]], connected to both an external memory bus and the I/O bus, allowed the PDP-10 CPU to control up to four [[PDP-11]]'s. The DC75 Synchronous Communication Multiplexer uses a DL10 to communicate with a [[PDP-11/20]] which has one or more [[DS11 Multiple Line Synchronous Interface]]s to interface with 8 or more (depending on the configuration) [[synchronous serial line]]s. | ||
+ | |||
+ | On the KL10, up to 4 [[DTE20 Ten-Eleven Interface]]s, each of which allowed the connection of one PDP-11, could be attached. (One PDP-11, the 'master', a [[PDP-11/40]], would [[bootstrap]] the KL10, including loading the [[microcode]]; it could also be used for other 'normal' front end activities, such as driving groups of asynchronous serial lines, providing [[DECtape]]s, etc.) | ||
+ | |||
+ | ==Software== | ||
+ | |||
+ | The first three generations of PDP-10's were marketed as the [[DECsystem-10]], running the [[TOPS-10]] [[operating system]]; the third was also sold as the [[DECSYSTEM-20]], running [[TOPS-20]]. (The varying capitalization was allegedly the result of a trademark infringment suit.) | ||
Two other very important operating systems also ran on PDP-10's: MIT's [[Incompatible Timesharing System|ITS]] (a very advanced system, from whence came [[EMACS]], and much more besides), and [[TENEX]], which DEC later turned into TOPS-20. | Two other very important operating systems also ran on PDP-10's: MIT's [[Incompatible Timesharing System|ITS]] (a very advanced system, from whence came [[EMACS]], and much more besides), and [[TENEX]], which DEC later turned into TOPS-20. | ||
+ | [[WAITS]] was created at [[Stanford Artificial Intelligence Laboratory|SAIL]] and also ran at two other sites. | ||
+ | |||
+ | ==Others== | ||
[[Image:DECsystem-10 ad.jpg|150px|left|thumb|PDP-10 ad]] | [[Image:DECsystem-10 ad.jpg|150px|left|thumb|PDP-10 ad]] | ||
− | PDP- | + | The 36-bit line was cancelled by DEC many times. In the beginning, the PDP-6 was difficult to manufacture and maintain, and only 23 were sold; it was cancelled not long after its introduction. However, it made a comeback as the PDP-10, which was a success. At the end, the PDP-10's uncertain future allowed a number of small vendors to sell PDP-10 'clones'. |
+ | |||
+ | ===Cancelled DEC projects=== | ||
− | + | * KXF10 "Dolphin", cancelled around 1978. | |
+ | * KT20 "Minnow", cancelled around 1979. | ||
+ | * KC10 "Jupiter", cancelled 1983. | ||
+ | * KD10 | ||
− | == | + | ===Clones=== |
− | + | Two PDP-10 clones were built at [[Xerox PARC]], since that was easier than trying to convince [[Xerox]] top management to allow the purchase of a relatively expensive machine from a direct competitor. | |
− | * [[Foonly]]: [[F-1]], F2, F3, F4, F5 (unfinished) | + | |
+ | * [[MAXC]] | ||
+ | |||
+ | ===Commercial=== | ||
+ | |||
+ | * [[Foonly]]: [[Foonly F-1|F-1]], F2, F3, F4, F5 (unfinished) | ||
* Systems Concepts: SC-30M, SC-40 | * Systems Concepts: SC-30M, SC-40 | ||
+ | * Tymshare: System 26, System 26KL. | ||
* CompuServe: JRG-1 (unfinished) | * CompuServe: JRG-1 (unfinished) | ||
* XKL: TOAD-1, TOAD-2 | * XKL: TOAD-1, TOAD-2 | ||
− | ==Hobbyist recreations== | + | ===Hobbyist recreations=== |
+ | |||
+ | * David Conroy: [http://www.fpgaretrocomputing.org/pdp10x/ PDP-10/X] | ||
+ | * Neil Franklin: [http://neil.franklin.ch/Projects/PDP-10/ (unfinished)] | ||
+ | * Rob Doyle: [https://github.com/KS10FPGA/KS10FPGA KS10 FPGA] | ||
+ | * David Bridgham: [http://pdp10.froghouse.org/ KV10 (in progress)] | ||
+ | * Angelo Papenhoff: [https://github.com/aap/fpdpga FPDPGA], PDP-6 and KA10 FPGA. | ||
+ | |||
+ | ==Software simulators== | ||
+ | |||
+ | * S W Galley: [http://dl.acm.org/citation.cfm?id=803947 virtual machine PDP-10] | ||
+ | * Megan Gentry: sim10 | ||
+ | * Stu Grossman: [http://github.com/brouhaha/kx10 kx10] | ||
+ | * Ken Harrenstien: [http://github.com/PDP-10/klh10 KLH10] | ||
+ | * Eric Smith: (unfinished) | ||
+ | * Daniel Seagraves: e10 | ||
+ | * Tim Stark: [http://ts10.sourceforge.net/ ts10], [http://github.com/fsword7/mse MSE] | ||
+ | * Bob Supnik: KS10 simulator for [http://github.com/simh/simh SIMH]. | ||
+ | * Richard Cornwell: [http://github.com/rcornwell/sims PDP-6, KA10, KI10, and KL10 simulators for SIMH] | ||
+ | * Angelo Papenhoff: [http://github.com/aap/pdp6 PDP-6 simulator] | ||
+ | * Bruce Baumgart: [http://www.saildart.org/j5/index.html WAITS reenactment] | ||
+ | * Jeff Parsons: [http://github.com/jeffpar/pcjs PCjs] | ||
+ | * Mark Garrett: [http://github.com/gcsgithub/titan TITAN] | ||
+ | * Paul Nankervis: [https://github.com/paulnank/nankervis-pdp10-js nankervis-pdp10-js] | ||
+ | |||
+ | ==See also== | ||
+ | |||
+ | * [[:Category:PDP-10 Systems|PDP-10 Systems]] | ||
+ | * [[:Category:PDP-10 Processors|PDP-10 Processors]] | ||
+ | * [[PDP-10 memories]] | ||
+ | * [[:Category:PDP-10 Peripherals|PDP-10 Peripherals]] | ||
+ | * [[DEC indicator panel]] | ||
+ | * [[PDP-10 core images]] | ||
+ | |||
+ | ==Further reading== | ||
− | * | + | * [http://www.bitsavers.org/pdf/dec/pdp10/KA10/DEC-10-HIFB-D_InterfaceManual_May68.pdf PDP-10 Interface Manual] (DEC-10-HIFB-D) - Covers all the busses |
− | |||
− | |||
==External links== | ==External links== | ||
+ | * [http://bitsavers.org/pdf/dec/pdp10/ Bitsavers PDP-10 documents] | ||
+ | ** [http://www.bitsavers.org/pdf/dec/pdp10/KI10/DECsystem-10_Technical_Summary_1971.pdf DECsystem-10 Technical Summary] | ||
+ | * [http://www.bitsavers.org/www.computer.museum.uq.edu.au/pdf/SB100-50-4-67%20PDP-10%20(150dpi).pdf PDP-10] - very early brochure | ||
+ | * [https://archive.computerhistory.org/resources/access/text/2023/07/102737607-05-19-acc.pdf DECsystem-10 Technical Summary/DECSYSTEM-20 Technical Summary] | ||
+ | * [http://bitsavers.org/www.computer.museum.uq.edu.au/pdf/DEC-10-XSRMA-A-D%20DECsystem10%20System%20Reference%20Manual.pdf decsystem-10 System Reference Manual] (DEC-10-XSRMA-A-D) - lengthy hardware documentation for programmers | ||
+ | * [http://www.bitsavers.org/pdf/stanford/sail/SAILON-75A_DECsystem-1020_Hardware_Manual_DEC-10-XSRMA-D_Jan77.pdf DECsystem-10/20 Hardware Manual] - contains ''Extended Instruction Set'' supplement to the PDP-10 Hardware Reference Manual on pp. 242-327 of the PDF | ||
+ | * [https://gordonbell.azurewebsites.net/CGB%20Files/Evolution%20of%20DECsystem%2010%20ACM%207801%20c.pdf The Evolution of the DECsystem 10] - [[CACM]] paper that covers the evolution from the PDP-6 through the KL10 | ||
+ | <!-- https://dl.acm.org/doi/pdf/10.1145/359327.359335 - another copy --> | ||
+ | * [https://www.ultimate.com/phil/pdp10/ Phil's PDP10 Miscellany Page] - an incredible collection of stuff | ||
+ | ** [https://www.ultimate.com/phil/pdp10/20yrs/index.html Twenty Years of 36-bit Computing with Digital 1964-1984] | ||
+ | ** [https://www.ultimate.com/phil/pdp10/Fast-ACs Life in the Fast AC's] - amusing personal history of PDP-10's | ||
+ | ** [https://www.ultimate.com/phil/pdp10/10periphs 10periphs] - list of PDP-10 peripherals, other stuff | ||
+ | * [http://pdp10.nocrew.org nocrew's PDP-10 stuff] | ||
+ | ** [http://pdp10.nocrew.org/docs/pdp6-ka10.diffs.txt PDP-6/KA10 Differences] | ||
+ | ** [http://pdp10.nocrew.org/gcc/ PDP-10 support for GCC] | ||
+ | * [https://sites.google.com/site/mthompsonorg/Home/pdp-10/pdp-10-serial-numbers PDP-10 Serial Numbers] - lists all still-extant PDP-10's | ||
+ | * [http://www.inwap.com/pdp10/models.txt PDP-10 Models] | ||
+ | * [http://www.brouhaha.com/~eric/retrocomputing/pdp-10/models.html PDP-10 Model Information] | ||
+ | * [http://www.execulink.com/~dstalk/pdp-10_io.pdf PDP-10 I/O Structure] | ||
+ | * [https://engblg.livingcomputers.org/index.php/2020/04/17/the-xkl-toad-1-system/ The XKL Toad-1 System] - includes a decent history of the PDP-10 | ||
* [http://www.avanthar.com/healyzh/decemulation/pdp10emu.html The DEC PDP-10 Emulation Webpage] | * [http://www.avanthar.com/healyzh/decemulation/pdp10emu.html The DEC PDP-10 Emulation Webpage] | ||
− | * [ | + | * [https://www.theguardian.com/technology/article/2024/jun/06/reinventing-the-pdp-10 Rebuilding the world’s first gaming computer] - interesting article about the PiDP-10 |
− | [[Category: | + | [[Category: DEC Architectures]] |
− | [[Category:DEC | + | [[Category: PDP-10s]] |
+ | [[Category: DEC Mainframes]] | ||
+ | [[Category: 36-bit Computers]] |
Latest revision as of 03:38, 28 July 2024
A series of large, 36-bit word mainframe-like systems built by DEC. They were basically a re-implementation of the earlier PDP-6 ISA, whose hardware engineering had been a failure. (The machines were so similar at the programming level that PDP-6 object code could run on a PDP-10.)
DEC sold 4 different generations of PDP-10 processors: the KA10, the KI10, the KL10, and the small KS10. All except the KS10 were available in multi-processor versions with two CPUs.
PDP-10s were very important machines on the early ARPANET and Internet, being one of the few (relatively!) cheaply available machines which could run a full NCP and later TCP/IP stack as a multi-user environment at the time.
They still have a large following today, due in part to the innovative time-sharing operating systems written for them (especially ITS). There are several good simulators available, notably SIMH and KLH10.
Contents
Hardware
Like most mainframes, PDP-10's were composed of a number of separate free-standing units of various types (CPUs, main memory, etc), connected together with busses carried in point-point cables. Systems could be upgraded by adding additional units, or replacing existing units with enhanced successors.
Busses
DEC-10's supported a number of different busses: there are different types of bus for main memory (the PDP-10 Memory Bus), and peripherals. On the KA10 and KI10 models, the PDP-10 I/O Bus was provided for the latter; it allowed peripherals to interrupt the CPU, and supported programmed I/O (including block transfers).
On the KL10, an optional DIA20 In/Out Bus Controller could also be attached, to provide a KA10/KI10 compatible I/O bus. However, by the KL10 era, most low-speed peripherals were connected to front end computers, always DEC minicomputers, which allowed the production of PDP-10-specific versions of all those devices to be dispensed with.
The KS10, which was sui generis, had its own custom memory bus, which appeared only on the main backplane. For I/O, it used the UNIBUS and (via RH11's) the MASSBUS.
Channels
For DMA, mass storage peripherals connected directly to memories (PDP-10 memories are generally multi-port).
In the KA10 and KI10, high-speed mass storage device controllers generally connected to both i) a channel, the DF10 Data Channel, which was attached to an external memory bus, and ii) the PDP-10 I/O Bus. The CPU controlled the channel via the device controller. This setup was used to connect mass storage controllers, such as:
- RP10 disk controller - RP01, RP02 and RP03 disk drives
- RC10 disk/drum system - RD10 fixed-head disk, RM10B drum
- TM10 Magnetic Tape Control - TU10 and others
The RH10 MASSBUS controller (which appeared toward the end of the KI10 period), for MASSBUS mass storage devices, was similarly connected (to a DF10 channel, and the I/O bus). On the KL10, up to 8 RH20 MASSBUS controllers, which similarly supported mass storage devices, could be connected to the system.
Devices
On machines with an I/O bus, other optional devices (the paper tape reader and punch, and console asynchronous serial line, were generally standard), which connected to the I/O bus, included:
- TD10 DECtape Control - TU55
- BA10 Hardcopy Control - LP10 line printer, XY10 plotter, CR10 card reader, CP10 card punch
- DC10 asynchronous serial line controller
- DS10 synchronous serial line controller
Front ends
PDP-10's made use of front end computers from an early stage.
The DA10 Twelve- and Eighteen-Bit Computer Interface, which connected to the I/O bus, allowed a computer such as a PDP-8/I to exchange data with a PDP-10. The DC68A Data Communication System uses a DA10 to communicate with a PDP-8/I which has a DC08 Serial Line Multiplexer to interface with up to 128 asynchronous serial lines.
The DL10, connected to both an external memory bus and the I/O bus, allowed the PDP-10 CPU to control up to four PDP-11's. The DC75 Synchronous Communication Multiplexer uses a DL10 to communicate with a PDP-11/20 which has one or more DS11 Multiple Line Synchronous Interfaces to interface with 8 or more (depending on the configuration) synchronous serial lines.
On the KL10, up to 4 DTE20 Ten-Eleven Interfaces, each of which allowed the connection of one PDP-11, could be attached. (One PDP-11, the 'master', a PDP-11/40, would bootstrap the KL10, including loading the microcode; it could also be used for other 'normal' front end activities, such as driving groups of asynchronous serial lines, providing DECtapes, etc.)
Software
The first three generations of PDP-10's were marketed as the DECsystem-10, running the TOPS-10 operating system; the third was also sold as the DECSYSTEM-20, running TOPS-20. (The varying capitalization was allegedly the result of a trademark infringment suit.)
Two other very important operating systems also ran on PDP-10's: MIT's ITS (a very advanced system, from whence came EMACS, and much more besides), and TENEX, which DEC later turned into TOPS-20. WAITS was created at SAIL and also ran at two other sites.
Others
The 36-bit line was cancelled by DEC many times. In the beginning, the PDP-6 was difficult to manufacture and maintain, and only 23 were sold; it was cancelled not long after its introduction. However, it made a comeback as the PDP-10, which was a success. At the end, the PDP-10's uncertain future allowed a number of small vendors to sell PDP-10 'clones'.
Cancelled DEC projects
- KXF10 "Dolphin", cancelled around 1978.
- KT20 "Minnow", cancelled around 1979.
- KC10 "Jupiter", cancelled 1983.
- KD10
Clones
Two PDP-10 clones were built at Xerox PARC, since that was easier than trying to convince Xerox top management to allow the purchase of a relatively expensive machine from a direct competitor.
Commercial
- Foonly: F-1, F2, F3, F4, F5 (unfinished)
- Systems Concepts: SC-30M, SC-40
- Tymshare: System 26, System 26KL.
- CompuServe: JRG-1 (unfinished)
- XKL: TOAD-1, TOAD-2
Hobbyist recreations
- David Conroy: PDP-10/X
- Neil Franklin: (unfinished)
- Rob Doyle: KS10 FPGA
- David Bridgham: KV10 (in progress)
- Angelo Papenhoff: FPDPGA, PDP-6 and KA10 FPGA.
Software simulators
- S W Galley: virtual machine PDP-10
- Megan Gentry: sim10
- Stu Grossman: kx10
- Ken Harrenstien: KLH10
- Eric Smith: (unfinished)
- Daniel Seagraves: e10
- Tim Stark: ts10, MSE
- Bob Supnik: KS10 simulator for SIMH.
- Richard Cornwell: PDP-6, KA10, KI10, and KL10 simulators for SIMH
- Angelo Papenhoff: PDP-6 simulator
- Bruce Baumgart: WAITS reenactment
- Jeff Parsons: PCjs
- Mark Garrett: TITAN
- Paul Nankervis: nankervis-pdp10-js
See also
- PDP-10 Systems
- PDP-10 Processors
- PDP-10 memories
- PDP-10 Peripherals
- DEC indicator panel
- PDP-10 core images
Further reading
- PDP-10 Interface Manual (DEC-10-HIFB-D) - Covers all the busses
External links
- Bitsavers PDP-10 documents
- PDP-10 - very early brochure
- DECsystem-10 Technical Summary/DECSYSTEM-20 Technical Summary
- decsystem-10 System Reference Manual (DEC-10-XSRMA-A-D) - lengthy hardware documentation for programmers
- DECsystem-10/20 Hardware Manual - contains Extended Instruction Set supplement to the PDP-10 Hardware Reference Manual on pp. 242-327 of the PDF
- The Evolution of the DECsystem 10 - CACM paper that covers the evolution from the PDP-6 through the KL10
- Phil's PDP10 Miscellany Page - an incredible collection of stuff
- Twenty Years of 36-bit Computing with Digital 1964-1984
- Life in the Fast AC's - amusing personal history of PDP-10's
- 10periphs - list of PDP-10 peripherals, other stuff
- nocrew's PDP-10 stuff
- PDP-10 Serial Numbers - lists all still-extant PDP-10's
- PDP-10 Models
- PDP-10 Model Information
- PDP-10 I/O Structure
- The XKL Toad-1 System - includes a decent history of the PDP-10
- The DEC PDP-10 Emulation Webpage
- Rebuilding the world’s first gaming computer - interesting article about the PiDP-10