@cdmauro
secondo me ci sono pocchissime persone al mondo in grado concretamente di fare una cosa del genere, o disposte a farlo, sopratutto per hobby (cioe' non competenze non retribuite). Non a caso D68000 costa 60.000 USD per i sorgenti, e gli ing di freescale sono letteralmente stati pagati a peso d'oro per il refactoring del 68060 e della linea coldfire e 683xxx (AKA 68K/CPU32)
Secondo me il tizio del fantomatico super 68K aka "68050" in Natami se capisce come gira il mercato il suo core lo ritratta in termini di Copyright, proponendolo sotto forma di IP a scatola chiusa, o a diversi zeri per avere anche i sorgenti: e lo penso perche' se ho compreso la natura umana, beh ... con se quel coso davvero esiste e funziona il tizio puo' farci davvero un bel po' di soldi.
In quanto ai salti no, questo no, non penso, i salti sul mio MIPS32-rev2 sono catastrofici e da Mips inc ho visto che sono stati seguiti diversi approcci, sia per CPU asic che per proposte di softcore Mips
Dal piu' pregiato al + bovino, posso tentare di riassumerli cosi':
1) statistico speculativo, dove si usano dati statistici, collezionati dalla storia dell'eseguzione, per istruire la branch prediction nel fare una previsione ogni volta che incontra una conditional branch sul possibile proseguio sul ramo then piuttosto che else
2) a casaccio, diciamo che in fase di progettazione della branch prediction diamo preferenza al ramo true piuttosto che false perche' solitamente assumiamo che i programmatori prediligano il ramo then
in entrambi i casi mentre si fa prefetch e si inizia a macinare, se la logica azzecca il ramo giusto si prosegue, ma se non lo azzecca si blocca la pipeline, la si stalla, la si svuota e si riparte. Farla profonda 5 significa 5 nop, 5 colpi di clock per svuotarla in caso di previsione errata, e qui capisci che serve logica smart, meno failure prediction fa meglio e'. Ma hai abbastanza risorse per mettere in piedi questa cosa ? Sui chip asic il branch prediction e' l'aggeggio che occupa + transistor, sui PIC e sugli AVR8 tagliano molto corto e usano soluzioni bovine proprio perche' hanno maschere a pochi transistor (e il chip deve anche costare $2/$5) per cui ... dubito che sulle fpga piccole si possano fare cose tanto elaborate.
Poi ci sono casini bestia come tradurre le complicatissme EA (effective address) del 68020 in load/store del nucleo RISC, anzi spesso una istruzione che fa EA complessa e' tradotta in un gruppo di micro istruzioni RISC, il che significa che per portare a termine l'istruzione 68k servono diversi e diversi cicli, vero che c'e' pipelining, ma la profondita' e' 4 o 5, oltre bisogna assolutamente stallare con nop per non incorrere in hazard condition fra il dato/registro manipolato da quella istruzione e le istruzioni che seguono che spesso e volentieri vorrebbero consumare quella informazione e devono aspettare che sia pronta e stabile.
Mips Inc per le sue CPU questa rogna la delega al compilatore, con un 68K super scalare dove hai istruzioni 68k tradotte in micro istruzioni RISC, o stalli come ho fatto notare prima e perdi prestazioni, oppure per ottimizzare sarebbe necessaria logica ed intelligenze eseguzione fuori ordine delle micro istruzioni RISC al fine di prevenire le loro hazard -> altro complicatume infinito da fare e validare
