1 LES BUS NUMERIQUES Bus parallèles Les bus on-chip N°03_Bus_onchip
2 LES BUS ON-CHIP Sommaire zPremière partie:Présentation zDeuxième partie:Le bus IBM CoreConnect™ zTroisième partie:Le bus ARM AMBA
3 LES BUS ON-CHIP 1 ière partie: Présentation Sommaire - Repère zPremière partie:Présentation yLes System On Chip (SoC) ySpécificités des bus on-chip
4 LES BUS ON-CHIP 1 ière partie: Présentation Les System On Chip (SoC) zLes technologies des semi-conducteurs évoluent très vites:
5 LES BUS ON-CHIP 1 ière partie: Présentation Les System On Chip (SoC) zElles autorisent des densités d ’intégration énorme yExemple: En 0.18µm, il existe des matrices de 8 millions de portes zDéfinition d ’un SoC: yCircuit (ASIC/FPGA) intégrant tout ou partie de l ’électronique requise pour une application yIntègre généralement un ou plusieurs processeurs et des périphériques yUn SoC peut être purement numérique ou mixte
6 LES BUS ON-CHIP 1 ière partie: Présentation Les System On Chip (SoC) zArchitecture d ’un SoC: zIl est possible d ’avoir: yPlusieurs bus hautes performances yPlusieurs bus périphériques yLes bus sont couplés par des « Bridges »
7 LES BUS ON-CHIP 1 ière partie: Présentation Spécificités des bus on-chip zPourquoi faut-il des bus particuliers pour les SoC? yStructures synchrones yÉviter d ’avoir des états indéfinis: Pas de buffers 3 états yPas de collecteurs ouverts zConséquences: yLes bus on-chip comportent beaucoup de lignes et des bus de données en écriture et en lecture séparés y2 familles: xMatrices de commutation ou crossbar xMultiplexeurs zCe qui existe: yVSIA: Organisme multi-industriels xA défini les principes à respecter pour un bus on-chip yPlusieurs standards existent: xIBM:CoreConnect™ xARM:AMBA xSonics...
8 LES BUS ON-CHIP 2 ième partie: Le bus IBM CoreConnect™ Sommaire - Repère zDeuxième partie:Le bus IBM CoreConnect™ yPrésentation générale yBus PLB yBus OPB
9 LES BUS ON-CHIP 2 ième partie: Le bus IBM CoreConnect™ Présentation générale Bus hautes performances PLB Bus périphériques OPB Device Control Register bus
10 LES BUS ON-CHIP 2 ième partie: Le bus IBM CoreConnect™ Bus PLB zLe bus yEntièrement synchrone yArchitectures 32 et 64 bits, extensibles à 128 et 256 bits yData bus écritures et lectures séparés, pour: xautoriser des transferts simultanés à hauts débits xéviter les conflits lors des transitions lecture / écriture yTransferts de bursts de longueur fixe de mots sur 8, 16, 32, 64 bits yBus adresses pipeliné yGère les interruptions des échanges yTransferts DMA yPas de signaux 3 états yGestion des mémoires caches (transferts de lignes) yGestion des « atomic instructions » ySupporte les transferts non alignés zL ’arbitre ySupporte jusqu'à 16 maîtres y4 niveaux de priorité yPhase d ’arbitrage masqué par les transferts de données en cours yIntègre un mécanisme de re-arbitrage avec watchdog
11 LES BUS ON-CHIP 2 ième partie: Le bus IBM CoreConnect™ Bus OPB zLe bus yEntièrement synchrone yBus adresses 32 bits yBus données 32 bits ySupporte les transferts sur 8, 16, 32 bits yDuplication des mots de 8 et 16 bits pour les transferts 8 et 16 bits ySupporte les transfert burst yAccepte des transferts de données mono-cycles entre un maître et des esclaves yLa fonction " Bridge " peut être maître sur le PLB ou l'OPB yPas de signaux 3 états zL ’arbitre yArbitrage pour jusqu'à 4 périphériques maîtres du bus OPB
12 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA Sommaire - Repère zTroisième partie:Le bus ARM AMBA yBus AMBA High performance Bus (AHB) yBus AMBA Peripheral Bus (APB) yComparaison IBM / ARM
13 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA Introduction zSpécification ARM version 2.0 zAMBA A dvanced M icrocontroller B us A rchitecture yBus standard de communications on-chip pour la création de designs avec microcontrôleur(s) enfouis (SOCs). z3 bus distincts: yAHB: Advanced High-performance Bus yASB: Advanced System Bus yAPB: Advanced Peripheral Bus zExistence d’une version AMBA Light
14 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA Définitions zMaître AHBInitie 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. zEsclave AHBRé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. zArbitre AHBS’assure qu’un seul maître à la fois est autorisé à effectuer des transferts sur le bus AHB. zDécodeur AHBDécode l’adresse liée à chaque transfert et active le signal de sélection de l’esclave ainsi désigné
15 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA Bus AMBA High performance Bus (AHB) MAITRE 3 MAITRE 2 MAITRE 1 ESCLAVE 1 ESCLAVE 2 ESCLAVE 3 ARBITRE DECODEUR Requête AHB accordé AHB accordé AHB accordé Signal de sélection Sélection 3 Sélection 2 Sélection 1 HADDR HWDATA HRDATA
16 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Liste des principaux signaux utilisés (1/3) NameSourceDescription HCLKClock source Times all bus transfers. All signal timings are related to the Bus clock rising edge of HCLK. HRESETnReset controller Active LOW and is used to reset the system and the bus. Reset This is the only active LOW signal. HADDR[31:0]Master The 32-bit system address bus. Address bus HTRANS[1:0]Master Type of the current transfer, can be NONSEQUENTIAL, Transfer type IDLE or BUSY. HWRITEMaster HIGH: write transfer Transfer direction LOW: read transfer HSIZE[2:0]Master Size of the transfer: byte (8b), halfword (16b) or word (32b) Transfer size Possibility for larger transfer sizes up to 1024 bits HBURST[2:0]Master Indicates if the transfer forms part of a burst. Four, Burst type eight and sixteen beat bursts are supported and the burst may be either incrementing or wrapping. HPROT[3:0]Master The protection control signals provide additional Protection control information about a bus access and are primarily intended for use by any module that wishes to implement some level of protection.
17 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Liste des principaux signaux utilisés (2/3) NameSourceDescription HWDATA[31:0]Master Used to transfer data from the master to the bus slaves Write data bus HSELxDecoder Each slave has its own slave select signal. Combinatorial Slave select decode of the address bus. HRDATA[31:0]Slave Data bus used to transfer data from bus slaves to bus Read data bus master HREADYSlave When HIGH, indicates that a transfer has finished on the Transfer done 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 Additional information on the status of a transfer: Transfer response OKAY, ERROR, RETRY and SPLIT.
18 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Liste des principaux signaux utilisés (3/3) NameSourceDescription HBUSREQxMaster Signal from master x to the bus arbiter. Indicates that the Bus request the master requires the bus. There is an HBUSREQx signal for each bus master, up to 16 bus masters. HLOCKxMaster When HIGH, indicates that the master requires locked Locked transfers access to the bus and no other master should be granted the bus until this signal is LOW. HGRANTxArbiter Master x has the highest priority master. Ownership of the Bus grant 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. HMASTER[3:0]Arbiter Indicate which bus master is currently performing a Master number 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. HMASTLOCKArbiter Current master is performing a locked sequence of Locked sequence transfers. S ame timing as the HMASTER signal. HSPLITx[15:0]Slave Used by a slave to indicate to the arbiter which masters Split completion (SPLIT- should be allowed to re-attempt a split transaction. Each bit request capable) of this split bus corresponds to a single bus master.
19 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Entrées/Sorties d’un Maître
20 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Entrées/Sorties d’un Esclave
21 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Entrées/Sorties de l’Arbitre
22 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Entrées/Sorties du Décodeur
23 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Transfert simple, sans «wait states» [W/R]
24 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Transfert avec «wait states»
25 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Les types de transfert HTRANS[1:0]TypeDescription 00 IDLENo 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. 01BUSYAllows 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. 10NONSEQIndicates 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. 11SEQRemaining 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).
26 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Exemples de différents type de transfert
27 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Les accès burst zIncrementing bursts: yAccès séquentiel yL’adresse de chaque donnée du burst est l’adresse précédente incrémentée. zX –beat wrapping bursts yBurst modulo x
28 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Burst de 4 mots (de 32 bits) incrémentés [W/R]
29 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Burst de 4 mots (de 32 bits) wrappés [W/R]
30 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Arbitrage
31 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Changement de maître après un burst
32 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA Bus AMBA Peripheral Bus (APB) ESCLAVE 3 ESCLAVE 2 ESCLAVE 1 BRIDGE Sélection 3 Sélection 2 Sélection 1 HRDATA HADDR HWDATA
33 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA Comparaison IBM / ARM
34 LES BUS ON-CHIP 3 ième partie: Le bus ARM AMBA AHB: Accès sans «wait states» [W]