LES BUS ON-CHIP

Download Report

Transcript LES BUS ON-CHIP

LES BUS NUMERIQUES
Bus parallèles
Les bus on-chip
N°03_Bus_onchip
1
LES BUS ON-CHIP
Sommaire
 Première partie:
Présentation
 Deuxième partie:
Le bus IBM CoreConnect™
 Troisième partie:
Le bus ARM AMBA
2
LES BUS ON-CHIP
1ière partie: Présentation
 1ière partie:
Présentation
 2ième partie:
 3ième partie:
Le bus IBM CoreConnect™
Le bus ARM AMBA
Sommaire - Repère
 Première partie:
Présentation
 Les System On Chip (SoC)
 Spécificités des bus on-chip
3
LES BUS ON-CHIP
1ière partie: Présentation
Les System On Chip (SoC)
 Les technologies des semi-conducteurs évoluent très vites:
4
LES BUS ON-CHIP
1ière partie: Présentation
Les System On Chip (SoC)
 Elles autorisent des densités d ’intégration énorme
 Exemple: En 0.18µm, il existe des matrices de 8 millions de portes
 Définition d ’un SoC:
 Circuit (ASIC/FPGA) intégrant tout ou partie de l ’électronique requise pour une
application
 Intègre généralement un ou plusieurs processeurs et des périphériques
 Un SoC peut être purement numérique ou mixte
5
LES BUS ON-CHIP
1ière partie: Présentation
Les System On Chip (SoC)
 Architecture d ’un SoC:
Liaisons de debug (JTAG)
Bus mémoire local (externe ASIC)
ASIC
(SOC)
E/S
E/S
Interfaces
E/S
Interface
bus avion
Interface
bus missile
divers
E/S
E/S
Cœur de
processeur
Cache
(option)
Mémoire onchip hautes
performances
Interface
Mémoire
hautes
performances
Bridge
Périphériques
hautes
performances
E/S
Interface
PCI
Bus PCI calculateur
(extensions)
Bus on-chip hautes performances
Bus on-chip périphériques
 Il est possible d ’avoir:
 Plusieurs bus hautes performances
 Plusieurs bus périphériques
 Les bus sont couplés par des « Bridges »
6
LES BUS ON-CHIP
1ière partie: Présentation
Spécificités des bus on-chip
 Pourquoi faut-il des bus particuliers pour les SoC?
 Structures synchrones
 Éviter d ’avoir des états indéfinis: Pas de buffers 3 états
 Pas de collecteurs ouverts
 Conséquences:
 Les bus on-chip comportent beaucoup de lignes et des bus de données en écriture et
en lecture séparés
 2 familles:
 Matrices de commutation ou crossbar
 Multiplexeurs
 Ce qui existe:
 VSIA: Organisme multi-industriels
 A défini les principes à respecter pour un bus on-chip
 Plusieurs standards existent:
 IBM
:
 ARM
:
 Sonics...
CoreConnect™
AMBA
7
LES BUS ON-CHIP
2ième partie: Le bus IBM CoreConnect™
 1ière partie:
Présentation
 2ième partie:
Le bus IBM CoreConnect™
 3ième partie:
Le bus ARM AMBA
Sommaire - Repère
 Deuxième partie:
Le bus IBM CoreConnect™
 Présentation générale
 Bus PLB
 Bus OPB
8
LES BUS ON-CHIP
2ième partie: Le bus IBM CoreConnect™
Présentation générale
Bus hautes
performances
PLB
Bus
périphériques
OPB
Device Control Register bus
9
LES BUS ON-CHIP
2ième partie: Le bus IBM CoreConnect™
Bus PLB
 Le bus
 Entièrement synchrone
 Architectures 32 et 64 bits, extensibles à 128 et 256 bits
 Data bus écritures et lectures séparés, pour:
 autoriser des transferts simultanés à hauts débits
 éviter les conflits lors des transitions lecture / écriture
 Transferts de bursts de longueur fixe de mots sur 8, 16, 32, 64 bits
 Bus adresses pipeliné
 Gère les interruptions des échanges
 Transferts DMA
 Pas de signaux 3 états
 Gestion des mémoires caches (transferts de lignes)
 Gestion des « atomic instructions »
 Supporte les transferts non alignés
 L ’arbitre




Supporte jusqu'à 16 maîtres
4 niveaux de priorité
Phase d ’arbitrage masqué par les transferts de données en cours
Intègre un mécanisme de re-arbitrage avec watchdog
10
LES BUS ON-CHIP
2ième partie: Le bus IBM CoreConnect™
Bus OPB
 Le bus
 Entièrement synchrone
 Bus adresses 32 bits
 Bus données 32 bits
 Supporte les transferts sur 8, 16, 32 bits
 Duplication des mots de 8 et 16 bits pour les transferts 8 et 16 bits
 Supporte les transfert burst
 Accepte des transferts de données mono-cycles entre un maître et des esclaves
 La fonction " Bridge " peut être maître sur le PLB ou l'OPB
 Pas de signaux 3 états
 L ’arbitre
 Arbitrage pour jusqu'à 4 périphériques maîtres du bus OPB
11
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
 1ière partie:
 2ième partie:
Présentation
Le bus IBM CoreConnect™
 3ième partie:
Le bus ARM AMBA
Sommaire - Repère
 Troisième partie:
Le bus ARM AMBA
 Bus AMBA High performance Bus (AHB)
 Bus AMBA Peripheral Bus (APB)
 Comparaison IBM / ARM
12
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
Introduction
 Spécification ARM version 2.0
 AMBA
 Advanced Microcontroller Bus Architecture
 Bus standard de communications on-chip pour la création de designs avec
microcontrôleur(s) enfouis (SOCs).
 3 bus distincts:
 AHB: Advanced High-performance Bus
 ASB: Advanced System Bus
 APB: Advanced Peripheral Bus
 Existence d’une version AMBA Light
13
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
Définitions
 Maître AHB
Initie une opération de lecture ou d’écriture (transfert) en
envoyant (vers l’esclave) les signaux de contrôle, d’adresse
(signal de sélection) et de données.
 Esclave AHB
Répond à l’opération de lecture ou d’écriture initiée dans son
espace d’adresses en renvoyant (au maître) un message
réponse: Succès (la donnée a été bien écrite ou bien lue),
échec ou attente.
 Arbitre AHB
S’assure qu’un seul maître à la fois est autorisé à effectuer
des transferts sur le bus AHB.
 Décodeur AHB Décode l’adresse liée à chaque transfert et active le signal de
sélection de l’esclave ainsi désigné
14
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
Bus AMBA High performance Bus (AHB)
Signal de sélection
ARBITRE
HADDR
AHB
accordé
ESCLAVE 1
Sélection 1
MAITRE 1
Requête
ESCLAVE 2
AHB
accordé
MAITRE 2
HWDATA
ESCLAVE 3
Sélection 2
Sélection 3
Requête
AHB
accordé
Requête
HRDATA
MAITRE 3
DECODEUR
15
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Liste des principaux signaux utilisés (1/3)
Name
HCLK
Bus clock
HRESETn
Reset
HADDR[31:0]
Address bus
HTRANS[1:0]
Transfer type
HWRITE
Transfer direction
HSIZE[2:0]
Transfer size
HBURST[2:0]
Burst type
Source
Clock source
Description
Times all bus transfers. All signal timings are related to the
rising edge of HCLK.
Reset controller
Master
Master
Master
Master
Master
HPROT[3:0]
Master
Protection control
Active LOW and is used to reset the system and the bus.
This is the only active LOW signal.
The 32-bit system address bus.
Type of the current transfer, can be NONSEQUENTIAL,
IDLE or BUSY.
HIGH: write transfer
LOW: read transfer
Size of the transfer: byte (8b), halfword (16b) or word (32b)
Possibility for larger transfer sizes up to 1024 bits
Indicates if the transfer forms part of a burst. Four,
eight and sixteen beat bursts are supported and the
burst may be either incrementing or wrapping.
The protection control signals provide additional
information about a bus access and are primarily intended
for use by any module that wishes to implement some
level of protection.
16
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Liste des principaux signaux utilisés (2/3)
Name
HWDATA[31:0]
Write data bus
HSELx
Slave select
HRDATA[31:0]
Read data bus
HREADY
Transfer done
Source
Master
Description
Decoder
Each slave has its own slave select signal. Combinatorial
decode of the address bus.
Slave
Data bus used to transfer data from bus slaves to bus
master
Slave
When HIGH, indicates that a transfer has finished on the
bus. This signal may be driven LOW to extend a transfer.
Note: Slaves on the bus require HREADY as both an
input and an output signal.
HRESP[1:0]
Slave
Transfer response
Used to transfer data from the master to the bus slaves
Additional information on the status of a transfer:
OKAY, ERROR, RETRY and SPLIT.
17
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Liste des principaux signaux utilisés (3/3)
Name
HBUSREQx
Bus request
Source
Master
HLOCKx
Locked transfers
Master
HGRANTx
Bus grant
Arbiter
HMASTER[3:0]
Master number
Arbiter
HMASTLOCK
Locked sequence
HSPLITx[15:0]
Split completion
request
Arbiter
Slave
(SPLITcapable)
Description
Signal from master x to the bus arbiter. Indicates that the
the master requires the bus. There is an HBUSREQx
signal for each bus master, up to 16 bus masters.
When HIGH, indicates that the master requires locked
access to the bus and no other master should be granted
the bus until this signal is LOW.
Master x has the highest priority master. Ownership of the
address/control signals changes at the end of a transfer
when HREADY is HIGH, so a master gets access to the
bus when both HREADY and HGRANTx are HIGH.
Indicate which bus master is currently performing a
transfer and is used by the slaves which support SPLIT
transfers to determine which master is attempting an
access. The timing of HMASTER is aligned with the timing
of the address and control signals.
Current master is performing a locked sequence of
transfers. Same timing as the HMASTER signal.
Used by a slave to indicate to the arbiter which masters
should be allowed to re-attempt a split transaction. Each bit
of this split bus corresponds to a single bus master.
18
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Entrées/Sorties d’un Maître
19
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Entrées/Sorties d’un Esclave
20
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Entrées/Sorties de l’Arbitre
21
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Entrées/Sorties du Décodeur
22
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Transfert simple, sans «wait states» [W/R]
23
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Transfert avec «wait states»
24
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Les types de transfert
HTRANS[1:0]
Type
Description
00
IDLE
No data transfer required. Used when a bus master is granted the bus,
but does not wish to perform a data transfer. Slaves always provide a
zero wait state OKAY response. Transfer ignored by the slave.
01
BUSY
Allows bus masters to insert IDLE cycles in the middle of bursts.
Indicates that the bus master is continuing with a burst of transfers, but
the next transfer cannot take place immediately. When a master uses
the BUSY transfer type the address and control signals must reflect the
next transfer in the burst. Transfer ignored by the slave. Slaves provide
a zero wait state OKAY response.
10
NONSEQ
Indicates the first transfer of a burst or a single transfer. Address and
control signals unrelated to the previous transfer. Single transfers
treated as bursts of 1 -> the transfer type is NONSEQUENTIAL.
11
SEQ
Remaining transfers in a burst are SEQUENTIAL. Control information
identical to the previous transfer. Address equal to the address of the
previous transfer plus the size (in bytes). Wrapping burst: Address of
the transfer wraps at the address boundary equal to the size (in bytes)
multiplied by the number of beats in the transfer (either 4, 8 or 16).
25
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Exemples de différents type de transfert
26
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Les accès burst
 Incrementing bursts:
 Accès séquentiel
 L’adresse de chaque donnée du burst est l’adresse précédente incrémentée.
 X –beat wrapping bursts
 Burst modulo x
27
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Burst de 4 mots (de 32 bits) incrémentés [W/R]
28
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Burst de 4 mots (de 32 bits) wrappés [W/R]
29
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Arbitrage
30
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Changement de maître après un burst
31
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
Bus AMBA Peripheral Bus (APB)
HADDR
Sélection 1
ESCLAVE 1
HRDATA
HWDATA
BRIDGE
HADDR
Sélection 2
ESCLAVE 2
HRDATA
HWDATA
HADDR
Sélection 3
ESCLAVE 3
HRDATA
HWDATA
HRDATA
32
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
Comparaison IBM / ARM
IBM CoreConnect
ARM
Processor Local bus
AMBA 2.0 High Performance Bus
Bus architecture
32 et 64 bits, extensible à 128 et 256 bits
32, 64 et 128 bits
Data bus
Bus lectures et écritures séparés
Bus lectures et écritures séparés
Principales
caractéristiques
Plusieurs maîtres du bus
Pipelining
Transferts burst
Transfert de lignes
Plusieurs maîtres du bus
Pipelining
Transferts burst
Transfert de lignes
On-chip Peripheral Bus
AMBA 2.0 Advanced Peripheral Bus
Maîtres
Plusieurs maîtres du bus
1 seul maître : le pont APB
La fonction « Bridge »
Maître du PLB ou de l’OPB
Maître du bus APB uniquement
Data bus
Bus lectures et écritures séparés
Bus lectures et écritures séparés ou 3 états
33
LES BUS ON-CHIP
3ième partie: Le bus ARM AMBA
AHB: Accès sans «wait states» [W]
34