54 votes

Comment une instruction d'assemblage se transforme-t-elle en variations de tension sur la CPU?

Je travaille en C et Disponible pour le passé 3 ans à 5 ans. Considérer que ma base de connaissances ici.

Si je devais utiliser une instruction de montage tels que MOV AL, 61h pour un processeur qui l'ont soutenue, ce qui est exactement à l'intérieur du processeur qui interprète ce code et le distribue comme des signaux de tension? Comment ces instructions simples susceptibles d'être réalisées?

L'assemblée se sent encore comme un langage de haut niveau quand j'essaie de penser à la multitude de mesures contenues dans MOV AL, 61h ou même XOR EAX, EBX.

EDIT: j'ai lu quelques commentaires de se demander pourquoi j'ai mis ce que lorsque le x86-famille n'est pas commun dans les systèmes embarqués. Bienvenue à ma propre ignorance. Maintenant je me dis que si je suis ignorant sur ce sujet, il y a probablement d'autres ignorants de lui aussi bien.

Il m'était difficile de choisir un favori de réponse étant donné l'effort que vous avez mis dans vos réponses, mais je me sentais obligé de prendre une décision. Pas de blesser les sentiments, les gars.

Je trouve souvent que plus j'en apprends sur les ordinateurs les moins, je réalise que je connais. Merci pour l'ouverture de mon esprit pour microcode et le transistor logique!

EDIT #2: Grâce à ce fil, j'ai juste compris pourquoi XOR EAX, EAX plus rapide que de l' MOV EAX, 0h. :)

20voto

Preet Sangha Points 39414

Edit: Voici un exemple de PROCESSEUR (6502) a été simulé à l'aide de python/javascript AU NIVEAU TRANSISTOR http://visual6502.org Vous pouvez mettre votre code pour voir comment il à faire ce qu'il fait.

Edit: Super 10 000m d'altitude au Niveau de la Vue : Soul of a New Machine - Tracy Kidder

J'ai eu beaucoup de mal à envisager ce jusqu'à ce que j'ai fait microcoding. Puis il fait tous les sens (abstrait). C'est un sujet complexe, mais dans un très très haut niveau point de vue.

Essentiellement pensez-y comme ça.

Un processeur d'instruction est essentiellement un ensemble de charges stockées dans des circuits électriques qui composent la mémoire. Il est circuity qui causent ces accusations à être transféré à l'intérieur de la CPU, de la mémoire. Une fois à l'intérieur de la CPU, les frais sont fixés comme entrée pour le câblage de la CPU du circuit. C'est essentiellement une fonction mathématique qui va causer plus de puissance électrique, et le cycle continue.

Les processeurs modernes sont de loin beaucoup plus complexe, mais de nombreuses couches de microcoding, mais le principe reste le même. La mémoire est un ensemble de charges. Il y a des circuits pour déplacer les charges et d'autres circuits de mener à bien fonctionner avec d'autres charges (de sortie) de la fed à la mémoire ou d'autres circuits de remplir d'autres fonctions.

Pour comprendre comment la mémoire fonctionne, vous devez comprendre la logique des portes et de la façon dont ils sont créés à partir de plusieurs transistors. Cela conduit à la découverte que le matériel et les logiciels sont équivalents dans le sens où la essentiellement d'effectuer des fonctions dans le sens mathématique.

14voto

Brian Campbell Points 101107

C'est une question qui nécessite plus d'une réponse sur StackOverflow à expliquer.

Pour en apprendre au sujet de cette tout le chemin de la plus élémentaire des composants électroniques à base de code machine, lire L'Art de l'Électronique, par Horowitz et Hill. Pour en apprendre davantage sur l'architecture de l'ordinateur, lisez Organisation de l'Ordinateur et de Conception par Patterson et Hennessey. Si vous souhaitez vous lancer dans des sujets plus avancés, lire l'Architecture de l'Ordinateur: Une Approche Quantitative, par Hennessey et Patterson.

Par la manière, L'Art de l'Électronique a aussi un compagnon manuel de laboratoire. Si vous avez le temps et les ressources disponibles, je vous recommande fortement de faire les laboratoires; j'ai effectivement pris les classes enseignées par Tom Hayes, dans laquelle nous avons construit une variété de circuits analogiques et numériques, aboutissant à la construction d'un ordinateur à partir d'un 68k puce, un peu de RAM, certains PLDs, et certains composants discrets. Vous devez entrer le code machine directement dans la RAM à l'aide d'un clavier hexadécimal; c'était une explosion, et une excellente façon d'obtenir les mains sur l'expérience au niveau le plus bas d'un ordinateur.

13voto

Strilanc Points 7161

Expliquer l'ensemble du système dans le détail n'est impossible à faire sans des livres entiers, mais voici un aperçu de haut niveau d'une conception simpliste de l'ordinateur:

  • Au niveau le plus bas il y a de la physique et des matériaux.
  • L'utilisation de la physique et des matériaux, vous pouvez dériver de la porte logique NAND.
  • À l'aide de la NAND gate, vous pouvez déduire tous les autres de base de portes logiques (ET, OU, XOR, NOT, etc.).
  • À l'aide de la base de portes logiques, vous pouvez dériver plus compliqué circuits tels que le basilic, le multiplexeur, et ainsi de suite.
  • Aussi à l'aide de la base de portes logiques, vous pouvez dériver majestueux circuit numérique des éléments tels que le flip flop, l' horloge, et ainsi de suite.
  • À l'aide de votre plus compliqué majestueux circuits, vous pouvez dériver de niveau supérieur, des pièces comme les compteurs, la mémoire, les registres, de l' arithmétique à la logique de l'unité, etc.
  • Maintenant, vous avez juste à coller votre haut niveau de l'ensemble de pièces telles que:
    • Une valeur qui vient de sortir de la mémoire
    • La valeur est interprétée comme une instruction par l'envoi à l'endroit approprié (par exemple. l'ALU ou de la mémoire) à l'aide de multiplexeurs et etc. (Instructions de base sont les types de lecture de la mémoire-en-inscrivez-vous, écrivez-de-inscrivez-vous-dans-la mémoire, effectuer des opération sur les registres, et le saut-de-instruction-sur-condition.)
    • Le processus se répète avec l'instruction suivante

Pour comprendre comment une assemblée instruction provoque un changement de la tension, vous avez simplement besoin de comprendre comment chacun de ces niveaux est représenté par le niveau en dessous. Par exemple, un complément d'instruction sera la cause de la valeur de deux registres à se propager à l'ALU, qui a des circuits qui calculent toutes les opérations logiques. Puis un multiplexeur de l'autre côté, d'être nourris de l'AJOUT de signal à partir de l'instruction, sélectionne le résultat souhaité, qui se propage jusqu'à l'une des registres.

8voto

Crashworks Points 22920

C'est une grande question, et dans la plupart des universités, il y a une classe entière d'un semestre pour y répondre. Donc, plutôt que de vous donner un résumé terriblement bouché dans cette petite boîte, je vais plutôt vous diriger vers le manuel qui dit toute la vérité: Organisation et conception de l'ordinateur: l'interface matériel / logiciel de Patterson et Hennessey .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X