Changes between Version 6 and Version 7 of HardAlmoGeneric


Ignore:
Timestamp:
Oct 8, 2013, 10:39:50 AM (12 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HardAlmoGeneric

    v6 v7  
    1515La plateforme mono-processeur peut être lancée avec les arguments suivants :
    1616
    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)
     17* -SYS : spécifie le chemin vers le fichier contenant le code binaire du système d'exploitation (normalement `sys.bin`)
     18* -APP : spécifie le chemin vers le fichier contenant le code binaire de l'application (normalement `app.bin`)
     19* -NCYCLES : spécifie le nombre de cycles de simulation avant l'arrêt du simulateur
     20* -NTASKS : spécifie le nombre de tâches maximum par processeur (entre 1 et 4)
    2121* -NICACHE : spécifie le nombre d'ensembles ('set') pour le cache d'instructions
    2222* -NDCACHE : spécifie le nombre d'ensembles ('set') pour le cache de données
     
    7272
    7373Concernant la cartographie des interruptions, l'idée est la suivante :
    74 * l'`IOC` est toujours connecté à irq_in![0].
    75 * ensuite, on a un ensemble de lignes d'interruptions pour `TIMER`, `DMA`, `TTY*` par processeur.
     74* `IOC` : une seule interruption, toujours connecté à irq_in![0].
     75* `TIMER` : une interruption par processeur
     76* `DMA` : une interruption par processeur
     77* `TTY` : une interruption par processeur et par tâche exécutée sur ce processeur
    7678
    77 Cet ensemble a un span qui suit la formule suivante : `irq_span = 2 + N_TASKS` (2 car `TIMER` et `DMA` ont des lignes fixes, `N_TASKS` car le nombre de lignes d'interruptions pour le `TTY` d'un processeur dépend du nombre de tâches qui s'exécutent dessus).
     79Il y a donc  (2 + N_TASKS) interruptions par processeur.
    7880
    79 Le span global pour un processeur `P[i]` suit la formule : `irq_base_number = 1 + i * irq_span`.
     81Le calcul de l'index de la première interruption vers un processeur `P[i]` suit la formule : `irq_base_number = 1 + i * irq_span`.
    8082
    8183Enfin, on soulignera la contrainte suivante : il est impossible, avec les 32 lignes d'interruption possibles en entrée de l'`ICU`, de supporter la configuration maximale, à savoir 8 processeurs et 4 tâches par processeur. Le maximum supporté sera par exemple, 6 processeurs et 4 tâches/processeur ou 8 processeurs et 2 tâches/processeur.