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