GNU Free Documentation License . .

( «DMA»)
: ,

(. Direct Memory Access, DMA)  (RAM) (). , .

, , , . . «» (burst)   1 . .

IBM PC ( ISA) DMA- ( Intel 8237).

DMA- . , . ( ), (/), (/), , .

DMA, . (, ) . DMA- , ( , DMA). , , . , DMA. . , . , . , .

[] (bus mastering)

MicroChannel, SBus, PCI AGP PCI-X, DMA. , . . . , , - , . .

DMA DMA-, DMA-.

PCI, , Sound Blaster, DMA- 8237 IBM PC. , , PCI, Sound Blaster ISA.

Distributed DMA (D-DMA) , PCI-ISA, PCI- IBM PC DMA 8237. 2 : PCI-ISA, .

Sound Blaster, PCI « DMA-», 8237 .


[] DMA , IOMMU AGP GART

, , Windows UNIX, .

DMA . DMA .

, , . , « /» (. scatter-gather list  SGL).


DMA .

1. / (. . « »  . bounce buffer).

, Windows IoGetDmaAdapter DEVICE_DESCRIPTION::ScatterGather, FALSE.

: , , , DMA ( x86).

2. SGL, .

8- SCSI-, HP ScanJet.

: .

3. SGL , SGL, , , .

: , .

4. SGL , SGL, , , .

SGL DMA , , , «», SGL. « DMA» (. chain DMA),   Intel IDE ( ), UHCI OHCI USB, OHCI 1394, PCI-, Ethernet SCSI ( AIC78xx). OHCI 1394. , « » IBM 360, .

: , , . , UHCI USB ( Intel) 5000 .

5. SGL , .

IOMMU (. IO memory management unit). Sun Microsystems SBus, DEC Alpha PCI. x86/PCI , , . AGP AGP GART , . AGP, , AGP ( « AGP», , agp440.sys Intel). , , Windows, IOMMU (MapTransfer GetScatterGatherList, bounce buffer, IOMMU), IOMMU.

: , .

[] DMA IDE/ATA, Ultra DMA

IBM PC/AT DMA, / REP INSW/REP OUTSW 0x1f0.

90 MFM/RLL , IDE, .

, PCI. PCI 2 , -.

, Intel, IDE DMA. , Intel IDE/ATA/SATA .

IDE/ATA, , DMA , .

2000 DMA IDE/ATA , . Ultra DMA (UDMA).

IDE DMA. , , Linux 2004 , .

Windows IDE DMA Intel Windows NT4, .

Windows 2000 , - BIOS DMA BIOS. BIOS ACPI, DMA , BIOS. : NT4 , DMA BIOS.

Linux IDE DMA hdparm (. ). DMA , ( ata1.00: configured for UDMA/133 hda: UDMA/33 mode selected).

[] Ultra DMA ATA Linux

# hdparm  -i  /dev/sda
MByte/s
Mode 0 16.7 UDMA16
Mode 1 25.0 UDMA25
Mode 2 33.3 UDMA33
Mode 3 44.4 UDMA44
Mode 4 66.7 UDMA66
Mode 5 100.0 UDMA100
Mode 6 133.3 UDMA133