Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

"And remember: Evil will always prevail, because Good is dumb." -- Spaceballs


devel / comp.arch / Re: The synergy of type tags on register file registers

SubjectAuthor
* The synergy of type tags on register file registersJimBrakefield
+* Re: The synergy of type tags on register file registersTerje Mathisen
|`- Re: The synergy of type tags on register file registersrobf...@gmail.com
`* Re: The synergy of type tags on register file registersluke.l...@gmail.com
 +* Re: The synergy of type tags on register file registersluke.l...@gmail.com
 |`- Re: The synergy of type tags on register file registersScott Lurndal
 +* Re: The synergy of type tags on register file registersNiklas Holsti
 |`- Re: The synergy of type tags on register file registersluke.l...@gmail.com
 `* Re: The synergy of type tags on register file registersMitchAlsup
  +* Re: The synergy of type tags on register file registersJimBrakefield
  |+- Re: The synergy of type tags on register file registersluke.l...@gmail.com
  |`* Re: The synergy of type tags on register file registersMitchAlsup
  | +* Re: The synergy of type tags on register file registersJimBrakefield
  | |+- Re: The synergy of type tags on register file registersMitchAlsup
  | |+* Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | ||+* Re: The synergy of type tags on register file registersMitchAlsup
  | |||`* Re: The synergy of type tags on register file registersThomas Koenig
  | ||| +* Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | ||| |`- Re: The synergy of type tags on register file registersMitchAlsup
  | ||| +* Re: The synergy of type tags on register file registersBGB
  | ||| |`* Re: The synergy of type tags on register file registersMitchAlsup
  | ||| | `- Re: The synergy of type tags on register file registersBGB
  | ||| `* Re: The synergy of type tags on register file registersTerje Mathisen
  | |||  +* Re: The synergy of type tags on register file registersMitchAlsup
  | |||  |`- Re: The synergy of type tags on register file registersTerje Mathisen
  | |||  `* Re: The synergy of type tags on register file registersThomas Koenig
  | |||   `* Re: The synergy of type tags on register file registersTerje Mathisen
  | |||    `* Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | |||     +* Re: The synergy of type tags on register file registersScott Lurndal
  | |||     |`* Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | |||     | `- Re: The synergy of type tags on register file registersMitchAlsup
  | |||     +* Re: The synergy of type tags on register file registersThomas Koenig
  | |||     |`- Re: The synergy of type tags on register file registersBGB
  | |||     +* Re: The synergy of type tags on register file registersTerje Mathisen
  | |||     |`* Re: The synergy of type tags on register file registersMitchAlsup
  | |||     | +* Re: The synergy of type tags on register file registersTerje Mathisen
  | |||     | |+- Re: The synergy of type tags on register file registersMitchAlsup
  | |||     | |`* Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | |||     | | +- Re: The synergy of type tags on register file registersMitchAlsup
  | |||     | | `- Re: The synergy of type tags on register file registersJimBrakefield
  | |||     | `* Re: The synergy of type tags on register file registersScott Lurndal
  | |||     |  +- Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | |||     |  +* Re: The synergy of type tags on register file registersBGB
  | |||     |  |`* Re: The synergy of type tags on register file registersAnton Ertl
  | |||     |  | `* Re: The synergy of type tags on register file registersMitchAlsup
  | |||     |  |  `* Re: The synergy of type tags on register file registersBGB
  | |||     |  |   `* Re: The synergy of type tags on register file registersAnton Ertl
  | |||     |  |    +* Re: The synergy of type tags on register file registersBGB
  | |||     |  |    |`* Re: The synergy of type tags on register file registersMitchAlsup
  | |||     |  |    | `- Re: The synergy of type tags on register file registersBGB
  | |||     |  |    `* Re: The synergy of type tags on register file registersThomas Koenig
  | |||     |  |     `- Re: The synergy of type tags on register file registersTerje Mathisen
  | |||     |  `* Re: The synergy of type tags on register file registersAnton Ertl
  | |||     |   `- Re: The synergy of type tags on register file registersMichael S
  | |||     +- Re: The synergy of type tags on register file registersBGB
  | |||     `* Re: The synergy of type tags on register file registersMitchAlsup
  | |||      +- Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | |||      `* Re: The synergy of type tags on register file registersStephen Fuld
  | |||       +* Re: The synergy of type tags on register file registersMitchAlsup
  | |||       |`- Re: The synergy of type tags on register file registersStephen Fuld
  | |||       `* Re: The synergy of type tags on register file registersAnton Ertl
  | |||        +* Re: The synergy of type tags on register file registersStephen Fuld
  | |||        |+* Re: The synergy of type tags on register file registersMitchAlsup
  | |||        ||+- Re: The synergy of type tags on register file registersScott Lurndal
  | |||        ||`* Re: The synergy of type tags on register file registersStephen Fuld
  | |||        || +- Re: The synergy of type tags on register file registersThomas Koenig
  | |||        || `* Re: The synergy of type tags on register file registersJohn Dallman
  | |||        ||  `* Re: The synergy of type tags on register file registersThomas Koenig
  | |||        ||   +* Re: The synergy of type tags on register file registersJohn Dallman
  | |||        ||   |`- Re: The synergy of type tags on register file registersThomas Koenig
  | |||        ||   `* Re: The synergy of type tags on register file registersTerje Mathisen
  | |||        ||    `* Re: The synergy of type tags on register file registersMitchAlsup
  | |||        ||     `- Re: The synergy of type tags on register file registersTerje Mathisen
  | |||        |`* Re: The synergy of type tags on register file registersAnton Ertl
  | |||        | +* Re: The synergy of type tags on register file registersStephen Fuld
  | |||        | |+* Re: The synergy of type tags on register file registersBGB
  | |||        | ||`* Re: The synergy of type tags on register file registersrobf...@gmail.com
  | |||        | || +* Re: The synergy of type tags on register file registersMitchAlsup
  | |||        | || |`* Re: The synergy of type tags on register file registersMichael S
  | |||        | || | `* Re: The synergy of type tags on register file registersMitchAlsup
  | |||        | || |  `* Re: The synergy of type tags on register file registersMichael S
  | |||        | || |   `- Re: The synergy of type tags on register file registersMitchAlsup
  | |||        | || +* Re: The synergy of type tags on register file registersBGB
  | |||        | || |`- Re: The synergy of type tags on register file registersMitchAlsup
  | |||        | || `* Re: The synergy of type tags on register file registersScott Lurndal
  | |||        | ||  +- Re: The synergy of type tags on register file registersBGB
  | |||        | ||  `* Re: The synergy of type tags on register file registersMitchAlsup
  | |||        | ||   +- Re: The synergy of type tags on register file registersBGB
  | |||        | ||   +* Re: The synergy of type tags on register file registersluke.l...@gmail.com
  | |||        | ||   |`* Re: The synergy of type tags on register file registersScott Lurndal
  | |||        | ||   | `* Re: The synergy of type tags on register file registersBGB
  | |||        | ||   |  `* Re: The synergy of type tags on register file registersScott Lurndal
  | |||        | ||   |   `* Re: The synergy of type tags on register file registersBGB
  | |||        | ||   |    `* Re: The synergy of type tags on register file registersScott Lurndal
  | |||        | ||   |     +* Re: The synergy of type tags on register file registersStephen Fuld
  | |||        | ||   |     |`- Re: The synergy of type tags on register file registersScott Lurndal
  | |||        | ||   |     +* Re: The synergy of type tags on register file registersMitchAlsup
  | |||        | ||   |     |`* Re: The synergy of type tags on register file registersScott Lurndal
  | |||        | ||   |     | `* Re: The synergy of type tags on register file registersMitchAlsup
  | |||        | ||   |     |  `- Re: The synergy of type tags on register file registersScott Lurndal
  | |||        | ||   |     `* Re: The synergy of type tags on register file registersBGB
  | |||        | ||   `- Re: The synergy of type tags on register file registersIvan Godard
  | |||        | |+* Re: The synergy of type tags on register file registersAnton Ertl
  | |||        | |`* Re: The synergy of type tags on register file registersTerje Mathisen
  | |||        | +* Re: The synergy of type tags on register file registersBill Findlay
  | |||        | `- Re: The synergy of type tags on register file registersTerje Mathisen
  | |||        `- Re: The synergy of type tags on register file registersMitchAlsup
  | ||`* Re: The synergy of type tags on register file registersScott Lurndal
  | |`- Re: The synergy of type tags on register file registersNiklas Holsti
  | `- Re: The synergy of type tags on register file registersScott Lurndal
  `* Re: The synergy of type tags on register file registersPaul A. Clayton

Pages:12345678910
Re: The synergy of type tags on register file registers

<2023Jun1.192454@mips.complang.tuwien.ac.at>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: anton@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Thu, 01 Jun 2023 17:24:54 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 36
Message-ID: <2023Jun1.192454@mips.complang.tuwien.ac.at>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com> <u52llu$1hhcg$1@dont-email.me> <de07d460-5a41-43bc-90dc-ccbf200c70a2n@googlegroups.com> <U08dM.3507590$iU59.3142722@fx14.iad> <u56s31$2b4h8$1@dont-email.me>
Injection-Info: dont-email.me; posting-host="8ee7aadf0c53e004ef920cf76e816ac1";
logging-data="3003156"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19qXT5wTYHgl4WoWE0RWzYj"
Cancel-Lock: sha1:dCA2ItQb/7YaY2W9jeOVBuGLIFk=
X-newsreader: xrn 10.11
 by: Anton Ertl - Thu, 1 Jun 2023 17:24 UTC

BGB <cr88192@gmail.com> writes:
>On 5/29/2023 3:36 PM, Scott Lurndal wrote:
>IMHO, going much past 128 bits likely goes into diminishing returns
>territory.

The Cray-1 has 4096-bit vector registers, and some of the other vector
machines succeeding it used even longer vectors.

>For practical working sizes for data, 32/64/128 make sense.
> 8 and 16 bits make sense for storage or for SIMD elements.
> 256 or 512 are almost "too big to be useful" in most cases.

If you do some data-parallel processing (where the SIMD stuff shines),
doubling the SIMD width can (in the best case) halve the time needed
to process the data.

>Progressively doubling the size of the registers doesn't seem to make
>sense from a cost POV.

You double only the data and don't need to double rename resources
etc. (IIRC Zen4 splits an AVX-512 instruction into two 256-bit parts
that have independently renamed 256-bit registers, though).

>Say, for example, I would imagine that 32x 512-bit registers will cost a
>fair bit more than 32x 128-bit registers.
>
>But, what can one "actually do with them" to justify the additional
>costs?...

Encoding, decoding, encrypting, wheather prediction, hydrodynamics,
image processing, AI etc.

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

Re: The synergy of type tags on register file registers

<974bc08b-5ae2-4fea-ac54-8dae1098d09bn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:25c7:b0:75b:2820:8baf with SMTP id y7-20020a05620a25c700b0075b28208bafmr2882441qko.10.1685641590371;
Thu, 01 Jun 2023 10:46:30 -0700 (PDT)
X-Received: by 2002:a9d:69d9:0:b0:6af:9b18:acd0 with SMTP id
v25-20020a9d69d9000000b006af9b18acd0mr54068oto.6.1685641590087; Thu, 01 Jun
2023 10:46:30 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Thu, 1 Jun 2023 10:46:29 -0700 (PDT)
In-Reply-To: <2023Jun1.192454@mips.complang.tuwien.ac.at>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:706f:8c5c:2a38:74c0;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:706f:8c5c:2a38:74c0
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de>
<u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de>
<u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<u52llu$1hhcg$1@dont-email.me> <de07d460-5a41-43bc-90dc-ccbf200c70a2n@googlegroups.com>
<U08dM.3507590$iU59.3142722@fx14.iad> <u56s31$2b4h8$1@dont-email.me> <2023Jun1.192454@mips.complang.tuwien.ac.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <974bc08b-5ae2-4fea-ac54-8dae1098d09bn@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Thu, 01 Jun 2023 17:46:30 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: MitchAlsup - Thu, 1 Jun 2023 17:46 UTC

On Thursday, June 1, 2023 at 12:38:31 PM UTC-5, Anton Ertl wrote:
> BGB <cr8...@gmail.com> writes:
> >On 5/29/2023 3:36 PM, Scott Lurndal wrote:
> >IMHO, going much past 128 bits likely goes into diminishing returns
> >territory.
> The Cray-1 has 4096-bit vector registers, and some of the other vector
> machines succeeding it used even longer vectors.
> >For practical working sizes for data, 32/64/128 make sense.
> > 8 and 16 bits make sense for storage or for SIMD elements.
> > 256 or 512 are almost "too big to be useful" in most cases.
> If you do some data-parallel processing (where the SIMD stuff shines),
> doubling the SIMD width can (in the best case) halve the time needed
> to process the data.
> >Progressively doubling the size of the registers doesn't seem to make
> >sense from a cost POV.
> You double only the data and don't need to double rename resources
> etc. (IIRC Zen4 splits an AVX-512 instruction into two 256-bit parts
> that have independently renamed 256-bit registers, though).
> >Say, for example, I would imagine that 32x 512-bit registers will cost a
> >fair bit more than 32x 128-bit registers.
> >
> >But, what can one "actually do with them" to justify the additional
> >costs?...
> Encoding,
integer
> decoding,
integer
> encrypting,
integer
> wheather prediction,
large FP
> hydrodynamics,
large FP
> image processing,
mostly integer
now graphics is a mix of short FP and integer
> AI etc.
really short FP--but still searching for exactly what really short FP.
> - anton
> --
> 'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
> Mitch Alsup, <c17fcd89-f024-40e7...@googlegroups.com>

Re: The synergy of type tags on register file registers

<u5bhlv$32cqh$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: cr88192@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Thu, 1 Jun 2023 20:46:37 -0500
Organization: A noiseless patient Spider
Lines: 171
Message-ID: <u5bhlv$32cqh$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at>
<u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at>
<u57ond$2edvp$1@dont-email.me> <u57v63$2f5km$1@dont-email.me>
<4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
<Ds1eM.858712$PXw7.741546@fx45.iad>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 2 Jun 2023 01:46:39 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="d071f4574133448f6de65ac1b0dc716b";
logging-data="3224401"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+OLHSi1hY1nTRHGoPk6hG/"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:2jxO8QjTJNPAJ4+czGauDj/dK1Y=
In-Reply-To: <Ds1eM.858712$PXw7.741546@fx45.iad>
Content-Language: en-US
 by: BGB - Fri, 2 Jun 2023 01:46 UTC

On 6/1/2023 8:56 AM, Scott Lurndal wrote:
> "robf...@gmail.com" <robfi680@gmail.com> writes:
>> On Wednesday, May 31, 2023 at 1:12:39=E2=80=AFPM UTC-4, BGB wrote:
>>> On 5/31/2023 10:22 AM, Stephen Fuld wrote:=20
>>>> On 5/30/2023 10:54 PM, Anton Ertl wrote:=20
>
>>> =20
>>> An ISA with 128-bit GPRs would be the more preferable option, and one=20
>>> could likely use the large registers either for a large address space,=20
>>> or maybe bounds-checked access or capabilities.=20
>>> =20
>>> =20
>>> Say, Array Pointer:=20
>>> ( 63: 0): Address Field=20
>>> ( 83: 64): Array Size (Scaled)=20
>>> (103: 84): Array Lower Bias=20
>>> (108:104): Array Scale / Exponent=20
>>> (111:109): Array RWX Mode=20
>>> (123:112): Array Element Tag=20
>>> (127:124): Top-Level Tag (Say, 0011 for Array)=20
>
> See https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/
>

Yeah.

This was not meant to reflect the CHERI layout, but would serve a
functionally similar purpose.

I already have something similar in my ISA, though its scope is more
limited (mostly just used for bounds checks).

CHERI is pros/cons, but some parts seem like good ideas (and ISA
enforced bounds checking is a pretty nifty debugging feature, in any case).

In my case, the bounding scheme operates in a slightly different way.

Looking stuff up:
CHERI "Low Fat" 64-bit
(45: 0): Address
(51:46): Base
(57:52): Top
(63:58): Exponent

CHERI-128:
( 63: 0): Address
( 66: 64): BaseExp
( 83: 67): Base
( 86: 84): TopExp
(104: 87): Top
( 105): Sealed
( 106): Top-Increment
(111:107): -
(127:112): Permissions

And, my case:
BJX2, Bounds-Checked, 64-bit
(47: 0): Address
(50:48): Array Size
(55:51): Exponent (Log2)
(59:56): Bias
(63:60): Tag (0011)

BJX2, Bounds-Checked, 128-bit
( 47: 0): Address (Low, Addr(47:0) )
( 59: 48): Size
( 63: 60): Tag (0011)
(111: 64): Address (High, Addr(95:48) )
(123:112): Bias
(127:124): Exponent (Log4, 0=16B)

The CHERI schemes would be more accurate in these cases.

They seem to work by using the Exponent, Base, and Top, to unpack into a
pair of upper and lower bounds, eg:
LowBound = { Addr[max:exp+width], Base, zeroes[exp-1:0] };
TopBound = { Addr[max:exp+width], Top, zeroes[exp-1:0] };

And then evaluating:
LowBound <= Addr < TopBound

The BJX2 scheme had instead encoded a relative upper bound, and a Bias
which encodes the aligned distance between current address and the Lower
Bound.

In the 64 bit format, the array size is encoded with a hidden bit (like
in a floating point formats). The current 128-bit formats lack a hidden
bit (so are non-normalized).

Also, very possibly the 96-bit address space is needlessly overkill.

The existing 128-bit format was the older format in this case (partly
related to the Log4 wonk). The use of Log4 seems like a misstep in
retrospect.

So, an operation like LEAT would perform a LEA, and then use this to
figure out how far to adjust the Bias (my scheme needs to account for
carry out of the low-order bits, which would be N/A in the CHERI scheme).

In my case, the bounds-checking operation is performed relative to the
exponent rather than using absolute address comparisons. Mostly because
this is cheaper and "less bad" for timing.

So, in this case, after an address calculation, so long as:
0 <= NewBias < Size

If NewBias is out of range, either trigger a Bounds Fault, or change to
a Trap representation, depending on the operation.

There are pros/cons between the two bounds encoding schemes.
Not entirely sure which is better.
Though, the CHERI scheme does seem to make more intuitive sense.

There is a functional difference between 64 and 128-bit pointers in my case:
64-bit pointers are unchecked by default;
128-bit pointers are assumed bounds-checked if the tag says so.

In the former case, it is needed to invoke the bounds check manually,
whereas the latter will just assume the use of bounds checking.

Had considered a possible variant that uses a 128-bit pointer with
48-bit address (located in the same part of the address space as the
64-bit pointers)

Could then afford to put access-rights metadata in the pointer.

Say, for example:
( 47: 0): Address (Low)
( 59: 48): Object/Array Type
( 63: 60): Tag
( 83: 64): Bias
(103: 84): Size
(108:104): Exponent
(111:109): RWX Mask
(127:112): ACLID (Access Control List) (?)

....

In case anyone is wondering, No, the ACL's are not intended as any sort
of "server" feature; rather they are a part of my memory-protection
scheme. Though, whether putting them in pointers "makes sense" (and does
not open a potential security hole) is debatable.

I guess the other factor is whether to try to find some way of taking
registers (and memory) as pointer or non-pointer.

Doing this for registers wouldn't be too hard (there would just now need
to be an extra control register holding the "pointer bit" for all the
other registers).

Memory tagging is the harder problem here...

....

Re: The synergy of type tags on register file registers

<c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:1a13:b0:75b:3551:7540 with SMTP id bk19-20020a05620a1a1300b0075b35517540mr2863205qkb.9.1685671435025;
Thu, 01 Jun 2023 19:03:55 -0700 (PDT)
X-Received: by 2002:a9d:61c3:0:b0:6af:7dcb:b9c1 with SMTP id
h3-20020a9d61c3000000b006af7dcbb9c1mr400401otk.6.1685671434731; Thu, 01 Jun
2023 19:03:54 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Thu, 1 Jun 2023 19:03:54 -0700 (PDT)
In-Reply-To: <Ds1eM.858712$PXw7.741546@fx45.iad>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:706f:8c5c:2a38:74c0;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:706f:8c5c:2a38:74c0
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me>
<2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me>
<2023May31.075457@mips.complang.tuwien.ac.at> <u57ond$2edvp$1@dont-email.me>
<u57v63$2f5km$1@dont-email.me> <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
<Ds1eM.858712$PXw7.741546@fx45.iad>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Fri, 02 Jun 2023 02:03:55 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2015
 by: MitchAlsup - Fri, 2 Jun 2023 02:03 UTC

On Thursday, June 1, 2023 at 8:56:55 AM UTC-5, Scott Lurndal wrote:
>
> See https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/
<
If there is one thing I am smart enough to understand::
<
It is that I am not smart enough to grasp capabilities to the extent
needed to architect a capability machine.
<
.............

Re: The synergy of type tags on register file registers

<u5bmdu$32rbr$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: cr88192@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Thu, 1 Jun 2023 22:07:41 -0500
Organization: A noiseless patient Spider
Lines: 23
Message-ID: <u5bmdu$32rbr$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at>
<u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at>
<u57ond$2edvp$1@dont-email.me> <u57v63$2f5km$1@dont-email.me>
<4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
<Ds1eM.858712$PXw7.741546@fx45.iad>
<c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 2 Jun 2023 03:07:42 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="d071f4574133448f6de65ac1b0dc716b";
logging-data="3239291"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/tCMIXWNJk4zsJZoqxymZa"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:El7XVKZCenJX/EZUQhFXNTDbW00=
In-Reply-To: <c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com>
Content-Language: en-US
 by: BGB - Fri, 2 Jun 2023 03:07 UTC

On 6/1/2023 9:03 PM, MitchAlsup wrote:
> On Thursday, June 1, 2023 at 8:56:55 AM UTC-5, Scott Lurndal wrote:
>>
>> See https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/
> <
> If there is one thing I am smart enough to understand::
> <
> It is that I am not smart enough to grasp capabilities to the extent
> needed to architect a capability machine.
> <
> ............

Is any of us?...

This is why BJX2 is not a capability machine, even if it does "borrow" a
few design ideas...

Admittedly, I have put a more of my "security eggs" in the "page tables
and page-level memory protection" basket.

Well, and throw in some ASLR and similar for good measure...

Re: The synergy of type tags on register file registers

<f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:54f:b0:3d5:49eb:4d1e with SMTP id m15-20020a05622a054f00b003d549eb4d1emr3597278qtx.1.1685695548935; Fri, 02 Jun 2023 01:45:48 -0700 (PDT)
X-Received: by 2002:a05:6830:e8a:b0:6ab:35a6:de27 with SMTP id dp10-20020a0568300e8a00b006ab35a6de27mr557283otb.0.1685695548119; Fri, 02 Jun 2023 01:45:48 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!feeder.usenetexpress.com!tr2.iad1.usenetexpress.com!69.80.99.15.MISMATCH!border-1.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 2 Jun 2023 01:45:47 -0700 (PDT)
In-Reply-To: <c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=92.19.80.230; posting-account=soFpvwoAAADIBXOYOBcm_mixNPAaxW9p
NNTP-Posting-Host: 92.19.80.230
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com> <d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at> <u57ond$2edvp$1@dont-email.me> <u57v63$2f5km$1@dont-email.me> <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com> <Ds1eM.858712$PXw7.741546@fx45.iad> <c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: luke.leighton@gmail.com (luke.l...@gmail.com)
Injection-Date: Fri, 02 Jun 2023 08:45:48 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 26
 by: luke.l...@gmail.com - Fri, 2 Jun 2023 08:45 UTC

On Friday, June 2, 2023 at 3:03:56 AM UTC+1, MitchAlsup wrote:
> On Thursday, June 1, 2023 at 8:56:55 AM UTC-5, Scott Lurndal wrote:
> >
> > See https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/
> <
> If there is one thing I am smart enough to understand::
> It is that I am not smart enough to grasp capabilities to the extent
> needed to architect a capability machine.

my professor at imperial back in (eek!) 1989 explained it
to me, i wish i could remember his name.

* Access Control gives you information about what exists
*and* then also says whether you can (or cannot) use it
* Cambridge Capability doesn't even let you know if the
information exists, let alone allows you to use it.

therefore we may say that Virtual Memory Page tables
are in fact a "Capability" System, but the Page-Table
read/write/execute bits are *NOT* Capabiltiy-compliant
they are Access Control (and frequently described in
actual ISA Ref Manuals as such).

that was back then - i have no idea what they done now.

l.

Re: The synergy of type tags on register file registers

<b5dd4107-57f4-4e76-9231-8f8a18d61568n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:4725:b0:75b:2f5a:172d with SMTP id bs37-20020a05620a472500b0075b2f5a172dmr2754144qkb.14.1685700184827;
Fri, 02 Jun 2023 03:03:04 -0700 (PDT)
X-Received: by 2002:a05:6870:b7b0:b0:19a:245b:ea70 with SMTP id
ed48-20020a056870b7b000b0019a245bea70mr574107oab.11.1685700184527; Fri, 02
Jun 2023 03:03:04 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!1.us.feeder.erje.net!feeder.erje.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 2 Jun 2023 03:03:04 -0700 (PDT)
In-Reply-To: <b510bc37-bbd4-474b-8023-5bc607012f4dn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2a0d:6fc2:55b0:ca00:39bd:cff6:8e24:fa66;
posting-account=ow8VOgoAAAAfiGNvoH__Y4ADRwQF1hZW
NNTP-Posting-Host: 2a0d:6fc2:55b0:ca00:39bd:cff6:8e24:fa66
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de>
<u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de>
<u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me>
<2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me>
<2023May31.075457@mips.complang.tuwien.ac.at> <u57ond$2edvp$1@dont-email.me>
<u57v63$2f5km$1@dont-email.me> <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
<b510bc37-bbd4-474b-8023-5bc607012f4dn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b5dd4107-57f4-4e76-9231-8f8a18d61568n@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: already5chosen@yahoo.com (Michael S)
Injection-Date: Fri, 02 Jun 2023 10:03:04 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 8305
 by: Michael S - Fri, 2 Jun 2023 10:03 UTC

On Thursday, June 1, 2023 at 4:50:26 AM UTC+3, MitchAlsup wrote:
> On Wednesday, May 31, 2023 at 8:04:47 PM UTC-5, robf...@gmail.com wrote:
> > On Wednesday, May 31, 2023 at 1:12:39 PM UTC-4, BGB wrote:
> > > On 5/31/2023 10:22 AM, Stephen Fuld wrote:
> > > > On 5/30/2023 10:54 PM, Anton Ertl wrote:
> > > >> Stephen Fuld <sf...@alumni.cmu.edu.invalid> writes:
> > > >>> But then how do you propose
> > > >>> handling 128 bit arithmetic (both integer and floating), assuming these
> > > >>> are requirements? ISTM that if you don't use paired registers, then you
> > > >>> have to double the number of register specifiers in each ALU
> > > >>> instruction or do something like Mitch's instruction modifier mechanism
> > > >>> or go to 128 bit registers.
> > > >>
> > > >> 128-bit registers look fine to me. AMD64 has them already (the xmm
> > > >> registers), ARMv8-A has them already (and I think ARMv7-A, too;
> > > >> ARMv9-A is an extension of ARMv8.5-A, and so also supports these
> > > >> registers). So you just need to add the instructions that use them
> > > >> for computing with 128-bit values.
> > > >
> > > > Fair enough. I agree with Mitch in that I don't like the separate SIMD
> > > > register approach, preferring VVM, but that would mean 128 bit GPRs,
> > > > which we are not ready for yet. (The key word here is yet. I expect
> > > > they will come.) If 128 bit arithmetic becomes popular, and it is only
> > > > implemented in the SIMD registers, you could end up with something like
> > > > the 68000 with separate data versus address registers. :-(
> > > >
> > > I would personally much rather see a single unified register file, in
> > > any case.
> > >
> > >
> > > An ISA with 128-bit GPRs would be the more preferable option, and one
> > > could likely use the large registers either for a large address space,
> > > or maybe bounds-checked access or capabilities.
> > >
> > >
> > > Say, Array Pointer:
> > > ( 63: 0): Address Field
> > > ( 83: 64): Array Size (Scaled)
> > > (103: 84): Array Lower Bias
> > > (108:104): Array Scale / Exponent
> > > (111:109): Array RWX Mode
> > > (123:112): Array Element Tag
> > > (127:124): Top-Level Tag (Say, 0011 for Array)
> > >
> > > Could still need fine adjustment, potentially 20 bits is overkill for
> > > the size field when combined with an exponent.
> > > Say, if we allow an 8B alignment, this allows an array that is 8MB which
> > > is, most likely, going to be page-aligned.
> > >
> > > If we assume a 4K alignment, this allows up to 4GB. OTOH, if the field
> > > were smaller, this would mean more likely needing to pad arrays in many
> > > cases.
> > >
> > >
> > > Main drawback being that, if the program is primarily working with
> > > 32-bit 'int' values, then 128-bit registers would be kind of a waste.
> > >
> > >
> > > It is usually only in edge cases that 128-bit integers really "make
> > > sense", and even then, existing C compilers tend to not support them.
> > >
> > > Like, if on many targets, if one does "__int128", the compiler is like
> > > "Not supported on this target", this is a disincentive to use them, and
> > > means that typically the program will (at most) end up only using half
> > > the register.
> > >
> > >
> > > Though, could have the amusing property if, say, one supports fixnum's,
> > > and the fixnum ends up having a larger value range than C's 'long' and
> > > 'long long' types...
> > >
> > >
> > > Other concerns:
> > > Resource cost would likely be higher, as now supporting superscalar is a
> > > bit more of an ask;
> > > Maximum clock speed would likely be lower;
> > > ...
> > >
> > > Could be OK for a 1-wide scalar machine though (or maybe a future 2-wide
> > > superscalar).
> > >
> > >
> > > But, yeah, could work...
> > >
> > >
> > > >
> > > >
> > I think 64-bits for the address field may not be enough for a virtual address. I
> > seem to recall a demand for 100-bit addressing in an alternate reality, but that
> > is probably quite a few years away. I also think it is better to have registers
> > just as a plain bucket. As soon as structure is added the design is stuck with
> > it. A separate tags file associated with registers might be easier to manage.
> >
> > I am not so sure about the slowness of a superscalar. I think it may have more
> > to do with how full the FPGA is, the size and style of the design. I have been
> > able to hit close to 50 MHz timing according to the tools. I think 50 MHz is on
> > par with many other FPGA designs. Even if it is a few MHz slower the ability of
> > OoO to hide latency may make it worth it.
> >
> > *****
> > I cannot believe I ignored Cordic for so long, having discovered its beauty.
> <
> Beautiful and slow as crap.
> <
> > Answering my own engineering question, 10-bits max micro-code it is; that
> > should be overkill. It should not take very many, if any micro-code words for
> > basic trig. Previously seven bits were used for Thor2021, but only about a half
> > dozen non-math instructions were micro-coded.
> >
> > Having done some head scratching over cordic and how to calculate the tan,
> > I am thinking of just providing a cordic instruction that takes all three
> > arguments and calculates away, and then leave it up to the programmer to
> > decide on operands and what is being calculated. I get how to calculate sin
> > and cosine via cordic and I think tan finally. Specifying that x, y must be
> > fractions between 0 and 1, and that the angle must be radians between 0
> > and 2 pi.
> >
> > I gather that modern processor do not use Cordic, and use polynomial
> > expansions instead.
> <
> Typical SW can perform tan() in 150± cycles.

How do you know?
From past experience I would guess that you didn't actually measure it, do you?

Re: The synergy of type tags on register file registers

<c3d743bb-c49f-4130-aaa0-b7523a7f787dn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:5914:0:b0:3f0:b59c:82b6 with SMTP id 20-20020ac85914000000b003f0b59c82b6mr3639902qty.10.1685703368593;
Fri, 02 Jun 2023 03:56:08 -0700 (PDT)
X-Received: by 2002:a9d:651a:0:b0:6af:9c61:c0e4 with SMTP id
i26-20020a9d651a000000b006af9c61c0e4mr594329otl.5.1685703368322; Fri, 02 Jun
2023 03:56:08 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 2 Jun 2023 03:56:08 -0700 (PDT)
In-Reply-To: <2023Jun1.191907@mips.complang.tuwien.ac.at>
Injection-Info: google-groups.googlegroups.com; posting-host=2a0d:6fc2:55b0:ca00:39bd:cff6:8e24:fa66;
posting-account=ow8VOgoAAAAfiGNvoH__Y4ADRwQF1hZW
NNTP-Posting-Host: 2a0d:6fc2:55b0:ca00:39bd:cff6:8e24:fa66
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de>
<u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de>
<u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<u52llu$1hhcg$1@dont-email.me> <de07d460-5a41-43bc-90dc-ccbf200c70a2n@googlegroups.com>
<U08dM.3507590$iU59.3142722@fx14.iad> <2023Jun1.191907@mips.complang.tuwien.ac.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c3d743bb-c49f-4130-aaa0-b7523a7f787dn@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: already5chosen@yahoo.com (Michael S)
Injection-Date: Fri, 02 Jun 2023 10:56:08 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Michael S - Fri, 2 Jun 2023 10:56 UTC

On Thursday, June 1, 2023 at 8:24:47 PM UTC+3, Anton Ertl wrote:
> sc...@slp53.sl.home (Scott Lurndal) writes:
> >ARM's scalable vector extension allows implementations to choose
> >any power of two between 128 and 2048 bits. Current extant implementations
> >only support 128 bits so far as I am aware.
> The Fujitsu A64FX supports 512-bit SVE; it was one of the earliest, if
> not the earliest SVE implementation.
> - anton
> --
> 'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
> Mitch Alsup, <c17fcd89-f024-40e7...@googlegroups.com>

The earliest by far. Fugaku prototype topped Green500 list back in Nov 2019.
I think, the next implementation didn't appear until Dec 2021.

As to extant implementation with width that differs from both 512 and 128,
there is Arm Neoverse-V1 that features 256-bit SVE.
Considering that V1 is at heart of AWS Graviton3, I'd say that it not just extant,
but orders of magnitude more extant than any Arm SOC ever made by Cavium.
Probably at least order of magnitude more extant than SoCs made by ex-Cavium
division of Marvel.
On the other hand, in comparison to Cortex X2 and X3 (128-bit SVE) Neoverse-V1
is indeed not numerous.

Re: The synergy of type tags on register file registers

<QrneM.597255$mmyc.279072@fx37.iad>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!panix!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx37.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: scott@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: The synergy of type tags on register file registers
Newsgroups: comp.arch
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at> <u57ond$2edvp$1@dont-email.me> <u57v63$2f5km$1@dont-email.me> <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com> <Ds1eM.858712$PXw7.741546@fx45.iad> <c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com> <f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com>
Lines: 26
Message-ID: <QrneM.597255$mmyc.279072@fx37.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Fri, 02 Jun 2023 14:57:52 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Fri, 02 Jun 2023 14:57:52 GMT
X-Received-Bytes: 2197
 by: Scott Lurndal - Fri, 2 Jun 2023 14:57 UTC

"luke.l...@gmail.com" <luke.leighton@gmail.com> writes:
>On Friday, June 2, 2023 at 3:03:56=E2=80=AFAM UTC+1, MitchAlsup wrote:
>> On Thursday, June 1, 2023 at 8:56:55=E2=80=AFAM UTC-5, Scott Lurndal wrot=
>e:=20
>> >=20
>> > See https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/=20
>> <=20
>> If there is one thing I am smart enough to understand::=20
>> It is that I am not smart enough to grasp capabilities to the extent=20
>> needed to architect a capability machine.=20
>
>my professor at imperial back in (eek!) 1989 explained it
>to me, i wish i could remember his name.
>
>* Access Control gives you information about what exists
> *and* then also says whether you can (or cannot) use it
>* Cambridge Capability doesn't even let you know if the
> information exists, let alone allows you to use it.

The key point about capabilities is that they can only
be created or modified under very constrained conditions;
e.g. new capabilities can only be constructed as a subset
of an existing capability. This requires that capabilities
be 'tagged' in some way to prevent software from corrupting
or updating the capability.

Re: The synergy of type tags on register file registers

<u5d4fa$37u8l$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: cr88192@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Fri, 2 Jun 2023 11:13:26 -0500
Organization: A noiseless patient Spider
Lines: 53
Message-ID: <u5d4fa$37u8l$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at>
<u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at>
<u57ond$2edvp$1@dont-email.me> <u57v63$2f5km$1@dont-email.me>
<4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
<Ds1eM.858712$PXw7.741546@fx45.iad>
<c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com>
<f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com>
<QrneM.597255$mmyc.279072@fx37.iad>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 2 Jun 2023 16:13:30 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="d071f4574133448f6de65ac1b0dc716b";
logging-data="3406101"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19Le8/nlBbNnJMb2aqERzPo"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:bg+ap/LRE/p5cZsVtra19My5rvo=
In-Reply-To: <QrneM.597255$mmyc.279072@fx37.iad>
Content-Language: en-US
 by: BGB - Fri, 2 Jun 2023 16:13 UTC

On 6/2/2023 9:57 AM, Scott Lurndal wrote:
> "luke.l...@gmail.com" <luke.leighton@gmail.com> writes:
>> On Friday, June 2, 2023 at 3:03:56=E2=80=AFAM UTC+1, MitchAlsup wrote:
>>> On Thursday, June 1, 2023 at 8:56:55=E2=80=AFAM UTC-5, Scott Lurndal wrot=
>> e:=20
>>>> =20
>>>> See https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/=20
>>> <=20
>>> If there is one thing I am smart enough to understand::=20
>>> It is that I am not smart enough to grasp capabilities to the extent=20
>>> needed to architect a capability machine.=20
>>
>> my professor at imperial back in (eek!) 1989 explained it
>> to me, i wish i could remember his name.
>>
>> * Access Control gives you information about what exists
>> *and* then also says whether you can (or cannot) use it
>> * Cambridge Capability doesn't even let you know if the
>> information exists, let alone allows you to use it.
>
> The key point about capabilities is that they can only
> be created or modified under very constrained conditions;
> e.g. new capabilities can only be constructed as a subset
> of an existing capability. This requires that capabilities
> be 'tagged' in some way to prevent software from corrupting
> or updating the capability.
>

Yes.

This is also where the problems begin...
And also their major weakness if used as a security feature (in place of
more traditional access control).

This is why I had initially thought of only trying to copy the
bounds-checking aspects, and then handle the security aspects via a
different mechanism (access control lists) and putting things at random
addresses within a 96-bit address space.

Though, the latter point turned out to be a problem, as with deep page
tables, randomizing the address can make for a "very bad" level of
overhead (but mostly a non-issue for shallow tables). Only workarounds I
have are, arguably, not ideal.

Will at least claim they work in my use-cases though (which are not in
areas that are traditionally all that concerned with security). And, my
stuff is admittedly "not very secure", but does have an "implicit air
gap" for sake of not having a network stack... (network support being
"TODO, eventually").

Re: The synergy of type tags on register file registers

<u5d5cd$380od$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: cr88192@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Fri, 2 Jun 2023 11:28:58 -0500
Organization: A noiseless patient Spider
Lines: 112
Message-ID: <u5d5cd$380od$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com>
<u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me>
<u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<u52llu$1hhcg$1@dont-email.me>
<de07d460-5a41-43bc-90dc-ccbf200c70a2n@googlegroups.com>
<U08dM.3507590$iU59.3142722@fx14.iad> <u56s31$2b4h8$1@dont-email.me>
<2023Jun1.192454@mips.complang.tuwien.ac.at>
<974bc08b-5ae2-4fea-ac54-8dae1098d09bn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 2 Jun 2023 16:29:02 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="d071f4574133448f6de65ac1b0dc716b";
logging-data="3408653"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18NooGeERP3T+3rEdofKHiM"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:tH4dxBEvwM4VFlaKQgMK13MzxSY=
Content-Language: en-US
In-Reply-To: <974bc08b-5ae2-4fea-ac54-8dae1098d09bn@googlegroups.com>
 by: BGB - Fri, 2 Jun 2023 16:28 UTC

On 6/1/2023 12:46 PM, MitchAlsup wrote:
> On Thursday, June 1, 2023 at 12:38:31 PM UTC-5, Anton Ertl wrote:
>> BGB <cr8...@gmail.com> writes:
>>> On 5/29/2023 3:36 PM, Scott Lurndal wrote:
>>> IMHO, going much past 128 bits likely goes into diminishing returns
>>> territory.
>> The Cray-1 has 4096-bit vector registers, and some of the other vector
>> machines succeeding it used even longer vectors.
>>> For practical working sizes for data, 32/64/128 make sense.
>>> 8 and 16 bits make sense for storage or for SIMD elements.
>>> 256 or 512 are almost "too big to be useful" in most cases.
>> If you do some data-parallel processing (where the SIMD stuff shines),
>> doubling the SIMD width can (in the best case) halve the time needed
>> to process the data.

If your data is big enough to make effective use of the larger SIMD
registers, and there is a good way to express them in the language...

This is where "SIMD intrinsics" in compilers tend to hit a road bump, as
there is typically no real way to deal with variability in register size
of feature-set short of rewriting the code for each combination.

I guess large vectors could be more useful if the language supported
"abstract large vector" and "tensor" types and operators. Where, say, if
one specifies a tensor type and operator, they don't need to care how
wide the underlying SIMD unit is.

But, then again, since it is pretty hit-or-miss whether '__int128' will
work on a given target, one can't hold out much hope...

>>> Progressively doubling the size of the registers doesn't seem to make
>>> sense from a cost POV.
>> You double only the data and don't need to double rename resources
>> etc. (IIRC Zen4 splits an AVX-512 instruction into two 256-bit parts
>> that have independently renamed 256-bit registers, though).

Some stuff still moves quickly it seems...

It was only a few years ago that I got a Zen+, which seemingly still
uses 128-bit internally (but sorta fake it for 256-bit AVX ops).

>>> Say, for example, I would imagine that 32x 512-bit registers will cost a
>>> fair bit more than 32x 128-bit registers.
>>>
>>> But, what can one "actually do with them" to justify the additional
>>> costs?...
>> Encoding,
> integer
>> decoding,
> integer
>> encrypting,
> integer
>> wheather prediction,
> large FP
>> hydrodynamics,
> large FP
>> image processing,
> mostly integer
> now graphics is a mix of short FP and integer
>> AI etc.
> really short FP--but still searching for exactly what really short FP.

Yeah.

For image processing:
RGB555 and RGBA8888 work well for storage, but aren't ideal for processing.

For image processing, in many cases, one often needs either packed Int16
or Binary16 for the intermediate values.

Similarly, for the NNs I had used (mostly for image processing tasks and
similar thus far), Binary16 works OK for processing.

Some people use BF16 (S.E8.F7), but I mostly prefer Binary16 instead. I
suspect most of the appeal of BF16 is that it is easier to pull off
efficiently on machines which have Binary32 support but not Binary16.

One can try using 8-bit formats, such as S.E4.F3 or S.E3.F4, as a
processing format, but these are a little limited even for NNs (but,
they can still be useful as storage formats).

Say, once the value goes through an activation function, the precision
requirements drop significantly (just they matter a little more for the
"multiply and accumulate" stage).

A cheap activation function can also help (such as a crude approximation
of a square-root or signed square root of similar).

Well, along with:
y=(y<0)?0:y;
y=(y<0.5)?0.0:1.0;
...

Using intermediate forms, like:
S.E5.F6 or S.E5.F4
Can still be effective though.

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

Re: The synergy of type tags on register file registers

<9speM.529570$0dpc.321120@fx33.iad>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.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!fx33.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: scott@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: The synergy of type tags on register file registers
Newsgroups: comp.arch
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at> <u57ond$2edvp$1@dont-email.me> <u57v63$2f5km$1@dont-email.me> <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com> <Ds1eM.858712$PXw7.741546@fx45.iad> <c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com> <f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com> <QrneM.597255$mmyc.279072@fx37.iad> <u5d4fa$37u8l$1@dont-email.me>
Lines: 56
Message-ID: <9speM.529570$0dpc.321120@fx33.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Fri, 02 Jun 2023 17:14:45 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Fri, 02 Jun 2023 17:14:45 GMT
X-Received-Bytes: 3621
 by: Scott Lurndal - Fri, 2 Jun 2023 17:14 UTC

BGB <cr88192@gmail.com> writes:
>On 6/2/2023 9:57 AM, Scott Lurndal wrote:
>> "luke.l...@gmail.com" <luke.leighton@gmail.com> writes:
>>> On Friday, June 2, 2023 at 3:03:56=E2=80=AFAM UTC+1, MitchAlsup wrote:
>>>> On Thursday, June 1, 2023 at 8:56:55=E2=80=AFAM UTC-5, Scott Lurndal wrot=
>>> e:=20
>>>>> =20
>>>>> See https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/=20
>>>> <=20
>>>> If there is one thing I am smart enough to understand::=20
>>>> It is that I am not smart enough to grasp capabilities to the extent=20
>>>> needed to architect a capability machine.=20
>>>
>>> my professor at imperial back in (eek!) 1989 explained it
>>> to me, i wish i could remember his name.
>>>
>>> * Access Control gives you information about what exists
>>> *and* then also says whether you can (or cannot) use it
>>> * Cambridge Capability doesn't even let you know if the
>>> information exists, let alone allows you to use it.
>>
>> The key point about capabilities is that they can only
>> be created or modified under very constrained conditions;
>> e.g. new capabilities can only be constructed as a subset
>> of an existing capability. This requires that capabilities
>> be 'tagged' in some way to prevent software from corrupting
>> or updating the capability.
>>
>
>Yes.
>
>This is also where the problems begin...

Please enumerate the problems as you see them.

>And also their major weakness if used as a security feature (in place of
>more traditional access control).

Again, why do you believe this to be a major weakness, and what
"traditional access control" mechanism do you believe is superior?

Note that the Unisys clearpath libra systems are still completely
capability based and security is considered superior to the more
modern non-capability based systems (some extremely small part of which
is due to obscurity, granted). The stack is hardware managed, so no
buffer overflow can target the return instruction address; buffer overflows
are impossible in any case, ROP attacks are impossible, etc.

The only viable attack on those systems was discovered fifty years
ago (and fixed shortly thereafter) and involved copying a program to
tape, loading it on an IBM mainframe, patching it to mark it a compiler[*],
then reloading it on the Burroughs machines. Was even written up in
CACM, IIRC.

[*] Compilers were the only way to generate executable codefiles, and
security restrictions were enforced by the compilers.

Re: The synergy of type tags on register file registers

<8f4715b7-35f3-4607-870d-b1f6fd50587fn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:4447:b0:74d:f7d0:6a5f with SMTP id w7-20020a05620a444700b0074df7d06a5fmr1361962qkp.0.1685726184607;
Fri, 02 Jun 2023 10:16:24 -0700 (PDT)
X-Received: by 2002:a05:6870:72e:b0:19f:57e3:3e3 with SMTP id
ea46-20020a056870072e00b0019f57e303e3mr900710oab.3.1685726184236; Fri, 02 Jun
2023 10:16:24 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!1.us.feeder.erje.net!feeder.erje.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 2 Jun 2023 10:16:23 -0700 (PDT)
In-Reply-To: <b5dd4107-57f4-4e76-9231-8f8a18d61568n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:34c8:5ba:2b21:3a01;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:34c8:5ba:2b21:3a01
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com> <u4vonr$25ppt$1@newsreader4.netcologne.de>
<u50c3t$10g9m$1@dont-email.me> <u51j2o$270ah$1@newsreader4.netcologne.de>
<u51v6p$1cf9p$2@dont-email.me> <806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com> <u53cfh$1mn06$1@dont-email.me>
<2023May30.192304@mips.complang.tuwien.ac.at> <u55f2q$22hh1$1@dont-email.me>
<2023May31.075457@mips.complang.tuwien.ac.at> <u57ond$2edvp$1@dont-email.me>
<u57v63$2f5km$1@dont-email.me> <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
<b510bc37-bbd4-474b-8023-5bc607012f4dn@googlegroups.com> <b5dd4107-57f4-4e76-9231-8f8a18d61568n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8f4715b7-35f3-4607-870d-b1f6fd50587fn@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Fri, 02 Jun 2023 17:16:24 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 8888
 by: MitchAlsup - Fri, 2 Jun 2023 17:16 UTC

On Friday, June 2, 2023 at 5:03:06 AM UTC-5, Michael S wrote:
> On Thursday, June 1, 2023 at 4:50:26 AM UTC+3, MitchAlsup wrote:
> > On Wednesday, May 31, 2023 at 8:04:47 PM UTC-5, robf...@gmail.com wrote:
> > > On Wednesday, May 31, 2023 at 1:12:39 PM UTC-4, BGB wrote:
> > > > On 5/31/2023 10:22 AM, Stephen Fuld wrote:
> > > > > On 5/30/2023 10:54 PM, Anton Ertl wrote:
> > > > >> Stephen Fuld <sf...@alumni.cmu.edu.invalid> writes:
> > > > >>> But then how do you propose
> > > > >>> handling 128 bit arithmetic (both integer and floating), assuming these
> > > > >>> are requirements? ISTM that if you don't use paired registers, then you
> > > > >>> have to double the number of register specifiers in each ALU
> > > > >>> instruction or do something like Mitch's instruction modifier mechanism
> > > > >>> or go to 128 bit registers.
> > > > >>
> > > > >> 128-bit registers look fine to me. AMD64 has them already (the xmm
> > > > >> registers), ARMv8-A has them already (and I think ARMv7-A, too;
> > > > >> ARMv9-A is an extension of ARMv8.5-A, and so also supports these
> > > > >> registers). So you just need to add the instructions that use them
> > > > >> for computing with 128-bit values.
> > > > >
> > > > > Fair enough. I agree with Mitch in that I don't like the separate SIMD
> > > > > register approach, preferring VVM, but that would mean 128 bit GPRs,
> > > > > which we are not ready for yet. (The key word here is yet. I expect
> > > > > they will come.) If 128 bit arithmetic becomes popular, and it is only
> > > > > implemented in the SIMD registers, you could end up with something like
> > > > > the 68000 with separate data versus address registers. :-(
> > > > >
> > > > I would personally much rather see a single unified register file, in
> > > > any case.
> > > >
> > > >
> > > > An ISA with 128-bit GPRs would be the more preferable option, and one
> > > > could likely use the large registers either for a large address space,
> > > > or maybe bounds-checked access or capabilities.
> > > >
> > > >
> > > > Say, Array Pointer:
> > > > ( 63: 0): Address Field
> > > > ( 83: 64): Array Size (Scaled)
> > > > (103: 84): Array Lower Bias
> > > > (108:104): Array Scale / Exponent
> > > > (111:109): Array RWX Mode
> > > > (123:112): Array Element Tag
> > > > (127:124): Top-Level Tag (Say, 0011 for Array)
> > > >
> > > > Could still need fine adjustment, potentially 20 bits is overkill for
> > > > the size field when combined with an exponent.
> > > > Say, if we allow an 8B alignment, this allows an array that is 8MB which
> > > > is, most likely, going to be page-aligned.
> > > >
> > > > If we assume a 4K alignment, this allows up to 4GB. OTOH, if the field
> > > > were smaller, this would mean more likely needing to pad arrays in many
> > > > cases.
> > > >
> > > >
> > > > Main drawback being that, if the program is primarily working with
> > > > 32-bit 'int' values, then 128-bit registers would be kind of a waste.
> > > >
> > > >
> > > > It is usually only in edge cases that 128-bit integers really "make
> > > > sense", and even then, existing C compilers tend to not support them.
> > > >
> > > > Like, if on many targets, if one does "__int128", the compiler is like
> > > > "Not supported on this target", this is a disincentive to use them, and
> > > > means that typically the program will (at most) end up only using half
> > > > the register.
> > > >
> > > >
> > > > Though, could have the amusing property if, say, one supports fixnum's,
> > > > and the fixnum ends up having a larger value range than C's 'long' and
> > > > 'long long' types...
> > > >
> > > >
> > > > Other concerns:
> > > > Resource cost would likely be higher, as now supporting superscalar is a
> > > > bit more of an ask;
> > > > Maximum clock speed would likely be lower;
> > > > ...
> > > >
> > > > Could be OK for a 1-wide scalar machine though (or maybe a future 2-wide
> > > > superscalar).
> > > >
> > > >
> > > > But, yeah, could work...
> > > >
> > > >
> > > > >
> > > > >
> > > I think 64-bits for the address field may not be enough for a virtual address. I
> > > seem to recall a demand for 100-bit addressing in an alternate reality, but that
> > > is probably quite a few years away. I also think it is better to have registers
> > > just as a plain bucket. As soon as structure is added the design is stuck with
> > > it. A separate tags file associated with registers might be easier to manage.
> > >
> > > I am not so sure about the slowness of a superscalar. I think it may have more
> > > to do with how full the FPGA is, the size and style of the design. I have been
> > > able to hit close to 50 MHz timing according to the tools. I think 50 MHz is on
> > > par with many other FPGA designs. Even if it is a few MHz slower the ability of
> > > OoO to hide latency may make it worth it.
> > >
> > > *****
> > > I cannot believe I ignored Cordic for so long, having discovered its beauty.
> > <
> > Beautiful and slow as crap.
> > <
> > > Answering my own engineering question, 10-bits max micro-code it is; that
> > > should be overkill. It should not take very many, if any micro-code words for
> > > basic trig. Previously seven bits were used for Thor2021, but only about a half
> > > dozen non-math instructions were micro-coded.
> > >
> > > Having done some head scratching over cordic and how to calculate the tan,
> > > I am thinking of just providing a cordic instruction that takes all three
> > > arguments and calculates away, and then leave it up to the programmer to
> > > decide on operands and what is being calculated. I get how to calculate sin
> > > and cosine via cordic and I think tan finally. Specifying that x, y must be
> > > fractions between 0 and 1, and that the angle must be radians between 0
> > > and 2 pi.
> > >
> > > I gather that modern processor do not use Cordic, and use polynomial
> > > expansions instead.
> > <
> > Typical SW can perform tan() in 150± cycles.
> How do you know?
> From past experience I would guess that you didn't actually measure it, do you?
<
https://hal.inria.fr/inria-00070636/document
and
http://www.cl.cam.ac.uk/~jrh13/slides/gelato-25may05/slides.pdf
<
the later using 2 FMACs simultaneously.
But there is scant little data on it.

Re: The synergy of type tags on register file registers

<u5dbvr$38nbs$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: cr88192@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Fri, 2 Jun 2023 13:21:44 -0500
Organization: A noiseless patient Spider
Lines: 151
Message-ID: <u5dbvr$38nbs$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at>
<u57ond$2edvp$1@dont-email.me> <u57v63$2f5km$1@dont-email.me>
<4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
<Ds1eM.858712$PXw7.741546@fx45.iad>
<c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com>
<f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com>
<QrneM.597255$mmyc.279072@fx37.iad> <u5d4fa$37u8l$1@dont-email.me>
<9speM.529570$0dpc.321120@fx33.iad>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 2 Jun 2023 18:21:47 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="d071f4574133448f6de65ac1b0dc716b";
logging-data="3431804"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18c909EWjjFfYx1OPqTjsCE"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:FihmdQv02ho+5FxjQwoK5YDIASA=
Content-Language: en-US
In-Reply-To: <9speM.529570$0dpc.321120@fx33.iad>
 by: BGB - Fri, 2 Jun 2023 18:21 UTC

On 6/2/2023 12:14 PM, Scott Lurndal wrote:
> BGB <cr88192@gmail.com> writes:
>> On 6/2/2023 9:57 AM, Scott Lurndal wrote:
>>> "luke.l...@gmail.com" <luke.leighton@gmail.com> writes:
>>>> On Friday, June 2, 2023 at 3:03:56=E2=80=AFAM UTC+1, MitchAlsup wrote:
>>>>> On Thursday, June 1, 2023 at 8:56:55=E2=80=AFAM UTC-5, Scott Lurndal wrot=
>>>> e:=20
>>>>>> =20
>>>>>> See https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/=20
>>>>> <=20
>>>>> If there is one thing I am smart enough to understand::=20
>>>>> It is that I am not smart enough to grasp capabilities to the extent=20
>>>>> needed to architect a capability machine.=20
>>>>
>>>> my professor at imperial back in (eek!) 1989 explained it
>>>> to me, i wish i could remember his name.
>>>>
>>>> * Access Control gives you information about what exists
>>>> *and* then also says whether you can (or cannot) use it
>>>> * Cambridge Capability doesn't even let you know if the
>>>> information exists, let alone allows you to use it.
>>>
>>> The key point about capabilities is that they can only
>>> be created or modified under very constrained conditions;
>>> e.g. new capabilities can only be constructed as a subset
>>> of an existing capability. This requires that capabilities
>>> be 'tagged' in some way to prevent software from corrupting
>>> or updating the capability.
>>>
>>
>> Yes.
>>
>> This is also where the problems begin...
>
> Please enumerate the problems as you see them.
>

The need for tagged memory... Well, and/or opaque handles with a
separate address space for the capabilities; take a pick which is worse.

The need for a bunch of new instructions specific to pointer management
(as opposed to using generic) integer instructions for everything.

No deal-breakers per se.

Though, admittedly, the existing bounds-checking scheme does create an
incentive to add more specialized pointer ops, so may still end up with
these in any case.

>> And also their major weakness if used as a security feature (in place of
>> more traditional access control).
>
> Again, why do you believe this to be a major weakness, and what
> "traditional access control" mechanism do you believe is superior?
>

If you can find a way to forge capabilities, or steal capabilities from
elsewhere, this shoots a big hole in the security model. Maintaining
security without also adding significant hinderances to software
development seems like a bit of a balancing act.

Not so much a fundamental weakness of capability model itself, but
rather an uncertainty about the activities of "mere mortal" programmers
(the incentive being far more often to leave a big gaping hole in the
name of convenience or experience than to "do the right thing" in a
security sense).

But, as noted, my thinking was more that one assigns access control
lists to each memory allocation, and "keys" to each thread or
(temporarily) on a per-module basis.

Say, a certain DLL is allowed to access a certain ACL, but no one else,
with the OS moderating control-flow into and out-of this location (but,
then one needs mutual non-executability/etc in terms of the code
regions, say to prevent someone from trying to hack-in callbacks to
sidestep the flow-control; and all this adds about a potential attack
surface if things aren't set up correctly; back to the whole
"expedience" thing). So, per-thread ACL keys is more likely the more
practical model.

As-is, I had gone per-thread, with (effectively) some APIs working as C
wrappers for COM style objects, with the COM-style objects effectively
initiating a task-switch and RPC into another thread (which operates as
an event-pump for that API).

Say, for example, TKGDI might have Read-Only or Read-Write access to
parts of the program's address space (RW to Heap, RO to most other
areas, No Execute). Program has no direct access to TKGDI's data.

Plan was to move TKRA-GL over to a similar model (eventually, but OpenGL
is a slightly more complex API, and work needs to be split with the
"client side" to avoid it becoming dead-slow).

My model is still not exactly perfect though.

Addr96 also complicates stuff, so I was left considering a scheme to
"compact" Addr96 access down to a 64-bit pointer format (by adding a
level of indirection, treating the pointer as essentially a
Handle+Offset pair, with the "actual" 128-bit base pointer held in a
separate kernel-managed table).

This can allow a "slightly more workable" model for temporarily sharing
objects between tasks (since they could then look more like local pointers).

This would almost work in a vaguely similar way to how "far pointers"
were seemingly intended to be used in x86 protected mode, just with an
internal "shared pointer table" taking over the role of the GDT and LDT,
likely existing in semi-disjoint address space from the main 48-bit
virtual address space.

> Note that the Unisys clearpath libra systems are still completely
> capability based and security is considered superior to the more
> modern non-capability based systems (some extremely small part of which
> is due to obscurity, granted). The stack is hardware managed, so no
> buffer overflow can target the return instruction address; buffer overflows
> are impossible in any case, ROP attacks are impossible, etc.
>

Yeah, eliminating buffer overflows was a motivation for borrowing "some"
ideas from CHERI and similar, even if my scheme isn't exactly 1:1.

It is also useful for debugging, as now going out of bounds in an array
can be an immediate CPU fault.

> The only viable attack on those systems was discovered fifty years
> ago (and fixed shortly thereafter) and involved copying a program to
> tape, loading it on an IBM mainframe, patching it to mark it a compiler[*],
> then reloading it on the Burroughs machines. Was even written up in
> CACM, IIRC.
>
> [*] Compilers were the only way to generate executable codefiles, and
> security restrictions were enforced by the compilers.

OK.

I was hoping for a model that still holds in the face of untrusted
binary code.

But, this is a bit of an ask...
What I have now still falls well short.

Re: The synergy of type tags on register file registers

<u5ddcf$38t1d$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: terje.mathisen@tmsw.no (Terje Mathisen)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Fri, 2 Jun 2023 20:45:34 +0200
Organization: A noiseless patient Spider
Lines: 26
Message-ID: <u5ddcf$38t1d$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com>
<u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me>
<u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at>
<u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 2 Jun 2023 18:45:35 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="4f1c08af4affa9ea2a282d2d823f3b51";
logging-data="3437613"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/B5iYdPHIsXwb9noGoSHwXmLY2SJpzN72ub75hXWWH0w=="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Firefox/91.0 SeaMonkey/2.53.16
Cancel-Lock: sha1:B25/n6CVmRsW0ts0mHULTst6kEM=
In-Reply-To: <2023May31.075457@mips.complang.tuwien.ac.at>
 by: Terje Mathisen - Fri, 2 Jun 2023 18:45 UTC

Anton Ertl wrote:
> Stephen Fuld <sfuld@alumni.cmu.edu.invalid> writes:
>> But then how do you propose
>> handling 128 bit arithmetic (both integer and floating), assuming these
>> are requirements? ISTM that if you don't use paired registers, then you
>> have to double the number of register specifiers in each ALU
>> instruction or do something like Mitch's instruction modifier mechanism
>> or go to 128 bit registers.
>
> 128-bit registers look fine to me. AMD64 has them already (the xmm
> registers), ARMv8-A has them already (and I think ARMv7-A, too;
> ARMv9-A is an extension of ARMv8.5-A, and so also supports these
> registers). So you just need to add the instructions that use them
> for computing with 128-bit values.

This is pretty obviously going to be the main path for adding fp128 to
x64, particularly since you can emulate it now by simply storing the
fp128 bit pattern in an SSE register (or a pair of them in AVX etc), use
the integer load/store operations and trap to an emulator for
FADD128/FSUB128/FMUL128/FMAC128/FDIV128 etc.

Terje

--
- <Terje.Mathisen at tmsw.no>
"almost all programming can be viewed as an exercise in caching"

Re: The synergy of type tags on register file registers

<u5ddji$38t1d$2@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: terje.mathisen@tmsw.no (Terje Mathisen)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Fri, 2 Jun 2023 20:49:22 +0200
Organization: A noiseless patient Spider
Lines: 33
Message-ID: <u5ddji$38t1d$2@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<b26dc80b-afbf-426e-ad34-ea82f8600d18n@googlegroups.com>
<u4vonr$25ppt$1@newsreader4.netcologne.de> <u50c3t$10g9m$1@dont-email.me>
<u51j2o$270ah$1@newsreader4.netcologne.de> <u51v6p$1cf9p$2@dont-email.me>
<806573a4-0ee6-4bc7-a99b-37957669b868n@googlegroups.com>
<d94b9337-52e2-4b05-a26b-ca4b011df7d5n@googlegroups.com>
<u53cfh$1mn06$1@dont-email.me> <2023May30.192304@mips.complang.tuwien.ac.at>
<u55f2q$22hh1$1@dont-email.me> <2023May31.075457@mips.complang.tuwien.ac.at>
<u57ond$2edvp$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 2 Jun 2023 18:49:22 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="4f1c08af4affa9ea2a282d2d823f3b51";
logging-data="3437613"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+lVNpoCFXMU8yioy2uq7i4xfuvhIXx9C+2syZYcoifiA=="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Firefox/91.0 SeaMonkey/2.53.16
Cancel-Lock: sha1:p1r5pmUjcE089/P8jkn4JNedIZk=
In-Reply-To: <u57ond$2edvp$1@dont-email.me>
 by: Terje Mathisen - Fri, 2 Jun 2023 18:49 UTC

