J'ai voulu voir si l'architecture que j'avais imaginée était viable, j'ai testé dans minecraft.
L'idée c'était d'utiliser l'UAL pour incrémenter le compteur programme et le pointeur stack pour éviter d'avoir des compteurs à part redondants.
À voir plus tard si ça tourne bien j'ai pas encore pu exécuter beaucoup de code dessus.
Donc voilà ce que ça donne en redstone :
Ce que j'ai construit supporte les interruptions, les appels de procédures et tout le merdier qui va avec un stack.
C'est assez lent puisqu'il faut déjà 2 ticks d'horloge rien que pour charger la bonne instruction.
Le set d'instructions n'est pas tout à fait optimal mais ça devrait pas être compliqué en théorie résoudre le problème, ça va pas vraiment changer la forme des instructions.
Il y a "pas mal" de mémoire : 32 mots de RAM et 56 mots de ROM (en théorie on pourrait aller jusqu'à 64k). Si jamais j'ai la patience je programmerai un espèce de bios pour pouvoir gérer via une interface système les programmes à exécuter/charger.
L'idée c'était d'utiliser l'UAL pour incrémenter le compteur programme et le pointeur stack pour éviter d'avoir des compteurs à part redondants.
À voir plus tard si ça tourne bien j'ai pas encore pu exécuter beaucoup de code dessus.
Donc voilà ce que ça donne en redstone :
Ce que j'ai construit supporte les interruptions, les appels de procédures et tout le merdier qui va avec un stack.
C'est assez lent puisqu'il faut déjà 2 ticks d'horloge rien que pour charger la bonne instruction.
Le set d'instructions n'est pas tout à fait optimal mais ça devrait pas être compliqué en théorie résoudre le problème, ça va pas vraiment changer la forme des instructions.
Pour l'instant c'est quelque chose ça, avec 16 bits par instruction
- C'est une instruction normal ou un saut ? / Quel type de saut ?
- Est-ce qu'il faut enregistrer les flags ? - Le saut c'est une interruption ?
- Qu'est-ce qu'on sauvegarde ? - Conditions du saut ?
- Qu'est-ce qu'on met en entrée B de l'UAL ? - Où on saute ?
- Qu'est-ce qu'on met en entrée A de l'UAL ?
Il y a "pas mal" de mémoire : 32 mots de RAM et 56 mots de ROM (en théorie on pourrait aller jusqu'à 64k). Si jamais j'ai la patience je programmerai un espèce de bios pour pouvoir gérer via une interface système les programmes à exécuter/charger.
Dernière édition: