Reference asking : High Performance Computer Architecture Topics

Pipelining: Basic concepts, instruction and arithmetic pipeline, data hazards, control
hazards, and structural hazards, techniques for handling hazards. Exception handling.
Pipeline optimization techniques. Compiler techniques for improving performance.
Hierarchical memory technology: Inclusion, Locality properties; Cache memory
organizations,Techniques for reducing cache misses; Virtual memory organization, Mapping and
management techniques, Memory replacement policies.
Instruction-level parallelism: Basic Concepts, Techniques for increasing ILP, Dynamic
scheduling (Tomasulo's Algorithm), Reorder buffer and instruction commit, Branch
prediction and advanced instruction delivery, Speculative execution. Superscalar, Superpipelined and VLIW processor architectures.Array and vector processors.
Multiprocessor architecture: Taxonomy of parallel architectures. Centralized shared-memory
Architecture. Synchronization, Memory consistency, Interconnection networks.
Distributed shared memory architecture. Model of memory consistency, Cache coherency,
Multiprocessing snooping protocol, Multiprocessing directory protocol. Cluster computers.
These are the topics I have to learn.
It will be great help if I am suggested any video resources or books regarding this.
Although I am going through Computer Architecture: A Quantitative
Approach by John L. Hennessy and David A. Patterson . But I need more resources.
This is a pretty good book: Mike Johnson, Superscalar Microprocessor Design, Prentice-Hall, 1991, ISBN 0-13-875634-1.
Having said that, some of the original references are quite readable. For example:

Robert Tomasulo, An Efficient Algorithm for Exploiting Multiple Arithmetic Units
Lynn Conway et al, Dynamic Instruction Scheduling