Architecture cible : la carte Stratix d’Altera Une carte embarquée (Stratix/Altera) Carte Stratix Exemple de système à base de processeur Nios Le processeur Nios-II, un IP configurable • Le processeur Nios-II est fourni en temps que configurable soft-core. • A opposé à un micro-contrôleur fixé dit On-TheShelf (composant sur étagère) • Configurable signifie que les paramètres et le jeu d’instruction du processeur peuvent être ajustés pour satisfaire des objectifs – De performance – Ou de coût • Le processeur est fourni comme un soft (vhdl) instanciable sur n’importe quel cible Stratix Processeur Nios-II 32 bits, Architecture RISC • Le processeur Nios-II est avant tout un Jeu d’instruction. • La dénomination Nios-II ne définit pas une implantation particulière. • Le jeu d’instruction Nios-II pourrait tout aussi bien être implanté en matériel, par émulation logicielle ou par simulation sur une machine existante • Dans le cas matériel, plusieurs implantations différentes existent selon les critères d’embarquabilité: – Réduction de la taille – Amélioration des performances –… Block-diagram du processeur NIOS-II ALU Les opérations de l’ALU travaillent sur une ou deux opérandes provenant des registres généraux et rangent le résultat dans un registre. Opérations de l’ALU • Les opérations de multiplication et de division sont les seules opérations qui n’apparaissent pas dans toutes les implantations du Nios-II. • Lorsqu’elles ne sont pas implantées en matériel, une exception est levée et l’Exception Handler appelle une routine émulant l’opération en logiciel. • La présence ou l’absence de l’implantation matérielle est transparente à l’utilisateur Registres généraux du Nios-II Registres de contrôle 3 modes d’exécution du Nios-II ISA, instructions de transfert d’instructions Instructions de transfert de données Instructions A&L Instructions de déplacement de données Instructions de comparaison Instructions de décalage Contrôleur d’interruptions • Le processeur Nios-II supporte 32 niveaux d’interruption (IRQ) • La priorité des interruptions est fixée par logiciel • Les interruptions sont autorisées individuellement par le registre ienable et globalement par le registre d’état • Une interruption est générée si et seulement si les 3 conditions suivantes sont réunies : – L’entrée IRQi est active – Le bit i du registre ienable est à 1 – Le champs PIE du registre d’état est à 1 Nios-II Custom • De la même façon qu’il est possible d’ajouter et d’enlever les instructions – mul, muli, mulxss, mulxsu, mulxuu, div, divu • L’utilisateur peut facilement ajouter des instructions spécialisée à sa version de Nios-II à travers le block « Custom Instruction Logic » Organisation mémoire Organisation mémoire • Le processeur Nios-II supporte un bus séparé pour les données et la mémoire • architecture de Harward • bus implémentés par spécification d’interface Avalon • mémoires et périphériques mappés dans l’espace de données adressable du processeur • protocole de rangement Little-Endian Ports de communication master-Avalon • port de communication M-Avalon d’instruction sur 32 bits. • utilisé pour l’opération Fetch (Lecture uniquement) • port M-Avalon de donnée sur 32 bits • utilisé à la fois en lecture (Load) et en écriture (Store). Mémoire Cache • deux mémoires cache – Données – Et instructions • mémoires on-chip faisant partie intégrante du processeur • La taille dépend de l’implémentation • La gestion du cache et de la cohérence mémoire sont gérées par logiciel • Des instructions de l’ISA Nios-II ont pour rôle de contrôler le cache ‘Address Mapping’ • Le mapping des adresses des mémoires et des périphériques est ‘design-dependent’. • Seules trois adresses font partie du processeur : – Adresse de Reset – Adresse d’exception – Adresse du Break Handler