Pourquoi un décod. d'instructions pour un prog. Déjà compilé?
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Pourquoi un décod. d'instructions pour un prog. Déjà compilé?



  1. #1
    Klodo

    Angry Pourquoi un décod. d'instructions pour un prog. Déjà compilé?


    ------

    Bonjour,

    Je ne sais pas si je suis au bon endroit (question plutôt électronique que informatique ?) ...

    Bref! J'aimerais savoir pourquoi y a dans un Cpu un décodeur d'instructions alors que le programme qu'il est sensé exécuté est déjà en langage machine !

    Merci d'avance pour vos réponses.

    -----

  2. #2
    jiherve

    Re : Pourquoi un décod. d'instructions pour un prog. Déjà compilé?

    Bonjour,
    le langage machine ce sont des instructions codée sur un certains nombre de bits, bits qu'il s'agit de décoder pour activer les ressources du processeur ainsi certaine partie du champ sélectionnera une opération à faire et d'autres les registres d'entrée et de sortie utilisés.
    Pour en savoir plus, car cela déborde largement le cadre d'un forum , il faut chercher sur le net par exemple:http://www.courstechinfo.be/Techno/CPU.html.
    J'ai débuté avec des processeurs faits à la main avec de la logique de base ce fut formateur!
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    polo974

    Re : Pourquoi un décod. d'instructions pour un prog. Déjà compilé?

    Bonjour,
    Parce qu'un processeur, c'est tout un tas de chemins et de choix qu'il faut piloter (au bon moment), et donc si ce n'était pas encodé, il faudrait des centaines de bits juste pour piloter ces chemins et ces choix, plus les bits de data. pas très économique...
    Parce que en plus de cela, certaines instructions nécessitent plusieurs opérations successives, qu'il faut donc séquencer, parfois en fonction d'un résultat intermédiaire (genre une division).

    De plus de nos jours, les processeurs sont des micro-processeurs, et chaque instruction ou presque lance un micro-programme, bref, ça décode et sa séquence à tous les étages...
    Jusqu'ici tout va bien...

  4. #4
    Klodo

    Re : Pourquoi un décod. d'instructions pour un prog. Déjà compilé?

    Donc il y a deux langages machines finalement ? Celui qu'on obtient après la compilation , puis celui que le décodeur d'instructions génère à partir du premier... c'est ça alors ??

    Merci pour vos réponses tous les deux.

  5. A voir en vidéo sur Futura
  6. #5
    Klodo

    Re : Pourquoi un décod. d'instructions pour un prog. Déjà compilé?

    Désolé les gars, je ne suis pas convaincu par vos réponses en fin de compte :/

    Merci quand même

  7. #6
    albanxiii
    Modérateur

    Re : Pourquoi un décod. d'instructions pour un prog. Déjà compilé?

    Bonjour,

    Citation Envoyé par Klodo Voir le message
    Cpu
    CISC ou RISC ?

    Citation Envoyé par Klodo Voir le message
    Désolé les gars, je ne suis pas convaincu par vos réponses en fin de compte :/
    Il ne s'agit pas de religion ici, mais de science et technique. Dites plutôt que vous n'avez pas compris.
    Et dans ce cas faites vos recherches vous même, le net ne manque pas d'informations à ce sujet.
    Exemple d'explication très simple : https://www.quora.com/What-is-a-Decode-Unit
    Not only is it not right, it's not even wrong!

  8. #7
    Jack
    Modérateur

    Re : Pourquoi un décod. d'instructions pour un prog. Déjà compilé?

    Citation Envoyé par Klodo Voir le message
    Désolé les gars, je ne suis pas convaincu par vos réponses en fin de compte :/

    Merci quand même
    Il faudrait connaitre ton niveau en électronique numérique pour tenter une explication plus détaillée.
    Par exemple, sur un µProcesseur simple, une instruction d'addition de 2 registres tient sur un octet (même sur un CISC). Il faudra bien un décodage de cet octet et l'exécution en conséquence d'un microcode pour effectuer toutes les "manœuvres" nécessaires au CPU pour effectuer cette opération: il faut aiguiller les deux registres vers l'ALU, sélectionner la bonne opération et renvoyer le résultat dans un des registres par exemple. Ca ne se fait pas tout seul d'un coup de baguette magique.

  9. #8
    Vincent PETIT
    Animateur Électronique

    Re : Pourquoi un décod. d'instructions pour un prog. Déjà compilé?

    Citation Envoyé par Klodo Voir le message
    Désolé les gars, je ne suis pas convaincu par vos réponses en fin de compte :/

    Merci quand même
    Salut,
    Si la question est toujours d'actualité, je vais essayer d'y répondre le plus simplement du monde mais en vulgarisant un poil pour dégrossir le truc. J'ai aussi appris comme JR (message #2) à l'école on a fait dérouler un UAL pas à pas pour voir comment il décode le langage machine.

    Le plus simple pour comprendre c'est de prendre le petit CPU d'un microcontrôleur car il est simple, dans le dessin ci dessous c'est la carré avec le fond gris.

    Nom : path3112.png
Affichages : 49
Taille : 58,5 Ko


    - Le compilateur compile le programme, en C ou en assembleur par exemple, et il en fait du code machine donc du binaire. Il va mettre les "opcode" (langage machine correspondant à une instruction CPU) dans la mémoire Flash (comme le disque dur d'un PC) et mettre des constantes en RAM (constantes, la stack, ...)

    - Le CPU démarre et va chercher un premier "opcode" (langage machine) mais la question est comment est ce que l'ALU sait que 0011000101 est une addition ? En réalité il ne peut pas le savoir c'est pour ça qu'il faut un décodeur d'opcode

    - L'ALU sait maintenant qu'il doit additionner les deux données en RAM.

    Et ainsi de suite... C'est pas plus compliqué que ça.

    Et là tu vas me dire, qu'est ce qu'il y a dans le décodeur d'instruction ? Et dans l'ALU ? Hé bien il n'y a aucun soft là dedans ! Le décodeur d'instruction n'est que du hardware qui fait de l'aiguillage et dans l'ALU ce sont des additionneurs, mutliplicateurs etc câblé avec des portes logique. Si l'opcode 0011000101 est une addition elle va aiguiller les données en RAM vers les additionneurs électroniques qui sont dans l'ALU.



    Maintenant pour aller plus loin il faut aller voir dans un cours car j'ai fait des raccourcis.
    Là où il n'y a pas de solution, il n'y a pas de problème.

  10. #9
    jiherve

    Re : Pourquoi un décod. d'instructions pour un prog. Déjà compilé?

    bonjour,
    le plus simple de tous les µC : MC14500.
    JR
    l'électronique c'est pas du vaudou!

Discussions similaires

  1. [Blanc] Lave-vaisselle ne chauffe pas (prog rapide oui mais pas en prog long)
    Par tgboue dans le forum Dépannage
    Réponses: 18
    Dernier message: 28/06/2022, 18h02
  2. Instructions claires pour créer sa phyto-épuration
    Par Patfor7 dans le forum Environnement, développement durable et écologie
    Réponses: 1
    Dernier message: 23/03/2014, 23h06
  3. Un graetz dérriére une tension déjà continue? Pourquoi!?
    Par invite9983f405 dans le forum Électronique
    Réponses: 11
    Dernier message: 27/05/2011, 09h30
  4. pourquoi mon programme ne compile pas?
    Par inviteb5f895f5 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 17/11/2008, 09h34