Esiste un microcontrollore con 16 MB di RAM?
Sì. L'unico di cui sono a conoscenza, tuttavia, è nella famiglia Renesas SuperH e non include la ROM - quindi devi avere un flash esterno, ma ha 16 MB di memoria SRAM integrata.
Sto cercando di scrivere un emulatore per il Sega Megadrive (Sega Genesis) che gira su AVR.
Non ci sono microcontroller SRAM 16MByte nella famiglia Atmel AVR. O ovunque nella linea di prodotti Atmel.
Tuttavia, diversi dispositivi della gamma Atmel AVR dispongono di un'interfaccia bus esterna che consente di collegare memoria aggiuntiva. In particolare, ATxmega128A1U può supportare fino a 16 MB di SRAM esterna.
Quindi ho cercato un microcontrollore con caratteristiche simili al Motorola 68k fornito con il MegaDrive.
...
Sono sicuro che la SRAM moderna non è quasi la stessa di qualsiasi cosa avesse il 68k, ma è possibile per me ottenere un micro AVR che corrisponda alla potenza di un 68k, sto vedendo questo problema in modo sbagliato? Devo modificare il mio design per adattarsi ai micro moderni?
Non so se alcune fonti esterne di memoria saranno abbastanza veloci.
Ah, ecco il problema che stai riscontrando.
Il processore 68k (ovvero Motorola 68000) NON è un microcontrollore e NON ha 16 MB di SRAM interna.
Mentre il processore è a 32 bit internamente, a causa delle limitazioni dei pin può indirizzare solo fino a 16 MB di memoria esterna, inclusi flash, sram e qualsiasi dispositivo mappato in memoria.
Non è necessario un microcontrollore con 16 MB di SRAM interna per emulare il processore 68k.
Esiste un microcontrollore Atmel AVR a 8 bit in grado di emulare il processore Motorolla 68000?
Credo di si. L'ATxmega128A1U ha un bus di memoria esterno grande quanto il bus del processore 68k e ha un sacco di flash e RAM che gli permetterebbero di eseguire una versione microcodice del processore 68k.
Può funzionare fino a 32 MHz e molte istruzioni richiedono un ciclo, ma anche il caso peggiore richiede 5 cicli nella memoria interna. L'interfaccia esterna è più lenta, ma se scegli la memoria veloce sarà comunque molto più veloce del 68k.
Il processore 68k non solo esegue 4 volte più lentamente, ma le operazioni più veloci ha almeno 4 cicli di clock e molti richiedono 2-4 volte più a lungo, in particolare gli accessi alla memoria.
Quindi, con SRAM anche lenta (secondo gli standard odierni) (diciamo, una parte da 70nS 8MByte per meno di $ 10) puoi usare 0 stati di attesa sul processore a 32MHz ed eseguire cerchi attorno ai 68k che funzionano a 7MHz. Ad esempio, una semplice istruzione di spostamento sul 68k che richiederebbe 4 cicli a 7,61 MHz richiede 525 nS. Un'istruzione di spostamento semplice simile su ATxmega128A1U a 32MHz richiede 31nS. Quindi l'AVR poteva eseguire 16 mosse entro il termine del 68K con una. Il 68k impiega 50 cicli per alcuni tipi di interrupt, mentre l'AVR salta all'interruzione in 3 cicli - così l'AVR potrebbe gestire una manciata di interruzioni nel tempo che impiega il 68k a saltare semplicemente in uno.
Mi aspetto che tu possa eseguire il ciclo in modo accurato con uno sforzo accurato se accetti un po 'di jitter, anche se potresti essere in grado di farlo funzionare in modo perfettamente accurato senza jitter se fossi meticoloso. I processori AVR funzionano bene con un overclock moderato, quindi potresti probabilmente eseguirlo a 38.35MHz e avere 5 cicli AVR per ciclo di clock 68k.
Questo non vuol dire che sarebbe facile, e potrebbero esserci alcune istruzioni molto complicate che richiederebbero più tempo sull'AVR che altrimenti - ma anche queste possono essere spiegate con un'attenta progettazione.
Posso emulare una Sega Genesis con un Atmel 8 bit AVR?
No. Il Sega Genesis ha, al suo cuore, un processore 68k, ma ha anche un processore audio (Z80) e un processore video di cui avresti bisogno di molte più risorse per emulare. Nel diagramma seguente, troverai il processore 68k in alto a sinistra - nota che è una piccola parte di tutto il necessario per emulare un sistema Sega Genesis completo.
Quindi, mentre potresti facilmente emulare il core 68k di Sega Genesis, non saresti in grado di eseguire giochi creati per Genesis con un solo microcontrollore AVR. Emulare il 68k da solo su un chip sarebbe abbastanza difficile, anche se hai semplificato le cose, dubito che potresti adattare tutti e tre i processori in un singolo chip AVR a 32 MHz.
Tuttavia, potresti probabilmente emulare quei due chip con altri due AVR. Se scegli come target un LCD grafico più semplice che non richiedesse strani tempi e generazione NTSC, potresti essere in grado di semplificare un po 'le cose e forse potresti persino mettere entrambe le funzioni su un chip separato.
Questo è un grande progetto, tuttavia, certamente non un fine settimana. Se ti trovi nella fase in cui ti senti a tuo agio con le schede di sviluppo Arduino, potrebbe essere interessante creare un semplice emulatore di processore 68k e collegare una piccola ROM esterna e RAM per gli accessi alla memoria. Arduino ATMega non ha un'interfaccia di memoria esterna, ma puoi modificare le linee I / O ed emularle. Se vai abbastanza avanti nel progetto in cui puoi emulare semplici programmi 68k, allora varrebbe la pena abbandonare Arduino, usando l'ambiente di sviluppo Atmel e un chip AVR migliore con un'interfaccia bus esterna, e puoi iniziare a leggere ed eseguire cartucce. Potresti persino essere in grado di reindirizzare i dati audio e video al computer e interpretarli durante l'elaborazione:
Assicurati che le tue routine di emulazione siano portatili e sarai in grado di passare a un processore migliore abbastanza facilmente da non rimanere bloccato.
Se il semplice progetto Arduino Mega non arriva mai molto lontano, non hai sprecato molte risorse in questo progetto. Se ti trovi spinto a completarlo, passare a un chip Atmel più capace non sarà così travolgente.
Dico di provarlo. Parte di ciò che ho detto e altri hanno detto potrebbe sembrare insormontabile, ma non lasciarci ostacolare. Continuate a porre domande ogni volta che incontrate un ostacolo e scoprirete che la maggior parte degli ingegneri si divertono con una sfida e vi fornirà la comprensione e l'aiuto di cui avete bisogno per percorrere questa strada.
L'emulazione è molto divertente.