# IBM 360 et 370

L’IBM 360 est un ordinateur fabriqué en 1965 par la firme International Business Machines. Cet ordinateur central comportait de nombreuses innovations, dont la compatibilité très grande entre machines par la microprogrammation, et rencontra un énorme succès pour l'époque. La série 360 a massivement contribué à imposer les ordinateurs dans le monde tant scientifique que des affaires.

## Principe

La série 360 se proposait d’offrir une architecture de machine unique du plus petit au plus gros ordinateur d’IBM, afin de faciliter les changements de machine d’un modèle plus petit (la plupart des 360/20 ne lisaient que des cartes perforées) vers un plus gros, voire (ce qui n’arriva que vers 1980 avec la baisse de coût des ordinateurs centraux et l’invalidation de la loi de Grosch) d’un gros vers plusieurs plus petits. Le procédé employé consistait à microprogrammer les instructions sur les petites machines afin qu’elles exécutent les programmes des grandes, même si c’était de 3 à 500 fois plus lentement pour certaines instructions. Cela se justifiait d’autant plus facilement que :
* les machines des centres scientifiques utilisent très peu les instructions de calcul décimal ;
* les machines des centres de gestion n’ont pour ainsi dire pas recours aux instructions en virgule flottante ;
* il n’en est pas moins confortable de pouvoir passer ses programmes indifféremment sur l’une ou l’autre, et plus encore d’utiliser le même système d'exploitation sur les deux.
Par ailleurs la distinction tranchée entre machines « scientifiques » et « de gestion » devenait de moins en moins pertinente, la gestion demandant de plus en plus de calculs scientifiques (par exemple l'optimisation combinatoire pour la gestion prévisionnelle des stocks) et les calculs scientifiques portant sur des volumes de plus en plus importants de données structurées (économétrie, simulations complexes...).
La microprogrammation possédait deux avantages sur l’émulation plus classique par logiciel :
* exécution dans une circuiterie plus rapide ;
* possibilité d’opérations simultanées sur des portes logiques différentes.
Les machines devaient également pouvoir se reconfigurer en cas de détection d’éléments défectueux. Limitée à quelques circuits seulement au départ, cette possibilité de reconfiguration se généralisa au fil du temps, et permit d’aboutir vers la fin de la série à des modèles ne connaissant en moyenne que quelques secondes d’indisponibilité par an seulement. La génération suivante, nommée Série Z (alias S/390) depuis 2001, a repris, en l’étendant et en multipliant le nombre de processeurs, la même architecture.
Le développement de la gamme initiale coûta 5 milliards de dollars de 1964. Les machines furent copiées (sans autorisation) jusqu’en URSS sous le nom de projet Ryad. L’architecte principal du projet chez IBM, Gene Amdahl, créera six ans plus tard sa propre société, concurrente d’IBM. Outre celles de la Amdahl Corporation, des machines compatibles furent proposées aussi par d’autres constructeurs comme Itel (aujourd’hui disparu), Hitachi, et Fujitsu qui racheta plus tard Amdahl.
L’architecture 360/370, étendue depuis, est toujours utilisée sur la série Z d’IBM (systèmes zOS et Linux/390).
L’adressage mémoire était initialement sur 20 bits adressant donc au maximum un mégaoctet. Des modifications ultérieures le portèrent à 24 (16 Mo), puis à 31 bits (2 Go) et au-delà.
La gamme (limitée au départ à cinq modèles) fut annoncée le 7 avril 1964. Elle acceptait 40 modèles de périphériques dont l’imprimante 1403 introduite avec l’ordinateur commercial 1401 (et qui sera utilisée jusqu’aux années 1980). Le 360 comportait en standard un émulateur de 1401.
Le choix du nom 360 manifestait la volonté de couvrir tous les azimuts des applications informatiques. Lorsque la génération suivante, à laquelle il fallait bien donner un nom, fut annoncée sous le nom de 370, il fut souvent demandé aux commerciaux d’IBM si cette nouvelle gamme de machines entendait couvrir tous les azimuts plus dix degrés.

## Convention générale de nommage

La norme créée pour noter les multiples de 2$^{10}$ est le « kibi », qui veut dire « kilo binaire ». Ainsi, les tailles mémoire des 360 et 370 étaient souvent des puissances de 2, repérées par les lettres suivantes :
B : 4 kibioctets C : 8 kibioctets D : 16 kibioctets E : 32 kibioctets F : 64 kibioctets G : 128 kibioctets H : 256 kibioctets I : 512 kibioctets J : 1024 kibioctets K : 2048 kibioctets L : 4096 kibioctets
Un ordinateur pourvu de 768 kibioctets de mémoire était désigné par les lettres HI (512 + 256), etc.

## Systèmes d’exploitation principaux
### Systèmes proprement dits

* DOS/360 (en) puis DOS/VS implémenté en 1972, devenu en 1979 le DOS/VSE.
* OS (Operating System), lui-même décliné en deux versions :
** OS/MFT (Multiprogramming, Fixed number of Tasks) qui deviendra vers 1973 l’OS/VS1, puis disparaîtra,
** OS/MVT (Multiprogramming, Variable number of Tasks), qui deviendra OS/VS2, puis MVS et enfin z/OS.
* TSS (Time-Sharing System) Système d'exploitation du 360/67.
* RTOS (Real Time Operating System) 360/75. Utilisé par la NASA dans le cadre du programme Apollo.
* CP/CMS (Control Program/Conversational Monitoring System), qui deviendra VM/CMS, puis VM/370 et enfin z/VM. CP était un hyperviseur gérant des machines virtuelles sous lequel on pouvait faire tourner indifféremment des CMS, des DOS et des OS. Proposé à des clients le temps d’effectuer des migrations des DOS vers OS, il sera souvent conservé pour la très grande convivialité de CMS utilisé comme système de temps partagé.
* UTS (Universal Time-sharing System) Première mise en place d'UNIX pour architecture 360/370, ce système d'exploitation fut créé par Amdahl Corporation.
* AIX/370 quelque temps à partir de 1989, conjointement à des AIX PS/2.
* Linux à partir de la fin des années 1990 (sous z/VM).

### Moniteurs transactionnels

* CICS (Customer Information Control System). Un 3033 avec 16 Mo pouvait gérer de front 17 500 terminaux CICS. Cela étant, les unités de contrôle (3274, puis 3174) des terminaux 3270 géraient le traitement local de la frappe et du curseur en full-screen, ce qui allégeait d'autant le processeur central : il n'est sollicité que pour traiter une page d'écran (en général 24x80, puis 32x80 caractères) ou - mieux encore - uniquement le nom et le contenu des seuls champs modifiés, et non à chaque caractère frappé.
* IMS (Information Management System).

### Sous-systèmes de temps partagé

* ITF (Interactive Terminal Facility)
* TSO (Time Sharing Option, plus tard intégrée directement à MVS)
* ICCF (petit temps partagé ayant existé un temps sur les systèmes DOS/VSE)

## Série IBM 360

Cette série était munie de mémoires à tores de ferrite. Son numéro faisait référence aux 360° du cercle pour signifier qu'une gamme unique de machines pouvait maintenant couvrir tout l'azimut des besoins informatiques, scientifique comme gestion.
Le 360 vit l'ordinateur empiéter timidement sur le domaine des machines mécanographiques pour les applications de paie et de suivi. Il n'y eut que dans le domaine des tris que les interclasseuses et tabulatrices, traitant des bacs de taille quelconque à typiquement 1100 cartes par minute, résistèrent jusqu'au tout début des années 70 : la lenteur des bandes magnétiques, leur nature séquentielle (alors qu'une interclasseuse possédait souvent 12 bacs de sortie, permettant des tris en N log$_{10}$N), le prix de leur dérouleurs et leur taille, et les capacités de mémoire faibles et onéreuses, en furent une raison; néanmoins, la carte perforée assura une transition progressive entre les deux modes de traitement, non sans conflits de pouvoir dans les entreprises.

### Les modèles

* 360/20 - Le plus petit des 360, pas totalement compatible avec le reste de la famille (deux fois moins de registres) et sans compatibilité binaire non plus. Il disposait en option d’un émulateur 1401. 4 à 16 Kio.
* 360/25 - Remplaçant plus tardif du 360/20, avec cette fois-ci une compatibilité complète. 4 à 32 Kio.
* 360/30 - La « 2CV » des 360, fonctionnant soit sous DOS, soit sous TOS (Tape Operating System). 8 à 64 Kio.
* 360/40 - La « R8 » de la gamme. A connu un très grand succès. Tournait sous DOS, OS/MFT ou même OS/MVT. 16 à 256 Kio.
* 360/44 - Le modèle « orienté scientifique ». Similaire au 40, mais avec un flottant câblé et non microprogrammé, ainsi qu’une mémoire plus rapide. Possibilité de travailler sur 4 à 8 octets de mantisse. Deux précisions de calcul flottant étaient sélectionnables par interrupteur de pupitre. Ne possédant que des instructions sur demi-mot (16 bits) et mot (32 bits), il n’était pas pénalisé par les questions d’alignements de double-mots. Possédait un système d’exploitation en propre, le PS/44. 32 à 256 Kio.
* 360/50 - Un modèle considéré comme puissant pour son époque, et réservé déjà aux grandes entreprises. 64 à 2 048 Kio.
* 360/65 - Modèle de transition en attendant le 360/67.
* 360/67 - Premier et unique IBM 360 à mémoire virtuelle, et préfigurant donc le 370. Muni de registres associatifs, et pouvant être équipé en biprocesseur. Logiciel TSS largement développé à Grenoble, ainsi que son système CP/CMS. 256 à 2 048 Kio.
* 360/75 - Le plus rapide des 360. Entièrement câblé, tandis que les modèles inférieurs étaient partiellement microcodés. Crédité pour son époque de la vitesse alors effarante d’un million d’instructions par seconde (MIPS). Ne fut cependant jamais l’ordinateur le plus rapide du monde, Control Data Corporation l’ayant devancé avec son modèle scientifique 6600. Il équipe le premier centre de calcul du CNRS, nommé CIRCÉ.
* 360/85 (1968) - machine équipée d’un cache, alias antémémoire, afin de ne pas être ralenti par les accès à la mémoire à ferrite douze fois plus lente lors de l’exécution de boucles en calcul scientifique. Disponibilité d’une précision flottante étendue, de 16 octets.
* 360/91 - Premier ordinateur IBM comportant un mode pipeline. Entièrement câblé, sauf les instructions décimales (gestion), d’usage rare sur une machine scientifique et donc restant simulées par logiciel. Exécutant plusieurs instructions parallèlement, il introduit la notion d'« interruption imprécise », qui n’est plus signalée comme rencontrée à une adresse du programme, mais au voisinage de celle-ci, ce qui se révélera un cauchemar pour les programmeurs. Coût typique : 4 millions de marks (de 1970) pour celui du Max-Planck Institut de Garching, près de Munich (circa 1970).
    Son cycle mineur (processeur) était de 60 nanosecondes (16,66 MHz). Son temps d'accès mémoire (8 octets de mémoires accédés en une seule fois s'ils étaient alignés sur une frontière de double-mot)) était de 780 nanosecondes (1,28 MHz). Le modèle 91 pouvait monter à 6 Mio de mémoire principale, taille alors considérée comme gigantesque et, à presque un dollar l'octet de ferrite, onéreuse.
    Cela lui donnait environ 50 fois la puissance du précédent fer de lance scientifique d'IBM, le 7090, sans pour autant lui permettre de rivaliser en calcul scientifique pur avec le Control Data 6600.
