(. 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
DMA . DMA .
, , . , « /» (. scatter-gather list SGL).
DMA .
1. / (. . « » . bounce buffer).
, Windows IoGetDmaAdapter DEVICE_DESCRIPTION::ScatterGather, FALSE.
- : , , , DMA ( x86).
2. SGL, .
- : .
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 |

