Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Dossier : Zorro III
(Article écrit par Squonk et extrait d'A-News (Amiga News) - septembre 1990)
|
|
Zorro (III) est arrivé
Quoi ? Un nouvel épisode de la célèbre série de Walt Disney ? Le sergent Garcia ? Tout faux !
Le journal que vous tenez est bien A-News et non pas le journal de Mickey !
Cet article a pour but de vous présenter le génial appendice, un bus d'extension, prévu par M. Commodore pour l'Amiga 3000.
Génial par ce que ce concept, introduit par le défunt Apple II permet de manière élégante de suppléer
le manque d'imagination des concepteurs d'ordinateurs. Vu la vitesse à laquelle évoluent nos bestioles,
cela permet de rallonger la durée de vie d'une bécane (Cf. le PC).
Historique
Pourquoi III ? Aurais-je raté un épisode ? Un peu d'histoire : au début (en 1984) étaient les premiers prototypes
de l'Amiga (pas encore Commodore), qui s'appelait alors "Lorraine". Je serai toujours
étonné par les références bibliographiques des développeurs de chez Amiga/Commodore, ce nom-ci me faisant invariablement
penser à une nouvelle de Zelazny... Donc, à l'époque de la préhistoire, ces gens-là ont décidé de doter la
bête d'un connecteur 86 broches appelé "Zorro", probablement après avoir visionné un épisode de la célèbre série.
En fait, il vaut mieux considérer qu'il s'agit d'une mise à disposition des signaux du processeur 68000, plus
quelques signaux d'horloges pour cadencer le tout et (trompettes) le fameux AutoConfig. Derrière ce nom mythique
se cache un mécanisme de reconnaissance automatique des périphériques au démarrage, chaque carte se branchant
à tour de rôle sur l'Amiga qui lui fournit son adresse définitive sur le bus en fonction de ses caractéristiques.
Cela évite à l'utilisateur d'avoir à bricoler avec le tournevis les fichus micro-commutateurs type PC...
Le bus Zorro II, présent sur l'Amiga 2000 n'est qu'un réchauffé du Zorro I, les améliorations majeures étant la
possibilité de connecter plusieurs cartes en même temps et le fait de les aligner avec de simples connecteurs PC
(cet alignement étant, entre autres, exploité par la carte "passerelle"). Mais il s'agit toujours du bus du 68000,
avec les limitations propres à ce processeur (bus de données 16 bits, adresses 24 bits, temps de cycle de base de
280 ns).
Pour nos amis les bricoleurs de tout poil, je dois dire qu'adapter le bus Zorro du 500 à celui du 2000 ne nécessite
qu'un boîtier TTL (dans le cas d'une utilisation simple carte) ! Toutefois, je ne tenterai pas le coup avec la
dernière carte accélératrice à 50 MHz...
Caractéristiques du Zorro III
Pour la conception du nouveau bus, la barre a été placée assez haute :
- Utilisation du même connecteur 100 broches que le Zorro II.
- Compatibilité avec les périphériques Zorro.
- Bus de données et d'adresses 32 bits.
- Vitesse de bus indépendante du processeur.
- Transfert DMA haute vitesse.
- Arbitration de bus cycle/cycle pour éviter les blocages.
- Mode "interrupt" haute vitesse.
- Verrouillage du bus pour gestion du multiprocesseur.
Impossible ! Non ! Les électroniciens sont des gens pleins de ressources. Bon,
d'accord, il faut faire certaines concessions. Utiliser le même connecteur, cela veut dire forcément
réutiliser les mêmes signaux, modifier leur signification, etc.
De même, être compatible signifie compliquer les choses et donc l'électronique de décodage.
Les connecteurs Zorro III de l'Amiga 3000
Mais me direz-vous, comment faire pour avoir des bus de données et d'adresses de 32 bits chacun ?
Facile ! Il suffit de les mélanger ! En électronique, on parle de multiplexage, ce qui signifie
envoyer sur les mêmes fils les signaux alternativement en les mémorisant pour les exploiter. Cela permet
d'optimiser les fils disponibles, mais ici encore cela complique le décodage sur les cartes. Ce
procédé est néanmoins utilisé sur l'ensemble des mémoires dynamiques de ma connaissance et fonctionne
parfaitement.
Une vitesse de bus indépendante du processeur implique une utilisation dite "asynchrone",
c'est-à-dire sans rapport de phase constant des signaux entre eux. Impossible alors d'utiliser
le flanc montant d'un signal d'horloge quelconque pour se recaler. Cela ne veut pas dire plus
d'horloge, mais leur utilisation se limite ainsi à éviter d'avoir à prévoir un oscillateur
distinct sur chaque carte pour rien.
Si la nécessité d'un transfert DMA rapide ne soulève aucune objection, les problèmes d'arbitration paraissent
quelque peu surfaits. En fait, pas tant que ça, les problèmes d'arbitration n'apparaissant qu'avec des
configurations matérielles avec plusieurs cartes DMA travaillant en même temps (qui a dit oui ?).
Jusqu'à maintenant, l'arbitration était sous la responsabilité de chaque carte, ce qui signifie un chaos
Melnibonéen. Commodore a donc décidé de mettre un terme à cette situation et d'arbitrer dans le 3000
ces bas problèmes de police dans le bus.
Mode Zorro II et mode Zorro III
Afin de concilier les restrictions du bus Zorro Il et les nouveautés du bus Zorro III, les ingénieurs de chez
Commodore (principalement Dave Haynie) ont trouvé une astuce consistant à faire coexister les deux types de bus.
L'astuce est d'utiliser l'espace d'adressage restreint à 24 bits du Zorro II. La zone en mémoire correspondant
au bus Zorro III se situe donc aux adresses entre $10000000 et $80000000. A chaque cycle, le décodage d'adresse
de l'Amiga 3000, détermine ainsi le type de cycle à débuter : cycle 68000 "semi-asynchrone" ou cycle Zorro III complètement
asynchrone. Pour les cycles 68000, je vous conseille de vous reporter à toute documentation matérielle
68000 se respectant. Seuls quelques signaux changent de nom (AS=>CCS). Ces cycles restent en phase avec l'horloge
7M de l'Amiga.
Zones mémoire dans l'Amiga 3000
Pour les cycles Zorro III, plus de documentation facilement disponible, donc j'explique. D'abord, chaque périphérique
a la possibilité de demander la maîtrise du bus soit avec la méthode propre au 68000 et ses problèmes de partage,
soit en s'enregistrant auprès du 3000 grâce aux signaux BR et BG dédiés sur chaque carte. Dès que l'accès est accordé,
le transfert des informations ressemble beaucoup au transfert sur un câble parallèle type Centronics, chaque
correspondant accusant réception/disponibilité à tour de rôle :
- FCS, voici l'adresse à laquelle je veux accéder.
- SLAVE, retourné par chaque carte indique si celle-ci se sent concernée ou pas.
- DOE, le 3000 demande de lâcher les données !
- Le maître du bus indique la taille du transfert avec les signaux DSn.
- Le propriétaire des données les met sur le bus.
- L'esclave indique DTACK lorsqu'il a fini.
- Le maître du bus enlève les DSn.
- La carte esclave enlève le SLAVE lui appartenant.
Description des signaux
Voici la liste des signaux par groupe.
Horloges
Signaux de contrôle du système
- /BERR
- /RESET
- /IORST (ancien RST et /BUSRST)
- /HLT
- /INTn
Signaux de contrôle du port
- /SLAVEn
- /CFGINn
- /CFGOUTn
- SenseZ3
Signaux de contrôle DMA
- /OWN
- /BRn
- /BGn
- /BGACK
- /BCLR (ancien /GBG)
Adresses et signaux associés
- /READ
- A8-A31 (multiplexés)
- A2-A7
- FC0-FC2
- /CCS
- /FCS
Données et signaux associés
- DOE
- D0-D31 (multiplexés)
- /DSn
- DTACK
- /CINH (ancien OVR)
- /MTCR, /MTACK (ancien XRDY et VPA)
Le tableau suivant liste chaque broche physique, avec son nom physique et son nom logique en mode
Zorro II puis Zorro III.
Ground = masse.
Reserved = réservé.
No Connect = pas de connexion.
|