kostenloser Webspace werbefrei: lima-city


RAM Adressierung, 8086

lima-cityForumSonstigesTechnik und Elektronik

  1. Autor dieses Themas

    myhead

    myhead hat kostenlosen Webspace.

    Hey

    ich habe da ein Frage zur Adressierung beim 8086.

    also:

    "Die 4 Segmentregister bezeichnen 16 Bit lange Adressen von 4 verschiedenen gleichzeitig
    ansprechbaren Datenbereiche, die jeweils 64 kByte umfassen."

    wie kommt man auf die 64kByte? ist doch Formel: 2^16 = 65536 oder?

    so als nächstes hat 8086 einen Adressbus von 20-Bit?
    das heißt das 1MB (Formel: 2^20 = 1 048 576) adressiert werden kann.

    stimmen die Berechnungen so?


    dann noch eine allgemeine Frage wie kann man sich so einen RAM/Adressierung von RAM am besten vorstellen?




    Beitrag zuletzt geändert: 23.4.2010 15:00:35 von myhead
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. myhead schrieb:
    wie kommt man auf die 64kByte? ist doch Formel: 2^16 = 65536 oder?


    1KB = 1024 Byte. Rechen nach: 65536 / 1024 = 64, also alles wudnerbar. Das Kilo in der Digitaltechnik wird meistens als 1024 und nicht als 1000 interpretiert.

    myhead schrieb:
    so als nächstes hat 8086 einen Adressbus von 20-Bit?
    das heißt das 1MB (Formel: 2^20 = 1 048 576) adressiert werden kann.

    stimmen die Berechnungen so?


    Sieht gut aus :)

    myhead schrieb:
    dann noch eine allgemeine Frage wie kann man sich so einen RAM/Adressierung von RAM am besten vorstellen?


    Das kannst du dir vielleicht wie ein Postfach vorstellen. Die Postfächer werden von 0 bis 2^20-1 durchnummeriert. Und jedes Postfach hat eine Größe von (meistens 1 Byte = 8 bit - bitte korrigieren wenn das flasch ist). Wenn man sich vorstellt, dass dieses Postfach in 8 Segmente unterteilt ist, und jedes Segment kann ein oder kein Brief (ein Brief ist ein Bit) enthalten, dann gibt es 2^8 = 256 Kombinationen die Briefe da rein zulegen.

    Vielleiocht eine blöde Interpretation, man kann sich sicher was besseres ausdenken :)

    Gruß Tobi
  4. Autor dieses Themas

    myhead

    myhead hat kostenlosen Webspace.

    Danke schonmal, hat mir sehr geholfen.

    Eine Frage hät ich dann doch noch, Der Steuerbus, Datenbus, Adressbus haben die jeweils einen eigenen Speicher?
    und wie hängen die busse dann mit dem RAM zusammen?

    also ich habe da nur so eine Ahnung wie das ist.

  5. myhead schrieb:
    Eine Frage hät ich dann doch noch, Der Steuerbus, Datenbus, Adressbus haben die jeweils einen eigenen Speicher?


    Also das wäre mir neu. Ein Bus ist wie der Name schon sagt nur ein Bus ()parallele Leitungen) und kein Speicher ;). Vielleicht beziehst du dich auf irgendwelche falsche oder ungenauen Daten (gib am besten mal Quellen an). Les dir am besten mal das Datenblatt von dem Chip durch:

    http://datasheets.chipdb.org/Intel/x86/808x/datashts/8086/231455-006.pdf

    Du kannst dann konkretere Fragen stellen wenn du etwas in dem Datenblatt nicht verstehst. Ich find da jetzt direkt nichts, aber bin auch zu faul das komplett durchzulesen.

    Gruß Tobi
  6. Autor dieses Themas

    myhead

    myhead hat kostenlosen Webspace.

    ttobsen schrieb:
    myhead schrieb:
    Eine Frage hät ich dann doch noch, Der Steuerbus, Datenbus, Adressbus haben die jeweils einen eigenen Speicher?


    Also das wäre mir neu. Ein Bus ist wie der Name schon sagt nur ein Bus ()parallele Leitungen) und kein Speicher ;). Vielleicht beziehst du dich auf irgendwelche falsche oder ungenauen Daten (gib am besten mal Quellen an).


    Sorry, habe mich wirklich blöde ausgedrückt hab jetzt noch mal etwas recherchiert.
    Ich meinte eigentlich nur die Busbreite, also wie viele Bits parallel übertragen werden können und das wird ja durch die Anzahl der jeweiligen Datenleitungen bestimmt, richtig?

    so und meine Frage konkreter ausgedrückt können die Anzahl der Adressleitungen und Datenleitungen unterschiedlich sein?
    Ja, denn 8086 hat 20 Bit Adressleitungen und 8/16 Bit Datenleitungen wenn ich das richtig aus dem Datenblatt entnommen habe.

    Und die Verarbeitungsbreite(Anzahl Bits), ist ja das was ein Prozessor in einem Takt verarbeiten kann.

    SO...eine Frage kam da noch auf;
    [1] "Während die Adressbusbreite Einfluss auf die maximal Speichergröße hat, die ein Prozessor ansprechen kann, hat die Datenbusbreite Einfluss auf die Übertragungsgeschwindigkeit. Dabei spielt auch noch die Taktgeschwindigkeit des Datenbusses eine Rolle."
    Wie erfährt man jetzt die Taktgeschwindigkeit der Busse?

    und wenn ich das jetzt richtig verstehe, dann könnte es z.B.: vorkommen, das die Bustaktrate langsamer ist als die CPU sein.
    Das heißt die CPU kann nicht "voll ausgelastet" werden bzw. ist langsamer als eigl. angegeben da die Daten zur verarbeitung nicht so schnell geliefert werden können, richitg?^^




    [1]http://www.elektronik-kompendium.de/sites/com/0309221.htm
    [2]http://de.wikipedia.org/wiki/Datenbus#Datenbus
  7. So dann versuch ich mal mein Glück. Alle Angaben aber ohne Gewähr auf Richtigkeit. ;)

    myhead schrieb:
    so und meine Frage konkreter ausgedrückt können die Anzahl der Adressleitungen und Datenleitungen unterschiedlich sein?
    Ja, denn 8086 hat 20 Bit Adressleitungen und 8/16 Bit Datenleitungen wenn ich das richtig aus dem Datenblatt entnommen habe.


    Das ist korrekt. Auch kalr mit dem Postfach Beispiel: Adressebus limitiert die Anzahl der Postfächer, Datenbus Größe des Postfaches.

    myhead schrieb:
    SO...eine Frage kam da noch auf;
    [1] "Während die Adressbusbreite Einfluss auf die maximal Speichergröße hat, die ein Prozessor ansprechen kann, hat die Datenbusbreite Einfluss auf die Übertragungsgeschwindigkeit. Dabei spielt auch noch die Taktgeschwindigkeit des Datenbusses eine Rolle."
    Wie erfährt man jetzt die Taktgeschwindigkeit der Busse?


    Die Taktgeschwindigkeit der Busse musst du aus dem Datenblatt des Prozessors entnehmen. Bei deinem Rechner wird dieser Takt vom Mainboard vorgegeben, damit alles Synchron läuft (Front Side Bus).


    myhead schrieb:
    und wenn ich das jetzt richtig verstehe, dann könnte es z.B.: vorkommen, das die Bustaktrate langsamer ist als die CPU sein.
    Das heißt die CPU kann nicht "voll ausgelastet" werden bzw. ist langsamer als eigl. angegeben da die Daten zur verarbeitung nicht so schnell geliefert werden können, richitg?^^


    Theoretisch ja, aber praktisch nicht. Dein Prozessor verarbeitet ja Befehle. Die Befehle werden im Prozessor intern gespeichert (das müsste der L1-Cache sein, bei den modernen Prozessoren). Und dort werden die Befehle ja wieder mit dem Prozessortakt verarbeitet. Wenn du jetzt allerdings ein Programm schreibst, das ncihts weiteres macht, als Daten in den RAM zu schieben, dann hast du recht. Das Schreiben geht maximal mit dem Bustakt. Allerdings kann man dann auch nicht mehr von Rechenverlust reden, weil schließlich nichts gerechnet wird.

    Dein obiger Prozessor hat keinen Cache, er bezieht sein Programm direkt aus dem RAM. Aber das ist kein Problem, weil dieser sich locker mit 10 MHz takten lässt (mehr kann der Prozessor nicht).

    Hier hab ich mal noch ein Link, bin das selbst am Anlesen. Macht einen ganz interessanten Eindruck:

    http://www.bernd-leitenberger.de/cisc-risc.shtml

    Der 8086 hat eine CISC Architektur!

    Ich hoffe das hilft soweit weiter.

    Gruß Tobi

    Edit: Ich seh gerade, dass der Bustakt über Pin 25 geregelt wird. Am besten im Datenblatt dazu mal Abbildung 4a.) anschauen. Das macht die Sache eigentlich eindeutig.

    Beitrag zuletzt geändert: 25.4.2010 10:59:16 von ttobsen
  8. Autor dieses Themas

    myhead

    myhead hat kostenlosen Webspace.

    Hi,

    danke danke.
    ich hab es jetzt endlich soweit verstanden =)


  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!