Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

Statistics means never having to say you're certain.


devel / comp.arch / Re: Java bytecode processors

SubjectAuthor
* Java bytecode processorsThomas Koenig
+* Re: Java bytecode processorsMitchAlsup
|+* Re: Java bytecode processorsBGB
||`* Re: Java bytecode processorsaph
|| +* Re: Java bytecode processorsMitchAlsup
|| |`* Re: Java bytecode processorsThomas Koenig
|| | +- Re: Java bytecode processorsMitchAlsup
|| | `- Re: Java bytecode processorsBGB
|| `- Re: Java bytecode processorsBGB
|+* Re: Java bytecode processorsThomas Koenig
||`* Re: Java bytecode processorsEricP
|| +- Re: Java bytecode processorsEricP
|| `* Re: Java bytecode processorsTerje Mathisen
||  `- Re: Java bytecode processorsEricP
|+- Re: Java bytecode processorsTerje Mathisen
|`* Re: Java bytecode processorsAnton Ertl
| +* Re: Java bytecode processorsStefan Monnier
| |+- Re: Java bytecode processorsBGB
| |+* Re: Java bytecode processorsAnton Ertl
| ||`* Re: Java bytecode processorsMitchAlsup
| || `- Re: Java bytecode processorsNemo
| |`* Re: Java bytecode processorsNemo
| | +* Re: Java bytecode processorsEricP
| | |`- Re: Java bytecode processorsMitchAlsup
| | `- Re: Java bytecode processorsMitchAlsup
| `* Re: Java bytecode processorsMitchAlsup
|  `* Re: Java bytecode processorsBernd Linsel
|   +- Re: Java bytecode processorsMitchAlsup
|   `* Re: Java bytecode processorsThomas Koenig
|    +- Re: Java bytecode processorsMitchAlsup
|    +- Re: Java bytecode processorsBGB
|    `* Re: bad code, Java bytecode processorsJohn Levine
|     +- Re: bad code, Java bytecode processorsThomas Koenig
|     `- Re: bad code, Java bytecode processorsAnton Ertl
+- Re: Java bytecode processorsAnton Ertl
+* Re: Java bytecode processorsgareth evans
|+* Re: Java bytecode processorsAnton Ertl
||`* Re: Java bytecode processorsBGB
|| `* Re: Java bytecode processorsMitchAlsup
||  `* Re: Java bytecode processorsBGB
||   `- Re: Java bytecode processorsMitchAlsup
|`* Re: Java bytecode processorsMitchAlsup
| `* Re: Java bytecode processorsgareth evans
|  `* Re: Java bytecode processorsMitchAlsup
|   `- Re: Java bytecode processorsBGB
+- Re: Java bytecode processorsMarcus
`* Re: Java bytecode processorsantispam
 `* Re: Java bytecode processorsJimBrakefield
  +- Re: Java bytecode processorsJimBrakefield
  `* Re: Java bytecode processorsJohn Levine
   `* Re: Java bytecode processorsMitchAlsup
    `* Re: not the PDP-11, was Java bytecode processorsJohn Levine
     +- Re: not the PDP-11, was Java bytecode processorsJimBrakefield
     `* Design a better 16 or 32 bit processorBrett
      +* Re: Design a better 16 or 32 bit processorThomas Koenig
      |`- Re: Design a better 16 or 32 bit processorBrett
      +* Re: Design a better 16 or 32 bit processorJohn Dallman
      |+- Re: Design a better 16 or 32 bit processorBGB
      |`- Re: Design a better 16 or 32 bit processorBrett
      +* Re: not a vax, was Design a better 16 or 32 bit processorJohn Levine
      |+- Re: not a vax, was Design a better 16 or 32 bit processorBrett
      |+* Re: not a vax, was Design a better 16 or 32 bit processorAnton Ertl
      ||`* Re: not a 360 either, was Design a better 16 or 32 bit processorJohn Levine
      || +- Re: not a 360 either, was Design a better 16 or 32 bit processorMitchAlsup
      || +* Re: not a 360 either, was Design a better 16 or 32 bit processorAnne & Lynn Wheeler
      || |`* Re: not a 360 either, was Design a better 16 or 32 bit processorJohn Levine
      || | `* Re: not a 360 either, was Design a better 16 or 32 bit processorAnne & Lynn Wheeler
      || |  `* vs/pascal (Was: Re: not a 360 either, was Design a better 16 or 32Terje Mathisen
      || |   `- Re: vs/pascalAnne & Lynn Wheeler
      || `* Re: not a 360 either, was Design a better 16 or 32 bit processorAnton Ertl
      ||  `* Re: not a 360 either, was Design a better 16 or 32 bit processorEricP
      ||   `- Re: not a 360 either, was Design a better 16 or 32 bit processorMitchAlsup
      |`* Re: not a vax, was Design a better 16 or 32 bit processorEricP
      | `- Re: not a vax, was Design a better 16 or 32 bit processorMitchAlsup
      +* Re: Design a better 16 or 32 bit processorBrett
      |+* Re: Design a better 16 or 32 bit processorIvan Godard
      ||`- Re: Design a better 16 or 32 bit processorBrett
      |`* Re: Design a better 16 or 32 bit processorMitchAlsup
      | `* Re: Design a better 16 or 32 bit processorBrett
      |  +- Re: Design a better 16 or 32 bit processorBrett
      |  +* Re: Design a better 16 or 32 bit processorMitchAlsup
      |  |+* Re: Design a better 16 or 32 bit processorStefan Monnier
      |  ||`* Re: Design a better 16 or 32 bit processorAnton Ertl
      |  || +- Re: Design a better 16 or 32 bit processorEricP
      |  || `* Re: Design a better 16 or 32 bit processorDavid Brown
      |  ||  `* Re: Design a better 16 or 32 bit processorStephen Fuld
      |  ||   `- Re: Design a better 16 or 32 bit processorDavid Brown
      |  |`* Re: Design a better 16 or 32 bit processorBrett
      |  | `* Re: Design a better 16 or 32 bit processorMitchAlsup
      |  |  `* Re: Design a better 16 or 32 bit processorIvan Godard
      |  |   `* Re: Design a better 16 or 32 bit processorBrett
      |  |    `* Re: Design a better 16 or 32 bit processorJimBrakefield
      |  |     `- Re: Design a better 16 or 32 bit processorBrett
      |  +* Re: Design a better 16 or 32 bit processorBGB
      |  |+* Re: Design a better 16 or 32 bit processorMitchAlsup
      |  ||+- Re: Design a better 16 or 32 bit processorBGB
      |  ||`- Re: Design a better 16 or 32 bit processorIvan Godard
      |  |`- Re: Design a better 16 or 32 bit processorBGB
      |  `* Re: Design a better 16 or 32 bit processorTerje Mathisen
      |   `* Re: Design a better 16 or 32 bit processorMitchAlsup
      |    +- Re: Design a better 16 or 32 bit processorStephen Fuld
      |    +- Re: Design a better 16 or 32 bit processorBGB
      |    `* Re: Design a better 16 or 32 bit processorEricP
      `* ARM just added MEMCPY instructions.Brett

Pages:12345678910
Re: Java bytecode processors

<8f65b18f-4cd4-4338-bfdc-132b941be05dn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:c6:: with SMTP id p6mr11795275qtw.35.1630949632975;
Mon, 06 Sep 2021 10:33:52 -0700 (PDT)
X-Received: by 2002:aca:5f09:: with SMTP id t9mr161277oib.157.1630949632724;
Mon, 06 Sep 2021 10:33:52 -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: Mon, 6 Sep 2021 10:33:52 -0700 (PDT)
In-Reply-To: <16a249e95fee2ed3$1$1753940$c2d58868@news.newsdemon.com>
Injection-Info: google-groups.googlegroups.com; posting-host=104.59.204.55; posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 104.59.204.55
References: <sh3evb$n1v$1@newsreader4.netcologne.de> <1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com>
<2021Sep6.093932@mips.complang.tuwien.ac.at> <jwvh7ex95yv.fsf-monnier+comp.arch@gnu.org>
<16a249e95fee2ed3$1$1753940$c2d58868@news.newsdemon.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8f65b18f-4cd4-4338-bfdc-132b941be05dn@googlegroups.com>
Subject: Re: Java bytecode processors
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Mon, 06 Sep 2021 17:33:52 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: MitchAlsup - Mon, 6 Sep 2021 17:33 UTC

On Monday, September 6, 2021 at 11:54:43 AM UTC-5, Nemo wrote:
> On 2021-09-06 09:44, Stefan Monnier wrote:
> >> I see no unsurmountable hurdles to create a JavaVM front end for an
> >> appropriate OoO machine that produces a similar utilization of the FUs
> >> of the OoO machine. Note that there is no aliasing problem wrt the
> >> locals slots on the JavaVM.
> >
> > Whether a JVM CPU is possible (and even efficient) is probably
> > a hypothetical question at this point. The main question is: where's
> > the market for it?
<
> Well, billions of UICC devices (called sim cards) would be a lucrative
> market.
<
I was doing some reading in the I/O MMU category last week and ran into
some academia papers indicating that this is a potent market for viruses.
That is, what Spectré and Meltdown did for CPUs, the same attack vectors
are being palyed out over in the plug-in device arena.
>
> Sun specified picoJava [sic] years ago but never released a product and
> it never took off. Nowadays, there is Jazelle on ARM and the Atmel
> AT90SC is fast enough so the JVM-on-silicon ship has probably sailed.
>
> N.
> >
> > Reminds me of the Lisp machines,
> >
> >
> > Stefan
> >

Re: Java bytecode processors

<sh5k1g$frr$1@dont-email.me>

  copy mid

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

  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: Java bytecode processors
Date: Mon, 6 Sep 2021 12:43:01 -0500
Organization: A noiseless patient Spider
Lines: 61
Message-ID: <sh5k1g$frr$1@dont-email.me>
References: <sh3evb$n1v$1@newsreader4.netcologne.de>
<sh4qsh$ove$1@dont-email.me> <2021Sep6.152518@mips.complang.tuwien.ac.at>
<sh5gr3$o7k$1@dont-email.me>
<e3ee46e9-68d4-4dfc-9252-2f4a1c4ede37n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 6 Sep 2021 17:44:17 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="71911c025cb2d08a7ebe1920a0bb34d6";
logging-data="16251"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+IFJglFxDASF34KgWfxPW1"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.13.0
Cancel-Lock: sha1:d28qtcIk0kfdhlemJ96jtrE99Vs=
In-Reply-To: <e3ee46e9-68d4-4dfc-9252-2f4a1c4ede37n@googlegroups.com>
Content-Language: en-US
 by: BGB - Mon, 6 Sep 2021 17:43 UTC

On 9/6/2021 12:31 PM, MitchAlsup wrote:
> On Monday, September 6, 2021 at 11:49:41 AM UTC-5, BGB wrote:
>> On 9/6/2021 8:25 AM, Anton Ertl wrote:
>>> gareth evans <headst...@yahoo.com> writes:
>>>> This seems like a recipe for viruses!
>>>
>>> This sentence *is* a recipe for security theatre.
>>>
>> Meanwhile, am I like the only person with an ISA who has stuff like (?):
>> Memory that is RWX for the kernel, but R-X or --X for usermode;
>> Memory that is RW- for the kernel, but R-- for usermode;
>> ...
> No.

OK. In any case, x86 doesn't seem able to do this.

Descriptions of ARM's MMU are a bit more fragmented and confusing, so
less obvious what it can do.

In any case, I should have specified "within a single address space,
without flushing the TLB or changing modes or similar".

>>
>>
>> This is before getting to the keyring, which can also be like:
>> VM program thread sees the memory as R-X;
>> JIT compiler thread sees the memory as RW-;
>> ...
>>
>> Though, the (more recent) addition of separate User and Supervisor
>> access is a bit limited/hacky given there weren't any free bits, so some
>> level of twiddly was used.
>>
>>
>> Likewise, say:
>> Task register (TBR) points to an area which is Read-Only from usermode,
>> but Read/Write to the kernel, pointing to another region which is
>> Read/Write from usermode (TLS variables and similar go here), and to a
>> region which is inaccessible from usermode (holds system-level state).
>>
>> ...
>>
>>
>> Granted, some of this stuff only works from usermode and with the MMU
>> enabled, where currently I only have the MME enabled if a swapfile was
>> found. This may change (with the MMU always being enabled after
>> boot-up), given I seem to now have the MMU relatively stable.
>>
>> Even without a pagefile, the MMU could still allow for things like
>> remapping pages, growable stacks, ... It would also allow for usermode
>> programs to be less subject to the issues of RAM fragmentation.
>>
>> At present, paged virtual memory is still mostly untested and fairly
>> incomplete (it also bypasses the normal filesystem code and requires the
>> swapfile to be contiguous on the SDcard). The use of a swapfile (rather
>> than a swap partition) being mostly because I didn't have a good way to
>> create such a partition via the Windows tools.
>>
>> ...

Re: Java bytecode processors

<sh5m8a$5le$1@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2a0a-a544-865-0-717b-53e6-158c-fc99.ipv6dyn.netcologne.de!not-for-mail
From: bl1-remo...@gmx.com (Bernd Linsel)
Newsgroups: comp.arch
Subject: Re: Java bytecode processors
Date: Mon, 6 Sep 2021 20:22:02 +0200
Organization: news.netcologne.de
Distribution: world
Message-ID: <sh5m8a$5le$1@newsreader4.netcologne.de>
References: <sh3evb$n1v$1@newsreader4.netcologne.de>
<1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com>
<2021Sep6.093932@mips.complang.tuwien.ac.at>
<17ac8a02-d60e-4990-90a7-18af04817964n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 6 Sep 2021 18:22:02 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2a0a-a544-865-0-717b-53e6-158c-fc99.ipv6dyn.netcologne.de:2a0a:a544:865:0:717b:53e6:158c:fc99";
logging-data="5806"; mail-complaints-to="abuse@netcologne.de"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.13.0
In-Reply-To: <17ac8a02-d60e-4990-90a7-18af04817964n@googlegroups.com>
 by: Bernd Linsel - Mon, 6 Sep 2021 18:22 UTC

On 06.09.2021 18:12, MitchAlsup wrote:
> The stack nature of the bytecode is the most significant imposition.

There is a concept for HW OoO execution of stack-based code, called
"BOOST: Berkeley Out-of-Order Stack Thingy" (see
<http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.137.5216>; only
the cached copy at
<http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.137.5216&rep=rep1&type=pdf>
still works).

Re: Java bytecode processors

<20931789-3fd4-4e4c-95e6-5f89f3d3628en@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a37:ea0c:: with SMTP id t12mr12094422qkj.509.1630953693300;
Mon, 06 Sep 2021 11:41:33 -0700 (PDT)
X-Received: by 2002:a05:6830:4b6:: with SMTP id l22mr12133059otd.129.1630953693078;
Mon, 06 Sep 2021 11:41:33 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Mon, 6 Sep 2021 11:41:32 -0700 (PDT)
In-Reply-To: <sh5m8a$5le$1@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=104.59.204.55; posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 104.59.204.55
References: <sh3evb$n1v$1@newsreader4.netcologne.de> <1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com>
<2021Sep6.093932@mips.complang.tuwien.ac.at> <17ac8a02-d60e-4990-90a7-18af04817964n@googlegroups.com>
<sh5m8a$5le$1@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <20931789-3fd4-4e4c-95e6-5f89f3d3628en@googlegroups.com>
Subject: Re: Java bytecode processors
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Mon, 06 Sep 2021 18:41:33 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 12
 by: MitchAlsup - Mon, 6 Sep 2021 18:41 UTC

On Monday, September 6, 2021 at 1:22:05 PM UTC-5, Bernd Linsel wrote:
> On 06.09.2021 18:12, MitchAlsup wrote:
> > The stack nature of the bytecode is the most significant imposition.
> There is a concept for HW OoO execution of stack-based code, called
> "BOOST: Berkeley Out-of-Order Stack Thingy" (see
> <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.137.5216>; only
> the cached copy at
> <http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.137.5216&rep=rep1&type=pdf>
> still works).
<
Same problems as::
https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.74.7112&rep=rep1&type=pdf
<

Re: Java bytecode processors

<d78faaf3-b27a-4510-9999-a25a1b3da1b5n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:da:: with SMTP id d26mr12001286qtg.401.1630953739065;
Mon, 06 Sep 2021 11:42:19 -0700 (PDT)
X-Received: by 2002:a9d:7ccc:: with SMTP id r12mr11951765otn.350.1630953738866;
Mon, 06 Sep 2021 11:42:18 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Mon, 6 Sep 2021 11:42:18 -0700 (PDT)
In-Reply-To: <sh5k1g$frr$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=104.59.204.55; posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 104.59.204.55
References: <sh3evb$n1v$1@newsreader4.netcologne.de> <sh4qsh$ove$1@dont-email.me>
<2021Sep6.152518@mips.complang.tuwien.ac.at> <sh5gr3$o7k$1@dont-email.me>
<e3ee46e9-68d4-4dfc-9252-2f4a1c4ede37n@googlegroups.com> <sh5k1g$frr$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d78faaf3-b27a-4510-9999-a25a1b3da1b5n@googlegroups.com>
Subject: Re: Java bytecode processors
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Mon, 06 Sep 2021 18:42:19 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 34
 by: MitchAlsup - Mon, 6 Sep 2021 18:42 UTC

On Monday, September 6, 2021 at 12:44:19 PM UTC-5, BGB wrote:
> On 9/6/2021 12:31 PM, MitchAlsup wrote:
> > On Monday, September 6, 2021 at 11:49:41 AM UTC-5, BGB wrote:
> >> On 9/6/2021 8:25 AM, Anton Ertl wrote:
> >>> gareth evans <headst...@yahoo.com> writes:
> >>>> This seems like a recipe for viruses!
> >>>
> >>> This sentence *is* a recipe for security theatre.
> >>>
> >> Meanwhile, am I like the only person with an ISA who has stuff like (?):
> >> Memory that is RWX for the kernel, but R-X or --X for usermode;
> >> Memory that is RW- for the kernel, but R-- for usermode;
> >> ...
> > No.
> OK. In any case, x86 doesn't seem able to do this.
>
> Descriptions of ARM's MMU are a bit more fragmented and confusing, so
> less obvious what it can do.
>
> In any case, I should have specified "within a single address space,
> without flushing the TLB or changing modes or similar".
>
In My 66000, the MMU is defined such that that the Root <pointer> and
all intermediate PTPs have to allow an access mode for the mode to be
"granted". Thus one Root may allow RW- and another root allow --X and
the page tables can still be shared.
<
So, k different processes can share a subsection of the virtual address
space and have different rights to it. One Root (say the JIT) is given
RW- access to the compiled Java, the others are given --X access, The
entire set of tables is shared.
<
In effect, I synthesize an ASID through the Root and all the PTPs
leading to the PTE. So any sharing of address spaces results in sharing
(and avoidance of invalidating) TLB entries.

Re: Java bytecode processors

<sh5ol2$8o8$1@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-c002-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Java bytecode processors
Date: Mon, 6 Sep 2021 19:02:58 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <sh5ol2$8o8$1@newsreader4.netcologne.de>
References: <sh3evb$n1v$1@newsreader4.netcologne.de>
<1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com>
<2021Sep6.093932@mips.complang.tuwien.ac.at>
<17ac8a02-d60e-4990-90a7-18af04817964n@googlegroups.com>
<sh5m8a$5le$1@newsreader4.netcologne.de>
Injection-Date: Mon, 6 Sep 2021 19:02:58 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-c002-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:c002:0:7285:c2ff:fe6c:992d";
logging-data="8968"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Mon, 6 Sep 2021 19:02 UTC

Bernd Linsel <bl1-removethis@gmx.com> schrieb:
> On 06.09.2021 18:12, MitchAlsup wrote:
>> The stack nature of the bytecode is the most significant imposition.
>
> There is a concept for HW OoO execution of stack-based code, called
> "BOOST: Berkeley Out-of-Order Stack Thingy" (see
><http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.137.5216>; only
> the cached copy at
><http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.137.5216&rep=rep1&type=pdf>
> still works).

I love that footnote:

"Since most compiler generate stack-based code for languages such
as C with re-entrant functions, most GPR machines wind up emulating
stack machines to a significant extent."

Re: Java bytecode processors

<1a36be7c-10e9-469f-b560-335b0ae72cf5n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a0c:b293:: with SMTP id r19mr5942562qve.19.1630955841045;
Mon, 06 Sep 2021 12:17:21 -0700 (PDT)
X-Received: by 2002:a9d:450b:: with SMTP id w11mr12818580ote.254.1630955840816;
Mon, 06 Sep 2021 12:17:20 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Mon, 6 Sep 2021 12:17:20 -0700 (PDT)
In-Reply-To: <sh5ol2$8o8$1@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=104.59.204.55; posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 104.59.204.55
References: <sh3evb$n1v$1@newsreader4.netcologne.de> <1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com>
<2021Sep6.093932@mips.complang.tuwien.ac.at> <17ac8a02-d60e-4990-90a7-18af04817964n@googlegroups.com>
<sh5m8a$5le$1@newsreader4.netcologne.de> <sh5ol2$8o8$1@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <1a36be7c-10e9-469f-b560-335b0ae72cf5n@googlegroups.com>
Subject: Re: Java bytecode processors
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Mon, 06 Sep 2021 19:17:21 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 17
 by: MitchAlsup - Mon, 6 Sep 2021 19:17 UTC

On Monday, September 6, 2021 at 2:03:00 PM UTC-5, Thomas Koenig wrote:
> Bernd Linsel <bl1-rem...@gmx.com> schrieb:
> > On 06.09.2021 18:12, MitchAlsup wrote:
> >> The stack nature of the bytecode is the most significant imposition.
> >
> > There is a concept for HW OoO execution of stack-based code, called
> > "BOOST: Berkeley Out-of-Order Stack Thingy" (see
> ><http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.137.5216>; only
> > the cached copy at
> ><http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.137.5216&rep=rep1&type=pdf>
> > still works).
> I love that footnote:
>
> "Since most compiler generate stack-based code for languages such
> as C with re-entrant functions, most GPR machines wind up emulating
> stack machines to a significant extent."
<
Errrrrr, not really.........

Re: Java bytecode processors

<sh5u63$rn9$1@gioia.aioe.org>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!ppYixYMWAWh/woI8emJOIQ.user.46.165.242.91.POSTED!not-for-mail
From: terje.ma...@tmsw.no (Terje Mathisen)
Newsgroups: comp.arch
Subject: Re: Java bytecode processors
Date: Mon, 6 Sep 2021 22:37:22 +0200
Organization: Aioe.org NNTP Server
Message-ID: <sh5u63$rn9$1@gioia.aioe.org>
References: <sh3evb$n1v$1@newsreader4.netcologne.de>
<1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com>
<sh4aaq$8p9$1@newsreader4.netcologne.de> <J6rZI.29250$z%4.26088@fx37.iad>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="28393"; posting-host="ppYixYMWAWh/woI8emJOIQ.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101
Firefox/60.0 SeaMonkey/2.53.9
X-Notice: Filtered by postfilter v. 0.9.2
 by: Terje Mathisen - Mon, 6 Sep 2021 20:37 UTC

EricP wrote:
> Thomas Koenig wrote:
>> MitchAlsup <MitchAlsup@aol.com> schrieb:
>>> On Sunday, September 5, 2021 at 5:05:33 PM UTC-5, Thomas Koenig wrote:
>>>> Although there are Java bytecode processors (even one available on
>>>> Github, https://github.com/amal029/jop) they have had very limited
>>>> success.
>>>> Why?
>>> <
>>> A Bytecode interpreter, even in HW will have a serious performance
>>> issue when compared to a cross compiling native instruction set.
>>> Probably around 2×-3× penalty.
>>
>> Of course, the latency of the first-time compilation is somewhat
>> large :-)
>>
>> It is interesting to read the claims about picojava, which are
>> (unfortunately) not substantiated anywhere where I can get
>> to without a paywall.
>
> 1997 paper by Sun engineers on picoJava uArch and benchmarks says
> it was 15-20 times faster than a 486/33 running interpreter,
> and about 7-10 times faster than JIT.
>
> picoJava-I: The Java Virtual Machine in Hardware, 1997
> https://tsunami.zaibatsutel.net/liberez/picojava.pdf

I remember that one, also that I was pretty much certain their
comparison with a 486-33 was completely bogus (Pentium arrived in
1993/94, then we got the PPro around 96/97?). I.e. a Pentium in the
100-200 MHz range ran 5-10 times faster than their reference 486-33.

I also remember thinking that their JVM interpreter must have been quite
bad, it should be possible to at the very least get down to less than 10
cycles (including branch misses) per JVM byte code executed, while a JIT
would run significantly faster unless you included the JIT time in the
comparison.

Terje

--
- <Terje.Mathisen at tmsw.no>
"almost all programming can be viewed as an exercise in caching"

Re: Java bytecode processors

<sh5u8u$pgg$1@dont-email.me>

  copy mid

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

  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: Java bytecode processors
Date: Mon, 6 Sep 2021 15:37:37 -0500
Organization: A noiseless patient Spider
Lines: 61
Message-ID: <sh5u8u$pgg$1@dont-email.me>
References: <sh3evb$n1v$1@newsreader4.netcologne.de>
<1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com>
<2021Sep6.093932@mips.complang.tuwien.ac.at>
<17ac8a02-d60e-4990-90a7-18af04817964n@googlegroups.com>
<sh5m8a$5le$1@newsreader4.netcologne.de>
<sh5ol2$8o8$1@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 6 Sep 2021 20:38:54 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="71911c025cb2d08a7ebe1920a0bb34d6";
logging-data="26128"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+PxCaAuXRmMGz78+1Vpvka"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.13.0
Cancel-Lock: sha1:xjbkmPUMkz7QfB2LwIXAAYIyUL0=
In-Reply-To: <sh5ol2$8o8$1@newsreader4.netcologne.de>
Content-Language: en-US
 by: BGB - Mon, 6 Sep 2021 20:37 UTC

On 9/6/2021 2:02 PM, Thomas Koenig wrote:
> Bernd Linsel <bl1-removethis@gmx.com> schrieb:
>> On 06.09.2021 18:12, MitchAlsup wrote:
>>> The stack nature of the bytecode is the most significant imposition.
>>
>> There is a concept for HW OoO execution of stack-based code, called
>> "BOOST: Berkeley Out-of-Order Stack Thingy" (see
>> <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.137.5216>; only
>> the cached copy at
>> <http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.137.5216&rep=rep1&type=pdf>
>> still works).
>
> I love that footnote:
>
> "Since most compiler generate stack-based code for languages such
> as C with re-entrant functions, most GPR machines wind up emulating
> stack machines to a significant extent."
>

Even when the IR is stack based, once converted to 3AC one typically
ends up with ~ 1/2 to 1/3 as many operations.

Variable load/store ops get folded into the operators.
Constants typically get folded into the operators.
Operations to duplicate or exchange stack items essentially disappear.
....

Some of the operations, rather than actually "doing something", serving
mostly to move around references to variables on an abstract "stack"
which disappears once the bytecode is decoded.

So, it can be reasonably effective as a compiler IR, but relatively poor
as something intended for direct execution or interpretation.

And, for a direct interpreter, it would likely be better to have an
instruction format more like, say:
(31:24): Source B / Imm8 / Imm16 (Hi)
(23:16): Source A / Imm16 (Lo)
(15: 8): Dest
( 7: 0): Opcode
....

But, direct interpreters have the problem that, while fairly simple and
compact, decoding and dispatching instructions tends to become a bottleneck.

It can also be noted that even in my own script VMs, while I had mostly
ended up sticking with stack-based bytecode formats, they were usually
translated (via a process similar to that mentioned previously) into a
3AC threaded-code representation (usually roughly a similar
representation at execution time to that used by my emulators).

So, the interpreter would mostly spin in a trampoline loop calling into
pre-decoded "instruction traces" rather than decode the stack bytecode
every time something was run. To some extent, type-specialization was
also done at the decoding stage, so for "auto" types, one might have
only a single version of the bytecode function, but it might split off
into multiple sets of "traces" based on the types it was called with, ...

Re: bad code, Java bytecode processors

<sh69pf$s6q$1@gal.iecc.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!not-for-mail
From: joh...@taugh.com (John Levine)
Newsgroups: comp.arch
Subject: Re: bad code, Java bytecode processors
Date: Mon, 6 Sep 2021 23:55:27 -0000 (UTC)
Organization: Taughannock Networks
Message-ID: <sh69pf$s6q$1@gal.iecc.com>
References: <sh3evb$n1v$1@newsreader4.netcologne.de> <17ac8a02-d60e-4990-90a7-18af04817964n@googlegroups.com> <sh5m8a$5le$1@newsreader4.netcologne.de> <sh5ol2$8o8$1@newsreader4.netcologne.de>
Injection-Date: Mon, 6 Sep 2021 23:55:27 -0000 (UTC)
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970";
logging-data="28890"; mail-complaints-to="abuse@iecc.com"
In-Reply-To: <sh3evb$n1v$1@newsreader4.netcologne.de> <17ac8a02-d60e-4990-90a7-18af04817964n@googlegroups.com> <sh5m8a$5le$1@newsreader4.netcologne.de> <sh5ol2$8o8$1@newsreader4.netcologne.de>
Cleverness: some
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: johnl@iecc.com (John Levine)
 by: John Levine - Mon, 6 Sep 2021 23:55 UTC

According to Thomas Koenig <tkoenig@netcologne.de>:
>I love that footnote:
>
>"Since most compiler generate stack-based code for languages such
>as C with re-entrant functions, most GPR machines wind up emulating
>stack machines to a significant extent."

There was a time when that was true. Back in the 1970s the Unix C
compiler generated a stack intermediate code and used Sethi-Ullman
numbering to arrange the sequence of operations in an expression
to try and make it fit into the registers, or equivalently into a
fixed size stack.

But that time was long gone by the time that paper was published,
although I suppose perhaps the news had not yet arrived at Berkeley.
The Berkeley RISC was designed to run code generated by pcc, a
descendant of that Unix compiler. It did the same lousy register
allocation so they invented register windows to speed up register save
and restore.

At the same time the IBM 801 project designed a machine with an
ordinary register file programmed by the PL.8 compiler which used
graph coloring to do really good register allocation. The 801 didn't
even have load or store multiple instructions, although its
descendants added them back in. By the time that paper was published
around 2000 graph coloring had become a standard technique.

This doesn't have all that much to do with Java other than to note
that we know a lot about generating good code now and in any application
where the same routine is run more than a few times, translating it
into conventional machine code that runs fast on a conventional chip is
likely to beat anything special purpose.

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

Re: bad code, Java bytecode processors

<sh70bv$2ep$1@newsreader4.netcologne.de>

  copy mid

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

  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-c002-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: bad code, Java bytecode processors
Date: Tue, 7 Sep 2021 06:20:47 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <sh70bv$2ep$1@newsreader4.netcologne.de>
References: <sh3evb$n1v$1@newsreader4.netcologne.de>
<17ac8a02-d60e-4990-90a7-18af04817964n@googlegroups.com>
<sh5m8a$5le$1@newsreader4.netcologne.de>
<sh5ol2$8o8$1@newsreader4.netcologne.de> <sh69pf$s6q$1@gal.iecc.com>
Injection-Date: Tue, 7 Sep 2021 06:20:47 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-c002-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:c002:0:7285:c2ff:fe6c:992d";
logging-data="2521"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Tue, 7 Sep 2021 06:20 UTC

John Levine <johnl@taugh.com> schrieb:
> According to Thomas Koenig <tkoenig@netcologne.de>:
>>I love that footnote:
>>
>>"Since most compiler generate stack-based code for languages such
>>as C with re-entrant functions, most GPR machines wind up emulating
>>stack machines to a significant extent."
>
> There was a time when that was true. Back in the 1970s the Unix C
> compiler generated a stack intermediate code and used Sethi-Ullman
> numbering to arrange the sequence of operations in an expression
> to try and make it fit into the registers, or equivalently into a
> fixed size stack.
>
> But that time was long gone by the time that paper was published,
> although I suppose perhaps the news had not yet arrived at Berkeley.

[...]

The paper was published in 2005, so I stronlgy suspect they knew.

However, I didn't take that remark at face value, I thoght it was
a bit tounge-in-cheek. The authors are correct in that almost all
modern compilers use stacks (zOS standard calling sequence being
an exception because of historical baggage).

Re: bad code, Java bytecode processors

<2021Sep7.090315@mips.complang.tuwien.ac.at>

  copy mid

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

  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: bad code, Java bytecode processors
Date: Tue, 07 Sep 2021 07:03:15 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 43
Message-ID: <2021Sep7.090315@mips.complang.tuwien.ac.at>
References: <sh3evb$n1v$1@newsreader4.netcologne.de> <17ac8a02-d60e-4990-90a7-18af04817964n@googlegroups.com> <sh5m8a$5le$1@newsreader4.netcologne.de> <sh5ol2$8o8$1@newsreader4.netcologne.de> <sh69pf$s6q$1@gal.iecc.com>
Injection-Info: reader02.eternal-september.org; posting-host="643681736b9831748407e62204c8f6bf";
logging-data="8228"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/PcVQU7HhEHqxgERq6kccc"
Cancel-Lock: sha1:Z/1PDKwKDWkRsuvacqLxWTU4mmw=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Tue, 7 Sep 2021 07:03 UTC

John Levine <johnl@taugh.com> writes:
>According to Thomas Koenig <tkoenig@netcologne.de>:
>>I love that footnote:
>>
>>"Since most compiler generate stack-based code for languages such
>>as C with re-entrant functions, most GPR machines wind up emulating
>>stack machines to a significant extent."
>
>There was a time when that was true. Back in the 1970s the Unix C
>compiler generated a stack intermediate code and used Sethi-Ullman
>numbering to arrange the sequence of operations in an expression
>to try and make it fit into the registers, or equivalently into a
>fixed size stack.
>
>But that time was long gone by the time that paper was published,
>although I suppose perhaps the news had not yet arrived at Berkeley.
>The Berkeley RISC was designed to run code generated by pcc, a
>descendant of that Unix compiler. It did the same lousy register
>allocation so they invented register windows to speed up register save
>and restore.

The Stanford MIPS project was more compiler-oriented, and Fred Chow
used a stack-based IR called ucode for it. AFAIK this one survived
quite a long time into commercial MIPS.

>At the same time the IBM 801 project designed a machine with an
>ordinary register file programmed by the PL.8 compiler which used
>graph coloring to do really good register allocation.

In the early years of graph coloring, it was applied only at live
ranges surviving across basic block boundaries ("global register
allocation"), while "local register allocation" techniques were used
within basic blocks, probably because applying graph colouring for all
live ranges increases memory usage and compile time. A stack-based IR
for an Algol-family language typically does not keep any values on the
stack at basic-block boundaries, so there is little, if any
interaction between using a stack-based IR and global-only graph
coloring.

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

Re: Java bytecode processors

<16a28b3c232a4c30$1$2193376$8d54264@news.newsdemon.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
Subject: Re: Java bytecode processors
Newsgroups: comp.arch
References: <sh3evb$n1v$1@newsreader4.netcologne.de> <1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com> <2021Sep6.093932@mips.complang.tuwien.ac.at> <jwvh7ex95yv.fsf-monnier+comp.arch@gnu.org> <2021Sep6.170444@mips.complang.tuwien.ac.at> <3fcc95a0-c4f9-4731-8817-776637fee6ban@googlegroups.com>
From: inva...@invalid.invalid (Nemo)
Date: Tue, 7 Sep 2021 08:51:44 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.13.0
MIME-Version: 1.0
In-Reply-To: <3fcc95a0-c4f9-4731-8817-776637fee6ban@googlegroups.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-CA
Content-Transfer-Encoding: 7bit
Message-ID: <16a28b3c232a4c30$1$2193376$8d54264@news.newsdemon.com>
Lines: 9
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!tr2.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!2a07:8080:119:fe::50.MISMATCH!news.newsdemon.com!not-for-mail
NNTP-Posting-Date: Tue, 7 Sep 2021 12:51:45 +0000
X-Received-Bytes: 1113
Organization: NewsDemon - www.newsdemon.com
X-Complaints-To: abuse@newsdemon.com
 by: Nemo - Tue, 7 Sep 2021 12:51 UTC

On 2021-09-06 12:25, MitchAlsup wrote (in part):
[...]
> Java byte code is stack based, to JVM would have to execute 3-4 byte
> code instructions per cycle to be in the same ball park as a GBOoO
> machine executing 1 instruction per cycle. JIT is the better path.

Are there any JIT implementations on things such as JavaCard or any UICC?

N.

Re: Java bytecode processors

<dGJZI.33597$2B4.10685@fx04.iad>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx04.iad.POSTED!not-for-mail
From: ThatWoul...@thevillage.com (EricP)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
Newsgroups: comp.arch
Subject: Re: Java bytecode processors
References: <sh3evb$n1v$1@newsreader4.netcologne.de> <1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com> <sh4aaq$8p9$1@newsreader4.netcologne.de> <J6rZI.29250$z%4.26088@fx37.iad> <sh5u63$rn9$1@gioia.aioe.org>
In-Reply-To: <sh5u63$rn9$1@gioia.aioe.org>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 63
Message-ID: <dGJZI.33597$2B4.10685@fx04.iad>
X-Complaints-To: abuse@UsenetServer.com
NNTP-Posting-Date: Tue, 07 Sep 2021 13:20:09 UTC
Date: Tue, 07 Sep 2021 09:19:41 -0400
X-Received-Bytes: 3440
 by: EricP - Tue, 7 Sep 2021 13:19 UTC

Terje Mathisen wrote:
> EricP wrote:
>> Thomas Koenig wrote:
>>> MitchAlsup <MitchAlsup@aol.com> schrieb:
>>>> On Sunday, September 5, 2021 at 5:05:33 PM UTC-5, Thomas Koenig wrote:
>>>>> Although there are Java bytecode processors (even one available on
>>>>> Github, https://github.com/amal029/jop) they have had very limited
>>>>> success.
>>>>> Why?
>>>> <
>>>> A Bytecode interpreter, even in HW will have a serious performance
>>>> issue when compared to a cross compiling native instruction set.
>>>> Probably around 2×-3× penalty.
>>>
>>> Of course, the latency of the first-time compilation is somewhat
>>> large :-)
>>>
>>> It is interesting to read the claims about picojava, which are
>>> (unfortunately) not substantiated anywhere where I can get
>>> to without a paywall.
>>
>> 1997 paper by Sun engineers on picoJava uArch and benchmarks says
>> it was 15-20 times faster than a 486/33 running interpreter,
>> and about 7-10 times faster than JIT.
>>
>> picoJava-I: The Java Virtual Machine in Hardware, 1997
>> https://tsunami.zaibatsutel.net/liberez/picojava.pdf
>
> I remember that one, also that I was pretty much certain their
> comparison with a 486-33 was completely bogus (Pentium arrived in
> 1993/94, then we got the PPro around 96/97?). I.e. a Pentium in the
> 100-200 MHz range ran 5-10 times faster than their reference 486-33.

I had the same thought while reading it but had no basis
to call B.S. on the numbers.

Just from their description of how limited their microarchitecture was,
the 486 should have beat it, let alone a dual pipeline Pentium.

> I also remember thinking that their JVM interpreter must have been quite
> bad, it should be possible to at the very least get down to less than 10
> cycles (including branch misses) per JVM byte code executed, while a JIT
> would run significantly faster unless you included the JIT time in the
> comparison.
>
> Terje
>

They don't provide enough information to drill down into their
numbers and see where they are spending the x86 instructions.

Here is the Sun patent for a similar sounding contemporaneous Java cpu.
This English version was from Japan - in days of yore companies would
try to hide patents from competitors by filing in other countries,
even splitting them up across multiple countries.
With Google Patent that doesn't work any more,
found this by searching on the paper authors' name.

Instruction folding for stack-based machine, 1996
https://patents.google.com/patent/JP2006216069A/en

Re: Java bytecode processors

<sh7pcl$7bf$1@dont-email.me>

  copy mid

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

  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: Java bytecode processors
Date: Tue, 7 Sep 2021 15:27:48 +0200
Organization: A noiseless patient Spider
Lines: 44
Message-ID: <sh7pcl$7bf$1@dont-email.me>
References: <sh3evb$n1v$1@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 7 Sep 2021 13:27:49 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="76c3a7076dec9959b565d7444758b9f1";
logging-data="7535"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/PFcA3xBw/eS6OnNEJpQeCD5rgu0ZIjn8="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.13.0
Cancel-Lock: sha1:1vmmuDsFRSF6jUEzxPIA1mLeaRk=
In-Reply-To: <sh3evb$n1v$1@newsreader4.netcologne.de>
Content-Language: en-US
 by: Marcus - Tue, 7 Sep 2021 13:27 UTC

On 2021-09-06 00:05, Thomas Koenig wrote:
> Although there are Java bytecode processors (even one available on
> Github, https://github.com/amal029/jop) they have had very limited
> success.
>
> Why? A lot of commercial code runs on JVM now (I've heard quipped
> that Java is the new COBOL), and I would expect significant
> performance increase from a native implementation as opposed to
> an interpreter or a JIT compiler. Or have JIT compilers become
> so good that it no longer matters, and the effort of introducing
> a new architecture would be too large (again)?
>

I guess one reason is that the systems that run Java bytecode typically
also has to run other code (e.g. a Linux based OS), so you would have to
have HW support for both the Java code and something else (e.g. ARM or
x86).

Thus the Java bytecode processor would either have to be implemented as
a separate co-processor (SoC style), or as a translation layer in the
main CPU front-end.

The co-processor approach would effectively require an extra dedicated
core that can only run Java code, while the "main" core can only run
"native" (non-Java) code. This kind of heterogeneous system is very
likely to see underutilized cores, compared to just running on-demand
JIT on any core I think that this, by it self, will disqualify this
solution for most applications.

The multi-ISA front end approach has been used in many designs (x86,
ARM, etc) for similar ISA:s (e.g. THUMB+ARM32 or ARM32+ARM64), but in
those cases the ISA:s have been similar enough that the internal
architecture maps well to the different front end ISA:s. I guess that
the JVM bytecode ISA is a poor match for most modern architectures, so
it is probably difficult to create an efficient & small enough
translation front end that can co-exist with a more regular register
based ISA front end and map onto the same internal architecture.

I believe the Jazelle DBX falls into the latter category, but OTOH it
seems that it was never able to clearly beat JIT, so the extra hardware
cost probably failed to deliver any significant value in terms of
performance.

/Marcus

Re: Java bytecode processors

<sh7ttc$r9h$1@z-news.wcss.wroc.pl>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!4.us.feeder.erje.net!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.com!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!newsfeed.pionier.net.pl!pwr.wroc.pl!news.wcss.wroc.pl!not-for-mail
From: antis...@math.uni.wroc.pl
Newsgroups: comp.arch
Subject: Re: Java bytecode processors
Date: Tue, 7 Sep 2021 14:45:00 +0000 (UTC)
Organization: Politechnika Wroclawska
Lines: 28
Distribution: world
Message-ID: <sh7ttc$r9h$1@z-news.wcss.wroc.pl>
References: <sh3evb$n1v$1@newsreader4.netcologne.de>
NNTP-Posting-Host: hera.math.uni.wroc.pl
X-Trace: z-news.wcss.wroc.pl 1631025900 27953 156.17.86.1 (7 Sep 2021 14:45:00 GMT)
X-Complaints-To: abuse@news.pwr.wroc.pl
NNTP-Posting-Date: Tue, 7 Sep 2021 14:45:00 +0000 (UTC)
Cancel-Lock: sha1:kvoOfpckb3RnElTTIymqK0Gxgn8=
User-Agent: tin/2.4.3-20181224 ("Glen Mhor") (UNIX) (Linux/4.19.0-10-amd64 (x86_64))
X-Received-Bytes: 2220
 by: antis...@math.uni.wroc.pl - Tue, 7 Sep 2021 14:45 UTC

Thomas Koenig <tkoenig@netcologne.de> wrote:
> Although there are Java bytecode processors (even one available on
> Github, https://github.com/amal029/jop) they have had very limited
> success.
>
> Why? A lot of commercial code runs on JVM now (I've heard quipped
> that Java is the new COBOL), and I would expect significant
> performance increase from a native implementation as opposed to
> an interpreter or a JIT compiler. Or have JIT compilers become
> so good that it no longer matters, and the effort of introducing
> a new architecture would be too large (again)?

I agree with other folks that hardware bytecode is unlikely
to give better speed than JIT. For me main motivation
of bytecode is possible size optimization. I expect bytecode
to be much smaller than native code (some sources claim factor
of 6). So, keeping "cold" code in bytecode form could offer
significant space saving. OTOH executing bytecode by hardware
should be much faster than interpreter. So split between
JIT/native code and bytecode would be less critical and
larger part of application could be kept in bytecode form.

But chip designer have many ways to improve performance, it
is not clear if hardware support for bytecodes is better than
alternatives.

--
Waldek Hebisch

Re: Java bytecode processors

<DqCdnWbOXs-U_Kb8nZ2dnUU78e-dnZ2d@supernews.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!border2.nntp.ams1.giganews.com!nntp.giganews.com!buffer2.nntp.ams1.giganews.com!buffer1.nntp.ams1.giganews.com!nntp.supernews.com!news.supernews.com.POSTED!not-for-mail
NNTP-Posting-Date: Fri, 10 Sep 2021 08:43:37 -0500
Sender: Andrew Haley <aph@zarquon.pink>
From: aph...@littlepinkcloud.invalid
Subject: Re: Java bytecode processors
Newsgroups: comp.arch
References: <sh3evb$n1v$1@newsreader4.netcologne.de> <1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com> <sh3n17$fdf$1@dont-email.me>
User-Agent: tin/1.9.2-20070201 ("Dalaruan") (UNIX) (Linux/4.18.0-240.8.1.el8_3.x86_64 (x86_64))
Message-ID: <DqCdnWbOXs-U_Kb8nZ2dnUU78e-dnZ2d@supernews.com>
Date: Fri, 10 Sep 2021 08:43:37 -0500
Lines: 30
X-Trace: sv3-SXwsVEfyQZCbiSddk/JSGi3OZ9un8/igTVvrx6DD07IVPv7uqT5VB5L28X8w0MUibExNNf0i+NV+JGB!4zH6kfhd7BdQ+adq8gv78TtrJurFPnDJnZ2ABvV00gcoCBNmV7PPC5XGpzZ3qGOs7DxqkX7WT1og!zBvx1B5l
X-Complaints-To: www.supernews.com/docs/abuse.html
X-DMCA-Complaints-To: www.supernews.com/docs/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 2473
 by: aph...@littlepinkcloud.invalid - Fri, 10 Sep 2021 13:43 UTC

BGB <cr88192@gmail.com> wrote:
> On 9/5/2021 6:05 PM, MitchAlsup wrote:
>> On Sunday, September 5, 2021 at 5:05:33 PM UTC-5, Thomas Koenig wrote:
>>> Although there are Java bytecode processors (even one available on
>>> Github, https://github.com/amal029/jop) they have had very limited
>>> success.
>>>
>>> Why?
>> <
>> A Bytecode interpreter, even in HW will have a serious performance
>> issue when compared to a cross compiling native instruction set.
>> Probably around 2?-3? penalty.
>
> I think there is a reason why stack-oriented ISAs are no longer a thing.
>
> Either the stack would need to map to registers, or be treated as a
> special sort of special-purpose cache. The stack is also likely to
> become a serious bottleneck if one can't schedule multiple
> stack-operations per clock-cycle, and one would need to either operate
> at a somewhat higher clock-speed or execute a large number of
> instructions per cycle to be performance competitive with a 3R ISA.

Why would that be a problem? If you had a GBOOO machine, the stack
slots would be renamed to physical registers, just as they usually
are. In the JVM the expression stack is not of arbitrary size, but
each method context has a fixed-size array of registers. Renaming
those surely wouldn't be hard at all, as long as the stack wasn't very
large.

Andrew.

Re: Java bytecode processors

<1c9ec24c-2321-4ce1-9163-e7d7196da637n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:2012:: with SMTP id c18mr8838621qka.312.1631296525050;
Fri, 10 Sep 2021 10:55:25 -0700 (PDT)
X-Received: by 2002:a9d:450b:: with SMTP id w11mr5999656ote.254.1631296524789;
Fri, 10 Sep 2021 10:55:24 -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, 10 Sep 2021 10:55:24 -0700 (PDT)
In-Reply-To: <DqCdnWbOXs-U_Kb8nZ2dnUU78e-dnZ2d@supernews.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:5027:7e9b:eaf7:6c1;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:5027:7e9b:eaf7:6c1
References: <sh3evb$n1v$1@newsreader4.netcologne.de> <1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com>
<sh3n17$fdf$1@dont-email.me> <DqCdnWbOXs-U_Kb8nZ2dnUU78e-dnZ2d@supernews.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <1c9ec24c-2321-4ce1-9163-e7d7196da637n@googlegroups.com>
Subject: Re: Java bytecode processors
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Fri, 10 Sep 2021 17:55:25 +0000
Content-Type: text/plain; charset="UTF-8"
 by: MitchAlsup - Fri, 10 Sep 2021 17:55 UTC

On Friday, September 10, 2021 at 8:43:39 AM UTC-5, a...@littlepinkcloud.invalid wrote:
> BGB <cr8...@gmail.com> wrote:
> > On 9/5/2021 6:05 PM, MitchAlsup wrote:
> >> On Sunday, September 5, 2021 at 5:05:33 PM UTC-5, Thomas Koenig wrote:
> >>> Although there are Java bytecode processors (even one available on
> >>> Github, https://github.com/amal029/jop) they have had very limited
> >>> success.
> >>>
> >>> Why?
> >> <
> >> A Bytecode interpreter, even in HW will have a serious performance
> >> issue when compared to a cross compiling native instruction set.
> >> Probably around 2?-3? penalty.
> >
> > I think there is a reason why stack-oriented ISAs are no longer a thing.
> >
> > Either the stack would need to map to registers, or be treated as a
> > special sort of special-purpose cache. The stack is also likely to
> > become a serious bottleneck if one can't schedule multiple
> > stack-operations per clock-cycle, and one would need to either operate
> > at a somewhat higher clock-speed or execute a large number of
> > instructions per cycle to be performance competitive with a 3R ISA.
>
> Why would that be a problem? If you had a GBOOO machine, the stack
> slots would be renamed to physical registers, just as they usually
> are. In the JVM the expression stack is not of arbitrary size, but
> each method context has a fixed-size array of registers. Renaming
> those surely wouldn't be hard at all, as long as the stack wasn't very
> large.
<
The problem comes at decode, in order to get 3-4 RISC instructions/cycle
of useful throughput, one would have to be decoding 8-10 JBC instructions
per cycle. Not saying it cannot be done, but the semantic density of the
byte is not as great as the semantic density of a RISC Word.
<
>
> Andrew.

Re: Java bytecode processors

<shgg0g$hlc$1@newsreader4.netcologne.de>

  copy mid

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

  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-c002-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Java bytecode processors
Date: Fri, 10 Sep 2021 20:42:56 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <shgg0g$hlc$1@newsreader4.netcologne.de>
References: <sh3evb$n1v$1@newsreader4.netcologne.de>
<1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com>
<sh3n17$fdf$1@dont-email.me>
<DqCdnWbOXs-U_Kb8nZ2dnUU78e-dnZ2d@supernews.com>
<1c9ec24c-2321-4ce1-9163-e7d7196da637n@googlegroups.com>
Injection-Date: Fri, 10 Sep 2021 20:42:56 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-c002-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:c002:0:7285:c2ff:fe6c:992d";
logging-data="18092"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Fri, 10 Sep 2021 20:42 UTC

MitchAlsup <MitchAlsup@aol.com> schrieb:
> On Friday, September 10, 2021 at 8:43:39 AM UTC-5, a...@littlepinkcloud.invalid wrote:
>> BGB <cr8...@gmail.com> wrote:
>> > On 9/5/2021 6:05 PM, MitchAlsup wrote:
>> >> On Sunday, September 5, 2021 at 5:05:33 PM UTC-5, Thomas Koenig wrote:
>> >>> Although there are Java bytecode processors (even one available on
>> >>> Github, https://github.com/amal029/jop) they have had very limited
>> >>> success.
>> >>>
>> >>> Why?
>> >> <
>> >> A Bytecode interpreter, even in HW will have a serious performance
>> >> issue when compared to a cross compiling native instruction set.
>> >> Probably around 2?-3? penalty.
>> >
>> > I think there is a reason why stack-oriented ISAs are no longer a thing.
>> >
>> > Either the stack would need to map to registers, or be treated as a
>> > special sort of special-purpose cache. The stack is also likely to
>> > become a serious bottleneck if one can't schedule multiple
>> > stack-operations per clock-cycle, and one would need to either operate
>> > at a somewhat higher clock-speed or execute a large number of
>> > instructions per cycle to be performance competitive with a 3R ISA.
>>
>> Why would that be a problem? If you had a GBOOO machine, the stack
>> slots would be renamed to physical registers, just as they usually
>> are. In the JVM the expression stack is not of arbitrary size, but
>> each method context has a fixed-size array of registers. Renaming
>> those surely wouldn't be hard at all, as long as the stack wasn't very
>> large.
><
> The problem comes at decode, in order to get 3-4 RISC instructions/cycle
> of useful throughput, one would have to be decoding 8-10 JBC instructions
> per cycle. Not saying it cannot be done, but the semantic density of the
> byte is not as great as the semantic density of a RISC Word.

Also, it is apparently beneficial to elide some pure stack movement
instructions at decode time (which was in one of the publications).

Still, if you have ~2 single-byte stack instructions for a 32-bit
RISC instruction, at least the icache can be smaller.

Re: Java bytecode processors

<f0629b3b-83d1-41d4-8143-1bb92c0a581fn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:14b1:: with SMTP id x17mr9956026qkj.37.1631309716685;
Fri, 10 Sep 2021 14:35:16 -0700 (PDT)
X-Received: by 2002:a54:4197:: with SMTP id 23mr5896403oiy.122.1631309716433;
Fri, 10 Sep 2021 14:35:16 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 10 Sep 2021 14:35:16 -0700 (PDT)
In-Reply-To: <shgg0g$hlc$1@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:5027:7e9b:eaf7:6c1;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:5027:7e9b:eaf7:6c1
References: <sh3evb$n1v$1@newsreader4.netcologne.de> <1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com>
<sh3n17$fdf$1@dont-email.me> <DqCdnWbOXs-U_Kb8nZ2dnUU78e-dnZ2d@supernews.com>
<1c9ec24c-2321-4ce1-9163-e7d7196da637n@googlegroups.com> <shgg0g$hlc$1@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f0629b3b-83d1-41d4-8143-1bb92c0a581fn@googlegroups.com>
Subject: Re: Java bytecode processors
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Fri, 10 Sep 2021 21:35:16 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 45
 by: MitchAlsup - Fri, 10 Sep 2021 21:35 UTC

On Friday, September 10, 2021 at 3:42:58 PM UTC-5, Thomas Koenig wrote:
> MitchAlsup <Mitch...@aol.com> schrieb:
> > On Friday, September 10, 2021 at 8:43:39 AM UTC-5, a...@littlepinkcloud.invalid wrote:
> >> BGB <cr8...@gmail.com> wrote:
> >> > On 9/5/2021 6:05 PM, MitchAlsup wrote:
> >> >> On Sunday, September 5, 2021 at 5:05:33 PM UTC-5, Thomas Koenig wrote:
> >> >>> Although there are Java bytecode processors (even one available on
> >> >>> Github, https://github.com/amal029/jop) they have had very limited
> >> >>> success.
> >> >>>
> >> >>> Why?
> >> >> <
> >> >> A Bytecode interpreter, even in HW will have a serious performance
> >> >> issue when compared to a cross compiling native instruction set.
> >> >> Probably around 2?-3? penalty.
> >> >
> >> > I think there is a reason why stack-oriented ISAs are no longer a thing.
> >> >
> >> > Either the stack would need to map to registers, or be treated as a
> >> > special sort of special-purpose cache. The stack is also likely to
> >> > become a serious bottleneck if one can't schedule multiple
> >> > stack-operations per clock-cycle, and one would need to either operate
> >> > at a somewhat higher clock-speed or execute a large number of
> >> > instructions per cycle to be performance competitive with a 3R ISA.
> >>
> >> Why would that be a problem? If you had a GBOOO machine, the stack
> >> slots would be renamed to physical registers, just as they usually
> >> are. In the JVM the expression stack is not of arbitrary size, but
> >> each method context has a fixed-size array of registers. Renaming
> >> those surely wouldn't be hard at all, as long as the stack wasn't very
> >> large.
> ><
> > The problem comes at decode, in order to get 3-4 RISC instructions/cycle
> > of useful throughput, one would have to be decoding 8-10 JBC instructions
> > per cycle. Not saying it cannot be done, but the semantic density of the
> > byte is not as great as the semantic density of a RISC Word.
<
> Also, it is apparently beneficial to elide some pure stack movement
> instructions at decode time (which was in one of the publications).
<
Elision is something HW has a definite horizon for which SW does not.
>
> Still, if you have ~2 single-byte stack instructions for a 32-bit
> RISC instruction, at least the icache can be smaller.
<
Or higher performing.....

Re: Java bytecode processors

<shgjge$a5a$1@dont-email.me>

  copy mid

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

  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: Java bytecode processors
Date: Fri, 10 Sep 2021 16:41:14 -0500
Organization: A noiseless patient Spider
Lines: 55
Message-ID: <shgjge$a5a$1@dont-email.me>
References: <sh3evb$n1v$1@newsreader4.netcologne.de>
<1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com>
<sh3n17$fdf$1@dont-email.me> <DqCdnWbOXs-U_Kb8nZ2dnUU78e-dnZ2d@supernews.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 10 Sep 2021 21:42:38 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="f35acec378136cb12f8e4c615a0dc677";
logging-data="10410"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/VO3heCUkqXSsGHPNL7q3W"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.14.0
Cancel-Lock: sha1:sUFHbkZRFl/84+y0LgXxQ/+zMsg=
In-Reply-To: <DqCdnWbOXs-U_Kb8nZ2dnUU78e-dnZ2d@supernews.com>
Content-Language: en-US
 by: BGB - Fri, 10 Sep 2021 21:41 UTC

On 9/10/2021 8:43 AM, aph@littlepinkcloud.invalid wrote:
> BGB <cr88192@gmail.com> wrote:
>> On 9/5/2021 6:05 PM, MitchAlsup wrote:
>>> On Sunday, September 5, 2021 at 5:05:33 PM UTC-5, Thomas Koenig wrote:
>>>> Although there are Java bytecode processors (even one available on
>>>> Github, https://github.com/amal029/jop) they have had very limited
>>>> success.
>>>>
>>>> Why?
>>> <
>>> A Bytecode interpreter, even in HW will have a serious performance
>>> issue when compared to a cross compiling native instruction set.
>>> Probably around 2?-3? penalty.
>>
>> I think there is a reason why stack-oriented ISAs are no longer a thing.
>>
>> Either the stack would need to map to registers, or be treated as a
>> special sort of special-purpose cache. The stack is also likely to
>> become a serious bottleneck if one can't schedule multiple
>> stack-operations per clock-cycle, and one would need to either operate
>> at a somewhat higher clock-speed or execute a large number of
>> instructions per cycle to be performance competitive with a 3R ISA.
>
> Why would that be a problem? If you had a GBOOO machine, the stack
> slots would be renamed to physical registers, just as they usually
> are. In the JVM the expression stack is not of arbitrary size, but
> each method context has a fixed-size array of registers. Renaming
> those surely wouldn't be hard at all, as long as the stack wasn't very
> large.
>

On most machines where this sort of thing is tempting, they have
typically been using small in-order processors.

Needing to use register renaming and possibly skipping over a variable
numbers of instructions during decode seems like a bit of a stretch.

Then again, thinking about it, "just taking the hit" could still be
better than a plain interpreter on a machine which is too small to be
able to run a JIT. But, then I guess the question is more what sorts of
machines are too small to afford a JIT, but still big enough to where
running a JVM makes sense.

A JIT, unlike a full compiler, does not particularly need to be
particularly complicated or memory intensive (more so when the bytecode
ops have already sorted out things like value types, etc).

Many of the remaining complicated/expensive parts (such as the logic to
deal with in-memory object layouts, ...) would have already been needed
by the interpreter.

....

Re: Java bytecode processors

<3fea318c-62be-4d30-aafb-976eeee14908n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:448e:: with SMTP id x14mr9823735qkp.526.1631312014939;
Fri, 10 Sep 2021 15:13:34 -0700 (PDT)
X-Received: by 2002:a4a:ba86:: with SMTP id d6mr6175756oop.61.1631312014615;
Fri, 10 Sep 2021 15:13:34 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 10 Sep 2021 15:13:34 -0700 (PDT)
In-Reply-To: <sh7ttc$r9h$1@z-news.wcss.wroc.pl>
Injection-Info: google-groups.googlegroups.com; posting-host=136.50.182.0; posting-account=AoizIQoAAADa7kQDpB0DAj2jwddxXUgl
NNTP-Posting-Host: 136.50.182.0
References: <sh3evb$n1v$1@newsreader4.netcologne.de> <sh7ttc$r9h$1@z-news.wcss.wroc.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3fea318c-62be-4d30-aafb-976eeee14908n@googlegroups.com>
Subject: Re: Java bytecode processors
From: jim.brak...@ieee.org (JimBrakefield)
Injection-Date: Fri, 10 Sep 2021 22:13:34 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 40
 by: JimBrakefield - Fri, 10 Sep 2021 22:13 UTC

On Tuesday, September 7, 2021 at 9:45:02 AM UTC-5, anti...@math.uni.wroc.pl wrote:
> Thomas Koenig <tko...@netcologne.de> wrote:
> > Although there are Java bytecode processors (even one available on
> > Github, https://github.com/amal029/jop) they have had very limited
> > success.
> >
> > Why? A lot of commercial code runs on JVM now (I've heard quipped
> > that Java is the new COBOL), and I would expect significant
> > performance increase from a native implementation as opposed to
> > an interpreter or a JIT compiler. Or have JIT compilers become
> > so good that it no longer matters, and the effort of introducing
> > a new architecture would be too large (again)?
> I agree with other folks that hardware bytecode is unlikely
> to give better speed than JIT. For me main motivation
> of bytecode is possible size optimization. I expect bytecode
> to be much smaller than native code (some sources claim factor
> of 6). So, keeping "cold" code in bytecode form could offer
> significant space saving. OTOH executing bytecode by hardware
> should be much faster than interpreter. So split between
> JIT/native code and bytecode would be less critical and
> larger part of application could be kept in bytecode form.
>
> But chip designer have many ways to improve performance, it
> is not clear if hardware support for bytecodes is better than
> alternatives.
>
> --
> Waldek Hebisch

Explore extending a byte code ISA to a two byte ISA.
gives both a stack operator and a stack reference
and with the few remaining bits one can concoct all manner
of extras: replace result into stack reference, pop/push the stack,
indirect addressing through the stack reference, apply indexing
to the stack reference as an address
I.e. use the stack frame of mind/reference to add features which
map into RISC instructions easily.

The goal is to decrease the instruction count and increase the semantic content.
What results may cross the boundaries between all the architectural norms?
Could go into more detail except prefer others work the problem for a while?

Re: Java bytecode processors

<shglut$k9r$1@dont-email.me>

  copy mid

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

  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: Java bytecode processors
Date: Fri, 10 Sep 2021 17:23:09 -0500
Organization: A noiseless patient Spider
Lines: 83
Message-ID: <shglut$k9r$1@dont-email.me>
References: <sh3evb$n1v$1@newsreader4.netcologne.de>
<1c50b98a-8206-43ad-b7f6-910410f03c5an@googlegroups.com>
<sh3n17$fdf$1@dont-email.me> <DqCdnWbOXs-U_Kb8nZ2dnUU78e-dnZ2d@supernews.com>
<1c9ec24c-2321-4ce1-9163-e7d7196da637n@googlegroups.com>
<shgg0g$hlc$1@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 10 Sep 2021 22:24:29 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="c5184feed35a074691f636cdcfe7cce4";
logging-data="20795"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+k9OGB9pFMtsQSJREgu10t"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.14.0
Cancel-Lock: sha1:WaTk+g81s1iCsUoTOq2hwC0b2Ic=
In-Reply-To: <shgg0g$hlc$1@newsreader4.netcologne.de>
Content-Language: en-US
 by: BGB - Fri, 10 Sep 2021 22:23 UTC

On 9/10/2021 3:42 PM, Thomas Koenig wrote:
> MitchAlsup <MitchAlsup@aol.com> schrieb:
>> On Friday, September 10, 2021 at 8:43:39 AM UTC-5, a...@littlepinkcloud.invalid wrote:
>>> BGB <cr8...@gmail.com> wrote:
>>>> On 9/5/2021 6:05 PM, MitchAlsup wrote:
>>>>> On Sunday, September 5, 2021 at 5:05:33 PM UTC-5, Thomas Koenig wrote:
>>>>>> Although there are Java bytecode processors (even one available on
>>>>>> Github, https://github.com/amal029/jop) they have had very limited
>>>>>> success.
>>>>>>
>>>>>> Why?
>>>>> <
>>>>> A Bytecode interpreter, even in HW will have a serious performance
>>>>> issue when compared to a cross compiling native instruction set.
>>>>> Probably around 2?-3? penalty.
>>>>
>>>> I think there is a reason why stack-oriented ISAs are no longer a thing.
>>>>
>>>> Either the stack would need to map to registers, or be treated as a
>>>> special sort of special-purpose cache. The stack is also likely to
>>>> become a serious bottleneck if one can't schedule multiple
>>>> stack-operations per clock-cycle, and one would need to either operate
>>>> at a somewhat higher clock-speed or execute a large number of
>>>> instructions per cycle to be performance competitive with a 3R ISA.
>>>
>>> Why would that be a problem? If you had a GBOOO machine, the stack
>>> slots would be renamed to physical registers, just as they usually
>>> are. In the JVM the expression stack is not of arbitrary size, but
>>> each method context has a fixed-size array of registers. Renaming
>>> those surely wouldn't be hard at all, as long as the stack wasn't very
>>> large.
>> <
>> The problem comes at decode, in order to get 3-4 RISC instructions/cycle
>> of useful throughput, one would have to be decoding 8-10 JBC instructions
>> per cycle. Not saying it cannot be done, but the semantic density of the
>> byte is not as great as the semantic density of a RISC Word.
>
> Also, it is apparently beneficial to elide some pure stack movement
> instructions at decode time (which was in one of the publications).
>
> Still, if you have ~2 single-byte stack instructions for a 32-bit
> RISC instruction, at least the icache can be smaller.
>

One can get a similar savings by also having 16-bit instructions.

An ISA with a mix of 16 and 32 bit encodings can do pretty good on a
code-density front.

Meanwhile, the number of 16-bit ops needed is still less than it would
require to do an operation with stack ops.

Though, I can note a possibly related bit of trivia:
My C compiler uses a stack-based IR (RIL3), which is along vaguely
similar lines to JVM and .NET bytecode;
The RIL bytecode for the C library tends to actually be several times
larger than the typical size of the final binaries.

Granted, the RIL bytecode has a few drawbacks here:
Contains a lot of symbolic information (function and variable names);
May contain code or functions which are culled from the final binary;
Other format quirks, such as the format using bytecode ops to also
encode most of the metadata;
....

As with .NET bytecode, most RIL ops do not encode types, but rather
receive the types via the stack.

No current plans though for a RIL interpreter for BJX2, but the design
isn't really a great format for an interpreter.

Would ideally want a format with explicitly typed bytecode ops and
structure-based metadata, more like either JVM bytecode or my prior
BS2VM bytecode (which was itself sort of like JVM bytecode, just with a
single large "bytecode image file" in place of a bunch of ".class"
files; and with an expanded type-system and assumed the use of 64-bit
stack elements), but expanded out to be effectively usable as a target
for compiling C and similar.

....

Re: Java bytecode processors

<a893e392-fead-4b06-9ffe-55334980b738n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:146d:: with SMTP id c13mr190469qvy.46.1631316839971;
Fri, 10 Sep 2021 16:33:59 -0700 (PDT)
X-Received: by 2002:a05:6808:10c8:: with SMTP id s8mr154420ois.175.1631316838889;
Fri, 10 Sep 2021 16:33:58 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 10 Sep 2021 16:33:58 -0700 (PDT)
In-Reply-To: <3fea318c-62be-4d30-aafb-976eeee14908n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=136.50.182.0; posting-account=AoizIQoAAADa7kQDpB0DAj2jwddxXUgl
NNTP-Posting-Host: 136.50.182.0
References: <sh3evb$n1v$1@newsreader4.netcologne.de> <sh7ttc$r9h$1@z-news.wcss.wroc.pl>
<3fea318c-62be-4d30-aafb-976eeee14908n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a893e392-fead-4b06-9ffe-55334980b738n@googlegroups.com>
Subject: Re: Java bytecode processors
From: jim.brak...@ieee.org (JimBrakefield)
Injection-Date: Fri, 10 Sep 2021 23:33:59 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 47
 by: JimBrakefield - Fri, 10 Sep 2021 23:33 UTC

On Friday, September 10, 2021 at 5:13:36 PM UTC-5, JimBrakefield wrote:
> On Tuesday, September 7, 2021 at 9:45:02 AM UTC-5, anti...@math.uni.wroc.pl wrote:
> > Thomas Koenig <tko...@netcologne.de> wrote:
> > > Although there are Java bytecode processors (even one available on
> > > Github, https://github.com/amal029/jop) they have had very limited
> > > success.
> > >
> > > Why? A lot of commercial code runs on JVM now (I've heard quipped
> > > that Java is the new COBOL), and I would expect significant
> > > performance increase from a native implementation as opposed to
> > > an interpreter or a JIT compiler. Or have JIT compilers become
> > > so good that it no longer matters, and the effort of introducing
> > > a new architecture would be too large (again)?
> > I agree with other folks that hardware bytecode is unlikely
> > to give better speed than JIT. For me main motivation
> > of bytecode is possible size optimization. I expect bytecode
> > to be much smaller than native code (some sources claim factor
> > of 6). So, keeping "cold" code in bytecode form could offer
> > significant space saving. OTOH executing bytecode by hardware
> > should be much faster than interpreter. So split between
> > JIT/native code and bytecode would be less critical and
> > larger part of application could be kept in bytecode form.
> >
> > But chip designer have many ways to improve performance, it
> > is not clear if hardware support for bytecodes is better than
> > alternatives.
> >
> > --
> > Waldek Hebisch
> Explore extending a byte code ISA to a two byte ISA.
> gives both a stack operator and a stack reference
> and with the few remaining bits one can concoct all manner
> of extras: replace result into stack reference, pop/push the stack,
> indirect addressing through the stack reference, apply indexing
> to the stack reference as an address
> I.e. use the stack frame of mind/reference to add features which
> map into RISC instructions easily.
>
> The goal is to decrease the instruction count and increase the semantic content.
> What results may cross the boundaries between all the architectural norms?
> Could go into more detail except prefer others work the problem for a while?

Duh, mistook the discussion thread to be about possible/potential byte code
hardware implementations rather than official Java byte code hardware implementation.
E.g I'm interested in potential Java hardware targets rather than official Java byte code
hardware processing. Didn't see the tree for the forest?

Still there is the question of the best JIT byte code target?

Re: Java bytecode processors

<shguv8$2416$1@gal.iecc.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!not-for-mail
From: joh...@taugh.com (John Levine)
Newsgroups: comp.arch
Subject: Re: Java bytecode processors
Date: Sat, 11 Sep 2021 00:58:16 -0000 (UTC)
Organization: Taughannock Networks
Message-ID: <shguv8$2416$1@gal.iecc.com>
References: <sh3evb$n1v$1@newsreader4.netcologne.de> <sh7ttc$r9h$1@z-news.wcss.wroc.pl> <3fea318c-62be-4d30-aafb-976eeee14908n@googlegroups.com>
Injection-Date: Sat, 11 Sep 2021 00:58:16 -0000 (UTC)
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970";
logging-data="69670"; mail-complaints-to="abuse@iecc.com"
In-Reply-To: <sh3evb$n1v$1@newsreader4.netcologne.de> <sh7ttc$r9h$1@z-news.wcss.wroc.pl> <3fea318c-62be-4d30-aafb-976eeee14908n@googlegroups.com>
Cleverness: some
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: johnl@iecc.com (John Levine)
 by: John Levine - Sat, 11 Sep 2021 00:58 UTC

According to JimBrakefield <jim.brakefield@ieee.org>:
>Explore extending a byte code ISA to a two byte ISA.
>gives both a stack operator and a stack reference
>and with the few remaining bits one can concoct all manner
>of extras: replace result into stack reference, pop/push the stack,
>indirect addressing through the stack reference, apply indexing
>to the stack reference as an address
> I.e. use the stack frame of mind/reference to add features which
>map into RISC instructions easily.

Sounds a lot like a PDP-11.

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

Pages:12345678910
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor