CG Bell, WD Strecker, «Computer What Have We Learned from the PDP-11», The 3rd Symposium Annual on Computer Architecture Conference Proceedings, pp. l-14, 1976.Cet article que j'ai sélectionné aujourd'hui est une rétrospective de la conception informatique. Il s'agit de l'un des nombreux articles de Gordon Bell avec divers co-auteurs décrivant le développement, la croissance et le remplacement soudain de la gamme de produits cultes de l'entreprise, les mini-ordinateurs PDP-11.
- CG Bell, R. Cady, H. McFarland, B. Delagi, J. O'Laughlin, R. Noonan et W. Wulf, «A New Architecture for Mini-Computers - The DEC PDP-11», Proceedings of the Sprint Joint Conférence informatique, pp. 657-675, AFIPS Press, 1970.
- CG Bell, WD Strecker, «Computer What Have We Learned from the PDP-11», The 3rd Symposium Annual on Computer Architecture Conference Proceedings, pp. l-14, 1976.
- WD Strecker, «VAX-11/780: Une extension d'adresse virtuelle pour la famille DEC PDP-11», Actes de la National Computer Conference, pp. 967-980, AFIPS Press, 1978.
- CG Bell, WD Strecker, «Rétrospective: qu'avons-nous appris du PDP-11 - ce que nous avons appris de VAX et Alpha», Actes du 25e Symposium international annuel sur l'architecture informatique, pp. 6-10, 1998.
Cette année, nous célébrons le 60e anniversaire de la fondation de l'entreprise qui a fabriqué le PDP-11. 40 ans se sont écoulés depuis la rédaction de cet article, et j'ai pensé qu'il serait intéressant de rétrospecter les articles de Bell de notre point de vue moderne.

Qu'est-ce que Digital Equipment Corporation?
Pour imaginer le moment où l'article a été écrit, nous devons d'abord parler un peu de la société qui a lancé le PDP-11, Digital Equipment Corporation de Maynard, Massachusetts. Mieux connu sous le nom de DEC.

DEC a été fondée en 1957 par Ken Olsen et Harlan Anderson. Olsen et Anderson ont travaillé ensemble au Lincoln Laboratory du Massachusetts Institute of Technology, où ils ont remarqué que les étudiants faisaient la queue pendant des heures pour utiliser
TX-0 , un ordinateur interactif expérimental développé par Wes Clark
1Clark a continué à développer TX-0 dans TX-2 et a ensuite rejoint DEC en tant que responsable de LINC

C'est TX-0.

Comparons-le à quelque chose comme l'IBM 704, un ordinateur de l'époque que les étudiants ignoraient le plus souvent.
2Après la présentation, quelqu'un a suggéré que l'antipathie des étudiants envers IBM pourrait être basée sur un manque de budget pour le temps informatique de ce système.
Ce qu'Olsen et Anderson ont découvert, c'est que le désir d'utiliser un ordinateur interactif était si fort qu'il y avait un marché pour les «petits» ordinateurs conçus pour ce rôle.

DEC a initialement présenté le PDP-1, une version commerciale efficace du TX-0.
Amendement : Michael Cheponis, chef du projet de récupération du PDP-1, m'a gentiment écrit ce qui suit:
Whirlwind et PDP-1 ont un code de fonctionnement à 5 bits, TX-0 a commencé avec un code de fonctionnement à 2 ou 3 bits, mais cette valeur a augmenté avec l'augmentation de la taille de la mémoire de TX-2. Une comparaison de l'ordre des codes PDP-1 et Whirlwind révèle que PDP-1 est une version moins chère et quelque peu améliorée de l'architecture Whirlwind.
- Amélioration: ajout d'un adressage indirect.
- Réduction des coûts: le «registre en direct» est supprimé et l'instruction d'appel de sous-programme est ajoutée, et le compteur de décalage est supprimé car les instructions de multiplication et de division entières sont remplacées par les instructions de l'étape de multiplication et de l'étape de division, qui effectuent un décalage d'un chiffre. La plus forte baisse du prix du PDP-1 par rapport à Whirlwind était due à un changement dans la conception de la logique et du design.
Le contraste entre le PDP-1 et l'IBM 704 était grand, mais plusieurs années auparavant, de petits ordinateurs interactifs lents, tels que le Librascope LGP-30 et le Bendix G-15, étaient déjà apparus et ils étaient vendus en quantités similaires.
Il convient également de noter que le nom PDP est l'acronyme de «Programmed Data Processor», car les ordinateurs à l'époque signifiaient des machines grandes, complexes et coûteuses, et les capital-risqueurs pourraient ne pas prendre en charge DEC s'ils produisaient des «ordinateurs»
3L'un des premiers jeux informatiques, "
Spacewar " de Steve Russell, a été écrit pour le PDP-1
Suite au succès du PDP-1, DEC a proposé plusieurs familles d'ordinateurs, dont beaucoup ont été conçus, au moins en partie, par Gordon Bell.
Présentation
Un ordinateur n'est pas complètement déterminé par l'architecture; il reflète les aspects technologiques, économiques et humanitaires de l'époque et du lieu où il a été conçu et construit. Un ordinateur fini est un produit de son époque.Dès le début, Bell nous fait savoir que pour la réussite de tout projet informatique, vous n'avez pas besoin de construire un meilleur ordinateur abstrait au monde, mais de construire le bon ordinateur, en tenant compte du contexte.
Dans ce chapitre, nous examinerons le PDP-11: les objectifs de création, l'architecture, les diverses implémentations et les personnes qui l'ont créé. Nous étudierons sa conception, en commençant par les spécifications de l'architecture, et examinerons comment elles ont été influencées par la technologie, l'organisation du développement, les ventes, l'application, l'organisation de la production et la nature des utilisateurs finaux.À cette époque, en 1976, Bell était à la tête du développement du DEC pendant près de quatre ans. Il est clair qu'il considère le succès du PDP-11 dans un contexte de marché plus large, dont les besoins étaient censés satisfaire, et qui a par la suite influencé l'évolution de l'ensemble de la famille PDP-11.
Vieillie dans l'esprit des paroles de Bell, cette présentation met l'accent sur deux aspects de l'article, la technologie et les gens.
Fondamentaux: les pensées derrière la conception
Bell part de cette constatation: de
par sa nature, l'ingénierie informatique est orientée vers l'objectif de création du produit final. Il est donc difficile d'y construire des plans à long terme.Ce sont des principes agiles. À ce moment-là. 25 ans avant Snowbird et rédaction du manifeste agile. Quand il a été écrit, DEC n'était plus une startup qui luttait pour son existence, c'était une entreprise mature avec plusieurs gammes de produits réussies sur le marché, et Bell a déclaré que la nécessité de libérer un produit minimum demandé (produit minimum viable) était plus importante que toutes les autres à long terme plans.
Comme IBM / 360, le PDP-11 n'a pas été développé comme un modèle d'ordinateur unique, mais comme une série de modèles, tandis que le logiciel écrit pour le petit PDP-11 sera compatible avec le grand.
«Le terme« architecture »est utilisé ici pour décrire les attributs du système, tel que le programmeur le voit, c'est-à-dire "une structure conceptuelle et un comportement fonctionnel, et non pour décrire l'organisation des flux et de la gestion des données, la conception logique et la mise en œuvre physique." - GM Amdahl GA Blaauw et FP Brooks Jr. Architecture du système IBM / 360, 1964En raison de la nature ouverte de PDP-11, tout ce qui interprète les instructions selon les spécifications du processeur est PDP-11, et DEC, dès que le marché PDP-11 s'est réchauffé, a commencé à construire des implémentations de cette architecture, ils avaient plusieurs groupes, un dont ils ont construit des ordinateurs rapides et chers, tandis que d'autres ont conçu des ordinateurs plus lents pour un prix inférieur.
Malgré son style de planification évolutif, le PDP-11 a réussi sur le marché: plus de 20 000 unités ont été vendues au cours des six années de leur commercialisation (1970-1975). Dans ce cas, la conception n'est pas si importante: une organisation marketing large et agressive, armée de logiciels pour corriger les défauts et omissions architecturaux, peut enregistrer presque n'importe quelle conception.Ici, Bell dans son article pose la question: le PDP-11 avait-il un bon design, ou avait-il simplement un avantage grâce au marketing hyperactif? Afin de répondre à sa propre question, Bell considère le produit en fonction des critères de conception que lui et ses co-auteurs ont identifiés six ans plus tôt.
Espace d'adressage
La première faiblesse des micro-ordinateurs était l'espace d'adressage limité. L'erreur la plus grave et la plus courante a été de concevoir un ordinateur qui ne dispose pas d'un espace d'adressage suffisant pour l'adressage et la gestion de la mémoire.
Les mini-ordinateurs de cette époque avaient un espace d'adressage de 12 bits, qui ne permettait d'adresser que 4096 adresses, chacune d'entre elles stockant un mot de 12 bits.
Il convient de noter que le mot «mini-ordinateur», qui est devenu plus tard la taille physique, a été initialement formé à partir de l'expression «ordinateur minimal». L'exemple canonique était PDP-8, l'ancien modèle DEC, qui ne comportait que huit instructions.

