*BSD News Article 37583


Return to BSD News archive

Newsgroups: comp.os.386bsd.questions
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.cs.su.oz.au!metro!asstdc.scgt.oz.au!imb
From: imb@asstdc.scgt.oz.au (michael butler)
Subject: Re: IDE vs SCSI -- FreeBSD 1.1.5.1
References: <39f2m5$8aj@usenet.INS.CWRU.Edu> <39ga7q$9o1@anshar.shadow.net>
Sender: news@asstdc.scgt.oz.au (news daemon)
Organization: Assorted C Software, Sydney
Date: Sun, 6 Nov 1994 12:46:22 GMT
X-Newsreader: TIN [version 1.2 PL2]
Message-ID: <CyuJHA.Fy6@asstdc.scgt.oz.au>
Reply-To: imb@scgt.oz.au
Lines: 21

Don Whiteside (dwhite@shadow.net) wrote:

:   My understanding is that IDE does not do DMA transfers. So under a 
: multitasking OS like Unix, every other process will come to a griding 
: halt during disk reads and writes. 

Common misunderstanding there ..

Even with a DMA transfer going on, every other process is also at a grinding
halt since the CPU doesn't have the bus to do anything with :-) However,
programmed I/O requires more CPU cycles (write, decrement, test, loop) and,
therefore, bus cycles, than it will DMA cycles, so the DMA transfer isn't
going to tie up the bus for as long.

There are also many other factors involved, cache construction
(write-through vs. write-back), cache consistency (invalidation of cached
"data" in a DMA target RAM page) and DMA/CPU bus interleaving (such as
happens with multi-block and multi-device transfers) which introduces bus
request/acknowledge latencies and so on .. it's not simple :-(

	michael