Lo más fácil sería inventar mi propio conjunto de instrucciones
uh, ok, podríamos venir de muy diferentes experiencias aquí
Con más fácil me refiero a la menor cantidad de instrucciones.
Eso no es necesariamente lo más fácil de implementar. A menudo, tener más instrucciones es una buena compensación de complejidad en comparación con tener instrucciones más complejas.
Así que mi pregunta es, ¿cuál es el conjunto de instrucciones/arquitectura más fácil que tiene un compilador (espero que estable) de C++ y/o C?
Esto no parece un trabajo para C++, así que vamos a concentrarnos en C. (Si no entiendes la diferencia que supone tener el paradigma RAII de C++, puede que no estés en la posición óptima para diseñar tu propia ISA).
Puh, un conjunto de instrucciones de microcontrolador que es temprano, pero no también temprano (porque demasiado temprano implicaría "diseñado en torno a las limitaciones de la lógica digital de la época, como por ejemplo el 8051).
El AVR podría ser una buena opción, aunque personalmente no me gusta demasiado.
He oído que el Zilog Z80 es fácil de implementar (realmente hay varias implementaciones del Z80 por ahí), pero es bastante antiguo, y no muy cómodo (siendo de mediados de los 70).
Si realmente sólo quieres un núcleo pequeño para controlar lo que hace tu sistema, ¿por qué no elegir uno de los muchos diseños de núcleos de procesadores que existen?
Por ejemplo, RISC-V es una arquitectura de conjunto de instrucciones (bastante compleja), con compiladores maduros y muchas implementaciones de código abierto. Para un núcleo mínimo de FPGA, picoRV32 sería probablemente el núcleo elegido. Y en un ordenador, simplemente ejecutarías QEMU.