Les ordinateurs du Voyager | Hackaday

Après plus de quatre décennies passées dans l'espace et avoir parcouru au total 44 milliards de kilomètres, ce n'est un secret pour personne que le vaisseau spatial Voyager approche de la fin de sa longue mission interstellaire. Battus et usés, les vaisseaux spatiaux jumeaux avancent à toute vitesse dans le vide, bien hors de l'influence du Soleil, leur combustible radioactif se désintégrant, leurs signaux devenant de plus en plus faibles à mesure que le temps nécessaire pour traverser le gouffre de l'espace s'allonge de jour en jour.

Mais ils continuent néanmoins à persévérer, les avant-postes les plus éloignés de l’humanité et les témoignages de la puissance d’une bonne ingénierie. Et ce n'est pas une mince mesure de chance aussi, étant donné le nombre d'événements presque mettant fin à la mission qui se sont accumulés en près d'un demi-siècle de voyage. Le nombre de « problèmes » et d'« anomalies » subis par les deux Voyagers semble également être en hausse, contribuant à donner l'impression qu'un jour, bientôt peut-être, nous n'en entendrons plus parler.

Heureusement, ce jour n’est pas encore arrivé, en grande partie à cause des ordinateurs autour desquels le vaisseau spatial Voyager a été, en quelque sorte, conçu. Voyager devait être une mission sans précédent, un grand tour des planètes extérieures qui offrait une chance unique de pousser la science loin dans le système solaire. Il était absolument essentiel de disposer d'ordinateurs performants pour tenir cette promesse, une tâche rendue encore plus difficile par les conditions dans lesquelles ils seraient amenés à fonctionner, la complexité du vaisseau spatial qu'ils piloteraient et le torrent de données en streaming. à travers eux. Quarante-six ans plus tard, on peut affirmer que les concepteurs ont réussi, et cela vaut la peine de jeter un œil à la façon dont ils ont réussi.

Mémoire volatile (institutionnelle)

Il s’avère qu’accéder au cœur des ordinateurs Voyager, en termes de schémas et autres documentations techniques, n’a pas été si simple. Pour un projet d’une ampleur aussi incroyable et qui a eu un impact démesuré sur notre compréhension des planètes extérieures et de notre place dans la galaxie, le manque d’informations techniques sur le Voyager est difficile à comprendre. La plupart des informations facilement accessibles sont des informations de haut niveau ; les détails techniques juteux sont beaucoup plus difficiles à trouver. C'est doublement vrai pour les ordinateurs exécutant Voyager, dont de nombreux détails semblent se perdre dans les sables du temps.

À titre d’exemple, je vais vous proposer une anecdote. Alors que je faisais des recherches pour cette histoire, je cherchais tout ce qui décrirait l'architecture du système de données de vol, l'un des trois ordinateurs à bord de chaque vaisseau spatial et la machine qui a été au centre du récent problème et des efforts de récupération à bord du Voyager. 1. Je tombais sans cesse sur une référence à un article au titre très prometteur : « Conception d'un processeur CMOS à utiliser dans le sous-système de données de vol d'une sonde spatiale lointaine ». J'ai cherché partout cet article en ligne, mais il ne semble être disponible nulle part ailleurs que dans une collection spéciale de la bibliothèque de la Witchita State University, où il se trouve dans les papiers personnels d'un ancien professeur qui a travaillé pour la NASA.

Malheureusement, en raison des travaux de construction en cours, la bibliothèque n'a pas accès au document pour le moment. La difficulté que j'ai eu à rassembler ce document potentiellement critique semble indiquer une perte de connaissance institutionnelle de l'histoire du programme Voyager et de ses origines techniques. Cela est devenu évident lorsque j’ai contacté les affaires publiques du Jet Propulsion Lab, où les Voyagers ont été construits, dans l’espoir qu’ils puissent avoir une copie de ce document dans leurs archives. Malheureusement, ce n’est pas le cas et les ingénieurs de l’équipe Voyager n’ont même pas entendu parler de ce document. En fait, ils sont très désireux d'en voir une copie si jamais je la mets la main, probablement pour faciliter leur travail consistant à maintenir le vaisseau spatial en marche.

En l’absence de documents techniques détaillés, la question de départ demeure : comment fonctionnent les ordinateurs du Voyager ? Je ferai de mon mieux pour répondre à cette question à partir de la documentation existante et j'espère remplir les blancs plus tard avec tout autre document que je pourrai récupérer.

Bon vieux TTL

Comme mentionné ci-dessus, chaque Voyager contient trois ordinateurs différents, chacun étant affecté à des fonctions différentes. Voyager a été la première mission sans pilote à inclure l'informatique distribuée, en partie parce que le nombre de tâches à exécuter avec précision lors des survols planétaires à enjeux élevés dépasserait les capacités de n'importe quel ordinateur pouvant être piloté. Il y avait également un aspect d'ingénierie sociale à cela, dans le sens où cela empêchait les différentes équipes d'ingénierie de se disputer les ressources d'un seul ordinateur.

Redondance à gogo : schéma fonctionnel du sous-système informatique de commande (CCS) utilisé sur les orbiteurs Viking. Le Voyager CCS est presque identique. Source : NASA/JPL.

Dans la mesure où n’importe quel ordinateur dans un système distribué étroitement intégré tel que celui du Voyager peut être considéré comme « l’ordinateur principal », le sous-système informatique et de commande (CCS) le serait. Le Voyager CCS était presque identique à une autre machine construite par le JPL, l'orbiteur Viking CCS. La mission Viking, qui a posé deux atterrisseurs sur Mars à l'été 1976, était beaucoup plus compliquée que n'importe quelle précédente mission sans pilote pour laquelle le JPL avait construit des vaisseaux spatiaux, dont la plupart utilisaient de simples séquenceurs plutôt que des ordinateurs programmables.

Sur Voyager, le CCS est chargé de recevoir les commandes du sol et de les transmettre aux autres ordinateurs qui font fonctionner le vaisseau spatial lui-même et les instruments scientifiques. Le CCS a été construit dans un souci d’autonomie et de fiabilité, car après seulement quelques jours dans l’espace, le retard de communication rendrait impossible le contrôle direct au sol. Cela a conduit JPL à rendre tout ce qui concerne le CCS à double redondance : deux alimentations distinctes, deux processeurs, deux unités de sortie et deux ensembles complets de tampons de commande. De plus, chaque processeur pouvait être interconnecté à chaque unité de sortie et les interruptions étaient distribuées aux deux processeurs.

Il n'y a pas de microprocesseurs dans le CCS. Les processeurs sont plutôt construits à partir de puces TTL discrètes de la série 7400. La machine n'a pas de système d'exploitation mais exécute plutôt des instructions nues. Les mots de données et d'instructions ont une largeur de 18 bits, les mots d'instruction ayant un opcode de 6 bits et une adresse de 12 bits. Les 64 instructions contiennent les outils habituels pour déplacer des données dans et hors des registres et effectuer des opérations arithmétiques de base, bien qu'il n'y ait que des commandes pour ajouter et soustraire, pas pour multiplier ou diviser. Les processeurs accèdent à 4 kilomots de mémoire à fils plaqués redondants, similaire à la mémoire à noyau magnétique dans la mesure où elle enregistre les bits en tant que domaines magnétiques, mais avec un alliage fer-nickel plaqué sur la surface des fils plutôt que des billes de ferrite.

Le problème des trois axes

