Introduction au matériel et au système

 

Pour maîtriser son ordinateur, ou pour choisir un ordinateur, il est nécessaire d'en connaitre les mécanismes fondamentaux (architecture de l'ordinateur, architecture du microprocesseur et cycle d'exécution des instructions), et aussi d'en connaître certains aspects techniques.

Notions liées au thème de la séance :

Ne sont pas traitées ici les notions concernant :

Plan : Historique, les générations. - Modélisation par machines virtuelles - Machines virtuelles, modèle en couches - Du hard au soft - Autres modèles en couche : cycle du logiciel, réseaux - Architecture des ordinateurs - Processus d'exécution d'une instruction machine. - Architecture du processeur. - Architecture de l'ordinateur.
Compléments Organes d'un PC  - Unités informatiques


Historique, les générations

 

L'histoire de l'informatique se structure en générations successives, correspondant à des innovations majeures dans l'évolution du matériel et du logiciel. Avant l'ordinateur électronique, il est de coutume de citer l'invention de l'écriture, vers -6000, le boulier chinois, et la machine de Pascal, en 1641. Coutume respectée...
Voici un essai de description chronologique de l'évolution des ordinateurs, en générations qui se chevauchent :

1ère génération

1946

ENIAC

Matériel :

lampes électroniques, MTBF -temps moyen entre deux pannes- de l'ordre du quart d'heure

Logiciel :

programmation en langage machine

Usage :

Calcul numériques de tables pour la balistique, la bombe A, etc.

2ème génération "par lots"

1955

IBM 650

Matériel :

transistor et circuit imprimé

Logiciel :

système d'exploitation batch, programmation en assembleur, puis en FORTRAN

Usage :

Calculs numériques répétitifs

3ème génération"temps partagé"

1964

IBM 360, CDC 6000, puis miniordinateurs (PDP 11)

Matériel :

circuits intégrés, parallélisme dans l'exécution pour améliorer la vitesse

Logiciel :

compilateurs de langages de programmation : FORTRAN 56, Cobol 60, Algol 60, puis Basic 64, APL 69, Lisp, Pascal 69, C 70. Systèmes en temps partagé, miniordinateurs (OS Unix 1970)

Usage :

ordinateur central d'entreprise (mainframe), spécialisé gestion ou calcul

4ème génération "bureau personnel"

1976

microordinateurs Apple II (78), puis IBM PC (84)

Matériel :

microprocesseur VLSI (inventé en 1974 par Intel) : 1 MHz, 1Ko à 8 Ko de RAM

Logiciel :

applicatifs : tableur, texteur. OS mainframes mémoire virtuelle

Usage :

Microordinateur individuel de bureau. Services informatiques d'entreprise centralisés en infocentre

5ème génération "réseau local" ?

1984

Macintosh, stations Sun

Matériel :

microprocesseurs : 8 MHz, 512 Ko à 1 Mo de RAM

Logiciel :

(MSDOS) MacOS avec icônes et souris : métaphore du bureau

Usage :

microordinateur individuel familial et de bureau, apparition progressive de la mise en réseau local, politique de downsizing en entreprise

6ème génération "internet" ?

1992

PC Wintel

Matériel :

microprocesseurs : 33 MHz, 640 Ko à 4Mo de RAM (1992), 10M de transistors, 1GHz, 128Mo
super ordinateurs : 150 Gigaflops (Fujitsu VPP 700, 1999)

Logiciel :

butineur pour le web (1994), e-mail, mutimédia, jeux 3D

Usage :

Généralisation de l'ordinateur, tandis que la puisance de calcul donne accès au traitement d'images et de sons.
Web (1991, devient grand public en 1994), Intranets (1996)

7ème génération "virtualisation" ?

2007

?

Matériel :

portable miniature, 3 GHz en 2003, sans fil : ultraportables, netbooks, smartphones (BlackBerry, iPhone,...)
connecté en permanence (WiFi, 3G, 4G...)
grappes de serveurs
super ordinateurs : Cray X1 52,4 Teraflops (début 2003) - 1 Pflops en 2009

Logiciel :

cloud computing, "on demand", ASP (Application Service Provider), SaaS (Software as a Service); suites bureautiques en ligne, Google apps...

Usage :

Concept d'objet - terminal d'internet
Intégré à la vie quotidienne, le téléphone devient terminal mobile d'accès à internet,
convergence baladeur MP3, lecteur vidéo, vidéophone, appareil photo, TV, GPS, agenda...