Stephen Fuld wrote:
> On 5/30/2023 10:54 PM, Anton Ertl wrote:
>> Stephen Fuld <sfuld@alumni.cmu.edu.invalid> writes:
>>> But then how do you propose
>>> handling 128 bit arithmetic (both integer and floating), assuming these
>>> are requirements?  ISTM that if you don't use paired registers, then you
>>>   have to double the number of register specifiers in each ALU
>>> instruction or do something like Mitch's instruction modifier mechanism
>>> or go to 128 bit registers.
>>
>> 128-bit registers look fine to me.  AMD64 has them already (the xmm
>> registers), ARMv8-A has them already (and I think ARMv7-A, too;
>> ARMv9-A is an extension of ARMv8.5-A, and so also supports these
>> registers).  So you just need to add the instructions that use them
>> for computing with 128-bit values.
>
> Fair enough.  I agree with Mitch in that I don't like the separate SIMD
> register approach, preferring VVM, but that would mean 128 bit GPRs,
> which we are not ready for yet. (The key word here is yet.  I expect
> they will come.)  If 128 bit arithmetic becomes popular, and it is only
> implemented in the SIMD registers, you could end up with something like
> the 68000 with separate data versus address registers.  :-(

I would guess that for a large percentage of the "real work" any given
PC is doing, it is using just such a model, with all the core library
routines (graphics/video/crypto/etc) implemented in SIMD, where the
integer regs are mostly used for addressing and loop book keeping.

Terje

--
- <Terje.Mathisen at tmsw.no>
"almost all programming can be viewed as an exercise in caching"

Re: The synergy of type tags on register file registers

<08reM.2343550$MVg8.1754411@fx12.iad>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx12.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: scott@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: The synergy of type tags on register file registers
Newsgroups: comp.arch
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <u57ond$2edvp$1@dont-email.me> <u57v63$2f5km$1@dont-email.me> <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com> <Ds1eM.858712$PXw7.741546@fx45.iad> <c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com> <f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com> <QrneM.597255$mmyc.279072@fx37.iad> <u5d4fa$37u8l$1@dont-email.me> <9speM.529570$0dpc.321120@fx33.iad> <u5dbvr$38nbs$1@dont-email.me>
Lines: 48
Message-ID: <08reM.2343550$MVg8.1754411@fx12.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Fri, 02 Jun 2023 19:09:48 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Fri, 02 Jun 2023 19:09:48 GMT
X-Received-Bytes: 2896
 by: Scott Lurndal - Fri, 2 Jun 2023 19:09 UTC

BGB <cr88192@gmail.com> writes:
>On 6/2/2023 12:14 PM, Scott Lurndal wrote:
>> BGB <cr88192@gmail.com> writes:
>>> On 6/2/2023 9:57 AM, Scott Lurndal wrote:

>>
>> Again, why do you believe this to be a major weakness, and what
>> "traditional access control" mechanism do you believe is superior?
>>
>
>If you can find a way to forge capabilities, or steal capabilities from
>elsewhere, this shoots a big hole in the security model.

So how is that any different from any other security model?

The idea is to make the security footprint as small as possible,
and capabilities are the ideal there, and the corresponding hardware
is easier to make secure.

> Maintaining
>security without also adding significant hinderances to software
>development seems like a bit of a balancing act.

The compilers handle everything. There is no 'significant hindrance
to software development'.

>
>Not so much a fundamental weakness of capability model itself, but
>rather an uncertainty about the activities of "mere mortal" programmers
>(the incentive being far more often to leave a big gaping hole in the
>name of convenience or experience than to "do the right thing" in a
>security sense).

Programmers don't even _know_ (or care) that capabilities are in use. Except
for the very very small percentage that write bare-metal software or
compilers. And that's a very very small percentage of programmers.

>
>Say, a certain DLL is allowed to access a certain ACL, but no one else,
>with the OS moderating control-flow into and out-of this location (but,

DLL? You're still stuck in windows land. In any case, your system will
be far more complex than a capability system, and correspondingly easier
to abuse or bypass. How, exactly, does an operating system 'moderate'
control flow between the application and the DLL?

Re: The synergy of type tags on register file registers

<u5dj91$39e22$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: sfuld@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Fri, 2 Jun 2023 13:26:09 -0700
Organization: A noiseless patient Spider
Lines: 48
Message-ID: <u5dj91$39e22$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<u57ond$2edvp$1@dont-email.me> <u57v63$2f5km$1@dont-email.me>
<4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
<Ds1eM.858712$PXw7.741546@fx45.iad>
<c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com>
<f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com>
<QrneM.597255$mmyc.279072@fx37.iad> <u5d4fa$37u8l$1@dont-email.me>
<9speM.529570$0dpc.321120@fx33.iad> <u5dbvr$38nbs$1@dont-email.me>
<08reM.2343550$MVg8.1754411@fx12.iad>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 2 Jun 2023 20:26:10 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="7b6bdfa5ebaf2276ebb457e5c1910abd";
logging-data="3455042"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+iGyi5fOfjxMHCWSFBTb2ZOdOEr/kHoe8="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:tbKdlGbZMyQo/TYfRDWwS+R8bHE=
In-Reply-To: <08reM.2343550$MVg8.1754411@fx12.iad>
Content-Language: en-US
 by: Stephen Fuld - Fri, 2 Jun 2023 20:26 UTC

On 6/2/2023 12:09 PM, Scott Lurndal wrote:
> BGB <cr88192@gmail.com> writes:
>> On 6/2/2023 12:14 PM, Scott Lurndal wrote:
>>> BGB <cr88192@gmail.com> writes:
>>>> On 6/2/2023 9:57 AM, Scott Lurndal wrote:
>
>>>
>>> Again, why do you believe this to be a major weakness, and what
>>> "traditional access control" mechanism do you believe is superior?
>>>
>>
>> If you can find a way to forge capabilities, or steal capabilities from
>> elsewhere, this shoots a big hole in the security model.
>
> So how is that any different from any other security model?
>
> The idea is to make the security footprint as small as possible,
> and capabilities are the ideal there, and the corresponding hardware
> is easier to make secure.
>
>
>> Maintaining
>> security without also adding significant hinderances to software
>> development seems like a bit of a balancing act.
>
> The compilers handle everything. There is no 'significant hindrance
> to software development'.
>
>>
>> Not so much a fundamental weakness of capability model itself, but
>> rather an uncertainty about the activities of "mere mortal" programmers
>> (the incentive being far more often to leave a big gaping hole in the
>> name of convenience or experience than to "do the right thing" in a
>> security sense).
>
> Programmers don't even _know_ (or care) that capabilities are in use. Except
> for the very very small percentage that write bare-metal software or
> compilers. And that's a very very small percentage of programmers.

I don't think that is true, at least for C programmers. Some of the
things that are perfectly fine as far as the language is concerned are a
no no for capabilities architectures. That is why C on the
Burroughs/Unisys A series has to be sand boxed.

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

Re: The synergy of type tags on register file registers

<542acef1-5c99-4ab9-80a7-ffc2a62e4635n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:46a6:b0:75d:2dd7:a343 with SMTP id bq38-20020a05620a46a600b0075d2dd7a343mr1030494qkb.0.1685737894148;
Fri, 02 Jun 2023 13:31:34 -0700 (PDT)
X-Received: by 2002:aca:ef88:0:b0:39a:4637:606 with SMTP id
n130-20020acaef88000000b0039a46370606mr315953oih.8.1685737893834; Fri, 02 Jun
2023 13:31:33 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!1.us.feeder.erje.net!feeder.erje.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 2 Jun 2023 13:31:33 -0700 (PDT)
In-Reply-To: <08reM.2343550$MVg8.1754411@fx12.iad>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:34c8:5ba:2b21:3a01;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:34c8:5ba:2b21:3a01
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<u57ond$2edvp$1@dont-email.me> <u57v63$2f5km$1@dont-email.me>
<4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com> <Ds1eM.858712$PXw7.741546@fx45.iad>
<c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com> <f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com>
<QrneM.597255$mmyc.279072@fx37.iad> <u5d4fa$37u8l$1@dont-email.me>
<9speM.529570$0dpc.321120@fx33.iad> <u5dbvr$38nbs$1@dont-email.me> <08reM.2343550$MVg8.1754411@fx12.iad>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <542acef1-5c99-4ab9-80a7-ffc2a62e4635n@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Fri, 02 Jun 2023 20:31:34 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3866
 by: MitchAlsup - Fri, 2 Jun 2023 20:31 UTC

On Friday, June 2, 2023 at 2:09:52 PM UTC-5, Scott Lurndal wrote:
> BGB <cr8...@gmail.com> writes:
> >On 6/2/2023 12:14 PM, Scott Lurndal wrote:
> >> BGB <cr8...@gmail.com> writes:
> >>> On 6/2/2023 9:57 AM, Scott Lurndal wrote:
>
> >>
> >> Again, why do you believe this to be a major weakness, and what
> >> "traditional access control" mechanism do you believe is superior?
> >>
> >
> >If you can find a way to forge capabilities, or steal capabilities from
> >elsewhere, this shoots a big hole in the security model.
<
> So how is that any different from any other security model?
>
> The idea is to make the security footprint as small as possible,
> and capabilities are the ideal there, and the corresponding hardware
> is easier to make secure.
<
But harder to make fficient.
<
> > Maintaining
> >security without also adding significant hinderances to software
> >development seems like a bit of a balancing act.
<
> The compilers handle everything. There is no 'significant hindrance
> to software development'.
<
char *p[] = &array[i][j];
<
> >
> >Not so much a fundamental weakness of capability model itself, but
> >rather an uncertainty about the activities of "mere mortal" programmers
> >(the incentive being far more often to leave a big gaping hole in the
> >name of convenience or experience than to "do the right thing" in a
> >security sense).
<
> Programmers don't even _know_ (or care) that capabilities are in use. Except
> for the very very small percentage that write bare-metal software or
> compilers. And that's a very very small percentage of programmers.
> >
> >Say, a certain DLL is allowed to access a certain ACL, but no one else,
> >with the OS moderating control-flow into and out-of this location (but,
<
> DLL? You're still stuck in windows land. In any case, your system will
> be far more complex than a capability system, and correspondingly easier
> to abuse or bypass. How, exactly, does an operating system 'moderate'
> control flow between the application and the DLL?
<
Trampolines ?!?

Re: The synergy of type tags on register file registers

<00teM.2311642$gGD7.428377@fx11.iad>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx11.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: scott@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: The synergy of type tags on register file registers
Newsgroups: comp.arch
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <u57v63$2f5km$1@dont-email.me> <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com> <Ds1eM.858712$PXw7.741546@fx45.iad> <c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com> <f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com> <QrneM.597255$mmyc.279072@fx37.iad> <u5d4fa$37u8l$1@dont-email.me> <9speM.529570$0dpc.321120@fx33.iad> <u5dbvr$38nbs$1@dont-email.me> <08reM.2343550$MVg8.1754411@fx12.iad> <u5dj91$39e22$1@dont-email.me>
Lines: 56
Message-ID: <00teM.2311642$gGD7.428377@fx11.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Fri, 02 Jun 2023 21:17:48 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Fri, 02 Jun 2023 21:17:48 GMT
X-Received-Bytes: 3509
 by: Scott Lurndal - Fri, 2 Jun 2023 21:17 UTC

Stephen Fuld <sfuld@alumni.cmu.edu.invalid> writes:
>On 6/2/2023 12:09 PM, Scott Lurndal wrote:
>> BGB <cr88192@gmail.com> writes:
>>> On 6/2/2023 12:14 PM, Scott Lurndal wrote:
>>>> BGB <cr88192@gmail.com> writes:
>>>>> On 6/2/2023 9:57 AM, Scott Lurndal wrote:
>>
>>>>
>>>> Again, why do you believe this to be a major weakness, and what
>>>> "traditional access control" mechanism do you believe is superior?
>>>>
>>>
>>> If you can find a way to forge capabilities, or steal capabilities from
>>> elsewhere, this shoots a big hole in the security model.
>>
>> So how is that any different from any other security model?
>>
>> The idea is to make the security footprint as small as possible,
>> and capabilities are the ideal there, and the corresponding hardware
>> is easier to make secure.
>>
>>
>>> Maintaining
>>> security without also adding significant hinderances to software
>>> development seems like a bit of a balancing act.
>>
>> The compilers handle everything. There is no 'significant hindrance
>> to software development'.
>>
>>>
>>> Not so much a fundamental weakness of capability model itself, but
>>> rather an uncertainty about the activities of "mere mortal" programmers
>>> (the incentive being far more often to leave a big gaping hole in the
>>> name of convenience or experience than to "do the right thing" in a
>>> security sense).
>>
>> Programmers don't even _know_ (or care) that capabilities are in use. Except
>> for the very very small percentage that write bare-metal software or
>> compilers. And that's a very very small percentage of programmers.
>
>I don't think that is true, at least for C programmers. Some of the
>things that are perfectly fine as far as the language is concerned are a
>no no for capabilities architectures. That is why C on the
>Burroughs/Unisys A series has to be sand boxed.

Indeed, C is not designed for a stack archicture that was designed a
decade before C. IIRC, Unisys just give a large data region (described
by a capability) to the C runtime and let the C runtime deal with
translating between native MCP calls and C runtime functionality.

You say 'sandboxed', and that's a good term - within the sandbox
anything goes, but it can't escape the underlying capability
describing the C program address space.

That isn't a problem for CHERI so long as the compilers are
aware of the architectural requirements.

Re: The synergy of type tags on register file registers

<Q2teM.2311643$gGD7.1119856@fx11.iad>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx11.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: scott@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: The synergy of type tags on register file registers
Newsgroups: comp.arch
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com> <Ds1eM.858712$PXw7.741546@fx45.iad> <c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com> <f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com> <QrneM.597255$mmyc.279072@fx37.iad> <u5d4fa$37u8l$1@dont-email.me> <9speM.529570$0dpc.321120@fx33.iad> <u5dbvr$38nbs$1@dont-email.me> <08reM.2343550$MVg8.1754411@fx12.iad> <542acef1-5c99-4ab9-80a7-ffc2a62e4635n@googlegroups.com>
Lines: 51
Message-ID: <Q2teM.2311643$gGD7.1119856@fx11.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Fri, 02 Jun 2023 21:20:48 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Fri, 02 Jun 2023 21:20:48 GMT
X-Received-Bytes: 2902
 by: Scott Lurndal - Fri, 2 Jun 2023 21:20 UTC

MitchAlsup <MitchAlsup@aol.com> writes:
>On Friday, June 2, 2023 at 2:09:52=E2=80=AFPM UTC-5, Scott Lurndal wrote:
>> BGB <cr8...@gmail.com> writes:=20
>> >On 6/2/2023 12:14 PM, Scott Lurndal wrote:=20
>> >> BGB <cr8...@gmail.com> writes:=20
>> >>> On 6/2/2023 9:57 AM, Scott Lurndal wrote:=20
>>=20
>> >>=20
>> >> Again, why do you believe this to be a major weakness, and what=20
>> >> "traditional access control" mechanism do you believe is superior?=20
>> >>=20
>> >=20
>> >If you can find a way to forge capabilities, or steal capabilities from=
>=20
>> >elsewhere, this shoots a big hole in the security model.
><
>> So how is that any different from any other security model?=20
>>=20
>> The idea is to make the security footprint as small as possible,=20
>> and capabilities are the ideal there, and the corresponding hardware=20
>> is easier to make secure.
><
>But harder to make fficient.

Harder, but not impossible.

><
>> > Maintaining=20
>> >security without also adding significant hinderances to software=20
>> >development seems like a bit of a balancing act.
><
>> The compilers handle everything. There is no 'significant hindrance=20
>> to software development'.
><
> char *p[] =3D &array[i][j];

The compiler can, in CHERI, create a sub-capability for the target region,
which has a fixed size in this case if I recall correctly. Implementations
by a processor vendor would likely differ from pure CHERI.

>> DLL? You're still stuck in windows land. In any case, your system will=20
>> be far more complex than a capability system, and correspondingly easier=
>=20
>> to abuse or bypass. How, exactly, does an operating system 'moderate'=20
>> control flow between the application and the DLL?
><
>Trampolines ?!?

Complicated, performance killing potential security hole.

Re: The synergy of type tags on register file registers

<40deaeba-afa2-4393-b447-dc267e22360fn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:5aca:0:b0:3ef:5c07:f789 with SMTP id d10-20020ac85aca000000b003ef5c07f789mr35980qtd.10.1685751503020;
Fri, 02 Jun 2023 17:18:23 -0700 (PDT)
X-Received: by 2002:aca:a9c5:0:b0:397:f3e4:26e9 with SMTP id
s188-20020acaa9c5000000b00397f3e426e9mr522120oie.4.1685751502782; Fri, 02 Jun
2023 17:18:22 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Fri, 2 Jun 2023 17:18:22 -0700 (PDT)
In-Reply-To: <Q2teM.2311643$gGD7.1119856@fx11.iad>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:34c8:5ba:2b21:3a01;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:34c8:5ba:2b21:3a01
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com> <Ds1eM.858712$PXw7.741546@fx45.iad>
<c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com> <f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com>
<QrneM.597255$mmyc.279072@fx37.iad> <u5d4fa$37u8l$1@dont-email.me>
<9speM.529570$0dpc.321120@fx33.iad> <u5dbvr$38nbs$1@dont-email.me>
<08reM.2343550$MVg8.1754411@fx12.iad> <542acef1-5c99-4ab9-80a7-ffc2a62e4635n@googlegroups.com>
<Q2teM.2311643$gGD7.1119856@fx11.iad>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <40deaeba-afa2-4393-b447-dc267e22360fn@googlegroups.com>
Subject: Re: The synergy of type tags on register file registers
From: MitchAlsup@aol.com (MitchAlsup)
Injection-Date: Sat, 03 Jun 2023 00:18:23 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 4040
 by: MitchAlsup - Sat, 3 Jun 2023 00:18 UTC

On Friday, June 2, 2023 at 4:20:52 PM UTC-5, Scott Lurndal wrote:
> MitchAlsup <Mitch...@aol.com> writes:
> >On Friday, June 2, 2023 at 2:09:52=E2=80=AFPM UTC-5, Scott Lurndal wrote:
> >> BGB <cr8...@gmail.com> writes:=20
> >> >On 6/2/2023 12:14 PM, Scott Lurndal wrote:=20
> >> >> BGB <cr8...@gmail.com> writes:=20
> >> >>> On 6/2/2023 9:57 AM, Scott Lurndal wrote:=20
> >>=20
> >> >>=20
> >> >> Again, why do you believe this to be a major weakness, and what=20
> >> >> "traditional access control" mechanism do you believe is superior?=20
> >> >>=20
> >> >=20
> >> >If you can find a way to forge capabilities, or steal capabilities from=
> >=20
> >> >elsewhere, this shoots a big hole in the security model.
> ><
> >> So how is that any different from any other security model?=20
> >>=20
> >> The idea is to make the security footprint as small as possible,=20
> >> and capabilities are the ideal there, and the corresponding hardware=20
> >> is easier to make secure.
> ><
> >But harder to make fficient.
> Harder, but not impossible.
>
> ><
> >> > Maintaining=20
> >> >security without also adding significant hinderances to software=20
> >> >development seems like a bit of a balancing act.
> ><
> >> The compilers handle everything. There is no 'significant hindrance=20
> >> to software development'.
> ><
> > char *p[] =3D &array[i][j];
>
> The compiler can, in CHERI, create a sub-capability for the target region,
> which has a fixed size in this case if I recall correctly. Implementations
> by a processor vendor would likely differ from pure CHERI.
>
>
> >> DLL? You're still stuck in windows land. In any case, your system will=20
> >> be far more complex than a capability system, and correspondingly easier=
> >=20
> >> to abuse or bypass. How, exactly, does an operating system 'moderate'=20
> >> control flow between the application and the DLL?
> ><
> >Trampolines ?!?
> Complicated, performance killing potential security hole.
<
GOT and PLT kill performance ??
<
how else do you perform dynamic linking ??
<
{Hint:: My 66000 only needs GOT and not PLT}.

Re: The synergy of type tags on register file registers

<u5e9bl$3f0pv$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: cr88192@gmail.com (BGB)
Newsgroups: comp.arch
Subject: Re: The synergy of type tags on register file registers
Date: Fri, 2 Jun 2023 21:42:58 -0500
Organization: A noiseless patient Spider
Lines: 182
Message-ID: <u5e9bl$3f0pv$1@dont-email.me>
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com>
<u57ond$2edvp$1@dont-email.me> <u57v63$2f5km$1@dont-email.me>
<4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com>
<Ds1eM.858712$PXw7.741546@fx45.iad>
<c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com>
<f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com>
<QrneM.597255$mmyc.279072@fx37.iad> <u5d4fa$37u8l$1@dont-email.me>
<9speM.529570$0dpc.321120@fx33.iad> <u5dbvr$38nbs$1@dont-email.me>
<08reM.2343550$MVg8.1754411@fx12.iad>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 3 Jun 2023 02:43:01 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="ec2bbef6d9205169dcd520037c2a05a3";
logging-data="3638079"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/jm7HnLTVQMujopZbaPPoW"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.11.2
Cancel-Lock: sha1:KxCbnhGIrwZaiS0TlYgfOiHYGfk=
Content-Language: en-US
In-Reply-To: <08reM.2343550$MVg8.1754411@fx12.iad>
 by: BGB - Sat, 3 Jun 2023 02:42 UTC

On 6/2/2023 2:09 PM, Scott Lurndal wrote:
> BGB <cr88192@gmail.com> writes:
>> On 6/2/2023 12:14 PM, Scott Lurndal wrote:
>>> BGB <cr88192@gmail.com> writes:
>>>> On 6/2/2023 9:57 AM, Scott Lurndal wrote:
>
>>>
>>> Again, why do you believe this to be a major weakness, and what
>>> "traditional access control" mechanism do you believe is superior?
>>>
>>
>> If you can find a way to forge capabilities, or steal capabilities from
>> elsewhere, this shoots a big hole in the security model.
>
> So how is that any different from any other security model?
>
> The idea is to make the security footprint as small as possible,
> and capabilities are the ideal there, and the corresponding hardware
> is easier to make secure.
>

But, not entirely transparent to "ye olde C".

At least if one accepts all the various ways people like to abuse the
language as at least "semi valid".

>
>> Maintaining
>> security without also adding significant hinderances to software
>> development seems like a bit of a balancing act.
>
> The compilers handle everything. There is no 'significant hindrance
> to software development'.
>

If your language looks like Java or C# or similar.

Or, one is happy to use a subset of C that doesn't allow "abusing"
pointers and type-casts in various ways, or makes various other "non
portable" assumptions.

Admittedly, a lot of this also runs afoul of my bounds-checking scheme.

And also a lot of stuff that is "undefined behavior" as well.

But, if someone tries to compile code and the compiler is like "error:
that aint gonna fly here", they are liable to blame the architecture
rather than fix the code.

OTOH, if it is opt-in, people are more likely to know what they are
getting into (and not enable the option unless they intend to go and fix
their code to clean up any exceptions that may result).

Granted, on any current implementation, it is likely that "breaking"
capabilities will still leave one with the protections offered by the
standard memory protection schemes.

So, one has bounds checking, which is the main practical advantage, and
the "non forgeable" aspect, which is needed for the formal model (eg:
"actually being capabilities"), but likely of secondary importance in
practice (and the one that adds some of the "harder" issues).

>>
>> Not so much a fundamental weakness of capability model itself, but
>> rather an uncertainty about the activities of "mere mortal" programmers
>> (the incentive being far more often to leave a big gaping hole in the
>> name of convenience or experience than to "do the right thing" in a
>> security sense).
>
> Programmers don't even _know_ (or care) that capabilities are in use. Except
> for the very very small percentage that write bare-metal software or
> compilers. And that's a very very small percentage of programmers.
>

Possibly.

Yes, if one writes reasonably type-safe and standards-compliant code, it
is less of an issue.

How easily one can implement various parts of the C library, without
running afoul of things, is also a factor (and the main sorts of areas
where "shortcuts" are a risk).

>
>>
>> Say, a certain DLL is allowed to access a certain ACL, but no one else,
>> with the OS moderating control-flow into and out-of this location (but,
>
> DLL? You're still stuck in windows land. In any case, your system will
> be far more complex than a capability system, and correspondingly easier
> to abuse or bypass. How, exactly, does an operating system 'moderate'
> control flow between the application and the DLL?
>

It is a hybrid model.
But, I am still using a PE/COFF variant, and EXE/DLL file naming
conventions, ...

API conventions are mixed, but uses a Unix style filesystem layout.
So, sort of like a poor knockoff of the Cygwin experience...

As for moderating DLL calls...

Imagine, for a moment, that A does not call B directly, but instead a
thunk is used that effectively performs a system call, which then
performs an implicit "partial task switch", and then invokes a call to
the exported function via a sort of event-dispatcher-loop (whose job is
mostly to handle calls into a given DLL).

In this case, the PE/COFF loader would set up the thunks and dispatcher
tasks as needed.

Kinda sucks, and is slow, but don't yet have a better approach (that
also avoids adding obvious security holes).

So, don't currently plan to go down this particular path for normal DLLs.

Though, at a minimum, would need a system call to reload KRR, and a
mechanism to perform a system call to restore KRR on the return path
(and a way to ensure that no other control flow paths can exist between
the caller and callee, whereas this is easier to enforce if implemented
via an implicit task switch).

Though, generally the caller and callee exist within the same address
space in this model, but this may change.

Have mostly ended up using going with COM-style objects instead though
for this (where the COM-Object method dispatch is also handled via a
similar mechanism, just a specialized system call that is like "Hey,
invoke Method 13 on this object handle with these arguments", and the
system-call mechanism is responsible for performing the appropriate
context switch to the associated handler task).

The objects may then given a C wrapper on the client side.

Well, and also easier to justify some of the seemingly arbitrary
restrictions on the handling of memory references and similar with an
interface resembling COM Objects, than with function pointers or DLL
imports.

As for Addr96 compacting, possibly, say:
6bbb_aaaaaaaa

Maps to "imported object=bbb, offset=aaaaaaaa" mapped to a list of
imported and exported objects (could maybe also make provision for
assigning less address space to smaller objects).

The list would likely need to be tied to the ASID if handled using the
existing TLB mechanism. Giving each task its own ASID would not be ideal
for performance though.

It could make sense to have an ACLID for each object, which would then
be used as the ACLID when accessing the object through the pointer.

This would make provision for exporting an object to an ACL other than
the one assigned to the memory holding the object (say, the ACL of the
object is based on the intended recipient rather than its origin).

The TLB Miss handler would need to do a little extra wonk and remapping
for this though (effectively, it would be first translated by the table,
and then again by the page-table).

....

Re: The synergy of type tags on register file registers

<9DyeM.438217$jiuc.289968@fx44.iad>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!feeder1.feed.usenet.farm!feed.usenet.farm!peer03.ams4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx44.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: scott@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: The synergy of type tags on register file registers
Newsgroups: comp.arch
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com> <f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com> <QrneM.597255$mmyc.279072@fx37.iad> <u5d4fa$37u8l$1@dont-email.me> <9speM.529570$0dpc.321120@fx33.iad> <u5dbvr$38nbs$1@dont-email.me> <08reM.2343550$MVg8.1754411@fx12.iad> <542acef1-5c99-4ab9-80a7-ffc2a62e4635n@googlegroups.com> <Q2teM.2311643$gGD7.1119856@fx11.iad> <40deaeba-afa2-4393-b447-dc267e22360fn@googlegroups.com>
Lines: 71
Message-ID: <9DyeM.438217$jiuc.289968@fx44.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Sat, 03 Jun 2023 03:40:53 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Sat, 03 Jun 2023 03:40:53 GMT
X-Received-Bytes: 3723
 by: Scott Lurndal - Sat, 3 Jun 2023 03:40 UTC

MitchAlsup <MitchAlsup@aol.com> writes:
>On Friday, June 2, 2023 at 4:20:52=E2=80=AFPM UTC-5, Scott Lurndal wrote:
>> MitchAlsup <Mitch...@aol.com> writes:=20
>> >On Friday, June 2, 2023 at 2:09:52=3DE2=3D80=3DAFPM UTC-5, Scott Lurndal=
> wrote:=20
>> >> BGB <cr8...@gmail.com> writes:=3D20=20
>> >> >On 6/2/2023 12:14 PM, Scott Lurndal wrote:=3D20=20
>> >> >> BGB <cr8...@gmail.com> writes:=3D20=20
>> >> >>> On 6/2/2023 9:57 AM, Scott Lurndal wrote:=3D20=20
>> >>=3D20=20
>> >> >>=3D20=20
>> >> >> Again, why do you believe this to be a major weakness, and what=3D2=
>0=20
>> >> >> "traditional access control" mechanism do you believe is superior?=
>=3D20=20
>> >> >>=3D20=20
>> >> >=3D20=20
>> >> >If you can find a way to forge capabilities, or steal capabilities fr=
>om=3D=20
>> >=3D20
>> >> >elsewhere, this shoots a big hole in the security model.=20
>> ><
>> >> So how is that any different from any other security model?=3D20=20
>> >>=3D20=20
>> >> The idea is to make the security footprint as small as possible,=3D20=
>=20
>> >> and capabilities are the ideal there, and the corresponding hardware=
>=3D20
>> >> is easier to make secure.=20
>> ><=20
>> >But harder to make fficient.
>> Harder, but not impossible.=20
>>=20
>> ><=20
>> >> > Maintaining=3D20=20
>> >> >security without also adding significant hinderances to software=3D20
>> >> >development seems like a bit of a balancing act.=20
>> ><
>> >> The compilers handle everything. There is no 'significant hindrance=3D=
>20=20
>> >> to software development'.=20
>> ><=20
>> > char *p[] =3D3D &array[i][j];=20
>>=20
>> The compiler can, in CHERI, create a sub-capability for the target region=
>,=20
>> which has a fixed size in this case if I recall correctly. Implementation=
>s=20
>> by a processor vendor would likely differ from pure CHERI.=20
>>=20
>>=20
>> >> DLL? You're still stuck in windows land. In any case, your system will=
>=3D20=20
>> >> be far more complex than a capability system, and correspondingly easi=
>er=3D=20
>> >=3D20=20
>> >> to abuse or bypass. How, exactly, does an operating system 'moderate'=
>=3D20
>> >> control flow between the application and the DLL?=20
>> ><=20
>> >Trampolines ?!?
>> Complicated, performance killing potential security hole.
><
>GOT and PLT kill performance ??

They have a non-zero cost. I may have engaged in slight hyperbole.

I'm not sure I'd categorize those as "moderateing" control flow,
however, as there's not much the run-time linker can with the PLT
entries once established.

Re: The synergy of type tags on register file registers

<2IyeM.438218$jiuc.158540@fx44.iad>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx44.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: scott@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: The synergy of type tags on register file registers
Newsgroups: comp.arch
References: <08f739ac-2200-408c-a578-79e93f9cb272n@googlegroups.com> <u57v63$2f5km$1@dont-email.me> <4168d555-a14c-4ed8-b2dc-7ae34588544fn@googlegroups.com> <Ds1eM.858712$PXw7.741546@fx45.iad> <c1e79245-bbc8-443c-aacd-0441d49ab84bn@googlegroups.com> <f70924d3-49c8-4e0e-83d8-140a5c7ae4d2n@googlegroups.com> <QrneM.597255$mmyc.279072@fx37.iad> <u5d4fa$37u8l$1@dont-email.me> <9speM.529570$0dpc.321120@fx33.iad> <u5dbvr$38nbs$1@dont-email.me> <08reM.2343550$MVg8.1754411@fx12.iad> <u5e9bl$3f0pv$1@dont-email.me>
Lines: 64
Message-ID: <2IyeM.438218$jiuc.158540@fx44.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Sat, 03 Jun 2023 03:46:06 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Sat, 03 Jun 2023 03:46:06 GMT
X-Received-Bytes: 3215
 by: Scott Lurndal - Sat, 3 Jun 2023 03:46 UTC

BGB <cr88192@gmail.com> writes:
>On 6/2/2023 2:09 PM, Scott Lurndal wrote:
>> BGB <cr88192@gmail.com> writes:
>>> On 6/2/2023 12:14 PM, Scott Lurndal wrote:
>>>> BGB <cr88192@gmail.com> writes:
>>>>> On 6/2/2023 9:57 AM, Scott Lurndal wrote:
>>
>>>>
>>>> Again, why do you believe this to be a major weakness, and what
>>>> "traditional access control" mechanism do you believe is superior?
>>>>
>>>
>>> If you can find a way to forge capabilities, or steal capabilities from
>>> elsewhere, this shoots a big hole in the security model.
>>
>> So how is that any different from any other security model?
>>
>> The idea is to make the security footprint as small as possible,
>> and capabilities are the ideal there, and the corresponding hardware
>> is easier to make secure.
>>
>
>But, not entirely transparent to "ye olde C".

The CHERI folks have described language extensions to
adapt C to this type of architecture.

>
>At least if one accepts all the various ways people like to abuse the
>language as at least "semi valid".

They can always devolve to in-line assembler (e.g. for OS/Hypervisors)
to "abuse" the language.

>>
>> The compilers handle everything. There is no 'significant hindrance
>> to software development'.
>>
>
>If your language looks like Java or C# or similar.

Two of the top 5 in use today. Python, C++ and soon
Rust all of which can use capabilites opaque to the
programmer.

>
>Or, one is happy to use a subset of C that doesn't allow "abusing"
>pointers and type-casts in various ways, or makes various other "non
>portable" assumptions.

You mean code for security rather than convenience. I think you
overestimate the amount of language abuse that is tolerated in
production code.

>
>But, if someone tries to compile code and the compiler is like "error:
>that aint gonna fly here", they are liable to blame the architecture
>rather than fix the code.

Come now, every new warning added to gcc or clang is basically
'that ain't gonna fly here' and people aren't blaming anything
but the compiler, if they complain at all, which they don't in
general.


devel / comp.arch / Re: The synergy of type tags on register file registers

Pages:12345678910
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor