• Aucun résultat trouvé

3 Le fonctionnement d’un ordinateur

N/A
N/A
Protected

Academic year: 2022

Partager "3 Le fonctionnement d’un ordinateur"

Copied!
128
0
0

Texte intégral

(1)

3 Le fonctionnement d’un ordinateur

Peter Schlagheck Universit ´e de Li `ege

Ces notes ont pour seule vocation d’ ˆetre utilis ´ees par les ´etudiants dans le cadre de leur cursus au sein de l’Universit ´e de Li `ege. Aucun autre usage ni diffusion n’est autoris ´e, sous peine de constituer une violation de la Loi du 30 juin 1994

relative au droit d’auteur.

(2)

3 Le fonctionnement d’un ordinateur

3.1 La machine de Turing

3.2 Le fonctionnement d’un processeur 3.3 La r ´ealisation en pratique

(3)

3.1 La machine de Turing

Alan Turing (1912 - 1954), math ´ematicien

−→ grande contribution au d ´echiffrement des codes allemands

“Enigma” pendant la deuxi `eme guerre mondiale (ordinateur ´electrom ´ecanique “bombe”, 1940)

−→ conception de la machine de Turing (1936)

= une machine de calcul universelle qui sait effectuer tous les algorithmes num ´eriques possibles

. . . afin de d ´emontrer qu’il n’est pas possible de d ´eterminer si de tels algorithmes s’arr ˆetent ou non

(4)

La machine de Turing

La machine de Turing consiste

d’un ruban de m ´emoire binaire infini et d’une unit ´e de commande

charg ´ee d’un programme

(5)

La machine de Turing

L’unit ´e de commande peut

lire le contenu (0ou1) de la cellule actuelle du ruban

´ecrire0ou1dans la cellule actuelle du ruban se d ´eplacer `a gauche ou `a droite par une cellule

(6)

La machine de Turing

Le programme definit plusieurs “ ´etats” de l’unit ´e de commande.

Chaque ´etat se compose

d’une lecture et ´ecriture dans la cellule actuelle d’un d ´eplacement `a gauche ou `a droite

d’un lien/saut `a un autre ´etat `a executer `a la suite . . . tout d ´ependant du contenu de la cellule actuelle

(7)

La machine de Turing

Exemple d’un programme (additions) pour la machine de Turing:

cellule actuelle ´etape prochaine

´etat actuel lecture ´ecriture d ´eplacement ´etat suivant

0 0 droite ´etat 0

´etat 0

1 1 droite ´etat 1

0 1 droite ´etat 2

´etat 1

1 1 droite ´etat 1

0 0 gauche ´etat 3

´etat 2

1 1 droite ´etat 2

0 0 droite STOP

´etat 3

1 0 droite STOP

(8)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(9)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(10)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(11)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(12)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(13)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(14)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(15)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(16)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(17)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(18)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(19)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(20)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(21)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(22)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(23)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(24)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(25)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(26)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

(27)

La machine de Turing

Additions avec la machine de Turing:

0 0 → 0

0 1 1 → 1

0 1 → 2

1 1 1 → 1

0 0 ← 3 2

1 1 → 2 0 0 → ST 3

1 0 → ST

−→tous les algorithmes num ´eriques peuvent ˆetre repr ´esent ´es

