Speicher wird für viele Dinge verwendet, wie ich verstehe. Es dient als Festplatten-Cache und enthält die Anweisungen der Programme sowie deren Stack & Heap. Hier ist ein Gedankenexperiment. Wenn man sich nicht um die Geschwindigkeit oder Zeit kümmert, die ein Computer für das Knirschen benötigt, wie viel Speicher kann man mindestens haben, vorausgesetzt man hat eine sehr große Festplatte? Ist es möglich, auf Speicher zu verzichten und nur eine Festplatte zu haben?
Disk-Caching ist offensichtlich nicht erforderlich. Wenn wir Swap Space auf der Festplatte einrichten, benötigen Program Stack und Heap auch keinen Speicher. Gibt es etwas, für das Speicher erforderlich ist?
Antworten:
Sicher. Grundsätzlich könnte man bei entsprechender Hardware nur eine Festplatte haben, auf der alles gespeichert ist. Jedes Mal, wenn die CPU eine Lade- oder Speicheranweisung ausführt, kann es Hardware geben, die dies in eine Lese- oder Schreibanweisung für die Festplatte umwandelt. Es wäre extrem langsam: Auf einer Magnetplatte dauert jeder Suchlauf ungefähr 10 ms, sodass Sie ungefähr 100 Lese- und Schreibvorgänge mit wahlfreiem Zugriff pro Sekunde ausführen können.
Bei einigen Systemen ist ein Flash-Speicher in den Adressraum integriert. Der Flash-Speicher bietet nichtflüchtigen (dauerhaften) Speicher. In gewisser Hinsicht ähnelt dies dem, was Sie erwähnen - obwohl diese Systeme normalerweise auch über RAM verfügen.
quelle
In Bezug auf die Rechenfähigkeit ist bekannt, dass jeder moderne Computer von einer Turing-Maschine simuliert werden kann, deren einziger Speicher eine einzelne, lineare Bandzelle ist, die beschrieben werden kann. Vorausgesetzt, Sie können weiterhin unbegrenzt Speicherplatz hinzufügen, ist ein Computer mit nur Festplatten genauso leistungsfähig. Sie könnten also sicherlich einen Computer ohne Speicher bauen.
Natürlich gibt es keine Festplatten mit "unbegrenztem Speicherplatz", aber es gibt auch keinen unbegrenzten RAM.
Es gibt eine Reihe praktischer Probleme. Sie benötigen beispielsweise Konventionen zum Zuordnen verschiedener Bereiche und Adressen auf der Festplatte, einem Betriebssystem, das für die Zwischenspeicherung und die Verwaltung von Festplattenadressen auf die Festplatte geschrieben wurde. In Wirklichkeit würden Sie den Arbeitsspeicher auf Ihrer Festplatte genau simulieren.
quelle
Die Frage ist nicht rein akademisch. Es ist eine historische Aufzeichnung, dass einer der frühesten kommerziell hergestellten Computer (ich kann mich leider nicht erinnern, welcher) keinen RAM hatte - alle Programme wurden ausgeführt, indem Anweisungen direkt von einer Magnettrommel (einem rotierenden Zylinder) abgerufen wurden mit magnetisierbarer Außenfläche (Scheiben kamen später)]. Es war vergleichsweise langsam, aber viel billiger als die meisten Konkurrenten. [Dies war vor langer Zeit in der "Tube" Tage]
Interessanterweise gab es ein inzwischen veraltetes Tool, das als "Optimizing Assembler" bezeichnet wird. Der Assembler hat also nicht nur Maschinenbefehle generiert, sondern diese auch nicht fortlaufend auf die Trommel geschrieben, um für jeden Befehl den Zeitaufwand zu minimieren Warten Sie, bis sich die Trommel zur nächsten dreht.
quelle
Nein. Festplattenlaufwerke können nicht wie der Arbeitsspeicher in zufälliger Reihenfolge adressiert werden. Stattdessen blockieren sie Speichergeräte. Sie können kein Byte von ihnen lesen oder schreiben. Und Ihre CPU kann nicht einen ganzen Sektor auf einmal lesen, sie benötigen diesen wahlfreien Zugriff. Betriebssysteme verbergen diese Detailebene vor Ihnen, dies geschieht jedoch, indem ein ganzer Sektor in den Arbeitsspeicher eingelesen, geändert und zurückgeschrieben wird.
Aus diesem Grund benötigen Sie einen Block mit Direktzugriffsspeicher. Das könnte jedoch der CPU-Cache sein, der aus SRAM (einem schnellen RAM-Typ) besteht.
Es sind nicht nur Scheiben. Flash-Speicher sind von Natur aus aus Blöcken aufgebaut, was für den niedrigen Preis entscheidend ist. Es hat sogar Blöcke, die viel größer sind als normale Festplattensektoren, aber es verwendet intern RAM, um dies vor dem Betriebssystem zu verbergen.
Sie können persistenten Speicher erstellen, der direkt von einer CPU verwendet werden kann. EEPROM-Speicher fallen in diese Kategorie (elektronisch löschbarer programmierbarer "Nur-Lese" -Speicher - obwohl "Lese-optimiert" eine sachlich bessere Beschreibung wäre).
quelle
Wenn Sie virtuellen Speicher verwenden und Seitenfehler behandeln müssen, müssen mindestens die Ausnahmebehandlungsroutine, die den Seitenfehler behandelt, der Festplattentreiber, der die Daten von der Festplatte liest und zuerst fehlerhafte Seiten auf die Festplatte schreibt, und die Seitentabellen vorhanden sein die ganze Zeit im RAM zu sein. Denn wenn sie nicht im RAM sind, können Sie sie nicht zurück in den RAM tauschen. Außerdem benötigen Sie Platz für mindestens eine Seite RAM.
Wenn Sie eine CPU wie einen massiven 12-Core-Xeon mit 30 MB Cache-Speicher hätten, könnte es möglich sein, ein System ohne RAM oder Festplatte zu haben, das nur den Cache-Speicher verwendet. (Nicht sicher, ob das tatsächlich funktioniert oder ob aus irgendeinem Grund RAM erforderlich ist).
quelle
Es ist konzeptionell möglich. RAM ist nur eine Caching-Ebene. In einem modernen Computer gibt es viele Caching-Ebenen (siehe die Caches L1, L2, L3 .. der CPU, natürlich Ram, der Swap-Bereich, der ein logischer Abschnitt der als RAM verwendeten Festplatte ist ...) Oder fügen Sie eine hinzu, die Maschine wird funktionieren. Beispielsweise verwendet eine Ubuntu Live-CD möglicherweise nicht die Caching-Stufe der Festplatte. Ich glaube jedoch nicht, dass es ein Betriebssystem gibt, das das Fehlen eines RAM-Levels unterstützt.
quelle
Technisch gesehen ist RAM ein primärer flüchtiger Speicher, der zur Verbesserung der Verarbeitungsgeschwindigkeit verwendet wird. Sobald die Stromversorgung unterbrochen ist, gehen die Daten im Primärspeicher verloren. Wenn wir eine Festplatte verwenden, dh, wie Sie sagen, nur Festplatte und nicht RAM, könnten wir unseren Computer weiterhin ausführen, aber es würde mehr Lese- und Schreibaufwand entstehen, wodurch das System erheblich verlangsamt wird. Daher verwenden wir RAM.
quelle