Circuit PIO
# Circuit PIO

Les circuits PIO ("Programmed Input/Output") sont des circuits d'interface Entrées/Sorties parallèles qui permettent de raccorder un périphérique particulier au bus informatique d'un ordinateur ou d'un système embarqué.

Comme un microprocesseur est censé gérer plusieurs périphériques à la fois, il reçoit une multitude de signaux d'interruption, mais ne peut jamais en traiter qu’un seul à la fois. Il faut donc convenir d'une discipline de priorité. Pour cela, le périphérique envoyant un signal d’interruption doit donc envoyer au microprocesseur l'instant où il « prendra la main », et signaler qu'il en a terminé. Par la gestion d'une file de priorité (Daisy-Chain) sur les connexions (Interrupt Enable Input/Interrupt Enable Output), il devient possible de subordonner plusieurs entrées-sorties parallèles les unes aux autres.

* IEI (= Interrupt-Enable In): le PIO obtient l'autorisation d'émettre un vecteur d'interruption /INT au CPU, à condition qu'aucune requête de priorité supérieure soit émise.
* IEO (= Interrupt-Enable Out): l'interruption est en cours de traitement, les PIO de priorité moindre doivent attendre.

## Exemples de circuits PIO

* le Z8420/Z84C20 de Zilog pour le Z80 ; il existait avec ce circuit quatre modes de commande:
   * Mode 0: sortie par octet
   * Mode 1: entrée par octet
   * Mode 2: mode bidirectionnel en entrée/sortie
   * Mode 3: commande bit à bit (pour l'émission de bits d'interruption en parallèle)
* le 8255A fabriqué par Intel.
