Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

Those who can, do; those who can't, write. Those who can't write work for the Bell Labs Record.


devel / comp.arch / Re: Encoding 20 and 40 bit instructions in 128 bits

SubjectAuthor
* Encoding 20 and 40 bit instructions in 128 bitsThomas Koenig
+* Re: Encoding 20 and 40 bit instructions in 128 bitsStephen Fuld
|`* Re: Encoding 20 and 40 bit instructions in 128 bitsThomas Koenig
| +* Re: Encoding 20 and 40 bit instructions in 128 bitsStephen Fuld
| |+- Re: Encoding 20 and 40 bit instructions in 128 bitsThomas Koenig
| |+* Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
| ||`- Re: Encoding 20 and 40 bit instructions in 128 bitsStephen Fuld
| |`* Re: Encoding 20 and 40 bit instructions in 128 bitsQuadibloc
| | `* Re: Encoding 20 and 40 bit instructions in 128 bitsStephen Fuld
| |  +* Re: Encoding 20 and 40 bit instructions in 128 bitsQuadibloc
| |  |`* Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
| |  | +* Re: Encoding 20 and 40 bit instructions in 128 bitsJimBrakefield
| |  | |+* Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
| |  | ||`- Re: Encoding 20 and 40 bit instructions in 128 bitsJimBrakefield
| |  | |`* Re: Encoding 20 and 40 bit instructions in 128 bitsJimBrakefield
| |  | | +* Re: Encoding 20 and 40 bit instructions in 128 bitsEricP
| |  | | |+* Re: Encoding 20 and 40 bit instructions in 128 bitsJimBrakefield
| |  | | ||+* Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
| |  | | |||`- Re: Encoding 20 and 40 bit instructions in 128 bitsEricP
| |  | | ||`- Re: Encoding 20 and 40 bit instructions in 128 bitsEricP
| |  | | |`* Re: Encoding 20 and 40 bit instructions in 128 bitsEricP
| |  | | | `* Re: Encoding 20 and 40 bit instructions in 128 bitsThomas Koenig
| |  | | |  `* Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
| |  | | |   `* Re: Encoding 20 and 40 bit instructions in 128 bitsThomas Koenig
| |  | | |    +* Re: Encoding 20 and 40 bit instructions in 128 bitsBGB
| |  | | |    |`* Re: Encoding 20 and 40 bit instructions in 128 bitsBrett
| |  | | |    | `* Re: Encoding 20 and 40 bit instructions in 128 bitsBGB
| |  | | |    |  `* Re: Encoding 20 and 40 bit instructions in 128 bitsBrett
| |  | | |    |   +* Re: Encoding 20 and 40 bit instructions in 128 bitsQuadibloc
| |  | | |    |   |`* Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
| |  | | |    |   | `* Re: Encoding 20 and 40 bit instructions in 128 bitsThomas Koenig
| |  | | |    |   |  `* Re: Encoding 20 and 40 bit instructions in 128 bitsStephen Fuld
| |  | | |    |   |   +* Re: Encoding 20 and 40 bit instructions in 128 bitsStefan Monnier
| |  | | |    |   |   |`- Re: Encoding 20 and 40 bit instructions in 128 bitsStephen Fuld
| |  | | |    |   |   +* Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
| |  | | |    |   |   |`* Re: Encoding 20 and 40 bit instructions in 128 bitsQuadibloc
| |  | | |    |   |   | `* Re: Encoding 20 and 40 bit instructions in 128 bitsThomas Koenig
| |  | | |    |   |   |  +* Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
| |  | | |    |   |   |  |+* Re: Encoding 20 and 40 bit instructions in 128 bitsStefan Monnier
| |  | | |    |   |   |  ||+- Re: Encoding 20 and 40 bit instructions in 128 bitsBernd Linsel
| |  | | |    |   |   |  ||+- Re: Encoding 20 and 40 bit instructions in 128 bitsAnton Ertl
| |  | | |    |   |   |  ||`- Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
| |  | | |    |   |   |  |+* Re: Encoding 20 and 40 bit instructions in 128 bitsThomas Koenig
| |  | | |    |   |   |  ||`- Re: Encoding 20 and 40 bit instructions in 128 bitsBrian G. Lucas
| |  | | |    |   |   |  |`- Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
| |  | | |    |   |   |  +* Re: Encoding 20 and 40 bit instructions in 128 bitsAnton Ertl
| |  | | |    |   |   |  |`* Re: Encoding 20 and 40 bit instructions in 128 bitsThomas Koenig
| |  | | |    |   |   |  | `- Re: Encoding 20 and 40 bit instructions in 128 bitsBGB
| |  | | |    |   |   |  +* Re: Encoding 20 and 40 bit instructions in 128 bitsEricP
| |  | | |    |   |   |  |`* Re: Encoding 20 and 40 bit instructions in 128 bitsBGB
| |  | | |    |   |   |  | `* Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
| |  | | |    |   |   |  |  `* Re: Encoding 20 and 40 bit instructions in 128 bitsIvan Godard
| |  | | |    |   |   |  |   `* Re: Encoding 20 and 40 bit instructions in 128 bitsThomas Koenig
| |  | | |    |   |   |  |    `* Re: Encoding 20 and 40 bit instructions in 128 bitsIvan Godard
| |  | | |    |   |   |  |     +* Re: Encoding 20 and 40 bit instructions in 128 bitsThomas Koenig
| |  | | |    |   |   |  |     |`* Re: Encoding 20 and 40 bit instructions in 128 bitsQuadibloc
| |  | | |    |   |   |  |     | +- Re: Encoding 20 and 40 bit instructions in 128 bitsStephen Fuld
| |  | | |    |   |   |  |     | `- Re: Encoding 20 and 40 bit instructions in 128 bitsIvan Godard
| |  | | |    |   |   |  |     +* Re: Encoding 20 and 40 bit instructions in 128 bitsStefan Monnier
| |  | | |    |   |   |  |     |`- Re: Encoding 20 and 40 bit instructions in 128 bitsIvan Godard
| |  | | |    |   |   |  |     +* Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128John Levine
| |  | | |    |   |   |  |     |+* Re: instruction set binding time, was Encoding 20 and 40 bitThomas Koenig
| |  | | |    |   |   |  |     ||+* Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128Stefan Monnier
| |  | | |    |   |   |  |     |||+- Re: instruction set binding time, was Encoding 20 and 40 bitIvan Godard
| |  | | |    |   |   |  |     |||`* Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128Anton Ertl
| |  | | |    |   |   |  |     ||| +* Re: instruction set binding time, was Encoding 20 and 40 bitIvan Godard
| |  | | |    |   |   |  |     ||| |+* Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128Stefan Monnier
| |  | | |    |   |   |  |     ||| ||+- Re: instruction set binding time, was Encoding 20 and 40 bitBGB
| |  | | |    |   |   |  |     ||| ||+- Re: instruction set binding time, was Encoding 20 and 40 bitIvan Godard
| |  | | |    |   |   |  |     ||| ||`* Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128Anton Ertl
| |  | | |    |   |   |  |     ||| || `* Re: instruction set binding time, was Encoding 20 and 40 bitThomas Koenig
| |  | | |    |   |   |  |     ||| ||  +- Re: instruction set binding time, was Encoding 20 and 40 bitJohn Levine
| |  | | |    |   |   |  |     ||| ||  `* Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128Anton Ertl
| |  | | |    |   |   |  |     ||| ||   `* Re: instruction set binding time, was Encoding 20 and 40 bitTerje Mathisen
| |  | | |    |   |   |  |     ||| ||    `* Re: instruction set binding time, was Encoding 20 and 40 bitMitchAlsup
| |  | | |    |   |   |  |     ||| ||     +* Re: instruction set binding time, was Encoding 20 and 40 bitBGB
| |  | | |    |   |   |  |     ||| ||     |`- Re: instruction set binding time, was Encoding 20 and 40 bitMitchAlsup
| |  | | |    |   |   |  |     ||| ||     `- Re: instruction set binding time, was Encoding 20 and 40 bitTerje Mathisen
| |  | | |    |   |   |  |     ||| |`* Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128Anton Ertl
| |  | | |    |   |   |  |     ||| | +* Re: instruction set binding time, was Encoding 20 and 40 bitIvan Godard
| |  | | |    |   |   |  |     ||| | |+* Re: instruction set binding time, was Encoding 20 and 40 bitThomas Koenig
| |  | | |    |   |   |  |     ||| | ||`* Re: instruction set binding time, was Encoding 20 and 40 bitIvan Godard
| |  | | |    |   |   |  |     ||| | || `* Re: instruction set binding time, was Encoding 20 and 40 bitThomas Koenig
| |  | | |    |   |   |  |     ||| | ||  `* Re: instruction set binding time, was Encoding 20 and 40 bitIvan Godard
| |  | | |    |   |   |  |     ||| | ||   `* Re: instruction set binding time, was Encoding 20 and 40 bitThomas Koenig
| |  | | |    |   |   |  |     ||| | ||    +- Re: instruction set binding time, was Encoding 20 and 40 bitIvan Godard
| |  | | |    |   |   |  |     ||| | ||    `- Re: instruction set binding time, was Encoding 20 and 40 bitMitchAlsup
| |  | | |    |   |   |  |     ||| | |+- Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128Anton Ertl
| |  | | |    |   |   |  |     ||| | |`- Re: instruction set binding time, was Encoding 20 and 40 bitJohn Levine
| |  | | |    |   |   |  |     ||| | `* Re: instruction set binding time, was Encoding 20 and 40 bitThomas Koenig
| |  | | |    |   |   |  |     ||| |  `- Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128Anton Ertl
| |  | | |    |   |   |  |     ||| `* Re: instruction set binding time, was Encoding 20 and 40 bitQuadibloc
| |  | | |    |   |   |  |     |||  +* Re: instruction set binding time, was Encoding 20 and 40 bitBGB
| |  | | |    |   |   |  |     |||  |+* Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128Anton Ertl
| |  | | |    |   |   |  |     |||  ||+* Re: instruction set binding time, was Encoding 20 and 40 bitScott Smader
| |  | | |    |   |   |  |     |||  |||+* Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128Stefan Monnier
| |  | | |    |   |   |  |     |||  ||||`* Re: instruction set binding time, was Encoding 20 and 40 bitScott Smader
| |  | | |    |   |   |  |     |||  |||| +* Re: instruction set binding time, was Encoding 20 and 40 bitIvan Godard
| |  | | |    |   |   |  |     |||  |||| |+- Re: instruction set binding time, was Encoding 20 and 40 bitAnton Ertl
| |  | | |    |   |   |  |     |||  |||| |`* Re: instruction set binding time, was Encoding 20 and 40 bitIvan Godard
| |  | | |    |   |   |  |     |||  |||| | +- Re: instruction set binding time, was Encoding 20 and 40 bitMitchAlsup
| |  | | |    |   |   |  |     |||  |||| | +* Re: instruction set binding time, was Encoding 20 and 40 bitIvan Godard
| |  | | |    |   |   |  |     |||  |||| | `* Re: instruction set binding time, was Encoding 20 and 40 bitAnton Ertl
| |  | | |    |   |   |  |     |||  |||| +- Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128James Van Buskirk
| |  | | |    |   |   |  |     |||  |||| `* Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128Anton Ertl
| |  | | |    |   |   |  |     |||  |||+* Statically scheduled plus run ahead.Brett
| |  | | |    |   |   |  |     |||  |||`* Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128Anton Ertl
| |  | | |    |   |   |  |     |||  ||+* Re: instruction set binding time, was Encoding 20 and 40 bitBGB
| |  | | |    |   |   |  |     |||  ||+- Re: instruction set binding time, was Encoding 20 and 40 bitMitchAlsup
| |  | | |    |   |   |  |     |||  ||`* Re: instruction set binding time, was Encoding 20 and 40 bitThomas Koenig
| |  | | |    |   |   |  |     |||  |`* Re: instruction set binding time, was Encoding 20 and 40 bitMitchAlsup
| |  | | |    |   |   |  |     |||  +- Re: instruction set binding time, was Encoding 20 and 40 bitMitchAlsup
| |  | | |    |   |   |  |     |||  `- Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128Anton Ertl
| |  | | |    |   |   |  |     ||`* Re: instruction set binding time, was Encoding 20 and 40 bitIvan Godard
| |  | | |    |   |   |  |     |+- Re: instruction set binding time, was Encoding 20 and 40 bitMitchAlsup
| |  | | |    |   |   |  |     |`* Re: instruction set binding time, was Encoding 20 and 40 bitStephen Fuld
| |  | | |    |   |   |  |     `* Re: Encoding 20 and 40 bit instructions in 128 bitsAnton Ertl
| |  | | |    |   |   |  +* Re: Encoding 20 and 40 bit instructions in 128 bitsQuadibloc
| |  | | |    |   |   |  +- Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
| |  | | |    |   |   |  +- Re: Encoding 20 and 40 bit instructions in 128 bitsQuadibloc
| |  | | |    |   |   |  `- Re: Encoding 20 and 40 bit instructions in 128 bitsQuadibloc
| |  | | |    |   |   +* Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
| |  | | |    |   |   `- Re: Encoding 20 and 40 bit instructions in 128 bitsBGB
| |  | | |    |   `- Re: Encoding 20 and 40 bit instructions in 128 bitsBGB
| |  | | |    `* Re: Encoding 20 and 40 bit instructions in 128 bitsStephen Fuld
| |  | | `- Re: Encoding 20 and 40 bit instructions in 128 bitsThomas Koenig
| |  | `* Re: Encoding 20 and 40 bit instructions in 128 bitsQuadibloc
| |  `- Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
| `- Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
+- Re: Encoding 20 and 40 bit instructions in 128 bitsIvan Godard
+* Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
+* Re: Encoding 20 and 40 bit instructions in 128 bitsMitchAlsup
`- Re: Encoding 20 and 40 bit instructions in 128 bitsPaul A. Clayton

Pages:1234567891011121314
Re: Encoding 20 and 40 bit instructions in 128 bits

<fc307765-d2c5-478a-9f48-23e680f70e2en@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23382&group=comp.arch#23382

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:daf:: with SMTP id h15mr3014008qvh.46.1644626651782;
Fri, 11 Feb 2022 16:44:11 -0800 (PST)
X-Received: by 2002:a05:6808:d54:: with SMTP id w20mr1386249oik.179.1644626651547;
Fri, 11 Feb 2022 16:44:11 -0800 (PST)
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: Fri, 11 Feb 2022 16:44:11 -0800 (PST)
In-Reply-To: <su6qeh$c9q$1@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:84f7:6231:3421:a79e;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:84f7:6231:3421:a79e
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <c9f3b05a-cc34-4ec9-a7da-88c1fb31614dn@googlegroups.com>
<stec4m$kg0$1@dont-email.me> <de6ecdef-8e30-40aa-838f-df08d10389e7n@googlegroups.com>
<2fd5e668-fbe5-4399-bf74-f5e509d669ebn@googlegroups.com> <4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com> <_IhLJ.4280$0vE9.17@fx17.iad>
<3%tLJ.35102$t2Bb.34664@fx98.iad> <sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com> <stuoqv$97e$1@newsreader4.netcologne.de>
<stv51f$da9$1@dont-email.me> <stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me> <731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com> <su59a7$avf$1@newsreader4.netcologne.de>
<su65pg$lc$1@dont-email.me> <8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com> <su6qeh$c9q$1@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <fc307765-d2c5-478a-9f48-23e680f70e2en@googlegroups.com>
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sat, 12 Feb 2022 00:44:11 +0000
Content-Type: text/plain; charset="UTF-8"
 by: MitchAlsup - Sat, 12 Feb 2022 00:44 UTC

On Friday, February 11, 2022 at 5:11:16 PM UTC-6, Thomas Koenig wrote:
> Quadibloc <jsa...@ecn.ab.ca> schrieb:
> > On Friday, February 11, 2022 at 11:28:53 AM UTC-7, MitchAlsup wrote:
> >
> >> If you can encode all the work of those 8 32-bit instructions in 7 36-bit
> >> instructions, you are ahead of the game.
> >
> > That's true. But many people will be skeptical. After all, eight
> > instructions do eight things, seven instructions do seven things.
> Compare and branch could profit a lot from more bits, 36 or 40.
>
> Assume
>
> - 6 bit primary opcode
> - 10 bit for two registers to compare, or for a register and a
> constant
> - 3 bits for comparison code
>
> you are left with either 13, 17 or 21 bits of offset for a 32,
> 36 or 40 bit instruction word. Subtract two bits if you have 64
> registers / a 64-bit constant. (RISC-V needs to have a 7-bit
> primary opcode because of their 16-bit instructions, so it has
> one bit less, and loses one bit due to having 16-bit instructions).
<
This is why it failed to make the cut. However, compare to zero and
branch did under the name of BCND.
<
"On the pipeline" compare and branch only work when the ICache
is in one phase of the clock with DCache is on another phase.
That is: it worked with MIPS 2000, 3000, and became problematic
later on. With Caches needing address setup before rising edge
and delivering data after next rising edge, it "worka nadda".
<
Also note: to make timing work the 16-bit constant was pasted
onto the IP instead of being added to IP. Did not have time for
adding.
>
> It is rather hard to do anything useful with 16 bits with full 32
> registers. Does anybody have data how well RISC-V manages to
> reduce code size with their 16-bit instructions, and if there
> is performance degradation? Unfortunately, I have do not
> have access to a RISC-V machine to run my own analysis.

Re: Encoding 20 and 40 bit instructions in 128 bits

<6b1ef41b-e9f4-4dd3-bf2e-b902a84a80abn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23383&group=comp.arch#23383

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:7547:: with SMTP id b7mr3038572qtr.464.1644626978126;
Fri, 11 Feb 2022 16:49:38 -0800 (PST)
X-Received: by 2002:a05:6830:1db8:: with SMTP id z24mr1514341oti.282.1644626977489;
Fri, 11 Feb 2022 16:49:37 -0800 (PST)
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: Fri, 11 Feb 2022 16:49:37 -0800 (PST)
In-Reply-To: <su6s70$3kf$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:84f7:6231:3421:a79e;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:84f7:6231:3421:a79e
References: <stec4m$kg0$1@dont-email.me> <de6ecdef-8e30-40aa-838f-df08d10389e7n@googlegroups.com>
<2fd5e668-fbe5-4399-bf74-f5e509d669ebn@googlegroups.com> <4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com> <_IhLJ.4280$0vE9.17@fx17.iad>
<3%tLJ.35102$t2Bb.34664@fx98.iad> <sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com> <stuoqv$97e$1@newsreader4.netcologne.de>
<stv51f$da9$1@dont-email.me> <stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me> <731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com> <su59a7$avf$1@newsreader4.netcologne.de>
<su65pg$lc$1@dont-email.me> <71d1dc9e-46e6-4c13-956e-5e90b352984dn@googlegroups.com>
<su6eji$71k$1@dont-email.me> <728b6ea4-bc37-40aa-a505-f7c3e173c358n@googlegroups.com>
<su6s70$3kf$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6b1ef41b-e9f4-4dd3-bf2e-b902a84a80abn@googlegroups.com>
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sat, 12 Feb 2022 00:49:38 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: MitchAlsup - Sat, 12 Feb 2022 00:49 UTC

On Friday, February 11, 2022 at 5:41:24 PM UTC-6, gg...@yahoo.com wrote:
> MitchAlsup <Mitch...@aol.com> wrote:
> > On Friday, February 11, 2022 at 1:49:10 PM UTC-6, Stephen Fuld wrote:
> >> On 2/11/2022 10:35 AM, MitchAlsup wrote:
> >>> On Friday, February 11, 2022 at 11:18:43 AM UTC-6, Stephen Fuld wrote:
> >>>> On 2/11/2022 1:12 AM, Thomas Koenig wrote:
> >>>>> MitchAlsup <Mitch...@aol.com> schrieb:
> >>>>>> On Wednesday, February 9, 2022 at 3:53:18 PM UTC-6, Quadibloc wrote:
> >>>>>>> On Wednesday, February 9, 2022 at 1:58:55 PM UTC-7, gg...@yahoo.com wrote:
> >>>>>>>> And with 64 you can crush the
> >>>>>>>> competition on FPU code which eats registers for breakfast. As a former
> >>>>>>>> game console programmer I can tell you 32 is not enough.
> >>>>>> <
> >>>>>>> This is useful to know. Despite Mitch noting that decoding more than 32 registers
> >>>>>>> is a problem, then, I guess I'll be putting the 128-register bank feature back into
> >>>>>>> my attempts at a high-performance design.
> >>>>>> <
> >>>>>> It is NOT the decoding of registers that is the problem.
> >>>>>> It is that the register specifiers eat too many bits in the instruction.
> >>>>>
> >>>>> ... which is one reason I stared thinking about 40-bit instruction
> >>>>> bundles :-)
> >>> <
> >>>> Mitch has stated that his ideal instruction size is 36 bits, so how
> >>>> about this?
> >>> <
> >>> Just to bring everyone up to speed::
> >>> <
> >>> 36-bits allows one to encode everything My 66000 encodes in 32-bits
> >>> but also to provide room for sized arithmetic {8,16,32,64}×{int,fp},
> >>> saturation, overflow, wrap,...along with CARRY {int, fp}, plus
> >> Did you prematurely send this, or did you intend it to end there?
> >>
> >> Also, it seems you want to use the extra bits for more op-codes or op
> >> code modifiers and not to support 64 GPRs. Is that right? Or some mix
> >> of both?
> > <
> > I intended to imply other things can use those extra bits, but that I don't
> > need to influence those thinking about what they might be used for.
> > <
> > I am not a fan of 64-registers,
> > you gain so little 3%-ish
> The average C code gains 3%, averages lie.
>
> The inner loops of game code can get 10%.
<
All game inner loops gain 10%? I don't think so.
<
Anyway the data is from Stanford circa 1984-ish, so it is quite old.
<
> And 90% of the compute time is in
> 10% of the code. So a overall 9% speedup, while a simple code profile
> without benchmarking says 3%.
<
But that 9% speedup is not for general purpose code.
>
> A new processor needs an edge, and this is an edge.
<
How about being sin() and cos() taking 19 cycles.
How about Context switch from a process in one Guest OS to a process
in another Guest OS taking only 10-cycles.
>
> The RISC approach of cutting features until there is nothing left, leaves
> no reason to buy.
<
Agreed--1980s RISC is academic quality only (RISC-V may fall into this
category too)
>
> Transistors are cheap, throw the kitchen sink at an optional variable width
> opcode extension, kind of like ARM did with Cortex-Thumb2.
> > you lose in subroutines
> > you lose in context switch
> > you lose in memory footprint
> > you eat up 3-4 your instruction bits--which is all you added in the first place !
> > That it is quite likely you make negative forward progress.
> > <
> > A decided choice.
> >> --
> >> - Stephen Fuld
> >> (e-mail address disguised to prevent spam)
> >

Re: Encoding 20 and 40 bit instructions in 128 bits

<jwv35ko1yjm.fsf-monnier+comp.arch@gnu.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23384&group=comp.arch#23384

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: monn...@iro.umontreal.ca (Stefan Monnier)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Fri, 11 Feb 2022 23:47:56 -0500
Organization: A noiseless patient Spider
Lines: 8
Message-ID: <jwv35ko1yjm.fsf-monnier+comp.arch@gnu.org>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<2fd5e668-fbe5-4399-bf74-f5e509d669ebn@googlegroups.com>
<4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com>
<_IhLJ.4280$0vE9.17@fx17.iad> <3%tLJ.35102$t2Bb.34664@fx98.iad>
<sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com>
<stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me>
<stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de>
<fc307765-d2c5-478a-9f48-23e680f70e2en@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="895b82f3d8ae2545762fc7083da3999e";
logging-data="26106"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+7OpCCpOBqrzMubqj8NFSS"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
Cancel-Lock: sha1:HKuv4u35bEW7J5zYLzugUscK3hs=
sha1:H6cdIGZxKdjJ0vhR3VmXIuroI7c=
 by: Stefan Monnier - Sat, 12 Feb 2022 04:47 UTC

> Also note: to make timing work the 16-bit constant was pasted
> onto the IP instead of being added to IP. Did not have time for
> adding.

Hmm... I though SPARC did that, not MIPS. Am I misremembering?

Stefan

Re: Encoding 20 and 40 bit instructions in 128 bits

<su7v1h$1t2$1@newsreader4.netcologne.de>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23385&group=comp.arch#23385

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2a0a-a540-127a-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sat, 12 Feb 2022 09:35:45 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <su7v1h$1t2$1@newsreader4.netcologne.de>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<de6ecdef-8e30-40aa-838f-df08d10389e7n@googlegroups.com>
<2fd5e668-fbe5-4399-bf74-f5e509d669ebn@googlegroups.com>
<4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com>
<_IhLJ.4280$0vE9.17@fx17.iad> <3%tLJ.35102$t2Bb.34664@fx98.iad>
<sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com>
<stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me>
<stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de>
<fc307765-d2c5-478a-9f48-23e680f70e2en@googlegroups.com>
Injection-Date: Sat, 12 Feb 2022 09:35:45 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2a0a-a540-127a-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2a0a:a540:127a:0:7285:c2ff:fe6c:992d";
logging-data="1954"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sat, 12 Feb 2022 09:35 UTC

MitchAlsup <MitchAlsup@aol.com> schrieb:
> On Friday, February 11, 2022 at 5:11:16 PM UTC-6, Thomas Koenig wrote:
>> Quadibloc <jsa...@ecn.ab.ca> schrieb:
>> > On Friday, February 11, 2022 at 11:28:53 AM UTC-7, MitchAlsup wrote:
>> >
>> >> If you can encode all the work of those 8 32-bit instructions in 7 36-bit
>> >> instructions, you are ahead of the game.
>> >
>> > That's true. But many people will be skeptical. After all, eight
>> > instructions do eight things, seven instructions do seven things.
>> Compare and branch could profit a lot from more bits, 36 or 40.
>>
>> Assume
>>
>> - 6 bit primary opcode
>> - 10 bit for two registers to compare, or for a register and a
>> constant
>> - 3 bits for comparison code
>>
>> you are left with either 13, 17 or 21 bits of offset for a 32,
>> 36 or 40 bit instruction word. Subtract two bits if you have 64
>> registers / a 64-bit constant. (RISC-V needs to have a 7-bit
>> primary opcode because of their 16-bit instructions, so it has
>> one bit less, and loses one bit due to having 16-bit instructions).
><
> This is why it failed to make the cut. However, compare to zero and
> branch did under the name of BCND.

Makes sense, this is the most frequent case (especially when
checking for null pointers).
><
> "On the pipeline" compare and branch only work when the ICache
> is in one phase of the clock with DCache is on another phase.
> That is: it worked with MIPS 2000, 3000, and became problematic
> later on. With Caches needing address setup before rising edge
> and delivering data after next rising edge, it "worka nadda".

Does not have to be done like that - it would simply be one
instruction instead of

cmpidi rx,const
beq offset

and could indeed be cracked into two instructions, with a
user-invisible status in between.

Slightly different topic: When talking about what to put into
a half-sized instruction set, it is trivially true that

mr ra,rb
add ra,rc

which could be made up of two n/2 bit instructions is equivalent to

add ra,rb,rc

which is a classic n-bit instuction, and could be fused into one.

Re: Encoding 20 and 40 bit instructions in 128 bits

<su87p2$48b$1@newsreader4.netcologne.de>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23386&group=comp.arch#23386

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2a0a-a544-99c-0-5923-9284-7fd6-cd62.ipv6dyn.netcologne.de!not-for-mail
From: bl1-remo...@gmx.com (Bernd Linsel)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sat, 12 Feb 2022 13:04:49 +0100
Organization: news.netcologne.de
Distribution: world
Message-ID: <su87p2$48b$1@newsreader4.netcologne.de>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<2fd5e668-fbe5-4399-bf74-f5e509d669ebn@googlegroups.com>
<4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com>
<_IhLJ.4280$0vE9.17@fx17.iad> <3%tLJ.35102$t2Bb.34664@fx98.iad>
<sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com>
<stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me>
<stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de>
<fc307765-d2c5-478a-9f48-23e680f70e2en@googlegroups.com>
<jwv35ko1yjm.fsf-monnier+comp.arch@gnu.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 12 Feb 2022 12:04:50 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2a0a-a544-99c-0-5923-9284-7fd6-cd62.ipv6dyn.netcologne.de:2a0a:a544:99c:0:5923:9284:7fd6:cd62";
logging-data="4363"; mail-complaints-to="abuse@netcologne.de"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.6.0
In-Reply-To: <jwv35ko1yjm.fsf-monnier+comp.arch@gnu.org>
 by: Bernd Linsel - Sat, 12 Feb 2022 12:04 UTC

On 12.02.2022 05:47, Stefan Monnier wrote:
>> Also note: to make timing work the 16-bit constant was pasted
>> onto the IP instead of being added to IP. Did not have time for
>> adding.
>
> Hmm... I though SPARC did that, not MIPS. Am I misremembering?
>
>
> Stefan

MIPS added sign-extended 16 bit displacements (bxx instructions), and
pasted 26 bit jump targets shifted left by 2 (jxx instructions).

Re: Encoding 20 and 40 bit instructions in 128 bits

<2022Feb12.134213@mips.complang.tuwien.ac.at>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23388&group=comp.arch#23388

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sat, 12 Feb 2022 12:42:13 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 28
Message-ID: <2022Feb12.134213@mips.complang.tuwien.ac.at>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com> <e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com> <su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me> <8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com> <53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com> <su6qeh$c9q$1@newsreader4.netcologne.de> <fc307765-d2c5-478a-9f48-23e680f70e2en@googlegroups.com> <jwv35ko1yjm.fsf-monnier+comp.arch@gnu.org>
Injection-Info: reader02.eternal-september.org; posting-host="61fd17d6fece46faef32d900d1438b11";
logging-data="4321"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+kr+gTK5Yga0orXZI5m++D"
Cancel-Lock: sha1:+fnTONK/BoH16vMAKg3i+uj5jxs=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Sat, 12 Feb 2022 12:42 UTC

Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> Also note: to make timing work the 16-bit constant was pasted
>> onto the IP instead of being added to IP. Did not have time for
>> adding.
>
>Hmm... I though SPARC did that, not MIPS. Am I misremembering?

The MIPS b instructions are relative, the MIPS j and jal instructions
are absolute, but have only 26 bits of address in the instruction; the
lower 2 bits are 0, the upper 4 bits are unchanged (i.e., j and jal
only branch within the same 256MB-Block, which was ok in 1986 when
MIPS started, but became uncomfortable as soon as virtual memories
exceeded 256MB).

I think everything is relative in SPARC. I am not that familiar with
SPARC, but we certainly treat SPARC code as relocatable in Gforth (and
nobody has complained), while we disable dynamic native code
generation on MIPS (because the code is not relocatable to arbitrary
places) because of j and jal (the MIPS load delay slot and the delay
slots associated with the hi and lo registers are also incompatible
with the assumptions about composability of code that we use in
dynamic native code generation; it's interesting how many of the
seemingly clever ideas of MIPS turn into problems in this context).

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

Re: Encoding 20 and 40 bit instructions in 128 bits

<2022Feb12.135514@mips.complang.tuwien.ac.at>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23389&group=comp.arch#23389

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sat, 12 Feb 2022 12:55:14 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 24
Distribution: world
Message-ID: <2022Feb12.135514@mips.complang.tuwien.ac.at>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me> <stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me> <su19ub$9hr$1@dont-email.me> <731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com> <e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com> <su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me> <8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com> <53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com> <su6qeh$c9q$1@newsreader4.netcologne.de>
Injection-Info: reader02.eternal-september.org; posting-host="61fd17d6fece46faef32d900d1438b11";
logging-data="4321"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18yvSmhBg/9WdOL8SnYYd/o"
Cancel-Lock: sha1:QjLTj8LV6nVcKFoMpw6pDLkPBjg=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Sat, 12 Feb 2022 12:55 UTC

Thomas Koenig <tkoenig@netcologne.de> writes:
>It is rather hard to do anything useful with 16 bits with full 32
>registers. Does anybody have data how well RISC-V manages to
>reduce code size with their 16-bit instructions, and if there
>is performance degradation?

Why should there be a performance degradation? If an instruction
cannot be encoded in 16 bits, the 32-bit encoding is used.

So the only question is how much the code size is reduced:
<https://arxiv.org/pdf/1607.02318.pdf> reports in Table III that RC64G
has a factor 1.34 more dynamic instruction bytes than RV64GC (geomean
over all benchmarks). It does not report static instruction bytes.

>Unfortunately, I have do not
>have access to a RISC-V machine to run my own analysis.

RISC-V has been supported by QEMU for a long time. E.g., we tested
Gforth on RISC-V (on QEMU) in 2018.

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

Re: Encoding 20 and 40 bit instructions in 128 bits

<5a4e1d4a-4dfe-466f-a4fd-603267421dc0n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23391&group=comp.arch#23391

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:4551:: with SMTP id u17mr3153347qkp.449.1644674990446;
Sat, 12 Feb 2022 06:09:50 -0800 (PST)
X-Received: by 2002:a05:6830:1db8:: with SMTP id z24mr2180516oti.282.1644674990201;
Sat, 12 Feb 2022 06:09:50 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sat, 12 Feb 2022 06:09:50 -0800 (PST)
In-Reply-To: <jwv35ko1yjm.fsf-monnier+comp.arch@gnu.org>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:113c:643c:9fe8:1531;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:113c:643c:9fe8:1531
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <2fd5e668-fbe5-4399-bf74-f5e509d669ebn@googlegroups.com>
<4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com> <b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com>
<_IhLJ.4280$0vE9.17@fx17.iad> <3%tLJ.35102$t2Bb.34664@fx98.iad>
<sto41r$4tj$1@newsreader4.netcologne.de> <9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com>
<stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me>
<stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me> <su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com> <e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com> <53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de> <fc307765-d2c5-478a-9f48-23e680f70e2en@googlegroups.com>
<jwv35ko1yjm.fsf-monnier+comp.arch@gnu.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5a4e1d4a-4dfe-466f-a4fd-603267421dc0n@googlegroups.com>
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sat, 12 Feb 2022 14:09:50 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 8
 by: MitchAlsup - Sat, 12 Feb 2022 14:09 UTC

On Friday, February 11, 2022 at 10:48:00 PM UTC-6, Stefan Monnier wrote:
> > Also note: to make timing work the 16-bit constant was pasted
> > onto the IP instead of being added to IP. Did not have time for
> > adding.
> Hmm... I though SPARC did that, not MIPS. Am I misremembering?
>
Could be either one of us.
>
> Stefan

Re: Encoding 20 and 40 bit instructions in 128 bits

<eda9dc7f-8b66-41c4-b4bd-59308b0a5b8fn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23392&group=comp.arch#23392

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:27c3:: with SMTP id ge3mr1306151qvb.116.1644675195574;
Sat, 12 Feb 2022 06:13:15 -0800 (PST)
X-Received: by 2002:a05:6808:118c:: with SMTP id j12mr2234493oil.259.1644675195379;
Sat, 12 Feb 2022 06:13:15 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sat, 12 Feb 2022 06:13:15 -0800 (PST)
In-Reply-To: <su7v1h$1t2$1@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:113c:643c:9fe8:1531;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:113c:643c:9fe8:1531
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <de6ecdef-8e30-40aa-838f-df08d10389e7n@googlegroups.com>
<2fd5e668-fbe5-4399-bf74-f5e509d669ebn@googlegroups.com> <4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com> <_IhLJ.4280$0vE9.17@fx17.iad>
<3%tLJ.35102$t2Bb.34664@fx98.iad> <sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com> <stuoqv$97e$1@newsreader4.netcologne.de>
<stv51f$da9$1@dont-email.me> <stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me> <731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com> <su59a7$avf$1@newsreader4.netcologne.de>
<su65pg$lc$1@dont-email.me> <8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com> <su6qeh$c9q$1@newsreader4.netcologne.de>
<fc307765-d2c5-478a-9f48-23e680f70e2en@googlegroups.com> <su7v1h$1t2$1@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <eda9dc7f-8b66-41c4-b4bd-59308b0a5b8fn@googlegroups.com>
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sat, 12 Feb 2022 14:13:15 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 66
 by: MitchAlsup - Sat, 12 Feb 2022 14:13 UTC

On Saturday, February 12, 2022 at 3:35:48 AM UTC-6, Thomas Koenig wrote:
> MitchAlsup <Mitch...@aol.com> schrieb:
> > On Friday, February 11, 2022 at 5:11:16 PM UTC-6, Thomas Koenig wrote:
> >> Quadibloc <jsa...@ecn.ab.ca> schrieb:
> >> > On Friday, February 11, 2022 at 11:28:53 AM UTC-7, MitchAlsup wrote:
> >> >
> >> >> If you can encode all the work of those 8 32-bit instructions in 7 36-bit
> >> >> instructions, you are ahead of the game.
> >> >
> >> > That's true. But many people will be skeptical. After all, eight
> >> > instructions do eight things, seven instructions do seven things.
> >> Compare and branch could profit a lot from more bits, 36 or 40.
> >>
> >> Assume
> >>
> >> - 6 bit primary opcode
> >> - 10 bit for two registers to compare, or for a register and a
> >> constant
> >> - 3 bits for comparison code
> >>
> >> you are left with either 13, 17 or 21 bits of offset for a 32,
> >> 36 or 40 bit instruction word. Subtract two bits if you have 64
> >> registers / a 64-bit constant. (RISC-V needs to have a 7-bit
> >> primary opcode because of their 16-bit instructions, so it has
> >> one bit less, and loses one bit due to having 16-bit instructions).
> ><
> > This is why it failed to make the cut. However, compare to zero and
> > branch did under the name of BCND.
<
> Makes sense, this is the most frequent case (especially when
> checking for null pointers).
> ><
> > "On the pipeline" compare and branch only work when the ICache
> > is in one phase of the clock with DCache is on another phase.
> > That is: it worked with MIPS 2000, 3000, and became problematic
> > later on. With Caches needing address setup before rising edge
> > and delivering data after next rising edge, it "worka nadda".
<
> Does not have to be done like that - it would simply be one
> instruction instead of
>
> cmpidi rx,const
> beq offset
>
> and could indeed be cracked into two instructions, with a
> user-invisible status in between.
<
Those 2 instructions can be fused and CoIssued taking only
1 pipeline slot on machines that fetch wider than instruction
size. So, having 2 is not a performance problem on modern
machines.
<
1 versus 2 is only a code density issue not a performance one.
>
> Slightly different topic: When talking about what to put into
> a half-sized instruction set, it is trivially true that
>
> mr ra,rb
> add ra,rc
>
> which could be made up of two n/2 bit instructions is equivalent to
>
> add ra,rb,rc
>
> which is a classic n-bit instuction, and could be fused into one.
<
Yes, that was the point of the 68K guys when we were doing M88K.

Re: Encoding 20 and 40 bit instructions in 128 bits

<4uQNJ.16175$8V_7.8153@fx04.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23395&group=comp.arch#23395

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!feeder1.feed.usenet.farm!feed.usenet.farm!peer01.ams4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx04.iad.POSTED!not-for-mail
From: ThatWoul...@thevillage.com (EricP)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <stec4m$kg0$1@dont-email.me> <de6ecdef-8e30-40aa-838f-df08d10389e7n@googlegroups.com> <2fd5e668-fbe5-4399-bf74-f5e509d669ebn@googlegroups.com> <4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com> <b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com> <_IhLJ.4280$0vE9.17@fx17.iad> <3%tLJ.35102$t2Bb.34664@fx98.iad> <sto41r$4tj$1@newsreader4.netcologne.de> <9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com> <stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me> <stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me> <su19ub$9hr$1@dont-email.me> <731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com> <e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com> <su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me> <8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com> <53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com> <su6qeh$c9q$1@newsreader4.netcologne.de>
In-Reply-To: <su6qeh$c9q$1@newsreader4.netcologne.de>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 40
Message-ID: <4uQNJ.16175$8V_7.8153@fx04.iad>
X-Complaints-To: abuse@UsenetServer.com
NNTP-Posting-Date: Sat, 12 Feb 2022 15:36:32 UTC
Date: Sat, 12 Feb 2022 10:36:22 -0500
X-Received-Bytes: 3301
 by: EricP - Sat, 12 Feb 2022 15:36 UTC

Thomas Koenig wrote:
> Quadibloc <jsavard@ecn.ab.ca> schrieb:
>> On Friday, February 11, 2022 at 11:28:53 AM UTC-7, MitchAlsup wrote:
>>
>>> If you can encode all the work of those 8 32-bit instructions in 7 36-bit
>>> instructions, you are ahead of the game.
>> That's true. But many people will be skeptical. After all, eight
>> instructions do eight things, seven instructions do seven things.
>
> Compare and branch could profit a lot from more bits, 36 or 40.
>
> Assume
>
> - 6 bit primary opcode
> - 10 bit for two registers to compare, or for a register and a
> constant
> - 3 bits for comparison code
>
> you are left with either 13, 17 or 21 bits of offset for a 32,
> 36 or 40 bit instruction word. Subtract two bits if you have 64
> registers / a 64-bit constant. (RISC-V needs to have a 7-bit
> primary opcode because of their 16-bit instructions, so it has
> one bit less, and loses one bit due to having 16-bit instructions).
>
> It is rather hard to do anything useful with 16 bits with full 32
> registers. Does anybody have data how well RISC-V manages to
> reduce code size with their 16-bit instructions, and if there
> is performance degradation? Unfortunately, I have do not
> have access to a RISC-V machine to run my own analysis.

I have a related unread paper in my in-pile which
refers to RISC-V compare-and-branch fusion.
I have not seen much RISC-V performance analysis as
there is little to compare with x64 or Arm.

The Renewed Case for the Reduced Instruction Set Computer:
Avoiding ISA Bloat with Macro-Op Fusion for RISC-V 2016
https://arxiv.org/abs/1607.02318

Re: Encoding 20 and 40 bit instructions in 128 bits

<su8me6$s8p$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23397&group=comp.arch#23397

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: bage...@gmail.com (Brian G. Lucas)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sat, 12 Feb 2022 10:15:00 -0600
Organization: A noiseless patient Spider
Lines: 22
Message-ID: <su8me6$s8p$1@dont-email.me>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<2fd5e668-fbe5-4399-bf74-f5e509d669ebn@googlegroups.com>
<4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com>
<_IhLJ.4280$0vE9.17@fx17.iad> <3%tLJ.35102$t2Bb.34664@fx98.iad>
<sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com>
<stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me>
<stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de>
<fc307765-d2c5-478a-9f48-23e680f70e2en@googlegroups.com>
<su7v1h$1t2$1@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 12 Feb 2022 16:15:02 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="111c8f3fab3c6119154110b7355f1aba";
logging-data="28953"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+ezP1xNCaPO/kZf2JIC7dg"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.5.0
Cancel-Lock: sha1:sEFiiYthNvbz6Gxg9fcavVXK4/A=
In-Reply-To: <su7v1h$1t2$1@newsreader4.netcologne.de>
Content-Language: en-US
 by: Brian G. Lucas - Sat, 12 Feb 2022 16:15 UTC

On 2/12/22 03:35, Thomas Koenig wrote:
....snip...
>
> Slightly different topic: When talking about what to put into
> a half-sized instruction set, it is trivially true that
>
> mr ra,rb
> add ra,rc
>
> which could be made up of two n/2 bit instructions is equivalent to
>
> add ra,rb,rc
>
> which is a classic n-bit instuction, and could be fused into one.

This is the choice I made in the MCore instruction set where all instructions
where 16-bits. The statistics we saw then on code bases showed that
only about 15% (IIRC) of the instructions (statically) required the extra
register move. The MCore didn't last long enough for a version that
fused.

Brian

Re: Encoding 20 and 40 bit instructions in 128 bits

<su8nip$f0f$3@newsreader4.netcologne.de>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23398&group=comp.arch#23398

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2a0a-a540-127a-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sat, 12 Feb 2022 16:34:33 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <su8nip$f0f$3@newsreader4.netcologne.de>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<stv51f$da9$1@dont-email.me> <stvf02$v7b$1@dont-email.me>
<su10pc$1e5$1@dont-email.me> <su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de>
<2022Feb12.135514@mips.complang.tuwien.ac.at>
Injection-Date: Sat, 12 Feb 2022 16:34:33 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2a0a-a540-127a-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2a0a:a540:127a:0:7285:c2ff:fe6c:992d";
logging-data="15375"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sat, 12 Feb 2022 16:34 UTC

Anton Ertl <anton@mips.complang.tuwien.ac.at> schrieb:
> Thomas Koenig <tkoenig@netcologne.de> writes:
>>It is rather hard to do anything useful with 16 bits with full 32
>>registers. Does anybody have data how well RISC-V manages to
>>reduce code size with their 16-bit instructions, and if there
>>is performance degradation?
>
> Why should there be a performance degradation? If an instruction
> cannot be encoded in 16 bits, the 32-bit encoding is used.

Depends on what exactly the gode generator is doing (which is why
I was asking).

If it simply emits 16-bit assembler instructions for those 32-bit
insructions that happen to fit to the reduced subset, OK.

If it takes the reduced register set into account and arranges
registers differently, increases the number of instructions to fit
restricted register sizes, or even introduces addtional load/store
instructions, then it could indeed matter.

I simply don't know (which is why I asked).

>
> So the only question is how much the code size is reduced:
><https://arxiv.org/pdf/1607.02318.pdf> reports in Table III that RC64G
> has a factor 1.34 more dynamic instruction bytes than RV64GC (geomean
> over all benchmarks). It does not report static instruction bytes.
>
>>Unfortunately, I have do not
>>have access to a RISC-V machine to run my own analysis.
>
> RISC-V has been supported by QEMU for a long time. E.g., we tested
> Gforth on RISC-V (on QEMU) in 2018.

I don't think I will be setting up QEMU for that.

I could check the LoongArch machines, though.

Re: Encoding 20 and 40 bit instructions in 128 bits

<su93nd$mlv$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23399&group=comp.arch#23399

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: cr88...@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sat, 12 Feb 2022 14:01:44 -0600
Organization: A noiseless patient Spider
Lines: 80
Message-ID: <su93nd$mlv$1@dont-email.me>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<stv51f$da9$1@dont-email.me> <stvf02$v7b$1@dont-email.me>
<su10pc$1e5$1@dont-email.me> <su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de>
<2022Feb12.135514@mips.complang.tuwien.ac.at>
<su8nip$f0f$3@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 12 Feb 2022 20:01:49 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="4c0980b42d00c6b1059fddc107918b04";
logging-data="23231"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+xDVO3f5QqBAt6ZN4fTv8L"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.6.0
Cancel-Lock: sha1:cEtPoKDWfKwsNLgm3jD3OxFkqE8=
In-Reply-To: <su8nip$f0f$3@newsreader4.netcologne.de>
Content-Language: en-US
 by: BGB - Sat, 12 Feb 2022 20:01 UTC

On 2/12/2022 10:34 AM, Thomas Koenig wrote:
> Anton Ertl <anton@mips.complang.tuwien.ac.at> schrieb:
>> Thomas Koenig <tkoenig@netcologne.de> writes:
>>> It is rather hard to do anything useful with 16 bits with full 32
>>> registers. Does anybody have data how well RISC-V manages to
>>> reduce code size with their 16-bit instructions, and if there
>>> is performance degradation?
>>
>> Why should there be a performance degradation? If an instruction
>> cannot be encoded in 16 bits, the 32-bit encoding is used.
>
> Depends on what exactly the gode generator is doing (which is why
> I was asking).
>
> If it simply emits 16-bit assembler instructions for those 32-bit
> insructions that happen to fit to the reduced subset, OK.
>

In "most" 16/32 ISA designs, this would presumably be the approach that
is used (use a 16-bit if it can be encoded as such, 32-bit otherwise).

> If it takes the reduced register set into account and arranges
> registers differently, increases the number of instructions to fit
> restricted register sizes, or even introduces addtional load/store
> instructions, then it could indeed matter.
>
> I simply don't know (which is why I asked).
>

FWIW: BGBCC does an optimization like that mentioned in size-optimized
mode (on BJX2), namely restricting most functions to the R0..R15 range,
and generally trying to allocate low-numbered registers before
high-numbered registers (when R16..R31 are enabled).

This approach is mostly abandoned in speed-optimized mode though (which
nearly always enables these, and prioritizes grabbing up a more
registers when possible, rather than spilling an existing value to the
stack).

A similar approach may be applicable to 32/64 registers, since the use
of R32..R63 comes with a cost in terms of code density and how much WEX
can be used (may cause 64-bit / Op64 encodings to be used, which require
64 bits to encode and can't be put in a bundle).

For now, the 64-bit ABI mostly ignores R32..R63, and the 128-bit ABI
uses them by default.

It is possible I could have add a special mode for the 64-bit ABI,
namely a "Enable use of R32..R63 if the register pressure is
sufficiently high" heuristic.

As noted, this is because most of the normal 32-bit encodings are
limited to a 5-bit register field.

Note, this will be N/A if XGPR is not enabled (it is treated as an
optional extension in the 64-bit ABI, only required for 128-bit; but
this is mostly because limiting the 128-bit ABI to 32 GPRs would have
the detrimental effect of significantly increasing the number of
register spills; I expect the 128-bit ABI to otherwise perform worse
than the 64-bit ABI, in general...).

>>
>> So the only question is how much the code size is reduced:
>> <https://arxiv.org/pdf/1607.02318.pdf> reports in Table III that RC64G
>> has a factor 1.34 more dynamic instruction bytes than RV64GC (geomean
>> over all benchmarks). It does not report static instruction bytes.
>>
>>> Unfortunately, I have do not
>>> have access to a RISC-V machine to run my own analysis.
>>
>> RISC-V has been supported by QEMU for a long time. E.g., we tested
>> Gforth on RISC-V (on QEMU) in 2018.
>
> I don't think I will be setting up QEMU for that.
>
> I could check the LoongArch machines, though.

Re: Encoding 20 and 40 bit instructions in 128 bits

<su9ajt$5pr$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23400&group=comp.arch#23400

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: cr88...@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sat, 12 Feb 2022 15:59:22 -0600
Organization: A noiseless patient Spider
Lines: 86
Message-ID: <su9ajt$5pr$1@dont-email.me>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<de6ecdef-8e30-40aa-838f-df08d10389e7n@googlegroups.com>
<2fd5e668-fbe5-4399-bf74-f5e509d669ebn@googlegroups.com>
<4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com>
<_IhLJ.4280$0vE9.17@fx17.iad> <3%tLJ.35102$t2Bb.34664@fx98.iad>
<sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com>
<stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me>
<stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de> <4uQNJ.16175$8V_7.8153@fx04.iad>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 12 Feb 2022 21:59:26 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="4c0980b42d00c6b1059fddc107918b04";
logging-data="5947"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19WTfLB8bzhCjUxrFsz6v9z"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.6.0
Cancel-Lock: sha1:issJBgoxCYbZR8eyctuzIGgEYxU=
In-Reply-To: <4uQNJ.16175$8V_7.8153@fx04.iad>
Content-Language: en-US
 by: BGB - Sat, 12 Feb 2022 21:59 UTC

On 2/12/2022 9:36 AM, EricP wrote:
> Thomas Koenig wrote:
>> Quadibloc <jsavard@ecn.ab.ca> schrieb:
>>> On Friday, February 11, 2022 at 11:28:53 AM UTC-7, MitchAlsup wrote:
>>>
>>>> If you can encode all the work of those 8 32-bit instructions in 7
>>>> 36-bit instructions, you are ahead of the game.
>>> That's true. But many people will be skeptical. After all, eight
>>> instructions do eight things, seven instructions do seven things.
>>
>> Compare and branch could profit a lot from more bits, 36 or 40.
>>
>> Assume
>>
>> - 6 bit primary opcode
>> - 10 bit for two registers to compare, or for a register and a
>>   constant
>> - 3 bits for comparison code
>>
>> you are left with either 13, 17 or 21 bits of offset for a 32,
>> 36 or 40 bit instruction word.  Subtract two bits if you have 64
>> registers / a 64-bit constant.  (RISC-V needs to have a 7-bit
>> primary opcode because of their 16-bit instructions, so it has
>> one bit less, and loses one bit due to having 16-bit instructions).
>>
>> It is rather hard to do anything useful with 16 bits with full 32
>> registers.  Does anybody have data how well RISC-V manages to
>> reduce code size with their 16-bit instructions, and if there
>> is performance degradation?  Unfortunately, I have do not
>> have access to a RISC-V machine to run my own analysis.
>
> I have a related unread paper in my in-pile which
> refers to RISC-V compare-and-branch fusion.
> I have not seen much RISC-V performance analysis as
> there is little to compare with x64 or Arm.
>
> The Renewed Case for the Reduced Instruction Set Computer:
> Avoiding ISA Bloat with Macro-Op Fusion for RISC-V 2016
> https://arxiv.org/abs/1607.02318
>
>

In my own testing (BJX2 has compare-and-branch as an optional feature),
the relative speed difference between this and a 2-op CMPxx+BT/BF, tends
to be small enough to mostly disappear in the noise.

Though, it can be noted though that BJX2 only has 2R encodings:
Bxx Rm, Rn, Lbl8

Whereas, a fair number of comparisons involve a constant, in which case,
say:
CMPGT 123, R4
BT .L0
And:
LDI 123, R5
BGT R5, R4, .L0
Are the same number of clock cycles.

In order to do any better than this, one would also require
compare-and-branch encodings which have an immediate field, say:
BGT 123, R4, .L0

But, this has the drawback of effectively requiring two immediate
fields: one for the compared value, another for the branch displacement.

Cost and timing would also seem to prefer the CMPxx+BT/BF scheme.
Also, the use of a flag bit is useful for predicated instructions:
if(x>255)
{
y=4*x+1;
}else
{
y=8*x-3;
}
As, say:
CMPGT 255, R4
SHAD?T R4, 2, R5 | SHAD?F R4, 3, R5
ADD?T R5, 1, R6 | SUB?F R5, 3, R6

And, unlike full condition-codes, this can be pulled off with ~ 2 bits
of entropy rather than ~ 4 (though, one could potentially also use 4
bits of entropy to encode 3 different predicate bits).

....

Re: Encoding 20 and 40 bit instructions in 128 bits

<5db43324-630c-46a0-9ece-ab7343975715n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23401&group=comp.arch#23401

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:7547:: with SMTP id b7mr5432218qtr.464.1644708406759;
Sat, 12 Feb 2022 15:26:46 -0800 (PST)
X-Received: by 2002:a9d:664d:: with SMTP id q13mr2728600otm.227.1644708406468;
Sat, 12 Feb 2022 15:26:46 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sat, 12 Feb 2022 15:26:46 -0800 (PST)
In-Reply-To: <su9ajt$5pr$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:f9c1:a36c:1f01:3b98;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:f9c1:a36c:1f01:3b98
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <de6ecdef-8e30-40aa-838f-df08d10389e7n@googlegroups.com>
<2fd5e668-fbe5-4399-bf74-f5e509d669ebn@googlegroups.com> <4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com> <_IhLJ.4280$0vE9.17@fx17.iad>
<3%tLJ.35102$t2Bb.34664@fx98.iad> <sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com> <stuoqv$97e$1@newsreader4.netcologne.de>
<stv51f$da9$1@dont-email.me> <stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me> <731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com> <su59a7$avf$1@newsreader4.netcologne.de>
<su65pg$lc$1@dont-email.me> <8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com> <su6qeh$c9q$1@newsreader4.netcologne.de>
<4uQNJ.16175$8V_7.8153@fx04.iad> <su9ajt$5pr$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5db43324-630c-46a0-9ece-ab7343975715n@googlegroups.com>
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sat, 12 Feb 2022 23:26:46 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 111
 by: MitchAlsup - Sat, 12 Feb 2022 23:26 UTC

On Saturday, February 12, 2022 at 3:59:29 PM UTC-6, BGB wrote:
> On 2/12/2022 9:36 AM, EricP wrote:
> > Thomas Koenig wrote:
> >> Quadibloc <jsa...@ecn.ab.ca> schrieb:
> >>> On Friday, February 11, 2022 at 11:28:53 AM UTC-7, MitchAlsup wrote:
> >>>
> >>>> If you can encode all the work of those 8 32-bit instructions in 7
> >>>> 36-bit instructions, you are ahead of the game.
> >>> That's true. But many people will be skeptical. After all, eight
> >>> instructions do eight things, seven instructions do seven things.
> >>
> >> Compare and branch could profit a lot from more bits, 36 or 40.
> >>
> >> Assume
> >>
> >> - 6 bit primary opcode
> >> - 10 bit for two registers to compare, or for a register and a
> >> constant
> >> - 3 bits for comparison code
> >>
> >> you are left with either 13, 17 or 21 bits of offset for a 32,
> >> 36 or 40 bit instruction word. Subtract two bits if you have 64
> >> registers / a 64-bit constant. (RISC-V needs to have a 7-bit
> >> primary opcode because of their 16-bit instructions, so it has
> >> one bit less, and loses one bit due to having 16-bit instructions).
> >>
> >> It is rather hard to do anything useful with 16 bits with full 32
> >> registers. Does anybody have data how well RISC-V manages to
> >> reduce code size with their 16-bit instructions, and if there
> >> is performance degradation? Unfortunately, I have do not
> >> have access to a RISC-V machine to run my own analysis.
> >
> > I have a related unread paper in my in-pile which
> > refers to RISC-V compare-and-branch fusion.
> > I have not seen much RISC-V performance analysis as
> > there is little to compare with x64 or Arm.
> >
> > The Renewed Case for the Reduced Instruction Set Computer:
> > Avoiding ISA Bloat with Macro-Op Fusion for RISC-V 2016
> > https://arxiv.org/abs/1607.02318
> >
> >
> In my own testing (BJX2 has compare-and-branch as an optional feature),
> the relative speed difference between this and a 2-op CMPxx+BT/BF, tends
> to be small enough to mostly disappear in the noise.
>
>
> Though, it can be noted though that BJX2 only has 2R encodings:
> Bxx Rm, Rn, Lbl8
>
> Whereas, a fair number of comparisons involve a constant, in which case,
> say:
> CMPGT 123, R4
> BT .L0
> And:
> LDI 123, R5
> BGT R5, R4, .L0
> Are the same number of clock cycles.
>
> In order to do any better than this, one would also require
> compare-and-branch encodings which have an immediate field, say:
> BGT 123, R4, .L0
>
> But, this has the drawback of effectively requiring two immediate
> fields: one for the compared value, another for the branch displacement.
<
This was one of the driving factors in my adding complete immediates
and displacements to My 66000 ISA.
<
You can even do:
<
STD #1.23456789098765,[Rb+Ri<<3+1265874]
<
as a 4-word instruction.
<
But because it comes up so often:
<
STD #5,[SP+148]
<
as a 1 word instruction.
>
>
> Cost and timing would also seem to prefer the CMPxx+BT/BF scheme.
> Also, the use of a flag bit is useful for predicated instructions:
> if(x>255)
> {
> y=4*x+1;
> }else
> {
> y=8*x-3;
> }
> As, say:
> CMPGT 255, R4
> SHAD?T R4, 2, R5 | SHAD?F R4, 3, R5
> ADD?T R5, 1, R6 | SUB?F R5, 3, R6
<
CMP Rt,Rx,#255
PCGT Rt,{0011}
SLA Ry,Rx,#2
ADD Ry,Ry,#1
SLA Ry,Rx,#3
ADD Ry,Ry,#-3
<
Anything but a simple 1-wide in order machine will CoIssue the CMP and BC.
>
> And, unlike full condition-codes, this can be pulled off with ~ 2 bits
> of entropy rather than ~ 4 (though, one could potentially also use 4
> bits of entropy to encode 3 different predicate bits).
<
There is no ISA entropy wasted. There is PSQW entropy.
>
> ...

Re: Encoding 20 and 40 bit instructions in 128 bits

<su9j56$r9h$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23404&group=comp.arch#23404

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sat, 12 Feb 2022 16:25:09 -0800
Organization: A noiseless patient Spider
Lines: 125
Message-ID: <su9j56$r9h$1@dont-email.me>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com>
<_IhLJ.4280$0vE9.17@fx17.iad> <3%tLJ.35102$t2Bb.34664@fx98.iad>
<sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com>
<stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me>
<stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de> <4uQNJ.16175$8V_7.8153@fx04.iad>
<su9ajt$5pr$1@dont-email.me>
<5db43324-630c-46a0-9ece-ab7343975715n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 13 Feb 2022 00:25:11 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="a9859414304a2dafa6b62d0e597d592a";
logging-data="27953"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/GWbrHgWWbj7qQeGEVIrec"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.5.1
Cancel-Lock: sha1:LGig0DrEVRWZ3dy9ZMwSBxaTNsI=
In-Reply-To: <5db43324-630c-46a0-9ece-ab7343975715n@googlegroups.com>
Content-Language: en-US
 by: Ivan Godard - Sun, 13 Feb 2022 00:25 UTC

On 2/12/2022 3:26 PM, MitchAlsup wrote:
> On Saturday, February 12, 2022 at 3:59:29 PM UTC-6, BGB wrote:
>> On 2/12/2022 9:36 AM, EricP wrote:
>>> Thomas Koenig wrote:
>>>> Quadibloc <jsa...@ecn.ab.ca> schrieb:
>>>>> On Friday, February 11, 2022 at 11:28:53 AM UTC-7, MitchAlsup wrote:
>>>>>
>>>>>> If you can encode all the work of those 8 32-bit instructions in 7
>>>>>> 36-bit instructions, you are ahead of the game.
>>>>> That's true. But many people will be skeptical. After all, eight
>>>>> instructions do eight things, seven instructions do seven things.
>>>>
>>>> Compare and branch could profit a lot from more bits, 36 or 40.
>>>>
>>>> Assume
>>>>
>>>> - 6 bit primary opcode
>>>> - 10 bit for two registers to compare, or for a register and a
>>>> constant
>>>> - 3 bits for comparison code
>>>>
>>>> you are left with either 13, 17 or 21 bits of offset for a 32,
>>>> 36 or 40 bit instruction word. Subtract two bits if you have 64
>>>> registers / a 64-bit constant. (RISC-V needs to have a 7-bit
>>>> primary opcode because of their 16-bit instructions, so it has
>>>> one bit less, and loses one bit due to having 16-bit instructions).
>>>>
>>>> It is rather hard to do anything useful with 16 bits with full 32
>>>> registers. Does anybody have data how well RISC-V manages to
>>>> reduce code size with their 16-bit instructions, and if there
>>>> is performance degradation? Unfortunately, I have do not
>>>> have access to a RISC-V machine to run my own analysis.
>>>
>>> I have a related unread paper in my in-pile which
>>> refers to RISC-V compare-and-branch fusion.
>>> I have not seen much RISC-V performance analysis as
>>> there is little to compare with x64 or Arm.
>>>
>>> The Renewed Case for the Reduced Instruction Set Computer:
>>> Avoiding ISA Bloat with Macro-Op Fusion for RISC-V 2016
>>> https://arxiv.org/abs/1607.02318
>>>
>>>
>> In my own testing (BJX2 has compare-and-branch as an optional feature),
>> the relative speed difference between this and a 2-op CMPxx+BT/BF, tends
>> to be small enough to mostly disappear in the noise.
>>
>>
>> Though, it can be noted though that BJX2 only has 2R encodings:
>> Bxx Rm, Rn, Lbl8
>>
>> Whereas, a fair number of comparisons involve a constant, in which case,
>> say:
>> CMPGT 123, R4
>> BT .L0
>> And:
>> LDI 123, R5
>> BGT R5, R4, .L0
>> Are the same number of clock cycles.
>>
>> In order to do any better than this, one would also require
>> compare-and-branch encodings which have an immediate field, say:
>> BGT 123, R4, .L0
>>
>> But, this has the drawback of effectively requiring two immediate
>> fields: one for the compared value, another for the branch displacement.
> <
> This was one of the driving factors in my adding complete immediates
> and displacements to My 66000 ISA.
> <
> You can even do:
> <
> STD #1.23456789098765,[Rb+Ri<<3+1265874]
> <
> as a 4-word instruction.
> <
> But because it comes up so often:
> <
> STD #5,[SP+148]
> <
> as a 1 word instruction.

Can do a couple of bits better than that, depending on member, but in
two instructions. Only one bundle though, and only one cycle to issue
due to phasing. Your real advantage IMO is that you don't need a
register (var. belt position) to hod the value stored.
>>
>>
>> Cost and timing would also seem to prefer the CMPxx+BT/BF scheme.
>> Also, the use of a flag bit is useful for predicated instructions:
>> if(x>255)
>> {
>> y=4*x+1;
>> }else
>> {
>> y=8*x-3;
>> }
>> As, say:
>> CMPGT 255, R4
>> SHAD?T R4, 2, R5 | SHAD?F R4, 3, R5
>> ADD?T R5, 1, R6 | SUB?F R5, 3, R6
> <
> CMP Rt,Rx,#255
> PCGT Rt,{0011}
> SLA Ry,Rx,#2
> ADD Ry,Ry,#1
> SLA Ry,Rx,#3
> ADD Ry,Ry,#-3
> <
> Anything but a simple 1-wide in order machine will CoIssue the CMP and BC.

Which is why compare-and-branch is two instruction (in one bundle) on
Mill, effectively co-issuing. Once you abandon fixed instruction sizes
and have them bit-sized to the entropy minimum then there's no longer
any gain from packing/cracking schemes; just unnecessary monkey-puzzle.

>>
>> And, unlike full condition-codes, this can be pulled off with ~ 2 bits
>> of entropy rather than ~ 4 (though, one could potentially also use 4
>> bits of entropy to encode 3 different predicate bits).
> <
> There is no ISA entropy wasted. There is PSQW entropy.
>>
>> ...

Re: Encoding 20 and 40 bit instructions in 128 bits

<suajgb$mk6$1@newsreader4.netcologne.de>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23408&group=comp.arch#23408

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2a0a-a540-127a-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sun, 13 Feb 2022 09:37:15 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <suajgb$mk6$1@newsreader4.netcologne.de>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com>
<_IhLJ.4280$0vE9.17@fx17.iad> <3%tLJ.35102$t2Bb.34664@fx98.iad>
<sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com>
<stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me>
<stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de> <4uQNJ.16175$8V_7.8153@fx04.iad>
<su9ajt$5pr$1@dont-email.me>
<5db43324-630c-46a0-9ece-ab7343975715n@googlegroups.com>
<su9j56$r9h$1@dont-email.me>
Injection-Date: Sun, 13 Feb 2022 09:37:15 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2a0a-a540-127a-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2a0a:a540:127a:0:7285:c2ff:fe6c:992d";
logging-data="23174"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sun, 13 Feb 2022 09:37 UTC

Ivan Godard <ivan@millcomputing.com> schrieb:

> Which is why compare-and-branch is two instruction (in one bundle) on
> Mill, effectively co-issuing. Once you abandon fixed instruction sizes
> and have them bit-sized to the entropy minimum then there's no longer
> any gain from packing/cracking schemes; just unnecessary monkey-puzzle.

And if you do that (and have really hit something close to the
minimum, which will vary depending on applications) you no longer
have a realistic chance of extending your ISA, so you need to
recompile (or specialize, as I think you call it) from source or
from an intermediate representation.

No such thing as an ISA free of drawbacks :-)

Re: Encoding 20 and 40 bit instructions in 128 bits

<suaos8$nhu$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23409&group=comp.arch#23409

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sun, 13 Feb 2022 03:08:54 -0800
Organization: A noiseless patient Spider
Lines: 30
Message-ID: <suaos8$nhu$1@dont-email.me>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com>
<_IhLJ.4280$0vE9.17@fx17.iad> <3%tLJ.35102$t2Bb.34664@fx98.iad>
<sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com>
<stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me>
<stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de> <4uQNJ.16175$8V_7.8153@fx04.iad>
<su9ajt$5pr$1@dont-email.me>
<5db43324-630c-46a0-9ece-ab7343975715n@googlegroups.com>
<su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 13 Feb 2022 11:08:56 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="a9859414304a2dafa6b62d0e597d592a";
logging-data="24126"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/FwGQpB/gQLMaWdTfYd9G+"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.5.1
Cancel-Lock: sha1:NqAmEoOlB7IbXFIpbyKN7z7Uxl0=
In-Reply-To: <suajgb$mk6$1@newsreader4.netcologne.de>
Content-Language: en-US
 by: Ivan Godard - Sun, 13 Feb 2022 11:08 UTC

On 2/13/2022 1:37 AM, Thomas Koenig wrote:
> Ivan Godard <ivan@millcomputing.com> schrieb:
>
>> Which is why compare-and-branch is two instruction (in one bundle) on
>> Mill, effectively co-issuing. Once you abandon fixed instruction sizes
>> and have them bit-sized to the entropy minimum then there's no longer
>> any gain from packing/cracking schemes; just unnecessary monkey-puzzle.
>
> And if you do that (and have really hit something close to the
> minimum, which will vary depending on applications) you no longer
> have a realistic chance of extending your ISA, so you need to
> recompile (or specialize, as I think you call it) from source or
> from an intermediate representation.
>
> No such thing as an ISA free of drawbacks :-)

Yes; that's a problem whenever there's a execution-level representation
of code that is below the distribution level. The distribution
representation must be translated to the execution level.

In Mill the translation happens once, at install time, via a transparent
invocation of the specializer (not a recompile, and the source code is
not needed). In a microcoded machine (or a packing/cracking scheme) the
translation takes place at execution time, every time. Either way, it
gets done, and either way permits ISA extension freely. They differ in
power, area, and time; the choice is an engineering design dimension.

I assert without proof that Mill-style software translation in fact
permits ISA extension that is *more* flexible and powerful than what can
be achieved by hardware approaches. YMMV.

Re: Encoding 20 and 40 bit instructions in 128 bits

<suarbs$qn5$1@newsreader4.netcologne.de>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23410&group=comp.arch#23410

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2a0a-a540-127a-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sun, 13 Feb 2022 11:51:24 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <suarbs$qn5$1@newsreader4.netcologne.de>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com>
<_IhLJ.4280$0vE9.17@fx17.iad> <3%tLJ.35102$t2Bb.34664@fx98.iad>
<sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com>
<stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me>
<stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de> <4uQNJ.16175$8V_7.8153@fx04.iad>
<su9ajt$5pr$1@dont-email.me>
<5db43324-630c-46a0-9ece-ab7343975715n@googlegroups.com>
<su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de>
<suaos8$nhu$1@dont-email.me>
Injection-Date: Sun, 13 Feb 2022 11:51:24 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2a0a-a540-127a-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2a0a:a540:127a:0:7285:c2ff:fe6c:992d";
logging-data="27365"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sun, 13 Feb 2022 11:51 UTC

Ivan Godard <ivan@millcomputing.com> schrieb:
> On 2/13/2022 1:37 AM, Thomas Koenig wrote:

>> And if you do that (and have really hit something close to the
>> minimum, which will vary depending on applications) you no longer
>> have a realistic chance of extending your ISA, so you need to
>> recompile (or specialize, as I think you call it) from source or
>> from an intermediate representation.
>>
>> No such thing as an ISA free of drawbacks :-)
>
> Yes; that's a problem whenever there's a execution-level representation
> of code that is below the distribution level. The distribution
> representation must be translated to the execution level.
>
> In Mill the translation happens once, at install time, via a transparent
> invocation of the specializer (not a recompile, and the source code is
> not needed). In a microcoded machine (or a packing/cracking scheme) the
> translation takes place at execution time, every time. Either way, it
> gets done, and either way permits ISA extension freely. They differ in
> power, area, and time; the choice is an engineering design dimension.
>
> I assert without proof that Mill-style software translation in fact
> permits ISA extension that is *more* flexible and powerful than what can
> be achieved by hardware approaches.

I think the

>YMMV.

is superfluous - if you basically get to rewrite your ISA for each
specific processor, same as TIMI for the AS/400 ff. (which also
recompiles).

If there is anything more flexible than that, I would like to know
what it should look like :-)

Re: Encoding 20 and 40 bit instructions in 128 bits

<21aa2068-3326-4feb-bdba-d4c4408fffddn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23411&group=comp.arch#23411

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:192:: with SMTP id s18mr6731340qtw.268.1644764001977;
Sun, 13 Feb 2022 06:53:21 -0800 (PST)
X-Received: by 2002:a05:6870:b242:: with SMTP id b2mr2874770oam.46.1644764001715;
Sun, 13 Feb 2022 06:53:21 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 13 Feb 2022 06:53:21 -0800 (PST)
In-Reply-To: <suarbs$qn5$1@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fb70:6300:71fa:b59b:ae33:d063;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fb70:6300:71fa:b59b:ae33:d063
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com>
<_IhLJ.4280$0vE9.17@fx17.iad> <3%tLJ.35102$t2Bb.34664@fx98.iad>
<sto41r$4tj$1@newsreader4.netcologne.de> <9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com>
<stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me>
<stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me> <su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com> <e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com> <53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de> <4uQNJ.16175$8V_7.8153@fx04.iad>
<su9ajt$5pr$1@dont-email.me> <5db43324-630c-46a0-9ece-ab7343975715n@googlegroups.com>
<su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de>
<suaos8$nhu$1@dont-email.me> <suarbs$qn5$1@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <21aa2068-3326-4feb-bdba-d4c4408fffddn@googlegroups.com>
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Sun, 13 Feb 2022 14:53:21 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 11
 by: Quadibloc - Sun, 13 Feb 2022 14:53 UTC

On Sunday, February 13, 2022 at 4:51:26 AM UTC-7, Thomas Koenig wrote:
> if you basically get to rewrite your ISA for each
> specific processor,

My understanding is that while the native code of different Mill processors
is different, the form of code that compilers generate which is publicly
specified is constant.

This is still a constraint - think of the IBM 360, where different models used
their own microcode language.

John Savard

Re: Encoding 20 and 40 bit instructions in 128 bits

<3541fae1-e7e2-4ede-b08e-46f53b4bb2a4n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23412&group=comp.arch#23412

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:54c:: with SMTP id m12mr6838410qtx.300.1644764243304;
Sun, 13 Feb 2022 06:57:23 -0800 (PST)
X-Received: by 2002:a05:6870:5485:: with SMTP id f5mr2748480oan.217.1644764243020;
Sun, 13 Feb 2022 06:57:23 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 13 Feb 2022 06:57:22 -0800 (PST)
In-Reply-To: <su6qeh$c9q$1@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fb70:6300:71fa:b59b:ae33:d063;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fb70:6300:71fa:b59b:ae33:d063
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <c9f3b05a-cc34-4ec9-a7da-88c1fb31614dn@googlegroups.com>
<stec4m$kg0$1@dont-email.me> <de6ecdef-8e30-40aa-838f-df08d10389e7n@googlegroups.com>
<2fd5e668-fbe5-4399-bf74-f5e509d669ebn@googlegroups.com> <4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com> <_IhLJ.4280$0vE9.17@fx17.iad>
<3%tLJ.35102$t2Bb.34664@fx98.iad> <sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com> <stuoqv$97e$1@newsreader4.netcologne.de>
<stv51f$da9$1@dont-email.me> <stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me> <731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com> <su59a7$avf$1@newsreader4.netcologne.de>
<su65pg$lc$1@dont-email.me> <8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com> <su6qeh$c9q$1@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3541fae1-e7e2-4ede-b08e-46f53b4bb2a4n@googlegroups.com>
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Sun, 13 Feb 2022 14:57:23 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 14
 by: Quadibloc - Sun, 13 Feb 2022 14:57 UTC

On Friday, February 11, 2022 at 4:11:16 PM UTC-7, Thomas Koenig wrote:

> It is rather hard to do anything useful with 16 bits with full 32
> registers.

What I've done in my recent designs is to specify the two registers used in
an instruction with only 8 bits; five specify the destination register, and the
source register must belong to the same group of eight registers as the
destination register.

Since the idea is to allow more instructions to run in parallel by having
multiple interleaved threads of instructions that work with different registers,
this fits right in.

John Savard

Re: Encoding 20 and 40 bit instructions in 128 bits

<c71340eb-56b2-4dca-ab5b-4f3ef37f938bn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23413&group=comp.arch#23413

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:1399:: with SMTP id k25mr5146759qki.662.1644766369537;
Sun, 13 Feb 2022 07:32:49 -0800 (PST)
X-Received: by 2002:a05:6870:1150:: with SMTP id 16mr2351298oag.82.1644766369338;
Sun, 13 Feb 2022 07:32:49 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 13 Feb 2022 07:32:49 -0800 (PST)
In-Reply-To: <3541fae1-e7e2-4ede-b08e-46f53b4bb2a4n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:7540:f86c:4b37:d1fe;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:7540:f86c:4b37:d1fe
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <c9f3b05a-cc34-4ec9-a7da-88c1fb31614dn@googlegroups.com>
<stec4m$kg0$1@dont-email.me> <de6ecdef-8e30-40aa-838f-df08d10389e7n@googlegroups.com>
<2fd5e668-fbe5-4399-bf74-f5e509d669ebn@googlegroups.com> <4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com>
<b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com> <_IhLJ.4280$0vE9.17@fx17.iad>
<3%tLJ.35102$t2Bb.34664@fx98.iad> <sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com> <stuoqv$97e$1@newsreader4.netcologne.de>
<stv51f$da9$1@dont-email.me> <stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me> <731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com> <su59a7$avf$1@newsreader4.netcologne.de>
<su65pg$lc$1@dont-email.me> <8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com> <su6qeh$c9q$1@newsreader4.netcologne.de>
<3541fae1-e7e2-4ede-b08e-46f53b4bb2a4n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c71340eb-56b2-4dca-ab5b-4f3ef37f938bn@googlegroups.com>
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sun, 13 Feb 2022 15:32:49 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 25
 by: MitchAlsup - Sun, 13 Feb 2022 15:32 UTC

On Sunday, February 13, 2022 at 8:57:24 AM UTC-6, Quadibloc wrote:
> On Friday, February 11, 2022 at 4:11:16 PM UTC-7, Thomas Koenig wrote:
>
> > It is rather hard to do anything useful with 16 bits with full 32
> > registers.
> What I've done in my recent designs is to specify the two registers used in
> an instruction with only 8 bits; five specify the destination register, and the
> source register must belong to the same group of eight registers as the
> destination register.
<
I think you may find this negatively impacts your code when running your
ABI.
<
For example, My 66000 ABI passes arguments to functions in R1-R9, returns
results in R1-R9, and preserves R16-R31 across function calls, with Rlow-R15
freely available as temp registers.
<
Let us postulate a subroutine that allocates a dynamically sized array which
arrives as a parameter, but ultimately wants to get subtracted from the stack
pointer R31 to allocate the array.
>
> Since the idea is to allow more instructions to run in parallel by having
> multiple interleaved threads of instructions that work with different registers,
> this fits right in.
>
> John Savard

Re: Encoding 20 and 40 bit instructions in 128 bits

<0I9OJ.22703$4JN7.21667@fx05.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23414&group=comp.arch#23414

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!1.us.feeder.erje.net!feeder.erje.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!feeder.usenetexpress.com!tr2.eu1.usenetexpress.com!news.uzoreto.com!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!fx05.iad.POSTED!not-for-mail
From: ThatWoul...@thevillage.com (EricP)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <de6ecdef-8e30-40aa-838f-df08d10389e7n@googlegroups.com> <2fd5e668-fbe5-4399-bf74-f5e509d669ebn@googlegroups.com> <4fca5742-1815-4b31-8ea9-2da1592f3456n@googlegroups.com> <b38538d0-7394-439b-a227-ede56b4b4040n@googlegroups.com> <_IhLJ.4280$0vE9.17@fx17.iad> <3%tLJ.35102$t2Bb.34664@fx98.iad> <sto41r$4tj$1@newsreader4.netcologne.de> <9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com> <stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me> <stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me> <su19ub$9hr$1@dont-email.me> <731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com> <e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com> <su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me> <8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com> <53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com> <su6qeh$c9q$1@newsreader4.netcologne.de> <3541fae1-e7e2-4ede-b08e-46f53b4bb2a4n@googlegroups.com>
In-Reply-To: <3541fae1-e7e2-4ede-b08e-46f53b4bb2a4n@googlegroups.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 33
Message-ID: <0I9OJ.22703$4JN7.21667@fx05.iad>
X-Complaints-To: abuse@UsenetServer.com
NNTP-Posting-Date: Sun, 13 Feb 2022 15:45:00 UTC
Date: Sun, 13 Feb 2022 10:44:42 -0500
X-Received-Bytes: 3082
 by: EricP - Sun, 13 Feb 2022 15:44 UTC

Quadibloc wrote:
> On Friday, February 11, 2022 at 4:11:16 PM UTC-7, Thomas Koenig wrote:
>
>> It is rather hard to do anything useful with 16 bits with full 32
>> registers.
>
> What I've done in my recent designs is to specify the two registers used in
> an instruction with only 8 bits; five specify the destination register, and the
> source register must belong to the same group of eight registers as the
> destination register.
>
> Since the idea is to allow more instructions to run in parallel by having
> multiple interleaved threads of instructions that work with different registers,
> this fits right in.
>
> John Savard

The term "strands of execution" might be better than
overloading the term thread.

I don't see how these two concepts of register sets and strands connect.
The decoder internally maps the 2 register instruction into
the same 3 register uOp as a 3 register format would use.
The restriction of second register being in the same 2-bit set
only matters to the compiler register selector, not the uOp.
If the forwarding network can execute dependent instructions
back to back, then which strand an instruction is for doesn't matter.

For something like this to matter there would have to be an
asymmetry between accessing or forwarding between register sets.
That seems a pretty niche implementation target for an ISA.

Re: Encoding 20 and 40 bit instructions in 128 bits

<jwvmtiulqqr.fsf-monnier+comp.arch@gnu.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23415&group=comp.arch#23415

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: monn...@iro.umontreal.ca (Stefan Monnier)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sun, 13 Feb 2022 10:46:40 -0500
Organization: A noiseless patient Spider
Lines: 12
Message-ID: <jwvmtiulqqr.fsf-monnier+comp.arch@gnu.org>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com>
<stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me>
<stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de>
<4uQNJ.16175$8V_7.8153@fx04.iad> <su9ajt$5pr$1@dont-email.me>
<5db43324-630c-46a0-9ece-ab7343975715n@googlegroups.com>
<su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de>
<suaos8$nhu$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="4b245d8e2680d4b4c15ad63d49b1fa91";
logging-data="23021"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/9fsDSPhQra+ricAjcvVYO"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
Cancel-Lock: sha1:LQ6HqqvV4nZmhEIpBTD50kzoEaE=
sha1:n/8kc/yNcLn7LfXvNbYZ3H2M62U=
 by: Stefan Monnier - Sun, 13 Feb 2022 15:46 UTC

> In Mill the translation happens once, at install time, via a transparent
> invocation of the specializer (not a recompile, and the source code is not
> needed).

Of course, for JIT compilers, "install time" is also run time, making it
important to have a fast(ish?) way to specialize for the target CPU.

It can also make it harder to do things like migrate a VM from one CPU
to another (or for things like big.LITTLE).

Stefan

Re: Encoding 20 and 40 bit instructions in 128 bits

<subbok$n5e$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=23416&group=comp.arch#23416

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: sfu...@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sun, 13 Feb 2022 08:31:16 -0800
Organization: A noiseless patient Spider
Lines: 23
Message-ID: <subbok$n5e$1@dont-email.me>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<3%tLJ.35102$t2Bb.34664@fx98.iad> <sto41r$4tj$1@newsreader4.netcologne.de>
<9de2cef4-0cfc-4a6b-a96a-fc7cbc836966n@googlegroups.com>
<stuoqv$97e$1@newsreader4.netcologne.de> <stv51f$da9$1@dont-email.me>
<stvf02$v7b$1@dont-email.me> <su10pc$1e5$1@dont-email.me>
<su19ub$9hr$1@dont-email.me>
<731cd4dd-35b7-4509-96d5-bf33c1e8c60fn@googlegroups.com>
<e4234dae-c8de-4ba6-949b-696821e1a15dn@googlegroups.com>
<su59a7$avf$1@newsreader4.netcologne.de> <su65pg$lc$1@dont-email.me>
<8511a1a5-48be-4186-9d6e-8831616ba9a5n@googlegroups.com>
<53335b0a-0f90-4836-8cf9-5668308e38a9n@googlegroups.com>
<su6qeh$c9q$1@newsreader4.netcologne.de> <4uQNJ.16175$8V_7.8153@fx04.iad>
<su9ajt$5pr$1@dont-email.me>
<5db43324-630c-46a0-9ece-ab7343975715n@googlegroups.com>
<su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de>
<suaos8$nhu$1@dont-email.me> <suarbs$qn5$1@newsreader4.netcologne.de>
<21aa2068-3326-4feb-bdba-d4c4408fffddn@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 13 Feb 2022 16:31:16 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="9d617a4e0e113c86ed2332af7ea6b2d7";
logging-data="23726"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+7r9XkHieaHEvzVjWHpzg48iNvFO+fmcw="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.6.0
Cancel-Lock: sha1:G5WziqMbz7Wd1Gt+gy9ZgMXfeho=
In-Reply-To: <21aa2068-3326-4feb-bdba-d4c4408fffddn@googlegroups.com>
Content-Language: en-US
 by: Stephen Fuld - Sun, 13 Feb 2022 16:31 UTC

On 2/13/2022 6:53 AM, Quadibloc wrote:
> On Sunday, February 13, 2022 at 4:51:26 AM UTC-7, Thomas Koenig wrote:
>> if you basically get to rewrite your ISA for each
>> specific processor,
>
> My understanding is that while the native code of different Mill processors
> is different, the form of code that compilers generate which is publicly
> specified is constant.
>
> This is still a constraint - think of the IBM 360, where different models used
> their own microcode language.

I think that is different. Think of the difference between an
interpreter and a compiler. In this analogy, each 360 model is a
different interpreter for the same "language", while the Mill Specifier
is like a cross compiler with the ability to target different processors
from the same source.

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

Pages:1234567891011121314
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor