2. Une PS vita Un gps
Qu'est-ce qu'un ordinateur ?
Un téléphone portable
Une xbox
Un serveur
...
●
Utilisation
●
Programmation
Ce qu'on va étudier en ISN
Ce qu'on va étudier en ISN
4. De quoi est composé un
ordinateur ?
Démontons un ordinateur...
5. La mémoire d'un ordinateur
● Mémoire centrale (vive) ● Mémoire de masse
6. L'information
● Stockée sous forme de 0/1, On/Off, +10 V/ 0V, up/down
● Accessible grâce à son adresse :
adresse données
100 01001100
101 10100011
... ...
7. Pourquoi que deux valeurs ?
L'immunité au bruit :
À 20°C 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
8. 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 caractère ? Un son ? Une
instruction ? …
– Importance du TYPE
10. Comment ça marche ?
Mémoire Vive
Unité de calcul
(lecture/décodage instructions) Adresse Valeur
0
instructions
1
... ...
100
Registres Valeurs
Bus 101
... ...
Unité de commande
(lecture/décodage instructions)
A chaque cycle d'horloge,
P.C. : compteur Accumulateur ●
L'unité de commande charge
l'instruction située à l'adresse P.C.
décodeur ●
L'unité de calcul l'exécute
●
P.C. = P.C. +1
Processeur
11. Comment ça marche ?
Mémoire Vive
Unité de calcul
(lecture/décodage instructions) Adresse Valeur
0
instructions
1
... ...
100
Registres Valeurs
Bus 101
... ...
Unité de commande
(lecture/décodage instructions) Exemple d'instruction :
P.C. : compteur Accumulateur
●
Charger la valeur située à l'adresse $a
dans le registre #r, l'accumulateur
décodeur
●
Ajouter, retrancher n, la valeur située
dans le regitre #r à l'accumulateur
●
Ajouter n au compteur...
Processeur
13. Programme langage assembleur
● Les instructions sont ● Dans l'exemple ci-dessous,
propres à la technologie du – a est la valeur de l'accumulateur
fabricant (x86, PPC, ARM, – #r est la valeur du registre N° r
etc.) – $ad est la valeur à l'adresse N° ad
– une valeur est notée simplement
instructions interprétation exemples
ld cible valeur Charge la valeur dans la cible ld #0 $13, ld #1 25, ld a $12
st valeur cible Stocke la valeur dans la cible st #0 $13, st #1 25, st a $12
mv origine cible Copie l'origine dans la cible (acc/registres) Mv #0 #1, mv #2 a
inc cible Ajouter +1 au registre indiqué inc #2
dec cible Retranche 1 au registre indiqué dec #1
add valeur Ajoute la valeur à l'accumulateur add 20, add #0, add $24
sub valeur Retranche la valeur à l'accumulateur sub 20, sub #0, sub $24
14. Que fait ce programme ?
Vérifier en utilisant littlethinker.jar
15. Langage machine
● Données codées en binaire dans la machine
Instructions Code (fictif) adresses Code (fictif)
st 10000000 a 00000000
ld 10000001 $1 01000001
... ... ... ...
Ld #0 $10, ld #1 $11, mv #0 a, add #1
1000001 00000001 01001010 1000001 00000010...
16. Et comment faire des
entrées/sorties ?
Mémoire
Vive / masse
Une partie des adresses de la mémoire correspond aux entrées et sorties
17. Langage évolué
● Y = A* X + 2 * B + C nécessite de nombreuses
instructions pour être effectuées
● Ces instructions sont dépendantes de la machine
● → langages évolués permettent de programmer
simplement pour toutes machines
18. Compilation Orienté
résolution
Y = A* X + 2 * B + C Langage évolué : java, C++, php, etc. de
Y = A* X + 2 * B + C problème
Compilateur
Ld #0 $100
Ld #0 $100
Ld #1 $101
Ld #1 $101 Langage assembleur
...
...
Assembleur
10000001
10000001
00000001
00000001
01001010
01001010 Langage machine Orienté
10000001
10000001 machine
...
...