CPU Arxitekturası
CPU Nədir?
CPU (Central Processing Unit) - kompüterin beyni, bütün hesablama əməliyyatlarını və proqram təlimatlarını icra edən əsas komponentdir.
CPU Komponentləri
Əsas Komponentlər
graph TB
CPU[CPU]
CPU --> CU[Control Unit]
CPU --> ALU[Arithmetic Logic Unit]
CPU --> Registers[Registers]
CPU --> Cache[Cache Memory]
CU --> Decode[Decode Instructions]
CU --> Control[Control Signals]
ALU --> Arithmetic[Arithmetic Ops]
ALU --> Logic[Logic Ops]
Registers --> PC[Program Counter]
Registers --> IR[Instruction Register]
Registers --> General[General Purpose]
Cache --> L1[L1 Cache]
Cache --> L2[L2 Cache]
Cache --> L3[L3 Cache]
1. Control Unit (İdarəetmə Bloku)
- Təlimatları decode edir
- CPU komponentlərinə control signal göndərir
- Execution flow-u idarə edir
2. ALU (Arithmetic Logic Unit)
- Riyazi əməliyyatlar (toplama, çıxma, vurma, bölmə)
- Məntiqi əməliyyatlar (AND, OR, NOT, XOR)
- Müqayisə əməliyyatları
3. Registers (Qeydlər)
- Ən sürətli yaddaş növü
- CPU daxilində kiçik data saxlayır
- Növləri: Program Counter, Instruction Register, General Purpose
4. Cache Memory
- CPU və RAM arasında sürətli buffer
- L1, L2, L3 səviyyələri
Instruction Cycle
CPU-nun təlimat icra etmə tsikli:
graph LR
A[Fetch] --> B[Decode]
B --> C[Execute]
C --> D[Memory Access]
D --> E[Write Back]
E --> A
1. Fetch
- Təlimatı yaddaşdan oxuyur
- Program Counter-dən ünvanı alır
- Instruction Register-ə yerləşdirir
2. Decode
- Təlimatı şərh edir
- Hansı əməliyyatın icra olunacağını müəyyənləşdirir
- Lazım olan operandları tapır
3. Execute
- ALU əməliyyatı icra edir
- Nəticəni hesablayır
4. Memory Access
- Əgər lazımdırsa, memory-dən oxuyur və ya yazır
5. Write Back
- Nəticəni register-ə yazır
Pipelining
Pipelining - müxtəlif təlimatların müxtəlif mərhələlərini paralel icra etmək texnikası.
gantt
title CPU Pipeline
dateFormat X
axisFormat %s
section Instruction 1
Fetch :0, 1
Decode :1, 2
Execute :2, 3
Memory :3, 4
WriteBack :4, 5
section Instruction 2
Fetch :1, 2
Decode :2, 3
Execute :3, 4
Memory :4, 5
WriteBack :5, 6
section Instruction 3
Fetch :2, 3
Decode :3, 4
Execute :4, 5
Memory :5, 6
WriteBack :6, 7
Pipeline Hazards
1. Structural Hazards
- Hardware resurslarının çatışmazlığı
- Həll: Resource duplication
2. Data Hazards
- Təlimatlar arasında data asılılığı
- Növləri: RAW, WAR, WAW
- Həll: Forwarding, Stalling
3. Control Hazards
- Branch təlimatları pipeline-ı pozur
- Həll: Branch prediction
Superscalar və Out-of-Order Execution
Superscalar
- Bir cycle-da bir neçə təlimat icra edir
- Multiple execution units
- Daha yüksək throughput
Out-of-Order Execution
- Təlimatları sıra ilə deyil, hazır olduqca icra edir
- Data asılılığını minimize edir
- Performansı artırır
graph LR
A[Instruction Queue] --> B[Dispatch]
B --> C[Execution Units]
C --> D1[ALU 1]
C --> D2[ALU 2]
C --> D3[Load/Store]
C --> D4[FPU]
D1 --> E[Reorder Buffer]
D2 --> E
D3 --> E
D4 --> E
E --> F[Commit]
CISC vs RISC
CISC (Complex Instruction Set Computer)
Xüsusiyyətlər:
- Çoxlu və mürəkkəb təlimatlar
- Variable-length instructions
- Memory-to-memory operations
- Az sayda general purpose registers
- Microcode istifadə edir
Nümunələr: x86, x86-64
Üstünlükləri:
- Code density yüksək
- Compiler-ə sadəlik
Çatışmazlıqları:
- Pipeline çətinliyi
- Decode kompleksliyi
RISC (Reduced Instruction Set Computer)
Xüsusiyyətlər:
- Sadə və az sayda təlimat
- Fixed-length instructions
- Load/Store arxitekturası
- Çoxlu general purpose registers
- Hardware execution (microcode yox)
Nümunələr: ARM, RISC-V, PowerPC, MIPS
Üstünlükləri:
- Pipelining asandır
- Yüksək clock frequency
- Enerji səmərəliliyi
Çatışmazlıqları:
- Daha çox təlimat lazımdır
- Code size böyükdür
Müqayisə
| Xüsusiyyət | CISC | RISC |
|---|---|---|
| Instruction sayı | Çox | Az |
| Instruction uzunluğu | Variable | Fixed |
| Addressing modes | Çox | Az |
| Pipeline | Çətin | Asan |
| Registers | Az | Çox |
| Execution | Microcode | Hardware |
| Nümunə | x86 | ARM, RISC-V |
Multi-Core Architecture
Multi-core CPU - bir chip-də bir neçə independent processor core.
graph TB
CPU[Multi-Core CPU]
CPU --> Core1[Core 1]
CPU --> Core2[Core 2]
CPU --> Core3[Core 3]
CPU --> Core4[Core 4]
Core1 --> L1_1[L1 Cache]
Core2 --> L1_2[L1 Cache]
Core3 --> L1_3[L1 Cache]
Core4 --> L1_4[L1 Cache]
L1_1 --> L2_1[L2 Cache]
L1_2 --> L2_2[L2 Cache]
L1_3 --> L2_3[L2 Cache]
L1_4 --> L2_4[L2 Cache]
L2_1 --> L3[Shared L3 Cache]
L2_2 --> L3
L2_3 --> L3
L2_4 --> L3
L3 --> Memory[Main Memory]
Üstünlükləri
- Parallelizm: Bir neçə thread eyni vaxtda işləyir
- Enerji səmərəliliyi: Aşağı frequency-də yüksək performans
- Throughput: Daha çox iş görülür
Çətinliklər
- Cache coherence: Cache-lər arasında sinxronizasiya
- Load balancing: İşin core-lar arasında bölüşdürülməsi
- Synchronization overhead: Thread-lər arası əlaqə
Performans Göstəriciləri
Clock Speed (Frequency)
- Hz ilə ölçülür (GHz)
- Daha yüksək = daha sürətli (eyni arxitekturada)
IPC (Instructions Per Cycle)
- Bir cycle-da icra olunan orta təlimat sayı
- Arxitektura keyfiyyətini göstərir
TDP (Thermal Design Power)
- CPU-nun istehlak etdiyi enerji
- Cooling tələbini müəyyənləşdirir
Həqiqi Dünya Nümunələri
Intel Core i7:
- CISC (x86-64)
- Superscalar, Out-of-order
- 4-8 cores
- Hyper-threading
Apple M1:
- RISC (ARM)
- High-performance + Efficiency cores
- 8 cores
- Unified memory architecture
AMD Ryzen:
- CISC (x86-64)
- Chiplet architecture
- 6-16 cores
- SMT (Simultaneous Multi-Threading)
Əlaqəli Mövzular
- Memory Hierarchy: Cache və memory strukturu
- Pipelining Hazards: Pipeline problemləri
- Branch Prediction: Branch təlimatların proqnozlaşdırılması
- Parallelism: Paralel icra növləri