La raison de l'espace d'adressage minuscule était le prix. La mémoire était extrêmement coûteuse dans les années 60 et au début des années 70, lorsque chaque bit était constitué d'un minuscule noyau magnétique, qui était tissé dans la grille des fils de commande.
Les noyaux étaient disposés dans un panneau, dans ce cas 4096 bits chacun, qui étaient empilés pour obtenir un mot, donc 4096 mots de mémoire se composaient de 16 millions de sonneries (
ici, évidemment, une erreur dans le texte original, 4096 mots * 16 bits = 65536 sonneries environ. ), dont chacun a été, au moins en partie, assemblé à la main. Maintenant, il est clair pourquoi la mémoire est si chère.

Bell et d'autres concepteurs de PDP-11 savaient que les prix de base continueraient de baisser et que la mémoire des semi-conducteurs, bien que moins rentable à l'époque, continuerait à être moins chère sur la base d'un octet stocké. Ainsi, la quantité de mémoire que l'acheteur peut se permettre d'acheter augmentera avec le temps, car les utilisateurs ont tendance à acheter des "systèmes pour le même prix en dollars". Mais encore
PDP-11 a suivi cette mauvaise tradition de sauvegarde sur les bits d'adresse, mais elle a été sauvegardée par le principe qu'une bonne conception peut survivre à au moins un changement majeur.Même en tenant compte des prédictions des développeurs, Bell a noté que moins de deux ans se sont écoulés depuis l'introduction de l'architecture PDP-11, cela a nécessité l'inclusion d'un module de gestion de la mémoire dans l'architecture pour donner accès à un espace d'adressage 18 bits plus grand au prix d'une complexité logicielle croissante. . Quelques années plus tard, 4 autres bits ont été ajoutés.
En toute honnêteté, bien que Bell se soit reproché d'être hâtif, la tradition consistant à créer un espace d'adressage inadéquat se poursuit encore aujourd'hui. Rappelez-vous la limitation 640K dans DOS? Rappelez-vous les batailles avec himem.sys? Face à une situation où un programme 32 bits nécessite plus de 2 Go de données?
Donc, personne n'est parfait.
Pas assez de registres
La deuxième faiblesse des mini-ordinateurs était la tendance à un nombre insuffisant de registres. Cela a été corrigé dans PDP-11, qui avait huit registres 16 bits. Plus tard, six registres 32 bits ont été ajoutés pour l'arithmétique à virgule flottante. Plus de registres pourraient augmenter le temps de commutation du contexte de tâche.Il n'était pas inhabituel, même pour les ordinateurs centraux de l'époque, de ne fournir qu'un seul registre - la batterie. Si des registres supplémentaires étaient fournis, ils n'étaient utilisés que comme registres d'index, et non comme registres à usage général.
Il est également intéressant de noter la remarque de Bell selon laquelle des registres supplémentaires peuvent être gênants pour l'utilisateur. Au début des années 1970, la plus courante était de programmer des machines directement en assembleur.
Il existe une forte corrélation entre le nombre de registres dans l'architecture, le nombre de bits d'adresse et la taille de l'instruction. Tous ces facteurs entraînent une mémoire insuffisante et il était logique de bien réfléchir au système de commande.
Dans les machines Von Neumann (qui étaient pratiquement tous des ordinateurs des années 60), le programme et les données partagent le même espace d'adressage limité et un programme inefficace a gaspillé non seulement du temps informatique, mais aussi de la mémoire. Un programme lent peut être toléré, mais si le programme ne tient pas en mémoire, il est fatal, c'est-à-dire que la méthode de codage des instructions doit être aussi efficace que possible.
Examinons un cas très courant de passage d'un emplacement mémoire à un autre. Combien de bits sont nécessaires pour décrire cette opération? Voici une implémentation possible:
MOV addr addr
Vous avez besoin de 16 bits pour l'adresse source, 16 autres pour l'adresse de destination et un certain nombre de bits pour coder l'instruction MOV elle-même. Soit un total de 40 bits, ce n'est pas un multiple de 16, ce qui signifie un encodage complexe de 2,5 bits d'instructions. Cependant, que se passe-t-il si nous chargeons l'adresse dans le registre?
MOV (R0), (R1)
Dans ce cas, nous devons décrire uniquement les registres, PDP-11 a 8 registres et seulement 3 bits suffisent pour décrire le registre, plus quelques bits pour décrire l'opérateur. Une telle commande peut facilement tenir dans un mot de 16 bits et ne nécessite pas de codage complexe d'instructions de longueur variable.

