Difference between revisions of "PDP-10"

From Computer History Wiki
Jump to: navigation, search
m (Added missing space)
m (External links: +Rebuilding the world’s first gaming computer)
 
(65 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Image:PDP-10 1090.jpg|300px|rightt|thumb|A PDP-10 1090]]
+
[[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]]; they were basically a re-implementation of the earlier [[PDP-6]] architecture, whose engineering had been a failure. (The machines were so similar at the programming level that PDP-6 code could run on a PDP-10.)
+
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-10s were very important machines on the early 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.
+
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.
  
They still have a large following today. There are several good [[simulator]]s available, notably [[SIMH]] and [[KLH10]].
+
* [[MAXC]]
  
==Commercial clones==
+
===Commercial===
  
* Xerox PARC: [[MAXC]]
 
 
* [[Foonly]]: [[Foonly F-1|F-1]], F2, F3, F4, F5 (unfinished)
 
* [[Foonly]]: [[Foonly F-1|F-1]], F2, F3, F4, F5 (unfinished)
 
* Systems Concepts: SC-30M, SC-40
 
* Systems Concepts: SC-30M, SC-40
Line 22: Line 86:
 
* XKL: TOAD-1, TOAD-2
 
* XKL: TOAD-1, TOAD-2
  
==Hobbyist recreations==
+
===Hobbyist recreations===
  
 
* David Conroy: [http://www.fpgaretrocomputing.org/pdp10x/ PDP-10/X]
 
* David Conroy: [http://www.fpgaretrocomputing.org/pdp10x/ PDP-10/X]
Line 28: Line 92:
 
* Rob Doyle: [https://github.com/KS10FPGA/KS10FPGA KS10 FPGA]
 
* Rob Doyle: [https://github.com/KS10FPGA/KS10FPGA KS10 FPGA]
 
* David Bridgham: [http://pdp10.froghouse.org/ KV10 (in progress)]
 
* David Bridgham: [http://pdp10.froghouse.org/ KV10 (in progress)]
* Angelo Papenhoff: [https://github.com/aap/pdp6 FPDPGA-6]
+
* Angelo Papenhoff: [https://github.com/aap/fpdpga FPDPGA], PDP-6 and KA10 FPGA.
  
 
==Software simulators==
 
==Software simulators==
Line 40: Line 104:
 
* Tim Stark: [http://ts10.sourceforge.net/ ts10], [http://github.com/fsword7/mse MSE]
 
* Tim Stark: [http://ts10.sourceforge.net/ ts10], [http://github.com/fsword7/mse MSE]
 
* Bob Supnik: KS10 simulator for [http://github.com/simh/simh SIMH].
 
* Bob Supnik: KS10 simulator for [http://github.com/simh/simh SIMH].
* Richard Cornwell: KA10 and KI10 simulators for 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]
 
* Angelo Papenhoff: [http://github.com/aap/pdp6 PDP-6 simulator]
 
* Bruce Baumgart: [http://www.saildart.org/j5/index.html WAITS reenactment]
 
* Bruce Baumgart: [http://www.saildart.org/j5/index.html WAITS reenactment]
 
* Jeff Parsons: [http://github.com/jeffpar/pcjs PCjs]
 
* Jeff Parsons: [http://github.com/jeffpar/pcjs PCjs]
 
* Mark Garrett: [http://github.com/gcsgithub/titan TITAN]
 
* 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]
* [http://pdp10.nocrew.org/gcc/ PDP-10 support for GCC]
+
* [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:Computers]]
+
[[Category: DEC Architectures]]
[[Category:DEC Computer Systems]]
+
[[Category: PDP-10s]]
 +
[[Category: DEC Mainframes]]
 +
[[Category: 36-bit Computers]]

Latest revision as of 03:38, 28 July 2024

A PDP-10 KL10 Model 1090

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.

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:

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:

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 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 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

PDP-10 ad

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

Software simulators

See also

Further reading

External links