Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

Memory fault - where am I?


devel / comp.arch / Re: a modest proposal (apologies to J. Swift)

SubjectAuthor
* a modest proposal (apologies to J. Swift)Ivan Godard
+* Re: a modest proposal (apologies to J. Swift)BGB
|`* Re: a modest proposal (apologies to J. Swift)George Neuner
| `- Re: a modest proposal (apologies to J. Swift)winden
+- Re: a modest proposal (apologies to J. Swift)MitchAlsup
+* Re: a modest proposal (apologies to J. Swift)John Levine
|+- Re: a modest proposal (apologies to J. Swift)BGB
|+- Re: a modest proposal (apologies to J. Swift)Bernd Linsel
|+* Re: a modest proposal (apologies to J. Swift)Marcus
||`* Re: a modest proposal (apologies to J. Swift)John Levine
|| `* Re: a modest proposal (apologies to J. Swift)BGB
||  `* Re: a modest proposal (apologies to J. Swift)MitchAlsup
||   `* Re: a modest proposal (apologies to J. Swift)BGB
||    `* Re: a modest proposal (apologies to J. Swift)MitchAlsup
||     `* Re: a modest proposal (apologies to J. Swift)BGB
||      `* Re: a modest proposal (apologies to J. Swift)MitchAlsup
||       `* Re: a modest proposal (apologies to J. Swift)BGB
||        `* Re: a modest proposal (apologies to J. Swift)MitchAlsup
||         `* Re: a modest proposal (apologies to J. Swift)BGB
||          `* Re: a modest proposal (apologies to J. Swift)MitchAlsup
||           `* Re: a modest proposal (apologies to J. Swift)BGB
||            `* Re: a modest proposal (apologies to J. Swift)Michael S
||             +* Re: a modest proposal (apologies to J. Swift)BGB
||             |`* Re: a modest proposal (apologies to J. Swift)Anton Ertl
||             | `* Re: a modest proposal (apologies to J. Swift)BGB
||             |  `* Re: a modest proposal (apologies to J. Swift)Anton Ertl
||             |   `- Re: a modest proposal (apologies to J. Swift)Anton Ertl
||             `* Re: a modest proposal (apologies to J. Swift)JimBrakefield
||              `* Re: a modest proposal (apologies to J. Swift)Thomas Koenig
||               `- Re: a modest proposal (apologies to J. Swift)JimBrakefield
|+* Re: a modest proposal (apologies to J. Swift)JimBrakefield
||`* Re: a modest proposal (apologies to J. Swift)BGB
|| `- Re: a modest proposal (apologies to J. Swift)JimBrakefield
|`- Re: a modest proposal (apologies to J. Swift)MitchAlsup
+- Re: a modest proposal (apologies to J. Swift)Quadibloc
+* Re: a modest proposal (apologies to J. Swift)Anton Ertl
|`- Re: a modest proposal (apologies to J. Swift)Ivan Godard
`- Re: a modest proposal (apologies to J. Swift)Paul A. Clayton

Pages:12
Re: a modest proposal (apologies to J. Swift)

<8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:e08:: with SMTP id a8mr5659358qti.346.1624553416326;
Thu, 24 Jun 2021 09:50:16 -0700 (PDT)
X-Received: by 2002:aca:3d56:: with SMTP id k83mr2271220oia.110.1624553416090;
Thu, 24 Jun 2021 09:50:16 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!news.dns-netz.com!news.freedyn.net!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Thu, 24 Jun 2021 09:50:15 -0700 (PDT)
In-Reply-To: <sb22rk$n03$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:ad16:43cb:bd70:119d;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:ad16:43cb:bd70:119d
References: <samgjd$cbd$1@dont-email.me> <sao5ar$1cl7$1@gal.iecc.com>
<sapo7q$c9v$1@dont-email.me> <saqctc$2rso$1@gal.iecc.com> <saqj72$mnk$1@dont-email.me>
<7a9e6be9-e406-467a-93b7-2b14f7d07deen@googlegroups.com> <saqsq8$r75$1@dont-email.me>
<d705b13b-5b6f-4943-b454-d057a310fb8en@googlegroups.com> <sat9lt$vvv$1@dont-email.me>
<ca127074-6978-44ae-9b09-8a304b921026n@googlegroups.com> <sb22rk$n03$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com>
Subject: Re: a modest proposal (apologies to J. Swift)
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Thu, 24 Jun 2021 16:50:16 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 3332
 by: MitchAlsup - Thu, 24 Jun 2021 16:50 UTC

On Thursday, June 24, 2021 at 8:55:02 AM UTC-5, BGB wrote:
> (Got distracted, posting got delayed...)
> On 6/22/2021 2:26 PM, MitchAlsup wrote:

> > <
> > I hope this is for better reasons than MIPS used in R2000 and R3000.....
> > <
> > R0 is the only register with HW defined use--and that is
> > a) gets IP return address when a CALL is performed
> > b) is an alias for IP when used as a base register
> > c) is an alias for zero when used as an index register
> > <
> > R31 (SP) has a bit that changes how ENTER and EXIT work
> > R30 (FP) has a bit that changes how ENTER and EXIT work.
<
> R0: May be stomped without warning if one tries to encode an operation
> with an immediate, and the immediate form can't otherwise be encoded for
> whatever reason.
<
I got rid of any need to stomp registers other than direct instructions.
So, My 66000 does not stomp any registers, it can supply immediates
of appropriate sizes.
>
> Say, assuming Jumbo isn't allowed:
> ADD R4, -9999, R6
> Might be encoded as if it were:
> MOV -9999, R0
> ADD R4, R0, R6
<
You are using instructions to build and deliver constants into the instruction stream.
>
> Also R0 and R1 are special cases for Load/Store encodings, ... So, can't
> be used as normal registers, since if the operation tries to use them as
> a base or index for a load, it invokes magic.
>
> Trying to branch to R0 or R1 may also invokes a few spacial cases:
> Branching to R0 is assumed to be an escaped absolute branch;
> Branching to R1 behaves as if it were an RTS using R1 as LR.
>
>
> R16 and R17 formally had similar restrictions, and were initially
> assumed unusable by the C ABI. However, in practice, they are normal
> GPRs. Generally they are treated as special-case scratch registers
> (along with R1).

Re: a modest proposal (apologies to J. Swift)

<sb2gio$rc9$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: cr88...@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: a modest proposal (apologies to J. Swift)
Date: Thu, 24 Jun 2021 12:46:47 -0500
Organization: A noiseless patient Spider
Lines: 127
Message-ID: <sb2gio$rc9$1@dont-email.me>
References: <samgjd$cbd$1@dont-email.me> <sao5ar$1cl7$1@gal.iecc.com>
<sapo7q$c9v$1@dont-email.me> <saqctc$2rso$1@gal.iecc.com>
<saqj72$mnk$1@dont-email.me>
<7a9e6be9-e406-467a-93b7-2b14f7d07deen@googlegroups.com>
<saqsq8$r75$1@dont-email.me>
<d705b13b-5b6f-4943-b454-d057a310fb8en@googlegroups.com>
<sat9lt$vvv$1@dont-email.me>
<ca127074-6978-44ae-9b09-8a304b921026n@googlegroups.com>
<sb22rk$n03$1@dont-email.me>
<8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 24 Jun 2021 17:49:12 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="7f8814ce75f81b6ccf0fe6bbc6aaa1b6";
logging-data="28041"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/Jzm5mJj1fBi75aiFK1zJM"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:/8sGQpmZClOYrwj1/Dh6Ls1J8jY=
In-Reply-To: <8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com>
Content-Language: en-US
 by: BGB - Thu, 24 Jun 2021 17:46 UTC

On 6/24/2021 11:50 AM, MitchAlsup wrote:
> On Thursday, June 24, 2021 at 8:55:02 AM UTC-5, BGB wrote:
>> (Got distracted, posting got delayed...)
>> On 6/22/2021 2:26 PM, MitchAlsup wrote:
>
>>> <
>>> I hope this is for better reasons than MIPS used in R2000 and R3000.....
>>> <
>>> R0 is the only register with HW defined use--and that is
>>> a) gets IP return address when a CALL is performed
>>> b) is an alias for IP when used as a base register
>>> c) is an alias for zero when used as an index register
>>> <
>>> R31 (SP) has a bit that changes how ENTER and EXIT work
>>> R30 (FP) has a bit that changes how ENTER and EXIT work.
> <
>> R0: May be stomped without warning if one tries to encode an operation
>> with an immediate, and the immediate form can't otherwise be encoded for
>> whatever reason.
> <
> I got rid of any need to stomp registers other than direct instructions.
> So, My 66000 does not stomp any registers, it can supply immediates
> of appropriate sizes.

The original design was built around the assumption of register stomping
(for both R0 and R1).

With the ISA as it exists now, there is a lot less of it, but it still
exists as a possibility. The stomp register was made mostly off-limits
mostly because a "not off-limits" stomp register was super annoying in
its predecessors (SH and BJX1).

I moved the stuff that would have originally used R0 and R1 in the SH
ABI to use R2 and R3 in the BJX2 ABI.

R1 ends up being used a lot as a "secondary stomp register" by the
compiler, typically when generating an instruction sequence for a 3AC op
will require a temporary register (similar for R16 and R17).

But, since these aren't really allowed as memory base or displacements,
some built-in ops (such as memory copies) need to use the other scratch
registers, which then blows the function's status as a "pure leaf" (so
it creates a stack frame and uses the old register allocator).

At present, the "pure leaf" status also excludes functions containing
floating point and vector types, but this may change later.

>>
>> Say, assuming Jumbo isn't allowed:
>> ADD R4, -9999, R6
>> Might be encoded as if it were:
>> MOV -9999, R0
>> ADD R4, R0, R6
> <
> You are using instructions to build and deliver constants into the instruction stream.

As noted, "assuming Jumbo isn't allowed".

If Jumbo is allowed, this case can be in-effect encoded as a single
instruction.

Jumbo isn't always allowed though:
It is still an optional feature as far as the ISA is concerned:
Lite profile cores are allowed to omit it (1).

*1: The Lite profile may differ in a few ways:
Scalar only;
16/32 bit ops only;
Jumbo is optional (*2);
FPU and MMU are optional;
No 128-bit operations;
Uses a smaller address space
32-bit physical, split into a 30-bit (RAM) and 28-bit region (MMIO).

This is mostly to make it viable to use on the XC7S25 and similar (or
potentially also various ECP5 devices or similar). Granted, in this area
it would face more competition against RISC-V or similar.

*2: There is a mechanism to allow Jumbo to be used, but internally it
functions as multiple logical 32-bit instructions with a decoding hack.
Pipeline registers are used to implement the jumbo-op decoding, with the
prefix itself decoding as a NOP.

Jumbo isn't generally used in many cases if the code is being generated
to be used by the wexifier, since jumbo encodings are currently treated
as immovable by the wexifier and can't currently be parallelized. Fixing
this would likely require redesigning the wexifier.

So, at the moment, the wexifier can only deal with 32-bit encodings, and
the example op would require a 64-bit encoding to be expressed directly.

Note that using a jumbo encoding here doesn't actually break anything,
but in this case, it turned out on-average it was better for performance
in this case to load the value into a register and then do an operation
on it separately, since this more often allows running one or both
operations in parallel with another instruction.

The exception is for cases where a constant load would itself be require
a jumbo encoding, in which case it is better to "bite the bullet" here,
so (Immed Bits):
0..9: Single Op (32-bit);
10..16: Better to split into two ops;
17+: Better to use a jumbo encoding.

>>
>> Also R0 and R1 are special cases for Load/Store encodings, ... So, can't
>> be used as normal registers, since if the operation tries to use them as
>> a base or index for a load, it invokes magic.
>>
>> Trying to branch to R0 or R1 may also invokes a few spacial cases:
>> Branching to R0 is assumed to be an escaped absolute branch;
>> Branching to R1 behaves as if it were an RTS using R1 as LR.
>>
>>
>> R16 and R17 formally had similar restrictions, and were initially
>> assumed unusable by the C ABI. However, in practice, they are normal
>> GPRs. Generally they are treated as special-case scratch registers
>> (along with R1).

Re: a modest proposal (apologies to J. Swift)

<a2f52a02-5c51-4e27-a26f-40ad1ddd08acn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ad4:54f2:: with SMTP id k18mr6787881qvx.32.1624560252471;
Thu, 24 Jun 2021 11:44:12 -0700 (PDT)
X-Received: by 2002:aca:57d3:: with SMTP id l202mr1117313oib.155.1624560252155;
Thu, 24 Jun 2021 11:44:12 -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: Thu, 24 Jun 2021 11:44:11 -0700 (PDT)
In-Reply-To: <sb2gio$rc9$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:ad16:43cb:bd70:119d;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:ad16:43cb:bd70:119d
References: <samgjd$cbd$1@dont-email.me> <sao5ar$1cl7$1@gal.iecc.com>
<sapo7q$c9v$1@dont-email.me> <saqctc$2rso$1@gal.iecc.com> <saqj72$mnk$1@dont-email.me>
<7a9e6be9-e406-467a-93b7-2b14f7d07deen@googlegroups.com> <saqsq8$r75$1@dont-email.me>
<d705b13b-5b6f-4943-b454-d057a310fb8en@googlegroups.com> <sat9lt$vvv$1@dont-email.me>
<ca127074-6978-44ae-9b09-8a304b921026n@googlegroups.com> <sb22rk$n03$1@dont-email.me>
<8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com> <sb2gio$rc9$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a2f52a02-5c51-4e27-a26f-40ad1ddd08acn@googlegroups.com>
Subject: Re: a modest proposal (apologies to J. Swift)
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Thu, 24 Jun 2021 18:44:12 +0000
Content-Type: text/plain; charset="UTF-8"
 by: MitchAlsup - Thu, 24 Jun 2021 18:44 UTC

On Thursday, June 24, 2021 at 12:49:14 PM UTC-5, BGB wrote:
> On 6/24/2021 11:50 AM, MitchAlsup wrote:
> > On Thursday, June 24, 2021 at 8:55:02 AM UTC-5, BGB wrote:
> >> (Got distracted, posting got delayed...)
> >> On 6/22/2021 2:26 PM, MitchAlsup wrote:
> >
> >>> <
> >>> I hope this is for better reasons than MIPS used in R2000 and R3000.....
> >>> <
> >>> R0 is the only register with HW defined use--and that is
> >>> a) gets IP return address when a CALL is performed
> >>> b) is an alias for IP when used as a base register
> >>> c) is an alias for zero when used as an index register
> >>> <
> >>> R31 (SP) has a bit that changes how ENTER and EXIT work
> >>> R30 (FP) has a bit that changes how ENTER and EXIT work.
> > <
> >> R0: May be stomped without warning if one tries to encode an operation
> >> with an immediate, and the immediate form can't otherwise be encoded for
> >> whatever reason.
> > <
> > I got rid of any need to stomp registers other than direct instructions.
> > So, My 66000 does not stomp any registers, it can supply immediates
> > of appropriate sizes.
> The original design was built around the assumption of register stomping
> (for both R0 and R1).
>
> With the ISA as it exists now, there is a lot less of it, but it still
> exists as a possibility. The stomp register was made mostly off-limits
> mostly because a "not off-limits" stomp register was super annoying in
> its predecessors (SH and BJX1).
>
> I moved the stuff that would have originally used R0 and R1 in the SH
> ABI to use R2 and R3 in the BJX2 ABI.
>
>
> R1 ends up being used a lot as a "secondary stomp register" by the
> compiler, typically when generating an instruction sequence for a 3AC op
> will require a temporary register (similar for R16 and R17).
>
> But, since these aren't really allowed as memory base or displacements,
> some built-in ops (such as memory copies) need to use the other scratch
> registers, which then blows the function's status as a "pure leaf" (so
> it creates a stack frame and uses the old register allocator).
>
> At present, the "pure leaf" status also excludes functions containing
> floating point and vector types, but this may change later.
> >>
> >> Say, assuming Jumbo isn't allowed:
> >> ADD R4, -9999, R6
> >> Might be encoded as if it were:
> >> MOV -9999, R0
> >> ADD R4, R0, R6
> > <
> > You are using instructions to build and deliver constants into the instruction stream.
> As noted, "assuming Jumbo isn't allowed".
>
> If Jumbo is allowed, this case can be in-effect encoded as a single
> instruction.
>
>
> Jumbo isn't always allowed though:
> It is still an optional feature as far as the ISA is concerned:
> Lite profile cores are allowed to omit it (1).
<
This is a choice bordering on the poor end of the spectrum of choices.
>
>
> *1: The Lite profile may differ in a few ways:
> Scalar only;
> 16/32 bit ops only;
> Jumbo is optional (*2);
<
Note: Even VVM is mandatory in My 66000--but VVM can be performed on
a 1-wide in-order machine with no extra circuits other than a VVM sequencer.
<
> FPU and MMU are optional;
<
Bad choice:: My 66000 does not even come out of reset with the MMU turned off !!
Even I/O is defined to pass through an I/O MMU.
<
I would not design an ISA these days, with available gate counts, that does not
have FP built in.
<
> No 128-bit operations;
<
All access to multi-precision stuff is through CARRY in My 66000. CARRY
is not optional, but it is only a couple of sequences on low end processors.
<
> Uses a smaller address space
> 32-bit physical, split into a 30-bit (RAM) and 28-bit region (MMIO).
<
I control this through the <non optional> MMU. The programmer sees
either a 32-bit virtual address space or a 64-bit virtual address space.
Either of which may see a 40-bit-to-64-bit physical address space.
>
> This is mostly to make it viable to use on the XC7S25 and similar (or
> potentially also various ECP5 devices or similar). Granted, in this area
> it would face more competition against RISC-V or similar.
>
I am aware of your implementation limitations.
>

Re: a modest proposal (apologies to J. Swift)

<sb2ukd$5k9$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: cr88...@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: a modest proposal (apologies to J. Swift)
Date: Thu, 24 Jun 2021 16:46:36 -0500
Organization: A noiseless patient Spider
Lines: 180
Message-ID: <sb2ukd$5k9$1@dont-email.me>
References: <samgjd$cbd$1@dont-email.me> <sao5ar$1cl7$1@gal.iecc.com>
<sapo7q$c9v$1@dont-email.me> <saqctc$2rso$1@gal.iecc.com>
<saqj72$mnk$1@dont-email.me>
<7a9e6be9-e406-467a-93b7-2b14f7d07deen@googlegroups.com>
<saqsq8$r75$1@dont-email.me>
<d705b13b-5b6f-4943-b454-d057a310fb8en@googlegroups.com>
<sat9lt$vvv$1@dont-email.me>
<ca127074-6978-44ae-9b09-8a304b921026n@googlegroups.com>
<sb22rk$n03$1@dont-email.me>
<8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com>
<sb2gio$rc9$1@dont-email.me>
<a2f52a02-5c51-4e27-a26f-40ad1ddd08acn@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 24 Jun 2021 21:49:01 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="7f8814ce75f81b6ccf0fe6bbc6aaa1b6";
logging-data="5769"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+Xs6PgexagyOLIXeNddFhH"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:O5wCUjH2pDfGjGUbpED5d1JOddo=
In-Reply-To: <a2f52a02-5c51-4e27-a26f-40ad1ddd08acn@googlegroups.com>
Content-Language: en-US
 by: BGB - Thu, 24 Jun 2021 21:46 UTC

On 6/24/2021 1:44 PM, MitchAlsup wrote:
> On Thursday, June 24, 2021 at 12:49:14 PM UTC-5, BGB wrote:
>> On 6/24/2021 11:50 AM, MitchAlsup wrote:
>>> On Thursday, June 24, 2021 at 8:55:02 AM UTC-5, BGB wrote:
>>>> (Got distracted, posting got delayed...)
>>>> On 6/22/2021 2:26 PM, MitchAlsup wrote:
>>>
>>>>> <
>>>>> I hope this is for better reasons than MIPS used in R2000 and R3000.....
>>>>> <
>>>>> R0 is the only register with HW defined use--and that is
>>>>> a) gets IP return address when a CALL is performed
>>>>> b) is an alias for IP when used as a base register
>>>>> c) is an alias for zero when used as an index register
>>>>> <
>>>>> R31 (SP) has a bit that changes how ENTER and EXIT work
>>>>> R30 (FP) has a bit that changes how ENTER and EXIT work.
>>> <
>>>> R0: May be stomped without warning if one tries to encode an operation
>>>> with an immediate, and the immediate form can't otherwise be encoded for
>>>> whatever reason.
>>> <
>>> I got rid of any need to stomp registers other than direct instructions.
>>> So, My 66000 does not stomp any registers, it can supply immediates
>>> of appropriate sizes.
>> The original design was built around the assumption of register stomping
>> (for both R0 and R1).
>>
>> With the ISA as it exists now, there is a lot less of it, but it still
>> exists as a possibility. The stomp register was made mostly off-limits
>> mostly because a "not off-limits" stomp register was super annoying in
>> its predecessors (SH and BJX1).
>>
>> I moved the stuff that would have originally used R0 and R1 in the SH
>> ABI to use R2 and R3 in the BJX2 ABI.
>>
>>
>> R1 ends up being used a lot as a "secondary stomp register" by the
>> compiler, typically when generating an instruction sequence for a 3AC op
>> will require a temporary register (similar for R16 and R17).
>>
>> But, since these aren't really allowed as memory base or displacements,
>> some built-in ops (such as memory copies) need to use the other scratch
>> registers, which then blows the function's status as a "pure leaf" (so
>> it creates a stack frame and uses the old register allocator).
>>
>> At present, the "pure leaf" status also excludes functions containing
>> floating point and vector types, but this may change later.
>>>>
>>>> Say, assuming Jumbo isn't allowed:
>>>> ADD R4, -9999, R6
>>>> Might be encoded as if it were:
>>>> MOV -9999, R0
>>>> ADD R4, R0, R6
>>> <
>>> You are using instructions to build and deliver constants into the instruction stream.
>> As noted, "assuming Jumbo isn't allowed".
>>
>> If Jumbo is allowed, this case can be in-effect encoded as a single
>> instruction.
>>
>>
>> Jumbo isn't always allowed though:
>> It is still an optional feature as far as the ISA is concerned:
>> Lite profile cores are allowed to omit it (1).
> <
> This is a choice bordering on the poor end of the spectrum of choices.
>>
>>
>> *1: The Lite profile may differ in a few ways:
>> Scalar only;
>> 16/32 bit ops only;
>> Jumbo is optional (*2);
> <
> Note: Even VVM is mandatory in My 66000--but VVM can be performed on
> a 1-wide in-order machine with no extra circuits other than a VVM sequencer.
> <
>> FPU and MMU are optional;
> <
> Bad choice:: My 66000 does not even come out of reset with the MMU turned off !!
> Even I/O is defined to pass through an I/O MMU.

The FPU and MMU are required for the Full profile, but not for the Lite
profile.

The Lite profile is intended more for use as a microcontroller, and
these profiles are not required to be binary compatible.

Granted, potentially a MMU could stretch KB of RAM a little further, if
one is implementing virtual memory onto an SDcard or similar. Though,
even 4K pages are a pretty coarse granularity when the RAM is in KB
territory.

Though it could almost make sense in this case to try devising some sort
of "Use SDcard like non-volatile RAM" mechanism (or externally wire up a
QSPI SRAM module or similar).

An FPU is kinda expensive, and not really needed in a microcontroller.

> <
> I would not design an ISA these days, with available gate counts, that does not
> have FP built in.
> <

The FPU exists in the Full profile, just it is a bit of a stretch on the
smaller FPGAs.

Similarly, the MMU adds a lot of cost for a small scalar core, and one
might want to, say, try to keep their core under 10k LUTs so that they
can have some space left for IO devices and similar.

>> No 128-bit operations;
> <
> All access to multi-precision stuff is through CARRY in My 66000. CARRY
> is not optional, but it is only a couple of sequences on low end processors.
> <

This mostly covers MOV.X and 128-bit SIMD, which as-implemented require
multiple lanes. On a Lite core it needs to be broken up into MOV.Q ops.

>> Uses a smaller address space
>> 32-bit physical, split into a 30-bit (RAM) and 28-bit region (MMIO).
> <
> I control this through the <non optional> MMU. The programmer sees
> either a 32-bit virtual address space or a 64-bit virtual address space.
> Either of which may see a 40-bit-to-64-bit physical address space.

Currently, it is 32-bit in Lite, 48 bit in Full.

The current physical space is a 30-bit RAM space:
0000_0000 .. 3FFF_FFFF
And, 28-bit MMIO space:
F000_0000 .. FFFF_FFFF

Could support a bigger physical space, but none of the FPGA boards I
have, have enough RAM to make this worthwhile.

For now, RAM generally goes into the area:
0100_0000 .. 07FF_FFFF

On the CMod-S7 I have, it puts its RAM space into:
0100_0000 .. 0101_FFFF

In this case, the L2 cache functions as RAM, because there is no
external RAM on this board.

Another (slightly more expensive) version of the CMod board had a 512K
RAM module though, but the board I got didn't have any RAM.

>>
>> This is mostly to make it viable to use on the XC7S25 and similar (or
>> potentially also various ECP5 devices or similar). Granted, in this area
>> it would face more competition against RISC-V or similar.
>>
> I am aware of your implementation limitations.

As can be noted though, I am mostly targeting the XC7A100...

But, the XC7S25 is more limited than the XC7A100, as are most of the
ECP5 chips.

The ECP5's can have a decent number of LUTs, but are a little more
limited in that it is built around LUT4's.

There is also ICE40, but there is little hope of fitting a BJX2 core
onto an ICE40. For the most part, people are doing 8/16 designs on ICE40
though.

Though, one can argue though that even on the lower-end, the FPGAs still
aren't particularly cost-competitive with a Teensy or Pi Pico or
similar... But, can have more powerful IO.

Re: a modest proposal (apologies to J. Swift)

<662f1619-a5e0-4174-a728-2c795fdbfe35n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a0c:eb0c:: with SMTP id j12mr10144822qvp.3.1624614941952; Fri, 25 Jun 2021 02:55:41 -0700 (PDT)
X-Received: by 2002:a05:6830:1bf7:: with SMTP id k23mr9331016otb.206.1624614941732; Fri, 25 Jun 2021 02:55:41 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!tr3.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: Fri, 25 Jun 2021 02:55:41 -0700 (PDT)
In-Reply-To: <sb2ukd$5k9$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=87.68.182.191; posting-account=ow8VOgoAAAAfiGNvoH__Y4ADRwQF1hZW
NNTP-Posting-Host: 87.68.182.191
References: <samgjd$cbd$1@dont-email.me> <sao5ar$1cl7$1@gal.iecc.com> <sapo7q$c9v$1@dont-email.me> <saqctc$2rso$1@gal.iecc.com> <saqj72$mnk$1@dont-email.me> <7a9e6be9-e406-467a-93b7-2b14f7d07deen@googlegroups.com> <saqsq8$r75$1@dont-email.me> <d705b13b-5b6f-4943-b454-d057a310fb8en@googlegroups.com> <sat9lt$vvv$1@dont-email.me> <ca127074-6978-44ae-9b09-8a304b921026n@googlegroups.com> <sb22rk$n03$1@dont-email.me> <8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com> <sb2gio$rc9$1@dont-email.me> <a2f52a02-5c51-4e27-a26f-40ad1ddd08acn@googlegroups.com> <sb2ukd$5k9$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <662f1619-a5e0-4174-a728-2c795fdbfe35n@googlegroups.com>
Subject: Re: a modest proposal (apologies to J. Swift)
From: already5...@yahoo.com (Michael S)
Injection-Date: Fri, 25 Jun 2021 09:55:41 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 193
 by: Michael S - Fri, 25 Jun 2021 09:55 UTC

On Friday, June 25, 2021 at 12:49:03 AM UTC+3, BGB wrote:
> On 6/24/2021 1:44 PM, MitchAlsup wrote:
> > On Thursday, June 24, 2021 at 12:49:14 PM UTC-5, BGB wrote:
> >> On 6/24/2021 11:50 AM, MitchAlsup wrote:
> >>> On Thursday, June 24, 2021 at 8:55:02 AM UTC-5, BGB wrote:
> >>>> (Got distracted, posting got delayed...)
> >>>> On 6/22/2021 2:26 PM, MitchAlsup wrote:
> >>>
> >>>>> <
> >>>>> I hope this is for better reasons than MIPS used in R2000 and R3000.....
> >>>>> <
> >>>>> R0 is the only register with HW defined use--and that is
> >>>>> a) gets IP return address when a CALL is performed
> >>>>> b) is an alias for IP when used as a base register
> >>>>> c) is an alias for zero when used as an index register
> >>>>> <
> >>>>> R31 (SP) has a bit that changes how ENTER and EXIT work
> >>>>> R30 (FP) has a bit that changes how ENTER and EXIT work.
> >>> <
> >>>> R0: May be stomped without warning if one tries to encode an operation
> >>>> with an immediate, and the immediate form can't otherwise be encoded for
> >>>> whatever reason.
> >>> <
> >>> I got rid of any need to stomp registers other than direct instructions.
> >>> So, My 66000 does not stomp any registers, it can supply immediates
> >>> of appropriate sizes.
> >> The original design was built around the assumption of register stomping
> >> (for both R0 and R1).
> >>
> >> With the ISA as it exists now, there is a lot less of it, but it still
> >> exists as a possibility. The stomp register was made mostly off-limits
> >> mostly because a "not off-limits" stomp register was super annoying in
> >> its predecessors (SH and BJX1).
> >>
> >> I moved the stuff that would have originally used R0 and R1 in the SH
> >> ABI to use R2 and R3 in the BJX2 ABI.
> >>
> >>
> >> R1 ends up being used a lot as a "secondary stomp register" by the
> >> compiler, typically when generating an instruction sequence for a 3AC op
> >> will require a temporary register (similar for R16 and R17).
> >>
> >> But, since these aren't really allowed as memory base or displacements,
> >> some built-in ops (such as memory copies) need to use the other scratch
> >> registers, which then blows the function's status as a "pure leaf" (so
> >> it creates a stack frame and uses the old register allocator).
> >>
> >> At present, the "pure leaf" status also excludes functions containing
> >> floating point and vector types, but this may change later.
> >>>>
> >>>> Say, assuming Jumbo isn't allowed:
> >>>> ADD R4, -9999, R6
> >>>> Might be encoded as if it were:
> >>>> MOV -9999, R0
> >>>> ADD R4, R0, R6
> >>> <
> >>> You are using instructions to build and deliver constants into the instruction stream.
> >> As noted, "assuming Jumbo isn't allowed".
> >>
> >> If Jumbo is allowed, this case can be in-effect encoded as a single
> >> instruction.
> >>
> >>
> >> Jumbo isn't always allowed though:
> >> It is still an optional feature as far as the ISA is concerned:
> >> Lite profile cores are allowed to omit it (1).
> > <
> > This is a choice bordering on the poor end of the spectrum of choices.
> >>
> >>
> >> *1: The Lite profile may differ in a few ways:
> >> Scalar only;
> >> 16/32 bit ops only;
> >> Jumbo is optional (*2);
> > <
> > Note: Even VVM is mandatory in My 66000--but VVM can be performed on
> > a 1-wide in-order machine with no extra circuits other than a VVM sequencer.
> > <
> >> FPU and MMU are optional;
> > <
> > Bad choice:: My 66000 does not even come out of reset with the MMU turned off !!
> > Even I/O is defined to pass through an I/O MMU.
> The FPU and MMU are required for the Full profile, but not for the Lite
> profile.
>
> The Lite profile is intended more for use as a microcontroller, and
> these profiles are not required to be binary compatible.
>
>
> Granted, potentially a MMU could stretch KB of RAM a little further, if
> one is implementing virtual memory onto an SDcard or similar. Though,
> even 4K pages are a pretty coarse granularity when the RAM is in KB
> territory.
>
> Though it could almost make sense in this case to try devising some sort
> of "Use SDcard like non-volatile RAM" mechanism (or externally wire up a
> QSPI SRAM module or similar).
>
>
> An FPU is kinda expensive, and not really needed in a microcontroller.
> > <
> > I would not design an ISA these days, with available gate counts, that does not
> > have FP built in.
> > <
> The FPU exists in the Full profile, just it is a bit of a stretch on the
> smaller FPGAs.
>
> Similarly, the MMU adds a lot of cost for a small scalar core, and one
> might want to, say, try to keep their core under 10k LUTs so that they
> can have some space left for IO devices and similar.
> >> No 128-bit operations;
> > <
> > All access to multi-precision stuff is through CARRY in My 66000. CARRY
> > is not optional, but it is only a couple of sequences on low end processors.
> > <
> This mostly covers MOV.X and 128-bit SIMD, which as-implemented require
> multiple lanes. On a Lite core it needs to be broken up into MOV.Q ops.
> >> Uses a smaller address space
> >> 32-bit physical, split into a 30-bit (RAM) and 28-bit region (MMIO).
> > <
> > I control this through the <non optional> MMU. The programmer sees
> > either a 32-bit virtual address space or a 64-bit virtual address space.
> > Either of which may see a 40-bit-to-64-bit physical address space.
> Currently, it is 32-bit in Lite, 48 bit in Full.
>
> The current physical space is a 30-bit RAM space:
> 0000_0000 .. 3FFF_FFFF
> And, 28-bit MMIO space:
> F000_0000 .. FFFF_FFFF
>
> Could support a bigger physical space, but none of the FPGA boards I
> have, have enough RAM to make this worthwhile.
>
> For now, RAM generally goes into the area:
> 0100_0000 .. 07FF_FFFF
>
>
> On the CMod-S7 I have, it puts its RAM space into:
> 0100_0000 .. 0101_FFFF
>
> In this case, the L2 cache functions as RAM, because there is no
> external RAM on this board.
>
> Another (slightly more expensive) version of the CMod board had a 512K
> RAM module though, but the board I got didn't have any RAM.
> >>
> >> This is mostly to make it viable to use on the XC7S25 and similar (or
> >> potentially also various ECP5 devices or similar). Granted, in this area
> >> it would face more competition against RISC-V or similar.
> >>
> > I am aware of your implementation limitations.
> As can be noted though, I am mostly targeting the XC7A100...
>
>
> But, the XC7S25 is more limited than the XC7A100, as are most of the
> ECP5 chips.
>
> The ECP5's can have a decent number of LUTs, but are a little more
> limited in that it is built around LUT4's.
>
> There is also ICE40, but there is little hope of fitting a BJX2 core
> onto an ICE40. For the most part, people are doing 8/16 designs on ICE40
> though.
>

I have no idea who are "people" you are talking about. Would think that most of them are enthusiasts rather than pros.

Me, being a pro, I very much prefer 32-bit soft cores, supported by standard compilers (in practice it means gcc).
For convenience of reliable tools I am fully willing to a cost of pretty low MIPS/MHz, which would be typical for
resource-constrained implementation of such core.
In particular, I often use Nios2e core that gives ~0.15 MIPS/MHz, fits in ~600 4-input LUTs + 2 Embedded memory banks
and hits pretty high frequencies. I would guess, that at your XC7A100 it will be close to 200MHz.
core like that fits with ease within iCE5LP4K and for some less logic-intensive apps can be useful even in iCE5LP2K.

Of course, Nios2 is property of Altera/Intel and (IANAAL) most likely can't be legally used on Lattice devices.
But it's extremly similar to fixed-width variant of RV32 which is certainly legal to use everywhere.


Click here to read the complete article
Re: a modest proposal (apologies to J. Swift)

<sb532h$h9b$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: cr88...@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: a modest proposal (apologies to J. Swift)
Date: Fri, 25 Jun 2021 12:14:40 -0500
Organization: A noiseless patient Spider
Lines: 358
Message-ID: <sb532h$h9b$1@dont-email.me>
References: <samgjd$cbd$1@dont-email.me> <sao5ar$1cl7$1@gal.iecc.com>
<sapo7q$c9v$1@dont-email.me> <saqctc$2rso$1@gal.iecc.com>
<saqj72$mnk$1@dont-email.me>
<7a9e6be9-e406-467a-93b7-2b14f7d07deen@googlegroups.com>
<saqsq8$r75$1@dont-email.me>
<d705b13b-5b6f-4943-b454-d057a310fb8en@googlegroups.com>
<sat9lt$vvv$1@dont-email.me>
<ca127074-6978-44ae-9b09-8a304b921026n@googlegroups.com>
<sb22rk$n03$1@dont-email.me>
<8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com>
<sb2gio$rc9$1@dont-email.me>
<a2f52a02-5c51-4e27-a26f-40ad1ddd08acn@googlegroups.com>
<sb2ukd$5k9$1@dont-email.me>
<662f1619-a5e0-4174-a728-2c795fdbfe35n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 25 Jun 2021 17:17:06 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="626d11ff145bb4e2c22220307f2daac8";
logging-data="17707"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19sdlf3LYmkwAO7JuDKkEWp"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:nMe9T4V8Dc4xw6e7/vDpLgsl7Oo=
In-Reply-To: <662f1619-a5e0-4174-a728-2c795fdbfe35n@googlegroups.com>
Content-Language: en-US
 by: BGB - Fri, 25 Jun 2021 17:14 UTC

On 6/25/2021 4:55 AM, Michael S wrote:
> On Friday, June 25, 2021 at 12:49:03 AM UTC+3, BGB wrote:
>> On 6/24/2021 1:44 PM, MitchAlsup wrote:
>>> On Thursday, June 24, 2021 at 12:49:14 PM UTC-5, BGB wrote:
>>>> On 6/24/2021 11:50 AM, MitchAlsup wrote:
>>>>> On Thursday, June 24, 2021 at 8:55:02 AM UTC-5, BGB wrote:
>>>>>> (Got distracted, posting got delayed...)
>>>>>> On 6/22/2021 2:26 PM, MitchAlsup wrote:
>>>>>
>>>>>>> <
>>>>>>> I hope this is for better reasons than MIPS used in R2000 and R3000.....
>>>>>>> <
>>>>>>> R0 is the only register with HW defined use--and that is
>>>>>>> a) gets IP return address when a CALL is performed
>>>>>>> b) is an alias for IP when used as a base register
>>>>>>> c) is an alias for zero when used as an index register
>>>>>>> <
>>>>>>> R31 (SP) has a bit that changes how ENTER and EXIT work
>>>>>>> R30 (FP) has a bit that changes how ENTER and EXIT work.
>>>>> <
>>>>>> R0: May be stomped without warning if one tries to encode an operation
>>>>>> with an immediate, and the immediate form can't otherwise be encoded for
>>>>>> whatever reason.
>>>>> <
>>>>> I got rid of any need to stomp registers other than direct instructions.
>>>>> So, My 66000 does not stomp any registers, it can supply immediates
>>>>> of appropriate sizes.
>>>> The original design was built around the assumption of register stomping
>>>> (for both R0 and R1).
>>>>
>>>> With the ISA as it exists now, there is a lot less of it, but it still
>>>> exists as a possibility. The stomp register was made mostly off-limits
>>>> mostly because a "not off-limits" stomp register was super annoying in
>>>> its predecessors (SH and BJX1).
>>>>
>>>> I moved the stuff that would have originally used R0 and R1 in the SH
>>>> ABI to use R2 and R3 in the BJX2 ABI.
>>>>
>>>>
>>>> R1 ends up being used a lot as a "secondary stomp register" by the
>>>> compiler, typically when generating an instruction sequence for a 3AC op
>>>> will require a temporary register (similar for R16 and R17).
>>>>
>>>> But, since these aren't really allowed as memory base or displacements,
>>>> some built-in ops (such as memory copies) need to use the other scratch
>>>> registers, which then blows the function's status as a "pure leaf" (so
>>>> it creates a stack frame and uses the old register allocator).
>>>>
>>>> At present, the "pure leaf" status also excludes functions containing
>>>> floating point and vector types, but this may change later.
>>>>>>
>>>>>> Say, assuming Jumbo isn't allowed:
>>>>>> ADD R4, -9999, R6
>>>>>> Might be encoded as if it were:
>>>>>> MOV -9999, R0
>>>>>> ADD R4, R0, R6
>>>>> <
>>>>> You are using instructions to build and deliver constants into the instruction stream.
>>>> As noted, "assuming Jumbo isn't allowed".
>>>>
>>>> If Jumbo is allowed, this case can be in-effect encoded as a single
>>>> instruction.
>>>>
>>>>
>>>> Jumbo isn't always allowed though:
>>>> It is still an optional feature as far as the ISA is concerned:
>>>> Lite profile cores are allowed to omit it (1).
>>> <
>>> This is a choice bordering on the poor end of the spectrum of choices.
>>>>
>>>>
>>>> *1: The Lite profile may differ in a few ways:
>>>> Scalar only;
>>>> 16/32 bit ops only;
>>>> Jumbo is optional (*2);
>>> <
>>> Note: Even VVM is mandatory in My 66000--but VVM can be performed on
>>> a 1-wide in-order machine with no extra circuits other than a VVM sequencer.
>>> <
>>>> FPU and MMU are optional;
>>> <
>>> Bad choice:: My 66000 does not even come out of reset with the MMU turned off !!
>>> Even I/O is defined to pass through an I/O MMU.
>> The FPU and MMU are required for the Full profile, but not for the Lite
>> profile.
>>
>> The Lite profile is intended more for use as a microcontroller, and
>> these profiles are not required to be binary compatible.
>>
>>
>> Granted, potentially a MMU could stretch KB of RAM a little further, if
>> one is implementing virtual memory onto an SDcard or similar. Though,
>> even 4K pages are a pretty coarse granularity when the RAM is in KB
>> territory.
>>
>> Though it could almost make sense in this case to try devising some sort
>> of "Use SDcard like non-volatile RAM" mechanism (or externally wire up a
>> QSPI SRAM module or similar).
>>
>>
>> An FPU is kinda expensive, and not really needed in a microcontroller.
>>> <
>>> I would not design an ISA these days, with available gate counts, that does not
>>> have FP built in.
>>> <
>> The FPU exists in the Full profile, just it is a bit of a stretch on the
>> smaller FPGAs.
>>
>> Similarly, the MMU adds a lot of cost for a small scalar core, and one
>> might want to, say, try to keep their core under 10k LUTs so that they
>> can have some space left for IO devices and similar.
>>>> No 128-bit operations;
>>> <
>>> All access to multi-precision stuff is through CARRY in My 66000. CARRY
>>> is not optional, but it is only a couple of sequences on low end processors.
>>> <
>> This mostly covers MOV.X and 128-bit SIMD, which as-implemented require
>> multiple lanes. On a Lite core it needs to be broken up into MOV.Q ops.
>>>> Uses a smaller address space
>>>> 32-bit physical, split into a 30-bit (RAM) and 28-bit region (MMIO).
>>> <
>>> I control this through the <non optional> MMU. The programmer sees
>>> either a 32-bit virtual address space or a 64-bit virtual address space.
>>> Either of which may see a 40-bit-to-64-bit physical address space.
>> Currently, it is 32-bit in Lite, 48 bit in Full.
>>
>> The current physical space is a 30-bit RAM space:
>> 0000_0000 .. 3FFF_FFFF
>> And, 28-bit MMIO space:
>> F000_0000 .. FFFF_FFFF
>>
>> Could support a bigger physical space, but none of the FPGA boards I
>> have, have enough RAM to make this worthwhile.
>>
>> For now, RAM generally goes into the area:
>> 0100_0000 .. 07FF_FFFF
>>
>>
>> On the CMod-S7 I have, it puts its RAM space into:
>> 0100_0000 .. 0101_FFFF
>>
>> In this case, the L2 cache functions as RAM, because there is no
>> external RAM on this board.
>>
>> Another (slightly more expensive) version of the CMod board had a 512K
>> RAM module though, but the board I got didn't have any RAM.
>>>>
>>>> This is mostly to make it viable to use on the XC7S25 and similar (or
>>>> potentially also various ECP5 devices or similar). Granted, in this area
>>>> it would face more competition against RISC-V or similar.
>>>>
>>> I am aware of your implementation limitations.
>> As can be noted though, I am mostly targeting the XC7A100...
>>
>>
>> But, the XC7S25 is more limited than the XC7A100, as are most of the
>> ECP5 chips.
>>
>> The ECP5's can have a decent number of LUTs, but are a little more
>> limited in that it is built around LUT4's.
>>
>> There is also ICE40, but there is little hope of fitting a BJX2 core
>> onto an ICE40. For the most part, people are doing 8/16 designs on ICE40
>> though.
>>
>
> I have no idea who are "people" you are talking about. Would think that most of them are enthusiasts rather than pros.
>

Possibly.

I noted this when doing web searches on the subject in the past.

Things like 6502 and 8080 / Z80 clones and similar seem to be popular, ...

There are a few 32 bit cores as well though, ...

Granted, even for non FPGA stuff, one semi-popular project (the
"Commander X16"), initially went with a 65C816 (and has since apparently
gone to the 65C02).


Click here to read the complete article
Re: a modest proposal (apologies to J. Swift)

<2021Jun25.205635@mips.complang.tuwien.ac.at>

  copy mid

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

  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: a modest proposal (apologies to J. Swift)
Date: Fri, 25 Jun 2021 18:56:35 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 27
Message-ID: <2021Jun25.205635@mips.complang.tuwien.ac.at>
References: <samgjd$cbd$1@dont-email.me> <saqsq8$r75$1@dont-email.me> <d705b13b-5b6f-4943-b454-d057a310fb8en@googlegroups.com> <sat9lt$vvv$1@dont-email.me> <ca127074-6978-44ae-9b09-8a304b921026n@googlegroups.com> <sb22rk$n03$1@dont-email.me> <8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com> <sb2gio$rc9$1@dont-email.me> <a2f52a02-5c51-4e27-a26f-40ad1ddd08acn@googlegroups.com> <sb2ukd$5k9$1@dont-email.me> <662f1619-a5e0-4174-a728-2c795fdbfe35n@googlegroups.com> <sb532h$h9b$1@dont-email.me>
Injection-Info: reader02.eternal-september.org; posting-host="fb59874601edd51e2661253bc6047875";
logging-data="25217"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+Nng7rmnjtU3ZvuBYIc7MI"
Cancel-Lock: sha1:Ml7FISypLczfEI7DMhGmD/k75Lk=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Fri, 25 Jun 2021 18:56 UTC

BGB <cr88192@gmail.com> writes:
>Likely, A64 could be a little better here, but is hindered mostly by a
>general lack of usable 64-bit builds of Raspbian and similar.

[raspi4:~:72386] cat /proc/cpuinfo
....
Hardware : BCM2835
Revision : d03114
Serial : 10000000090946d0
Model : Raspberry Pi 4 Model B Rev 1.4
[raspi4:~:72387] cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
[raspi4:~:72388] uname -m
aarch64

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

Re: a modest proposal (apologies to J. Swift)

<sb5ab0$sg4$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: cr88...@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: a modest proposal (apologies to J. Swift)
Date: Fri, 25 Jun 2021 14:18:39 -0500
Organization: A noiseless patient Spider
Lines: 33
Message-ID: <sb5ab0$sg4$1@dont-email.me>
References: <samgjd$cbd$1@dont-email.me> <saqsq8$r75$1@dont-email.me>
<d705b13b-5b6f-4943-b454-d057a310fb8en@googlegroups.com>
<sat9lt$vvv$1@dont-email.me>
<ca127074-6978-44ae-9b09-8a304b921026n@googlegroups.com>
<sb22rk$n03$1@dont-email.me>
<8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com>
<sb2gio$rc9$1@dont-email.me>
<a2f52a02-5c51-4e27-a26f-40ad1ddd08acn@googlegroups.com>
<sb2ukd$5k9$1@dont-email.me>
<662f1619-a5e0-4174-a728-2c795fdbfe35n@googlegroups.com>
<sb532h$h9b$1@dont-email.me> <2021Jun25.205635@mips.complang.tuwien.ac.at>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 25 Jun 2021 19:21:04 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="626d11ff145bb4e2c22220307f2daac8";
logging-data="29188"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+r3vH05c3XDFc5iHSVjMNf"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:lA8W1gCXCRrC1RFnvd4t5s6amPc=
In-Reply-To: <2021Jun25.205635@mips.complang.tuwien.ac.at>
Content-Language: en-US
 by: BGB - Fri, 25 Jun 2021 19:18 UTC

On 6/25/2021 1:56 PM, Anton Ertl wrote:
> BGB <cr88192@gmail.com> writes:
>> Likely, A64 could be a little better here, but is hindered mostly by a
>> general lack of usable 64-bit builds of Raspbian and similar.
>
> [raspi4:~:72386] cat /proc/cpuinfo
> ...
> Hardware : BCM2835
> Revision : d03114
> Serial : 10000000090946d0
> Model : Raspberry Pi 4 Model B Rev 1.4
> [raspi4:~:72387] cat /etc/os-release
> PRETTY_NAME="Debian GNU/Linux 10 (buster)"
> NAME="Debian GNU/Linux"
> VERSION_ID="10"
> VERSION="10 (buster)"
> VERSION_CODENAME=buster
> ID=debian
> HOME_URL="https://www.debian.org/"
> SUPPORT_URL="https://www.debian.org/support"
> BUG_REPORT_URL="https://bugs.debian.org/"
> [raspi4:~:72388] uname -m
> aarch64
>

So, you are saying to run a A64 Debian build rather than dealing with an
incomplete/broken version of 64-bit Raspbian, or dealing with the
limitations of 32-bit Raspbian?...

> - anton
>

Re: a modest proposal (apologies to J. Swift)

<e554ac1b-deea-42e1-9058-5dcc3a0a4506n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ae9:c30f:: with SMTP id n15mr12790187qkg.71.1624652999257;
Fri, 25 Jun 2021 13:29:59 -0700 (PDT)
X-Received: by 2002:a9d:7f91:: with SMTP id t17mr11123817otp.22.1624652999057;
Fri, 25 Jun 2021 13:29:59 -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, 25 Jun 2021 13:29:58 -0700 (PDT)
In-Reply-To: <662f1619-a5e0-4174-a728-2c795fdbfe35n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:a0d0:9f90:9d33:b01:9111:7eb3;
posting-account=AoizIQoAAADa7kQDpB0DAj2jwddxXUgl
NNTP-Posting-Host: 2600:1700:a0d0:9f90:9d33:b01:9111:7eb3
References: <samgjd$cbd$1@dont-email.me> <sao5ar$1cl7$1@gal.iecc.com>
<sapo7q$c9v$1@dont-email.me> <saqctc$2rso$1@gal.iecc.com> <saqj72$mnk$1@dont-email.me>
<7a9e6be9-e406-467a-93b7-2b14f7d07deen@googlegroups.com> <saqsq8$r75$1@dont-email.me>
<d705b13b-5b6f-4943-b454-d057a310fb8en@googlegroups.com> <sat9lt$vvv$1@dont-email.me>
<ca127074-6978-44ae-9b09-8a304b921026n@googlegroups.com> <sb22rk$n03$1@dont-email.me>
<8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com> <sb2gio$rc9$1@dont-email.me>
<a2f52a02-5c51-4e27-a26f-40ad1ddd08acn@googlegroups.com> <sb2ukd$5k9$1@dont-email.me>
<662f1619-a5e0-4174-a728-2c795fdbfe35n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e554ac1b-deea-42e1-9058-5dcc3a0a4506n@googlegroups.com>
Subject: Re: a modest proposal (apologies to J. Swift)
From: jim.brak...@ieee.org (JimBrakefield)
Injection-Date: Fri, 25 Jun 2021 20:29:59 +0000
Content-Type: text/plain; charset="UTF-8"
 by: JimBrakefield - Fri, 25 Jun 2021 20:29 UTC

On Friday, June 25, 2021 at 4:55:43 AM UTC-5, Michael S wrote:
> On Friday, June 25, 2021 at 12:49:03 AM UTC+3, BGB wrote:
> > On 6/24/2021 1:44 PM, MitchAlsup wrote:
> > > On Thursday, June 24, 2021 at 12:49:14 PM UTC-5, BGB wrote:
> > >> On 6/24/2021 11:50 AM, MitchAlsup wrote:
> > >>> On Thursday, June 24, 2021 at 8:55:02 AM UTC-5, BGB wrote:
> > >>>> (Got distracted, posting got delayed...)
> > >>>> On 6/22/2021 2:26 PM, MitchAlsup wrote:
> > >>>
> > >>>>> <
> > >>>>> I hope this is for better reasons than MIPS used in R2000 and R3000.....
> > >>>>> <
> > >>>>> R0 is the only register with HW defined use--and that is
> > >>>>> a) gets IP return address when a CALL is performed
> > >>>>> b) is an alias for IP when used as a base register
> > >>>>> c) is an alias for zero when used as an index register
> > >>>>> <
> > >>>>> R31 (SP) has a bit that changes how ENTER and EXIT work
> > >>>>> R30 (FP) has a bit that changes how ENTER and EXIT work.
> > >>> <
> > >>>> R0: May be stomped without warning if one tries to encode an operation
> > >>>> with an immediate, and the immediate form can't otherwise be encoded for
> > >>>> whatever reason.
> > >>> <
> > >>> I got rid of any need to stomp registers other than direct instructions.
> > >>> So, My 66000 does not stomp any registers, it can supply immediates
> > >>> of appropriate sizes.
> > >> The original design was built around the assumption of register stomping
> > >> (for both R0 and R1).
> > >>
> > >> With the ISA as it exists now, there is a lot less of it, but it still
> > >> exists as a possibility. The stomp register was made mostly off-limits
> > >> mostly because a "not off-limits" stomp register was super annoying in
> > >> its predecessors (SH and BJX1).
> > >>
> > >> I moved the stuff that would have originally used R0 and R1 in the SH
> > >> ABI to use R2 and R3 in the BJX2 ABI.
> > >>
> > >>
> > >> R1 ends up being used a lot as a "secondary stomp register" by the
> > >> compiler, typically when generating an instruction sequence for a 3AC op
> > >> will require a temporary register (similar for R16 and R17).
> > >>
> > >> But, since these aren't really allowed as memory base or displacements,
> > >> some built-in ops (such as memory copies) need to use the other scratch
> > >> registers, which then blows the function's status as a "pure leaf" (so
> > >> it creates a stack frame and uses the old register allocator).
> > >>
> > >> At present, the "pure leaf" status also excludes functions containing
> > >> floating point and vector types, but this may change later.
> > >>>>
> > >>>> Say, assuming Jumbo isn't allowed:
> > >>>> ADD R4, -9999, R6
> > >>>> Might be encoded as if it were:
> > >>>> MOV -9999, R0
> > >>>> ADD R4, R0, R6
> > >>> <
> > >>> You are using instructions to build and deliver constants into the instruction stream.
> > >> As noted, "assuming Jumbo isn't allowed".
> > >>
> > >> If Jumbo is allowed, this case can be in-effect encoded as a single
> > >> instruction.
> > >>
> > >>
> > >> Jumbo isn't always allowed though:
> > >> It is still an optional feature as far as the ISA is concerned:
> > >> Lite profile cores are allowed to omit it (1).
> > > <
> > > This is a choice bordering on the poor end of the spectrum of choices.
> > >>
> > >>
> > >> *1: The Lite profile may differ in a few ways:
> > >> Scalar only;
> > >> 16/32 bit ops only;
> > >> Jumbo is optional (*2);
> > > <
> > > Note: Even VVM is mandatory in My 66000--but VVM can be performed on
> > > a 1-wide in-order machine with no extra circuits other than a VVM sequencer.
> > > <
> > >> FPU and MMU are optional;
> > > <
> > > Bad choice:: My 66000 does not even come out of reset with the MMU turned off !!
> > > Even I/O is defined to pass through an I/O MMU.
> > The FPU and MMU are required for the Full profile, but not for the Lite
> > profile.
> >
> > The Lite profile is intended more for use as a microcontroller, and
> > these profiles are not required to be binary compatible.
> >
> >
> > Granted, potentially a MMU could stretch KB of RAM a little further, if
> > one is implementing virtual memory onto an SDcard or similar. Though,
> > even 4K pages are a pretty coarse granularity when the RAM is in KB
> > territory.
> >
> > Though it could almost make sense in this case to try devising some sort
> > of "Use SDcard like non-volatile RAM" mechanism (or externally wire up a
> > QSPI SRAM module or similar).
> >
> >
> > An FPU is kinda expensive, and not really needed in a microcontroller.
> > > <
> > > I would not design an ISA these days, with available gate counts, that does not
> > > have FP built in.
> > > <
> > The FPU exists in the Full profile, just it is a bit of a stretch on the
> > smaller FPGAs.
> >
> > Similarly, the MMU adds a lot of cost for a small scalar core, and one
> > might want to, say, try to keep their core under 10k LUTs so that they
> > can have some space left for IO devices and similar.
> > >> No 128-bit operations;
> > > <
> > > All access to multi-precision stuff is through CARRY in My 66000. CARRY
> > > is not optional, but it is only a couple of sequences on low end processors.
> > > <
> > This mostly covers MOV.X and 128-bit SIMD, which as-implemented require
> > multiple lanes. On a Lite core it needs to be broken up into MOV.Q ops.
> > >> Uses a smaller address space
> > >> 32-bit physical, split into a 30-bit (RAM) and 28-bit region (MMIO).
> > > <
> > > I control this through the <non optional> MMU. The programmer sees
> > > either a 32-bit virtual address space or a 64-bit virtual address space.
> > > Either of which may see a 40-bit-to-64-bit physical address space.
> > Currently, it is 32-bit in Lite, 48 bit in Full.
> >
> > The current physical space is a 30-bit RAM space:
> > 0000_0000 .. 3FFF_FFFF
> > And, 28-bit MMIO space:
> > F000_0000 .. FFFF_FFFF
> >
> > Could support a bigger physical space, but none of the FPGA boards I
> > have, have enough RAM to make this worthwhile.
> >
> > For now, RAM generally goes into the area:
> > 0100_0000 .. 07FF_FFFF
> >
> >
> > On the CMod-S7 I have, it puts its RAM space into:
> > 0100_0000 .. 0101_FFFF
> >
> > In this case, the L2 cache functions as RAM, because there is no
> > external RAM on this board.
> >
> > Another (slightly more expensive) version of the CMod board had a 512K
> > RAM module though, but the board I got didn't have any RAM.
> > >>
> > >> This is mostly to make it viable to use on the XC7S25 and similar (or
> > >> potentially also various ECP5 devices or similar). Granted, in this area
> > >> it would face more competition against RISC-V or similar.
> > >>
> > > I am aware of your implementation limitations.
> > As can be noted though, I am mostly targeting the XC7A100...
> >
> >
> > But, the XC7S25 is more limited than the XC7A100, as are most of the
> > ECP5 chips.
> >
> > The ECP5's can have a decent number of LUTs, but are a little more
> > limited in that it is built around LUT4's.
> >
> > There is also ICE40, but there is little hope of fitting a BJX2 core
> > onto an ICE40. For the most part, people are doing 8/16 designs on ICE40
> > though.
> >
> I have no idea who are "people" you are talking about. Would think that most of them are enthusiasts rather than pros.
>
> Me, being a pro, I very much prefer 32-bit soft cores, supported by standard compilers (in practice it means gcc).
> For convenience of reliable tools I am fully willing to a cost of pretty low MIPS/MHz, which would be typical for
> resource-constrained implementation of such core.
> In particular, I often use Nios2e core that gives ~0.15 MIPS/MHz, fits in ~600 4-input LUTs + 2 Embedded memory banks
> and hits pretty high frequencies. I would guess, that at your XC7A100 it will be close to 200MHz.
> core like that fits with ease within iCE5LP4K and for some less logic-intensive apps can be useful even in iCE5LP2K.
>
> Of course, Nios2 is property of Altera/Intel and (IANAAL) most likely can't be legally used on Lattice devices.
> But it's extremly similar to fixed-width variant of RV32 which is certainly legal to use everywhere.
>
> I didn't check if soft RV32 cores of these class are available, for a little cost or completely free of charge, but personally
> I will be very surprised if they are not available. Because designing such core is ~6 weeks of dedicated work for a above
> average, but not outstanding CA student. Not including validation. I have no feeling about cost of validation of MMU-less
> RV32, because it strongly depends on maturity of available tools, into which I never looked.
>
> I don't even think that ~0.15 MIPS/MHz in ~600 4-input LUTs is the best possible. Trading off a bit of achievable
> frequency, one can do 0.25 MIPS/MHz in 600 LUTs or over 0.5 MIPS/MHz in 750-800 LUTs.
> I know, because I played with these things couple of years ago, under few artificial constraints, in order to make a play more
> interesting. Generally designing CPUs is not my passion, so after 2-3 months of playing I lost interest, but I got to the stage
> where few of my core variants were running real useful software (one of our production utilities, mostly ECDSA validation)
> and measured performances and utilization of FPGA resources, so I consider myself somewhat qualified to make statements
> like above.
> >
> > Though, one can argue though that even on the lower-end, the FPGAs still
> > aren't particularly cost-competitive with a Teensy or Pi Pico or
> > similar... But, can have more powerful IO.


Click here to read the complete article
Re: a modest proposal (apologies to J. Swift)

<sb6kvq$9co$1@newsreader4.netcologne.de>

  copy mid

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

  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-51bc-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: a modest proposal (apologies to J. Swift)
Date: Sat, 26 Jun 2021 07:28:58 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <sb6kvq$9co$1@newsreader4.netcologne.de>
References: <samgjd$cbd$1@dont-email.me> <sao5ar$1cl7$1@gal.iecc.com>
<sapo7q$c9v$1@dont-email.me> <saqctc$2rso$1@gal.iecc.com>
<saqj72$mnk$1@dont-email.me>
<7a9e6be9-e406-467a-93b7-2b14f7d07deen@googlegroups.com>
<saqsq8$r75$1@dont-email.me>
<d705b13b-5b6f-4943-b454-d057a310fb8en@googlegroups.com>
<sat9lt$vvv$1@dont-email.me>
<ca127074-6978-44ae-9b09-8a304b921026n@googlegroups.com>
<sb22rk$n03$1@dont-email.me>
<8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com>
<sb2gio$rc9$1@dont-email.me>
<a2f52a02-5c51-4e27-a26f-40ad1ddd08acn@googlegroups.com>
<sb2ukd$5k9$1@dont-email.me>
<662f1619-a5e0-4174-a728-2c795fdbfe35n@googlegroups.com>
<e554ac1b-deea-42e1-9058-5dcc3a0a4506n@googlegroups.com>
Injection-Date: Sat, 26 Jun 2021 07:28:58 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-51bc-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:51bc:0:7285:c2ff:fe6c:992d";
logging-data="9624"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sat, 26 Jun 2021 07:28 UTC

JimBrakefield <jim.brakefield@ieee.org> schrieb:

> Sorted the list of open fpga/soft CPU cores by word size and LUT count.
> To be found at: https://github.com/jimbrake/cpu_soft_cores

That appears to be a very nice overview, but hard to read because
it is PDF with very many columns.

Would it be possibe to put the info into a more spreadsheet or
awk-friendly format like tab-separated values?

Re: a modest proposal (apologies to J. Swift)

<2021Jun26.093043@mips.complang.tuwien.ac.at>

  copy mid

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

  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: a modest proposal (apologies to J. Swift)
Date: Sat, 26 Jun 2021 07:30:43 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 43
Message-ID: <2021Jun26.093043@mips.complang.tuwien.ac.at>
References: <samgjd$cbd$1@dont-email.me> <sat9lt$vvv$1@dont-email.me> <ca127074-6978-44ae-9b09-8a304b921026n@googlegroups.com> <sb22rk$n03$1@dont-email.me> <8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com> <sb2gio$rc9$1@dont-email.me> <a2f52a02-5c51-4e27-a26f-40ad1ddd08acn@googlegroups.com> <sb2ukd$5k9$1@dont-email.me> <662f1619-a5e0-4174-a728-2c795fdbfe35n@googlegroups.com> <sb532h$h9b$1@dont-email.me> <2021Jun25.205635@mips.complang.tuwien.ac.at> <sb5ab0$sg4$1@dont-email.me>
Injection-Info: reader02.eternal-september.org; posting-host="69b538dccf69ab92f3d886d7b1af1ad0";
logging-data="1239"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/GdDMwLVxHaL0ueG8r6rD3"
Cancel-Lock: sha1:r8hs4tp45UGkEqFEjIxLrK20bsQ=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Sat, 26 Jun 2021 07:30 UTC

BGB <cr88192@gmail.com> writes:
>On 6/25/2021 1:56 PM, Anton Ertl wrote:
>> BGB <cr88192@gmail.com> writes:
>>> Likely, A64 could be a little better here, but is hindered mostly by a
>>> general lack of usable 64-bit builds of Raspbian and similar.
>>
>> [raspi4:~:72386] cat /proc/cpuinfo
>> ...
>> Hardware : BCM2835
>> Revision : d03114
>> Serial : 10000000090946d0
>> Model : Raspberry Pi 4 Model B Rev 1.4
>> [raspi4:~:72387] cat /etc/os-release
>> PRETTY_NAME="Debian GNU/Linux 10 (buster)"
>> NAME="Debian GNU/Linux"
>> VERSION_ID="10"
>> VERSION="10 (buster)"
>> VERSION_CODENAME=buster
>> ID=debian
>> HOME_URL="https://www.debian.org/"
>> SUPPORT_URL="https://www.debian.org/support"
>> BUG_REPORT_URL="https://bugs.debian.org/"
>> [raspi4:~:72388] uname -m
>> aarch64
>>
>
>So, you are saying to run a A64 Debian build rather than dealing with an
>incomplete/broken version of 64-bit Raspbian, or dealing with the
>limitations of 32-bit Raspbian?...

We are running a 64-bit image for the Raspi4, and one user has
programmed the GPIO pins on this machine. I don't know if this is a
64-bit Raspbian or something else, but I guess the difference is
minor. It's not proper (i.e., 32-bit) Raspbian anyway, so the
community benefit of Raspbian is not there.

Anyway, wrt to your sentence above, I don't see any hindrance if you
want to run your simulator on Aarch64.

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

Re: a modest proposal (apologies to J. Swift)

<2021Jun26.150814@mips.complang.tuwien.ac.at>

  copy mid

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

  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: a modest proposal (apologies to J. Swift)
Date: Sat, 26 Jun 2021 13:08:14 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 17
Message-ID: <2021Jun26.150814@mips.complang.tuwien.ac.at>
References: <samgjd$cbd$1@dont-email.me> <ca127074-6978-44ae-9b09-8a304b921026n@googlegroups.com> <sb22rk$n03$1@dont-email.me> <8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com> <sb2gio$rc9$1@dont-email.me> <a2f52a02-5c51-4e27-a26f-40ad1ddd08acn@googlegroups.com> <sb2ukd$5k9$1@dont-email.me> <662f1619-a5e0-4174-a728-2c795fdbfe35n@googlegroups.com> <sb532h$h9b$1@dont-email.me> <2021Jun25.205635@mips.complang.tuwien.ac.at> <sb5ab0$sg4$1@dont-email.me> <2021Jun26.093043@mips.complang.tuwien.ac.at>
Injection-Info: reader02.eternal-september.org; posting-host="69b538dccf69ab92f3d886d7b1af1ad0";
logging-data="29660"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+xOFnd7HmW3jHbZPa16+v9"
Cancel-Lock: sha1:6KEY3CGEtmDWqWxdcwh43MW+wlQ=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Sat, 26 Jun 2021 13:08 UTC

anton@mips.complang.tuwien.ac.at (Anton Ertl) writes:
>We are running a 64-bit image for the Raspi4, and one user has
>programmed the GPIO pins on this machine. I don't know if this is a
>64-bit Raspbian or something else, but I guess the difference is
>minor.

I have now read
<https://linuxhint.com/raspberry-pi-os-vs-armbian-vs-debian-gnu-linux/>
that (32-bit) Raspbian is compiled for a different architecture than
Debian for armhf (one instruction less). Given that Debian arm64 runs
on Raspi3 and Raspi4, there is no such difference necessary for a
64-bit Raspbian.

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

Re: a modest proposal (apologies to J. Swift)

<a75666fa-0671-41d2-8148-d2f0a351f035n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:1f7:: with SMTP id x23mr17301728qkn.160.1624721504852;
Sat, 26 Jun 2021 08:31:44 -0700 (PDT)
X-Received: by 2002:a9d:70c1:: with SMTP id w1mr10724698otj.82.1624721504552;
Sat, 26 Jun 2021 08:31:44 -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: Sat, 26 Jun 2021 08:31:44 -0700 (PDT)
In-Reply-To: <sb6kvq$9co$1@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:a0d0:9f90:196a:a675:819d:cd8;
posting-account=AoizIQoAAADa7kQDpB0DAj2jwddxXUgl
NNTP-Posting-Host: 2600:1700:a0d0:9f90:196a:a675:819d:cd8
References: <samgjd$cbd$1@dont-email.me> <sao5ar$1cl7$1@gal.iecc.com>
<sapo7q$c9v$1@dont-email.me> <saqctc$2rso$1@gal.iecc.com> <saqj72$mnk$1@dont-email.me>
<7a9e6be9-e406-467a-93b7-2b14f7d07deen@googlegroups.com> <saqsq8$r75$1@dont-email.me>
<d705b13b-5b6f-4943-b454-d057a310fb8en@googlegroups.com> <sat9lt$vvv$1@dont-email.me>
<ca127074-6978-44ae-9b09-8a304b921026n@googlegroups.com> <sb22rk$n03$1@dont-email.me>
<8b3c0cb3-400a-4987-8ef6-95a23c9abbfan@googlegroups.com> <sb2gio$rc9$1@dont-email.me>
<a2f52a02-5c51-4e27-a26f-40ad1ddd08acn@googlegroups.com> <sb2ukd$5k9$1@dont-email.me>
<662f1619-a5e0-4174-a728-2c795fdbfe35n@googlegroups.com> <e554ac1b-deea-42e1-9058-5dcc3a0a4506n@googlegroups.com>
<sb6kvq$9co$1@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a75666fa-0671-41d2-8148-d2f0a351f035n@googlegroups.com>
Subject: Re: a modest proposal (apologies to J. Swift)
From: jim.brak...@ieee.org (JimBrakefield)
Injection-Date: Sat, 26 Jun 2021 15:31:44 +0000
Content-Type: text/plain; charset="UTF-8"
 by: JimBrakefield - Sat, 26 Jun 2021 15:31 UTC

On Saturday, June 26, 2021 at 2:29:01 AM UTC-5, Thomas Koenig wrote:
> JimBrakefield <jim.bra...@ieee.org> schrieb:
> > Sorted the list of open fpga/soft CPU cores by word size and LUT count.
> > To be found at: https://github.com/jimbrake/cpu_soft_cores
> That appears to be a very nice overview, but hard to read because
> it is PDF with very many columns.
>
> Would it be possibe to put the info into a more spreadsheet or
> awk-friendly format like tab-separated values?

Done. Single spreadsheet with multiple sheets.
Usually zoom to the entire width of a 1080x1920 screen.
Column descriptions at the bottom of each sheet.
Would be pleased if people would run some of these designs and report.

Pages:12
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor