Deutsch   English   Français   Italiano  
<2024Sep7.071718@mips.complang.tuwien.ac.at>

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: anton@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.arch
Subject: Re: is Vax adressing sane today
Date: Sat, 07 Sep 2024 05:17:18 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 54
Message-ID: <2024Sep7.071718@mips.complang.tuwien.ac.at>
References: <vbd6b9$g147$1@dont-email.me> <2024Sep6.073801@mips.complang.tuwien.ac.at> <vbfh2l$toif$1@dont-email.me>
Injection-Date: Sat, 07 Sep 2024 07:37:42 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="e4c6793cf2ee4fe2677c2684f18157c3";
	logging-data="1277551"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/GrJRTKs+nR4PEg+7AH0up"
Cancel-Lock: sha1:eWuUozKOQ1dq+fA/WjC4PaObMZU=
X-newsreader: xrn 10.11
Bytes: 3556

Brett <ggtgp@yahoo.com> writes:
>Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote:
>> Brett <ggtgp@yahoo.com> writes:
>>> But Vax allows all three arguments to be in memory with different pointers.
>>> 
>>> Is this sane, just a natural progression if you allow memory operands?
>> 
>> In combination with supporting unaligned accesses (but excluding
>> indirect addressing), it means that an instruction can access 6 pages,
>> and so the TLB (and/or TLB loader) has to be designed to support that.
>> Likewise, the OS has to be designed to load all 6 pages into physical
>> RAM without evicting one of these pages again.  So this kind of
>> architecture increases the design complexity.  And I don't see a
>> benefit from this design.
>
>The memory system is pipelined, once you load the first of the three
>values, you do not care if that cache line is evicted while you load the
>second.
>
>Caches are 16 way today, one does not worry about cache line evictions, it
>just works.

I did not write about caches, but yes, for TLBs a (the?) solution is
to have the ITLB to be at least 6-way.

It's unclear how pipelining should help.  The VAX 11/780 was not much
pipelined and can also do the memory accesses one after the other;
this did not protect it from the complexity coming from x memory
accesses in a single instruction.  E.g., all the pages accessed by an
instruction have to be in physical memory, or maybe support
interruptable instructions; in any case, there is complexity.

>>> Heads and tails encoding could actually do this reasonably, and the code
>>> density would be actually be better than most competitors.
....
>> What is "heads and tails encoding"?
>
>128 bit or larger packets with the fixed size opcodes on the front, and the
>variable sized data and offsets packing in from the end. You get variable
>length instruction density with easier faster wide decoding. And also using
>memory operands give you another density bonus on top.

The only reason for VAX-style instructions is if you want to implement
the VAX instruction set, because you want to run software for the VAX
(and that reason started to vanish three decades ago and is now almost
gone).  Also, decoding variable-length instructions is a solved
problem: Intel's P-cores and AMD's Zen-Zen5 cores solve it with
microcode caches, and Intel's recent E-cores (Tremont, Gracemont,
Chrestmont, Skymont) solve it by having 2-3 3-wide decoders.

- anton
-- 
'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
  Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>