Modern Processors: Pipeline, Superscalar, Branch Prediction, Hyperthreading