En réalité, le PDP-11 utilise 6 bits par registre et 4 bits par opération si l'instruction a deux opérandes.
Pile matérielle
La troisième faiblesse des mini-ordinateurs était le manque de support matériel pour la pile. PDP-11 a implémenté un mécanisme d'auto-incrémentation et d'auto-décrémentation pour l'adresse. Cette solution est unique au PDP-11 et s'est avérée extrêmement utile. (Et cette solution a été copiée par les développeurs d'autres systèmes.)De nos jours, il est difficile d'imaginer du matériel qui n'a pas de pile, mais en fait, la pile n'est pas très importante si vous n'utilisez pas la récursivité.
La conception de PDP-11 remonte à 1969, et si nous regardons les langages de programmation de cette époque, FORTRAN et COBOL, ils ne prenaient pas en charge un appel de fonction récursif. La séquence de l'appel de fonction comprenait le stockage de l'adresse de retour dans un mot vide au début de la procédure, ce qui a rendu la récursion impossible.

PDP-11 définit le pointeur de pile tel que nous le comprenons aujourd'hui, comme un registre contrôlé par les opérations PUSH et POP, mais PDP-11 est allé plus loin et a permis à n'importe quel registre de fonctionner comme pointeur de pile en ajoutant un modificateur d'incrémentation / décrémentation automatique aux registres d'opérande.
Par exemple, une instruction:
MOV R4, -(R6)
diminuera la valeur de R6 de deux, puis stockera la valeur de R4 à l'adresse stockée dans R6. Ainsi, dans l'assembleur PDP-11, nous plaçons la valeur sur la pile. Si l'un d'entre vous a programmé pour ARM, cela devrait vous être familier.
Cela signifie qu'il n'y a pas besoin d'instructions PUSH ou POP dédiées, cela économise de l'espace d'instructions, vous permet d'utiliser n'importe quel registre comme pointeur de pile, bien que traditionnellement le pointeur de pile soit R6 et soit utilisé par l'équipement lors d'un appel de sous-programme.
Délai d'interruption
La quatrième faiblesse des mini-ordinateurs de l'époque était la prise en charge limitée des interruptions et des changements de contexte lents, et ce problème a été résolu en utilisant le contrôleur d'interruption vectorielle UNIBUS avec connexion directe des interruptions des appareils.À ce stade de la vie de DEC, presque tous ses produits avaient l'architecture PDP-10, l'ordinateur central DEC conçu pour les applications interactives, les laboratoires et le contrôle des processus. La réponse aux interruptions, le délai entre l'activation du signal d'interruption et le début du traitement d'interruption, est essentiel pour obtenir des performances en temps réel élevées.
Dans PDP-11, le périphérique qui a déclenché l'interruption fournit l'adresse du gestionnaire d'interruption. Bell écrit honnêtement à ce sujet:
Le mécanisme principal est très rapide, il ne nécessite que quatre cycles d'accès à la mémoire depuis le moment où l'interruption a été demandée jusqu'à l'exécution de la première instruction du gestionnaire d'interruption.Prise en charge des personnages
La cinquième faiblesse de la plupart des mini-ordinateurs était la mauvaise prise en charge des chaînes, qui a été résolue dans PDP-11 par la capacité à adresser directement les octets.L'importance de soutenir les chaînes et les personnages a commencé à croître au cours des années 1960, lorsque des solutions pour la science et les affaires ont commencé à apparaître. La méthode de codage dominante à l'époque était le jeu de caractères 6 bits, qui offrait suffisamment d'espace pour les lettres majuscules, les chiffres de 0 à 9, un espace et plusieurs signes de ponctuation, suffisants pour l'impression des états financiers.

Comme la mémoire était très chère, placer un caractère dans un mot de 12 ou 18 bits était tout simplement inacceptable et les caractères étaient regroupés en mots.
Cela améliore l'efficacité du stockage, mais est difficile pour des opérations telles que le déplacement, la comparaison et la combinaison, qui doivent tenir compte du fait que le caractère peut être dans la partie inférieure ou supérieure du mot, ce qui augmente la quantité de mémoire coûteuse occupée par le programme.
Le problème a été résolu dans PDP-11, la machine pouvait fonctionner avec des mots de 16 bits et des octets de 8 bits qui gagnaient en popularité. L'extension de la longueur des caractères de deux bits simplifiait les opérations de chaîne et facilitait l'adaptation à la norme ASCII 7 bits de plus en plus populaire, qui était prise en charge par DEC à l'époque. Bell termine ce paragraphe comme ceci:
Malgré le fait que les instructions pour le traitement des chaînes étaient absentes de l'équipement, les opérations de chaîne ordinaires (déplacement, comparaison, concaténation) pouvaient être programmées comme un cycle très court.Et c'est effectivement le cas. Vous pouvez écrire une procédure de copie en seulement deux instructions, en supposant que les adresses source et de destination sont dans des registres.
loop: MOVB (src)+, (dst)+ BNE loop
Ce code tire parti du fait que la commande MOV définit les indicateurs. Le cycle se poursuivra jusqu'à ce que la valeur de l'adresse source devienne nulle et, à ce stade, la commande passe à l'instruction suivante. C'est pourquoi les lignes C se terminent par zéro.
ROM
Le sixième point faible des mini-ordinateurs était l'incapacité à utiliser les ROM, et PDP-11 n'avait pas cet inconvénient. La plupart du code écrit pour PDP-11 était "propre" et permettait de rentrer sans efforts particuliers du programmeur, ce qui permettait l'utilisation directe de la ROM.Dans les applications de contrôle de processus, dans lesquelles les programmes sont relativement fixes, ils doivent télécharger le programme à chaque fois à partir d'une bande magnétique ou d'une bande perforée, ce qui est coûteux. Vous devez acheter et entretenir des périphériques d'E / S rarement utilisés. C'est plus pratique lorsque le programme est toujours présent sur l'ordinateur. Cependant, en raison de fortes limitations de la quantité de mémoire et du manque de prise en charge matérielle de la pile, le code auto-modifiable était souvent inévitable, ce qui limitait gravement l'utilisation de la ROM. Bell est fier de dire que le PDP-11 a changé la situation.
E / S primitives
La septième faiblesse des mini-ordinateurs était les capacités d'E / S primitives.À la fin des années 60, lorsque le PDP-11 a été développé, les périphériques d'E / S étaient très chers. Les unités centrales de l'époque utilisaient ce que l'on appelle les E / S de canal, dans lesquelles le processeur central envoyait un petit programme au contrôleur de canal, qui exécutait le programme et rapportait le résultat. Un programme pourrait, par exemple, charger des données à partir d'une bande magnétique ou percer une carte perforée.
Les E / S de canal étaient importantes, elles permettaient de décharger le processeur des opérations d'E / S et d'effectuer des actions d'E / S en même temps, ce qui augmente l'utilisation du processeur. L'inconvénient était que les E / S de canal nécessitaient un processeur séparé dans chaque contrôleur de canal, ce qui augmentait considérablement le coût de l'ensemble du système.

Dans le monde des mini-ordinateurs, les E / S étaient généralement effectuées directement sur le processeur, généralement à l'aide d'instructions spécialisées codées en dur pour chaque périphérique spécifique, comme un lecteur de bande ou une imprimante de console.
Le PDP-11 a introduit quelque chose d'E / S mappé inhabituel. Ce ne sont pas des E / S mappées en mémoire que vous pouvez utiliser avec l'appel système mmap (2), mais juste un accord selon lequel certaines adresses en mémoire ne sont pas uniquement des cellules de mémoire et leur contenu est affiché sur des cartes insérées dans le fond de panier, qui en DEC s'appelait UNIBUS.

Par exemple, la valeur enregistrée dans 777566
4Les adresses sont données en octal, comme c'était la coutume sur les machines DEC 12, 18 et 36 bits précédentes
sera écrit sur un périphérique connecté à la console, généralement un terminal d'impression.

Si vous lisez la valeur de l'adresse 777570, vous avez reçu la valeur entrée par les commutateurs sur le panneau avant. Cela était souvent utilisé pour configurer le chargeur de démarrage.

De même, le lecteur RK05 a été accédé en écrivant le numéro de secteur auquel vous souhaitez accéder à l'adresse 777412, l'adresse où vous souhaitez écrire les données sur 777410 et le nombre de mots sur 777406. Ensuite, définissez le bit zéro à 777404 sur 1 ( bit GO), et le lecteur transférera le nombre de mots souhaité directement dans la mémoire.

Mon appareil préféré était le KW11-L. L'écriture du bit 6 pour adresser 777546 déclenche une interruption toutes les 20 ms. Pourquoi est-ce 20 ms? Parce que c'est une période de fréquence AC
5Si vous avez commandé une voiture pour une région avec une fréquence réseau de 60 Hz, elle avait un numéro différent (numéro de pièce)
Oui, comme une horloge domestique, le PDP-11 a compté le temps par périodes de tension dans le réseau.
Coût de programmation élevé
La neuvième faiblesse des mini-ordinateurs était le coût élevé de la programmation. De nombreux utilisateurs ont programmé en langage assembleur sans éditeurs et IDE pratiques, systèmes de fichiers et débogueurs disponibles sur les grands systèmes. PDP-11 n'a pas pu surmonter cet inconvénient, bien que PDP-11 ait construit des systèmes plus complexes que les modèles précédents, PDP-8 et PDP-15.En raison de leur nature minimaliste, les mini-ordinateurs ne fournissaient pas un environnement pratique pour développer des programmes. Souvent utilisé la commutation fastidieuse de commutateurs à bascule, ou, peut-être, l'édition et l'assemblage de programmes sur un autre grand ordinateur et leur transfert sur une bande de papier.
C'était similaire à la façon dont les microcontrôleurs sont programmés aujourd'hui, nous éditons le programme sur un grand poste de travail, compilons le fichier binaire cible et le transférons dans la mémoire flash du microcontrôleur.

Cependant, il semble que Bell ne connaissait pas le travail de Thompson et Richie, qui étaient occupés à construire leur propre environnement logiciel sur le PDP-11 dans le New Jersey.
Les gens qui ont construit le design
Passons à la deuxième section: les gens
Cette section est la plus intéressante pour moi, en tant que passionnée d'histoire, car étudier l'histoire des ordinateurs, comme tout autre sujet historique, consiste essentiellement à étudier l'histoire des gens et le contexte dans lequel ils ont pris des décisions.
Bell note que si les ordinateurs sont basés sur la technologie, ils sont d'origine humaine, et il a donc consacré cette section à décrire la dynamique du groupe DEC pendant le développement de PDP-11.
Les problèmes rencontrés par les développeurs informatiques peuvent être divisés en deux parties: les problèmes dus à l'inexpérience et les problèmes de nature systémique.Ici, Bell rappelle les paroles de Fred Brooks de son dernier livre de l'époque,
Mythical Man-Month .
Brooks, le chef du projet OS / 360, a eu du mal pendant des années à créer un système d'exploitation unique et polyvalent pouvant fonctionner sur tous les modèles IBM / 360, ce qui était l'objectif du projet. Les mots de Brooks étaient frais dans la mémoire de Bell lorsqu'il a écrit ce paragraphe.
Chronologie de conception
Cette section est une fenêtre sur le travail de DEC Corporation à la fin des années 1960.
L'organisation interne des équipes de conception de DEC au fil des ans a oscillé entre orientation marché et orientation produit. Lorsque l'entreprise a connu une croissance de 30 ou 40% par an, une réorganisation continue s'imposait. À tout moment, environ un tiers des employés ont travaillé dans l'entreprise pendant moins d'un an.
Levez la main si cela vous est familier.
Lors du développement du PDP-11, l'entreprise s'est structurée autour de gammes de produits. Les développeurs de la société étaient organisés en petits groupes: groupe PDP-10, groupe PDP-15 (machine 18 bits), groupe PDP-8, sous-groupe PDP-8 / S, groupe LINC-8. Chaque groupe comprenait des spécialistes du marketing et des ingénieurs responsables du développement des produits, des logiciels et du matériel. Grâce à une telle organisation, l'expérience en architecture a été divisée en groupes.Bell consacre un certain temps à l'examen de chaque groupe, énumérant ses forces et ses faiblesses et leur contribution à PDP-11. Je n'énumérerai pas tout cela ici, à une exception près.
Le groupe PDP-10 était le plus fort de l'entreprise. ils ont construit de grandes machines puissantes à temps partagé. C'était à bien des égards une division distincte de l'entreprise, avec un minimum d'interactions avec d'autres groupes. Bien que le groupe PDP-10 dans son ensemble comprenne le mieux le fonctionnement de l'architecture du système, il n'avait aucune idée de la gamme de systèmes, il souhaitait construire uniquement des ordinateurs à haute vitesse.J'ai récemment travaillé pour une société de logiciels dans laquelle un ou deux des produits les plus anciens ont fait la quasi-totalité des bénéfices de la société, et je comprends très bien la position de Bell. Le PDP-10 était une version DEC du mainframe, très rapide et disponible à un seul prix fixe.
Les premiers travaux sur la création d'un ordinateur 16 bits ont commencé sous la supervision d'un responsable PDP-15, un spécialiste du marketing ayant une expérience en ingénierie. Le premier projet s'appelait PDP-X et comprenait des spécifications pour un certain nombre de machines. C'était l'architecture de la famille de machines, et elle était mieux conçue que la dernière PDP-11, mais n'était pas particulièrement innovante. Malheureusement, le responsable du groupe a accusé la direction que leur projet était potentiellement aussi complexe que le PDP-10 (ce n'était pas le cas), et qu'il était sûr de l'échec du projet, et donc personne d'autre ne voulait fabriquer d'autres gros ordinateurs en plus d'un seul grand ordinateur entreprise.Et ici, Bell nous donne une bonne leçon: si vos compétences sont dans la même chaîne que les projets d'autres gestionnaires, ils ont un outil efficace pour tuer votre projet avant qu'il n'entre sur le marché.
Rétrospectivement, les personnes impliquées dans le développement de PDP-X semblent avoir travaillé en même temps sur le développement de Data General.Cela n'a peut-être pas été remarqué par le lecteur moyen, mais c'est une référence au «huit perfide» de Shockley dix ans plus tôt.
6Ce groupe comprenait Robert Noyce et Gordon Moore, qui dix ans plus tard ont quitté Fairchild et ont fondé leur propre société Intel.
Edson de Castro, chef de produit PDP-8 et chef de projet PDP-X a quitté DEC, avec plusieurs personnes de son équipe, pour former Data General. Les dossiers ne permettent pas de savoir si de Castro est parti parce que le PDP-X a été interrompu ou si son départ a été la dernière goutte pour tuer le projet. En tout cas, le résultat était évident, comme l'écrit Bell.
Lorsque le projet PDP-X a été fermé, le projet DCM (Desk Calculator Machine, nom de code choisi pour la confidentialité) a commencé. La conception et la planification étaient erratiques car Data General était en concurrence avec son très petit ordinateur 16 bits.Data General n'a pas concurrencé DEC avec son ordinateur Nova 16 bits sur le marché pour lequel le PDP-8 a été développé et que de Castro connaissait du revers de la main: le matériel de laboratoire monté en rack

PDP-8 12 bits vs Nova 16 bits de Data General

PDP-11: grades
Dans la dernière partie de l'article, PDP-11 est comparé à ses prédécesseurs, puis Bell continue d'évaluer l'architecture PDP-11 elle-même. La plus grande percée a été UNIBUS.
En général, le bus UNIBUS a dépassé toutes les attentes. Des centaines de types de périphériques de stockage et de périphériques pouvaient y être connectés; il est devenu un composant architectural standard des systèmes dans la gamme de prix de 3 000 $ à 100 000 $ (1975).Qu'est-ce que UNIBUS?

Les premiers ordinateurs commerciaux ont été conçus comme un ensemble de modules connectés à un fond de panier avec des connexions câblées. À l'époque des lampes, c'était une nécessité car les lampes n'étaient pas fiables et les modules devaient être remplacés rapidement.

Plus tard, le désir de construire un ordinateur à partir de modules standard a conduit à la construction de blocs logiques généralisés connectés à l'aide d'un fond de panier complexe.
Voici un exemple des premiers modules DEC.

Vous pouvez les monter sur un fond de panier complexe avec des connexions câblées et construire un ordinateur à partir d'eux, dans ce cas PDP-8.
UNIBUS est un développement des développements DEC précédents et est l'abstraction d'un bus de commande idéalisé. La disponibilité des composants d'intégration moyenne élimine le besoin de fond de panier complexe et déplace la complexité principale vers les modules installés dans le fond de panier. Cela permet de construire des modules standard qui se connectent à un ordinateur.
Le bus UNIBUS, en tant que norme, était un composant de l'architecture qui vous permet de construire des systèmes facilement configurables. Toute entreprise, pas seulement DEC, peut facilement fabriquer des composants qui interagissent avec le bus. De bons pneus créent un bon environnement d'ingénierie dans lequel les gens peuvent se concentrer sur une conception structurée. UNIBUS a créé une industrie secondaire qui offrait d'autres sources d'approvisionnement pour la mémoire et les périphériques. Outre le bus IBM 360, UNIBUS était la norme de bus la plus courante dans l'industrie informatique.Avant l'avènement d'UNIBUS, les périphériques d'entrée / sortie que le mini-ordinateur pouvait prendre en charge n'étaient déterminés que par ses développeurs. La façon d'interagir avec les appareils a été codée en dur par les circuits logiques informatiques. Avec l'avènement d'UNIBUS, un large champ a été ouvert pour la personnalisation de l'ordinateur par l'utilisateur final et un champ pour les expériences.
Qu'est-ce que le PDP-11 nous a appris?

La rétrospective de Bell se termine au moment de la rédaction de l'article, c.-à-d. en 1976-1977, mais de notre point de vue, quarante ans plus tard, l'influence du PDP-11 était énorme.
RISC
Au début, lorsque le PDP-11 n'était pas encore développé et n'était d'ailleurs pas considéré comme une machine RISC, ce terme n'existait pas avant d'être introduit par John Coke en 1976 en ce qui concerne l'IBM 801. Cependant, pour tous ceux qui avaient une expérience en programmation Processeurs ARM, processeurs RISC modernes, leur similitude est évidente. Tout comme la conception des langages de programmation est un processus de développement évolutif ainsi que d'emprunt, la même chose se produit avec la conception d'un système de commande.
PDP-11 a également enfoncé un enjeu au cœur des instructions d'E / S sélectionnées, approuvant le modèle d'E / S mappé en mémoire, qui est le mécanisme le plus courant aujourd'hui. Les seuls processeurs à avoir des instructions d'E / S distinctes sont l'Intel 8080 et son cousin Z80.Unix
PDP-11 a eu un impact majeur sur les logiciels et les systèmes d'exploitation. Le PDP-11 était la machine que Ken Thompson et Dennis Ritchie ont développé UNIX chez Bell Labs.7UNIX a été créé à l'origine sur PDP-7 . En 1970, le développement est passé à PDP-11/20, puis à PDP-11/45. Avant PDP-11, UNIX n'existait pas. Avant PDP-11, C n'existait pas, c'était l'ordinateur pour lequel C avait été conçu. Si vous voulez savoir pourquoi dans le C classique, il a 16 bits, c'est à cause de PDP-11.UNIX nous a donné l'idée des tuyaux, «tout est un fichier» et de l'informatique interactive.VAX-11/780
Dans l'informatique interactive, l'utilisation de la mémoire est illimitée, et bien que PDP soit bon pour le contrôle des processus, les exigences de l'informatique interactive ont été la raison de créer un remplacement pour PDP-11.L'année où Bell est sorti, 1977, le disciple de PDP-11, VAX-11, qui signifiait «extension d'adresse virtuelle», a été publié.BSD
UNIX est arrivé à Berkeley en 1974, Ken Thompson a apporté la bande, qui était le début du développement sur la côte ouest de BSD - Berkley Systems Distribution.Berkeley UNIX a été porté sur VAX au début des années 80 et s'est développé comme une alternative contre-culturelle au système d'exploitation VMS de DEC. Berkeley UNIX a engendré une nouvelle génération de hackers qui ont ensuite fondé des sociétés comme Sun Microsystems et des langages comme Self, ce qui a directement conduit à l'avènement de Java.UNIX a été porté sur un grand nombre de systèmes informatiques dans les années 80, et à la suite de la «guerre UNIX», divers systèmes BSD ont été créés qui existent à ce jour.Suivant
4BSD, un dérivé de la distribution originale de Berkeley, est devenu la base du système d'exploitation de la famille d'ordinateurs NeXT de Steve Jobs. Quand Apple a acheté NeXT en 1997, NextSTEP et son dérivé BSD sont devenus la fondation de Darwin, OSX et iOS.Windows NT
Comme nous l'avons dit plus tôt, en parlant d'Edison de Castro, il y avait des traîtres au DEC.Dave Cutler, architecte du système d'exploitation VAX VMS, après une tentative infructueuse de démarrer un nouveau projet combiné du système d'exploitation et du matériel destiné à remplacer le VAX, il a quitté Microsoft en 1988, amenant toute son équipe avec lui, et a dirigé le développement de Windows NT. Ceux qui connaissent l'intérieur de Windows et le système d'exploitation VMS peuvent remarquer des fonctionnalités communes.Xerox alto
Pour conclure le discours sur l’histoire de Castro, la série Data General Nova a inspiré Charles Tucker et Butler Lampson, développeurs de Xerox Alto, qui à leur tour ont inspiré les développeurs Apple Macintosh.Données générales nova
La rivalité entre Data General et DEC s'est poursuivie dans l'ère 32 bits, comme Tracy Kidder, qui a remporté le prix Pulitzer en 1981, dans son livre The Soul of a New Machine .Qu'avons-nous appris de PDP-11?
Bien que son développement ait été parfois chaotique et non sans défauts, PDP-11 est l'intersection de nombreux fils de l'histoire.Le matériel, les logiciels, les langages de programmation, les systèmes d'exploitation, PDP-11 ont influencé tout cela.Ça vaut le coup de célébrerArticles liés
What did devops mean ?Introducing gb, a project based build tool for the Go programming languageavr11: how to add 256 kilobytes of ram to an ArduinoPadding is hard