Architecture pour les systèmes multimédia SÉANCE 3 : LE PROCESSEUR NIOS-II LORANDEL Jordane jordane.lorandel@u-cergy.fr (Sur les bases du cours de B. Miramond)
Plan I.Problématiques et techniques de conception II.Les FPGAs III.Microprocesseur NIOS-II IV.Présentation du sujet de projet 2
Partie III. le microprocesseur NIOS-II 3
Sommaire 1.Processeurs embarqués : conception conjointe 2.System on Programmable Chip = Principe Exemples de systèmes à base de NIOS-II Architecture du processeur Le bus AVALON Les périphériques on-chip 4
1. Processeurs embarqués : vers le codesign 5
Processeurs embarqués Bloc IP : Soft core Propriétaire : format netlist, FPGA dependant -Microblaze (Xilinx), NIOS (Altera) Libre : format VHDL, FPGA independant -Leon, OpenRISC, F-CPU Architectures 32 bits, Harvard, RISC Circuit implanté sur support : Hard core circuit classique 6
Architectures de traitement utilisées dans l embarqué 7
FPGAs avec processeurs Altera -Soft Core Nios, Nios-II -Hard Core ARM Xilinx -Soft Core MicroBlaze, PicoBlaze -Hard Core PowerPC, ARM Atmel -Hard Core 8-bits micro-contrôleur propriétaire -Hard Core ARM QuickLogic -Hard Core Mips 8
Altera DE2-115 Development board Cyclone-IV FPGA EP4CE115 2Mb SRAM 128Mb SDRAM 8Mb Flash 32kb EEPROM JTAG and AS Mode configuration supported On board USB_BLASTER circuitry Gb Ethernet 2-ports SD Card socket 4 push buttons, 18 switches 18 user-defined red LEDs + 9 green 8 7-segment LED displays 50MHz oscillator Power-on reset circuitry https://www.terasic.com/ 9
Altera Nios-II development kit Audio : 24-bit encoder /decoder + line in /line out and microphone-in jack LCD Display 172-pin High speed Mezzanine Card (HSMC) USB type A/B 40-pin expansion port VGA output Remote control (IR) TV-in connector (NTSC/PAL/SECAM) RS232 port https://www.terasic.com/ 10
1ères caractéristiques de la plateforme DE2-1121S10 114 480 Logic elements 3,9 Mb RAM, 266 DSPs 4 PLLs 528 user I/Os programmation possible d un ou plusieurs processeurs NIOS-II 11
Fonctionnalité mixte Une application peut être composée : -d une partie matérielle accélératrice sur FPGA -couplée à une partie logicielle en soft -de plusieurs technologies différentes On a alors besoin d une conception conjointe logicielle/matérielle (ou codesign) Rupture dans la méthodologie classique! 12
Exemple: Digital set-top box system block diagram 13
Exemple: DSL Router System Diagram 14
2. System-On-Programmable Chip 15
Principe du SoPC Objectifs : Réduire les coûts, la consommation et la complexité des systèmes embarqués en permettant aux concepteurs d ajouter des périphériques au processeur sur la même puce m ême principe qu un microcontrôleur (processeur + périphériques au sein d un même circuit) 16
Exemples de systèmes à base de processeur NIOS-II 17
Les composants standards d un SoPC 18
Nios-II, un processeur configurable Un microcontrôleur possède une architecture figée alors que, le processeur NIOS-II est configurable -> on ajoute des éléments internes en fonction des besoins du processeur et de l application -> ajout flexible de périphériques externes et du mapping mémoire 19
Nios-II, un processeur configurable Les périphériques standards -Altera délivre un ensemble de périphériques (timers, interface série, gpio, SDRAM controllers, ) Les périphériques custom peuvent être développés et intégrés au processeur. Ceci est recommandé pour les fonction gourmandes en cycles CPU (-> hardware) 20
Génération du code du NIOS-II QSys d altera, outil graphique permettant la configuration des périphériques et du processeur. Possibilité d import/export de code VHDL de périphérique custom Génération automatique de code HDL pour l instanciation du processeur dans le système 21
Qsys Real-time System Debug High performance interconnect Industry-Standard interfaces (Axi, AHB, Whisbone, Avalone) Hierarchy and IP management (Library) 22
Les versions du Nios-II Nios-II processor comes in 3 ISA compatible versions : Software: Code is binary compatible -> Pas de changement requis lors du changement de version 23
Binary compatibility / Flexible Performance 24
Nios II : Fast/Standard/Economy 25
Nios II : Fast/Standard/Economy 26
Nios II : Quelques chiffres Stratix II Stratix Cyclone II NIOS II - fast NIOS II - standard NIOS II - economy 225 DMIPS @205MHz 133DMIPS @180MHz 31 DMIPS @209MHz 1319 ALUTS 1029 ALUTS 483 ALUTS Stratix 2S60-C3 Stratix 2S60-C3 Stratix 2S60-C3 157 DMIPS @143MHz 1808 LEs Stratix 1S80-C5 105 DMIPS @126MHz 1595 LEs Cyclone EP2C20-C6 99 DMIPS @134MHz 1170 LEs Stratix 1S80-C5 57 DMIPS @110MHz 1033 LEs Cyclone EP2C20-C6 23 DMIPS @160MHz 529 LEs Stratix 1S80-C5 22 DMIPS @159MHz 542 LEs Cyclone EP2C20-C6 Cyclone 101 DMIPS @128MHz 105 DMIPS @124MHz 16 DMIPS @126MHz 1676 LEs Cyclone EP1C20-C6 1145 LEs Cyclone EP1C20-C6 522 LEs Cyclone EP1C20-C6 Cyclone IV (GX) 190 DMIPS @165MHz 30 DMIPS @175MHz * FMax Numbers Based on Reference Design Running From On-Chip Memory (Nios II/f 1.15 DMIPS / MHz) 27
Architecture du processeur 28
Caractéristiques du Nios-II Processor RISC Architecture de Harvard : -Data Master port -Instruction Master port Banc de 32 registres de 32 bits Chacune de ces entités définit l architecture du Nios-II, mais rien n oblige que ces unités soient réalisées en hard -Exemple : Unité flottante émulée en SW -Lorsque l instruction n est pas implantée en Hw, le processeur génère une exception, et l exception handler appelle la routine d émulation Sw (instruction, div, ) 29
Nios-II Processor block diagram 30
Caractéristiques du Nios-II ALU Interface vers des instructions logiques custom Contrôleur d exceptions/interruption Memory management/protection Units (MMU/MPU) JTAG (debug) 31
Diagramme du processeur Nios 32
Registres généraux du Nios-II 32 Registres 32-bits + 32 registres de contrôle + possibilité de 63 shadow registers permettant l accélération du changement de contexte (si OS) 33
Registres de contrôle 34
ALU Support d instructions en virgule fixe et virgule flottante (format IEEE 754 simple précision) -> Configuration sous QSYS (cf. Floating point Custom Instruction Component) 35
Reset et signaux de debug Reset : -Reset global matériel forçant la remise à 0 immédiate du processeur -cpu_resetrequest (optionel), remise à 0 du processeur mais pas des autres composants Debug -debug_req suspend l activité du processeur pour debugger 36
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 fixé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 IRQ n est active -le bit i du registre ienable est à 1 -le champs PIE du registre d état est à 1 37
Nios II : Accès mémoires Protocole de rangement little Endian Mapping des adresses des mémoires et des périphériques dépendant du design (affectation sous l environnement de développement) Seules 3 adresses font partie du processeur : -Adresse de reset -Adresse d exception -Adresse du break Handler Val : Ox4A3B2C1D 38
Nios II : mémoires Mémoires caches donnéesinstructions Tightly-coupled Memories permettent de réduire la latence des temps d accès aux mémoires on-chip en dehors du core 39
Nios II : Tightly-coupled Master ports Garantisse une faible et fixe latence pour l accès à la mémoire on-chip Ports pouvant être connecté aux mémoires données et instructions Ports maîtres peuvent être connectés à travers TC Memory interfaces Slaves sont des vraies mémoires on-chip double ports 40
Mémoires off-chip SDRAM -Synchrone et dynamique -Il faut ajouter un contrôleur sur le SoC qui traduit le protocole Avalon dans l interface de la mémoire choisie - + une PLL : l horloge de la RAM est de même fréquence que le contrôleur mais la distance implique un décalage qu il faut compenser (Phase Locked Loop) Idéalement, il serait possible d atteindre un mot par cycle mais à cause des temps de pause générés par le contrôleur pour le rafraichissement, il est impossible d atteindre cette performance 41
Usages classiques Mémoire SRAM (statique) -Utilisée comme mémoire principale Mémoire FLASH -Contient la configuration utilisateur du FPGA (+ safe configuration) -Pour le cyclone IV, la flash de 8Mb. 42
Nios II System Design Flow 43
Bus Avalon 44
Qu est ce qu Avalon? Avalon est une spécification d interfaces pour des composants sur puce Avalon-ST(Streaming Interface) : l interface supporte des signaux de données unidirectionnels. Avalon-MM (Memory Mapped) : les composants sont mappés dans l espace mémoire Avalon Tristate: connexion de composants off-chip, La spécification définie les transferts entre un ou plusieurs périphériques et une structure d interconnect. Avalon est un système de communication maître-esclave 45
Communication maître-esclave Un composant Maître initie les transactions sur le bus soit en envoyant directement des données, soit en émettant des requêtes aux composants esclaves Un composant esclave ne prend jamais l initiative d utiliser le bus (en lecture ou écriture). Il ne fait que répondre aux requêtes des maîtres 46
Les autres protocoles Altera -> Avalon Xilinx -> CoreConnect, AXI ARM -> Amba Wishbone (libre) 47
Spécification Avalon Elle définit : -un ensemble de signaux -le comportement des périphériques -les types de transfert supportés par ces signaux -Chaque périphérique est connecté par un (ou +) port(s) M/S -Tous les ports sont reliés au system interconnect -C est un standard ouvert 48
Exemple de système basé Avalon On-chip 49
Exemple (suite) 50
Les interfaces Avalon 51
Les interfaces Avalon ST (Streaming Interface) -> Communication unidirectionnelle de données Avalon MM (Memory Map) -> interface bidirectionnelle typique de connexion Maître/ Esclave, composants mappés dans l espace mémoire (UART, microprocesseur, mémoires, DMA ), Avalon Conduit -> permet l ajout de signaux qui ne sont pas compris dans le standard (utile lors de la connection vers d autres modules) Avalon TC (Tri-State Conduit) -> permet la connexion à des périphériques off-chip Avalon Interrupt / Clock / Reset -> permet le partage de signaux d interruption / horloge /reset 52
Les signaux 53
Les signaux : caractéristiques générales Chaque interface définie un certain nombre de signaux. Lignes séparées pour : -Les adresses, -Les données (entrantes et sortantes si pas tristate) -Le contrôle. Lignes de données de largeur jusqu à 1024, Opérations synchrones Performances jusqu à un transfert par cycle Actifs à l état haut sauf si explicitement suivi de _n (read_n) 54
Les signaux : caractéristiques générales Exemple de l interface Avalon MM, port esclave vers l interconnect fabric 55
Les signaux pour un port Esclave Signal Type (22) Width Dir Description CLK 1 In Synchronisation ChipSelect 1 In Lorsqu il n est pas actif, l esclave ignore tous les autres signaux Address 1-32 In Mot d offset dans l espace mémoire de l esclave Read 1 In Requête de lecture (non requis pour WOM) Readdata 1-1024 Out Write 1 In Requête d écriture (non requis pour ROM) Writedata 1-1024 In Byteenable 2,4-128 In Permet de sélectionner les octets par voie durant un transfert (ex : 01 = octet poids faible, 10 = octet poids fort) Writebyteenable 2,4-128 In =BE and Write begintransfer 1 In =1 au 1er cycle de chaque transfert 56
Les signaux pour un port Esclave Wait-states signals Waitrequest 1 Out L esclave ne peut répondre Pipeline signals readdatavalid 1 Out Burst signals burstcount 2-32 In Nombre de transfert dans un burst beginbursttransf 1 In Indique le début d un burst signaux de contrôle du flot Readyfordata 1 Out Prêt pour un transfert en écriture dataavailable 1 Out Pret pour un transfert en lecture endofpacket 1 Out spécifique of périphérique 57
Les signaux pour un port Esclave Tristate signals data 1-1024 InOut Bidirectional data outputenable 1 In si 0 l esclave ne peut fournir de données Other signals irq 1 Out requête d interruption reset 1 In resetrequest 1 Out requête du périphérique pour remettre à 0 tout le système Avalon 58
Liste des signaux pour un port Maître Les signaux sont les mêmes que pour le port Esclave. Souvent de direction opposée En plus (2): En moins (7) : Flush 1 Out Pipeline signal Data 8,16-1024 InOut Irq 1,32 In Chaque ligne correspond directement au signal irq de chaque port esclave Irqnumber 6 In priorité d interruption sur chaque port esclave Outputenable, Chipselect, Writebyteenable, Begintransfer, Beginbursttransfer, Readyfordata, Dataavailable 59
Interfaces configurables Par exemple une ROM ne nécessite que les signaux : -Address, -read-data, -chipselect Un registre : -writedata, -write, -chipselect, -clk 60
Le comportement en mode esclave 61
Protocole synchrone Un cycle est défini d un front montant à l autre de l horloge système Le protocole est synchrone sur cette horloge -Tous les transferts commencent au front montant -Tous les signaux sont générés par rapport à Clk -Les signaux doivent être stables pendant l état haut (hold-time) Il est possible de connecter des périphériques asynchrones (comme des mémoires off-chip : clk différent) -Dans ce cas, le concepteur doit faire en sorte que les signaux sont stables pendant l état haut de Clk 62
Adressage Esclave -L adresse en entrée des ports esclaves est une adresse de mots désignant donc un offset dans l espace d adressage du port esclave -Chaque adresse accède donc à un mot complet par rapport à la largeur des signaux readdata ou writedata Maître -Les adresses envoyées par le maître sont des adresses d octets, sans prise en compte de la largeur des bus de données, -Par exemple, un port maître de données de 32 bits devra aligner ses adresses sur des frontières de 4 octets : 0x00, 0x04, 0x08, 0x0C -Pour accéder à un octet spécifique dans un mot, le maître doit utiliser le signal byteenable 63
Les modes de transfert Les interfaces Avalon supportent les propriétés suivantes : -Wait-states pour les esclaves (fixe ou variable) -Pipeline, -Burst, -Tristate, -flow-control Le mode fondamental (native) n utilise aucune des propriétés ci-dessus 64
Transfert en mode Esclave Transfert = opération de lecture/écriture de mots de données entre l interface Avalon-MM et l interconnect system Le port est soit désigné par le chipselect -Lorsque le signal est désactivé, l esclave ignore les autres signaux -Lorsqu il est actif, les signaux read/write indique le type d accès Ou le port est désigné uniquement par les signaux Read/Write -L esclave est en mode Idle lorsque les 2 sont à 0 65
Temps d accès : exemple de transfert en lecture Adapté au périphérique asynchrone Temps de traitement de la requête par le maître (ici system interconnect) Temps de traitement de la requête par l esclave 66
Lecture en mode Esclave avec 1 cycle d attente Adapté au périphérique synchrone qui requiert un coup d horloge pour capturer l adresse 67
Lecture en mode Esclave avec plusieurs cycles d attente (ex: 2) 68
Lecture en mode Esclave avec cycles d attente variables 69
Lecture en mode Esclave avec cycles d attente variables Pas de timeout! un port maître peut rester stall aussi longtemps que waitrequest est asservit 70
Ecriture en mode esclave en 1 cycle 71
Transferts en mode Maître 72
Transferts en mode Maître Rappel : Les addresses envoyées par le maître sont des adresses d octets, sans prise en compte de la largeur des bus de données. -Comme l @ d octet est comprise comme une @ de mot par l esclave, le maître envoie le signal Byteenable C est un vecteur dont la taille est égale au nombre d octets dans la largeur du bus de données Sans sa présence, l esclave renverrait tout le mot Les combinaisons valides sont (en 32 bits): -0001,0010, 0100, 1000, 0011,1100,1111 73
Lecture en mode Maître en 1 cycle 74
Lecture en mode Maître avec cycles d attente 75
Ecriture en mode Maître en 1 cycle 76
Ecriture en mode Maître avec cycles d attente 77
Mode tristate 78
Mode tristate Pourquoi? -> interface permettant à un maître de communiquer avec plusieurs devices off-chip (mem, proc ) ce mode permet de s adapter à de nombreux protocoles d IPs externes (par ex, pour communiquer avec des périphériques qui partagent les bus d adresse et de données sur le circuit imprimé) Le bus de données devient donc bidirectionnel Les esclaves sont contrôlés par le signal outputenable Ce signal est émis par l interconnect en fonction de l adresse envoyée par le maître 79
Mode tristate 80
Tristate : Adressage Dans le mode tristate, l adresse sur le port esclave devient une adresse d octet contrairement à l adresse de mots en mode fondamental En effet, les signaux d adresse peuvent être partagés entre plusieurs périphériques, qui peuvent avoir différentes tailles de données Si le bus est plus large qu un octet, il faut alors corriger le mapping des adresses venant du maître (system interconnect) vers le bus d adresse du port esclave!! Si connexion d une mém. 32bits, address[2] est connectée à A0, address[3] est connectée à A1 81
Différences avec le mode non-tristate Master Non-tristate @ Octet Master Tristate @ Octet = x4 @ Wdata 32 Rdata 32 write read byteenable 4 @ data 32 write read Avalon Interconnect Fabric CS @ Wdata Rdata write read byteenable CS + OE @ Wdata Rdata write read Slave Non-tristate @ Word Slave Tristate @ Octet 82
Read data into master Lecture/écriture en mode Maître Write data into slave Write data into slave 83
Mode pipeline 84
Mode pipeline Les pipelines ne sont utilisés que pour des transferts en lecture (pas en écriture) La durée d un transfert en pipeline se divise en deux phases : -phase d adresse : le maître initie un transfert (remplit le pipeline) en positionnant l adresse -phase de donnée : le port esclave continue le transfert en délivrant la donnée La phase d adresse d un nouveau transfert peut débuté avant la fin de la phase de données précédente La latence du pipeline est égale à la différence entre la fin de la phase d adresse et la fin de la phase de données (= temps de la phase de données) 85
Transfert lecture pipeline en mode esclave Communication entre Interconnect et esclave 86
Transfert lecture pipeline en mode maître Communication entre Maître et Interconnect 87
Lecture pipelinée en mode esclave, latence variable 88
Les périphériques 89
Recensement des périphériques Hiérarchie Mémoire Entrées/Sorties -Blocs RAM -Leds -Caches -Afficheurs 7 segments -TCM -Boutons poussoirs -On-chip RAM -Switches -SDRAM Autres -Flash -Timers -PLL 90
Les composants standards d un SoPC 91
Prochain Cours : Présentation du projet de TP 92
Bibliographie [1] B. Miramond, Conception des SoCs, http://perso-etis.ensea.fr/miramond/ Enseignement/M2/SoC.html [2] Altera, SOPC Builder: User Guide, December 2010 [3] Altera, Avalon Memory-Map Interface Specification, v3.3, May 2007 [4] Altera, NIOS II Classic Processor Reference Guide, Juin 2016 https:// www.altera.com/en_us/pdfs/literature/hb/nios2/n2cpu_nii5v1.pdf 93