| 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 */