CODINGCLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★

2/7.1 - Etude générale d'un système à microprocesseur : III. Les liaisons ou BUSCoding Classeurs Weka
2/7.1 - Etude générale d'un système à microprocesseur

III. Les liaisons ou BUS

Comme annoncé précédemment, les différents organes d'un système à microprocesseur doivent être connectés ensemble, pour pouvoir dialoguer.

Sur les cartes imprimées seront donc effectuées des liaisons électriques entre les broches des composants (pas n'importe comment tout de même).

Ces liaisons, tout en n'étant pas identiques (sinon pourquoi les différencier), possèdent la caractéristique de pouvoir être regroupées en ce que l'on appelle BUS. Tout comme si vous teniez dans vos mains deux gros paquets de fils dont l'un est destiné à la commande automatique de votre lave-linge, et l'autre à votre chauffe-eau, vous appelleriez l'un bus du lave-linge, et l'autre bus de chauffe-eau, pour éviter de dénommer chacun des fils.

Nous vous proposons donc d'étudier les trois bus que comportent quasiment tous les systèmes à microprocesseur : les bus de données, d'adresse, et de contrôle.

LE BUS DE DONNÉES

Passons à la loupe le bus de données.

Un bus de données sera constitué de tous les fils de données, c'est-à-dire les fils où transite l'information (rappelons-le : des mots binaires, chaque fil étant ramené au potentiel zéro volt pour un zéro logique, ou + 5 volt pour un 1 logique).

Dans notre exemple, en figure 5, le bus de données contient 8 fils (c'est le cas du Z80 ou du 6809), mais il aurait pu comporter 16 fils (cas du 68000), et même plus.

Ces fils sont numérotés de D0 pour le poids faible (le plus à droite), à D7 pour le poids fort (le plus à gauche), on peut ainsi reconstituer une donnée en alignant les différents états de la façon suivante :

D7 D6 D5 D4 D3 D2 D1 D0

Ainsi le mot binaire 0 1 0 0 0 0 0 1 trouvé sur le bus de données voudra dire que le fil D7 est au potentiel 0 volt, D6 au potentiel + 5 volt, D5 à 0 volt, etc.

Signalons que ce mot possédera la valeur hexadécimale &41, plus facile à lire, et pourra signifier, par exemple, que l'instruction LD B,C va être exécutée, si une instruction doit être exécutée, ou que le caractère ASCII « A » va être traité, s'il est attendu un caractère ASCII (nous verrons ultérieurement ce qui est considéré comme programme, par rapport aux valeurs ASCII ou non).

Tous les bus de données reliés à un microprocesseur sont bi-directionnels, c'est-à-dire que les données peuvent transiter dans les deux sens (ce qui est indiqué par des flèches à deux directions), car le microprocesseur peut éventuellement vouloir sauvegarder en mémoire le résultat d'une opération, ou alors relire un précédent résultat pour une nouvelle opération, voir effectuer un dialogue complet avec l'extérieur. Attention, même si il peut circuler dans les deux sens, ce transfert ne peut s'effectuer que dans un sens à un instant donné.

Remarquons aussi, que le bus de données est généralement distribué à tous les composants constituant la mémoire et l'interface avec l'extérieur.


Fig. 5 : Schéma fonctionnel d'une structure minimale à microprocesseur.

LE BUS D'ADRESSES

La figure 6 représente le bus d'adresses d'un microprocesseur tel le Z80.

Ce bus est constitué de 16 fils d'adresses nommés de AO à A15, que l'on rassemble, afin de reconstituer le chiffre représentant l'adresse se trouvant sur tous les fils, sous la forme :

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

Une adresse pourra ainsi se présenter, par exemple 0111111110100100 en binaire, ou encore en hexadécimal :&7FA4 (avouez que cette notation est beaucoup plus simple, et moins soumise à l'erreur).

Remarquons que ce bus est unidirectionnel, les adresses étant toujours fournies par le microprocesseur et destinées aux composants l'entourant.

Ces adresses sont fournies à l'unité de décodage, qui effectue des opérations logiques grâce aux fils du bus pour sélectionner les différents composants mémoires et organes d'interfaçage.

Ce décodage peut être total (ce qui est très rare), mais très souvent partiel, et parfois non réalisé (l'Amstrad CPC utilise cette dernière forme de décodage pour les ports d'entrées/sorties, le Z80 s'y prêtant bien, car possédant deux lignes de contrôle signalant si l'adresse présente sur le bus est une adresse mémoire, ou une adresse de port d'interface).


Fig. 6 : Schéma fonctionnel d'une structure minimale à microprocesseur.


Fig. 7 : Schéma fonctionnel d'une structure minimale à microprocesseur.

LE BUS DE CONTRÔLE

La figure 7 représente les différentes lignes de contrôle du Z80 (il a fallu choisir, car contrairement aux bus d'adresses et de données, les bus de contrôle diffèrent selon les microprocesseurs).

Ce bus, bien que représenté bi-directionnel, est en fait multi-directionnel, c'est-à-dire que certaines liaisons sont unidirectionnelles dans un sens, et d'autres dans un sens différent.

Comme son nom l'indique, ce bus comporte des liaisons qui vont permettre le contrôle de la communication entre le microprocesseur et les composants qui l'entourent.

Passons donc brièvement en revue les signaux de contrôle du Z80 — tous les signaux surmontés d'une barre indique qu'ils sont actifs sur un niveau bas (0 volt), tandis que ceux qui n'en possèdent pas sont actifs sur un niveau haut ( + 5 volt).

  • RESET réinitialise le microprocesseur.
  • Un composant peut signaler au microprocesseur qu'il désire utiliser le bus de données, en plaçant le signal BUSRQ (BUS ReQuest) au niveau actif zéro.
  • INT (INTerruption) et NMI (Non Masquable Interruption) permettent d'interrompre le microprocesseur, sur un niveau bas, pour lui faire exécuter une tâche qui est plus prioritaire que celle qu'il est en train de traiter.
  • WAIT est un signal qui permet de faire patienter le Z80 lorsqu'une donnée se fait attendre sur le bus.
  • BUSACK (BUS ACKnowledge) est utilisé en réponse à BUSRQ pour signaler au composant que le bus de données est libre.
  • HALT, quand on l'active, stoppe le microprocesseur. Il ne reprend la suite de l'exécution que lorsque ce signal sera désactivé.
  • MREQ (Memory REQuesf) indique que le microprocesseur accède à la mémoire.
  • M1 est un signal actif durant le cycle machine de chaque instruction.
  • RFSH (ReFreSH) permet de commander le rafraîchissement des mémoires dynamiques (non utilisé sur l'AMSTRAD-CPC).
  • IORQ (Input Output ReQuest), indique que le microprocesseur accède à un port d'entrée/sortie.
  • WR (WRite) est actif lorsque le microprocesseur effectue une opération d'écriture.
  • RD (ReaD) est actif lorsque le microprocesseur effectue une opération de lecture.

Vous trouverez des explications plus détaillées en Partie 2, Chapitre 3, pages 5 et 6.

★ NOTE: 19e Complément

Page précédente : 2/7.1 - Etude générale d'un système à microprocesseur : II. Les éléments essentiels d'une structure à microprocesseur
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 667 millisecondes et consultée 1024 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.