−→sur une telle machine (th `ese de Church-Turing)

(ce n’est pas forc ´ement la meilleure fac¸on de les ex ´ecuter . . . )

(28)

Comment est-ce qu’on pourrait faire mieux

. . . apr `es tout ce qu’on a d ´ej `a appris ?

−→remplacer tous les bits par des octets

−→d ´eplacement arbitraire de l’unit ´e de commande

−→→n ´ecessite l’adressage global des cellules du ruban

(29)

Comment est-ce qu’on pourrait faire mieux

. . . apr `es tout ce qu’on a d ´ej `a appris ?

−→remplacer tous les bits par des octets

−→d ´eplacement arbitraire de l’unit ´e de commande

−→effectuer des calculs ´elementaires (additions des octets)

−→ `a l’interieur de l’unit ´e de commande

−→encoder le programme dans la m ´emoire

(30)

3.2 Le fonctionnement d’un processeur

John von Neumann (1903 - 1957), math ´ematicien Contributions:

th ´eorie de logique physique quantique th ´eorie des jeux Manhattan project informatique

→“l’architecture de von Neumann”

(31)

3.2 Le fonctionnement d’un processeur

Le principe de von Neumann:

Un ordinateur se compose d’une unit ´e de commande,

d’une unit ´e arithm ´etique et logique, d’une m ´emoire centrale et

des unit ´es d’entr ´ee et de sortie

(clavier, souris, ´ecran, imprimante, . . . )

(32)

Le fonctionnement d’un processeur primitif

(33)

Le fonctionnement d’un processeur primitif

(34)

Le fonctionnement d’un processeur primitif

(35)

Le fonctionnement d’un processeur primitif

ACC: accumulateur (1 octet)

−→sauvegarde d’une donn ´ee pour des op ´erations

−→arithm ´etiques et logiques

(36)

Le fonctionnement d’un processeur primitif

ACC: accumulateur (1 octet)

CI: compteur d’instructions (1 octet)

−→contient l’adresse de l’instruction actuelle

(37)

Le fonctionnement d’un processeur primitif

ACC: accumulateur (1 octet)

CI: compteur d’instructions (1 octet) RI: registre d’instruction (1 octet)

(38)

Le fonctionnement d’un processeur primitif

(39)

Le fonctionnement d’un processeur primitif

(40)

Le fonctionnement d’un processeur primitif

(41)

Le fonctionnement d’un processeur primitif

(42)

Le fonctionnement d’un processeur primitif

(43)

Le fonctionnement d’un processeur primitif

Op ´eration2:

copier le contenu `a l’adresse indiqu ´ee dans l’accumulateur

(44)

Le fonctionnement d’un processeur primitif

(45)

Le fonctionnement d’un processeur primitif

(46)

Le fonctionnement d’un processeur primitif

(47)

Le fonctionnement d’un processeur primitif

(48)

Le fonctionnement d’un processeur primitif

(49)

Le fonctionnement d’un processeur primitif

(50)

Le fonctionnement d’un processeur primitif

Op ´eration4:

ajouter `a l’accumulateur le contenu dans l’adresse indiqu ´ee

(51)

Le fonctionnement d’un processeur primitif

(52)

Le fonctionnement d’un processeur primitif

(53)

Le fonctionnement d’un processeur primitif

(54)

Le fonctionnement d’un processeur primitif

(55)

Le fonctionnement d’un processeur primitif

(56)

Le fonctionnement d’un processeur primitif

(57)

Le fonctionnement d’un processeur primitif

(58)

Le fonctionnement d’un processeur primitif

(59)

Le fonctionnement d’un processeur primitif

Op ´eration3:

´ecrire le contenu de l’accumulateur dans l’adresse indiqu ´ee

(60)

Le fonctionnement d’un processeur primitif

(61)

Le fonctionnement d’un processeur primitif

(62)

Le fonctionnement d’un processeur primitif

(63)

Le fonctionnement d’un processeur primitif

Les instructions ´el ´ementaires:

2 010 LOAD copier la valeur de la m ´emoire dans l’accumulateur

3 011 STORE copier la valeur de l’accumulateur dans la m ´emoire

4 100 ADD ajouter la valeur de la m ´emoire

`a l’accumulateur

5 101 MPY multiplier la valeur dans l’accumulateur avec la valeur de la m ´emoire

(64)

Le fonctionnement d’un processeur primitif

Les instructions ´el ´ementaires:

2 010 LOAD copier la valeur de la m ´emoire dans l’accumulateur

3 011 STORE copier la valeur de l’accumulateur dans la m ´emoire

4 100 ADD ajouter la valeur de la m ´emoire

`a l’accumulateur

5 101 MPY multiplier la valeur dans l’accumulateur avec la valeur de la m ´emoire

1 001 BR copier l’adresse indique ´ee dans lecompteur d’instructions

−→interromption de la s ´equence,

−→ continuation avec une autre partie du programme

(65)

Le fonctionnement d’un processeur primitif

Les instructions ´el ´ementaires:

2 010 LOAD copier la valeur de la m ´emoire dans l’accumulateur

3 011 STORE copier la valeur de l’accumulateur dans la m ´emoire

4 100 ADD ajouter la valeur de la m ´emoire

`a l’accumulateur

5 101 MPY multiplier la valeur dans l’accumulateur avec la valeur de la m ´emoire

1 001 BR copier l’adresse indique ´ee dans le compteur d’instructions 0 000 BRG copier l’adresse indique ´ee

dans le compteur d’instructions si l’accumulateur ne vaut pas z ´ero

(66)

Le fonctionnement d’un processeur primitif

Les instructions ´el ´ementaires:

2 010 LOAD copier la valeur de la m ´emoire dans l’accumulateur

3 011 STORE copier la valeur de l’accumulateur dans la m ´emoire

4 100 ADD ajouter la valeur de la m ´emoire

`a l’accumulateur

5 101 MPY multiplier la valeur dans l’accumulateur avec la valeur de la m ´emoire

1 001 BR copier l’adresse indique ´ee

branchement dans le compteur d’instructions 0 000 BRG copier l’adresse indique ´ee

branchement dans le compteur d’instructions

conditionnel si l’accumulateur ne vaut pas z ´ero

(67)

Le fonctionnement d’un processeur primitif

(68)

Le fonctionnement d’un processeur primitif

(69)

Le fonctionnement d’un processeur primitif

(70)

Le fonctionnement d’un processeur primitif

(71)

Le fonctionnement d’un processeur primitif

(72)

Le fonctionnement d’un processeur primitif

Op ´eration0:

continuer avec l’instruction dans l’adresse indiqu ´ee si le contenu de l’accumulateur ne vaut pas z ´ero

(73)

Le fonctionnement d’un processeur primitif

(74)

Le fonctionnement d’un processeur primitif

(75)

Le fonctionnement d’un processeur primitif

(76)

Le fonctionnement d’un processeur primitif

Op ´eration4:

ajouter `a l’accumulateur le contenu dans l’adresse indiqu ´ee

(77)

Le fonctionnement d’un processeur primitif

(78)

Le fonctionnement d’un processeur primitif

(79)

Le fonctionnement d’un processeur primitif

(80)

Le fonctionnement d’un processeur primitif

(81)

Le fonctionnement d’un processeur primitif

(82)

Le fonctionnement d’un processeur primitif

(83)

Le fonctionnement d’un processeur primitif

(84)

Le fonctionnement d’un processeur primitif

(85)

Le fonctionnement d’un processeur primitif

Op ´eration3:

´ecrire le contenu de l’accumulateur dans l’adresse indiqu ´ee

(86)

Le fonctionnement d’un processeur primitif

(87)

Le fonctionnement d’un processeur primitif

(88)

Le fonctionnement d’un processeur primitif

(89)

Le fonctionnement d’un processeur primitif

(90)

Le fonctionnement d’un processeur primitif

(91)

Le fonctionnement d’un processeur primitif

(92)

Le fonctionnement d’un processeur primitif

(93)

Le fonctionnement d’un processeur primitif

Op ´eration0:

continuer avec l’instruction dans l’adresse indiqu ´ee si le contenu de l’accumulateur ne vaut pas z ´ero

(94)

Le fonctionnement d’un processeur primitif

(95)

Le fonctionnement d’un processeur primitif

(96)

Le fonctionnement d’un processeur primitif

(97)

Le fonctionnement d’un processeur primitif

Op ´eration4:

ajouter `a l’accumulateur le contenu dans l’adresse indiqu ´ee

(98)

Le fonctionnement d’un processeur primitif

(99)

Le fonctionnement d’un processeur primitif

(100)

Le fonctionnement d’un processeur primitif

(101)

Le fonctionnement d’un processeur primitif

(102)

Le fonctionnement d’un processeur primitif

(103)

Le fonctionnement d’un processeur primitif

(104)

Le fonctionnement d’un processeur primitif

(105)

Le fonctionnement d’un processeur primitif

(106)

Le fonctionnement d’un processeur primitif

Op ´eration3:

´ecrire le contenu de l’accumulateur dans l’adresse indiqu ´ee

(107)

Le fonctionnement d’un processeur primitif

(108)

Le fonctionnement d’un processeur primitif

(109)

Le fonctionnement d’un processeur primitif

(110)

Le fonctionnement d’un processeur primitif

(111)

Le fonctionnement d’un processeur primitif

(112)

Le fonctionnement d’un processeur primitif

(113)

Le fonctionnement d’un processeur primitif

(114)

Le fonctionnement d’un processeur primitif

Op ´eration0:

continuer avec l’instruction dans l’adresse indiqu ´ee si le contenu de l’accumulateur ne vaut pas z ´ero

(115)

Le fonctionnement d’un processeur primitif

(116)

Le fonctionnement d’un processeur primitif

−→r ´ealisation d’une boucle

(117)

Le fonctionnement d’un processeur primitif

Le programme exprim ´e dans un langage symbolique (assembleur):

16: LOAD *10 17: ADD *15 18: STORE *4

19: IF (ACC NOT 0) GOTO17 20: . . .

*10 = la valeur encod ´ee `a l’adresse 10

(118)

Le fonctionnement d’un processeur primitif

Le programme exprim ´e dans un langage symbolique (assembleur):

16: LOAD *10 17: ADD *15 18: STORE *4

19: IF (ACC NOT 0) GOTO17 20: . . .

−→toute complexit ´e de la fonctionnalit ´e des ordinateurs

−→peut ˆetre introduite par la programmation (software)

(119)

“hardware” et “software”

programmation Motorola Motorola Motorola

transistors

hardware

processeurs Intel DEC Motorola

compilateurs langages de

programmation Fortran C Java

software

utilisateur

(120)

3.3 R ´ealisation en pratique

Installations suppl ´ementaires:

−→s ´equenceur (cabl ´e ou microprogramm ´e)

−→→contr ˆole le d ´eroulement de toutes les actions

(121)

Comment d ´ecoder des codes d’instructions ?

. . . pour deux bits: a b

(122)

Comment d ´ecoder des codes d’instructions ?

. . . pour deux bits: a b

(123)

3.3 R ´ealisation en pratique

Installations suppl ´ementaires:

−→s ´equenceur (cabl ´e ou microprogramm ´e)

−→→contr ˆole le d ´eroulement de toutes les actions

(124)

3.3 R ´ealisation en pratique

Installations suppl ´ementaires:

−→s ´equenceur

−→horloge (oscillateur de quartz)

−→→donne des signaux de cadence r ´eguliers (GHz)

−→ → pour lancer des actions

(125)

3.3 R ´ealisation en pratique

Installations suppl ´ementaires:

−→s ´equenceur

−→horloge

−→“bus” de transfert entre m ´emoire et processeur

−→. . . pour des adresses et des donn ´ees

(126)

3.3 R ´ealisation en pratique

Optimisations:

(127)

3.3 R ´ealisation en pratique

Optimisations:

−→execution parall `ele des op ´erations ind ´ependantes

−→m ´emoire “cache” et m ´emoire centrale

−→(r ´ealisation avec SRAM et DRAM)

(128)

3.3 R ´ealisation en pratique

Optimisations:

−→execution parall `ele des op ´erations ind ´ependantes

−→m ´emoire “cache” et m ´emoire centrale

−→op ´eration parall `ele de plusieurs processeurs

Références

Documents relatifs

L’entretien d’une relation en complémentarité avec le monde psychique interne et les représentations mentales, fait que toute défaillance ou indisponibilité se

−→ sauvegarde d’une donn ´ee pour des op ´erations. −→ arithm ´etiques

Il s’agira, à partir du texte de Hugo, de construire un schéma d’argumentation (modèle p145 du livre Méthodes et techniques, Nathan 1996) en isolant les arguments adverses à

Remarque : lors de la décharge (fonctionnement en pile), les électrons circulent spontanément de l’électrode de polarité (-) vers celle de polarité (+) ; lors de la

C’est ´egalement lui qui a introduit la notion de dimension de Hausdorff : pour tout sous-ensemble E de R 2 , on peut d´efinir sa dimension de Hausdorff qui est un nombre compris

L’existence d’une faute et d’un dommage ne constitue pas une condition suffisante pour engager une action en responsabilité civile. Le dommage est

Consulter la vidéo lienmini (Doc 2), et la vidéo du début (https://www.youtube.com/watch?v=GqD6AiaRo3U) à partir de 3’10’’, lire les documents, puis répondre aux questions..

Nous avons vu dans la partie précédente que la membrane d’un microphone se déplace en fonction de la pression acoustique produite par une onde sonore.. Pour que cela soit vrai il