public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Antonio Vargas <wind@cocodriloo.com>
To: Gianni Tedesco <gianni@scaramanga.co.uk>
Cc: "Cho, joon-woo" <jwc@core.kaist.ac.kr>, linux-kernel@vger.kernel.org
Subject: Re: [Q] Question about memory access
Date: Mon, 4 Aug 2003 18:18:46 +0200	[thread overview]
Message-ID: <20030804161846.GA814@wind.cocodriloo.com> (raw)
In-Reply-To: <1059989725.392.2.camel@sherbert>

On Mon, Aug 04, 2003 at 10:35:25AM +0100, Gianni Tedesco wrote:
> On Mon, 2003-08-04 at 08:14, Cho, joon-woo wrote:
> > If someone want to transfer large data from some device to memory, he may
> > use DMA method.
> > 
> > At this point, i am confused.
> > 
> > I think that only one process can access physical memory(RAM) at a time.
> 
> The DMA controller is a dedicated piece of hardware that copies the data
> from devices to RAM. This means that other processes can use the CPU
> while the DMA is in progress. That is the whole point of DMA.

Yes, this is called having 2 bus masters, which are the chips that
can use the bus to read and write to memory. What can be done is to
timeshare the bus, for example the cpu accesses memory on odd cycles
and the dma chip does on even cycles.

A more complex design would allow the cpu to access memory on all
cycles, but give the dma chip more priority. This would mean that
a dma transfer would take priority over the cpu. Think about
a sound card reading the sound data to pump it to the speakers,
you would prefer not to have it skip.

Greets, Antonio.

-- 

1. Dado un programa, siempre tiene al menos un fallo.
2. Dadas varias lineas de codigo, siempre se pueden acortar a menos lineas.
3. Por induccion, todos los programas se pueden
   reducir a una linea que no funciona.

  reply	other threads:[~2003-08-04 14:15 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-08-04  7:14 [Q] Question about memory access Cho, joon-woo
2003-08-04  9:35 ` Gianni Tedesco
2003-08-04 16:18   ` Antonio Vargas [this message]
2003-08-05  0:13     ` jw schultz
2003-08-05 16:23       ` Antonio Vargas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030804161846.GA814@wind.cocodriloo.com \
    --to=wind@cocodriloo.com \
    --cc=gianni@scaramanga.co.uk \
    --cc=jwc@core.kaist.ac.kr \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox