If I had to recommend a basic intro book, it'd be the following: https://www.amazon.com/Digital-Design-Computer-Architecture-Harris-ebook/dp/B00HEHG7W2/
The new edition uses ARM. I haven't run through this book to say if it is good yet. https://www.amazon.com/Digital-Design-Computer-Architecture-ARM-ebook/dp/B00XHN8RI4/
For the undergrad CS computer architecture class, we used the same H&P book and the SPIM simulator. For the graduate course, the Computer Architecture: A Quantitative Approach and Simple Scalar were used.
http://www.simplescalar.com/
For EE courses, I mainly remember using at least 3 different books by Mazidi, Triebel, and Brey .
www.amazon.com/8088-8086-Microprocessors-Programming-Applications/dp/0130930814/
http://members.ee.net/brey/tech.htm
http://www.microdigitaled.com/
There are plenty of good online resources on computer architecture.
Examples for Cache
https://en.wikipedia.org/wiki/CPU_cache
https://en.wikipedia.org/wiki/Cache_algorithms
http://www.ecs.umass.edu/ece/koren/architecture/Cache/tutorial.html
http://www.pcguide.com/ref/mbsys/cache/funcComparison-c.html