RAM Adressierung, 8086
lima-city → Forum → Sonstiges → Technik und Elektronik
ansprechen
anzahl
befehl
berechnung
bit
brief
bus
dank
datenblatt
datenbus
datenleitung
datum
frage
http
postfach
prozessor
segment
speichern
url
verarbeitung
-
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 dochoder?
so als nächstes hat 8086 einen Adressbus von 20-Bit?
das heißt das 1MB () 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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
myhead schrieb:
wie kommt man auf die 64kByte? ist dochoder?
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 () 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 -
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 -
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 -
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage