À la fin des années 1950, avant que la NASA n'ait l'intention d'aller sur la Lune - ou d'avoir besoin d'un ordinateur pour y arriver - le MIT Instrumentation Laboratory avait conçu et construit un petit prototype de sonde qu'ils espéraient un jour voler vers Mars (lire le fond en partie 1 de cette histoire ici). Cette petite sonde utilisait un petit ordinateur polyvalent rudimentaire pour la navigation, basé sur les systèmes inertiels pour missiles balistiques, sous-marins et avions que le laboratoire avait conçus et construits pour l'armée depuis la Seconde Guerre mondiale.
Les gens de l'Instrumentation Lab pensaient que leur concept Mars Probe - et en particulier le système de navigation - serait intéressant pour ceux qui sont impliqués dans les efforts d'exploration planétaire naissants, tels que l'US Air Force et le Jet Propulsion Laboratory. Mais lorsque le MIT Lab les a approchés, aucune des deux entités n'était intéressée. L'Air Force se retirait du secteur spatial et le JPL prévoyait d'exploiter son propre vaisseau spatial planétaire, en naviguant à partir de la grande antenne de communication Goldstone dans le désert de Mojave. L'antenne radar de 26 mètres avait été construite pour suivre les premières sondes robotiques Pioneer.
L'Air Force et le JPL ont tous deux suggéré au Lab de parler à la nouvelle organisation de la NASA.
Les membres du laboratoire ont rendu visite à Hugh Dryden, administrateur adjoint de la NASA à Washington D.C., et à Robert Chilton, qui dirigeait la branche Flight Dynamics de la NASA au Langley Research Center. Les deux hommes pensaient que le laboratoire avait fait un très bon travail sur la conception, en particulier sur l'ordinateur de guidage. La NASA a décidé de donner 50 000 $ au laboratoire pour poursuivre ses études sur le concept.
Plus tard, une réunion a été organisée entre le chef du laboratoire, le Dr Charles Stark Draper et d'autres dirigeants de la NASA pour discuter des divers plans à long terme que la NASA avait en tête et de la façon dont les conceptions du laboratoire pourraient s'intégrer dans un vaisseau spatial piloté par des humains. Après plusieurs réunions, il a été déterminé que le système devrait consister en un ordinateur numérique à usage général avec commandes et affichages pour les astronautes, un sextant spatial, une unité de guidage inertiel avec gyroscopes et accéléromètres, et toute l'électronique de support. Dans toutes ces discussions, tout le monde a convenu que l'astronaute devrait jouer un rôle dans le fonctionnement de l'engin spatial et non pas seulement être à bord. Et tous les habitants de la NASA ont particulièrement apprécié la capacité de navigation autonome, car on craignait que l'Union soviétique n'interfère avec les communications entre un vaisseau spatial américain et le sol, mettant en danger la mission et la vie des astronautes.
Mais alors, le projet Apollo est né. Le président John F. Kennedy a mis la NASA au défi en avril 1961 d'atterrir sur la Lune et de retourner en toute sécurité sur Terre - le tout avant la fin de la décennie. Onze semaines plus tard, en août 1961, le premier contrat principal d'Apollo est signé avec le laboratoire d'instrumentation du MIT pour la construction du système de guidage et de navigation.
"Nous avions un contrat", a déclaré Dick Battin, un ingénieur du Lab qui faisait partie de l'équipe de conception de Mars Probe, "mais ... nous n'avions aucune idée de comment nous allions faire ce travail, à part essayer de le modéliser d'après notre Mars sonde."
Une partie de la tradition de l'ordinateur de guidage Apollo (AGC) est que certaines des spécifications énumérées dans la proposition de 11 pages du laboratoire ont été essentiellement retirées de la réalité par Doc Draper. Faute de meilleurs chiffres - et sachant qu'il faudrait qu'il rentre à l'intérieur d'un vaisseau spatial - il a dit qu'il pèserait 100 livres, ferait 1 pied cube et utiliserait moins de 100 watts de puissance.
Mais à cette époque, très peu de spécifications étaient connues sur les autres composants ou vaisseaux spatiaux d'Apollo, car aucun autre contrat n'avait été conclu, et la NASA n'avait pas encore décidé de sa méthode (ascension directe, Earth Orbit Rendezvous ou Lunar Orbit Rendezvous) et les types d'engins spatiaux pour se rendre à la Lune.
"Nous avons dit: 'Nous ne savons pas quel est le travail, mais c'est l'ordinateur que nous avons, et nous y travaillerons, nous essaierons de l'étendre, nous ferons tout ce que nous pouvons'", a déclaré Battin. . "Mais c'était le seul ordinateur que quiconque ait dans le pays qui pourrait éventuellement faire ce travail ... quel que soit ce travail."
Battin a rappelé comment, au départ, l'option de vol vers la Lune allait être un rendez-vous en orbite terrestre, où les différentes parties de l'engin spatial seraient lancées depuis la Terre et combinées en orbite terrestre et voleraient vers la Lune et y atterriraient dans leur ensemble. Mais finalement, le concept de rendez-vous en orbite lunaire a gagné - où l'atterrisseur se séparerait du module de commande et atterrirait sur la Lune.
"Donc, quand cela est arrivé, alors la question était ... avons-nous besoin d'un système de guidage entièrement nouveau et différent pour le module lunaire que nous avons pour le module de commande?" Dit Battin. «Qu'allons-nous faire à ce sujet? Nous avons convaincu la NASA d'utiliser le même système [informatique] dans les deux vaisseaux spatiaux. Ils ont des missions différentes, mais nous pourrions mettre un système en double dans le module lunaire. C'est ce que nous avons fait. "
Les premiers travaux conceptuels sur l'ordinateur de guidage Apollo (AGC) se sont déroulés rapidement, avec Battin et ses cohortes Milt Trageser, Hal Laning, David Hoag et Eldon Hall élaborant la configuration globale pour le guidage, la navigation et le contrôle.
Le guidage signifiait diriger le mouvement d'un engin, tandis que la navigation se référait à la détermination de la position actuelle aussi précisément que possible, par rapport à une destination future. Le contrôle faisait référence à la direction des mouvements du véhicule et, dans l’espace, aux directions liées à son attitude (lacet, tangage et roulis) ou à sa vitesse (vitesse et direction). L'expertise du MIT était centrée sur le guidage et la navigation, tandis que les ingénieurs de la NASA - en particulier ceux qui avaient une expérience de travail sur le projet Mercury - mettaient l'accent sur le guidage et le contrôle. Ainsi, les deux entités ont travaillé ensemble pour créer les manœuvres qui seraient nécessaires sur la base des données des gyroscopes et des accéléromètres et comment intégrer les manœuvres à l'ordinateur et au logiciel.
Pour le laboratoire d'instrumentation du MIT, la fiabilité était une grande préoccupation au sujet de l'ordinateur de guidage Apollo. L'ordinateur serait le cerveau du vaisseau spatial, mais qu'en serait-il s'il échouait? Étant donné que la redondance était une solution connue au problème de fiabilité de base, les employés du laboratoire ont suggéré d'inclure deux ordinateurs à bord, dont un comme sauvegarde. Mais North American Aviation - la société qui construit les modules de commande et de service Apollo - avait ses propres problèmes pour répondre aux exigences de poids. L'Amérique du Nord a rapidement reculé devant la taille et les besoins en espace de deux ordinateurs, et la NASA a accepté.
Une autre idée pour une fiabilité accrue consistait à avoir des cartes de circuits imprimés et d'autres modules à bord du vaisseau spatial afin que les astronautes puissent faire de la «maintenance en vol», en remplaçant les pièces défectueuses pendant qu'ils se trouvaient dans l'espace.Mais l'idée d'un astronaute ouvrant un compartiment ou une planche de plancher, à la recherche d'un défectueux module et l'insertion d'une carte de circuit imprimé de rechange à l'approche de la Lune semblait absurde - même si cette option a été fortement envisagée pendant un certain temps.
«Nous avons dit:« nous allons simplement rendre cet ordinateur fiable », se souvient Battin. «Aujourd'hui, vous seriez exclu du programme si vous aviez dit que vous alliez le créer pour qu'il n'échoue pas. Mais c'est ce que nous avons fait. "
À l'automne 1964, The Lab a commencé à concevoir sa version améliorée de l'AGC, principalement pour tirer parti d'une technologie améliorée. L'un des aspects les plus difficiles de la mission Apollo était la quantité de calcul en temps réel requise pour diriger le vaisseau spatial vers la Lune et vice-versa. Lorsque les ingénieurs du Lab ont commencé leur travail sur le projet, les ordinateurs reposaient encore sur la technologie analogique. Les ordinateurs analogiques n'étaient pas rapides ou suffisamment fiables pour une mission sur la Lune.
Les circuits intégrés, qui venaient d'être inventés en 1959, étaient désormais plus performants, fiables et plus petits; ils pourraient remplacer les conceptions antérieures en utilisant des circuits à transistors de base, occupant environ 40% d'espace en moins. Aussi rapidement que la technologie a progressé depuis que le MIT a remporté le contrat AGC en 1961, ils étaient convaincus que le délai avant le premier vol d'Apollo permettrait de plus grandes avancées en matière de fiabilité et, espérons-le, des réductions de coûts. Avec cette décision, l'AGC est devenu l'un des premiers ordinateurs à utiliser des circuits intégrés, et bientôt, plus des deux tiers de la production totale de microcircuits aux États-Unis ont été utilisés pour la construction de prototypes informatiques Apollo.
Légende de l'image principale: un premier circuit intégré, connu sous le nom de circuit intégré Fairchild 4500a. Courtoisie d'image: Draper.
Même si de nombreux éléments de conception du matériel informatique ont commencé à se mettre en place, un problème persistant au milieu des années 1960 est devenu évident: la mémoire. La conception originale, basée sur la sonde Mars, ne contenait que 4 kilo-octets de mémoire fixe et 256 mots d'effaçable. Au fur et à mesure que la NASA ajoutait de nouveaux aspects au programme Apollo, les besoins en mémoire ne cessaient d'augmenter, à 10 K, puis à 12, 16, 24 et enfin à 36 kilo-octets de mémoire fixe et 2 K d'effaçable.
Le système conçu par le laboratoire a été appelé mémoire de corde de base, avec un logiciel soigneusement créé avec du fil en alliage de nickel tissé à travers les minuscules «beignets» magnétiques pour créer la mémoire non effaçable. Dans le langage des zéros et des zéros de l'ordinateur, s'il en était un, il parcourait le beignet; s'il s'agissait d'un zéro, le fil le parcourait. Pour un composant de mémoire, il a fallu des faisceaux d'un demi-mille de fil tissé à travers 512 noyaux magnétiques. Un module pourrait stocker plus de 65 000 informations.
Battin a appelé le processus de construction de la mémoire de base la méthode LOL.
«Petites vieilles dames», a-t-il dit. «Les femmes de l'usine de Raytheon tisseraient littéralement le logiciel dans cette mémoire centrale.»
Alors que les femmes effectuaient principalement le tissage, elles n'étaient pas nécessairement vieilles. Raytheon employait de nombreux anciens ouvriers du textile, adeptes du tissage, qui devaient suivre des instructions détaillées pour tisser les fils.
Lorsque les mémoires de la corde de base ont été construites pour la première fois, le processus était assez laborieux: deux femmes s'asseyaient en face l'une de l'autre, elles tissaient à la main un flux de fils à travers de minuscules noyaux magnétiques, poussant une sonde avec le fil attaché d'un côté à l'autre. En 1965, une méthode plus mécanique de tissage des fils a été mise en œuvre, encore une fois, basée sur des machines textiles utilisées dans l'industrie du tissage de la Nouvelle-Angleterre. Mais malgré tout, le processus était extrêmement lent, et un programme pouvait prendre plusieurs semaines, voire plusieurs mois à tisser, avec plus de temps nécessaire pour le tester. Toute erreur dans le tissage signifiait qu'il devait être refait. L'ordinateur du module de commande contenait six ensembles de modules de corde de base, tandis que l'ordinateur du module lunaire en contenait sept.
Au total, il y avait environ 30 000 pièces dans l'ordinateur. Chaque composant serait soumis à un test électrique et à un test de résistance. Tout échec nécessitait le rejet du composant.
"Même si la mémoire était fiable", a déclaré Battin, "ce que la NASA n'aimait pas à ce sujet était le fait que très tôt vous deviez décider quel programme informatique allait être." Ils nous ont demandé: «Et si nous avions un changement de dernière minute?» Et nous avons dit que nous ne pouvions pas avoir de changements de dernière minute, et chaque fois que vous vouliez changer la mémoire, cela signifiait un glissement de six semaines, au minimum. Lorsque la NASA a dit que c'était intolérable, nous leur avons dit: "Eh bien, c'est ainsi que fonctionne cet ordinateur, et il n'y a pas d'autre ordinateur comme celui-là que vous puissiez utiliser."
Alors que la conception et la construction de tout le matériel posaient des défis, à mesure que les travaux sur l'AGC progressaient en 1965 et en 1966, l'ampleur et la complexité d'un autre aspect se démarquaient: la programmation du logiciel. Il est devenu le principal problème déterminant de l'ordinateur, en respectant à la fois les délais et les spécifications.
Toute la programmation a été essentiellement effectuée au niveau un et au niveau zéro, programmation en langage assembleur. Lors de la conception du logiciel pour effectuer des tâches complexes, les ingénieurs logiciels devaient trouver des moyens ingénieux pour adapter le code aux contraintes de mémoire. Et bien sûr, rien de tout cela n'avait été fait auparavant, du moins pas à ce niveau d'échelle et de complexité. À tout moment, l'AGC pourrait devoir coordonner plusieurs tâches à la fois: prendre des lectures du radar, calculer la trajectoire, effectuer des corrections d'erreur sur les gyroscopes, déterminer quels propulseurs devraient être déclenchés, ainsi qu'astransmettre des données aux stations au sol de la NASA et prendre de nouvelles entrées des astronautes .
Hal Laning a conçu ce qu'il a appelé un programme exécutif, qui assignait des tâches différentes priorités et permettait aux tâches à priorité élevée de se terminer avant celles à faible priorité. L'ordinateur peut allouer de la mémoire entre différentes tâches et garder une trace de l'endroit où une tâche a été interrompue.
L'équipe du logiciel du laboratoire a commencé à concevoir intentionnellement le logiciel avec une capacité de planification prioritaire qui pourrait identifier les commandes les plus importantes et permettre à celles-ci de s'exécuter sans interruption à partir de commandes moins importantes.
Cependant, à l'automne de 1965, il est devenu évident pour la NASA que l'ordinateur Apollo était en grande difficulté, car le développement des programmes était considérablement en retard. Le fait qu’une quantité relativement inconnue appelée «logiciel» puisse retarder l’ensemble du programme Apollo n’a pas été bien accueilli par la NASA.
Suivant: Partie 3, tout comprendre.