32-Bit CPU mit schmalerem externen Bus?

  • Moin,


    ich versuche momentan rauszufinden, wie eine 32 Bit CPU mit Erweiterungskarten arbeiten kann, die über einen schmaleren Bus angeschlossen sind.


    Nehmen wir an, wir haben einen 486 und eine 16-Bit ISA VGA Karte. Als Programmierer schreibe ich einfach nur in den VGA Speicher und mache mir keine Sorgen über die korrekte Breite des Busses. Wie funktioniert das? Erzeugt der Prozessor zwei Schreibzugriffe? Angenommen ich führe das gleiche Programm dann auf einem Rechner mit VLB VGA Karte aus, erzeugt der Prozessor dann selbstständig einen einzelnen 32-Bit Schreibzugriff?


    Woher weiß die CPU überhaupt, was für ein Bus sich hinter den jeweiligen Speicherbereichen befindet? Ich vermute, es gibt entsprechende Signale auf dem jeweiligen Bus? Aber dann stellt sich die Frage, woher weiß die CPU welcher Bus dahinter steckt?


    Falls jemand eine gute Quelle für solche Informationen hat, wäre ich echt dankbar :thumbup:


    Gruß,
    rnlf

  • Okay, wie das so oft ist, man sucht stundenlang nach der Information und sobald man Leute fragt, die sich auskennen, findet man es dann doch selbst.


    In diesem Fall im Handbuch eines Am486: http://microblog.routed.net/wp…oads/2007/05/ad486dx2.pdf, Seite 13.


    Der Prozessor hat zwei Pins ¬BS8 and ¬BS16, die die Geräte während eines Zugriffs setzen. Danach generiert der Prozessor die entsprechende Anzahl an Speicherzugriffen.

  • So was gab es schon bei dem ISA-Bus, da gibt es auch 8 und 16-Bit Karten. Für diesen Zweck, gab es in der 16Bit-Erweiterung irgend ein Pin.


    Nur Als Programmierer musst man schon gucken, das man 16-Bit Pakete zB. in die Graka schickte, ansonsten hatte man mit der Erweiterung keine Geschwindigkeitsvorteil.

  • Ja, das ergibt Sinn. Wenn man überall byteweise Moves macht, kann der Prozessor die nicht zusammenfassen, einen 16-bit move in zwei 8-bittige aufzuteilen ist dagegen einfach!