Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

There are two ways to write error-free programs; only the third one works.


devel / comp.arch / Re: The synergy of type tags on register file registers

SubjectAuthor
* The synergy of type tags on register file registersJimBrakefield
+* Re: The synergy of type tags on register file registersTerje Mathisen
|`- Re: The synergy of type tags on register file registersrobf...@gmail.com
`* Re: The synergy of type tags on register file registersluke.l...@gmail.com
 +* Re: The synergy of type tags on register file registersluke.l...@gmail.com
 |`- Re: The synergy of type tags on register file registersScott Lurndal
 +* Re: The synergy of type tags on register file registersNiklas Holsti
 |`- Re: The synergy of type tags on register file registersluke.l...@gmail.com
 `* Re: The synergy of type tags on register file registersMitchAlsup
  +* Re: The synergy of type tags on register file registersJimBrakefield
  |+- Re: The synergy of type tags on register file registersluke.l...@gmail.com
  |`* Re: The synergy of type tags on register file registersMitchAlsup
  | +* Re: The synergy of type tags on register file registersJimBrakefield
  | |+- Re: The synergy of type tags on register file registersMitchAlsup
  | |+* Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | ||+* Re: The synergy of type tags on register file registersMitchAlsup
  | |||`* Re: The synergy of type tags on register file registersThomas Koenig
  | ||| +* Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | ||| |`- Re: The synergy of type tags on register file registersMitchAlsup
  | ||| +* Re: The synergy of type tags on register file registersBGB
  | ||| |`* Re: The synergy of type tags on register file registersMitchAlsup
  | ||| | `- Re: The synergy of type tags on register file registersBGB
  | ||| `* Re: The synergy of type tags on register file registersTerje Mathisen
  | |||  +* Re: The synergy of type tags on register file registersMitchAlsup
  | |||  |`- Re: The synergy of type tags on register file registersTerje Mathisen
  | |||  `* Re: The synergy of type tags on register file registersThomas Koenig
  | |||   `* Re: The synergy of type tags on register file registersTerje Mathisen
  | |||    `* Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | |||     +* Re: The synergy of type tags on register file registersScott Lurndal
  | |||     |`* Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | |||     | `- Re: The synergy of type tags on register file registersMitchAlsup
  | |||     +* Re: The synergy of type tags on register file registersThomas Koenig
  | |||     |`- Re: The synergy of type tags on register file registersBGB
  | |||     +* Re: The synergy of type tags on register file registersTerje Mathisen
  | |||     |`* Re: The synergy of type tags on register file registersMitchAlsup
  | |||     | +* Re: The synergy of type tags on register file registersTerje Mathisen
  | |||     | |+- Re: The synergy of type tags on register file registersMitchAlsup
  | |||     | |`* Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | |||     | | +- Re: The synergy of type tags on register file registersMitchAlsup
  | |||     | | `- Re: The synergy of type tags on register file registersJimBrakefield
  | |||     | `* Re: The synergy of type tags on register file registersScott Lurndal
  | |||     |  +- Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | |||     |  +* Re: The synergy of type tags on register file registersBGB
  | |||     |  |`* Re: The synergy of type tags on register file registersAnton Ertl
  | |||     |  | `* Re: The synergy of type tags on register file registersMitchAlsup
  | |||     |  |  `* Re: The synergy of type tags on register file registersBGB
  | |||     |  |   `* Re: The synergy of type tags on register file registersAnton Ertl
  | |||     |  |    +* Re: The synergy of type tags on register file registersBGB
  | |||     |  |    |`* Re: The synergy of type tags on register file registersMitchAlsup
  | |||     |  |    | `- Re: The synergy of type tags on register file registersBGB
  | |||     |  |    `* Re: The synergy of type tags on register file registersThomas Koenig
  | |||     |  |     `- Re: The synergy of type tags on register file registersTerje Mathisen
  | |||     |  `* Re: The synergy of type tags on register file registersAnton Ertl
  | |||     |   `- Re: The synergy of type tags on register file registersMichael S
  | |||     +- Re: The synergy of type tags on register file registersBGB
  | |||     `* Re: The synergy of type tags on register file registersMitchAlsup
  | |||      +- Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | |||      `* Re: The synergy of type tags on register file registersStephen Fuld
  | |||       +* Re: The synergy of type tags on register file registersMitchAlsup
  | |||       |`- Re: The synergy of type tags on register file registersStephen Fuld
  | |||       `* Re: The synergy of type tags on register file registersAnton Ertl
  | |||        +* Re: The synergy of type tags on register file registersStephen Fuld
  | |||        |+* Re: The synergy of type tags on register file registersMitchAlsup
  | |||        ||+- Re: The synergy of type tags on register file registersScott Lurndal
  | |||        ||`* Re: The synergy of type tags on register file registersStephen Fuld
  | |||        || +- Re: The synergy of type tags on register file registersThomas Koenig
  | |||        || `* Re: The synergy of type tags on register file registersJohn Dallman
  | |||        ||  `* Re: The synergy of type tags on register file registersThomas Koenig
  | |||        ||   +* Re: The synergy of type tags on register file registersJohn Dallman
  | |||        ||   |`- Re: The synergy of type tags on register file registersThomas Koenig
  | |||        ||   `* Re: The synergy of type tags on register file registersTerje Mathisen
  | |||        ||    `* Re: The synergy of type tags on register file registersMitchAlsup
  | |||        ||     `- Re: The synergy of type tags on register file registersTerje Mathisen
  | |||        |`* Re: The synergy of type tags on register file registersAnton Ertl
  | |||        | +* Re: The synergy of type tags on register file registersStephen Fuld
  | |||        | |+* Re: The synergy of type tags on register file registersBGB
  | |||        | ||`* Re: The synergy of type tags on register file registersrobf...@gmail.com
  | |||        | || +* Re: The synergy of type tags on register file registersMitchAlsup
  | |||        | || |`* Re: The synergy of type tags on register file registersMichael S
  | |||        | || | `* Re: The synergy of type tags on register file registersMitchAlsup
  | |||        | || |  `* Re: The synergy of type tags on register file registersMichael S
  | |||        | || |   `- Re: The synergy of type tags on register file registersMitchAlsup
  | |||        | || +* Re: The synergy of type tags on register file registersBGB
  | |||        | || |`- Re: The synergy of type tags on register file registersMitchAlsup
  | |||        | || `* Re: The synergy of type tags on register file registersScott Lurndal
  | |||        | ||  +- Re: The synergy of type tags on register file registersBGB
  | |||        | ||  `* Re: The synergy of type tags on register file registersMitchAlsup
  | |||        | ||   +- Re: The synergy of type tags on register file registersBGB
  | |||        | ||   +* Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | |||        | ||   |`* Re: The synergy of type tags on register file registersScott Lurndal
  | |||        | ||   | `* Re: The synergy of type tags on register file registersBGB
  | |||        | ||   |  `* Re: The synergy of type tags on register file registersScott Lurndal
  | |||        | ||   |   `* Re: The synergy of type tags on register file registersBGB
  | |||        | ||   |    `* Re: The synergy of type tags on register file registersScott Lurndal
  | |||        | ||   |     +* Re: The synergy of type tags on register file registersStephen Fuld
  | |||        | ||   |     |`- Re: The synergy of type tags on register file registersScott Lurndal
  | |||        | ||   |     +* Re: The synergy of type tags on register file registersMitchAlsup
  | |||        | ||   |     |`* Re: The synergy of type tags on register file registersScott Lurndal
  | |||        | ||   |     | `* Re: The synergy of type tags on register file registersMitchAlsup
  | |||        | ||   |     |  `- Re: The synergy of type tags on register file registersScott Lurndal
  | |||        | ||   |     `* Re: The synergy of type tags on register file registersBGB
  | |||        | ||   `- Re: The synergy of type tags on register file registersIvan Godard
  | |||        | |+* Re: The synergy of type tags on register file registersAnton Ertl
  | |||        | |`* Re: The synergy of type tags on register file registersTerje Mathisen
  | |||        | +* Re: The synergy of type tags on register file registersBill Findlay
  | |||        | `- Re: The synergy of type tags on register file registersTerje Mathisen
  | |||        `- Re: The synergy of type tags on register file registersMitchAlsup
  | ||`* Re: The synergy of type tags on register file registersScott Lurndal
  | |`- Re: The synergy of type tags on register file registersNiklas Holsti
  | `- Re: The synergy of type tags on register file registersScott Lurndal
  `* Re: The synergy of type tags on register file registersPaul A. Clayton

Pages:12345678910
Re: The synergy of type tags on register file registers

<u53cfh$1mn06$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32459&group=comp.arch#32459

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: sfuld@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Mon, 29 May 2023 16:28:46 -0700
Organization: A noiseless patient Spider
Lines: 27
Message-ID: <u53cfh$1mn06$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<c2bde3aa-0851-4d6a-853c-4d86e0f6d932n@googlegroups.com>
<8592c1d6-237d-4700-92df-e80768deb54bn@googlegroups.com>
<e141ae62-68a2-43fd-ac04-9213e2dfa0b5n@googlegroups.com>
<d79ddd12-533d-4369-b6db-e14adefcacb8n@googlegroups.com>
<4f54444c-673d-48c7-a9b9-383233b0b608n@googlegroups.com>
<05c50c9e-122a-4e12-b762-abf56ecaf5ben@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com>
<u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me>
<u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 29 May 2023 23:28:49 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="764d6fdff06a664a3a8afb35c1dbeeeb";
logging-data="1793030"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+x0EIsvH3ktVgXYxMNYITwwSjhwH0g4+M="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:5DIMl7ihkjYJF5+zGESDP/SgFMo=
Content-Language: en-US
In-Reply-To: <d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
 by: Stephen Fuld - Mon, 29 May 2023 23:28 UTC

On 5/29/2023 1:11 PM, MitchAlsup wrote:
> On Monday, May 29, 2023 at 5:50:56 AM UTC-5, luke.l...@gmail.com wrote:
>> On Monday, May 29, 2023 at 11:36:13 AM UTC+1, Terje Mathisen wrote:
>>
>>>> But I don't see that on the horizon any time soon - presumably, 128-bit
>>>> IEEE will be used instead (Like POWER does).
>>>>
>>> Absolutely correct, fp128 is the only sane way forward.
> <
> 128-bit might be the only sane way forward,
> BUT pairing and sharing of registers is not.

You have mentioned before that compiler guys don't like register
pairing. But I did a (very)little research and thought that the work of
Preston Briggs (expressed in his thesis, several papers and a book) on
the subject of register allocation showed that it wasn't much of a
problem. Is that incorrect?

Of course, it is not optimal, but ISTM that the advantages of not having
to name additional registers in the instructions, and being able to use
load/store multiple (or even double) are pretty compelling.

--
- Stephen Fuld
(e-mail address disguised to prevent spam)

Re: The synergy of type tags on register file registers

<a195388f-6bc2-4d6a-8001-93fd56bac286n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32461&group=comp.arch#32461

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:570f:0:b0:3f3:641b:85f with SMTP id 15-20020ac8570f000000b003f3641b085fmr59307qtw.10.1685404650335;
Mon, 29 May 2023 16:57:30 -0700 (PDT)
X-Received: by 2002:a9d:7343:0:b0:6af:975f:4af with SMTP id
l3-20020a9d7343000000b006af975f04afmr125245otk.1.1685404650080; Mon, 29 May
2023 16:57:30 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Mon, 29 May 2023 16:57:29 -0700 (PDT)
In-Reply-To: <u53cfh$1mn06$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:b116:2eff:734:a100;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:b116:2eff:734:a100
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<c2bde3aa-0851-4d6a-853c-4d86e0f6d932n@googlegroups.com> <8592c1d6-237d-4700-92df-e80768deb54bn@googlegroups.com>
<e141ae62-68a2-43fd-ac04-9213e2dfa0b5n@googlegroups.com> <d79ddd12-533d-4369-b6db-e14adefcacb8n@googlegroups.com>
<4f54444c-673d-48c7-a9b9-383233b0b608n@googlegroups.com> <05c50c9e-122a-4e12-b762-abf56ecaf5ben@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de>
<u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de>
<u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a195388f-6bc2-4d6a-8001-93fd56bac286n@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Mon, 29 May 2023 23:57:30 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 4067
 by: MitchAlsup - Mon, 29 May 2023 23:57 UTC

On Monday, May 29, 2023 at 6:29:59 PM UTC-5, Stephen Fuld wrote:
> On 5/29/2023 1:11 PM, MitchAlsup wrote:
> > On Monday, May 29, 2023 at 5:50:56 AM UTC-5, luke.l...@gmail.com wrote:
> >> On Monday, May 29, 2023 at 11:36:13 AM UTC+1, Terje Mathisen wrote:
> >>
> >>>> But I don't see that on the horizon any time soon - presumably, 128-bit
> >>>> IEEE will be used instead (Like POWER does).
> >>>>
> >>> Absolutely correct, fp128 is the only sane way forward.
> > <
> > 128-bit might be the only sane way forward,
> > BUT pairing and sharing of registers is not.
<
> You have mentioned before that compiler guys don't like register
> pairing. But I did a (very)little research and thought that the work of
> Preston Briggs (expressed in his thesis, several papers and a book) on
> the subject of register allocation showed that it wasn't much of a
> problem. Is that incorrect?
<
My word from people who actually write compilers is "do not pair or
share" registers with any sort of implication (S 360; R | 1; others R + 1).
<
What happens is that the register allocator goes through several
stages as things get converted from SSA into R[k]. And along the
way implicit pairing can end up attempting to do things like::
<
DADD {R8,R19},{R7,R6},{R1,R13}
<
And at this point, one has to go back and find a free R7 and back
substitute R19 to get {R8,R7}; an find a useable R0 and back-
substitute R13 so we can get {R1,R0}.
<
I trust the compiler guys on this. Is it impossible--obviously, is it
a hassle--obviously, does it lead to slower compiler times--absolutely,
....
>
> Of course, it is not optimal, but ISTM that the advantages of not having
> to name additional registers in the instructions, and being able to use
> load/store multiple (or even double) are pretty compelling.
<
The problem with that thinking is LDM often takes a couple of cycles
to reach optimal data/unit_time throughput whereas LDs do not.
>
>
> --
> - Stephen Fuld
> (e-mail address disguised to prevent spam)

Re: The synergy of type tags on register file registers

<u555bt$21crf$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32477&group=comp.arch#32477

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: sfuld@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Tue, 30 May 2023 08:39:39 -0700
Organization: A noiseless patient Spider
Lines: 60
Message-ID: <u555bt$21crf$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<c2bde3aa-0851-4d6a-853c-4d86e0f6d932n@googlegroups.com>
<8592c1d6-237d-4700-92df-e80768deb54bn@googlegroups.com>
<e141ae62-68a2-43fd-ac04-9213e2dfa0b5n@googlegroups.com>
<d79ddd12-533d-4369-b6db-e14adefcacb8n@googlegroups.com>
<4f54444c-673d-48c7-a9b9-383233b0b608n@googlegroups.com>
<05c50c9e-122a-4e12-b762-abf56ecaf5ben@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com>
<u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me>
<u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me>
<a195388f-6bc2-4d6a-8001-93fd56bac286n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 30 May 2023 15:39:41 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="764d6fdff06a664a3a8afb35c1dbeeeb";
logging-data="2143087"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/JVgINhC7q3/zXM2uOpO4fsre0n1vi/Dk="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:q9GDbH7Kit45d+hpYW+9ZIe/x/I=
In-Reply-To: <a195388f-6bc2-4d6a-8001-93fd56bac286n@googlegroups.com>
Content-Language: en-US
 by: Stephen Fuld - Tue, 30 May 2023 15:39 UTC

On 5/29/2023 4:57 PM, MitchAlsup wrote:
> On Monday, May 29, 2023 at 6:29:59 PM UTC-5, Stephen Fuld wrote:
>> On 5/29/2023 1:11 PM, MitchAlsup wrote:
>>> On Monday, May 29, 2023 at 5:50:56 AM UTC-5, luke.l...@gmail.com wrote:
>>>> On Monday, May 29, 2023 at 11:36:13 AM UTC+1, Terje Mathisen wrote:
>>>>
>>>>>> But I don't see that on the horizon any time soon - presumably, 128-bit
>>>>>> IEEE will be used instead (Like POWER does).
>>>>>>
>>>>> Absolutely correct, fp128 is the only sane way forward.
>>> <
>>> 128-bit might be the only sane way forward,
>>> BUT pairing and sharing of registers is not.
> <
>> You have mentioned before that compiler guys don't like register
>> pairing. But I did a (very)little research and thought that the work of
>> Preston Briggs (expressed in his thesis, several papers and a book) on
>> the subject of register allocation showed that it wasn't much of a
>> problem. Is that incorrect?
> <
> My word from people who actually write compilers is "do not pair or
> share" registers with any sort of implication (S 360; R | 1; others R + 1).
> <
> What happens is that the register allocator goes through several
> stages as things get converted from SSA into R[k]. And along the
> way implicit pairing can end up attempting to do things like::
> <
> DADD {R8,R19},{R7,R6},{R1,R13}
> <
> And at this point, one has to go back and find a free R7 and back
> substitute R19 to get {R8,R7}; an find a useable R0 and back-
> substitute R13 so we can get {R1,R0}.
> <
> I trust the compiler guys on this. Is it impossible--obviously, is it
> a hassle--obviously, does it lead to slower compiler times--absolutely,

OK, thanks

> ...
>>
>> Of course, it is not optimal, but ISTM that the advantages of not having
>> to name additional registers in the instructions, and being able to use
>> load/store multiple (or even double) are pretty compelling.
> <
> The problem with that thinking is LDM often takes a couple of cycles
> to reach optimal data/unit_time throughput whereas LDs do not.

I am sure that is right, but not having optimal throughput (i.e. as good
as you can get) is not necessarily the same as being worse than two load
instructions. Specifically, are you saying that a LDM of two registers
would take longer elapsed time than two single load instructions?

--
- Stephen Fuld
(e-mail address disguised to prevent spam)

Re: The synergy of type tags on register file registers

<2023May30.192304@mips.complang.tuwien.ac.at>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32480&group=comp.arch#32480

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!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: The synergy of type tags on register file registers
Date: Tue, 30 May 2023 17:23:04 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 43
Message-ID: <2023May30.192304@mips.complang.tuwien.ac.at>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <05c50c9e-122a-4e12-b762-abf56ecaf5ben@googlegroups.com> <b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com> <d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me>
Injection-Info: dont-email.me; posting-host="3e63d37b534a8b8ea80fa8c4b226b87e";
logging-data="2173355"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19RnsX1BZJU0UxKzV+h74l1"
Cancel-Lock: sha1:oh7sRlTD+oz5fZyAI8uAcWAFh58=
X-newsreader: xrn 10.11
 by: Anton Ertl - Tue, 30 May 2023 17:23 UTC

Stephen Fuld <sfuld@alumni.cmu.edu.invalid> writes:
>You have mentioned before that compiler guys don't like register
>pairing. But I did a (very)little research and thought that the work of
>Preston Briggs (expressed in his thesis, several papers and a book) on
>the subject of register allocation showed that it wasn't much of a
>problem. Is that incorrect?

I dimly remember Preston Briggs' paper on paired-register allocation.
It shows that it can be done. However, I am not aware of this having
been integrated into register allocators of widely available compilers
(but maybe this happened without fanfare).

I am also not aware of recent instruction sets getting
pair-register-load and pair-register store instructions. Instead, ARM
A64 added load-pair and store-pair instructions where the instructions
in the pair can be determined independently, which is significantly
easier to utilize in a compiler.

The reason for not having paired registers in A64 may be that a paired
register may be just as hard to deal with in the register renamer as
two individual registers (Mitch Alsup claimed it was easy, but I did
not understand his explanation). If that is the case, the absence of
paired registers as an architectural feature does not say anything
about how hard paired registers are to deal with in a compiler; but if
paired registers are easier than two individual registers in hardware,
the use of individual registers in A64 may be due to compiler objections.

Back to compilers: Basic register allocation is not that hard, but
then you add in requirements coming from the calling convention, and
from this and that (e.g., architectural featured like paired
registers). You can do each requirement individually, but doing them
alltogether makes things very nasty, especially because you also want
the resulting code quality to be good. Already without paired
registers the register allocations I see are not as good as I would
like them to be*. So if the register allocator developers have any
developer capacity left, I'd prefer that they make the existing
allocation better rather than throwing new architectural misfeatures
at them.

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

Re: The synergy of type tags on register file registers

<u55f2q$22hh1$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32481&group=comp.arch#32481

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: sfuld@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Tue, 30 May 2023 11:25:30 -0700
Organization: A noiseless patient Spider
Lines: 52
Message-ID: <u55f2q$22hh1$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<05c50c9e-122a-4e12-b762-abf56ecaf5ben@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com>
<u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me>
<u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 30 May 2023 18:25:30 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="764d6fdff06a664a3a8afb35c1dbeeeb";
logging-data="2180641"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX193hBdtbng4rcIXRzDAXtchfUs3yGOJUXM="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:cKWlEpeiULashU3wJwUTzcd2XiQ=
Content-Language: en-US
In-Reply-To: <2023May30.192304@mips.complang.tuwien.ac.at>
 by: Stephen Fuld - Tue, 30 May 2023 18:25 UTC

On 5/30/2023 10:23 AM, Anton Ertl wrote:
> Stephen Fuld <sfuld@alumni.cmu.edu.invalid> writes:
>> You have mentioned before that compiler guys don't like register
>> pairing. But I did a (very)little research and thought that the work of
>> Preston Briggs (expressed in his thesis, several papers and a book) on
>> the subject of register allocation showed that it wasn't much of a
>> problem. Is that incorrect?
>
> I dimly remember Preston Briggs' paper on paired-register allocation.
> It shows that it can be done. However, I am not aware of this having
> been integrated into register allocators of widely available compilers
> (but maybe this happened without fanfare).
>
> I am also not aware of recent instruction sets getting
> pair-register-load and pair-register store instructions. Instead, ARM
> A64 added load-pair and store-pair instructions where the instructions
> in the pair can be determined independently, which is significantly
> easier to utilize in a compiler.
>
> The reason for not having paired registers in A64 may be that a paired
> register may be just as hard to deal with in the register renamer as
> two individual registers (Mitch Alsup claimed it was easy, but I did
> not understand his explanation). If that is the case, the absence of
> paired registers as an architectural feature does not say anything
> about how hard paired registers are to deal with in a compiler; but if
> paired registers are easier than two individual registers in hardware,
> the use of individual registers in A64 may be due to compiler objections.
>
> Back to compilers: Basic register allocation is not that hard, but
> then you add in requirements coming from the calling convention, and
> from this and that (e.g., architectural featured like paired
> registers). You can do each requirement individually, but doing them
> alltogether makes things very nasty, especially because you also want
> the resulting code quality to be good. Already without paired
> registers the register allocations I see are not as good as I would
> like them to be*. So if the register allocator developers have any
> developer capacity left, I'd prefer that they make the existing
> allocation better rather than throwing new architectural misfeatures
> at them.

