CNAM VARI
cours: Architecture des systèmes informatique
Chapitre IV
HISTORIQUE
Il est probable que l'on peut faire remonter l'histoire de l'informatique
quasiment au temps des premiers hommes des cavernes lorsqu'ils ont commencés à
compter. Rappelons que calculs a pour origine cailloux, car on a commencé à compter
avec des cailloux. Et que digital (digitaliser) vient de doigt.
Vers 2500 avant J-C, apparaissaient les premiers bouliers qui permettaient d'effectuer
des opérations arithmétiques élémentaires (addition, soustraction, multiplication et
même division). Les quipu, cordelette à noeuds sont peut-être encore plus anciennes.
Les premiers dispositifs mécaniques d'aide au calcul apparaissent
seulement à la Renaissance. Blaise Pascal invente, en 1642, une machine permettant
d'additionner et de soustraire, pour simplifier la tâche de son père, commissaire
pour la levée des impôts. En 1672, le mathématicien allemand Gottfried Wilhem Leibniz
conçoit une machine réalisant les quatre opérations arithmétiques. Jusqu'au XIX ème
siècle, ces machines seront copiées sans qu'on y apporte d'améliorations significatives.
Le développement des techniques de réalisation d'automates: horloges astronomiques,
canard de Vaucanson, capable de faire les mouvements du vol, de boire ou de manger
allait être stimulé par celui des industries naissantes, en particulier de l'industrie
textile pour laquelle Jacquard, perfectionnant en 1801 une invention de Vaucanson
(1745) crée la carte perforée destinée à commander des métiers à tisser.
Avec plus d'un siècle d'avance, l'anglais Charles Babbage propose en 1822 sa "machine
différentielle" permettant d'élever un nombre à la puissance n et en 1833, sa "machine
analytique" où on retrouve les trois éléments essentiels de nos calculateurs: un organe
d'introduction des données (cartes perforées ou cadrans), un organe de sortie des résultats
(cartes perforées, cadrans ou papier) et un organe de contrôle et de calcul qui utilisait
des dispositifs mécaniques. Une mémoire était réalisée par l'intermédiaire de roues dentées
tandis que les opérations à effectuer étaient introduites à l'aide de cartes perforées.
La machine de Babbage, limitée par les possibilités techniques de l'époque, c'est à dire
par les restrictions d'ordres mécanique (elle aurait demandé plus de 50000 pièces mobiles),
restera à l'état de plans, et ses idées seront presque toutes "redécouvertes"
indépendamment dans les années 40.
Nous avons vu que Alan Turing avait marqué l'histoire en inventant l'ordinateur
à la fin des années 30. Sa mort mystérieuse et tragique à laissée à d'autres le soin de
continuer l'histoire. En 1943 John Von Neumann définit un modèle de machine
particulier qui s'appuie sur la machine de Turing mais la spécialise, cette machine est
constituée d'une unité principale de traitement, d'une mémoire unique et d'organes
périphériques. Il introduit le modèle de l'exécution séquentielle ainsi que la notion de
programme dans la mémoire.
La théorie va pouvoir se mettre en pratique car on va remplacer les systèmes mécaniques,
trop lents, par des systèmes électriques puis électroniques.
Le premier système portant le nom de calculateur électronique, a été la machine de
Havard d'IBM, à base de relais construite en 1943. La première en technologie
électronique fut ENIAC, (Electronic Numerical Integrator And Computer) construite
par Eckert et Mauchly, exploité de 1946 à 1952. Ses capacités étaient de 5 mille
additions ou 350 multiplications par seconde, avec une mémoire de 20 mots de 10
chiffres, prolongés par des cartes perforées externes. Le programme était fixé
sur un tableau à fiches comme en avait les centraux téléphoniques manuels.
Les calculatrices d'aujourd'hui ont une architecture définit par Von Neumann. Cet auteur
définit à Princeton en 1947 les six spécifications suivantes:
1 Les instructions et les données sont enregistrées.
2 Elles sont logées dans une même mémoire découpée en cellules
3 Cette mémoire est unique et banalisée
4 Les contenus de la mémoire sont accessibles pour la lecture et l'écriture par
la localisation de leur contenu ou adresse de la cellule, indépendamment de son contenu.
5 La commande de l'ensemble, incluant les circuits d'execution des opérations est
strictement séquentielle, instruction après instruction dans l'ordre des cellules mémoire
sauf modification expresse nommé branchement. L'exécution de chaque instruction est
achevée avant que la suivante soit prise en compte
6 Une unité de traitement réalise un jeu complet d'opérations de l'algèbre de Boole
entre les contenus de cellules particulières nommées registres.
Ces spécifications, de nature opératoire, ne remettent pas en cause la théorie des fonctions
calculables et la machine de Turing. Au contraire elles réduisent et systématise les idées
qui étaient dans l'air durant les années 30 à 40.
La grande majorité des ordinateurs de la planète ont une architecture de Von Neumann.
Le programme enregistré apparaît sur l'EDVAC de Von Neumann , Eckert et Mauchly
construit en 1947 et opérationnel en 1950. En 1948 IBM réalise SSEC de Hamilton et
Sheebert.
En grande Bretagne les travaux d'Alan Turing sont longtemps restés secrets jusqu'à la
sortie de ACE en 1950, 40 machines ont été construites jusqu'en 1964 sous le nom de
DEUCE. Dès 1949, la machine de Manchester MADM de Newman, Williams et Good est
produite sa mémoire était constituée de tubes électrostatiques, elle avait 128 mots
de 40 bits, 26 instructions de 20 bits et un tambour de 1024 mots. Dans les même
années Wilkes qui inventa la microprogrammation construit EDSAC avec une mémoire
faite de lignes à retard à magnétostriction.
Le premier ordinateur français est CUBA, Calculatrice Universelle Binaire de l'Armement
livrée la par SEA en 1952, suivie par des machines à tambours, puis par les CAB
Calculatrice Automatiques de Bureau, CAB 500, CAB 1500, CAB 2000 et les machines
GAMMA de la compagnie des MAchines BULL.
A la fin des années 40, les cuircuits sont réalisés avec des lampes (le transistor est
inventé en 1947 ). Les modalités de réalisation sont l'objet de grandes discussions
portant, en autre, sur l'enregistrement des adresses: l'instruction doit-elle contenir
ou non trois adresses (deux logiques et la destination) ou seulement deux ou une seule?
Quelle type d'algèbre faut-il utiliser Décimale, Ternaire, Binaire?
Les années 50
Au début de cette décennie, il est admis qu'une cinquantaine de machines telles que
l'IBM 704 suffisent pour satisfaire les besoins de calcul des Etats-Unis; à la fin
des ces années on reconnait qu'il en faudra des milliers.
Toutes les considérations architecturales de ces années tendent à économiser le
matériel, encore à lampe au début, à transistor à la fin. Ces composants sont
toujours cablés l'un après l'autre et testés à grand frais. La mémoire est portée
par un tambour, par des lignes à retard a magnétostriction ou par des tores
magnétiques un peu plus tard. Le tambour à l'avantage d'une plus grande capacité,
toute relative puisqu'il contient quelques milliers de mots. Les mémoires à tore
de ferri sont plus rapide d'accès mais sont très chers. Un seul ou un très petit
nombre de registres est cablé.
La première qualité de la programmation est alors son extreme concision qui obtenue
par line chasse permanente de l'instruction superflue et du morceau de programme
réutilisable. Ceci exclut toutes les idees de structuration, de convivialite et
d'utilisation de concepts connus mais gourmands en memoire comme les piles.
Une des toutes premieres inventions complementaires est le registre d'index
defini en 1951 a l'universite de Manchester. II est imagine d'abord pour n'avoir
pas a reecrire un programme qui traiterait un meme tableau de nombres implante a
une autre adresse. II sera utilise plus tard pour appeler des SOliS programmes,
pour passer des parametres etc... Les techniques logicielles qui l'utilisent ont
fourni l'allocation dynamique de memoire, la reentrance et donc des parties
essentielles des assembleurs et des compilateurs.
Wilkes definit la micro programmation la meme annee destinee a contourner la
complexite de realisation du decodeur d'instructions. Cela systematise les idees
de Van Neuman sur l'enregistrement des ordres a executer. Les premieres
réalisations ne sont pas vraiment concluantes mais plus tard l'emulation des
machines etla notion de gamme d'ordinateurs compatibles sera basee sur cette
technique.
Dans les memes années, on veut déjà aller plus vite et surtout économiser le
temps du processeur, organe qui est alors le plus couteux. Pour cela on rend
simultanées les opérations d'entrée et sortie d'une part et les travaux dans
le processeur d'autre part. Ceci devient d'autant plus necessaire que les nouvelles
utilisations en gestion, a l'opposé des calculs scientifiques du tout début,
demandent des éditions d'états nombreuses et de grands volumes de données en
entrée. Les moyens imaginés pour cela sont le vol de cycle du processeur
(réalisation de l'entrée-sortie pendant une opération de registre à registre)
et le canal (processeur très simple consacre à ces opérations) indépendant du
processeur. La première machine de (relativement) grande diffusion est la
Mark I de Ferranti en 1951, elle est dérivée de la machine de Manchester.
La même année Eckert et Mauchly font produire Univac I, deduit de EDVAC, on
y emploie les bandes magnétiques pour la première fois.
La machine la plus innovatrice du début des annees 50 est WHIRLWIND, ordinateur
pour Ie temps réel destiné à la défense aérienne des Etats-Unis, mis en service
en 1951. II contient une mémoire à tores, 2048 mots de 16 bits et un embryon
de langage de programmation. En 1953 IBM commence les livraisons du 650 qui sera
produit a plus de 1000 exemplaires.
L'Univac 1103A en 1954, est la première machine civile a avoir une mémoire en
tores de ferrite. La representation des nombres en virgule flottante apparait en
1954 sur l'IBM 704. Le langage FORTRAN date de 1956-1958.
En 1955 le 704 a 4k mots de 36 bits. En 1957 sa mémoire est étendue a 32k mots.
En 1958 sort le 709 avec canaux d'entrées et sorties, gestion des interruptions,
partage de la mémoire entre le processeur et les canaux.
Le multitraitement apparait en 1959 sur LARC d'Univac. 1.3.
Les années 60
Construire un ordinateur n'est plus line gageure. La première moitie de la
décennie ne voit pas de grands changements ni dans les principes ni dans Ie
matériel. Les transistors apparaissent dans les RCA 501 en 1958, GE 210 en 1959,
IBM 1401 qui est produit a partir de 1959 en 20 000 exemplaires et BULL Gamma 60
réalisé en 1960. Les machines sont ainsi moins volumineuses plus fiables et moins
coûteuses. Ce sont les circuits integrés et non de nouvelles idées d'architectures
qui ont un impact majeur en matière d'ordinateurs, et cela bien que l'intégration
soit encore a petite échelle. (Circuits SSI : Short Scale Integration puis MSI :
Medium Scale Integration, quelques dizaines a quelques centaines de portes). La
réalisation la plus importante est la série IBM 360 a partir de 1964. La
microprogrammation y est utilisée systématiquement alors qu'elle date de treize ans
déjà. Au lieu de se contraindre a n'utiliser le nombre minimal de composants il
devient alors économique de mettre en oeuvre des circuits tous identiques
quitte a n'utiliser qu'une partie de leurs fonctionnalités. Cette perte apparente
en termes de transistors ou de portes utilisés est plus que largement compensée par
deux économies, d'échelle dans leur fabrication et surtout la diminution du coût
d'assemblage par la réduction du nombre de soudures. II y a là une ébauche de
standardisation des composants qui conduit a imaginer des structures régulières
comme le bus unique pour l'implantation des circuits et leur cablage.
Les registres généraux (huit ou seize) deviennent une réalite économique a la
place du seul accumulateur. Toujours dans l'unité centrale, la virgule flottante
est généralisée (cablée en double précision des l'IBM 709 en 1959). Dans la même
machine on trouve une possibilité d'anticipation.
La multiprogrammation apparait dans le STRETCH (IBM 7030) en 1960, la pagination et
une ébauche de mémoire virtuelle dans l'Atlas de Ferranti en 1961. En 1964, Control
Data produit le CDC 6600, machine multi opérations, définie par Seymour Cray, avec
plusieurs unités fonctionnelles alimentées en barillet par un distributeur
d'instructions et de données. De 1962 à 1964, Burroughs produit les B5000 et B5500
specialisees dans l'execution des programmes ecrits en Algol (machines langages) et
introduit la segmentation. La structure de bus simplifie et normalise les échanges
internes, les entrées et sorties et la connexion de périphériques. Cette tendance a
l'architecture simple et régulière organisée autour d'un bus unique fonde le
miniordinateur (DEC PDP8 organise autour de l'Unibus).
La lenteur relative des périphériques d'entrée et sortie avait déjà les palliatifs
cités plus haut. Les différences qui existent toujours entre les temps d'accès et les
performances des processeurs conduisent a la multi-programmation et au partage de
temps pour saturer ces derniers encore chers, multiprogrammation sur IBM STRETCH
(7030) en 1960, partage de temps sur le CTSS au MIT en 1961.
La multiprogrammation rend necessaire l'augmentation du nombre d'instructions de base
notamment pour les changements de taches, Ia protection de Ia memoire et la gestion des
priorités pendant que la micro-progammation enfin realisée rend cet accroissement peu
couteux (ce qui n'aurait pas ete Ie cas Si le séquenceur etait resté cablé).
La diffusion massive de cette dernière technique se produit quand les constructeurs
veulent creer des gammes de machines compatibles entre elles.
Une autre invention majeure de cette decennie est la mémoire virtuelle qui combine
plusieurs techniques:
*La translation dynamique des adresses,
*La pagination qui part age l'espace d'adressage en pages, independamment de leur
localisation physique. Elle fournit les deux possibilites d'extension et de contraction
apparentes de la memoire centrale (ATLAS Ferranti en 1961 avec memoire virtuelle).
*La segmentation des programmes et des données qui découpe les blocs d'informations
en ensembles logiques. Les segments, de par leur homogenéité peuvent recevoir des
attributs de protection et des droits d'acces,
*La mémoire cache ou antemémoire, tres rapide, ou sont rangées les parties
du programme et des données en cours d'emploi. Cette derniere complete (au moins pour
l'instant) un étagement régulier des temps de réponse des différents supports de mémoire
registre, antémemoire, mémoire, disque, bande.
Les années 60 ant été aussi l'époque ou apparait le multitraitement et des multiprocesseurs
(ILLIAC IV au MIT) que Flynn catégorise en :
Simple Instruction, Simple Donnee SISD
Simple Instruction, Multiples Donnees SIMD
Multiples Instructions, Simple Donnee MISD
Multiples Instructions, Multiples Donnees MIMD
Les années 70
En 1971, Intel corporation, fabricant de circuits electroniques loge dans un seul circuit
integré les trois composants d'une unité centrale: la logique de commande, le sequenceur
et les opérateurs arithmetiques et logiques. Ce circuit, nommé 4004, opère sur des mots
de 4 bits et a une capacité d'adressage faible. II est concu pour l'horlogerie et non
comme processeur d'ordinateur mais il est rapidement suivi par des réalisations dans deux
directions:
.soit le microprocesseur proprement dit (Intel 8008 puis 8080, 8085, 8086 etc..,
Motorola 6800 puis 6809, 68000, etc..., ainsi que par d'autres constructeurs Fairchild,
Mostek, qui auront des succès moindres)
.soit un jeu de circuits dits 'en tranches', National Semiconductor IMP 16, American
Microdevice 2900 puis 29000, Intel 3002.
Les microprocesseurs relèvent de la même architecture et des mêmes principes
que les processeurs conventionnels. Ils n'en diffèrent que par leurs dimensions, leur
prix et, a leurs débuts, par leurs performances. Mais ces différences sont essentielles
pour leur diffusion et leur réussite sur le marche.
En 1973 apparait le nom de disque Winchester. L'origine de la dénomination est
controversée et les explications sont au nombre de trois. Les deux premières citent
IBM. winchester aurait été le nom familier de l'unité de disque 30-30 (deux fois 30
megaoctets de capacité), par analogie avec la carabine Winchester du même nom
.Winchester aurait aussi été la ville d'Angleterre ou existe un laboratoire IBM de
recherche sur les disques. La troisième fait état de ce que les principaux fabricants
de disques etaient installés dans la Vallée du silicium entre San José et Paolo Alto,
le long de la Winchester Road principale artère de San José.
Le progrès continu de l'integration electronique a grande echelle a manifestement
bouleverse les techniques matérielles mais aussi par conséquence les techniques
logicielles de l'informatique. Cela tient a la disponibilité a couts décroissants
de composants de capacité croissante. L'économie de l'informatique se définit
maintenant en termes de marchés nouveaux de langages, d'ergonomie du logiciel, de
production en série de logiciels aussi bien de base que d'application.
Meme les grands ordinateurs et a plus forte raison les périphériques contiennent des
microprocesseurs et de grandes quantités de mémoire. A la fin de cette décennie, la
moisson de concepts nouveaux est maigre mais la diffusion des matériels s'amplifie,
faisant que le micro ordinateur devient une véritable innovation, au sens économique
du terme.
Les années 80
La diffusion des matériels devient explosive en nombre sinon en valeur. La normalisation
encore balbutiante dans les années 70 gagne lentement du terrain, normalisation de droit
ou de fait. Ces deux phénomènes sont étroitement liés, la plus grande diffusion abaisse
les couts, la normalisation rend moins risqués les investissements et fait baisser les
couts, la concurrence augmentée fait baisser les prix.
Les baisses de prix sont considérables. En francs courants, un bon miniordinateur valait
700 000 F en 1970. A puissance égale (de l'ordre de 0,5 Mips - million d'instructions
exécutées par seconde -), catalogue micro-ordinateur, il valait 50 OOOF en 1982, et
10 OOOF en 1987. 1 K mots de 16 bits (2K octets) étaient facturés 10 OOOF en 1970,
512K octets sont facturés 1 200F en 1987.
Au milieu de cette decennie, les progres architecturaux proprement dits sont lents, si
dits l'on n'y inclut pas l'augmentation de la densité d'intégration qui relève de la
seule électronique. probablement les concepteurs sont-ils accaparés par la course a la
technologie pour mettre en oeuvre le plus rapidement possible de nouveaux composants
compatibles avec les précédents. Ils sont surtout moins pressés par des nécessités
d'économie de moyens techniques comme ils l'étaient depuis les débuts de l'informatique.
Il s'agit plus d'apprendre a faire Ie meilleur usage matériel et logiciel de techniques
connues que d'imaginer et valider de voies nouvelles.
On note néammoins quelques nouveautés qui portent essentiellement sur:
* L'acces aux données, la machine de Van Neuman traite indifferemment taus les
emplacements de mémoire; la notion de descripteur, introduite par Burroughs est attachée
a un élément de donnée, logée bien sur dans une cellule annexe du mot de mémoire. Elle a
pour finalité de fournir au système des règles d'accès à cet élément.
Ceci correspond en matière de matériel a l'encapsulation ou aux modules de langages
récents qui limitent la visibilité des unités logicielles.
* Les jeux d'instructions. On a cru longtemps que leur tendance a l'accroissement était
irréversible, or apparait la notion de jeu réduit d'instructions (Reduce Instruction Set
Computer ou RISC, au lieu de Complex Instruction Set Computer CISC). Cette invention
impliquera les plus grands constructeurs dès 1988 et continue encore aujourd'hui.
De nombreux microprocesseurs de ce type sont apparus, depuis. Toutefois, une voie
opposée est elle aussi explorée depuis peu. Il s'agit des "mots d'instructions très long"
Very Long Instructions Word VILW.
Les années 90
Les années 2000
Récapitulatif
Quelques dates importantes:
1947 Invention du transistor
1957 Arrivée de FORTRAN
1971 Création du premier micro processeur par INTEL le 4004
Le Cray one est opérationel
Retourner au menu
© 2003 Tous droits réservés patrick Hède