Deutsch   English   Français   Italiano  
<87wmggp6j0.fsf@nosuchdomain.example.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Keith Thompson <Keith.S.Thompson+u@gmail.com>
Newsgroups: comp.arch
Subject: Re: Keeping other stuff with addresses
Date: Tue, 03 Dec 2024 17:43:15 -0800
Organization: None to speak of
Lines: 29
Message-ID: <87wmggp6j0.fsf@nosuchdomain.example.com>
References: <memo.20241128153105.12904U@jgd.cix.co.uk>
	<20241128185548.000031c9@yahoo.com> <vidtpt$pon$1@gal.iecc.com>
	<2024Nov30.072829@mips.complang.tuwien.ac.at>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Date: Wed, 04 Dec 2024 02:43:16 +0100 (CET)
Injection-Info: dont-email.me; posting-host="535487b4219c47c49a2c0953cbda4f25";
	logging-data="500732"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18TK9NP0dT26GA+wHJVLO8J"
User-Agent: Gnus/5.13 (Gnus v5.13)
Cancel-Lock: sha1:h7tYqLGjYhBh9hoRL01GAgee+ZQ=
	sha1:sYLnA/lNZF9kY4qXa8BeJ6M7Nek=
Bytes: 2344

anton@mips.complang.tuwien.ac.at (Anton Ertl) writes:
[...]
> The technique of putting stuff in unused bits of an address has its
> drawbacks, but it also has benefits, in particular type information is
> often stored there (even on architectures that do not ignore any
> bits).  Of course AMD and Intel have the bad examples of S/360 and
> 68000 in mind, and did not want to have anything to do with that
> during the first two decades of AMD64.
[...]

One example of this that I haven't seen mentioned here is used by the C
and C++ compilers for Cray vector machines (I've used the T90 and SV1).

These systems had a 64-bit word size, and were heavily optimized
for floating-point operations.  Hardware addresses referred to 64-bit
words.  Compatibility with other systems required support for 8-bit
bytes (CHAR_BIT==8).  This was implemented in generated code by using
the high-order 3 bits of an address as a byte offset.

The fact that all byte addressing was implemented in software meant
that, for example, string manipulation was remarkably slow -- but it
worked.

(I'm using the past tense because I don't know whether any of these
systems are still in use.)

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */