Modern Microprocessors – A 90-Minute Guide (2001-2016)
IBM was doing essentially all that stuff before 1990 or so except possibly for multiple threads per processor core.  So, there was pipelining, branch prediction, speculative execution, vector instructions, etc.<p>Then I was in an AI group at the Watson Lab, and two guys down the hall had some special hardware attached to the processors and were collecting and analyzing performance data based on those design features.