Kann eine CPU (wie Intel i3/i5/i7/Xeon) mit On-Chip-Cache-RAM diesen als einzigen funktionalen RAM verwenden, ohne dass externe Speicherbänke angeschlossen sind?
Oder muss externes RAM vorhanden sein und der Cache kann nicht alleine aufgerufen oder verwendet werden?
Moderne Desktop-/Server-CPUs haben oft mehr internen Cache-RAM als viele Computer aus den 1990er Jahren im gesamten Systemspeicher, also sollte genug Platz vorhanden sein, um einfachen Code auszuführen.
CPUs aus der Zeit, bevor es Cache gab, wie der 6502, konnten nichts tun, da das interne CPU-RAM nur wenige Bytes für Adresszähler und Akkumulatoren umfasste.
Dies ist keine Frage des Ausführens irgendwelcher moderner Betriebssysteme, sondern des Ausführens von einfachem Code, der in ein benutzerdefiniertes ROM programmiert oder mit einer Hex-Eingabetastatur von Hand eingegeben wird.
Sehen Sie sich diesen äußerst detaillierten Bericht über die PC-Startsequenz an: http://www.drdobbs.com/parallel/booting-an-intel-architecture-system-par/232300699?pgno=2
Da zu diesem Zeitpunkt kein DRAM verfügbar ist, arbeitet der Code zunächst in einer stapellosen Umgebung. Die meisten modernen Prozessoren verfügen über einen internen Cache, der als RAM konfiguriert werden kann, um einen Software-Stack bereitzustellen. Entwickler müssen extrem strengen Code schreiben, wenn sie diese Cache-as-RAM-Funktion verwenden, da eine Räumung an diesem Punkt der Startsequenz für das System nicht akzeptabel wäre; es gibt kein Gedächtnis, um die Kohärenz aufrechtzuerhalten. Aus diesem Grund arbeiten Prozessoren an diesem Punkt des Startvorgangs im "No Evict Mode" (NEM), wenn sie auf Cache-as-RAM-Basis arbeiten. Bei NEM führt ein Cache-Line-Miss im Prozessor nicht zu einer Räumung. Das Entwickeln von Code mit einem verfügbaren Software-Stack ist viel einfacher, und der Initialisierungscode führt häufig die minimale Einrichtung durch, um einen Stack sogar vor der DRAM-Initialisierung zu verwenden.
Sie können dies beobachten, indem Sie einen PC ohne RAM betreiben: Es wird eine Reihe von Pieptönen abgespielt. Das Programm, das diese abspielt, wird vom BIOS-Flash-ROM ausgeführt.
Ich habe dieses Verhalten auch bei einigen ARM-Prozessoren gesehen. Es gibt Konfigurationsregister im SoC, die es Ihnen ermöglichen, den Cache früh in der Startsequenz als RAM zu verwenden, um ein Programm auszuführen, das den DRAM findet, auflistet und konfiguriert.
INVD
(beim Verlassen des CAR-Modus den Cache ungültig machen, anstatt nutzlose Daten in den Speicher schreiben zu lassen, möglicherweise über etwas Wertvolles).Im Allgemeinen ist der Cache-Speicher nicht adressierbar. Ein Programm kann Daten nicht absichtlich speichern oder daraus abrufen.
Obwohl dies nicht direkt die in der Frage angegebenen Prozessorfamilien anspricht, würde das folgende Schema auf den früheren x86-Prozessoren funktionieren. Ja, es ist möglich, entweder ohne RAM oder Cache zu arbeiten, obwohl dieser Ansatz einige kreative Programmierkenntnisse erfordert.
In den 1980er Jahren stieß ich auf ein Design für einen Radioempfänger, der die in Großbritannien ausgestrahlten MSF-Zeitsignale decodierte. Dieses Design verwendete einen Z80-Prozessor und hatte nur ein ROM für die Programmspeicherung. Die gesamte Verarbeitung und Datenspeicherung wurde unter Verwendung der internen Register innerhalb des Prozessors durchgeführt. Dies bedeutete offensichtlich, dass es keine Subroutinenaufrufe geben konnte, da Speicher verfügbar war, um den Stapel zu halten.
Damals waren die Kosten für RAM hoch, und da es sich um ein Hobbyprojekt handelte, war es wichtig, die Kosten niedrig zu halten, ganz abgesehen davon, dass es sich um eine interessante akademische Übung handelte. Dies war auch vor den Tagen weit verbreiteter Mikrocontroller (ein 8751 mit EPROM kostete über 100 £ IIRC).
Typischerweise benötigt eine CPU einen externen Takt. Aber damit kann es ja.
PlasmaHH
Benutzer3528438
Markus Müller
Mathematiker
Chris Stratton
Dmitri Grigorjew
David Schwarz
Ich werde nicht existieren Ich werde nicht existieren
JBH
Oldtimer
Oldtimer