Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

Computers are not intelligent. They only think they are.


devel / comp.arch / FAF stores

SubjectAuthor
* FAF storesrobf...@gmail.com
+* Re: FAF storesEricP
|`* Re: FAF storesMitchAlsup
| `* Re: FAF storesrobf...@gmail.com
|  +- Re: FAF storesMitchAlsup
|  `- Re: FAF storesEricP
`* Re: FAF storesTheo Markettos
 +* Re: FAF storesrobf...@gmail.com
 |`* Re: FAF storesMichael S
 | `* Re: FAF storesMitchAlsup
 |  `* Re: FAF storesScott Lurndal
 |   `* Re: FAF storesMitchAlsup
 |    `* Re: FAF storesrobf...@gmail.com
 |     `* Re: FAF storesMitchAlsup
 |      +- Re: FAF storesrobf...@gmail.com
 |      `* Re: FAF storesScott Lurndal
 |       `- Re: FAF storesMitchAlsup
 `- Re: FAF storesScott Lurndal

1
FAF stores

<778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ae9:de47:0:b0:762:5081:31a9 with SMTP id s68-20020ae9de47000000b00762508131a9mr2143527qkf.0.1687695930768;
Sun, 25 Jun 2023 05:25:30 -0700 (PDT)
X-Received: by 2002:a9d:7f17:0:b0:6b7:4696:3567 with SMTP id
j23-20020a9d7f17000000b006b746963567mr131952otq.2.1687695930399; Sun, 25 Jun
2023 05:25:30 -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, 25 Jun 2023 05:25:30 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=99.251.79.92; posting-account=QId4bgoAAABV4s50talpu-qMcPp519Eb
NNTP-Posting-Host: 99.251.79.92
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com>
Subject: FAF stores
From: robfi680@gmail.com (robf...@gmail.com)
Injection-Date: Sun, 25 Jun 2023 12:25:30 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1734
 by: robf...@gmail.com - Sun, 25 Jun 2023 12:25 UTC

Looking for a term here for fire-and-forget, FAF, stores.

For the Thor core usually the memory operation waits for ack or error status back before being marked complete. This can take eight or ten cycles depending how many hops the store makes for the round trip to memory and back. Decided to implement ‘FAF’, fire-and-forget, stores that do not wait for an ack or error status. I think this may be useful for updating displays where perhaps it is not absolutely necessary that the store worked. For instance, streaming data to a graphics display. While the store operation will likely almost always work, if there is the occasional pixel that is not set properly this may not be noticeable.

Re: FAF stores

<f3YlM.72599$Zq81.21214@fx15.iad>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!feeder1.feed.usenet.farm!feed.usenet.farm!peer01.ams4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx15.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: FAF stores
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com>
In-Reply-To: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 35
Message-ID: <f3YlM.72599$Zq81.21214@fx15.iad>
X-Complaints-To: abuse@UsenetServer.com
NNTP-Posting-Date: Sun, 25 Jun 2023 14:20:59 UTC
Date: Sun, 25 Jun 2023 10:20:04 -0400
X-Received-Bytes: 2992
 by: EricP - Sun, 25 Jun 2023 14:20 UTC

robf...@gmail.com wrote:
> Looking for a term here for fire-and-forget, FAF, stores.
>
> For the Thor core usually the memory operation waits for ack or error status back before being marked complete. This can take eight or ten cycles depending how many hops the store makes for the round trip to memory and back. Decided to implement ‘FAF’, fire-and-forget, stores that do not wait for an ack or error status. I think this may be useful for updating displays where perhaps it is not absolutely necessary that the store worked. For instance, streaming data to a graphics display. While the store operation will likely almost always work, if there is the occasional pixel that is not set properly this may not be noticeable.

Your question is really about error detection, reporting, and logging.
This is inherently error and model dependent. Errors can be instruction
synchronous, asynchronous, both or neither; can be recoverable or
non-recoverable; they can leave instructions restartable or not.

I imagine that most cores implement store as what I call an asynchronous
write-behind operation. The write operation is initiated when the store
instruction retires and instruction pointer is incremented.

If an error was subsequently detected it could be hundreds of clocks
after the store retires so the RIP and data virtual address are long gone.

If there is a cache then the store error detection could be completely
disconnected from program execution - your programs' store evicts
my programs' cache line and my line write back detects an error
long after my thread switched out.

Memory can be shared between programs - who do you tell and
what do you say if you have no process RIP or data virtual addresses?
By the way, something happened someplace and I thought you should know?

Read errors are not necessarily program synchronous as cache hardware
prefetchers can be reading ahead based on physical address patterns.
DRAM error scrubbers run asynchronously in the memory controller or DIMM.

So the question is how to report such an error, who should be informed,
what information is available to log, how should the logger work, etc.
And what to do if the error reporter or loggers themselves get an error.

Re: FAF stores

<6da0834f-55e7-47c6-8c01-f2a344769599n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:1993:b0:765:8bea:d955 with SMTP id bm19-20020a05620a199300b007658bead955mr10151qkb.0.1687711027828;
Sun, 25 Jun 2023 09:37:07 -0700 (PDT)
X-Received: by 2002:aca:b956:0:b0:3a0:3d3a:9971 with SMTP id
j83-20020acab956000000b003a03d3a9971mr3391417oif.2.1687711027592; Sun, 25 Jun
2023 09:37:07 -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: Sun, 25 Jun 2023 09:37:07 -0700 (PDT)
In-Reply-To: <f3YlM.72599$Zq81.21214@fx15.iad>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:d8cd:6e10:16a2:1e92;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:d8cd:6e10:16a2:1e92
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com> <f3YlM.72599$Zq81.21214@fx15.iad>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6da0834f-55e7-47c6-8c01-f2a344769599n@googlegroups.com>
Subject: Re: FAF stores
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Sun, 25 Jun 2023 16:37:07 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 4249
 by: MitchAlsup - Sun, 25 Jun 2023 16:37 UTC

On Sunday, June 25, 2023 at 9:21:03 AM UTC-5, EricP wrote:
> robf...@gmail.com wrote:
> > Looking for a term here for fire-and-forget, FAF, stores.
> >
> > For the Thor core usually the memory operation waits for ack or error status back before being marked complete. This can take eight or ten cycles depending how many hops the store makes for the round trip to memory and back. Decided to implement ‘FAF’, fire-and-forget, stores that do not wait for an ack or error status. I think this may be useful for updating displays where perhaps it is not absolutely necessary that the store worked. For instance, streaming data to a graphics display. While the store operation will likely almost always work, if there is the occasional pixel that is not set properly this may not be noticeable.
> Your question is really about error detection, reporting, and logging.
> This is inherently error and model dependent. Errors can be instruction
> synchronous, asynchronous, both or neither; can be recoverable or
> non-recoverable; they can leave instructions restartable or not.
>
> I imagine that most cores implement store as what I call an asynchronous
> write-behind operation. The write operation is initiated when the store
> instruction retires and instruction pointer is incremented.
>
> If an error was subsequently detected it could be hundreds of clocks
> after the store retires so the RIP and data virtual address are long gone..
>
> If there is a cache then the store error detection could be completely
> disconnected from program execution - your programs' store evicts
> my programs' cache line and my line write back detects an error
> long after my thread switched out.
>
> Memory can be shared between programs - who do you tell and
> what do you say if you have no process RIP or data virtual addresses?
> By the way, something happened someplace and I thought you should know?
>
> Read errors are not necessarily program synchronous as cache hardware
> prefetchers can be reading ahead based on physical address patterns.
> DRAM error scrubbers run asynchronously in the memory controller or DIMM.
>
> So the question is how to report such an error, who should be informed,
> what information is available to log, how should the logger work, etc.
> And what to do if the error reporter or loggers themselves get an error.
<
I agree with most of what EricP says above, with a subtle correction::
<
If the µArchitecture has miss buffers, the latent store has passed through
one of them and the bus protocol NaK knows which one it was. So, you
have a physical address but no IP and you may also have another copy of
the data to be stored, so the core could try-again®; but by this time you
will have lost memory order so recovery depends on whether you need
sequential consistency or can live with causal consistency.

Re: FAF stores

<db7406d9-aa4b-4fae-abdf-515f0261fec3n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ad4:4ba6:0:b0:62d:e1f6:82df with SMTP id i6-20020ad44ba6000000b0062de1f682dfmr3176434qvw.7.1687729808307;
Sun, 25 Jun 2023 14:50:08 -0700 (PDT)
X-Received: by 2002:aca:db07:0:b0:39c:cd8e:998f with SMTP id
s7-20020acadb07000000b0039ccd8e998fmr7279090oig.0.1687729808017; Sun, 25 Jun
2023 14:50:08 -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, 25 Jun 2023 14:50:07 -0700 (PDT)
In-Reply-To: <6da0834f-55e7-47c6-8c01-f2a344769599n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=99.251.79.92; posting-account=QId4bgoAAABV4s50talpu-qMcPp519Eb
NNTP-Posting-Host: 99.251.79.92
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com>
<f3YlM.72599$Zq81.21214@fx15.iad> <6da0834f-55e7-47c6-8c01-f2a344769599n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <db7406d9-aa4b-4fae-abdf-515f0261fec3n@googlegroups.com>
Subject: Re: FAF stores
From: robfi680@gmail.com (robf...@gmail.com)
Injection-Date: Sun, 25 Jun 2023 21:50:08 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 5263
 by: robf...@gmail.com - Sun, 25 Jun 2023 21:50 UTC

On Sunday, June 25, 2023 at 12:37:09 PM UTC-4, MitchAlsup wrote:
> On Sunday, June 25, 2023 at 9:21:03 AM UTC-5, EricP wrote:
> > robf...@gmail.com wrote:
> > > Looking for a term here for fire-and-forget, FAF, stores.
> > >
> > > For the Thor core usually the memory operation waits for ack or error status back before being marked complete. This can take eight or ten cycles depending how many hops the store makes for the round trip to memory and back. Decided to implement ‘FAF’, fire-and-forget, stores that do not wait for an ack or error status. I think this may be useful for updating displays where perhaps it is not absolutely necessary that the store worked. For instance, streaming data to a graphics display. While the store operation will likely almost always work, if there is the occasional pixel that is not set properly this may not be noticeable.
> > Your question is really about error detection, reporting, and logging.
> > This is inherently error and model dependent. Errors can be instruction
> > synchronous, asynchronous, both or neither; can be recoverable or
> > non-recoverable; they can leave instructions restartable or not.
> >
> > I imagine that most cores implement store as what I call an asynchronous
> > write-behind operation. The write operation is initiated when the store
> > instruction retires and instruction pointer is incremented.
> >
> > If an error was subsequently detected it could be hundreds of clocks
> > after the store retires so the RIP and data virtual address are long gone.
> >
> > If there is a cache then the store error detection could be completely
> > disconnected from program execution - your programs' store evicts
> > my programs' cache line and my line write back detects an error
> > long after my thread switched out.
> >
> > Memory can be shared between programs - who do you tell and
> > what do you say if you have no process RIP or data virtual addresses?
> > By the way, something happened someplace and I thought you should know?
> >
> > Read errors are not necessarily program synchronous as cache hardware
> > prefetchers can be reading ahead based on physical address patterns.
> > DRAM error scrubbers run asynchronously in the memory controller or DIMM.
> >
> > So the question is how to report such an error, who should be informed,
> > what information is available to log, how should the logger work, etc.
> > And what to do if the error reporter or loggers themselves get an error..
> <
> I agree with most of what EricP says above, with a subtle correction::
> <
> If the µArchitecture has miss buffers, the latent store has passed through
> one of them and the bus protocol NaK knows which one it was. So, you
> have a physical address but no IP and you may also have another copy of
> the data to be stored, so the core could try-again®; but by this time you
> will have lost memory order so recovery depends on whether you need
> sequential consistency or can live with causal consistency.

Okay, it would really be an error reporting option to ignore errors on a store.
Now to refactor all the code from FAF to IE. There is a way to pass load or store
instruction qualifiers to instructions from the high-level language for specific
variables; cache-ability attributes are already passed. Maybe an additional
language construct would help. Something like try..catch comes to mind. Or it
may be better to restrict usage to assembly language.

for (n = 0; n < 16384; n++)
__no_error(screen[n] = 0);

I had all memory operations synchronous requiring an ack back before being
marked done. SO, it would be possible to repeat operations. But with
operations taking possibly hundreds of cycles this would really limit
performance.

Re: FAF stores

<4cf7e483-6cf1-4af6-98aa-2912ddd4a247n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:2482:b0:765:a178:b098 with SMTP id i2-20020a05620a248200b00765a178b098mr12194qkn.4.1687730794345;
Sun, 25 Jun 2023 15:06:34 -0700 (PDT)
X-Received: by 2002:a05:687c:e:b0:1b0:15ca:47b with SMTP id
yf14-20020a05687c000e00b001b015ca047bmr2052913oab.7.1687730794124; Sun, 25
Jun 2023 15:06:34 -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, 25 Jun 2023 15:06:33 -0700 (PDT)
In-Reply-To: <db7406d9-aa4b-4fae-abdf-515f0261fec3n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:d8cd:6e10:16a2:1e92;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:d8cd:6e10:16a2:1e92
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com>
<f3YlM.72599$Zq81.21214@fx15.iad> <6da0834f-55e7-47c6-8c01-f2a344769599n@googlegroups.com>
<db7406d9-aa4b-4fae-abdf-515f0261fec3n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4cf7e483-6cf1-4af6-98aa-2912ddd4a247n@googlegroups.com>
Subject: Re: FAF stores
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Sun, 25 Jun 2023 22:06:34 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 6624
 by: MitchAlsup - Sun, 25 Jun 2023 22:06 UTC

On Sunday, June 25, 2023 at 4:50:10 PM UTC-5, robf...@gmail.com wrote:
> On Sunday, June 25, 2023 at 12:37:09 PM UTC-4, MitchAlsup wrote:
> > On Sunday, June 25, 2023 at 9:21:03 AM UTC-5, EricP wrote:
> > > robf...@gmail.com wrote:
> > > > Looking for a term here for fire-and-forget, FAF, stores.
> > > >
> > > > For the Thor core usually the memory operation waits for ack or error status back before being marked complete. This can take eight or ten cycles depending how many hops the store makes for the round trip to memory and back. Decided to implement ‘FAF’, fire-and-forget, stores that do not wait for an ack or error status. I think this may be useful for updating displays where perhaps it is not absolutely necessary that the store worked. For instance, streaming data to a graphics display. While the store operation will likely almost always work, if there is the occasional pixel that is not set properly this may not be noticeable.
> > > Your question is really about error detection, reporting, and logging..
> > > This is inherently error and model dependent. Errors can be instruction
> > > synchronous, asynchronous, both or neither; can be recoverable or
> > > non-recoverable; they can leave instructions restartable or not.
> > >
> > > I imagine that most cores implement store as what I call an asynchronous
> > > write-behind operation. The write operation is initiated when the store
> > > instruction retires and instruction pointer is incremented.
> > >
> > > If an error was subsequently detected it could be hundreds of clocks
> > > after the store retires so the RIP and data virtual address are long gone.
> > >
> > > If there is a cache then the store error detection could be completely
> > > disconnected from program execution - your programs' store evicts
> > > my programs' cache line and my line write back detects an error
> > > long after my thread switched out.
> > >
> > > Memory can be shared between programs - who do you tell and
> > > what do you say if you have no process RIP or data virtual addresses?
> > > By the way, something happened someplace and I thought you should know?
> > >
> > > Read errors are not necessarily program synchronous as cache hardware
> > > prefetchers can be reading ahead based on physical address patterns.
> > > DRAM error scrubbers run asynchronously in the memory controller or DIMM.
> > >
> > > So the question is how to report such an error, who should be informed,
> > > what information is available to log, how should the logger work, etc..
> > > And what to do if the error reporter or loggers themselves get an error.
> > <
> > I agree with most of what EricP says above, with a subtle correction::
> > <
> > If the µArchitecture has miss buffers, the latent store has passed through
> > one of them and the bus protocol NaK knows which one it was. So, you
> > have a physical address but no IP and you may also have another copy of
> > the data to be stored, so the core could try-again®; but by this time you
> > will have lost memory order so recovery depends on whether you need
> > sequential consistency or can live with causal consistency.
> Okay, it would really be an error reporting option to ignore errors on a store.
> Now to refactor all the code from FAF to IE. There is a way to pass load or store
> instruction qualifiers to instructions from the high-level language for specific
> variables; cache-ability attributes are already passed. Maybe an additional
> language construct would help. Something like try..catch comes to mind. Or it
> may be better to restrict usage to assembly language.
>
> for (n = 0; n < 16384; n++)
> __no_error(screen[n] = 0);
>
> I had all memory operations synchronous requiring an ack back before being
> marked done. SO, it would be possible to repeat operations. But with
> operations taking possibly hundreds of cycles this would really limit
> performance.
<
In about 1991, I was working on a 6-wide GBOoO machine µArchiecture.
<
Late in the project, we realized that "with a little logic" we could implement
a "paranoid" memory model where the store data had to arrive at the DRAM
controller without ECC failure for the store to be considered successful.
<
The added latency (on retirement) cost about 2% in performance (compared
to without the paranoid memory model.) The low overall cost is largely because
we had 48 buffers in which to store ongoing memory activity (with a 96 inst
instruction window.)
<
But rather than the error being associated with an individual instruction, the
error detection was applied to a whole application (process, task, thread,....).
Either the whole application is willing to pay to check all its stores get to memory
correctly or it doesn't wait for any of them. That is scientific applications might
not bother with store correctness, while banking applications definitely will.

Re: FAF stores

<Nhn*oRLjz@news.chiark.greenend.org.uk>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!news.nntp4.net!nntp.terraraq.uk!nntp-feed.chiark.greenend.org.uk!ewrotcd!.POSTED.chiark.greenend.org.uk!not-for-mail
From: theom+news@chiark.greenend.org.uk (Theo Markettos)
Newsgroups: comp.arch
Subject: Re: FAF stores
Date: 26 Jun 2023 11:40:59 +0100 (BST)
Organization: University of Cambridge, England
Message-ID: <Nhn*oRLjz@news.chiark.greenend.org.uk>
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com>
Injection-Info: chiark.greenend.org.uk; posting-host="chiark.greenend.org.uk:212.13.197.229";
logging-data="32497"; mail-complaints-to="abuse@chiark.greenend.org.uk"
User-Agent: tin/1.8.3-20070201 ("Scotasay") (UNIX) (Linux/5.10.0-22-amd64 (x86_64))
Originator: theom@chiark.greenend.org.uk ([212.13.197.229])
 by: Theo Markettos - Mon, 26 Jun 2023 10:40 UTC

robf...@gmail.com <robfi680@gmail.com> wrote:
> Looking for a term here for fire-and-forget, FAF, stores.

PCI(e) calls this 'posted transactions'. 'Posted' by analogy with posting a
letter (which is largely 'fire and forget').

Most writes are posted, meaning that you don't get an acknowledgement that
the write completed. This makes I/O quicker because you don't have to worry
about I/O latency, you can just pipeline them out.

https://en.wikipedia.org/wiki/Posted_write

I think you may still be able to get an error indication message, but it
would be asynchronous.

Theo

Re: FAF stores

<f7dd8d2a-676b-4849-bd3b-6d9d819249edn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:4903:b0:765:3c81:4045 with SMTP id ed3-20020a05620a490300b007653c814045mr735898qkb.1.1687780795619;
Mon, 26 Jun 2023 04:59:55 -0700 (PDT)
X-Received: by 2002:aca:f1d5:0:b0:3a0:35aa:3ecd with SMTP id
p204-20020acaf1d5000000b003a035aa3ecdmr3832719oih.4.1687780795311; Mon, 26
Jun 2023 04:59:55 -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: Mon, 26 Jun 2023 04:59:55 -0700 (PDT)
In-Reply-To: <Nhn*oRLjz@news.chiark.greenend.org.uk>
Injection-Info: google-groups.googlegroups.com; posting-host=99.251.79.92; posting-account=QId4bgoAAABV4s50talpu-qMcPp519Eb
NNTP-Posting-Host: 99.251.79.92
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com> <Nhn*oRLjz@news.chiark.greenend.org.uk>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f7dd8d2a-676b-4849-bd3b-6d9d819249edn@googlegroups.com>
Subject: Re: FAF stores
From: robfi680@gmail.com (robf...@gmail.com)
Injection-Date: Mon, 26 Jun 2023 11:59:55 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2680
 by: robf...@gmail.com - Mon, 26 Jun 2023 11:59 UTC

On Monday, June 26, 2023 at 6:41:04 AM UTC-4, Theo Markettos wrote:
> robf...@gmail.com <robf...@gmail.com> wrote:
> > Looking for a term here for fire-and-forget, FAF, stores.
> PCI(e) calls this 'posted transactions'. 'Posted' by analogy with posting a
> letter (which is largely 'fire and forget').
>
> Most writes are posted, meaning that you don't get an acknowledgement that
> the write completed. This makes I/O quicker because you don't have to worry
> about I/O latency, you can just pipeline them out.
>
> https://en.wikipedia.org/wiki/Posted_write
>
> I think you may still be able to get an error indication message, but it
> would be asynchronous.
>
> Theo

I get the impression now that most writes are posted writes in a modern CPU; I
thought it would be the other way around. I added error record writes to the ISA
though specified as ‘.erc’ for error record. There was some extra opcode room
in the indexed addressing instructions. The test system is almost entirely
pipelined with one or two bridges to synchronous busses.

It is interesting to see the adoption of language terms to probably slightly
different meanings than originally intended. Posting a transaction meant to
me that the transaction is placed on a bus, regardless of whether there would
be an ack. I have been calling this a transaction pulse. What are posted
transactions that expect an ack called then?

Re: FAF stores

<mJgmM.111038$WpOe.103077@fx18.iad>

  copy mid

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

  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!fx18.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: scott@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: FAF stores
Newsgroups: comp.arch
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com> <Nhn*oRLjz@news.chiark.greenend.org.uk>
Lines: 29
Message-ID: <mJgmM.111038$WpOe.103077@fx18.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Mon, 26 Jun 2023 13:51:14 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Mon, 26 Jun 2023 13:51:14 GMT
X-Received-Bytes: 1938
 by: Scott Lurndal - Mon, 26 Jun 2023 13:51 UTC

Theo Markettos <theom+news@chiark.greenend.org.uk> writes:
>robf...@gmail.com <robfi680@gmail.com> wrote:
>> Looking for a term here for fire-and-forget, FAF, stores.
>
>PCI(e) calls this 'posted transactions'. 'Posted' by analogy with posting a
>letter (which is largely 'fire and forget').
>
>Most writes are posted, meaning that you don't get an acknowledgement that
>the write completed. This makes I/O quicker because you don't have to worry
>about I/O latency, you can just pipeline them out.
>
>https://en.wikipedia.org/wiki/Posted_write
>
>I think you may still be able to get an error indication message, but it
>would be asynchronous.

Most higher-end CPU's now support poisoning throughout the datapath, so
errors involving corrupt data (parity/ecc detected) will mark the data
as poisoned[*]. If and/or when the data is consumed, the poison indication
will follow the data to the consumer, raising a RAS error; synchronously
for some accesses (mainly reads) and asynchronously otherwise.

Some hardware will raise an interrupt when the poisoned data is detected,
not just when it is consumed.

[*] for example, by corrupting the corresponding ECC/parity bits such that
a subsequent access will get an error.

Figuring out which process/thread owns the poisoned data can be complicated.

Re: FAF stores

<k3kmM.143482$8fUf.98131@fx16.iad>

  copy mid

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

  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!fx16.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: FAF stores
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com> <f3YlM.72599$Zq81.21214@fx15.iad> <6da0834f-55e7-47c6-8c01-f2a344769599n@googlegroups.com> <db7406d9-aa4b-4fae-abdf-515f0261fec3n@googlegroups.com>
In-Reply-To: <db7406d9-aa4b-4fae-abdf-515f0261fec3n@googlegroups.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 56
Message-ID: <k3kmM.143482$8fUf.98131@fx16.iad>
X-Complaints-To: abuse@UsenetServer.com
NNTP-Posting-Date: Mon, 26 Jun 2023 17:39:28 UTC
Date: Mon, 26 Jun 2023 13:38:25 -0400
X-Received-Bytes: 3446
 by: EricP - Mon, 26 Jun 2023 17:38 UTC

robf...@gmail.com wrote:
>
> Okay, it would really be an error reporting option to ignore errors on a store.
> Now to refactor all the code from FAF to IE. There is a way to pass load or store
> instruction qualifiers to instructions from the high-level language for specific
> variables; cache-ability attributes are already passed. Maybe an additional
> language construct would help. Something like try..catch comes to mind. Or it
> may be better to restrict usage to assembly language.
>
> for (n = 0; n < 16384; n++)
> __no_error(screen[n] = 0);
>
> I had all memory operations synchronous requiring an ack back before being
> marked done. SO, it would be possible to repeat operations. But with
> operations taking possibly hundreds of cycles this would really limit
> performance.
>

Your focus seems to be on detecting errors in single data value stores
to a range of device addresses.

I like x86's way of cache control where each PTE has a 3-bit field which
is an index into an 8 entry table of bits specifying the control flags.

You could have an option as non-cacheable, write through, synchronous
which waits for end-to-end ack/nak for each individual store instruction.
Then you can define that stores to such locations that detect an error
raise a synchronous exception, similar to a page fault.

Being write-through removes cache as a source of write errors
so that would seem to leave only bus errors as a source in this
particular scenario (ignoring core internal errors).

Address parity errors should not decode to any device so the bus
needs a default device at each end to signal BUSERR (wired-OR pulldown?).
Non-existent devices have a valid address but also do not decode to any
device so they are detected by a missing DTAK data transfer ack.
Data parity errors are signaled by the addressed device on BUSERR wire.

Bus parity errors can be transient or persistent. Transient would be
fixed by just retrying the operation once or twice, but if it occurs
repeatedly then the transfer should be aborted (a "stuck-at" fault).

Retrying assumes the addressed device does not undergo any state change
for each attempt. A bus write data parity error should not cause a
device state change. Some devices change state when read.
A bus read data parity error should not re-read a device register so
retrying for bus transmission errors also should not cause repeated
state changes (if any).

In any case the physical address and any other error info should
be logged. There needs to be a fifo someplace you can dump error
info into and interrupt the cpu to drain the fifo.

Re: FAF stores

<d90da978-9d4c-4efc-bd63-f2286b844c79n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:1813:b0:403:1d63:dd4f with SMTP id t19-20020a05622a181300b004031d63dd4fmr16493qtc.12.1688245186172;
Sat, 01 Jul 2023 13:59:46 -0700 (PDT)
X-Received: by 2002:a17:903:705:b0:1b8:3ec9:29a4 with SMTP id
kk5-20020a170903070500b001b83ec929a4mr4638112plb.8.1688245185594; Sat, 01 Jul
2023 13:59:45 -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: Sat, 1 Jul 2023 13:59:45 -0700 (PDT)
In-Reply-To: <f7dd8d2a-676b-4849-bd3b-6d9d819249edn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2a0d:6fc2:55b0:ca00:a4fd:f073:be1e:4ae6;
posting-account=ow8VOgoAAAAfiGNvoH__Y4ADRwQF1hZW
NNTP-Posting-Host: 2a0d:6fc2:55b0:ca00:a4fd:f073:be1e:4ae6
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com>
<Nhn*oRLjz@news.chiark.greenend.org.uk> <f7dd8d2a-676b-4849-bd3b-6d9d819249edn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d90da978-9d4c-4efc-bd63-f2286b844c79n@googlegroups.com>
Subject: Re: FAF stores
From: already5chosen@yahoo.com (Michael S)
Injection-Date: Sat, 01 Jul 2023 20:59:46 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3232
 by: Michael S - Sat, 1 Jul 2023 20:59 UTC

On Monday, June 26, 2023 at 2:59:57 PM UTC+3, robf...@gmail.com wrote:
> On Monday, June 26, 2023 at 6:41:04 AM UTC-4, Theo Markettos wrote:
> > robf...@gmail.com <robf...@gmail.com> wrote:
> > > Looking for a term here for fire-and-forget, FAF, stores.
> > PCI(e) calls this 'posted transactions'. 'Posted' by analogy with posting a
> > letter (which is largely 'fire and forget').
> >
> > Most writes are posted, meaning that you don't get an acknowledgement that
> > the write completed. This makes I/O quicker because you don't have to worry
> > about I/O latency, you can just pipeline them out.
> >
> > https://en.wikipedia.org/wiki/Posted_write
> >
> > I think you may still be able to get an error indication message, but it
> > would be asynchronous.
> >
> > Theo
> I get the impression now that most writes are posted writes in a modern CPU;

Nowadays even IBM z has write-back caches in their cache hierarchy. They resisted
them for longer than most, but gave up more than decade ago.
With write-back cache, most write are "posted" even if not called such officially.

> I
> thought it would be the other way around. I added error record writes to the ISA
> though specified as ‘.erc’ for error record. There was some extra opcode room
> in the indexed addressing instructions. The test system is almost entirely
> pipelined with one or two bridges to synchronous busses.
>
> It is interesting to see the adoption of language terms to probably slightly
> different meanings than originally intended. Posting a transaction meant to
> me that the transaction is placed on a bus, regardless of whether there would
> be an ack. I have been calling this a transaction pulse. What are posted
> transactions that expect an ack called then?

Re: FAF stores

<269637bf-3e8e-4852-b1d0-42ec8a561e5fn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a0c:ef10:0:b0:635:f34b:c1a5 with SMTP id t16-20020a0cef10000000b00635f34bc1a5mr37884qvr.3.1688257460403;
Sat, 01 Jul 2023 17:24:20 -0700 (PDT)
X-Received: by 2002:aa7:8685:0:b0:666:8f6c:c8ad with SMTP id
d5-20020aa78685000000b006668f6cc8admr7252585pfo.2.1688257459793; Sat, 01 Jul
2023 17:24:19 -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: Sat, 1 Jul 2023 17:24:19 -0700 (PDT)
In-Reply-To: <d90da978-9d4c-4efc-bd63-f2286b844c79n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:55:52ef:a274:6ee5;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:55:52ef:a274:6ee5
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com>
<Nhn*oRLjz@news.chiark.greenend.org.uk> <f7dd8d2a-676b-4849-bd3b-6d9d819249edn@googlegroups.com>
<d90da978-9d4c-4efc-bd63-f2286b844c79n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <269637bf-3e8e-4852-b1d0-42ec8a561e5fn@googlegroups.com>
Subject: Re: FAF stores
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Sun, 02 Jul 2023 00:24:20 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3732
 by: MitchAlsup - Sun, 2 Jul 2023 00:24 UTC

On Saturday, July 1, 2023 at 3:59:47 PM UTC-5, Michael S wrote:
> On Monday, June 26, 2023 at 2:59:57 PM UTC+3, robf...@gmail.com wrote:
> > On Monday, June 26, 2023 at 6:41:04 AM UTC-4, Theo Markettos wrote:
> > > robf...@gmail.com <robf...@gmail.com> wrote:
> > > > Looking for a term here for fire-and-forget, FAF, stores.
> > > PCI(e) calls this 'posted transactions'. 'Posted' by analogy with posting a
> > > letter (which is largely 'fire and forget').
> > >
> > > Most writes are posted, meaning that you don't get an acknowledgement that
> > > the write completed. This makes I/O quicker because you don't have to worry
> > > about I/O latency, you can just pipeline them out.
> > >
> > > https://en.wikipedia.org/wiki/Posted_write
> > >
> > > I think you may still be able to get an error indication message, but it
> > > would be asynchronous.
> > >
> > > Theo
> > I get the impression now that most writes are posted writes in a modern CPU;
> Nowadays even IBM z has write-back caches in their cache hierarchy. They resisted
> them for longer than most, but gave up more than decade ago.
> With write-back cache, most write are "posted" even if not called such officially.
<
With a transport protocol like HyperTransport, all writes are essentially posted,
but the sequence ID cannot be reused until an ack from the target arrives.
<
Which means one could call then non-posted as they are not fire and forget,
there are fire and wait until ack at least at the transport level.
<
> > I
> > thought it would be the other way around. I added error record writes to the ISA
> > though specified as ‘.erc’ for error record. There was some extra opcode room
> > in the indexed addressing instructions. The test system is almost entirely
> > pipelined with one or two bridges to synchronous busses.
> >
> > It is interesting to see the adoption of language terms to probably slightly
> > different meanings than originally intended. Posting a transaction meant to
> > me that the transaction is placed on a bus, regardless of whether there would
> > be an ack. I have been calling this a transaction pulse. What are posted
> > transactions that expect an ack called then?

Re: FAF stores

<rzmoM.2897$1ZN4.1457@fx12.iad>

  copy mid

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

  copy link   Newsgroups: comp.arch
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!fx12.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: scott@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: FAF stores
Newsgroups: comp.arch
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com> <Nhn*oRLjz@news.chiark.greenend.org.uk> <f7dd8d2a-676b-4849-bd3b-6d9d819249edn@googlegroups.com> <d90da978-9d4c-4efc-bd63-f2286b844c79n@googlegroups.com> <269637bf-3e8e-4852-b1d0-42ec8a561e5fn@googlegroups.com>
Lines: 22
Message-ID: <rzmoM.2897$1ZN4.1457@fx12.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Sun, 02 Jul 2023 22:08:23 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Sun, 02 Jul 2023 22:08:23 GMT
X-Received-Bytes: 1851
 by: Scott Lurndal - Sun, 2 Jul 2023 22:08 UTC

MitchAlsup <MitchAlsup@aol.com> writes:
>On Saturday, July 1, 2023 at 3:59:47=E2=80=AFPM UTC-5, Michael S wrote:

>> > I get the impression now that most writes are posted writes in a modern=
> CPU;
>> Nowadays even IBM z has write-back caches in their cache hierarchy. They =
>resisted=20
>> them for longer than most, but gave up more than decade ago.=20
>> With write-back cache, most write are "posted" even if not called such of=
>ficially.
><
>With a transport protocol like HyperTransport, all writes are essentially p=
>osted,
>but the sequence ID cannot be reused until an ack from the target arrives.
><
>Which means one could call then non-posted as they are not fire and forget,
>there are fire and wait until ack at least at the transport level.

Hypertransport does have some support for non-posted sized writes with some
rules (starting with the originator knowing a priori that the receiver
can accomodate the request). The target needs to send TARGET DONE to
ensure any intermediate (e.g. bridge) request queue entries get deallocated.

Re: FAF stores

<3e8b9fc8-c97e-4a5b-ae4d-a2c9fca38b03n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:4729:b0:767:5442:6ff0 with SMTP id bs41-20020a05620a472900b0076754426ff0mr20132qkb.3.1688341659667;
Sun, 02 Jul 2023 16:47:39 -0700 (PDT)
X-Received: by 2002:a63:d248:0:b0:557:74fb:1f1f with SMTP id
t8-20020a63d248000000b0055774fb1f1fmr5341737pgi.8.1688341659247; Sun, 02 Jul
2023 16:47:39 -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, 2 Jul 2023 16:47:38 -0700 (PDT)
In-Reply-To: <rzmoM.2897$1ZN4.1457@fx12.iad>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:c1e3:1d0:d553:63e7;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:c1e3:1d0:d553:63e7
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com>
<Nhn*oRLjz@news.chiark.greenend.org.uk> <f7dd8d2a-676b-4849-bd3b-6d9d819249edn@googlegroups.com>
<d90da978-9d4c-4efc-bd63-f2286b844c79n@googlegroups.com> <269637bf-3e8e-4852-b1d0-42ec8a561e5fn@googlegroups.com>
<rzmoM.2897$1ZN4.1457@fx12.iad>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3e8b9fc8-c97e-4a5b-ae4d-a2c9fca38b03n@googlegroups.com>
Subject: Re: FAF stores
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Sun, 02 Jul 2023 23:47:39 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3044
 by: MitchAlsup - Sun, 2 Jul 2023 23:47 UTC

On Sunday, July 2, 2023 at 5:08:27 PM UTC-5, Scott Lurndal wrote:
> MitchAlsup <Mitch...@aol.com> writes:
> >On Saturday, July 1, 2023 at 3:59:47=E2=80=AFPM UTC-5, Michael S wrote:
>
> >> > I get the impression now that most writes are posted writes in a modern=
> > CPU;
> >> Nowadays even IBM z has write-back caches in their cache hierarchy. They =
> >resisted=20
> >> them for longer than most, but gave up more than decade ago.=20
> >> With write-back cache, most write are "posted" even if not called such of=
> >ficially.
> ><
> >With a transport protocol like HyperTransport, all writes are essentially p> >osted,
> >but the sequence ID cannot be reused until an ack from the target arrives.
> ><
> >Which means one could call then non-posted as they are not fire and forget,
> >there are fire and wait until ack at least at the transport level.
<
> Hypertransport does have some support for non-posted sized writes with some
> rules (starting with the originator knowing a priori that the receiver
> can accomodate the request). The target needs to send TARGET DONE to
> ensure any intermediate (e.g. bridge) request queue entries get deallocated.
<
Posted in this sense means that there are multiple steps from source to
destination and that each step is ack-ed individually. But you still COULD
have the property that the ack is not sent until address+command+data
have passed ECC checks at receiver.
<
So you don't know when it arrives, but you do know it arrived without error..

Re: FAF stores

<d627aeb1-2b4d-4a0f-b505-62be076e6c81n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:140c:b0:635:e314:b098 with SMTP id pr12-20020a056214140c00b00635e314b098mr26073qvb.3.1688868492021;
Sat, 08 Jul 2023 19:08:12 -0700 (PDT)
X-Received: by 2002:a17:90a:8913:b0:263:ef7:c4b9 with SMTP id
u19-20020a17090a891300b002630ef7c4b9mr7425584pjn.6.1688868491492; Sat, 08 Jul
2023 19:08:11 -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: Sat, 8 Jul 2023 19:08:10 -0700 (PDT)
In-Reply-To: <3e8b9fc8-c97e-4a5b-ae4d-a2c9fca38b03n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2607:fea8:1dde:6a00:fc2a:9718:f97e:765;
posting-account=QId4bgoAAABV4s50talpu-qMcPp519Eb
NNTP-Posting-Host: 2607:fea8:1dde:6a00:fc2a:9718:f97e:765
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com>
<Nhn*oRLjz@news.chiark.greenend.org.uk> <f7dd8d2a-676b-4849-bd3b-6d9d819249edn@googlegroups.com>
<d90da978-9d4c-4efc-bd63-f2286b844c79n@googlegroups.com> <269637bf-3e8e-4852-b1d0-42ec8a561e5fn@googlegroups.com>
<rzmoM.2897$1ZN4.1457@fx12.iad> <3e8b9fc8-c97e-4a5b-ae4d-a2c9fca38b03n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d627aeb1-2b4d-4a0f-b505-62be076e6c81n@googlegroups.com>
Subject: Re: FAF stores
From: robfi680@gmail.com (robf...@gmail.com)
Injection-Date: Sun, 09 Jul 2023 02:08:12 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2610
 by: robf...@gmail.com - Sun, 9 Jul 2023 02:08 UTC

Slightly OT.

Massive number of edits about to happen in the Thor documentation. I decided
to remove the cache-ability field from load and store instructions. Cache-ability
is now controlled strictly by memory page and region. It turns out that the
hardware just ignored the cache-ability attributes coming from the instruction
anyway. Removing the bits from the instruction format gives two more bits for
a displacement or other use.

Thinking of adding a block construct to the high-level language to indicate
cache-ability of variables. Some languages for embedded apps have an ‘at’
attribute allowing the memory address to be specified which would indirectly
allow the cache-ability to be controlled. One possibility is to add a section
specification to the language so specific sections may be selected for
variables. Then define non-cacheable bss, ncbss, non-cacheable data, etc. as
sections in the linker script. C has an ugly way to do this using __attribute__.
But given control over the HLL perhaps a prettier syntax can be created.

Re: FAF stores

<698cc0df-7a12-4493-9fa2-09588920410bn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:a06:b0:637:1cb0:67a1 with SMTP id dw6-20020a0562140a0600b006371cb067a1mr24746qvb.0.1688871523530;
Sat, 08 Jul 2023 19:58:43 -0700 (PDT)
X-Received: by 2002:a17:902:e810:b0:1b8:c6ba:bf75 with SMTP id
u16-20020a170902e81000b001b8c6babf75mr9197061plg.0.1688871523037; Sat, 08 Jul
2023 19:58:43 -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 19:58:42 -0700 (PDT)
In-Reply-To: <d627aeb1-2b4d-4a0f-b505-62be076e6c81n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:6c58:a8d6:3fef:3ddb;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:6c58:a8d6:3fef:3ddb
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com>
<Nhn*oRLjz@news.chiark.greenend.org.uk> <f7dd8d2a-676b-4849-bd3b-6d9d819249edn@googlegroups.com>
<d90da978-9d4c-4efc-bd63-f2286b844c79n@googlegroups.com> <269637bf-3e8e-4852-b1d0-42ec8a561e5fn@googlegroups.com>
<rzmoM.2897$1ZN4.1457@fx12.iad> <3e8b9fc8-c97e-4a5b-ae4d-a2c9fca38b03n@googlegroups.com>
<d627aeb1-2b4d-4a0f-b505-62be076e6c81n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <698cc0df-7a12-4493-9fa2-09588920410bn@googlegroups.com>
Subject: Re: FAF stores
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Sun, 09 Jul 2023 02:58:43 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3640
 by: MitchAlsup - Sun, 9 Jul 2023 02:58 UTC

On Saturday, July 8, 2023 at 9:08:13 PM UTC-5, robf...@gmail.com wrote:
> Slightly OT.
>
> Massive number of edits about to happen in the Thor documentation. I decided
> to remove the cache-ability field from load and store instructions. Cache-ability
> is now controlled strictly by memory page and region. It turns out that the
> hardware just ignored the cache-ability attributes coming from the instruction
> anyway. Removing the bits from the instruction format gives two more bits for
> a displacement or other use.
<
Why is this not something for the MMU tables ??
<
For examples My 66000 has 4 spaces and 5 kinds of accesses.
There is cacheable DRAM and these use the used and modified bits normally.
There is the unCacheable domain that use the used and Modified bits differently.
00 -> unCacheable DRAM access (actually cached in L3 cache)
01 -> Memory Mapped I/O space
10 -> Configuration Space
11 -> ROM
<
Cacheable RWE DRAM is causally ordered, except within an ATOMIC event
where it is sequentially consistent.
Cacheable RO or EO DRAM is weakly ordered
Cacheable WO is sequentially consistent
<
unCacheable DRAM is sequentially Consistent
Memory Mapped I/O is sequentially Consistent
Configuration is strongly ordered
ROM is weakly ordered.
<
Solving several utility functions in one fell swoop.
>
> Thinking of adding a block construct to the high-level language to indicate
> cache-ability of variables. Some languages for embedded apps have an ‘at’
> attribute allowing the memory address to be specified which would indirectly
> allow the cache-ability to be controlled. One possibility is to add a section
> specification to the language so specific sections may be selected for
> variables. Then define non-cacheable bss, ncbss, non-cacheable data, etc. as
> sections in the linker script. C has an ugly way to do this using __attribute__.
> But given control over the HLL perhaps a prettier syntax can be created.

Re: FAF stores

<b2c920e9-085b-416c-9dd9-d025fa6dfddan@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:4546:b0:762:4a12:b014 with SMTP id u6-20020a05620a454600b007624a12b014mr28950qkp.7.1688874037883;
Sat, 08 Jul 2023 20:40:37 -0700 (PDT)
X-Received: by 2002:a05:6a00:39a6:b0:676:20f8:be57 with SMTP id
fi38-20020a056a0039a600b0067620f8be57mr13818187pfb.0.1688874037312; Sat, 08
Jul 2023 20:40:37 -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 20:40:36 -0700 (PDT)
In-Reply-To: <698cc0df-7a12-4493-9fa2-09588920410bn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2607:fea8:1dde:6a00:fc2a:9718:f97e:765;
posting-account=QId4bgoAAABV4s50talpu-qMcPp519Eb
NNTP-Posting-Host: 2607:fea8:1dde:6a00:fc2a:9718:f97e:765
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com>
<Nhn*oRLjz@news.chiark.greenend.org.uk> <f7dd8d2a-676b-4849-bd3b-6d9d819249edn@googlegroups.com>
<d90da978-9d4c-4efc-bd63-f2286b844c79n@googlegroups.com> <269637bf-3e8e-4852-b1d0-42ec8a561e5fn@googlegroups.com>
<rzmoM.2897$1ZN4.1457@fx12.iad> <3e8b9fc8-c97e-4a5b-ae4d-a2c9fca38b03n@googlegroups.com>
<d627aeb1-2b4d-4a0f-b505-62be076e6c81n@googlegroups.com> <698cc0df-7a12-4493-9fa2-09588920410bn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b2c920e9-085b-416c-9dd9-d025fa6dfddan@googlegroups.com>
Subject: Re: FAF stores
From: robfi680@gmail.com (robf...@gmail.com)
Injection-Date: Sun, 09 Jul 2023 03:40:37 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 4100
 by: robf...@gmail.com - Sun, 9 Jul 2023 03:40 UTC

On Saturday, July 8, 2023 at 10:58:45 PM UTC-4, MitchAlsup wrote:
> On Saturday, July 8, 2023 at 9:08:13 PM UTC-5, robf...@gmail.com wrote:
> > Slightly OT.
> >
> > Massive number of edits about to happen in the Thor documentation. I decided
> > to remove the cache-ability field from load and store instructions. Cache-ability
> > is now controlled strictly by memory page and region. It turns out that the
> > hardware just ignored the cache-ability attributes coming from the instruction
> > anyway. Removing the bits from the instruction format gives two more bits for
> > a displacement or other use.
> <
> Why is this not something for the MMU tables ??

It is in the MMU tables. By memory page I meant in the MMU tables. There is a
cache-ability field in the PTE along with a 3-bit region identifier field.

> <
> For examples My 66000 has 4 spaces and 5 kinds of accesses.
> There is cacheable DRAM and these use the used and modified bits normally..
> There is the unCacheable domain that use the used and Modified bits differently.
> 00 -> unCacheable DRAM access (actually cached in L3 cache)
> 01 -> Memory Mapped I/O space
> 10 -> Configuration Space
> 11 -> ROM
> <
> Cacheable RWE DRAM is causally ordered, except within an ATOMIC event
> where it is sequentially consistent.
> Cacheable RO or EO DRAM is weakly ordered
> Cacheable WO is sequentially consistent
> <
> unCacheable DRAM is sequentially Consistent
> Memory Mapped I/O is sequentially Consistent
> Configuration is strongly ordered
> ROM is weakly ordered.
> <
> Solving several utility functions in one fell swoop.
> >
> > Thinking of adding a block construct to the high-level language to indicate
> > cache-ability of variables. Some languages for embedded apps have an ‘at’
> > attribute allowing the memory address to be specified which would indirectly
> > allow the cache-ability to be controlled. One possibility is to add a section
> > specification to the language so specific sections may be selected for
> > variables. Then define non-cacheable bss, ncbss, non-cacheable data, etc. as
> > sections in the linker script. C has an ugly way to do this using __attribute__.
> > But given control over the HLL perhaps a prettier syntax can be created..

Re: FAF stores

<_mAqM.131075$Bq67.70190@fx13.iad>

  copy mid

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

  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!fx13.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: scott@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: FAF stores
Newsgroups: comp.arch
References: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com> <Nhn*oRLjz@news.chiark.greenend.org.uk> <f7dd8d2a-676b-4849-bd3b-6d9d819249edn@googlegroups.com> <d90da978-9d4c-4efc-bd63-f2286b844c79n@googlegroups.com> <269637bf-3e8e-4852-b1d0-42ec8a561e5fn@googlegroups.com> <rzmoM.2897$1ZN4.1457@fx12.iad> <3e8b9fc8-c97e-4a5b-ae4d-a2c9fca38b03n@googlegroups.com> <d627aeb1-2b4d-4a0f-b505-62be076e6c81n@googlegroups.com> <698cc0df-7a12-4493-9fa2-09588920410bn@googlegroups.com>
Lines: 29
Message-ID: <_mAqM.131075$Bq67.70190@fx13.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Sun, 09 Jul 2023 15:28:58 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Sun, 09 Jul 2023 15:28:58 GMT
X-Received-Bytes: 2107
 by: Scott Lurndal - Sun, 9 Jul 2023 15:28 UTC

MitchAlsup <MitchAlsup@aol.com> writes:
>On Saturday, July 8, 2023 at 9:08:13=E2=80=AFPM UTC-5, robf...@gmail.com wr=
>ote:
>> Slightly OT.=20
>>=20
>> Massive number of edits about to happen in the Thor documentation. I deci=
>ded=20
>> to remove the cache-ability field from load and store instructions. Cache=
>-ability=20
>> is now controlled strictly by memory page and region. It turns out that t=
>he=20
>> hardware just ignored the cache-ability attributes coming from the instru=
>ction=20
>> anyway. Removing the bits from the instruction format gives two more bits=
> for=20
>> a displacement or other use.=20
><
>Why is this not something for the MMU tables ??
><
>For examples My 66000 has 4 spaces and 5 kinds of accesses.
>There is cacheable DRAM and these use the used and modified bits normally.
>There is the unCacheable domain that use the used and Modified bits differe=
>ntly.
>00 -> unCacheable DRAM access (actually cached in L3 cache)
>01 -> Memory Mapped I/O space
>10 -> Configuration Space
>11 -> ROM

How do you handle cacheable DRAM behind a PCIe BAR (e.g. CXL-Cache)?

Re: FAF stores

<e39d8438-3d7c-4765-887c-134a304607f0n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ad4:4b6d:0:b0:635:e3ae:e09c with SMTP id m13-20020ad44b6d000000b00635e3aee09cmr35305qvx.13.1688923398426;
Sun, 09 Jul 2023 10:23:18 -0700 (PDT)
X-Received: by 2002:a17:90a:ec15:b0:262:dc49:3bff with SMTP id
l21-20020a17090aec1500b00262dc493bffmr8629102pjy.5.1688923397900; Sun, 09 Jul
2023 10:23: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:23:17 -0700 (PDT)
In-Reply-To: <_mAqM.131075$Bq67.70190@fx13.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: <778a9d78-baf6-4b40-8bf0-09ca1f3c6eb6n@googlegroups.com>
<Nhn*oRLjz@news.chiark.greenend.org.uk> <f7dd8d2a-676b-4849-bd3b-6d9d819249edn@googlegroups.com>
<d90da978-9d4c-4efc-bd63-f2286b844c79n@googlegroups.com> <269637bf-3e8e-4852-b1d0-42ec8a561e5fn@googlegroups.com>
<rzmoM.2897$1ZN4.1457@fx12.iad> <3e8b9fc8-c97e-4a5b-ae4d-a2c9fca38b03n@googlegroups.com>
<d627aeb1-2b4d-4a0f-b505-62be076e6c81n@googlegroups.com> <698cc0df-7a12-4493-9fa2-09588920410bn@googlegroups.com>
<_mAqM.131075$Bq67.70190@fx13.iad>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e39d8438-3d7c-4765-887c-134a304607f0n@googlegroups.com>
Subject: Re: FAF stores
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Sun, 09 Jul 2023 17:23:18 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: MitchAlsup - Sun, 9 Jul 2023 17:23 UTC

On Sunday, July 9, 2023 at 10:29:02 AM UTC-5, Scott Lurndal wrote:
> MitchAlsup <Mitch...@aol.com> writes:
> >On Saturday, July 8, 2023 at 9:08:13=E2=80=AFPM UTC-5, robf...@gmail.com wr=
> >ote:
> >> Slightly OT.=20
> >>=20
> >> Massive number of edits about to happen in the Thor documentation. I deci=
> >ded=20
> >> to remove the cache-ability field from load and store instructions. Cache=
> >-ability=20
> >> is now controlled strictly by memory page and region. It turns out that t=
> >he=20
> >> hardware just ignored the cache-ability attributes coming from the instru=
> >ction=20
> >> anyway. Removing the bits from the instruction format gives two more bits=
> > for=20
> >> a displacement or other use.=20
> ><
> >Why is this not something for the MMU tables ??
> ><
> >For examples My 66000 has 4 spaces and 5 kinds of accesses.
> >There is cacheable DRAM and these use the used and modified bits normally.
> >There is the unCacheable domain that use the used and Modified bits differe> >ntly.
> >00 -> unCacheable DRAM access (actually cached in L3 cache)
> >01 -> Memory Mapped I/O space
> >10 -> Configuration Space
> >11 -> ROM
<
> How do you handle cacheable DRAM behind a PCIe BAR (e.g. CXL-Cache)?
<
Haven't gotten that far:: But to a first order::
<
Core makes an access which gets translated to cacheable DRAM. The
request wanders through the interconnect and arrives at L3 Cache.
L3 cache talks to cores with My 66000 coherence protocol.
L3 has certain physical address regions mapped to CXL:Bus,Dev;Fctn
L3 talks to CXL caches using CXL protocol.
L3 miss unmapped initiates DRAM read
L3 miss ....mapped initiates CXL ....read
L3 miss ....mapped initiates CXL ....read miss initiates DRAM read

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor