Partage
  • Partager sur Facebook
  • Partager sur Twitter

le fonctionnement de l'ordinateur : question sur les bits

Sujet résolu
    19 février 2012 à 4:02:34

    Salut,

    je suis en train de lire le tuto sur "le fonctionnement d'un ordinateur", que je trouve super intéressant, mais il y a un truc que j'aimerais savoir :

    le bit 0 ou 1, est-il vraiment "écrit" comme tel dans l'ordinateur? comment on passe d'une "tension" à une "information" ?

    Merci ^^
    • Partager sur Facebook
    • Partager sur Twitter
      19 février 2012 à 6:24:52

      Salut.
      C'est difficile d'expliquer ceci sans connaitre l'électronique.
      Mais disons que un '0' correspond à "la lampe n'est pas éclairée" et un "1" -> "la lampe est éclairée".
      Tu peux imaginer que les mémoires de ton ordinateur sont des interrupteurs, soit ils sont allumés soit éteints.
      Le processeur ne s'allume pas :)) mais il sait interpréter ces interrupteurs.
      Donc dans l'électronique de ton ordinateur, ta mémoire contient des bits qui seront interprétés par le processeur, soit comme une instruction à faire (une addition, ou une comparaison, ou une mise en mémoire interne), soit comme une donnée à traiter (le nombre d'ennemis sur ton territoire).
      Bon, désolé si je ne suis pas très compréhensible.
      • Partager sur Facebook
      • Partager sur Twitter
        19 février 2012 à 22:40:37

        > le bit 0 ou 1, est-il vraiment "écrit" comme tel dans
        > l'ordinateur?

        Un bit 0/1 est représenté par un certain état d'un truc qui peut avoir plusieurs états, par exemple :

        - une tension sur un fil
        - une différence de tensions entre 2 fils (PCIe, SATA, USB, Ethernet, etc)
        - la charge sur la capacité parasite de la grille d'un MOS dans une DRAM,
        - l'état d'un flop dans une SRAM (le cache, etc)
        - la quantité de lumière dans une fibre optique
        - etc

        Évidemment, tous les circuits numériques sont en fait analogiques puisqu'ils fonctionnent avec des composants réels et pas idéaux. L'information contenue dans une tension (ce qui permet de convertir une tension en bit) est donc une convention (ou une spécification), par exemple "au-dessus de x volts, c'est un 1". Bien sûr, il existe des tas de normes différentes... d'ailleurs, quand la tension sur un fil passe du niveau "0" au niveau "1", elle passe forcément par le niveau "entre les deux", ce qui donne un bit "n'importe quoi", et le système ne fonctionne que si tout le monde ferme les yeux pendant les transitions, c'est à ça que sert l'horloge.

        Si tu veux approfondir, renseigne toi sur : portes logiques, logique synchrone, CMOS...


        • Partager sur Facebook
        • Partager sur Twitter
          20 février 2012 à 3:39:31

          merci, je vais approfondir, mais je dois lire à chaque fois 150 pages wikipédia pour chaque mot clé...
          donc il y a des millions d'interrupteurs dans la mémoire? chacun pour un 0/1 ?
          mon niveau en électronique est à peu près au niveau 0, si on a des millions de "tensions", d'interrupteurs ouverts et fermés, qu'est-ce qui transforme le tout en une information visible à l'écran?
          • Partager sur Facebook
          • Partager sur Twitter
            20 février 2012 à 12:05:00

            Pour un disque dur, l'idée est qu'il présente une surface "lisse" (je simplifie bien sûr). Puisque cette surface est lisse, elle ne contient que des 0.

            Schéma :
            _ _ _ _ _ _ _ _
            0 0 0 0 0 0 0 0

            Pour y inscrire un 1, la tête de lecture-écriture (qui est un électro-aimant), va aimanter une partie de la surface et ainsi l'attirer vers elle (en brisant des liaisons moléculaires).

            Schéma :
            _ _ _ _ _ _ /\ _
            0 0 0 0 0 0 1 0

            Cette "brisure" schématisera un 1. Heureusement, l'électro-aimant peut à peu près rétablir le disque en "désaimantant" la zone aimantée. Bon, c'est schématique, mais l'idée est là.

            Une autre façon de mémoriser une info, façon mémoire vive par exemple, est d'utiliser des condensateurs. Ces appareils se chargent et se déchargent à la façon d'une pile rechargeable (mais bien plus vite). S'ils sont chargés, c'est 1, s'ils sont déchargés, c'est 0. On utilise surtout des bascules qui sont de petits appareils qui vont changé d'état selon qu'on leur applique (ou non) un courant sur telle ou telle de ses entrées.

            Bref, il y a mille et une façon de symboliser un 1 ou un 0. D'ailleurs, il n'y a qu'à regarder les différents symboles utilisés dans l'histoire et de par le monde pour voir que la notion de "un" et de "rien" est symbolisée différemment.

            Citation : Errol

            qu'est-ce qui transforme le tout en une information visible à l'écran?



            Euh ... là tu grilles un peu les étapes je pense. ^^ Pour faire court, avec 8 bits tu formes un octet. Cet octet peut représenter un nombre entier, un nombre décimal, une couleur ... tout dépend de la façon de coder. Un nombre entier est en général codé avec 4 octets (=>4 milliards de nombres possibles). Les couleurs sont parfois codées avec 3 octets (1 pour le rouge, 1 pour le vert, 1 pour le bleu, chacun correspondant à un nombre de 0 à 255). Les caractères ASCII étaient codés sur un octet (ils correspondaient chacun à un nombre de 0 à 255 auquel on attachait une lettre, un symbole ...).

            Donc pour afficher un fenêtre, il faut des millions et des millions de bits et d'octets : pour les pixels de couleur, pour le texte à afficher, pour les informations et calculs à retenir et à effectuer ...

            Mais prends les choses calmement, car vouloir passer du bit (0 ou 1) à "comment on fait jeu 3D avec du sang super réaliste et des arbres qui bougent avec le vent", c'est un peu brutal et inexplicable. Il y a pas mal d'étapes à franchir avant ^^

            Edit : Un système informatique ne peut raisonner qu'en binaire, et le niveau "entre les deux" (comme disait Lord Casque Noir) ne peut être prit en compte pour faire un 2 ou un 0,5. Cependant, quelqu'un aurait-il le nom de ce fameux théorème indiquant qu'un système informatique ne peut fonctionner autrement qu'en base 2 ?
            • Partager sur Facebook
            • Partager sur Twitter
            Tutoriel : Apprendre à programmer avec Ada : Version 1 achevée et publiée
            Anonyme
              20 février 2012 à 17:48:58

              Citation : Kaji9

              Cependant, quelqu'un aurait-il le nom de ce fameux théorème indiquant qu'un système informatique ne peut fonctionner autrement qu'en base 2 ?



              Il y a des russes qui ont inventés des ordinateurs ternaires qui comptaient en base trois. Et rien n’empêche d'utiliser des bases plus hautes, comme 10 ou 16, si ce n'est que ça poserait surement quelques problèmes techniques.
              • Partager sur Facebook
              • Partager sur Twitter
                20 février 2012 à 20:18:48

                Il y en a qui ont oublié qu'il existait des ordinateurs analogiques ; le binaire est utilisé universellement de nos jours, simplement parce qu'il est le plus pratique et le moins cher.
                • Partager sur Facebook
                • Partager sur Twitter
                  21 février 2012 à 9:31:11

                  Autant pour moi, j'avais le vague souvenir d'un pareil théorème quand je faisais de la théorie des langages. Mea culpa :p
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Tutoriel : Apprendre à programmer avec Ada : Version 1 achevée et publiée
                    21 février 2012 à 9:57:32

                    Citation : Kaji9

                    Autant pour moi, j'avais le vague souvenir d'un pareil théorème quand je faisais de la théorie des langages. Mea culpa :p

                    Je pense que tu fais allusion à la machine de Turing : http://fr.wikipedia.org/wiki/Machine_de_Turing
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Le crayon la gomme et le papier sont les meilleurs outils du programmeur !

                      21 février 2012 à 11:48:18

                      Ah merci ! Ca me rappelle de nombreux souvenirs ^^
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Tutoriel : Apprendre à programmer avec Ada : Version 1 achevée et publiée
                        21 février 2012 à 15:33:42

                        Citation

                        Euh ... là tu grilles un peu les étapes je pense. ^^



                        :lol: oui en fait je préférais tout de suite annoncer la couleur :D

                        Alors, autre exemple : la calculette, comment fait-elle ses calculs? J'imagine que le principe est le même : des 0/1 imaginaires sur un "réseau électronique"? comment faire des calculs mathématiques avec ça?
                        merci en tout cas pour l'histoire de l'aimant, je crois que je comprends un peu mieux maintenant.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          21 février 2012 à 16:20:25

                          Pour les opérations, on utilise un autre type de circuit : les portes. Il y en a plusieurs sortes, mais les principales sont les portes NON, ET, OU et OU EXCLUSIF (NOT, AND, OR, XOR). C'est en combinant ces portes que l'on peut obtenir un circuit d'addition, de multiplication ... Ces circuits ont plusieurs fils d'entrées (pour l'alimentation électrique mais aussi pour modifier le "circuit du message binaire".

                          Le bit 1 peut être vu comme voulant dire VRAI. Le bit 0 comme FAUX. Donc NON 1 signifie NON VRAI et vaut donc 0 ou FAUX. Et inversement.

                          La porte AND a besoin de deux "entrées binaires". Pour avoir du courant à la sortie, il faut avoir du courant sur ses deux bornes d'entrées. Du coup :
                          1 ET 1 = 1
                          1 ET 0 = 0
                          0 ET 1 = 0
                          0 ET 0 = 0

                          La porte OR a elle aussi deux entrées. Pour avoir un signal électrique à la sortie, il suffit que l'une des deux entrées apporte du courant. Ce qui nous donne :
                          1 OU 1 = 1
                          1 OU 0 = 1
                          0 OU 1 = 1
                          0 OU 0 = 0

                          La porte XOR est comme la porte OR, sauf qu'il ne faut pas de signal sur les deux entrées en même temps :
                          1 XOR 1 = 0
                          1 XOR 0 = 1
                          0 XOR 1 = 1
                          0 XOR 0 = 0

                          Pour faire une addition en binaire, on va d'abord faire un test :

                          + 0 1
                          0 0 1
                          1 1 10


                          Et on se rend compte que le chiffre des unités est obtenu à l'aide d'une porte XOR (OU EXCLUSIF), celui des dizaines (la retenue) avec une porte AND. Ce qui donne vite un circuit compliqué : deux entrées pour le circuit qu'il faudra disjoindre en deux entrées pour la porte XOR + 1 sortie ; deux entrées pour la porte AND + 1 sortie. Et tout ça pour additionner seulement deux bits :)

                          Bon, c'est de l'enseignement façon fast food là, désolé. Tu peux également te renseigner en cherchant des infos sur les portes logiques (ou circuits logiques) et sur l'algèbre booléenne (la branche des maths qui sous-tend toute cette partie de l'électro).

                          EDIT : si j'avais regardé le lien de Lord Casque Noir plus tôt, je n'aurais pas eu besoin de me casser la tête à écrire tout ça :'(
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Tutoriel : Apprendre à programmer avec Ada : Version 1 achevée et publiée
                            21 février 2012 à 17:00:24

                            non, merci c'est bien, par contre comment lis-tu ton tableau?
                            merci Lord Casque Noir pour le lien ^^
                            en relisant les premiers posts, j'ai oublié de vous demander, pour "afficher" les bits, pour qu'ils donnent l'information sur l'écran, comment cela se passe? disons qu'on a toutes les tensions que l'ordi comprend comme autant d'informations, comment l'écran à son tour comprend ce qu'il doit afficher?
                            sinon, je lisais un article récemment sur une nouvelle technique, mais vous êtes peut-être déjà au courant : http://www.sciencesetavenir.fr/fondame [...] ues-durs.html
                            • Partager sur Facebook
                            • Partager sur Twitter
                              21 février 2012 à 18:24:24

                              Le tableau est simple à lire :

                              + 0 1
                              0 0 1
                              1 1 10


                              Il s'agit d'une table d'addition. En vert tu as les bits à additionner et en rouge le résultat (le nombre binaire 10 signifie 2 en décimal).

                              Quant à l'écran, il ne faut pas se poser trop de questions. Un écran ça affiche des points de couleur et puis c'est tout. Les résultats d'opérations effectuées par des programmes sont stockés en mémoire. Tout se passe dans la (les) mémoire(s) de l'ordinateur sans que tu n'y vois rien. L'affichage est géré par un super-méga-logiciel appelé système d'exploitation (windows, linux, mac os) qui n'affiche que ce qu'il a envie d'afficher. Entre l'affichage à l'écran et les bits il y a tellement de distance et d'opérations, que se lancer dans une explication qui tienne en moins de 3 tomes de 500 pages me semble très hasardeux. ;)
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Tutoriel : Apprendre à programmer avec Ada : Version 1 achevée et publiée
                                21 février 2012 à 21:27:05

                                Tu peux faire un pong en hardware sans trop de problème :

                                http://www.fpga4fun.com/PongGame.html
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  22 février 2012 à 4:08:13

                                  Citation

                                  Tu peux faire un pong en hardware sans trop de problème


                                  c'est cool ça


                                  ok merci de toutes vos réponses ^^
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  le fonctionnement de l'ordinateur : question sur les bits

                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                  • Editeur
                                  • Markdown