Conservatoire national des arts et métiers
Architectures des systèmes informatiques
ANNEXE 02
Note sur les enseignements d'architectures des systèmes
informatiques
Année 2002-2003
Ces enseignements sont faits
en deux cours accompagnés d'exercices dirigés :
«Architectures
des systèmes informatiques» fait partie de cycles dits
probatoires d'informatique du Conservatoire National des Arts et Métiers.
Il s'adresse à des auditeurs qui ont des connaissances du niveau
d'un baccalauréat +2 d'informatique. Ses notes sont les chapitres
1 à 10 et 14 à 18 de ces documents.
«Architectures
parallèles et traitement du signal» fait
partie de cycles dits d'approfondissement. Ilk s'adresse à des auditeurs
qui ont acquis les connaissances du cours précédent. La première
partie de ce cours traite des architectures parallèles, ses notes
sont les chapitres 3 d'une part et 10 à 14 d'autre part de ces documents.
La deuxième partie du même cours, relative au traitement du
signal est enseignée par M. Roger Tauleigne qui a publié
un document disponible à la librairie des arts et métiers.
Si ce cours n'est pas ouvert, il sera utile de faire une place succincte
aux chapitres 10 à 14 dans le premier.
Notation
Dans la suite :
§N X.Y est une référence
aux Notes de cours, chapitre X, paragraphe Y,
§A Z.T est une référence
à cette Annexe, paragraphe Z, sous paragraphe T.
1. SUR CETTE NOTE : destinataires,
motifs, objectifs et contenus
Cette note a trois groupes
de destinataires :
-
les collègues qui enseignent
un de ces cours ou les deux dans un centre associé au CNAM;
-
les auditeurs de Paris qui ont demandé
à recevoir les notes de cours;
-
les auditeurs qui suivent l'enseignement
à distance.
Cette note a été
écrite pour trois motifs :
-
présenter les voies et moyens
d'exposition des cours et leur usage;
-
présenter aux collègues
un déroulement de l'enseignement;
-
éclairer le lecteur sur la
démarche, les objectifs et les arrières pensées du
rédacteur.
Cette note a deux objectifs :
-
justifier les partis que le rédacteur
a pris;
-
faire connaître sa démarche
aux fins de recevoir toute critique, réfutation, observation, remarque
ou commentaire.
Cette note a trois contenus :
§A 2 Des
compléments au document d'accueil asi0000
sur les modes d'exposition, l'usage des notes et la situation des exercices
dirigés à Paris.
§A 3 Les
idées directrices en matière d'enseignement, celles
d'une dizaine de collègues et celles de l'auteur : objectifs et
prétentions.
§A 4 Une
présentation raisonnée de la succession des thèmes
du cours oral.
2. LES
MOYENS D'EXPOSITION ET LEUR USAGE
Chacun de nos enseignements d'architectures
des systèmes informatiques est constitué de trois parties
distinctes :
-
les notes de cours écrites
fournies par courrier électronique;
-
le cours oral;
-
les exercices dirigés.
L'usage des notes de cours
est multiple, commençons par le plus banal :
-
libérer les auditeurs d'une
prise de notes intégrale, harassante en fin de journée;
-
constituer un fonds de lecture;
-
libérer le professeur des
détails de présentation.
Plus fondamentalement, le support
choisi a pour fin de mettre les auditeurs en situation de modifier
par eux-mêmes et profondément, les documents fournis
pour qu'ils deviennent ainsi leurs propres documents. Cette recommandation
a déjà été faite dans l'avant propos asi0000.
Pour cela, les documents sont fournis au moins une semaine avant le cours
pour que l'auditeur puisse en faire un tirage, prendre des notes sur le
document imprimé et les reporter ensuite sur le support
magnétique.
Les notes contiennent
des redites propres à les rendre lisibles sans avoir lu et retenu
tous les contenus précédents car pédagogie est longue
répétition.
Les annexes diffèrent
des notes de cours. Certaines se suffisent à elles-mêmes comme
l'annexe relative à la gestion de la couleur ou celle qui présente
un rapport sénatorial. D'autres sont des compléments comme
la comparaison de trois processeurs; un paragraphe du cours peut grandir
au fur et à mesure des lectures et des faits nouveaux. Quand sa
taille est suffisante et si son contenu n'est pas immédiatement
indispensable dans le cours proprement dit, une annexe est rédigée.
Le cours oral a pour
fin de faire comprendre le pourquoi et le comment. On y présente
et développe les idées directrices que l'on trouvera dans
le paragraphe suivant et non des techniques ou l'usage d'outils contingents.
Les exercices dirigés
ont pour objet de faire agir l'auditeur sur des points de l'enseignement
qui se prêtent à cela. Ils durent trente heures pour le cours
d'architectures des systèmes. Leur contenu pour ce premier enseignement
est :
-
la structure interne des processeurs
: bus, séquenceur, microprogrammation, adressage;
-
la gestion de la mémoire;
-
les interruptions et les moniteurs
pour le temps réel;
-
l'évaluation quantitative
des caches et des pipelines.
3. LES IDÉES DIRECTRICES
OU AXES DE PRÉSENTATION
D'abord,
il n'existe pas une seule théorie de l'informatique, mais plusieurs
théories imbriquées: logique et calculabilité, algorithmique
et analyse d'algorithmes, conception et sémantique des langages
de programmation, bases de données, principes des systèmes
d'exploitation, architectures des ordinateurs et évaluation de leurs
performances, réseaux et protocoles, langages formels et compilation,
codes et cryptographie, apprentissage et zero-knowledge algorithms, calcul
formel, démonstration automatique, conception et vérification
de circuits, vérification et validation de programmes, temps réel
et logiques temporelles, traitement d'images et vision, synthèse
d'image, robotique, ...
Robert Cori et Jean-Jacques Lévy
Cours d'algorithmes et programmation, École polytechnique
3.1 Sur la nature de ce qui
suit.
Les considérations suivantes
sont toujours en construction. L'auteur continue à éclaircir
et à ordonner ses idées.
Par ailleurs la façon
d'aborder les sujets n'est pas celle à laquelle nous sommes habitués.
Pour entrer dans la démarche, il faut de nombreuses redites et aussi
un effort pour s'éloigner de considérants habituels.
3.2
Observations, objectifs et prétentions
3.2.1 Les observations
Les cours d'architectures des
systèmes informatiques sont nombreux, disponibles dans des ouvrages
ou dans le web. Le site de la «National technological university"
http://www.ntu.edu/
en contient une liste (31 enseignements en avril 2002).
Leurs objectifs sont peu souvent
explicites, une exception est celle de Jean-Jacques Girardot de l'EMSE,
http://kiwi.emse.fr/JJG/ASI/Fiche.html
qui énonce les siens comme suit :
-
instruire l'ingénieur, satisfaire
une curiosité technologique...
-
accompagner le cours «Structures
de données, algorithmes et objets»;
-
comprendre les dysfonctionnements
liés à des défaillances du matériel ou du logiciel
ou à une mauvaise utilisation de ceux-ci.
Une analyse de ces cours
fait apparaître au moins un fil directeur principal dans chacun.
Nous avons observé les fils suivants :
-
le
jeu d'instructions le plus classique (instruction set architecture).
Exemple : le cours CS152 de John Kubiatowicz, Computer Architecture and
Engineering à Berkeley; http://www.cs.berkeley.edu/~kubitron
;
-
le jeu d'instructions accompagné
de considérations de coûts et de performances . Exemple
: le cours EE 4720 de David M. Koppelman, Computer Architecture, à
l'université d'état de Louisiane; http://www.ee.lsu.edu/koppel;
-
le jeu d'instructions accompagné
de considérations sur l'arithmétique, les formats de données,
l'évaluation des performances et l'organisation. Exemple : le
cours EE182 de Kevin W. Rudd à Stanford; http://www.stanford.edu/class/ee182/
-
toujours
le jeu d'instructions, accompagné de fortes paroles comme celles
de
Gene Amdahl dans IBM Journal of R&D, avril 1964. «What
is Computer Architecture? The term architecture is used here to describe
the attributes of a system
as seen by the programmer, i.e., the
conceptual structure and functional behavior as distinct from the organization
of the dataflow and controls, the logic design, and the physical implementation.»
et «Computer architecture is the
science and art of selecting and interconnecting hardware components to
create a computer that meets functional, performance and cost goals. This
course qualitatively and quantitatively examines computer design tradeoffs
. We will learn, for example, how uniprocessors execute many instructions
concurrently and why state-of-the-art memory systems are nearly as complex
as processors» . Ceci est suivi
deux chapitres plus loin par les pipelines, les caches, etc, alors que
ce sont choses invisibles par le programmeur. Exemple : le cours ECE 752
de 1999 de Mark Hill à l'université du Wisconsin; http://www.cs.wisc.edu/~markhill/cs752.html
-
les structures internes accompagnées
de considérations sur des facteurs techniques et des méthodes
d'évaluation. Exemple : le cours CS 252 de Randy H. Katz à
l'université de Californie;
-
la détermination systématique
des nombres de cycles avec une vision très quantitative. Exemple
: les cours EE 485 et EE 585 de Michael A. Driscoll à l'université
d'état d'Oregon;
-
la recherche des performances
et de la programmabilité dans les limites de la technique disponible
et des coûts. Exemple : le cours CS 267 de David Culler et Horst
Simon à Berkeley;
http://now.cs.berkeley.edu/~culler/cs267/
-
un composite comme
: 15% d'évolution des jeux d'instructions, 35% d'architecture des
processeurs, 25% de mémoires et adressages 25%, 25% sur les machines
parallèles . Exemple
: le cours de Arvind et Krste Asanovic au MIT qui dit explicitement «The
emphasis in this course is on architectural mechanisms and not on quantitative
performance evaluation». Le lien, suivant n'est plus actif;
http://www.csg.lcs.mit.edu/6.823
-
une présentation
systématique des éléments constitutifs d'un ordinateur
dans l'ouvrage de G. Blanchet et B. Dupouy, Architecture des ordinateurs,
Masson, 1991;
-
une présentation
systématique des composants internes d'un ordinateur généraliste,
centrée sur l'architecture d'un processeur, de la mémoire
et des entrées/sorties dans le cours de Guy Chesnot à
l'université de Marne-la-Vallée. le lien était : http://www.univ-mlv.fr/services/cours/informatique/informat.htm.
-
une vision quantitative
qui inventorie tous les points susceptibles d'affecter les performances
dans le cours CS 252 de David A. Patterson à Berkeley qui reflète
assez précisément le contenu de son livre [HEN95].
Ce cours commence de façon significative par «Review
of technology trends and cost/performance» et «This
course focuses on the techniques of quantitative analysis and evaluation
of modern computing systems, such as the selection of appropriate benchmarks
to reveal and compare the performance of alternative design choices in
system design. The emphasis is on the major component subsystems of high
performance computers : pipelining, instruction level parallelism,
memory hierarchies, input/output, and network-oriented nterconnections».
http://www.cs.berkeley.edu/~pattrsn/252S98/index.html
Cette tendance vers les considérations
quantitatives a été observée par d'autres. Edward
F. Gehringer, Ana E. Goulart, Xiaokang Sang et Chenhao Geng de l'université
de Caroline du Nord ont construit une base de données des sujets
d'examens et d'exercices relatifs aux enseignements d'architectures des
ordinateurs (computer architecture). Elle est accessible à partir
de http://www4.ncsu.edu:8030/~efg/
ou dans Edward F. Gehringer et al. Computer architecture course
database: Implementation and status report,
1998. La base contient
environ 240 problèmes issus de neuf cours. Ils ont trait :
-
pour plus de 90 à l'arithmétique
(formats de virgule flottante et autres), 38%;
-
pour 30 aux performances en général,
12,5%;
-
pour 22 aux jeux d'instructions,
9%;
-
pour 19 aux caches, 8%, etc.
Remarque 1 Sur l'emploi des jeux
d'instructions comme fil de présentation
Il est le plus fréquent
mais est-il le plus pertinent pour nous ?
Nous lui trouvons trois inconvénients
majeurs.
Nombre de composants importants
sont inaccessibles au jeu d'instructions car ils ne sont ni nommables ni
nommés, les caches p.e. Des composants nommés par le jeu
d'instructions peuvent n'avoir aucune existence matérielle car des
émulations plus ou moins complètes masquent l'architecture
réelle. Exemples : on exécute le jeu x86 sur les PowerPC
comme sur les processeurs Crusoe, par émulation ou traduction logicielle.
Le même jeu x86 est exécuté très différemment
sur un AMD K6, un Cyrix et un Pentium à noyau Risc. Les jeux d'instructions
et les processeurs ont des vies très différentes. Certains
jeux sont en évolution très lente, le jeu x86 date de 1978,
le jeu IBM360 des années 1960. D'autres sont abandonnés brutalement
comme l'a fait DEC à deux reprises passant des PDP aux VAX puis
à l'Alpha. Intel l'avait fait en passant du 8085 au jeu x86.
Ces considérations ne
sont pas originales mais nous les croyons pertinentes pour notre propos.
J.L. Hennessy et D.A. Patterson
[HEN95]
décomposent l'architecture d'un ordinateur suivant trois composantes
ou niveaux :
L'architecture du jeu d'instructions
est l'élément premier. Elle constitue la partie visible par
le programmeur et plus précisémment par le spécialiste
du langage d'assemblage. C'est la frontière entre le logiciel et
le matériel. C'est le domaine des concepteurs de compilateurs ou
de systèmes d'exploitation.
L'organisation de la machine
décrit les aspects qu'ils qualifient de «haut niveau»
(?) par rapport au simple matériel, c'est le système de mémorisation,
la structure du bus, etc. Cette notion d'organisation nous paraît
imprécise; elle peut couvrir la plupart des notions architecturales.
La réalisation matérielle
concerne la logique détaillée de la machine ou encore la
technique de conditionnement des puces. Elle est proprement électrique,
électromagnétique et mécabique.
Pour illustrer à quoi mène
cette vision, prenons un exemple emprunté à Michel Cubero-Castan,
INSA de Toulouse. Considérons trois machines exécutant un
même jeu d'instructions et supposons que :
-
la première corresponde au
fonctionnement présenté précédemment;
-
la deuxième utilise une technique
plus rapide et une fréquence d'horloge plus élevée;
-
la troisième possède
la même technologie et la même horloge que la seconde, mais
utilise une mémoire organisée en deux bancs, permettant la
lecture de deux mots d'adresses consécutives, en un seul cycle de
lecture.
Ces trois machines ont la même
architecture de jeu d'instructions. La première et la deuxième
ont la même organisation mais différent par leur réalisation
matérielle. La deuxième et la troisième ont deux organisations
différentes.
Guy Chesnot dans son cours à
l'université de Marne la Vallée déjà cité,
propose la définition suivante en trois niveaux :
-
le niveau microscopique des composants
électriques/électroniques présentés sous leur
aspect logique;
-
le niveau macroscopique de la composition
interne de ces parties, jeu d’instructions;
-
la vue générale ou
agencement de ces composants, relations, communications entre eux.
Néanmoins de nombreux auteurs
tiennent au seul jeu d'instructions : Mark D. Hill à l'université
du Wisconsin-Madison reprend la définition de Gene Amdahl déjà
citée qui correspondait bien à l'esprit de la série
IBM360, gamme rendue homogène par microprogrammation. Il ajoute
la proposition faite par Myers, dans «Advances in computer architecture»,
Wiley, 1981
Level
1: system architecture : interface to outside world (e.g. languages);Levels
2, 3, 4: software architecture; 2,3: programming language and 3,4: operating
system;
Level
5: computer architecture : interface between hardware and software;
Levels
6, 8, 9: Physical I/O;
Level
7: memory architecture
David M. Koppelman, de
l'université de Louisiane va plus loin dans un certain sens en écrivant
:
What
is a computer? A machine that executes instructions which read and
write memory.
What
a computer engineer does ?
-
develops
an instruction set architecture (ISA);
-
designs
hardware to execute, implement, the instruction set.
Definitions
Instruction set architecture (ISA):
Precise
definition of computer's instructions and their effects.
-
it's
all programmer needs to program machine;
-
it's
all hardware designer needs to design machine. (sic!)
Implementation
[of an ISA] : hardware that executes instructions defined by ISA.
Nous considérons
que depuis l'arrivée des circuits intégrés des années
1960, les processeurs ne sont plus la concrétisation directe de
l'automate qui exécute le jeu d'instructions et qu'ainsi :
|
Le jeu d'instructions
:
au mieux ne rend pas compte
des particularités architecturales;
au pire masque ces particularités,
Ce qui est fâcheux
pour un cours sur les architectures.
|
|
Remarque 2 Sur les empilements
d'abstractions
Un autre moyen de présentation,
souvent cité mais peu pratiqué concrètement, est d'empiler
ce que les auteurs nomment des abstractions. Il semble être apparu
avec la microprogrammation qui est implicite chez les auteurs qui présentent
l'ordinateur sous la forme de couches, p.e. A. Tanenbaum. Il consiste à
qualifier d'abstractions :
-
les micro instructions;
-
le langage machine binaire;
-
le langage d'assemblage;
-
un langage dit évolué.
Ces abstractions sont présentées
comme le moyen d'éviter la description impossible de tous les composants.
|
Les
abstractions ont le même inconvénient que les jeux d'instructions
: négliger tout composant qui ne peut être nommé
au niveau choisi.
La notion même
d'abstraction n'est jamais clairement explicitée.
|
|
Remarque 3 Sur l'emploi des sciences
de la connaissance
Jesse Prinz (université
Washington à Saint Louis) reprend les définitions de John
Haugeland, Artificial intelligence, the very idea, 1985, MIT
Press, Cambridge, Massachussets. Un ordinateur est pour lui un système
formel automatique interprétable :
-
le système est formel
en ce qu'il est muni d'un jeu de symboles précisément identifiés
et un jeu de règles (algorithme ou programme) pour les manipuler;
ses états sont atemporels, leurs changements sont définis
en termes de pas de calcul et non de temps; ils sont discrets, savoir qu'entre
deux états, il n'y en a pas nécessairement un troisième;
-
il est automatique en ce
qu'il fonctionne par lui-même;
-
il est interprétable
en ce que ses symboles ont une signification et que les règles de
manipulation les respectent.
Un ordinateur devient alors
analysable en trois niveaux :
-
le calcul;
-
le programme;
-
la réalisation.
Tout ce qui a trait aux
architectures de machines est alors renvoyé à l'activité
dite «réalisation» qui n'en est pas plus éclairée
pour autant.
Remarque 4 Sur les références
bibliographiques associées aux enseignements recensés
Les références
les plus citées dans les enseignements nommés plus haut sont
:
-
pour les architectures en général,
John
L. Hennessy et David A. Patterson, Computer architecture: a quantitative
approach , éditeur Morgan Kaufmann, deuxième édition,
1996. Disponible en français John L. Hennessy et David A. Patterson
, Architecture des ordinateurs : une approche quantitative . 2°
édition. 1010 pages. International Thomson Publishing France. Distribution
Vuibert. ISBN : 2-84180-022-9.
-
Computer Systems Design and Architecture , V. P. Heuring and H. F. Jordan
, Addison-Wesley , 1997 , ISBN
080534330X.
-
pour les architectures parallèles
David
Culler, Jaswinder P. Singh et Anoop Gupta, Parallel computer architecture,
a hardware/software approach , éditeur Morgan Kaufmann, 1997.
La référence aux ouvrages
d'Andrew Tanenbaum, très fréquente en France et en Europe,
est pratiquement inconnue aux États-Unis; nous ne l'y avons trouvée
qu'une seule fois.
Conclusions
|
Il n'y a pas d'unité
de présentation des architectures des systèmes informatiques
tout comme il n'y a pas d'unité
manifeste dans les architectures elles-mêmes.
Peut-on imaginer des fils
directeurs pertinents
alors que le dernier en vogue
est celui des aspects quantitatifs ?
|
|
3.2.2 Les objectifs de
nos enseignements
Nous avons deux objectifs : l'un
est classique, l'autre ne l'est pas.
-
L'objectif classique est
de faire connaître les faits architecturaux actuels. Il apparaît
dans les intitulés des chapitres 2 à 7. Nous ne le détaillons
pas plus avant ici.
-
L'objectif qui n'est pas classique
est d'établir le fait que les techniques mises en œuvre en matière
d'architectures ont une unité au delà de la tendance actuelle
à considérer leurs aspects quantitatifs, et de faire comprendre
celle-ci.
Cet objectif diffère donc
fortement du premier par ses prétentions
, ses prémisses et ses éléments
principaux . Son résultat est présenté dans
le chapitre 18.
3.2.3
Les prétentions
Il y en a trois, une
majeure et deux mineures.
La
prétention majeure est que les architectures ne sont
pas les produits arbitraires des imaginations et que les critères
de coût et d'efficacité ne suffisent pas à les déterminer.
Les architectures contiennent une organisation sous-jacente. Cette
organisation si on la met en évidence, constitue une vision qualitative
utilisable conjointement avec des visions quantitatives. Les
prémisses de cette prétention tiennent à ce que les
architectures ont la propriété d'être observables.
En
effet, la théorie fondatrice dit que les architectures sont toutes
équivalentes, s'interdisant par là de les construire par
déduction. La conséquence est qu'elles sont issues de l'imagination
humaine. À ce titre, elles deviennent des objets observables ce
qui nous autorise à mener une démarche inductive.
|
Des observations peuvent
mener à une induction.
|
|
Nous avons établi deux
inductions qui rendent compte du fonctionnement et des propriétés
de nos observables. Elles ne sont pas contradictoires et se complètent.
Chacune est dite prétention mineure.
La
première prétention mineure. Nous prenons pour objets
les sous ensembles de chaque machine : processeur, mémoire, cache,
bus, etc. Nous observons que le plus grand nombre de ces objets relèvent
de deux groupements : objets destinés au transport d'un point à
un autre sur un support matériel ou non et objets destinés
au transport d'un instant à un autre par mémorisation. Nous
les regroupons sous l'étiquette d'objets logistiques. Le sens usuel
actuel du mot logistique est : ensemble de techniques et de moyens qui
concourent à régler le transport et le stockage de marchandises;
nous remplaçons marchandises par données. On note de plus
que la plupart de ces objets sont munis d'une même structure mathématique,
la relation d'ordre total dans le temps ou dans l'espace. Le développement
est fait dans le §N
18.3 .
La
deuxième prétention mineure. Nous ne considérons
pas un ordinateur comme constitué de sous ensembles coopérants
ou emboités. Nous observons que les ordinateurs sont à la
fois des machines physiques et des machines de manipulation de symboles.
Nous faisons l'hypothèse que cet aspect double est interprêtable
sous la forme de deux machines que nous nommons physique et symbolique.
On constate que ces deux machines sont munies des structures de la théorie
précédente :
-
la machine physique Mp
est déployée dans des dispositifs matériels, les constituants
électroniques et magnétiques qui constituent un espace physique
Ep,
elle opère dans le temps physique Tp
;
-
la machine symbolique Ms
est déployée dans un espace symbolique Es
, espace des adresses et des noms, elle opère dans un temps symbolique
Ts
ou temps des processus.
Une machine informatique fonctionne
par la mise en relation de ces deux espaces et de ces deux temps. Le développement
est fait dans le §N 18.6.
Comme dit plus haut, le cours
n'est pas l'exposition de ces théories; elles sont un fil conducteur
qui sera l'objet d'une synthèse à la fin du cours. Les deux
schémas de construction et d'organisation des idées sont
pour la première théorie :
et pour la deuxième théorie
:

Pour aboutir à ces conclusions,
on propose trois idées directrices ou axes de présentation
:
un constat,
il n'y a pas de démarche déductive en matière d'architectures
de systèmes informatiques. Ce constat est présenté
explicitement, il est une conséquence des théories;
une proposition à établir,
il y a une unité de principes et de techniques opératoires
en matière de stockages et de transmissions, séparément
et ensemble, ce sera fait oralement au fur et à mesure des exposés;
une tendance profonde à vérifier,
les concepteurs de circuits et de machines introduisent la simultanéité
par le parallélisme architectural à tous les niveaux que
la technique autorise.
Note sur l'articulation
de l'écrit et de l'oral
Les notes de cours ne sont pas
l'exposé d'une thèse. Elles fournissent au lecteur des notions
à apprendre et des éléments de réflexion. Afin
de ne pas mêler nos propositions personnelles et les faits immédiatement
observables, on présente la partie relative stricto sensu aux théories
dans le chapitre 18. Toutefois des éléments sont épars
:
-
il n'y a pas de démarche
déductive possible en matière d'architectures informatiques
est dans le §N 2.1;
-
des exemples de logistique sont
dans les chapitres 15 et 17;
-
la tendance à toujours plus
de parallélisme dans les structures est vérifiable dans la
plupart des chapitres.
Le chapitre 18 contient :
Notre enseignement oral est évidemment
guidé par les idées directrices des théories.
Une progression rationnelle
correspond à l'ordre des chapitres. Nous l'avons expérimentée,
elle n'est pas bien acceptée par les auditeurs. L'auditeur ressent
le besoin d'apprendre le plus vite possible des techniques qu'il croit
immédiatement utiles. C'est pourquoi il est suggéré
de commencer par une très brève présentation des éléments
du chapitre 18 et de passer immédiatement après aux techniques
des chapitres 2 et suivants.
4 LES AXES
OU IDÉES DIRECTRICES
Les paragraphes qui suivent ne
sont pas le plan des notes de cours. Il s'agit d'éléments
de présentation dont on peut s'inspirer dans le cours oral. Tous
les contenus sont présents dans les notes.
4.0 En exergue
Les architectures de machines
sont très diverses aujourd'hui comme dans le temps :
-
machines synchrones et asynchrones;
-
foisonnement de composants;
-
modèles de fonctionnement
divers, piles, registres, modèles de mémoire, etc.
Il serait plus qu'utile de trouver
un fil directeur pour débroussailler ce foisonnement et avoir l'esprit
clair. Pour cela on peut chercher du côté d'une théorie
fondatrice et si l'on échoue tenter une induction à partir
de l'observable.
4.1
L'absence de démarche déductive à partir d'une théorie
fondatrice
On l'énonce sous la forme
de :
|
Il
n'est pas possible de suivre une démarche déductive
en
matière d'architectures de systèmes informatiques.
|
|
Cet axe est constitué
de trois points qui éclairent sur la matière enseignée
:
-
il n'y a pas de théorie détaillée
en matière d'architectures d'ordinateurs;
au moins peut-on «mesurer»
les ordinateurs ou leurs performances? Non, les moyens ordinaires tels
la mesure de puissance sont inopérants;l'emploi des techniques est
fonction de la technologie du moment et du besoin concret, mais non de
la date de l'invention. Des inventions oubliées réapparaissent
beaucoup plus tard.
Les arguments, accompagnés
des numéros des §§ correspondants sont :
-
Il n'y a pas de théorie
détaillée en matière d'architectures d'ordinateurs
.
L'enchaînement qui mène
à l'absence de théorie détaillée est le suivant
:
-
la vision mécaniste du monde,
monde vivant inclus, conclusions asi9995 et asi9996;
-
son introduction en mathématiques,
couronnée par D. Hilbert en 1900, §N
1.3.2;
trois théories de la
calculabilité, l'automate de Turing, les fonctions récursives,
le lambda-calcul, l'équivalence sans démonstration de ces
trois théories, §N 1.3.1 ;
-
la et les machines de Turing, §N
2.1;
-
la machine de Neumann, §N
2.1;
-
l'équivalence de tous les
ordinateurs vis-à-vis de la théorie, §N
2.1;
-
l'impossibilité pour la théorie
de fournir des modèles concrets, §N
2.1;
-
la nécessité de recourir
à des critères exogènes, §N
2.1.
-
Les techniques d'évaluation
sont inopérantes.
Les tentatives faites pour mesurer
la puissance d'un système informatique n'ont jamais abouti. Présentation
et explications : du Mips aux SPEC. Les bancs d'essai ne sont pas des mesures.
Le seul outil opérant est le décompte du temps, chapitre
8.
-
L'emploi des techniques est fonction
de la technologie du moment.
Les inventions en matière
d'architectures informatiques apparaissent sans plan visible, §§N
1.5 et suivants. On montre que leur emploi est fonction des ressources
techniques du moment. La microprogrammation en est un exemple, §N
1.5.
-
invention en 1951;
-
attente pendant 10 ans que deux
niveaux de mémoire soient réalisables;
arrivée des circuits
intégrés en plus des tores de ferrite et développement
de la microprogrammation dans les années 60 (série IBM 360
et processeurs CISC);
-
abandon dans les machines Risc;
retour sous une forme modifiée
quand les fréquences de fonctionnement des processeurs s'envolent
par rapport à celles des mémoires DRAM. Les instructions
CISC peuvent alors être exécutées par une suite d'instructions
RISC. Ce sont les micro-opérations du Pentium II et les opérations
Risc86 du K6 d'AMD §N 2.3.
On fait une présentation
analogue pour l'architecture de Harvard à partir de la proposition
d'Aïken §N 1.4, inemployée
pendant des décennies et présente aujourd'hui sous la forme
des caches spécialisés §N
3.5 .
4.2
L'unité des principes et des techniques en stockages et transmissions
On l'énonce comme suit
:
|
Les
considérations architecturales relèvent de la logistique
et
sont tournées vers sa meilleure efficacité.
|
|
La logistique est présentée
en elle-même dans les §§N 18.2 et suivants. Notre argument
majeur, la mise en concordance de deux modèles d'interconnexion
des systèmes ouverts constitue le
§N 17.3.On commence par faire trois constatations à
détailler :
-
les machines informatiques n'utilisent
à un instant donné qu'une part infime de leurs ressources;
-
les opérations de manutention
sont prépondérantes dans un ordinateur;
-
montrons que cette manutention a
un caractère d'homogénéité.
On les détaille comme suit
:
1. Les machines informatiques
n'utilisent à un instant donné qu'une part infime de leurs
ressources.
On présente des évaluations
de la proportion de l'électronique concernée par les opérations
à un moment donné et du temps passé à manipuler
les données par rapport au temps consacré aux calculs proprement
dits, §N 15.1.
-
Les opérations de manutention
consomment la plus grande partie des ressources.
Un ordinateur réalise le
calcul, le transport et le stockage des données. On établit
soigneusement la distinction entre la fonction essentielle de calcul et
la fonction principale de logistique. La première a pour base la
théorie des fonctions calculables. Elle est essentielle
car elle fonde le domaine d'utilité de l'ordinateur. La seconde
est principale car elle consomme la presque totalité
des ressources matérielles et logicielles. Par ailleurs elle est
indispensable à la mise en œuvre de la première.
Les positions relatives du processeur dans sa fonction de calcul et du
fonctionnement général de l'ordinateur sont, mutatis mutandis,
celles d'un processus de production ou d'une usine entièrement automatisée
d'une part et le reste de l'entreprise d'autre part qui déclenche
les approvisionnements, règle la production, gère les stocks
et les livraisons, §N 15.1.
La logistique est ici l'ensemble
de méthodes et de moyens opérant sur les approvisionnements,
les manutentions, l'entreposage, le conditionnement, le transport et les
livraisons dans une entreprise. Il ne faut pas la confondre avec la logistique
des années 1900 qui était notre logique mathématique.
Nous étendons l'application
de la logistique à l'ordinateur en transposant les termes de définition
relatifs à l'entreprise aux machines informatiques :
-
approvisionnements en entrées;
-
manutentions en transferts divers
disque à mémoire, mémoire à registres etc.
-
entreposage par les stockages dans
les mémoires;
-
conditionnements en organisation
de l'information, formats, etc.
-
transport en transport à
distance localement ou par un réseau;
-
livraisons en sorties.
Pour ce qui est de l'efficacité
de la logistique dans les ordinateurs, la littérature est ou bien
enthousiaste dans les documents des fournisseurs, ou bien quasiment muette.
Les seuls articles de quelque intérêt portent sur des considérations
algorithmiques, sous la désignation américaine de "space-time
tradeoff". Le lecteur s'en convaincra en consultant le web sur ce sujet.
Et pourtant, comme l'écrit Daniel J. Barret de l'université
du Massachusetts : " Space efficiency vs. time
efficiency is perhaps the most fundamental tradeoff in all of computer
science ".
-
L'homogénéité
des techniques de manutention
Son fil directeur consiste à
établir la proposition suivante par des vérifications successives:
|
Les
méthodes et les moyens architecturaux de la logistique
ne
sont pas hétéroclites;
ils
obéissent à des règles communes.
|
|
Il s'agit d'une tentative d'unification
de présentation et de compréhension.
Le propos est d'établir
expérimentalement que les techniques utilisées dans des parties
éloignées les unes des autres relèvent de méthodes
communes appliquées sous des formes techniques différentes.
Il s'agit pour l'essentiel des communications et des stockages.
La progression peut être
menée comme suit :
les mémoires associatives
et les caches, §N 3.5 sont un exemple
de présentation isolée sans fil directeur, on reprend les
caches plus tard avec la pagination et la mémoire virtuelle et surtout
pour les modèles à mémoire commune §N
11.5;la structuration en couches, §N
15.6, établit la notion de visibilité et le substrat
de la normalisation en matière de communication, on définit
:
le transport ou transport
dans l'espace est pris dans son acception classique de transport d'une
donnée d'un point à un autre,l'entreposage ou transport
dans le temps est le stockage, de courte ou longue durée, quelque
soit le support, électronique ou magnétique.
Les arguments en faveur de l'homogénéité
de chacune sont présentés à partir de leur structure
d'ordre total commune dans §N
18.3.
Ces deux dénominations
ont été choisies pour faire mieux ressentir la thèse
développée et aider sa mémorisation. L'unité
en termes de méthodes est développée par la construction
simultanée de deux modèles en sept couches homologues comme
suit :
les codes physiques employés
dans les deux cas, NRZ, Miller, modulation de fréquence, RLL, etc.
sont quasiment identiques §N 15.3
;un bus et la mémoire centrale sont des espaces adressables.
Le bus porte la donnée et l'adresse sur des supports de même
nature. Il en est de même dans la mémoire centrale, la zone
de stockage est câblée tout comme son adresse permanente dans
le circuit de décodage. La transmission série point à
point, sans adresse, est homologue du transport vers une adresse fixe comme
un registre spécialisé ou une pile câblée.
-
pour la gestion des mémoires
et la gestion des transmissions :
D'une part : les mécanismes
de gestion des supports temporels seuls sont en correspondance étroite
:
-
la pagination de la mémoire
§N
4.2 et la sectorisation des disques §N
6.2.
La page et le secteur ont une taille
fixe. L'enchaînement des pages d'un processus comme l'enchaînement
des secteurs d'un fichier ne nécessite pas que pages ou secteurs
soient contigus. Leurs contenus sont invariants par déplacement.
Les tables de pages et le tables d'allocation de fichiers sont homologues.
-
la segmentation de la mémoire
§N
4.3 et l'organisation en fichiers §N
6.2.
Le segment comme le fichier est
un ensemble connexe de données. La localisation de leurs parties
ne l'est pas par les effets de la pagination et de la sectorisation. Leur
contenu a toujours zéro pour adresse de début. Leur création
ou leur ouverture se fait par référence à deux outils
quasiment identiques : le registre de segment et l'entrée de répertoire
: Nom, adresse de début, taille, protections, etc.
-
gestion des pages §N
4.2 et gestion des blocs des caches, §N
3.3.
Les algorithmes de gestion se correspondent
étroitement, même si les meilleurs ne sont pas les mêmes
selon l'usage que l'on en fait.
D'autre part :
Il y a correspondance systématique entre la gestion des transmissions
et la gestion des mémoires. On construit pour cela en sept couches
un modèle de référence pour l'interconnexion temporelle
des systèmes ouverts parallèle au modèle ISO, §N
17.3. On illustre l'utilité de cette démarche par une
proposition de transfert de technique en §N
17.5.
4.3
La tendance profonde
On l'énonce comme suit
:
 |
La
tendance profonde en matière architecturale
est
de réaliser la plus grande simultanéité
des
traitements par un parallélisme à tous les niveaux possibles.
|
 |
Cet axe est le plus technique. Il
est le fil directeur explicite ou implicite de nombreux articles. Il consiste
à observer et décrire les idées nouvelles, les innovations,
les tendances observées. Cette tendance est visible dans les notes
de cours.Les différents niveaux de simultanéité correspondent
à des techniques de parallélisme architectural.
entre bits, années
50 à 80, par la longueur du mot en termes de registres, de bus et
d'organisation des mémoires est passé de 8 ou 12 bits à
16, 32 et 64 bits;entre mots de données par la technique
MMX qui traite simultanément plusieurs mots. Elle est une évolution
récente par rapport à l'alinéa précédent,
§N
2.2 et §N 11.3;
entre instructions , années
70 à 90, par le pipeline §N
3.1 simple puis les superpipeline et machines superscalaires;
entre groupes d'instructions
ou miniprocessus (threads) §N 11.5
sans correspondant architectural pour l'instant puisque les multiprocesseurs
à mémoire commune leurs sont particulièrement bien
adaptés; entre processus par les architectures parallèles
(chapitres 10 à 13). Les taxinomies détaillées par
écrit
§N 10.2 sont simplement
mentionnées car leur pertinence diminue. On présente plus
longuement les deux modes de communication par mémoire commune §N
11.5 et par messages §N 11.4
qui viennent à l'appui de l'axe précédent. On présente
la simulation de la communication par messages au moyen de boites à
lettres en mémoire commune. On fournit des exemples de synchronisation
dans les deux modes. Processeurs de traitement du signal. On traite les
questions de cohérence des caches;
-
entre supports : les réseaux
de disques Raid §N 6.7 .
5. RETOUR AUX ENSEIGNEMENTS
Il convient de traiter
en sus des matières précédentes :
-
les systèmes d'interruption
et leur relation avec le pipeline, chapitre 7;
à cette occasion
on montre que la première partie des systèmes d'interruptions
: recueil des demandes, choix de prise en compte est analogue aux mécanismes
d'arbitrage des bus. On peut aborder des points qui ont une incidence architecturale
-
la compression de données
(non rédigé à ce jour);
-
les architectures spécialisées
: machines langages, machines à flux de données, machines
à structures de données;
-
la gestion de la couleur
(annexe asi0004), etc.
La conclusion (annexes asi9994
à asi9999) des notes de cours est organisée en trois parties.
La première est
la conclusion relative aux idées directrices développées
ci-dessus, asi9994.
La seconde est une réflexion
sur les machines en général asi9995
et les machines informatiques en particulier asi9996.
En particulier on reprend, à propos de la machine informatique,
la distinction habituelle entre les observables physiques susceptibles
de théorie physique et les mathématiques de nature axiomatique.
Les faits, les idées, les réalisations en matière
architecturale ne sont pas des observables de la nature, ils ne sont pas
des êtres mathématiques. Nous proposons de les approcher comme
des observables produits par l'intelligence, comme un linguiste étudie
des langues ou des œuvres littéraires. Ce statut relativement
particulier les rend susceptibles de systématisation. On propose
la logistique dans le couple machine physique - machine symbolique comme
moyen de systématisation.
La troisième contient
des essais de prévision en trois parties :
court terme asi9997,
moyen terme asi9998,
long terme asi9999.
La technique asynchrone
est plus particulièrement développée comme un des
faits attendus.
On présente oralement
:
D'une part, les idées
actuelles sur les circuits asynchrones tels que présentés
dans la conclusion.D'autre part, une réalisation formant une ferme
de calcul, dont l'origine est le mémoire d'ingénieur de M.C.
Meessen (1998). L'objectif est de traiter les données obtenues
en sortie des détecteurs du futur grand collisionneur de hadrons
qui entrera en fonction en 2005 au CERN. Le débit de données
des détecteurs sera de 130Go/s. Un jeu de deux filtres successifs
réduira le débit des données utiles à 1 Go/s.
Là interviendra un système informatique qui exécutera
des programmes variés et complexes sur des paquets de données
de 1Mo chacun. L'auteur a défini un système totalement asynchrone
constitué d'éléments de base assemblés selon
le besoin. Cette réalisation encore partielle, un modèle
probatoire de quelques éléments fonctionne, est proche des
circuits asynchrones évoqués plus haut.
Conservatoire national des arts et métiers
Architectures des systèmes informatiques
ANNEXE 02
Note sur les enseignements d'architectures des systèmes
informatiques
Année 2002-2003