This book describes microprocessor architecture from simple in-order short pipeline designs to out-of-order superscalars. The emphasis is on how things work at a black box and algorithmic level. The author provides sufficient detail at the register transfer level for readers to appreciate how design features enhance performance as well as complexity.