Hier gleich ein weiterer "Beitrag" hinterher. Da ich mit den ganz frühen Rechnern leider nichts am Hut habe/hatte sind mir einige Verständnisfragen offengeblieben. Falls es jemand beantworten möchte/kann, dann bitte ich um eine ausführliche Erläuterung ... lasst euch damit ruhig Zeit, aber ich will die Tatsachen auf jeden Fall bis ins kleineste Detail verstehen. Und Litaratur darüber gibts so gut wie keine. In einem Buch habe ich folgende Zitate gelesen: Zitat 1: ======== " From a hardware designers perspective, the 8088 is purely an eight bit processor it has only eight data lines and is bus compatible with memory and I/O devices designed for eight bit processors. " => daraus folgt also, dass ein RAM, I/O-geräte auf den Datenbus der CPU (hier: 8088) zugeschnitten sein müssen. Aus obigem Zitat stellt sich für mich die Frage nach der Richtigkeit: Dort steht die CPU sei Buskompatibel mit RAM und I/O, welche für 8-Biter entwickelt wurden. Müßte es nicht umgekehrt heißen, dass RAM+I/O buskompatibel mit der jeweiligen CPU sind? Frage: Wie sieht es denn aus, wenn man die Hardware mixt? Konnte man damals überhaupt die Hardware mixen? Schaut man sich die 8-,16-,32-Bit CPUs an, so muß man feststellen, dass man zumindest bei letzteren beiden 286er (16 Bit) und 386er (32-Bit) dieselben Geräte anschließen konnte. Oder war dem nicht so? Ich kann doch eine 16 Bit Karte auf einem 32 Bit System betreiben. Kann man auch eine 32 Karte auf einem 16 Bit System laufen lassen? Falls ja, dann würde sie doch nicht ganz ausgereizt werden, oder? Seh ich das alle richtig? Vor allem stelle ich mir das beim 8088 und 8086er bzw. zw. 8088/86 und 286er/386er schwierig vor. Also, wonach wurde denn das Design bzw. die Ausrichtung einer Hardwarekomponente (Erweiterungskarte oder Gerät) definiert, bzw. woran erkenne ich denn, ob es ich um eine 8,16 oder 32 Bit Karte/Gerät handelt, die ich mit kaufe bzw. damals gekauft habe? Wenn man eine Lan-Karte kauft, dann kann man sie gleichfalls in einem Pentium und einem 486er betreiben. Man achtet beim Kauf nicht auf den Datenbus, auf den die Karte zugeschnitten ist, sondern auf die Bus Buskompatibilität (ISA, PCI etc). ---------------------------------------------------------------------- Zitat 2: ======== " Since the 80x86 family busses are eight, 16, 32, or 64 bits wide, most data accesses are also eight, 16, 32, or 64 bits. Although it is possible to process 12 bit data with an 8088, most programmers process 16 bits since the processor will fetch and manipulate 16 bits anyway. This is because the processor always fetches eight bits. To fetch 12 bits requires two eight bit memory operations. Since the processor fetches 16 bits rather than 12, most programmers use all 16 bits. In general,manipulating data which is eight, 16, 32, or 64 bits in length is the most efficient. " Dinge, die mich an diesem Zitat stören: --------------------------------------- 1) << it is possible to process 12 bit data with an 8088 >> Ein 8088er kann immer nur 8 Bit auf einmal holen, dh also auch Vielfache von 8. Wie soll ich mir das mit den 12 Bit vorstellen. Gilt das nur für den 8088? Oder auch für den 8086er und später? Ist für die 12 Bit ein spezieller Adress-Modus vorhanden etc? Mal angenommen, der 8088er holt sich einfach 12Bit am Stück (also mit 2x 8 Bit-Zugriffen) und nicht 16, dann würde sich doch der Text (speziel der erste Satz und der auf diese Stelle folgende) sich selbt wiedersprechen!? Was ist nun richtig? 2)<< Since the processor fetches 16 bits rather than 12, most programmers use all 16 bits >> Gemeint ist doch an diese Stelle doch, dass es 2x 8-Bit-Zugriffe sind oder? Wenn es so gemeint sein sollte und angenommen, ich will nur die ersten 12 Bit manipulieren, dann ignoriere ich die übrigen 4 einfach oder nicht? Das ist doch ein ganz normales vorgehen. Somit hätte sich der Autor die Sache mit den 12 Bit sparen können, weil es doch gar nicht geht. Anderenfalls widerspricht er sich doch selbst ??? Bin schon gespannt auf die Aufklärung ;-)
Zitat1:
> Müßte es nicht umgekehrt heißen, dass RAM+I/O buskompatibel mit der
jeweiligen CPU sind?
-> Du hast Recht - ich vermute, daß sich der Autor da nicht so viele
Gedanken gemacht hat.
Du verwechselt Prozessor(Adress-/Daten-)bus mit 'Peripherie'-Bus (wie
z.B. ISA, PCI usw.). -> Da kann man anbinden was man will, da das nix
mit dem AD-Bus des Prozessors zu tun hat.
Zitat2:
12 Bit werden mit 2x 8Bitzugriffen geholt und dann die oberen 4 Bit
ignoriert - genau wie du vermutest. Ja, der Autor hätte sich diese
Ausführlichkeit sparen können. Aber bedenke, damals waren
Speicherbausteine, die alle 16Bits nutzen (also 64k) noch sehr
teuer...
----, (QuadDash).
Hallo reiko wie kommt es, daß Du dich mit Museums-Stücken beschäftigst ? Ergänzend zu Quaddash:Die Literatur ist wohl zu einer Zeit erstanden, in der die Prozessoren noch in einer starken Entwicklungsphase waren. Nach den 8-Bitter 8085 wurde der 16 Bitter 8086 entwickelt, der für Steuerungsanwendungen auch als 8-Bitter (8088) angeboten wurde. Die Weiterentwicklung 80188 wurde stark in Siemens SPS Anlagen verbaut. Zum Zitat 2: hier ist vom 8086 die Rede, nicht vom 8088. Ein 8088 kann keine 12 Bit daten lesen. Wenn eine Karte oder ein bauteil an den Bus eines Prozessors angeschlossen wird, kann der datenbus der karte nur maximal soviel Datenleitungen haben wie der prozessor. Umgekehrt ist es nicht so dramatisch, wenn es weniger sind: Aber der prozessor bei der 12-Bit Karte hat dann 16Bit. Gerhard
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.