Chronologie

Architecture en couches

Couche circuits

Architecture des ordinateurs
Cours 1
4 Avril,2012

Archi

1/48

Chronologie

Architecture en couches

Couche circuits

But du cours

Culture comprendre les grands principes de fonctionnement d’un ordinateur Technique manipuler des concepts basiques r´ ecurrents en informatique Informatique acqu´ erir une connaissance “bas niveau” de la programmation

Archi

3/48

Chronologie

Architecture en couches

Couche circuits

Introduction
E. Dijkstra (math´ ematicien et informaticien n´ eerlandais) : “ La science informatique n’est pas plus la science des ordinateurs que l’astronomie n’est celle des t´ elescopes ” Informatique : contraction d’information et automatique traitement automatique de l’information par des machines Architecture des ordinateurs : domaine de l’informatique centr´ e sur les machines. point de vue ` a la fois mat´ eriel et logiciel Et pour commencer, un peu d’histoire...

Archi

4/48

Chronologie

Architecture en couches

Couche circuits

Pr´ ehistoire : les abaques

Avant 1600

Abaque : instrument m´ ecanique facilitant le calcul. Exemple : boulier, bˆ atons de Neper, r` egle ` a calculer, ...

Archi

5/48

Chronologie

Architecture en couches

Couche circuits

Multiplier avec des bˆ atons de Neper

Archi

6/48

Chronologie

Architecture en couches

Couche circuits

Pr´ ehistoire

1623

Wilhelm Schickard construit une machine ` a calculer m´ ecanique en appliquant les id´ ees de Neper (r` egle ` a calculer, 1614).

Archi

7/48

Chronologie

Architecture en couches

Couche circuits

Pr´ ehistoire
Pascal pr´ esente une machine qui additionne et soustrait les nombres de 6 chiffres en base 10 : la Pascaline.

1642

Multiplication : additions en chaˆ ıne.
Archi 8/48

Chronologie

Architecture en couches

Couche circuits

Pr´ ehistoire
Leibnitz am´ eliore la Pascaline : un chariot mobile permet de faire les multiplications et les divisions automatiquement.

1672

Archi

9/48

Chronologie

Architecture en couches

Couche circuits

XIXe si` ecle

1822

Charles Babbage con¸ coit la machine ` a diff´ erences pour calculer des tables num´ eriques (pour la navigation).

Morceau de la premi` ere machine ` a diff´ erences

Machine ` a Diff´ erences n◦ 2 1854, Babbage et Scheutz.
Archi 10/48

Chronologie

Architecture en couches

Couche circuits

XIXe si` ecle

1805

