Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

It is not well to be thought of as one who meekly submits to insolence and intimidation.


devel / comp.arch / Re: Could we build a better 6502?

SubjectAuthor
* Could we build a better 6502?Thomas Koenig
+* Re: Could we build a better 6502?Quadibloc
|+* Re: Could we build a better 6502?John Levine
||+* Re: Could we build a better 6502?MitchAlsup
|||`* Re: Could we build a better 6502?aph
||| `* Re: Could we build a better 6502?Anton Ertl
|||  `* Re: Could we build a better 6502?MitchAlsup
|||   +- Re: Could we build a better 6502?Thomas Koenig
|||   +- Re: Could we build a better 6502?Anton Ertl
|||   `* Re: Could we build a better 6502?Quadibloc
|||    `* Re: Could we build a better 6502?Thomas Koenig
|||     +* Re: Could we build a better 6502?Brian G. Lucas
|||     |`* Re: Could we build a better 6502?Quadibloc
|||     | +- Re: Could we build a better 6502?Brian G. Lucas
|||     | `- Re: Could we build a better 6502?Anton Ertl
|||     +* Re: Could we build a better 6502?Stephen Fuld
|||     |+- Re: Could we build a better 6502?Terje Mathisen
|||     |`* Re: Could we build a better 6502?pec...@gmail.com
|||     | +* Re: Could we build a better 6502?MitchAlsup
|||     | |+* Re: Could we build a better 6502?pec...@gmail.com
|||     | ||`* Re: Could we build a better 6502?Stephen Fuld
|||     | || `- Re: Could we build a better 6502?pec...@gmail.com
|||     | |`* Re: Could we build a better 6502?Timothy McCaffrey
|||     | | +- Re: Could we build a better 6502?Michael Barry
|||     | | `* Re: Could we build a better 6502?Thomas Koenig
|||     | |  `* Re: Could we build a better 6502?Timothy McCaffrey
|||     | |   +* Re: Could we build a better 6502?pec...@gmail.com
|||     | |   |`* Re: Could we build a better 6502?Michael Barry
|||     | |   | `- Re: Could we build a better 6502?Thomas Koenig
|||     | |   `* Re: Could we build a better 6502?chris
|||     | |    `* Re: Could we build a better 6502?pec...@gmail.com
|||     | |     +* Re: Could we build a better 6502?MitchAlsup
|||     | |     |`- Re: Could we build a better 6502?Thomas Koenig
|||     | |     `* Re: Could we build a better 6502?chris
|||     | |      `* Re: Could we build a better 6502?George Neuner
|||     | |       `* Re: Could we build a better 6502?chris
|||     | |        +* Re: Could we build a better 6502?MitchAlsup
|||     | |        |`* Re: Could we build a better 6502?Thomas Koenig
|||     | |        | +- Re: Could we build a better 6502?Bernd Linsel
|||     | |        | `* Re: Could we build a better 6502?David Brown
|||     | |        |  `* Re: Could we build a better 6502?chris
|||     | |        |   `* Re: Could we build a better 6502?David Brown
|||     | |        |    `* Re: Could we build a better 6502?Terje Mathisen
|||     | |        |     `* Re: Could we build a better 6502?Thomas Koenig
|||     | |        |      `- Re: Could we build a better 6502?Terje Mathisen
|||     | |        `* Re: Could we build a better 6502?Al Grant
|||     | |         `- Re: Could we build a better 6502?chris
|||     | `* Re: Could we build a better 6502?Thomas Koenig
|||     |  +- Re: Could we build a better 6502?MitchAlsup
|||     |  +- Re: Could we build a better 6502?pec...@gmail.com
|||     |  +* Re: Could we build a better 6502?Thomas Koenig
|||     |  |+* Re: Could we build a better 6502?Stefan Monnier
|||     |  ||`* Re: Could we build a better 6502?Ivan Godard
|||     |  || `* Re: Could we build a better 6502?Stefan Monnier
|||     |  ||  `* Re: Could we build a better 6502?John Dallman
|||     |  ||   +- Re: Could we build a better 6502?Stefan Monnier
|||     |  ||   +* Re: Could we build a better 6502?pec...@gmail.com
|||     |  ||   |`- Re: Could we build a better 6502?Ivan Godard
|||     |  ||   `- Re: Could we build a better 6502?Stephen Fuld
|||     |  |`* Re: Could we build a better 6502?pec...@gmail.com
|||     |  | `* Re: Could we build a better 6502?Thomas Koenig
|||     |  |  `- Re: Could we build a better 6502?pec...@gmail.com
|||     |  `* Re: Could we build a better 6502?Thomas Koenig
|||     |   +* Re: Could we build a better 6502?Anton Ertl
|||     |   |+* Re: Could we build a better 6502?Thomas Koenig
|||     |   ||`* Re: Could we build a better 6502?pec...@gmail.com
|||     |   || `- Re: Could we build a better 6502?MitchAlsup
|||     |   |`* Re: Could we build a better 6502?David Schultz
|||     |   | +* Re: Could we build a better 6502?Anton Ertl
|||     |   | |`- Re: Could we build a better 6502?David Schultz
|||     |   | `* Re: Could we build a better 6502?MitchAlsup
|||     |   |  `* Re: Could we build a better 6502?pec...@gmail.com
|||     |   |   `- Re: Could we build a better 6502?MitchAlsup
|||     |   `- Re: Could we build a better 6502?MitchAlsup
|||     `* Re: Could we build a better 6502?Anton Ertl
|||      `* Re: Could we build a better 6502?Thomas Koenig
|||       `* Re: Could we build a better 6502?MitchAlsup
|||        +* Re: Could we build a better 6502?Marcus
|||        |+* Re: Could we build a better 6502?MitchAlsup
|||        ||`* Re: Could we build a better 6502?Thomas Koenig
|||        || `- Re: Could we build a better 6502?Anton Ertl
|||        |`- Re: Could we build a better 6502?Thomas Koenig
|||        `- Re: Could we build a better 6502?Thomas Koenig
||+* Re: Could we build a better 6502?Quadibloc
|||`- Re: Could we build a better PDP-8, was 6502?John Levine
||`- Re: Could we build a better 6502?Tim Rentsch
|`* Re: Could we build a better 6502?Quadibloc
| +* Re: Could we build a better 6502?Thomas Koenig
| |`* Re: Could we build a better 6502?Anton Ertl
| | `* Re: Could we build a better 6502?David Schultz
| |  `* Re: Could we build a better 6502?Brett
| |   `* Re: Could we build a better 6502?David Schultz
| |    `* Re: Could we build a better 6502?Brett
| |     `* Re: Could we build a better 6502?David Schultz
| |      `* Re: Could we build a better 6502?Brett
| |       `- Re: Could we build a better 6502?David Schultz
| +* Re: Could we build a better 6502?Stefan Monnier
| |`* Re: Could we build a better 6502?Thomas Koenig
| | +* Re: Could we build a better 6502?Stefan Monnier
| | |+* Re: Could we build a better 6502?MitchAlsup
| | ||`- Re: Could we build a better 6502?pec...@gmail.com
| | |`* Re: Could we build a better 6502?pec...@gmail.com
| | +- Re: Could we build a better 6502?MitchAlsup
| | `* Re: Could we build a better 6502?pec...@gmail.com
| `- Re: Could we build a better 6502?MitchAlsup
+* Re: Could we build a better 6502?Marcus
+* Re: Could we build a better 6502?MitchAlsup
+* Re: Could we build a better 6502?EricP
+* Re: Could we build a better 6502?Guillaume
+- Re: Could we build a better 6502?EricP
+* Re: Could we build a better 6502?Timothy McCaffrey
+- Re: Could we build a better 6502?JimBrakefield
+* Re: Could we build a better 6502?Anssi Saari
+* Re: Could we build a better 6502?John Dallman
+* Re: Could we build a better 6502?Anton Ertl
+* Re: Could we build a better 6502?Michael Barry
+* Re: Could we build a better 6502?pec...@gmail.com
+* Re: Could we build a better 6502?Bernd Linsel
+- Re: Could we build a better 6502?clamky
+* Re: Could we build a better 6502?Quadibloc
`- Re: Could we build a better 6502?Quadibloc

Pages:12345678910111213
Re: Could we build a better 6502?

<se41dk$rkk$1@dont-email.me>

  copy mid

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

  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: Could we build a better 6502?
Date: Sat, 31 Jul 2021 19:31:32 +0200
Organization: A noiseless patient Spider
Lines: 97
Message-ID: <se41dk$rkk$1@dont-email.me>
References: <sde7eg$hgb$1@newsreader4.netcologne.de>
<be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com>
<7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com>
<2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com>
<868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de>
<2021Jul31.110456@mips.complang.tuwien.ac.at>
<se3fb4$t22$1@newsreader4.netcologne.de>
<7340146b-e800-4e48-85a0-ac1783696022n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 31 Jul 2021 17:31:32 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="1c1f1531f5f48039c13cba597c302532";
logging-data="28308"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX181y1QaQ915QVoxIRzYqjTRYqeCwSyS3XQ="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:SVzJuqoFT3FiKKYnkCeE6Nhz5ig=
In-Reply-To: <7340146b-e800-4e48-85a0-ac1783696022n@googlegroups.com>
Content-Language: en-US
 by: Marcus - Sat, 31 Jul 2021 17:31 UTC

On 2021-07-31 18:48, MitchAlsup wrote:
> On Saturday, July 31, 2021 at 7:23:02 AM UTC-5, Thomas Koenig wrote:
>> Anton Ertl <an...@mips.complang.tuwien.ac.at> schrieb:
>>> Thomas Koenig <tko...@netcologne.de> writes:
>>>> If you take the basic concept of a 6502 (single-byte instructions,
>>>> heavy on sequencing, but not as heavy as the Z80) I think they
>>>> were pretty close to optimum on the cost/performance curve.
>>>
>>> What makes you think so? Admittedly, we have not seen anything
>>> guaranteed to be better, but then it's expensive (maybe a person-year)
>>> and commercially pointless to design a CPU with 1975 technology today.
>>>
>>>> To expand a little on a previous post, I still think that a
>>>> proto-RISC design could have been superior. A design with
>>>>
>>>> - All 16 bit instructions only
>>>> - Load/store architecture
>>>> - 16 registers of 16 bits each
>>>> - Eight bit opcode, eight bit data
>>>> - Possibility of 16-bit immediates for all arithmetic
>>>> operations, load and store for the address
>>>> - Format: op Ra, Ra or op Ra, #immediate (4 bits)
>>>>
>>>> can probably be made to fit on a 6502-sized die using the
>>>> technology of the day.
>>>
>>> I see lots of things that make it more expensive:
>>>
>>> 16-bit ALU
>> The ALU should perform:
>>
>> - ADD, SUB, ADDC, SUBC
>> - OR, AND, NOT, XOR
>> - ROL, ROR, ASL
>>
>> The most expensive part is the adder (used as adder subtractor
>> of course). A 16-bit ripple-carry adder (have to leave _some_
>> room for improvement) including the xor is about 500 transistors
>>
>> Shift instructions are just wiring. AND, OR and NOT are cheap, for
>> XOR, the XOR from the adder/subtractor can be re-used.
> <
> Shift instructions require multiplexers.

Are we talking about variable shifts, or 6502-style single-step shifts?

The latter would only be wiring (one fixed wiring per shift opcode).

>>
>> The processor should probably be set up so that the ALU also
>> does branch calculations.
>>
>> So, ~ 700-800 transistors for the ALU including the multiplexers.
>>> 16 registers of 16 bits (in addition to PC and status? or are they included?)
>> 16 registers of 16 bits is 256 bits, four transistors each (like they
>> did on the actual 6502), with multiplexers, lets's say 1200 transistors.
> <
> The 4 transistors make up the storage unit, but you have not added the
> read (mux) or write ports, so the count is a bit higher.
>>
>> 2000 so far.
>>> Bernd Paysan's suggestion of using DRAM for registers might help here.
>>> longer instruction buffer (especially with the 16-bit immediates)
>>>
>>> What might make it cheaper:
>>>
>>> Depending on the instruction set: A simpler decoder with fewer cycles
>>> to generate signals for (although 6502 was ingenious in minimizing the
>>> microcode for its instruction set). Looking at the 6502 die shot
>>> description in
>>> <https://en.wikipedia.org/wiki/MOS_Technology_6502#Technical_description>,
>>> apparently half of the 6502 was dedicated to control (microcode PLA
>>> and random), so there is substantial room for improvement here.
> <
> Like Mc 88100, 6502 used a single NOR plane as microcode.
> <
>> That was the point I was trying to get across. A proto-RISC 16-bit
>> processor could get by without much of the sequencing and control
>> logic on the 6502. Let's say the additional logic is implemented
>> in 1500 transistors (not unreasonable), and we're up to 3500.
>>>> Of course, such a design would be screaming to have a 16-bit
>>>> data bus. Power, Ground, Memory ready, IRQ, Reset, Read/Write,
>>>> NMI, Clock. Would that be enough?
>>>
>>> The 6502 has an extra VSS pin, 3 N.C. (not connected?) pins, a sync
>>> pin, an S0 pin and two clock-out pins in addition. Not sure what the
>>> sync and S0 pins are good for, but if you can do without all these
>>> pins, a 16-bit data bus would be technically possible.
>>
>>> But the result does not fit your original requirements, and in 1975
>>> would have been a commercial failure. Remember that for the 1981 IBM
>>> PC, IBM chose the 8088 over the 8086, because a system with a 16-bit
>>> data bus is significantly more expensive than one with an 8-bit data
>>> bus.
>> You're right, this could be a significant bottleneck, but maybe still
>> better than a 6502.

Re: Could we build a better 6502?

<ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ae9:ed03:: with SMTP id c3mr7835486qkg.418.1627753329934;
Sat, 31 Jul 2021 10:42:09 -0700 (PDT)
X-Received: by 2002:a9d:7353:: with SMTP id l19mr6483607otk.76.1627753329714;
Sat, 31 Jul 2021 10:42:09 -0700 (PDT)
Path: i2pn2.org!i2pn.org!news.niel.me!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, 31 Jul 2021 10:42:09 -0700 (PDT)
In-Reply-To: <se2o7s$uis$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=5.173.72.76; posting-account=zjh_fgoAAABo0Nzgf6peaFtS6c-3xdgr
NNTP-Posting-Host: 5.173.72.76
References: <sde7eg$hgb$1@newsreader4.netcologne.de> <be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com> <7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com> <2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com> <868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com>
Subject: Re: Could we build a better 6502?
From: pec...@gmail.com (pec...@gmail.com)
Injection-Date: Sat, 31 Jul 2021 17:42:09 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: pec...@gmail.com - Sat, 31 Jul 2021 17:42 UTC

>  Stephen Fuld wrote:
> > To expand a little on a previous post, I still think that a
> > proto-RISC design could have been superior. A design with
> > - All 16 bit instructions only
> > - Load/store architecture
> > - 16 registers of 16 bits each
> > - Eight bit opcode, eight bit data
> > - Possibility of 16-bit immediates for all arithmetic
> > operations, load and store for the address
> > - Format: op Ra, Ra or op Ra, #immediate (4 bits)
> >
> > can probably be made to fit on a 6502-sized die using the
> > technology of the day.
> >
> > Of course, such a design would be screaming to have a 16-bit
> > data bus.
> Yes. With only an 8 bit bus, every instruction will require two memory
> reads to fetch the instruction, which will substantially hurt
> performance. 8088 anyone? :-(
6502 fetches 2 bytes per instruction anyway, so what is the problem?
Performance depends on total code density, it can be comparable for 8 bit, and much better for 16 bit arithmetic.
16 registers can be optional for next generation, 8 is enough for early variants and increases interrupt performance.
There is no 2r1w register file (too expensive), so processor needs much higher internal clock like Z80.

Re: Could we build a better 6502?

<8a1025b1-822e-4bd4-a1eb-3f29db220984n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:4089:: with SMTP id f9mr7674765qko.441.1627754168964;
Sat, 31 Jul 2021 10:56:08 -0700 (PDT)
X-Received: by 2002:aca:3094:: with SMTP id w142mr5588707oiw.37.1627754168703;
Sat, 31 Jul 2021 10:56:08 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sat, 31 Jul 2021 10:56:08 -0700 (PDT)
In-Reply-To: <se41dk$rkk$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:288a:67f4:917d:3e7a;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:288a:67f4:917d:3e7a
References: <sde7eg$hgb$1@newsreader4.netcologne.de> <be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com> <7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com> <2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com> <868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <2021Jul31.110456@mips.complang.tuwien.ac.at>
<se3fb4$t22$1@newsreader4.netcologne.de> <7340146b-e800-4e48-85a0-ac1783696022n@googlegroups.com>
<se41dk$rkk$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8a1025b1-822e-4bd4-a1eb-3f29db220984n@googlegroups.com>
Subject: Re: Could we build a better 6502?
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sat, 31 Jul 2021 17:56:08 +0000
Content-Type: text/plain; charset="UTF-8"
 by: MitchAlsup - Sat, 31 Jul 2021 17:56 UTC

On Saturday, July 31, 2021 at 12:31:34 PM UTC-5, Marcus wrote:
> On 2021-07-31 18:48, MitchAlsup wrote:
> > On Saturday, July 31, 2021 at 7:23:02 AM UTC-5, Thomas Koenig wrote:
> >> Anton Ertl <an...@mips.complang.tuwien.ac.at> schrieb:
> >>> Thomas Koenig <tko...@netcologne.de> writes:
> >>>> If you take the basic concept of a 6502 (single-byte instructions,
> >>>> heavy on sequencing, but not as heavy as the Z80) I think they
> >>>> were pretty close to optimum on the cost/performance curve.
> >>>
> >>> What makes you think so? Admittedly, we have not seen anything
> >>> guaranteed to be better, but then it's expensive (maybe a person-year)
> >>> and commercially pointless to design a CPU with 1975 technology today.
> >>>
> >>>> To expand a little on a previous post, I still think that a
> >>>> proto-RISC design could have been superior. A design with
> >>>>
> >>>> - All 16 bit instructions only
> >>>> - Load/store architecture
> >>>> - 16 registers of 16 bits each
> >>>> - Eight bit opcode, eight bit data
> >>>> - Possibility of 16-bit immediates for all arithmetic
> >>>> operations, load and store for the address
> >>>> - Format: op Ra, Ra or op Ra, #immediate (4 bits)
> >>>>
> >>>> can probably be made to fit on a 6502-sized die using the
> >>>> technology of the day.
> >>>
> >>> I see lots of things that make it more expensive:
> >>>
> >>> 16-bit ALU
> >> The ALU should perform:
> >>
> >> - ADD, SUB, ADDC, SUBC
> >> - OR, AND, NOT, XOR
> >> - ROL, ROR, ASL
> >>
> >> The most expensive part is the adder (used as adder subtractor
> >> of course). A 16-bit ripple-carry adder (have to leave _some_
> >> room for improvement) including the xor is about 500 transistors
> >>
> >> Shift instructions are just wiring. AND, OR and NOT are cheap, for
> >> XOR, the XOR from the adder/subtractor can be re-used.
> > <
> > Shift instructions require multiplexers.
>
> Are we talking about variable shifts, or 6502-style single-step shifts?
>
> The latter would only be wiring (one fixed wiring per shift opcode).
<
You still need to select between the ROR, ROL, and ASL and that requires
said multiplexer.
>
> >>
> >> The processor should probably be set up so that the ALU also
> >> does branch calculations.
> >>
> >> So, ~ 700-800 transistors for the ALU including the multiplexers.
> >>> 16 registers of 16 bits (in addition to PC and status? or are they included?)
> >> 16 registers of 16 bits is 256 bits, four transistors each (like they
> >> did on the actual 6502), with multiplexers, lets's say 1200 transistors.
> > <
> > The 4 transistors make up the storage unit, but you have not added the
> > read (mux) or write ports, so the count is a bit higher.
> >>
> >> 2000 so far.
> >>> Bernd Paysan's suggestion of using DRAM for registers might help here.
> >>> longer instruction buffer (especially with the 16-bit immediates)
> >>>
> >>> What might make it cheaper:
> >>>
> >>> Depending on the instruction set: A simpler decoder with fewer cycles
> >>> to generate signals for (although 6502 was ingenious in minimizing the
> >>> microcode for its instruction set). Looking at the 6502 die shot
> >>> description in
> >>> <https://en.wikipedia.org/wiki/MOS_Technology_6502#Technical_description>,
> >>> apparently half of the 6502 was dedicated to control (microcode PLA
> >>> and random), so there is substantial room for improvement here.
> > <
> > Like Mc 88100, 6502 used a single NOR plane as microcode.
> > <
> >> That was the point I was trying to get across. A proto-RISC 16-bit
> >> processor could get by without much of the sequencing and control
> >> logic on the 6502. Let's say the additional logic is implemented
> >> in 1500 transistors (not unreasonable), and we're up to 3500.
> >>>> Of course, such a design would be screaming to have a 16-bit
> >>>> data bus. Power, Ground, Memory ready, IRQ, Reset, Read/Write,
> >>>> NMI, Clock. Would that be enough?
> >>>
> >>> The 6502 has an extra VSS pin, 3 N.C. (not connected?) pins, a sync
> >>> pin, an S0 pin and two clock-out pins in addition. Not sure what the
> >>> sync and S0 pins are good for, but if you can do without all these
> >>> pins, a 16-bit data bus would be technically possible.
> >>
> >>> But the result does not fit your original requirements, and in 1975
> >>> would have been a commercial failure. Remember that for the 1981 IBM
> >>> PC, IBM chose the 8088 over the 8086, because a system with a 16-bit
> >>> data bus is significantly more expensive than one with an 8-bit data
> >>> bus.
> >> You're right, this could be a significant bottleneck, but maybe still
> >> better than a 6502.

Re: Could we build a better 6502?

<97d08afd-1f4b-4ae8-92cf-e11b1d17018cn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:29cf:: with SMTP id s15mr8069957qkp.363.1627754334631;
Sat, 31 Jul 2021 10:58:54 -0700 (PDT)
X-Received: by 2002:a05:6808:2d2:: with SMTP id a18mr5650240oid.84.1627754334377;
Sat, 31 Jul 2021 10:58:54 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.snarked.org!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sat, 31 Jul 2021 10:58:54 -0700 (PDT)
In-Reply-To: <ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:288a:67f4:917d:3e7a;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:288a:67f4:917d:3e7a
References: <sde7eg$hgb$1@newsreader4.netcologne.de> <be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com> <7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com> <2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com> <868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me> <ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <97d08afd-1f4b-4ae8-92cf-e11b1d17018cn@googlegroups.com>
Subject: Re: Could we build a better 6502?
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sat, 31 Jul 2021 17:58:54 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 31
 by: MitchAlsup - Sat, 31 Jul 2021 17:58 UTC

On Saturday, July 31, 2021 at 12:42:10 PM UTC-5, pec...@gmail.com wrote:
> > Stephen Fuld wrote:
> > > To expand a little on a previous post, I still think that a
> > > proto-RISC design could have been superior. A design with
> > > - All 16 bit instructions only
> > > - Load/store architecture
> > > - 16 registers of 16 bits each
> > > - Eight bit opcode, eight bit data
> > > - Possibility of 16-bit immediates for all arithmetic
> > > operations, load and store for the address
> > > - Format: op Ra, Ra or op Ra, #immediate (4 bits)
> > >
> > > can probably be made to fit on a 6502-sized die using the
> > > technology of the day.
> > >
> > > Of course, such a design would be screaming to have a 16-bit
> > > data bus.
> > Yes. With only an 8 bit bus, every instruction will require two memory
> > reads to fetch the instruction, which will substantially hurt
> > performance. 8088 anyone? :-(
> 6502 fetches 2 bytes per instruction anyway, so what is the problem?
<
> Performance depends on total code density,
<
Performance depends entirely on the total number of memory references.
<
> it can be comparable for 8 bit, and much better for 16 bit arithmetic.
> 16 registers can be optional for next generation, 8 is enough for early variants and increases interrupt performance.
<
Both PDP-11 and Nova got away with fewer registers. PDP-11 had 8.
<
> There is no 2r1w register file (too expensive), so processor needs much higher internal clock like Z80.

Re: Could we build a better 6502?

<se43j1$bjk$1@newsreader4.netcologne.de>

  copy mid

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

  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-c228-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Could we build a better 6502?
Date: Sat, 31 Jul 2021 18:08:33 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <se43j1$bjk$1@newsreader4.netcologne.de>
References: <sde7eg$hgb$1@newsreader4.netcologne.de>
<be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com>
<7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com>
<2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com>
<868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de>
<2021Jul31.110456@mips.complang.tuwien.ac.at>
<se3fb4$t22$1@newsreader4.netcologne.de>
<7340146b-e800-4e48-85a0-ac1783696022n@googlegroups.com>
<se41dk$rkk$1@dont-email.me>
Injection-Date: Sat, 31 Jul 2021 18:08:33 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-c228-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:c228:0:7285:c2ff:fe6c:992d";
logging-data="11892"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sat, 31 Jul 2021 18:08 UTC

Marcus <m.delete@this.bitsnbites.eu> schrieb:
> On 2021-07-31 18:48, MitchAlsup wrote:
>> On Saturday, July 31, 2021 at 7:23:02 AM UTC-5, Thomas Koenig wrote:
>>> Anton Ertl <an...@mips.complang.tuwien.ac.at> schrieb:
>>>> Thomas Koenig <tko...@netcologne.de> writes:
>>>>> If you take the basic concept of a 6502 (single-byte instructions,
>>>>> heavy on sequencing, but not as heavy as the Z80) I think they
>>>>> were pretty close to optimum on the cost/performance curve.
>>>>
>>>> What makes you think so? Admittedly, we have not seen anything
>>>> guaranteed to be better, but then it's expensive (maybe a person-year)
>>>> and commercially pointless to design a CPU with 1975 technology today.
>>>>
>>>>> To expand a little on a previous post, I still think that a
>>>>> proto-RISC design could have been superior. A design with
>>>>>
>>>>> - All 16 bit instructions only
>>>>> - Load/store architecture
>>>>> - 16 registers of 16 bits each
>>>>> - Eight bit opcode, eight bit data
>>>>> - Possibility of 16-bit immediates for all arithmetic
>>>>> operations, load and store for the address
>>>>> - Format: op Ra, Ra or op Ra, #immediate (4 bits)
>>>>>
>>>>> can probably be made to fit on a 6502-sized die using the
>>>>> technology of the day.
>>>>
>>>> I see lots of things that make it more expensive:
>>>>
>>>> 16-bit ALU
>>> The ALU should perform:
>>>
>>> - ADD, SUB, ADDC, SUBC
>>> - OR, AND, NOT, XOR
>>> - ROL, ROR, ASL
>>>
>>> The most expensive part is the adder (used as adder subtractor
>>> of course). A 16-bit ripple-carry adder (have to leave _some_
>>> room for improvement) including the xor is about 500 transistors
>>>
>>> Shift instructions are just wiring. AND, OR and NOT are cheap, for
>>> XOR, the XOR from the adder/subtractor can be re-used.
>> <
>> Shift instructions require multiplexers.
>
> Are we talking about variable shifts, or 6502-style single-step shifts?
> The latter would only be wiring (one fixed wiring per shift opcode).

I had envisioned only single-step shifts left and right, like the 6502,
so once the right instruction is selected it's just wire. Fitting
a barrel shifter into < 5000 transistors seems over-ambitious. Leave
opcode space for later revisions, that's all.

However, multiplexers are still needed to select between the different
wires (not sure if that was what Mitch meant).

I would also leave out a multiplier, the 6809 has demonstrated that
customers would not be willing to pay for that.

What I would include, however, is something like an ANDC Ra, Rb -
instruction, AND register with carry, for the shift and add method
of multiplication.

Re: Could we build a better 6502?

<se44et$bjk$3@newsreader4.netcologne.de>

  copy mid

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

  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-c228-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Could we build a better 6502?
Date: Sat, 31 Jul 2021 18:23:25 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <se44et$bjk$3@newsreader4.netcologne.de>
References: <sde7eg$hgb$1@newsreader4.netcologne.de>
<be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com>
<7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com>
<2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com>
<868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de>
<2021Jul31.110456@mips.complang.tuwien.ac.at>
<se3fb4$t22$1@newsreader4.netcologne.de>
<7340146b-e800-4e48-85a0-ac1783696022n@googlegroups.com>
Injection-Date: Sat, 31 Jul 2021 18:23:25 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-c228-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:c228:0:7285:c2ff:fe6c:992d";
logging-data="11892"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sat, 31 Jul 2021 18:23 UTC

MitchAlsup <MitchAlsup@aol.com> schrieb:
(I wrote)
>> 16 registers of 16 bits is 256 bits, four transistors each (like they
>> did on the actual 6502), with multiplexers, lets's say 1200 transistors.
><
> The 4 transistors make up the storage unit, but you have not added the
> read (mux) or write ports, so the count is a bit higher.

OK.

> Like Mc 88100, 6502 used a single NOR plane as microcode.

That would probably be the way to go, too. However, they also had
an afwul lot of sequencing logic, which I would try to get rid of
as far as possible.

Hm... does anybody (Anton?) have a few students who
could do Master's thesis implementing and simulating the
different 6502 competitors we have been discussing here?

https://github.com/hneemann/Digital/tree/master/src/main/dig/processor
is a design that could probably be modified pretty easily
(i.e. simplified) to one of be one of these competitors.

Re: Could we build a better 6502?

<se44rr$bjk$4@newsreader4.netcologne.de>

  copy mid

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

  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-c228-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Could we build a better 6502?
Date: Sat, 31 Jul 2021 18:30:19 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <se44rr$bjk$4@newsreader4.netcologne.de>
References: <sde7eg$hgb$1@newsreader4.netcologne.de>
<be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com>
<7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com>
<2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com>
<868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me>
<ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com>
Injection-Date: Sat, 31 Jul 2021 18:30:19 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-c228-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:c228:0:7285:c2ff:fe6c:992d";
logging-data="11892"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sat, 31 Jul 2021 18:30 UTC

pec...@gmail.com <peceed@gmail.com> schrieb:

>> Yes. With only an 8 bit bus, every instruction will require two memory
>> reads to fetch the instruction, which will substantially hurt
>> performance. 8088 anyone? :-(
> 6502 fetches 2 bytes per instruction anyway, so what is the problem?

Still awkward, like I said, such a design screams for a 16-bit
data bus.

[...]

> There is no 2r1w register file (too expensive), so processor needs much higher internal clock like Z80.

2r1w seems doable, but I haven't yet figured out how to do a
multiplexer in depletion-load NMOS. Higher internal clock is what
I would like to avoid if at all possible, because that would put
all the sequencing logic back, the many registers would not
fit on the die any more, and the concept would not fly.

Re: Could we build a better 6502?

<cf8525a6-d4e8-4ca7-b75b-2712e4341d62n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a37:b145:: with SMTP id a66mr8681039qkf.329.1627765274770;
Sat, 31 Jul 2021 14:01:14 -0700 (PDT)
X-Received: by 2002:a05:6830:1c1:: with SMTP id r1mr6496140ota.22.1627765274443;
Sat, 31 Jul 2021 14:01:14 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sat, 31 Jul 2021 14:01:14 -0700 (PDT)
In-Reply-To: <se44rr$bjk$4@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:288a:67f4:917d:3e7a;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:288a:67f4:917d:3e7a
References: <sde7eg$hgb$1@newsreader4.netcologne.de> <be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com> <7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com> <2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com> <868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me>
<ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com> <se44rr$bjk$4@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <cf8525a6-d4e8-4ca7-b75b-2712e4341d62n@googlegroups.com>
Subject: Re: Could we build a better 6502?
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sat, 31 Jul 2021 21:01:14 +0000
Content-Type: text/plain; charset="UTF-8"
 by: MitchAlsup - Sat, 31 Jul 2021 21:01 UTC

On Saturday, July 31, 2021 at 1:30:21 PM UTC-5, Thomas Koenig wrote:
> pec...@gmail.com <pec...@gmail.com> schrieb:
> >> Yes. With only an 8 bit bus, every instruction will require two memory
> >> reads to fetch the instruction, which will substantially hurt
> >> performance. 8088 anyone? :-(
> > 6502 fetches 2 bytes per instruction anyway, so what is the problem?
> Still awkward, like I said, such a design screams for a 16-bit
> data bus.
>
> [...]
> > There is no 2r1w register file (too expensive), so processor needs much higher internal clock like Z80.
> 2r1w seems doable, but I haven't yet figured out how to do a
> multiplexer in depletion-load NMOS.
<
Pass gate logic.
<
> Higher internal clock is what
> I would like to avoid if at all possible, because that would put
> all the sequencing logic back, the many registers would not
> fit on the die any more, and the concept would not fly.

Re: Could we build a better 6502?

<deb5177f-7c20-4373-abb5-0e2caf132bd4n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:75d4:: with SMTP id z20mr7940798qtq.360.1627766719820;
Sat, 31 Jul 2021 14:25:19 -0700 (PDT)
X-Received: by 2002:a9d:6f84:: with SMTP id h4mr6990697otq.240.1627766719584;
Sat, 31 Jul 2021 14:25:19 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.net!fdn.fr!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, 31 Jul 2021 14:25:19 -0700 (PDT)
In-Reply-To: <97d08afd-1f4b-4ae8-92cf-e11b1d17018cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=5.173.72.76; posting-account=zjh_fgoAAABo0Nzgf6peaFtS6c-3xdgr
NNTP-Posting-Host: 5.173.72.76
References: <sde7eg$hgb$1@newsreader4.netcologne.de> <be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com> <7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com> <2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com> <868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me>
<ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com> <97d08afd-1f4b-4ae8-92cf-e11b1d17018cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <deb5177f-7c20-4373-abb5-0e2caf132bd4n@googlegroups.com>
Subject: Re: Could we build a better 6502?
From: pec...@gmail.com (pec...@gmail.com)
Injection-Date: Sat, 31 Jul 2021 21:25:19 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: pec...@gmail.com - Sat, 31 Jul 2021 21:25 UTC

> MitchAlsup wrote:
> > Performance depends on total code density,
> Performance depends entirely on the total number of memory references.
It means the same when you have minimal 8-bit bus and load-store architecture: the lack of 8-bit individual instructions doesn't matter. General tradeoff of RISC is a higher instruction bandwidth and a lower data bandwidth.

BTW, i think that the Universe with 12-bit bytes and microcomputers could be better: the transition from 24 bit to 48 bit address spaces would be both earlier and "final", only "supercomputers" need go higher. Home computers could stay 24-bit until mid-nineties. In 8-bit reality we got 2 quick transitions one after another.
12-bit is better for graphics (screen positions up to 4K resolution, true color on 2 bytes, direct 4096 hi-color on Amiga/Atari, independent hdr components), unicode-like standard could be adopted earlier. 48 bit floating point is sufficient for most purposes, etc.

> > it can be comparable for 8 bit, and much better for 16 bit arithmetic.
> > 16 registers can be optional for next generation, 8 is enough for early variants and increases interrupt performance.
> <
> Both PDP-11 and Nova got away with fewer registers. PDP-11 had 8.
We can call it "Reduced RISC" :), but 4 (as in Nova) is too little to get performance advantage and we need 5 to get minimal comfort of usability. I suppose that 8 16-bit register file will be too hard for die size, so 6 can be a optimal value.

6502 was, in most of its commercial applications, a real 8 bit computer, embedded systems didn't have more than 256 bytes of memory. It was also many times faster than required.
Microcomputer-centric improvements were totally obsolete, BCD support was the most important feature :)

The "problem" with original 6502 was that it couldn't have natural performance oriented extension, that is the real reason why 65816 was so late. RRISC can, but only within 16-bit address space, so it has to be a very quick follower.

That's why I would like to have 2 variants - initial, maximally simple to conquer the embedded world, and fully socket compatible powerful extension for microcomputers.

In more advanced variant I would like to have a prefetch/loop buffer for 3-4 instructions (6-8 bytes),
after every executed short backward branch prefetch starts act as loop buffer. First execution of the loop body is slower than the following one. Hardware MUL is considered useful.

The next step is variant having 16-bit data bus.
How to overcome address limitations?
The most elegant and efficient way is to implement 32bit registers as register pairs and add new instructions for memory access.

Re: Could we build a better 6502?

<17f50538-c160-4b9e-aa7b-336649358695n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:29cf:: with SMTP id s15mr8698126qkp.363.1627767669321;
Sat, 31 Jul 2021 14:41:09 -0700 (PDT)
X-Received: by 2002:a05:6808:2208:: with SMTP id bd8mr168491oib.110.1627767669107;
Sat, 31 Jul 2021 14:41:09 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sat, 31 Jul 2021 14:41:08 -0700 (PDT)
In-Reply-To: <se44rr$bjk$4@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=5.173.72.76; posting-account=zjh_fgoAAABo0Nzgf6peaFtS6c-3xdgr
NNTP-Posting-Host: 5.173.72.76
References: <sde7eg$hgb$1@newsreader4.netcologne.de> <be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com> <7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com> <2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com> <868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me>
<ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com> <se44rr$bjk$4@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <17f50538-c160-4b9e-aa7b-336649358695n@googlegroups.com>
Subject: Re: Could we build a better 6502?
From: pec...@gmail.com (pec...@gmail.com)
Injection-Date: Sat, 31 Jul 2021 21:41:09 +0000
Content-Type: text/plain; charset="UTF-8"
 by: pec...@gmail.com - Sat, 31 Jul 2021 21:41 UTC

> > 6502 fetches 2 bytes per instruction anyway, so what is the problem?
> Still awkward, like I said, such a design screams for a 16-bit
> data bus.
Welcome to 1975.
Remember, 5 years later 68000 lost to 8088 due to lack of 8-bit bus support!
At least our 16-bit orientation gives possibility of performance upgrade - as long as you don't use 8-bit or unaligned 16-bit access.
> [...]
> > There is no 2r1w register file (too expensive), so processor needs much higher internal clock like Z80.
> 2r1w seems doable, but I haven't yet figured out how to do a
> multiplexer in depletion-load NMOS. Higher internal clock is what
> I would like to avoid if at all possible, because that would put
> all the sequencing logic back, the many registers would not
> fit on the die any more, and the concept would not fly.
Sorry, i was thinking not about an internal clock, but high external clock and multi-cycle memory access.
BTW, IIRC 6502 was internally "double pumped".

Re: Could we build a better 6502?

<se5e6b$5l5$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: sfu...@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: Could we build a better 6502?
Date: Sat, 31 Jul 2021 23:15:37 -0700
Organization: A noiseless patient Spider
Lines: 16
Message-ID: <se5e6b$5l5$1@dont-email.me>
References: <sde7eg$hgb$1@newsreader4.netcologne.de>
<be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com>
<7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com>
<2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com>
<868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me>
<ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com>
<97d08afd-1f4b-4ae8-92cf-e11b1d17018cn@googlegroups.com>
<deb5177f-7c20-4373-abb5-0e2caf132bd4n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 1 Aug 2021 06:15:39 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="9e3fff4d148443ce4c255fb954165b4f";
logging-data="5797"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX186FrK6IB4Q/URAg8xVyP+sirzrGAjhG3M="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.12.0
Cancel-Lock: sha1:o6Z/CltB1hk85vjNLTZDfgb3vqM=
In-Reply-To: <deb5177f-7c20-4373-abb5-0e2caf132bd4n@googlegroups.com>
Content-Language: en-US
 by: Stephen Fuld - Sun, 1 Aug 2021 06:15 UTC

On 7/31/2021 2:25 PM, pec...@gmail.com wrote:
>> MitchAlsup wrote:
>>> Performance depends on total code density,
>> Performance depends entirely on the total number of memory references.
> It means the same when you have minimal 8-bit bus and load-store architecture: the lack of 8-bit individual instructions doesn't matter. General tradeoff of RISC is a higher instruction bandwidth and a lower data bandwidth.
>
> BTW, i think that the Universe with 12-bit bytes and microcomputers could be better: the transition from 24 bit to 48 bit address spaces would be both earlier and "final", only "supercomputers" need go higher. Home computers could stay 24-bit until mid-nineties. In 8-bit reality we got 2 quick transitions one after another.
> 12-bit is better for graphics (screen positions up to 4K resolution, true color on 2 bytes, direct 4096 hi-color on Amiga/Atari, independent hdr components), unicode-like standard could be adopted earlier. 48 bit floating point is sufficient for most purposes, etc.

Interesting. And, it naturally allows Mitch's preferred instruction
size of 36 bits!

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

Re: Could we build a better 6502?

<9057f828-a8d2-400a-867a-89cad949d049n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:57c4:: with SMTP id w4mr9067560qta.39.1627804374737; Sun, 01 Aug 2021 00:52:54 -0700 (PDT)
X-Received: by 2002:a05:6808:10d5:: with SMTP id s21mr6990685ois.7.1627804374469; Sun, 01 Aug 2021 00:52:54 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!feeder1.feed.usenet.farm!feed.usenet.farm!tr2.eu1.usenetexpress.com!feeder.usenetexpress.com!tr2.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 1 Aug 2021 00:52:54 -0700 (PDT)
In-Reply-To: <se5e6b$5l5$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=5.173.72.76; posting-account=zjh_fgoAAABo0Nzgf6peaFtS6c-3xdgr
NNTP-Posting-Host: 5.173.72.76
References: <sde7eg$hgb$1@newsreader4.netcologne.de> <be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com> <sdhkr7$15vg$1@gal.iecc.com> <7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com> <g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com> <2021Jul27.194213@mips.complang.tuwien.ac.at> <cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com> <868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com> <se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me> <ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com> <97d08afd-1f4b-4ae8-92cf-e11b1d17018cn@googlegroups.com> <deb5177f-7c20-4373-abb5-0e2caf132bd4n@googlegroups.com> <se5e6b$5l5$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9057f828-a8d2-400a-867a-89cad949d049n@googlegroups.com>
Subject: Re: Could we build a better 6502?
From: pec...@gmail.com (pec...@gmail.com)
Injection-Date: Sun, 01 Aug 2021 07:52:54 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 16
 by: pec...@gmail.com - Sun, 1 Aug 2021 07:52 UTC

Stephen Fuld wrote:
> On 7/31/2021 2:25 PM, pec...@gmail.com wrote:
> > BTW, i think that the Universe with 12-bit bytes and microcomputers could be better: the transition from 24 bit to 48 bit address spaces would be both earlier and "final", only "supercomputers" need go higher. Home computers could stay 24-bit until mid-nineties. In 8-bit reality we got 2 quick transitions one after another.
> > 12-bit is better for graphics (screen positions up to 4K resolution, true color on 2 bytes, direct 4096 hi-color on Amiga/Atari, independent hdr components), unicode-like standard could be adopted earlier. 48 bit floating point is sufficient for most purposes, etc.
> Interesting. And, it naturally allows Mitch's preferred instruction
> size of 36 bits!
Variable length would be much more practical.
We need one single byte (12-bit) instruction - NOP (padding for no cross page instructions )
90% of instructions should fit in 2 bytes (24 bits).

Re: Could we build a better 6502?

<se68m7$p9u$1@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!paganini.bofh.team!news.dns-netz.com!news.freedyn.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-c228-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Could we build a better 6502?
Date: Sun, 1 Aug 2021 13:47:51 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <se68m7$p9u$1@newsreader4.netcologne.de>
References: <sde7eg$hgb$1@newsreader4.netcologne.de>
<be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com>
<7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com>
<2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com>
<868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me>
<ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com>
<se44rr$bjk$4@newsreader4.netcologne.de>
<cff8a5c2-c337-45f9-ab24-9ed39a1632c5n@googlegroups.com>
Injection-Date: Sun, 1 Aug 2021 13:47:51 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-c228-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:c228:0:7285:c2ff:fe6c:992d";
logging-data="25918"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sun, 1 Aug 2021 13:47 UTC

pec...@gmail.com <peceed@gmail.com> schrieb:
> Thomas Koenig wrote:
>> 2r1w seems doable, but I haven't yet figured out how to do a
>> multiplexer in depletion-load NMOS.
>
> Forget it: 2r1w is too big. We are trying to be better than one
> the smallest processors ever designed.

OK, then try something else...

If we must have two cycles to access a full instruction, then the
fist byte could contain the register number of the instruction
that needs to be read, if any. Fetching the second part of the
instruction would then be parallel to reading the fist register
and putting it into an intermediate register.

Call it proto-pipelining on the proto-RISC we are discussing.

Re: Could we build a better 6502?

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

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: monn...@iro.umontreal.ca (Stefan Monnier)
Newsgroups: comp.arch
Subject: Re: Could we build a better 6502?
Date: Sun, 01 Aug 2021 11:46:56 -0400
Organization: A noiseless patient Spider
Lines: 14
Message-ID: <jwvsfztb2c4.fsf-monnier+comp.arch@gnu.org>
References: <sde7eg$hgb$1@newsreader4.netcologne.de>
<be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com>
<7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com>
<2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com>
<868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me>
<ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com>
<se44rr$bjk$4@newsreader4.netcologne.de>
<cff8a5c2-c337-45f9-ab24-9ed39a1632c5n@googlegroups.com>
<se68m7$p9u$1@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="a91d1ce6358130c06862d1316d731d90";
logging-data="23768"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19pZm+lhxaiTFGzLjIA5RKS"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
Cancel-Lock: sha1:Ym9KkOwgg+L9u3Vu+AmhLkZf7jY=
sha1:PRTnYeqrJdt5eL8O/tSBukqO2lU=
 by: Stefan Monnier - Sun, 1 Aug 2021 15:46 UTC

>> Forget it: 2r1w is too big. We are trying to be better than one
>> the smallest processors ever designed.
> OK, then try something else...

Maybe a belt-style architecture?

Have a 8-elements belt (16bit each), where operations push their result
on the belt (dropping the last belt element into /dev/null), and have
arithmetic operations take one of their inputs from the "top" of
the belt and the other from one of the *other* elements.
So you only need 1 read port on "the top" and 1 read port on "the rest".

Stefan

Re: Could we build a better 6502?

<se6hrg$a9n$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: Could we build a better 6502?
Date: Sun, 1 Aug 2021 09:24:17 -0700
Organization: A noiseless patient Spider
Lines: 33
Message-ID: <se6hrg$a9n$1@dont-email.me>
References: <sde7eg$hgb$1@newsreader4.netcologne.de>
<be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com>
<7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com>
<2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com>
<868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me>
<ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com>
<se44rr$bjk$4@newsreader4.netcologne.de>
<cff8a5c2-c337-45f9-ab24-9ed39a1632c5n@googlegroups.com>
<se68m7$p9u$1@newsreader4.netcologne.de>
<jwvsfztb2c4.fsf-monnier+comp.arch@gnu.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 1 Aug 2021 16:24:17 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="5351467ed463109d7caf7a41bdf8dcaa";
logging-data="10551"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/kB/FniElUJvKtMZwxmCqe"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.12.0
Cancel-Lock: sha1:mCBM1O44V7NOLD9+zKwlwVrw3Wc=
In-Reply-To: <jwvsfztb2c4.fsf-monnier+comp.arch@gnu.org>
Content-Language: en-US
 by: Ivan Godard - Sun, 1 Aug 2021 16:24 UTC

On 8/1/2021 8:46 AM, Stefan Monnier wrote:
>>> Forget it: 2r1w is too big. We are trying to be better than one
>>> the smallest processors ever designed.
>> OK, then try something else...
>
> Maybe a belt-style architecture?
>
> Have a 8-elements belt (16bit each), where operations push their result
> on the belt (dropping the last belt element into /dev/null), and have
> arithmetic operations take one of their inputs from the "top" of
> the belt and the other from one of the *other* elements.
> So you only need 1 read port on "the top" and 1 read port on "the rest".
>
>
> Stefan
>

That works best if the dataflow is left-linear or can be made so by the
compiler. Otherwise you have a lot of "move one of rest to top".

Also, if the "rest" addressing works the way it does in a Mill, with
temporal addressing in the source being mapped to in-flight bypass
latches, then I don't think you can fit the mapper into the transistor
budget available.

Or maybe you can - you no longer need muxes to address a regfile, so you
could put those transistors into the mapper, which means the routing
cost is much the same. But there's still translation cost, and the
spiller, and ... So I'm doubtful.

We've always said that the Mill cannot reach the extreme low end and the
Z80 market is safe from us, but if you can figure out a way to do it,
please get in touch :-)

Re: Could we build a better 6502?

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

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: monn...@iro.umontreal.ca (Stefan Monnier)
Newsgroups: comp.arch
Subject: Re: Could we build a better 6502?
Date: Sun, 01 Aug 2021 13:07:58 -0400
Organization: A noiseless patient Spider
Lines: 23
Message-ID: <jwvczqxaym8.fsf-monnier+comp.arch@gnu.org>
References: <sde7eg$hgb$1@newsreader4.netcologne.de>
<be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com>
<7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com>
<2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com>
<868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me>
<ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com>
<se44rr$bjk$4@newsreader4.netcologne.de>
<cff8a5c2-c337-45f9-ab24-9ed39a1632c5n@googlegroups.com>
<se68m7$p9u$1@newsreader4.netcologne.de>
<jwvsfztb2c4.fsf-monnier+comp.arch@gnu.org>
<se6hrg$a9n$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="a91d1ce6358130c06862d1316d731d90";
logging-data="17039"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+ZsAqRvBAmKI5TPBzObzl6"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
Cancel-Lock: sha1:JXTcdh+NcO6CPkKft6C5fAA012Y=
sha1:XbfQ4Fc/27jskFaEO4tHGBy7dBw=
 by: Stefan Monnier - Sun, 1 Aug 2021 17:07 UTC

> Also, if the "rest" addressing works the way it does in a Mill, with
> temporal addressing in the source being mapped to in-flight bypass latches,
> then I don't think you can fit the mapper into the transistor
> budget available.

Hmm... I think in the context of 4k transitors there'd be no "bypass
latches". The only thing you have is that when a new value is put into
the accumulator (aka the "top of the belt") the old value is not lost
but is shifted to the rest of belt instead.

> Or maybe you can - you no longer need muxes to address a regfile, so you
> could put those transistors into the mapper, which means the routing cost is
> much the same. But there's still translation cost, and the spiller, and
> ... So I'm doubtful.

No spiller. No "phi nodes". It's up to the programmer to arrange for
different control flows to end up with the same values at the same
places in the belt, or otherwise to just not use those belt locations.
These CPUs were coded in hand-tuned assembly, so it seems
perfectly acceptable.

Stefan

Re: Could we build a better 6502?

<memo.20210801224541.14388M@jgd.cix.co.uk>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: jgd...@cix.co.uk (John Dallman)
Newsgroups: comp.arch
Subject: Re: Could we build a better 6502?
Date: Sun, 1 Aug 2021 22:45 +0100 (BST)
Organization: A noiseless patient Spider
Lines: 15
Message-ID: <memo.20210801224541.14388M@jgd.cix.co.uk>
References: <jwvczqxaym8.fsf-monnier+comp.arch@gnu.org>
Reply-To: jgd@cix.co.uk
Injection-Info: reader02.eternal-september.org; posting-host="38bb6e9146b7829989b14fc8641f1a59";
logging-data="10380"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19oNUhXzKoy/aZ6Xh+u2Eun5ZNQlNp0cJo="
Cancel-Lock: sha1:sJgqDR2fxPa1NqhahNllbiYQoRU=
 by: John Dallman - Sun, 1 Aug 2021 21:45 UTC

In article <jwvczqxaym8.fsf-monnier+comp.arch@gnu.org>,
monnier@iro.umontreal.ca (Stefan Monnier) wrote:

> No spiller. No "phi nodes". It's up to the programmer to
> arrange for different control flows to end up with the same
> values at the same places in the belt, or otherwise to just
> not use those belt locations. These CPUs were coded in hand-
> tuned assembly, so it seems perfectly acceptable.

Except for customer resistance. A belt would be a completely new idea at
the time, and most of the people programming 8-bit microprocessors had no
computer science training. It could readily acquire a reputation as
"really clever, but too hard to program."

John

Re: Could we build a better 6502?

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

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: monn...@iro.umontreal.ca (Stefan Monnier)
Newsgroups: comp.arch
Subject: Re: Could we build a better 6502?
Date: Sun, 01 Aug 2021 18:04:52 -0400
Organization: A noiseless patient Spider
Lines: 32
Message-ID: <jwvv94oal8z.fsf-monnier+comp.arch@gnu.org>
References: <jwvczqxaym8.fsf-monnier+comp.arch@gnu.org>
<memo.20210801224541.14388M@jgd.cix.co.uk>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="e7f2b8ce3f84be454bc88f7c8ad724d2";
logging-data="563"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19xeRb9a4uLB71kWbaCoKp0"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
Cancel-Lock: sha1:y57XK2N9OIse9t+te4m3SqX+/JQ=
sha1:awua8xVm5QPENxRwdtWNGknqFnk=
 by: Stefan Monnier - Sun, 1 Aug 2021 22:04 UTC

John Dallman [2021-08-01 22:45:00] wrote:
> In article <jwvczqxaym8.fsf-monnier+comp.arch@gnu.org>,
> monnier@iro.umontreal.ca (Stefan Monnier) wrote:
>> No spiller. No "phi nodes". It's up to the programmer to
>> arrange for different control flows to end up with the same
>> values at the same places in the belt, or otherwise to just
>> not use those belt locations. These CPUs were coded in hand-
>> tuned assembly, so it seems perfectly acceptable.
> Except for customer resistance. A belt would be a completely new idea at
> the time, and most of the people programming 8-bit microprocessors had no
> computer science training.

"No CS training" makes it sound like they should have no bias towards
any pre-existing ISA, so they should not offer any special resistance to
a belt (they wouldn't even know it's a new idea).

> It could readily acquire a reputation as "really clever, but too hard
> to program."

I'm not sure that it's "really clever" nor whether it gives a good
result, but in the context of trying to come up with a better CPU within
the constraints of the 6502's budget it might be worth exploring.
It might be too hard to program, indeed, but then again the CPUs of that
era required a fair bit of work to program effectively, and it would be
easy to let the assembler do some of the work for you (e.g. lets you give
a name to a result, and when you refer to it later the assembler turns
it into the corresponding belt position or signals an error if the value
is not on the belt any more or emit a warning if a label was encountered
in between).

Stefan

Re: Could we build a better 6502?

<4de8e9d8-4c6c-4906-993d-1c2e4c446fe0n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:a5a:: with SMTP id j26mr16430057qka.42.1627921622308;
Mon, 02 Aug 2021 09:27:02 -0700 (PDT)
X-Received: by 2002:a4a:db97:: with SMTP id s23mr11279973oou.73.1627921621815;
Mon, 02 Aug 2021 09:27:01 -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, 2 Aug 2021 09:27:01 -0700 (PDT)
In-Reply-To: <se68m7$p9u$1@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=5.173.72.76; posting-account=zjh_fgoAAABo0Nzgf6peaFtS6c-3xdgr
NNTP-Posting-Host: 5.173.72.76
References: <sde7eg$hgb$1@newsreader4.netcologne.de> <be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com> <7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com> <2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com> <868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me>
<ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com> <se44rr$bjk$4@newsreader4.netcologne.de>
<cff8a5c2-c337-45f9-ab24-9ed39a1632c5n@googlegroups.com> <se68m7$p9u$1@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4de8e9d8-4c6c-4906-993d-1c2e4c446fe0n@googlegroups.com>
Subject: Re: Could we build a better 6502?
From: pec...@gmail.com (pec...@gmail.com)
Injection-Date: Mon, 02 Aug 2021 16:27:02 +0000
Content-Type: text/plain; charset="UTF-8"
 by: pec...@gmail.com - Mon, 2 Aug 2021 16:27 UTC

Thomas Koenig wrote:
> If we must have two cycles to access a full instruction, then the
> fist byte could contain the register number of the instruction
> that needs to be read, if any. Fetching the second part of the
> instruction would then be parallel to reading the fist register
> and putting it into an intermediate register.
>
> Call it proto-pipelining on the proto-RISC we are discussing.
I had exactly the same idea. Instruction format should be defined this way, that first nibble is a "always read" register. Single 8 bit memory access takes 2 cycles, so pipelining is an attractive idea.
Reading the shortest instruction takes 4 cycles, fast implementation with 16 bit adder should be executed in the same time, so 16 bit RISC on 8 bit bus makes sense - we can saturate bandwidth executing register-register operations.
We have time to read 2 values, but it requires second intermediate register and doesn't save time.

Re: Could we build a better 6502?

<9de70e85-d6c4-4277-8dee-d4ef76529d8dn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:a5a:: with SMTP id j26mr16669196qka.42.1627924819196;
Mon, 02 Aug 2021 10:20:19 -0700 (PDT)
X-Received: by 2002:a54:4194:: with SMTP id 20mr11634337oiy.78.1627924818785;
Mon, 02 Aug 2021 10:20:18 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.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, 2 Aug 2021 10:20:18 -0700 (PDT)
In-Reply-To: <memo.20210801224541.14388M@jgd.cix.co.uk>
Injection-Info: google-groups.googlegroups.com; posting-host=5.173.72.76; posting-account=zjh_fgoAAABo0Nzgf6peaFtS6c-3xdgr
NNTP-Posting-Host: 5.173.72.76
References: <jwvczqxaym8.fsf-monnier+comp.arch@gnu.org> <memo.20210801224541.14388M@jgd.cix.co.uk>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9de70e85-d6c4-4277-8dee-d4ef76529d8dn@googlegroups.com>
Subject: Re: Could we build a better 6502?
From: pec...@gmail.com (pec...@gmail.com)
Injection-Date: Mon, 02 Aug 2021 17:20:19 +0000
Content-Type: text/plain; charset="UTF-8"
 by: pec...@gmail.com - Mon, 2 Aug 2021 17:20 UTC

John Dallman wrote:
> In article <jwvczqxaym8.fsf-...@gnu.org>,
> mon...@iro.umontreal.ca (Stefan Monnier) wrote:
>
> > No spiller. No "phi nodes". It's up to the programmer to
> > arrange for different control flows to end up with the same
> > values at the same places in the belt, or otherwise to just
> > not use those belt locations. These CPUs were coded in hand-
> > tuned assembly, so it seems perfectly acceptable.
> Except for customer resistance. A belt would be a completely new idea at
> the time, and most of the people programming 8-bit microprocessors had no
> computer science training. It could readily acquire a reputation as
> "really clever, but too hard to program."
It is easy to solve by using named variables having limited implicite scope in the source instead of variable belt positions.
This way programming can be _easier_ , because of meaningful names.

The real problem is that belt semantics doesn't offer anything meaningful for ultra-low-end except a little higher code density (albeit patent protection can be substantial).
Belt can be a virtual mapping of fragment of physical registers. The obvious solution is to contain belt positions and permanent registers in the same "specifier space". Not 8+8, more like 4-6+12-10. MOV is used instead of spill.
I suppose it is out of our scope. The only upgrade path is to make proto-risc first and then update it by a new mode to proto-belt.

BTW, We can see accumulators as a degenerated belts having one position.

Re: Could we build a better 6502?

<se9a8s$csu$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: sfu...@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: Could we build a better 6502?
Date: Mon, 2 Aug 2021 10:33:16 -0700
Organization: A noiseless patient Spider
Lines: 24
Message-ID: <se9a8s$csu$1@dont-email.me>
References: <jwvczqxaym8.fsf-monnier+comp.arch@gnu.org>
<memo.20210801224541.14388M@jgd.cix.co.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 2 Aug 2021 17:33:16 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="2c2c05cbb947c2f82286da79b65b0c3e";
logging-data="13214"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/xGXzZHGfX5o/rdg9lUfRGdgGUiQjOMvA="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.12.0
Cancel-Lock: sha1:PHnRsiB1ZpugZmv0oD9qdLM8oj0=
In-Reply-To: <memo.20210801224541.14388M@jgd.cix.co.uk>
Content-Language: en-US
 by: Stephen Fuld - Mon, 2 Aug 2021 17:33 UTC

On 8/1/2021 2:44 PM, John Dallman wrote:
> In article <jwvczqxaym8.fsf-monnier+comp.arch@gnu.org>,
> monnier@iro.umontreal.ca (Stefan Monnier) wrote:
>
>> No spiller. No "phi nodes". It's up to the programmer to
>> arrange for different control flows to end up with the same
>> values at the same places in the belt, or otherwise to just
>> not use those belt locations. These CPUs were coded in hand-
>> tuned assembly, so it seems perfectly acceptable.
>
> Except for customer resistance. A belt would be a completely new idea at
> the time, and most of the people programming 8-bit microprocessors had no
> computer science training. It could readily acquire a reputation as
> "really clever, but too hard to program."

But to the old timers is is almost a stack machine. But it has the
advantage that a lot of the "move to top of stack" instructions can be
replaced by a direct "stack address".

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

Re: Could we build a better 6502?

<se9auc$jk2$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: Could we build a better 6502?
Date: Mon, 2 Aug 2021 10:44:44 -0700
Organization: A noiseless patient Spider
Lines: 27
Message-ID: <se9auc$jk2$1@dont-email.me>
References: <jwvczqxaym8.fsf-monnier+comp.arch@gnu.org>
<memo.20210801224541.14388M@jgd.cix.co.uk>
<9de70e85-d6c4-4277-8dee-d4ef76529d8dn@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 2 Aug 2021 17:44:45 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="743c4c7592be3435c7d9ead53e29df1e";
logging-data="20098"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/eOrSwrVEpTVJgjZczTblX"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.12.0
Cancel-Lock: sha1:Vheku0xvOcvZxuzRynjyggJExSQ=
In-Reply-To: <9de70e85-d6c4-4277-8dee-d4ef76529d8dn@googlegroups.com>
Content-Language: en-US
 by: Ivan Godard - Mon, 2 Aug 2021 17:44 UTC

On 8/2/2021 10:20 AM, pec...@gmail.com wrote:
> John Dallman wrote:
>> In article <jwvczqxaym8.fsf-...@gnu.org>,
>> mon...@iro.umontreal.ca (Stefan Monnier) wrote:
>>
>>> No spiller. No "phi nodes". It's up to the programmer to
>>> arrange for different control flows to end up with the same
>>> values at the same places in the belt, or otherwise to just
>>> not use those belt locations. These CPUs were coded in hand-
>>> tuned assembly, so it seems perfectly acceptable.
>> Except for customer resistance. A belt would be a completely new idea at
>> the time, and most of the people programming 8-bit microprocessors had no
>> computer science training. It could readily acquire a reputation as
>> "really clever, but too hard to program."
> It is easy to solve by using named variables having limited implicite scope in the source instead of variable belt positions.
> This way programming can be _easier_ , because of meaningful names.
>
> The real problem is that belt semantics doesn't offer anything meaningful for ultra-low-end except a little higher code density (albeit patent protection can be substantial).
> Belt can be a virtual mapping of fragment of physical registers. The obvious solution is to contain belt positions and permanent registers in the same "specifier space". Not 8+8, more like 4-6+12-10. MOV is used instead of spill.
> I suppose it is out of our scope. The only upgrade path is to make proto-risc first and then update it by a new mode to proto-belt.
>
> BTW, We can see accumulators as a degenerated belts having one position.
>

One could; it's an interesting viewpoint, leading to speculation about
two-position "ping-pong" accumulators, in which setting either as
destination causes the former content to be moved to the other.

Re: Could we build a better 6502?

<se9e02$vla$1@newsreader4.netcologne.de>

  copy mid

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

  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!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!news.dns-netz.com!news.freedyn.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-c228-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Could we build a better 6502?
Date: Mon, 2 Aug 2021 18:36:50 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <se9e02$vla$1@newsreader4.netcologne.de>
References: <sde7eg$hgb$1@newsreader4.netcologne.de>
<be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com>
<7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com>
<2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com>
<868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me>
<ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com>
<se44rr$bjk$4@newsreader4.netcologne.de>
<cff8a5c2-c337-45f9-ab24-9ed39a1632c5n@googlegroups.com>
<se68m7$p9u$1@newsreader4.netcologne.de>
<4de8e9d8-4c6c-4906-993d-1c2e4c446fe0n@googlegroups.com>
Injection-Date: Mon, 2 Aug 2021 18:36:50 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-c228-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:c228:0:7285:c2ff:fe6c:992d";
logging-data="32426"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Mon, 2 Aug 2021 18:36 UTC

pec...@gmail.com <peceed@gmail.com> schrieb:
> Thomas Koenig wrote:
>> If we must have two cycles to access a full instruction, then the
>> fist byte could contain the register number of the instruction
>> that needs to be read, if any. Fetching the second part of the
>> instruction would then be parallel to reading the fist register
>> and putting it into an intermediate register.
>>
>> Call it proto-pipelining on the proto-RISC we are discussing.
> I had exactly the same idea. Instruction format should be defined
> this way, that first nibble is a "always read" register.

For reasons of aesthetics, I would probably prefer to have
the first nibble the major opcode, the second one the register.

The major opcode could also show that the register nibble
is a four-bit immediate.

> Single 8
> bit memory access takes 2 cycles, so pipelining is an attractive
> idea.

May have to wait until it is clear that the transistor budget is
not overspent.

> Reading the shortest instruction takes 4 cycles,

If there are only two-byte instructions, the decode of the first
byte can be done in parallel to the fetch of the second one, because
it is clear that there will always be a second read.

>fast implementation with 16 bit adder should be executed in
> the same time, so 16 bit RISC on 8 bit bus makes sense - we can
> saturate bandwidth executing register-register operations.

That was the idea of having as many registers as possoble, of course.

> We have time to read 2 values, but it requires second intermediate register and doesn't save time.

I think so, too.

Re: Could we build a better 6502?

<b21a7122-600c-4f0c-b0b5-2a7bef858a80n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ad4:5bc7:: with SMTP id t7mr17913894qvt.10.1627934237582;
Mon, 02 Aug 2021 12:57:17 -0700 (PDT)
X-Received: by 2002:a05:6808:10d5:: with SMTP id s21mr11778660ois.7.1627934237160;
Mon, 02 Aug 2021 12:57:17 -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, 2 Aug 2021 12:57:16 -0700 (PDT)
In-Reply-To: <se9e02$vla$1@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=5.173.72.76; posting-account=zjh_fgoAAABo0Nzgf6peaFtS6c-3xdgr
NNTP-Posting-Host: 5.173.72.76
References: <sde7eg$hgb$1@newsreader4.netcologne.de> <be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com> <7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com> <2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com> <868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me>
<ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com> <se44rr$bjk$4@newsreader4.netcologne.de>
<cff8a5c2-c337-45f9-ab24-9ed39a1632c5n@googlegroups.com> <se68m7$p9u$1@newsreader4.netcologne.de>
<4de8e9d8-4c6c-4906-993d-1c2e4c446fe0n@googlegroups.com> <se9e02$vla$1@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b21a7122-600c-4f0c-b0b5-2a7bef858a80n@googlegroups.com>
Subject: Re: Could we build a better 6502?
From: pec...@gmail.com (pec...@gmail.com)
Injection-Date: Mon, 02 Aug 2021 19:57:17 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: pec...@gmail.com - Mon, 2 Aug 2021 19:57 UTC

Thomas Koenig wrote:
> > Reading the shortest instruction takes 4 cycles,
> If there are only two-byte instructions, the decode of the first
> byte can be done in parallel to the fetch of the second one, because
> it is clear that there will always be a second read.
You meant "If there is no single-byte instructions...". We need 4-byte instructions having 2-byte address for memory operations, and 3-byte instructions for long jumps, so we probably want to have 1 byte NOP.

I think it doesn't make sense. We can win one cycle at most, only when prefetch didn't work, so the total gain is 1 cycle per jump to instruction, that can benefit . If you consider the fact, that we have 4 times more cycles than 6502, the overall gain is small.
Working prefetch is much more essential, partial instruction decoding seems to be too complicated for me, and too restrictive for allowed instruction formats.

> >fast implementation with 16 bit adder should be executed in the same time
"in one cycle" of course.
> That was the idea of having as many registers as possoble, of course.
> > We have time to read 2 values, but it requires second intermediate register and doesn't save time.
> I think so, too.

Re: Could we build a better 6502?

<d8f66b34-5748-4205-b97b-5199386bd53fn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:aed:2163:: with SMTP id 90mr15908688qtc.186.1627938817462;
Mon, 02 Aug 2021 14:13:37 -0700 (PDT)
X-Received: by 2002:a05:6830:1c1:: with SMTP id r1mr12758191ota.22.1627938817109;
Mon, 02 Aug 2021 14:13:37 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!news.mixmin.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, 2 Aug 2021 14:13:36 -0700 (PDT)
In-Reply-To: <97d08afd-1f4b-4ae8-92cf-e11b1d17018cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=73.188.126.34; posting-account=ujX_IwoAAACu0_cef9hMHeR8g0ZYDNHh
NNTP-Posting-Host: 73.188.126.34
References: <sde7eg$hgb$1@newsreader4.netcologne.de> <be7f8928-ee11-422e-b11e-f89d3ad39782n@googlegroups.com>
<sdhkr7$15vg$1@gal.iecc.com> <7ba1c011-0d7a-40f3-b690-a729134ac9ecn@googlegroups.com>
<g6Odnbe33KUHVWL9nZ2dnUU78U_NnZ2d@supernews.com> <2021Jul27.194213@mips.complang.tuwien.ac.at>
<cee262df-cecf-4111-a213-6341934e564dn@googlegroups.com> <868dc60e-0882-44af-a545-c875f59553f3n@googlegroups.com>
<se1hvt$li9$1@newsreader4.netcologne.de> <se2o7s$uis$1@dont-email.me>
<ed3ba617-1238-4dcb-9829-a8cea7065ec5n@googlegroups.com> <97d08afd-1f4b-4ae8-92cf-e11b1d17018cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d8f66b34-5748-4205-b97b-5199386bd53fn@googlegroups.com>
Subject: Re: Could we build a better 6502?
From: timcaff...@aol.com (Timothy McCaffrey)
Injection-Date: Mon, 02 Aug 2021 21:13:37 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Timothy McCaffrey - Mon, 2 Aug 2021 21:13 UTC

On Saturday, July 31, 2021 at 1:58:55 PM UTC-4, MitchAlsup wrote:
> On Saturday, July 31, 2021 at 12:42:10 PM UTC-5, pec...@gmail.com wrote:
> > > Stephen Fuld wrote:
> > > > To expand a little on a previous post, I still think that a
> > > > proto-RISC design could have been superior. A design with
> > > > - All 16 bit instructions only
> > > > - Load/store architecture
> > > > - 16 registers of 16 bits each
> > > > - Eight bit opcode, eight bit data
> > > > - Possibility of 16-bit immediates for all arithmetic
> > > > operations, load and store for the address
> > > > - Format: op Ra, Ra or op Ra, #immediate (4 bits)
> > > >
> > > > can probably be made to fit on a 6502-sized die using the
> > > > technology of the day.
> > > >
> > > > Of course, such a design would be screaming to have a 16-bit
> > > > data bus.
> > > Yes. With only an 8 bit bus, every instruction will require two memory
> > > reads to fetch the instruction, which will substantially hurt
> > > performance. 8088 anyone? :-(
> > 6502 fetches 2 bytes per instruction anyway, so what is the problem?
> <
> > Performance depends on total code density,
> <
> Performance depends entirely on the total number of memory references.
> <
> > it can be comparable for 8 bit, and much better for 16 bit arithmetic.
> > 16 registers can be optional for next generation, 8 is enough for early variants and increases interrupt performance.
> <
> Both PDP-11 and Nova got away with fewer registers. PDP-11 had 8.
> <
> > There is no 2r1w register file (too expensive), so processor needs much higher internal clock like Z80.

I don't know what the sequencing logic overhead would be (probably too much), but consider:
Get rid of the direct page.
Make the SP 16 bits.
Instead of the DP, change most DP addressing to be SP+(unsigned) offsets.
I'm not real familar with the 6502 ISA, but I think you should be able to do something
like: LDA [SP+offset],X
which adds offset to SP, loads the 16 bit address, adds X to it and loads A from the resulting address.
Since all this is on the stack, instantly gets rid off all the DP allocation contention.
It is also MUCH friendlier to generated code from compilers.
The stack based values end up acting like registers, and if you want to make things faster, start caching the stack...

(I know, everyone liked to put MMIO devices in the DP. Great for the embedded market, not so much for general computing).

- Tim

Pages:12345678910111213
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor