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.

  • $\begingroup$ (I think pipelining should take OOO execution into consideration.) 6th edition of Hennessy/Patterson, hopefully. $\endgroup$
    – greybeard
    Nov 2, 2020 at 13:13

1 Answer 1


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:


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.