Joseph Jacquard (d’apr` es des id´ ees de Falcon en 1728) : cartes perfor´ ees pour m´ etiers ` a tisser : c’est le premier programme.

Archi

11/48

Chronologie

Architecture en couches

Couche circuits

XIXe si` ecle

1833

Babbage con¸ coit ensuite une machine programmable capable de r´ ealiser diff´ erentes op´ erations cod´ ees sur des cartes perfor´ ees : la Machine Analytique. un dispositif d’entr´ ee et de sortie ; un organe de commande g´ erant le transfert des nombres et leur mise en ordre pour le traitement ; un magasin permettant de stocker les r´ esultats interm´ ediaires ou finaux (m´ emoire) ; un moulin charg´ e d’ex´ ecuter les op´ erations sur les nombres ; un dispositif d’impression. Programmes d’Ada Augusta. Irr´ ealisable ` a l’´ epoque.
Archi 12/48

Chronologie

Architecture en couches

Couche circuits

XIXe
1854 - Georges Boole - Une ´ etude des lois de la pens´ ee Fondements math´ ematiques de la logique. L’´ electronique actuelle repose sur l’alg` ebre de Boole. 1890 : Calculateur statistique d’Hermann Hollerith pour les recensements. Il fonde la Tabulating Machine Company en 1896 qui devient IBM en 1908.

Archi

13/48

Chronologie

Architecture en couches

Couche circuits

XXe
1936 - Alan Turing - Machines de Turing Ce que l’on peut calculer et ce que l’on ne peut pas.

ann´ ees 30

1938 - Claude Shannon - Th´ eorie de l’information Tout peut ˆ etre repr´ esent´ e par des 0 et des 1 : c’est la num´ erisation.

Archi

14/48

Chronologie

Architecture en couches

Couche circuits

Premi` ere g´ en´ eration d’ordinateurs

(1936-1956)

Des calculateurs programmables aux premiers ordinateurs. Composants : relais, tubes ` a vides, r´ esistances. Logiciels : langage machine seulement.

Archi

15/48

Chronologie

Architecture en couches

Couche circuits

ere g´ 1` en´ eration

fin des ann´ ees 30

Ind´ ependement : Konrad Zuse, John Atanasoff, Georges Stibitz travaillent ` a la conception de machines binaires.

Machine ` a calculer ´ electrom´ ecaniques de Zuse (photo : Z3)
Archi 16/48

Chronologie

Architecture en couches

Couche circuits

ere g´ 1` en´ eration

fin des ann´ ees 30

ABC (Atanasoff-Berry Computer) : officiellement, le premier ordinateur num´ erique ´ electronique

Archi

17/48

Chronologie

Architecture en couches

Couche circuits

ere g´ 1` en´ eration
Howard Aiken, machine ´ electrom´ ecanique (Harvard Mark 1) : Multiplication de nombres de 23 chiffres en 6 secondes ; Addition en 3 dixi` emes de seconde.

1944

Archi

18/48

Chronologie

Architecture en couches

Couche circuits

ere g´ 1` en´ eration

durant la guerre

Le Colossus Mark II est utilis´ e pour la cryptanalyse. Il est constitu´ e de 2 400 tubes ` a vide et r´ ealise 5 000 op´ erations par seconde.

Archi

19/48

Chronologie

Architecture en couches

Couche circuits

ere g´ 1` en´ eration

1945

John Eckert et John Mauchly construisent l’ENIAC (Electronic Numerical Integrator And Calculator) : 18 000 tubes, 30 tonnes. Multiplication de nombres de 10 chiffres en 3ms.

Von Neumann (avec Eckert et Mauchly) propose l’EDVAC (Electronic Discrete Variable Automatic Computer). Syst` eme binaire contrairement ` a l’ENIAC. Mis en service en 1951.
Archi 20/48

Chronologie

Architecture en couches

Couche circuits

Architecture de von Neumann
Machine universelle programm´ ee Instructions num´ eriques stock´ ees en m´ emoire Instructions modifiables ex´ ecut´ ees en s´ equence avec des ruptures de s´ equence (sauts). unit´ e arithm´ etique et logique (UAL) qui effectue les op´ erations de base, unit´ e de contrˆ ole qui est charg´ ee du s´ equen¸ cage des op´ erations, m´ emoire qui contient ` a la fois les donn´ ees et le programme, dispositifs d’entr´ ee-sortie qui permettent de communiquer avec le monde ext´ erieur. Actuellement, la plupart des ordinateurs sont des machines de Von Neumann, seules les technologies ont chang´ e.
Archi 21/48

Chronologie

Architecture en couches

Couche circuits

ere g´ 1` en´ eration

d´ ebut des ann´ ees 50

Maurice Wilkes construit l’EDSAC (Electronic Delay Storage Automatic Calculator). 5 000 op´ erations math´ ematiques dont 4 000 multiplications en 1 minute (en 1949).

Eckert et Mauchly construisent l’UNIVAC (UNIVersal Automatic Computer). 5 200 tubes ` a vide, 13 tonnes, 1905 op´ erations par seconde. Donn´ ees stock´ ees sur une bande magn´ etique (1951).
Archi 22/48

Chronologie

Architecture en couches

Couche circuits

ere g´ 1` en´ eration

1953

IBM lance le 701 (19 exemplaires). M´ emoire ` a tubes cathodiques. 16 000 additions ou 2 200 multiplications par seconde. Peu de temps apr` es, le 650 est lanc´ e` a 2 000 exemplaires.

1951 - M. V. Wilkes - la microprogrammation L’unit´ e centrale d’un ordinateur peut ˆ etre contrˆ ol´ ee par un programme informatique sp´ ecialis´ e stock´ e en m´ emoire.
Archi 23/48

Chronologie

Architecture en couches

Couche circuits

ere g´ 1` en´ eration
Z3 ABC HM I CM II ENIAC EDVAC EDSAC UNIVAC IBM 650 composants 2 600 relais 280 tubes 765 000 comp. 2 400 tubes 17 468 tubes 6 000 tubes 3 000 tubes 5 200 tubes m´ emoire 64 × 22 bits 60 × 50 bits 72 × 23 (d´ ec.)

synth` ese
op´ erations 4 add/s. 15 mul/min. 30 add/s. add : 3 ds. mul : 6 s. 5 000 add/s. 350 mul/s. add : 0.8 ms. mul : 2.9 ms. 4000 mul/min. add : 0.5 ms. mul : 0.21 ms. add : 1.63 ms mul : 12.96 ms
24/48

20 chiffres sign´ es 1000 × 44 bits

1000 × 11 d´ ec. 60 × 10 d´ ec. ferrite
Archi

Chronologie

Architecture en couches

Couche circuits

Deuxi` eme g´ en´ eration d’ordinateurs (1956-1963)
1948, John Bardeen, Walter Brattain et William Shockley d´ ecouvrent le transistor. Composants : Logiciels : transistors, m´ emoire ` a tores de ferrite, imprimantes, bandes magn´ etiques. apparition des syst` emes d’exploitation, langages ´ evolu´ es FORmula TRANslator (1957) COmmon Business Oriented Language (1959)

Apparition de l’industrie, IBM, DEC, HP, etc.

Archi

25/48

Chronologie

Architecture en couches

Couche circuits

Troisi` eme g´ en´ eration d’ordinateurs (1963-1971)
En 1958, Jack Kilby (Texas Inst.) cr´ ee le premier circuit int´ egr´ e. Composants : circuits int´ egr´ es, Machine : faible consommation ´ energ´ etique, fiable, encombrement r´ eduit. ´ Evolution : multiprocesseur, temps partag´ e, acc` es interactif, apparition des r´ eseaux, premiers probl` emes de compatibilit´ e entre machines.

Archi

26/48

Chronologie

Architecture en couches

Couche circuits

Quatri` eme g´ en´ eration d’ordinateurs
Composants : Logiciel :

(1971-)

Miniaturisation des circuits : l’` ere de la micro-informatique Very Large Scale Integration premier microprocesseur INTEL 4004 (1971) traitement distribu´ e, machine virtuelle r´ eseau, base de donn´ ees convivialit´ e parall´ elisme d’ex´ ecution ordinateurs personnels augmentation en puissance

´ Evolution :

Archi

27/48

Chronologie

Architecture en couches

Couche circuits

R´ esum´ e

avant 1600 les abaques... XVIIe si` ecle machines ` a calculer m´ ecaniques XIXe si` ecle machines ` a calculer programmables ere g´ 1936-1956 1` en´ eration : des calculateurs programmables aux ordinateurs eme g´ 1956-1963 2` en´ eration : apparition des transistors eme g´ 1963-1971 3` en´ eration : apparition des circuit int´ egr´ es ` e me depuis 1971 4 g´ en´ eration : la micro-informatique

Archi

28/48

Chronologie

Architecture en couches

Couche circuits

Conclusion
Innovations technologiques support´ ees par des bases th´ eoriques. Loi de Moore (1965) : le nombre de transistors sur une puce double tous les 2 ans.

Archi

29/48

Chronologie

Architecture en couches

Couche circuits

Architecture en couches

Archi

30/48

Chronologie

Architecture en couches

Couche circuits

L’ordinateur : point de vue externe

1 2 3 4 5 6 7 8 9 10

´ Ecran Carte m` ere CPU (Microprocesseur) M´ emoire vive (RAM) Cartes de p´ eriph´ eriques Alimentation Lecteur de disques (ex. DVD) Disque dur Souris Clavier

Archi

31/48

Chronologie

Architecture en couches

Couche circuits

L’ordinateur : point de vue interne

Machine ´ electronique binaire Fonctionnement des composants de base : circuits ´ electroniques Organisation et communication entre les composants Langage de la machine Syst` eme d’exploitation :
programme principal de l’ordinateur ex´ ecution simultan´ ee d’autres programmes gestion des p´ eriph´ eriques : entr´ ees-sorties, stockage, ...

Archi

32/48

Chronologie

Architecture en couches

Couche circuits

Machines multi-niveaux
5. Langages haut niveau Compilation 4. Langage d’assemblage Assembleur 3. Syst` eme d’exploitation Appels syst` eme 2. Jeu d’instructions propre ` a chaque machine Microprogrammes : micro-instructions binaires 1. Micro-architecture (UAL, op´ erations, registres, ...) Assemblage physique des portes logiques 0. Circuits logiques
Archi 33/48

Chronologie

Architecture en couches

Couche circuits

La couche circuits logiques

Archi

34/48

Chronologie

Architecture en couches

Couche circuits

Circuit logique
Un circuit logique est un circuit dans lequel seules 2 valeurs logiques sont possibles : 0 ou 1. En pratique : circuit ´ electrique (transistors) dans lequel une faible tension repr´ esente le signal 0 alors qu’une tension ´ elev´ ee correspond au signal 1. Composants de base : les portes logiques qui permettent de combiner ces signaux binaires. Une porte logique est un composant qui re¸ coit en entr´ ee une ou plusieurs valeurs binaires (souvent 2) et renvoie en sortie une unique valeur binaire. porte NON Si la valeur d’entr´ ee est 1 alors la sortie vaut 0. Si la valeur d’entr´ ee est 0 alors la sortie vaut 1.
Archi 35/48

Chronologie

Architecture en couches

Couche circuits

Fonctions logiques et tables de v´ erit´ e
Fonction logique : fonction d’une ou plusieurs variables bool´ eennes (qui peut prendre la valeur 0 ou 1) dans {0, 1}. Exemples :
1

Tables de v´ erit´ e fonction f0 a S 0 1 1 0 fonction a b 0 0 0 1 1 0 1 1 f1 S 0 0 1 1 fonction a b 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 f2 c 0 1 0 1 0 1 0 1

f0 (a) =

0 1

si a = 1 si a = 0

2

f1 (a, b) = a f2 (a, b, c) = c 1−c si a = 0 si a = 1

3

S 0 1 0 1 1 0 1 0

Voir l’alg` ebre bool´ eenne (cours de Structures Discr` etes)
Archi 36/48

Chronologie

Architecture en couches

Couche circuits

Portes ET et OU
porte ET a 0 0 1 1 b 0 1 0 1 S 0 0 0 1

S = f (a, b) = a · b

porte OU

a 0 0 1 1

b 0 1 0 1

S 0 1 1 1

f (a, b) = a + b

Archi

37/48

Chronologie

Architecture en couches

Couche circuits

Portes NON-ET et NON-OU
a 0 0 1 1 b 0 1 0 1 S 1 1 1 0

porte NON-ET

f (a, b) = a · b

porte NON-OU

a 0 0 1 1

b 0 1 0 1

S 1 0 0 0

f (a, b) = a + b

Archi

38/48

Chronologie

Architecture en couches

Couche circuits

R´ esum´ e
Les 16 fonctions bool´ eennes de 2 variables ({0, 1}2 → {0, 1}) 00 0 0 0 0 0 0 0 0 01 0 0 0 0 1 1 1 1 10 0 0 1 1 0 0 1 1 11 0 1 0 1 0 1 0 1 f (a, b) 0 ab a¯ b a a ¯b b a⊕b a+b 00 1 1 1 1 1 1 1 1 01 0 0 0 0 1 1 1 1 10 0 0 1 1 0 0 1 1 11 0 1 0 1 0 1 0 1 f (a, b) a+b a⊕b ¯ b a+¯ b a ¯ a ¯+b ab 1

