Wie ist RAM in der Lage, mit O (1) Geschwindigkeit auf jede Stelle im Speicher zuzugreifen?
Wir haben gelernt, dass die Abstraktion des RAM-Speichers ein langes Array von Bytes ist. Und das für die CPU dauert genauso lange, um auf irgendeinen Teil davon zuzugreifen. Welches Gerät kann gleichzeitig auf alle 4 Gigabyte (auf meinem Computer) zugreifen? Da dies für mich keine triviale Aufgabe zu sein scheint.
Ich habe Kollegen und meine Professoren gefragt, aber niemand kann genau sagen, wie diese Aufgabe mit einfachen Logikgattern erreicht werden kann, und wenn es nicht nur eine knifflige Kombination von Logikgattern ist, was ist das dann?
Meine persönliche Vermutung ist, dass Sie den Zugriff auf jeden Speicher in der Geschwindigkeit O (log (n)) erreichen könnten, wobei n die Größe des Speichers wäre. Da jedes Gate den Speicher in zwei Teile aufteilt und Ihnen Speicherzugriffsanweisungen zum nächsten sendet, wird der Speicher in zwei Teile aufgeteilt. Aber das erfordert VIELE Tore. Ich kann keine anderen Vermutungen anstellen und kenne nicht einmal den Namen des Geräts, das ich in Google nachschlagen soll.
Bitte helfen Sie meiner gequälten Neugier und bedanken Sie sich im Voraus.
edit <Das habe ich gelernt!
Zitat von Ihnen "der RAM kann den Wert von der Zelle adressiertes X an einige Ausgangsstifte senden", hier ist, wo jeder (wieder) die Sache überspringt, die für mich nicht trivial ist. So wie ich es sehe, muss jeder Pin den insgesamt möglichen Speicherbereich in zwei Teile aufteilen, um ein Gate zu erstellen, das aus 64 Pins entscheidet, welches Byte aus 2 ^ 64 zu erhalten. Wenn das Bit am Index 0 0 -> ist, befindet sich die Adresse im Speicher 0-2 ^ 64/2, ansonsten befindet sich die Adresse im Speicher 2 ^ 64 / 2-2 ^ 64. Und so weiter. Die Anzahl der Tore (nennen wir sie), die der Speicherabruf durchläuft, beträgt jedoch 64 (eine Konstante). Die Anzahl der benötigten Gatter beträgt jedoch N, wobei N die Anzahl der vorhandenen Speicherbytes ist.
Nur weil es 64 Pins gibt, heißt das nicht, dass Sie es immer noch in einen einzelnen Abruf aus einem Bereich von 2 ^ 64 dekodieren können. Kommt 4 Gigabyte Speicher mit 4 Gigabyte Gates in der Speichersteuerung ???
Jetzt kann dies verbessert werden, da ich immer mehr darüber lese, wie dieser Speicher aufgebaut ist. Wenn Sie den Speicher in eine Matrix mit sqrt (N) -Zeilen und sqrt (N) -Spalten einfügen, wird die Anzahl der Gates zum Abrufen des Speichers muss durchlaufen werden ist O (log (sqrt (N) * 2) und die Anzahl der erforderlichen Tore wird 2 * sqrt (N) sein, was viel besser ist, und ich denke, dass es wahrscheinlich ein Geschäftsgeheimnis ist.
/ edit <