I don't disagree with any of your points. But then how do you propose
handling 128 bit arithmetic (both integer and floating), assuming these
are requirements? ISTM that if you don't use paired registers, then you
have to double the number of register specifiers in each ALU
instruction or do something like Mitch's instruction modifier mechanism
or go to 128 bit registers. None of these seem "optimal" either. :-(

--
- Stephen Fuld
(e-mail address disguised to prevent spam)

Re: The synergy of type tags on register file registers

<4b869c74-52e9-4a3d-80dd-4592aeaa9b0fn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32483&group=comp.arch#32483

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:7f45:0:b0:3f4:8605:d8f0 with SMTP id g5-20020ac87f45000000b003f48605d8f0mr668685qtk.11.1685474865868;
Tue, 30 May 2023 12:27:45 -0700 (PDT)
X-Received: by 2002:a9d:6d14:0:b0:6af:8244:bb0d with SMTP id
o20-20020a9d6d14000000b006af8244bb0dmr86897otp.6.1685474865524; Tue, 30 May
2023 12:27:45 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Tue, 30 May 2023 12:27:45 -0700 (PDT)
In-Reply-To: <2023May30.192304@mips.complang.tuwien.ac.at>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:8959:df26:8ecb:85d2;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:8959:df26:8ecb:85d2
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<05c50c9e-122a-4e12-b762-abf56ecaf5ben@googlegroups.com> <b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com>
<u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me>
<u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com> <d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4b869c74-52e9-4a3d-80dd-4592aeaa9b0fn@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Tue, 30 May 2023 19:27:45 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 5684
 by: MitchAlsup - Tue, 30 May 2023 19:27 UTC

On Tuesday, May 30, 2023 at 12:54:38 PM UTC-5, Anton Ertl wrote:
> Stephen Fuld <sf...@alumni.cmu.edu.invalid> writes:
> >You have mentioned before that compiler guys don't like register
> >pairing. But I did a (very)little research and thought that the work of
> >Preston Briggs (expressed in his thesis, several papers and a book) on
> >the subject of register allocation showed that it wasn't much of a
> >problem. Is that incorrect?
> I dimly remember Preston Briggs' paper on paired-register allocation.
> It shows that it can be done. However, I am not aware of this having
> been integrated into register allocators of widely available compilers
> (but maybe this happened without fanfare).
>
> I am also not aware of recent instruction sets getting
> pair-register-load and pair-register store instructions. Instead, ARM
> A64 added load-pair and store-pair instructions where the instructions
> in the pair can be determined independently, which is significantly
> easier to utilize in a compiler.
>
> The reason for not having paired registers in A64 may be that a paired
> register may be just as hard to deal with in the register renamer as
> two individual registers (Mitch Alsup claimed it was easy, but I did
> not understand his explanation).
<
If you have a DBLE instruction, you can simply write::
<
DBLE R9,R7,R5
QMUL R8,R6,R4
<
and the renamer has all the information it needs all the ports it needs
and all the registers remain independent--no pairing or sharing.
<
The thing to face is that you have an x-wide machine {32-bit or 64-bit}
and you want the ability to easily express 2×x-wide calculations, but
you don't foresee a need for doing 2×x-width every cycle, then DBLE
works just fine. It takes an instruction (size) but may not take a beat
in the pipeline.
<
If on the other hand, you foresee a need for 2×-wide more-or-less all
the time, it is time to add a 2×register file (or wider) and all the inst
needed to utilize the new register file.
<
A 32 register machine can do simple algorithms at 2×wide, dabble
with 3×wide algorithms, and the occasional 4×wide, but quickly runs
out of registers.
<
> If that is the case, the absence of
> paired registers as an architectural feature does not say anything
> about how hard paired registers are to deal with in a compiler; but if
> paired registers are easier than two individual registers in hardware,
> the use of individual registers in A64 may be due to compiler objections.
>
> Back to compilers: Basic register allocation is not that hard, but
> then you add in requirements coming from the calling convention, and
> from this and that (e.g., architectural featured like paired
> registers). You can do each requirement individually, but doing them
> alltogether makes things very nasty, especially because you also want
> the resulting code quality to be good.
<
Register allocation is not "that hard", but every addition {paired registers,
shared registers, mandated registers,...} adds 1 to the exponent of
complexity. Quickly getting to the "its really hard" point. The more
registers on has the easier it all gets.
<
> Already without paired
> registers the register allocations I see are not as good as I would
> like them to be*. So if the register allocator developers have any
> developer capacity left, I'd prefer that they make the existing
> allocation better rather than throwing new architectural misfeatures
> at them.
>
> - anton
> --
> 'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
> Mitch Alsup, <c17fcd89-f024-40e7...@googlegroups.com>

Re: The synergy of type tags on register file registers

<ee431e57-2644-46aa-9c34-3758237158fan@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32484&group=comp.arch#32484

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:413:b0:3f6:a729:fab0 with SMTP id n19-20020a05622a041300b003f6a729fab0mr815841qtx.1.1685475118629;
Tue, 30 May 2023 12:31:58 -0700 (PDT)
X-Received: by 2002:aca:3402:0:b0:397:f54a:22da with SMTP id
b2-20020aca3402000000b00397f54a22damr959353oia.4.1685475118362; Tue, 30 May
2023 12:31:58 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Tue, 30 May 2023 12:31:58 -0700 (PDT)
In-Reply-To: <u55f2q$22hh1$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:8959:df26:8ecb:85d2;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:8959:df26:8ecb:85d2
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<05c50c9e-122a-4e12-b762-abf56ecaf5ben@googlegroups.com> <b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com>
<u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me>
<u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com> <d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ee431e57-2644-46aa-9c34-3758237158fan@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Tue, 30 May 2023 19:31:58 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 5315
 by: MitchAlsup - Tue, 30 May 2023 19:31 UTC

On Tuesday, May 30, 2023 at 1:25:33 PM UTC-5, Stephen Fuld wrote:
> On 5/30/2023 10:23 AM, Anton Ertl wrote:
> > Stephen Fuld <sf...@alumni.cmu.edu.invalid> writes:
> >> You have mentioned before that compiler guys don't like register
> >> pairing. But I did a (very)little research and thought that the work of
> >> Preston Briggs (expressed in his thesis, several papers and a book) on
> >> the subject of register allocation showed that it wasn't much of a
> >> problem. Is that incorrect?
> >
> > I dimly remember Preston Briggs' paper on paired-register allocation.
> > It shows that it can be done. However, I am not aware of this having
> > been integrated into register allocators of widely available compilers
> > (but maybe this happened without fanfare).
> >
> > I am also not aware of recent instruction sets getting
> > pair-register-load and pair-register store instructions. Instead, ARM
> > A64 added load-pair and store-pair instructions where the instructions
> > in the pair can be determined independently, which is significantly
> > easier to utilize in a compiler.
> >
> > The reason for not having paired registers in A64 may be that a paired
> > register may be just as hard to deal with in the register renamer as
> > two individual registers (Mitch Alsup claimed it was easy, but I did
> > not understand his explanation). If that is the case, the absence of
> > paired registers as an architectural feature does not say anything
> > about how hard paired registers are to deal with in a compiler; but if
> > paired registers are easier than two individual registers in hardware,
> > the use of individual registers in A64 may be due to compiler objections.
> >
> > Back to compilers: Basic register allocation is not that hard, but
> > then you add in requirements coming from the calling convention, and
> > from this and that (e.g., architectural featured like paired
> > registers). You can do each requirement individually, but doing them
> > alltogether makes things very nasty, especially because you also want
> > the resulting code quality to be good. Already without paired
> > registers the register allocations I see are not as good as I would
> > like them to be*. So if the register allocator developers have any
> > developer capacity left, I'd prefer that they make the existing
> > allocation better rather than throwing new architectural misfeatures
> > at them.
<
> I don't disagree with any of your points. But then how do you propose
> handling 128 bit arithmetic (both integer and floating), assuming these
> are requirements? ISTM that if you don't use paired registers, then you
> have to double the number of register specifiers in each ALU
> instruction or do something like Mitch's instruction modifier mechanism
> or go to 128 bit registers. None of these seem "optimal" either. :-(
<
It really depends on what your target(s) is(are).
a) do you want to perform 128-bits occasionally,
b) do you want to perform 128-bits rather often,
c) do you want to perform 128-bits all the time.
<
One solution does not cover all the cases. My 66000 solution fits
between (a) and (b):: it is fundamentally a 64-bit machine {registers
data paths, memory hierarchy,...} with the ability to express wider
widths when needed (but you better not need it all the time.)
> --
> - Stephen Fuld
> (e-mail address disguised to prevent spam)

Re: The synergy of type tags on register file registers

<QJsdM.488533$ZnFc.380030@fx41.iad>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32488&group=comp.arch#32488

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx41.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: scott@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: The synergy of type tags on register file registers
Newsgroups: comp.arch
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com> <d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me> <ee431e57-2644-46aa-9c34-3758237158fan@googlegroups.com>
Lines: 26
Message-ID: <QJsdM.488533$ZnFc.380030@fx41.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Tue, 30 May 2023 20:09:20 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Tue, 30 May 2023 20:09:20 GMT
X-Received-Bytes: 2250
 by: Scott Lurndal - Tue, 30 May 2023 20:09 UTC

MitchAlsup <MitchAlsup@aol.com> writes:
>On Tuesday, May 30, 2023 at 1:25:33=E2=80=AFPM UTC-5, Stephen Fuld wrote:

>> I don't disagree with any of your points. But then how do you propose=20
>> handling 128 bit arithmetic (both integer and floating), assuming these=
>=20
>> are requirements? ISTM that if you don't use paired registers, then you=
>=20
>> have to double the number of register specifiers in each ALU=20
>> instruction or do something like Mitch's instruction modifier mechanism=
>=20
>> or go to 128 bit registers. None of these seem "optimal" either. :-(
><
>It really depends on what your target(s) is(are).=20
>a) do you want to perform 128-bits occasionally,
>b) do you want to perform 128-bits rather often,
>c) do you want to perform 128-bits all the time.
><
>One solution does not cover all the cases. My 66000 solution fits
>between (a) and (b):: it is fundamentally a 64-bit machine {registers
>data paths, memory hierarchy,...} with the ability to express wider
>widths when needed (but you better not need it all the time.)

