Date: Thu, 25 Sep 2003 19:43:16 +1000 From: Peter Jeremy <peterjeremy@optushome.com.au> To: Scott Mitchell <scott+freebsd@fishballoon.org> Cc: freebsd-hackers@freebsd.org Subject: Re: SimpleTech USB HDD driver Message-ID: <20030925094316.GA31074@server.c211-28-27-130.belrs2.nsw.optusnet.com.au> In-Reply-To: <20030924223859.GA8202@llama.fishballoon.org> References: <410-220039122131250707@M2W063.mail2web.com> <20030922132556.GC66910@llama.fishballoon.org> <3F6F0BB0.9020506@sitetronics.com> <20030922205234.GB75844@llama.fishballoon.org> <3F6FE92B.5040906@sitetronics.com> <20030924223859.GA8202@llama.fishballoon.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Sep 24, 2003 at 11:38:59PM +0100, Scott Mitchell wrote: >No idea why both 6 byte and 10 byte commands exist. No doubt someone out >there knows the historical background to it all. If my memory serves correctly, SCSI started off as SASI - developed by Shugart Associates for some marketing reason or other. It met a need and was clean enough that other vendors started supporting it. Eventually, ANSI standardised it. It was never designed to be a future-proof storage interface that would underpin the world's low to mid-range server market. In the beginning there were 6-byte commands. These were limited to 21-bit block numbers but since no-one would ever have devices with more than 2^21 blocks (typically 1GB) there was no need to allow for a larger block number - which would make the command larger and slower to transfer to the target. Of course the first people to experiment with "large" (>1GB) disks discovered a fairly serious disadvantage of 6-byte commands when the top bit of the block number got lopped off and the outside tracks of the disk (boot-block, primary or only superblock etc) got over-written by data intended for the inside tracks. 10-byte commands were therefore introduced. These extended the block number to 32 bits and allowed a larger transfer size as well. And the limits of 32-bit block numbers are now being reached and longer commands have been defined to allow for bigger storage devices. 6-byte commands still have an advantage for transfers that fit within their limits (block number and transfer size) - they are smaller and therefore faster to transfer. SCSI commands (and command responses) must be transferred asynchronously and USB 1.x is fairly slow so the less data to transfer the better. Peter
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030925094316.GA31074>