Le plus simple serait d'inventer mon propre jeu d'instructions
euh, d'accord, nous pourrions venir d'expériences très différentes ici…
Avec le plus simple, je veux dire le moins d'instructions.
Ce n'est pas forcément le plus simple à mettre en œuvre. Souvent, avoir plus d'instructions est un bon compromis de complexité par rapport à des instructions plus complexes.
Ma question est donc la suivante: quel est le jeu d'instructions / l'architecture le plus simple qui a un compilateur C ++ et / ou C (espérons-le stable)?
Cela ne semble pas être un travail pour C ++, alors concentrons-nous sur C. (Si vous ne comprenez pas la différence qu'apporte le paradigme C ++ RAII, vous n'êtes peut-être pas dans la position optimale pour concevoir votre propre ISA.)
Puh, un ensemble d'instructions de microcontrôleur qui est précoce, mais pas trop tôt (car trop tôt impliquerait "conçu autour des limites de la logique numérique de l'époque, comme par exemple 8051).
L'AVR pourrait être un bon choix, même si personnellement je n'aime pas trop ça.
J'ai entendu dire que Zilog Z80 est facile à implémenter (il y a vraiment plusieurs implémentations Z80 là-bas), mais c'est assez ancien et pas très confortable (étant du milieu des années 70).
Si vous voulez vraiment juste un petit cœur pour contrôler ce que fait votre système, pourquoi ne pas choisir l'un des nombreux designs de cœur de processeur disponibles?
Par exemple, RISC-V est une architecture de jeu d'instructions (assez complexe), avec des compilateurs matures et de nombreuses implémentations open source. Pour un noyau FPGA minimal, picoRV32 serait probablement le noyau de choix. Et sur un ordinateur, vous n'avez qu'à exécuter QEMU.