5.7 Understanding Modern Processors 5.7.1 Overall Operation
21 5.7 Understanding Modern Processors 5.7.1 Overall Operation
Modern CPU Design Figure 5.11 P396 Instruction Control Address Fetch Retirement Control Instruction nstruction Register Instruction File Decode Operations Register Prediction Integer/ General FP Branch Integer AddMult/DivLoad Store Functional Units Operation Results Addr. Addr Data Data Cache ExecutIon 22
22 Modern CPU Design Figure 5.11 P396 Execution Functional Units Instruction Control Integer/ Branch FP Add FP Mult/Div Load Store Instruction Cache Data Cache Fetch Control Instruction Decode Address Instructions Operations Prediction OK? Data Data Addr. Addr. General Integer Operation Results Retirement Unit Register File Register Updates
etch Retirement Control Address nstruction Instruction Instructions Register C ache D ecode File Register operations Updates Predication oK? ⑦↓(5↓(6) Integer General FP FP Store /branch Integer Add mult/div Ee3 addr addr Operation results datal data (7 Data Cache
23 Retirement Unit Register File Instruction Cache Fetch Control Instruction Decode Address Instructions Integer /branch General Integer FP Add FP mult/div Load Store Functional units operations Predication OK? Data Cache Operation results addr data addr data Register Updates 1) 2) 3) 4) 5) (1) (2) (3) (4) (5) (6) (7)
Modern Processor P396 Superscalar Perform multiple operations on every clock cycle Out-of-order execution The order in which the instructions execute need not correspond to their ordering in the assembly program 24
24 Modern Processor P396 • Superscalar – Perform multiple operations on every clock cycle • Out-of-order execution – The order in which the instructions execute need not correspond to their ordering in the assembly program
Modern Processor P396 Two main parts Instruction Control Unit Responsible for reading a sequence of instructions from memory Generating from above instructions a set of primitive operations to perform on program daTa E× ecution Unit
25 Modern Processor P396 • Two main parts – Instruction Control Unit • Responsible for reading a sequence of instructions from memory • Generating from above instructions a set of primitive operations to perform on program data – Execution Unit