> On Aug 23, 2021, at 8:38 PM, Tom Stepleton via cctalk <cctalk@classiccmp.org> 
> wrote:
> 
> Hello,
> 
> For the sake of illustration to folks who are not necessarily used to
> thinking about what computers do at the machine code level, I'm interested
> in collecting examples of single instructions for any CPU architecture that
> are unusually prolific in one way or another.
> ...
> Although I don't know it well, I suspect VAX will place well in one way or
> another.

Indeed. Just its addressing modes, with indirection and two separate register 
indexing operations, are hairy enough.  Then consider the decimal arithmetic 
instructions that might have up to 6 operands.

It also has instructions whose encoding isn't so exotic but what they do is.  
The CRC instruction is one example, the POLY ones another.  Then there are the 
save and load process context instructions, which copy a rather large data 
structure full of different items between memory and the CPU privileged state.

Going back a decade or two we have the IBM 1620, in which arithmetic and I/O 
operations operate on variable length data.  That includes floating point (with 
variable length mantissa).  Want to use 40 digit float precision?  No problem, 
you're still just dealing with a single instruction to do the operation.  It 
might take a while, of course...

Not quite so extreme is the Exchange instruction on the CDC 6000 series 
machines, analogous to the VAX save/load process context instruction but with 
the two operations done together.  That is a big win in that era with core 
memory, because the whole operation is just one pass through the data 
structure, doing read of the new state and write back of the old state, 100 
nanoseconds per word of state.  Unlike the VAX the state struct ("exchange 
packet") is relatively small, just 16 words.

        paul


Reply via email to