Dans un systeme a base de
processeur
, de
microprocesseur
, de
microcontroleur
ou d'
automate
, on appelle
entree-sortie
toute interface permettant d’echanger des donnees entre le processeur et les peripheriques qui lui sont associes. De la sorte, le systeme peut reagir a des modifications de son environnement, voire le controler. Elles sont parfois designees par l'acronyme
I/O
, issu de l'anglais
I
nput/
O
utput
ou encore E/S
[
1
]
pour entree/sortie.
Dans un
systeme d'exploitation
:
- les
entrees
sont les donnees envoyees par un peripherique (disque, reseau, clavier, capteur…) a destination d'une unite centrale de traitement (processeur) ;
- les
sorties
sont les donnees emises par une unite centrale de traitement a destination d'un
peripherique
(disque, reseau,
ecran
, imprimante, actionneur…).
Exemple simplifie :
- taper sur les touches du
clavier
envoie une serie de codes vers le processeur ; ces codes sont consideres comme des donnees d'
entree
;
- le processeur affiche les resultats du traitement des donnees sur un ecran ; ce sont des donnees de
sortie
. Habituellement, l'ecran est gere par un programme de gestion d'affichage.
Un systeme a microprocesseur comporte necessairement les elements suivants :
- un processeur, qui est le cerveau du systeme ; il est capable d'effectuer des operations arithmetiques et logiques et d'organiser des transferts de donnees entre les differents elements du systeme ;
- une zone de
memoire morte
(
ROM
,
EPROM
,
EPROM Flash
) qui stocke le programme ;
- une zone de
memoire vive
(RAM) qui stocke les donnees pendant l'execution du programme ; le contenu de cette memoire est perdu lorsqu'on coupe l'alimentation du systeme ;
- des peripheriques ; leur nombre et genre dependent de l'application.
Les differents elements du systeme sont relies par 3
bus
:
- le
bus de donnees
permet, comme son nom l'indique, la circulation des donnees, mais aussi des instructions, entre les 4 grands blocs ;
- le
bus d'adresse
permet au processeur de designer a chaque instant la case memoire ou le peripherique auquel il veut faire appel ;
- le
bus de controle
est egalement gere par le processeur et indique, par exemple, s'il veut faire une ecriture ou une lecture dans une case memoire, ou une entree/sortie de ou vers un peripherique ; on trouve egalement, dans le bus de controle, une ou plusieurs lignes qui permettent aux circuits peripheriques d'effectuer des demandes au processeur ; ces lignes sont appelees lignes d'
interruptions materielles
(IRQ).
L'evolution de la technologie fait que des systemes qui, precedemment, necessitaient plusieurs boitiers, peuvent parfaitement etre integres dans un seul boitier qui regroupe les differentes fonctions ; voir par exemple la famille de processeurs
ADuC
d'
Analog Devices
.
Une
machine a laver
est un excellent exemple de systeme de controle pilote par microprocesseur. Les principaux elements de la machine sont :
- un tambour dans lequel sera place le linge a laver ;
- un moteur pour faire tourner ce tambour a vitesse plus ou moins grande selon la phase du programme (lavage, essorage…) ;
- une resistance chauffante pour chauffer l'eau ;
- une electro-
vanne
pour autoriser l'entree de l'eau de la distribution dans la cuve de lavage au debut du cycle ;
- une
pompe
pour vider l'eau en fin de cycle ;
- un detecteur de niveau d'eau pour arreter le remplissage de la cuve ;
- un
thermometre
electronique pour arreter le chauffage lorsque l'eau a atteint la temperature desiree ;
- un ou plusieurs commutateurs pour selectionner le programme, la temperature de l'eau, la vitesse d'essorage ;
- un bouton de mise en marche et d'arret de la machine ;
- un ou plusieurs voyants ou indicateurs (temoin de marche, etat d'avancement du programme…).
Le processeur va recevoir des informations des peripheriques d'entree : commutateur(s), detecteur de niveau, thermometre electronique, clavier, souris,
etc.
En fonction de ces informations, il va envoyer des commandes aux peripheriques de sortie : moteur, resistance chauffante, electro-vanne, pompe, voyants et indicateurs,
etc.
Les peripheriques sont relies au reste du systeme par des circuits appeles ports d'entrees et ports de sortie (certains ports peuvent combiner les deux fonctions).
Un port d'entree est essentiellement compose de
tampons trois etats
. Ceux-ci se comportent comme des interrupteurs electroniques qui font apparaitre, au moment voulu, les niveaux logiques du peripherique d'entree (choisi par le bus d'adresse) sur le bus de donnees ; ces niveaux seront memorises dans un registre du processeur (le registre est une case de RAM).
Un port de sortie est essentiellement compose de
bascules
de type D. Celles-ci se comportent comme des petites memoires. Leur entree est reliee au bus de donnees. Le processeur vient ecrire un niveau logique 0 ou 1 dans chacun des bascules. Les sorties des bascules controlent les peripheriques, generalement via un etage de puissance.
Une entree est un flux de donnees provenant soit :
- du reseau ;
- d'une lecture d'information sur disque ;
- d'une saisie clavier, d'un mouvement de souris, d'un crayon optique ;
- ou de tout autre peripherique prevu pour interagir avec un systeme informatique.
Ces signaux d'entree generent des
Interruptions materielles
qui sont traitees en priorite par le gestionnaire d'interruptions du
noyau
du
systeme d'exploitation
.
Dans les systemes a microprocesseurs, tels la machine a laver evoquee ci-dessus, on trouve des boutons poussoirs, des commutateurs.
De nombreux microcontroleurs incorporent des compteurs ; les signaux mis en forme et appliques aux entrees de comptage constituent aussi des signaux d'entree du systeme.
Dans les systemes informatiques, le choix est bien plus vaste : clavier,
souris
, crayon optique, numeriseur, convertisseurs analogiques/numeriques…
Insistons sur le fait que, pour etre traites par le processeur, les signaux, quels qu'ils soient, doivent etre convertis en signaux logiques compatibles avec le processeur. Dans certains cas, il faudra donc placer des convertisseurs de niveau ou des etages d'isolement (souvent des
opto-coupleurs
).
Les sorties sont associees a des
trappes
ou
appels systemes
.
Une sortie peut etre (cette liste n'est pas exhaustive) :
- un signal (electrique, onde…) ;
- un flux de donnees (reseau), une ecriture sur disque ou une mise en memoire ;
- un affichage, un son.
Dans les systemes a microprocesseurs, on utilise des diodes electroluminescentes (
DELs
) ou des ampoules a incandescence comme voyants ou indicateurs, des
afficheurs numeriques
ou alphanumeriques a DELs ou a cristaux liquides pour l'affichage des messages du systeme, des relais (pour commander des charges necessitant des courants et/ou des tensions eleves), des
optocoupleurs
…
Dans les systemes informatiques, le choix est vaste : ecran pour l'affichage, imprimante pour la production de documents sur papier, convertisseurs numeriques/analogiques…
Un grand nombre de peripheriques sont a la fois des peripheriques d'entree et de sortie. Le
modem
, par exemple, permet d'envoyer ou de recevoir des informations en provenance du monde exterieur : courrier electronique, navigation Internet, mais aussi envoi et reception de fax, telephonie par ordinateur (
VoIP
,
Voice over IP
).
Les
cartes reseau
permettent de relier plusieurs ordinateurs afin de realiser un reseau local d'ordinateurs, ce qui permet de partager des fichiers ou des ressources telles une imprimante reseau, un numeriseur…
Il y a aussi toute la gamme des memoires de masse :
disque dur
,
carte memoire
,
lecteur de disquette
,
lecteur de DVD
,
cle USB
.
De meme, les
moniteurs d'ordinateurs
lorsqu'ils sont dotes d'
ecran tactile
.
On distingue principalement trois facons de gerer les entrees/sorties.
Pendant l'execution de son programme principal, le microprocesseur va periodiquement lire l'etat des peripheriques d'entree et modifie, si necessaire, l'etat des ports de sortie. C'est la technique la plus simple. Exemple : systeme de regulation de chauffage d'un batiment.
Cette technique est utilisee lorsque le processeur doit reagir rapidement a un changement d'etat d'un port d'entree. Le peripherique previent le processeur par une ligne d'interruption prevue a cet effet. Le processeur interrompt la tache en cours, saute dans le sous-programme destine a gerer la demande specifique qui lui est adressee ; a la fin du sous-programme, le processeur reprend l'execution du programme principal la ou il l'avait laissee et donne un resultat coherent.
Cette technique, connue souvent par ses initiales
DMA
(
Direct Memory Access
), est utilisee lorsque l'on doit proceder a un transfert rapide d'un grand nombre de donnees entre, par exemple, un lecteur de CD et un disque dur. Plutot que de transferer les octets d'abord vers un registre du processeur, puis seulement vers le disque dur, les octets sont transferes directement d'un peripherique a l'autre sans passer par les registres du processeur. Le transfert des donnees est organise par un circuit special appele controleur DMA, qui prend la place du processeur pendant le transfert et gere les bus d'adresses et de controle.
Les performances d'un ordinateur mesurent le temps qui lui est necessaire pour effectuer un traitement donne. Trois elements influencent ces performances :
- la puissance du
processeur
;
- la memoire disponible ;
- le temps consacre aux operations d'entrees/sorties.
Le temps necessaire pour un traitement informatique quel qu'il soit est toujours determine par un de ces trois elements mais celui des entrees/sorties est generalement preponderant. En effet, le temps consacre aux operations I/O se compte en millisecondes alors que celui consacre aux instructions effectuees par le processeur se compte en nanosecondes.
La taille de la memoire est surtout importante dans la mesure ou elle permet de reduire le nombre d'operations d'entrees/sorties, soit parce qu'une part plus importante des programmes applicatifs peut resider en memoire, reduisant ainsi les phenomenes de pagination, soit parce qu'une partie de cette memoire peut-etre utilisee comme tampon (
memoire cache
) pour le stockage des flux de donnees des operations I/O.
En programmation comme au niveau systeme (par exemple sur les
mainframes
), deux elements materiels (entre autres) influencent les performances des entrees/sorties, c'est-a-dire leur vitesse :
- la charge du
processeur
(i.e. son taux d'occupation), qui fournit les donnees sortantes ou traite les donnees entrantes ;
- la charge du dispositif d'entree/sortie, qui emet ou recoit les donnees (on parle generalement des lectures/ecritures notamment pour les acces disques).
Si les ressources CPU ou I/O sont insuffisantes lors de l'execution d'un ou plusieurs traitements simultanes, on parle de saturation.
Notices dans des dictionnaires ou encyclopedies generalistes
: