GCOS 7 sur microprocesseur standard

Le projet « DIANE »

 

 

 

 

 

1 Une histoire de l’évolution des processeurs bien connue aujourd’hui................................................................... 3

1.1  La « Loi de Moore »................................................................................................................................................. 3

1.2  L ‘évolution comparée des diverses familles de processeurs........................................................................... 3

1.3  La problématique posée à l’époque....................................................................................................................... 4

2 Historique de quelques études chez Bull...................................................................................................................... 4

2.1  Co-machine................................................................................................................................................................ 4

2.2  La « transcompilation »........................................................................................................................................... 4

2.3  Des recherches sur base Intel................................................................................................................................ 4

3 Le lancement du projet Diane.......................................................................................................................................... 5

3.1  Les hypothèses de départ....................................................................................................................................... 5

3.2  Les objectifs et les choix d’architecture................................................................................................................ 5

4 Un revirement de dernière minute et l’annonce de 2001............................................................................................. 7

4.1  Les difficultés de Merced ....................................................................................................................................... 7

4.2  Le DPS 7000/XTA en mai 2001............................................................................................................................... 7

5 Les perspectives............................................................................................................................................................... 7


 

 

« Un produit standard, c’est souvent un produit propriétaire mais qui a la caractéristique principale d’être répandu à plusieurs millions d’exemplaires ».

 (auteur inconnu)


A partir du milieu des années 80 Bull  s’est posé la question de faire évoluer la technologie des processeurs de ses systèmes centraux DPS 7000, plates-formes de son système d’exploitation GCOS 7, vers la technologie des processeurs standard du marché tout en conservant à l’identique les caractéristiques de GCOS 7 afin de continuer à offrir les capacités d’exécuter les applications de ses clients en l’état.

 

1           Une histoire de l’évolution des processeurs bien connue aujourd’hui

La question se posait en effet suite à l’observation de deux phénomènes qui se produisaient dans le domaine de la technologie des processeurs

-          l’augmentation de la densité des circuits (« Loi de Moore »),

-          l’augmentation des performances des microprocesseurs.

 

Ces observations amenaient à réfléchir aux possibilités d’apporter sur les circuits propriétaires des systèmes GCOS 7 une évolution comparable à celle qui se produisait sur les processeurs standard.

1.1         La « Loi de Moore »


Elle est illustrée par le schéma ci-dessous, appliqué aux processeurs Intel,  qui exprime que l’on assiste au doublement de la densité des circuits tous les 18 mois, avec une réduction de la finesse du tracé, et la possibilité d’intégrer au circuit lui-même des quantités supplémentaires de mémoire cache en raison de l’augmentation du nombre de transistors sur une même surface.

On estime que cette hypothèse est encore valide au moins pour la décennie actuelle.

1.2         L ‘évolution comparée des diverses familles de processeurs


Elle est également illustrée par le graphique ci-dessous qui permet d’observer la très grande progression de performances des processeurs dans le domaine des micro-ordinateurs qui rattrape désormais celle des systèmes « mainframe » et même celle des supercalculateurs.

1.3         La problématique posée à l’époque

Ces augmentations de performances, qui sont dues à la fois à la réduction du tracé permettant d’augmenter les fréquences d’horloge et la taille des caches, mais surtout aux évolutions de l’architecture interne des processeurs, ont naturellement amené les concepteurs de circuits en général, et Bull en particulier, à réexaminer leur stratégie d’investissements en recherche et développement dans ce domaine.

Il est admis généralement qu’il y a un facteur 10 entre les coûts d’études et de développement pour une réduction de tracé et ceux d’une modification de micro-architecture, et à nouveau un facteur 10 entre les coûts d’études et de développement d’une modification de micro-architecture et ceux d’une complète évolution d’architecture de processeur. Il y a donc lieu de se poser la question de la stratégie des compagnies d’informatique pour lancer des évolutions d’architecture de processeurs à des coûts qui devront être amortis sur quelques milliers de circuits dans quelques milliers de machines (cas des constructeurs de « mainframe » hormis IBM), face à celles qui les amortirons par la diffusion de plusieurs millions de circuits dans plusieurs millions de machines (cas des fournisseurs de technologie pour le marché des micro-ordinateurs, tels INTEL ou pour celui des stations de travail).

Le problème n’est donc pas tant celui du savoir-faire des constructeurs informatiques que celui de leurs capacités financières et  de leur possibilité de diffusion des produits en très grandes masses.

2           Historique de quelques études chez Bull

2.1         Co-machine

