wiki:HardAlmoGeneric

Version 3 (modified by Joel Porquet, 14 years ago) (diff)

--

Plateforme matérielle de simulation

Plateforme mono-processeur

Vue graphique

No image "hard_almo_mono_icu_timer_dma_tty_ioc_fbf.png" attached to Images

Brève description

En utilisant la plateforme simul_almo_generic sans spécifier d'argument, on obtient une plateforme mono-processeur MIPS32 telle qu'illustrée ci-dessus. Cette plateforme supporte jusqu'à quatre tâches logicielles. De manière fixe, elle embarque une mémoire morte (ROM), une mémoire vive (RAM), un concentrateur d'interruptions matérielles (ICU), un contrôleur d'horloge (TIMER), un contrôleur DMA et un terminal d'entrée/sortie (TTY). Un contrôleur de périphérique de bloc (IOC) et un contrôleur graphique (FBF) peuvent être activés de manière optionnelle.

Arguments

La plateforme mono-processeur peut être lancée avec les arguments suivants :

  • -SYS : spécifie le chemin vers le binaire du système d'exploitation (normalement sys.bin)
  • -APP : spécifie le chemin vers le binaire de l'application (normalement app.bin)
  • -NCYCLES : spécifie le nombre de cycles de simulation avant l'arrêt
  • -NTASKS : spécifie le nombre de tâches (entre 1 et 4)
  • -NICACHE : spécifie le nombre d'ensembles ('set') pour le cache d'instructions
  • -NDCACHE : spécifie le nombre d'ensembles ('set') pour le cache de données
  • -IOCFILE : active le périphérique de bloc et spécifie le chemin vers le fichier qui servira d'image pour ce contrôleur
  • -FBFSIZE : active le périphérique graphique et spécifie la largeur/hauteur de la fenêtre graphique (en pixels)
  • -TRACE : spécifie le chemin vers le fichier qui contiendra les informations de tracage
  • -STATS : spécifie le chemin vers le fichier qui contiendre les informations de statistiques
  • -DEBUG : spécifie le nombre de cycles à partir duquel le mode débogage est actif
  • -TOCYCLE : spécifie le nombre de cycles à partir duquel le mode débogage devient inactif
  • -LATENCY : spécifie la latence du bus (en nombre de cycles)

Cartographie de la mémoire

En fonction des adresses croissantes :

Adresse Taille Périphérique : Utilisation
0x00400000 0x00004000 RAM : Code de l'application utilisateur
0x10000000 0x00080000 RAM : Données de l'application utilisateur
0x20000000 0x00001000 RAM : Pile de l'application utilisateur
0x80000000 0x00004000 RAM : Code du système d'exploitation
0x81000000 0x00004000 RAM : Données (cachables) du système d'exploitation
0x82000000 0x00001000 RAM : Données (non-cachables) du système d'exploitation
0x90000000 0x00000200 TTY
0x91000000 0x00000080 TIMER
0x92000000 0x00000020 IOC
0x93000000 0x00000100 DMA
0x96000000 0x00004000 FBF
0x9F000000 0x00000100 ICU
0xBFC00000 0x00001000 ROM : Code de démarrage

Cartographie des interruptions

Le concentrateur d'interruptions matérielles (ICU) est capable de multiplexer jusqu'à 32 interruptions d'entrée vers 1 interruption de sortie (à destination du processeur MIPS32). L'interruption matérielle connectée à l'entrée i de l'ICU est notée irq_in[i]. Voici la cartographie des entrées pour la plateforme mono-processeur :

Entrée Périphérique
irq_in[0] IOC
irq_in[1] TIMER
irq_in[2] DMA
irq_in[3] TTY0 : terminal de la tâche n°0
irq_in[4] TTY1 : terminal de la tâche n°1 (n'existe que si NTASKS > 1)
irq_in[5] TTY2 : terminal de la tâche n°2 (n'existe que si NTASKS > 2)
irq_in[6] TTY3 : terminal de la tâche n°3 (n'existe que si NTASKS > 3)