Sur Voyager, le CCS ne fait presque rien en termes de pilotage du vaisseau spatial. Les tâches nécessaires pour maintenir le Voyager dans la bonne direction sont confiées au sous-système de contrôle d'attitude et d'articulation, ou AACS. Les sondes interplanétaires antérieures telles que Pioneer étaient stabilisées en rotation, ce qui signifie qu'elles maintenaient leur orientation gyroscopique en faisant tourner l'engin autour de l'axe longitudinal. La stabilisation de la rotation ne fonctionnerait pas pour Voyager, car une grande partie des activités scientifiques prévues pour la mission, notamment les études photographiques, nécessitaient une plate-forme stable. Cela signifiait qu'une stabilisation sur trois axes était nécessaire, et l'AACS a été conçu pour répondre à ce besoin.

Les nombreuses longues flèches du Voyager compliquent le contrôle d'attitude en ajoutant beaucoup de « oscillations ».

La conception physique du Voyager a injecté une complexité supplémentaire dans le contrôle d'attitude. Alors que les précédents véhicules spatiaux étaient assez compacts, le Voyager est doté de longues flèches. Du bus compact situé derrière son énorme antenne à gain élevé poussent des flèches pour les trois générateurs thermoélectriques à radio-isotopes qui alimentent le vaisseau spatial, une très longue flèche pour les magnétomètres, une flèche plus courte transportant les lourds instruments d'imagerie et une paire de très longues antennes. pour l'expérience du sous-système d'ondes plasmatiques. Tous ces barrages ont tendance à vaciller un peu lorsque les propulseurs se déclenchent ou que les actionneurs bougent, ce qui complique les calculs nécessaires pour maintenir le cap.

L'AACS est responsable du fonctionnement des gyroscopes, des propulseurs, des capteurs d'attitude et des actionneurs nécessaires pour maintenir le Voyager orienté dans l'espace. Comme le CCS, l'AACS a une conception redondante utilisant des processeurs TTL et des mots de 18 bits. Les mêmes 4 Ko de mémoire redondante à fils plaqués ont été utilisés et de nombreuses instructions ont été partagées entre les deux ordinateurs. Pour gérer le contrôle d'attitude sur trois axes de manière plus efficace en termes de mémoire, l'AACS utilise des registres d'index pour pointer plusieurs fois vers le même bloc de code.

Des années d'ennui, des minutes de terreur

Les ordinateurs de Voyager sont complétés par le sous-système de données de vol ou FDS, responsable du dernier « problème » sur Voyager 1, qui a été attribué à un emplacement mémoire corrompu et a presque mis fin à la mission interstellaire prolongée. Comparé aux CCS et AACS d'origine viking, le FDS devait être un tout nouveau type d'ordinateur, conçu sur mesure pour répondre aux exigences d'un torrent de données provenant de onze expériences scientifiques et de centaines de capteurs techniques pendant les périodes de haute intensité de la planète. survols, tout en n'étant pas trop construit pour les longues et ennuyeuses croisières entre les planètes.

Le FDS a été conçu strictement pour gérer les données entrantes et sortantes des onze instruments scientifiques distincts du Voyager, ainsi que les données techniques provenant de dizaines de capteurs installés autour du vaisseau spatial. La nécessité d'un ordinateur de données dédié est apparue dès le début du processus de conception du Voyager, lorsqu'il est devenu clair que le torrent de données provenant des plates-formes scientifiques lors des survols dépasserait les capacités de n'importe lequel des systèmes de gestion de données câblés utilisés dans les précédents sondes spatiales lointaines.

Une des huit cartes composant le Voyager FDS. Recouverte de puces CMOS discrètes, cette carte porte la désignation « MJS77 » ; « Mariner Jupiter Saturn 1977 » était le nom original de la mission Voyager. Notez les connecteurs D-sub pour les connexions inter-cartes. Source : NASA/JPL.

Il était évident dès le début du processus de conception du Voyager que les exigences en matière de traitement des données dépasseraient les capacités de n'importe lequel des systèmes de gestion de données câblés utilisés dans les précédentes sondes spatiales. Cela a conduit à une conception initiale du FDS utilisant la même architecture générale que le CCS et l'AACS : deux processeurs TTL, une largeur de mot de 18 bits et le même 4 Ko redondant de mémoire à fils plaqués. Mais lorsque le temps d’instruction d’une version maquette de cette machine a été mesuré, il s’est avéré être environ la moitié de la vitesse nécessaire pour prendre en charge le débit maximal de données de survol.

Voyageur FDS. Source : Musée national de l'air et de l'espace.

Pour doubler la vitesse, des circuits d'accès direct à la mémoire ont été ajoutés. Cela permettait aux données d'entrer et de sortir de la mémoire sans avoir à passer par le processeur au préalable. Des gains de performances supplémentaires ont été réalisés en changeant la conception du processeur vers des puces CMOS, une décision risquée au début des années 1970. La décision de passer de la mémoire fiable à fils plaqués à la mémoire CMOS, accessible beaucoup plus rapidement, a fait monter les enjeux.

Les gains de vitesse ont cependant un prix : la volatilité. Contrairement à la mémoire à fils plaqués, les puces de mémoire CMOS perdent leurs données en cas de coupure de courant, ce qui signifie qu'une simple coupure de courant pourrait potentiellement effacer la mémoire FDS au pire moment possible. Les ingénieurs du JPL ont contourné ce problème avec une simplicité brutale : plutôt que d'alimenter les mémoires FDS à partir des principaux systèmes d'alimentation du vaisseau spatial, ils ont acheminé des lignes électriques dédiées directement vers les générateurs thermoélectriques à radio-isotopes (RTG) alimentant l'engin. Cela signifie que la seule façon de couper l’alimentation des mémoires CMOS serait une perte catastrophique des trois RTG, auquel cas la mission serait de toute façon terminée.

Physiquement, le FDS était assez compact, surtout pour un ordinateur construit à partir de puces discrètes au début des années 1970. Malheureusement, il est difficile de trouver de nombreuses photos haute résolution du matériel de vol, mais la machine semble être construite à partir de huit cartes distinctes attachées à un porte-cartes. Chaque carte possède une rangée de connecteurs D-sub le long du bord supérieur, qui semblent être utilisés pour les connexions carte à carte au lieu d'un fond de panier. Une série de connecteurs circulaires MIL-STD assurent la connexion aux instruments scientifiques, au bus d'alimentation, aux communications et au sous-système de stockage de données (DSS), le magnétophone numérique à 8 pistes utilisé pour mettre les données en mémoire tampon pendant les survols.

La prochaine fois?

Même avec le manque relatif d'informations sur les ordinateurs du Voyager, il reste encore beaucoup de territoire à couvrir, y compris certaines des techniques d'architecture logicielle intéressantes utilisées et les détails sur la façon dont les nouveaux logiciels sont téléchargés sur les vaisseaux spatiaux qui sont actuellement presque à une journée-lumière complète. loin. Et cela sans parler des détails techniques juteux susceptibles d’être contenus dans un document caché dans une boîte poussiéreuse d’une bibliothèque du Kansas. J'espère pouvoir mettre la main sur ce document et donner plus de détails sur les ordinateurs Voyager.

François Zipponi
Je suis François Zipponi, éditorialiste pour le site 10-raisons.fr. J'ai commencé ma carrière de journaliste en 2004, et j'ai travaillé pour plusieurs médias français, dont le Monde et Libération. En 2016, j'ai rejoint 10-raisons.fr, un site innovant proposant des articles sous la forme « 10 raisons de... ». En tant qu'éditorialiste, je me suis engagé à fournir un contenu original et pertinent, abordant des sujets variés tels que la politique, l'économie, les sciences, l'histoire, etc. Je m'efforce de toujours traiter les sujets de façon objective et impartiale. Mes articles sont régulièrement partagés sur les réseaux sociaux et j'interviens dans des conférences et des tables rondes autour des thèmes abordés sur 10-raisons.fr.