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.