Gibt es einen Mikrocontroller mit 16 MB RAM?

8

Hier ist meine Situation:

Als persönliches Projekt möchte ich einen Emulator für den Sega Megadrive (Sega Genesis) schreiben, der auf AVR läuft. Daher habe ich nach einem Mikrocontroller gesucht, der ähnliche Eigenschaften wie das mit dem MegaDrive gelieferte Motorola 68k aufweist. Ich habe jedoch festgestellt, dass die Spezifikationen für den 68k im Vergleich zu den meisten Hobby-Mikros. Ich wähle AVR im Gegensatz zu ARM, weil mir die Architektur gefällt und ich dachte, es wäre eine gute Herausforderung.

M68K:
32-bit CPU
16-bit data bus
Up to 20 MHz
16 MB RAM
No I/O ports

Hier sind die Spezifikationen für einen Arduino Leonardo:

Input Voltage (recommended) 7-12V
Input Voltage (limits)  6-20V
Digital I/O Pins    20
PWM Channels    7
Analog Input Channels   12
DC Current per I/O Pin  40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory    32 KB (ATmega32u4) of which 4 KB used by bootloader
SRAM    2.5 KB (ATmega32u4)
EEPROM  1 KB (ATmega32u4)
Clock Speed 16 MHz
Length  68.6 mm
Width   53.3 mm
Weight  20g

Dies scheint ziemlich typisch für moderne Mikros der unteren Preisklasse zu sein. Ich sehe nie, dass der Widder viel in die Mbs gerät.

Ich bin mir sicher, dass der moderne SRAM nicht annähernd mit dem 68k identisch ist. Kann ich jedoch ein AVR-Mikro erwerben, das der Leistung eines 68k entspricht? Betrachte ich dieses Problem falsch? Muss ich mein Design ändern, um moderne Mikros aufzunehmen?

Ich weiß nicht, ob eine externe Speicherquelle schnell genug ist.

Baordog
quelle
6
Laut Wikipedia lief der Sega Genesis mit 7,6 MHz und hatte nur 72 KB RAM, nicht 16 MB, plus 64 KB zusätzlichen Videospeicher.
Tcrosley
2
Verwenden Sie einen Anwendungsprozessor oder ein FPGA.
Peter
11
Außerdem fehlt Ihnen der Aufwand für das Emulieren vollständig . Für die ordnungsgemäße Emulation eines SNES (das eine ~ 21-MHz-CPU verwendet) ist ein Computer mit mehr als 3 GHz erforderlich (siehe hier ). Um ein Megadrive / Genesis zu emulieren, das eine 7,6-MHz- und 3,58-MHz-CPU verwendet, sollten Sie mindestens ein Host-Gerät mit mehr als 100 MHz benötigen.
Connor Wolf
12
Ehrlich gesagt sollten Sie den Emulator wirklich zuerst schreiben, idealerweise in tragbarem C. Dann schauen Sie sich an, wie Sie ihn auf ARM portieren und dann eine Karte für die ARM-MCU Ihrer Wahl entwerfen, sobald Sie einige Zahlen für die erforderliche Leistung haben. Ehrlich gesagt, ich denke, Sie wissen nicht, wie erstaunlich involviert richtige, treue Emulatoren sind. Das richtige Modellieren und Emulieren selbst einfacher älterer Konsolen ist sehr, sehr schwierig, da keine von ihnen vollständig digital ist und alle viele analoge Macken aufweisen.
Connor Wolf
3
@ConnorWolf Bemerkenswert: Es ist im Wesentlichen unmöglich, eine dynamische Neukompilierung auf AVR zu implementieren, da Sie keinen Code aus dem Datenspeicher ausführen können. (Sie können im Programmspeicher speichern, aber das ist langsam und frisst Flash-Zyklen!)
Dämmerung -inaktiv-

Antworten:

18

Obwohl das Motorola 68000 und das Sega Genesis ziemlich alt sind (Anfang der 1980er Jahre), werden Sie keinen Low-End-AVR (dh 8-Bit) finden, der die gesamte Spielmaschine emulieren kann.

Der Sega Genesis lief mit 7,61 MHz und hatte 72 KB RAM (plus zusätzliche 64 KB Video-RAM). Die Spielprogramme befanden sich jedoch im ROM, sodass Sie zusätzlichen RAM benötigen, um sie zu speichern (es sei denn, Sie planen, die Originalkassetten irgendwie einstecken zu können). Die meisten Spielekassetten waren unter 4 MB groß, aber es gibt mindestens ein Spiel (Pier Solar, veröffentlicht im Jahr 2010) mit einem 8-MB-ROM.

Darüber hinaus muss das System sicherlich ein System-ROM enthalten haben, das als eine Art Exekutive fungierte und auch eine gemeinsame E / A-Bibliothek für die Kassetten bereitgestellt hätte (ich kann keinen Hinweis darauf finden, wie groß diese war). Sie müssen die ROMs (oder ROM-Images) für diese finden und sie auch in Ihren RAM kopieren (oder Ihrem System einen Abschnitt des ROM hinzufügen).

IMO möchten Sie einen 32-Bit-Mikrocontroller verwenden. Wenn Sie die Originalkassetten und ein Programm-ROM verwenden und keine MB RAM benötigen, können Sie fast jeden 32-Bit-Mikrocontroller verwenden, der über genügend Speicherplatz für Ihren Emulator verfügt. Wenn Sie die Kassetten und das System-ROM-Image in den Arbeitsspeicher herunterladen möchten, benötigen Sie einen Mikrocontroller mit einem externen Speicherbus, um 8 MB oder mehr Arbeitsspeicher zu erhalten (8 MB können nicht aktiviert werden) der gleiche Chip wie der Mikrocontroller).

Da Sie bei AVR bleiben möchten, empfehle ich einen Prozessor wie den AT32UC3A3256 , der 256 KB Flash, 128 KB RAM und 84 MHz hat. Das Problem ist, dass es sich um ein 144-poliges Oberflächenmontagegerät handelt, das schwer zu löten sein wird.

Es gibt jedoch ein Evaluierungskit für diesen Prozessor von Element 14 für nur 31,25 USD. Sie müssen sich also keine Gedanken über das Löten machen. Außerdem verfügt die Karte über 8 MB externen RAM, sodass Sie eine Kassette in den RAM laden können.

Geben Sie hier die Bildbeschreibung ein

Nur zur Veranschaulichung , ich denke immer noch, dass Sie den Raspberry Pi in Betracht ziehen sollten , der mit 700 MHz und 512 MB RAM für etwas weniger als die oben genannten Kosten für das Entwicklungsboard läuft. Wenn Sie mit dieser Geschwindigkeit arbeiten, haben Sie keine Probleme damit, den 68000-Code zu emulieren und E / A mit der richtigen Geschwindigkeit auszuführen.

Unabhängig davon, ob Sie sich für den AVR- oder den Raspberry Pi-Weg entscheiden, enthielt der Sega Genesis neben dem 68000 auch einen Zilog Z80 und mehrere Spezialchips, darunter den Yamaha YM2612 und den Texas Instruments SN76489A. Der Z80 wurde verwendet, um den Sound zu steuern und die Abwärtskompatibilität mit dem früheren Sega Master System zu gewährleisten. Der Yamaha-Chip war ein FM-Soundsynthesizer und der TI-Chip war ein programmierbarer Soundgenerator (dieses Gerät hatte viele Soundoptionen). Es gab auch einen Virtual Display Processor (VDP). Sie können den Sound wahrscheinlich überspringen (was bedeutet, dass Sie sich keine Gedanken über den Z80- oder den Yamaha- oder TI-Chip machen müssen), aber Sie müssen die Grafikhardware emulieren.

