3 ms·
For what it's worth these topics are taught in university to a certain extent. I took a class last semester where we had to write an assembler and virtual mach
by tkahn6 15y ago
For what it's worth these topics are taught in university to a certain extent.
I took a class last semester where we had to write an assembler and virtual machine for MIPS (in C), had exams on branch prediction, instruction pipelining, program-performance as impacted by different types of caches.
But really, there is a lot of information to absorb. Intel's been doing heavy research on processors for decades. It's one thing to be familiar with the concept of branch prediction and instruction pipelining, it's another thing to know enough to actually have a [positive] impact on the performance of a program.
- mjn 15y agoI can't remember where I saw it, but there was some mildly controversial talk from someone in industry to that effect at a CS conference, chastising universities for teaching their students about how CPUs work by using a model based more or less on 1980s RISC machines, which in his view was not very relevant to how a modern CPU works, and gave the wrong performance intuitions. I don't remember if he proposed a solution, though. In computer-engineering majors you solve that by having multiple courses, which work their way up to the modern complexities, but in a one-semester architecture course as part of a CS major, there isn't infinite room.
- klez 15y agoIf someone could remember what mjn is talking about, I would really appreciate a link to the talk.