Структура процесора
CPU са системском магистралом
CPU интерно
Регистри
User Visible регистри
General Purpose регистри (1)
General Purpose регистри (2)
Колико GP регистара?
Величина?
Condition Code регистри
Control & Status регистри
Program Status Word
Supervisor Mode
Други регистри
Пример
Инструкцијски циклус
Индиректни циклус
Слика:
Дијаграм стања са индирекцијом
Ток података (Instruction Fetch)
Ток података (Data Fetch)
Ток података (Fetch Diagram)
Ток података (Indirect Diagram)
Ток података (Execute)
Ток података (Interrupt)
Ток података (Interrupt Diagram)
Prefetch
Увећање перформанси
Pipelining – Проточно извршавање
Two Stage Instruction Pipeline
Timing Diagram for �Instruction Pipeline Operation
The Effect of a Conditional Branch on Instruction Pipeline Operation
Шестофазни�Instruction Pipeline
Alternative Pipeline Depiction
Увећање брзине�за Instruction�Pipelining
Pipeline Hazards – Хазарди проточне обраде
Resource Hazards
Data Hazards – Хазарди података
Data Hazard Diagram
Врсте Data Hazard-а
Resource Hazard Diagram
Control Hazard
Multiple Streams
Примери
The example above instructs the processor to add r1 and r2 and put the result in r3, then subtract r4 from r5, storing the difference in r6. In the third instruction, beq stands for branch if equal. If the contents of r3 and r6 are equal, the processor should execute the instruction labeled "Loop." Otherwise, it should continue to the next instruction. In this example, the processor cannot make a decision about which branch to take because neither the value of r3 or r6 have been written into the registers yet.
Prefetch Branch Target
Loop Buffer
Loop Buffer Diagram
Branch Prediction (1) – предикција гранања
Branch Prediction (2) предикција гранања
Branch Prediction (3) предикција гранања
Branch Prediction Flowchart
Branch Prediction State Diagram
Dealing With �Branches
80486 Instruction Pipeline Examples
Pentium 4 Registers
EFLAGS Register
Control Registers
MMX Register Mapping
Mapping of MMX Registers to �Floating-Point Registers