Quantcast
Channel: August 2017 - The Old New Thing
Browsing all 10 articles
Browse latest View live

The Alpha AXP, part 10: Atomic updates to byte and word memory units

Today we’re going to do a little exercise based on what we’ve learned so far. We learned how to perform byte and word loads and stores to memory. And we also learned how to perform atomic memory...

View Article



The Alpha AXP, part 11: Processor faults

There are three types of faults on the Alpha AXP: Software faults Hardware faults Arithmetic faults Software faults are those triggered by explicit instructions, such as CALL_PAL. These are calls that...

View Article

The Alpha AXP: Part 12: How you detect carry on a processor with no carry?

The Alpha AXP has no corresponding trap variant for arithmetic carry. So how would you detect carry?¹ Answer: The same way you detect carry in C, or pretty much any other programming language that...

View Article

The Alpha AXP, part 13: On treating a 64-bit processor as if it were a 32-bit...

The Alpha AXP is natively a 64-bit processor, but Windows NT for Alpha AXP treated it as a 32-bit processor. How is that possible? The Alpha AXP registers are full 64-bit registers, and you are welcome...

View Article

Yes, that was a horrifically awkward video, but it wasn’t the Windows 95 launch

If you search YouTube for “Windows 95 launch”, you’ll find many copies of this video: This is commonly identified as having been recorded at the Windows 95 launch, but it wasn’t. The Windows 95 launch...

View Article


The Alpha AXP, part 14: On the strange behavior of writes to the zero register

I noted early on that a special rule in the Alpha AXP is that an instruction that specifies the zero register as a destination is permitted to be completely optimized out by the processor (with two...

View Article

The Alpha AXP, part 15: Variadic functions

As noted in the initial plunge, the first six integer parameters are passed in registers, and the first six floating point parameters are passed in a different set of registers. So how does the callee...

View Article

The Alpha AXP, part 16: What are the dire consequences of having 32-bit...

On the Alpha AXP, 32-bit values are typically represented in so-called canonical form. But what happens if you use a non-canonical representation? Well, it depends on what instruction consumes the...

View Article


The Alpha AXP, part 17: Reconstructing a call stack

I’m going to wrap up the formal part of the series by applying the information we’ve been learning over the past several days weeks: We’re going to reconstruct a broken stack. Suppose you have a debug...

View Article


The Alpha AXP, epilogue: A correction about file system compression on the...

Some time ago, I claimed that Windows file compression had to be dumbed down in order for the Alpha AXP to hit its performance targets. I have since been informed by somebody who worked on file system...

View Article
Browsing all 10 articles
Browse latest View live




Latest Images