Dès 1988 une analyse avait été faîte (Georges Choukroun / Jean-Claude Cassonnet) sur la base du R4000 de MIPS. Ceci a eu lieu lors des investigations sur la recherche d’une architecture RISC (l’accord avec MIPS fut signé officiellement le 27 septembre 1989 par Francis Lorentz).

La conclusion de cette analyse était négative car le niveau de puissance (anticipé, car la réalité a été moins mirobolante…) du R4000 n’était pas suffisant.

2.2         La « transcompilation »

 

En 1992-93, une étude de re-ciblage du DPS 70000 avait été entreprise sur la base d’une idée émise par François Anceau : la « transcompilation ».  L’étude conduite ( Jérôme d’Annoville / Michel Lecampion) consistait à traduire le langage machine du DPS 7000 en code PowerPC. Cela conduisait à un encombrement considérable pour les programmes ce qui faisait craindre des problèmes de performance (rendement des caches). On décida de ne pas donner suite à cette étude.

2.3         Des recherches sur base Intel

Intel a commencé à proposer à Bull l’adoption de son futur processeur P7 comme le RISC idéal dès 1994. Puis Intel a ensuite présenté à Bull (le 30juillet 1997) le projet Merced qui allait donner naissance en 2001 à la famille de processeurs Itanium).

Le changement profond d’architecture de ce processeur pouvait faire espérer des augmentations notables de performances, pourvu que l ‘ensemble des éléments qui devaient concourir à ces gains de performances atteignent tous les objectifs visés.

Tout d’abord l’architecture du processeur lui-même. Le parallélisme d’exécution des opérations, facteur très important des performances de traitement, repose sur le concept d’architecture EPIC[1] (dans lequel, comme on va le voir,  le rôle des compilateurs est fondamental).

Les compilateurs ensuite, qui doivent produire un code adéquat pour le fonctionnement optimum du processeur. Ils doivent principalement être capables de détecter les séquences de traitement qui peuvent être exécutées en parallèle par le processeur et générer le code machine en conséquence.

Les applications elles-mêmes enfin, qui doivent au minimum être recompilées (faute de quoi elles seront exécutées par le processeur dans un mode 32 bits ne bénéficiant évidemment pas des performances optimales), mais aussi être revues pour tirer le meilleur parti du nouvel adressage sur 64 bits. Sur ce dernier point d’ailleurs, Intel a dû mettre en place un programme spécifique de relations avec ses partenaires constructeurs de systèmes ou développeurs de logiciels (l’ILP : Intel Leadership Program, une des composantes notables du coût de lancement de la nouvelle architecture) pour les inciter à évoluer vers Itanium et à l’adopter dans leurs produits.

 

Compte tenu des objectifs de performances qui étaient spécifiés par Intel, Bull a donc décidé après une nouvelle étude d’évolution, de se lancer effectivement  en fin 97-début 98 dans le projet « Diane » sur la base du processeur 64-bits  du projet Merced.

3           Le lancement du projet Diane

Une réunion confidentielle s’est tenue un soir de l’hiver 97-98 aux Clayes-sous-Bois entre Alain Couderc, de la Direction Générale de Bull, et trois responsables du développement logiciel et du planning de GCOS 7 (j’étais celui-là). La question était on ne peut plus simple : « si je vous demande de réaliser l’adaptation de GCOS 7 pour savoir l’exécuter sur le futur processeur du projet Merced d’Intel, qu’est-ce que vous me répondez » ? Il n’y avait d’ailleurs pas cinquante réponses possibles ! Si c’était « non, nous ne savons pas faire », ce serait au mieux la mise au placard et au pire probablement une incitation à quitter la compagnie à brève échéance ?

La réponse fut naturellement : « oui, nous savons faire ; nous prenons ».

 

3.1         Les hypothèses de départ.

Au lancement du projet les données, les hypothèses et les projections étaient alors les suivantes :

-          Intel va annoncer commercialement son processeur au maximum en début 2000 (et naturellement les performances annoncées seront atteintes),

-          Il y aurait rapidement des plates-formes matérielles construites sur la base de ce processeur,

-          Il y aurait des compilateurs adaptés à l’architecture EPIC. Intel en avait d’ailleurs déjà un, ainsi que Microsoft,

-          Les acteurs majeurs du développement des systèmes d’exploitation ont des projets sur base Merced. Microsoft a déjà un compilateur et va adapter Windows (nouvelle version « Whistler » sur 64-bits), et IBM s’est aussi lancé dans le développement d’un compilateur et va adapter AIX (projet "Monterey").

 

3.2         Les objectifs et les choix d’architecture

L’objectif numéro un du projet était naturellement que la nouvelle plate-forme soit un « vrai » DPS 7000, ce qui veut dire que pour un client les applications soient exécutables en l’état (c’est à dire au niveau binaire sans re compilation), qu’il n’y ait rien à retoucher (c’était à peu de choses près la règle générale chez les clients à chaque introduction de nouvelle machine de la ligne de produit depuis des années),  que les investissements matériels des clients soient préservés c’est à dire dans la pratique que la majorité des périphériques soient re-connectables sur la nouvelle machine[2]. Objectifs très ambitieux.

Dans le même temps il était évident qu’il ne fallait pas tout réinventer et que tout ce qui pouvait être récupéré des développements faits dans la profession devait l’être pour minimiser les coûts, qui étaient déjà estimés conséquents.

 

Samuel Hanin, jeune chef de projet de Diane, après avoir eu un rôle très moteur dans l’activité des diverses équipes d’études, sût convaincre au cours de trois revues technique de conception (CDR : Conceptual Design Review), de la solidité des options d’architecture et de la viabilité du plan de réalisation.

 

Il en est résulté les choix majeurs ci-dessous :

-          pour la compatibilité binaire des applications (ainsi que pour la majorité des outils et produits de Bull tournant sur GCOS 7), choix d’une technique qui reproduise intégralement le jeu d’instructions du DPS 7000 défini dans l’ « Interior Decor ». On peut considérer que cette technique était déjà celle qui était utilisée sur les plates-formes traditionnelles de la ligne puisque le « Décor » natif du DPS 7000 était réalisé par le développement d’un micro-logiciel ainsi que d’un micro-noyau, offrant au-dessus du processeur matériel proprement dit (qui pouvait ainsi évoluer d’une machine à l’autre) une visibilité logicielle invariante définie par une spécification stricte. Il fut décidé de réaliser un interpréteur qui reproduirait, au-dessus du processeur Merced, la spécification du Décor du DPS 7000 : c’est le « Décor V7000 ».

-          pour la plate-forme elle-même, choisir à la base une plate-forme « standard » de l’offre Bull qu’il serait possible de compléter par un ensemble de composants matériels qui la personnaliseraient en un véritable DPS 7000. C’est ainsi que fut fait le choix de serveurs de l’offre NEC sur Merced (machine AZUSA).

-          pour la gestion des interfaces matériel (à l’exception de l’interpréteur V7000) s’appuyer sur les développements du monde standard : ce qui conduisit au choix de Windows pour assurer l’initialisation de la machine, la gestion des interfaces matériels (interfaces graphiques, périphériques, …) et plus généralement toutes fonctions liées aux divers éléments matériels du système. A ce niveau on peut se poser la question du choix de Windows, plutôt que de celui d’AIX puisqu’il existait le projet Monterey chez IBM ? Au cours de l’analyse initiale, il avait été fait l’hypothèse que s’il y avait un choix entre Windows 64-bits et Monterey avec le seul critère de délai, c’est Windows qui serait prêt le premier et permettrait d’assurer la tenue du plan du Projet Diane. La suite de l’Histoire avéra très fortement cette hypothèse puisque IBM rencontra tout d’abord un certain nombre de difficultés sur la réalisation d’un compilateur EPIC puis abandonna en final le projet Monterey d’adaptation d’AIX pour des raisons stratégiques[3] et se recentra sur une stratégie Linux.

-          pour le support des entrées/sorties, réaliser des modules logiciels qui tourneraient sur Windows et interfaceraient avec l’interpréteur de V7000, pour prendre en charge les programmes canaux générés par GCOS 7 et les transformer en entrées-sorties Windows en mettant en œuvre les pilotes de cartes et de périphériques. C’est le rôle des modules IOP (Input/Output Processors). Pour les télécommunications une approche semblable consistera à reproduire par le développement d’un composant logiciel tournant sur Windows et intégré à V7000 (VCP7), le fonctionnement des serveurs de communication du DPS 7000 qui supportent les divers protocoles de l’offre (dont DSA …).

-          pour l’optimisation des échanges entre V7000 et Windows, développement d’un mécanisme de liaison rapide, via mémoire partagée avec dispositif de synchronisation[4],

-          pour l’administration, création de modules logiciels tournant sous Windows (modules SAM : System Administration & Management) et assurant l’administration de GCOS 7, de V7000, de VCP7 et des modules d’interopérabilité. S’y ajoute également les produits d’administration de la plate-forme matérielle elle-même, qui fait partie de l’offre NEC.

-          pour l’interopérabilité, une approche technique qui doit s’appuyer sur tous les protocoles et produits standard offerts sur Windows (ex. : sockets, FTP, TCP/IP, machine virtuelle Java, Web Server, …) et offrant aux clients les services de l’offre GCOS 7 comme sur les versions précédentes.

 

