DMA
![]() |
Dieser Artikel ist sehr kurz und nicht besonders ausführlich. Hilf bitte mit, ihn zu verbessern. |
Unter Direct Memory Access (deutsch: direkter Speicherzugriff; kurz: DMA) versteht man den Zugriff einer Systemkomponente auf den RAM-Speicher, ohne den Umweg über die CPU.
Im C64 betrifft dies vor allem den VIC, der in der ersten Hälfte jedes Taktzyklus (Phi low) eigenständig auf den Speicher zugreifen kann, um Grafikdaten auszulesen. In den Badlines sowie bei der Darstellung von Sprites wird zudem der Prozessor des C64 vorübergehend abgeschaltet, um auch in der zweiten Hälfte des Taktzyklus auf den Speicher zugreifen zu können. Gelegentlich werden (fälschlicherweise) nur diese zusätzlichen Zugriffe als DMA-Zugriffe bezeichnet.
Auch Steckmodule am Expansionsport können per DMA auf Komponenten des C64 zugreifen, wovon insbesondere z.B. die REU Gebrauch macht.
Zur Implementierung von DMA gibt es zwei Möglichkeiten:
- Ein Steckmodul kann auf einen Write-Zyklus der CPU warten, dann die DMA-Leitung auf Low ziehen, drei Takte warten (bis die CPU alle eventuellen Write-Zyklen beendet hat) und danach während BA=1 und Phi=1 auf den Adressbus und die R/W-Leitung zugreifen. Die REU benutzt dieses Verfahren.
- Ein Steckmodul kann sich an eine Badline des VIC "anhängen": Dazu kann es drei Takte nach negativer Flanke von BA (1=>0) die DMA-Leitung auf Low ziehen (und dann beliebig lange halten). So kann der Prozessor auch nach dem Ende des VIC-Zugriffs inaktiv gehalten werden und das Modul dann während BA=1 und Phi=1 auf den Adressbus und die R/W-Leitung zugreifen.
Die Sicht des Moduls auf den Speicher ist dabei so wie die der CPU in der jeweiligen per Prozessorport und GAME bzw. EXROM gewählten PLA-Konfiguration. Weitere Details siehe Beschreibung der Signalleitungen im Artikel Expansionsport.
Übrigens: Dieser technische Begriff inspirierte die Namensgebung einer Spieleschmiede namens "DMA Design" im Jahr 1988.
Weblinks[Bearbeiten | Quelltext bearbeiten]
Wikipedia: Direct Memory Access |