Path: utzoo!mnetor!uunet!lll-winken!lll-tis!ames!lamaster From: lamaster@ames.arpa (Hugh LaMaster) Newsgroups: comp.arch Subject: Re: Bit Addressable Architectures Message-ID: <5563@ames.arpa> Date: 4 Mar 88 22:11:40 GMT References: <11702@brl-adm.ARPA> <243@eagle_snax.UUCP> <2245@geac.UUCP> <1988Mar3.182645.703@utzoo.uucp> <7374@sol.ARPA> Reply-To: lamaster@ames.arc.nasa.gov.UUCP (Hugh LaMaster) Organization: NASA Ames Research Center, Moffett Field, Calif. Lines: 34 In article <7374@sol.ARPA> crowl@cs.rochester.edu (Lawrence Crowl) writes: >In article <1988Mar3.182645.703@utzoo.uucp> henry@utzoo.uucp >(Henry Spencer) writes: >>I once had the opportunity to ask Bill Wulf what he thought of bit-oriented >>machines; his answer was "I wish they weren't so damned slow". I'm afraid > >It seems to me that aligned access to all items larger than a bit would allow >a bit addressable machine to be every bit as fast as a byte or word addressable >machine. Am I missing something? > The Cyber 205 is bit addressable and supports bit, byte (8 bit), halfword (32 bit), and fullword (64 bit) data accesses. (Somehow they left out 16 bit support directly as far as I can see from memory to registers or memory, although there are some instructions for 16 bit data types in registers). The actual memory word is the "sword" (super word) which is 8 words (512 bits) in length. The Load/Store unit extracts the required number of bits from the sword. Anyway, the Cyber 205 does require ALIGNMENT on data length boundaries. Bit strings must begin on addresses that are a multiple of bits (obvious, right?) bytes on byte addresses, halfwords on halfwords ,etc. I expect most "fast" machines in the future will require alignment because it is faster. Arbitrary alignment would require a shifter in the data path which is a significant performance degradation. Code which is dependent on the bytes of data structures being contiguous is not "portable" and all the C manuals I have read point this out. I see nothing heinous in Sun or MIPS or whoever requiring alignment. There are some machines out there (e.g. Cray) which don't even have byte addressing, let alone arbitrary alignment.