Sei sulla pagina 1di 33

INFRASTRUTTURE DI

COMUNICAZIONE AVANZATE

‰AMBA BUS
‰NETWORK ON CHIP

Architetture dei Sistemi Embedded 2006/07 P. Meloni


AMBA BUS

Introduzione
AMBA bus specification
AMBA AHB
AMBA Multilayer
AMBA AXI (cenni)

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Alternative
Grandi produttori di semiconduttori : ST Microelectronics (STbus)
IBM (CoreConnect)
Core vendors : ARM (AMBA bus)
Interconnect IP vendors : SiliconBackplane

Architetture dei Sistemi Embedded 2006/07 P. Meloni


AMBA bus
AMBA :
Advanced Microcontroller Bus Architecture
Standard di comunicazione on-chip per la definizione di
microcontrollori embedded con performance elevate

All’interno delle specifiche AMBA sono definiti tre diversi


tipi di bus:
• Advanced High-performance Bus (AHB)
• Advanced System Bus (ASB)
• Advanced Peripheral Bus (APB)

Architetture dei Sistemi Embedded 2006/07 P. Meloni


AMBA bus
•AHB bus: Sistema bus high performance. E’ il nucleo di un sistema di
interconnessione AMBA. Supporta la connessione a processori, a memorie
on-chip e off-chip e l’interfaccia con celle per la gestione low-power della
connessione con le periferiche.
•ASB bus: Sistema bus alternativo il cui utilizzo è indicato per le applicazioni
in cui le caratteristiche high-performance di AHB non sono richieste.
Supporta le stesse connessioni di AHB.
•APB bus: Sistema bus ottimizzato per un minimo consumo di potenza. La
complessità dell’intefaccia è ridotta in maniera da supportare la connessione
di periferiche lente. Può essere connesso con entrambe le versioni del bus di
sistema.

Le specifiche AMBA sono studiate per assicurare facilità di uso e di


integrazione in un design flow che comprenda sia sintesi che fase di test
automatico

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Obiettivi di AMBA

Lo sviluppo di AMBA si è posto 4 obiettivi


fondamentali:
• right-first-time development
• technology-independent
• modular system
• minimizzazione dell’overhead di silicio dovuto
alla comunicazione on chip e off-chip

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Un tipico sistema AMBA-based

High performance High bandwidth


ARM processor On-chip RAM

UART Timer

BRIDGE
High Bandwidth AHB or ASB APB
External Memory
Interface
KeyPad PIO

DMA

Architetture dei Sistemi Embedded 2006/07 P. Meloni


AMBA AHB - Datapath
•Schema di
interconnessione a
multiplexer centrale
•Tutti i master possono
generare i segnali che
indicano il trasferimento
da effettuare.
•L’arbitro determina quali
saranno i segnali che
verranno propagati verso
tutti gli slave.
•Un decoder centrale è
necessario per identificare
quale slave è coinvolto
nella transazione e quali
segnali di risposta
propagare verso i master.

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Comunicazione su AMBA AHB
Overview
¾Un master richiede l’accesso al bus
¾L’arbitro indica al master se ha ottenuto la risorsa richiesta.
¾Una volta che l’accesso è stato garantito ogni trasferimento consiste in
due fasi:
¾Un ciclo di indirizzo e controllo
Il master che ha ricevuto il GRANT inizia il trasferimento pilotando i
segnali relativi all’indirizzo e alla fase di controllo (indirizzo, direzione e
dimensione della transazione, burstness)
¾Uno o più cicli di dato (data cycles)
Il bus dati di scrittura viene usato per trasferire dei dati dal master a uno
slave oppure quello di lettura viene utilizzato per spostare dati dallo slave
al master.
La fase dati può durare più di un ciclo a seconda dello stato dello slave
destinatario della transazione (HREADY HRESP)

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Basic Transfer

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Transfer with wait states

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Multiple transfers

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Tipi di transfer

IDLE transfer is used when a master is granted but does


2’b00 IDLE
not wish to perform a data transfer
Is used to insert IDLE cycles in the middle of a burst
2’b01 BUSY
transfer
2’b10 NONSEQ Indicates the first transfer of a burst or a single tranfer
2’b11 SEQ Indicates the remaning transfer of a burst

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Control signals
•Burstness HBURST[2:0]
3’b000 SINGLE 3’b100 WRAP8
3’b001 INCR 3’b101 INCR8
3’b010 WRAP4 3’b110 WRAP16
3’b011 INCR4 3’b111 INC16

•Transfer Direction HWRITE


HIGH il master manderà il dato in broadcast sul bus HWDATA[31:0]
LOW la transazione in corso è una read e il dato sarà generato dallo
slave sul bus dati HRDATA[31:0]
•Transfer size HSIZE [2:0]
Indica la dimensione del dato da trasferire
•Protection control HPROT [3:0]
Indica se il trasferimento è :
• Un opcode fetch
• Un trasferimento ad accesso privilegiato o in modalità utente
Architetture dei Sistemi Embedded 2006/07 P. Meloni
Slave status
Per comunicare il proprio stato lo slave pilota 2 segnali:
•HREADY
Transfer
1
done
Transfer
0
extended

•HRESP
the transfer is
2’b00 OK
progressing normally

2’b01 ERROR a transfer error has occurred

2’b10 RETRY The master should retry the transfer until it completes

The master should retry the transfer when it is next


2’b11 SPLIT
granted

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Address decoding

Slave
Master #1
#1 HADDR_M1[31:0]

HADDR to all slaves

HADDR_M2[31:0] Slave
Master #2
Address and
#2 Control mux

HSEL_S1 Slave
Decoder HSEL_S2
HSEL_S3 #3

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Arbitration

HMASTER[3:0]

HGRANT_M1 Master HADDR_M1[31:0]


Decoder #1

HGRANT_M2 Master HADDR_M2[31:0]


HADDR to all slaves
#2

HGRANT_M3 Master HADDR_M3[31:0]


#3
Architetture dei Sistemi Embedded 2006/07 P. Meloni
Bus topologies
Un singolo bus condiviso è chiaramente non scalabile.
I progettisti utilizzano perciò come soluzione alternativa
delle topologie di bus.
I bus sono interconnessi tra di loro secondo due approcci
principali:
Clustering and Bridging

•Multilayer

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Multilayer

Master Master decoder

Mux
Shared
Slave

Master Master decoder

Mux
Shared
Slave

Master Master decoder

Mux
Shared
Slave

Master Master decoder

Mux
Shared
Slave

Architetture dei Sistemi Embedded 2006/07 P. Meloni


AMBA AXI

TARGET: sistemi high-performance, high-frequency.


Le caratteristiche chiave del protocollo AXI sono:
• fasi address/control separate
• supporto per dati non allineati (byte strobes)
• transazioni burst-based
• canali separati per read e write per permettere Direct
Memory Access (DMA) a basso costo
• multiple outstanding addresses
• riordinamento delle transazioni fuori ordine
• supporto per l’ aggiunta di stadi di registi che permettano
il rispetto delle constraint di timing.

Architetture dei Sistemi Embedded 2006/07 P. Meloni


AMBA AXI channels

Tutti e 5 i canali utilizzati per le transazioni sono


indipendenti, consistono di un set di segnali necessari per il
trasferimento dell’informazione e utilizzano un sistema di
handshake di tipo VALID-READY

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Motivation

I sistemi di tipo shared bus mostrano evidenti problemi di


scalabilità a livello
•Funzionale
•Tecnologico

I sistemi Network On Chip emergono come risposta a questo


problema.
Vengono mutuate a livello on-chip le tecniche di comunicazione
packet-switched già studiate nel campo delle interconnessioni tra
computer.

Architetture dei Sistemi Embedded 2006/07 P. Meloni


NETWORK ON CHIP

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Network On Chip
network
switch interface
link DSP
CPU

Memory
Memory

CPU

Interfaccia Interfaccia
IP IP NI rete NoC NI IP

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Network On Chip – concetti base

•Unità di informazione
•Topologia
•Algoritmi di routing
•Implementazione

Architetture dei Sistemi Embedded 2006/07 P. Meloni


NoC – Unità di informazione
Messaggio: unita logica di informazione di dimensione maggiore.
Pacchetto: unità logica minima trasferibile attraverso il protocollo di
rete.
Flit: (flow control unit) unità logica trasmissibile dal punto di vista della
policy relativa al controllo del flusso.
Phit: (physical unit) unità logica fisicamente trasmissibile attraverso il
link. Spesso coincide col flit.

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Topologia
Topologia: modalità di connessione dei nodi tramite i links.
Inputs Outputs

00 10 20
00 10 20 30

01 11 21 01 11 21 31

02 12 22 32
02 12 22

03 13 23 33

03 13 23

00 10 20 30
1 2

01 11 21 31
0 3

02 12 22 32
7 4

03 13 23 33
6 5

Topologie Irregolari

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Algoritmi di Routing
Routing deterministico: la generazione del percorso di
routing avviene solo in base alla conoscenza di informazioni
riguardanti
l'indirizzo del sorgente e l'indirizzo del destinatario, trascurando
qualunque
informazione relativa allo stato in cui versa la rete.
Routing semi-deterministico: la coppia sorgente destinatario,
a differenza di quanto accade nel routing deterministico, non
identifica in maniera univoca un percorso, ma piu percorsi
diversi, da
scegliere casualmente o in maniera ciclica.
Routing adattativo: vengono utilizzate le informazioni
relative al traffico ed allo stato della rete per determinare il
percorso di
routing, allo scopo di non incappare in congestioni o guasti gia
vericati.
Architetture dei Sistemi Embedded 2006/07 P. Meloni
Network on Chip – Implementazione
Blocchi fondamentali:
Network Interface
Switch
Link

Come esempio di moduli funzionali che implementano il paradigma


Network On Chip parliamo della architettura xpipes.

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Xpipes NoC Architecture

Routing & Flow Control Algorithm: Wormhole


routing – Deterministic source routing
Packets directioning policy : Street-sign-routing
Reliability: Go-Back-N flow control
Modularity: Topology indipendent
REQUEST PHASE and RESPONSE PHASE
indipendence
Reconfigurability: Totally parameterized
Supports heterogeneus architectures and
irregular topologies

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Network Interface
La NI di xpipes interfaccia il protocollo di rete con uno standard di
comunicazione tra IP chiamato OCP
(Open Core Protocol)
Esistono in generale due tipi di Network Interface:
NI master : interfaccia con un core di tipo slave
NI slave : interfaccia con un core di tipo master
Traduce le informazioni (Indirizzo, dati , controllo) in flit.

Architetture dei Sistemi Embedded 2006/07 P. Meloni


00000
Network Interface
MAddr
hload from FSM

regheader
MCmd

MBurstSeq

MBurstPrecise

MBurstLength

SOURCE
PATH

MData
{,}
regpayload

MByteEn flit_type
MBurstLength

sel_out
flit_type

hload
FAST-CLK
HANDLER flit
pload
Burst encoding
FSM req_tx
fast clk
SCmdAccept
Data Handshake signals

stand_by

ID
full_id ID_REGISTER

ni_slave_req_phase

Architetture dei Sistemi Embedded 2006/07 P. Meloni


Switch

Input buffer
Output buffer
MUX
Arbitro

Architetture dei Sistemi Embedded 2006/07 P. Meloni

Potrebbero piacerti anche