# Cours : Entrées/Sorties pour l'Architecture d’Ordinateur
## 1. Introduction aux Entrées/Sorties (E/S)
Les systèmes d'entrées/sorties (E/S) constituent une composante
essentielle de l'architecture des ordinateurs. Ils permettent au processeur
de communiquer avec des périphériques externes tels que les claviers, les
disques durs, les imprimantes ou les écrans.
**Objectifs des E/S :**
1. Fournir un moyen de communication entre le processeur et le monde
extérieur.
2. Permettre le transfert de données entre des périphériques et la
mémoire.
3. Assurer la synchronisation des opérations entre les différents
composants.
## 2. Modèle général des E/S
Un système E/S est composé de trois parties principales :
- **Dispositifs physiques** : Les périphériques eux-mêmes (clavier, écran,
disque dur, imprimante, etc.).
- **Interface matérielle** : Comprend les ports, les contrôleurs et les
connexions matérielles qui relient les dispositifs physiques à l’ordinateur.
- **Logiciels pilotes** : Programmes permettant de gérer les
communications entre le système d'exploitation et les périphériques.
### 2.1 Types d’E/S
1. **E/S simples** : Utilisées pour les dispositifs comme les claviers ou les
écrans.
2. **E/S complexes** : Gèrent des transferts de données volumineux, par
exemple les disques durs ou les réseaux.
## 3. Modes d’accès des E/S
### 3.1. E/S programmées (Polling)
Dans ce mode, le processeur vérifie en boucle l’état du périphérique.
- **Avantages** : Simplicité de mise en œuvre.
- **Inconvénients** : Consomme beaucoup de temps CPU, même si le
périphérique n’est pas prêt.
Exemple :
```pseudo
TANT QUE (dispositif_non_pret)
continuer_a_verifier;
LIRE(donnees);
```
### 3.2. E/S par interruption
Le périphérique informe le processeur qu’il est prêt via une interruption. Le
processeur interrompt son exécution pour traiter cette demande.
- **Avantages** : Efficace, car le processeur peut faire d’autres tâches en
attendant l’interruption.
- **Inconvénients** : Nécessite une gestion d’interruptions plus complexe.
Exemple :
```pseudo
QUAND interruption_reçue
SI dispositif_pret
LIRE(donnees);
```
### 3.3. Accès direct à la mémoire (DMA)
Le contrôleur DMA permet aux périphériques de lire ou d'écrire
directement dans la mémoire sans passer par le processeur.
- **Avantages** : Idéal pour les transferts de données volumineux, libère
le processeur.
- **Inconvénients** : Plus coûteux en termes de matériel.
## 4. Bus d’E/S
Un bus est un système de communication qui transporte des données
entre les composants d’un ordinateur. Les E/S utilisent des bus pour
connecter les périphériques au processeur.
### 4.1. Types de bus
1. **Bus de données** : Transporte les données à échanger.
2. **Bus d’adresse** : Identifie le périphérique ou la mémoire cible.
3. **Bus de contrôle** : Gère les signaux pour coordonner les opérations.
### 4.2. Protocoles d’accès
- **Bus partagé** : Plusieurs composants partagent un même bus.
- **Bus hiérarchique** : Différents niveaux de bus pour optimiser les
performances (ex. : PCIe pour les composants rapides).
## 5. Adressage des E/S
### 5.1. E/S mappées sur les ports
- Les périphériques utilisent un espace d'adressage distinct du système
mémoire.
- Requiert des instructions spécifiques pour les E/S (par exemple, IN et
OUT sur x86).
### 5.2. E/S mappées en mémoire
- Les périphériques sont intégrés dans l'espace mémoire du processeur.
- Utilise des instructions standard de lecture/écriture mémoire.
## 6. Contrôleurs de périphériques
Un contrôleur de périphérique agit comme intermédiaire entre le
processeur et le périphérique.
### 6.1. Registres d'E/S
Chaque périphérique dispose de registres pour :
1. **Données** : Contient les données à transmettre.
2. **Commande** : Reçoit les instructions pour effectuer une action.
3. **Statut** : Informe sur l’état du périphérique (prêt, occupé, erreur).
### 6.2. Exemples de contrôleurs
- Contrôleurs de disque (SATA, NVMe).
- Contrôleurs réseau (Ethernet).
- Contrôleurs graphiques (GPU).
## 7. Exemples de technologies E/S modernes
### 7.1. Interfaces courantes
- **USB (Universal Serial Bus)** : Connecte des périphériques variés.
- **PCIe (Peripheral Component Interconnect Express)** : Pour les cartes
graphiques, SSD, etc.
- **SATA (Serial ATA)** : Utilisé pour les disques durs et SSD.
- **I2C, SPI** : Protocoles pour dispositifs embarqués ou IoT.
### 7.2. Réseaux d'E/S
- Les systèmes modernes utilisent des réseaux haute performance comme
**Thunderbolt** ou **USB4**.
- Les architectures distribuées utilisent des réseaux pour la communication
entre composants.
## 8. Problèmes courants des E/S
### 8.1. Synchronisation
- La vitesse des périphériques varie, ce qui peut créer des goulets
d’étranglement.
### 8.2. Gestion des erreurs
- Les erreurs de transmission (bruit, perte de données) doivent être
détectées et corrigées.
### 8.3. Compatibilité
- Assurer la compatibilité entre le matériel et le logiciel est essentiel.
## 9. Conclusion
Les entrées/sorties sont une composante critique de l'architecture des
ordinateurs. Elles permettent au processeur de communiquer avec le
monde extérieur et de gérer une variété de périphériques. La
compréhension des méthodes d’E/S (polling, interruption, DMA), des bus,
et des contrôleurs de périphériques est essentielle pour concevoir des
systèmes efficaces et fiables.