Les emulateurs - principes part 1

Architecture d'une machine

Qu'est ce qu'un CPU ?

Un Processeur (CPU=Central Processing Unit) est le coeur de toute machine.Il possede plusieurs types de registres lui permettant de regir harmonieusement tous les autres composants d'un systeme et d'effectuer des operations arithmetiques. Les differents types de registres sont:

  • Registres de donnees: ici le CPU stocke et prend des valeurs immediates pour effectuer des calculs
  • Registres d'adresse: ici le CPU stocke des adresses (pointeurs) pour pouvoir chercher des valeurs en RAM
  • Registre de Flag: ici le CPU stocke les flags lors d'operation arithmetiques ou d'operation de controle du systeme
  • Registre PC: le Programm Counter stocke l'adresse de la prochaine instruction a executer.
    Le processeur va apres chaque instruction chercher la suivante.Les instructions sont represente par des bytes successifs suivant la structure suivante (en general)
    Code d'instruction - Donnee 1 - Donnee 2 - Donnee 3

    Qu'est ce qu'un coprocesseur ?

    Un coprocesseur est un composant adresse par le CPU permattant d'accomplir une tache precise. Par exemple on distingue les coprocesseurs suivants:

  • Coprocesseur video: Charge d'afficher l'ecran de la memoire su le moniteur.
  • Copro arithmetique: Charge des operations de calcul sur les flottants
  • Digital Sound Processor: Composant de la SB, utilise pour produire des sons type .WAV
  • ADLIB Wave Synthesis: Composant charge de recreer des sons synth a partir d'un frequence etc...
  • Geometry Trans. Engine: Composant de la PSX charge de l'affichage de polygone en 3D

    Timers et interruptions

    Interruptions
    Une interruption est une routine appelee par le processeur en cas d'un evenement particulier. Cette routine interrompt le travail courant du processeur. Par exemple sur Amiga ,a chaque retour de balayage, tout les 50Hz est appelle une routine speciale... La liste des adresses des programmes a appeler en cas d'interruption est stocke dans une table appelee table d'interruption.A chaque entree de cette table correspond une interruption precise.
    Les interruptions sont aussi classees par priorite.Ainsi si deux interruption occurent en meme temps, leur priorite determinera laquelle sera executee en premier.

    Timers
    Un timer est un oscillateur qui bat a un frequence precise et qui est programmable. Ainsi tout les n cycles du timer on pourra execute une exception(interruption).

    Cycles processeurs
    Le processeur lui aussi possede un horloge interne qui determine a que rythme il va aller. Un pentium 166Mhz produit 166 millions de ces battements... Chacun des ces battements est appele un cycle...Chaque instruction du processeur prend un certain nombre de cycles pour etre executee.Ceci permet de determiner si une instruction est rapide ou lente (DIV vs SHR par exemple).

    peripheriques et DMA

    Les peripheriques
    Un peripherique est un circuit, organe d'entree sortie greffe au processeur.Ce sont les ecran, claviers , manettes etc...
    Un peripherique s'adresse au processeur via un BUS, Ie une ligne a travers laquelle il lui transmet des informations. Cette ligne amene a des ports (comme sur PC) ou des adresses memoire (custom chips sur AMIGA) les differentes informations relative au peripherique. Lorsque le peripherique a a se manifester au processeur il peut utiliser une ligne d'interruption pour l'en aviser.

    le DMA
    Le peripherique peut aussi acceder directement aux ressource memoire via des canaux direct appeles DMA. (Direct Memory Acces) Pendant les transferts DMA, le processeur est dans un etat flottant,ou il peut effectuer des operation interne pendant que les informations circulent du peripherique a la memoire via le BUS sans passer par le processeur !!!

    Retour a la page principale