Irgendwann stellt sich die Frage, was überhaupt als "RAM" gilt. Es gibt viele CPUs und Mikrocontroller mit viel On-Chip-Speicher für kleine Betriebssysteme ohne separate RAM-Chips. Tatsächlich ist dies in der Welt der eingebetteten Systeme relativ häufig. Wenn Sie sich also nur darauf beziehen, dass keine separaten RAM-Chips angeschlossen sind, können Sie dies mit vielen aktuellen Chips tun, insbesondere solchen, die für die Embedded-Welt entwickelt wurden. Ich habe es selbst bei der Arbeit gemacht. Da der einzige wirkliche Unterschied zwischen adressierbarem On-Chip-Speicher und separaten RAM-Chips jedoch nur die Position (und natürlich die Latenz) ist, ist es durchaus sinnvoll, den On-Chip-Speicher als RAM zu betrachten. Wenn Sie das als RAM zählen, dann ist die Anzahl der aktuellen,
Wenn Sie sich auf einen normalen PC beziehen, können Sie ihn nicht ohne angeschlossene separate RAM-Sticks ausführen. Dies liegt jedoch nur daran, dass das BIOS nicht versucht, ohne installierten RAM zu booten (was wiederum darauf zurückzuführen ist, dass alle RAMs installiert sind) Moderne PC-Betriebssysteme benötigen RAM, um ausgeführt zu werden, insbesondere, da auf x86-Computern normalerweise keine direkte Adressierung des On-Chip-Speichers möglich ist, sondern nur als Cache verwendet wird.)
Schließlich gibt es, wie Zeiss sagte, keinen theoretischen Grund, warum Sie einen Computer ohne RAM überhaupt nicht entwerfen können, abgesehen von ein paar Registern. RAM existiert nur, weil es billiger als On-Chip-Speicher und viel schneller als Festplatten ist. Moderne Computer haben eine Hierarchie von Speichern, die von groß, aber langsam bis sehr schnell, aber klein reicht. Die normale Hierarchie sieht ungefähr so aus:
- Register - Sehr schnell (kann von CPU-Befehlen direkt bearbeitet werden, im Allgemeinen ohne zusätzliche Latenz), aber in der Regel sehr klein (64-Bit-x86-Prozessorkerne haben beispielsweise nur 16 Universalregister, in denen jeweils a gespeichert werden kann einzelne 64-Bit-Zahl.) Registergrößen sind im Allgemeinen klein, da Register pro Byte sehr teuer sind.
- CPU-Caches - Immer noch sehr schnell (oft 1-2 Zyklen Latenz) und deutlich größer als Register, aber immer noch viel kleiner (und viel schneller) als normaler DRAM. Der CPU-Cache ist außerdem pro Byte viel teurer als der DRAM, weshalb er normalerweise viel kleiner ist. Viele CPUs haben sogar Hierarchien innerhalb des Caches. Sie haben normalerweise kleinere, schnellere Caches (L1 und L2) zusätzlich zu größeren und langsameren Caches (L3.)
- DRAM (was die meisten Leute als "RAM" bezeichnen) - Viel langsamer als der Cache (die Zugriffslatenz beträgt Dutzende bis Hunderte von Taktzyklen), aber viel billiger pro Byte und daher in der Regel viel größer als der Cache. DRAM ist jedoch immer noch um ein Vielfaches schneller als der Festplattenzugriff (normalerweise um das Hundert- bis Tausendfache schneller).
- Festplatten - Diese sind wiederum viel langsamer als DRAM, aber im Allgemeinen viel billiger pro Byte und daher viel größer. Darüber hinaus sind Datenträger in der Regel nicht flüchtig. Dies bedeutet, dass sie das Speichern von Daten auch nach Beendigung eines Prozesses (sowie nach einem Neustart des Computers) ermöglichen.
Beachten Sie, dass der gesamte Grund für Speicherhierarchien einfach die Wirtschaftlichkeit ist. Es gibt keinen theoretischen Grund (zumindest nicht innerhalb der Informatik), warum wir nicht ein Terabyte nichtflüchtiger Register auf einem CPU-Die haben könnten. Das Problem ist, dass der Bau nur wahnsinnig schwierig und teuer wäre. Hierarchien, die von kleinen Mengen sehr teuren Speichers bis zu großen Mengen billigen Speichers reichen, ermöglichen es uns, schnelle Geschwindigkeiten zu vernünftigen Kosten aufrechtzuerhalten.