Changes between Version 1 and Version 2 of HardAlmoGeneric


Ignore:
Timestamp:
Aug 15, 2011, 2:58:17 PM (14 years ago)
Author:
Joel Porquet
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HardAlmoGeneric

    v1 v2  
    99=== Brève description ===
    1010
    11 En utilisant la plateforme `simul_almo_generic` sans spécifier d'argument, on obtient une plateforme mono-processeur telle qu'illustrée ci-dessus. Cette plateforme supporte jusqu'à quatre tâches logicielles et, un contrôleur de périphérique de bloc (`ioc`) et un contrôleur graphique (`fbf`) peuvent être activés de manière optionnelle.
     11En 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.
    1212
    13 ==== Arguments ====
     13=== Arguments ===
    1414
    1515La plateforme mono-processeur peut être lancée avec les arguments suivants :
     16
     17* -SYS : spécifie le chemin vers le binaire du système d'exploitation (normalement `sys.bin`)
     18* -APP : spécifie le chemin vers le binaire de l'application (normalement `app.bin`)
     19* -NCYCLES : spécifie le nombre de cycles de simulation avant l'arrêt
     20* -NTASKS : spécifie le nombre de tâches (entre 1 et 4)
     21* -NICACHE : spécifie le nombre d'ensembles ('set') pour le cache d'instructions
     22* -NDCACHE : spécifie le nombre d'ensembles ('set') pour le cache de données
     23* -IOCFILE : active le périphérique de bloc et spécifie le chemin vers le fichier qui servira d'image pour ce contrôleur
     24* -FBFSIZE : active le périphérique graphique et spécifie la largeur/hauteur de la fenêtre graphique (en pixels)
     25* -TRACE : spécifie le chemin vers le fichier qui contiendra les informations de tracage
     26* -STATS : spécifie le chemin vers le fichier qui contiendre les informations de statistiques
     27* -DEBUG : spécifie le nombre de cycles à partir duquel le mode débogage est actif
     28* -TOCYCLE : spécifie le nombre de cycles à partir duquel le mode débogage devient inactif
     29* -LATENCY : spécifie la latence du bus (en nombre de cycles)
     30
     31=== Cartographie de la mémoire ===
     32
     33En fonction des adresses croissantes :
     34
     35||= Adresse =||= Taille =||= Périphérique : Utilisation =||
     36|| 0x00400000 || 0x00004000 || RAM : Code de l'application utilisateur ||
     37|| 0x10000000 || 0x00080000 || RAM : Données de l'application utilisateur ||
     38|| 0x20000000 || 0x00001000 || RAM : Pile de l'application utilisateur ||
     39|| 0x80000000 || 0x00004000 || RAM : Code du système d'exploitation ||
     40|| 0x81000000 || 0x00004000 || RAM : Données (cachables) du système d'exploitation ||
     41|| 0x82000000 || 0x00001000 || RAM : Données (non-cachables) du système d'exploitation ||
     42|| 0x90000000 || 0x00000200 || TTY ||
     43|| 0x91000000 || 0x00000080 || TIMER ||
     44|| 0x92000000 || 0x00000020 || IOC ||
     45|| 0x93000000 || 0x00000100 || DMA ||
     46|| 0x96000000 || 0x00004000 || FBF ||
     47|| 0x9F000000 || 0x00000100 || ICU ||
     48|| 0xBFC00000 || 0x00001000 || ROM : Code de démarrage ||
     49
     50=== Cartographie des interruptions ===
     51
     52Le 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 :
     53
     54||= Entrée =||= Périphérique =||
     55|| irq_in![0] || IOC ||
     56|| irq_in![1] || TIMER ||
     57|| irq_in![2] || DMA ||
     58|| irq_in![3] || TTY0 : terminal de la tâche n°0 ||
     59|| irq_in![4] || TTY1 : terminal de la tâche n°1 (n'existe que si NTASKS > 1) ||
     60|| irq_in![5] || TTY2 : terminal de la tâche n°2 (n'existe que si NTASKS > 2) ||
     61|| irq_in![6] || TTY3 : terminal de la tâche n°3 (n'existe que si NTASKS > 3) ||
     62