💾 Hafıza Organizasyonu
Bellek Türleri:
- RAM: Geçici, hızlı, uçucu bellek
- ROM: Kalıcı, yavaş, uçucu olmayan
- Cache: Çok hızlı, küçük ara bellek
- Hard Disk/SSD: Büyük, yavaş, kalıcı
📊 Bellek Hiyerarşisi
Hiyerarşi Prensibi
Yukarıdan aşağıya: Hız azalır, Kapasite artar, Maliyet azalır
| Seviye | Tür | Hız | Kapasite | Maliyet/Byte |
|---|---|---|---|---|
| 1 | CPU Registers | En hızlı (~1ns) | En küçük (KB) | En pahalı |
| 2 | L1 Cache | Çok hızlı (~2-4ns) | 32-128 KB | Çok pahalı |
| 3 | L2 Cache | Hızlı (~10-20ns) | 256KB-2MB | Pahalı |
| 4 | L3 Cache | Orta (~20-40ns) | 4-32 MB | Orta |
| 5 | RAM (Ana Bellek) | Yavaş (~60-100ns) | 4-64 GB | Ucuz |
| 6 | SSD/HDD | Çok yavaş (ms) | 256GB-4TB+ | En ucuz |
⚡ RAM (Random Access Memory)
RAM Özellikleri:
- ✅ Rastgele erişim (herhangi hücreye aynı sürede)
- ✅ Hızlı okuma ve yazma
- ❌ Uçucu (volatile) - Güç kesilince veri kaybolur
- ✅ Ana bellek olarak kullanılır
🔹 SRAM (Static RAM)
SRAM Özellikleri:
- Yapı: 6 transistör/bit (flip-flop)
- Hız: Çok hızlı
- Refresh: Gerek yok
- Güç: Düşük (sadece erişimde)
- Maliyet: Pahalı
- Kullanım: Cache bellekler
SRAM Avantajları:
✅ Çok hızlı
✅ Refresh gerektirmez
✅ Düşük güç tüketimi
SRAM Dezavantajları:
❌ Pahalı
❌ Büyük alan kaplar (6 transistör)
❌ Düşük yoğunluk
🔸 DRAM (Dynamic RAM)
DRAM Özellikleri:
- Yapı: 1 transistör + 1 kapasitör/bit
- Hız: SRAM'den yavaş
- Refresh: Sürekli gerekli (milisaniyede 1)
- Güç: Yüksek (refresh için)
- Maliyet: Ucuz
- Kullanım: Ana bellek (RAM)
💡 DRAM Refresh Nedir?
Kapasitör zamanla deşarj olur, veriler kaybolur. Bunun önlenmesi için sürekli yenilenme (refresh) gerekir.
Refresh Süresi: Genellikle 64ms'de bir tüm bellekte refresh yapılır.
DRAM Avantajları:
✅ Ucuz
✅ Yüksek yoğunluk (1T+1C)
✅ Büyük kapasiteler
DRAM Dezavantajları:
❌ Yavaş
❌ Refresh gerektirir
❌ Yüksek güç tüketimi
📊 SRAM vs DRAM Karşılaştırma
| Özellik | SRAM | DRAM |
|---|---|---|
| Yapı | 6 transistör (flip-flop) | 1 transistör + 1 kapasitör |
| Hız | Çok hızlı | Yavaş |
| Refresh | Gerek yok | Sürekli gerekli |
| Maliyet | Pahalı | Ucuz |
| Yoğunluk | Düşük | Yüksek |
| Güç | Düşük | Yüksek |
| Kullanım | Cache | Ana bellek (RAM) |
🔒 ROM (Read-Only Memory)
ROM Özellikleri:
- ✅ Uçucu olmayan (non-volatile)
- ✅ Veriler kalıcı
- ✅ Sadece okuma (genellikle)
- ✅ Firmware, BIOS saklama
🔹 ROM Türleri
1. ROM (Masked ROM)
- Yazılım: Fabrikada üretim sırasında
- Değişiklik: İmkansız
- Kullanım: Seri üretim
- Örnek: Oyun kartları, eski cihazlar
2. PROM (Programmable ROM)
- Yazılım: Bir kez programlanabilir
- Yöntem: Elektrik akımıyla (fuse yakar)
- Değişiklik: İmkansız (tek kullanımlık)
- Kullanım: Prototip, küçük seri
3. EPROM (Erasable PROM)
- Yazılım: Elektrikle programlanır
- Silme: UV ışınıyla (20-30 dk)
- Pencere: UV için şeffaf pencere var
- Kullanım: Geliştirme, test
4. EEPROM (Electrically Erasable PROM)
- Yazılım: Elektrikle programlanır
- Silme: Elektrikle (byte-byte)
- Hız: Yavaş yazma
- Kullanım: Konfigürasyon, ayarlar
5. Flash Memory
- Yazılım: Elektrikle programlanır
- Silme: Blok-blok hızlı silme
- Hız: EEPROM'dan hızlı
- Kullanım: USB, SSD, telefon, SD kart
Flash Memory Türleri:
NOR Flash: Rastgele erişim, hızlı okuma, kod çalıştırma (firmware)
NAND Flash: Sıralı erişim, yüksek yoğunluk, veri saklama (SSD, USB)
📊 ROM Türleri Karşılaştırma
| Tür | Yazılabilir? | Silinebilir? | Silme Yöntemi | Kullanım |
|---|---|---|---|---|
| ROM | Hayır (fabrika) | Hayır | - | Seri üretim |
| PROM | Bir kez | Hayır | - | Prototip |
| EPROM | Evet | Evet | UV ışın | Test/Geliştirme |
| EEPROM | Evet | Evet | Elektrikle | Ayarlar |
| Flash | Evet | Evet (blok) | Elektrikle | SSD, USB |
🚀 Cache Bellek
Cache Seviyeleri:
- L1 Cache: En hızlı, en küçük (32-128 KB), CPU içinde
- L2 Cache: Orta hız, orta boyut (256KB-2MB), CPU içinde veya yakın
- L3 Cache: Daha yavaş, büyük (4-32MB), çekirdekler arası paylaşılan
Cache Hit ve Miss
Cache Hit: Aranan veri cache'te bulunur → Hızlı erişim
Cache Miss: Aranan veri cache'te yok → RAM'den getirilir → Yavaş
Hit Rate: Cache başarı oranı (yüksek olmalı: %95+)
Cache Yazma Stratejileri:
- Write-Through: Cache ve RAM'e aynı anda yazar (güvenli ama yavaş)
- Write-Back: Önce cache'e yazar, sonra RAM'e aktarır (hızlı ama riskli)
📍 Adresleme Modları
Adresleme Türleri:
1. Doğrudan Adresleme (Direct)
Açıklama: Adres doğrudan komutta verilir
Örnek: MOV A, [1000h] → 1000h adresindeki veriyi A'ya yükle
✅ Basit, hızlı
❌ Sınırlı adres alanı
2. Dolaylı Adresleme (Indirect)
Açıklama: Komut bir pointer içerir, gerçek adres pointer'da
Örnek: MOV A, [R1] → R1'deki adresteki veriyi A'ya yükle
✅ Esnek, büyük adres alanı
❌ Daha yavaş (iki erişim)
3. İndeksli Adresleme (Indexed)
Açıklama: Baz adres + İndeks register
Örnek: MOV A, [1000h+SI] → (1000h+SI) adresindeki veriyi A'ya
✅ Diziler için ideal
4. Anında Adresleme (Immediate)
Açıklama: Veri doğrudan komutta
Örnek: MOV A, 5 → 5 sayısını A'ya yükle
✅ En hızlı (bellek erişimi yok)
🔢 Bellek Hesaplamaları
1. Adreslenebilir Bellek Miktarı
Formül: Adreslenebilir Bellek = 2n byte
n: Adres biti sayısı
Örnek:
16-bit adres yolu → 216 = 65,536 byte = 64 KB
32-bit adres yolu → 232 = 4,294,967,296 byte = 4 GB
2. Gerekli Adres Biti
Formül: n = log2(Bellek Boyutu)
Örnek:
1 MB bellek → log2(1,048,576) = 20 bit adres
4 KB bellek → log2(4,096) = 12 bit adres
3. Veri Transfer Hızı
Formül: Transfer Rate = Frekans × (Veri Yolu Genişliği / 8)
Birim: Byte/saniye
Örnek:
100 MHz, 32-bit veri yolu → 100M × (32/8) = 400 MB/s