« Fonctionnement d'un ordinateur/Les bus et liaisons point à point (généralités) » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 85 :
 
[[File:ARINC429 Architecture Emetteur Recepteurs.svg|centre|Bus multiplexés.]]
 
===La largeur du bus===
 
[[File:Parallel and Serial Transmission.gif|droite|Comparaison entre bus série et parallèle.]]
 
La plupart des bus peuvent échanger plusieurs bits en même temps et sont appelés '''bus parallèles'''. Mais il existe des bus qui ne peuvent échanger qu'un bit à la fois : ce sont des '''bus série'''. On pourrait croire qu'un bus série ne contient qu'un seul fil pour transmettre les données, mais il existe des contrexemples. Généralement, c'est le signe que le bus n'utilise pas un codage NRZ, mais une autre forme de codage un peu plus complexe. Par exemple, le bus USB utilise deux fils D+ et D- pour transmettre un bit. Pour faire simple, lorsque le fil D+ est à sa tension maximale, l'autre est à zéro (et réciproquement).
 
La transmission et la réception sur un bus série demande de faire une conversion entre les données, qui sont codées sur plusieurs bits, et le flux série à envoyer sur le bus. Cela s'effectue généralement en utilisant des registres à décalage, commandés par des circuits de contrôle.
 
[[File:Serial interface.png|centre|500px|Serial interface]]
 
Passons maintenant aux bus parallèles. Pour information, si le contenu d'un bus de largeur de n bits est mis à jour m fois par secondes, alors son débit binaire est de n × m. Mais contrairement à ce qu'on pourrait croire, les bus parallèles ne sont pas plus rapides que les bus série. En effet, le temps d'attente entre deux transmissions est plus grand sur les bus parallèles. Un bus série n'a pas ce genre de problèmes, ce qui surcompense le fait qu’un bus série ne peut envoyer qu'un bit à la fois.
 
Il existe plusieurs raisons à cette infériorité des temps de latence des bus série. Premièrement, les fils d'un bus ne sont pas identiques électriquement : leur longueur et leur résistance changent très légèrement d'un fil à l'autre. En conséquence, un bit va se propager à des vitesses différentes suivant le fil. On est obligé de se caler sur le fil le plus lent pour éviter des problèmes à la réception. En second lieu, il y a le phénomène de crosstalk. Lorsque la tension à l'intérieur du fil varie (quand le fil passe de 0 à 1 ou inversement), le fil va émettre des ondes électromagnétiques qui perturbent les fils d'à côté. Il faut attendre que la perturbation électromagnétique se soit atténuée pour lire les bits, ce qui limite le nombre de changements d'état du bus par seconde.
 
===La fréquence du bus et son caractère synchrone/asynchrone===
Ligne 115 ⟶ 101 :
 
[[File:Exemple d'écriture sur un bus asynchrone.png|centre|Exemple d'écriture sur un bus asynchrone]]
 
===La largeur du bus===
 
[[File:Parallel and Serial Transmission.gif|droite|Comparaison entre bus série et parallèle.]]
 
La plupart des bus peuvent échanger plusieurs bits en même temps et sont appelés '''bus parallèles'''. Mais il existe des bus qui ne peuvent échanger qu'un bit à la fois : ce sont des '''bus série'''. On pourrait croire qu'un bus série ne contient qu'un seul fil pour transmettre les données, mais il existe des contrexemples. Généralement, c'est le signe que le bus n'utilise pas un codage NRZ, mais une autre forme de codage un peu plus complexe. Par exemple, le bus USB utilise deux fils D+ et D- pour transmettre un bit. Pour faire simple, lorsque le fil D+ est à sa tension maximale, l'autre est à zéro (et réciproquement).
 
La transmission et la réception sur un bus série demande de faire une conversion entre les données, qui sont codées sur plusieurs bits, et le flux série à envoyer sur le bus. Cela s'effectue généralement en utilisant des registres à décalage, commandés par des circuits de contrôle.
 
[[File:Serial interface.png|centre|500px|Serial interface]]
 
Passons maintenant aux bus parallèles. Pour information, si le contenu d'un bus de largeur de n<math>L</math> bits est mis à jour m<math>F</math> fois par secondes, alors son débit binaire est de n<math>L ×\times mF</math>. Mais contrairement à ce qu'on pourrait croire, les bus parallèles ne sont pas plus rapides que les bus série. EnSur effetles bus synchrones, lela tempsfréquence d'attenteest entrebien deuxmeilleure transmissionspour estles plusbus grandsérie surque pour les bus parallèles. UnLa busfréquence sérieplus nélevée l'aemporte passur cela genrelargeur deplus problèmesfaible, ce qui surcompense le fait qu’un bus série ne peut envoyer qu'un bit à la fois. Le même problème se pose pour les bus asynchrones : le temps entre deux transmissions est plus grand sur les bus parallèles, alors qu'un bus série n'a pas ce genre de problèmes.
 
Il existe plusieurs raisons à cette infériorité des temps de latence des bus série. Premièrement, les fils d'un bus ne sont pas identiques électriquement : leur longueur et leur résistance changent très légèrement d'un fil à l'autre. En conséquence, un bit va se propager à des vitesses différentes suivant le fil. On est obligé de se caler sur le fil le plus lent pour éviter des problèmes à la réception. En second lieu, il y a le phénomène de crosstalk. Lorsque la tension à l'intérieur du fil varie (quand le fil passe de 0 à 1 ou inversement), le fil va émettre des ondes électromagnétiques qui perturbent les fils d'à côté. Il faut attendre que la perturbation électromagnétique se soit atténuée pour lire les bits, ce qui limite le nombre de changements d'état du bus par seconde.
 
==L'interfaçage avec le bus==