This course covers topics essential to modern superscalar processor design. A review of pipelined processor design and hierarchical memory design is followed by advanced topics including the identification of parallelism in processes; multiple diversified functional units in a pipelined processor; static, dynamic, and hybrid branch prediction techniques; the Tomasulo algorithm for efficient resolution of true data dependencies; advanced data flow techniques with and without speculative execution; multiprocessor systems; and multithreaded processors.
Course prerequisite(s): 
EN.525.612 Computer Architecture or equivalent.