From owner-freebsd-hackers@FreeBSD.ORG Thu Sep 25 02:43:57 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9302C16A4B3 for ; Thu, 25 Sep 2003 02:43:57 -0700 (PDT) Received: from c211-28-27-130.belrs2.nsw.optusnet.com.au (c211-28-27-130.belrs2.nsw.optusnet.com.au [211.28.27.130]) by mx1.FreeBSD.org (Postfix) with ESMTP id 01F8C43FBD for ; Thu, 25 Sep 2003 02:43:55 -0700 (PDT) (envelope-from peterjeremy@optushome.com.au) Received: from server.c211-28-27-130.belrs2.nsw.optusnet.com.au (localhost.c211-28-27-130.belrs2.nsw.optusnet.com.au [127.0.0.1]) ESMTP id h8P9hHXM031349; Thu, 25 Sep 2003 19:43:17 +1000 (EST) peter@server.c211-28-27-130.belrs2.nsw.optusnet.com.au) Received: (from peter@localhost) (8.12.9p1/8.12.9/Submit) id h8P9hG9j031348; Thu, 25 Sep 2003 19:43:16 +1000 (EST) (envelope-from peter) Date: Thu, 25 Sep 2003 19:43:16 +1000 From: Peter Jeremy To: Scott Mitchell Message-ID: <20030925094316.GA31074@server.c211-28-27-130.belrs2.nsw.optusnet.com.au> 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> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030924223859.GA8202@llama.fishballoon.org> User-Agent: Mutt/1.4.1i cc: freebsd-hackers@freebsd.org Subject: Re: SimpleTech USB HDD driver X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 09:43:57 -0000 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