Processor microarchitecture
Subtitle: an implementation perspective
By: Antonio González, Fernando Latorre, and Grigorios Magklis
Contributors: Latorre, Fernando; Magklis, Grigorios, 1976-
Series: Synthesis lectures on computer architecture -- # 12
Publisher: Morgan & Claypool
Published: 2011
Place of publication: San Rafael, Calif. (1537 Fourth Street, San Rafael, CA 94901 USA)
Language: eng
Format: [electronic resource] :
ISBN-13: 9781608454532; 9781608454525
Subjects: Microprocessors; Computer architecture; Design and construction
Other titles: Synthesis digital library of engineering and computer science.
Description: This lecture presents a study of the microarchitecture of contemporary microprocessors. The focus is on implementation aspects, with discussions on their implications in terms of performance, power, and cost of state-of-the-art designs. The lecture starts with an overview of the different types of microprocessors and a review of the microarchitecture of cache memories. Then, it describes the implementation of the fetch unit, where special emphasis is made on the required support for branch prediction. The next section is devoted to instruction decode with special focus on the particular support to decoding x86 instructions. The next chapter presents the allocation stage and pays special attention to the implementation of register renaming. Afterward, the issue stage is studied. Here, the logic to implement out-of-order issue for both memory and non-memory instructions is thoroughly described. The following chapter focuses on the instruction execution and describes the different functional units that can be found in contemporary microprocessors, as well as the implementation of the bypass network, which has an important impact on the performance. Finally, the lecture concludes with the commit stage, where it describes how the architectural state is updated and recovered in case of exceptions or misspeculations. This lecture is intended for an advanced course on computer architecture, suitable for graduate students or senior undergrads who want to specialize in the area of computer architecture. It is also intended for practitioners in the industry in the area of microprocessor design. The book assumes that the reader is familiar with the main concepts regarding pipelining, out-of-order execution, cache memories, and virtual memory.
Notes: Part of: Synthesis digital library of engineering and computer science.

Series from website.

Includes bibliographical references (p. 101-104).

Abstract freely available; full-text restricted to subscribers or individual document purchasers.

Also available in print.

Mode of access: World Wide Web.

System requirements: Adobe Acrobat Reader.
Table of contents: title: 1. Introduction; title: Classification of microarchitectures; title: Pipelines/nonpipelined processors; title: In-order/out-of-order processors; title: Scalar/superscalar processors; title: Vector processors; title: Multicore processors; title: Multithreaded processors; title: Classification of market segments; title: Overview of a processor; title: Overview of the pipeline; title: 2. Caches; title: Address translation; title: Cache structure organization; title: Parallel tag and data array access; title: Serial tag and data array access; title: Associativity considerations; title: Lockup-free caches; title: Implicitly addressed MSHRs; title: Explicitly addressed MSHRs; title: In-cache MSHRs; title: Multiported caches; title: True multiported cache design; title: Array replication; title: Virtual multiporting; title: Multibanking; title: Instruction caches; title: Multiported vs. single ported; title: Lockup free vs. blocking; title: Other considerations; title: 3. The instruction fetch unit; title: Instruction cache; title: Trace cache; title: Branch target buffer; title: Return address stack; title: Conditional branch prediction; title: Static prediction; title: Dynamic prediction; title: 4. Decode; title: RISC decoding; title: The x86 ISA; title: Dynamic translation; title: High-performance x86 decoding; title: The instruction length decoder; title: The dynamic translation unit; title: 5. Allocation; title: Renaming through the reorder buffer; title: Renaming through a rename buffer; title: Merged register file; title: Register file read; title: Recovery in case of misspeculation; title: Comparison of the three schemes; title: 6. The issue stage; title: Introduction; title: In-order issue logic; title: Out-of-order issue logic; title: Issue process when source operands are read before issue; title: Issue queue allocation; title: Instruction wakeup; title: Instruction selection; title: Entry reclamation; title: Issue process when source operands are read after issue; title: Read port reduction; title: Other implementations for out-of-order issue; title: Distributed issue queue; title: Reservation stations; title: Issue logic for memory operations; title: Nonspeculative memory disambiguation; title: Case study 1. Load ordering and store ordering on an AMD K6 processor; title: Case study 2. Partial ordering on a MIPS R10000 processor; title: Speculative memory disambiguation; title: Case study. Alpha 21264; title: Speculative wakeup of load consumers; title: 7. Execute; title: Functional units; title: The integer arithmetic and logical unit; title: Integer multiplication and division; title: The address generation unit; title: The branch unit; title: The floating-point unit; title: The SIMD unit; title: Result bypassing; title: Bypass in a small out-of-order machine; title: Multilevel bypass for wide out-of-order machines; title: Bypass for in-order machines; title: Organization of functional units; title: Clustering; title: Clustering the bypass network; title: Clustering with replicated register files; title: Clustering with distributed issue queue and register files; title: 8. The commit stage; title: Introduction; title: Architectural state management; title: Architectural state based on a retire register file; title: Architectural state based on a merged register file; title: Recovery of the speculative state; title: Recovery from a branch misprediction; title: Handling branch mispredictions on an ROB-based architecture with RRF; title: Handling branch mispredictions on a merged register file; title: Recovery from an exception; title: References; title: Author biographies.