Le projet Future Systems (FS) est un projet de recherche et développement entrepris par IBM au début des années 1970. Il visait à mettre sur le marché une ligne complète de produits informatiques révolutionnaires, qui auraient exploité les technologies les plus modernes pour simplifier de façon drastique le développement des applications informatiques. Ce projet a été abandonné en 1975.
Jusqu'à la fin des années 60, IBM tirait l'essentiel de son revenu et de son profit du matériel. Le logiciel et les services de support n'étaient pas facturés. Seuls les matériels figuraient au tarif, mais leurs prix couvraient aussi les coûts des logiciels et des services.
D'autres fournisseurs avaient commencé à offrir des matériels compatibles, principalement des périphériques comme des unités de bande et de disques magnétiques, à des prix significativement inférieurs à ceux d'IBM, réduisant ainsi la base sur laquelle il était possible de récupérer le coût des logiciels et des services. Au début de 1971, après que Gene Amdahl ait quitté IBM pour créer sa propre entreprise proposant des unités centrales compatibles IBM, une taskforce interne IBM (projet Counterpoint) concluait que l'industrie des unités centrales compatibles était bien viable, et que la base de facturation des logiciels et des services comme partie du prix des matériels allait rapidement disparaître.
Un autre problème stratégique était que les coûts des matériels informatiques étaient en diminution constante alors que les coûts de la programmation et de l'exploitation, constitués essentiellement de coûts de personnel, étaient en augmentation constante. Par conséquent, la part du budget informatique des clients qui irait vers les fournisseurs de matériel allait se réduire de façon significative, et avec elle la base du revenu d'IBM. Il était donc impératif pour IBM de réduire les coûts de développement et d'exploitation dans ses produits futurs, ce qui lui permettrait en même temps de réduire le coût total de l'informatique pour ses clients et d'en capturer une plus grande part.
Au même moment, IBM était sous le coup d'attaques juridiques pour sa position dominante et sa politique de "bundling" du logiciel et des services dans le prix du matériel, si bien que toute tentative de regroupage de ses offres devait être solidement justifiée par des arguments purement techniques afin de résister à toute contestation juridique.
En Mai-Juin 1971, une task force internationale fut réunie à Armonk par John Opel, alors vice-président d'IBM. Sa tache était d'explorer la faisabilité d'une nouvelle ligne d'ordinateurs qui exploiteraient les avantages technologiques d'IBM pour rendre obsolètes tous les ordinateurs précédents, bien entendu les compatibles mais aussi ceux d'IBM. Cette task force conclut que le projet valait d'être entrepris, mais que la clef de son acceptation par le marché était une réduction massive des coûts de développement, d'exploitation et de maintenance des logiciels d'application.
En conséquence, les objectifs majeurs du projet FS furent définis comme suit :
Le projet FS prenait également en compte les problèmes suivants pressentis par IBM :
Le projet Future Systems (FS) fut lancé officiellement en Septembre 1971, à la suite des recommendations d'une task force spéciale réunie au deuxième trimestre 1971. Par la suite, plusieurs autres projets de recherche dans divers sites d'IBM fusionnèrent avec le projet ou lui furent associés.
Pendant toute sa durée, le projet FS se déroula dans des conditions de sécurité et de confidentialité très strictes. Le projet était divisé en nombreux sous-projets affectés à des équipes différentes. La documentation était découpée de la même façon en nombreux éléments, et l'accès à chaque document était soumis à vérification de la réalité du besoin réel par un organisme central du projet. Chaque document faisait l'objet d'un suivi et pouvait être rappelé à tout moment.
Une conséquence était que la plupart des personnes qui travaillaient sur le projet n'en avaient qu'une vue extrèmement fragmentaire, limitée à ce qu'ils devaient en savoir pour produire la contribution qu'on attendait d'eux. Certaines équipes travaillaient même pour le projet sans le savoir. Cela explique pourquoi, quand ils sont amenés à définir ce qu'était FS ou pourquoi le projet a été abandonné, la plupart des gens donnent une réponse très partielle, qui ne mentionne que la partie du projet FS qui entre dans leur domaine de compétence.
La mobilisation fut grande : "le projet FS a mobilisé 2 500 personnes. Ses responsables avaient des droits de tirage sur le personnel de toutes les unités IBM. J'avais un travail à Paris et on m'en a sorti du jour au lendemain pour m'envoyer à New York. Pour vous montrer la foi qu'on avait dans IBM, je n'ai pas entendu dire que quelqu'un ait refusé cette mobilisation, ni l'ait regrettée" (Jean-Jacques Duby, directeur du développement scientifique à IBM France; article mentionné en lien externe).
Trois implémentations de l'architecture FS étaient prévues : le modèle de haut de gamme était conçu à Poughkeepsie (état de New York), où étaient produits les ordinateurs les plus puissants d'IBM's ; le modèle de milieu de gamme était conçu à Endicott (état de New York), qui était responsable des ordinateurs de milieu de gamme ; le plus petit modèle était conçu à Rochester (Minnesota), qui avait la responsabilité des ordinateurs d'entrée de gamme.
Une gamme continue de performances pouvait être obtenue en faisant varier le nombre de processeurs par système à chacun des trois niveaux d'implementation.
Au début de 1973, la direction d'ensemble du projet, ainsi que les équipes responsables des couches les plus externes communes à toutes les implémentations furent regroupées au laboratoire ASDD de Mohansic, à mi-chemin entre les sièges d'Armonk/White Plains et Poughkeepsie.
Un principe essentiel de FS était celui de la mémoire à un seul niveau ("single-level store") qui étendait l'idée de mémoire virtuelle à la totalité des données, temporaires ou persistantes, et rendait invisible au programmeur une quelconque différence entre accès à une base de données, à un fichier ou à un objet en mémoire. La mémoire de travail, les fichiers et les bases de données étaient accessibles de façon uniforme à travers une généralisation de la notion d'adresse. Les développeurs n'avaient donc pas à se soucier de la localisation physique des objets auxquels ils accédaient, ce qui devait faciliter la programmation et réduire les coûts de développement de logiciel.
Le réalisation de ce principe demandait que le mécanisme d'adresssage, qui est au coeur de la machine, incorpore un système complet de gestion de la hiérarchie des mémoires et des parties importantes d'un système de gestion de bases de données, qui jusque là étaient réalisées sous forme de logiciels extérieurs à la machine proprement dite.
Un autre principe était l'utilisation d'instructions de haut niveau très complexes réalisées sous forme de microcode. Par exemple, une des instructions, CreateEncapsulatedModule, était un éditeur de liens complet. D'autres instructions étaient conçues pour supporter les structures de données et les opérations des langages de programmation de haut niveau tels que FORTRAN, COBOL et PL/I. En réalité, FS était conçu comme l'ordinateur à jeu d'instruction complexe (CISC) ultime.
Une autre façon de présenter la même idée est de dire que tout l'ensemble des fonctions qui auparavant étaient réalisées sous forme de circuits, de logiciel système, de logiciel de bases de données, et plus encore, étaient maintenant considérées comme faisant partie d'un seul système intégré, chacune des fonctions élémentaires étant implementée dans l'une des nombreuses couches allant des circuits au logiciel conventionnel. Plusieurs couches de microcode et de code étaient prévues, quelquefois désignées par les termes de millicode et de picocode. Selon la personne qui parlait, la notion même de "machine" pouvait varier depuis les seules fonctions réalisées sous forme de circuits (pour le spécialiste des matériels) jusqu'à la totalité des fonctions offertes aux utilisateurs, indépendamment de leur réalisation (pour les achitectes système).
Le plan d'ensemble prévoyait aussi un "contrôleur universel" pour traiter principalement les opérations d'entrée-sortie en dehors du processeur principal. Ce contrôleur universel devait avoir un jeu d'instructions très limité, réduit aux instructions nécessaires aux entrées-sorties. Il annonçait ainsi le concept d'ordinateur à jeu d'instructions réduit (RISC).
Sur cette idée, John Cocke, un des principaux concepteurs des premiers ordinateurs IBM, lança un projet de recherche destiné à concevoir le premier ordinateur RISC. Par la suite, l'architecture RISC, qui au sein d'IBM évolua vers l'architecture Power et PowerPC, devait se révéler beaucoup moins chère à réaliser et capable de cadences d'horloge bien supérieures.
Les raisons de l'abandon du projet en 1975 sont mal connues. A cause du cloisonnement mis en place pour préserver la sécurité, les raisons invoquées dépendent de l'interlocuteur, qui met en avant les difficultés rencontrées dans le domaine avec lequel il est familier.
Quelques raisons citées sont:
Vers la fin du projet, il apparaissait que le coût de migration de la masse des investissements des clients dans des applications écrites en assembleur et en COBOL serait souvent supérieur au coût d'acquisition d'un nouveau système. De plus, la modification des habitudes s'avérait telle que la coexistence obligatoire pendant plusieurs années des deux systèmes serait une source de coûts énormes pour le constructeur comme pour ses clients.
En réalité, la réussite du projet nécessitait un grand nombre de percées dans tous les domaines, allant de la conception et de la fabrication des circuits jusqu'au marketing et à la maintenance, en passant par l'architecture et toutes les formes de logiciel. S'il était concevable que chacun des problèmes pris isolément soit résolu, la probabilité qu'ils puissent tous l'être dans les délais et de façon mutuellement compatible était pratiquement nulle, surtout compte-tenu des nombreux débats internes quant aux différentes voies de solution envisageables.
Les développements de FS furent plus onéreux que prévu. Des concepts qui nous sont aujourd'hui familiers n'existaient alors même pas, et les découvrir a impliqué beaucoup d'essais, de fausses pistes et de tâtonnements.
Pour les 370, les retombées les plus immédiates furent :
Un système d'entrée de gamme inspiré du FS fut le Système 38, qui déconcerta un peu par ses concepts inhabituels, mais fut suivi d'un successeur nommé AS/400 qui connut un succès plus fort qu'attendu, et resta jusqu'à la fin des années 1990 un des fers de lance d'IBM. Seul problème : la gamme devait être étendue par le haut, les utilisateurs d'AS/400 n'étant pas enthousiastes du tout pour repasser au 370 et à ses successeurs.