Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!usc!apple!oliveb!amiga!cbmvax!daveh From: daveh@cbmvax.UUCP (Dave Haynie) Newsgroups: comp.sys.amiga.tech Subject: Re: DMA in VM Message-ID: <8778@cbmvax.UUCP> Date: 30 Nov 89 23:10:02 GMT References: <14059@grebyn.com> Organization: Commodore Technology, West Chester, PA Lines: 37 in article <14059@grebyn.com>, ckp@grebyn.com (Checkpoint Technologies) says: > In the great DMA vs non-DMA debate, there is one question which > still nags at me. When AmigaDOS sprouts virtual memory, and there is a > possibility that a disk buffer may be scattered in several discontiguous > physical memory pages, which of the available disk controllers will be > able to handle this kind of buffering effectively? The answer, I fear, > is "the non-DMA ones". There's an awful good chance both kinds of controllers would need revised device drivers. The DMA controllers certainly will. > Do any of the DMA controllers have the ability to support > a discontiguous IO buffer? I know the Commodore A2090 can't. Do you know of any way to ask the A2090, or any other controller, to DMA into a discontiguous I/O buffer? Of course not! This only becomes an issue when virtual memory makes this possible, and it's handled by the device driver -- nothing above that cares about the difference. > If the DMA controller hardware can't handle discontiguous IO > buffers, then they must DMA into a contiguous buffer and CPU-copy the > results to the task buffer. Certainly not! What the DMA _driver_ has to do is call the Virtual2Physical() system call, or whatever they use for this kind of support, and get back the physical page(s) that correspond to that one virtual block. Then the _driver_ sets up the controller to DMA directly into each physical block. Obviously if there are several small blocks, this will take a little longer than one big block, but it's no tragedy; it'll still be fast. -- Dave Haynie Commodore-Amiga (Systems Engineering) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy Too much of everything is just enough