home bbs files messages ]

Just a sample of the Echomail archive

COMPOSVM:

<< oldest | < older | list | newer > | newest >> ]

 Message 263,418 of 264,034 
 Johnny Billquist to All 
 Re: VMS previous DEC/CPQ/HP[E] decisions 
 23 Sep 25 15:20:25 
 
From: bqt@softjar.se

On 2025-09-21 02:51, Arne Vajhøj wrote:
> On 9/20/2025 4:13 PM, John Dallman wrote:
>> The VAX instruction set is quite nice in some ways and quite horrible in
>> others. Some of those made it hard to make run very fast.
>>
>> The extremely variable-length instructions are a prime example.
>
> CASEx is probably the worst.
>
> Example of >100 bytes long:

I think that's a bad example. The size of case is basically just a
displacement table, which is not needed at all be read in for the
execution of the instruction. It's just that at some point, *one* of the
elements of that displacement table needs to be read in in order to
adjust the PC. The rest you can ignore, and from a pipelining point of
view, it's similar to any kind of conditional branching.

Potentially performance killing is that it would be very hard to do
speculative fetching or execution on a case instruction, so you'd
probably stall on a memory fetch. But conditional branches always are a
bit of a hiccup for performance, case might be a bit worse, but nowhere
near a real killer.

So no, I don't think case is a good example of something making VAX hard
to get fast. What is much more painful is just the general arguments
processing for any instruction, which is all rather variable in size,
and which cannot be predicted, and which *have* to be read in before you
can make much progress on any instruction. Displacement with indexing
for maybe 5 arguments. *That's* a headache.

   Johnny

--- SoupGate-Win32 v1.05
 * Origin: you cannot sedate... all the things you hate (1:229/2)

<< oldest | < older | list | newer > | newest >> ]


(c) 1994,  bbs@darkrealms.ca