architecture pour les systèmes multimédiaperso-etis.ensea.fr/lorandel/m2_soc/s3.pdf ·...
TRANSCRIPT
Architecture pour les systèmes multimédiaSÉANCE 3 : LE PROCESSEUR NIOS-II
LORANDEL Jordane [email protected] (Sur les bases du cours de B. Miramond)
ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Plan
2
I.Problématiques et techniques de conception
II.Les FPGAs
III.Microprocesseur NIOS-II
IV.Présentation du sujet de projet
Sommaire
4
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
ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Processeurs embarqués
6ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
•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
FPGAs avec processeurs
8ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
•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
Altera DE2-115 Development board
9ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
https://www.terasic.com/
•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
Altera Nios-II development kit
10ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
•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/
1ères caractéristiques de la plateforme DE2-1121S10
11ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
•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
Fonctionnalité mixte
12ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
•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 !
16ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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 ê m e p r i n c i p e q u ’ u n microcontrôleur (processeur + périphériques au sein d’un même circuit)
19ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
20ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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)
21ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
22ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Qsys
•Real-time System Debug
•High performance interconnect
•Industry-Standard interfaces (Axi, AHB, Whisbone, Avalone)
•Hierarchy and IP management (Library)
23ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
27ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Nios II : Quelques chiffresNIOS II - fast NIOS II - standard NIOS II - economy
Stratix II 225 DMIPS @205MHz 1319 ALUTS Stratix 2S60-C3
133DMIPS @180MHz 1029 ALUTS Stratix 2S60-C3
31 DMIPS @209MHz 483 ALUTS Stratix 2S60-C3
Stratix 157 DMIPS @143MHz 1808 LEs Stratix 1S80-C5
99 DMIPS @134MHz 1170 LEs Stratix 1S80-C5
23 DMIPS @160MHz 529 LEs Stratix 1S80-C5
Cyclone II 105 DMIPS @126MHz 1595 LEs Cyclone EP2C20-C6
57 DMIPS @110MHz 1033 LEs Cyclone EP2C20-C6
22 DMIPS @159MHz 542 LEs Cyclone EP2C20-C6
Cyclone 101 DMIPS @128MHz 1676 LEs Cyclone EP1C20-C6
105 DMIPS @124MHz 1145 LEs Cyclone EP1C20-C6
16 DMIPS @126MHz 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)
29ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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,…)
31ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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)
•…
33ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Registres généraux du Nios-II32 Registres 32-bits + 32 registres de contrôle
+ possibilité de 63 ’shadow registers’ permettant l’accélération du changement de contexte (si OS)
35ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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)
36ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
37ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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 IRQn est active
-le bit i du registre ienable est à 1 -le champs PIE du registre d’état est à 1
38ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
39ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Nios II : mémoires•Mémoires caches données-instructions
•Tightly-coupled Memories permettent de réduire la latence des temps d’accès aux mémoires on-chip en dehors du core
40ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
•‘ S l ave s ’ son t de s v ra ie s mémoires on-chip double ports
41ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
42ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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.
45ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
46ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
47ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Les autres protocoles
•Altera -> Avalon •Xilinx -> CoreConnect, AXI •ARM -> Amba •Wishbone (libre)
48ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
52ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
54ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Les signaux : caractéristiques généralesChaque 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)
55ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Les signaux : caractéristiques généralesExemple de l’interface Avalon MM, port esclave ver s l ’ i n te rconnect fabric
56ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Les signaux pour un port EsclaveSignal Type (22) Width Dir DescriptionCLK 1 In SynchronisationChipSelect 1 In Lorsqu’il n’est pas actif, l’esclave ignore tous les
autres signauxAddress 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
57ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Les signaux pour un port EsclaveWait-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 burstbeginbursttransf 1 In Indique le début d’un burst
signaux de contrôle du flotReadyfordata 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
58ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Les signaux pour un port EsclaveTristate signals
data 1-1024 InOut Bidirectional data
outputenable 1 In si 0 l’esclave ne peut fournir de donnéesOther signals
irq 1 Out requête d’interruption
reset 1 Inresetrequest 1 Out requête du périphérique pour remettre à 0 tout le
système Avalon
59ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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) :
Outputenable, Chipselect, Writebyteenable, Begintransfer, Beginbursttransfer, Readyfordata, Dataavailable
Flush 1 Out Pipeline signalData 8,16-1024 InOutIrq 1,32 In Chaque ligne correspond directement au signal irq de
chaque port esclaveIrqnumber 6 In priorité d’interruption sur chaque port esclave
60ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Interfaces configurables•Par exemple une ROM ne nécessite que les signaux : -Address, -read-data, -chipselect
•Un registre : -writedata, -write, -chipselect, -clk
62ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
63ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
64ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
65ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
66ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Temps d’accès : exemple de transfert en lecture Temps de traitement de la requête par le maître
(ici system interconnect)
Temps de traitement de la requête par l’esclave
Adapté au périphérique asynchrone
67ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
68ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Lecture en mode Esclave avec plusieurs cycles d’attente (ex: 2)
69ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Lecture en mode Esclave avec cycles d’attente variables
70ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
73ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
79ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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
81ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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…
82ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Différences avec le mode non-tristateMaster
Non-tristate @ Octet
Master Tristate
@ Octet = x4
Avalon Interconnect
Fabric
@WdataRdatawriteread
byteenable 4
3232
@data 32
writeread
Slave Non-tristate
@ Word
Slave Tristate @ Octet
@WdataRdatawriteread
byteenable
CS
CS + OE
@WdataRdatawriteread
83ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Lecture/écriture en mode Maître
Write data into slave Write data into slave
Read data into master
85ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
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)
86ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Transfert lecture pipeline en mode esclave
Communication entre Interconnect et esclave
87ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Transfert lecture pipeline en mode maître
Communication entre Maître et Interconnect
90ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS
Recensement des périphériques•Hiérarchie Mémoire
-Blocs RAM
-Caches
-TCM
-On-chip RAM
-SDRAM
-Flash
•Entrées/Sorties
-Leds
-Afficheurs 7 segments
-Boutons poussoirs
-Switches
•Autres
-Timers
-PLL
Bibliographie
93
[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
ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS