Ich bin ein Student der Softwareentwicklung, der seine Hardwarekenntnisse verbessern möchte.
Ich lese gerade Structured Computer Organization von Tanenbaum . In Kapitel 2 sagt der Autor Folgendes:
"[...] In den letzten Jahren haben fast alle Computerhersteller auf eine 8-Bit-Zelle standardisiert [...]".
Ich dachte, das sei richtig, aber bei der Suche über das Internet stellte ich fest, dass es keine Erinnerungen mit 8-Bit pro Zelle gibt!
Meine Frage ist also: Ist es ein Fehler des Autors oder habe ich falsch verstanden, was er zu erklären versuchte? Wenn ja, was ist "normalerweise" die Anzahl der Bits pro Zelle und wie kann ich die Bits pro Zelle meines Gedächtnisses sehen?
Es scheint eine gewisse Verwirrung zwischen der Speicherorganisation (die meistens ganzzahlige Vielfache von 8 Bit breit ist) und Bits pro Speicherzelle zu geben.
Das Speichern von mehr als einem Bit pro Zelle kann durch Speichern einer analogen Spannung erreicht werden, in die differenziert werden kann verschiedene Ebenen für Bits. MLC-Flash kann 2 oder 3 Bits pro Zelle haben, was 4 oder 8 Ebenen erfordert. Mit zunehmender Bitzahl wird es zunehmend schwieriger und damit fehleranfälliger und schlechtere Ausbeuten.
Sie müssen bedeuten, dass eine kleinste adressierbare Einheit 8 Bit ist, was als Byte bezeichnet wird, oder manchmal nennen sie diese kleinste adressierbare Einheit sogar eine Zelle. Durch Gruppieren dieser Zellen erhalten Sie ein Wort.
Ein 64-Bit-Computer hat also 8 Zellen / Wort. Es handelt sich also wahrscheinlich um x8-Systeme
Dieses Zitat scheint das Wort "Zelle" zu verwenden, um einen adressierbaren Speicherort zu bezeichnen, wobei die meisten von uns eine Zelle als etwas betrachten würden, das in der Lage ist, ein Bit zu speichern.
Ich kenne den Jahrgang dieses Buches nicht, aber ältere Speicher-ICs waren so organisiert, dass jeder adressierbare Ort 8 Bit (1 Byte oder Speicherwort) speichern würde.
Es gibt so viele Arten von Erinnerungen, die schwer zu beantworten sind.
Was "standardisiert" (welcher Standard?) war, war das Byte (Oktett) als grundlegende Größe auf einem Computer. Dies bedeutet, dass Computer normalerweise mit 8-Bit-Zahlen umgehen können, selbst wenn es sich um 32-Bit-Zahlen handelt. Ein Byte besteht überall aus 8 Bit, aber das Computer-WORD kann andere Größen haben, Multiplikationen eines Bytes (z. B.: 32-Bit-Wort, das aus vier Bytes besteht usw.). Es kann diese Bytes sogar in unterschiedlichen Reihenfolgen anordnen (MSB zuerst, LSB zuerst usw.).
Aber bei Erinnerungen finden Sie vielleicht viele Arten. Möglicherweise finden Sie ein 8-Bit-EPROM oder ein Einzelbit-RAM (wo Sie 8 RAM-Chips gruppieren müssen, um ein einzelnes Byte usw. zu erhalten). Oder sogar volle 64-Bit-Speicher, die jeweils 64-Bit-Wörter übertragen.
Aber selbst wenn alle Speicher unterschiedliche Wortgrößen haben, können Sie immer noch alle Speicher in 8-Bit-Grenzen aDRESSIEREN.
Zum Beispiel :
Wenn Ihre "Zelle" 32 Bit wäre, würde das Programm so im Speicher gespeichert werden:
100 add r1, r2, r3
101 sub r3, r5, r1
102 br 100
Wenn Ihre "Zelle" 8 Bit hat, wird sie so im Speicher gespeichert:
100 add r1, r2, r3
104 sub r3, r5, r1
108 br 100
In der Vergangenheit funktionierten einige Computer wie im ersten Beispiel mit Speicherzellen von 32 Bit (oder 36 oder 24 usw.), sodass in diesem Fall die „Standardisierung“ darin bestand, eine einzelne Speicher-„Zellengröße“ (8 Bit) zu akzeptieren. und daraus andere Größen arbeiten.
Dies bedeutet nicht, dass ein Computer nicht in Klumpen anderer Vielfacher von 8 Bit (16, 32, 64 usw.) auf den RAM zugreifen kann. Möglicherweise haben Sie Anweisungen wie
MOV EAX, [BP+10000] // hipotetical, i dont know if this addressing mode exists
// wich will transfer 4 bytes in a single cycle into the EAX.
Aber der BP+10000 in der Anweisung sieht den Speicher immer noch als aus 8-Bit-Zellen bestehend an.
Asmyldof