In my experience, the primary use of 128-bit operations
is single-copy atomic stores to coprocessors, which fall
into (a) and/or (b).

Re: The synergy of type tags on register file registers

<u56frb$29tvu$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32500&group=comp.arch#32500

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: sfuld@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Tue, 30 May 2023 20:44:42 -0700
Organization: A noiseless patient Spider
Lines: 75
Message-ID: <u56frb$29tvu$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<05c50c9e-122a-4e12-b762-abf56ecaf5ben@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com>
<u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me>
<u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at>
<u55f2q$22hh1$1@dont-email.me>
<ee431e57-2644-46aa-9c34-3758237158fan@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 31 May 2023 03:44:43 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="f8eaa374da1b9a5646b2db64adf9314c";
logging-data="2422782"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19Bl6uSGIB9pnEAkB1oWG/YOU8mJLf/NKM="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:iRycLpYw9/4/xbgdERQ3MnvukcA=
Content-Language: en-US
In-Reply-To: <ee431e57-2644-46aa-9c34-3758237158fan@googlegroups.com>
 by: Stephen Fuld - Wed, 31 May 2023 03:44 UTC

On 5/30/2023 12:31 PM, MitchAlsup wrote:
> On Tuesday, May 30, 2023 at 1:25:33 PM UTC-5, Stephen Fuld wrote:
>> On 5/30/2023 10:23 AM, Anton Ertl wrote:
>>> Stephen Fuld <sf...@alumni.cmu.edu.invalid> writes:
>>>> You have mentioned before that compiler guys don't like register
>>>> pairing. But I did a (very)little research and thought that the work of
>>>> Preston Briggs (expressed in his thesis, several papers and a book) on
>>>> the subject of register allocation showed that it wasn't much of a
>>>> problem. Is that incorrect?
>>>
>>> I dimly remember Preston Briggs' paper on paired-register allocation.
>>> It shows that it can be done. However, I am not aware of this having
>>> been integrated into register allocators of widely available compilers
>>> (but maybe this happened without fanfare).
>>>
>>> I am also not aware of recent instruction sets getting
>>> pair-register-load and pair-register store instructions. Instead, ARM
>>> A64 added load-pair and store-pair instructions where the instructions
>>> in the pair can be determined independently, which is significantly
>>> easier to utilize in a compiler.
>>>
>>> The reason for not having paired registers in A64 may be that a paired
>>> register may be just as hard to deal with in the register renamer as
>>> two individual registers (Mitch Alsup claimed it was easy, but I did
>>> not understand his explanation). If that is the case, the absence of
>>> paired registers as an architectural feature does not say anything
>>> about how hard paired registers are to deal with in a compiler; but if
>>> paired registers are easier than two individual registers in hardware,
>>> the use of individual registers in A64 may be due to compiler objections.
>>>
>>> Back to compilers: Basic register allocation is not that hard, but
>>> then you add in requirements coming from the calling convention, and
>>> from this and that (e.g., architectural featured like paired
>>> registers). You can do each requirement individually, but doing them
>>> alltogether makes things very nasty, especially because you also want
>>> the resulting code quality to be good. Already without paired
>>> registers the register allocations I see are not as good as I would
>>> like them to be*. So if the register allocator developers have any
>>> developer capacity left, I'd prefer that they make the existing
>>> allocation better rather than throwing new architectural misfeatures
>>> at them.
> <
>> I don't disagree with any of your points. But then how do you propose
>> handling 128 bit arithmetic (both integer and floating), assuming these
>> are requirements? ISTM that if you don't use paired registers, then you
>> have to double the number of register specifiers in each ALU
>> instruction or do something like Mitch's instruction modifier mechanism
>> or go to 128 bit registers. None of these seem "optimal" either. :-(
> <
> It really depends on what your target(s) is(are).
> a) do you want to perform 128-bits occasionally,
> b) do you want to perform 128-bits rather often,
> c) do you want to perform 128-bits all the time.

I think that is true, but with some caveats.

1. I don't know what the market today wants. Perhaps John Dallman or
Thomas Koenig, with their perspective can chime in.

2. Whatever the market is today, it will be different some years from
now. I don't have a prediction as to the speed of adoption, however,

3. There is a feedback effect. The easier/less costly it is to use, the
more it will be used. Your My 66000 is an example of that, where
essentially all calculations are done in 64 bit precision, not 32 bit
because the cost is so low. This wouldn't have happened say a decade
ago at least partially due to the increased cost differential of 64 bit
precision versus 32.

--
- Stephen Fuld
(e-mail address disguised to prevent spam)

Re: The synergy of type tags on register file registers

<2023May31.075457@mips.complang.tuwien.ac.at>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32501&group=comp.arch#32501

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!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: The synergy of type tags on register file registers
Date: Wed, 31 May 2023 05:54:57 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 18
Message-ID: <2023May31.075457@mips.complang.tuwien.ac.at>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com> <d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me>
Injection-Info: dont-email.me; posting-host="09695b384c020f38ad066906e5943a00";
logging-data="2449670"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+38TXsgDW0nZEmluFukmUu"
Cancel-Lock: sha1:6v4BurHQ0/lO5BO4Vha2ANAiQmY=
X-newsreader: xrn 10.11
 by: Anton Ertl - Wed, 31 May 2023 05:54 UTC

Stephen Fuld <sfuld@alumni.cmu.edu.invalid> writes:
>But then how do you propose
>handling 128 bit arithmetic (both integer and floating), assuming these
>are requirements? ISTM that if you don't use paired registers, then you
> have to double the number of register specifiers in each ALU
>instruction or do something like Mitch's instruction modifier mechanism
>or go to 128 bit registers.

128-bit registers look fine to me. AMD64 has them already (the xmm
registers), ARMv8-A has them already (and I think ARMv7-A, too;
ARMv9-A is an extension of ARMv8.5-A, and so also supports these
registers). So you just need to add the instructions that use them
for computing with 128-bit values.

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

Re: The synergy of type tags on register file registers

<u56s31$2b4h8$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32502&group=comp.arch#32502

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: cr88192@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Wed, 31 May 2023 02:13:36 -0500
Organization: A noiseless patient Spider
Lines: 71
Message-ID: <u56s31$2b4h8$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<05c50c9e-122a-4e12-b762-abf56ecaf5ben@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com>
<u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me>
<u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<u52llu$1hhcg$1@dont-email.me>
<de07d460-5a41-43bc-90dc-ccbf200c70a2n@googlegroups.com>
<U08dM.3507590$iU59.3142722@fx14.iad>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 31 May 2023 07:13:37 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="a0d7a169597a070063d59e531f460720";
logging-data="2462248"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+sakggkyNphqd+XsOeS37I"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:ka47T+mIw0almLm0zGRSEox3gio=
In-Reply-To: <U08dM.3507590$iU59.3142722@fx14.iad>
Content-Language: en-US
 by: BGB - Wed, 31 May 2023 07:13 UTC

On 5/29/2023 3:36 PM, Scott Lurndal wrote:
> MitchAlsup <MitchAlsup@aol.com> writes:
>> On Monday, May 29, 2023 at 12:01:41=E2=80=AFPM UTC-5, Terje Mathisen wrote:
>>> luke.l...@gmail.com wrote:=20
>>>> On Monday, May 29, 2023 at 11:36:13=E2=80=AFAM UTC+1, Terje Mathisen wr=
>> ote:=20
>>>> =20
>>>>>> But I don't see that on the horizon any time soon - presumably, 128-b=
>> it=20
>>>>>> IEEE will be used instead (Like POWER does).=20
>>>>>> =20
>>>>> Absolutely correct, fp128 is the only sane way forward.=20
>>>> =20
>>>> unfortunately it comes with the implication that 128-bit=20
>>>> registers are now a first-order part of the ISA, or that=20
>>>> pairs of 64-bit registers are required. at which point=20
>>>> you have to think through how to handle up to 6-in=20
>>>> 2-out register hazard management just for FMAC.=20
>>>> (there are solutions, none of them very pretty).
>> <
>>> Except we already have SIMD vector regs of 128/256/512 bits and they=20
>>> already support FMAC type operations, the only difference being that the=
>> =20
>>> indivdual parts are 32 or 64 bits.
>> <
>> Are you actually arguing that 512-bit registers are the right thing to do ?
>
> ARM's scalable vector extension allows implementations to choose
> any power of two between 128 and 2048 bits. Current extant implementations
> only support 128 bits so far as I am aware.
>
> They are certainly useful for some set of workloads; albeit
> specialized.

IMHO, going much past 128 bits likely goes into diminishing returns
territory.

For practical working sizes for data, 32/64/128 make sense.
8 and 16 bits make sense for storage or for SIMD elements.
256 or 512 are almost "too big to be useful" in most cases.

Progressively doubling the size of the registers doesn't seem to make
sense from a cost POV.

Say, for example, I would imagine that 32x 512-bit registers will cost a
fair bit more than 32x 128-bit registers.

But, what can one "actually do with them" to justify the additional
costs?...

OTOH, paired 64-bit registers, while not necessarily the most elegant
solution, does seem to make sense in terms of implementation cost (or,
at least, vs having 128-bit registers and having most of the
instructions only use 1/2 or 1/4 of the register...).

Well, also I sort of like the idea of having the Lane 1 and 2 units
combine for 128-bit ops. In the design, most of the units are actually
only 64-bit internally, and one needs redundant units for ILP reasons.

If the 128-bit ops can be done through the 64-bit units, this seems good
(well, except that 128 bit ADD/SUB/CMPxx requires a carry-bit dependency
between the units).

....

But, implicitly, such a scheme does not give any obvious way to expand
things further.

Re: The synergy of type tags on register file registers

<b8a592bb-c28d-4be0-b261-77d7571e6cban@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32505&group=comp.arch#32505

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:1a03:b0:3f3:9080:dfa2 with SMTP id f3-20020a05622a1a0300b003f39080dfa2mr1326478qtb.12.1685537022487;
Wed, 31 May 2023 05:43:42 -0700 (PDT)
X-Received: by 2002:a05:6871:6b97:b0:19f:aaf2:db02 with SMTP id
zh23-20020a0568716b9700b0019faaf2db02mr766327oab.5.1685537022077; Wed, 31 May
2023 05:43:42 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Wed, 31 May 2023 05:43:41 -0700 (PDT)
In-Reply-To: <f0cfdc42-c261-4189-9eec-b143e8adb506n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=136.50.14.162; posting-account=AoizIQoAAADa7kQDpB0DAj2jwddxXUgl
NNTP-Posting-Host: 136.50.14.162
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<c2bde3aa-0851-4d6a-853c-4d86e0f6d932n@googlegroups.com> <8592c1d6-237d-4700-92df-e80768deb54bn@googlegroups.com>
<e141ae62-68a2-43fd-ac04-9213e2dfa0b5n@googlegroups.com> <d79ddd12-533d-4369-b6db-e14adefcacb8n@googlegroups.com>
<4f54444c-673d-48c7-a9b9-383233b0b608n@googlegroups.com> <05c50c9e-122a-4e12-b762-abf56ecaf5ben@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de>
<u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de>
<u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<u52llu$1hhcg$1@dont-email.me> <de07d460-5a41-43bc-90dc-ccbf200c70a2n@googlegroups.com>
<u5321v$1kcaf$1@dont-email.me> <f0cfdc42-c261-4189-9eec-b143e8adb506n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b8a592bb-c28d-4be0-b261-77d7571e6cban@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: jim.brakefield@ieee.org (JimBrakefield)
Injection-Date: Wed, 31 May 2023 12:43:42 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: JimBrakefield - Wed, 31 May 2023 12:43 UTC

