| 254 | | On souhaite modéliser une architecture structurée en quatre clusters presque identiques, |
| 255 | | Chaque cluster contiendra un processeur MIPS32 (avec son contrôleur de cache), un composant ICU, un contrôleur TTY, un TIMER et une mémoire RAM. |
| | 254 | On souhaite modéliser une architecture structurée en quatre clusters. |
| | 255 | Chaque cluster contiendra un processeur MIPS32 (avec son contrôleur de cache), une mémoire RAM, et un ou deux contrôleurs de périphériques: |
| | 256 | * Le cluster 0 contient le contrôleur de disque IOC. |
| | 257 | * Le cluster 1 contient le contrôleur DMA et et le contrôleur d'interruptions ICU. |
| | 258 | * Le cluster 2 contient le contrôleur d'écran graphique FBF et le contrôleur de timers TIM. |
| | 259 | * Le cluster 3 contient la ROM de boot et le contrôleur TTY. |
| 266 | | Pour ce qui concerne les interruptions: |
| 267 | | * Dans chaque cluster (i), la ligne d'interruption du TIMER sera connectée à l'entrée IRQ_IN[0] du composant ICU[i]. |
| 268 | | * Dans chaque cluster (i), la ligne d'interruptiondu TTY sera connectée à l'entrée IRQ_IN[1] du composant ICU[i]. |
| 269 | | * La ligne d'interruption du contrôleur IOC sera connectée à l'entrée IRQ_IN[2] du composant ICU[0]. |
| 270 | | * La ligne d'interruption du contrôleur DMA sera connectée à l'entrée IRQ_IN[3] du composant ICU[1]. |
| 271 | | |
| 272 | | On définit 25 segments pour cette plate-forme : |
| 273 | | |
| 274 | | * 4 segments '''seg_icu_i''' associés aux 4 composants ICU[i], |
| 275 | | * 4 segments '''seg_tty_i''' associés aux 4 composants TTY[i] |
| 276 | | * 4 segments '''seg_tim_i''' associés aux 4 composants TIMER[i] |
| 277 | | * 4 segments '''seg_stack_i''' pour les 4 piles d'exécution des 4 processeurs |
| 278 | | * 1 segment '''seg_reset''' pour le code de RESET à l'adresse imposée 0xBFC00000 |
| | 268 | Pour ce qui concerne les interruptions: |
| | 269 | * Les 4 lignes d'interruption du périphérique TIM seront connectée aux entrées IRQ_IN[3:0] du composant ICU. |
| | 270 | * Les 4 lignes d'interruption du périphérique DMA seront connectée aux entrées IRQ_IN[7:4] du composant ICU. |
| | 271 | * Les 4 lignes d'interruption du périphérique TTY seront connectée aux entrées IRQ_IN[11:8] du composant ICU. |
| | 272 | * La ligne d'interruption du périphérique IOC sera connectée à l'entrée IRQ_IN[12] du composant ICU. |
| | 273 | |
| | 274 | On définit les segments suivants pour cette plate-forme : |
| | 275 | |
| | 276 | |
| | 277 | |
| | 278 | * 1 segment '''seg_rom''' pour le code de RESET à l'adresse imposée 0xBFC00000 |
| 280 | | * 1 segment '''seg_kdata''' pour les données cachables du système d'exploitation. |
| 281 | | * 1 segment '''seg_kunc''' pour les données non-cachables du système d'exploitation. |
| 282 | | * 1 segment '''seg_text''' pour le code des programmes utilisateur |
| 283 | | * 1 segment '''seg_data''' pour les données globale des programmes utilisateur |
| 284 | | * 1 segment '''seg_fbf''' associé au frame buffer |
| 285 | | * 1 segment '''seg_ioc''' associé au contrôleur de disque |
| 286 | | * 1 segment '''seg_dma''' associé au contrôleur DMA |
| | 280 | * 1 segment '''seg_kdata''' pour les données cachables du système d'exploitation, dans la zone protégée. |
| | 281 | * 1 segment '''seg_kunc''' pour les données non-cachables du système d'exploitation, dans la zone protégée. |
| | 282 | * 1 segment '''seg_text''' pour le code des programmes utilisateur, dans la zone non protégée. |
| | 283 | * 1 segment '''seg_data''' pour les données globale des programmes utilisateur, dans la zone non protégée. |
| | 284 | * 4 segments '''seg_stack_i''' pour les 4 piles d'exécution de 4 tâches, dans la zone non protégée (une pile par cluster. |
| | 285 | * 1 segment '''seg_fbf''' associé au frame buffer, dans la zone protégée. |
| | 286 | * 1 segment '''seg_ioc''' associé au contrôleur de disque, dans la zone protégée. |
| | 287 | * 1 segment '''seg_dma''' associé au contrôleur DMA, dans la zone protégée. |
| | 288 | * 1 segment '''seg_icu''' associé au composant ICU, dans la zone protégée. |
| | 289 | * 1 segment '''seg_tty''' associé au composant TTY, dans la zone protégée. |
| | 290 | * 1 segment '''seg_tim''' associé au composant TIM, dans la zone protégée. |