Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: SSJ7Gohan am 24. December 2005, 19:46

Titel: DMA
Beitrag von: SSJ7Gohan am 24. December 2005, 19:46
Hm, wie ist das jetzt mit dem DMA? Soweit ich weiß gibt es ja Geräte, bei denen der DMA die Daten nur bis zur 1 MB Grenze kopieren kann. Andere können die Daten bis 16 MB kopieren. Ist das so richtig, oder kann ich mit dem DMA immer auf die ersten 16 MB zugreifen?
Ich überarbeite grad mein Memory Management, und ich wollte dann diese Bereiche für DMA-Buffer reservieren.
Titel: DMA
Beitrag von: Legend am 24. December 2005, 22:09
Nun, ich glaub sowohl als auch. Ganz alte Geräte konnten wir nur ins erste MB laden, später dann 16MB und da drüber mit dem Standard DMA Chip nie.
Titel: DMA
Beitrag von: bluecode am 25. December 2005, 00:28
hi,

ich hab grad im "PC Hardwarebuch - Aufbau, Funktionsweise & Programmierung 6.Auflage" nachgeschaut (Seite 583 letzter Absatz):

"Das DMA Page-Register [...] nimmt die Adressbits jenseits von A15 auf. Für jeden Kanal ist ein eigenes Page-Register vorhanden, das entsprechend dem aktiven DMA-Kanal aktiviert wird. Im PC/XT mit 20Bit-Addressbus ist also nur ein 4Bit Page-Register notwendig, im AT mit voll ausgebautem 16-MB-Speicher aber ein 8Bit Register."

Ich würde sagen, dass man ab dem 286 bzw. 386 ein DMA mit max. adressierbaren 16MByte erwarten kann.
Titel: DMA
Beitrag von: Osbios am 25. December 2005, 10:37
DMA gibts auf für 32 Bit, das heißt dann Busmastering. Aber für einige Geräte z.B. Floppy kann man nicht über 16 MiB hinaus.
Titel: DMA
Beitrag von: joachim_neu am 25. December 2005, 11:14
Hi,

Ich hab mir das Buch (gleiche Auflage) erst aus der Bücherei ausgeliehen. Wünsche ich mir zum Geburtstag, das Buch ist einfach genial. Da steht fast alles drin.

Gruß,

Joachim
Titel: DMA
Beitrag von: bluecode am 25. December 2005, 11:30
in der neuen Auflage (7) haben die nur einige Kapitel rausgelassen, wie zB die Tastatur/Maus. Dafür sind aber auch neue hinzugekommen, zB Pentium 4. Ich hab vorsichtshalber mal 6 & 7 Auflage daheimliegen :P

[edit: Busmastering funktioniert aber imho nur bei PCI Geräten, oder? Bin mir da net sicher]
Titel: DMA
Beitrag von: Legend am 25. December 2005, 13:12
Also ich glaub sicher nicht mit dem DMA Chip den wir z.B. für die Floppy programmieren.
Titel: DMA
Beitrag von: bluecode am 25. December 2005, 15:28
Zitat von: Legend
Also ich glaub sicher nicht mit dem DMA Chip den wir z.B. für die Floppy programmieren.


imho wird PCI Busmastering vom betreffenden Device initiiert ohne irgendeinen Mittler, wie zB dem DMA Chip.
Titel: DMA
Beitrag von: Legend am 25. December 2005, 15:39
Jep.