Ein paar Ressourcen:

EASy68K - Editor / Assembler / Simulator für den 68000. Open Source, damit Sie den 68K-Simulationscode ausgraben können

Cyclone 68000 - Emulator für den 68000-Mikroprozessor, geschrieben in ARM 32-Bit-Assembly. Nur nützlich, wenn Sie sich für den Raspberry Pi entscheiden

Wenn Sie mit dem 68000-Befehlssatz noch nicht vertraut sind, sollten Sie Wochen (oder länger) damit verbringen, Experte zu werden. Ein Großteil Ihres Debuggens wird auf Emulatorebene ausgeführt, um herauszufinden, warum ein Abschnitt mit 68000-Code in der Spielekassette nicht ordnungsgemäß ausgeführt wird. (Dies bedeutet, dass Sie wahrscheinlich eine virtuelle Haltepunktfunktion im Kassettencode einrichten möchten.) Sie benötigen außerdem einen Disassembler, damit Sie sich nicht mit Maschinencode befassen müssen. Hier ist die Quelle für einen .

tcrosley
quelle
1
Ich hatte darüber nachgedacht, aber ich möchte mich auf avr beschränken.
Baordog
1
@baordog Ich habe meine Antwort mit zwei vorgeschlagenen AVR-Chips aktualisiert.
Tcrosley
4
Beachten Sie, dass die beiden von Ihnen erwähnten Prozessoren beide AVR32-Teile sind. Diese unterscheiden sich fast vollständig von den Teilen der AVR-Architektur, mit denen das OP vertraut ist. Darüber hinaus werden beide von Atmel hergestellt.
Abenddämmerung -inaktiv-
2
@duskwuff Er wird mit nichts weniger Leistungsfähigem als diesen auskommen können, und AVR-Prozessoren werden von Atmel hergestellt.
Tcrosley
3
@baordog Meine Antwort erneut geändert - Ich habe ein Entwicklungsboard mit einem 32-Bit-AVR gefunden, das 8 MB externen RAM für 31 US-Dollar enthält.
Tcrosley
12

Das wird nicht passieren.

Der größte Mikrocontroller in der ATmega-Reihe mit Unterstützung für externen Speicher ist der ATmega1284, der jedoch nur über 8 KB internen SRAM verfügt und bis zu 64 KB externen Speicher adressieren kann. Dies wird nicht ausreichen, um die Genesis zu emulieren, die 72 KB RAM und weitere 64 KB Videospeicher hatte. Es könnte möglich sein, den Zugriff auf zusätzlichen Speicher durch Bankumschaltung zu implementieren, dies würde jedoch den Zugriff auf Speicher vom AVR sehr kostspielig machen.

Es gibt einige Teile in der ATmega-Reihe mit mehr internem SRAM, wie den ATmega1284 (16 KB), aber diese unterstützen überhaupt keinen externen Speicher. Kurz gesagt, es ist ziemlich schwierig, über 64 KB RAM von einem ATmega zu adressieren.

(Ich bin nicht sicher, woher Sie die Zahl von 16 MB haben. Der 68000 hat außer Registern überhaupt keinen internen Speicher; die Speichermenge auf einem 68000-System kann dramatisch variieren.)

Zusätzlich läuft die 68000-CPU in der Genesis mit 7,6 MHz. Das Emulieren auf einem 16-MHz-AVR wird nicht möglich sein - während die Taktrate des AVR zugegebenermaßen etwas höher ist, ist der 68000 eine 32-Bit-CPU, sodass das Emulieren eines seiner Befehle häufig viel mehr als einen Befehl erfordert der AVR. (Selbst eine einfache Ergänzung erfordert wahrscheinlich ein paar Dutzend Anweisungen.)

Wenn Sie die Genesis emulieren möchten, empfehlen wir Ihnen, sich stattdessen ARM-Mikrocontroller anzusehen.

Dämmerung -inaktiv-
quelle
Ein paar kleinere Nitpicks: - Der 68000 benötigt mindestens 4 Takte, um etwas zu tun (und die meisten Anweisungen benötigen 8 Takte oder mehr), sodass ein AVR mit 16 MHz ~ 9-mal schneller ist (immer noch nicht schnell genug, um einen 68000 mit 7,16 MHz zu emulieren Echtzeit). Das größte ATmega ist auch das 1284 - es verfügt über 16 KB RAM, 128 KB ROM und läuft mit 20 MHz.
Bruce Abbott
2
@BruceAbbott Wie in meiner Antwort erwähnt, kann der AVR nur mit einem 8-Bit-Register (oder manchmal einem Paar) gleichzeitig arbeiten, was die Befehlsanzahl ziemlich stark in die Luft jagt - ganz zu schweigen vom Laden, Dekodieren usw. des Befehls. Der ATmega1284 hat etwas mehr SRAM, unterstützt aber keinen externen Speicher, daher ist dies hier nicht sinnvoll. Meine Antwort wurde aktualisiert, um dieses Kriterium widerzuspiegeln.
Abenddämmerung -inaktiv-
Wäre ein Parallax-Mikrocontroller in der Lage, eine solche Aufgabe zu übernehmen? Es ist 32-Bit, hat möglicherweise etwas mehr RAM und ist viel schneller! Sie sind auch für die VGA-Ausgabe ziemlich in Ordnung.
Ismael Miguel
@IsmaelMiguel Nein. Immer noch nicht annähernd genug RAM (32 KB, und Code frisst darin), und die seltsame Propeller-Architektur ist nicht gut für die Emulation geeignet.
Abenddämmerung -inaktiv-
@duskwuff Das macht Sinn. Es wäre interessant zu sehen, wie etwas Mächtiges darauf läuft. Was ist mit einem Propeller für Ausgabe und Ausgabe UND einem Arduino für die Verarbeitung?
Ismael Miguel
11

Gibt es einen Mikrocontroller mit 16 MB RAM?

Ja. Das einzige, das mir bekannt ist, gehört zur Renesas SuperH-Familie und enthält kein ROM. Sie müssen also über einen externen Flash-Speicher verfügen, verfügen jedoch über 16 MByte integrierten SRAM.

Ich möchte einen Emulator für den Sega Megadrive (Sega Genesis) schreiben, der auf AVR läuft.

In der Atmel AVR-Familie gibt es keine 16-MByte-SRAM-Mikrocontroller. Oder irgendwo in der Atmel-Produktlinie.

Einige Geräte in der Atmel AVR-Reihe verfügen jedoch über eine externe Busschnittstelle, über die Sie zusätzlichen Speicher anschließen können. Insbesondere kann der ATxmega128A1U bis zu 16 MByte externen SRAM unterstützen.

Daher habe ich nach einem Mikrocontroller gesucht, der ähnliche Eigenschaften wie das mit dem MegaDrive gelieferte Motorola 68k aufweist.

...

Ich bin mir sicher, dass der moderne SRAM nicht annähernd mit dem 68k identisch ist, aber ist es mir möglich, ein AVR-Mikro zu erhalten, das der Leistung eines 68k entspricht. Betrachte ich dieses Problem falsch? Muss ich mein Design ändern, um moderne Mikros aufzunehmen?

Ich weiß nicht, ob eine externe Speicherquelle schnell genug ist.

Ah, hier ist das Problem, das du hast.

Der 68k-Prozessor (dh Motorola 68000) ist KEIN Mikrocontroller und verfügt NICHT über 16 MByte internen SRAM.

Während der Prozessor intern 32 Bit groß ist, kann er aufgrund von Pin-Einschränkungen nur bis zu 16 MByte externen Speicher adressieren, einschließlich Flash, RAM und allen Geräten mit Speicherzuordnung.

Sie benötigen keinen Mikrocontroller mit 16 MByte internem SRAM, um den 68k-Prozessor zu emulieren.

Gibt es einen Atmel AVR 8-Bit-Mikrocontroller, der den Motorolla 68000-Prozessor emulieren kann?

Ich glaube schon. Der ATxmega128A1U verfügt über einen externen Speicherbus, der so groß ist wie der Bus des 68k-Prozessors, und über ausreichend Flash und RAM, sodass eine Mikrocode-Version des 68k-Prozessors ausgeführt werden kann.

Es kann bis zu 32 MHz laufen und viele Anweisungen benötigen einen Zyklus, aber selbst im schlimmsten Fall dauert es 5 Zyklen im internen Speicher. Die externe Schnittstelle ist langsamer, aber wenn Sie sich für einen schnellen Speicher entscheiden, ist dieser immer noch viel schneller als der 68k.

Der 68k-Prozessor läuft nicht nur viermal langsamer, sondern die schnellsten Vorgänge dauern mindestens viermal, und viele dauern zwei- bis viermal länger, insbesondere Speicherzugriffe.

Mit einem selbst langsamen (nach heutigen Maßstäben) SRAM (z. B. einem 70-ns-8-MByte-Teil für weniger als 10 US-Dollar) können Sie 0 Wartezustände auf dem 32-MHz-Prozessor verwenden und Kreise um die 68-KByte mit 7 MHz laufen lassen. Zum Beispiel benötigt ein einfacher Bewegungsbefehl auf dem 68k, der 4 Zyklen bei 7,61 MHz benötigt, 525 nS. Eine ähnliche einfache Bewegungsanweisung auf dem ATxmega128A1U mit 32 MHz dauert 31 ns. Der AVR konnte also 16 Züge ausführen, bis der 68K mit einem fertig war. Der 68k benötigt für einige Interrupt-Typen 50 Zyklen, während der AVR in 3 Zyklen zum Interrupt springt. Der AVR kann also eine Handvoll Interrupts in der Zeit verarbeiten, die der 68k benötigt, um einfach in einen zu springen.

Ich gehe davon aus, dass Sie es mit sorgfältiger Anstrengung zyklusgenau ausführen können, wenn Sie etwas Jitter akzeptieren. Wenn Sie jedoch akribisch sind, können Sie es möglicherweise ohne Jitter perfekt zyklusgenau ausführen. Die AVR-Prozessoren funktionieren einwandfrei mit mäßigem Übertakten, sodass Sie sie wahrscheinlich mit 38,35 MHz betreiben und 5 AVR-Zyklen pro 68-KB-Taktzyklus haben können.

Dies bedeutet nicht, dass es einfach wäre, und es kann einige sehr knifflige Anweisungen geben, die auf dem AVR länger dauern würden als sonst - aber selbst diese können mit sorgfältigem Design berücksichtigt werden.

Kann ich eine Sega Genesis mit einem Atmel 8-Bit-AVR emulieren?

Nein. Der Sega Genesis verfügt im Kern über einen 68k-Prozessor, aber auch über einen Soundprozessor (Z80) und einen Videoprozessor, für deren Emulation Sie erheblich mehr Ressourcen benötigen würden. In der folgenden Abbildung finden Sie den 68k-Prozessor oben links. Beachten Sie, dass dies ein kleiner Teil von allem ist, was zur Emulation eines vollständigen Sega Genesis-Systems erforderlich ist.

Geben Sie hier die Bildbeschreibung ein

Während Sie also problemlos den 68k-Kern des Sega Genesis emulieren könnten, könnten Sie keine Spiele für den Genesis mit nur einem AVR-Mikrocontroller ausführen. Es wäre schwierig genug, die 68k alleine auf einem Chip zu emulieren - selbst wenn Sie die Dinge vereinfachen würden, bezweifle ich, dass Sie alle drei Prozessoren in einen einzigen 32-MHz-AVR-Chip einbauen könnten.

Sie könnten diese beiden Chips jedoch wahrscheinlich mit zwei weiteren AVRs emulieren. Wenn Sie auf ein einfacheres Grafik-LCD abzielen, für das keine seltsamen NTSC-Timings und -Erzeugungen erforderlich sind, können Sie die Dinge möglicherweise ein wenig vereinfachen und möglicherweise sogar beide Funktionen auf einen separaten Chip übertragen.

Dies ist jedoch ein riesiges Projekt, sicherlich kein Wochenendprojekt. Wenn Sie sich in einem Stadium befinden, in dem Sie nur mit Arduino-Entwicklungsplatinen vertraut sind, kann es interessant sein, einen einfachen 68k-Prozessoremulator zu erstellen und ein kleines externes ROM und RAM für Speicherzugriffe anzuschließen. Der Arduino ATMega verfügt nicht über eine externe Speicherschnittstelle, aber Sie können auch E / A-Leitungen drehen und diese emulieren. Wenn Sie im Projekt weit genug kommen, um einfache 68k-Programme zu emulieren, lohnt es sich möglicherweise, Arduino mithilfe der Atmel-Entwicklungsumgebung und eines besseren AVR-Chips mit einer externen Busschnittstelle loszuwerden, und Sie können mit dem Lesen und Ausführen beginnen Patronen. Möglicherweise können Sie sogar Video- und Audiodaten an den Computer weiterleiten und bei der Verarbeitung interpretieren.

Stellen Sie sicher, dass Ihre Emulationsroutinen portabel sind und Sie problemlos auf einen besseren Prozessor umsteigen können, damit Sie nicht hängen bleiben.

Wenn das einfache Arduino Mega-Projekt nie weit kommt, haben Sie nicht viele Ressourcen für dieses Projekt verschwendet. Wenn Sie sich dazu getrieben fühlen, wird es nicht so überwältigend sein, auf einen leistungsfähigeren Atmel-Chip umzusteigen.

Ich sage, probieren Sie es aus. Einige von dem, was ich gesagt habe und andere gesagt haben, scheinen unüberwindbar zu sein, aber lassen Sie sich nicht von uns in die Quere kommen. Stellen Sie jedes Mal Fragen, wenn Sie auf ein Hindernis stoßen, und Sie werden feststellen, dass die meisten Ingenieure eine Herausforderung genießen und Ihnen das Verständnis und die Hilfe geben, die Sie benötigen, um diesen Weg weit zu gehen.

Emulation macht viel Spaß.

Adam Davis
quelle
Denken Sie, es wäre einfacher, die Video- / Soundprozessoren mit fpga zu emulieren?
Baordog
Ich denke, die Herausforderungen beim Schreiben des Emulators werden darin bestehen, 68000 Anweisungen wie ADD.L (A0) +, D3 zu bearbeiten. Jetzt hat der ATxmega128A1U ein ähnliches Adressierungsformat unter Verwendung der X-, Y- oder Z-Register. Diese sind natürlich 16-Bit, aber angeblich hat der Sega nur 72 KB RAM verwendet, so dass dies möglicherweise funktioniert, je nachdem, wofür diese zusätzlichen 8 KB verwendet werden. Ein Problem tritt auf, weil der AVR drei Adressregister und der 68000 acht hat. Plötzlich wird das emulierte Register A0 nicht mehr in X, Y oder Z geladen. Also müssen die Dinge durcheinander gebracht werden. Ein Adressregister muss wahrscheinlich einem SP zugeordnet werden.
Tcrosley
Der FPGA-Ansatz wurde erfolgreich durchgeführt: code.google.com/p/fpgagen
pjc50
@ Baordog Ich weiß es nicht. Der Soundprozessor ist ein Z80-Prozessor. Ich habe mir den Videoprozessor nicht angesehen. Sie sollten weitere Nachforschungen anstellen, um herauszufinden, worum es geht - der Videoprozessor verfügt über einen eigenen Speicher, generiert aber auch komplexe PAL- oder NTSC-Signale. Wenn Sie ein grafisches LCD-Display integrieren, werden Sie möglicherweise feststellen, dass ein Großteil der Komplexität des Videoprozessors wegfällt - aber ich bin mir auch nicht sicher, wie komplex er ist. Ich bin sicher, dass Sie dies in einem FPGA tun können, aber Sie müssen es möglicherweise nicht, wenn Sie Mikrocontroller bevorzugen.
Adam Davis
1
@davidcary hat es auf Digikey gefunden, aber auch nicht auf der Renesas-Website. R8J73540BGZV - digikey.com/product-search/…
Adam Davis
6

Keine der anderen Antworten hat erwähnt, dass Sie nur einen Chip bekommen könnten, auf dem der m86k-Befehlssatz nativ ausgeführt wird: die Coldfire- Serie. Eine Reihe von Anweisungen wurde entfernt. Wenn sie nicht zu häufig verwendet werden, können sie emuliert werden, indem der Interrupt "ungültiger Befehl" abgefangen wird.

Sie müssen jedoch weiterhin den Yamaha YM7101-Videoprozessor und den Yamaha YM2612-Soundprozessor emulieren. Sie können entweder versuchen, Softwareemulationen in einem viel schnelleren DSP zu erstellen, oder eine FPGA-Version davon erstellen. Möglicherweise basierend auf vorhandenen FPGA-Emulationen des Megadrive.

pjc50
quelle
1

Gibt es einen Mikrocontroller mit 16 MB RAM?

Ich bin mir ziemlich sicher, dass es keine Prozessoren mit 16 MB On-Chip-RAM gibt.

Der in einigen Beschreibungen des 68000 erwähnte "16 MB RAM" bezieht sich auf den externen 24-Bit-Adressbus, der theoretisch maximal bis zu 2 ^ 24 Bytes = 16 MB externen RAM adressieren könnte. Meines Wissens nach verbindet die überwiegende Mehrheit der Systeme, die den 68000 verwenden, weit weniger als 16 MB externen RAM.

Insbesondere das Sega Mega Drive (auch bekannt als Sega Genesis) verfügt über 72 KB RAM und 64 kB Video-RAM. Das ist externer RAM. Weder das Motorola 68000 noch das Zilog Z80 verfügen über On-Chip-RAM oder Cache.

Ich schlage vor, Sie erstellen eine zweite, unabhängige Frage mit einem Titel, der beschreibt, was Sie wirklich wissen möchten. Lassen Sie diese Frage jedoch als kanonische Frage zum Mikrocontroller-RAM, um den vielen, vielen Menschen zu helfen, die durch "16 MB RAM" irregeführt werden, was theoretisch bedeutet Maximaler externer DRAM in einigen Prozessoren, während "2,5 KB RAM" den tatsächlichen physischen On-Chip-SRAM bedeutet, der in anderen Prozessoren enthalten ist.

(*) Einige sehr High-End-Prozessoren, die nach 2006 hergestellt wurden, verfügen über 16 MB oder mehr On-Chip-Cache-Speicher. Diese Prozessoren benötigen jedoch noch mehr externen RAM. Wenn Sie also wirklich 16 MB RAM benötigen, werden Sie dies tun benötigen auf die eine oder andere Weise 16 MB externen RAM.

Davidcary
quelle
-3

Sie können einen CORTEX-M4 von der STMF432-Karte verwenden ... sehr leistungsstark mit vielen Megabyte RAM und Peripheriegeräten

Geben Sie hier die Bildbeschreibung ein

TraceKira
quelle
Seit wann sind 256 KB RAM "viele Megabyte RAM"?
Nick Alexeev
Und auf jeden Fall war das OP ziemlich spezifisch, dass sie einen AVR-Mikrocontroller verwenden wollten, nicht ARM.
Abenddämmerung -inaktiv-