Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

I have hardly ever known a mathematician who was capable of reasoning. -- Plato


devel / comp.arch / Re: Mill conAsm vs genAsm (was: Split register files)

SubjectAuthor
* Split register filesThomas Koenig
+* Re: Split register filesIvan Godard
|`* Re: Split register filesThomas Koenig
| `* Re: Split register filesBrett
|  `* Re: Split register filesThomas Koenig
|   `* Re: Split register filesBrett
|    `* Re: Split register filesBrett
|     `* Re: Split register filesIvan Godard
|      `* Re: Split register filesBrett
|       +* Re: Split register filesIvan Godard
|       |+* Re: Split register filesStefan Monnier
|       ||`* Re: Split register filesIvan Godard
|       || +- Re: Split register filesStephen Fuld
|       || +- Re: Split register filesStefan Monnier
|       || `* Rescue vs scratchpad (was: Split register files)Stefan Monnier
|       ||  `- Re: Rescue vs scratchpad (was: Split register files)Ivan Godard
|       |`* Re: Split register filesBrett
|       | `* Re: Split register filesIvan Godard
|       |  `* Re: Split register filesBrett
|       |   `* Re: Split register filesIvan Godard
|       |    `* Re: Mill conAsm vs genAsm (was: Split register files)Marcus
|       |     `* Re: Mill conAsm vs genAsm (was: Split register files)Ivan Godard
|       |      `* Re: Mill conAsm vs genAsm (was: Split register files)Quadibloc
|       |       +* Re: Mill conAsm vs genAsm (was: Split register files)Ivan Godard
|       |       |+* Re: Mill conAsm vs genAsm (was: Split register files)MitchAlsup
|       |       ||`* Re: Mill conAsm vs genAsm (was: Split register files)Quadibloc
|       |       || +* Re: Mill conAsm vs genAsm (was: Split register files)MitchAlsup
|       |       || |+* Re: Mill conAsm vs genAsm (was: Split register files)Quadibloc
|       |       || ||`* Re: Mill conAsm vs genAsm (was: Split register files)Marcus
|       |       || || `* Re: Mill conAsm vs genAsm (was: Split register files)Quadibloc
|       |       || ||  `* Re: Mill conAsm vs genAsm (was: Split register files)Marcus
|       |       || ||   `* Vector ISA Categorisationluke.l...@gmail.com
|       |       || ||    +* Re: Vector ISA CategorisationStephen Fuld
|       |       || ||    |+- Re: Vector ISA Categorisationluke.l...@gmail.com
|       |       || ||    |`* Re: Vector ISA CategorisationStefan Monnier
|       |       || ||    | `- Re: Vector ISA CategorisationStephen Fuld
|       |       || ||    +* Re: Vector ISA CategorisationMarcus
|       |       || ||    |+* Re: Vector ISA Categorisationluke.l...@gmail.com
|       |       || ||    ||`* Re: Vector ISA Categorisationmbitsnbites
|       |       || ||    || +* Re: Vector ISA Categorisationluke.l...@gmail.com
|       |       || ||    || |`- Re: Vector ISA CategorisationMarcus
|       |       || ||    || +- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    || +- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    || +* Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || |`* Re: Vector ISA CategorisationIvan Godard
|       |       || ||    || | `- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA Categorisationluke.l...@gmail.com
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA Categorisationluke.l...@gmail.com
|       |       || ||    || +* Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || |`* Re: Vector ISA CategorisationMarcus
|       |       || ||    || | `- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA Categorisationluke.l...@gmail.com
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || `- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    |+- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    |+- Re: Vector ISA Categorisationluke.l...@gmail.com
|       |       || ||    |+- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    |+* Re: Vector ISA Categorisationluke.l...@gmail.com
|       |       || ||    ||+- Re: Vector ISA CategorisationThomas Koenig
|       |       || ||    ||`* Re: Vector ISA Categorisationluke.l...@gmail.com
|       |       || ||    || +- Re: Vector ISA CategorisationIvan Godard
|       |       || ||    || `- Re: Vector ISA CategorisationThomas Koenig
|       |       || ||    |+* Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    ||`* Re: Vector ISA CategorisationEricP
|       |       || ||    || +* Re: Vector ISA CategorisationStefan Monnier
|       |       || ||    || |`- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    || +* Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    || |`* Re: Vector ISA CategorisationEricP
|       |       || ||    || | `- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    || +- Re: Vector ISA CategorisationQuadibloc
|       |       || ||    || +* Re: Vector ISA CategorisationThomas Koenig
|       |       || ||    || |`* Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    || | `* Re: Vector ISA CategorisationThomas Koenig
|       |       || ||    || |  `- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    || `- Re: Vector ISA Categorisationluke.l...@gmail.com
|       |       || ||    |+- Re: Vector ISA Categorisationluke.l...@gmail.com
|       |       || ||    |+- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    |+- Re: Vector ISA Categorisationluke.l...@gmail.com
|       |       || ||    |+- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    |`* Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    | `* Re: Vector ISA CategorisationTerje Mathisen
|       |       || ||    |  `- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    +- Re: Vector ISA CategorisationMitchAlsup
|       |       || ||    +- Re: Vector ISA Categorisationluke.l...@gmail.com
|       |       || ||    `- Re: Vector ISA CategorisationMitchAlsup
|       |       || |`* Re: Mill conAsm vs genAsm (was: Split register files)Quadibloc
|       |       || `* Re: Mill conAsm vs genAsm (was: Split register files)luke.l...@gmail.com
|       |       |`* Re: Mill conAsm vs genAsm (was: Split register files)Paul A. Clayton
|       |       `* Re: Mill conAsm vs genAsmStefan Monnier
|       +* Re: Split register filesStefan Monnier
|       `* Re: Split register filesThomas Koenig
+* Re: Split register filesJohn Dallman
+* Re: Split register filesAnton Ertl
+- Re: Split register filesStefan Monnier
`* Re: Split register filesMitchAlsup

Pages:12345678
Re: Split register files

<sc8pjr$8ib$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ggt...@yahoo.com (Brett)
Newsgroups: comp.arch
Subject: Re: Split register files
Date: Fri, 9 Jul 2021 06:16:28 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 98
Message-ID: <sc8pjr$8ib$1@dont-email.me>
References: <sb6s70$dip$1@newsreader4.netcologne.de>
<sb6vfb$1ov$1@dont-email.me>
<sb70q1$fsg$2@newsreader4.netcologne.de>
<sb912k$c4c$1@dont-email.me>
<sb99gi$1r5$1@newsreader4.netcologne.de>
<sbh665$sht$1@dont-email.me>
<sbubiu$unp$1@dont-email.me>
<sbudg8$aje$1@dont-email.me>
<sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me>
<sc5cg5$a3p$1@dont-email.me>
<sc5fh8$p7q$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 9 Jul 2021 06:16:28 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="eebf525ca637c232a523150debf39e6c";
logging-data="8779"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19MTsGPzVfSGRWN6xNy7rWy"
User-Agent: NewsTap/5.5 (iPad)
Cancel-Lock: sha1:EQd8RnuuZiiVgzLk7pJ6iJO4Fvc=
sha1:tf4YiNEE0sYJxzel02p3HCjjdyM=
 by: Brett - Fri, 9 Jul 2021 06:16 UTC

Ivan Godard <ivan@millcomputing.com> wrote:
> On 7/7/2021 4:14 PM, Brett wrote:
>> Ivan Godard <ivan@millcomputing.com> wrote:
>>> On 7/6/2021 1:04 AM, Brett wrote:
>
> <snip>
>
>>>> You also have compiler issues, which makes handling more belts difficult.
>>>> It is easy to say that one bank should be used for globals and thus rarely
>>>> rotate, another for addressing and others for compute, but convincing a
>>>> compiler to do something intelligent is really hard.
>>>
>>> There's only one belt at present. Rather than two belts, just configure
>>> a belt twice as big.
>>>
>>>> A loop has a limited number of dependent compute chains, it should be
>>>> possible to just randomly assign opcode chains to belts. Filling belts
>>>> roughly evenly over time.
>>>
>>> Too much fanout in open code, although FP codes are better; you would
>>> wind up doing a lot of inter-belt transfers because the dataflow is
>>> tree-like rather than linear.
>>
>> Integer trees are so short they are forks. No arch can help such junk.
>> Addressing is linear and makes up a third of the ops.
>
> To simplify an example:
> source: a+b+c+d
> breadth-first: (a+b)+(c+d) 2 cycles, max belt live load 2
> depth-first: (a+(b+(c+d))) 3 cycles, max belt live load 1
>
> constraints:
> belt live load cannot exceed belt length;
> belt delta (distance in drops between producer and consumer) cannot
> exceed belt length without rescue or spill/fill
> no NP
>
> BTW, a graph-coloring register allocator is also NP.
>
>
>>>> You have some secrete sauce still I bet to get to 32 ops a cycle, how you
>>>> handle vector support spreading across units? Etc. Maybe you have lots of
>>>> belts hiding under the virtual belt, and thus are doing what I am
>>>> suggesting.
>>>
>>> Nope. Remember, the belt is a naming device, not a shift register.
>>
>> It can be hard to wrap ones brain around doing 32 ops a cycle when you have
>> 16 belt registers.
>
> Not possible, unless the op arguments were shared from 16 available and
> all had 16 or fewer drops total (neglecting phasing). As a rule of
> thumb, a Mill member is configured such that <slot count> == <belt
> length>. The larger members (Gold has 32 belt length) rarely need to
> rescue, although they may have occasional obligatory spills, while
> smaller ones (Copper has 8 belt length) are replete with rescues on the
> same code.

Thanks.

Copper is smaller than Silver and Gold due to fewer ALU’s and load/store
units etc.
But do you really have to break the API by having fewer belt entries?

A small bank of registers would enable Silver to run Gold code at mostly
half speed, occasionally it might hit a resource constraint that cost three
cycles instead of two.
But no one is going to care about a 5% loss, and if they do they can
compile for the right chip which will schedule better for that chip.

Detecting a resource oversubscription and splitting at that opcode is not
hard.
The big die use issue might be the decoder and not the belt length.

With Copper things get more difficult, but last I heard you were not going
to make that chip. And that chip is in a different market, so it can
support a different API.

I can easily see customers wanting a Silver+ that can run Gold code over
the slightly smaller real Silver. Debugging and testing code twice gives
programers hives.

>> An 8 way unroll with lots of ALU’s can pull this off.
>
> Nope.
>
>> Which means that after your virtual belt get translated to operations you
>> have lots of little independent chains which are little belts. Most call
>> this OoO, but you can order the opcodes sequentially, but doing so is not
>> belt friendly as each data step is 8 opcodes away on a 8 way unroll.
>
> Software pipelining rather than unroll, but yes: the belt must be long
> enough to hold the un-piped placement times the piping.In practical
> configs the constraint to piping limiting factor is the number of FUs
> you have of whatever is the most constraining kind. If your loop body
> has a multiply and you have two multipliers you can't pipe it into a
> single 3-pipe bundle.

Re: Split register files

<2021Jul9.092758@mips.complang.tuwien.ac.at>

  copy mid

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

  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: Split register files
Date: Fri, 09 Jul 2021 07:27:58 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 29
Message-ID: <2021Jul9.092758@mips.complang.tuwien.ac.at>
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me> <sc4bab$8f2$1@newsreader4.netcologne.de> <jwv1r8arzpx.fsf-monnier+comp.arch@gnu.org> <sc4n1k$h30$1@newsreader4.netcologne.de> <jwvr1gaowte.fsf-monnier+comp.arch@gnu.org> <sc4sne$l6p$1@newsreader4.netcologne.de> <sc4t71$vrf$1@dont-email.me> <2021Jul8.091204@mips.complang.tuwien.ac.at> <sc76oa$6o4$1@dont-email.me> <2021Jul8.192030@mips.complang.tuwien.ac.at> <sc7elp$tu1$1@dont-email.me>
Injection-Info: reader02.eternal-september.org; posting-host="66cc40c944eaf9bafda442f54c32bd8e";
logging-data="26270"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19M+2pFFRfsaY6CEZInhMzE"
Cancel-Lock: sha1:iHEOPOIzAEsx1k3wT23uhBe/W4g=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Fri, 9 Jul 2021 07:27 UTC

Stephen Fuld <sfuld@alumni.cmu.edu.invalid> writes:
>On 7/8/2021 10:20 AM, Anton Ertl wrote:
>> Stephen Fuld <sfuld@alumni.cmu.edu.invalid> writes:
>>> Yes, another solution to the problem. It has the advantage of not
>>> requiring the HW to have a specific hardware defined amount of dedicated
>>> memory. It's disadvantage is that you are "wasting" some amount of HW
>>> (the tags, etc. for the locked lines)
>>
>> If you want to lock lines that are not in a hardware-defined subset of
>> the address space, the tags are not wasted.
>
>I probably wasn't clear. I know that you need the tags for the locked
>lines, but if you used dedicated memory instead of a cache, then you
>don't need tags, etc. for the dedicated memory.

Yes, but that dedicated memory is in a hardware-defined subset of the
address space, and the software has to do special things to deal with
that.

If the dedicated memory is at the L1 level, it's in the virtual
address space (no time for virtual->physical translation), and
probably shared between all processes running on this core. The
additional hardware of the cache does provide a significant benefit
even if you don't evict some of the lines.

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

Re: Split register files

<sc8uoc$2tc$1@dont-email.me>

  copy mid

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

  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: Split register files
Date: Fri, 9 Jul 2021 00:44:10 -0700
Organization: A noiseless patient Spider
Lines: 92
Message-ID: <sc8uoc$2tc$1@dont-email.me>
References: <sb6s70$dip$1@newsreader4.netcologne.de>
<sb6vfb$1ov$1@dont-email.me> <sb70q1$fsg$2@newsreader4.netcologne.de>
<sb912k$c4c$1@dont-email.me> <sb99gi$1r5$1@newsreader4.netcologne.de>
<sbh665$sht$1@dont-email.me> <sbubiu$unp$1@dont-email.me>
<sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me>
<sc5fh8$p7q$1@dont-email.me> <sc8pjr$8ib$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 9 Jul 2021 07:44:12 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="5ecbf8a6e3bedc6b2dc8d4dfad397dd7";
logging-data="2988"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+dufvENWvAePRtImQvtSPX"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:dQhozH50x5AzNcZ5dk5w0YAuhB4=
In-Reply-To: <sc8pjr$8ib$1@dont-email.me>
Content-Language: en-US
 by: Ivan Godard - Fri, 9 Jul 2021 07:44 UTC

On 7/8/2021 11:16 PM, Brett wrote:
> Ivan Godard <ivan@millcomputing.com> wrote:
>> On 7/7/2021 4:14 PM, Brett wrote:
>>> Ivan Godard <ivan@millcomputing.com> wrote:
>>>> On 7/6/2021 1:04 AM, Brett wrote:
>>
>> <snip>
>>
>>>>> You also have compiler issues, which makes handling more belts difficult.
>>>>> It is easy to say that one bank should be used for globals and thus rarely
>>>>> rotate, another for addressing and others for compute, but convincing a
>>>>> compiler to do something intelligent is really hard.
>>>>
>>>> There's only one belt at present. Rather than two belts, just configure
>>>> a belt twice as big.
>>>>
>>>>> A loop has a limited number of dependent compute chains, it should be
>>>>> possible to just randomly assign opcode chains to belts. Filling belts
>>>>> roughly evenly over time.
>>>>
>>>> Too much fanout in open code, although FP codes are better; you would
>>>> wind up doing a lot of inter-belt transfers because the dataflow is
>>>> tree-like rather than linear.
>>>
>>> Integer trees are so short they are forks. No arch can help such junk.
>>> Addressing is linear and makes up a third of the ops.
>>
>> To simplify an example:
>> source: a+b+c+d
>> breadth-first: (a+b)+(c+d) 2 cycles, max belt live load 2
>> depth-first: (a+(b+(c+d))) 3 cycles, max belt live load 1
>>
>> constraints:
>> belt live load cannot exceed belt length;
>> belt delta (distance in drops between producer and consumer) cannot
>> exceed belt length without rescue or spill/fill
>> no NP
>>
>> BTW, a graph-coloring register allocator is also NP.
>>
>>
>>>>> You have some secrete sauce still I bet to get to 32 ops a cycle, how you
>>>>> handle vector support spreading across units? Etc. Maybe you have lots of
>>>>> belts hiding under the virtual belt, and thus are doing what I am
>>>>> suggesting.
>>>>
>>>> Nope. Remember, the belt is a naming device, not a shift register.
>>>
>>> It can be hard to wrap ones brain around doing 32 ops a cycle when you have
>>> 16 belt registers.
>>
>> Not possible, unless the op arguments were shared from 16 available and
>> all had 16 or fewer drops total (neglecting phasing). As a rule of
>> thumb, a Mill member is configured such that <slot count> == <belt
>> length>. The larger members (Gold has 32 belt length) rarely need to
>> rescue, although they may have occasional obligatory spills, while
>> smaller ones (Copper has 8 belt length) are replete with rescues on the
>> same code.
>
> Thanks.
>
> Copper is smaller than Silver and Gold due to fewer ALU’s and load/store
> units etc.
> But do you really have to break the API by having fewer belt entries?
>
> A small bank of registers would enable Silver to run Gold code at mostly
> half speed, occasionally it might hit a resource constraint that cost three
> cycles instead of two.
> But no one is going to care about a 5% loss, and if they do they can
> compile for the right chip which will schedule better for that chip.
>
> Detecting a resource oversubscription and splitting at that opcode is not
> hard.
> The big die use issue might be the decoder and not the belt length.
>
> With Copper things get more difficult, but last I heard you were not going
> to make that chip. And that chip is in a different market, so it can
> support a different API.
>
> I can easily see customers wanting a Silver+ that can run Gold code over
> the slightly smaller real Silver. Debugging and testing code twice gives
> programers hives.
>

Mill distinguishes the "distribution binary" called genAsm from the
"execution binary" called conAsm. It is not expected that customers will
program or debug in conAsm. Language with VMs such as Java use the same
approach.

Family members cannot execute each others' conAsm; static scheduling
precludes it. This doesn't break the API - the API is genAsm, which is
member-independent.

Re: Mill conAsm vs genAsm (was: Split register files)

<sc9iib$3ei$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: m.del...@this.bitsnbites.eu (Marcus)
Newsgroups: comp.arch
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
Date: Fri, 9 Jul 2021 15:22:19 +0200
Organization: A noiseless patient Spider
Lines: 34
Message-ID: <sc9iib$3ei$1@dont-email.me>
References: <sb6s70$dip$1@newsreader4.netcologne.de>
<sb6vfb$1ov$1@dont-email.me> <sb70q1$fsg$2@newsreader4.netcologne.de>
<sb912k$c4c$1@dont-email.me> <sb99gi$1r5$1@newsreader4.netcologne.de>
<sbh665$sht$1@dont-email.me> <sbubiu$unp$1@dont-email.me>
<sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me>
<sc5fh8$p7q$1@dont-email.me> <sc8pjr$8ib$1@dont-email.me>
<sc8uoc$2tc$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 9 Jul 2021 13:22:19 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="c1e782a2bc08943000c770b237edd756";
logging-data="3538"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+HwVbU13+EVrh6xNzCkTCFbQqkKTsY7Lc="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:v+wxdwA7Xk2Mzmz1GUKq+cho6OQ=
In-Reply-To: <sc8uoc$2tc$1@dont-email.me>
Content-Language: en-US
 by: Marcus - Fri, 9 Jul 2021 13:22 UTC

On 2021-07-09, Ivan Godard wrote:
> On 7/8/2021 11:16 PM, Brett wrote:

[snip]

>> I can easily see customers wanting a Silver+ that can run Gold code over
>> the slightly smaller real Silver. Debugging and testing code twice gives
>> programers hives.
>>
>
> Mill distinguishes the "distribution binary" called genAsm from the
> "execution binary" called conAsm. It is not expected that customers will
> program or debug in conAsm. Language with VMs such as Java use the same
> approach.
>
> Family members cannot execute each others' conAsm; static scheduling
> precludes it. This doesn't break the API - the API is genAsm, which is
> member-independent.

Ah that's news to me, and it makes sense.

I'm curious: What is the plan regarding binary distribution? Say, if you
want to run something like Linux and have a package manager/format like
DPKG, RPM or APK (Android) to distribute pre-compiled applications:

* Would those packages contain genAsm?

* Where would the translation from genAsm->conAsm happen? At the kernel
level, as part of the dynamic linker, as part of the package
installer, or something else?

Also, how complex is the translation from genAsm to conAsm?

/Marcus

Re: Mill conAsm vs genAsm (was: Split register files)

<scac7e$ph4$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
Date: Fri, 9 Jul 2021 13:40:13 -0700
Organization: A noiseless patient Spider
Lines: 65
Message-ID: <scac7e$ph4$1@dont-email.me>
References: <sb6s70$dip$1@newsreader4.netcologne.de>
<sb6vfb$1ov$1@dont-email.me> <sb70q1$fsg$2@newsreader4.netcologne.de>
<sb912k$c4c$1@dont-email.me> <sb99gi$1r5$1@newsreader4.netcologne.de>
<sbh665$sht$1@dont-email.me> <sbubiu$unp$1@dont-email.me>
<sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me>
<sc5fh8$p7q$1@dont-email.me> <sc8pjr$8ib$1@dont-email.me>
<sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 9 Jul 2021 20:40:14 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="5ecbf8a6e3bedc6b2dc8d4dfad397dd7";
logging-data="26148"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18ZYus4LrudsVn5GaUDh+yl"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:L4Ld2ViV8M1el37UtuoEecUJXHQ=
In-Reply-To: <sc9iib$3ei$1@dont-email.me>
Content-Language: en-US
 by: Ivan Godard - Fri, 9 Jul 2021 20:40 UTC

On 7/9/2021 6:22 AM, Marcus wrote:
> On 2021-07-09, Ivan Godard wrote:
>> On 7/8/2021 11:16 PM, Brett wrote:
>
> [snip]
>
>>> I can easily see customers wanting a Silver+ that can run Gold code over
>>> the slightly smaller real Silver. Debugging and testing code twice gives
>>> programers hives.
>>>
>>
>> Mill distinguishes the "distribution binary" called genAsm from the
>> "execution binary" called conAsm. It is not expected that customers
>> will program or debug in conAsm. Language with VMs such as Java use
>> the same approach.
>>
>> Family members cannot execute each others' conAsm; static scheduling
>> precludes it. This doesn't break the API - the API is genAsm, which is
>> member-independent.
>
> Ah that's news to me, and it makes sense.
>
> I'm curious: What is the plan regarding binary distribution? Say, if you
> want to run something like Linux and have a package manager/format like
> DPKG, RPM or APK (Android) to distribute pre-compiled applications:
>
> * Would those packages contain genAsm?
>
> * Where would the translation from genAsm->conAsm happen? At the kernel
>   level, as part of the dynamic linker, as part of the package
>   installer, or something else?
>
> Also, how complex is the translation from genAsm to conAsm?
>
> /Marcus

Packages are expected to always distribute in genAsm. Boot images and
ROMs must be in conAsm and exist in multiple per-member instances;
that's common in other systems too - what you do to bring up the
hardware is not usually backwards compatible. The boot ROM contains a
minimal specializer in conAsm, hosted on and targeting to its chip. A
smarter specializer, in genAsm, is in the OS install: bringing up bare
metal replaces the ROM specializer with the result of specializing the
install specializer, and then of itself.

The object module starts out in genAsm. The specializer caches its
result into the module at install or first execute time, so subsequent
executions do not need to respeciaize for that target. The same genAsm
may be specialized, and cached, for several target members, so it
appears to the user that the one package file runs on all targets.

The tool chain produces genAsm from the source, and can go on to also
generate conAsm for the native host into that file too; that's the usual
edit-compile-codegen-link-run sequence. Cross-development works in the
obvious way. Target-independent distribution packages are expected to
specialize as part of install, but if not the loader will do it if it
doesn't find an image for the target in the cache in the load module.

Specialization is much like any compile back-end code generation step.
Command-line options determine how much work it puts into optimizing the
code. All the traditional target-independent optimization are done by
the compiler middle-end, as in regular compilation, so what's left is
just Mill-specific things like belt scheduling. Of course, register
allocation, which is the bugbear of back-ends, is not a Mill concern.

Re: Mill conAsm vs genAsm (was: Split register files)

<63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:4004:: with SMTP id h4mr2191503qko.370.1625869576372;
Fri, 09 Jul 2021 15:26:16 -0700 (PDT)
X-Received: by 2002:a9d:7f91:: with SMTP id t17mr29736656otp.22.1625869576199;
Fri, 09 Jul 2021 15:26:16 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 9 Jul 2021 15:26:16 -0700 (PDT)
In-Reply-To: <scac7e$ph4$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fa3c:a000:3835:8586:d7fe:75d9;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fa3c:a000:3835:8586:d7fe:75d9
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me>
<sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me>
<sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me>
<sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me>
<sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Fri, 09 Jul 2021 22:26:16 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Quadibloc - Fri, 9 Jul 2021 22:26 UTC

On Friday, July 9, 2021 at 2:40:16 PM UTC-6, Ivan Godard wrote:

> Packages are expected to always distribute in genAsm. Boot images and
> ROMs must be in conAsm and exist in multiple per-member instances;
> that's common in other systems too - what you do to bring up the
> hardware is not usually backwards compatible.

In that case, the fact that

> The tool chain produces genAsm from the source, and can go on to also
> generate conAsm for the native host into that file too; that's the usual
> edit-compile-codegen-link-run sequence.

is obviously a very good thing. If the tool chain could not generate - and,
indeed, _cross-compile_, conAsm, then there would be a problem producing
boot ROMs.

But I shouldn't be surprised that you've thought of, and made provision for,
something so obvious as that. Rather, the fact that I even consider this
worthy of mention is just to note that having a separate conAsm and
genAsm is... potentially dangerous. At least, you haven't succumbed to
the temptation to make conAsm secret and proprietary so that people making
Mill systems could only use the boot ROMs that you supply, or any other
stunt like that - that would discourage adoption, but just the mere _existence_
of conAsm versus genAsm may 'spook' a market that has been... traumatized...
by the past behavior of giants like Intel and Microsoft.

They're not trusting out there. "Paranoid" is closer to the right word.

John Savard

Re: Mill conAsm vs genAsm (was: Split register files)

<scan92$k7m$1@dont-email.me>

  copy mid

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

  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: Mill conAsm vs genAsm (was: Split register files)
Date: Fri, 9 Jul 2021 16:48:50 -0700
Organization: A noiseless patient Spider
Lines: 52
Message-ID: <scan92$k7m$1@dont-email.me>
References: <sb6s70$dip$1@newsreader4.netcologne.de>
<sb6vfb$1ov$1@dont-email.me> <sb70q1$fsg$2@newsreader4.netcologne.de>
<sb912k$c4c$1@dont-email.me> <sb99gi$1r5$1@newsreader4.netcologne.de>
<sbh665$sht$1@dont-email.me> <sbubiu$unp$1@dont-email.me>
<sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me>
<sc5fh8$p7q$1@dont-email.me> <sc8pjr$8ib$1@dont-email.me>
<sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me>
<63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 9 Jul 2021 23:48:50 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="f453c5503eb2644c45d99d92a6e74653";
logging-data="20726"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/QJgpJKMR0I9fyQC95R2r9"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:GSDPYJoHr+EQNQ3Xmj6LrFawqtU=
In-Reply-To: <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
Content-Language: en-US
 by: Ivan Godard - Fri, 9 Jul 2021 23:48 UTC

On 7/9/2021 3:26 PM, Quadibloc wrote:
> On Friday, July 9, 2021 at 2:40:16 PM UTC-6, Ivan Godard wrote:
>
>> Packages are expected to always distribute in genAsm. Boot images and
>> ROMs must be in conAsm and exist in multiple per-member instances;
>> that's common in other systems too - what you do to bring up the
>> hardware is not usually backwards compatible.
>
> In that case, the fact that
>
>> The tool chain produces genAsm from the source, and can go on to also
>> generate conAsm for the native host into that file too; that's the usual
>> edit-compile-codegen-link-run sequence.
>
> is obviously a very good thing. If the tool chain could not generate - and,
> indeed, _cross-compile_, conAsm, then there would be a problem producing
> boot ROMs.
>
> But I shouldn't be surprised that you've thought of, and made provision for,
> something so obvious as that. Rather, the fact that I even consider this
> worthy of mention is just to note that having a separate conAsm and
> genAsm is... potentially dangerous. At least, you haven't succumbed to
> the temptation to make conAsm secret and proprietary so that people making
> Mill systems could only use the boot ROMs that you supply, or any other
> stunt like that - that would discourage adoption, but just the mere _existence_
> of conAsm versus genAsm may 'spook' a market that has been... traumatized...
> by the past behavior of giants like Intel and Microsoft.
>
> They're not trusting out there. "Paranoid" is closer to the right word.
>
> John Savard
>

Neither genAsm nor the various conAsms are secret. We expect to publish
the various conAsm development tools that we use ourselves. For example,
I have occasionally shown here our conAsm hex dump/analysis tool output.
As a chip vendor, we would be delighted to have people to use them to
(for example) do their own ROMs.

As for whether customers will be paranoid about gen/conAsm why would
they be? They seem to have no problem with (for example) Java VM code as
a distribution format, and a JIT producing binary across differing
binary ISAs. Mill is no different.

However, even those who want to do their own ROM are extremely unlikely
to need or want to do anything in conAsm. It is near impossible to
manually write anything significant in conAsm - this is not a machine
wherein you drop into writing assembler for the fun of it. About the
only people who ever deal with conAsm are the people who maintain the
specializer. Our own boot ROM will be wholly written in C++, published
in source and cross-built for the target family member. Goose it all you
want :-)

Re: Mill conAsm vs genAsm (was: Split register files)

<dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:449:: with SMTP id o9mr36185060qtx.272.1625875341805;
Fri, 09 Jul 2021 17:02:21 -0700 (PDT)
X-Received: by 2002:a4a:c503:: with SMTP id i3mr5860971ooq.5.1625875341592;
Fri, 09 Jul 2021 17:02:21 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 9 Jul 2021 17:02:21 -0700 (PDT)
In-Reply-To: <scan92$k7m$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:b57c:8ce6:33af:d741;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:b57c:8ce6:33af:d741
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me>
<sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me>
<sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me>
<sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me>
<sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me> <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
<scan92$k7m$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com>
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sat, 10 Jul 2021 00:02:21 +0000
Content-Type: text/plain; charset="UTF-8"
 by: MitchAlsup - Sat, 10 Jul 2021 00:02 UTC

On Friday, July 9, 2021 at 6:48:53 PM UTC-5, Ivan Godard wrote:
> On 7/9/2021 3:26 PM, Quadibloc wrote:
> > On Friday, July 9, 2021 at 2:40:16 PM UTC-6, Ivan Godard wrote:
> >
> >> Packages are expected to always distribute in genAsm. Boot images and
> >> ROMs must be in conAsm and exist in multiple per-member instances;
> >> that's common in other systems too - what you do to bring up the
> >> hardware is not usually backwards compatible.
> >
> > In that case, the fact that
> >
> >> The tool chain produces genAsm from the source, and can go on to also
> >> generate conAsm for the native host into that file too; that's the usual
> >> edit-compile-codegen-link-run sequence.
> >
> > is obviously a very good thing. If the tool chain could not generate - and,
> > indeed, _cross-compile_, conAsm, then there would be a problem producing
> > boot ROMs.
> >
> > But I shouldn't be surprised that you've thought of, and made provision for,
> > something so obvious as that. Rather, the fact that I even consider this
> > worthy of mention is just to note that having a separate conAsm and
> > genAsm is... potentially dangerous. At least, you haven't succumbed to
> > the temptation to make conAsm secret and proprietary so that people making
> > Mill systems could only use the boot ROMs that you supply, or any other
> > stunt like that - that would discourage adoption, but just the mere _existence_
> > of conAsm versus genAsm may 'spook' a market that has been... traumatized...
> > by the past behavior of giants like Intel and Microsoft.
> >
> > They're not trusting out there. "Paranoid" is closer to the right word.
> >
> > John Savard
> >
> Neither genAsm nor the various conAsms are secret. We expect to publish
> the various conAsm development tools that we use ourselves. For example,
> I have occasionally shown here our conAsm hex dump/analysis tool output.
> As a chip vendor, we would be delighted to have people to use them to
> (for example) do their own ROMs.
>
> As for whether customers will be paranoid about gen/conAsm why would
> they be? They seem to have no problem with (for example) Java VM code as
> a distribution format, and a JIT producing binary across differing
> binary ISAs. Mill is no different.
>
> However, even those who want to do their own ROM are extremely unlikely
> to need or want to do anything in conAsm. It is near impossible to
> manually write anything significant in conAsm - this is not a machine
> wherein you drop into writing assembler for the fun of it.
<
My 66000 is the one to choose if you want to drop into ASM for the fun of it.......
<
> About the
> only people who ever deal with conAsm are the people who maintain the
> specializer. Our own boot ROM will be wholly written in C++, published
> in source and cross-built for the target family member. Goose it all you
> want :-)

Re: Mill conAsm vs genAsm (was: Split register files)

<9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:6b0f:: with SMTP id w15mr8153952qts.366.1625876961563;
Fri, 09 Jul 2021 17:29:21 -0700 (PDT)
X-Received: by 2002:a4a:d781:: with SMTP id c1mr28817415oou.23.1625876961308;
Fri, 09 Jul 2021 17:29:21 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!usenet.pasdenom.info!usenet-fr.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 9 Jul 2021 17:29:21 -0700 (PDT)
In-Reply-To: <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fa3c:a000:79cd:420:2b23:4d8d;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fa3c:a000:79cd:420:2b23:4d8d
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me>
<sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me>
<sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me>
<sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me>
<sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me> <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
<scan92$k7m$1@dont-email.me> <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com>
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Sat, 10 Jul 2021 00:29:21 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Quadibloc - Sat, 10 Jul 2021 00:29 UTC

On Friday, July 9, 2021 at 6:02:22 PM UTC-6, MitchAlsup wrote:
> On Friday, July 9, 2021 at 6:48:53 PM UTC-5, Ivan Godard wrote:

> > However, even those who want to do their own ROM are extremely unlikely
> > to need or want to do anything in conAsm. It is near impossible to
> > manually write anything significant in conAsm - this is not a machine
> > wherein you drop into writing assembler for the fun of it.

> My 66000 is the one to choose if you want to drop into ASM for the fun of it.......

I'll remember that. Of course, that also makes it clear that despite
competing with the Mill 'a little' due to the inclusion of conventional
DSP features - I don't view that as _really_ competing with the Mill,
since DSPs already exist, and that didn't make the Mill irrelevant or
unnecessary - perhaps your 66000 is what I'm "really" competing with.

Although I don't really entertain too much in the way of hope that
any Concertina architecture will get to silicon - I'm still at a very early
design stage as well - though, I do know what I really intend to compete
with.

At the moment, ARM and RISC-V are the biggest challengers to x86-64.

I feel that they're... missing stuff... and so while if either of them did
come to prominence, it would be an improvement on the x86, but some
problems would remain. Unfortunately, IBM has declined to aggressively
promote z/Architecture as the computing platform of the future, choosing
instead the dead-end strategy of milking the few legacy customers who
need it.

So I'm trying to create a better replacement for x86 that isn't missing stuff.

I can understand that you might disapprove, as many will feel that the
stuff I regard as 'missing' is in fact useless wretched excess.

John Savard

Re: Mill conAsm vs genAsm

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

  copy mid

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

  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: Mill conAsm vs genAsm
Date: Fri, 09 Jul 2021 22:45:26 -0400
Organization: A noiseless patient Spider
Lines: 24
Message-ID: <jwvim1i7v7c.fsf-monnier+comp.arch@gnu.org>
References: <sb6s70$dip$1@newsreader4.netcologne.de>
<sb6vfb$1ov$1@dont-email.me> <sb70q1$fsg$2@newsreader4.netcologne.de>
<sb912k$c4c$1@dont-email.me> <sb99gi$1r5$1@newsreader4.netcologne.de>
<sbh665$sht$1@dont-email.me> <sbubiu$unp$1@dont-email.me>
<sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me>
<sc5fh8$p7q$1@dont-email.me> <sc8pjr$8ib$1@dont-email.me>
<sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me>
<63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="db7b877c017e6a06b819a1746a048f91";
logging-data="25904"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1//4ZDL8dX3JJPHzThfhnpX"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
Cancel-Lock: sha1:/qnVPBUOEnWa4I9jSMVeIydxtjI=
sha1:uyIwIYDs0sYPX+O+Ko+Fo+H6rxw=
 by: Stefan Monnier - Sat, 10 Jul 2021 02:45 UTC

> But I shouldn't be surprised that you've thought of, and made provision for,
> something so obvious as that. Rather, the fact that I even consider this
> worthy of mention is just to note that having a separate conAsm and
> genAsm is... potentially dangerous. At least, you haven't succumbed to
> the temptation to make conAsm secret and proprietary so that people making
> Mill systems could only use the boot ROMs that you supply, or any other
> stunt like that - that would discourage adoption, but just the mere _existence_

I don't think that's a serious issue, to be honest (e.g. I don't think
it was a serious issue for Transmeta, for example).

The more problematic case is when you want to migrate a task to another
host, in which case copper/silver/gold will probably have to be
considered as being different ISAs.

For the same reason, you're probably going to have trouble making a Mill
with a "BIG.little" kind of setup since moving a process from/to a BIG
to/from a little core will be difficult.

[ Whether such BIG.little setup are really important is of course
another question. ]

Stefan

Re: Mill conAsm vs genAsm

<scb2h4$6c3$1@dont-email.me>

  copy mid

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

  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: Mill conAsm vs genAsm
Date: Fri, 9 Jul 2021 20:00:52 -0700
Organization: A noiseless patient Spider
Lines: 37
Message-ID: <scb2h4$6c3$1@dont-email.me>
References: <sb6s70$dip$1@newsreader4.netcologne.de>
<sb6vfb$1ov$1@dont-email.me> <sb70q1$fsg$2@newsreader4.netcologne.de>
<sb912k$c4c$1@dont-email.me> <sb99gi$1r5$1@newsreader4.netcologne.de>
<sbh665$sht$1@dont-email.me> <sbubiu$unp$1@dont-email.me>
<sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me>
<sc5fh8$p7q$1@dont-email.me> <sc8pjr$8ib$1@dont-email.me>
<sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me>
<63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
<jwvim1i7v7c.fsf-monnier+comp.arch@gnu.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 10 Jul 2021 03:00:53 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="f453c5503eb2644c45d99d92a6e74653";
logging-data="6531"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19OtweROeMGI+fug6HJiYLC"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:XSu9RwxLRRSRa8uYNwIDcTnkppo=
In-Reply-To: <jwvim1i7v7c.fsf-monnier+comp.arch@gnu.org>
Content-Language: en-US
 by: Ivan Godard - Sat, 10 Jul 2021 03:00 UTC

On 7/9/2021 7:45 PM, Stefan Monnier wrote:
>> But I shouldn't be surprised that you've thought of, and made provision for,
>> something so obvious as that. Rather, the fact that I even consider this
>> worthy of mention is just to note that having a separate conAsm and
>> genAsm is... potentially dangerous. At least, you haven't succumbed to
>> the temptation to make conAsm secret and proprietary so that people making
>> Mill systems could only use the boot ROMs that you supply, or any other
>> stunt like that - that would discourage adoption, but just the mere _existence_
>
> I don't think that's a serious issue, to be honest (e.g. I don't think
> it was a serious issue for Transmeta, for example).
>
> The more problematic case is when you want to migrate a task to another
> host, in which case copper/silver/gold will probably have to be
> considered as being different ISAs.
>
> For the same reason, you're probably going to have trouble making a Mill
> with a "BIG.little" kind of setup since moving a process from/to a BIG
> to/from a little core will be difficult.
>
> [ Whether such BIG.little setup are really important is of course
> another question. ]
>
>
> Stefan
>

That's been a question for us, too. There's no problem if the bigs and
littles serve different function: a little as a control processor say,
with bigs as workers. Chips doing that use mixed ISA cores commonly now.

But you are right that actual migration is an issue. Conceivably one
could checkpoint and then do a resume on a different core; the app data
would go fine, and I can see resuming from a known code point that was
specialized to not have anything in flight. But interpreting the control
stack and spiller state would not be easy and and would require software
IMO.

Re: Mill conAsm vs genAsm (was: Split register files)

<2336ffa3-df90-461a-a1cb-51147dfc504dn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a37:9445:: with SMTP id w66mr44074242qkd.410.1625933258755;
Sat, 10 Jul 2021 09:07:38 -0700 (PDT)
X-Received: by 2002:a9d:3b0:: with SMTP id f45mr24334989otf.5.1625933258468;
Sat, 10 Jul 2021 09:07:38 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sat, 10 Jul 2021 09:07:38 -0700 (PDT)
In-Reply-To: <9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:e0a4:3d45:fda5:f014;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:e0a4:3d45:fda5:f014
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me>
<sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me>
<sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me>
<sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me>
<sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me> <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
<scan92$k7m$1@dont-email.me> <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com>
<9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2336ffa3-df90-461a-a1cb-51147dfc504dn@googlegroups.com>
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sat, 10 Jul 2021 16:07:38 +0000
Content-Type: text/plain; charset="UTF-8"
 by: MitchAlsup - Sat, 10 Jul 2021 16:07 UTC

On Friday, July 9, 2021 at 7:29:22 PM UTC-5, Quadibloc wrote:
> On Friday, July 9, 2021 at 6:02:22 PM UTC-6, MitchAlsup wrote:
> > On Friday, July 9, 2021 at 6:48:53 PM UTC-5, Ivan Godard wrote:
>
> > > However, even those who want to do their own ROM are extremely unlikely
> > > to need or want to do anything in conAsm. It is near impossible to
> > > manually write anything significant in conAsm - this is not a machine
> > > wherein you drop into writing assembler for the fun of it.
>
> > My 66000 is the one to choose if you want to drop into ASM for the fun of it.......
> I'll remember that. Of course, that also makes it clear that despite
> competing with the Mill 'a little' due to the inclusion of conventional
> DSP features - I don't view that as _really_ competing with the Mill,
> since DSPs already exist, and that didn't make the Mill irrelevant or
> unnecessary - perhaps your 66000 is what I'm "really" competing with.
>
> Although I don't really entertain too much in the way of hope that
> any Concertina architecture will get to silicon - I'm still at a very early
> design stage as well - though, I do know what I really intend to compete
> with.
>
> At the moment, ARM and RISC-V are the biggest challengers to x86-64.
>
> I feel that they're... missing stuff... and so while if either of them did
> come to prominence, it would be an improvement on the x86, but some
> problems would remain. Unfortunately, IBM has declined to aggressively
> promote z/Architecture as the computing platform of the future, choosing
> instead the dead-end strategy of milking the few legacy customers who
> need it.
>
> So I'm trying to create a better replacement for x86 that isn't missing stuff.
<
The SIMD stuff is the stuff that should be missing, VVM covers it and much
much more.
>
> I can understand that you might disapprove, as many will feel that the
> stuff I regard as 'missing' is in fact useless wretched excess.
<
Not useless, misguided, model dependent, ever growing, leading to an ASM
that is NOT FUN to program in.
>
> John Savard

Re: Mill conAsm vs genAsm (was: Split register files)

<9a596e40-0c21-4b4c-83b1-56c745dd199cn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:5c8c:: with SMTP id r12mr38969007qta.265.1625934305420;
Sat, 10 Jul 2021 09:25:05 -0700 (PDT)
X-Received: by 2002:a05:6830:3108:: with SMTP id b8mr7511555ots.182.1625934305169;
Sat, 10 Jul 2021 09:25:05 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sat, 10 Jul 2021 09:25:04 -0700 (PDT)
In-Reply-To: <2336ffa3-df90-461a-a1cb-51147dfc504dn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fa3c:a000:79cd:420:2b23:4d8d;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fa3c:a000:79cd:420:2b23:4d8d
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me>
<sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me>
<sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me>
<sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me>
<sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me> <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
<scan92$k7m$1@dont-email.me> <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com>
<9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com> <2336ffa3-df90-461a-a1cb-51147dfc504dn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9a596e40-0c21-4b4c-83b1-56c745dd199cn@googlegroups.com>
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Sat, 10 Jul 2021 16:25:05 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Quadibloc - Sat, 10 Jul 2021 16:25 UTC

On Saturday, July 10, 2021 at 10:07:39 AM UTC-6, MitchAlsup wrote:
> The SIMD stuff is the stuff that should be missing, VVM covers it and much
> much more.

Oh, the SIMD stuff, not the VLIW stuff?

The VLIW stuff, I knew, was a bit extraneous - it would only get used on
certain specialized implementations.

There is also SIMD stuff that looks like AltiVec or AVX - and a whole other
set of SIMD stuff that looks like a Cray-I.

Maybe that too should be missing, but I am thinking in terms of a simplistic
architecture in which instructions are executed individually and directly.
So if one has code that _looks_ like it's just a loop, it will be executed as a
loop, not something faster. That is, I definitely do not think that I could put
vectorizing compiler functionality in hardware.

So even the simpler functionality of merging successive instructions to
enrich the instruction set is something I view as too advanced to consider.

> Not useless, misguided, model dependent, ever growing, leading to an ASM
> that is NOT FUN to program in.

Well, by "useless" I was thinking of other stuff, packed decimal, IBM/360
floating point, and so on.

It's true that MMX went to SSE which went to AVX. I had kind of figured that
vector arithmetic on 256 bit vectors could just be left as is, because if one wants
more, there's the Cray-I like stuff. And I went beyond the Cray-I, with 64 vector
registers.

But the Cray-I was succeeded by the Cray X-MP and the Cray Y-MP, and so those
kinds of vectors also *do* grow.

IBM, of course, had a vector instruction set with special associated loop instructions
so that one could perform an operation on long vectors without worrying about
whether the hardware was splitting them into 64-element vectors or 128-element
vectors or something else. So there is an option for avoiding the growth spiral that is
still more conventional than your Virtual Vector Method.

John Savard

Re: Mill conAsm vs genAsm (was: Split register files)

<sceb52$b4t$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: m.del...@this.bitsnbites.eu (Marcus)
Newsgroups: comp.arch
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
Date: Sun, 11 Jul 2021 10:46:25 +0200
Organization: A noiseless patient Spider
Lines: 67
Message-ID: <sceb52$b4t$1@dont-email.me>
References: <sb6s70$dip$1@newsreader4.netcologne.de>
<sb6vfb$1ov$1@dont-email.me> <sb70q1$fsg$2@newsreader4.netcologne.de>
<sb912k$c4c$1@dont-email.me> <sb99gi$1r5$1@newsreader4.netcologne.de>
<sbh665$sht$1@dont-email.me> <sbubiu$unp$1@dont-email.me>
<sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me>
<sc5fh8$p7q$1@dont-email.me> <sc8pjr$8ib$1@dont-email.me>
<sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me>
<63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
<scan92$k7m$1@dont-email.me>
<dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com>
<9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com>
<2336ffa3-df90-461a-a1cb-51147dfc504dn@googlegroups.com>
<9a596e40-0c21-4b4c-83b1-56c745dd199cn@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 11 Jul 2021 08:46:26 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="939b6cf87431af6bd6ff377485cded94";
logging-data="11421"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19vAgkjeV+eyt+WvsCVh7fGb1+kNSIDyGc="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:sP1P07HzhGzev2PlU44O4TqKj+Y=
In-Reply-To: <9a596e40-0c21-4b4c-83b1-56c745dd199cn@googlegroups.com>
Content-Language: en-US
 by: Marcus - Sun, 11 Jul 2021 08:46 UTC

On 2021-07-10, Quadibloc wrote:
> On Saturday, July 10, 2021 at 10:07:39 AM UTC-6, MitchAlsup wrote:
>> The SIMD stuff is the stuff that should be missing, VVM covers it and much
>> much more.
>
> Oh, the SIMD stuff, not the VLIW stuff?
>
> The VLIW stuff, I knew, was a bit extraneous - it would only get used on
> certain specialized implementations.
>
> There is also SIMD stuff that looks like AltiVec or AVX - and a whole other
> set of SIMD stuff that looks like a Cray-I.
>
> Maybe that too should be missing, but I am thinking in terms of a simplistic
> architecture in which instructions are executed individually and directly.
> So if one has code that _looks_ like it's just a loop, it will be executed as a
> loop, not something faster. That is, I definitely do not think that I could put
> vectorizing compiler functionality in hardware.
>
> So even the simpler functionality of merging successive instructions to
> enrich the instruction set is something I view as too advanced to consider.
>
>> Not useless, misguided, model dependent, ever growing, leading to an ASM
>> that is NOT FUN to program in.
>
> Well, by "useless" I was thinking of other stuff, packed decimal, IBM/360
> floating point, and so on.
>
> It's true that MMX went to SSE which went to AVX. I had kind of figured that
> vector arithmetic on 256 bit vectors could just be left as is, because if one wants
> more, there's the Cray-I like stuff. And I went beyond the Cray-I, with 64 vector
> registers.
>
> But the Cray-I was succeeded by the Cray X-MP and the Cray Y-MP, and so those
> kinds of vectors also *do* grow.

That's why I made the MRISC32 ISA vector register size agnostic. It's
not very hard, but you need to keep it in mind. For instance, the 64-bit
VM register of the Cray 1 sets a hard limit to the vector register size,
so I did not do it that way.

Another thing is that you need to have a fast and easy way to adjust
your loop increments (how many elements to process in a single loop
iteration), based on the implementation defined register length (I have
a "max vector length" status register and a MIN instruction that can be
used in tandem quite efficiently).

A third issue is to efficiently create vector constants on the form
[0, 1, 2, ..., N-1] (or similar), which is quite common in vectorized
code. In SIMD architectures you usually load the constant from data
memory. With variable vector lengths that's a bad fit, so I re-used the
address generation unit for that purpose, so e.g:

LDEA V3, [Z, #1] ; V3 = [0, 1, 2, 3, ...]
LDEA V4, [R2, R3] ; V4 = [R2, R2+R3, R2+2*R3, R2+3*R3, ...]

>
> IBM, of course, had a vector instruction set with special associated loop instructions
> so that one could perform an operation on long vectors without worrying about
> whether the hardware was splitting them into 64-element vectors or 128-element
> vectors or something else. So there is an option for avoiding the growth spiral that is
> still more conventional than your Virtual Vector Method.
>
> John Savard
>

Re: Mill conAsm vs genAsm (was: Split register files)

<0e87d075-e620-4173-accc-e16e0adbba35n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:126e:: with SMTP id b14mr46410690qkl.36.1625995671004;
Sun, 11 Jul 2021 02:27:51 -0700 (PDT)
X-Received: by 2002:a9d:5603:: with SMTP id e3mr29265752oti.178.1625995670789;
Sun, 11 Jul 2021 02:27:50 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 11 Jul 2021 02:27:50 -0700 (PDT)
In-Reply-To: <sceb52$b4t$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fa3c:a000:f941:1170:cfaf:9cbe;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fa3c:a000:f941:1170:cfaf:9cbe
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me>
<sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me>
<sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me>
<sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me>
<sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me> <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
<scan92$k7m$1@dont-email.me> <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com>
<9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com> <2336ffa3-df90-461a-a1cb-51147dfc504dn@googlegroups.com>
<9a596e40-0c21-4b4c-83b1-56c745dd199cn@googlegroups.com> <sceb52$b4t$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <0e87d075-e620-4173-accc-e16e0adbba35n@googlegroups.com>
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Sun, 11 Jul 2021 09:27:50 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Quadibloc - Sun, 11 Jul 2021 09:27 UTC

On Sunday, July 11, 2021 at 2:46:28 AM UTC-6, Marcus wrote:

> That's why I made the MRISC32 ISA vector register size agnostic. It's
> not very hard, but you need to keep it in mind.

True. Basically, one designs vector memory-reference instructions that
are indexed, and you have the last of those in a loop increment the index
by the vector length, whatever it is. And a vector counter is also needed,
which gets decremented by the vector length on each iteration, and
when it goes less than the vector length, causes all the instructions to work
on partial vectors.

What concerns me about this model, though, is that it does seem to limit
what you can do with vectors; it seems to impose one particular model of
vector calculations.

While Mitch Alsup's VVM doesn't restrict what you can do with vectors, it
seems to keep the vectors in memory.

Having the length of vectors known to the programmer, and having vector
registers, seems to me to allow the most flexibility and the highest performance,
even if it creates a serious issue of future-proofing. My current inclination is
simply to include *all three approaches* in the description of the hardware, until
I learn more about these issues, and can be confident that one approach is the
best. Performance is a particular emphasis that I have here, since this is really
what vectors are _for_.

John Savard

Re: Mill conAsm vs genAsm (was: Split register files)

<47c7a8f0-bcd0-44ee-96ea-4709d1c85227n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:90c:: with SMTP id v12mr7144550qkv.190.1626016364677; Sun, 11 Jul 2021 08:12:44 -0700 (PDT)
X-Received: by 2002:a9d:6b0b:: with SMTP id g11mr24948932otp.240.1626016364483; Sun, 11 Jul 2021 08:12:44 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!feeder5.feed.usenet.farm!feeder1.feed.usenet.farm!feed.usenet.farm!tr2.eu1.usenetexpress.com!feeder.usenetexpress.com!tr2.iad1.usenetexpress.com!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, 11 Jul 2021 08:12:44 -0700 (PDT)
In-Reply-To: <2336ffa3-df90-461a-a1cb-51147dfc504dn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fa3c:a000:3c08:28a2:69af:3685; posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fa3c:a000:3c08:28a2:69af:3685
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me> <sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me> <sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me> <sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me> <sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me> <sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me> <scac7e$ph4$1@dont-email.me> <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com> <scan92$k7m$1@dont-email.me> <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com> <9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com> <2336ffa3-df90-461a-a1cb-51147dfc504dn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <47c7a8f0-bcd0-44ee-96ea-4709d1c85227n@googlegroups.com>
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Sun, 11 Jul 2021 15:12:44 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 21
 by: Quadibloc - Sun, 11 Jul 2021 15:12 UTC

On Saturday, July 10, 2021 at 10:07:39 AM UTC-6, MitchAlsup wrote:

> The SIMD stuff is the stuff that should be missing, VVM covers it and much
> much more.

I think I see now that I have been missing the chief excellency of the VVM.

No, it isn't just a sort of REPEAT instruction.

Instead, no doubt what it is doing is converting a stretch of ordinary-looking
code into a *dataflow* program, where references to registers are turned into
simply the numbers of node points linking pipelined ALUs together.

In my original Concertina architecture, along with everything else but the
kitchen sink, I did have a dataflow-building instruction. Here, using register
banks of 32 and 128 registers instead of just 8, I could use ordinary instructions
within a pair of delimiting instructions, and yet make things explicit: the
convention I'd likely use is that the first 1/4 of registers are real registers,
used for constants or as accumulators for running totals, and the rest are
node points.

John Savard

Re: Mill conAsm vs genAsm (was: Split register files)

<f4a2c7e6-d5f1-4d14-9e46-42875e470a47n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:5c8c:: with SMTP id r12mr42975720qta.265.1626017497248;
Sun, 11 Jul 2021 08:31:37 -0700 (PDT)
X-Received: by 2002:aca:dbd6:: with SMTP id s205mr7149793oig.155.1626017497094;
Sun, 11 Jul 2021 08:31:37 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 11 Jul 2021 08:31:36 -0700 (PDT)
In-Reply-To: <9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=217.147.94.29; posting-account=soFpvwoAAADIBXOYOBcm_mixNPAaxW9p
NNTP-Posting-Host: 217.147.94.29
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me>
<sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me>
<sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me>
<sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me>
<sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me> <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
<scan92$k7m$1@dont-email.me> <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com>
<9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f4a2c7e6-d5f1-4d14-9e46-42875e470a47n@googlegroups.com>
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
From: luke.lei...@gmail.com (luke.l...@gmail.com)
Injection-Date: Sun, 11 Jul 2021 15:31:37 +0000
Content-Type: text/plain; charset="UTF-8"
 by: luke.l...@gmail.com - Sun, 11 Jul 2021 15:31 UTC

On Saturday, July 10, 2021 at 1:29:22 AM UTC+1, Quadibloc wrote:

> At the moment, ARM and RISC-V are the biggest challengers to x86-64.

ARM maybe. RISC-V? flat-out no chance. anyone that tries
it for anything beyond the most basic embedded tasks is going
to regret it. here's why:

https://news.ycombinator.com/item?id=24459314

> I feel that they're... missing stuff...

fascinatingly, the only thing needed to turn SVE2 into Cray-style Vectors
would be the addition of a setvl instruction that created a hidden
predicate mask. i think i mentioned this in an earlier post.

l.

Re: Mill conAsm vs genAsm (was: Split register files)

<ed9a99c2-7a43-4828-bd31-1350c44ff974n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:126e:: with SMTP id b14mr47887752qkl.36.1626021979989; Sun, 11 Jul 2021 09:46:19 -0700 (PDT)
X-Received: by 2002:a9d:491c:: with SMTP id e28mr4565423otf.342.1626021979732; Sun, 11 Jul 2021 09:46:19 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr2.iad1.usenetexpress.com!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, 11 Jul 2021 09:46:19 -0700 (PDT)
In-Reply-To: <f4a2c7e6-d5f1-4d14-9e46-42875e470a47n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fa3c:a000:3c08:28a2:69af:3685; posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fa3c:a000:3c08:28a2:69af:3685
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me> <sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me> <sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me> <sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me> <sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me> <sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me> <scac7e$ph4$1@dont-email.me> <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com> <scan92$k7m$1@dont-email.me> <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com> <9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com> <f4a2c7e6-d5f1-4d14-9e46-42875e470a47n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ed9a99c2-7a43-4828-bd31-1350c44ff974n@googlegroups.com>
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Sun, 11 Jul 2021 16:46:19 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 14
 by: Quadibloc - Sun, 11 Jul 2021 16:46 UTC

On Sunday, July 11, 2021 at 9:31:38 AM UTC-6, luke.l...@gmail.com wrote:
> On Saturday, July 10, 2021 at 1:29:22 AM UTC+1, Quadibloc wrote:
>
> > At the moment, ARM and RISC-V are the biggest challengers to x86-64.

> ARM maybe. RISC-V? flat-out no chance. anyone that tries
> it for anything beyond the most basic embedded tasks is going
> to regret it. here's why:
>
> https://news.ycombinator.com/item?id=24459314

Ah. I know that in my designs, I don't even consider instruction fusion as
a possibility.

John Savard

Re: Mill conAsm vs genAsm (was: Split register files)

<b44c18c7-e9f1-4a87-98a4-edafc06cef78n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:1303:: with SMTP id a3mr26857391qvv.49.1626025647803;
Sun, 11 Jul 2021 10:47:27 -0700 (PDT)
X-Received: by 2002:a05:6830:17d2:: with SMTP id p18mr21330005ota.82.1626025647575;
Sun, 11 Jul 2021 10:47:27 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 11 Jul 2021 10:47:27 -0700 (PDT)
In-Reply-To: <ed9a99c2-7a43-4828-bd31-1350c44ff974n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:8d64:8b5a:78fe:dd70;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:8d64:8b5a:78fe:dd70
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me>
<sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me>
<sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me>
<sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me>
<sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me> <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
<scan92$k7m$1@dont-email.me> <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com>
<9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com> <f4a2c7e6-d5f1-4d14-9e46-42875e470a47n@googlegroups.com>
<ed9a99c2-7a43-4828-bd31-1350c44ff974n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b44c18c7-e9f1-4a87-98a4-edafc06cef78n@googlegroups.com>
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sun, 11 Jul 2021 17:47:27 +0000
Content-Type: text/plain; charset="UTF-8"
 by: MitchAlsup - Sun, 11 Jul 2021 17:47 UTC

On Sunday, July 11, 2021 at 11:46:21 AM UTC-5, Quadibloc wrote:
> On Sunday, July 11, 2021 at 9:31:38 AM UTC-6, luke.l...@gmail.com wrote:
> > On Saturday, July 10, 2021 at 1:29:22 AM UTC+1, Quadibloc wrote:
> >
> > > At the moment, ARM and RISC-V are the biggest challengers to x86-64.
>
> > ARM maybe. RISC-V? flat-out no chance. anyone that tries
> > it for anything beyond the most basic embedded tasks is going
> > to regret it. here's why:
> >
> > https://news.ycombinator.com/item?id=24459314
<
> Ah. I know that in my designs, I don't even consider instruction fusion as
> a possibility.
<
I do; for purely HW reasons--it takes less total storage in reservation stations
than holding them in separate stations.
>
> John Savard

Re: Mill conAsm vs genAsm

<JbGGI.7697$7H7.3899@fx42.iad>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!news.mixmin.net!news2.arglkargh.de!news.karotte.org!news.uzoreto.com!peer03.ams4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx42.iad.POSTED!not-for-mail
From: ThatWoul...@thevillage.com (EricP)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
Newsgroups: comp.arch
Subject: Re: Mill conAsm vs genAsm
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me> <sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me> <sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me> <sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me> <sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me> <sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me> <scac7e$ph4$1@dont-email.me> <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com> <scan92$k7m$1@dont-email.me> <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com> <9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com> <2336ffa3-df90-461a-a1cb-51147dfc504dn@googlegroups.com> <47c7a8f0-bcd0-44ee-96ea-4709d1c85227n@googlegroups.com>
In-Reply-To: <47c7a8f0-bcd0-44ee-96ea-4709d1c85227n@googlegroups.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 32
Message-ID: <JbGGI.7697$7H7.3899@fx42.iad>
X-Complaints-To: abuse@UsenetServer.com
NNTP-Posting-Date: Sun, 11 Jul 2021 17:50:33 UTC
Date: Sun, 11 Jul 2021 13:50:15 -0400
X-Received-Bytes: 2682
 by: EricP - Sun, 11 Jul 2021 17:50 UTC

Quadibloc wrote:
> On Saturday, July 10, 2021 at 10:07:39 AM UTC-6, MitchAlsup wrote:
>
>> The SIMD stuff is the stuff that should be missing, VVM covers it and much
>> much more.
>
> I think I see now that I have been missing the chief excellency of the VVM.
>
> No, it isn't just a sort of REPEAT instruction.
>
> Instead, no doubt what it is doing is converting a stretch of ordinary-looking
> code into a *dataflow* program, where references to registers are turned into
> simply the numbers of node points linking pipelined ALUs together.

VVM needs to also take care of any memory aliasing issues,
which to me look much more complicated than the forwarding.

for (i = 0; i < N; i++)
a[i+1] = a[i] + b[i];

In SIMD the programmer takes care of such issues,
in that SIMD doesn't know about any memory locations that
map to multiple register operands, so by using SIMD
they effectively guarantee there are no such issues.

Similarly for vector operations it is the programmer who guarantees
that the program has no alias updates in that machines' prefetch window,
however big the prefetch window is.

VVM has to work that out on the fly.

Re: Mill conAsm vs genAsm

<29df889b-e8da-44bf-803c-347356f8b325n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a37:7e46:: with SMTP id z67mr14160472qkc.417.1626027221324; Sun, 11 Jul 2021 11:13:41 -0700 (PDT)
X-Received: by 2002:a9d:6b05:: with SMTP id g5mr36164104otp.329.1626027221134; Sun, 11 Jul 2021 11:13:41 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!tr2.eu1.usenetexpress.com!feeder.usenetexpress.com!tr1.iad1.usenetexpress.com!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, 11 Jul 2021 11:13:40 -0700 (PDT)
In-Reply-To: <JbGGI.7697$7H7.3899@fx42.iad>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:8d64:8b5a:78fe:dd70; posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:8d64:8b5a:78fe:dd70
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me> <sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me> <sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me> <sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me> <sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me> <sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me> <scac7e$ph4$1@dont-email.me> <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com> <scan92$k7m$1@dont-email.me> <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com> <9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com> <2336ffa3-df90-461a-a1cb-51147dfc504dn@googlegroups.com> <47c7a8f0-bcd0-44ee-96ea-4709d1c85227n@googlegroups.com> <JbGGI.7697$7H7.3899@fx42.iad>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <29df889b-e8da-44bf-803c-347356f8b325n@googlegroups.com>
Subject: Re: Mill conAsm vs genAsm
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sun, 11 Jul 2021 18:13:41 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 45
 by: MitchAlsup - Sun, 11 Jul 2021 18:13 UTC

On Sunday, July 11, 2021 at 12:50:36 PM UTC-5, EricP wrote:
> Quadibloc wrote:
> > On Saturday, July 10, 2021 at 10:07:39 AM UTC-6, MitchAlsup wrote:
> >
> >> The SIMD stuff is the stuff that should be missing, VVM covers it and much
> >> much more.
> >
> > I think I see now that I have been missing the chief excellency of the VVM.
> >
> > No, it isn't just a sort of REPEAT instruction.
> >
> > Instead, no doubt what it is doing is converting a stretch of ordinary-looking
> > code into a *dataflow* program, where references to registers are turned into
> > simply the numbers of node points linking pipelined ALUs together.
<
> VVM needs to also take care of any memory aliasing issues,
<
Agreed
<
> which to me look much more complicated than the forwarding.
>
> for (i = 0; i < N; i++)
> a[i+1] = a[i] + b[i];
<
VVM watches the AGEN calculations on the insertion into the execution window,
and when necessary, restricts the AGENs from spanning loop iterations.
>
> In SIMD the programmer takes care of such issues,
> in that SIMD doesn't know about any memory locations that
> map to multiple register operands, so by using SIMD
> they effectively guarantee there are no such issues.
>
> Similarly for vector operations it is the programmer who guarantees
> that the program has no alias updates in that machines' prefetch window,
> however big the prefetch window is.
<
More often, the compiler went though memory aliasing contortions in order to
decide if the loop can be vectorized (or not--often not). The VVM compiler is
relieved of having to perform this analysis and can vectorize loops with such
shenanigans--it is just that these loops do not run as fast as the ones devoid
of shenanigans. {As it should be}
<
>
> VVM has to work that out on the fly.
<
Agreed.

Re: Mill conAsm vs genAsm (was: Split register files)

<scffhd$pf9$2@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-2e47-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
Date: Sun, 11 Jul 2021 19:07:25 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <scffhd$pf9$2@newsreader4.netcologne.de>
References: <sb6s70$dip$1@newsreader4.netcologne.de>
<sb6vfb$1ov$1@dont-email.me> <sb70q1$fsg$2@newsreader4.netcologne.de>
<sb912k$c4c$1@dont-email.me> <sb99gi$1r5$1@newsreader4.netcologne.de>
<sbh665$sht$1@dont-email.me> <sbubiu$unp$1@dont-email.me>
<sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me>
<sc5fh8$p7q$1@dont-email.me> <sc8pjr$8ib$1@dont-email.me>
<sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me>
<63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
<scan92$k7m$1@dont-email.me>
<dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com>
<9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com>
<f4a2c7e6-d5f1-4d14-9e46-42875e470a47n@googlegroups.com>
Injection-Date: Sun, 11 Jul 2021 19:07:25 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-2e47-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:2e47:0:7285:c2ff:fe6c:992d";
logging-data="26089"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sun, 11 Jul 2021 19:07 UTC

luke.l...@gmail.com <luke.leighton@gmail.com> schrieb:
> On Saturday, July 10, 2021 at 1:29:22 AM UTC+1, Quadibloc wrote:
>
>> At the moment, ARM and RISC-V are the biggest challengers to x86-64.
>
> ARM maybe. RISC-V? flat-out no chance. anyone that tries
> it for anything beyond the most basic embedded tasks is going
> to regret it. here's why:
>
> https://news.ycombinator.com/item?id=24459314

https://gist.github.com/erincandescent/8a10eeeea1918ee4f9d9982f7618ef68

is also quite well-founded (don't know if you knew this).

Re: Mill conAsm vs genAsm (was: Split register files)

<9b0c8e47-208c-461f-84b9-3f62f2536498n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ad4:5dc6:: with SMTP id m6mr7790028qvh.58.1626038359449;
Sun, 11 Jul 2021 14:19:19 -0700 (PDT)
X-Received: by 2002:a05:6808:1455:: with SMTP id x21mr2390698oiv.51.1626038359272;
Sun, 11 Jul 2021 14:19:19 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 11 Jul 2021 14:19:19 -0700 (PDT)
In-Reply-To: <b44c18c7-e9f1-4a87-98a4-edafc06cef78n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fa3c:a000:edc5:8b34:5c20:f47f;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fa3c:a000:edc5:8b34:5c20:f47f
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me>
<sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me>
<sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me>
<sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me>
<sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me> <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
<scan92$k7m$1@dont-email.me> <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com>
<9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com> <f4a2c7e6-d5f1-4d14-9e46-42875e470a47n@googlegroups.com>
<ed9a99c2-7a43-4828-bd31-1350c44ff974n@googlegroups.com> <b44c18c7-e9f1-4a87-98a4-edafc06cef78n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9b0c8e47-208c-461f-84b9-3f62f2536498n@googlegroups.com>
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Sun, 11 Jul 2021 21:19:19 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Quadibloc - Sun, 11 Jul 2021 21:19 UTC

On Sunday, July 11, 2021 at 11:47:28 AM UTC-6, MitchAlsup wrote:
> On Sunday, July 11, 2021 at 11:46:21 AM UTC-5, Quadibloc wrote:

> > Ah. I know that in my designs, I don't even consider instruction fusion as
> > a possibility.

> I do; for purely HW reasons--it takes less total storage in reservation stations
> than holding them in separate stations.

My concern isn't that instruction fusion is 'bad', but that it's a good thing that's
too difficult to attain - so I try to design an ISA so that there are no instructions
that need to be fused.

Now that I've seen how I can take inspiration from your VVM, though, I see a
potential conflict with the Concertina II design philosophy. I've got it fetching,
decoding, and maybe even executing up to eight instructions in a block in
parallel.

If an instruction is part of a VVM section, though, *what it does has been changed*.

So I have to warn this VLIW-ish design about that. Essentially, I think I will do it
by adding block header formats in which some instruction slots can be marked
as 'prefixed', to allow use of this and similar features.

John Savard

Re: Mill conAsm vs genAsm (was: Split register files)

<2d9cc306-64a3-49a5-a83d-33a68761f643n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:34c:: with SMTP id r12mr44490350qtw.196.1626044147555;
Sun, 11 Jul 2021 15:55:47 -0700 (PDT)
X-Received: by 2002:a9d:491c:: with SMTP id e28mr5530117otf.342.1626044147344;
Sun, 11 Jul 2021 15:55:47 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 11 Jul 2021 15:55:45 -0700 (PDT)
In-Reply-To: <9b0c8e47-208c-461f-84b9-3f62f2536498n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fa3c:a000:edc5:8b34:5c20:f47f;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fa3c:a000:edc5:8b34:5c20:f47f
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me>
<sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me>
<sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me>
<sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me>
<sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me> <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
<scan92$k7m$1@dont-email.me> <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com>
<9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com> <f4a2c7e6-d5f1-4d14-9e46-42875e470a47n@googlegroups.com>
<ed9a99c2-7a43-4828-bd31-1350c44ff974n@googlegroups.com> <b44c18c7-e9f1-4a87-98a4-edafc06cef78n@googlegroups.com>
<9b0c8e47-208c-461f-84b9-3f62f2536498n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2d9cc306-64a3-49a5-a83d-33a68761f643n@googlegroups.com>
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Sun, 11 Jul 2021 22:55:47 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Quadibloc - Sun, 11 Jul 2021 22:55 UTC

On Sunday, July 11, 2021 at 3:19:20 PM UTC-6, Quadibloc wrote:

> So I have to warn this VLIW-ish design about that. Essentially, I think I will do it
> by adding block header formats in which some instruction slots can be marked
> as 'prefixed', to allow use of this and similar features.

Good thing I did that - in reviewing the block header formats, I found I had made
some serious mistakes, and there were some formats with codes that would have
overlapped with other prefixes, or with codes used for instructions and not available
for prefixes.

John Savard

Re: Mill conAsm vs genAsm (was: Split register files)

<f18ac835-4ca2-41e5-b079-9076ab4ff51cn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:90c:: with SMTP id v12mr8546810qkv.190.1626044662006;
Sun, 11 Jul 2021 16:04:22 -0700 (PDT)
X-Received: by 2002:a9d:6b05:: with SMTP id g5mr36923955otp.329.1626044661818;
Sun, 11 Jul 2021 16:04:21 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 11 Jul 2021 16:04:21 -0700 (PDT)
In-Reply-To: <scffhd$pf9$2@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fa3c:a000:edc5:8b34:5c20:f47f;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fa3c:a000:edc5:8b34:5c20:f47f
References: <sb6s70$dip$1@newsreader4.netcologne.de> <sb6vfb$1ov$1@dont-email.me>
<sb70q1$fsg$2@newsreader4.netcologne.de> <sb912k$c4c$1@dont-email.me>
<sb99gi$1r5$1@newsreader4.netcologne.de> <sbh665$sht$1@dont-email.me>
<sbubiu$unp$1@dont-email.me> <sbudg8$aje$1@dont-email.me> <sc12qv$8ka$1@dont-email.me>
<sc186o$gns$1@dont-email.me> <sc5cg5$a3p$1@dont-email.me> <sc5fh8$p7q$1@dont-email.me>
<sc8pjr$8ib$1@dont-email.me> <sc8uoc$2tc$1@dont-email.me> <sc9iib$3ei$1@dont-email.me>
<scac7e$ph4$1@dont-email.me> <63597d55-f5bd-42fc-bae3-38155d072128n@googlegroups.com>
<scan92$k7m$1@dont-email.me> <dc5c8894-e51d-46a8-b682-9784fb8ac205n@googlegroups.com>
<9020308c-08e6-4f4f-b29f-e4320c19b1c2n@googlegroups.com> <f4a2c7e6-d5f1-4d14-9e46-42875e470a47n@googlegroups.com>
<scffhd$pf9$2@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f18ac835-4ca2-41e5-b079-9076ab4ff51cn@googlegroups.com>
Subject: Re: Mill conAsm vs genAsm (was: Split register files)
From: jsav...@ecn.ab.ca (Quadibloc)
Injection-Date: Sun, 11 Jul 2021 23:04:22 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Quadibloc - Sun, 11 Jul 2021 23:04 UTC

On Sunday, July 11, 2021 at 1:07:27 PM UTC-6, Thomas Koenig wrote:

> https://gist.github.com/erincandescent/8a10eeeea1918ee4f9d9982f7618ef68

> is also quite well-founded (don't know if you knew this).

In addition to its noting the absence of condition codes as a flaw,
which gladdens my heart (I recognize that condition codes _can_
cause problems, which is why ARM, Alpha, and Mips didn't have them
either, but I've found it easier to take actions to remedy the problems
condition codes can cause than to compensate for the problems
caused by not having them) I found this:

"How FP values are represented in the FP register file is unspecified but observable (by load/store)"

Ouch! Yes, "emulator writers will hate you", among other things. I have decided that
I want added efficiency from storing FP values in the FP register file (but _not_ the
short vector - that is, AVX-like SIMD - register files) in a modified format, but the format
is documented and specified as part of the architecture.

I do the same with decimal floating point.

In both cases, though, my internal format involves only the *obvious* changes for
improving performance - getting rid of the hidden first bit for FP, unpacking densely
packed decimal to plain packed decimal for decimal FP - so that there is no reason
to make the internal format implementation-dependent or model-dependent.

John Savard

Pages:12345678
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor