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é.

Circuit intégré Zilog Z80 PIO
Brochage du Zilog Z80 PIO

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 modifier

  • 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.

Voir aussi modifier