Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

If entropy is increasing, where is it coming from?


devel / comp.arch / Re: instruction set binding time, was 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

<subg32$9j1$1@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!news.mixmin.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 17:45:06 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <subg32$9j1$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>
<3541fae1-e7e2-4ede-b08e-46f53b4bb2a4n@googlegroups.com>
<0I9OJ.22703$4JN7.21667@fx05.iad>
Injection-Date: Sun, 13 Feb 2022 17:45:06 -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="9825"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sun, 13 Feb 2022 17:45 UTC

EricP <ThatWouldBeTelling@thevillage.com> schrieb:
> 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.

A microarchitecture might be set up in a way that it has (some)
separate execution units and register files for each strand (good
term, by the way) to allow a smaller forwarding network.

One interesting question would be how to handle communication
between the different strands, possibly with a few shared registers
(there might be a need for a shared stack pointer, for example).

We discussed this some time ago, with mixed results.

The first step would probably to see how well a compiler would
handle such a split into multiple strands. Itanium appeared to
have had around 20 to 30% nops with their prescribed bundling,
but a strand-based ISA should be more flexible.

(Of course, a microarchitecture could also do a hierarchical
ordering of their execution units; for all I know, they
already do so and bin their instructions).

Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128 bits

<subggb$2vj5$1@gal.iecc.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!not-for-mail
From: joh...@taugh.com (John Levine)
Newsgroups: comp.arch
Subject: Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128 bits
Date: Sun, 13 Feb 2022 17:52:11 -0000 (UTC)
Organization: Taughannock Networks
Message-ID: <subggb$2vj5$1@gal.iecc.com>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de> <suaos8$nhu$1@dont-email.me>
Injection-Date: Sun, 13 Feb 2022 17:52:11 -0000 (UTC)
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970";
logging-data="97893"; mail-complaints-to="abuse@iecc.com"
In-Reply-To: <ssu0r5$p2m$1@newsreader4.netcologne.de> <su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de> <suaos8$nhu$1@dont-email.me>
Cleverness: some
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: johnl@iecc.com (John Levine)
 by: John Levine - Sun, 13 Feb 2022 17:52 UTC

According to Ivan Godard <ivan@millcomputing.com>:
>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.

If one believes in proof by example, this approach has been wildly successful
in the IBM S/38, AS/400. and whatever it is called now, something something i.

You can take 30 year TIMI object code and run it on current hardware at full speed,
supporting their exotic object architecture with 128 bit pointers. I believe the
architecture had one significant change in the 1990s, with addresses expanding
from 48 to 64 bits but the old object code still works.

I'm kind of surprised nobody else does this. I suppose only IBM had sufficient
control over both the hardware and software to make it work.

--
Regards,
John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
Please consider the environment before reading this e-mail. https://jl.ly

Re: Encoding 20 and 40 bit instructions in 128 bits

<2022Feb13.184118@mips.complang.tuwien.ac.at>

  copy mid

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

  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: Sun, 13 Feb 2022 17:41:18 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 25
Message-ID: <2022Feb13.184118@mips.complang.tuwien.ac.at>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <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-Info: reader02.eternal-september.org; posting-host="c34096716f8b683cb9eb00b0696c2846";
logging-data="3800"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18tVULHB4zyc2yuHrLWdH3c"
Cancel-Lock: sha1:5A5hP7/7RAoemsUIhl4+0oeSCaE=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Sun, 13 Feb 2022 17:41 UTC

Ivan Godard <ivan@millcomputing.com> writes:
>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.

My mileage is that we have RAID 1 on two SSDs with a Debian
installation on a machine with a Ryzen 5800X. When we got a machine
with a Xeon-W 1370P to work, we took one of the SSDs, put it in the
Xeon box, and the system worked. We also put empty SSDs in both
machines and told the system to use the new SSD for the RAID 1.

The way you describe the Mill way, we could not do that with two
different Mill models, even from the same company.

- 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

<subick$5gh$1@gal.iecc.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!not-for-mail
From: joh...@taugh.com (John Levine)
Newsgroups: comp.arch
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
Date: Sun, 13 Feb 2022 18:24:20 -0000 (UTC)
Organization: Taughannock Networks
Message-ID: <subick$5gh$1@gal.iecc.com>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <suajgb$mk6$1@newsreader4.netcologne.de> <suaos8$nhu$1@dont-email.me> <2022Feb13.184118@mips.complang.tuwien.ac.at>
Injection-Date: Sun, 13 Feb 2022 18:24:20 -0000 (UTC)
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970";
logging-data="5649"; mail-complaints-to="abuse@iecc.com"
In-Reply-To: <ssu0r5$p2m$1@newsreader4.netcologne.de> <suajgb$mk6$1@newsreader4.netcologne.de> <suaos8$nhu$1@dont-email.me> <2022Feb13.184118@mips.complang.tuwien.ac.at>
Cleverness: some
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: johnl@iecc.com (John Levine)
 by: John Levine - Sun, 13 Feb 2022 18:24 UTC

According to Anton Ertl <anton@mips.complang.tuwien.ac.at>:
>Ivan Godard <ivan@millcomputing.com> writes:
>>In Mill the translation happens once, at install time, via a transparent
>>invocation of the specializer ...

>The way you describe the Mill way, we could not do that with two
>different Mill models, even from the same company.

Are you sure? If it's modelled on the AS/400, the original code is still there
and when you run a program, the system retranslates the code if it doesn't have
the specialized version for the current processor.

Perhaps Ivan can clarify.

--
Regards,
John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
Please consider the environment before reading this e-mail. https://jl.ly

Re: Encoding 20 and 40 bit instructions in 128 bits

<0bdf5571-24a5-4283-b171-19cdd085acdbn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:5c16:: with SMTP id i22mr7255268qti.657.1644776877682;
Sun, 13 Feb 2022 10:27:57 -0800 (PST)
X-Received: by 2002:a05:6808:1998:: with SMTP id bj24mr1038815oib.281.1644776877446;
Sun, 13 Feb 2022 10:27:57 -0800 (PST)
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.net!border1.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 10:27:57 -0800 (PST)
In-Reply-To: <0I9OJ.22703$4JN7.21667@fx05.iad>
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> <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> <0I9OJ.22703$4JN7.21667@fx05.iad>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <0bdf5571-24a5-4283-b171-19cdd085acdbn@googlegroups.com>
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sun, 13 Feb 2022 18:27:57 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 44
 by: MitchAlsup - Sun, 13 Feb 2022 18:27 UTC

On Sunday, February 13, 2022 at 9:45:06 AM UTC-6, EricP wrote:
> 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.
<
There are more problems than that in Quadibloc's statement.
<
"Since the idea is to allow more instructions to run in parallel by having
multiple interleaved threads" Threads within a process, or Threads spanning
processes? "of instructions that work with different registers" different
blocks within a single register file or different register files themselves?
>
> 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.
<
But he has doubled the number of places register specifiers come
from (16-bit and 32-bit) while adding some bit pasting from route.
<
> If the forwarding network can execute dependent instructions
> back to back, then which strand an instruction is for doesn't matter.
<
Right: once mapped into the complete register file it's just data-flow.
>
> 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: instruction set binding time, was Encoding 20 and 40 bit instructions in 128 bits

<subiog$cp8$1@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd6-19cd-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: instruction set binding time, was Encoding 20 and 40 bit
instructions in 128 bits
Date: Sun, 13 Feb 2022 18:30:40 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <subiog$cp8$1@newsreader4.netcologne.de>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de>
<suaos8$nhu$1@dont-email.me> <subggb$2vj5$1@gal.iecc.com>
Injection-Date: Sun, 13 Feb 2022 18:30:40 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd6-19cd-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd6:19cd:0:7285:c2ff:fe6c:992d";
logging-data="13096"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sun, 13 Feb 2022 18:30 UTC

John Levine <johnl@taugh.com> schrieb:
> According to Ivan Godard <ivan@millcomputing.com>:
>>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.
>
> If one believes in proof by example, this approach has been wildly successful
> in the IBM S/38, AS/400. and whatever it is called now, something something i.
>
> You can take 30 year TIMI object code and run it on current hardware at full speed,
> supporting their exotic object architecture with 128 bit pointers. I believe the
> architecture had one significant change in the 1990s, with addresses expanding
> from 48 to 64 bits but the old object code still works.
>
> I'm kind of surprised nobody else does this. I suppose only IBM had sufficient
> control over both the hardware and software to make it work.

That is the key, I think - IBM also controls the operating system.

Which begs the question - what is Mill going to do for operating
system support, are there any plans? Plan 9 with its multiple
binaries might actually be an option.

Re: Encoding 20 and 40 bit instructions in 128 bits

<ad132bfa-f56e-4e24-9fbb-44fd331914b1n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:b6b:: with SMTP id ey11mr7405185qvb.82.1644777057789;
Sun, 13 Feb 2022 10:30:57 -0800 (PST)
X-Received: by 2002:a05:6870:134f:: with SMTP id 15mr1598740oac.327.1644777057626;
Sun, 13 Feb 2022 10:30:57 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!1.us.feeder.erje.net!feeder.erje.net!border1.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 10:30:57 -0800 (PST)
In-Reply-To: <2022Feb13.184118@mips.complang.tuwien.ac.at>
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> <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> <2022Feb13.184118@mips.complang.tuwien.ac.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ad132bfa-f56e-4e24-9fbb-44fd331914b1n@googlegroups.com>
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sun, 13 Feb 2022 18:30:57 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 28
 by: MitchAlsup - Sun, 13 Feb 2022 18:30 UTC

On Sunday, February 13, 2022 at 11:54:34 AM UTC-6, Anton Ertl wrote:
> Ivan Godard <iv...@millcomputing.com> writes:
> >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.
> My mileage is that we have RAID 1 on two SSDs with a Debian
> installation on a machine with a Ryzen 5800X. When we got a machine
> with a Xeon-W 1370P to work, we took one of the SSDs, put it in the
> Xeon box, and the system worked. We also put empty SSDs in both
> machines and told the system to use the new SSD for the RAID 1.
>
> The way you describe the Mill way, we could not do that with two
> different Mill models, even from the same company.
<
A RAID accessible to a Gold and a Silver containing application *.elfs
<
How does this work?
<
> - anton
> --
> 'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
> Mitch Alsup, <c17fcd89-f024-40e7...@googlegroups.com>

Re: Encoding 20 and 40 bit instructions in 128 bits

<subj96$dbr$1@newsreader4.netcologne.de>

  copy mid

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

  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-f8fa-e257-5830-2394.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: Sun, 13 Feb 2022 19:39:34 +0100
Organization: news.netcologne.de
Distribution: world
Message-ID: <subj96$dbr$1@newsreader4.netcologne.de>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<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> <2022Feb13.184118@mips.complang.tuwien.ac.at>
<ad132bfa-f56e-4e24-9fbb-44fd331914b1n@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 18:39:34 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2a0a-a544-99c-0-f8fa-e257-5830-2394.ipv6dyn.netcologne.de:2a0a:a544:99c:0:f8fa:e257:5830:2394";
logging-data="13691"; 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: <ad132bfa-f56e-4e24-9fbb-44fd331914b1n@googlegroups.com>
 by: Bernd Linsel - Sun, 13 Feb 2022 18:39 UTC

On 13.02.2022 19:30, MitchAlsup wrote:
> On Sunday, February 13, 2022 at 11:54:34 AM UTC-6, Anton Ertl wrote:
>> Ivan Godard <iv...@millcomputing.com> writes:
>>> 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.
>> My mileage is that we have RAID 1 on two SSDs with a Debian
>> installation on a machine with a Ryzen 5800X. When we got a machine
>> with a Xeon-W 1370P to work, we took one of the SSDs, put it in the
>> Xeon box, and the system worked. We also put empty SSDs in both
>> machines and told the system to use the new SSD for the RAID 1.
>>
>> The way you describe the Mill way, we could not do that with two
>> different Mill models, even from the same company.
> <
> A RAID accessible to a Gold and a Silver containing application *.elfs
> <
> How does this work?
> <
>> - anton
>> --
>> 'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
>> Mitch Alsup, <c17fcd89-f024-40e7...@googlegroups.com>

Perhaps something like old Mac's "fat binaries" with 68k and PowerPC
code in different forks?

Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 1

