|
|
Log in / Subscribe / Register

AS/400 much?

AS/400 much?

Posted Sep 18, 2022 6:36 UTC (Sun) by willy (subscriber, #9762)
In reply to: AS/400 much? by ejr
Parent article: The road to Zettalinux

Its ancestor, System/38, I think was the first to introduce a _conceptual_ 128 bit pointer? From what I've read, that was never actually reified in the bytecode. Or have I misunderstood?

The call to action in this talk was simply "Hey, CPU manufacturers, give us 128 bit registers ASAP". How we end up using them for pointers will undoubtedly vary. Do we use all of them for a Brobdingnagian address space? Surely not. There are pressures to make address spaces larger than 8EiB, so they won't all be available for capabilities or whatever. I can certainly imagine an 80 bit limit on addresses with 48 bits being used to decorate the pointer.


to post comments

AS/400 much?

Posted Sep 18, 2022 17:04 UTC (Sun) by ejr (subscriber, #51652) [Link] (2 responses)

I think you roughly are correct in terms of the history. The System/3{6,8} and others of the era had somewhat fuzzy boundaries on software/microcode/hardware. Same with the AS/400 (iSeries). Intentionally.

The "disaggregated" push is changing things, but just like persistent memory (like Optane, giggle) was supposed to change things. I'm a PGAS (partitioned global address space) person, so the wider pointers and how they're sliced&diced is old hat to me.

Although the work in flat memory space operating systems is so long ago that I no longer even remember their names... A few out of AUS/NZ, iirc? Of course they used other bits for capabilities and access... Happen to remember any of the others? Asking to save myself from digging through bibliographic references.

AS/400 much?

Posted Sep 19, 2022 0:58 UTC (Mon) by zaitseff (subscriber, #851) [Link] (1 responses)

> Although the work in flat memory space operating systems is so long ago that I no longer even remember their names... A few out of AUS/NZ, iirc?

Are you thinking of Mungi [1] by any chance?

[1] https://onlinelibrary.wiley.com/doi/abs/10.1002/%28SICI%2...

AS/400 much?

Posted Sep 19, 2022 1:14 UTC (Mon) by ejr (subscriber, #51652) [Link]

Yup, thank you!

AS/400 much?

Posted Sep 22, 2022 10:25 UTC (Thu) by skissane (subscriber, #38675) [Link]

> Its ancestor, System/38, I think was the first to introduce a _conceptual_ 128 bit pointer? From what I've read, that was never actually reified in the bytecode. Or have I misunderstood?

It exists in the bytecode. From the viewpoint of the underlying hardware, a 128-bit pointer is just a memory block containing the virtual address (48-bit for the original CISC IMPI S/38 and AS/400, 64-bit for the RISC AS/400), plus extra bytes containing metadata about the pointer (its type and capabilities.) This article has some gory details on how it works on contemporary RISC AS/400 (aka IBM i): https://www.mcpressonline.com/programming/rpg/a-close-stu...

And, in the System/38 (and CISC AS/400), it was quite similar. Have a look at Figure 1 in that article, and then read PDF page 238 of this System/38 manual – http://bitsavers.org/pdf/ibm/system38/SC21-9037-3_IBM_Sys... – you'll notice it is largely the same structure


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds