Software Optimisation Fundamentals #1: The CPU