Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!harpo!utah-cs!utah-gr!thomas From: thomas@utah-gr.UUCP (Spencer W. Thomas) Newsgroups: net.arch,net.unix-wizards Subject: Re: Re: pyramid architectural restraints Message-ID: <1103@utah-gr.UUCP> Date: Sat, 28-Apr-84 01:38:03 EDT Article-I.D.: utah-gr.1103 Posted: Sat Apr 28 01:38:03 1984 Date-Received: Sun, 29-Apr-84 07:06:00 EDT References: ritcv.1028 Lines: 28 > Ignore those machines and maybe they'll go away. Architectures that > require aligning multi-byte quantities on particular boundaries sound to me > like they were designed by an engineer who was interested in simplifying his > own task at the expense of the software designers who will use the machine. > The computer is designed once, but there are an infinite number of programs > that might be run on it. This short-sighted engineering was OK for the early > 360's, but is not appropriate for modern computers, and if we software types > tolerate it, it is likely to keep happening. A current trend in computer design is to assume that the user will only be writing in a high-level language, and that the compiler will do the hard work of generating machine code. This is the theory behind RISC machines, in particular. Making the hardware simpler makes it run faster. Once we start getting really convoluted machines (such as ELI, or some pipelined machines which execute several instructions after a conditional branch, before actually branching), all your clever hacks based on assumptions about the hardware will just go straight down the tubes. If the compiler were smart enough, it would say "Oh, he's trying to access a longword, but it's not on the right boundary", and generate a byte move instruction to align it before accessing. The basic problem is that generality is slower. For really blinding speed, you always have to give up something. With big memories, arbitrary alignment is not too hard to give up. (I bet that the original application never put longwords on odd byte boundaries, now did it?) =Spencer