Vous êtes sur la page 1sur 18

Comment fonctionne un ordinateur?

Une PS vita

Un gps

Qu'est-ce qu'un ordinateur?


Une xbox

Utilisation Programmation

Un tlphone portable Un serveur ...

Ce qu'on va tudier en ISN Ce qu'on va tudier en ISN

Ce qu'on va aussi tudier en ISN (suite)

De quoi est compos un ordinateur?

Dmontons un ordinateur...

La mmoire d'un ordinateur

Mmoire centrale (vive)

Mmoire de masse

L'information

Stocke sous forme de 0/1, On/Off, +10 V/ 0V, up/down Accessible grce son adresse :
adresse 100 101 ... donnes 01001100 10100011 ...

Pourquoi que deux valeurs?


L'immunit au bruit:
20C les lectrons bougent sans cesse
Bruit du au Mouvement des lectrons et aussi Le bruit de fond de La radio...

Avec 2 valeurs, moins de risques d'erreur Avec 2 valeurs, moins de risques d'erreur

Codage de l'information

13, treize, vous avez dit XIII


13 : 2 digits, 10 symboles (0, 1, 2...) Treize : 6 digits, 26 symboles (a, b, c...) XIII : 4 digits, 7 symboles (I, V, X, L, C, M, D)

Ordi : n digits, 2 symboles (0, 1) 01001001 qu'est-ce que a veut dire ?


Un nombre? Un caractre ? Un son ? Une instruction ? Importance du TYPE

Dessine-moi un ordinateur

Adresse Processeur Donnes Bus Mmoire Vive / Masse

Comment a marche?
Unit de calcul
(lecture/dcodage instructions)

Mmoire Vive
Adresse 0 1 ... 100 Valeur instructions ... Valeurs ...

Registres

Bus

101 ...

Unit de commande
(lecture/dcodage instructions) P.C.: compteur Accumulateur

dcodeur

A chaque cycle d'horloge, L'unit de commande charge l'instruction situe l'adresse P.C. L'unit de calcul l'excute P.C. = P.C. +1

Processeur

Comment a marche?
Unit de calcul
(lecture/dcodage instructions)

Mmoire Vive
Adresse 0 1 ... 100 Valeur instructions ... Valeurs ...

Registres

Bus

101 ...

Unit de commande
(lecture/dcodage instructions) P.C.: compteur Accumulateur

dcodeur

Exemple d'instruction: Charger la valeur situe l'adresse $a dans le registre #r, l'accumulateur Ajouter, retrancher n, la valeur situe dans le regitre #r l'accumulateur Ajouter n au compteur...

Processeur

Lien avec langage informatique courant


Unit de calcul
(lecture/dcodage instructions)

Mmoire Vive
Adresse 0 1 ... 100 Valeur instructions ... Valeurs ...

Registres

Bus

101 ...

Unit de commande
(lecture/dcodage instructions) P.C.: compteur Accumulateur

Frquence processeur : Nbre d'instructions lues par seconde Processeur 32, 64 bits taille registre Taille RAM taille mmoire vive

dcodeur

Processeur

Programme langage assembleur

Les instructions sont propres la technologie du fabricant (x86, PPC, ARM, etc.)
interprtation

Dans l'exemple ci-dessous,


a est la valeur de l'accumulateur #r est la valeur du registre N r $ad est la valeur l'adresse N ad une valeur est note simplement exemples ld #0 $13, ld #1 25, ld a $12 st #0 $13, st #1 25, st a $12 inc #2 dec #1 add 20, add #0, add $24 sub 20, sub #0, sub $24

instructions ld cible valeur st valeur cible inc cible dec cible add valeur sub valeur

Charge la valeur dans la cible Stocke la valeur dans la cible Ajouter +1 au registre indiqu Retranche 1 au registre indiqu Ajoute la valeur l'accumulateur Retranche la valeur l'accumulateur

mv origine cible Copie l'origine dans la cible (acc/registres) Mv #0 #1, mv #2 a

Que fait ce programme?

Vrifier en utilisant littlethinker.jar

Langage machine

Donnes codes en binaire dans la machine


Instructions Code (fictif) 10000000 10000001 ... a $1 ... adresses Code (fictif) 00000000 01000001 ...

st ld ...

Ld #0 $10, ld #1 $11, mv #0 a, add #1

1000001 00000001 01001010 1000001 00000010...

Et comment faire des entres/sorties?

Mmoire Vive / masse

Une partie des adresses de la mmoire correspond aux entres et sorties

Langage volu

Y = A* X + 2 * B + C ncessite de nombreuses instructions pour tre effectues Ces instructions sont dpendantes de la machine langages volus permettent de programmer simplement pour toutes machines

Compilation
Y = A* X + 2 * B + C Langage volu: java, C++, php, etc. Y = A* X + 2 * B + C Compilateur Ld #0 $100 Ld #0 $100 Ld #1 $101 Ld #1 $101 ... ... Langage assembleur

Orient rsolution de problme

Assembleur 10000001 10000001 00000001 00000001 01001010 01001010 10000001 10000001 ... ...

Langage machine

Orient machine