It is good for programmers to understand what goes on inside a processor. The CPU is at the heart of our career.
What goes on inside the CPU? How long does it take for one instruction to run? What does it mean when a new CPU has a 12-stage pipeline, or 18-stage pipeline, or even a "deep" 31-stage pipeline?
Programs generally treat the CPU as a black box. Instructions go into the box in order, instructions come out of the box in order, and some processing magic happens inside.
As a programmer, it is useful to learn what happens inside the box. This is especially true if you will be working on tasks like program optimization. If you don't know what is going on inside the CPU, how can you optimize for it?
A primer for those with a less formal background.
(Score: 2) by wonkey_monkey on Saturday October 31 2015, @12:00PM
Besides, compilers nowadays are doing a better job in optimization than you would ever do by hand.
That's just not true. Compilers are good, but they're not perfect optimizers (I wouldn't be surprised if there's a proof that there's no such thing). I once got a 10% speed improvement just by swapping some non-dependent C++ lines around (and yes, I went back and forth checking it several times).
systemd is Roko's Basilisk