* 360/95 - Un 91 équipé de mémoires bipolaires plus rapides au lieu de ferrites.
* 360/195 - Successeur plus rapide du 91, lui aussi entièrement câblé. Exista en version 360 puis en version 370, comportant les instructions du 370, mais pas la mémoire virtuelle de celui-ci.

## Série IBM 370

Les 370 étaient équipés de mémoires à semiconducteurs (bipolaires), et certains modèles munis d’origine de contrôleurs de communications pour le support de terminaux à écran 3270. En 1973, la mémoire virtuelle fut généralisée par une annonce unique sur toute la gamme.
| Modèle | Date de commercialisation | Processeur | Remarques |
| 370/115 | mars 1974 | IBM 3115 | Entrée de gamme, un peu moins puissant que le 360/25. |
| 370/115 modèle II | avril 1976 | | 115 plus tardif, ayant les performances d’un 370/125. |
| 370/125 | avril 1973 | IBM 3125 | Remplaçant du modèle 360/20, et qui sera lui-même remplacé plus tard par le 115 modèle II. |
| 370/125 modèle II | février 1976 | | |
| 370/135 | avril 1972 | IBM 3135 | Voisin en puissance du 360/40. Sera vite remplacé par le 370/138 à mémoire virtuelle. |
| 370/135 modèle III | février 1977 | IBM 3135-3 | |
| 370/138 | novembre 1976 | IBM 3138 | |
| 370/145 | juin 1971 | IBM 3145 | Premier ordinateur doté d’une mémoire monolithique totalement intégrée (une seule plaque de silicium) et de processeurs bipolaires 128 bits. Plus de 1 400 éléments rassemblés sur des puces d’à peine plus d'1 cm$^2$. |
| 370/145 modèle III | mai 1977 | IBM 3145-3 | |
| 370/148 | janvier 1977 | IBM 3148 | |
| 370/155 | janvier 1971 | IBM 3155 | |
| 370/158 | avril 1973 | IBM 3158 | Possédait un VU-mètre en façade indiquant la charge du système. |
| 370/158 modèle III | septembre 1976 | IBM 3158-3 | |
| 370/165 | avril 1971 | IBM 3165 | Temps de cycle 25 ns. Ordinateur général le plus rapide du début des années 1970. 2,1 cycles par instruction. |
| 370/168 | mai 1973 | IBM 3168 | Identique au 360/165, avec la mémoire virtuelle en plus. Performance poussée à 1,6 cycle par instruction. Le 168-3 était crédité de 3,5 MIPS. Cela correspondra plus tard à la puissance d’un 386/25 MHz avec cache externe de 2x32 Kio dans la gamme Intel, mais le 168-3 n’en a pas moins un thoughput largement supérieur en raison notamment de ses canaux, ou processeurs auxiliaires dédiés aux seules entrées sorties et dont il dispose en standard comme le reste de la gamme : on aurait pu gérer 40 terminaux de développement ou 200 terminaux transactionnels sur un 386/25. |
| 370/168 modèle III | juin 1976 | IBM 3168-3 | |
| 370/195 | août 1973 | IBM 3195 | |
Il existe d'autres produits dit « System/370 Compatible » basés sur divers processeurs tels :
* processeur 3031
* processeur 3032
* processeur 3033
* processeur 3081
* processeur 3083
* processeur 3084
* processeur 3090
IBM pensa quelque temps à remplacer sa ligne 360/370 par le projet FS, mais y renonça pour des raisons de coût, performances, efficacité, continuité (difficulté de reprendre l’existant) et marketing (le marché aurait mal admis un brutal changement de cap après avoir investi dans une technologie annoncée comme destinée à durer). FS fut abandonné et une partie de ses techniques reprises dans le simple cadre classique, sans la grande refonte imaginée au départ : imprimante à laser 3800, bibliothèque automatique 3850, écrans mixtes textes et graphiques 3278/3279, logiciel GDDM, migration de fichiers HFS, réseau SNA, bases de données relationnelles DB2, etc. Ce furent le système 38, puis l'AS/400, n'entrant pas en compétition avec les ordinateurs centraux, qui héritèrent le plus des avancées de FS.

## Séries ultérieures dans cette architecture

Amdahl ayant pris de vitesse IBM en nommant sa série 470, le plan de nommage d’IBM change et devient moins clair. Au début, le haut de gamme occupe les numéros 3031, 3032 et 3033, mais rapidement sont introduits des 4331 et 4341 de puissance inférieure, puis un 3081 et un 3083 difficiles à situer. L’image claire et nette de la série 360/370 se brouille totalement pendant cette période, ce qui coïncide avec un début de déclin de la position dominante d’IBM vers 1987.

## Série IBM 390

L'architecture ESA/390 (Enterprise Systems Architecture/390) a été annoncée le 5 septembre 1990. Les ordinateurs basés sur cette architecture ont été commercialisés sous la dénomination System/390 (S/390). Lors de leur introduction, ils intègrent 18 processeurs ES/9000
Les nouveautés de ces modèles intègrent :
* 1995 : technologie CMOS plus économique ;
* 1999 :
** technologie de processeurs à substrat de cuivre (mieux refroidis et donc plus rapides),
** disponibilité et prise en charge officielle de Linux,
** capacity upgrade on demand (CUOD) ou possibilité de moduler dynamiquement le nombre de processeurs en fonction des besoins, pour écluser par exemple les pointes de charge venant d’Internet.
La notion d'ordinateur central tend à s’effacer derrière celle de serveur, boîte noire dont l’architecture importe peu dès lors qu’elle répond dans les délais voulus aux transactions demandées.