next génération "invasif"

?

?

Matériel :

matériel invisible, "intelligence ambiante" entièrement intégrée aux objets de la vie courante ?
serveurs en ligne & super ordinateurs

Logiciel :

entrée - sortie vocale ?
Assistance à l'utilisateur par des agents intelligents ?
Web sémantique ?

Usage :

Ne se plante plus ?
Concept d'objet - terminal d'internet ?
Complètement intégré à la vie quotidienne : technologie devenue invisible, présente quand nous en avons besoin, activée par des actions simples et intuitives...
Tout le monde apprend à pousser le mulot à l'école ?

L'avenir : les constructeurs nous vendront, comme dans les autres secteurs commerciaux, des produits de qualité, opérationnels, simples d'utilisation, dont la mise au point est achevée, et ne nous feront plus payer en supplément (sous forme de "nouvelle version") les corrections de leurs erreurs ? Document "voiture"
Date : du ressort de la science fiction.

La loi de Moore résume l'évolution accélérée : le nombre de transistors, donc la puissance, double tous les 18 mois à prix constant.
 

Couches d'abstraction

 

Un ordinateur, ensemble très complexe de matériel et de logiciel, se conçoit comme une hiérarchie d'abstractions appelées machines virtuelles. Cette hiérachie est aussi nommée modèle en couches. Chaque machine virtuelle possède son langage particulier, composé d'instructions. Ces instructions sont implémentées par la machine virtuelle de niveau inférieur, la couche inférieure, qui traduit ou interprête les instructions des couche supérieures en utilisant ses propres instructions ou services. De même chaque machine virtuelle fournit des services aux machines des couches supérieures.

Il est courant de présenter un modèle en sept couches :

couche n°
abstractions exemples  
6
applications
L4G
Les logiciels de l'utilisateur
(tableur, butineur, agenda, texteur,...)
software
5
langages de développement
L3G
Les "langages informatiques" dits de "haut niveau" :
C++, Java, Cobol, FORTRAN, VB, etc.
4
langages intermédiaires où chaque instruction symbolique correspond à une instruction de la
machine virtuelle sous jacente : ByteCode pour Java, PCode pour Pascal,
langage d'assemblage = représentation 'humaine' du LM
3
OS kernel Noyau du système d'exploitation, ajout par logiciel d'opérations
élémentaires au langage machine.
Gestion de la mémoire, des fichiers, de la mémoire virtuelle, du multi tâches, etc.
2
LM langage machine = opérations élémentaires
Le seul langage "compris" par la machine,
le langage natif, qui les rend les processeurs incompatibles entre eux
1
microprogrammes langage de programmation qui correspond exactement à l'architecture matérielle
où chaque bit d'instruction correspond à un dispositif matériel (porte,...).
Chaque instruction machine est exécutée comme une suite d'instructions microprogrammées
firmware
0
logique numérique

le « hard » ou circuiterie, lieu de rencontre de l'informatique et de l'électronique numérique
Intel Pentium, Celeron - AMD Athlon, Duron - Motorola PowerPC - etc.

hardware

 


Du hard au soft

 

Une autre description plus détaillée des machines virtuelles permet de replacer les termes informatiques courants à leur niveau dans la pile de machines virtuelles et d'expliquer leur interdépendance :

software
du logiciel ...

  • assistance à l'utilisateur : agents intelligents
  • interface utilisateur : vocale, métaphore du bureau, icônes, souris, etc.
  • logiciel d'application : tableur, texteur, ludiciel, butineur, bases de données, etc.
  • environnement de développement : AGL, débogueur, etc.
  • logiciel de développement : compilateurs, éditeurs, SGBD, etc.
  • logiciel système utilisateur : TS, spool, etc.
  • langage de commande du système et du réseau : shell, JCL, etc.
  • langage de requêtes au système : SVC, macros
  • gestionnaire de ressources, comptabilité, etc.
  • gestionnaire de mémoire virtuelle : pagination, segmentation
  • gestionnaire des fichiers (SGF, FMS)
  • gestionnaire des entrées sorties (IOCS, BIOS)
  • ordonnanceur des tâches (scheduler)
  • synchonisation des tâches (primitives P et V sur sémaphores, etc.)
  • langage machine
  • entrées sorties physiques
  • interruptions (matérielles et logicielles)
  • microcode : langage lié au matériel (registres, portes, etc.)
  • architecture de l'ordinateur (bus, ram, rom, puces, etc.)
  • architecture logique des puces (portes, bus, etc.)
  • architecture physique des puces : VLSI...
  • support physique des puces : couches MOS
  • matériaux des circuits : silicium, etc.

... au matériel
hardware

Bien sur, dans les réalisations de machines du commerce, microordinateurs ou grands systèmes, toutes les couches d'abstraction ne sont pas forcément présentes, et la frontière entre les couches n'est pas partout très nette.


Autres modèles en couches d'abstraction 

 

Ce modèle "en couches d'abstraction" n'est pas propre au matériel et au système d'exploitation, elle se retrouve dans d'autres domaines de l'informatique, comme le génie logiciel, les réseaux, la compilation, etc.

Modèle du cycle de vie du logiciel :

Phases de développement

Phases de test

Etude de faisabilité

Recette sur site

Etude de besoins

Tests alpha et beta

Spécifications d'ensemble

Tests fonctionnels d'ensemble

Spécifications détaillées

Test de chaque fonction

Conception d'ensemble

Tests d'intégration

Conception unitaire

Tests unitaires

Codage

Modèle d'architecture des couches réseau :

Niveau
Couche
concerne

7

Application

sémantique des informations

6

Présentation

codage, cryptage

5

Session

session

4

Transport

message

3

Réseau

paquet

2

Liaison

trame

1

Physique

bit


Cycle d'exécution d'une instruction machine

 

Soit un programme en langage machine comportant à l'adresse "a" en mémoire l'instruction "accu <- not accu" provoquant l'inversion des bits de données contenues dans le registre accumulateur, interne au processeur. L'adresse de l'instruction à exécuter est à chaque instant contenue dans le registre "compteur ordinal" du processeur.

Dans un premier temps, le processeur va rechercher en mémoire l'instruction à exécuter :

 

Puis dans une seconde étape, l'instruction a exécuter va être chargée dans le "registre instruction" du processeur. C'est en fait le transfert du mot d'adresse "a" en mémoire vers le registre instruction :

Enfin dans une troisième phase l'instruction est décodée, pour connaitre son "code opération" et ses "parties adresses", puis exécutée :

 

 

Il y-a-t-il une limite à la vitesse des ordinateurs ?
Le processeur est cadencé par son horloge. Or le cycle horloge ne peut pas atteindre le temps de Plank, 5.4x10^-44 seconde. Alors, 2x10^43 Hertz sera la vitesse limite, ce qui est quand même 2x10^28 fois plus rapide que l'ordinateur pétaflop...


Architecture des processeurs

 

De façon très schématique, le processeur comporte en interne

  1. une UAL (unité arithmétique et logique) qui effectue les calculs commandés par les instructions,
  2. une unité de commande qui contrôle le cycle d'exécution des instructions,
  3. des registres accumulateurs pour présenter au processeur les données (ce sont des mémoires très rapides),
  4. un compteur ordinal, contenant systématiquement l'adresse mémoire de la prochaine instruction à exécuter,
  5. des bus pour le transfert des informations, larges d'un certain nombre de bits,
  6. des tampons, ou buffers, pour stocker temporairement les informations,
  7. etc.

Et le processeur communique avec le reste de l'ordinateur par des tampons internes, reliés à des bus externes.
Les transferts de données entre tampons se font toujours par un bus. L'accès au bus est commandé par des portes, activées par les signaux de validation des bus de contrôle.

Voici le schéma de principe de l'architecture d'un processeur :


Architecture des ordinateurs

Un ordinateur est composé d'un (ou plusieurs) processeur(s), de mémoires et d'interfaces (contrôleurs d'entrées-sorties). Dans l'ordinateur, le processeur accède aux mémoires et périphériques par des bus. En voici le bloc diagramme de principe, avec les trois bus de données, d'adresses et de contrôle :

Un ordinateur n'est alors qu'un assemblage de processeurs, de mémoires, de bus de données, de bus d'adresses, de tampons, de portes, de modules logiques et de signaux de contrôle.
Voici le schéma de principe de l'architecture d'un microordinateur à mots de 16 bits avec adressage sur 12 bits :

 


Les multiples et sous multiples des unités employées en informatique : 

les multiples


Quelques références


Alain Tisserant - Ecole des Mines de Nancy
Séance de cours sur l'architecture des ordinateurs

 

Document : http://tisserant.org/cours/architectures/
Avril 1999 - Dernière mise à jour : septembre 2009
Remarques, suggestions, questions, ...