On Monday, May 29, 2023 at 5:43:01 PM UTC-5, luke.l...@gmail.com wrote:
> On Monday, May 29, 2023 at 9:30:59 PM UTC+1, Terje Mathisen wrote:
>
> > Demanding separate opcodes for every possible size SIMD is NOT the
> > proper way to do it.
> according to Intel
>
> ...with AVX AVX2 AVX-512 and the mad number
> of subsets and the mental number of times the registers have
> been extended....
>
> it most certainly is the best possible way!
> https://en.wikipedia.org/wiki/Advanced_Vector_Extensions
>
> (and what size and combinatorial-explosion of instruction-lengths
> are they up to now, with over 10,000 instructions?)
>
> l.

It is possible to extend the register type field to support AVX/SIMD data: four types, four sizes and
1 to 64 repetitions, all info (~10 bits) present in extended load/store instructions? Additional types
such as complex, quaternion, RGB-alpha, ... should be considered/provisioned?

Speaking from software experience, every increase in data dimensionality calls for an order of magnitude
more subroutines/op-codes. E.g. scalar versus vector (signal processing) versus matrix (image processing), ...

An FPGA coprocessor would be ideal as it could handle wide data, except at one eighth the speed?
(only add the instructions needed for a specific job instead of the hundreds/thousands
needed in an all encompassing ISA). Would expect the FPGA manufacturers are working on this?

That said, VVM is the more pleasant approach.
Of course we already have FPGAs with multiple ARM cores,
and ARM cores keep getting faster. x86-64 is late to the party?
Would be useful if there was a basic/open VVM implementation to build on?

Re: The synergy of type tags on register file registers

<u57ond$2edvp$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32506&group=comp.arch#32506

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: sfuld@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Wed, 31 May 2023 08:22:18 -0700
Organization: A noiseless patient Spider
Lines: 28
Message-ID: <u57ond$2edvp$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com>
<u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me>
<u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at>
<u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 31 May 2023 15:22:21 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="f8eaa374da1b9a5646b2db64adf9314c";
logging-data="2570233"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19oRv37Ne9Od5eJFpEZYSJDuFKfb8mJYfM="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:dmruwGxLa2QsW8j8vQrYCTFCKhY=
In-Reply-To: <2023May31.075457@mips.complang.tuwien.ac.at>
Content-Language: en-US
 by: Stephen Fuld - Wed, 31 May 2023 15:22 UTC

On 5/30/2023 10:54 PM, Anton Ertl wrote:
> Stephen Fuld <sfuld@alumni.cmu.edu.invalid> writes:
>> But then how do you propose
>> handling 128 bit arithmetic (both integer and floating), assuming these
>> are requirements? ISTM that if you don't use paired registers, then you
>> have to double the number of register specifiers in each ALU
>> instruction or do something like Mitch's instruction modifier mechanism
>> or go to 128 bit registers.
>
> 128-bit registers look fine to me. AMD64 has them already (the xmm
> registers), ARMv8-A has them already (and I think ARMv7-A, too;
> ARMv9-A is an extension of ARMv8.5-A, and so also supports these
> registers). So you just need to add the instructions that use them
> for computing with 128-bit values.

Fair enough. I agree with Mitch in that I don't like the separate SIMD
register approach, preferring VVM, but that would mean 128 bit GPRs,
which we are not ready for yet. (The key word here is yet. I expect
they will come.) If 128 bit arithmetic becomes popular, and it is only
implemented in the SIMD registers, you could end up with something like
the 68000 with separate data versus address registers. :-(

--
- Stephen Fuld
(e-mail address disguised to prevent spam)

Re: The synergy of type tags on register file registers

<0001HW.2A27AF6B0057706970000E21238F@news.individual.net>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32507&group=comp.arch#32507

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: findlaybill@blueyonder.co.uk (Bill Findlay)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Wed, 31 May 2023 17:38:03 +0100
Organization: none
Lines: 25
Message-ID: <0001HW.2A27AF6B0057706970000E21238F@news.individual.net>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com> <d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at>
Reply-To: findlaybill@blueyonder.co.uk
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Trace: individual.net 5pHVAAwB0WDawPdVH1ctmAIJX3JmApGy7THD0ZCebqvIyj3x88
X-Orig-Path: not-for-mail
Cancel-Lock: sha1:mEK4c+P80AmbAJUmcK0HZUXoQbc=
User-Agent: Hogwasher/5.24
 by: Bill Findlay - Wed, 31 May 2023 16:38 UTC

On 31 May 2023, Anton Ertl wrote
(in article<2023May31.075457@mips.complang.tuwien.ac.at>):

> Stephen Fuld<sfuld@alumni.cmu.edu.invalid> writes:
> > But then how do you propose
> > handling 128 bit arithmetic (both integer and floating), assuming these
> > are requirements? ISTM that if you don't use paired registers, then you
> > have to double the number of register specifiers in each ALU
> > instruction or do something like Mitch's instruction modifier mechanism
> > or go to 128 bit registers.
>
> 128-bit registers look fine to me. AMD64 has them already (the xmm
> registers), ARMv8-A has them already (and I think ARMv7-A, too;
> ARMv9-A is an extension of ARMv8.5-A, and so also supports these
> registers). So you just need to add the instructions that use them
> for computing with 128-bit values.
>
> - anton

The ICL 2900 had a 128-bit arithmetic register (top-of-stack) 50 years ago.

--
Bill Findlay

Re: The synergy of type tags on register file registers

<ea6645b7-ed35-4274-93f5-af5bedf05fa4n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32508&group=comp.arch#32508

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:a4e:b0:626:a87:283b with SMTP id ee14-20020a0562140a4e00b006260a87283bmr953967qvb.0.1685551577877;
Wed, 31 May 2023 09:46:17 -0700 (PDT)
X-Received: by 2002:a05:6870:989b:b0:19f:57e3:408 with SMTP id
eg27-20020a056870989b00b0019f57e30408mr1216278oab.4.1685551577600; Wed, 31
May 2023 09:46:17 -0700 (PDT)
Path: i2pn2.org!i2pn.org!news.1d4.us!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Wed, 31 May 2023 09:46:17 -0700 (PDT)
In-Reply-To: <0001HW.2A27AF6B0057706970000E21238F@news.individual.net>
Injection-Info: google-groups.googlegroups.com; posting-host=99.251.79.92; posting-account=QId4bgoAAABV4s50talpu-qMcPp519Eb
NNTP-Posting-Host: 99.251.79.92
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de>
<u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de>
<u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me>
<2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me>
<2023May31.075457@mips.complang.tuwien.ac.at> <0001HW.2A27AF6B0057706970000E21238F@news.individual.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ea6645b7-ed35-4274-93f5-af5bedf05fa4n@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: robfi680@gmail.com (robf...@gmail.com)
Injection-Date: Wed, 31 May 2023 16:46:17 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3875
 by: robf...@gmail.com - Wed, 31 May 2023 16:46 UTC

On Wednesday, May 31, 2023 at 12:38:08 PM UTC-4, Bill Findlay wrote:
> On 31 May 2023, Anton Ertl wrote
> (in article<2023May3...@mips.complang.tuwien.ac.at>):
> > Stephen Fuld<sf...@alumni.cmu.edu.invalid> writes:
> > > But then how do you propose
> > > handling 128 bit arithmetic (both integer and floating), assuming these
> > > are requirements? ISTM that if you don't use paired registers, then you
> > > have to double the number of register specifiers in each ALU
> > > instruction or do something like Mitch's instruction modifier mechanism
> > > or go to 128 bit registers.
> >
> > 128-bit registers look fine to me. AMD64 has them already (the xmm
> > registers), ARMv8-A has them already (and I think ARMv7-A, too;
> > ARMv9-A is an extension of ARMv8.5-A, and so also supports these
> > registers). So you just need to add the instructions that use them
> > for computing with 128-bit values.
> >
> > - anton
> The ICL 2900 had a 128-bit arithmetic register (top-of-stack) 50 years ago.
>
> --
> Bill Findlay

128-bit registers have been spec’d out for the Thor ISA basically because of
128-bit DFP. Current implementation is limited to 64-bits. It is tempting to do
the FP arithmetic in software and stay with 64-bit registers.

Personally, I am liking the SIMD approach, even though ugly. 512-bit cache-line
wide buckets. With some tag bits somewhere to specify the format.

Researching CORDIC ATM and I am reminded of IIR filters. Can CORDIC be
implemented with a modified IIR? Pondering adding filtering functions to Thor.

Supporting interruptible “micro-code” in Thor. The low order bits of the PC are
the micro-code address. Normally these bits are zero. I am wondering how
many bits to dedicate to micro-code. I am thinking 12-bits would be plenty.
But fewer bits would be better. The micro-code is just a dedicated table of
Thor ISA instructions used to implement macro instructions. How much
micro-code is required to implement FP functions like tan, tanh, etc?

Re: The synergy of type tags on register file registers

<u57v63$2f5km$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32509&group=comp.arch#32509

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: cr88192@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Wed, 31 May 2023 12:12:33 -0500
Organization: A noiseless patient Spider
Lines: 86
Message-ID: <u57v63$2f5km$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com>
<u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me>
<u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at>
<u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at>
<u57ond$2edvp$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 31 May 2023 17:12:35 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="a0d7a169597a070063d59e531f460720";
logging-data="2594454"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18OdiSiBXexDrNYz7FQlKyg"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:8UUDrgc1Hhpax/qN5+RwF9E8DY4=
In-Reply-To: <u57ond$2edvp$1@dont-email.me>
Content-Language: en-US
 by: BGB - Wed, 31 May 2023 17:12 UTC

On 5/31/2023 10:22 AM, Stephen Fuld wrote:
> On 5/30/2023 10:54 PM, Anton Ertl wrote:
>> Stephen Fuld <sfuld@alumni.cmu.edu.invalid> writes:
>>> But then how do you propose
>>> handling 128 bit arithmetic (both integer and floating), assuming these
>>> are requirements?  ISTM that if you don't use paired registers, then you
>>>   have to double the number of register specifiers in each ALU
>>> instruction or do something like Mitch's instruction modifier mechanism
>>> or go to 128 bit registers.
>>
>> 128-bit registers look fine to me.  AMD64 has them already (the xmm
>> registers), ARMv8-A has them already (and I think ARMv7-A, too;
>> ARMv9-A is an extension of ARMv8.5-A, and so also supports these
>> registers).  So you just need to add the instructions that use them
>> for computing with 128-bit values.
>
> Fair enough.  I agree with Mitch in that I don't like the separate SIMD
> register approach, preferring VVM, but that would mean 128 bit GPRs,
> which we are not ready for yet. (The key word here is yet.  I expect
> they will come.)  If 128 bit arithmetic becomes popular, and it is only
> implemented in the SIMD registers, you could end up with something like
> the 68000 with separate data versus address registers.  :-(
>

I would personally much rather see a single unified register file, in
any case.

An ISA with 128-bit GPRs would be the more preferable option, and one
could likely use the large registers either for a large address space,
or maybe bounds-checked access or capabilities.

Say, Array Pointer:
( 63: 0): Address Field
( 83: 64): Array Size (Scaled)
(103: 84): Array Lower Bias
(108:104): Array Scale / Exponent
(111:109): Array RWX Mode
(123:112): Array Element Tag
(127:124): Top-Level Tag (Say, 0011 for Array)

Could still need fine adjustment, potentially 20 bits is overkill for
the size field when combined with an exponent.
Say, if we allow an 8B alignment, this allows an array that is 8MB which
is, most likely, going to be page-aligned.

If we assume a 4K alignment, this allows up to 4GB. OTOH, if the field
were smaller, this would mean more likely needing to pad arrays in many
cases.

Main drawback being that, if the program is primarily working with
32-bit 'int' values, then 128-bit registers would be kind of a waste.

It is usually only in edge cases that 128-bit integers really "make
sense", and even then, existing C compilers tend to not support them.

Like, if on many targets, if one does "__int128", the compiler is like
"Not supported on this target", this is a disincentive to use them, and
means that typically the program will (at most) end up only using half
the register.

Though, could have the amusing property if, say, one supports fixnum's,
and the fixnum ends up having a larger value range than C's 'long' and
'long long' types...

Other concerns:
Resource cost would likely be higher, as now supporting superscalar is a
bit more of an ask;
Maximum clock speed would likely be lower;
....

Could be OK for a 1-wide scalar machine though (or maybe a future 2-wide
superscalar).

But, yeah, could work...

>
>

Re: The synergy of type tags on register file registers

<4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32526&group=comp.arch#32526

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:1ca:b0:3f6:bb7b:b93e with SMTP id t10-20020a05622a01ca00b003f6bb7bb93emr2198311qtw.4.1685581485787;
Wed, 31 May 2023 18:04:45 -0700 (PDT)
X-Received: by 2002:aca:3407:0:b0:38e:a040:2a30 with SMTP id
b7-20020aca3407000000b0038ea0402a30mr2213722oia.5.1685581485547; Wed, 31 May
2023 18:04:45 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Wed, 31 May 2023 18:04:45 -0700 (PDT)
In-Reply-To: <u57v63$2f5km$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2607:fea8:1dde:6a00:14e3:a3b9:6eb9:d1c1;
posting-account=QId4bgoAAABV4s50talpu-qMcPp519Eb
NNTP-Posting-Host: 2607:fea8:1dde:6a00:14e3:a3b9:6eb9:d1c1
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de>
<u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de>
<u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me>
<2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me>
<2023May31.075457@mips.complang.tuwien.ac.at> <u57ond$2edvp$1@dont-email.me> <u57v63$2f5km$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: robfi680@gmail.com (robf...@gmail.com)
Injection-Date: Thu, 01 Jun 2023 01:04:45 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 7392
 by: robf...@gmail.com - Thu, 1 Jun 2023 01:04 UTC

On Wednesday, May 31, 2023 at 1:12:39 PM UTC-4, BGB wrote:
> On 5/31/2023 10:22 AM, Stephen Fuld wrote:
> > On 5/30/2023 10:54 PM, Anton Ertl wrote:
> >> Stephen Fuld <sf...@alumni.cmu.edu.invalid> writes:
> >>> But then how do you propose
> >>> handling 128 bit arithmetic (both integer and floating), assuming these
> >>> are requirements? ISTM that if you don't use paired registers, then you
> >>> have to double the number of register specifiers in each ALU
> >>> instruction or do something like Mitch's instruction modifier mechanism
> >>> or go to 128 bit registers.
> >>
> >> 128-bit registers look fine to me. AMD64 has them already (the xmm
> >> registers), ARMv8-A has them already (and I think ARMv7-A, too;
> >> ARMv9-A is an extension of ARMv8.5-A, and so also supports these
> >> registers). So you just need to add the instructions that use them
> >> for computing with 128-bit values.
> >
> > Fair enough. I agree with Mitch in that I don't like the separate SIMD
> > register approach, preferring VVM, but that would mean 128 bit GPRs,
> > which we are not ready for yet. (The key word here is yet. I expect
> > they will come.) If 128 bit arithmetic becomes popular, and it is only
> > implemented in the SIMD registers, you could end up with something like
> > the 68000 with separate data versus address registers. :-(
> >
> I would personally much rather see a single unified register file, in
> any case.
>
>
> An ISA with 128-bit GPRs would be the more preferable option, and one
> could likely use the large registers either for a large address space,
> or maybe bounds-checked access or capabilities.
>
>
> Say, Array Pointer:
> ( 63: 0): Address Field
> ( 83: 64): Array Size (Scaled)
> (103: 84): Array Lower Bias
> (108:104): Array Scale / Exponent
> (111:109): Array RWX Mode
> (123:112): Array Element Tag
> (127:124): Top-Level Tag (Say, 0011 for Array)
>
> Could still need fine adjustment, potentially 20 bits is overkill for
> the size field when combined with an exponent.
> Say, if we allow an 8B alignment, this allows an array that is 8MB which
> is, most likely, going to be page-aligned.
>
> If we assume a 4K alignment, this allows up to 4GB. OTOH, if the field
> were smaller, this would mean more likely needing to pad arrays in many
> cases.
>
>
> Main drawback being that, if the program is primarily working with
> 32-bit 'int' values, then 128-bit registers would be kind of a waste.
>
>
> It is usually only in edge cases that 128-bit integers really "make
> sense", and even then, existing C compilers tend to not support them.
>
> Like, if on many targets, if one does "__int128", the compiler is like
> "Not supported on this target", this is a disincentive to use them, and
> means that typically the program will (at most) end up only using half
> the register.
>
>
> Though, could have the amusing property if, say, one supports fixnum's,
> and the fixnum ends up having a larger value range than C's 'long' and
> 'long long' types...
>
>
> Other concerns:
> Resource cost would likely be higher, as now supporting superscalar is a
> bit more of an ask;
> Maximum clock speed would likely be lower;
> ...
>
> Could be OK for a 1-wide scalar machine though (or maybe a future 2-wide
> superscalar).
>
>
> But, yeah, could work...
>
>
> >
> >
I think 64-bits for the address field may not be enough for a virtual address. I
seem to recall a demand for 100-bit addressing in an alternate reality, but that
is probably quite a few years away. I also think it is better to have registers
just as a plain bucket. As soon as structure is added the design is stuck with
it. A separate tags file associated with registers might be easier to manage.

I am not so sure about the slowness of a superscalar. I think it may have more
to do with how full the FPGA is, the size and style of the design. I have been
able to hit close to 50 MHz timing according to the tools. I think 50 MHz is on
par with many other FPGA designs. Even if it is a few MHz slower the ability of
OoO to hide latency may make it worth it.

*****
I cannot believe I ignored Cordic for so long, having discovered its beauty..
Answering my own engineering question, 10-bits max micro-code it is; that
should be overkill. It should not take very many, if any micro-code words for
basic trig. Previously seven bits were used for Thor2021, but only about a half
dozen non-math instructions were micro-coded.

Having done some head scratching over cordic and how to calculate the tan,
I am thinking of just providing a cordic instruction that takes all three
arguments and calculates away, and then leave it up to the programmer to
decide on operands and what is being calculated. I get how to calculate sin
and cosine via cordic and I think tan finally. Specifying that x, y must be
fractions between 0 and 1, and that the angle must be radians between 0
and 2 pi.

I gather that modern processor do not use Cordic, and use polynomial
expansions instead.

For Thor Cordic is calculated out to 61-bits as that is eight more than the
53-bit significand.

13k LUTs to implement parallel cordic. So, switched to sequential cordic:
1.5 k LUTs. Might be supportable.

Re: The synergy of type tags on register file registers

<b510bc37-bbd4-474b-8023-5bc607012f4dn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32528&group=comp.arch#32528

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ad4:5994:0:b0:626:1900:1bcf with SMTP id ek20-20020ad45994000000b0062619001bcfmr1179152qvb.9.1685584225067;
Wed, 31 May 2023 18:50:25 -0700 (PDT)
X-Received: by 2002:aca:d943:0:b0:397:f105:6835 with SMTP id
q64-20020acad943000000b00397f1056835mr1989810oig.2.1685584224821; Wed, 31 May
2023 18:50:24 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!panix!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Wed, 31 May 2023 18:50:24 -0700 (PDT)
In-Reply-To: <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:354b:b6ba:60f:eb7e;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:354b:b6ba:60f:eb7e
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de>
<u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de>
<u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me>
<2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me>
<2023May31.075457@mips.complang.tuwien.ac.at> <u57ond$2edvp$1@dont-email.me>
<u57v63$2f5km$1@dont-email.me> <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b510bc37-bbd4-474b-8023-5bc607012f4dn@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Thu, 01 Jun 2023 01:50:25 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 8641
 by: MitchAlsup - Thu, 1 Jun 2023 01:50 UTC

On Wednesday, May 31, 2023 at 8:04:47 PM UTC-5, robf...@gmail.com wrote:
> On Wednesday, May 31, 2023 at 1:12:39 PM UTC-4, BGB wrote:
> > On 5/31/2023 10:22 AM, Stephen Fuld wrote:
> > > On 5/30/2023 10:54 PM, Anton Ertl wrote:
> > >> Stephen Fuld <sf...@alumni.cmu.edu.invalid> writes:
> > >>> But then how do you propose
> > >>> handling 128 bit arithmetic (both integer and floating), assuming these
> > >>> are requirements? ISTM that if you don't use paired registers, then you
> > >>> have to double the number of register specifiers in each ALU
> > >>> instruction or do something like Mitch's instruction modifier mechanism
> > >>> or go to 128 bit registers.
> > >>
> > >> 128-bit registers look fine to me. AMD64 has them already (the xmm
> > >> registers), ARMv8-A has them already (and I think ARMv7-A, too;
> > >> ARMv9-A is an extension of ARMv8.5-A, and so also supports these
> > >> registers). So you just need to add the instructions that use them
> > >> for computing with 128-bit values.
> > >
> > > Fair enough. I agree with Mitch in that I don't like the separate SIMD
> > > register approach, preferring VVM, but that would mean 128 bit GPRs,
> > > which we are not ready for yet. (The key word here is yet. I expect
> > > they will come.) If 128 bit arithmetic becomes popular, and it is only
> > > implemented in the SIMD registers, you could end up with something like
> > > the 68000 with separate data versus address registers. :-(
> > >
> > I would personally much rather see a single unified register file, in
> > any case.
> >
> >
> > An ISA with 128-bit GPRs would be the more preferable option, and one
> > could likely use the large registers either for a large address space,
> > or maybe bounds-checked access or capabilities.
> >
> >
> > Say, Array Pointer:
> > ( 63: 0): Address Field
> > ( 83: 64): Array Size (Scaled)
> > (103: 84): Array Lower Bias
> > (108:104): Array Scale / Exponent
> > (111:109): Array RWX Mode
> > (123:112): Array Element Tag
> > (127:124): Top-Level Tag (Say, 0011 for Array)
> >
> > Could still need fine adjustment, potentially 20 bits is overkill for
> > the size field when combined with an exponent.
> > Say, if we allow an 8B alignment, this allows an array that is 8MB which
> > is, most likely, going to be page-aligned.
> >
> > If we assume a 4K alignment, this allows up to 4GB. OTOH, if the field
> > were smaller, this would mean more likely needing to pad arrays in many
> > cases.
> >
> >
> > Main drawback being that, if the program is primarily working with
> > 32-bit 'int' values, then 128-bit registers would be kind of a waste.
> >
> >
> > It is usually only in edge cases that 128-bit integers really "make
> > sense", and even then, existing C compilers tend to not support them.
> >
> > Like, if on many targets, if one does "__int128", the compiler is like
> > "Not supported on this target", this is a disincentive to use them, and
> > means that typically the program will (at most) end up only using half
> > the register.
> >
> >
> > Though, could have the amusing property if, say, one supports fixnum's,
> > and the fixnum ends up having a larger value range than C's 'long' and
> > 'long long' types...
> >
> >
> > Other concerns:
> > Resource cost would likely be higher, as now supporting superscalar is a
> > bit more of an ask;
> > Maximum clock speed would likely be lower;
> > ...
> >
> > Could be OK for a 1-wide scalar machine though (or maybe a future 2-wide
> > superscalar).
> >
> >
> > But, yeah, could work...
> >
> >
> > >
> > >
> I think 64-bits for the address field may not be enough for a virtual address. I
> seem to recall a demand for 100-bit addressing in an alternate reality, but that
> is probably quite a few years away. I also think it is better to have registers
> just as a plain bucket. As soon as structure is added the design is stuck with
> it. A separate tags file associated with registers might be easier to manage.
>
> I am not so sure about the slowness of a superscalar. I think it may have more
> to do with how full the FPGA is, the size and style of the design. I have been
> able to hit close to 50 MHz timing according to the tools. I think 50 MHz is on
> par with many other FPGA designs. Even if it is a few MHz slower the ability of
> OoO to hide latency may make it worth it.
>
> *****
> I cannot believe I ignored Cordic for so long, having discovered its beauty.
<
Beautiful and slow as crap.
<
> Answering my own engineering question, 10-bits max micro-code it is; that
> should be overkill. It should not take very many, if any micro-code words for
> basic trig. Previously seven bits were used for Thor2021, but only about a half
> dozen non-math instructions were micro-coded.
>
> Having done some head scratching over cordic and how to calculate the tan,
> I am thinking of just providing a cordic instruction that takes all three
> arguments and calculates away, and then leave it up to the programmer to
> decide on operands and what is being calculated. I get how to calculate sin
> and cosine via cordic and I think tan finally. Specifying that x, y must be
> fractions between 0 and 1, and that the angle must be radians between 0
> and 2 pi.
>
> I gather that modern processor do not use Cordic, and use polynomial
> expansions instead.
<
Typical SW can perform tan() in 150± cycles.
My HW TMAC can do tan() in 19 or 36 cycles. between the latency of FDIV
and 2×FDIV. {This includes Payne and Hanek argument reduction.}
>
> For Thor Cordic is calculated out to 61-bits as that is eight more than the
> 53-bit significand.
>
> 13k LUTs to implement parallel cordic. So, switched to sequential cordic:
> 1.5 k LUTs. Might be supportable.
<
How many cycles of latency ?
<
For My 66000 TMAC unit::
................float...............double
sin()..........11...................19
cos().........11...................19
tan().......11-22..............19-33
ln2()............9...................15
exp2().........9...................15
atan2().....26....................36
pow()........21...................34
{including all argument reduction, polynomial evaluation, and reconstruction}

Re: The synergy of type tags on register file registers

<u599dn$2n0ne$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32531&group=comp.arch#32531

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: cr88192@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Thu, 1 Jun 2023 00:13:26 -0500
Organization: A noiseless patient Spider
Lines: 330
Message-ID: <u599dn$2n0ne$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com>
<u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me>
<u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at>
<u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at>
<u57ond$2edvp$1@dont-email.me> <u57v63$2f5km$1@dont-email.me>
<4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 1 Jun 2023 05:13:27 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="1a7264050c91b7a070a45b2f6739bf59";
logging-data="2851566"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Ut5gcMdAA1hH5nbB1zSkw"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:egYXk0FqdWwXHyXjdBVMqKCxIRw=
In-Reply-To: <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
Content-Language: en-US
 by: BGB - Thu, 1 Jun 2023 05:13 UTC

On 5/31/2023 8:04 PM, robf...@gmail.com wrote:
> On Wednesday, May 31, 2023 at 1:12:39 PM UTC-4, BGB wrote:
>> On 5/31/2023 10:22 AM, Stephen Fuld wrote:
>>> On 5/30/2023 10:54 PM, Anton Ertl wrote:
>>>> Stephen Fuld <sf...@alumni.cmu.edu.invalid> writes:
>>>>> But then how do you propose
>>>>> handling 128 bit arithmetic (both integer and floating), assuming these
>>>>> are requirements? ISTM that if you don't use paired registers, then you
>>>>> have to double the number of register specifiers in each ALU
>>>>> instruction or do something like Mitch's instruction modifier mechanism
>>>>> or go to 128 bit registers.
>>>>
>>>> 128-bit registers look fine to me. AMD64 has them already (the xmm
>>>> registers), ARMv8-A has them already (and I think ARMv7-A, too;
>>>> ARMv9-A is an extension of ARMv8.5-A, and so also supports these
>>>> registers). So you just need to add the instructions that use them
>>>> for computing with 128-bit values.
>>>
>>> Fair enough. I agree with Mitch in that I don't like the separate SIMD
>>> register approach, preferring VVM, but that would mean 128 bit GPRs,
>>> which we are not ready for yet. (The key word here is yet. I expect
>>> they will come.) If 128 bit arithmetic becomes popular, and it is only
>>> implemented in the SIMD registers, you could end up with something like
>>> the 68000 with separate data versus address registers. :-(
>>>
>> I would personally much rather see a single unified register file, in
>> any case.
>>
>>
>> An ISA with 128-bit GPRs would be the more preferable option, and one
>> could likely use the large registers either for a large address space,
>> or maybe bounds-checked access or capabilities.
>>
>>
>> Say, Array Pointer:
>> ( 63: 0): Address Field
>> ( 83: 64): Array Size (Scaled)
>> (103: 84): Array Lower Bias
>> (108:104): Array Scale / Exponent
>> (111:109): Array RWX Mode
>> (123:112): Array Element Tag
>> (127:124): Top-Level Tag (Say, 0011 for Array)
>>
>> Could still need fine adjustment, potentially 20 bits is overkill for
>> the size field when combined with an exponent.
>> Say, if we allow an 8B alignment, this allows an array that is 8MB which
>> is, most likely, going to be page-aligned.
>>
>> If we assume a 4K alignment, this allows up to 4GB. OTOH, if the field
>> were smaller, this would mean more likely needing to pad arrays in many
>> cases.
>>
>>
>> Main drawback being that, if the program is primarily working with
>> 32-bit 'int' values, then 128-bit registers would be kind of a waste.
>>
>>
>> It is usually only in edge cases that 128-bit integers really "make
>> sense", and even then, existing C compilers tend to not support them.
>>
>> Like, if on many targets, if one does "__int128", the compiler is like
>> "Not supported on this target", this is a disincentive to use them, and
>> means that typically the program will (at most) end up only using half
>> the register.
>>
>>
>> Though, could have the amusing property if, say, one supports fixnum's,
>> and the fixnum ends up having a larger value range than C's 'long' and
>> 'long long' types...
>>
>>
>> Other concerns:
>> Resource cost would likely be higher, as now supporting superscalar is a
>> bit more of an ask;
>> Maximum clock speed would likely be lower;
>> ...
>>
>> Could be OK for a 1-wide scalar machine though (or maybe a future 2-wide
>> superscalar).
>>
>>
>> But, yeah, could work...
>>
>>
>>>
>>>
> I think 64-bits for the address field may not be enough for a virtual address. I
> seem to recall a demand for 100-bit addressing in an alternate reality, but that
> is probably quite a few years away. I also think it is better to have registers
> just as a plain bucket. As soon as structure is added the design is stuck with
> it. A separate tags file associated with registers might be easier to manage.
>

It is a tradeoff.

As-is, I have 96-bit, but this is likely overkill.

As noted, the registers themselves would be unstructured, but operations
on those registers could assume a certain amount of structure.

Sort of like, how 4x Binary32 SIMD ops, kinda assume that the vector is
4x Binary32.

As noted, pointer formats in my case are basically:
(47: 0): Address
(59:48): Type-Tag / Etc
(63:60): Top-Level Tag

But, for the most part, Load/Store ops, etc ignore the high 16 bits.

But, say, the top 4 bits are:
0000: Basic (Object) pointer
0001: Small Value Spaces
0010: Bound Array
0011: Bound Array
01xx: Fixnum (62 bit)
10xx: Flonum (62 bit)
1100: TagArray + Base Offset
1101: Dense Vector
1110: Typed Pointer
1111: Extended 60-bit Linear Address (Optional, 1)

1: This format would effectively map a 64-bit pointer to a range of
multiple "quadrants" (or, possibly a table of locations within the
larger 96-bit address space).

There is a 128-bit format:
( 47: 0): Address (Low 48-bits)
( 59: 48): Type-Tag / Etc
( 63: 60): Top-Level Tag
(111: 64): Address (High 48-bits)
(127:112): Additional Tag Metadata

The formats for bounded-arrays are expanded somewhat.

The Fixnum an Flonum formats would expand to 124 bits in this case.

Current format for function pointers and link register is:
( 0): Inter-ISA Bit
(47: 1): Address
(63:48): Mode Flags

If Addr(0) is 0, the high 16 bits are ignored (or Trap if the Link
Register is expected). If 1, the high bits encode the operating mode and
similar.

High bits:
* (63:56), Saved SR(15: 8), U0..U7
* (55:52), Saved SR(23:20), WX3, WX4, WM1, WM2
* (51:50), Saved SR(27:26), WXE, WX2
* (49:48), Saved SR( 1: 0), S and T

The WXn and WMn bits encode the operating mode (BJX2 vs XG2 vs RV64 vs
XG2RV).

U0..U7 are user-defined or context-dependent flag bits (2).

S and T are the values of the S and T flag bits (in the current form of
the ISA, these are saved across function calls as this makes it possible
to predicate blocks with function calls).

2: In an x86 emulator, it is possible that these could be used as a
stand-in for ALU status flags or similar. These are also preserved
across function calls. They may also be used for more complex
predication (predicating based on logical relations between U-bits).

> I am not so sure about the slowness of a superscalar. I think it may have more
> to do with how full the FPGA is, the size and style of the design. I have been
> able to hit close to 50 MHz timing according to the tools. I think 50 MHz is on
> par with many other FPGA designs. Even if it is a few MHz slower the ability of
> OoO to hide latency may make it worth it.
>

Issue is mostly "net delay" (and to an extent, "fanout"):
The bulkier/wider/etc the logic gets, the slower it gets...

And, say, one can do a "simple 16-bit machine" and run it at 200 MHz.
But, not so much anything much bigger than said simple 16-bit machine.

Or a 32-bit machine running at 100MHz (say, MicroBlaze falls in here).

But, a 3-wide 64-bit machine is limited to around 50 MHz.
Had gotten 1-wide variants running at 100 MHz, but not reliably.
A 1-wide core running at 75 MHz is a little easier to pull off though.

Making the caches bigger also make them slower, etc.

But, going from 64-bit to 128-bit is likely to result in a notable
increase in area (particularly for superscalar or VLIW), which is likely
going to make the "net delay" issues a lot worse.

For 128-bit, one might end up, say, with a scalar machine that runs at
50 MHz, but if they want to go 2-wide, they need to drop it to 33 or 25 MHz.

On the other side, 32-bit machines, while one can get them running at
potentially 100 or (maybe) 150 MHz, are more limited in some areas (and
32-bit is started to look a little "stale" at this point).

While a 16-bit core can get a higher clock-speed, a 16-bit machine is
too limited to really accomplish a whole lot (and pretty much anything
one can do to make it "actually useful" would either come at the expense
of reducing clock speed, or taking too many clock cycles to give it much
of an advantage).

But, yeah, the limitation for MHz on FPGA seems to be more about how
long it takes signals to propagate around the FPGA, rather than about
the speed of the individual LUTs and similar.

So, if a given piece of FPGA logic is small, it can be internally run at
a higher clock-speed. Though, for external IO, one is limited some in
that one can't drive the pins much faster than around 100 MHz without
using SERDES.


Click here to read the complete article
Re: The synergy of type tags on register file registers

<2023Jun1.081845@mips.complang.tuwien.ac.at>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32532&group=comp.arch#32532

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!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: The synergy of type tags on register file registers
Date: Thu, 01 Jun 2023 06:18:45 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 15
Message-ID: <2023Jun1.081845@mips.complang.tuwien.ac.at>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com> <d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at> <u57ond$2edvp$1@dont-email.me>
Injection-Info: dont-email.me; posting-host="8ee7aadf0c53e004ef920cf76e816ac1";
logging-data="2862497"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18ikXuOdeWZ8Rmea8/oWout"
Cancel-Lock: sha1:E0NlFakmZLOlZhjN9BZUg3tliWM=
X-newsreader: xrn 10.11
 by: Anton Ertl - Thu, 1 Jun 2023 06:18 UTC

Stephen Fuld <sfuld@alumni.cmu.edu.invalid> writes:
>If 128 bit arithmetic becomes popular, and it is only
>implemented in the SIMD registers, you could end up with something like
>the 68000 with separate data versus address registers. :-(

Yes, or the CDC 6600 A/B and X registers. But I don't expect that
128-bit arithmetic will become popular enough that popular
architectures add 128-bit instructions for them. As for 128-bit
addresses, given the slowdown in semiconductor advances, we may never
get there.

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

Re: The synergy of type tags on register file registers

<Ds1eM.858712$PXw7.741546@fx45.iad>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32536&group=comp.arch#32536

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!news.neodome.net!feeder1.feed.usenet.farm!feed.usenet.farm!peer02.ams4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx45.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: scott@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: The synergy of type tags on register file registers
Newsgroups: comp.arch
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com> <d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at> <u57ond$2edvp$1@dont-email.me> <u57v63$2f5km$1@dont-email.me> <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
Lines: 22
Message-ID: <Ds1eM.858712$PXw7.741546@fx45.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Thu, 01 Jun 2023 13:56:51 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Thu, 01 Jun 2023 13:56:51 GMT
X-Received-Bytes: 1926
 by: Scott Lurndal - Thu, 1 Jun 2023 13:56 UTC

"robf...@gmail.com" <robfi680@gmail.com> writes:
>On Wednesday, May 31, 2023 at 1:12:39=E2=80=AFPM UTC-4, BGB wrote:
>> On 5/31/2023 10:22 AM, Stephen Fuld wrote:=20
>> > On 5/30/2023 10:54 PM, Anton Ertl wrote:=20

>>=20
>> An ISA with 128-bit GPRs would be the more preferable option, and one=20
>> could likely use the large registers either for a large address space,=20
>> or maybe bounds-checked access or capabilities.=20
>>=20
>>=20
>> Say, Array Pointer:=20
>> ( 63: 0): Address Field=20
>> ( 83: 64): Array Size (Scaled)=20
>> (103: 84): Array Lower Bias=20
>> (108:104): Array Scale / Exponent=20
>> (111:109): Array RWX Mode=20
>> (123:112): Array Element Tag=20
>> (127:124): Top-Level Tag (Say, 0011 for Array)=20

See https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/

Re: The synergy of type tags on register file registers

<u5a92i$2qded$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32537&group=comp.arch#32537

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: sfuld@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Thu, 1 Jun 2023 07:13:35 -0700
Organization: A noiseless patient Spider
Lines: 26
Message-ID: <u5a92i$2qded$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de>
<u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at>
<u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at>
<u57ond$2edvp$1@dont-email.me> <2023Jun1.081845@mips.complang.tuwien.ac.at>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 1 Jun 2023 14:13:38 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="4b2d09d8cc6d8c726a577381df4fe656";
logging-data="2962893"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18gdAo/zgwH8LyhNq1lUtx0FSMerMIEvB0="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:yr71iIDB0YlEndssd0MBk1bCPFg=
Content-Language: en-US
In-Reply-To: <2023Jun1.081845@mips.complang.tuwien.ac.at>
 by: Stephen Fuld - Thu, 1 Jun 2023 14:13 UTC

On 5/31/2023 11:18 PM, Anton Ertl wrote:
> Stephen Fuld <sfuld@alumni.cmu.edu.invalid> writes:
>> If 128 bit arithmetic becomes popular, and it is only
>> implemented in the SIMD registers, you could end up with something like
>> the 68000 with separate data versus address registers. :-(
>
> Yes, or the CDC 6600 A/B and X registers. But I don't expect that
> 128-bit arithmetic will become popular enough that popular
> architectures add 128-bit instructions for them.

You may be right, or it may be a question of when, not if. Of course,
if when is a long enough time, it becomes practically indistinguishable
from when. :-)

> As for 128-bit
> addresses, given the slowdown in semiconductor advances, we may never
> get there.

Agreed, but again, it may come down to a question of when.

--
- Stephen Fuld
(e-mail address disguised to prevent spam)

Re: The synergy of type tags on register file registers

<u5aab0$2qgs6$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32538&group=comp.arch#32538

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: sfuld@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Thu, 1 Jun 2023 07:35:12 -0700
Organization: A noiseless patient Spider
Lines: 22
Message-ID: <u5aab0$2qgs6$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de>
<u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at>
<u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at>
<u57ond$2edvp$1@dont-email.me> <2023Jun1.081845@mips.complang.tuwien.ac.at>
<u5a92i$2qded$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 1 Jun 2023 14:35:13 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="4b2d09d8cc6d8c726a577381df4fe656";
logging-data="2966406"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+0WFzctrqBh0Bm2fccJlbXAdEDQhKGDXU="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:vdLD3vXdcgSVFZPsUTZoJNOaJ/0=
Content-Language: en-US
In-Reply-To: <u5a92i$2qded$1@dont-email.me>
 by: Stephen Fuld - Thu, 1 Jun 2023 14:35 UTC

On 6/1/2023 7:13 AM, Stephen Fuld wrote:
> On 5/31/2023 11:18 PM, Anton Ertl wrote:
>> Stephen Fuld <sfuld@alumni.cmu.edu.invalid> writes:
>>> If 128 bit arithmetic becomes popular, and it is only
>>> implemented in the SIMD registers, you could end up with something like
>>> the 68000 with separate data versus address registers.  :-(
>>
>> Yes, or the CDC 6600 A/B and X registers.  But I don't expect that
>> 128-bit arithmetic will become popular enough that popular
>> architectures add 128-bit instructions for them.
>
> You may be right, or it may be a question of when, not if.  Of course,
> if when is a long enough time, it becomes practically indistinguishable
> from when.  :-)

Sorry, that last "when" should have been "if". :-(

--
- Stephen Fuld
(e-mail address disguised to prevent spam)

Re: The synergy of type tags on register file registers

<cbc3b9cf-6c0d-4b1b-bb0f-3be76a313caen@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32540&group=comp.arch#32540

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:1854:b0:626:f58:481e with SMTP id d20-20020a056214185400b006260f58481emr1376986qvy.3.1685636915705;
Thu, 01 Jun 2023 09:28:35 -0700 (PDT)
X-Received: by 2002:a9d:7a95:0:b0:6af:80ca:3cb7 with SMTP id
l21-20020a9d7a95000000b006af80ca3cb7mr1997038otn.5.1685636915457; Thu, 01 Jun
2023 09:28:35 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Thu, 1 Jun 2023 09:28:35 -0700 (PDT)
In-Reply-To: <u599dn$2n0ne$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:706f:8c5c:2a38:74c0;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:706f:8c5c:2a38:74c0
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de>
<u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de>
<u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me>
<2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me>
<2023May31.075457@mips.complang.tuwien.ac.at> <u57ond$2edvp$1@dont-email.me>
<u57v63$2f5km$1@dont-email.me> <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
<u599dn$2n0ne$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <cbc3b9cf-6c0d-4b1b-bb0f-3be76a313caen@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Thu, 01 Jun 2023 16:28:35 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2193
 by: MitchAlsup - Thu, 1 Jun 2023 16:28 UTC

On Thursday, June 1, 2023 at 12:13:31 AM UTC-5, BGB wrote:
>
> > I gather that modern processor do not use Cordic, and use polynomial
> > expansions instead.
> >
> Yeah.
>
> I mostly used Taylor Series expansions and similar...
<
Chebyshev not Taylor; and sometimes Remez correction of Chebyshev
coefficients.
>

Re: The synergy of type tags on register file registers

<2023Jun1.191907@mips.complang.tuwien.ac.at>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=32542&group=comp.arch#32542

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!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: The synergy of type tags on register file registers
Date: Thu, 01 Jun 2023 17:19:07 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 12
Message-ID: <2023Jun1.191907@mips.complang.tuwien.ac.at>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com> <u52llu$1hhcg$1@dont-email.me> <de07d460-5a41-43bc-90dc-ccbf200c70a2n@googlegroups.com> <U08dM.3507590$iU59.3142722@fx14.iad>
Injection-Info: dont-email.me; posting-host="8ee7aadf0c53e004ef920cf76e816ac1";
logging-data="2997398"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18h8U4fNV57DISlBK3fb97Q"
Cancel-Lock: sha1:6Qoej9Ho8w47DFdtmO4BKR4D8CM=
X-newsreader: xrn 10.11
 by: Anton Ertl - Thu, 1 Jun 2023 17:19 UTC

scott@slp53.sl.home (Scott Lurndal) writes:
>ARM's scalable vector extension allows implementations to choose
>any power of two between 128 and 2048 bits. Current extant implementations
>only support 128 bits so far as I am aware.

The Fujitsu A64FX supports 512-bit SVE; it was one of the earliest, if
not the earliest SVE implementation.

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


devel / comp.arch / Re: The synergy of type tags on register file registers

Pages:12345678910
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor