# PDP-1

Le PDP-1 est le premier ordinateur construit par la société américaine Digital Equipment Corporation (DEC) de 1959 à 1970. Cet ordinateur est à l'origine de la culture hacker au Massachusetts Institute of Technology, à BBN et ailleurs, et fut un des premiers ordinateurs destinés à un usage interactif. Il est également célèbre pour avoir vu naître, toujours au MIT, un des premiers jeux vidéo : Spacewar!.

## Historique

La conception du PDP-1 est basée sur les ordinateurs pionniers Whirlwind I (1948), TX-0 (1955) et TX-2, conçus et construits au Lincoln Laboratory du MIT. Après avoir présenté un prototype lors d'une conférence sur les ordinateurs en décembre 1959, DEC livra le premier PDP-1 à l'entreprise Bolt, Beranek et Newman (BBN) en novembre 1960.
En septembre 1961, DEC fît don d'un PDP-1 au MIT, où il fut placé dans une pièce adjacente à celle de son prédécesseur, le TX-0, lui même en prêt à durée indéterminée au Lincoln Laboratory. Le PDP-1 y détrôna rapidement le TX-0 comme ordinateur favoris au sein de la culture hacker ("bricoleur") émergente au MIT.
À l'inverse des systèmes commerciaux d'IBM et d'UNIVAC de l'époque, le PDP-1 se démarquait en étant le premier système à être spécifiquement conçu pour un usage interactif. Son installation était simple, sans besoin de salle blanche ni de climatisation. Il fonctionnait avec du courant domestique, se lançait en quelques instants via un levier, et son matériel était accessible et documenté, favorisant l'expérimentation. Cette approche novatrice a contribué à l'émergence de la culture hacker et, ultérieurement, au mouvement Open-Source au MIT.
Le PDP-1 fut à l'origine d'une longue série d'innovations en informatique, notamment :
* le premier éditeur de texte (TECO)
* les premiers traitements de texte (Expensive Typewriter et TJ2)
* le premier débogueur interactif (DDT)
* le premier programme d'échecs crédible
* le premier jeu vidéo graphique (Spacewar)
* l'un des tout premiers systèmes d'exploitation à temps partagé (BBN Time-Sharing System)
* certaines des premières musiques jouées par ordinateur
De plus, son interpréteur LISP, l'un des premiers puis des plus influents sur son développement ultérieur, œuvrera plus tard au développement et la popularité de ce langage au sein du MIT, dont on retrouve encore aujourd'hui la présence dans Emacs et le projet GNU. De même, le logiciel IMP de l’ARPANET fût conçu, modifié et assemblé sur l’ordinateur PDP-1d de BBN à l’aide d’un assembleur modifié, conférant un rôle au PDP-1 dans les débuts de l’ARPANET.
Un total de 53 exemplaires du PDP-1 furent construits. Le prix unitaire était de 120 000 dollars de l'époque, soit environ 1 200 000€ en 2022.
Le dernier PDP-1 sorti des chaînes de production en 1969, dix ans après son introduction. Selon DEC, presque tous étaient encore en service à la fin des années 1970, principalement dans des universités. Trois exemplaires ont survécu jusqu'à nos jours et sont aujourd'hui exposés au Computer History Museum en Californie.
Un projet de restauration a permis de remettre en service l'un de ces exemplaires, qui, depuis le 1er mars 2005, fait notamment fonctionner Spacewar! en libre accès pour les visiteurs.

## Architecture

Le PDP-1 est essentiellement une version commerciale et finalisée du MIT TX-0 (1955)$^,$, lui même une version transistorisée du Whirlwind I, ordinateur parallèle 16 bits à tubes conçu en 1948.
Le PDP-1 reprend l'architecture générale du Whirlwind en lui apportant quelques améliorations, notamment l'adressage indirect et la possibilité d'appeler directement des sous-routines, et la simplifie d'autre part notamment par la suppression du compteur de décalage, remplacé par des instructions arithmétique dédiées. Du TX-0, le PDP-1 reprend l'adressage 18 bits plutôt que 16 bits, ainsi que sa conception transistorisée et modulaire, ou encore son écran cathodique vectoriel 13". Les instructions du PDP-1 sont codées sur 5 bits comme pour le Whirlwind, contre 2 à 3 bits pour le TX-0.
Le PDP-1 bénéficie des premiers progrès de miniaturisation des composants électroniques. Là où le Whirlwind occupe un étage en 1950, le TX-0 n'occupe plus qu'une salle en 1955, et le PDP-1 une simple armoire en 1960. Une miniaturisation encore relative, car après l'invention des circuits intégrés dans les années 1960, un microprocesseur de première génération tel que l'Intel 8008 (1972) fera tenir plus de transistors sur 14 mm2 que l'ensemble du PDP-1.
L'ordinateur utilise des mots de 18 bits et dispose de 4096 mots comme mémoire principale, soit 9 216 mots de 8 bits (octets), bien que le système divise en réalité un mot de 18 bits en caractères de 6 bits. La mémoire est extensible à 65 536 mots. Le temps de cycle de la mémoire à tores magnétiques est de 5,35 microsecondes, correspondant approximativement à une fréquence d'horloge de 187 kilohertz. La plupart des instructions arithmétiques prennent 10,7 microsecondes (93 458 opérations par seconde) et utilisent deux cycles mémoire : le premier pour récupérer l'instruction, le deuxième pour récupérer ou stocker le mot de données. Les nombres signés sont représentés en complément à un. Cette singularité, permettant l'économie de quelques portes logiques, sera corrigée avec son successeur, le PDP-4, qui reviendra au complément à deux.
Le PDP-1 utilise 2 700 transistors et 3 000 diodes, contre 3600 transistors et 2000 diodes pour le TX-0. Les transistors étant à l'époque très onéreux par rapport aux diodes, cela permis de réduire son coût. Le processeur est principalement construit à partir de blocs modulaires de la série DEC 1000, prédécesseurs des cartes Flip Chip. Ces cartes utilisent des transistors au germanium pouvant commuter à une vitesse évaluée à 5 MHz. Les blocs de construction du système sont installés dans plusieurs racks 19 pouces montés dans une large armoire comprenant aussi les blocs d'alimentation. Sur le devant de l'armoire figure un panneau de contrôle hexagonal contenant des interrupteurs et des témoins lumineux permettant le contrôle et la visualisation des registres du processeur. Au-dessus du panneau de contrôle se trouve un lecteur et un enregistreur de bande perforée, principal moyen de stockage du PDP-1.

### Entrée/sortie

Le PDP-1 utilise des bandes de papier perforé comme principal support de stockage. Contrairement aux cartes perforées, qui peuvent être triées et réorganisées, le ruban perforé est difficile à éditer physiquement. Cela a inspiré la création de programmes d'édition de texte tels que Expensive Typewriter et TECO.
Équipé d'imprimantes en ligne et hors ligne basées sur les machines à écrire électriques d'IBM, il est capable de produire des documents de qualité professionnelle, ce qui a également inspiré la création du premier programme de traitement de texte, en particulier TJ2.
De nombreux périphériques peuvent également être reliés à cette machine, dont :
* un écran à tube cathodique de précision ou d'« ultra-précision » (5 pouces) ;
* un crayon optique ;
* un oscilloscope ;
* un lecteur et un perforateur de cartes perforées ;
* des lecteurs de bandes magnétiques ;
* un tambour magnétique ;
* des imprimantes.
Certains de ses périphériques n'étaient pas d'origine DEC mais IBM.

### Jeu d'instructions

Le PDP-1 est une machine à accumulateur, ce qui signifie que toutes les instructions arithmétiques l'adressent implicitement. Les autres registres sont typiques : pointeur de programme (PC - Program Counter), registre d'entrée/sortie, registre d'état, etc.
Pour certaines instructions (décalage, rotation), le registre d'entrée est considéré comme contigu à l'accumulateur (à sa droite).
Les instructions sont codées dans un de ces deux formats :
Un exemple d'instruction augmentée pourrait être SAR (Shift Accumulator Right) qui décale l'accumulateur d'autant qu'il y a de bits à 1 sur les positions 9 à 17 de l'instruction.
Comme le PDP-10 (36 bits), l'adressage indirect est « infini » : si le mot référencé par l'instruction a le bit 1 positionné, une nouvelle indirection prend place (c'est-à-dire que le champ Y (bits 6 à 17) est à nouveau déréférencé).

## Galerie

* Vue avant du PDP-1
* Une carte System Building Block, ici une porte NON hex. Le processeur est faiblement intégré et comprend plus d'une centaine de ces cartes.
* Vue intérieure. On distingue les cartes SBB enfichées de profil.
* Vue de profil