Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

There are two kinds of egotists: 1) Those who admit it 2) The rest of us


devel / comp.arch / How much space did the 68000 registers take up?

SubjectAuthor
* How much space did the 68000 registers take up?Russell Wallace
+* Re: How much space did the 68000 registers take up?MitchAlsup
|`- Re: How much space did the 68000 registers take up?Russell Wallace
+* Re: How much space did the 68000 registers take up?Stephen Fuld
|`- Re: How much space did the 68000 registers take up?Russell Wallace
`* Re: How much space did the 68000 registers take up?Quadibloc
 +* Re: How much space did the 68000 registers take up?Thomas Koenig
 |+- Re: How much space did the 68000 registers take up?MitchAlsup
 |`* Re: bus wars, How much space did the 68000 registers take up?John Levine
 | +* Re: bus wars, How much space did the 68000 registers take up?BGB
 | |+* Re: bus wars, How much space did the 68000 registers take up?John Levine
 | ||+* Re: bus wars, How much space did the 68000 registers take up?BGB
 | |||+* Re: bus wars, How much space did the 68000 registers take up?robf...@gmail.com
 | ||||`- Re: bus wars, How much space did the 68000 registers take up?Terje Mathisen
 | |||`* Re: bus wars, How much space did the 68000 registers take up?MitchAlsup
 | ||| +- Re: bus wars, How much space did the 68000 registers take up?John Levine
 | ||| +- Re: bus wars, How much space did the 68000 registers take up?Scott Lurndal
 | ||| `* Re: bus wars, How much space did the 68000 registers take up?BGB
 | |||  `* Re: bus wars, How much space did the 68000 registers take up?John Levine
 | |||   `* Re: bus wars, How much space did the 68000 registers take up?Terje Mathisen
 | |||    +* Re: bus wars, How much space did the 68000 registers take up?Robert Swindells
 | |||    |`- Re: bus wars, How much space did the 68000 registers take up?Timothy McCaffrey
 | |||    +* Re: bus wars, How much space did the 68000 registers take up?EricP
 | |||    |`- Re: bus wars, How much space did the 68000 registers take up?Terje Mathisen
 | |||    +* Re: bus wars, How much space did the 68000 registers take up?Bernd Linsel
 | |||    |`- Re: bus wars, How much space did the 68000 registers take up?Terje Mathisen
 | |||    `- Re: bus wars, How much space did the 68000 registers take up?Timothy McCaffrey
 | ||+* Re: bus wars, How much space did the 68000 registers take up?Stephen Fuld
 | |||`* Re: bus wars, How much space did the 68000 registers take up?BGB
 | ||| +- Re: bus wars, How much space did the 68000 registers take up?Thomas Koenig
 | ||| `- Re: bus wars, How much space did the 68000 registers take up?Anton Ertl
 | ||+* Re: bus wars, How much space did the 68000 registers take up?Terje Mathisen
 | |||`* Re: bus wars, How much space did the 68000 registers take up?Stephen Fuld
 | ||| +* Re: bus wars, How much space did the 68000 registers take up?BGB
 | ||| |`- Re: bus wars, How much space did the 68000 registers take up?MitchAlsup
 | ||| `* Re: bus wars, How much space did the 68000 registers take up?Scott Lurndal
 | |||  +* Re: bus wars, How much space did the 68000 registers take up?MitchAlsup
 | |||  |+- Re: bus wars, How much space did the 68000 registers take up?Michael S
 | |||  |`- Re: bus wars, How much space did the 68000 registers take up?Scott Lurndal
 | |||  +* Re: bus wars, How much space did the 68000 registers take up?Stephen Fuld
 | |||  |`* Re: bus wars, How much space did the 68000 registers take up?Scott Lurndal
 | |||  | +- Re: bus wars, How much space did the 68000 registers take up?Stephen Fuld
 | |||  | `- Re: bus wars, How much space did the 68000 registers take up?Michael S
 | |||  `* Re: bus wars, How much space did the 68000 registers take up?Michael S
 | |||   `* Re: bus wars, How much space did the 68000 registers take up?Scott Lurndal
 | |||    +- Re: bus wars, How much space did the 68000 registers take up?Michael S
 | |||    +* Re: bus wars, How much space did the 68000 registers take up?Michael S
 | |||    |+* Re: bus wars, How much space did the 68000 registers take up?Terje Mathisen
 | |||    ||`- Re: bus wars, How much space did the 68000 registers take up?Michael S
 | |||    |`* Re: bus wars, How much space did the 68000 registers take up?Scott Lurndal
 | |||    | +* Re: bus wars, How much space did the 68000 registers take up?Michael S
 | |||    | |`- Re: bus wars, How much space did the 68000 registers take up?Scott Lurndal
 | |||    | `- Re: bus wars, How much space did the 68000 registers take up?BGB
 | |||    `- Re: bus wars, How much space did the 68000 registers take up?Terje Mathisen
 | ||`- Re: bus wars, How much space did the 68000 registers take up?David Schultz
 | |+* Re: bus wars, How much space did the 68000 registers take up?MitchAlsup
 | ||+* Re: bus wars, How much space did the 68000 registers take up?BGB
 | |||+- Re: bus wars, How much space did the 68000 registers take up?John Dallman
 | |||`- Re: bus wars, How much space did the 68000 registers take up?Anton Ertl
 | ||+- Re: bus wars, How much space did the 68000 registers take up?Anton Ertl
 | ||`* Re: bus wars, How much space did the 68000 registers take up?Timothy McCaffrey
 | || +* Re: bus wars, How much space did the 68000 registers take up?Anton Ertl
 | || |+* Re: bus wars, How much space did the 68000 registers take up?Timothy McCaffrey
 | || ||`* Re: bus wars, How much space did the 68000 registers take up?Anton Ertl
 | || || +- Re: bus wars, How much space did the 68000 registers take up?Timothy McCaffrey
 | || || `- Re: bus wars, How much space did the 68000 registers take up?MitchAlsup
 | || |`- Re: bus wars, How much space did the 68000 registers take up?MitchAlsup
 | || `- Re: bus wars, How much space did the 68000 registers take up?tridac
 | |`- Re: bus wars, How much space did the 68000 registers take up?Anton Ertl
 | +- Re: bus wars, How much space did the 68000 registers take up?MitchAlsup
 | `* Re: bus wars, How much space did the 68000 registers take up?Terje Mathisen
 |  +- Re: bus wars, How much space did the 68000 registers take up?Anton Ertl
 |  +* Re: bus wars, How much space did the 68000 registers take up?Thomas Koenig
 |  |`- Re: bus wars, How much space did the 68000 registers take up?John Levine
 |  `* Re: bus wars, How much space did the 68000 registers take up?Michael S
 |   `* Re: mainframe bus wars, How much space did the 68000 registers take up?John Levine
 |    `- Re: mainframe bus wars, How much space did the 68000 registers take up?Lynn Wheeler
 +* Re: How much space did the 68000 registers take up?EricP
 |`* Re: How much space did the 68000 registers take up?MitchAlsup
 | `- Re: CISC all the way down, How much space did the 68000 registers take up?John Levine
 +* Re: How much space did the 68000 registers take up?Anton Ertl
 |+* Re: How much space did the 68000 registers take up?BGB
 ||`* Re: How much space did the 68000 registers take up?MitchAlsup
 || `* Re: How much space did the 68000 registers take up?BGB
 ||  `* Re: How much space did the 68000 registers take up?MitchAlsup
 ||   `* Re: How much space did the 68000 registers take up?BGB
 ||    `* Re: How much space did the 68000 registers take up?MitchAlsup
 ||     `* Re: How much space did the 68000 registers take up?BGB
 ||      `* Re: How much space did the 68000 registers take up?MitchAlsup
 ||       `* Re: How much space did the 68000 registers take up?BGB
 ||        +- Re: How much space did the 68000 registers take up?MitchAlsup
 ||        `* Re: How much space did the 68000 registers take up?MitchAlsup
 ||         `* Re: How much space did the 68000 registers take up?BGB-Alt
 ||          `* Re: How much space did the 68000 registers take up?robf...@gmail.com
 ||           +* Re: How much space did the 68000 registers take up?MitchAlsup
 ||           |+- Re: How much space did the 68000 registers take up?BGB
 ||           |`* Re: How much space did the 68000 registers take up?Thomas Koenig
 ||           | `* Re: How much space did the 68000 registers take up?BGB
 ||           |  +* Re: How much space did the 68000 registers take up?MitchAlsup
 ||           |  |`* Re: How much space did the 68000 registers take up?BGB
 ||           |  | `* Re: How much space did the 68000 registers take up?MitchAlsup
 ||           |  `* Re: How much space did the 68000 registers take up?Scott Lurndal
 ||           `- Re: How much space did the 68000 registers take up?BGB
 |`* Re: How much space did the 68000 registers take up?Thomas Koenig
 `- Re: How much space did the 68000 registers take up?MitchAlsup

Pages:123456789101112
How much space did the 68000 registers take up?

<27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33056&group=comp.arch#33056

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:1a22:b0:400:a890:6301 with SMTP id f34-20020a05622a1a2200b00400a8906301mr7194qtb.7.1688664652805;
Thu, 06 Jul 2023 10:30:52 -0700 (PDT)
X-Received: by 2002:a05:6a00:3920:b0:682:a8df:e642 with SMTP id
fh32-20020a056a00392000b00682a8dfe642mr3002507pfb.5.1688664652401; Thu, 06
Jul 2023 10:30:52 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Thu, 6 Jul 2023 10:30:51 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=2a02:8084:601f:9880:19ff:8bac:5e87:553;
posting-account=f4I3oAkAAABDSN7-E4aFhBpEX3HML7-_
NNTP-Posting-Host: 2a02:8084:601f:9880:19ff:8bac:5e87:553
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
Subject: How much space did the 68000 registers take up?
From: russell.wallace@gmail.com (Russell Wallace)
Injection-Date: Thu, 06 Jul 2023 17:30:52 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2545
 by: Russell Wallace - Thu, 6 Jul 2023 17:30 UTC

The Motorola 68000 has 16 (somewhat) general-purpose registers of 32 bits each, a generous complement by the standards of its day. I would expect these to take a significant fraction of the die area. (If they didn't, there would be little reason for competing microprocessors like the 8086 to fail to provide something similar.)

Back of the envelope calculation, 16x32x6 (static memory takes six transistors per bit) = 3072 transistors. The 68k is reckoned to have 40k transistors if you don't count microcode, almost 70k if you do. So the memory cells for the registers should take somewhere around 5% of the die; maybe it's closer to 10% if you also take the access circuitry into account?

That is surprisingly small, sufficiently so that it seems like 32 registers could've been provided. (The ARM-1 did exactly that, somewhat later but with similar process technology.) Maybe the instruction encoding space would have been considered a problem. Or maybe the designers were considering use of compiled languages, and noting contemporary compilers were not good at using lots of registers.

Trying to find an annotated die photo, I found this: http://www.easy68k.com/paulrsm/doc/dpbm68k2.htm

Which... doesn't mention the registers at all, nor leave any unaccounted space where they could be.

Is there an error in the annotation? or are the registers part of one of the marked units?

Re: How much space did the 68000 registers take up?

<3e9cff27-48ee-4354-84e9-26673f18ad76n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33064&group=comp.arch#33064

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:470c:b0:762:4134:c1be with SMTP id bs12-20020a05620a470c00b007624134c1bemr5300qkb.9.1688668259242;
Thu, 06 Jul 2023 11:30:59 -0700 (PDT)
X-Received: by 2002:a05:6a00:2d04:b0:666:8f6c:c8ad with SMTP id
fa4-20020a056a002d0400b006668f6cc8admr6516696pfb.2.1688668258669; Thu, 06 Jul
2023 11:30:58 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Thu, 6 Jul 2023 11:30:58 -0700 (PDT)
In-Reply-To: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:8a5:2639:4a28:1128;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:8a5:2639:4a28:1128
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3e9cff27-48ee-4354-84e9-26673f18ad76n@googlegroups.com>
Subject: Re: How much space did the 68000 registers take up?
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Thu, 06 Jul 2023 18:30:59 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3601
 by: MitchAlsup - Thu, 6 Jul 2023 18:30 UTC

On Thursday, July 6, 2023 at 12:30:54 PM UTC-5, Russell Wallace wrote:
> The Motorola 68000 has 16 (somewhat) general-purpose registers of 32 bits each, a generous complement by the standards of its day. I would expect these to take a significant fraction of the die area. (If they didn't, there would be little reason for competing microprocessors like the 8086 to fail to provide something similar.)
>
> Back of the envelope calculation, 16x32x6 (static memory takes six transistors per bit) = 3072 transistors. The 68k is reckoned to have 40k transistors if you don't count microcode, almost 70k if you do. So the memory cells for the registers should take somewhere around 5% of the die; maybe it's closer to 10% if you also take the access circuitry into account?
>
> That is surprisingly small, sufficiently so that it seems like 32 registers could've been provided. (The ARM-1 did exactly that, somewhat later but with similar process technology.) Maybe the instruction encoding space would have been considered a problem. Or maybe the designers were considering use of compiled languages, and noting contemporary compilers were not good at using lots of registers.
>
> Trying to find an annotated die photo, I found this: http://www.easy68k.com/paulrsm/doc/dpbm68k2.htm
<
The register files are easy to see. Go to the address lower section block. Towards the right is a rectangular
stippled section--this is the register file.
<
Now go to the address high block, and towards the left hand side is a rectangular section twice as wide.
This is the register file. They did this so the 2 arithmetic units would be closer (for carry).
<
Over in the data section, towards the left is another rectangular section the same size as the lower address
section with the same stipple pattern. These are the data registers.
<
The PC is in both address units, and there are a couple of address and data registers that only
microcode uses.
<
If you find a picture without the words on top, I can illustrate where the ALUs are and the shifters,.....
>
> Which... doesn't mention the registers at all, nor leave any unaccounted space where they could be.
>
> Is there an error in the annotation? or are the registers part of one of the marked units?

Re: How much space did the 68000 registers take up?

<u872b7$10r09$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33065&group=comp.arch#33065

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: sfuld@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: How much space did the 68000 registers take up?
Date: Thu, 6 Jul 2023 11:49:10 -0700
Organization: A noiseless patient Spider
Lines: 13
Message-ID: <u872b7$10r09$1@dont-email.me>
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 6 Jul 2023 18:49:11 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="8aa8c4a451155385aa6d35f6c388a511";
logging-data="1076233"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19Tj7N0hQK4J2FVY5sOHwMtyDlHSurVBdQ="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.12.0
Cancel-Lock: sha1:CVKiIAHZKIaksXtppQY/p161LBM=
Content-Language: en-US
In-Reply-To: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
 by: Stephen Fuld - Thu, 6 Jul 2023 18:49 UTC

On 7/6/2023 10:30 AM, Russell Wallace wrote:
> The Motorola 68000 has 16 (somewhat) general-purpose registers of 32 bits each, a generous complement by the standards of its day. I would expect these to take a significant fraction of the die area. (If they didn't, there would be little reason for competing microprocessors like the 8086 to fail to provide something similar.)

As has been mentioned here recently, and many time before and in other
places, the 8086 was designed as an almost upward compatible successor
to the 8080, which was an accumulator design with few registers. Intel
didn't add more registers till later.

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

Re: How much space did the 68000 registers take up?

<b987ccb9-20e8-40e1-9aab-4771645a12d9n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33068&group=comp.arch#33068

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:4c1d:b0:635:9ddf:fd9c with SMTP id qh29-20020a0562144c1d00b006359ddffd9cmr16717qvb.5.1688672364382;
Thu, 06 Jul 2023 12:39:24 -0700 (PDT)
X-Received: by 2002:a05:6870:5b2e:b0:1b0:401:823d with SMTP id
ds46-20020a0568705b2e00b001b00401823dmr33195oab.6.1688672363907; Thu, 06 Jul
2023 12:39:23 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Thu, 6 Jul 2023 12:39:23 -0700 (PDT)
In-Reply-To: <3e9cff27-48ee-4354-84e9-26673f18ad76n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2a02:8084:601f:9880:19ff:8bac:5e87:553;
posting-account=f4I3oAkAAABDSN7-E4aFhBpEX3HML7-_
NNTP-Posting-Host: 2a02:8084:601f:9880:19ff:8bac:5e87:553
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com> <3e9cff27-48ee-4354-84e9-26673f18ad76n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b987ccb9-20e8-40e1-9aab-4771645a12d9n@googlegroups.com>
Subject: Re: How much space did the 68000 registers take up?
From: russell.wallace@gmail.com (Russell Wallace)
Injection-Date: Thu, 06 Jul 2023 19:39:24 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2371
 by: Russell Wallace - Thu, 6 Jul 2023 19:39 UTC

On Thursday, July 6, 2023 at 7:31:00 PM UTC+1, MitchAlsup wrote:
> The register files are easy to see. Go to the address lower section block.. Towards the right is a rectangular
> stippled section--this is the register file.
> <
> Now go to the address high block, and towards the left hand side is a rectangular section twice as wide.
> This is the register file. They did this so the 2 arithmetic units would be closer (for carry).
> <
> Over in the data section, towards the left is another rectangular section the same size as the lower address
> section with the same stipple pattern. These are the data registers.
> <
> The PC is in both address units, and there are a couple of address and data registers that only
> microcode uses.

Aha! Thanks.

> If you find a picture without the words on top, I can illustrate where the ALUs are and the shifters,.....

This is a more detailed, non-annotated picture:
http://www.visual6502.org/images/68000/Motorola_68000_die_20x_1a_top_10000w..png

Re: How much space did the 68000 registers take up?

<74303547-83b2-4a92-8e35-1fc7106bf8e8n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33069&group=comp.arch#33069

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:5a87:0:b0:400:85a8:f85c with SMTP id c7-20020ac85a87000000b0040085a8f85cmr9688qtc.0.1688672500141;
Thu, 06 Jul 2023 12:41:40 -0700 (PDT)
X-Received: by 2002:a17:90a:5b0c:b0:263:4105:6321 with SMTP id
o12-20020a17090a5b0c00b0026341056321mr2168034pji.6.1688672499384; Thu, 06 Jul
2023 12:41:39 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Thu, 6 Jul 2023 12:41:38 -0700 (PDT)
In-Reply-To: <u872b7$10r09$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2a02:8084:601f:9880:19ff:8bac:5e87:553;
posting-account=f4I3oAkAAABDSN7-E4aFhBpEX3HML7-_
NNTP-Posting-Host: 2a02:8084:601f:9880:19ff:8bac:5e87:553
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com> <u872b7$10r09$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <74303547-83b2-4a92-8e35-1fc7106bf8e8n@googlegroups.com>
Subject: Re: How much space did the 68000 registers take up?
From: russell.wallace@gmail.com (Russell Wallace)
Injection-Date: Thu, 06 Jul 2023 19:41:40 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1853
 by: Russell Wallace - Thu, 6 Jul 2023 19:41 UTC

On Thursday, July 6, 2023 at 7:49:14 PM UTC+1, Stephen Fuld wrote:
> As has been mentioned here recently, and many time before and in other
> places, the 8086 was designed as an almost upward compatible successor
> to the 8080, which was an accumulator design with few registers. Intel
> didn't add more registers till later.

Oh, indeed! But it only needed to be compatible at the assembly level, not binary machine code. They could have added more registers.

Indeed, they never did voluntarily add more registers to x86, only when AMD forced their hand, much later, with x64.

Re: How much space did the 68000 registers take up?

<a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33100&group=comp.arch#33100

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:9c5:b0:635:dabe:94 with SMTP id dp5-20020a05621409c500b00635dabe0094mr28190qvb.11.1688882027562;
Sat, 08 Jul 2023 22:53:47 -0700 (PDT)
X-Received: by 2002:a63:5222:0:b0:53f:29a2:e92 with SMTP id
g34-20020a635222000000b0053f29a20e92mr6463514pgb.8.1688882027023; Sat, 08 Jul
2023 22:53:47 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sat, 8 Jul 2023 22:53:46 -0700 (PDT)
In-Reply-To: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fa34:c000:1034:98f6:1ac4:dc5f;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fa34:c000:1034:98f6:1ac4:dc5f
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com>
Subject: Re: How much space did the 68000 registers take up?
From: jsavard@ecn.ab.ca (Quadibloc)
Injection-Date: Sun, 09 Jul 2023 05:53:47 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1948
 by: Quadibloc - Sun, 9 Jul 2023 05:53 UTC

On Thursday, July 6, 2023 at 11:30:54 AM UTC-6, Russell Wallace wrote:

> That is surprisingly small, sufficiently so that it seems like 32 registers could've been provided.

The Motorola 68000 divided the 16 registers it did provide into two
groups; the general registers and the address registers. So it needed
three-bit fields to specify a register in either group.

The Motorola 68000 was a CISC processor; it didn't "need" more than
eight registers in a register bank. Providing 32 registers is something
RISC processors do - for them, it's worth the opcode space, because
opcode space is saved elsewhere (mainly by making all memory-reference
instructions only loads and stores).

John Savard

Re: How much space did the 68000 registers take up?

<u8duml$chsc$1@newsreader4.netcologne.de>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33102&group=comp.arch#33102

  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-15fa-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoenig@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: How much space did the 68000 registers take up?
Date: Sun, 9 Jul 2023 09:29:57 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <u8duml$chsc$1@newsreader4.netcologne.de>
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
<a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 9 Jul 2023 09:29:57 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-15fa-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:15fa:0:7285:c2ff:fe6c:992d";
logging-data="411532"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sun, 9 Jul 2023 09:29 UTC

Quadibloc <jsavard@ecn.ab.ca> schrieb:
> On Thursday, July 6, 2023 at 11:30:54 AM UTC-6, Russell Wallace wrote:
>
>> That is surprisingly small, sufficiently so that it seems like 32 registers could've been provided.
>
> The Motorola 68000 divided the 16 registers it did provide into two
> groups; the general registers and the address registers. So it needed
> three-bit fields to specify a register in either group.
>
> The Motorola 68000 was a CISC processor; it didn't "need" more than
> eight registers in a register bank.

Considering other microprocessors at the time, this was sheer luxury.

I found an interesting article about the design of the M68K at
http://www.easy68k.com/paulrsm/doc/dpbm68k1.htm . I also found
the section on microcode interesting, especially knowing what we
know now about RISC designs and the different tradeoffs they used.

One should also not forget bus width, which also costs money.
The ARM2 was able to beat the 68000 on speed by a large factor
with a lower transistor count, but it also had a 32-bit data bus
(which, considering periphery, might have been too expensive when
the 68000 was designed).

Re: How much space did the 68000 registers take up?

<RkAqM.25910$Sc61.17314@fx39.iad>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33103&group=comp.arch#33103

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx39.iad.POSTED!not-for-mail
From: ThatWouldBeTelling@thevillage.com (EricP)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
Newsgroups: comp.arch
Subject: Re: How much space did the 68000 registers take up?
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com> <a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com>
In-Reply-To: <a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 43
Message-ID: <RkAqM.25910$Sc61.17314@fx39.iad>
X-Complaints-To: abuse@UsenetServer.com
NNTP-Posting-Date: Sun, 09 Jul 2023 15:26:41 UTC
Date: Sun, 09 Jul 2023 11:26:42 -0400
X-Received-Bytes: 2929
 by: EricP - Sun, 9 Jul 2023 15:26 UTC

Quadibloc wrote:
> On Thursday, July 6, 2023 at 11:30:54 AM UTC-6, Russell Wallace wrote:
>
>> That is surprisingly small, sufficiently so that it seems like 32 registers could've been provided.
>
> The Motorola 68000 divided the 16 registers it did provide into two
> groups; the general registers and the address registers. So it needed
> three-bit fields to specify a register in either group.
>
> The Motorola 68000 was a CISC processor; it didn't "need" more than
> eight registers in a register bank. Providing 32 registers is something
> RISC processors do - for them, it's worth the opcode space, because
> opcode space is saved elsewhere (mainly by making all memory-reference
> instructions only loads and stores).
>
> John Savard

CISC's require temp registers to hold intermediate values,
which becomes overhead if unused. Also this can create internal
RAW dependencies that cause stalls which, because they are internal,
cannot be avoided by rearranging your instruction order.

RISC's make such intermediate values explicit and can sometimes move
the RAW dependencies so they don't stall. Registers not used to hold
such intermediates don't sit idle and are available to programmers.

CISC's have many optional instruction features, and that buggers up
in-order pipeline designs which like everything to be the same.
So a CISC could wind up having to insert multiple pipeline stages,
increasing the latency, just to support some rarely used features.

RISC's make the consumer of a rare and complex features pay.
If your program needs double-indirect auto-increment addressing **ptr++
then only you pay the cost in terms of clocks, temp registers, and stalls.

This isn't just RISC performance advantages, but also lower R&D costs
that are amortized across units sold, shortens time to market and how
quickly you can utilized new processes to gain a product advantage,
and minimizes time to generate revenue and return on investment.

The 68000 probably took dozens of engineers 3 years to design.
The Stanford MIPS and RISC-I took about two grad students 6 months
(excluding costs for all the software tools they had to develop).

Re: How much space did the 68000 registers take up?

<2023Jul9.173411@mips.complang.tuwien.ac.at>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33106&group=comp.arch#33106

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: anton@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.arch
Subject: Re: How much space did the 68000 registers take up?
Date: Sun, 09 Jul 2023 15:34:11 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 37
Message-ID: <2023Jul9.173411@mips.complang.tuwien.ac.at>
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com> <a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com>
Injection-Info: dont-email.me; posting-host="83f3b519e292baee83d624663f967834";
logging-data="2288853"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18FJ2v1umV0PWZ0M1t8P74d"
Cancel-Lock: sha1:A6FGBoo4hqMPG3BBIDqGOqLtrYA=
X-newsreader: xrn 10.11
 by: Anton Ertl - Sun, 9 Jul 2023 15:34 UTC

Quadibloc <jsavard@ecn.ab.ca> writes:
>The Motorola 68000 divided the 16 registers it did provide into two
>groups; the general registers and the address registers. So it needed
>three-bit fields to specify a register in either group.
>
>The Motorola 68000 was a CISC processor; it didn't "need" more than
>eight registers in a register bank.

Counterexamples: IBM S/360, VAX, AMD64, all of which have ~16
general-purpose registers.

I think that the 16-bit memory interface of the 68000 meant that they
wanted to have many instructions that fit in 16 bits, and with more
than 8 registers this becomes difficult (see also the PDP-11). The
8086 is an example that trying to fit useful instructions in 8 bits
leads to even more limitations.

Another example is the RISC-V C extension (16-bit wide instructions),
where a number of these instructions can access only 8 of the 32
registers of the architecture.

>Providing 32 registers is something
>RISC processors do - for them, it's worth the opcode space, because
>opcode space is saved elsewhere

No, it's because they have the opcode space. All those with 32
registers have 32-bit memory interfaces and therefore could afford
32-bit instructions, so they could afford encoding registers in 5
bits. ARM1/2 also has a 32-bit memory interface and 32-bit
instructions, but only 16 GPRs (maybe due to area concerns, maybe
because the 801 only has 16 registers), and used the extra bits for
stuff like shifts or conditions.

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

Re: How much space did the 68000 registers take up?

<daa5ca94-f4e8-40bb-9df4-d38bcb1b20b4n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33109&group=comp.arch#33109

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:5790:0:b0:403:a627:8b79 with SMTP id v16-20020ac85790000000b00403a6278b79mr12777qta.13.1688923517646;
Sun, 09 Jul 2023 10:25:17 -0700 (PDT)
X-Received: by 2002:a63:9dcf:0:b0:543:fd61:5d38 with SMTP id
i198-20020a639dcf000000b00543fd615d38mr7449354pgd.2.1688923517188; Sun, 09
Jul 2023 10:25: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: Sun, 9 Jul 2023 10:25:16 -0700 (PDT)
In-Reply-To: <a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:93c:bdba:1d16:81d3;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:93c:bdba:1d16:81d3
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com> <a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <daa5ca94-f4e8-40bb-9df4-d38bcb1b20b4n@googlegroups.com>
Subject: Re: How much space did the 68000 registers take up?
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Sun, 09 Jul 2023 17:25:17 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: MitchAlsup - Sun, 9 Jul 2023 17:25 UTC

On Sunday, July 9, 2023 at 12:53:49 AM UTC-5, Quadibloc wrote:
> On Thursday, July 6, 2023 at 11:30:54 AM UTC-6, Russell Wallace wrote:
>
> > That is surprisingly small, sufficiently so that it seems like 32 registers could've been provided.
> The Motorola 68000 divided the 16 registers it did provide into two
> groups; the general registers and the address registers. So it needed
> three-bit fields to specify a register in either group.
<
8 DATA registers and 8 Address registers.
>
> The Motorola 68000 was a CISC processor; it didn't "need" more than
> eight registers in a register bank. Providing 32 registers is something
> RISC processors do - for them, it's worth the opcode space, because
> opcode space is saved elsewhere (mainly by making all memory-reference
> instructions only loads and stores).
<
It is more correct to say, the designers did not think they needed more
registers, time has shown that they would have performed better with
more.
>
> John Savard

Re: How much space did the 68000 registers take up?

<84983860-e9cf-4f12-9e87-c9735ba9303an@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33110&group=comp.arch#33110

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:45a6:b0:765:a707:40dd with SMTP id bp38-20020a05620a45a600b00765a70740ddmr26301qkb.3.1688923832599;
Sun, 09 Jul 2023 10:30:32 -0700 (PDT)
X-Received: by 2002:a63:3f08:0:b0:553:3ba2:f36 with SMTP id
m8-20020a633f08000000b005533ba20f36mr7406806pga.9.1688923831625; Sun, 09 Jul
2023 10:30:31 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.cmpublishers.com!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 9 Jul 2023 10:30:31 -0700 (PDT)
In-Reply-To: <u8duml$chsc$1@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:93c:bdba:1d16:81d3;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:93c:bdba:1d16:81d3
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
<a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com> <u8duml$chsc$1@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <84983860-e9cf-4f12-9e87-c9735ba9303an@googlegroups.com>
Subject: Re: How much space did the 68000 registers take up?
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Sun, 09 Jul 2023 17:30:32 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2853
 by: MitchAlsup - Sun, 9 Jul 2023 17:30 UTC

On Sunday, July 9, 2023 at 4:30:01 AM UTC-5, Thomas Koenig wrote:
> Quadibloc <jsa...@ecn.ab.ca> schrieb:
> > On Thursday, July 6, 2023 at 11:30:54 AM UTC-6, Russell Wallace wrote:
> >
> >> That is surprisingly small, sufficiently so that it seems like 32 registers could've been provided.
> >
> > The Motorola 68000 divided the 16 registers it did provide into two
> > groups; the general registers and the address registers. So it needed
> > three-bit fields to specify a register in either group.
> >
> > The Motorola 68000 was a CISC processor; it didn't "need" more than
> > eight registers in a register bank.
> Considering other microprocessors at the time, this was sheer luxury.
>
> I found an interesting article about the design of the M68K at
> http://www.easy68k.com/paulrsm/doc/dpbm68k1.htm . I also found
> the section on microcode interesting, especially knowing what we
> know now about RISC designs and the different tradeoffs they used.
<
That section is standard Wilke's Microcode asperation--which was
in vogue at the time.
<
It took pipeline RISC designs to shake the tree and have the apple
fall to the ground.
>
> One should also not forget bus width, which also costs money.
> The ARM2 was able to beat the 68000 on speed by a large factor
> with a lower transistor count, but it also had a 32-bit data bus
> (which, considering periphery, might have been too expensive when
> the 68000 was designed).

Re: How much space did the 68000 registers take up?

<2246544f-9aa2-4a08-9974-0a081762b7a6n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33111&group=comp.arch#33111

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:1629:b0:635:ef76:6448 with SMTP id e9-20020a056214162900b00635ef766448mr30222qvw.6.1688924188351;
Sun, 09 Jul 2023 10:36:28 -0700 (PDT)
X-Received: by 2002:a05:6a00:2d17:b0:66a:4083:5c99 with SMTP id
fa23-20020a056a002d1700b0066a40835c99mr14861507pfb.1.1688924188072; Sun, 09
Jul 2023 10:36:28 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 9 Jul 2023 10:36:27 -0700 (PDT)
In-Reply-To: <RkAqM.25910$Sc61.17314@fx39.iad>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:93c:bdba:1d16:81d3;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:93c:bdba:1d16:81d3
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
<a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com> <RkAqM.25910$Sc61.17314@fx39.iad>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2246544f-9aa2-4a08-9974-0a081762b7a6n@googlegroups.com>
Subject: Re: How much space did the 68000 registers take up?
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Sun, 09 Jul 2023 17:36:28 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 4206
 by: MitchAlsup - Sun, 9 Jul 2023 17:36 UTC

On Sunday, July 9, 2023 at 10:26:45 AM UTC-5, EricP wrote:
> Quadibloc wrote:
> > On Thursday, July 6, 2023 at 11:30:54 AM UTC-6, Russell Wallace wrote:
> >
> >> That is surprisingly small, sufficiently so that it seems like 32 registers could've been provided.
> >
> > The Motorola 68000 divided the 16 registers it did provide into two
> > groups; the general registers and the address registers. So it needed
> > three-bit fields to specify a register in either group.
> >
> > The Motorola 68000 was a CISC processor; it didn't "need" more than
> > eight registers in a register bank. Providing 32 registers is something
> > RISC processors do - for them, it's worth the opcode space, because
> > opcode space is saved elsewhere (mainly by making all memory-reference
> > instructions only loads and stores).
> >
> > John Savard
> CISC's require temp registers to hold intermediate values,
> which becomes overhead if unused. Also this can create internal
> RAW dependencies that cause stalls which, because they are internal,
> cannot be avoided by rearranging your instruction order.
<
Generally these registers are only used when running a multi-step
microcode routine.
>
> RISC's make such intermediate values explicit and can sometimes move
> the RAW dependencies so they don't stall. Registers not used to hold
> such intermediates don't sit idle and are available to programmers.
>
> CISC's have many optional instruction features, and that buggers up
> in-order pipeline designs which like everything to be the same.
> So a CISC could wind up having to insert multiple pipeline stages,
> increasing the latency, just to support some rarely used features.
<
Certainly PDP-11, VAX, 68K, N32K, and a few more had those features.
Other CISCs did not: 360/370, Interdata, S.E.L, ...
>
> RISC's make the consumer of a rare and complex features pay.
> If your program needs double-indirect auto-increment addressing **ptr++
> then only you pay the cost in terms of clocks, temp registers, and stalls..
<
It ends up that one can pipeline away the cache reads in a 360-like ISA
that cannot be pipelined away in a PDP-11/VAX-like ISA; making an
inbound memory read "almost" equal in latency as a register read.
>
> This isn't just RISC performance advantages, but also lower R&D costs
> that are amortized across units sold, shortens time to market and how
> quickly you can utilized new processes to gain a product advantage,
> and minimizes time to generate revenue and return on investment.
>
> The 68000 probably took dozens of engineers 3 years to design.
> The Stanford MIPS and RISC-I took about two grad students 6 months
> (excluding costs for all the software tools they had to develop).

Re: How much space did the 68000 registers take up?

<u8eth9$26qad$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33112&group=comp.arch#33112

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: cr88192@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: How much space did the 68000 registers take up?
Date: Sun, 9 Jul 2023 13:16:02 -0500
Organization: A noiseless patient Spider
Lines: 119
Message-ID: <u8eth9$26qad$1@dont-email.me>
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
<a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com>
<2023Jul9.173411@mips.complang.tuwien.ac.at>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 9 Jul 2023 18:16:09 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="02faf76c412a96b366873e55bfd93382";
logging-data="2320717"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+AM8MhekGKw+usg9vbkyBH"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.12.0
Cancel-Lock: sha1:0YT4VGFl8S8iFsoyJsnL45TOtB8=
In-Reply-To: <2023Jul9.173411@mips.complang.tuwien.ac.at>
Content-Language: en-US
 by: BGB - Sun, 9 Jul 2023 18:16 UTC

On 7/9/2023 10:34 AM, Anton Ertl wrote:
> Quadibloc <jsavard@ecn.ab.ca> writes:
>> The Motorola 68000 divided the 16 registers it did provide into two
>> groups; the general registers and the address registers. So it needed
>> three-bit fields to specify a register in either group.
>>
>> The Motorola 68000 was a CISC processor; it didn't "need" more than
>> eight registers in a register bank.
>
> Counterexamples: IBM S/360, VAX, AMD64, all of which have ~16
> general-purpose registers.
>
> I think that the 16-bit memory interface of the 68000 meant that they
> wanted to have many instructions that fit in 16 bits, and with more
> than 8 registers this becomes difficult (see also the PDP-11). The
> 8086 is an example that trying to fit useful instructions in 8 bits
> leads to even more limitations.
>
> Another example is the RISC-V C extension (16-bit wide instructions),
> where a number of these instructions can access only 8 of the 32
> registers of the architecture.
>

FWIW:
Both SuperH (and also BJX2) can use 16 GPRs for the 16-bit instruction
encodings.

However, in both ISA's, they are effectively Load/Store with typically
only 2R encodings for the 16-bit ops.

In my case, there are some 16-bit ops with access to R16..R31, but
mostly limited to special cases:
MOV, ADD
MOV.{L/Q} (SP, Disp4), Rn
...
Nothing in 16-bit land has access to R32..R63 though.

Both RISC-V C and Thumb tried for 3R encodings within the 16-bit opcode
space. But, arguably this doesn't seem terribly worthwhile as the "hit
rate" for being limited to 8 registers is lower than that for being
limited to, say: "Rn=Rn+Rm;" and similar.

Comparably, both RV-C and Thumb had a lot of hair in terms of their
16-bit encodings as well.

MSP430 managed 16-bit instructions, 16 registers, and CISC-like Reg/Mem
operations, but paid for this by having an absurdly small opcode space
(with a lot of instructions being encoded by playing trickery with the
register fields and addressing modes).

>> Providing 32 registers is something
>> RISC processors do - for them, it's worth the opcode space, because
>> opcode space is saved elsewhere
>
> No, it's because they have the opcode space. All those with 32
> registers have 32-bit memory interfaces and therefore could afford
> 32-bit instructions, so they could afford encoding registers in 5
> bits. ARM1/2 also has a 32-bit memory interface and 32-bit
> instructions, but only 16 GPRs (maybe due to area concerns, maybe
> because the 801 only has 16 registers), and used the extra bits for
> stuff like shifts or conditions.
>

In my case, I have some encodings (and an operating mode) which have
6-bit register fields, conditional execution, etc.

But, compared with most RISC's (with a 32-bit instruction size), mine
has comparably small immediate fields.

Though, interestingly, XG2 Mode has typically the same sized immediate
fields as SH-5 (which also had 6-bit register fields).

Baseline mode only has 5-bit register fields for the most part, whereas
XG2 gains 6-bit fields at the expense of making the 16-bit ops N/E.

I don't see the smaller immediate fields as too big of a loss though:
There is a reasonably good hit-rate with the current immediate fields;
The ISA design does not overly penalize cases where an immediate can't
fit in the immediate-field;
There are also Jumbo prefixes.

In contrast, in RISC-V, if one exceeds the 12-bit immediate field one is
typically looking at a 3 instruction fallback case.

But, OTOH, my ISA has both:
ADD Rm, Imm9u, Rn
And:
ADD Imm16s, Rn

Whereas RISC-V only has:
ADD Rd, Rs, Imm12s

Partly because some tasks (like adjusting the stack pointer) don't map
over well to a 9-bit immediate field.

Also the first version of my ISA design only had 5-bit immediate fields,
but these were quickly revealed to be... insufficient...

If I were to try to shoe-horn my entire "wish-list" into a 32-bit
instruction word (and have an OK amount of opcode space), would mostly
end up needing to reduce most immediate values to 6 bits (with ~ 12 bits
for 2RI encodings), which is "less good".

So, it seemed "less bad" to not be able to encode some features in some
combinations, than to be able to encode them but then have nearly
everything being limited to 6-bit immediate fields.

Re: How much space did the 68000 registers take up?

<u8evvi$da9e$1@newsreader4.netcologne.de>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33113&group=comp.arch#33113

  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-15fa-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoenig@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: How much space did the 68000 registers take up?
Date: Sun, 9 Jul 2023 18:57:54 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <u8evvi$da9e$1@newsreader4.netcologne.de>
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
<a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com>
<2023Jul9.173411@mips.complang.tuwien.ac.at>
Injection-Date: Sun, 9 Jul 2023 18:57:54 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-15fa-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:15fa:0:7285:c2ff:fe6c:992d";
logging-data="436526"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sun, 9 Jul 2023 18:57 UTC

Anton Ertl <anton@mips.complang.tuwien.ac.at> schrieb:

> I think that the 16-bit memory interface of the 68000 meant that they
> wanted to have many instructions that fit in 16 bits, and with more
> than 8 registers this becomes difficult (see also the PDP-11). The
> 8086 is an example that trying to fit useful instructions in 8 bits
> leads to even more limitations.

This is a bit into an alternative past...

A load-store architecture with 16-bit instruction words could have
16 registers, a = a op b instructions. This would leave 256 opcodes.

However, a strict 16-bit word would probably not work too well
well because lack of constants, the familar RISC problem made more
pressing by having fewer bits. Putting in "load register lower" and
"load regster upper" might have been possible, but would have
eaten into the opcode space big time. More flexibility could
probably have been achieved using one register as second operand
as marker for a constant following in the instruction stream.

It might be fun to design an alternative to the PDP-11, but one
should not forget code size: In the days of core memory, memory
was _really_ expensive. I am not sure how such a proto-RISC
would compete on code size.

Re: How much space did the 68000 registers take up?

<u8f1kt$27co5$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33114&group=comp.arch#33114

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: cr88192@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: How much space did the 68000 registers take up?
Date: Sun, 9 Jul 2023 14:26:13 -0500
Organization: A noiseless patient Spider
Lines: 74
Message-ID: <u8f1kt$27co5$1@dont-email.me>
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
<a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com>
<2023Jul9.173411@mips.complang.tuwien.ac.at>
<u8evvi$da9e$1@newsreader4.netcologne.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 9 Jul 2023 19:26:21 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="02faf76c412a96b366873e55bfd93382";
logging-data="2339589"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/TWmnZlOkKx2oYWZUqCal8"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.12.0
Cancel-Lock: sha1:1lU/OV43cTzSN0cAtjTnHDXc3c0=
In-Reply-To: <u8evvi$da9e$1@newsreader4.netcologne.de>
Content-Language: en-US
 by: BGB - Sun, 9 Jul 2023 19:26 UTC

On 7/9/2023 1:57 PM, Thomas Koenig wrote:
> Anton Ertl <anton@mips.complang.tuwien.ac.at> schrieb:
>
>> I think that the 16-bit memory interface of the 68000 meant that they
>> wanted to have many instructions that fit in 16 bits, and with more
>> than 8 registers this becomes difficult (see also the PDP-11). The
>> 8086 is an example that trying to fit useful instructions in 8 bits
>> leads to even more limitations.
>
> This is a bit into an alternative past...
>
> A load-store architecture with 16-bit instruction words could have
> 16 registers, a = a op b instructions. This would leave 256 opcodes.
>

Example: SuperH...

They used the layouts:
ZnmZ
ZnZZ
Znii (ADD/MOV)
ZZii
Ziii (BRA/BSR)

Also some of my own designs followed a similar pattern.

> However, a strict 16-bit word would probably not work too well
> well because lack of constants, the familar RISC problem made more
> pressing by having fewer bits. Putting in "load register lower" and
> "load regster upper" might have been possible, but would have
> eaten into the opcode space big time. More flexibility could
> probably have been achieved using one register as second operand
> as marker for a constant following in the instruction stream.
>

Yeah, this issue sucked on SuperH...

Though, the main mechanism in the official ISA was to do PC relative
memory loads. This kinda sucked, as it is both inefficient and awkward
for the compiler (more so as the constant needed to appear within the
code-stream within a relatively short distance of the instruction that
needed it).

One workaround used in my own modified variant was to add an LDSH
instruction which did R0=(R0<<8)|Imm8 ...

So, say:
MOV 0x12, R0
LDSH 0x34, R0
LDSH 0x56, R0
LDSH 0x78, R0
Could load 0x12345678 into R0 (then R0 could be used as a constant for
another instruction).

Apparently, SH-5 had done something similar, but called their
instruction "SHORI" instead.

> It might be fun to design an alternative to the PDP-11, but one
> should not forget code size: In the days of core memory, memory
> was _really_ expensive. I am not sure how such a proto-RISC
> would compete on code size.

Yeah.

I think the story was that SH went on to inspire Thumb, though Thumb's
design is quite different from SH in many regards.

Code density from SH tends to be a little worse than that from 16/32
designs (like Thumb-2 or RV-C).

Re: bus wars, How much space did the 68000 registers take up?

<u8f3b7$kqn$1@gal.iecc.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33115&group=comp.arch#33115

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.cmpublishers.com!adore2!news.iecc.com!.POSTED.news.iecc.com!not-for-mail
From: johnl@taugh.com (John Levine)
Newsgroups: comp.arch
Subject: Re: bus wars, How much space did the 68000 registers take up?
Date: Sun, 9 Jul 2023 19:55:19 -0000 (UTC)
Organization: Taughannock Networks
Message-ID: <u8f3b7$kqn$1@gal.iecc.com>
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com> <a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com> <u8duml$chsc$1@newsreader4.netcologne.de>
Injection-Date: Sun, 9 Jul 2023 19:55:19 -0000 (UTC)
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970";
logging-data="21335"; mail-complaints-to="abuse@iecc.com"
In-Reply-To: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com> <a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com> <u8duml$chsc$1@newsreader4.netcologne.de>
Cleverness: some
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: johnl@iecc.com (John Levine)
 by: John Levine - Sun, 9 Jul 2023 19:55 UTC

According to Thomas Koenig <tkoenig@netcologne.de>:
>One should also not forget bus width, which also costs money.
>The ARM2 was able to beat the 68000 on speed by a large factor
>with a lower transistor count, but it also had a 32-bit data bus
>(which, considering periphery, might have been too expensive when
>the 68000 was designed).

The original 68000 came in 16 and 8 bit bus versions, just like the 8086 and 8088.

Legend says that if Moto had been able to ship the 68008 in quantity,
IBM would have used it in the IBM PC rather than the 8088. If only.

--
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: bus wars, How much space did the 68000 registers take up?

<u8f4r5$27re5$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33116&group=comp.arch#33116

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: cr88192@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: bus wars, How much space did the 68000 registers take up?
Date: Sun, 9 Jul 2023 15:20:45 -0500
Organization: A noiseless patient Spider
Lines: 33
Message-ID: <u8f4r5$27re5$1@dont-email.me>
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
<a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com>
<u8duml$chsc$1@newsreader4.netcologne.de> <u8f3b7$kqn$1@gal.iecc.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 9 Jul 2023 20:20:53 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="02faf76c412a96b366873e55bfd93382";
logging-data="2354629"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+knTrLMpaDH+HhUbH41sdB"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.12.0
Cancel-Lock: sha1:iWL8N2cAHHAWNxnLFFUbf4jTJKo=
In-Reply-To: <u8f3b7$kqn$1@gal.iecc.com>
Content-Language: en-US
 by: BGB - Sun, 9 Jul 2023 20:20 UTC

On 7/9/2023 2:55 PM, John Levine wrote:
> According to Thomas Koenig <tkoenig@netcologne.de>:
>> One should also not forget bus width, which also costs money.
>> The ARM2 was able to beat the 68000 on speed by a large factor
>> with a lower transistor count, but it also had a 32-bit data bus
>> (which, considering periphery, might have been too expensive when
>> the 68000 was designed).
>
> The original 68000 came in 16 and 8 bit bus versions, just like the 8086 and 8088.
>
> Legend says that if Moto had been able to ship the 68008 in quantity,
> IBM would have used it in the IBM PC rather than the 8088. If only.
>

I guess a question is if it had been used in the PC instead of x86, if
Motorola could have then made it performance competitive with what later
x86 systems became?...

Like, seemingly, relative to clock-speed, the M68K was giving comparably
weak performance compared with many other architectures (and AFAIK part
of why Apple had jumped from M68K to PPC?).

OTOH, the instruction encoding does seem at least cleaner than x86...

I guess another mystery could have been if a 32-bit RISC design could
have been made more viable with an 8 or 16 bit memory bus?...

From what I can gather, processors from that era didn't really use L1
or L2 caches though. This wouldn't likely bode well.

Re: CISC all the way down, How much space did the 68000 registers take up?

<u8f5hb$18e8$1@gal.iecc.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33117&group=comp.arch#33117

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.cmpublishers.com!adore2!news.iecc.com!.POSTED.news.iecc.com!not-for-mail
From: johnl@taugh.com (John Levine)
Newsgroups: comp.arch
Subject: Re: CISC all the way down, How much space did the 68000 registers take up?
Date: Sun, 9 Jul 2023 20:32:43 -0000 (UTC)
Organization: Taughannock Networks
Message-ID: <u8f5hb$18e8$1@gal.iecc.com>
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com> <a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com> <RkAqM.25910$Sc61.17314@fx39.iad> <2246544f-9aa2-4a08-9974-0a081762b7a6n@googlegroups.com>
Injection-Date: Sun, 9 Jul 2023 20:32:43 -0000 (UTC)
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970";
logging-data="41416"; mail-complaints-to="abuse@iecc.com"
In-Reply-To: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com> <a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com> <RkAqM.25910$Sc61.17314@fx39.iad> <2246544f-9aa2-4a08-9974-0a081762b7a6n@googlegroups.com>
Cleverness: some
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: johnl@iecc.com (John Levine)
 by: John Levine - Sun, 9 Jul 2023 20:32 UTC

It appears that MitchAlsup <MitchAlsup@aol.com> said:
>> CISC's have many optional instruction features, and that buggers up
>> in-order pipeline designs which like everything to be the same.
>> So a CISC could wind up having to insert multiple pipeline stages,
>> increasing the latency, just to support some rarely used features.
><
>Certainly PDP-11, VAX, 68K, N32K, and a few more had those features.
>Other CISCs did not: 360/370, Interdata, S.E.L, ...

The 360 architecture allows you to store into the next instruction and
it has to work. Back in the day people did that to patch field lengths
and I/O addresses. It also has an execute instruction that takes an
instruction at an arbitrary place in memory and sticks it into the
instruction stream, sort of a one instruction branch and return. There
was a clever hack that ORs the low byte of a register into the second
byte of the executed instruction, which usual way to handle variable
length operands since the field length is in the second byte of the
instruction so you can't just cache the instruction.

On modern systems code is usually stored in read-only pages and there
are new string move and compare instructions that take the length
directly from a register, but zSeries still hass EX and lets you store
into the next instruction if storage permisssions permit.

--
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: How much space did the 68000 registers take up?

<92742c70-42d4-44ff-b667-df77c679d5afn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33118&group=comp.arch#33118

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:2484:b0:762:42ca:919e with SMTP id i4-20020a05620a248400b0076242ca919emr24900qkn.9.1688935121689;
Sun, 09 Jul 2023 13:38:41 -0700 (PDT)
X-Received: by 2002:a17:902:e54b:b0:1b8:a552:c8c9 with SMTP id
n11-20020a170902e54b00b001b8a552c8c9mr11425708plf.13.1688935121236; Sun, 09
Jul 2023 13:38:41 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 9 Jul 2023 13:38:40 -0700 (PDT)
In-Reply-To: <u8eth9$26qad$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:93c:bdba:1d16:81d3;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:93c:bdba:1d16:81d3
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
<a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com> <2023Jul9.173411@mips.complang.tuwien.ac.at>
<u8eth9$26qad$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <92742c70-42d4-44ff-b667-df77c679d5afn@googlegroups.com>
Subject: Re: How much space did the 68000 registers take up?
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Sun, 09 Jul 2023 20:38:41 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 7553
 by: MitchAlsup - Sun, 9 Jul 2023 20:38 UTC

On Sunday, July 9, 2023 at 1:16:13 PM UTC-5, BGB wrote:
> On 7/9/2023 10:34 AM, Anton Ertl wrote:
> > Quadibloc <jsa...@ecn.ab.ca> writes:
> >> The Motorola 68000 divided the 16 registers it did provide into two
> >> groups; the general registers and the address registers. So it needed
> >> three-bit fields to specify a register in either group.
> >>
> >> The Motorola 68000 was a CISC processor; it didn't "need" more than
> >> eight registers in a register bank.
> >
> > Counterexamples: IBM S/360, VAX, AMD64, all of which have ~16
> > general-purpose registers.
> >
> > I think that the 16-bit memory interface of the 68000 meant that they
> > wanted to have many instructions that fit in 16 bits, and with more
> > than 8 registers this becomes difficult (see also the PDP-11). The
> > 8086 is an example that trying to fit useful instructions in 8 bits
> > leads to even more limitations.
> >
> > Another example is the RISC-V C extension (16-bit wide instructions),
> > where a number of these instructions can access only 8 of the 32
> > registers of the architecture.
> >
> FWIW:
> Both SuperH (and also BJX2) can use 16 GPRs for the 16-bit instruction
> encodings.
>
> However, in both ISA's, they are effectively Load/Store with typically
> only 2R encodings for the 16-bit ops.
>
> In my case, there are some 16-bit ops with access to R16..R31, but
> mostly limited to special cases:
> MOV, ADD
> MOV.{L/Q} (SP, Disp4), Rn
> ...
> Nothing in 16-bit land has access to R32..R63 though.
>
>
> Both RISC-V C and Thumb tried for 3R encodings within the 16-bit opcode
> space. But, arguably this doesn't seem terribly worthwhile as the "hit
> rate" for being limited to 8 registers is lower than that for being
> limited to, say: "Rn=Rn+Rm;" and similar.
>
> Comparably, both RV-C and Thumb had a lot of hair in terms of their
> 16-bit encodings as well.
>
>
>
> MSP430 managed 16-bit instructions, 16 registers, and CISC-like Reg/Mem
> operations, but paid for this by having an absurdly small opcode space
> (with a lot of instructions being encoded by playing trickery with the
> register fields and addressing modes).
> >> Providing 32 registers is something
> >> RISC processors do - for them, it's worth the opcode space, because
> >> opcode space is saved elsewhere
> >
> > No, it's because they have the opcode space. All those with 32
> > registers have 32-bit memory interfaces and therefore could afford
> > 32-bit instructions, so they could afford encoding registers in 5
> > bits. ARM1/2 also has a 32-bit memory interface and 32-bit
> > instructions, but only 16 GPRs (maybe due to area concerns, maybe
> > because the 801 only has 16 registers), and used the extra bits for
> > stuff like shifts or conditions.
> >
> In my case, I have some encodings (and an operating mode) which have
> 6-bit register fields, conditional execution, etc.
>
> But, compared with most RISC's (with a 32-bit instruction size), mine
> has comparably small immediate fields.
>
> Though, interestingly, XG2 Mode has typically the same sized immediate
> fields as SH-5 (which also had 6-bit register fields).
>
> Baseline mode only has 5-bit register fields for the most part, whereas
> XG2 gains 6-bit fields at the expense of making the 16-bit ops N/E.
>
>
>
> I don't see the smaller immediate fields as too big of a loss though:
> There is a reasonably good hit-rate with the current immediate fields;
> The ISA design does not overly penalize cases where an immediate can't
> fit in the immediate-field;
> There are also Jumbo prefixes.
>
> In contrast, in RISC-V, if one exceeds the 12-bit immediate field one is
> typically looking at a 3 instruction fallback case.
<
I think they (THEY) would argue mostly 1 becomes 2 instructions.
Almost all displacements greater than 12-bits become a 2 instruction
sequence; THEY would argue that this is where most big immediates
come from.
<
>
> But, OTOH, my ISA has both:
> ADD Rm, Imm9u, Rn
> And:
> ADD Imm16s, Rn
>
> Whereas RISC-V only has:
> ADD Rd, Rs, Imm12s
<
Whereas My 66000 has:
ADD Rd,Rs,#Imm16
ADD Rd,+Rs1,+Rs2
ADD Rd,+Rs1,-Rs2
ADD Rd,-Rs1,+Rs2
ADD Rd,-Rs1,-Rs2
ADD Rd,+Rs,#Imm32
ADD Rd,-Rs,#Imm32
ADD Rd,+Rs,#Imm64
ADD Rd,-Rs,#Imm64
ADD Rd,Rs,+#imm5
ADD Rd,Rs,-#Imm5
ADD Rd,+#imm5,Rs
ADD Rd,-#imm5,Rs
ADD Rd,#Imm32,+Rs
ADD Rd,#Imm32,-Rs
ADD Rd,#Imm64,+Rs
ADD Rd,#Imm64,-Rs
>
> Partly because some tasks (like adjusting the stack pointer) don't map
> over well to a 9-bit immediate field.
<
I have 16-bits........
>
> Also the first version of my ISA design only had 5-bit immediate fields,
> but these were quickly revealed to be... insufficient...
>
They tidy up::
<
SLL Rd,#1,Rs
>
> If I were to try to shoe-horn my entire "wish-list" into a 32-bit
> instruction word (and have an OK amount of opcode space), would mostly
> end up needing to reduce most immediate values to 6 bits (with ~ 12 bits
> for 2RI encodings), which is "less good".
>
I did the opposite and still achieved a small OpCode set and a large
expression set simultaneously.
>
> So, it seemed "less bad" to not be able to encode some features in some
> combinations, than to be able to encode them but then have nearly
> everything being limited to 6-bit immediate fields.
<
I looked at it from a different perspective.
<
The OpCode describes the arithmetic manipulation
<
Something else describes how operands are routed to the calculation unit.
It is here that all the constants were added. And all OpCodes of a particular
group get all the same routing that every other OpCode in the same group
gets.

Re: bus wars, How much space did the 68000 registers take up?

<ae02db3f-6cb7-4c04-ba72-73d0ffc6e50bn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33119&group=comp.arch#33119

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:448e:b0:765:6a0f:8279 with SMTP id x14-20020a05620a448e00b007656a0f8279mr27956qkp.0.1688935288261;
Sun, 09 Jul 2023 13:41:28 -0700 (PDT)
X-Received: by 2002:a17:902:9f96:b0:1b8:9866:db2a with SMTP id
g22-20020a1709029f9600b001b89866db2amr10064752plq.10.1688935287961; Sun, 09
Jul 2023 13:41:27 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 9 Jul 2023 13:41:27 -0700 (PDT)
In-Reply-To: <u8f3b7$kqn$1@gal.iecc.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:93c:bdba:1d16:81d3;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:93c:bdba:1d16:81d3
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
<a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com> <u8duml$chsc$1@newsreader4.netcologne.de>
<u8f3b7$kqn$1@gal.iecc.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ae02db3f-6cb7-4c04-ba72-73d0ffc6e50bn@googlegroups.com>
Subject: Re: bus wars, How much space did the 68000 registers take up?
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Sun, 09 Jul 2023 20:41:28 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2398
 by: MitchAlsup - Sun, 9 Jul 2023 20:41 UTC

On Sunday, July 9, 2023 at 2:55:22 PM UTC-5, John Levine wrote:
> According to Thomas Koenig <tko...@netcologne.de>:
> >One should also not forget bus width, which also costs money.
> >The ARM2 was able to beat the 68000 on speed by a large factor
> >with a lower transistor count, but it also had a 32-bit data bus
> >(which, considering periphery, might have been too expensive when
> >the 68000 was designed).
<
> The original 68000 came in 16 and 8 bit bus versions, just like the 8086 and 8088.
<
The 68000 with 8-bit bus was a year later than 8086 with 8-bit bus.
{{And required more glue gates than the Intel bus}}
>
> Legend says that if Moto had been able to ship the 68008 in quantity,
> IBM would have used it in the IBM PC rather than the 8088. If only.
<
Its lateness was what drove the decision.
>
> --
> Regards,
> John Levine, jo...@taugh.com, Primary Perpetrator of "The Internet for Dummies",
> Please consider the environment before reading this e-mail. https://jl.ly

Re: bus wars, How much space did the 68000 registers take up?

<u8f61s$18e8$2@gal.iecc.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33120&group=comp.arch#33120

  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: johnl@taugh.com (John Levine)
Newsgroups: comp.arch
Subject: Re: bus wars, How much space did the 68000 registers take up?
Date: Sun, 9 Jul 2023 20:41:32 -0000 (UTC)
Organization: Taughannock Networks
Message-ID: <u8f61s$18e8$2@gal.iecc.com>
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com> <u8duml$chsc$1@newsreader4.netcologne.de> <u8f3b7$kqn$1@gal.iecc.com> <u8f4r5$27re5$1@dont-email.me>
Injection-Date: Sun, 9 Jul 2023 20:41:32 -0000 (UTC)
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970";
logging-data="41416"; mail-complaints-to="abuse@iecc.com"
In-Reply-To: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com> <u8duml$chsc$1@newsreader4.netcologne.de> <u8f3b7$kqn$1@gal.iecc.com> <u8f4r5$27re5$1@dont-email.me>
Cleverness: some
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: johnl@iecc.com (John Levine)
 by: John Levine - Sun, 9 Jul 2023 20:41 UTC

According to BGB <cr88192@gmail.com>:
>> The original 68000 came in 16 and 8 bit bus versions, just like the 8086 and 8088.
>>
>> Legend says that if Moto had been able to ship the 68008 in quantity,
>> IBM would have used it in the IBM PC rather than the 8088. If only.
>
>I guess a question is if it had been used in the PC instead of x86, if
>Motorola could have then made it performance competitive with what later
>x86 systems became?...

Hard to say. At that point Intel just executed better than Moto.

>OTOH, the instruction encoding does seem at least cleaner than x86...

No S* Sherlock. And the huge win of flat rather than segmented addressing.

>I guess another mystery could have been if a 32-bit RISC design could
>have been made more viable with an 8 or 16 bit memory bus?...
>
> From what I can gather, processors from that era didn't really use L1
>or L2 caches though. This wouldn't likely bode well.

Cache? What's a cache? The PC was shipped in 1981 and the first
general purpose CPU chips I know with a cache were the 68030 in 1987
and i486 in 1989.
--
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: bus wars, How much space did the 68000 registers take up?

<98fafac9-74c4-4548-900c-628d0d6d7f21n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33121&group=comp.arch#33121

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:4007:b0:767:b5dc:199d with SMTP id h7-20020a05620a400700b00767b5dc199dmr19968qko.9.1688935789157;
Sun, 09 Jul 2023 13:49:49 -0700 (PDT)
X-Received: by 2002:a17:902:c1cd:b0:1b3:bfa6:d064 with SMTP id
c13-20020a170902c1cd00b001b3bfa6d064mr9678383plc.1.1688935788655; Sun, 09 Jul
2023 13:49:48 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 9 Jul 2023 13:49:48 -0700 (PDT)
In-Reply-To: <u8f4r5$27re5$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:93c:bdba:1d16:81d3;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:93c:bdba:1d16:81d3
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
<a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com> <u8duml$chsc$1@newsreader4.netcologne.de>
<u8f3b7$kqn$1@gal.iecc.com> <u8f4r5$27re5$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <98fafac9-74c4-4548-900c-628d0d6d7f21n@googlegroups.com>
Subject: Re: bus wars, How much space did the 68000 registers take up?
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Sun, 09 Jul 2023 20:49:49 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3223
 by: MitchAlsup - Sun, 9 Jul 2023 20:49 UTC

On Sunday, July 9, 2023 at 3:20:57 PM UTC-5, BGB wrote:
> On 7/9/2023 2:55 PM, John Levine wrote:
> > According to Thomas Koenig <tko...@netcologne.de>:
> >> One should also not forget bus width, which also costs money.
> >> The ARM2 was able to beat the 68000 on speed by a large factor
> >> with a lower transistor count, but it also had a 32-bit data bus
> >> (which, considering periphery, might have been too expensive when
> >> the 68000 was designed).
> >
> > The original 68000 came in 16 and 8 bit bus versions, just like the 8086 and 8088.
> >
> > Legend says that if Moto had been able to ship the 68008 in quantity,
> > IBM would have used it in the IBM PC rather than the 8088. If only.
> >
> I guess a question is if it had been used in the PC instead of x86, if
> Motorola could have then made it performance competitive with what later
> x86 systems became?...
<
If 68K was used instead of 8086, PC would have been more like LISA.
{{which evolved into MacIntosh.}
>
> Like, seemingly, relative to clock-speed, the M68K was giving comparably
> weak performance compared with many other architectures (and AFAIK part
> of why Apple had jumped from M68K to PPC?).
<
68K was out performing 8086 in that era
After 486 it was all done.
>
> OTOH, the instruction encoding does seem at least cleaner than x86...
>
Well, Mrs. Lincoln, how did you like the play ??
>
>
> I guess another mystery could have been if a 32-bit RISC design could
> have been made more viable with an 8 or 16 bit memory bus?...
>
> From what I can gather, processors from that era didn't really use L1
> or L2 caches though. This wouldn't likely bode well.
<
There was an entire paradigm shift at the CISC->RISC boundary.

Re: How much space did the 68000 registers take up?

<u8fe16$292j5$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33122&group=comp.arch#33122

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: cr88192@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: How much space did the 68000 registers take up?
Date: Sun, 9 Jul 2023 17:57:34 -0500
Organization: A noiseless patient Spider
Lines: 350
Message-ID: <u8fe16$292j5$1@dont-email.me>
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
<a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com>
<2023Jul9.173411@mips.complang.tuwien.ac.at> <u8eth9$26qad$1@dont-email.me>
<92742c70-42d4-44ff-b667-df77c679d5afn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 9 Jul 2023 22:57:42 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="46999cb54b94ab8c5ab6784d8a809fc4";
logging-data="2394725"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19nATE14W1HLs0vZNKasZCD"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.12.0
Cancel-Lock: sha1:WDRDXR+cL8C6kcjBB8Ya8PgRTEw=
In-Reply-To: <92742c70-42d4-44ff-b667-df77c679d5afn@googlegroups.com>
Content-Language: en-US
 by: BGB - Sun, 9 Jul 2023 22:57 UTC

On 7/9/2023 3:38 PM, MitchAlsup wrote:
> On Sunday, July 9, 2023 at 1:16:13 PM UTC-5, BGB wrote:
>> On 7/9/2023 10:34 AM, Anton Ertl wrote:
>>> Quadibloc <jsa...@ecn.ab.ca> writes:
>>>> The Motorola 68000 divided the 16 registers it did provide into two
>>>> groups; the general registers and the address registers. So it needed
>>>> three-bit fields to specify a register in either group.
>>>>
>>>> The Motorola 68000 was a CISC processor; it didn't "need" more than
>>>> eight registers in a register bank.
>>>
>>> Counterexamples: IBM S/360, VAX, AMD64, all of which have ~16
>>> general-purpose registers.
>>>
>>> I think that the 16-bit memory interface of the 68000 meant that they
>>> wanted to have many instructions that fit in 16 bits, and with more
>>> than 8 registers this becomes difficult (see also the PDP-11). The
>>> 8086 is an example that trying to fit useful instructions in 8 bits
>>> leads to even more limitations.
>>>
>>> Another example is the RISC-V C extension (16-bit wide instructions),
>>> where a number of these instructions can access only 8 of the 32
>>> registers of the architecture.
>>>
>> FWIW:
>> Both SuperH (and also BJX2) can use 16 GPRs for the 16-bit instruction
>> encodings.
>>
>> However, in both ISA's, they are effectively Load/Store with typically
>> only 2R encodings for the 16-bit ops.
>>
>> In my case, there are some 16-bit ops with access to R16..R31, but
>> mostly limited to special cases:
>> MOV, ADD
>> MOV.{L/Q} (SP, Disp4), Rn
>> ...
>> Nothing in 16-bit land has access to R32..R63 though.
>>
>>
>> Both RISC-V C and Thumb tried for 3R encodings within the 16-bit opcode
>> space. But, arguably this doesn't seem terribly worthwhile as the "hit
>> rate" for being limited to 8 registers is lower than that for being
>> limited to, say: "Rn=Rn+Rm;" and similar.
>>
>> Comparably, both RV-C and Thumb had a lot of hair in terms of their
>> 16-bit encodings as well.
>>
>>
>>
>> MSP430 managed 16-bit instructions, 16 registers, and CISC-like Reg/Mem
>> operations, but paid for this by having an absurdly small opcode space
>> (with a lot of instructions being encoded by playing trickery with the
>> register fields and addressing modes).
>>>> Providing 32 registers is something
>>>> RISC processors do - for them, it's worth the opcode space, because
>>>> opcode space is saved elsewhere
>>>
>>> No, it's because they have the opcode space. All those with 32
>>> registers have 32-bit memory interfaces and therefore could afford
>>> 32-bit instructions, so they could afford encoding registers in 5
>>> bits. ARM1/2 also has a 32-bit memory interface and 32-bit
>>> instructions, but only 16 GPRs (maybe due to area concerns, maybe
>>> because the 801 only has 16 registers), and used the extra bits for
>>> stuff like shifts or conditions.
>>>
>> In my case, I have some encodings (and an operating mode) which have
>> 6-bit register fields, conditional execution, etc.
>>
>> But, compared with most RISC's (with a 32-bit instruction size), mine
>> has comparably small immediate fields.
>>
>> Though, interestingly, XG2 Mode has typically the same sized immediate
>> fields as SH-5 (which also had 6-bit register fields).
>>
>> Baseline mode only has 5-bit register fields for the most part, whereas
>> XG2 gains 6-bit fields at the expense of making the 16-bit ops N/E.
>>
>>
>>
>> I don't see the smaller immediate fields as too big of a loss though:
>> There is a reasonably good hit-rate with the current immediate fields;
>> The ISA design does not overly penalize cases where an immediate can't
>> fit in the immediate-field;
>> There are also Jumbo prefixes.
>>
>> In contrast, in RISC-V, if one exceeds the 12-bit immediate field one is
>> typically looking at a 3 instruction fallback case.
> <
> I think they (THEY) would argue mostly 1 becomes 2 instructions.
> Almost all displacements greater than 12-bits become a 2 instruction
> sequence; THEY would argue that this is where most big immediates
> come from.
> <

Well, say, you have:
XORI X10, X11, 511 //OK, fine.
Vs:
XORI X10, X11, 65521 //Now what?

You get, maybe:
LUI X5, 16
ADDI X5, X5, -15
XOR X10, X11, X5

This is kinda weak...

Meanwhile, in BJX2 (without jumbo), you can fake, say:
ADD R4, 16777213, R7
As a 2-op sequence:
LDIZ 16777213, R0
ADD R4, R0, R7

Which is part of why I burnt such a big chunk of encoding space on a
"Load Imm24 into R0" instruction; 2 actually:
LDIZ Imm24u, R0 //Zero-Extend
LDIN Imm24n, R0 //One-Extend
Which can be seen as a virtual:
MOV Imm25s, R0

But, it sort of paid off as this instruction left encoding space that
could also be used for things like Jumbo Prefixes and PrWEX encodings,
which in some of my other design attempts I had attempted
(unsuccessfully) to conjoin them with the Branch instructions (where
trying to WEX a branch instruction is also invalid in my designs).

There are also a relatively limited number of combinations where A+B~=32
and A+A+C=64, ...

But, 24+9=33 works well as 33 bits can represent both the entire signed
32-bit range and the entire 32-bit unsigned range, thus covering all
32-bit constants. Likewise, 24+24+16=64, so this is also good.

But, I had only ended up going with 20 bits for branches, as +/- 1MB has
thus far been "mostly" sufficient.

For a branch within the same EXE/DLL, most likely sufficient. For a
branch outside the current DLL; one isn't going to be using a normal
PC-relative branch in the first place.

If this fails, there was a fallback case:
MOV Disp25s, R0
JSR R0 //Call to (PC+R0)

Or, failing this:
MOV DispHi16, R0
LDSH DispLo16, R0
JSR R0

But, have since added 64-bit jumbo-based encodings for:
BSR Disp33s
And:
BSR Abs48

But, these don't exist on the smaller cores, but then again, a smaller
core is less likely to exceed the 20 and 25 bit cases.

I explicitly chose not to have a relative branch longer than 33 bits (in
these cases, one can either do an absolute branch, or fake it manually
using ALU ops).

Granted, one could argue that RISC-V has a "slight" advantage for
long-distance branches as they can (indirectly) perform a branch like:
AUIPC X5, DispHi20
JALR X1, X5, DispLo12

Without needing a jumbo prefix or other similar mechanism.

Exceeding the Load/Store displacements is still a bit of an issue though
with RISC-V; as there is not really a "good" fallback that I can think
of at the moment.

>>
>> But, OTOH, my ISA has both:
>> ADD Rm, Imm9u, Rn
>> And:
>> ADD Imm16s, Rn
>>
>> Whereas RISC-V only has:
>> ADD Rd, Rs, Imm12s
> <
> Whereas My 66000 has:
> ADD Rd,Rs,#Imm16
> ADD Rd,+Rs1,+Rs2
> ADD Rd,+Rs1,-Rs2
> ADD Rd,-Rs1,+Rs2
> ADD Rd,-Rs1,-Rs2
> ADD Rd,+Rs,#Imm32
> ADD Rd,-Rs,#Imm32
> ADD Rd,+Rs,#Imm64
> ADD Rd,-Rs,#Imm64
> ADD Rd,Rs,+#imm5
> ADD Rd,Rs,-#Imm5
> ADD Rd,+#imm5,Rs
> ADD Rd,-#imm5,Rs
> ADD Rd,#Imm32,+Rs
> ADD Rd,#Imm32,-Rs
> ADD Rd,#Imm64,+Rs
> ADD Rd,#Imm64,-Rs
>>
>> Partly because some tasks (like adjusting the stack pointer) don't map
>> over well to a 9-bit immediate field.
> <
> I have 16-bits........

I have:
ADD Imm16s, Rn

But, yeah, relatively few ops with 16-bit immediate values in my case.

Even then, they have mostly ended up being overshadowed by "MOV
Imm10{u/n}, Rn" and "ADD Imm10{u/n}, Rn" ops, which ended up with the
advantage of being in a part of the encoding space (the F2 block) where
they are "more versatile" (can be used in PrWEX and XGPR encodings).

When used as part of an Op96 encoding, the F8 block transforms partly;
effectively the entire block mostly goes over to being MOV and ADD.
MOV Imm64, Rn //R0..R63
ADD Imm64, Rn //R0..R63

Whereas otherwise:
MOV Imm16, Rn //R0..R31
ADD Imm16, Rn //R0..R31

Things like:
LDSH Imm64, Rn
Being N/E as its encoding space effectively got eaten by ADD.

Whereas, for things like:
ADD Rm, Imm64, Rn
There is currently no way to encode this directly, but it doesn't come up.


Click here to read the complete article
Re: How much space did the 68000 registers take up?

<5ea12dcd-a5c6-4b74-a580-c0d871694dbdn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33123&group=comp.arch#33123

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:1ba4:b0:401:e192:fc61 with SMTP id bp36-20020a05622a1ba400b00401e192fc61mr38696qtb.7.1688946284683;
Sun, 09 Jul 2023 16:44:44 -0700 (PDT)
X-Received: by 2002:a17:90a:970a:b0:263:1222:76dd with SMTP id
x10-20020a17090a970a00b00263122276ddmr9081786pjo.6.1688946284163; Sun, 09 Jul
2023 16:44:44 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 9 Jul 2023 16:44:43 -0700 (PDT)
In-Reply-To: <u8fe16$292j5$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:93c:bdba:1d16:81d3;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:93c:bdba:1d16:81d3
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
<a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com> <2023Jul9.173411@mips.complang.tuwien.ac.at>
<u8eth9$26qad$1@dont-email.me> <92742c70-42d4-44ff-b667-df77c679d5afn@googlegroups.com>
<u8fe16$292j5$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5ea12dcd-a5c6-4b74-a580-c0d871694dbdn@googlegroups.com>
Subject: Re: How much space did the 68000 registers take up?
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Sun, 09 Jul 2023 23:44:44 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 10575
 by: MitchAlsup - Sun, 9 Jul 2023 23:44 UTC

On Sunday, July 9, 2023 at 5:57:47 PM UTC-5, BGB wrote:
> On 7/9/2023 3:38 PM, MitchAlsup wrote:
> > On Sunday, July 9, 2023 at 1:16:13 PM UTC-5, BGB wrote:
> >> On 7/9/2023 10:34 AM, Anton Ertl wrote:
> >>> Quadibloc <jsa...@ecn.ab.ca> writes:
> >>>> The Motorola 68000 divided the 16 registers it did provide into two
> >>>> groups; the general registers and the address registers. So it needed
> >>>> three-bit fields to specify a register in either group.
> >>>>
> >>>> The Motorola 68000 was a CISC processor; it didn't "need" more than
> >>>> eight registers in a register bank.
> >>>
> >>> Counterexamples: IBM S/360, VAX, AMD64, all of which have ~16
> >>> general-purpose registers.
> >>>
> >>> I think that the 16-bit memory interface of the 68000 meant that they
> >>> wanted to have many instructions that fit in 16 bits, and with more
> >>> than 8 registers this becomes difficult (see also the PDP-11). The
> >>> 8086 is an example that trying to fit useful instructions in 8 bits
> >>> leads to even more limitations.
> >>>
> >>> Another example is the RISC-V C extension (16-bit wide instructions),
> >>> where a number of these instructions can access only 8 of the 32
> >>> registers of the architecture.
> >>>
> >> FWIW:
> >> Both SuperH (and also BJX2) can use 16 GPRs for the 16-bit instruction
> >> encodings.
> >>
> >> However, in both ISA's, they are effectively Load/Store with typically
> >> only 2R encodings for the 16-bit ops.
> >>
> >> In my case, there are some 16-bit ops with access to R16..R31, but
> >> mostly limited to special cases:
> >> MOV, ADD
> >> MOV.{L/Q} (SP, Disp4), Rn
> >> ...
> >> Nothing in 16-bit land has access to R32..R63 though.
> >>
> >>
> >> Both RISC-V C and Thumb tried for 3R encodings within the 16-bit opcode
> >> space. But, arguably this doesn't seem terribly worthwhile as the "hit
> >> rate" for being limited to 8 registers is lower than that for being
> >> limited to, say: "Rn=Rn+Rm;" and similar.
> >>
> >> Comparably, both RV-C and Thumb had a lot of hair in terms of their
> >> 16-bit encodings as well.
> >>
> >>
> >>
> >> MSP430 managed 16-bit instructions, 16 registers, and CISC-like Reg/Mem
> >> operations, but paid for this by having an absurdly small opcode space
> >> (with a lot of instructions being encoded by playing trickery with the
> >> register fields and addressing modes).
> >>>> Providing 32 registers is something
> >>>> RISC processors do - for them, it's worth the opcode space, because
> >>>> opcode space is saved elsewhere
> >>>
> >>> No, it's because they have the opcode space. All those with 32
> >>> registers have 32-bit memory interfaces and therefore could afford
> >>> 32-bit instructions, so they could afford encoding registers in 5
> >>> bits. ARM1/2 also has a 32-bit memory interface and 32-bit
> >>> instructions, but only 16 GPRs (maybe due to area concerns, maybe
> >>> because the 801 only has 16 registers), and used the extra bits for
> >>> stuff like shifts or conditions.
> >>>
> >> In my case, I have some encodings (and an operating mode) which have
> >> 6-bit register fields, conditional execution, etc.
> >>
> >> But, compared with most RISC's (with a 32-bit instruction size), mine
> >> has comparably small immediate fields.
> >>
> >> Though, interestingly, XG2 Mode has typically the same sized immediate
> >> fields as SH-5 (which also had 6-bit register fields).
> >>
> >> Baseline mode only has 5-bit register fields for the most part, whereas
> >> XG2 gains 6-bit fields at the expense of making the 16-bit ops N/E.
> >>
> >>
> >>
> >> I don't see the smaller immediate fields as too big of a loss though:
> >> There is a reasonably good hit-rate with the current immediate fields;
> >> The ISA design does not overly penalize cases where an immediate can't
> >> fit in the immediate-field;
> >> There are also Jumbo prefixes.
> >>
> >> In contrast, in RISC-V, if one exceeds the 12-bit immediate field one is
> >> typically looking at a 3 instruction fallback case.
> > <
> > I think they (THEY) would argue mostly 1 becomes 2 instructions.
> > Almost all displacements greater than 12-bits become a 2 instruction
> > sequence; THEY would argue that this is where most big immediates
> > come from.
> > <
> Well, say, you have:
> XORI X10, X11, 511 //OK, fine.
> Vs:
> XORI X10, X11, 65521 //Now what?
>
> You get, maybe:
> LUI X5, 16
> ADDI X5, X5, -15
> XOR X10, X11, X5
>
> This is kinda weak...
>
I agree with you that it is weak.
>
> Meanwhile, in BJX2 (without jumbo), you can fake, say:
> ADD R4, 16777213, R7
> As a 2-op sequence:
> LDIZ 16777213, R0
> ADD R4, R0, R7
<
Even::
<
ADD Rd,Rs,#0x123456789abcdef
<
Is 1 (One, single) instruction. It occupies 3 words, but it is 1 instruction.
<
So is::
<
STD #0x123456789abcdef,[Rd,Rs<<3,#0x123456789abcdef]
<
1 instruction, this time it occupies 5 words, but it remains 1 instruction.
RISC-V code for this is atrocious.
>
> Which is part of why I burnt such a big chunk of encoding space on a
> "Load Imm24 into R0" instruction; 2 actually:
> LDIZ Imm24u, R0 //Zero-Extend
> LDIN Imm24n, R0 //One-Extend
> Which can be seen as a virtual:
> MOV Imm25s, R0
>
You are still wasting instructions pasting bits together that can be "had"
and a constant. This consumes pipeline cycles, registers, forwarding
energy,... There is no cheaper way to deliver an operand into calculation
than as a constant.
>
> But, it sort of paid off as this instruction left encoding space that
> could also be used for things like Jumbo Prefixes and PrWEX encodings,
> which in some of my other design attempts I had attempted
> (unsuccessfully) to conjoin them with the Branch instructions (where
> trying to WEX a branch instruction is also invalid in my designs).
>
Yes, go ahead and pat yourself on the back for something I consider
to be poor.
>
> There are also a relatively limited number of combinations where A+B~=32
> and A+A+C=64, ...
>
> But, 24+9=33 works well as 33 bits can represent both the entire signed
> 32-bit range and the entire 32-bit unsigned range, thus covering all
> 32-bit constants. Likewise, 24+24+16=64, so this is also good.
>
>
> But, I had only ended up going with 20 bits for branches, as +/- 1MB has
> thus far been "mostly" sufficient.
<
Not surprising.
>
> For a branch within the same EXE/DLL, most likely sufficient. For a
> branch outside the current DLL; one isn't going to be using a normal
> PC-relative branch in the first place.
>
I call from one DLL to another in a single instruction (which loads IP from
GOT[function#].) The linker can change this back to LDA ip,[GOT[function#]]
when an extern function() becomes a local function (and avoid changing
code size--and thus label values).
>
>
>
> Granted, one could argue that RISC-V has a "slight" advantage for
> long-distance branches as they can (indirectly) perform a branch like:
> AUIPC X5, DispHi20
> JALR X1, X5, DispLo12
<
CALA [DISP32] // 32-bit address
CALA [DISP64] // 64-bit address
<
CALX [GOT32[function#]] // 32-bit GOT 64-bit address
CALX [GOT64[function#]] // 64-bit GOT 64-bit address
<
And none of these require wasting a register.
>
> Without needing a jumbo prefix or other similar mechanism.
>
>
> Exceeding the Load/Store displacements is still a bit of an issue though
> with RISC-V; as there is not really a "good" fallback that I can think
> of at the moment.
> >>
> >> But, OTOH, my ISA has both:
> >> ADD Rm, Imm9u, Rn
> >> And:
> >> ADD Imm16s, Rn
> >>
> >> Whereas RISC-V only has:
> >> ADD Rd, Rs, Imm12s
> > <
> > Whereas My 66000 has:
> > ADD Rd,Rs,#Imm16
> > ADD Rd,+Rs1,+Rs2
> > ADD Rd,+Rs1,-Rs2
> > ADD Rd,-Rs1,+Rs2
> > ADD Rd,-Rs1,-Rs2
> > ADD Rd,+Rs,#Imm32
> > ADD Rd,-Rs,#Imm32
> > ADD Rd,+Rs,#Imm64
> > ADD Rd,-Rs,#Imm64
> > ADD Rd,Rs,+#imm5
> > ADD Rd,Rs,-#Imm5
> > ADD Rd,+#imm5,Rs
> > ADD Rd,-#imm5,Rs
> > ADD Rd,#Imm32,+Rs
> > ADD Rd,#Imm32,-Rs
> > ADD Rd,#Imm64,+Rs
> > ADD Rd,#Imm64,-Rs
> >>
> >> Partly because some tasks (like adjusting the stack pointer) don't map
> >> over well to a 9-bit immediate field.
> > <
> > I have 16-bits........
> I have:
> ADD Imm16s, Rn
<
You also write operands and results in the wrong direction....................


Click here to read the complete article
Re: How much space did the 68000 registers take up?

<u8fmeq$29ukm$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=33124&group=comp.arch#33124

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: cr88192@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: How much space did the 68000 registers take up?
Date: Sun, 9 Jul 2023 20:21:21 -0500
Organization: A noiseless patient Spider
Lines: 375
Message-ID: <u8fmeq$29ukm$1@dont-email.me>
References: <27f3682e-a7cd-44e7-98bb-67b603b6b03en@googlegroups.com>
<a27529b5-fa8e-4bb8-a1f3-2b285fdf3e7cn@googlegroups.com>
<2023Jul9.173411@mips.complang.tuwien.ac.at> <u8eth9$26qad$1@dont-email.me>
<92742c70-42d4-44ff-b667-df77c679d5afn@googlegroups.com>
<u8fe16$292j5$1@dont-email.me>
<5ea12dcd-a5c6-4b74-a580-c0d871694dbdn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 10 Jul 2023 01:21:31 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="46999cb54b94ab8c5ab6784d8a809fc4";
logging-data="2423446"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+zKqAfUj6SRPlqgOGuT+Sf"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.12.0
Cancel-Lock: sha1:7almQTUhNWyQL/JpVtLbzSyMvzk=
Content-Language: en-US
In-Reply-To: <5ea12dcd-a5c6-4b74-a580-c0d871694dbdn@googlegroups.com>
 by: BGB - Mon, 10 Jul 2023 01:21 UTC

On 7/9/2023 6:44 PM, MitchAlsup wrote:
> On Sunday, July 9, 2023 at 5:57:47 PM UTC-5, BGB wrote:
>> On 7/9/2023 3:38 PM, MitchAlsup wrote:
>>> On Sunday, July 9, 2023 at 1:16:13 PM UTC-5, BGB wrote:
>>>> On 7/9/2023 10:34 AM, Anton Ertl wrote:
>>>>> Quadibloc <jsa...@ecn.ab.ca> writes:
>>>>>> The Motorola 68000 divided the 16 registers it did provide into two
>>>>>> groups; the general registers and the address registers. So it needed
>>>>>> three-bit fields to specify a register in either group.
>>>>>>
>>>>>> The Motorola 68000 was a CISC processor; it didn't "need" more than
>>>>>> eight registers in a register bank.
>>>>>
>>>>> Counterexamples: IBM S/360, VAX, AMD64, all of which have ~16
>>>>> general-purpose registers.
>>>>>
>>>>> I think that the 16-bit memory interface of the 68000 meant that they
>>>>> wanted to have many instructions that fit in 16 bits, and with more
>>>>> than 8 registers this becomes difficult (see also the PDP-11). The
>>>>> 8086 is an example that trying to fit useful instructions in 8 bits
>>>>> leads to even more limitations.
>>>>>
>>>>> Another example is the RISC-V C extension (16-bit wide instructions),
>>>>> where a number of these instructions can access only 8 of the 32
>>>>> registers of the architecture.
>>>>>
>>>> FWIW:
>>>> Both SuperH (and also BJX2) can use 16 GPRs for the 16-bit instruction
>>>> encodings.
>>>>
>>>> However, in both ISA's, they are effectively Load/Store with typically
>>>> only 2R encodings for the 16-bit ops.
>>>>
>>>> In my case, there are some 16-bit ops with access to R16..R31, but
>>>> mostly limited to special cases:
>>>> MOV, ADD
>>>> MOV.{L/Q} (SP, Disp4), Rn
>>>> ...
>>>> Nothing in 16-bit land has access to R32..R63 though.
>>>>
>>>>
>>>> Both RISC-V C and Thumb tried for 3R encodings within the 16-bit opcode
>>>> space. But, arguably this doesn't seem terribly worthwhile as the "hit
>>>> rate" for being limited to 8 registers is lower than that for being
>>>> limited to, say: "Rn=Rn+Rm;" and similar.
>>>>
>>>> Comparably, both RV-C and Thumb had a lot of hair in terms of their
>>>> 16-bit encodings as well.
>>>>
>>>>
>>>>
>>>> MSP430 managed 16-bit instructions, 16 registers, and CISC-like Reg/Mem
>>>> operations, but paid for this by having an absurdly small opcode space
>>>> (with a lot of instructions being encoded by playing trickery with the
>>>> register fields and addressing modes).
>>>>>> Providing 32 registers is something
>>>>>> RISC processors do - for them, it's worth the opcode space, because
>>>>>> opcode space is saved elsewhere
>>>>>
>>>>> No, it's because they have the opcode space. All those with 32
>>>>> registers have 32-bit memory interfaces and therefore could afford
>>>>> 32-bit instructions, so they could afford encoding registers in 5
>>>>> bits. ARM1/2 also has a 32-bit memory interface and 32-bit
>>>>> instructions, but only 16 GPRs (maybe due to area concerns, maybe
>>>>> because the 801 only has 16 registers), and used the extra bits for
>>>>> stuff like shifts or conditions.
>>>>>
>>>> In my case, I have some encodings (and an operating mode) which have
>>>> 6-bit register fields, conditional execution, etc.
>>>>
>>>> But, compared with most RISC's (with a 32-bit instruction size), mine
>>>> has comparably small immediate fields.
>>>>
>>>> Though, interestingly, XG2 Mode has typically the same sized immediate
>>>> fields as SH-5 (which also had 6-bit register fields).
>>>>
>>>> Baseline mode only has 5-bit register fields for the most part, whereas
>>>> XG2 gains 6-bit fields at the expense of making the 16-bit ops N/E.
>>>>
>>>>
>>>>
>>>> I don't see the smaller immediate fields as too big of a loss though:
>>>> There is a reasonably good hit-rate with the current immediate fields;
>>>> The ISA design does not overly penalize cases where an immediate can't
>>>> fit in the immediate-field;
>>>> There are also Jumbo prefixes.
>>>>
>>>> In contrast, in RISC-V, if one exceeds the 12-bit immediate field one is
>>>> typically looking at a 3 instruction fallback case.
>>> <
>>> I think they (THEY) would argue mostly 1 becomes 2 instructions.
>>> Almost all displacements greater than 12-bits become a 2 instruction
>>> sequence; THEY would argue that this is where most big immediates
>>> come from.
>>> <
>> Well, say, you have:
>> XORI X10, X11, 511 //OK, fine.
>> Vs:
>> XORI X10, X11, 65521 //Now what?
>>
>> You get, maybe:
>> LUI X5, 16
>> ADDI X5, X5, -15
>> XOR X10, X11, X5
>>
>> This is kinda weak...
>>
> I agree with you that it is weak.
>>
>> Meanwhile, in BJX2 (without jumbo), you can fake, say:
>> ADD R4, 16777213, R7
>> As a 2-op sequence:
>> LDIZ 16777213, R0
>> ADD R4, R0, R7
> <
> Even::
> <
> ADD Rd,Rs,#0x123456789abcdef
> <
> Is 1 (One, single) instruction. It occupies 3 words, but it is 1 instruction.
> <
> So is::
> <
> STD #0x123456789abcdef,[Rd,Rs<<3,#0x123456789abcdef]
> <
> 1 instruction, this time it occupies 5 words, but it remains 1 instruction.
> RISC-V code for this is atrocious.

Yeah...
BJX2 can't do this either.

With jumbo encodings, one can at least do:
ADD R4, 0x12345678, R7
As a single 64-bit instruction.

Could in theory do:
ADD R4, 0x123456789abcde, R7

As a 96-bit encoding, if it were common enough to justify the LUT cost
of enabling it. Granted, these exist implicitly if one enables the SIMD
vector immediate values, since the SIMD immediate values need the same
mechanism.

Still no 64-bit displacements, mostly for timing reasons.

Despite there being a 96-bit mode, only the low 48 bits are subject to
address calculation, and only with a 33 bit displacement.

The compiler can mostly gloss over this though, seeing if a person uses
'long' as an array index.

Though, annoyingly, this does mean that it needs to end up falling back
to a slower case if one uses 'size_t' or 'ssize_t' rather than 'int' for
their array index.

>>
>> Which is part of why I burnt such a big chunk of encoding space on a
>> "Load Imm24 into R0" instruction; 2 actually:
>> LDIZ Imm24u, R0 //Zero-Extend
>> LDIN Imm24n, R0 //One-Extend
>> Which can be seen as a virtual:
>> MOV Imm25s, R0
>>
> You are still wasting instructions pasting bits together that can be "had"
> and a constant. This consumes pipeline cycles, registers, forwarding
> energy,... There is no cheaper way to deliver an operand into calculation
> than as a constant.

As noted, this is excluding "jumbo", which eliminates most of the
multi-op bit-pasting, but isn't regarded as part of the core ISA in the
smaller profiles (and didn't exist in early forms of the ISA design).

Then again, one option could be to promote the jumbo prefixes to the
core ISA, in a similar way to what happened with predicated instructions.

Early on, I realized that the underlying logic for predicated
instructions was still needed for conditional branches, so there wasn't
any good reason *not* to promote it to core.

>>
>> But, it sort of paid off as this instruction left encoding space that
>> could also be used for things like Jumbo Prefixes and PrWEX encodings,
>> which in some of my other design attempts I had attempted
>> (unsuccessfully) to conjoin them with the Branch instructions (where
>> trying to WEX a branch instruction is also invalid in my designs).
>>
> Yes, go ahead and pat yourself on the back for something I consider
> to be poor.

Well:
MOV Imm25s, R0
Is sort of a sledgehammer solution, but like, it is workable in the
majority of cases...


Click here to read the complete article
Pages:123456789101112
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor