Architecture pour les systèmes multimédiaperso-etis.ensea.fr/lorandel/M2_SoC/s3.pdf ·...

93
Architecture pour les systèmes multimédia SÉANCE 3 : LE PROCESSEUR NIOS-II LORANDEL Jordane [email protected] (Sur les bases du cours de B. Miramond)

Transcript of Architecture pour les systèmes multimédiaperso-etis.ensea.fr/lorandel/M2_SoC/s3.pdf ·...

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

Partie III. le microprocesseur NIOS-II

3ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

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

1. Processeurs embarqués : vers le codesign

5ARCHITECTURE 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

Architectures de traitement utilisées dans l’embarqué

7ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

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 !

Exemple:

Digital set-top box system block diagram

13ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Exemple: DSL Router System Diagram

14ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

2. System-On-Programmable Chip

15ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

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)

17ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Exemples de systèmes à base de processeur NIOS-II

18ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Les composants standards d’un SoPC

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

24ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Binary compatibility / Flexible Performance

25ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Nios II : Fast/Standard/Economy

26ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Nios II : Fast/Standard/Economy

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)

28ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Architecture du processeur

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,…)

30ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Nios-II Processor block diagram

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)

•…

32ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Diagramme du processeur Nios

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)

34ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Registres de contrôle

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.

43ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Nios II System Design Flow

44ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Bus Avalon

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

49ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Exemple de système basé Avalon

On-chip

50ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Exemple (suite)

51ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Les interfaces Avalon

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

53ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Les signaux

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

61ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Le comportement en mode esclave

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

71ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Ecriture en mode esclave en 1 cycle

72ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Transferts en mode Maître

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

74ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Lecture en mode Maître en 1 cycle

75ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Lecture en mode Maître avec cycles d’attente

76ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Ecriture en mode Maître en 1 cycle

77ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Ecriture en mode Maître avec cycles d’attente

78ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Mode tristate

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

80ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Mode tristate

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

84ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Mode pipeline

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

88ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Lecture pipelinée en mode esclave, latence variable

89ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Les périphériques

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

91ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Les composants standards d’un SoPC

92ARCHITECTURE POUR LES SYSTÈMES MULTIMÉDIAS

Prochain Cours : Présentation du projet de TP

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