🔌 Veri Yolu (Bus) Nedir?
Bus Türleri:
- Data Bus: Veri taşır (çift yönlü)
- Address Bus: Adres taşır (tek yönlü)
- Control Bus: Kontrol sinyalleri taşır (çift yönlü)
📊 Data Bus (Veri Yolu)
Data Bus Özellikleri:
- ✅ Çift Yönlü (Bidirectional): Hem okuma hem yazma
- ✅ Genişlik: 8, 16, 32, 64 bit
- ✅ Paralel: Tüm bitler aynı anda
- ✅ Paylaşımlı: Birden fazla cihaz kullanır
Veri Yolu Genişliği ve Performans:
- 8-bit: 1 byte/cycle (eski sistemler)
- 16-bit: 2 byte/cycle (8086, 80286)
- 32-bit: 4 byte/cycle (80386, Pentium)
- 64-bit: 8 byte/cycle (Modern CPU'lar)
Örnek:
32-bit Veri Yolu: Bir seferde 4 byte (32 bit) taşır
100 MHz frekans: 100M × 4 = 400 MB/s transfer hızı
⚠️ Data Bus Genişliği Neden Önemli?
Daha geniş veri yolu = Aynı anda daha çok veri = Daha hızlı sistem
8-bit: 1 byte → 16-bit: 2 byte → 32-bit: 4 byte → 64-bit: 8 byte
📍 Address Bus (Adres Yolu)
Address Bus Özellikleri:
- ✅ Tek Yönlü (Unidirectional): CPU'dan bellege/I/O'ya
- ✅ Adres belirler: Hangi bellek hücresi
- ✅ Genişlik: 16, 20, 24, 32, 64 bit
- ✅ Adreslenebilir Alan: 2^n byte
Adres Yolu Genişliği ve Bellek:
| Adres Biti | Adreslenebilir Bellek | Örnek Sistem |
|---|---|---|
| 16-bit | 2^16 = 64 KB | 8-bit mikroişlemciler |
| 20-bit | 2^20 = 1 MB | 8086/8088 |
| 24-bit | 2^24 = 16 MB | 80286 |
| 32-bit | 2^32 = 4 GB | 80386, Pentium |
| 64-bit | 2^64 = 16 EB | Modern CPU'lar |
Adres Hesaplama Formülü:
Adreslenebilir Bellek = 2^n byte
n: Adres biti sayısı
Örnek Hesaplamalar:
20-bit adres yolu: 2^20 = 1,048,576 byte = 1 MB
32-bit adres yolu: 2^32 = 4,294,967,296 byte = 4 GB
⚙️ Control Bus (Kontrol Yolu)
Control Bus Özellikleri:
- ✅ Çift Yönlü: Hem gönderir hem alır
- ✅ Koordinasyon: İşlemleri senkronize eder
- ✅ Çeşitli Sinyaller: Her sinyal farklı amaç
Önemli Kontrol Sinyalleri:
- READ (RD): Okuma işlemi - Bellekten veri al
- WRITE (WR): Yazma işlemi - Belleğe veri yaz
- RESET: Sistemi sıfırla
- CLOCK: Zamanlama sinyali
- IRQ (Interrupt Request): Kesme isteği
- READY: Hazır sinyali (cihaz hazır)
- BUS GRANT: Bus kullanım izni
- BUS REQUEST: Bus kullanım talebi
Kontrol Sinyali Örnekleri:
Okuma: CPU, READ sinyalini aktif eder → Bellek veriyi Data Bus'a koyar
Yazma: CPU, WRITE sinyalini aktif eder → Veri Data Bus'tan belleğe yazılır
IRQ: Klavye tuşa basıldı → IRQ sinyali gönderir → CPU kesme rutinini çalıştırır
🔀 3-State Buffer (Tri-State Buffer)
3-State Buffer Durumları:
- 0 (Logic Low): Düşük seviye çıkış
- 1 (Logic High): Yüksek seviye çıkış
- High-Z (Hi-Impedance): Yüksek empedans - Çıkış bağlantısız (floating)
⚠️ Neden 3-State Buffer?
Problem: Birden fazla cihaz aynı bus'a bağlı. Hepsi aynı anda veri gönderse çakışma olur!
Çözüm: 3-State Buffer ile sadece bir cihaz aktif, diğerleri High-Z (pasif) durumda.
3-State Buffer Çalışma Prensibi:
| Enable | Input | Output | Durum |
|---|---|---|---|
| 1 (Aktif) | 0 | 0 | Çıkış aktif - Veri gönder |
| 1 (Aktif) | 1 | 1 | Çıkış aktif - Veri gönder |
| 0 (Pasif) | X (herhangi) | High-Z | Çıkış pasif - Bus'a bağlı değil |
Bus Paylaşımı Örneği:
4 cihaz Data Bus'a bağlı:
Cihaz 1 veri gönderiyor → Enable=1 (Aktif) → Çıkış 0/1
Cihaz 2,3,4 bekliyor → Enable=0 (Pasif) → Çıkış High-Z
Sonuç: Çakışma yok, sadece Cihaz 1 bus'ı kullanıyor
📊 Bus Arbitration (Bus Hakemliği)
Arbitration Yöntemleri:
- Daisy Chain: Seri bağlı, ilk cihaz öncelikli
- Centralized: Merkezi arbiter karar verir
- Distributed: Dağıtık, cihazlar aralarında anlaşır
🔢 Bus Hesaplamaları
1. Veri Transfer Hızı
Transfer Rate = Frekans × (Data Bus Genişliği / 8)
Birim: Byte/saniye (B/s)
Örnek:
100 MHz frekans, 32-bit data bus
Transfer Rate = 100M × (32/8) = 100M × 4 = 400 MB/s
2. Gerekli Cycle Sayısı
Cycle Sayısı = Toplam Veri / (Data Bus Genişliği / 8)
Örnek:
1 KB veri transferi, 16-bit data bus
1024 byte / (16/8) = 1024 / 2 = 512 cycle