Segmentierung im Real-Modus



  • Naja.. Ich meine, 20 Adressleitungen entsprechen ja einem 20Bit-Adressbus. Wenn man die maximal ansprechbaren Adressen berechnet (also 2²⁰), müsste ja rein rechnerisch 1048576 Bit rauskommen und nicht 1048576 Byte.



  • 20 Adressleitungen entsprechen 2,5 Byte. Dann müssten rein rechnerisch 5,66 Bytes adressierbar sein.

    Irgendetwas stimmt an deiner Logik nicht.



  • Ein Speicher besteht ja aus einer Matrix. Eine Adresse ist so aufgebaut, dass sie angibt, auf welcher Zeile und auf welcher Spalte der Matrix sich die Speicherstelle befindet. So wie ich es verstanden habe, ist eine Speicherstelle/Speicherzelle aber ein Bit groß und nicht ein Byte, oder? Aber eine Speicherzeile ist ein Byte lang.

    https://link.springer.com/chapter/10.1007%2F978-3-8348-9084-9_4



  • Dann lötet man 8 Stück auf ein Platinchen und liest sie parallel aus - und schwups hat man ein Byte.


  • Mod

    Intern auf niedrigster Ebene führt irgendwann von jedem gespeicherten Bit irgendwo ein Stromkabel nach draußen, ja. Gerne auch mit der besagten Matrixbauweise, damit man nicht unfassbar viele Leitungen legen muss. Davon ist der Adressbus aber noch ganz weit weg. Der sagt ja nur dem Speicherkontroller, welche Speicherzelle er haben will. Und was unter einer Speicherzelle zu verstehen ist, kommt halt auf die Bauweise des Speichers an. Da kann man wie gesagt so ziemlich alles wählen. Eine 8-Bit Speicherzelle hat sich als ein recht brauchbarer Kompromiss erwiesen (zumindest in den 1970er Jahren) zwischen der Feinauflösbarkeit von Speicherzellen; der Anzahl nötiger Hin- und Rückleitungen; dem Datendurchsatz; und dem damit maximal adressierbaren Speicher ("640K ought to be enough for anybody").



  • @seppj Achso. Also heißt es, dass man nicht eindeutig sagen kann, ob eine einzelne Zelle in der Matrix nun 1 Bit oder 8 Bit lang ist, weil es in den Bauweisen variiert?

    Und der in meinem Link abgebildete Speicher scheint ja 1Bit-Speicherzellen zu haben.


  • Mod

    @oser sagte in Segmentierung im Real-Modus:

    @seppj Achso. Also heißt es, dass man nicht eindeutig sagen kann, ob eine einzelne Zelle in der Matrix nun 1 Bit oder 8 Bit lang ist, weil es in den Bauweisen variiert?

    Ja, das kann man so sagen, aber ich habe nicht den Eindruck, dass du es richtig verstanden hast. Denk besser noch weiter darüber nach. Es ist wirklich, wirklich offensichtlich, aber ich weiß nicht, wie ich es noch einfacher erklären soll. Ich bin nicht so gut in ELI5.



  • @seppj Und warum hast du den Eindruck?


  • Mod

    @oser sagte in Segmentierung im Real-Modus:

    @seppj Und warum hast du den Eindruck?

    Auch wenn die Antwort auf deine Frage technisch gesehen 'Ja' war, so macht die Frage dennoch keinen Sinn für jemanden, der das Thema verstanden hat.



  • @oser

    Nun der Datenbus ist beim 8086 8.Bit breit. Die Adressdekodierung hat daher auch immer 8 Bit aus dem Speicher gelesen und weil, wie Sepp schon schrieb, diese Anzahl an Bits für viele Probleme sinnvoll ist, adressiert eine Adresse am Adressbus immer genau 8 Bits, die immer eine eindeutige Adresse haben. Bei den nachfolgenden Generation von CPUs wurde dieses Schema beibehalten, auch dann, wenn der Datenbus breiter (16. 32 oder 64 bit) wurde.

    VG


Log in to reply