Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

"I am, therefore I am." -- Akira


devel / comp.arch / Did the 68000 take extra hardware to make A registers not update status bits?

SubjectAuthor
* Did the 68000 take extra hardware to make A registers not updateRussell Wallace
`* Re: Did the 68000 take extra hardware to make A registers not updateMitchAlsup
 `* Re: Did the 68000 take extra hardware to make A registers not updaterobf...@gmail.com
  `- Re: Did the 68000 take extra hardware to make A registers not updateMitchAlsup

1
Did the 68000 take extra hardware to make A registers not update status bits?

<237d5c7e-c62f-4368-94c8-3724325986b3n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:459f:b0:765:aafa:5be7 with SMTP id bp31-20020a05620a459f00b00765aafa5be7mr5820qkb.14.1688673458103;
Thu, 06 Jul 2023 12:57:38 -0700 (PDT)
X-Received: by 2002:aca:bbd7:0:b0:3a0:44fb:53c2 with SMTP id
l206-20020acabbd7000000b003a044fb53c2mr15225oif.0.1688673457785; Thu, 06 Jul
2023 12:57:37 -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:57:37 -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: <237d5c7e-c62f-4368-94c8-3724325986b3n@googlegroups.com>
Subject: Did the 68000 take extra hardware to make A registers not update
status bits?
From: russell.wallace@gmail.com (Russell Wallace)
Injection-Date: Thu, 06 Jul 2023 19:57:38 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2168
 by: Russell Wallace - Thu, 6 Jul 2023 19:57 UTC

The Motorola 68000 register file was split into address and data. This had some useful properties, most obviously that load/store only needed three bits instead of four to specify an address register.

One feature was that operations on address registers did not update the status bits. The argument was that this was useful because you could do arithmetic, load/store, then branch on the results of the arithmetic.

My vague understanding of how status bits work is that they are cheap to provide because you don't need to add microinstructions to update them on every operation, you just have small circuits watching an internal bus on the chip, so once you have them, it's basically free to have them updated on every operation.

(Until you start going out of order, but that's much later.)

Given that, it would seem that the 68000 would need an extra few logic gates to not update the status bits if you have just been operating on an address register.

Is that correct, or am I missing something?

Re: Did the 68000 take extra hardware to make A registers not update status bits?

<3dbceb51-1581-44e6-b340-6274d9375dedn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:188d:b0:3fd:ec3f:1885 with SMTP id v13-20020a05622a188d00b003fdec3f1885mr7585qtc.1.1688675269518;
Thu, 06 Jul 2023 13:27:49 -0700 (PDT)
X-Received: by 2002:a17:90a:f115:b0:263:e427:c4cf with SMTP id
cc21-20020a17090af11500b00263e427c4cfmr5282016pjb.1.1688675268747; Thu, 06
Jul 2023 13:27:48 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border-2.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Thu, 6 Jul 2023 13:27:48 -0700 (PDT)
In-Reply-To: <237d5c7e-c62f-4368-94c8-3724325986b3n@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: <237d5c7e-c62f-4368-94c8-3724325986b3n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3dbceb51-1581-44e6-b340-6274d9375dedn@googlegroups.com>
Subject: Re: Did the 68000 take extra hardware to make A registers not update
status bits?
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Thu, 06 Jul 2023 20:27:49 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 38
 by: MitchAlsup - Thu, 6 Jul 2023 20:27 UTC

On Thursday, July 6, 2023 at 2:57:40 PM UTC-5, Russell Wallace wrote:
> The Motorola 68000 register file was split into address and data. This had some useful properties, most obviously that load/store only needed three bits instead of four to specify an address register.
<
While this helps with encoding entropy, it hurts on the number of instructions one has to execute.
Overall, doing no better than break even (total instruction byte count).
>
> One feature was that operations on address registers did not update the status bits. The argument was that this was useful because you could do arithmetic, load/store, then branch on the results of the arithmetic.
<
The counter argument is if you ever want to do Great Big OoO then it hurts big time.
>
> My vague understanding of how status bits work is that they are cheap to provide because you don't need to add microinstructions to update them on every operation, you just have small circuits watching an internal bus on the chip, so once you have them, it's basically free to have them updated on every operation.
<
You should also add that teaching a compiler how to use them is not-straightforward,
and you can argue that no status flags are equally good (or better) entomologically.
>
> (Until you start going out of order, but that's much later.)
>
> Given that, it would seem that the 68000 would need an extra few logic gates to not update the status bits if you have just been operating on an address register.
<
68000 was a 32-bit PDP-11 with partitioned A+D registers packed onto a single chip
with 24-bit address bus and 16-bit data bus.
>
> Is that correct, or am I missing something?

Re: Did the 68000 take extra hardware to make A registers not update status bits?

<acb3bbc6-be70-438d-9294-c484b6c71117n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:a45:b0:635:cbc7:95da with SMTP id ee5-20020a0562140a4500b00635cbc795damr20649qvb.0.1688699319020;
Thu, 06 Jul 2023 20:08:39 -0700 (PDT)
X-Received: by 2002:a17:902:bc49:b0:1b8:89f9:f6d4 with SMTP id
t9-20020a170902bc4900b001b889f9f6d4mr3296781plz.5.1688699318244; Thu, 06 Jul
2023 20:08:38 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!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 20:08:37 -0700 (PDT)
In-Reply-To: <3dbceb51-1581-44e6-b340-6274d9375dedn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2607:fea8:1dde:6a00:2801:1481:100b:8a0d;
posting-account=QId4bgoAAABV4s50talpu-qMcPp519Eb
NNTP-Posting-Host: 2607:fea8:1dde:6a00:2801:1481:100b:8a0d
References: <237d5c7e-c62f-4368-94c8-3724325986b3n@googlegroups.com> <3dbceb51-1581-44e6-b340-6274d9375dedn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <acb3bbc6-be70-438d-9294-c484b6c71117n@googlegroups.com>
Subject: Re: Did the 68000 take extra hardware to make A registers not update
status bits?
From: robfi680@gmail.com (robf...@gmail.com)
Injection-Date: Fri, 07 Jul 2023 03:08:39 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3946
 by: robf...@gmail.com - Fri, 7 Jul 2023 03:08 UTC

On Thursday, July 6, 2023 at 4:27:51 PM UTC-4, MitchAlsup wrote:
> On Thursday, July 6, 2023 at 2:57:40 PM UTC-5, Russell Wallace wrote:
> > The Motorola 68000 register file was split into address and data. This had some useful properties, most obviously that load/store only needed three bits instead of four to specify an address register.
> <
> While this helps with encoding entropy, it hurts on the number of instructions one has to execute.
> Overall, doing no better than break even (total instruction byte count).
> >
> > One feature was that operations on address registers did not update the status bits. The argument was that this was useful because you could do arithmetic, load/store, then branch on the results of the arithmetic.
> <
> The counter argument is if you ever want to do Great Big OoO then it hurts big time.
> >
> > My vague understanding of how status bits work is that they are cheap to provide because you don't need to add microinstructions to update them on every operation, you just have small circuits watching an internal bus on the chip, so once you have them, it's basically free to have them updated on every operation.
> <
> You should also add that teaching a compiler how to use them is not-straightforward,
> and you can argue that no status flags are equally good (or better) entomologically.
> >
> > (Until you start going out of order, but that's much later.)
> >
> > Given that, it would seem that the 68000 would need an extra few logic gates to not update the status bits if you have just been operating on an address register.
> <
> 68000 was a 32-bit PDP-11 with partitioned A+D registers packed onto a single chip
> with 24-bit address bus and 16-bit data bus.
> >
> > Is that correct, or am I missing something?

IDK exactly how the 68k works, but in my own rendition for instructions which update
the status flags there is a variable called ‘flag_update’ which contains a pattern for
flag updates. There are about 20+ different patterns of flag updates. The flag update
pattern is set for every instruction needing to update flags. So, it is not very expensive
not to update the flags. It is just setting the ‘flag_update’ that is omitted.
Conversely, flag updates for instructions needing to update flags are relatively
expensive compared to a machine that does not have any flag registers.

Flags are updated during the instruction fetch for the next instruction in rf68k.

Re: Did the 68000 take extra hardware to make A registers not update status bits?

<8b96b9ef-b402-45e1-83c4-b44d4f469a46n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:103:b0:403:3448:1a21 with SMTP id u3-20020a05622a010300b0040334481a21mr15534qtw.3.1688749446281;
Fri, 07 Jul 2023 10:04:06 -0700 (PDT)
X-Received: by 2002:a05:6a00:2d06:b0:668:95c1:b507 with SMTP id
fa6-20020a056a002d0600b0066895c1b507mr7795349pfb.6.1688749445956; Fri, 07 Jul
2023 10:04:05 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.net!fdn.fr!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 7 Jul 2023 10:04:05 -0700 (PDT)
In-Reply-To: <acb3bbc6-be70-438d-9294-c484b6c71117n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:9856:90d0:2967:a029;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:9856:90d0:2967:a029
References: <237d5c7e-c62f-4368-94c8-3724325986b3n@googlegroups.com>
<3dbceb51-1581-44e6-b340-6274d9375dedn@googlegroups.com> <acb3bbc6-be70-438d-9294-c484b6c71117n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8b96b9ef-b402-45e1-83c4-b44d4f469a46n@googlegroups.com>
Subject: Re: Did the 68000 take extra hardware to make A registers not update
status bits?
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Fri, 07 Jul 2023 17:04:06 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: MitchAlsup - Fri, 7 Jul 2023 17:04 UTC

On Thursday, July 6, 2023 at 10:08:40 PM UTC-5, robf...@gmail.com wrote:
> On Thursday, July 6, 2023 at 4:27:51 PM UTC-4, MitchAlsup wrote:
> > On Thursday, July 6, 2023 at 2:57:40 PM UTC-5, Russell Wallace wrote:
> > > The Motorola 68000 register file was split into address and data. This had some useful properties, most obviously that load/store only needed three bits instead of four to specify an address register.
> > <
> > While this helps with encoding entropy, it hurts on the number of instructions one has to execute.
> > Overall, doing no better than break even (total instruction byte count)..
> > >
> > > One feature was that operations on address registers did not update the status bits. The argument was that this was useful because you could do arithmetic, load/store, then branch on the results of the arithmetic.
> > <
> > The counter argument is if you ever want to do Great Big OoO then it hurts big time.
> > >
> > > My vague understanding of how status bits work is that they are cheap to provide because you don't need to add microinstructions to update them on every operation, you just have small circuits watching an internal bus on the chip, so once you have them, it's basically free to have them updated on every operation.
> > <
> > You should also add that teaching a compiler how to use them is not-straightforward,
> > and you can argue that no status flags are equally good (or better) entomologically.
> > >
> > > (Until you start going out of order, but that's much later.)
> > >
> > > Given that, it would seem that the 68000 would need an extra few logic gates to not update the status bits if you have just been operating on an address register.
> > <
> > 68000 was a 32-bit PDP-11 with partitioned A+D registers packed onto a single chip
> > with 24-bit address bus and 16-bit data bus.
> > >
> > > Is that correct, or am I missing something?
> IDK exactly how the 68k works, but in my own rendition for instructions which update
> the status flags there is a variable called ‘flag_update’ which contains a pattern for
> flag updates. There are about 20+ different patterns of flag updates. The flag update
> pattern is set for every instruction needing to update flags. So, it is not very expensive
<
Opteron (AMD's first 64-bit x86) tracked the flags in 3 groups C, O, and ZAPS.
<
So your typical 2-operand instruction has 2 things to track register deliveries
in its reservation stations, and 3 to track the 8-bits of flags. Thus, flags are
expensive--more expensive (and power consuming) that waiting for a register
to be delivered.
<
> not to update the flags. It is just setting the ‘flag_update’ that is omitted.
> Conversely, flag updates for instructions needing to update flags are relatively
> expensive compared to a machine that does not have any flag registers.
<
It is not the update/no-update it is that they are coming from all over the
place. And every waiting instruction has to have the ability to capture
any or all of them.
>
> Flags are updated during the instruction fetch for the next instruction in rf68k.

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor