logoalt Hacker News

IsTomlast Sunday at 8:49 PM2 repliesview on HN

> the data bus is 128 bits wide: 64-bit for the data and 64-bit for data's type

That seems a bit wasteful if you're not using a lot of object types.


Replies

inkyotolast Monday at 1:02 AM

Meet TIMI – the Technology Independent Machine Interface of IBM's i Series (nèe AS/400), which defines pointers as 128-bit values[0], which is a 1980's design.

It has allowed the AS/400 to have a single-level store, which means that «memory» and «disk» live in one conceptual address space.

A pointer can carry more than just an address – object identity, type, authority metadata – AS/400 uses tagged 16-byte pointers to stop arbitrary pointer fabrication, which supports isolation without relying on the usual per-process address-space model in the same way UNIX does.

Such «fat pointer» approach is conceptually close to modern capability systems (for example CHERI’s 128-bit capabilities), which exist for similar [safety] reasons.

[0] 128-bit pointers in the machine interface, not a 128-bit hardware virtual address space though.

show 1 reply
layer8last Sunday at 11:23 PM

64-bit pointers tend to be a bit wasteful as well.

show 2 replies