[TO8] CPU et Fréquence

Placez ici vos trucs et astuces, étalez sans retenue votre savoir-faire et votre science qui va nous permettre de redonner une apparence neuve et fonctionnelle à nos bouzes.

Modérateurs : Papy.G, fneck, Carl

CrossmanBx
Messages : 142
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Y a eu beaucoup de troll, c'est vrai. J'ai failli demander à Fneck de le supprimer avant que je donne le lien de ce topic à Sockmaster. D'ailleurs, tout ceci est du troll également, ton post ainsi que le mien.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [TO8] Remplacement CPU

Message par __sam__ »

Pour revenir au sujet du remplacement de cpu (c'est le sujet, sisi), on peut se demander pourquoi se limiter aux 6309@2Mhz ?

Il existe des implementations de l'ISA 6809 beaucoup plus modernes, comme le Turbo9 (c'est un soft-core pour FPGA). Il a une approche pour maintenir sa fifo d'instruction-bytes pleine tout le temps en pré-fetchant les octets quand le bus est libre. Ensuite le fait que les instructions 6809 sont converties à la volée en instructions pour un micro-core risc comme les PCs modernes me semble super top, et la dessus se greffe un pipeline à 6 niveaux. Ca développe une puissance de calcul assez énorme, tout en gardant la compatibilité logicielle 6809.
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
CrossmanBx
Messages : 142
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Oui, j'avais vu ça Sam, mais c'est pas finalisé non ? Faut que je fouille un peu plus.
Après un fpga à 100mhz sur un bus 1mhz, va falloir un paquet de wait-states. :D :D
Avatar de l’utilisateur
gilles
Messages : 2779
Inscription : 07 août 2008 13:44
Localisation : Nantes
Contact :

Re: [TO8] Remplacement CPU

Message par gilles »

On n'ira jamais plus vite que la mémoire qui est derrière le Gate array... et on risque d'être assez rapidement limité.
Ceci étant l'exercice est intéressant.

Pour aller plus vite il faudrait déporter la mémoire non video avant le gate array (ou bien toute la mémoire et faire des refresh). Sur une machine comme le TO8 l’intérêt est assez limité car il n'y a pas d'usage très intensif au niveau CPU.

Autre point, tout code reposant sur les cycles CPU risque de ne plus marcher (dont lect/ecriture K7, sans doute la disquette aussi, peut être le clavier). La rom sera à patcher au minimum.
Ythunder
Messages : 928
Inscription : 21 août 2019 10:12

Re: [TO8] Remplacement CPU

Message par Ythunder »

S'il commençait à y avoir trop de choses à modifier - la même ROM d'un TO8, mais qui a dû être modifiée - pourrait on dire qu'il s'agit encore d'un TO8 à la fin ?
CrossmanBx
Messages : 142
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Pour moi, un TO8 reste un TO8.
Avec ses roms d'origine, avec OS/9, avec un 6809, un 6309, à 1mhz, à 2mhz...
La carte mère reste identique, le gate array aussi.
Si on ne doit toucher à rien, on met pas de carte son, on met pas de sddrive, on met pas d'extension RAM, ni aucune extension d'ailleurs.
Je préfère forcément rester avec du matos voisins des années de fab, juste pour le charme.
Est-ce quelqu'un ayant monté sur son amiga un 68030 serait mis à l'échaffaud ? ou une carte CF ? WHDLOAD ? Bien sûr que non.
Ythunder
Messages : 928
Inscription : 21 août 2019 10:12

Re: [TO8] Remplacement CPU

Message par Ythunder »

Ce n'est pas pareil quand même.
Car tu cites des extensions... l'usages des bus à l'arrière des machines.
Le travail formidable de Daniel avec le SDDRIVE, avec une extension de RAM c'est toujours le TO8.
Je parlais vraiment de : la modif de la modif de la modif :oops:
Après dans tout les cas... on replace la carcasse du TO8 et on a.. un TO8 lol (et le superbe design des machines Thomson qui est vraiment en haut du pelton pour moi dans les machines 8 bits)
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [TO8] Remplacement CPU

Message par __sam__ »

@CrossmanBX: ben au vu des vidéos, on dirait que ca marche. C'est supposé être "open-source", mais google ne trouve rien (pas plus que github) sur "turbo9". En fait je suis tombé sur la page d'un doctorant qui dit que c'est un projet de l'université de Floride. Donc un truc pour chercheurs. La seule visibilité semble être leur chaine youtube. Après, je sais d'expérience que des trucs qu'on fait en thèse et qui marchent (trop) bien sont vite couverts de NDA et rachetés par l'industrie et on entends plus parler en public. Je ne trouve pas moyen de le contacter sur son site (j'ai pas les yeux en face des trous?). C'est dommage, j'aurais bien aimé avoir plus d'infos sur ce projet Turbo9.

@gilles Oui, mais comme ya un projet de recréation de gate-array en fpga. Peut-être qu'un fou-furieux du VHDL (quoique le projet étant américain, ya plus de chance qu'il soit en verilog) ira glisser le core Turbo9 dans ce fpga et l'interfaçant "au mieux" pour qu'il puisse tirer parti de sa vitesse accrue.... (Oui je rêve)

Autre possibilité: équiper ce processeur rapide d'une mémoire locale en remplacement de la ram native thomson. On utiliserait seulement la ram native pour la vidéo (c'est à dire les pages 0 à 3 du gate-array TO8). Le reste des opérations se ferait en ram sur un bus local à une vitesse de folie. Et comme ya pas de DMA sur thomson, ca ne devrait pas poser de soucis (la RAM non-vidéo "n'appartient" qu'au CPU sur thomson).

@YThunder Plus un Thomson ? Oui c'est le risque (ou le RISC étant donné l'architecture interne du Turbo9). Tiens c'est marrant, mais les auteurs de Turbo9 considèrent que le 6809 tient bien plus du RISC (avant l'heure) que du CISC.

Mais refaire des CPU dans des fpga est à la mode (cf le core Apollo, le mister-fpga, etc). Et c'est même un peu dépassé, car à présent on refait des CPU 100% logiciels et qui sont pin-compatible avec l'original (PI-storm, ou MCLZ8). Evidemment tout ceci est pour s'amuser entre bidouilleurs matériels et voir si on peut aller bien au delà du 6309@2 ou 4Mhz tout en gardant la vidéo, l'alim et et les I/O d'origine. Seuls changeraient le processeur et la ram embarquée. Sur le papier ca se tente une fois le test de CrossmanBX réussi.
Dernière modification par __sam__ le 07 mars 2023 15:53, modifié 5 fois.
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
Ythunder
Messages : 928
Inscription : 21 août 2019 10:12

Re: [TO8] Remplacement CPU

Message par Ythunder »

Désolé dans ma réflexion j'ai dû décrocher je pense, je n'étais pas dans le cadre du FPGA, mais sur un vrai TO8 (patcher la ROM, modifier W, X, Y, Z etc). Après je dis pas, je ne suis pas contre le challenge, c'est pas ça du tout. Dans l'absolu oui c'est intéressant de voir un aboutissement.
CrossmanBx
Messages : 142
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Bon, je me galère sérieusement.
Voici le schéma cablé actuellement, en accord avec Sockmaster sur la suppression d'une partie du circuit :
Pièces jointes
2mhzTO8-2.jpg
2mhzTO8-2.jpg (89.88 Kio) Consulté 1152 fois
Dernière modification par CrossmanBx le 18 mars 2023 17:09, modifié 1 fois.
CrossmanBx
Messages : 142
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Le TO8 s'allume correctement avec le montage, mais l'horloge n'est jamais doublée.

Il y a de la vie après la grosse porte "AND", avec quelques fronts montants qui pourrait bien être le trigger nécessaire pour la suite. (Fonction BURST)

Concernant la partie "Synchronized Clock Generator", j'obtiens une sinusoide analogique (et non numérique, pas de palliers donc, ce qui me semble anormal) de 50MHz, loin des 17,18 MHz recherchés.
J'ai rajouté une condo en parallèle pour obtenir 50% de capa en plus, mais cela ne change pas la période.
Ajuster la résistance réglable change l'aspect de la sinusoide, sans changer la fréquence.

J'ai un gros doute sur le 4Bit Counter que j'utilise, un HCT393. Sockmaster semble utiliser un F161, mais suivant la datasheet de ce composant, je ne sais comment le cabler alors pour correspondre au circuit.

Voila, appel à âmes charitables bienvenues ! ;)
CrossmanBx
Messages : 142
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Bon, je viens de voir que le compteur 393 se reset avec un 1 et le 161 avec un 0. Ca explique peut-être...
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [TO8] Remplacement CPU

Message par hlide »

F1(E,Q,AVMA,BA) := E ∧ ¬Q ∧ ¬AVMA ∧ ¬BA

On a donc F1 = ⊤ si et seulement E = ⊤, Q = ⊥, AVMA = ⊥ et BA = ⊥ et donc le "burst" est activé qu'à cette condition (je présume qu'on accélère la fréquence durant un non accès en mémoire).

Le résultat de F1 entre dans le synchroniseur multiplicateur qui est un vrai bricolage qui dépend de beaucoup de facteur comme la latence de réponse du OU et des trois inverseurs et les valeurs de la capacité et de la résistance variable. Impossible de donner une BOM précise qui conviendrait à toute personne pour cette partie.

Je note que la sortie du multiplicateur de fréquence sert à alimenter un compteur 4-bit (donc 16 valeurs). Mais en fait, c'est plutôt 8 valeurs, car le bit 3 à 1 va effacer le compteur à 0 donc le compteur augmentera de 0 à 7 en fait.

Ce compteur va servir à regénérer des états E et Q pour le CPU en fonction des 8 valeurs.

Sans trop m'avancer, je dirais que la valeur 0 sert à sortir le E/Q in (donc fréquence 1 MHz) et cela reste ainsi tant que le burst n'est pas actif.

Si le burst est actif, le compteur va augmenter jusqu'à la valeur 7 puis se réinitialiser à 0. Il émet alors pour E out la séquence 0011001 et pour Q out la séquence 0110011.

J'ai l'impression qu'il faut un multiplicateur 16 de fréquence pour affecter 8 fois le compteur (le CLK ne se fait que sur un front ascendant).

On pourrait utiliser un LOCO (PLL CLOCK MULTIPLIER) genre ICS501 en mode x8 et faire un XOR des E in et Q in pour doubler la fréquence de 1 MHz à 2 MHz en entrée du LOCO et obtenir 16 MHz en sortie. Enfin, je dis ça mais je ne suis pas sûr de comprendre la totalité de ce schéma.
Dernière modification par hlide le 19 mars 2023 11:17, modifié 2 fois.
CrossmanBx
Messages : 142
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Merci beaucoup Hlide pour ta vision du schéma qui m'est fort utile.
Comme je l'ai dit juste avant, le compteur que j'utilise a son reset actif en "1", ça ne peut donc pas aller.
Je ne pense pas changer le compteur, je ne vois pas de différences pouvant impacter dans ce circuit là, entre un 373 et un 161 donc. Je me contenterai de relier le reset avant l'Inverseur.
Enfin, on verra ça demain.
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [TO8] Remplacement CPU

Message par hlide »

J'ai un léger doute sur Q out qui est très court en sortie basse juste avant l'arrêt du compteur pour sortir à nouveau du Q in.
wavedrom-16MHz.png
wavedrom-16MHz.png (9.21 Kio) Consulté 1021 fois
Peut-être que je me trompe.

Possible qu'il y ait un déphasage en utilisant un 17 Mhz au lieu de 16 MHz pour raccourci la période de E out et Q out et faire que le Q out juste avant la remise à 0 du compteur soit un peu plus allongé.
wavedrom-20MHz.png
wavedrom-20MHz.png (9.29 Kio) Consulté 1028 fois
Répondre