🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.amiga.tech
Article #2543

Re: DMA in VM

#2543
From: Dave Haynie
Date: Tue, 05 Dec 1989 21:04
48 lines
3006 bytes
in article <14064@grebyn.com>, ckp@grebyn.com (Checkpoint Technologies) says:

> In article <8778@cbmvax.UUCP> daveh@cbmvax.UUCP (Dave Haynie) writes:

>>There's an awful good chance both kinds of controllers would need revised
>>device drivers.  The DMA controllers certainly will.

> 	Surely all the current hard disk controllers can
> be made to support DMA with the right drivers. What I mean is that DMA
> won't be as valuable.

Huh?  DMA is defined by the controller's hardware.  If that hardware
doesn't support DMA, no software in the world is going to make it do
so.  Period.

There are certain situations where DMA may not be as valuable.  With the
current system and certain accelerator boards, 32 bit memory isn't 
accessable by the expansion bus DMA (the CSA boards are an example --
they locate their 32 bit memory outside of the controllers' address
space).  In such a case, a non-DMA controller may very well be more
efficient.  Which is why Commodore-Amiga accelerator boards support
DMA into their 32 bit memory.

> 	As long as you can be sure that a single physical disk sector
> will always be within a physical memory page, then one good translated
> DMA will do fine. More likely, however, is that some of the disk sectors
> would span the gap between physical memory pages. Then, without hardware
> to handle a discontiguous DMA transfer, you'll have to DMA into a
> different contiguous memory area and copy the results.

With virtual memory, you certainly can't guarantee contiguous buffer 
memory.  And with current alignment restrictions, you can't guarantee 
that blocks line up with physical pages in all cases.  Though in reality, 
you probably can, since it's the filesystem that makes most of the 
allocations for you, and it can certainly know about virtual memory 
and page alignments without any applications having to know.  If you're
loading programs across page boundaries, you're always going to be
slowing things down, since that'll increase paging activity considerably.
A slight slowing of DMA at that point will be the least of your worries
(MMU pages are likely to be 4k or 8k in size, vs. the 512 bytes of a 
disk blocks, and it's unlikely that memory will be so fragmented that
you'd often get disk pages unevenly crossing MMU page groups, even with
the current allocation scheme).

-- 
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
Technical Details
Message-ID: <8829@cbmvax.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!clyde!uunet!tut.cis.ohio-state.edu!zaphod.mps.ohio-state.edu!brutus.cs.uiuc.edu!apple!oliveb!amiga!cbmvax!daveh
References: <14064@grebyn.com>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!clyde!uunet!tut.cis.ohio-state.edu!zaphod.mps.ohio-state.edu!brutus.cs.uiuc.edu!apple!oliveb!amiga!cbmvax!daveh
From: daveh@cbmvax.UUCP (Dave Haynie)
Newsgroups: comp.sys.amiga.tech
Subject: Re: DMA in VM
Message-ID: <8829@cbmvax.UUCP>
Date: 5 Dec 89 21:04:15 GMT
References: <14064@grebyn.com>
Organization: Commodore Technology, West Chester, PA
Lines: 48