• Aus wikipedia

    Zitat

    Zudem erlaubte der eingesetzte Prozessor Intel 8088 nur einen maximalen Adressraum von 1024 KiB; die oberen 384 KiB wurden für ROM und Memory Mapped I/O reserviert, so dass 640 KiB Adressraum für den RAM-Arbeitsspeicher übrig blieben.

  • 640 kB ought to be enough.


    Dieser Satz wird Bill Gates zugeschrieben. Hat aber nix mit MS zu tun, das Hardware-Design des PCs war ja von IBM. Der IBM PC sollte ja einfach aufgebaut sein, daher Memory Mapped IO. Für die damaligen Möglichkeiten war das Ok, irgendwie mussten ja die Option-ROMs und IO-Ports, Video-RAM usw. onboard oder auf Steckkarten adressiert werden. Das spielt aber alles bei heutigen PCs keine Rolle mehr, die Kompatiblität dazu ist aber immer noch vorhanden!


    Übrigens, auch ST und Amiga und viele weitere Computersysteme der damaligen Zeit machen das im Prinzip nicht anders, nur dass man da den IO-Adressraum viel weiter oben ansetzen konnte.

    1ST1

  • http://www.ntrautanen.fi/compu…are/misc/amiga_memory.htm


    Na, wohl eher sowas, wie hier (link) bei DFF000 bzw. E80000. Das ChipRAM wird anscheinend direkt "unten" eingeblendet.
    Der Unterschied ist dann eher, daß das Bild beim XT statischer ist und da wohl nichts irgendwohin umgemappt wird.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Das Chipram ist eine andere Sache, liegt natürlich auch linear im Adressraum des Prozessors. Das Chipram ist genau das gleiche wie bei späteren PCs mit UMA (Unified Memory Architecture) bzw. Shared Memory Grafikkarten realisiert wurde: Hauptspeicher und Videospeicher ist das selbe, das heitßt, CPU und Videocontroller können darauf dirket zugreifen, da aber der Videocontroller eine feste Bandbreite haben muss um Pixel auf dem Videoausgang rauszuhämmern wird die CPU bei Zugriffen auf den Chipram ausgebremst. Die CPU kann nur ungebremst auf den FAST-RAM zugreifen, dort kann aber der Videocontroller nicht zugreifen. Beim Amiga macht sich das mit dem Chipram ziemlich bemerkbar, bei späteren Onboard- UMA-Grafikchipsätzen von ALi, VIA, SiS und später auch ATI/AMD und Intel usw. merkt man das kaum noch weil der Systemtakt viel höher ist. Übrigens hat ATARI das beim ST besser gelöst als beim AMIGA, dort gibts diese Trennung nicht, hier gibts abwechselnd zwischen CPU und Shifter einen verzahnten Zugriff ohne dass die sich gegenseitig ausbremsen, der Speicher wird sozusagen mit 16 Mhz betrieben und der Videospeicher kann beliebig im 4 MB Adressraum des MMU-Chips liegen. Das hat aber eigentlich nichts mit "Memory Mapped IO" zu tun, denn bei IO gehts ja um irgendwelche Schnittstellen, die ohne Bankswitching im Adressbereich der CPU erreichbar sind.

    1ST1

  • http://www.ntrautanen.fi/compu…are/misc/amiga_memory.htm


    Na, wohl eher sowas, wie hier (link) bei DFF000 bzw. E80000. Das ChipRAM wird anscheinend direkt "unten" eingeblendet.
    Der Unterschied ist dann eher, daß das Bild beim XT statischer ist und da wohl nichts irgendwohin umgemappt wird.


    Da sieht man, dass z.B. die beiden 8250 CIAs und der RTC (und vieles weitere) alles Memory Mapped IO sind.


    Bei Prozessoren wie 8080, 8085, Z80 gibt es spezielle IN und OUT IO-Befehele, die neben der Adresse auch noch einen IO-Pin schalten, mit dem quasi ein Bankswitching statt findet, um Portbausteine anzusteuern. Das wäre das gegenteil von Memory Mapped IO. Beim C64 steuert die PLA das Bankswitching zwischen RAM, ROM und IO.

    1ST1