Title: cours 5 - 1
1Gestion des Périphériques
- Année 2006 - 2007
- (Transparents de F. Dromard)
2Bus PCI
- Peripheral Component Interconnect
- Spécifié en 1992 par Intel et dautres
industriels - Révision 2.0 en avril 1993
- Révision 2.1 au début 1995
- Révision 2.2 en décembre 1998
- Bus fond de panier
- Indépendant du processeur utilisé
- Performances intéressantes
- Configuration par logiciel
3Bus PCI
- Caractéristiques générales
- Multiplexé adresse / donnée
- Mode rafale
- Largeur 32 ou 64 bits
- Synchrone à 33 MHz ou 66 MHz
- Débit crête 132, 264, 528 Mo/s
- Bus multimaître
- Moins de 50 signaux pour 32 bits
- Contrôleur complexe
4Bus PCI
processeur
Bus PCI 1
Bus ISA
cache
Pont hôte
Pont pci/pci
Pont pci/ISA
Bus PCI 0
Contrôleur disques
Contrôleur vidéo
Contrôleur réseau
Adaptateur SCSI
écran
D1
D2
Bus SCSI
5Bus PCI
- Introduction au fonctionnement du bus PCI
- Permet à deux agents de communiquer
- Un maître avec une cible
- Arbitrage centralisé
- En parallèle avec les transferts
- Chaque agent peut avoir la fonction de
- Maître seulement
- Maître et Cible
- Cible seulement
6Bus PCI
- Introduction au fonctionnement du bus PCI
- Echanges en rafales
- Une phase dadressage
- Une à N phases de données
- Bus synchrone
- Signaux valides sur front montant de lhorloge
- Bus sans terminaisons
- Fonctionne par réflexion
7Bus PCI
- Déroulement dune transaction
- Demande du bus par un agent
- Bus accordé par larbitre
- Dès que le bus est libre, lagent devient maître
- Le maître désigne la cible (phase adressage)
- La cible répond avec le signal DEVSEL
- Une ou plusieurs phases de donnée
- Fin de la transaction, libération du bus
8Bus PCI
- Particularités
- Transactions éclatées (split transactions)
- Limitation de la durée dutilisation du bus par
temporisateurs de latence - Accès direct mémoire en tant que maître du bus
9Bus PCI
- Adresses
- virtuelles
- physiques
- bus
processeur
adresses virtuelles
adresses physiques
Pont hôte
Agent 3
Bus PCI 0
Agent 2
Agent 1
adresses bus
10Bus PCI
- Espaces dadressage
- Processeurs ayant 2 espaces dadressage
- Espace mémoire (adresse sur 32 bits)
- Espace E/S (adresse sur 16 bits)
- Bus PCI (adresse bus 32 bits)
- Espace Mémoire
- Espace E/S
- Espaces de Configuration
11Bus PCI
- Espace dadressage mémoire
- Vu du processeur
espace dadressage mémoire (adr. proc.)
4Go - 1
agent 3
processeur
pci
agent 2
agent 1
mémoire hôte
Bus PCI 0
0
12Bus PCI
- Espaces dadressage mémoire
- Vu du bus PCI
espace dadressage mémoire (adr. bus)
4Go - 1
agent 3
processeur
pci
agent 2
agent 1
mémoire hôte
Bus PCI 0
0
13Bus PCI
- Espace dadressage E/S
- Vu du processeur
espace dadressage E/S (adr. proc.)
processeur
port //
port série
64k - 1
Registres du pont hôte
Pont hôte
contrôleur
Bus PCI 0
port série
0x3F8
port //
0x378
0
Bus ISA
14Bus PCI
- Espace dadressage E/S
- Vu du bus PCI
espace dadressage E/S (adr. bus)
4Go - 1
processeur
port //
port série
64k - 1
Registres du pont hôte
Pont hôte
contrôleur
Bus PCI 0
port série
0x3F8
port //
0x378
0
Bus ISA
15Bus PCI
- Espaces de configuration
- Zone mémoire de 256 octets maximum, associée à
chaque contrôleur - Contient
- Identification du fabricant
- Identification du produit
- Type de produit
- Registres de base
- . . .
16Bus PCI
- Espaces de configuration
- Obligatoire
- Permet la configuration automatique, par le
processeur - Tous aux mêmes adresses 0 à 255
- Signal IDSEL, distinct pour chaque contrôleur
17Bus PCI
- Espaces de configuration
- Vu du processeur
processeur
espaces de configuration
IDSEL 3
Bus PCI 0
IDSEL 2
IDSEL 1
18Bus PCI
- Espaces de configuration
- Vu du bus PCI
processeur
espaces de configuration
IDSEL 3
Bus PCI 0
IDSEL 2
IDSEL 1
19Bus PCI
- Accès aux espaces de configuration
- Par le processeur
- Type despace inconnu du processeur
- Mécanisme daccès situé dans le pont hôte
- Accès à ce mécanisme dans lespace E/S du
processeur - Deux registres de 32 bits
20Bus PCI
- Accès aux espaces de configuration
- Par le processeur
- Registre adresse configuration CONF_ADDR
- Accessible à ladresse E/S CF8h
- Accès en 32 bits seulement
0
1
2
7
8
10
11
15
16
31
30
23
24
numéro de bus
numéro de fonction
numéro de contrôleur
numéro de registre
réservé
0
0
bit autorisation 1 accès autorisé, 0 non
autorisé
21Bus PCI
- Accès aux espaces de configuration
- Par le processeur
- Registre donnée configuration CONF_DATA
- Accessible à l adresse E/S CFCh
- Accès 8 bits, 16 bit, 32 bits
22Bus PCI
- Initialisations par le processeur au démarrage
- Exploration systématique du bus
- Trouve les contrôleurs présents en faisant des
accès configuration - Détecte les ponts
- Numérote les bus
- Affectation dadresses aux contrôleurs
- Dans lespace mémoire ou E/S
- Zones dadresses disjointes
- Pas de conflits
23Bus PCI
- Initialisations par le processeur au démarrage
- Affectation dadresses aux contrôleurs
- Rangées dans l espace de configuration du
contrôleur - Registres de base affectés à cet usage
- Utilisés par les pilotes logiciel
Espace de configuration du contrôleur
Adresse
10h
Registre de base 0
14h
Registre de base 1
18h
24Bus PCI-X
- PCI eXtension
- Protocole simplifié et amélioré
- Adresse Données sur 64 bits
- Fréquence maximum 133 MHz (1 slot)
- Débit crête 1 Go/s
25Bus Série, bus parallèle ?
- Bus périphériques
- Inconvénients des bus parallèles
- Câbles plus gros et plus chers
- Connecteurs plus gros et plus chers
- Dispersions de propagation des signaux
- Limitation en fréquence
- Diminution de taille des équipements
26USB
- Universal Serial Bus
- Spécifié par Intel, Compaq, Microsoft, NEC,
Philips (standard industriel) - Révision 1.1 en septembre1998
- Révision 2.0 en avril 2000
- Bus périphériques
- Plusieurs périphériques chaînés
- Branchement à chaud (sous tension)
- Détection et configuration automatique des
périphériques - Bus à interrogation (un seul maître)
27USB
- Types de transferts
- Transferts de type interruption
- Transferts de blocs
- Transferts de contrôle
- Transferts isochrones
28USB
- Débits
- USB 1.1
- Basse vitesse (low speed) 1,5 Mb/s ou 187,5
Ko/s - Pleine vitesse (full speed) 12 Mb/s ou 1,5
Mo/s - USB 2.0
- Haute vitesse (high speed) 480 Mb/s ou 60 Mo/s
29USB
- Topologie
- Connexions point à point bidirectionnelles
- Extension par des hub
- Arborescence orientée
- Pas de boucle
Hub hôte
nœud 1
nœud 2
hub 2
nœud 3
nœud 4
hub 3
nœud 6
nœud 5
30USB
- Cables
- Composés de 4 fils
- 3 à 4 mètres maximum selon la qualité
V
D
paire torsadée
D
-
GND
31USB
bus pci
contrôleur USB hôte
hub racine
hub 1
hub 2
device 1
device 2
device 3
device 4
device 5
32USB
données
alimentation
contrôleur de hub
switch
33USB
flux montant (upstream)
flux descendant (downstream)
répéteur
répéteur
34USB
- Principe dutilisation de la liaison
- En 1.1
- Temps découpé en tranches de 1 ms, les trames
USB - Plusieurs périphériques servis pendant chaque ms
- En 1ms transfert de 12 Kbits soit 1,5 Koctets
12 MHz
12 000
1 KHz T 1 ms
35USB
- Principe dutilisation de la liaison
- En 2.0
- Temps découpé en tranches de 125 µs microtrames
- Plusieurs périphériques servis par tranche
- En 125 µs transfert de 60 Kbits soit 7,5 Koctets
480 MHz
60 000
8 KHz T 125 µs
36USB
Système Hôte
Périphérique USB
impression
imprimante
logiciel client
fonction
logiciel
périphérique logique USB
couche USB
logiciel USB
contrôleur USB Hôte hub
Liaison USB
couche interface
contrôleur USB
matériel
37USB
I/O Request Packets
IRP2
IRP1
IRP1
IRP2
Tr1- 0
Tr1- 1
Tr1- 2
Tr2- 0
Tr2- 1
Tr2- 2
trame 1
trame 2
trame 3
Tr1- 0
Tr2- 0
Tr1- 1
Tr2- 1
Tr1- 2
Tr2- 2
1 ms ou 125 µs
1 ms ou 125 µs
1 ms ou 125 µs
matériel
38USB
- Transactions (1)
- Toujours à linitiative de lhôte
- Composées de 1, 2 ou 3 paquets
- Token packet
- Data packet
- Handshake packet
transaction
token packet
data packet
handshake packet
39USB
- Transactions (2)
- Token packet
- Toujours envoyé par lhôte
- Type et direction de léchange du paquet de
donnée - Adresse du destinataire (fonction)
- SOF, SETUP, OUT, IN
40USB
- Transactions (3)
- Data packet
- Sens déchange défini par le token packet
- Contient les données échangées
- Handshake packet
- Envoyé par celui qui a reçu les données
- Acceptation ou refus de léchange
- ACK, NACK, STALL
41USB
- Exemples de Transactions (1)
Mémoire hôte
Contrôleur hôte
1
Transaction 1
descripteurs de transferts
2
3
Transaction 2
4
Transaction 3
clavier
imprimante
1. Ctrl hôte prend le descripteur 2. C. h. génère
une transaction IN 3. Clavier renvoie les
données 4. C. h. met les données en mémoire
Données clavier
42USB
- Exemples de Transactions (2)
Mémoire hôte
Contrôleur hôte
1
Transaction 1
descripteurs de transferts
2
4
Transaction 2
Transaction 3
clavier
imprimante
3
1. Ctrl hôte prend le descripteur 2. C. h. génère
une transaction OUT 3. C. h. prend les données en
mémoire 4. C. h. envoie les données à limpr.
Données clavier
Données impr.
43USB
- Exemples de Transactions (3)
Mémoire hôte
Contrôleur hôte
Transaction 1
1
descripteurs de transferts
2
4
Transaction 2
Transaction 3
clavier
imprimante
3
1. Ctrl hôte prend le descripteur 2. C. h. génère
une transaction OUT 3. C. h. prend les données en
mémoire 4. C. h. envoie les données à limpr.
Données clavier
Données impr.
44USB
- Configuration du Bus
- Etat initial
- Tous les ports A sont désactivés
- Tous les ports B répondent à ladresse 0.
- Parcours de larbre
- Activation premier port A
- Interrogation
- Si réponse, affectation dune adresse
- ...
hôte
Ports A
Port B
Ports A
45USB
- Interface logiciel - matériel
- Trois spécifications dinterfaces
- UHCI Universal Host Controller Interface. usb
1.x - OHCI Open Host Controller Interface. usb 1.x
- EHCI Enhanced Host Controller Interface. usb
2.0