Avec 3 variables, combien de fonctions ?
Archi 39/48

Chronologie

Architecture en couches

Couche circuits

Du circuit ` a la table de v´ erit´ e
a b c
a+c b(a+c)

a b c
a+b a+b (a+b) . bc

S

S
bc

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

a+c 0 1 0 1 1 1 1 1

b(a + c) 0 0 0 1 0 0 1 1
Archi

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

a+b 0 0 1 1 1 1 1 1

a+b 1 1 0 0 0 0 0 0

bc 0 0 0 1 0 0 0 1

S 1 1 1 1 1 1 1 1
40/48

Chronologie

Architecture en couches

Couche circuits

R` egles de calcul
Constantes Idempotence Compl´ ementation Commutativit´ e Distributivit´ e Associativit´ e Lois de De Morgan Autres relations a+0=a a+1=1 a+a=a a+a=1 a+b=b+a a + (bc) = (a + b)(a + c) a(b + c) = (ab) + (ac) a + (b + c) = (a + b) + c = a + b + c a(bc) = (ab)c = abc ab = a + b a=a a + b = ab (a + b)(a + b) = a a·0=0 a·1=a a·a=a a·a=0 a·b=b·a

Archi

41/48

Chronologie

Architecture en couches

Couche circuits

Compl´ etude de la porte NON-ET
La porte NON-ET est compl` ete : on peut r´ ealiser n’importe quelle fonction bool´ eenne avec seulement des portes NON-ET. a ¯ = a·a a·b = a·b = ab · ab
a b
a b

a+b = a+b = a·b = aa · bb

a S
S
S

Compl´ etude de NON-OU : en TD
Archi 42/48

Chronologie

Architecture en couches

Couche circuits

Porte XOR
porte XOR a 0 0 1 1 b 0 1 0 1 S 0 1 1 0 f (a, b) = a ⊕ b = (a + b)(ab) = (a + b)(¯ a+¯ b) = aa ¯ + a¯ b + ba ¯ + b¯ b = a¯ b + ba ¯ b + ba ¯ = a¯ b · ba ¯ = a¯

R´ ealisation ` a partir des portes pr´ ec´ edentes.
a b
a b

