Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

He's dead, Jim. -- McCoy, "The Devil in the Dark", stardate 3196.1


devel / comp.arch / Re: addressing and protection, was Paper about ISO C

SubjectAuthor
* Paper about ISO Cclamky
+- Re: Paper about ISO CBGB
+* Re: Paper about ISO CDavid Brown
|+* Re: Paper about ISO CBGB
||+* Re: Paper about ISO CMitchAlsup
|||+* Re: Paper about ISO CMitchAlsup
||||`* Re: Paper about ISO CBranimir Maksimovic
|||| `* Re: Paper about ISO CGeorge Neuner
||||  +- Re: Paper about ISO CBranimir Maksimovic
||||  `* Re: Paper about ISO CEricP
||||   `* Re: Paper about ISO CIvan Godard
||||    `* Re: Paper about ISO CEricP
||||     `* Re: Paper about ISO CMitchAlsup
||||      +* Re: Paper about ISO CBGB
||||      |`* Re: Paper about ISO CStephen Fuld
||||      | +* Re: Paper about ISO CIvan Godard
||||      | |+* Re: addressing and protection, was Paper about ISO CJohn Levine
||||      | ||+* Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |||+- Re: addressing and protection, was Paper about ISO CJohn Levine
||||      | |||+* Re: addressing and protection, was Paper about ISO CIvan Godard
||||      | ||||`- Re: addressing and protection, was Paper about ISO CQuadibloc
||||      | |||`- Re: addressing and protection, was Paper about ISO CBill Findlay
||||      | ||`* Re: addressing and protection, was Paper about ISO CQuadibloc
||||      | || +- Re: addressing and protection, was Paper about ISO CStephen Fuld
||||      | || `- Re: addressing and protection, was Paper about ISO CBranimir Maksimovic
||||      | |`* Re: addressing and protection, was Paper about ISO CEricP
||||      | | +* Re: addressing and protection, was Paper about ISO CStefan Monnier
||||      | | |`- Re: addressing and protection, was Paper about ISO CEricP
||||      | | `* Re: addressing and protection, was Paper about ISO CIvan Godard
||||      | |  +* Re: addressing and protection, was Paper about ISO CBGB
||||      | |  |+* Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |  ||`* Re: addressing and protection, was Paper about ISO CBGB
||||      | |  || `* Re: addressing and protection, was Paper about ISO CJohn Dallman
||||      | |  ||  +* Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |  ||  |+- Re: addressing and protection, was Paper about ISO CBGB
||||      | |  ||  |+* Re: addressing and protection, was Paper about ISO CThomas Koenig
||||      | |  ||  ||`* Re: addressing and protection, was Paper about ISO CBGB
||||      | |  ||  || `* Re: addressing and protection, was Paper about ISO CAnton Ertl
||||      | |  ||  ||  `- Re: addressing and protection, was Paper about ISO CBGB
||||      | |  ||  |`* Re: addressing and protection, was Paper about ISO CQuadibloc
||||      | |  ||  | +- Re: addressing and protection, was Paper about ISO CQuadibloc
||||      | |  ||  | `- Re: addressing and protection, was Paper about ISO CBGB
||||      | |  ||  `- Re: addressing and protection, was Paper about ISO CBGB
||||      | |  |`* Re: addressing and protection, was Paper about ISO CJohn Dallman
||||      | |  | +* Re: addressing and protection, was Paper about ISO CThomas Koenig
||||      | |  | |`* Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |  | | `* Re: addressing and protection, was Paper about ISO CThomas Koenig
||||      | |  | |  +* Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |  | |  |+* Re: addressing and protection, was Paper about ISO CStefan Monnier
||||      | |  | |  ||+- Re: addressing and protection, was Paper about ISO CChris M. Thomasson
||||      | |  | |  ||+* Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |  | |  |||`- Re: addressing and protection, was Paper about ISO CThomas Koenig
||||      | |  | |  ||+* Re: addressing and protection, was Paper about ISO CThomas Koenig
||||      | |  | |  |||`* Re: addressing and protection, was Paper about ISO CEricP
||||      | |  | |  ||| `- Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |  | |  ||`- Re: addressing and protection, was Paper about ISO CJohn Dallman
||||      | |  | |  |`- Re: addressing and protection, was Paper about ISO CThomas Koenig
||||      | |  | |  `* Re: addressing and protection, was Paper about ISO CIvan Godard
||||      | |  | |   +- Re: addressing and protection, was Paper about ISO CBGB
||||      | |  | |   `* Re: addressing and protection, was Paper about ISO CStephen Fuld
||||      | |  | |    +* Address space consumption (was: addressing and protection, was Paper about ISO CStefan Monnier
||||      | |  | |    |`- Re: Address space consumption (was: addressing and protection, wasMitchAlsup
||||      | |  | |    +* Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |  | |    |`- Re: addressing and protection, was Paper about ISO CThomas Koenig
||||      | |  | |    `* Re: addressing and protection, was Paper about ISO CGeorge Neuner
||||      | |  | |     `* Re: addressing and protection, was Paper about ISO CStephen Fuld
||||      | |  | |      +* Re: addressing and protection, was Paper about ISO CMichael S
||||      | |  | |      |`* Re: addressing and protection, was Paper about ISO CTerje Mathisen
||||      | |  | |      | `- Re: addressing and protection, was Paper about ISO CMichael S
||||      | |  | |      `* Re: addressing and protection, was Paper about ISO CStefan Monnier
||||      | |  | |       +* Re: addressing and protection, was Paper about ISO CBGB
||||      | |  | |       |`* Re: addressing and protection, was Paper about ISO CJohn Levine
||||      | |  | |       | +* Re: addressing and protection, was Paper about ISO CBGB
||||      | |  | |       | |`* Re: addressing and protection, was Paper about ISO CStephen Fuld
||||      | |  | |       | | `* Re: addressing and protection, was Paper about ISO CBGB
||||      | |  | |       | |  `* Re: addressing and protection, was Paper about ISO CJohn Levine
||||      | |  | |       | |   +- Re: addressing and protection, was Paper about ISO CBGB
||||      | |  | |       | |   +- Re: addressing and protection, was Paper about ISO Cclamky
||||      | |  | |       | |   `* Re: addressing and protection, was Paper about ISO CGeorge Neuner
||||      | |  | |       | |    +* Re: addressing and protection, was Paper about ISO CBGB
||||      | |  | |       | |    |`* Re: addressing and protection, was Paper about ISO CGeorge Neuner
||||      | |  | |       | |    | +* Re: addressing and protection, was Paper about ISO CBGB
||||      | |  | |       | |    | |+* Re: addressing and protection, was Paper about ISO CIvan Godard
||||      | |  | |       | |    | ||+* Re: educational computation, was addressing and protection, was Paper about ISO John Levine
||||      | |  | |       | |    | |||`* Re: educational computation, was addressing and protection, was PaperIvan Godard
||||      | |  | |       | |    | ||| `- Re: educational computation, was addressing and protection, was PaperTerje Mathisen
||||      | |  | |       | |    | ||`* Re: addressing and protection, was Paper about ISO CBGB
||||      | |  | |       | |    | || `* Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |  | |       | |    | ||  +- Re: addressing and protection, was Paper about ISO CBGB
||||      | |  | |       | |    | ||  `- Re: addressing and protection, was Paper about ISO CDavid Brown
||||      | |  | |       | |    | |+- Re: addressing and protection, was Paper about ISO CBGB
||||      | |  | |       | |    | |`* Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |  | |       | |    | | +* Re: addressing and protection, was Paper about ISO CBGB
||||      | |  | |       | |    | | |+- Re: addressing and protection, was Paper about ISO CIvan Godard
||||      | |  | |       | |    | | |`* Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |  | |       | |    | | | +* Re: addressing and protection, was Paper about ISO CIvan Godard
||||      | |  | |       | |    | | | |+* Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |  | |       | |    | | | ||`- Re: addressing and protection, was Paper about ISO CJimBrakefield
||||      | |  | |       | |    | | | |`* Re: addressing and protection, was Paper about ISO CTerje Mathisen
||||      | |  | |       | |    | | | | `* Re: addressing and protection, was Paper about ISO CTim Rentsch
||||      | |  | |       | |    | | | |  `- Re: addressing and protection, was Paper about ISO CTerje Mathisen
||||      | |  | |       | |    | | | +* Re: addressing and protection, was Paper about ISO CBGB
||||      | |  | |       | |    | | | `- Re: addressing and protection, was Paper about ISO CTerje Mathisen
||||      | |  | |       | |    | | `- Re: addressing and protection, was Paper about ISO CAnne & Lynn Wheeler
||||      | |  | |       | |    | `- Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |  | |       | |    `* Re: what is cheap these days, addressing and protection, was Paper about ISO CJohn Levine
||||      | |  | |       | +* Re: addressing and protection, was Paper about ISO CStephen Fuld
||||      | |  | |       | +* Re: addressing and protection, was Paper about ISO CMichael S
||||      | |  | |       | `* Re: addressing and protection, was Paper about ISO CMichael S
||||      | |  | |       +* RAM size (was: addressing and protection, was Paper about ISO C)Anton Ertl
||||      | |  | |       `- Re: addressing and protection, was Paper about ISO CTerje Mathisen
||||      | |  | +* Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |  | `* Re: addressing and protection, was Paper about ISO CJohn Levine
||||      | |  +* Re: addressing and protection, was Paper about ISO CMitchAlsup
||||      | |  `* Re: addressing and protection, was Paper about ISO CJohn Levine
||||      | `* Re: Paper about ISO CBGB
||||      `- Re: Paper about ISO CEricP
|||+* Re: Paper about ISO CBranimir Maksimovic
|||+* Re: Paper about ISO CThomas Koenig
|||+* Re: Paper about ISO Cantispam
|||`- Re: Paper about ISO CQuadibloc
||+* Re: Paper about ISO CThomas Koenig
||`* Re: Paper about ISO CDavid Brown
|+* Re: Paper about ISO CThomas Koenig
|`* Re: Paper about ISO CVictor Yodaiken
`* Re: Paper about ISO CKent Dickey

Pages:123456789101112131415161718192021222324252627282930313233
Re: Paper about ISO C

<sju5f0$tpe$1@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!paganini.bofh.team!news.dns-netz.com!news.freedyn.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-2fa2-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Paper about ISO C
Date: Sun, 10 Oct 2021 07:41:20 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <sju5f0$tpe$1@newsreader4.netcologne.de>
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me>
<sjnmcp$630$1@dont-email.me>
<ca22ba8c-2f32-4999-a2d0-edde18d97a24n@googlegroups.com>
<967daf46-d627-4db5-9e5f-0584ac00a539n@googlegroups.com>
<jlN7J.12573$fZ.8007@fx06.iad> <c0nvlg9c4v1u2m4t9601rb02u7i6g1b3pg@4ax.com>
<aTZ7J.138342$F26.9781@fx44.iad> <sjprtg$259$1@dont-email.me>
<E0%7J.9319$7U3.7165@fx24.iad>
<2aab69d6-197a-4c3d-ba4c-0ac9c84a51fen@googlegroups.com>
<sjqfoo$9ef$1@dont-email.me> <sjrckv$jdf$1@dont-email.me>
<sjrhjd$d15$1@dont-email.me> <sjsai8$djl$1@dont-email.me>
<sjtgpq$l2r$1@dont-email.me> <sjtr82$riu$1@dont-email.me>
Injection-Date: Sun, 10 Oct 2021 07:41:20 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-2fa2-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:2fa2:0:7285:c2ff:fe6c:992d";
logging-data="30510"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sun, 10 Oct 2021 07:41 UTC

Ivan Godard <ivan@millcomputing.com> schrieb:

>> IIRC, Mill was using a capability architecture or something?...
>
> I wish! But no, it's grant based, because fat pointers are not viable in
> the market IMO.

Would the 128-bit pointers of System i qualify as fat pointers under
your definition?

Re: Paper about ISO C

<sju7jv$ss4$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: Paper about ISO C
Date: Sun, 10 Oct 2021 01:18:07 -0700
Organization: A noiseless patient Spider
Lines: 30
Message-ID: <sju7jv$ss4$1@dont-email.me>
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me>
<sjnmcp$630$1@dont-email.me>
<ca22ba8c-2f32-4999-a2d0-edde18d97a24n@googlegroups.com>
<967daf46-d627-4db5-9e5f-0584ac00a539n@googlegroups.com>
<jlN7J.12573$fZ.8007@fx06.iad> <c0nvlg9c4v1u2m4t9601rb02u7i6g1b3pg@4ax.com>
<aTZ7J.138342$F26.9781@fx44.iad> <sjprtg$259$1@dont-email.me>
<E0%7J.9319$7U3.7165@fx24.iad>
<2aab69d6-197a-4c3d-ba4c-0ac9c84a51fen@googlegroups.com>
<sjqfoo$9ef$1@dont-email.me> <sjrckv$jdf$1@dont-email.me>
<sjrhjd$d15$1@dont-email.me> <sjsai8$djl$1@dont-email.me>
<sjtgpq$l2r$1@dont-email.me> <sjtr82$riu$1@dont-email.me>
<sju5f0$tpe$1@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 10 Oct 2021 08:18:07 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="0a7eabdc837b4f04956294afc75ac93a";
logging-data="29572"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18zegZxt5TH2u8h6bBRaimg"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.14.0
Cancel-Lock: sha1:6B3U7XF1o7jY3KIOHkPCpx7lzv8=
In-Reply-To: <sju5f0$tpe$1@newsreader4.netcologne.de>
Content-Language: en-US
 by: Ivan Godard - Sun, 10 Oct 2021 08:18 UTC

On 10/10/2021 12:41 AM, Thomas Koenig wrote:
> Ivan Godard <ivan@millcomputing.com> schrieb:
>
>>> IIRC, Mill was using a capability architecture or something?...
>>
>> I wish! But no, it's grant based, because fat pointers are not viable in
>> the market IMO.
>
> Would the 128-bit pointers of System i qualify as fat pointers under
> your definition?
>

Yes, but they are in a language system that is not trying to run legacy
decks that assumes 64-bit (or 32-bit) pointers. And they have IBM
marketing :-)

I don't know what System i does with a large C program fresh off gitHub.
Do you? The Unisys solution was to sandbox the whole thing, with no
internal protection at all.

CHERI is an interesting alternative to fat pointers. In the early days
of what became Mill we came up with a similar approach to theirs. The
(perhaps overhasty) conclusion was that we could get within a factor of
two of a legacy system performance, but not much better. The security
advantages would be a win; the reprogramming of data structures to fit
the changed sizes would be a lose.

The realization that protection could be divorced from mapping and hence
a grant system with skinny pointers could have legacy-like performance
or better but fat-pointer security made up our minds.

Re: Paper about ISO C

<sjuat0$gk$1@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-2fa2-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Paper about ISO C
Date: Sun, 10 Oct 2021 09:14:08 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <sjuat0$gk$1@newsreader4.netcologne.de>
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me>
<sjnmcp$630$1@dont-email.me>
<ca22ba8c-2f32-4999-a2d0-edde18d97a24n@googlegroups.com>
<967daf46-d627-4db5-9e5f-0584ac00a539n@googlegroups.com>
<jlN7J.12573$fZ.8007@fx06.iad> <c0nvlg9c4v1u2m4t9601rb02u7i6g1b3pg@4ax.com>
<aTZ7J.138342$F26.9781@fx44.iad> <sjprtg$259$1@dont-email.me>
<E0%7J.9319$7U3.7165@fx24.iad>
<2aab69d6-197a-4c3d-ba4c-0ac9c84a51fen@googlegroups.com>
<sjqfoo$9ef$1@dont-email.me> <sjrckv$jdf$1@dont-email.me>
<sjrhjd$d15$1@dont-email.me> <sjsai8$djl$1@dont-email.me>
<sjtgpq$l2r$1@dont-email.me> <sjtr82$riu$1@dont-email.me>
<sju5f0$tpe$1@newsreader4.netcologne.de> <sju7jv$ss4$1@dont-email.me>
Injection-Date: Sun, 10 Oct 2021 09:14:08 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-2fa2-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:2fa2:0:7285:c2ff:fe6c:992d";
logging-data="532"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sun, 10 Oct 2021 09:14 UTC

Ivan Godard <ivan@millcomputing.com> schrieb:
> On 10/10/2021 12:41 AM, Thomas Koenig wrote:
>> Ivan Godard <ivan@millcomputing.com> schrieb:
>>
>>>> IIRC, Mill was using a capability architecture or something?...
>>>
>>> I wish! But no, it's grant based, because fat pointers are not viable in
>>> the market IMO.
>>
>> Would the 128-bit pointers of System i qualify as fat pointers under
>> your definition?
>>
>
> Yes, but they are in a language system that is not trying to run legacy
> decks that assumes 64-bit (or 32-bit) pointers. And they have IBM
> marketing :-)

And they have binary compatiblity with applications from the 1980s.

>
> I don't know what System i does with a large C program fresh off gitHub.
> Do you?

Unfortunately not. They have some open source support as claimed
in https://www.ibm.com/support/pages/open-source-support-ibm-i so
you could run Perl and PHP if you wanted to. There is also a
C compiler. It is likely that source off github would fall
down due to EBCDIC to start with :-)

Re: Paper about ISO C

<sjugcv$jio$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: david.br...@hesbynett.no (David Brown)
Newsgroups: comp.arch
Subject: Re: Paper about ISO C
Date: Sun, 10 Oct 2021 12:47:59 +0200
Organization: A noiseless patient Spider
Lines: 49
Message-ID: <sjugcv$jio$1@dont-email.me>
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me>
<afb9352d-8ba7-4521-b741-280e0206e255n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 10 Oct 2021 10:47:59 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="c119340b1063c235e2f3a5becd07c2a8";
logging-data="20056"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19cAtjKZfStZ073K7vmHIz6COex8KG7uVM="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:bebHeVv7p110I1eKu26futgDM74=
In-Reply-To: <afb9352d-8ba7-4521-b741-280e0206e255n@googlegroups.com>
Content-Language: en-GB
 by: David Brown - Sun, 10 Oct 2021 10:47 UTC

On 10/10/2021 03:02, Victor Yodaiken wrote:
> On Thursday, October 7, 2021 at 2:35:29 PM UTC-5, David Brown wrote:
>
>> As I got further in the document, it seems to be just another "the
>> compiler should do what I want it to do, not necessarily what I /told/
>> it to do" rant. "C today should work the way /I/ want it to do - the
>> way /I/ interpret the precise wording of what someone decades ago".
>> "Thompson and Ritchie were saints and prophets, and their words were
>> holy and eternal - regardless of how computers, languages, and
>> programming needs have changed since the inception of C". "We were all
>> happy and no bugs existed in code until gcc sinned by optimising code,
>> and we were thrown out of Eden into a hell of undefined behaviour".
>> "Yes, we know that compilers often give us ways to get the semantics we
>> want by specific flags, but that's not good enough - everyone else
>> should get slower code so that we don't have to think as much or follow
>> the rules of the language".
>
>
> Of course the paper doesn't make an argument anything like that nor does it make the assembler claims
> you start with. It is hard to believe anyone could read the
> paper and get such a weird take from it.
>

The idea of C being a "high-level assembler" is right there in section
1, "Introduction".

Yes, I exaggerated somewhat, and clearly I was parodying and note
quoting. However, that /is/ the impression I got from the paper. I'm
sorry, but you appear to have some serious misunderstandings about the C
language, its tools, how it was originally intended to be used, how it
developed as a language, how its tools developed, and how its use
developed. The very title, "How ISO C became unusable for operating
systems development" shows that - C was /never/ intended or designed to
let you write operating systems purely in standard portable C. The
intention - which was achieved, and is still the case today - was that
you could write /most/ of the OS in at least reasonably portable C,
relying somewhat on implementation-dependent behaviour in parts.

And if you look at OS's today, that's what you see. Whether you look at
massive OS's like BSD or Linux, or small ones like FreeRTOS, you'll see
the great majority is written in plain standards-defined C. Some parts
are unavoidably written in assembly (either inline or stand-alone), some
parts are dependent on implementation details for the targets supported,
and sometimes the writers take advantage of compiler extensions or
features in order to write code that is more efficient, clearer, or
otherwise better than standard C alone.

Some details have changed since C's inception, but the principles have not.

Re: Paper about ISO C

<6f3c0d78-a0b1-4220-8b37-bdbaec17bc0bn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a0c:ef4b:: with SMTP id t11mr2445814qvs.48.1633874235869;
Sun, 10 Oct 2021 06:57:15 -0700 (PDT)
X-Received: by 2002:a05:6830:3190:: with SMTP id p16mr16651769ots.85.1633874235624;
Sun, 10 Oct 2021 06:57:15 -0700 (PDT)
Path: rocksolid2!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 10 Oct 2021 06:57:15 -0700 (PDT)
In-Reply-To: <1btuhpfyoo.fsf@pfeifferfamily.net>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:a04c:e5b9:d39:d382;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:a04c:e5b9:d39:d382
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me>
<sjnmcp$630$1@dont-email.me> <ca22ba8c-2f32-4999-a2d0-edde18d97a24n@googlegroups.com>
<sjomcf$9nv$2@newsreader4.netcologne.de> <1btuhpfyoo.fsf@pfeifferfamily.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6f3c0d78-a0b1-4220-8b37-bdbaec17bc0bn@googlegroups.com>
Subject: Re: Paper about ISO C
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sun, 10 Oct 2021 13:57:15 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 18
 by: MitchAlsup - Sun, 10 Oct 2021 13:57 UTC

On Saturday, October 9, 2021 at 8:36:41 PM UTC-5, Joe Pfeiffer wrote:
> Thomas Koenig <tko...@netcologne.de> writes:
>
> > MitchAlsup <Mitch...@aol.com> schrieb:
> >
> >> It is much like handling fiearms::
> >><
> >> 1) all pointers are loaded at all times unless verified they are not.
> >> 2) never point a pointer at something you do not want destroyed.
> >> 3) never enable a pointer until your sights are on the target
> >><
> >> 4) There is NO SUCH THING as a casual pointer.
> >
> > I _love_ that.
>
> Number 2 is particularly awesome.
> Mind if I put it on Facebook (with attribution, of course)?
<
Be my guest, I wrote that extemporaneously.

Re: addressing and protection, was Paper about ISO C

<LPC8J.32586$PE4.19@fx11.iad>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!aioe.org!news.uzoreto.com!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx11.iad.POSTED!not-for-mail
From: ThatWoul...@thevillage.com (EricP)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
Newsgroups: comp.arch
Subject: Re: addressing and protection, was Paper about ISO C
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me> <sjnmcp$630$1@dont-email.me> <ca22ba8c-2f32-4999-a2d0-edde18d97a24n@googlegroups.com> <967daf46-d627-4db5-9e5f-0584ac00a539n@googlegroups.com> <jlN7J.12573$fZ.8007@fx06.iad> <c0nvlg9c4v1u2m4t9601rb02u7i6g1b3pg@4ax.com> <aTZ7J.138342$F26.9781@fx44.iad> <sjprtg$259$1@dont-email.me> <E0%7J.9319$7U3.7165@fx24.iad> <2aab69d6-197a-4c3d-ba4c-0ac9c84a51fen@googlegroups.com> <sjqfoo$9ef$1@dont-email.me> <sjrckv$jdf$1@dont-email.me> <sjrgir$5v7$1@dont-email.me>
In-Reply-To: <sjrgir$5v7$1@dont-email.me>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 36
Message-ID: <LPC8J.32586$PE4.19@fx11.iad>
X-Complaints-To: abuse@UsenetServer.com
NNTP-Posting-Date: Sun, 10 Oct 2021 14:32:11 UTC
Date: Sun, 10 Oct 2021 10:31:28 -0400
X-Received-Bytes: 2817
 by: EricP - Sun, 10 Oct 2021 14:31 UTC

Ivan Godard wrote:
> On 10/8/2021 11:25 PM, Stephen Fuld wrote:
>>
>> OK. This is generally called "Single Address Space". This is used by
>> such systems as the IBM System i, and the Mill.
>>
>>> Granted, this does have the (fairly obvious) property that most
>>> traditional schemes for memory protection, ..., kinda go out the
>>> window when one has multiple logical processes within the same
>>> address space (as do the traditional distinctions between threads and
>>> processes).
>>
>> Not necessarily. Just because multiple logical processes exist within
>> the same address space, doesn't mean that each process has legal
>> access to all the addresses within that space.
>
> An address space tells you what you can name; a protection domain tells
> you whether naming it does you any good.

What exactly is the distinction between a single address space
with page protection that allows multiple threads in that address space
access to some of those pages, and multiple address spaces with multiple
threads that allows access to some of those pages.

Because it sure sounds like the difference is just whether or not there is
a page-table-base pointer change on process switch, and if the TLB
supports ASID's Address Space ID's then there is no performance difference.

In other words, one page table with PTE's with fancy per-thread protection
keys that change when threads switch, is the same as multiple page tables
with PTE's with simple protection that map different memory sections.

Where is the functional distinction?
What can one do that the other can't?

Re: addressing and protection, was Paper about ISO C

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

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: monn...@iro.umontreal.ca (Stefan Monnier)
Newsgroups: comp.arch
Subject: Re: addressing and protection, was Paper about ISO C
Date: Sun, 10 Oct 2021 10:40:46 -0400
Organization: A noiseless patient Spider
Lines: 13
Message-ID: <jwvo87xueth.fsf-monnier+comp.arch@gnu.org>
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me>
<sjnmcp$630$1@dont-email.me>
<ca22ba8c-2f32-4999-a2d0-edde18d97a24n@googlegroups.com>
<967daf46-d627-4db5-9e5f-0584ac00a539n@googlegroups.com>
<jlN7J.12573$fZ.8007@fx06.iad>
<c0nvlg9c4v1u2m4t9601rb02u7i6g1b3pg@4ax.com>
<aTZ7J.138342$F26.9781@fx44.iad> <sjprtg$259$1@dont-email.me>
<E0%7J.9319$7U3.7165@fx24.iad>
<2aab69d6-197a-4c3d-ba4c-0ac9c84a51fen@googlegroups.com>
<sjqfoo$9ef$1@dont-email.me> <sjrckv$jdf$1@dont-email.me>
<sjrgir$5v7$1@dont-email.me> <LPC8J.32586$PE4.19@fx11.iad>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="c2292f78f3a562fd0eb3972887b7f7d4";
logging-data="16028"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+SabI0e4EYOb7IFCUif7pz"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
Cancel-Lock: sha1:gxhjnRK0RAEVloxa7Ijoxx6IykQ=
sha1:kFd6N0PjxjgO8rkHGdjPfA2aauo=
 by: Stefan Monnier - Sun, 10 Oct 2021 14:40 UTC

> What exactly is the distinction between a single address space
> with page protection that allows multiple threads in that address space
> access to some of those pages, and multiple address spaces with multiple
> threads that allows access to some of those pages.

The L1 cache can be indexed and tagged by logical addresses and only needs
to check access rights (which can be spread over many cycles as long as
the answer comes before the corresponding instruction is committed)
rather than having to check address mappings as well (which can only be
spread until the moment that the cache line's tag is checked).

Stefan

Re: addressing and protection, was Paper about ISO C

<sjuvp5$u65$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: addressing and protection, was Paper about ISO C
Date: Sun, 10 Oct 2021 08:10:30 -0700
Organization: A noiseless patient Spider
Lines: 44
Message-ID: <sjuvp5$u65$1@dont-email.me>
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me>
<sjnmcp$630$1@dont-email.me>
<ca22ba8c-2f32-4999-a2d0-edde18d97a24n@googlegroups.com>
<967daf46-d627-4db5-9e5f-0584ac00a539n@googlegroups.com>
<jlN7J.12573$fZ.8007@fx06.iad> <c0nvlg9c4v1u2m4t9601rb02u7i6g1b3pg@4ax.com>
<aTZ7J.138342$F26.9781@fx44.iad> <sjprtg$259$1@dont-email.me>
<E0%7J.9319$7U3.7165@fx24.iad>
<2aab69d6-197a-4c3d-ba4c-0ac9c84a51fen@googlegroups.com>
<sjqfoo$9ef$1@dont-email.me> <sjrckv$jdf$1@dont-email.me>
<sjrgir$5v7$1@dont-email.me> <LPC8J.32586$PE4.19@fx11.iad>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 10 Oct 2021 15:10:29 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="0a7eabdc837b4f04956294afc75ac93a";
logging-data="30917"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX199eROlFO/kCSLGoi1fRvHx"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.14.0
Cancel-Lock: sha1:ugbpf9TdtRwL7ulauYrQQ1b3FLg=
In-Reply-To: <LPC8J.32586$PE4.19@fx11.iad>
Content-Language: en-US
 by: Ivan Godard - Sun, 10 Oct 2021 15:10 UTC

On 10/10/2021 7:31 AM, EricP wrote:
> Ivan Godard wrote:
>> On 10/8/2021 11:25 PM, Stephen Fuld wrote:
>>>
>>> OK.  This is generally called "Single Address Space".  This is used
>>> by such systems as the IBM System i, and the Mill.
>>>
>>>> Granted, this does have the (fairly obvious) property that most
>>>> traditional schemes for memory protection, ..., kinda go out the
>>>> window when one has multiple logical processes within the same
>>>> address space (as do the traditional distinctions between threads
>>>> and processes).
>>>
>>> Not necessarily.  Just because multiple logical processes exist
>>> within the same address space, doesn't mean that each process has
>>> legal access to all the addresses within that space.
>>
>> An address space tells you what you can name; a protection domain
>> tells you whether naming it does you any good.
>
> What exactly is the distinction between a single address space
> with page protection that allows multiple threads in that address space
> access to some of those pages, and multiple address spaces with multiple
> threads that allows access to some of those pages.
>
> Because it sure sounds like the difference is just whether or not there is
> a page-table-base pointer change on process switch, and if the TLB
> supports ASID's Address Space ID's then there is no performance difference.
>
> In other words, one page table with PTE's with fancy per-thread protection
> keys that change when threads switch, is the same as multiple page tables
> with PTE's with simple protection that map different memory sections.
>
> Where is the functional distinction?
> What can one do that the other can't?

A single address space permits VMAX (typically 2^64) of virtual total,
system wide, for all processes. A multiple address space permits TMAX
(typically 2^16 or so)*VMAX total of virtual, system wide.

That's the historical reason that mapping is used: so a 16-bit system
could have more that 16 bits worth of combined system and appp code
running. 64-bit spaces are not (yet) constraining enough to need
multiple spaces..

Re: addressing and protection, was Paper about ISO C

<27E8J.60359$nR3.33878@fx38.iad>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!news.neodome.net!2.eu.feeder.erje.net!feeder.erje.net!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx38.iad.POSTED!not-for-mail
From: ThatWoul...@thevillage.com (EricP)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
Newsgroups: comp.arch
Subject: Re: addressing and protection, was Paper about ISO C
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me> <sjnmcp$630$1@dont-email.me> <ca22ba8c-2f32-4999-a2d0-edde18d97a24n@googlegroups.com> <967daf46-d627-4db5-9e5f-0584ac00a539n@googlegroups.com> <jlN7J.12573$fZ.8007@fx06.iad> <c0nvlg9c4v1u2m4t9601rb02u7i6g1b3pg@4ax.com> <aTZ7J.138342$F26.9781@fx44.iad> <sjprtg$259$1@dont-email.me> <E0%7J.9319$7U3.7165@fx24.iad> <2aab69d6-197a-4c3d-ba4c-0ac9c84a51fen@googlegroups.com> <sjqfoo$9ef$1@dont-email.me> <sjrckv$jdf$1@dont-email.me> <sjrgir$5v7$1@dont-email.me> <LPC8J.32586$PE4.19@fx11.iad> <jwvo87xueth.fsf-monnier+comp.arch@gnu.org>
In-Reply-To: <jwvo87xueth.fsf-monnier+comp.arch@gnu.org>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 21
Message-ID: <27E8J.60359$nR3.33878@fx38.iad>
X-Complaints-To: abuse@UsenetServer.com
NNTP-Posting-Date: Sun, 10 Oct 2021 16:01:02 UTC
Date: Sun, 10 Oct 2021 12:00:48 -0400
X-Received-Bytes: 2239
 by: EricP - Sun, 10 Oct 2021 16:00 UTC

Stefan Monnier wrote:
>> What exactly is the distinction between a single address space
>> with page protection that allows multiple threads in that address space
>> access to some of those pages, and multiple address spaces with multiple
>> threads that allows access to some of those pages.
>
> The L1 cache can be indexed and tagged by logical addresses and only needs
> to check access rights (which can be spread over many cycles as long as
> the answer comes before the corresponding instruction is committed)
> rather than having to check address mappings as well (which can only be
> spread until the moment that the cache line's tag is checked).
>
>
> Stefan

As Meltdown shows, once information that should not be accessible
escapes a security domain it can be extremely difficult to track
down and retract all information that begets from it,
and things like power fluctuations are impossible to retract.

Re: addressing and protection, was Paper about ISO C

<sjv4u6$37u$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!news.neodome.net!3.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: cr88...@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: addressing and protection, was Paper about ISO C
Date: Sun, 10 Oct 2021 11:38:25 -0500
Organization: A noiseless patient Spider
Lines: 92
Message-ID: <sjv4u6$37u$1@dont-email.me>
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me>
<sjnmcp$630$1@dont-email.me>
<ca22ba8c-2f32-4999-a2d0-edde18d97a24n@googlegroups.com>
<967daf46-d627-4db5-9e5f-0584ac00a539n@googlegroups.com>
<jlN7J.12573$fZ.8007@fx06.iad> <c0nvlg9c4v1u2m4t9601rb02u7i6g1b3pg@4ax.com>
<aTZ7J.138342$F26.9781@fx44.iad> <sjprtg$259$1@dont-email.me>
<E0%7J.9319$7U3.7165@fx24.iad>
<2aab69d6-197a-4c3d-ba4c-0ac9c84a51fen@googlegroups.com>
<sjqfoo$9ef$1@dont-email.me> <sjrckv$jdf$1@dont-email.me>
<sjrgir$5v7$1@dont-email.me> <LPC8J.32586$PE4.19@fx11.iad>
<sjuvp5$u65$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 10 Oct 2021 16:38:30 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="4849fb37e647683af19c4c339cd968fb";
logging-data="3326"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/3vylXBruUkTQHQcV3dq8H"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.2.0
Cancel-Lock: sha1:gVar3UP3aqsquc9KjRozWAsMqiQ=
In-Reply-To: <sjuvp5$u65$1@dont-email.me>
Content-Language: en-US
 by: BGB - Sun, 10 Oct 2021 16:38 UTC

On 10/10/2021 10:10 AM, Ivan Godard wrote:
> On 10/10/2021 7:31 AM, EricP wrote:
>> Ivan Godard wrote:
>>> On 10/8/2021 11:25 PM, Stephen Fuld wrote:
>>>>
>>>> OK.  This is generally called "Single Address Space".  This is used
>>>> by such systems as the IBM System i, and the Mill.
>>>>
>>>>> Granted, this does have the (fairly obvious) property that most
>>>>> traditional schemes for memory protection, ..., kinda go out the
>>>>> window when one has multiple logical processes within the same
>>>>> address space (as do the traditional distinctions between threads
>>>>> and processes).
>>>>
>>>> Not necessarily.  Just because multiple logical processes exist
>>>> within the same address space, doesn't mean that each process has
>>>> legal access to all the addresses within that space.
>>>
>>> An address space tells you what you can name; a protection domain
>>> tells you whether naming it does you any good.
>>
>> What exactly is the distinction between a single address space
>> with page protection that allows multiple threads in that address space
>> access to some of those pages, and multiple address spaces with multiple
>> threads that allows access to some of those pages.
>>
>> Because it sure sounds like the difference is just whether or not
>> there is
>> a page-table-base pointer change on process switch, and if the TLB
>> supports ASID's Address Space ID's then there is no performance
>> difference.
>>
>> In other words, one page table with PTE's with fancy per-thread
>> protection
>> keys that change when threads switch, is the same as multiple page tables
>> with PTE's with simple protection that map different memory sections.
>>
>> Where is the functional distinction?
>> What can one do that the other can't?
>
> A single address space permits VMAX (typically 2^64) of virtual total,
> system wide, for all processes. A multiple address space permits TMAX
> (typically 2^16 or so)*VMAX total of virtual, system wide.
>
> That's the historical reason that mapping is used: so a 16-bit system
> could have more that 16 bits worth of combined system and appp code
> running. 64-bit spaces are not (yet) constraining enough to need
> multiple spaces..

Yeah:
16-bits, pretty much everything will need multiple spaces
Even the first 8088/8086 PCs were already using 'far' pointers.
32-bits, could comfortably fit one program
Maybe several of them, if they are "fairly modest"
48 or 64 bits, could likely fit thousands of program instances.
96 or 128 bits, limit would be implausibly large...

This is excluding programs which reserve absurdly large address ranges
"because they can", but I consider this to be an aberration rather than
something which should be encouraged.

One does need to design the C ABI to be aware of the possibility of
multiple program instances in a single address space. For my ISA, I
ended up with a design I call PBO, which effectively accesses globals
via GBR (Global Base Register), and has a scheme by which one can get
from one GBR within a given process to any other GBR within the process
with a series of two memory loads.

Another scheme was ELF FDPIC, which can be used in a similar way. It
works by using multiple pointers for functions in the GOT, with the
target GOT being loaded from the current GOT on every function call.

The big drawback of FDPIC is that it has higher overheads:
All function calls need several additional pointer loads, ...
All global loads/stores need to be done indirectly via the GOT;
...

Though, looking at it, for an ISA design like RISC-V, something like
FDPIC would make more sense than PBO for the main reason that the ISA
lacks any real "sane" way to encode Load/Store displacements larger than
4kB. So, in effect, the cost of accessing globals via a GOT is likely to
be less than the cost of composing the large-displacement load/stores
needed for something like PBO.

Though, admittedly, I personally feel this is a design flaw in the
RISC-V ISA, rather than any particular merit to FDPIC.

....

Re: addressing and protection, was Paper about ISO C

<3789ed37-18c9-4f40-bab8-7ee162d1d8f6n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:1e06:: with SMTP id n6mr9849965qtl.365.1633885049156;
Sun, 10 Oct 2021 09:57:29 -0700 (PDT)
X-Received: by 2002:a9d:384:: with SMTP id f4mr17034111otf.94.1633885048941;
Sun, 10 Oct 2021 09:57:28 -0700 (PDT)
Path: rocksolid2!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 10 Oct 2021 09:57:28 -0700 (PDT)
In-Reply-To: <sjuvp5$u65$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:a04c:e5b9:d39:d382;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:a04c:e5b9:d39:d382
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me>
<sjnmcp$630$1@dont-email.me> <ca22ba8c-2f32-4999-a2d0-edde18d97a24n@googlegroups.com>
<967daf46-d627-4db5-9e5f-0584ac00a539n@googlegroups.com> <jlN7J.12573$fZ.8007@fx06.iad>
<c0nvlg9c4v1u2m4t9601rb02u7i6g1b3pg@4ax.com> <aTZ7J.138342$F26.9781@fx44.iad>
<sjprtg$259$1@dont-email.me> <E0%7J.9319$7U3.7165@fx24.iad>
<2aab69d6-197a-4c3d-ba4c-0ac9c84a51fen@googlegroups.com> <sjqfoo$9ef$1@dont-email.me>
<sjrckv$jdf$1@dont-email.me> <sjrgir$5v7$1@dont-email.me> <LPC8J.32586$PE4.19@fx11.iad>
<sjuvp5$u65$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3789ed37-18c9-4f40-bab8-7ee162d1d8f6n@googlegroups.com>
Subject: Re: addressing and protection, was Paper about ISO C
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sun, 10 Oct 2021 16:57:29 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 75
 by: MitchAlsup - Sun, 10 Oct 2021 16:57 UTC

On Sunday, October 10, 2021 at 10:10:31 AM UTC-5, Ivan Godard wrote:
> On 10/10/2021 7:31 AM, EricP wrote:
> > Ivan Godard wrote:
> >> On 10/8/2021 11:25 PM, Stephen Fuld wrote:
> >>>
> >>> OK. This is generally called "Single Address Space". This is used
> >>> by such systems as the IBM System i, and the Mill.
> >>>
> >>>> Granted, this does have the (fairly obvious) property that most
> >>>> traditional schemes for memory protection, ..., kinda go out the
> >>>> window when one has multiple logical processes within the same
> >>>> address space (as do the traditional distinctions between threads
> >>>> and processes).
> >>>
> >>> Not necessarily. Just because multiple logical processes exist
> >>> within the same address space, doesn't mean that each process has
> >>> legal access to all the addresses within that space.
> >>
> >> An address space tells you what you can name; a protection domain
> >> tells you whether naming it does you any good.
> >
> > What exactly is the distinction between a single address space
> > with page protection that allows multiple threads in that address space
> > access to some of those pages, and multiple address spaces with multiple
> > threads that allows access to some of those pages.
> >
> > Because it sure sounds like the difference is just whether or not there is
> > a page-table-base pointer change on process switch, and if the TLB
> > supports ASID's Address Space ID's then there is no performance difference.
> >
> > In other words, one page table with PTE's with fancy per-thread protection
> > keys that change when threads switch, is the same as multiple page tables
> > with PTE's with simple protection that map different memory sections.
> >
> > Where is the functional distinction?
> > What can one do that the other can't?
<
> A single address space permits VMAX (typically 2^64) of virtual total,
> system wide, for all processes. A multiple address space permits TMAX
> (typically 2^16 or so)*VMAX total of virtual, system wide.
<
Mc 88200 supported 2×VMAX {code and data could be in different VASs.}
Nobody used it that way.
Everybody used it as ½×VMAX {lower ½ was user upper ½ was supervisor}.
>
> That's the historical reason that mapping is used: so a 16-bit system
> could have more that 16 bits worth of combined system and appp code
> running. 64-bit spaces are not (yet) constraining enough to need
> multiple spaces..
<
PDP-11/70 had 16-bit user code+data and 16-bit supervisor code+data VASs.
And LD-From and ST-To instructions access.
<
I am coming around to this means of accessing another VAS; indeed, this seems
to be the cleanest way to implement ADA rendezvous where the caller and the
acceptor can be in different address spaces, running at different priorities, on
different cores, possibly different machines (i.e., over a network).
<
Acceptor has access to the callers VAS+arguments and can write acceptor
results back to callers VAS+results.
<
About the only thing this does not provide is access across different virtual
machines--at least directly.

Re: addressing and protection, was Paper about ISO C

<22c97090-d07c-4819-a19b-e2e4761a3abfn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:40d5:: with SMTP id f21mr10297693qtm.265.1633886022140;
Sun, 10 Oct 2021 10:13:42 -0700 (PDT)
X-Received: by 2002:a9d:4c0c:: with SMTP id l12mr17603321otf.144.1633886021904;
Sun, 10 Oct 2021 10:13:41 -0700 (PDT)
Path: rocksolid2!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 10 Oct 2021 10:13:41 -0700 (PDT)
In-Reply-To: <sjv4u6$37u$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:a04c:e5b9:d39:d382;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:a04c:e5b9:d39:d382
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me>
<sjnmcp$630$1@dont-email.me> <ca22ba8c-2f32-4999-a2d0-edde18d97a24n@googlegroups.com>
<967daf46-d627-4db5-9e5f-0584ac00a539n@googlegroups.com> <jlN7J.12573$fZ.8007@fx06.iad>
<c0nvlg9c4v1u2m4t9601rb02u7i6g1b3pg@4ax.com> <aTZ7J.138342$F26.9781@fx44.iad>
<sjprtg$259$1@dont-email.me> <E0%7J.9319$7U3.7165@fx24.iad>
<2aab69d6-197a-4c3d-ba4c-0ac9c84a51fen@googlegroups.com> <sjqfoo$9ef$1@dont-email.me>
<sjrckv$jdf$1@dont-email.me> <sjrgir$5v7$1@dont-email.me> <LPC8J.32586$PE4.19@fx11.iad>
<sjuvp5$u65$1@dont-email.me> <sjv4u6$37u$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <22c97090-d07c-4819-a19b-e2e4761a3abfn@googlegroups.com>
Subject: Re: addressing and protection, was Paper about ISO C
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sun, 10 Oct 2021 17:13:42 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 89
 by: MitchAlsup - Sun, 10 Oct 2021 17:13 UTC

On Sunday, October 10, 2021 at 11:38:32 AM UTC-5, BGB wrote:
> On 10/10/2021 10:10 AM, Ivan Godard wrote:
> > On 10/10/2021 7:31 AM, EricP wrote:
> >> Ivan Godard wrote:
> >>> On 10/8/2021 11:25 PM, Stephen Fuld wrote:
> >>
> >> In other words, one page table with PTE's with fancy per-thread
> >> protection
> >> keys that change when threads switch, is the same as multiple page tables
> >> with PTE's with simple protection that map different memory sections.
> >>
> >> Where is the functional distinction?
> >> What can one do that the other can't?
> >
> > A single address space permits VMAX (typically 2^64) of virtual total,
> > system wide, for all processes. A multiple address space permits TMAX
> > (typically 2^16 or so)*VMAX total of virtual, system wide.
> >
> > That's the historical reason that mapping is used: so a 16-bit system
> > could have more that 16 bits worth of combined system and appp code
> > running. 64-bit spaces are not (yet) constraining enough to need
> > multiple spaces..
<
> Yeah:
> 16-bits, pretty much everything will need multiple spaces
> Even the first 8088/8086 PCs were already using 'far' pointers.
> 32-bits, could comfortably fit one program
> Maybe several of them, if they are "fairly modest"
> 48 or 64 bits, could likely fit thousands of program instances.
> 96 or 128 bits, limit would be implausibly large...
<
If we exclude designing NEW 16-bit address space machines (more because
the space is already filled and unlikely to make enough headway in cost/
perf to open up a new slot in that space) all we need to do is to not make
those kinds of mistakes in the machines we are designing now and into the
future.
>
> This is excluding programs which reserve absurdly large address ranges
> "because they can", but I consider this to be an aberration rather than
> something which should be encouraged.
>
One of the reasons My 66000 provides a complete 64-bit VAS is to allow
for what used to be absurdly large address ranges--for whatever SW wanted
to do with those.
>
> One does need to design the C ABI to be aware of the possibility of
> multiple program instances in a single address space. For my ISA, I
> ended up with a design I call PBO, which effectively accesses globals
> via GBR (Global Base Register), and has a scheme by which one can get
> from one GBR within a given process to any other GBR within the process
> with a series of two memory loads.
>
My 66000 is PIC and PID without using a register to keep track of "stuff".
{When R0 is used in the Base-register position of a memory reference IP is
substituted, and the rest of the tool chain understands the required mechanics}.
>
> Another scheme was ELF FDPIC, which can be used in a similar way. It
> works by using multiple pointers for functions in the GOT, with the
> target GOT being loaded from the current GOT on every function call.
>
My 66000 supports multiple GOTs also without consuming a register.
>
> The big drawback of FDPIC is that it has higher overheads:
> All function calls need several additional pointer loads, ...
> All global loads/stores need to be done indirectly via the GOT;
> ...
So, (as Ivan would say) don't do that !
<
My 66000 has tabularized function calls that neither waste a register nor
the delay through the LD-aligner and load a memory reference directly into
the IP. Suitable (higher end) HW can start the instruction fetch even BEFORE
the function call address gets to the IP !! Eliminating most of this overhead.
<
Global LDs and STs can use a 64-bit offset along with base (or IP) and
indexing in a single instruction.
>
>
> Though, looking at it, for an ISA design like RISC-V, something like
> FDPIC would make more sense than PBO for the main reason that the ISA
> lacks any real "sane" way to encode Load/Store displacements larger than
> 4kB. So, in effect, the cost of accessing globals via a GOT is likely to
> be less than the cost of composing the large-displacement load/stores
> needed for something like PBO.
>
> Though, admittedly, I personally feel this is a design flaw in the
> RISC-V ISA, rather than any particular merit to FDPIC.
>
I strongly agree with you that this is a big FLAW of RISC-V; maybe not major
but big, nonetheless.
> ...

Re: addressing and protection, was Paper about ISO C

<sjv9g7$40u$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: addressing and protection, was Paper about ISO C
Date: Sun, 10 Oct 2021 10:56:23 -0700
Organization: A noiseless patient Spider
Lines: 69
Message-ID: <sjv9g7$40u$1@dont-email.me>
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me>
<sjnmcp$630$1@dont-email.me>
<ca22ba8c-2f32-4999-a2d0-edde18d97a24n@googlegroups.com>
<967daf46-d627-4db5-9e5f-0584ac00a539n@googlegroups.com>
<jlN7J.12573$fZ.8007@fx06.iad> <c0nvlg9c4v1u2m4t9601rb02u7i6g1b3pg@4ax.com>
<aTZ7J.138342$F26.9781@fx44.iad> <sjprtg$259$1@dont-email.me>
<E0%7J.9319$7U3.7165@fx24.iad>
<2aab69d6-197a-4c3d-ba4c-0ac9c84a51fen@googlegroups.com>
<sjqfoo$9ef$1@dont-email.me> <sjrckv$jdf$1@dont-email.me>
<sjrgir$5v7$1@dont-email.me> <LPC8J.32586$PE4.19@fx11.iad>
<sjuvp5$u65$1@dont-email.me>
<3789ed37-18c9-4f40-bab8-7ee162d1d8f6n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 10 Oct 2021 17:56:23 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="0a7eabdc837b4f04956294afc75ac93a";
logging-data="4126"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+lrkAcyJfxEnLSU+lVS4Zq"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.14.0
Cancel-Lock: sha1:BM87Esjtw504UGxsORJBoXXCW6k=
In-Reply-To: <3789ed37-18c9-4f40-bab8-7ee162d1d8f6n@googlegroups.com>
Content-Language: en-US
 by: Ivan Godard - Sun, 10 Oct 2021 17:56 UTC

On 10/10/2021 9:57 AM, MitchAlsup wrote:
> On Sunday, October 10, 2021 at 10:10:31 AM UTC-5, Ivan Godard wrote:
>> On 10/10/2021 7:31 AM, EricP wrote:
>>> Ivan Godard wrote:
>>>> On 10/8/2021 11:25 PM, Stephen Fuld wrote:
>>>>>
>>>>> OK. This is generally called "Single Address Space". This is used
>>>>> by such systems as the IBM System i, and the Mill.
>>>>>
>>>>>> Granted, this does have the (fairly obvious) property that most
>>>>>> traditional schemes for memory protection, ..., kinda go out the
>>>>>> window when one has multiple logical processes within the same
>>>>>> address space (as do the traditional distinctions between threads
>>>>>> and processes).
>>>>>
>>>>> Not necessarily. Just because multiple logical processes exist
>>>>> within the same address space, doesn't mean that each process has
>>>>> legal access to all the addresses within that space.
>>>>
>>>> An address space tells you what you can name; a protection domain
>>>> tells you whether naming it does you any good.
>>>
>>> What exactly is the distinction between a single address space
>>> with page protection that allows multiple threads in that address space
>>> access to some of those pages, and multiple address spaces with multiple
>>> threads that allows access to some of those pages.
>>>
>>> Because it sure sounds like the difference is just whether or not there is
>>> a page-table-base pointer change on process switch, and if the TLB
>>> supports ASID's Address Space ID's then there is no performance difference.
>>>
>>> In other words, one page table with PTE's with fancy per-thread protection
>>> keys that change when threads switch, is the same as multiple page tables
>>> with PTE's with simple protection that map different memory sections.
>>>
>>> Where is the functional distinction?
>>> What can one do that the other can't?
> <
>> A single address space permits VMAX (typically 2^64) of virtual total,
>> system wide, for all processes. A multiple address space permits TMAX
>> (typically 2^16 or so)*VMAX total of virtual, system wide.
> <
> Mc 88200 supported 2×VMAX {code and data could be in different VASs.}
> Nobody used it that way.
> Everybody used it as ½×VMAX {lower ½ was user upper ½ was supervisor}.
>>
>> That's the historical reason that mapping is used: so a 16-bit system
>> could have more that 16 bits worth of combined system and appp code
>> running. 64-bit spaces are not (yet) constraining enough to need
>> multiple spaces..
> <
> PDP-11/70 had 16-bit user code+data and 16-bit supervisor code+data VASs.
> And LD-From and ST-To instructions access.
> <
> I am coming around to this means of accessing another VAS; indeed, this seems
> to be the cleanest way to implement ADA rendezvous where the caller and the
> acceptor can be in different address spaces, running at different priorities, on
> different cores, possibly different machines (i.e., over a network).
> <
> Acceptor has access to the callers VAS+arguments and can write acceptor
> results back to callers VAS+results.
> <
> About the only thing this does not provide is access across different virtual
> machines--at least directly.
>

How do you bound the access to only the argument (var. result) regions?

How do you pass an object by reference? (e.g. an out-of-regs shared buffer)

Re: addressing and protection, was Paper about ISO C

<memo.20211010193358.12252P@jgd.cix.co.uk>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: jgd...@cix.co.uk (John Dallman)
Newsgroups: comp.arch
Subject: Re: addressing and protection, was Paper about ISO C
Date: Sun, 10 Oct 2021 19:33 +0100 (BST)
Organization: A noiseless patient Spider
Lines: 24
Message-ID: <memo.20211010193358.12252P@jgd.cix.co.uk>
References: <sjv4u6$37u$1@dont-email.me>
Reply-To: jgd@cix.co.uk
Injection-Info: reader02.eternal-september.org; posting-host="6dd2a597e4675f48a1273a3b0b3fd313";
logging-data="20217"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18dCLOiH3qdsZGFg8KUqRsvwFWtdeBkZ8M="
Cancel-Lock: sha1:oF5EUjUeSgpclZnGxulM3/SswcM=
 by: John Dallman - Sun, 10 Oct 2021 18:33 UTC

In article <sjv4u6$37u$1@dont-email.me>, cr88192@gmail.com (BGB) wrote:

> 32-bits, could comfortably fit one program
> Maybe several of them, if they are "fairly modest"
> 48 or 64 bits, could likely fit thousands of program instances.

> This is excluding programs which reserve absurdly large address
> ranges "because they can", but I consider this to be an aberration
> rather than something which should be encouraged.

Some programs do need to be able to handle sets of data, in RAM, that are
too large to fit into 32-bit addressing. There aren't huge numbers of
them, but they definitely exist.

> Though, looking at it, for an ISA design like RISC-V, something
> like FDPIC would make more sense than PBO for the main reason that
> the ISA lacks any real "sane" way to encode Load/Store
> displacements larger than 4kB.

That is a definite limitation. Having large offsets be a little slower is
perfectly acceptable, but requiring compilers to set up pointers to, for
example, part-way up a large array is clumsy.

John

Re: addressing and protection, was Paper about ISO C

<sjvc1g$pf4$1@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!weretis.net!feeder6.news.weretis.net!4.us.feeder.erje.net!feeder.erje.net!news2.arglkargh.de!news.mixmin.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-2fa2-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: addressing and protection, was Paper about ISO C
Date: Sun, 10 Oct 2021 18:39:44 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <sjvc1g$pf4$1@newsreader4.netcologne.de>
References: <sjv4u6$37u$1@dont-email.me>
<memo.20211010193358.12252P@jgd.cix.co.uk>
Injection-Date: Sun, 10 Oct 2021 18:39:44 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-2fa2-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:2fa2:0:7285:c2ff:fe6c:992d";
logging-data="26084"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Sun, 10 Oct 2021 18:39 UTC

John Dallman <jgd@cix.co.uk> schrieb:
> In article <sjv4u6$37u$1@dont-email.me>, cr88192@gmail.com (BGB) wrote:
>
>> 32-bits, could comfortably fit one program
>> Maybe several of them, if they are "fairly modest"
>> 48 or 64 bits, could likely fit thousands of program instances.
>
>> This is excluding programs which reserve absurdly large address
>> ranges "because they can", but I consider this to be an aberration
>> rather than something which should be encouraged.
>
> Some programs do need to be able to handle sets of data, in RAM, that are
> too large to fit into 32-bit addressing. There aren't huge numbers of
> them, but they definitely exist.

Compuational fluid dynamics.

With today's problems, with 32-bit addressing (well, usually less
than that) you can just go home.

Re: addressing and protection, was Paper about ISO C

<aaeda881-47ab-4af7-8e8d-773f0b5fe405n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a37:d09:: with SMTP id 9mr9041319qkn.409.1633891637686;
Sun, 10 Oct 2021 11:47:17 -0700 (PDT)
X-Received: by 2002:a4a:b994:: with SMTP id e20mr15936619oop.50.1633891637464;
Sun, 10 Oct 2021 11:47:17 -0700 (PDT)
Path: rocksolid2!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, 10 Oct 2021 11:47:17 -0700 (PDT)
In-Reply-To: <sjv9g7$40u$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:a04c:e5b9:d39:d382;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:a04c:e5b9:d39:d382
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me>
<sjnmcp$630$1@dont-email.me> <ca22ba8c-2f32-4999-a2d0-edde18d97a24n@googlegroups.com>
<967daf46-d627-4db5-9e5f-0584ac00a539n@googlegroups.com> <jlN7J.12573$fZ.8007@fx06.iad>
<c0nvlg9c4v1u2m4t9601rb02u7i6g1b3pg@4ax.com> <aTZ7J.138342$F26.9781@fx44.iad>
<sjprtg$259$1@dont-email.me> <E0%7J.9319$7U3.7165@fx24.iad>
<2aab69d6-197a-4c3d-ba4c-0ac9c84a51fen@googlegroups.com> <sjqfoo$9ef$1@dont-email.me>
<sjrckv$jdf$1@dont-email.me> <sjrgir$5v7$1@dont-email.me> <LPC8J.32586$PE4.19@fx11.iad>
<sjuvp5$u65$1@dont-email.me> <3789ed37-18c9-4f40-bab8-7ee162d1d8f6n@googlegroups.com>
<sjv9g7$40u$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <aaeda881-47ab-4af7-8e8d-773f0b5fe405n@googlegroups.com>
Subject: Re: addressing and protection, was Paper about ISO C
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sun, 10 Oct 2021 18:47:17 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: MitchAlsup - Sun, 10 Oct 2021 18:47 UTC

On Sunday, October 10, 2021 at 12:56:25 PM UTC-5, Ivan Godard wrote:
> On 10/10/2021 9:57 AM, MitchAlsup wrote:
> > On Sunday, October 10, 2021 at 10:10:31 AM UTC-5, Ivan Godard wrote:
> >> On 10/10/2021 7:31 AM, EricP wrote:
> >>> Ivan Godard wrote:
> >>>> On 10/8/2021 11:25 PM, Stephen Fuld wrote:
> >>>>>
> >>>>> OK. This is generally called "Single Address Space". This is used
> >>>>> by such systems as the IBM System i, and the Mill.
> >>>>>
> >>>>>> Granted, this does have the (fairly obvious) property that most
> >>>>>> traditional schemes for memory protection, ..., kinda go out the
> >>>>>> window when one has multiple logical processes within the same
> >>>>>> address space (as do the traditional distinctions between threads
> >>>>>> and processes).
> >>>>>
> >>>>> Not necessarily. Just because multiple logical processes exist
> >>>>> within the same address space, doesn't mean that each process has
> >>>>> legal access to all the addresses within that space.
> >>>>
> >>>> An address space tells you what you can name; a protection domain
> >>>> tells you whether naming it does you any good.
> >>>
> >>> What exactly is the distinction between a single address space
> >>> with page protection that allows multiple threads in that address space
> >>> access to some of those pages, and multiple address spaces with multiple
> >>> threads that allows access to some of those pages.
> >>>
> >>> Because it sure sounds like the difference is just whether or not there is
> >>> a page-table-base pointer change on process switch, and if the TLB
> >>> supports ASID's Address Space ID's then there is no performance difference.
> >>>
> >>> In other words, one page table with PTE's with fancy per-thread protection
> >>> keys that change when threads switch, is the same as multiple page tables
> >>> with PTE's with simple protection that map different memory sections.
> >>>
> >>> Where is the functional distinction?
> >>> What can one do that the other can't?
> > <
> >> A single address space permits VMAX (typically 2^64) of virtual total,
> >> system wide, for all processes. A multiple address space permits TMAX
> >> (typically 2^16 or so)*VMAX total of virtual, system wide.
> > <
> > Mc 88200 supported 2×VMAX {code and data could be in different VASs.}
> > Nobody used it that way.
> > Everybody used it as ½×VMAX {lower ½ was user upper ½ was supervisor}.
> >>
> >> That's the historical reason that mapping is used: so a 16-bit system
> >> could have more that 16 bits worth of combined system and appp code
> >> running. 64-bit spaces are not (yet) constraining enough to need
> >> multiple spaces..
> > <
> > PDP-11/70 had 16-bit user code+data and 16-bit supervisor code+data VASs.
> > And LD-From and ST-To instructions access.
> > <
> > I am coming around to this means of accessing another VAS; indeed, this seems
> > to be the cleanest way to implement ADA rendezvous where the caller and the
> > acceptor can be in different address spaces, running at different priorities, on
> > different cores, possibly different machines (i.e., over a network).
> > <
> > Acceptor has access to the callers VAS+arguments and can write acceptor
> > results back to callers VAS+results.
> > <
> > About the only thing this does not provide is access across different virtual
> > machines--at least directly.
> >
> How do you bound the access to only the argument (var. result) regions?
<
I am expecting ADA to be reasonable (i.e., ADA), here. During argument evaluation
ADA will not create a dope vector that exceeds the actual passed data area (checked
on the way out). During use of argument the acceptor will not violate (checked on the
way in) the dope vector constraints.
>
> How do you pass an object by reference? (e.g. an out-of-regs shared buffer)
<
Argument passed as in normal ABI (other than the caller knowing the call is to an
accept), the caller evaluates arguments just like any other call. The process of
rendezvous passes a Root pointer and a pointer to the <now stored> caller register
file in places (control registers) only an acceptor is taught where to look (by the
compiler). I may make access to these control registers raise exceptions if not
in an Accept (it is not hard to tell). (I probably should........)

Re: addressing and protection, was Paper about ISO C

<b2fe4fe7-8939-4a36-9f27-4b90d1b8ded7n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:7dc7:: with SMTP id c7mr10867635qte.0.1633892090707; Sun, 10 Oct 2021 11:54:50 -0700 (PDT)
X-Received: by 2002:a05:6808:1243:: with SMTP id o3mr15671736oiv.99.1633892090512; Sun, 10 Oct 2021 11:54:50 -0700 (PDT)
Path: rocksolid2!i2pn.org!aioe.org!news.uzoreto.com!tr2.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 10 Oct 2021 11:54:50 -0700 (PDT)
In-Reply-To: <memo.20211010193358.12252P@jgd.cix.co.uk>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:a04c:e5b9:d39:d382; posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:a04c:e5b9:d39:d382
References: <sjv4u6$37u$1@dont-email.me> <memo.20211010193358.12252P@jgd.cix.co.uk>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b2fe4fe7-8939-4a36-9f27-4b90d1b8ded7n@googlegroups.com>
Subject: Re: addressing and protection, was Paper about ISO C
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sun, 10 Oct 2021 18:54:50 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 37
 by: MitchAlsup - Sun, 10 Oct 2021 18:54 UTC

On Sunday, October 10, 2021 at 1:33:59 PM UTC-5, John Dallman wrote:
> In article <sjv4u6$37u$1...@dont-email.me>, cr8...@gmail.com (BGB) wrote:
>
> > 32-bits, could comfortably fit one program
> > Maybe several of them, if they are "fairly modest"
> > 48 or 64 bits, could likely fit thousands of program instances.
> > This is excluding programs which reserve absurdly large address
> > ranges "because they can", but I consider this to be an aberration
> > rather than something which should be encouraged.
<
> Some programs do need to be able to handle sets of data, in RAM, that are
> too large to fit into 32-bit addressing. There aren't huge numbers of
> them, but they definitely exist.
<
In a 64-bit virtual address space, the user should be able to create holes
in the virtual address space as large as 2^62 (I might be argued down to
2^60). Certainly no OS needs to grow bigger than 2^53......
<
> > Though, looking at it, for an ISA design like RISC-V, something
> > like FDPIC would make more sense than PBO for the main reason that
> > the ISA lacks any real "sane" way to encode Load/Store
> > displacements larger than 4kB.
> That is a definite limitation. Having large offsets be a little slower is
> perfectly acceptable, but requiring compilers to set up pointers to, for
> example, part-way up a large array is clumsy.
<
Which is why My 66000 provides 16-bit, 32-bit and 64-bit offsets in LD
and ST instructions. Higher end machines will suffer no penalty in using
large offsets, lowest end machines will still take FEWER cycles than if
they had to manufacture constants (LDHI or Constant Pool). This saves
size (code footprint is smaller, data footprint is smaller, fetch I$ access
count is smaller, and there is no data cache pollution of that which is a
code problem.)
<
No sane instruction set should cause the compiler to manufacture
(or fetch) compile time constants at run time.
>
> John

Re: addressing and protection, was Paper about ISO C

<9115d247-860e-4a56-a60d-76453e183fden@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:5916:: with SMTP id 22mr10366832qty.158.1633892297755;
Sun, 10 Oct 2021 11:58:17 -0700 (PDT)
X-Received: by 2002:aca:5b56:: with SMTP id p83mr16136542oib.119.1633892297537;
Sun, 10 Oct 2021 11:58:17 -0700 (PDT)
Path: rocksolid2!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 10 Oct 2021 11:58:17 -0700 (PDT)
In-Reply-To: <sjvc1g$pf4$1@newsreader4.netcologne.de>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:a04c:e5b9:d39:d382;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:a04c:e5b9:d39:d382
References: <sjv4u6$37u$1@dont-email.me> <memo.20211010193358.12252P@jgd.cix.co.uk>
<sjvc1g$pf4$1@newsreader4.netcologne.de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9115d247-860e-4a56-a60d-76453e183fden@googlegroups.com>
Subject: Re: addressing and protection, was Paper about ISO C
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sun, 10 Oct 2021 18:58:17 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 26
 by: MitchAlsup - Sun, 10 Oct 2021 18:58 UTC

On Sunday, October 10, 2021 at 1:39:45 PM UTC-5, Thomas Koenig wrote:
> John Dallman <j...@cix.co.uk> schrieb:
> > In article <sjv4u6$37u$1...@dont-email.me>, cr8...@gmail.com (BGB) wrote:
> >
> >> 32-bits, could comfortably fit one program
> >> Maybe several of them, if they are "fairly modest"
> >> 48 or 64 bits, could likely fit thousands of program instances.
> >
> >> This is excluding programs which reserve absurdly large address
> >> ranges "because they can", but I consider this to be an aberration
> >> rather than something which should be encouraged.
> >
> > Some programs do need to be able to handle sets of data, in RAM, that are
> > too large to fit into 32-bit addressing. There aren't huge numbers of
> > them, but they definitely exist.
> Compuational fluid dynamics.
>
> With today's problems, with 32-bit addressing (well, usually less
> than that) you can just go home.
<
A decade ago (can it be that long) I was doing 1D CFD on intake and
exhaust systems for automotive engines. These applications would
sometimes run for several days (24/7) on my 6 core system, but
never used "that much memory". The operating mesh had hundreds of
thousands of boundary constraints (mostly pipe walls).
<
Perhaps 2D CFD and 3D CFD exponentiate my experience.......

Re: addressing and protection, was Paper about ISO C

<sjvd8k$1804$1@gal.iecc.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!not-for-mail
From: joh...@taugh.com (John Levine)
Newsgroups: comp.arch
Subject: Re: addressing and protection, was Paper about ISO C
Date: Sun, 10 Oct 2021 19:00:36 -0000 (UTC)
Organization: Taughannock Networks
Message-ID: <sjvd8k$1804$1@gal.iecc.com>
References: <87fstdumxd.fsf@hotmail.com> <sjrgir$5v7$1@dont-email.me> <LPC8J.32586$PE4.19@fx11.iad> <sjuvp5$u65$1@dont-email.me>
Injection-Date: Sun, 10 Oct 2021 19:00:36 -0000 (UTC)
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970";
logging-data="40964"; mail-complaints-to="abuse@iecc.com"
In-Reply-To: <87fstdumxd.fsf@hotmail.com> <sjrgir$5v7$1@dont-email.me> <LPC8J.32586$PE4.19@fx11.iad> <sjuvp5$u65$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, 10 Oct 2021 19:00 UTC

According to Ivan Godard <ivan@millcomputing.com>:
>> Where is the functional distinction?
>> What can one do that the other can't?
>
>A single address space permits VMAX (typically 2^64) of virtual total,
>system wide, for all processes. A multiple address space permits TMAX
>(typically 2^16 or so)*VMAX total of virtual, system wide.
>
>That's the historical reason that mapping is used: so a 16-bit system
>could have more that 16 bits worth of combined system and appp code
>running. 64-bit spaces are not (yet) constraining enough to need
>multiple spaces..

That's one reason, the other flips it around, so the application address space could be
bigger than physical memory, and you fake it with paging. You probably remember static
shared libraries, which loaded at the same place in every process, something that needs
an address space per process to work.

It is my impression that once you have enough hardware to handle paging in one application
address space, multiple address spaces aren't much harder.

--
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: Paper about ISO C

<ode6mgl8a70ge2gt88m0evt61psucf4k06@4ax.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx34.iad.POSTED!not-for-mail
From: davidsch...@harrietmanor.com (David W Schroth)
Newsgroups: comp.arch
Subject: Re: Paper about ISO C
Message-ID: <ode6mgl8a70ge2gt88m0evt61psucf4k06@4ax.com>
References: <jlN7J.12573$fZ.8007@fx06.iad> <c0nvlg9c4v1u2m4t9601rb02u7i6g1b3pg@4ax.com> <aTZ7J.138342$F26.9781@fx44.iad> <sjprtg$259$1@dont-email.me> <E0%7J.9319$7U3.7165@fx24.iad> <2aab69d6-197a-4c3d-ba4c-0ac9c84a51fen@googlegroups.com> <sjqfoo$9ef$1@dont-email.me> <sjrckv$jdf$1@dont-email.me> <sjrhjd$d15$1@dont-email.me> <sjsai8$djl$1@dont-email.me> <sjtgpq$l2r$1@dont-email.me> <sjtr82$riu$1@dont-email.me> <sju5f0$tpe$1@newsreader4.netcologne.de> <sju7jv$ss4$1@dont-email.me>
User-Agent: ForteAgent/8.00.32.1272
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Lines: 43
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sun, 10 Oct 2021 14:11:29 -0500
X-Received-Bytes: 3099
 by: David W Schroth - Sun, 10 Oct 2021 19:11 UTC

On Sun, 10 Oct 2021 01:18:07 -0700, Ivan Godard
<ivan@millcomputing.com> wrote:

>On 10/10/2021 12:41 AM, Thomas Koenig wrote:
>> Ivan Godard <ivan@millcomputing.com> schrieb:
>>
>>>> IIRC, Mill was using a capability architecture or something?...
>>>
>>> I wish! But no, it's grant based, because fat pointers are not viable in
>>> the market IMO.
>>
>> Would the 128-bit pointers of System i qualify as fat pointers under
>> your definition?
>>
>
>Yes, but they are in a language system that is not trying to run legacy
>decks that assumes 64-bit (or 32-bit) pointers. And they have IBM
>marketing :-)
>
>I don't know what System i does with a large C program fresh off gitHub.
>Do you? The Unisys solution was to sandbox the whole thing, with no
>internal protection at all.

A nitpick - the Burroughs side of Unisys sandboxs the entire thing,
the Univac side doesn't. The Univac side also splits protection from
addressing, and uses an underlying single virtual adress space
(providing an existing counter-example to those who claim such a thing
is not possible). Based upon the number of reported cases of someone
getting around the protection on OS2200, it seems to work.
>
>CHERI is an interesting alternative to fat pointers. In the early days
>of what became Mill we came up with a similar approach to theirs. The
>(perhaps overhasty) conclusion was that we could get within a factor of
>two of a legacy system performance, but not much better. The security
>advantages would be a win; the reprogramming of data structures to fit
>the changed sizes would be a lose.
>
>The realization that protection could be divorced from mapping and hence
>a grant system with skinny pointers could have legacy-like performance
>or better but fat-pointer security made up our minds.

This strikes me as a sensible decision, I just hope to see
implementations.

Re: addressing and protection, was Paper about ISO C

<d46d2d95-589b-46f7-a823-85258677a3c1n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:de:: with SMTP id d30mr10406348qtg.377.1633894090621;
Sun, 10 Oct 2021 12:28:10 -0700 (PDT)
X-Received: by 2002:a9d:44d:: with SMTP id 71mr17442459otc.331.1633894090421;
Sun, 10 Oct 2021 12:28:10 -0700 (PDT)
Path: rocksolid2!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Sun, 10 Oct 2021 12:28:10 -0700 (PDT)
In-Reply-To: <sjvd8k$1804$1@gal.iecc.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:a04c:e5b9:d39:d382;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:a04c:e5b9:d39:d382
References: <87fstdumxd.fsf@hotmail.com> <sjrgir$5v7$1@dont-email.me>
<LPC8J.32586$PE4.19@fx11.iad> <sjuvp5$u65$1@dont-email.me> <sjvd8k$1804$1@gal.iecc.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d46d2d95-589b-46f7-a823-85258677a3c1n@googlegroups.com>
Subject: Re: addressing and protection, was Paper about ISO C
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Sun, 10 Oct 2021 19:28:10 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 29
 by: MitchAlsup - Sun, 10 Oct 2021 19:28 UTC

On Sunday, October 10, 2021 at 2:00:37 PM UTC-5, John Levine wrote:
> According to Ivan Godard <iv...@millcomputing.com>:
> >> Where is the functional distinction?
> >> What can one do that the other can't?
> >
> >A single address space permits VMAX (typically 2^64) of virtual total,
> >system wide, for all processes. A multiple address space permits TMAX
> >(typically 2^16 or so)*VMAX total of virtual, system wide.
> >
> >That's the historical reason that mapping is used: so a 16-bit system
> >could have more that 16 bits worth of combined system and appp code
> >running. 64-bit spaces are not (yet) constraining enough to need
> >multiple spaces..
> That's one reason, the other flips it around, so the application address space could be
> bigger than physical memory, and you fake it with paging. You probably remember static
> shared libraries, which loaded at the same place in every process, something that needs
> an address space per process to work.
<
In a 64-bit VAS the same trick works--all libraries get mapped to different "places",
and everyone can share equally, you just have to get those "places" defined well.
>
> It is my impression that once you have enough hardware to handle paging in one application
> address space, multiple address spaces aren't much harder.
<
I can attest to that.
>
> --
> 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: addressing and protection, was Paper about ISO C

<sjvesb$a36$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: cr88...@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: addressing and protection, was Paper about ISO C
Date: Sun, 10 Oct 2021 14:28:07 -0500
Organization: A noiseless patient Spider
Lines: 191
Message-ID: <sjvesb$a36$1@dont-email.me>
References: <87fstdumxd.fsf@hotmail.com> <sjni60$97d$1@dont-email.me>
<sjnmcp$630$1@dont-email.me>
<ca22ba8c-2f32-4999-a2d0-edde18d97a24n@googlegroups.com>
<967daf46-d627-4db5-9e5f-0584ac00a539n@googlegroups.com>
<jlN7J.12573$fZ.8007@fx06.iad> <c0nvlg9c4v1u2m4t9601rb02u7i6g1b3pg@4ax.com>
<aTZ7J.138342$F26.9781@fx44.iad> <sjprtg$259$1@dont-email.me>
<E0%7J.9319$7U3.7165@fx24.iad>
<2aab69d6-197a-4c3d-ba4c-0ac9c84a51fen@googlegroups.com>
<sjqfoo$9ef$1@dont-email.me> <sjrckv$jdf$1@dont-email.me>
<sjrgir$5v7$1@dont-email.me> <LPC8J.32586$PE4.19@fx11.iad>
<sjuvp5$u65$1@dont-email.me> <sjv4u6$37u$1@dont-email.me>
<22c97090-d07c-4819-a19b-e2e4761a3abfn@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 10 Oct 2021 19:28:11 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="4849fb37e647683af19c4c339cd968fb";
logging-data="10342"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19+ysK2tz2HjcLbnVbeLaGc"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.2.0
Cancel-Lock: sha1:P91oZWS9Yxoegh48B6yKcUnijjM=
In-Reply-To: <22c97090-d07c-4819-a19b-e2e4761a3abfn@googlegroups.com>
Content-Language: en-US
 by: BGB - Sun, 10 Oct 2021 19:28 UTC

On 10/10/2021 12:13 PM, MitchAlsup wrote:
> On Sunday, October 10, 2021 at 11:38:32 AM UTC-5, BGB wrote:
>> On 10/10/2021 10:10 AM, Ivan Godard wrote:
>>> On 10/10/2021 7:31 AM, EricP wrote:
>>>> Ivan Godard wrote:
>>>>> On 10/8/2021 11:25 PM, Stephen Fuld wrote:
>>>>
>>>> In other words, one page table with PTE's with fancy per-thread
>>>> protection
>>>> keys that change when threads switch, is the same as multiple page tables
>>>> with PTE's with simple protection that map different memory sections.
>>>>
>>>> Where is the functional distinction?
>>>> What can one do that the other can't?
>>>
>>> A single address space permits VMAX (typically 2^64) of virtual total,
>>> system wide, for all processes. A multiple address space permits TMAX
>>> (typically 2^16 or so)*VMAX total of virtual, system wide.
>>>
>>> That's the historical reason that mapping is used: so a 16-bit system
>>> could have more that 16 bits worth of combined system and appp code
>>> running. 64-bit spaces are not (yet) constraining enough to need
>>> multiple spaces..
> <
>> Yeah:
>> 16-bits, pretty much everything will need multiple spaces
>> Even the first 8088/8086 PCs were already using 'far' pointers.
>> 32-bits, could comfortably fit one program
>> Maybe several of them, if they are "fairly modest"
>> 48 or 64 bits, could likely fit thousands of program instances.
>> 96 or 128 bits, limit would be implausibly large...
> <
> If we exclude designing NEW 16-bit address space machines (more because
> the space is already filled and unlikely to make enough headway in cost/
> perf to open up a new slot in that space) all we need to do is to not make
> those kinds of mistakes in the machines we are designing now and into the
> future.

Yeah, apart from small microcontrollers, a 16-bit address space is
insufficient...

One could "maybe" do a 16-bit machine with register-pairing for 32-bit
addresses and data, but at this point one may as well just design it as
a 32-bit ISA and then using like it were a 16-bit ISA (this practice
seems to be semi-common in Cortex-M land).

>>
>> This is excluding programs which reserve absurdly large address ranges
>> "because they can", but I consider this to be an aberration rather than
>> something which should be encouraged.
>>
> One of the reasons My 66000 provides a complete 64-bit VAS is to allow
> for what used to be absurdly large address ranges--for whatever SW wanted
> to do with those.

It is possible, but programs doing this sort of thing effectively
precludes sticking multiple programs into a single address space.

Well, unless one has a 96 bit space and then allows each program to
address up to 256TB or so.

>>
>> One does need to design the C ABI to be aware of the possibility of
>> multiple program instances in a single address space. For my ISA, I
>> ended up with a design I call PBO, which effectively accesses globals
>> via GBR (Global Base Register), and has a scheme by which one can get
>> from one GBR within a given process to any other GBR within the process
>> with a series of two memory loads.
>>
> My 66000 is PIC and PID without using a register to keep track of "stuff".
> {When R0 is used in the Base-register position of a memory reference IP is
> substituted, and the rest of the tool chain understands the required mechanics}.

BJX2 supports PC-relative addressing as well.

But, GBR is used for the PBO ABI because this allows effectively
decoupling the ".text" section (and related read-only sections), from
the ".data" and ".bss" sections (which are unique to each program instance).

Arguably, with an MMU, one multi-map the same PIC binary to multiple
places in the address space, but then one is wasting address space
multi-mapping the ".text" sections.

>>
>> Another scheme was ELF FDPIC, which can be used in a similar way. It
>> works by using multiple pointers for functions in the GOT, with the
>> target GOT being loaded from the current GOT on every function call.
>>
> My 66000 supports multiple GOTs also without consuming a register.

OK.

>>
>> The big drawback of FDPIC is that it has higher overheads:
>> All function calls need several additional pointer loads, ...
>> All global loads/stores need to be done indirectly via the GOT;
>> ...
> So, (as Ivan would say) don't do that !
> <
> My 66000 has tabularized function calls that neither waste a register nor
> the delay through the LD-aligner and load a memory reference directly into
> the IP. Suitable (higher end) HW can start the instruction fetch even BEFORE
> the function call address gets to the IP !! Eliminating most of this overhead.
> <
> Global LDs and STs can use a 64-bit offset along with base (or IP) and
> indexing in a single instruction.

In BJX2, I can also do simple direct jumps.

The design of the PBO ABI puts the responsibility of the GBR reload onto
the called function, which in turn is only needed in certain cases:
DLL exports;
Function pointers which are also non-leaf and/or access global variables.

Pretty much all other interior functions assume that GBR points to the
correct data section.

So, average case overhead can be reduced to the level of being
"negligible" for most programs.

>>
>>
>> Though, looking at it, for an ISA design like RISC-V, something like
>> FDPIC would make more sense than PBO for the main reason that the ISA
>> lacks any real "sane" way to encode Load/Store displacements larger than
>> 4kB. So, in effect, the cost of accessing globals via a GOT is likely to
>> be less than the cost of composing the large-displacement load/stores
>> needed for something like PBO.
>>
>> Though, admittedly, I personally feel this is a design flaw in the
>> RISC-V ISA, rather than any particular merit to FDPIC.
>>
> I strongly agree with you that this is a big FLAW of RISC-V; maybe not major
> but big, nonetheless.

Yeah. Making ELF FDPIC able to win in a "lesser of two evils" sense is
not exactly a merit, in any case...

Well, I have a 12 bit displacement, fair enough:
LW Rd, Rm, Disp12 //all is good up to 4K

But, beyond 4K?

LUI Rt, DispHi
ADD Rt, Rm, Rt
LW Rd, Rt, DispLo

Yeah, errm, this kinda sucks...

Granted, something like:
LD Rt, Rgot, Disp12
LW Rd, Rt, 0

Also still kinda sucks (slightly smaller, would require intermediate
instructions between the loads to avoid interlock penalties though).

Earlier forms of BJX2 had:
LDIX Disp24, R0
MOV.L (Rm, R0), Rd
But, now I have:
MOV.L (Rm, Disp33s), Rd // 64-bit encoding, minimum 1-cycle

Where, Rm can also encode PC or GBR:
MOV.L (PC, Disp33s), Rd //same
MOV.L (GBR, Disp33s), Rd //same

Though, for PC-rel, BGBCC still uses the older construct, mostly because
PC-Rel-Jumbo-Disp33s would require me to go and add a new reloc type for
a situation which is relatively infrequent with the PBO ABI (usually
comes up in the context of 'const arrays' and similar).

So, say, accessing a const array:
LDIX Disp24, R0 //can be eliminated in-theory.
LEA.B (PC, R0), Ra //get address of array into 'Ra'
...
MOV.Q (Ra, Ri), Rd

Whereas, within a given basic block, each access to the array will use a
single memory load.

Re: addressing and protection, was Paper about ISO C

<sjvgav$1ga2$2@gal.iecc.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!not-for-mail
From: joh...@taugh.com (John Levine)
Newsgroups: comp.arch
Subject: Re: addressing and protection, was Paper about ISO C
Date: Sun, 10 Oct 2021 19:53:03 -0000 (UTC)
Organization: Taughannock Networks
Message-ID: <sjvgav$1ga2$2@gal.iecc.com>
References: <sjv4u6$37u$1@dont-email.me> <memo.20211010193358.12252P@jgd.cix.co.uk>
Injection-Date: Sun, 10 Oct 2021 19:53:03 -0000 (UTC)
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970";
logging-data="49474"; mail-complaints-to="abuse@iecc.com"
In-Reply-To: <sjv4u6$37u$1@dont-email.me> <memo.20211010193358.12252P@jgd.cix.co.uk>
Cleverness: some
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: johnl@iecc.com (John Levine)
 by: John Levine - Sun, 10 Oct 2021 19:53 UTC

According to John Dallman <jgd@cix.co.uk>:
>> This is excluding programs which reserve absurdly large address
>> ranges "because they can", but I consider this to be an aberration
>> rather than something which should be encouraged.
>
>Some programs do need to be able to handle sets of data, in RAM, that are
>too large to fit into 32-bit addressing. There aren't huge numbers of
>them, but they definitely exist.

Databases will buffer as much as they can in RAM. If your machine can give
your database ten gig of RAM, it can do useful things with it, assuming
you have databases that big which these days you probably do.

--
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: addressing and protection, was Paper about ISO C

<sjvgn4$mon$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: cr88...@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: addressing and protection, was Paper about ISO C
Date: Sun, 10 Oct 2021 14:59:27 -0500
Organization: A noiseless patient Spider
Lines: 59
Message-ID: <sjvgn4$mon$1@dont-email.me>
References: <87fstdumxd.fsf@hotmail.com> <sjrgir$5v7$1@dont-email.me>
<LPC8J.32586$PE4.19@fx11.iad> <sjuvp5$u65$1@dont-email.me>
<sjvd8k$1804$1@gal.iecc.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 10 Oct 2021 19:59:32 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="4849fb37e647683af19c4c339cd968fb";
logging-data="23319"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18bffioGJiAiH6xg6T2gvPR"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.2.0
Cancel-Lock: sha1:2bnNmWVwEF3WTYCG/neT7/XIxw4=
In-Reply-To: <sjvd8k$1804$1@gal.iecc.com>
Content-Language: en-US
 by: BGB - Sun, 10 Oct 2021 19:59 UTC

On 10/10/2021 2:00 PM, John Levine wrote:
> According to Ivan Godard <ivan@millcomputing.com>:
>>> Where is the functional distinction?
>>> What can one do that the other can't?
>>
>> A single address space permits VMAX (typically 2^64) of virtual total,
>> system wide, for all processes. A multiple address space permits TMAX
>> (typically 2^16 or so)*VMAX total of virtual, system wide.
>>
>> That's the historical reason that mapping is used: so a 16-bit system
>> could have more that 16 bits worth of combined system and appp code
>> running. 64-bit spaces are not (yet) constraining enough to need
>> multiple spaces..
>
> That's one reason, the other flips it around, so the application address space could be
> bigger than physical memory, and you fake it with paging. You probably remember static
> shared libraries, which loaded at the same place in every process, something that needs
> an address space per process to work.
>
> It is my impression that once you have enough hardware to handle paging in one application
> address space, multiple address spaces aren't much harder.
>

Harder... No.
Slower... Yes.

As noted, in my case there is little stopping the MMU from being used
for multiple address spaces. It is a little more awkward for an OS
kernel, but doesn't really effect the HW all that much.

However, the more obvious issue is that, as soon as one switches address
spaces, none of the contents of the TLB are relevant anyone. So, every
task switch is very likely to be followed by potentially a few thousand
cycles worth of TLB reloads.

If it is a single address space, then it is likely that any shared
contents (such as OS provided libraries, ...) will still be in the TLB
following a task switch.

An ASID could help, if one assumes that some of the old contents remain
in the TLB by the time the scheduler cycles back around.

Another possible option though could be a hierarchical ASID, say:
ASID: 6b=AGID, 10b=APID
Where a TLBE:
ASID=0, Globally Valid
AGID!=0, APID=0: Valid so long as AGID matches.
AGID!=0, APID!=0: Valid if ASID's are equal.

With the ASID being in the same encoding space as VUGID.

The ASID bits are partly co-opted in the split TLBE scheme for 96-bit
addressing though, so it is likely that in 96-bit mode the MMU would not
have ASID's (well, along with some debate as to whether it would reduce
TLB associativity, or add a separate smaller TLB for matching address
bits 95:48...).

Re: addressing and protection, was Paper about ISO C

<memo.20211010211900.12252R@jgd.cix.co.uk>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: rocksolid2!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: jgd...@cix.co.uk (John Dallman)
Newsgroups: comp.arch
Subject: Re: addressing and protection, was Paper about ISO C
Date: Sun, 10 Oct 2021 21:19 +0100 (BST)
Organization: A noiseless patient Spider
Lines: 12
Message-ID: <memo.20211010211900.12252R@jgd.cix.co.uk>
References: <sjvesb$a36$1@dont-email.me>
Reply-To: jgd@cix.co.uk
Injection-Info: reader02.eternal-september.org; posting-host="6dd2a597e4675f48a1273a3b0b3fd313";
logging-data="31613"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX198iJSHS/aRWp2H7Ia5XXBMbpNEWdWDw/s="
Cancel-Lock: sha1:qlSd3kvezsxRGB8EoKgyomGYfrk=
 by: John Dallman - Sun, 10 Oct 2021 20:19 UTC

In article <sjvesb$a36$1@dont-email.me>, cr88192@gmail.com (BGB) wrote:

> The design of the PBO ABI puts the responsibility of the GBR reload
> onto the called function, which in turn is only needed in certain
> cases: ...
> Function pointers which are also non-leaf and/or access global
> variables.

How does the compiler know, when compiling a function, if it will be
called via a pointer?

John

Pages:123456789101112131415161718192021222324252627282930313233
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor