www.wikidata.de-de.nina.az
In diesem Artikel oder Abschnitt fehlen noch folgende wichtige Informationen Der Artikel beschrankt sich auf die Intel PC Architektur die hier aufgefuhrten technischen Beschreibungen beziehen sich darauf DMA ist aber auch in anderen Systemen bekannt z B ARM Filzstift Diskussion 11 03 14 Dez 2021 CET Hilf der Wikipedia indem du sie recherchierst und einfugst Unter Direct Memory Access DMA deutsch selten Speicherdirektzugriff versteht man wenn Computer Komponenten selbststandig ohne Beteiligung der CPU Daten ubertragen konnen Diese Technik erlaubt angeschlossenen Peripheriegeraten wie z B Netzwerkkarte oder Soundkarte ohne Umweg uber die CPU direkt mit dem Arbeitsspeicher zu kommunizieren Der Vorteil des DMA ist die schnellere Datenubertragung bei gleichzeitiger Entlastung des Prozessors Anders als der Name vermuten lasst ist die wesentliche Eigenschaft von Direct Memory Access nicht der Speicherzugriff sondern dass der Datentransfer von einem Peripheriegerat und nicht von der CPU selbst initiiert wird Dabei braucht es zu keinen Speicherzugriffen zu kommen es sind auch direkte Kommunikationen zwischen Peripheriegeraten moglich 1 2 Unter Remote Direct Memory Access versteht man den Zugriff auf Hauptspeicher entfernter Rechner uber Netzwerkverbindungen ohne dass das Betriebssystem bei diesen Transfers direkt involviert ist Ublich ist dies bei Hochgeschwindigkeitsnetzverbindungen ab 100 GBit s wie z B 100 Gigabit Ethernet oder InfiniBand Dabei sind heutzutage bei weniger als 2 zusatzlicher CPU Last Speicherzugriffe auf entfernte Rechner mit 10 25 GByte s und mit Latenzen von 500 1000 ns moglich Inhaltsverzeichnis 1 Direkter Speicherzugriff 2 Funktionsweise des DMA Controllers 3 Arbitrierung 4 Adressierungsverfahren 5 DMA und ISA 6 Entwicklungsrichtungen fur DMA Controller 7 Siehe auch 8 Weblinks 9 EinzelnachweiseDirekter Speicherzugriff Bearbeiten nbsp Ein Ausgabe uber Prozessor nbsp Ein Ausgabe uber direkten SpeicherzugriffDie ursprungliche Methode Daten von einer Eingabe Ausgabe Einheit in den Arbeitsspeicher zu transferieren nutzt die CPU fur die Datenubertragung 3 DMA ist eine Feature die es Peripheriegeraten erlaubt unter Umgehung der CPU zu kommunizieren Der Ablauf dabei 4 ist folgender Per DMA Request wird vom Peripheriegerat eine DMA Anforderung an den DMA Baustein gestellt Der DMA Baustein fordert ein HOLD auf dem benotigten Bus an Die CPU bestatigt die Busfreigabe mit einem HOLD Acknowledge HLDA Der DMA Baustein gibt hieraufhin ein DMA Acknowledge an das Peripheriegerat Bei Nicht Busmaster DMA 3rd party DMA wird jetzt vom DMA Baustein ein Lesezugriff auf die Quelle und ein Schreibezugriff auf das Ziel ausgelost Das Peripheriegerat bedient nur den Datenbus der Adressbus wird von DMA Baustein bedient Bei Busmaster DMA 1st party DMA fuhrt das Peripheriegerat den Zugriff selbst aus Das Peripheriegerat bedient den Datenbus Adressbus und einige Control Leitungen Bei Einzelwort DMA wird nur ein einzelnes Wort geschrieben bei Burst DMA konnen mehrere hundert Worte geschrieben werden Nach getaner Arbeit vom Peripheriegerat wird dessen DMA Acknowledge zuruckgesetzt und die CPU bekommt durch Freigabe von HOLD wieder ihren Bus zuruck Die CPU des PC hat nur eine Paar BusRequest BusGrant Leitungen HOLD HLDA die uber einen Intel 8237 angesprochen werden Dieser erlaubt bis zu vier DMA Gerate zu betreuen DREQ0 3 DACK0 3 Der IBM PC XT hat vier 8 bit DMA Kanale 0 3 der IBM PC AT hat vier 8 bit DMA Kanale 0 3 und vier 16 bit DMA Kanale 4 7 Auf dem IBM XT Bus sind die DMA Request Acknowledge Leitungen fur drei 8 bit Kanale 1 3 auf dem IBM AT Bus sind zusatzlich die Leitungen fur die Kanale 0 und 4 7 verfugbar Funktionsweise des DMA Controllers Bearbeiten nbsp Hauptplatine des NeXTcube Computers von 1990 Die beiden grossen integrierten Schaltkreise von Fujitsu etwas unterhalb der Bildmitte sind der DMA Controller und der Controller fur das magneto optische Laufwerk das in dieser Rechnerserie teils als Festplatte diente Auf ganz alten Motherboards kamen separate DMA Bausteine wie zum Beispiel der 8237 oder der 8257 von Intel zum Einsatz Mit dem Aufkommen von Chipsatzen Anfang der 1990er Jahre wurde ehemals diskrete Bauteile des IBM PCs in diesen Chipsatzen integriert Mit dem Aufkommen von Busmaster DMA Ende der 1990er Jahre waren keine DMA Funktionalitat mehr notwendig die Funktionalitat ubernehmen die Peripheriegerate selbst Will die I O Hardware Daten senden oder empfangen trennt der DMA Controller den Prozessor vom Bussystem Der DMA Controller fuhrt dann die Anforderung mit hoher Geschwindigkeit aus Danach wird die Verbindung zwischen Prozessor und Bussystem wiederhergestellt Fur den Speichertransfer benotigt der Prozessor bis zu 40 Takte je Byte Der DMA Controller fuhrt den Zugriff innerhalb von vier Takten aus Der DMA Controller dient zum Datentransport zwischen Arbeitsspeicher und Peripherie Dies fuhrt zu einer Entlastung des Prozessors Neben einem Geschwindigkeitszuwachs bei speicherintensiven Anwendungen ermoglicht die Verwendung von DMA Controllern ausserdem sehr hohe Datenraten z B beim Brennen von DVD Medien Selbst mit aktuellen PC Systemen sind Brenngeschwindigkeiten von 16 ohne DMA Unterstutzung nicht moglich Arbitrierung BearbeitenDer DMA Controller muss die Daten zwangslaufig uber dieselben Daten Adress und Steuerleitungen des jeweiligen Bussystems ubertragen lassen wie sonst die CPU Es muss also dafur gesorgt werden dass CPU und DMA Controller nicht kollidieren Dazu wird im Voraus eine Arbitrierung durchgefuhrt ein Verfahren bei dem der DMA Controller die Kontrolle uber die Busse bei der CPU anfordert letztere dies bei nachster Gelegenheit gewahrt und dann die Busse freigibt Nach Abschluss des DMA Transfers wird die Busanforderung wieder zuruckgenommen und die CPU kann wieder ubernehmen Elektronisch gibt es dazu verschiedene Implementierungen mit verschiedenen Anzahlen von Steuerleitungen Die einfachste Variante verfugt uber eine Bus Request Leitung Anforderung vom DMA Controller zur CPU sowie eine Bus Grant Leitung Gewahrung in umgekehrter Richtung Adressierungsverfahren BearbeitenMan unterscheidet zwei verschiedene Adressierungsverfahren Beim so genannten Explicit Addressing auch Two Cycle Transfer holt der DMA Controller zunachst ein Datenwort oder auch byte ab und speichert dieses in einem internen Register wie eine CPU Danach adressiert er die Zielkomponente und ubertragt ihr die Daten Fur dieses Vorgehen werden also zwei Buszyklen benotigt Beim Implicit Addressing oder Single Bus Transfer entfallt die Zwischenspeicherung in einem Register Der DMA Controller adressiert das zu holende Datenwort und stellt dieses sofort zum Zielbaustein durch Es wird nur ein einziger Buszyklus benotigt Dieses Verfahren ist nicht fur Speicher zu Speicher Ubertragungen geeignet da jeweils nur eine Adresse am Speicher anliegen kann Effizient wird das DMA Verfahren allerdings erst wenn nicht nur ein einzelnes Datenwort zu ubertragen ist sondern grossere zusammenhangende Speicherbereiche z B ganze Datensektoren oder spuren von einer Festplatte Dann lohnt sich auch der gewisse Overhead der dadurch entsteht dass zuallererst der DMA Controller durch Setzen diverser Registerinhalte fur die bevorstehende Aufgabe aufgesetzt werden muss DMA und ISA BearbeitenDie klassische DMA Technik des ISA Busses basiert dabei auf der Signalisierung der Peripherie fur Transferbedarf durch einzelne Datenleitungen die so genannten DMA Kanale Wird nun solch ein Kanal angesteuert so liefern Schaltkreise die der Bus Steuerung zugehorig sind Adressen auf den Bus die je Zyklus inkrementiert oder konstant gehalten sein konnen wahrend der initiierende periphere Schaltkreis entweder die aufgeschalteten Daten entgegennimmt oder aber selbst Daten auf den Bus aufschaltet Da ein DMA die normale Bus Tatigkeit unterbricht ist eine Operation mit der CPU in diesem Zeitraum nicht moglich Da es mehrere DMA Initiatoren gibt muss mit entsprechenden Prioritatsschemata gearbeitet werden Weiterhin muss ein DMA Kanal zunachst initialisiert werden und die Beschaltung des Busses mit Adress und Steuersignalen muss ebenso erst per Software vorgegeben werden Nach erfolgreichem Transfer wird meist ein Interrupt ausgelost der der System Software mitteilt dass der Vorgang abgeschlossen ist Daraufhin werden die DMA Schaltkreise meist so umprogrammiert dass sie auf den nachsten zu bearbeitenden Datenblock verweisen Entwicklungsrichtungen fur DMA Controller BearbeitenAls DMA Controller im weiteren Sinne muss jeder Baustein verstanden werden der einen Speicherzugriff entweder auf den Hauptspeicher selbst oder auf eine Peripheriekomponente durchfuhren kann ohne dabei die CPU in Anspruch zu nehmen Dieses Grundprinzip kann jedoch vielfach variiert werden So gibt es etwa Systeme mit einem zentralen DMA Coprozessor aber auch Systeme in denen jede Komponente uber einen eigenen dezentralen DMA Controller verfugt Das letztere Verfahren unterscheidet sich von der Verwendung eines zentralen Controllers dadurch dass keine DMA Kanale existieren Vielmehr reserviert der anfordernde Schaltkreis den Bus fur sich und adressiert diesen auch selbst Jede Komponente wie Prozessor oder periphere Bauteile konnen dabei der Initiator sein der die Befehlsmacht uber den Hauptspeicher Adressierung Datentransfer und Bussteuersignale ubernimmt Der Busmaster ubertragt nun seinem Ziel dem Target die fur ihn vorgesehenen Daten Zu einem bestimmten Zeitpunkt kann prinzipiell immer nur eine Komponente Busmaster sein So konnen etwa PCI Controller zugleich auch DMA Busmaster sein Siehe auch BearbeitenUltra DMA Programmed Input OutputWeblinks BearbeitenUbertragungsmodi Von PIO bis UltraDMA tecchannel de I O GrundlagenEinzelnachweise Bearbeiten Ubliche Transfer Modi Gerat Speicher Soundkarte Aufnahme Diskette lesen Speicher Gerat Soundkarte Wiedergabe Diskette schreiben Speicher Speicher Datentransfer Refresh bei IBM XT AT 386 Gerat Gerat im PC selten in DSPs und Netzwerkhubs haufig dort werden Block Daten haufig vom Eingang zum Ausgang weitergereicht Z80 DMA Datenblatt siehe Seite 49 Write Register 1 Group und Write Register 2 Group Dabei war es ab Mitte der 1970er Jahre durch Nutzung von Blocktransferbefehle wie z B INIR und OTIT beim Z80 und REP INS und REP OUTS beim 8086 moglich Daten unter Umgehung von CPU Daten Registern zu ubertragen Das stellt den Stand Ende der 1990er Jahre fur PCs dar Abgerufen von https de wikipedia org w index php title Direct Memory Access amp oldid 232059711