Cet ensemble d’adaptations constituera la nouvelle offre GCOS 7 qui comprendra une nouvelle version du système d’exploitation (V10) et l’ensemble V7000.

4           Un revirement de dernière minute et l’annonce de 2001

4.1         Les difficultés de Merced .

Au cours de l’année 2000, un certain nombre de difficultés se présentèrent, qui commencèrent à donner de sérieux doutes sur la possibilité d’une annonce commerciale de la nouvelle plate-forme DPS 7000 à la date prévue (début 2001) : difficultés dans le développement des compilateurs EPIC et dans leur capacité à générer du code optimisé pour le processeur, instabilité du fonctionnement des premiers « chips » Merced et corrections successives, performances situées relativement loin des objectifs annoncés, instabilité du fonctionnement de Windows 64-bits (Whistler). On imagine bien qu’il était relativement difficile de faire admettre à Intel que le fonctionnement de Merced n’était pas satisfaisant et que le projet prenait du retard. Il devenait impossible de prévoir la date d’arrivée de Diane en clientèle !

Malgré la réalisation d’une première démonstration réelle aux clients GCOS 7 sur plate-forme 64-bits, qui fut faite aux Etats-Unis au cours de la réunion annuelle des clients en octobre 2000, et qui fut un succès[5], il fut décidé de lancer d’urgence un programme de secours pour assurer l’annonce de 2001. Ce programme consista dans son principe à substituer Windows 2000 32-bits à Whistler 64-bits et une plate-forme NEC Xéon à la plate-forme NEC Merced, puis à revalider l’ensemble. La crainte fut alors que les performances de cette nouvelle plate-forme sur Xéon ne soient pas adéquates pour assurer une offre commerciale DPS 7000 viable. Paradoxalement, les performances avec Xéon se révélèrent meilleures qu’avec les versions provisoires et expérimentales des premiers processeurs Merced[6], et il fut possible de constituer une offre d’entrée de gamme d’une nouvelle série de DPS 7000, tout à fait compétitive par rapport à l’offre courante de la ligne. En final, Intel annonça Merced en 2001 sous le nom commercial d’Itanium (premier élément d’une nouvelle famille de processeurs en 64-bits) mais dû reconnaître, tout au moins en interne avec ses partenaires, que ce ne serait qu’avec Itanium 2 (projet Mc Kinley) que les objectifs de performances seraient atteints. Merced fut alors perçu comme une première étape, permettant de construire des plates-formes de développement (et non pas de production) destinées aux sociétés de logiciels pour la construction de l’offre applicative.

On imagine les difficultés d’un plan de secours s’il n’avait pas été fait le choix de Windows : il n’y avait plus d’AIX sur Merced, et seul un choix initial de Linux[7] au début du projet aurait pu permettre de réaliser un plan de secours du même type si près de l’arrivée au but !

4.2         Le DPS 7000/XTA en mai 2001

L’annonce effective de la nouvelle série DPS 7000/XTA (eXtended Twin Architecture)[8] fut faite en mai 2001 dans le très beau site du Palais des Papes à Avignon, en présence de plus de 200 clients. Il avait été possible de créer une nouvelle gamme de systèmes, dont seuls les modèles d’entrée étaient disponibles à l’annonce, mais dont les autres modèles allaient venir au fur et à mesure de l’arrivée de nouvelles versions des processeurs Xéon, qui allaient apporter très régulièrement des augmentations de performances. En attendant de projeter à nouveau la construction d’une offre sur Itanium, avec la maturité du processeur.

5           Les perspectives.

 

L’architecture adoptée pour la plate-forme Diane a permis d’envisager, à partir de cette première version de système, de multiples évolutions parmi lesquelles on peut citer :

-          Le suivi régulier des progrès technologiques des processeurs au même rythme que le marché et que les autres fournisseurs de systèmes,

-          La disponibilité de nouveaux produits du monde ouvert aussi bien dans le domaine de la périphérie (connectable sur les plates-formes standard sous-jacentes du DPS 7000/XTA), que dans le domaine des logiciels d’interopérabilité disponibles sur Windows (Java, Services Web, …) et dans celui des bases de données (SQL-Server, ORACLE, …).

-          La possibilité d’ouvrir la plate-forme aux applications du monde ouvert, sans risques pour l’intégrité et la stabilité de GCOS 7, en se reposant sur les offres de « partitionnement » des systèmes (partitionnement logique via des produits de « virtualisation », ou partitionnement physique selon les possibilités offertes par les matériels),

-          La capacité d’ implanter GCOS 7 sur les nouvelles plates-formes Itanium de Bull (projet FAME / NOVASCALE) en complément des plates-formes Xéon,

-          La possibilité de construire une offre GCOS 7 / DPS 7000 sur un nouveau « socle » : Linux. Ceci pouvant répondre à de nouveaux souhaits des clients désireux d’évoluer vers ce type de solutions en particulier pour des raisons budgétaires ou en raison de directives officielles.

 

Certaines de ces évolutions sont d’ores et déjà réalisées ; d’autres sont encore à l’heure actuelle dans les cartons de Bull.

 

 

Daniel POIRSON - octobre 2004

 

 

§§§§§

 



[1] Cette architecture (EPIC : « Explicit Parallel Instruction Computing) consiste à faire exécuter au processeur plusieurs opérations en parallèle (jusqu’à 6 opérations ou instructions élémentaires pour Itanium, contenues dans 2 « mots » de 64 bits, qui sont chargés et décodés en bloc), sans qu’il y ait besoin d’inclure dans la logique de traitement, donc dans la surface de silicium, de la gestion de cohérence, de résolution de conflits ou de retour en arrière sur mauvaise anticipation. Le processeur exécute en effet les opérations en parallèle, tel que cela a été généré: c’est le compilateur qui détecte au moment de la génération du code, les opérations pouvant être exécutées en parallèle et qui l’indique au processeur par l’encodage des groupes d’instructions. Le processeur est ainsi libéré de la détection dynamique des possibilités de paralléliser les instructions élémentaires. Il doit cependant toujours maintenir un contrôle pour s’assurer de leur déroulement correct.

Un des exemples les plus classiques de cette logique est le traitement en parallèle des trois branches d’une instruction Si-Alors-Sinon (If-Then-Else) des langages de programmation : le compilateur va générer les trois suites d’opérations élémentaires du « If », du « Then » et du « Else » et va les grouper par ensembles de trois dans une suite d’instructions de 64-bits que le processeur exécutera en simultanéité. Le positionnement d’un bit analogue à un « code condition » permettra de déterminer, à la fin de la séquence de traitement, laquelle des branches « Then » ou « Else » est la branche valide dont il faut prendre en compte la sortie, en fonction du résultat du « If ».

[2] Ce dernier point a d’ailleurs été un des points les plus difficiles à traiter, dans la mesure où il n’y avait ni aux Etudes ni au Planning d’informations disponibles de la part des fournisseurs de périphériques sur leur stratégie vis-à-vis des futures plates-formes matérielles sur base Merced. Il était impossible de savoir, même avec nos partenaires, si les périphériques seraient re-connectables sur ces nouvelles plates-formes, ou même s’ils allaient avoir rapidement un programme de développement pour une nouvelle offre sur ces machines. L’attitude de la majorité des fournisseurs de périphériques à cette époque dans le contexte du programme Merced était à l’attentisme.

 

[3] IBM coopérait avec SCO sur Monterey. Mais SCO était loin d’être un partenaire fiable (sa précédente coopération avec HP s’était d’ailleurs terminée lamentablement), et IBM ne souhaitait pas « cannibaliser » sa base Aix/PowerPC en fournissant Aix à des concurrents.

[4] dispositif ayant fait l’objet d’un dépôt de brevet, et qui repose sur la technologie des sockets.

[5] on démontra la reproduction intégrale du mode opératoire de GCOS 7, les outils de développement de programmes habituels du client, et l’exécution du moniteur transactionnel TDS, sur une machine d’études venue de Paris et installée en une journée sur le site de la convention clients à Tucson en Arizona.

[6] et ce d’autant plus qu’une re-programmation en langage d’assemblage 32-bits pour une partie critique de l’interpréteur V7000 (mais de faible volume) avait permis d’améliorer les performances dans un rapport de presque 2. Ceci serait d’ailleurs nettement plus difficile, quoique possible, à réaliser ultérieurement avec le langage machine plus complexe du processeur « EPIC » Itanium.

[7] mais le choix de Linux en début 1998 n’aurait-il pas paru, à cette époque, trop hasardeux ?

[8] choix d’un nom rappelant à la fois la continuité avec les séries précédentes de machines – les systèmes Artémis avaient déjà une architecture « jumelle » par association entre des processeurs banalisés pouvant exécuter l’ensemble des programmes de la machine et des processeurs dédiés pour l’exécution d’OPEN 7 ou des gestionnaires de Bases de Données en particulier – mais aussi l’évolution et l’extension du concept avec l’architecture de Diane.