[THOMSON] ARDDRIVE

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [THOMSON] ARDDRIVE

Message par __sam__ »

Entre le pi et le 68000, il y a sur ton schéma un contrôleur SCSI. C'est lui qui permet de gérer l’asynchronisme et les latences variables du pi. Le PI n'est pas soumis aux timings du bus CPU. Comme indiqué plus haut, dans le cas du 6809 le CPU parle directement avec un composant logiciel se faisant passer pour un chip. Ce composant logiciel doit répondre avec un timing hyper serré et précis en conformité avec le protocole du bus CPU.. Ca n'a rien à voir à se connecter sur un bus SCSI dont le protocole est conçu pour supporter des périphériques plus ou moins rapides avec tout une gestion des erreurs et autres arbitrations sur le bus assurée par un contrôleur. Bref c'est pas du tout la même chose que de connecter directement un PI sur un bus CPU.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [THOMSON] ARDDRIVE

Message par hlide »

Oui, je ne pense pas que l'on puisse comparer le bus du 68000 et celui du 6809. Le 6809 n'a même pas un équivalent /WAIT pour faire patienter le 6809 et laisser le temps à la demande du périphérique de lire/écrire la donnée. Il faudrait jouer avec la fréquence pour allonger sa période (j'imagine que ça impactera aussi la période de Q), or pour ça il faut le MRDY qui n'est disponible que dans la version 6809 (fréquence interne) et non dans la version 6809E (fréquence externe). Bref, ça ne me paraît pas aussi simple à piloter directement le bus avec un Arduino ou un RPI. Si je ne m'abuse, les Thomson utilise un 6809E.

EDIT: Citation de la page 469.
one of the limitations of a synchronous bus is that there is no feedback from the slave to the master. The two limiting consequences of having no feedback are inefficiency (requires all devices to operate at the speed of the slowest pair) and a lack of flexibility (all devices must be considered together when designed or redesigned.) We define a partially asynchronous bus as one that allows slaves to affect bus timing. For example, some computers (like the Frescale 6809 and 680x0 and the Intel x86) allow an external device to slow down the system clock, thus extending the data access time. This is called cycle stretching. In a 6809, the E and Q clocks operate normally when MRDY is high. The 6809 E, Q clocks will stop (or stretch) for an integer multiple of quarter bus cycles whenever MRDY is low. The 6809 MRDY must fall within 200 ns of when the end of the cycle would have been for the cycle to be stretched.
Typically a slow memory or I/O decive pulls MRDY low until its read or write function is complete. It is much more efficient for the system to slow down only when accessing the slow devices, rather than changing the chrystal frequency (which would slow down the system for every cycle). We will use this mechanism to interface dynamic RAMs and slow I/O chips.
A relire, on peut étendre indéfiniment le temps de lire/écrire. Dommage que ce ne soit pas disponible avec un 6809E (je suppose que le fait de fournir directement le E et Q rend caduque MRDY).
totor
Messages : 204
Inscription : 09 oct. 2019 22:41

Re: [THOMSON] ARDDRIVE

Message par totor »

merci sam ta réponse est claire.
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3047
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: [THOMSON] ARDDRIVE

Message par Papy.G »

Enfin, devoir ralentir un processeur aussi lent, même si c'était faisable, ce serait quand-même dommage. :roll:

Le but n'est pas que le "périphérique" impose sa vitesse, il doit fournir aussi vite les données que le proc peut les accepter.

Il faut faire écrire dans une RAM commune, accédée alternativement par le Thomson et par le périphérique (comme avec la vidéo dans un AppleII, il me semble). Ou s'inspirer de ce qui a été fait, il me semble, sur Hector, avec des buffers en guise de boîte aux lettres.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [THOMSON] ARDDRIVE

Message par hlide »

Euh non, il faut que le périphérique n'impose pas que TOUT le système tourne au ralentis EN PERMANENCE à cause de son addition, nuance. Le MRDY permet au processeur de donner au périphérique CONCERNE le temps nécessaire de lire/écrire la donnée. Tant que le processeur n'interroge pas ce périphérique (et je doute qu'il y passe 99% du temps à ça) pour lire/écrire un octet, le processeur et les autre périphériques tourneront à la vitesse maximum.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [THOMSON] ARDDRIVE

Message par Daniel »

On ne peut pas faire ralentir le 6809E. Même si on le pouvait il ne faut pas le faire : nous l'utilisons pour jouer de la musique, synchronisée sur l'horloge. Si l'horloge ralentit la musique ralentit, et ce n'est pas bon pour nos oreilles.

Dans le projet ARDRIVE, c'est l'Arduino qui doit aller à la vitesse du 6809, pas l'inverse. Je n'ai pas encore réussi mais je suis sûr que c'est possible. Le projet est en sommeil mais pas encore abandonné.

@hlide: Tous les Thomson n'ont pas un 6809E. Le TO7 a un 6809.
Daniel
L'obstacle augmente mon ardeur.
Répondre