home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky comp.unix.bsd:8762 comp.benchmarks:1659 comp.arch:10636 comp.arch.storage:763
- Path: sparky!uunet!cis.ohio-state.edu!zaphod.mps.ohio-state.edu!caen!zeus.ieee.org!rutgers!bagate!cbmvax!jesup
- From: jesup@cbmvax.commodore.com (Randell Jesup)
- Newsgroups: comp.unix.bsd,comp.benchmarks,comp.arch,comp.arch.storage
- Subject: Re: Disk performance issues, was IDE vs SCSI-2 using iozone
- Message-ID: <36994@cbmvax.commodore.com>
- Date: 12 Nov 92 05:24:34 GMT
- References: <1992Nov7.102940.12338@igor.tamri.com> <36794@cbmvax.commodore.com> <1992Nov10.170022.21624@igor.tamri.com>
- Reply-To: jesup@cbmvax.commodore.com (Randell Jesup)
- Organization: Commodore, West Chester, PA
- Lines: 132
-
- jbass@igor.tamri.com (John Bass) writes:
- >From: jesup@cbmvax.commodore.com (Randell Jesup)
- >> You're right about the early SCSI days - for example, scsi got zone
- >>recording earlier, etc. The base technology in IDE/SCSI is now the same, so
- >>it comes down to software and interface issues. I'll agree that for a single-
- >>disk system and small transfers, IDE has a slight margin in speed over SCSI,
- >>due to lower command overhead.
-
- >Given small transfers qualification, "Slight margin in speed" is highly
- >debatable .... The ability to do read scheduling and write placement
- >based upon knowing geometry and current head/spindle position allows for
- >30%-700% better semi-random small file I/O with the right filesystem design.
-
- You're making the assumption that IDE doesn't hide that from you as
- well. It does. Some (many?) current IDE drives use the cylinder/head/sector
- registers as merely a convoluted way to specify a block number, use zone
- recording, etc. I strongly suspect that this will continue, as the benefits
- of zone recording, sector replacement, etc are too large to ignore (a number
- of filesystems (most?) require that the device drivers present them with a
- perfect media, no unusable blocks. This requires remapping of bad blocks in
- the disk controller (SCSI or IDE) or in the device driver itself. Usually the
- controller has a better chance to do a good job at this.)
-
- >> Once per sector? Don't PC's use the ReadMultiple/WriteMultiple
- >>commands? I guess not (which matches what I've heard elsewhere). Our IDE
-
- >> I don't understand your comment about "poor man's disconnect". While
- >>you may be waiting for an interrupt, unless you have multiple IDE busses you
- >>can't use your second IDE drive until the IO on the first is complete.
- >
- >Yes, Yes ... the interrupt for WD1003/IDE interfaces means the 512 byte sector
- >buffer is full, and must be emptied. R/W Multiple are used, but it requires
- >handling a transfer request interrupt for each sector, or busy waiting on
- >data_request in the command status register ... hence poor man's disconnect
- >from the processor bus.
-
- I think you're confused. The CAM-ATA spec (and all the IDE drives I've
- played with) says that when read/write Multiple is used (with SetMultiple),
- you get 1 interrupt per N sectors. From CAM-ATA rev 2.3:
-
- 9.12 Read Multiple Command
-
- The Read Multiple command performs similarly to the Read Sectors command.
- Interrupts are not generated on every sector, but on the transfer of a block
- which contains the number of sectors defined by a Set Multiple command.
-
- > For WD100? cards, there is a single buffer per
- >controller ... on the IDE model there is a buffer per drive ... and each
- >can be active from what I can tell selected by the drive select bit(s).
-
- Nope. The entire command must complete before you select the other
- drive. No disconnect, no multiple simultaneous IO's.
-
- >> Write-buffering (starting to be commonly available as an option on
- >>SCSI drives) can help in avoiding slipping revs.
-
- >While some speed can be gained by this practice, all ability to handle
- >error conditions responsibly is generally lost. I am not a big fan of
- >lookaside bad block handling to a slow microprocessor ... it only
- >SIGIFICANTLY reduces throughput when important data gets spared ... leading
- >to difficult to understand IN-FIELD performance problems. Filesystems
- >should know and deal with media problems ... even though most UNIX's
- >either don't or have the drivers do the fix ups.
-
- There's a big philosophical argument over who should deal with media
- problems. The consensus seems to be that they should be pushed into the
- lowest level possible (fs->driver->host controller->drive controller). Having
- written both filesystems and device drivers, I must agree with that (and yes
- I've had to implement bad-block mapping at the driver level, such as for IDE).
-
- Yes, write-buffering does lose some error recovery chances, especially
- if there's no higher-level knowledge of possible write-buffering so
- filesystems can insert lock-points to retain consistency. However, it can be
- a vast speed improvement. It all depends on your (the user's) needs. Some
- can easily live with it, some can't, some need raid arrays and UPS's.
-
- >>As a multi-disk interface, or generalized IO interface (tape drives, CDROM,etc)
- >>SCSI has a large edge. Also, IDE can only handle 2 devices. Even if IDE
- >>tape drives and CDROMs were available (they're not), you'd rapidly start
- >>needing multiple IDE interfaces.
-
- > Tapes are (or will be) here, and I
- >expect CDROMS (now partly proprietary & SCSI) to be mostly IDE & SCSI
- >in the future. IDE is already extending the WD1003 interface, I expect
- >addtional drive support will follow at some point, although multiple
- >hostadapters is a minor cost issue for many systems.
-
- There are rumbles in that direction. I'm not certain it's worth
- it, or that it can be compatible enough to gain any usage. Existing users
- who need lots of devices have no reason to switch from SCSI to IDE, and
- systems vendors have few reasons to spend money on lots of interfaces
- for devices that don't exist. The reason IDE became popular is that it was
- _cheap_, and no software had to be modified to use it.
-
- >>>Even the fastest 486 PC UNIX systems are filesystem CPU bound to between
- >>>500KB and 2.5MB/sec ... drive subsystems faster than this are largely
- >>>useless (a waste of money)
-
- >> This is a combination of poor interfaces and the OS interface.
- >>AmigaDos tries to do transfers direct to user buffers where possible,
-
- >What I said was enough ... the UNIX interfaces are more general by DESIGN
- >and a simplistic OS can surely take additional short cuts beyond page
- >flipping ... AND SOME UNIX's do, and in some cases more should. Other than
- >pushing your product, I don't see the utility in knocking UNIX and pumping
- >AmigaDos. But thanks for your posting anyway.
-
- Sorry if I went too deep into it; most people don't realize the sorts
- of IO speeds that are possible. I also wouldn't call AmigaDos simplistic
- (I would call MSDOS that, if I called it an OS at all). AmigaDos is more
- complex (though in different ways) than many of the older, "clean" unixes
- like V7 (and larger, too). Certainly it is designed with different targets
- in mind. Blanket statements like "drives faster than X are a waste of money"
- are dangerous to make. Such things often depend on factors you're making all
- sorts of assumptions about, starting with OS/FS and primary use of the drive.
- For example, people doing lots of high-speed from-disk animation _really_
- want high throughput for large transfers.
-
- Other reasonably modern OS's can also get very good IO numbers, such
- as QNX.
-
- >As a side note, I saw a reference a while back to the IDE standard in
- >progress ... How can I get a copy?
-
- Check the SCSI BBS (719) 574-0424.
-
- --
- To be or not to be = 0xff
- -
- Randell Jesup, Jack-of-quite-a-few-trades, Commodore Engineering.
- {uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com BIX: rjesup
- Disclaimer: Nothing I say is anything other than my personal opinion.
-