S

S

Archi

43/48

Chronologie

Architecture en couches
Chronologie Architecture en couches

Couche circuits
Couche circuits

la table de v´ erit´ e au circuit De la table deDe v´ e rit´ e au circuit
apparaˆ majoritairement en entr´ ee. La fonction majoritaire :ıtla valeur de sortie est celle qui apparaˆ ıt majoritairement en entr´ ee. a 0 0a 0 0 1 1 1 1 b 0 b 0 1 1 0 0 1 1 c 0 c1 0 1 0 1 0 1 S 0 0 0 1 0 1a b c 1 1 La fonction majoritaire : la valeur de sortie est celle qui

cˆ abler les entr´ ees et leurs n´ egations cˆ abler une porte ET pour chaque ligne dont la sortie est 1 relier les ET par un OU.

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

S 0 0 0 1 0 1 1 1

a b c

a b c

f (a, b, c) = a ¯bc + a¯ bc + abc ¯ + abc
Archi

S
S
44/47

f (a, b, c) = a ¯bc + a¯ bc + abc ¯ + abc
Archi 44/48

Chronologie

Architecture en couches

Couche circuits

Simplification
Simplifier = diminuer le nombre d’op´ erateurs = diminuer le nombre de portes logiques (et donc le coˆ ut). exemple pr´ ec´ edent : f (a, b, c) = a + b · bc = a + b + bc = a+b+¯ b+c ¯ = a+1+c ¯= 1 fonction majoritaire :
f (a, b, c) = a ¯bc + a¯ bc + abc ¯ + abc ¯ = a ¯bc + abc + abc ¯ + abc + abc + abc = (a + a ¯)bc + (b + ¯ b)ac + (c + c ¯)bc = ab + ac + bc
Archi

= (¯ ab + a¯ b)c + ab(¯ c + c) ¯ = (a + b)(¯ a + b)c + ab = (ac + bc)ab + ab

= (ab + ac + bc)(ab + ab)
45/48

Chronologie

Architecture en couches

Couche circuits

M´ ethode de Karnaugh
La fonction majoritaire binaire classique a b c 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 binaire r´ efl´ echi a b 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0

bc 00 a
c 0 1 1 0 0 1 1 0 S 0 0 1 0 1 1 1 0

01 0 1 01 0 1

11 1 1 11 1 1

10 0 1 10 0 1

S 0 0 0 1 0 1 1 1

0 1

0 0

bc 00 a 0 1 0 0

f (a, b, c) = ab + ac + bc
Archi 46/48

Chronologie

Architecture en couches

Couche circuits

M´ ethode de Karnaugh (suite)
On veut le moins de porte ET et OU possible.

cd ab 00 01 00 01 11 10 1 0 0 1 1 1 0 0

11 1 1 1 1

10 1 0 0 1

cd ab 00 00 01 11 10 1 0 0 1

01 1 1 0 0

11 1 1 1 1

10 1 0 0 1

¯+ a ¯ f (a, b, c, d) = a ¯¯ b + cd + a¯ bd ¯bc ¯d = cd + a ¯d + ¯ bd La premi` ere formule est juste, mais pas simplifi´ ee au maximum !
Archi 47/48

Chronologie

Architecture en couches

Couche circuits

M´ ethode de Karnaugh
M´ ethode graphique (visuelle) pour simplifier au maximum les formules et/ou les circuits. ´ 1 Ecrire la table de v´ erit´ e sous la forme d’un code de Gray (ou binaire r´ efl´ echi) : ainsi, les valeurs des entr´ ees ne diff` erent que d’un seul bit entre chaque ligne. 2 Compacter la table (ces 2 ´ etapes peuvent ˆ etre simultan´ ees) 3 Entourer tous les 1 dans des rectangles :
les plus grands possibles, tels que leur taille est une puissance de 2, ´ eventuellement sur les bords.
4

En d´ eduire la formule et le circuit :
une somme (OU) des formules de chaque rectangle le formule d’un rectangle est un produit (ET) :
des variables qui valent toujours 1 dans ce rectangle des n´ egations de celles qui valent toujours 0. les autres variables n’apparaissent pas dans le ET.

5

! ! ! Il peut y avoir plusieurs simplifications maximales !
Archi 48/48