Comment fonctionne un
     ordinateur ?
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
Ce qu'on va aussi étudier en ISN
             (suite)
De quoi est composé un
     ordinateur ?


        Démontons un ordinateur...
La mémoire d'un ordinateur
●   Mémoire centrale (vive)   ●   Mémoire de masse
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
                    ...               ...
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
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
Dessine-moi un ordinateur



             Adresse
                         Mémoire
Processeur
                        Vive / Masse
             Données

                  Bus
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
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
Lien avec langage
                  informatique courant
                                                         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)   ●   Fréquence processeur : Nbre
P.C. : compteur   Accumulateur        d'instructions lues par seconde

           décodeur
                                  ●   Processeur 32, 64 bits → taille registre
                                  ●   Taille RAM → taille mémoire vive

            Processeur
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
Que fait ce programme ?


           Vérifier en utilisant littlethinker.jar
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...
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
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
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
   ...
    ...

Comment fonctionne un ordinateur ?

  • 1.
  • 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
  • 3.
    Ce qu'on vaaussi étudier en ISN (suite)
  • 4.
    De quoi estcomposé un ordinateur ? Démontons un ordinateur...
  • 5.
    La mémoire d'unordinateur ● 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 deuxvaleurs ? 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
  • 9.
    Dessine-moi un ordinateur Adresse Mémoire Processeur Vive / Masse Données Bus
  • 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
  • 12.
    Lien avec langage informatique courant 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) ● Fréquence processeur : Nbre P.C. : compteur Accumulateur d'instructions lues par seconde décodeur ● Processeur 32, 64 bits → taille registre ● Taille RAM → taille mémoire vive 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 ceprogramme ? 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 fairedes 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 ... ...