« Back to the Da Slop Pit Forum

intel apx 432

Posted by iximeow


Forum: Da Slop Pit Group

from the manual:

One of the unique features of the Intel 432 is its instruction
encoding. Instructions are bit-variable in length and can start
on any bit boundary. The instruction pointer thus contains the
bit offset into the current instruction segment, which can be up
to 8K bytes in size. An instruction consists of up to four fields,
as shown in Figure 9-14. The fields themselves are also variable-length and highly encoded

which is interesting because memory on these was structured as 64kb segments (familiar?) with a physical memory of up to 2^42 bytes. for 1981 this was pretty cool, since the 386 didn't ship for another four years. the iapx 432 was first sketched out in 1975 though, and didn't have nearly as much historical context to lean on as the iterative improvements in the 8080->8086->80186->80286 series!

but bit-addressable instructions isn't something you see very often! i think i've only seen a few microcontrollers that support this, like the sm83. there, bit-addressable memory is only for a range of memory, with byte addressing for the rest of memory. and instructions were all pretty fixed size

bit-granularity instruction sizes is also *extremely* weird and the thing everyone gets weirded out with about the 432. personally the interesting question is what was intel optimizing for? or, who designed the isa? presumably hardware folks believed it wouldn't be too cumbersome to implement. instructions with variable bit widths of almost all items though, wow. they really should put credits in the manual to see what else these people get up to. maybe some of them ended up on ia64, where there's some other instruction encoding cleverness kinda like this?

and anyway this suggests they were really concerned about maximally packing instruction encoding space. x86 isn't so great at this, and if you look at arm you can see how this pans out when you want an extensible but fixed-size instruction. kinda wild encodings over there. so with this your encodings look more like a huffman tree when you assume the most common instructions are the first ones you spec out. adds, copies, compares, that kinda stuff.

i really gotta find some 432 programs and write a disassembler. maybe i can con someone into writing a softcore for one of these and we can run some 1980s era code...

Report Topic

3 Replies

Sort Replies:

Reply by yuu


This is insane. So everything is bit encoded and variable width, does this mean that instructions themselves can be an uneven size? Or is there some boundary that is just unused? Like 10101 -> 00010101? Either way, that's quite cool, I've only seen addressable bits in industrial applications, but even still I believe that it's bound to a certain memory range as well. Would love to know more for sure.

Report Reply

Reply by iximeow


yeah! instructions are pretty arbitrarily sized. i don't know the minimum size, but presumably there is one. i haven't yet found a clear description of how the encoding scheme works other than this kinda high level mushy stuff.

Report Reply

Reply by Emil (Widlarizer)


It's so funny to me that googlig the architecture name limited to the intel website gives you two hits, annual company reports 1981 and 1982. It was just so dead on arrival. And forgotten so easily!

Report Reply