Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Feb 2001 00:24:21 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        bsd-alpha@boneyard.lawrence.ks.us (Stephen D. Spencer)
Cc:        wkb@freebie.demon.nl ('Wilko Bulte'), K.J.Koster@kpn.com (Koster K.J.), freebsd-alpha@FreeBSD.ORG
Subject:   Re: /usr/obj required space
Message-ID:  <200102150024.RAA09608@usr08.primenet.com>
In-Reply-To: <Pine.BSF.4.10.10102140756320.16404-100000@madeline.boneyard.lawrence.ks.us> from "Stephen D. Spencer" at Feb 14, 2001 08:24:26 AM

next in thread | previous in thread | raw e-mail | index | archive | help
> Another factor in the Alpha's binary size is that it is a RISC.  If you 
> take a look at the data sheet for the 21164, it has a rather small 
> instruction set consisting of relatively primitive instructions.  
> Though I have not yet read this document carefully, RISC instructions 
> historically tend to execute in no more the 4 clock cycles vs the more 
> complex instructions associated with CISC technology that can take 
> over 100 clock cycles to complete.  In a nut shell, RISC chips require
> more instructions to accomplish common tasks.  More instructions will
> yield larger binaries as well as the buffer and word size issues 
> that have already been mentioned.
> 
> If you know any hard-core Macintosh users, ask them what happened to
> the size of binaries and disk space/memory requirements during the 
> transition from the 68x000 -> PowerPC.

Many binaries during that transition had CODE resources for
both the PPC and the 68k, so that the program would run on
the 68k, but run faster on the PPC (and not require 68k
emulation: still faster, but slower than native code).

For the Alpha, there's a significant amout of work compilers,
particularly the Compaq compiler, go to, in order to ensure
instructions are padded to alignment boundaries and are
reordered in the pipeline, which can result in significant
code bloat.  This is really expected, since the trade off is
to build code where some instructions take more than a single
bus cycle to fetch (because they span such a boundary).  This
is one of the reasons the Compaq compiler produces code that
is both somewhat larger, yet significantly faster, than the
GCC generated code for the same source.  Prefetch only works
for branches that don't exceed an L1 cache entry in distance.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200102150024.RAA09608>