<559a9860-c5fc-43ed-a3a1-38a6cf41ab76n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:d81:: with SMTP id e1mr3523622qve.70.1644790874935;
Sun, 13 Feb 2022 14:21:14 -0800 (PST)
X-Received: by 2002:a05:6808:118c:: with SMTP id j12mr4175951oil.259.1644790874691;
Sun, 13 Feb 2022 14:21:14 -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 14:21:14 -0800 (PST)
In-Reply-To: <memo.20220213212727.7708E@jgd.cix.co.uk>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:35e6:2a36:6ba5:8faf;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:35e6:2a36:6ba5:8faf
References: <subggb$2vj5$1@gal.iecc.com> <memo.20220213212727.7708E@jgd.cix.co.uk>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <559a9860-c5fc-43ed-a3a1-38a6cf41ab76n@googlegroups.com>
Subject: Re: instruction set binding time, was Encoding 20 and 40 bit
instructions in 1
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sun, 13 Feb 2022 22:21:14 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 16
 by: MitchAlsup - Sun, 13 Feb 2022 22:21 UTC

On Sunday, February 13, 2022 at 3:27:31 PM UTC-6, John Dallman wrote:
> In article <subggb$2vj5$1...@gal.iecc.com>, jo...@taugh.com (John Levine)
> wrote:
> > I'm kind of surprised nobody else does this. I suppose only IBM
> > had sufficient control over both the hardware and software to make
> > it work.
<
> IBM had the credibility to introduce a hardware and OS combination that
> wasn't compatible with anything else, and get businesses to rely on it.
> That's quite rare.
<
Remembering how long people had been using whips to cause the animal
pulling their cart. The opening for someone (like IBM) to do as John indicates
comes around about that often. We remember the event by the death of the
buggy whip industry.
>
> John

Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128 bits

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

  copy mid

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

  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: instruction set binding time, was Encoding 20 and 40 bit instructions in 128 bits
Date: Sun, 13 Feb 2022 17:47:25 -0500
Organization: A noiseless patient Spider
Lines: 35
Message-ID: <jwva6euz9bv.fsf-monnier+comp.arch@gnu.org>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de>
<suaos8$nhu$1@dont-email.me> <subggb$2vj5$1@gal.iecc.com>
<subiog$cp8$1@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="b5124e558462440c21b54c95e90358b6";
logging-data="23124"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/QBGtiV1dKrPr/2xPMJAma"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
Cancel-Lock: sha1:uYe/D6nCOLoFVFQb71umHf4oy6w=
sha1:sLrJXSwriOMDfBHqCKFyQ06Ef4g=
 by: Stefan Monnier - Sun, 13 Feb 2022 22:47 UTC

> Which begs the question - what is Mill going to do for operating
> system support, are there any plans? Plan 9 with its multiple
> binaries might actually be an option.

I don't think Ivan has answered that yet here the last few times thi
discussion showed up, but in any case there are many different ways to
handle the problem:

- Ignore it (i.e. focus on segments of the market where moving
specialized code from one machine to another is not needed).

- For JIT compilers, this is a similar problem as dynamic recompilation,
which I'd expect most mature JIT compilers already do for other
reasons, so it's likely easy to solved.

- To support moving a whole OS disk to a new machine between reboots,
all it takes is to detect the different CPU and cause all the code to
be re-specialized, probably lazily (i.e. re-specialize executables at
first execution).

- Since, contrary to IBM, I believe they don't intend to hide the
low-level ISA, it's probably impossible to handle on-the-fly migration
in 100% reliable way in the general case, so they don't need to try
and handle the general case.

- IIUC, the Mill's stack is very well protected, so that probably makes
it easier to find reliably all the return addresses in order to update
them after recompiling the code. That still leaves the question of
how to handle the code pointers stored in the heap (you can overwrite
the old code with dummy proxies/trampolines but you would still want
to have some way to find&redirect the pointers themselves so the
proxies aren't needed eternally).

Stefan

Re: Encoding 20 and 40 bit instructions in 128 bits

<suc401$7k2$1@dont-email.me>

  copy mid

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

  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 15:24:48 -0800
Organization: A noiseless patient Spider
Lines: 20
Message-ID: <suc401$7k2$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 23:24:50 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="1a1e1f2bbea776379b084b4158b8e918";
logging-data="7810"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19A1VhhiIh7c2FeQducShBI"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.5.1
Cancel-Lock: sha1:R89YiOLkcJh1oKrkW859tFIKdy4=
In-Reply-To: <21aa2068-3326-4feb-bdba-d4c4408fffddn@googlegroups.com>
Content-Language: en-US
 by: Ivan Godard - Sun, 13 Feb 2022 23:24 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.
>
> John Savard

Generally but not completely true. GenAsm, the distribution medium, is
expected to be mostly constant. However, even that can change so long as
the genasm version is one recognized by the specializer version. To
continue the analogy with microcode, upgrading the specializer on an
existing chip is analogous to reflashing the microcode ROM, or, on the
360, loading in a different microcode floppy.

Re: Encoding 20 and 40 bit instructions in 128 bits

<suc4cc$9ra$1@dont-email.me>

  copy mid

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

  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 15:31:23 -0800
Organization: A noiseless patient Spider
Lines: 22
Message-ID: <suc4cc$9ra$1@dont-email.me>
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> <jwvmtiulqqr.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: Sun, 13 Feb 2022 23:31:24 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="1a1e1f2bbea776379b084b4158b8e918";
logging-data="10090"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX193pwQNE40gP0X1xDFJOIgM"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.5.1
Cancel-Lock: sha1:G4jgHL3hVN0kJq1K5M6uM2S9j30=
In-Reply-To: <jwvmtiulqqr.fsf-monnier+comp.arch@gnu.org>
Content-Language: en-US
 by: Ivan Godard - Sun, 13 Feb 2022 23:31 UTC

On 2/13/2022 7:46 AM, Stefan Monnier wrote:
>> 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

Yes, big.LITTLE is a known issue with our approach.

It is straightforward to migrate at an encoding barrier, which in our
present software is the function body. It is more difficult to migrate
if the data representation differs, but the only case we have at present
is between cores that do and do not support quad (128-bit) arithmetic
natively. And we have some ideas on how to migrate in the middle of open
code, but haven't done anything more than mumble about it.

Re: Encoding 20 and 40 bit instructions in 128 bits

<suc5r0$hlp$1@dont-email.me>

  copy mid

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

  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 15:56:16 -0800
Organization: A noiseless patient Spider
Lines: 60
Message-ID: <suc5r0$hlp$1@dont-email.me>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<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> <2022Feb13.184118@mips.complang.tuwien.ac.at>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 13 Feb 2022 23:56:16 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="1a1e1f2bbea776379b084b4158b8e918";
logging-data="18105"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+mm9iluENnxRCezbmpyeyT"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.5.1
Cancel-Lock: sha1:AcZO4Toubgy05vxv+A9R6tGyPLM=
In-Reply-To: <2022Feb13.184118@mips.complang.tuwien.ac.at>
Content-Language: en-US
 by: Ivan Godard - Sun, 13 Feb 2022 23:56 UTC

On 2/13/2022 9:41 AM, Anton Ertl wrote:
> Ivan Godard <ivan@millcomputing.com> writes:
>> 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.
>
> My mileage is that we have RAID 1 on two SSDs with a Debian
> installation on a machine with a Ryzen 5800X. When we got a machine
> with a Xeon-W 1370P to work, we took one of the SSDs, put it in the
> Xeon box, and the system worked. We also put empty SSDs in both
> machines and told the system to use the new SSD for the RAID 1.
>
> The way you describe the Mill way, we could not do that with two
> different Mill models, even from the same company.
>
> - anton

With the caution that Mill is a core ISA, not a board architecture, you
should be able to do as you describe on Mill cores.

Each load module in a Mill system identifies its target member and
carries a reference to (or copy of) the genAsm from which it was made.
The LM is actually a pruneable cache of the conAsms (member machine
codes) that have been made from that genAsm. If you try to run a LM on a
core that does not have a conAsm version in the cache then the system
invokes the current specializer and builds, and caches, a new conAsm
that will run on the new host.

This handles both migrating SSDs and also downloading (genAsm) binaries.
If SSD space is constrained, an option on a strip tool lets you discard
unnecessary conAsms that are no longer relevant.

This dynamic recreation requires that the chip be able to specialize to
the current host, and specializers are target specific. The bottom
turtle is a boot specializer in ROM on the chip itself. This is little
more than a genAsm interpreter, but is sufficient to build and run a
real specializer from the SSD, which in turn (after specializing itself
in a more optimal way) can migrate the rest of the system and
application code.

Specializers in general carry knowledge of the peculiarities of their
target. The intent is that you can use (after bootstrapping as above) a
generic specializer that works from tables obtained from that same ROM,
but if you want more bang you can download and install a target specific
specializer from the chip vendor's site. That particularized specializer
can make use of ISA-specific algorithms that the generic specializer
doesn't know, but the resulting code gets cached in the LMs like any
other. The The same approach will handle bug fixes of the specializer
itself, or x86-like hardware bugs.

Truth of advertising: we don't have the generic specialize cascade
working yet, and our current software is built using conventional
cross-compiling methods.

Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128 bits

<sucguj$dop$1@dont-email.me>

  copy mid

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

  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: instruction set binding time, was Encoding 20 and 40 bit
instructions in 128 bits
Date: Sun, 13 Feb 2022 19:05:56 -0800
Organization: A noiseless patient Spider
Lines: 37
Message-ID: <sucguj$dop$1@dont-email.me>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de>
<suaos8$nhu$1@dont-email.me> <subggb$2vj5$1@gal.iecc.com>
<subiog$cp8$1@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 14 Feb 2022 03:05:55 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="1a1e1f2bbea776379b084b4158b8e918";
logging-data="14105"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19x6PGizBDYI8STkj8oHxzN"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.5.1
Cancel-Lock: sha1:pZJhFPLlbIi36C2FTTKW3VVrK20=
In-Reply-To: <subiog$cp8$1@newsreader4.netcologne.de>
Content-Language: en-US
 by: Ivan Godard - Mon, 14 Feb 2022 03:05 UTC

On 2/13/2022 10:30 AM, Thomas Koenig wrote:
> John Levine <johnl@taugh.com> schrieb:
>> According to Ivan Godard <ivan@millcomputing.com>:
>>> 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.
>>
>> If one believes in proof by example, this approach has been wildly successful
>> in the IBM S/38, AS/400. and whatever it is called now, something something i.
>>
>> You can take 30 year TIMI object code and run it on current hardware at full speed,
>> supporting their exotic object architecture with 128 bit pointers. I believe the
>> architecture had one significant change in the 1990s, with addresses expanding
>> from 48 to 64 bits but the old object code still works.
>>
>> I'm kind of surprised nobody else does this. I suppose only IBM had sufficient
>> control over both the hardware and software to make it work.
>
> That is the key, I think - IBM also controls the operating system.
>
> Which begs the question - what is Mill going to do for operating
> system support, are there any plans? Plan 9 with its multiple
> binaries might actually be an option.

In progress, albeit slowly. We will provide a microkernel, essentially
at or slightly above the HAL level - this is furthest along. On that
will be a basic Linux port sufficient to provide a standard syscall
interface. The real issue comes from existing software that embeds
hardware or structural assumptions - /proc, drivers, etc. The CHERI
project suffers from the same problem.

Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128 bits

<such0v$dop$2@dont-email.me>

  copy mid

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

  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: instruction set binding time, was Encoding 20 and 40 bit
instructions in 128 bits
Date: Sun, 13 Feb 2022 19:07:11 -0800
Organization: A noiseless patient Spider
Lines: 38
Message-ID: <such0v$dop$2@dont-email.me>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de>
<suaos8$nhu$1@dont-email.me> <subggb$2vj5$1@gal.iecc.com>
<subiog$cp8$1@newsreader4.netcologne.de>
<jwva6euz9bv.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: Mon, 14 Feb 2022 03:07:11 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="1a1e1f2bbea776379b084b4158b8e918";
logging-data="14105"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+lmowwqaJCb/Bk9UFDAezX"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.5.1
Cancel-Lock: sha1:y6YYKJEX6mskc1PRxMLShY3mX7Q=
In-Reply-To: <jwva6euz9bv.fsf-monnier+comp.arch@gnu.org>
Content-Language: en-US
 by: Ivan Godard - Mon, 14 Feb 2022 03:07 UTC

On 2/13/2022 2:47 PM, Stefan Monnier wrote:
>> Which begs the question - what is Mill going to do for operating
>> system support, are there any plans? Plan 9 with its multiple
>> binaries might actually be an option.
>
> I don't think Ivan has answered that yet here the last few times thi
> discussion showed up, but in any case there are many different ways to
> handle the problem:
>
> - Ignore it (i.e. focus on segments of the market where moving
> specialized code from one machine to another is not needed).
>
> - For JIT compilers, this is a similar problem as dynamic recompilation,
> which I'd expect most mature JIT compilers already do for other
> reasons, so it's likely easy to solved.
>
> - To support moving a whole OS disk to a new machine between reboots,
> all it takes is to detect the different CPU and cause all the code to
> be re-specialized, probably lazily (i.e. re-specialize executables at
> first execution).
>
> - Since, contrary to IBM, I believe they don't intend to hide the
> low-level ISA, it's probably impossible to handle on-the-fly migration
> in 100% reliable way in the general case, so they don't need to try
> and handle the general case.
>
> - IIUC, the Mill's stack is very well protected, so that probably makes
> it easier to find reliably all the return addresses in order to update
> them after recompiling the code. That still leaves the question of
> how to handle the code pointers stored in the heap (you can overwrite
> the old code with dummy proxies/trampolines but you would still want
> to have some way to find&redirect the pointers themselves so the
> proxies aren't needed eternally).
>
>
> Stefan

+1

Re: Encoding 20 and 40 bit instructions in 128 bits

<672b7128-1d65-4cdd-9578-e1c19d95fff7n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:4cb:: with SMTP id q11mr8163189qtx.597.1644809685238;
Sun, 13 Feb 2022 19:34:45 -0800 (PST)
X-Received: by 2002:a05:6808:d54:: with SMTP id w20mr4761556oik.179.1644809684980;
Sun, 13 Feb 2022 19:34:44 -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 19:34:44 -0800 (PST)
In-Reply-To: <c71340eb-56b2-4dca-ab5b-4f3ef37f938bn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fb70:6300:119c:9580:ad3f:27e7;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fb70:6300:119c:9580:ad3f:27e7
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> <c71340eb-56b2-4dca-ab5b-4f3ef37f938bn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <672b7128-1d65-4cdd-9578-e1c19d95fff7n@googlegroups.com>
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Mon, 14 Feb 2022 03:34:45 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 28
 by: Quadibloc - Mon, 14 Feb 2022 03:34 UTC

On Sunday, February 13, 2022 at 8:32:51 AM UTC-7, MitchAlsup wrote:
> 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.

It's not as if I don't also have 32-bit register-to-register instructions in the
ISA. So the 16-bit instructions are just there to be used when they can be,
they don't make it awkward to do more general register-to-register operations.

So I'm not sure if I understand the nature of execution.

John Savard

Re: Encoding 20 and 40 bit instructions in 128 bits

<8d160485-6b5e-4a5c-89b2-1d5172bc0544n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a0c:f84b:: with SMTP id g11mr8198854qvo.88.1644810126265;
Sun, 13 Feb 2022 19:42:06 -0800 (PST)
X-Received: by 2002:a9d:628e:: with SMTP id x14mr4342837otk.38.1644810126055;
Sun, 13 Feb 2022 19:42:06 -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 19:42:05 -0800 (PST)
In-Reply-To: <0I9OJ.22703$4JN7.21667@fx05.iad>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fb70:6300:119c:9580:ad3f:27e7;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fb70:6300:119c:9580:ad3f:27e7
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> <0I9OJ.22703$4JN7.21667@fx05.iad>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8d160485-6b5e-4a5c-89b2-1d5172bc0544n@googlegroups.com>
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Mon, 14 Feb 2022 03:42:06 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 55
 by: Quadibloc - Mon, 14 Feb 2022 03:42 UTC

On Sunday, February 13, 2022 at 8:45:06 AM UTC-7, EricP wrote:

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

I'm certainly willing to accept that.

> 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.

I'll certainly also agree that this sort of thing doesn't matter at all
once you get down to the level of micro-ops.

> 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.

A pre-existing asymmetry?

The reason I'm having multiple strands of execution is so that
the ISA can work within the kind of modest-performance
implementation which

- is in-order,

- but which tries to obtain some of the performance benefits
of an out-of-order implementation by having 32 registers
instead of 8.

So I'm aiming at this:

If the compiler can take those concurrent strands of
execution, and keep the registers they use within one
of the partitions of the 32 registers into four sets of 8,
then the compiler can use 16-bit instructions more
often.

So I'm _creating_ an asymmetry between accessing or
forwarding between register sets...

but a *mild* one, which only applies to the _extra_
16-bit instructions that typical RISC architectures
_don't_ have, and not to the 32-bit registers that they
have and I also do...

to allow significantly more compact code to be
generated.

I don't see what's bad about that.

John Savard

Re: Encoding 20 and 40 bit instructions in 128 bits

<58530800-7cc0-4c17-9788-81d6949e8dcan@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:5283:: with SMTP id kj3mr8124718qvb.44.1644810328503;
Sun, 13 Feb 2022 19:45:28 -0800 (PST)
X-Received: by 2002:a05:6870:5485:: with SMTP id f5mr3402072oan.217.1644810328323;
Sun, 13 Feb 2022 19:45:28 -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 19:45:28 -0800 (PST)
In-Reply-To: <672b7128-1d65-4cdd-9578-e1c19d95fff7n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fb70:6300:119c:9580:ad3f:27e7;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fb70:6300:119c:9580:ad3f:27e7
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> <c71340eb-56b2-4dca-ab5b-4f3ef37f938bn@googlegroups.com>
<672b7128-1d65-4cdd-9578-e1c19d95fff7n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <58530800-7cc0-4c17-9788-81d6949e8dcan@googlegroups.com>
Subject: Re: Encoding 20 and 40 bit instructions in 128 bits
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Mon, 14 Feb 2022 03:45:28 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 31
 by: Quadibloc - Mon, 14 Feb 2022 03:45 UTC

On Sunday, February 13, 2022 at 8:34:46 PM UTC-7, Quadibloc wrote:
> On Sunday, February 13, 2022 at 8:32:51 AM UTC-7, MitchAlsup wrote:
> > 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.
> It's not as if I don't also have 32-bit register-to-register instructions in the
> ISA. So the 16-bit instructions are just there to be used when they can be,
> they don't make it awkward to do more general register-to-register operations.
>
> So I'm not sure if I understand the nature of

the objectiion

(how on Earth did that typo get in? Freudian slip?)
> John Savard

Re: Encoding 20 and 40 bit instructions in 128 bits

<sucjd9$pvc$1@dont-email.me>

  copy mid

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

  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 19:47:54 -0800
Organization: A noiseless patient Spider
Lines: 60
Message-ID: <sucjd9$pvc$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>
<3541fae1-e7e2-4ede-b08e-46f53b4bb2a4n@googlegroups.com>
<0I9OJ.22703$4JN7.21667@fx05.iad>
<8d160485-6b5e-4a5c-89b2-1d5172bc0544n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 14 Feb 2022 03:47:53 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="1a1e1f2bbea776379b084b4158b8e918";
logging-data="26604"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19Ywb9nJ6Gjl5PqyyG0ek5P"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.5.1
Cancel-Lock: sha1:OCNfX7dIKVSd+5JN99jhPKijUN4=
In-Reply-To: <8d160485-6b5e-4a5c-89b2-1d5172bc0544n@googlegroups.com>
Content-Language: en-US
 by: Ivan Godard - Mon, 14 Feb 2022 03:47 UTC

On 2/13/2022 7:42 PM, Quadibloc wrote:
> On Sunday, February 13, 2022 at 8:45:06 AM UTC-7, EricP wrote:
>
>> The term "strands of execution" might be better than
>> overloading the term thread.
>
> I'm certainly willing to accept that.
>
>> 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.
>
> I'll certainly also agree that this sort of thing doesn't matter at all
> once you get down to the level of micro-ops.
>
>> 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.
>
> A pre-existing asymmetry?
>
> The reason I'm having multiple strands of execution is so that
> the ISA can work within the kind of modest-performance
> implementation which
>
> - is in-order,
>
> - but which tries to obtain some of the performance benefits
> of an out-of-order implementation by having 32 registers
> instead of 8.
>
> So I'm aiming at this:
>
> If the compiler can take those concurrent strands of
> execution, and keep the registers they use within one
> of the partitions of the 32 registers into four sets of 8,
> then the compiler can use 16-bit instructions more
> often.
>
> So I'm _creating_ an asymmetry between accessing or
> forwarding between register sets...
>
> but a *mild* one, which only applies to the _extra_
> 16-bit instructions that typical RISC architectures
> _don't_ have, and not to the 32-bit registers that they
> have and I also do...
>
> to allow significantly more compact code to be
> generated.
>
> I don't see what's bad about that.
>
> John Savard

Clever. I don't see what's wrong about that either, although register
assignment in the compiler might be "interesting"

Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128 bits

<sucvsh$9to$2@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd6-19cd-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: instruction set binding time, was Encoding 20 and 40 bit
instructions in 128 bits
Date: Mon, 14 Feb 2022 07:20:49 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <sucvsh$9to$2@newsreader4.netcologne.de>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de>
<suaos8$nhu$1@dont-email.me> <subggb$2vj5$1@gal.iecc.com>
<subiog$cp8$1@newsreader4.netcologne.de> <sucguj$dop$1@dont-email.me>
Injection-Date: Mon, 14 Feb 2022 07:20:49 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd6-19cd-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd6:19cd:0:7285:c2ff:fe6c:992d";
logging-data="10168"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Mon, 14 Feb 2022 07:20 UTC

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

>> Which begs the question - what is Mill going to do for operating
>> system support, are there any plans? Plan 9 with its multiple
>> binaries might actually be an option.
>
> In progress, albeit slowly. We will provide a microkernel, essentially
> at or slightly above the HAL level - this is furthest along. On that
> will be a basic Linux port sufficient to provide a standard syscall
> interface.

I was just about to write that Linux is pretty much tied to gcc, but
it seems that clang is also supported now:
https://www.kernel.org/doc/html/latest/kbuild/llvm.html

so your clang-only compiler infrastructure should not be a problem.

>The real issue comes from existing software that embeds
> hardware or structural assumptions - /proc, drivers, etc. The CHERI
> project suffers from the same problem.

There is also the problem of which surrounding hardware to use.
Hm... are pin layouts for CPUs protected, or could you (for example)
lay out the connections on your CPU to be compatible with one of
the existing AMD or ARM chips?

Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128 bits

<sud4p9$ji7$1@dont-email.me>

  copy mid

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

  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: instruction set binding time, was Encoding 20 and 40 bit
instructions in 128 bits
Date: Mon, 14 Feb 2022 00:44:25 -0800
Organization: A noiseless patient Spider
Lines: 36
Message-ID: <sud4p9$ji7$1@dont-email.me>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de>
<suaos8$nhu$1@dont-email.me> <subggb$2vj5$1@gal.iecc.com>
<subiog$cp8$1@newsreader4.netcologne.de> <sucguj$dop$1@dont-email.me>
<sucvsh$9to$2@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 14 Feb 2022 08:44:26 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="1a1e1f2bbea776379b084b4158b8e918";
logging-data="20039"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18LbZKb3092C5yl3G7Zc3Wy"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.5.1
Cancel-Lock: sha1:KuTTre+7Rscp87aucNdjFOy+5mk=
In-Reply-To: <sucvsh$9to$2@newsreader4.netcologne.de>
Content-Language: en-US
 by: Ivan Godard - Mon, 14 Feb 2022 08:44 UTC

On 2/13/2022 11:20 PM, Thomas Koenig wrote:
> Ivan Godard <ivan@millcomputing.com> schrieb:
>> On 2/13/2022 10:30 AM, Thomas Koenig wrote:
>
>>> Which begs the question - what is Mill going to do for operating
>>> system support, are there any plans? Plan 9 with its multiple
>>> binaries might actually be an option.
>>
>> In progress, albeit slowly. We will provide a microkernel, essentially
>> at or slightly above the HAL level - this is furthest along. On that
>> will be a basic Linux port sufficient to provide a standard syscall
>> interface.
>
> I was just about to write that Linux is pretty much tied to gcc, but
> it seems that clang is also supported now:
> https://www.kernel.org/doc/html/latest/kbuild/llvm.html
>
> so your clang-only compiler infrastructure should not be a problem.

We are compiler-independent, although we have only done clang/LLVM so
far. Everything past genAsm is our own code, and any compiler can emit
genAsm.

>> The real issue comes from existing software that embeds
>> hardware or structural assumptions - /proc, drivers, etc. The CHERI
>> project suffers from the same problem.
>
> There is also the problem of which surrounding hardware to use.
> Hm... are pin layouts for CPUs protected, or could you (for example)
> lay out the connections on your CPU to be compatible with one of
> the existing AMD or ARM chips?

I understand that HW expects to adopt existing industry standards for
such things, but IANAHWG and don't know the details, which won't be
settled anyway until we reach the point of advancing from FPGA to a real
chip.

Re: Encoding 20 and 40 bit instructions in 128 bits

<2022Feb14.094745@mips.complang.tuwien.ac.at>

  copy mid

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

  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: Mon, 14 Feb 2022 08:47:45 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 23
Message-ID: <2022Feb14.094745@mips.complang.tuwien.ac.at>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <suajgb$mk6$1@newsreader4.netcologne.de> <suaos8$nhu$1@dont-email.me> <2022Feb13.184118@mips.complang.tuwien.ac.at> <subick$5gh$1@gal.iecc.com>
Injection-Info: reader02.eternal-september.org; posting-host="b636dcf9ba8eda7980c48ca0520dd5aa";
logging-data="17865"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19xbR6Ns94jR4cZzlp8Jn0X"
Cancel-Lock: sha1:FP2XUYvpZ+C4pHfyyHBdhrgLnEI=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Mon, 14 Feb 2022 08:47 UTC

John Levine <johnl@taugh.com> writes:
>According to Anton Ertl <anton@mips.complang.tuwien.ac.at>:
>>Ivan Godard <ivan@millcomputing.com> writes:
>>>In Mill the translation happens once, at install time, via a transparent
>>>invocation of the specializer ...
>
>>The way you describe the Mill way, we could not do that with two
>>different Mill models, even from the same company.
>
>Are you sure?

That's what he described above.

>If it's modelled on the AS/400, the original code is still there
>and when you run a program, the system retranslates the code if it doesn't have
>the specialized version for the current processor.

That's a more flexible approach.

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

Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128 bits

<2022Feb14.094955@mips.complang.tuwien.ac.at>

  copy mid

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

  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: instruction set binding time, was Encoding 20 and 40 bit instructions in 128 bits
Date: Mon, 14 Feb 2022 08:49:55 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 40
Message-ID: <2022Feb14.094955@mips.complang.tuwien.ac.at>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de> <suaos8$nhu$1@dont-email.me> <subggb$2vj5$1@gal.iecc.com> <subiog$cp8$1@newsreader4.netcologne.de> <jwva6euz9bv.fsf-monnier+comp.arch@gnu.org>
Injection-Info: reader02.eternal-september.org; posting-host="b636dcf9ba8eda7980c48ca0520dd5aa";
logging-data="17865"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/Cxpssi/RLL0iczdS05yV+"
Cancel-Lock: sha1:Y5qvOr4B9LLwyft0WU3x5q8BOb8=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Mon, 14 Feb 2022 08:49 UTC

Stefan Monnier <monnier@iro.umontreal.ca> writes:
>- For JIT compilers, this is a similar problem as dynamic recompilation,
> which I'd expect most mature JIT compilers already do for other
> reasons, so it's likely easy to solved.

What do you mean with "dynamic recompilation", and why do you expect
mature JIT compilers to do it?

Concerning JIT compilation, my impression is that Ivan Godard has not
put much thought into it. As far as I understand, all the software
should generate generic Mill code, and the specializer should then
translate that to native code. With a specializer based on LLVM, that
is going to be very slow. Even with a specializer designed for
specialization speed (or a JIT compiler directly generating native
code), features like the compressed instruction encoding will cause
slowness in native-code generation. Doing it as a two-stage process
(JIT+specializer) is also going to slow JIT translation down, while a
one-stage approach means that m JIT compilers combined with n Mill
native hardware implementations cause m*n effort (ideally, you just
need to change parameters, but someone certainly would have to invest
more effort in the JITs to make them parameterizable in that way).

>- Since, contrary to IBM, I believe they don't intend to hide the
> low-level ISA, it's probably impossible to handle on-the-fly migration
> in 100% reliable way in the general case, so they don't need to try
> and handle the general case.

Yes, moving an existing process is certainly another feature that the
classic architecture/microarchitecture division supports, and where
Mill needs to provide an answer, especially if the claim is that Mill
is more flexible. The single address space is also a problem in that
context.

My provisional verdict: Mill has been designed with the supercomputer
mindset, and suffers from the usual problems of such designs.

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

Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128 bits

<sudb0g$rq3$1@dont-email.me>

  copy mid

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

  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: instruction set binding time, was Encoding 20 and 40 bit
instructions in 128 bits
Date: Mon, 14 Feb 2022 02:30:40 -0800
Organization: A noiseless patient Spider
Lines: 104
Message-ID: <sudb0g$rq3$1@dont-email.me>
References: <ssu0r5$p2m$1@newsreader4.netcologne.de>
<su9j56$r9h$1@dont-email.me> <suajgb$mk6$1@newsreader4.netcologne.de>
<suaos8$nhu$1@dont-email.me> <subggb$2vj5$1@gal.iecc.com>
<subiog$cp8$1@newsreader4.netcologne.de>
<jwva6euz9bv.fsf-monnier+comp.arch@gnu.org>
<2022Feb14.094955@mips.complang.tuwien.ac.at>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 14 Feb 2022 10:30:40 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="1a1e1f2bbea776379b084b4158b8e918";
logging-data="28483"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/uKXnqBllFUBgtE9tvtSak"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.5.1
Cancel-Lock: sha1:d+TgakhCt7E1TPWQeldQPMLGwO0=
In-Reply-To: <2022Feb14.094955@mips.complang.tuwien.ac.at>
Content-Language: en-US
 by: Ivan Godard - Mon, 14 Feb 2022 10:30 UTC

On 2/14/2022 12:49 AM, Anton Ertl wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> - For JIT compilers, this is a similar problem as dynamic recompilation,
>> which I'd expect most mature JIT compilers already do for other
>> reasons, so it's likely easy to solved.
>
> What do you mean with "dynamic recompilation", and why do you expect
> mature JIT compilers to do it?
>
> Concerning JIT compilation, my impression is that Ivan Godard has not
> put much thought into it. As far as I understand, all the software
> should generate generic Mill code, and the specializer should then
> translate that to native code. With a specializer based on LLVM, that
> is going to be very slow.

The specializer and all the tool chain after genAsm is our own code
(50k+ lines), and contains no 3rd party (e.g. LLVM) code. The
specializer does quite extensive optimization - bundle-packing,
scheduling, CFG collapse, software pipelining, in- and out-lining, etc.
- which is too expensive for a JIT, but the passes that do the
optimizations are optionally bypassed.

As it seems unlikely that you would want to JIT for multiple targets
simultaneously, we expect that most JITs will generate machine code,
which is no more difficult to do than for any conventional-ISA machine
code target. Standard JIT methods - gluing code snippets together, for
example - will in effect emulate an in-order one-wide machine just as
they do on any ISA, and at no greater effort.

Alternatively, for better code quality you could JIT genAsm and run the
full specializer on that, assuming you JIT whole functions. Or both,
with JITed machine code for immediate execution and whole functions
being specialized in background.

Even with a specializer designed for
> specialization speed (or a JIT compiler directly generating native
> code), features like the compressed instruction encoding will cause
> slowness in native-code generation.

Why? It's just an encoding. Every code generator does bit stuffing. You
pull the bits from a table and copy them over.

> Doing it as a two-stage process
> (JIT+specializer) is also going to slow JIT translation down, while a
> one-stage approach means that m JIT compilers combined with n Mill
> native hardware implementations cause m*n effort (ideally, you just
> need to change parameters, but someone certainly would have to invest
> more effort in the JITs to make them parameterizable in that way).

Every JIT for a new target binary has to deal with the vagaries of that
binary, so a Mill JIT is as much work as a foobar JIT. However, it seems
you are thinking that a Mill member is as different from some other
member as (say) x86 is from ARM. That is flat false.

All Mill members are Mills; they have exactly the same architecture and
exactly the same abstract ISA and instruction set. They only differ in
the binary encoding used to represent that ISA. A JIT, like the
specializer, will deal with the generic Mill operations; only when the
program has been generated in internal form are the actual bit patterns
for the operations selected and stuffed into bundles.

The specializer puts a *lot* of work into stuffing as many instructions
as possible into the bundle format - Mill is a (very) wide architecture.
But for quick and dirty, i.e. JIT, code you can just put one instruction
in each bundle and be done with it, and ignore the fact that you are
wasting all that parallelism. The result will be no worse than code for
any other one-instruction-at-a-time code.

>> - Since, contrary to IBM, I believe they don't intend to hide the
>> low-level ISA, it's probably impossible to handle on-the-fly migration
>> in 100% reliable way in the general case, so they don't need to try
>> and handle the general case.
>
> Yes, moving an existing process is certainly another feature that the
> classic architecture/microarchitecture division supports, and where
> Mill needs to provide an answer, especially if the claim is that Mill
> is more flexible.

Inter-binary migration is possible at the function granularity; it is
not clear we will choose to support it. After all, there doesn't seem to
be much call for migrating a running x86 process to an ARM. Intra-binary
migration is like any other multicore.

BIG.little migration is straightforward, so long as both BIG and little
accept the same binary format. We expect to make "little" configurations
that are half- or quarter-size one of our large configurations,
accepting the same binary, and double- or quad-pumping the FUs. After
all, all our configs have the same instructions set. The differ in
parallelism and binary format, but they all use the same FUs.

> The single address space is also a problem in that
> context.

It seems adequate for anything you would want to do on a single chip,
and is expandable if that turns out to be short-sighted. We made the
deliberate business decision to not support off-chip shared address
spaces; the box/room/building scales will have to do message passing,
which seems to be the trend in supercomputers anyway.

> My provisional verdict: Mill has been designed with the supercomputer
> mindset, and suffers from the usual problems of such designs.

There are answers; perhaps asking for them before verdict would be useful?

Re: instruction set binding time, was Encoding 20 and 40 bit instructions in 128 bits

<7edb642d-b9c6-4f8d-b7e6-2cc77838d4c6n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:7f06:: with SMTP id f6mr304388qtk.625.1644854270874;
Mon, 14 Feb 2022 07:57:50 -0800 (PST)
X-Received: by 2002:a05:6870:5485:: with SMTP id f5mr4222147oan.217.1644854270601;
Mon, 14 Feb 2022 07:57: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: Mon, 14 Feb 2022 07:57:50 -0800 (PST)
In-Reply-To: <2022Feb14.094955@mips.complang.tuwien.ac.at>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fb70:6300:b4f7:aaae:e817:c81f;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fb70:6300:b4f7:aaae:e817:c81f
References: <ssu0r5$p2m$1@newsreader4.netcologne.de> <su9j56$r9h$1@dont-email.me>
<suajgb$mk6$1@newsreader4.netcologne.de> <suaos8$nhu$1@dont-email.me>
<subggb$2vj5$1@gal.iecc.com> <subiog$cp8$1@newsreader4.netcologne.de>
<jwva6euz9bv.fsf-monnier+comp.arch@gnu.org> <2022Feb14.094955@mips.complang.tuwien.ac.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7edb642d-b9c6-4f8d-b7e6-2cc77838d4c6n@googlegroups.com>
Subject: Re: instruction set binding time, was Encoding 20 and 40 bit
instructions in 128 bits
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Mon, 14 Feb 2022 15:57:50 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 12
 by: Quadibloc - Mon, 14 Feb 2022 15:57 UTC

On Monday, February 14, 2022 at 2:15:21 AM UTC-7, Anton Ertl wrote:

> My provisional verdict: Mill has been designed with the supercomputer
> mindset, and suffers from the usual problems of such designs.

Hmm. While I suspect _my_ designs have that flaw, my perception was
that the focus in Mill was low power consumption rather than maximum
performance.

Of course, a focus on throughput, rather than single-thread performance,
may be exactly what you are referring to.

John Savard

Pages:1234567891011121314
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor