In termini di set di istruzioni e semplicità di emulazione. Vorrei implementare una CPU virtuale e ho capito perché non emulare uno esistente, in modo da essere in grado di compilare il codice C ad esso.Qual è la CPU più piccola e più semplice che GCC può compilare?
risposta
Moxie è un grande obiettivo perché è stato progettato specificamente per essere un obiettivo ideale per GCC. Sono l'autore e sarei felice di rispondere a qualsiasi domanda. green at moxielogic dot com
Esiste documentazione di riferimento sull'architettura e sul set di istruzioni? –
Cosa c'è a http://moxielogic.org/wiki ... anche se mi ci vorrà un po 'per annullare il danno dai vandali della wiki. Torna presto. –
Grazie, sembra esattamente qualcosa che avevo in mente. –
Forse l'AVR ATTiny45 o un chip AVR simile.
Forse qualcosa della serie Ti MSP430.
ZPU (un processore a 32 bit con destinazione FPGA) è molto piccolo.
Questa probabilmente non è una domanda insolita; Mi auguro che la maggior parte dei toolkit di simulazione di CPU/macchina includa una semplice implementazione di esempio, ma alcuni non lo fanno.
Non ho lavorato con esso, ma Knuth's MMIX architecture (wikipedia) sembra interessante. Come Moxie, è stato creato per "illustrare aspetti a livello macchina della programmazione" ed è più semplice delle macchine reali. È supportato da GCC e sembrano esserci più simulatori esistenti che potrebbero essere utilizzati come riferimento nei vostri sforzi.
Un altro percorso è la ricerca di backend per architetture di set di istruzioni singole: https://stackoverflow.com/questions/3711443/minimal-instruction-set-to-solve-any-problem-with-a-computer-program Persone sembra aver fatto un backend clang per subleq: https://stackoverflow.com/questions/3711443/minimal-instruction-set-to-solve-any-problem-with-a-computer-program/38523869#38523869 –