RISC Mimarisi Nedir?
RISC (Reduced Instruction Set Computer), basitleştirilmiş komut seti kullanan bir işlemci mimarisidir. CISC'nin karmaşık komutlarının aksine, RISC basit, hızlı çalışan komutlar kullanır.
RISC Tasarım İlkeleri
- Basit komutlar: Her komut bir çevrimde tamamlanır
- Load/Store mimarisi: Sadece load ve store komutları belleğe erişir
- Sabit uzunlukta komutlar: Tüm komutlar aynı boyutta
- Çok sayıda register: Register kullanımı bellek erişimini azaltır
- Pipeline uyumlu: Komutlar pipeline'da paralel çalışabilir
RISC-V Komut Seti
RISC-V, açık kaynak kodlu modern bir RISC mimarisidir. Berkeley Üniversitesi'nde geliştirilmiştir ve giderek popülerleşmektedir.
RISC-V Register Yapısı
- 32 genel amaçlı register (x0-x31)
- x0: Her zaman 0 değerini tutar (sabit)
- x1 (ra): Return address - Geri dönüş adresi
- x2 (sp): Stack pointer - Yığın göstericisi
- x5-x7, x28-x31 (t0-t6): Geçici register'lar
- x8-x9, x18-x27 (s0-s11): Kaydedilmiş register'lar
- x10-x17 (a0-a7): Fonksiyon argümanları ve dönüş değerleri
Temel Komut Formatları
R-type: register-register işlemler
add x1, x2, x3 → x1 = x2 + x3
I-type: immediate ve load komutları
addi x1, x2, 10 → x1 = x2 + 10
lw x1, 0(x2) → x1 = memory[x2]
S-type: store komutları
sw x1, 0(x2) → memory[x2] = x1
add x1, x2, x3 → x1 = x2 + x3
I-type: immediate ve load komutları
addi x1, x2, 10 → x1 = x2 + 10
lw x1, 0(x2) → x1 = memory[x2]
S-type: store komutları
sw x1, 0(x2) → memory[x2] = x1
RISC vs CISC
| Özellik | RISC | CISC |
|---|---|---|
| Komut sayısı | Az (≈100) | Çok (≈300-1000) |
| Komut uzunluğu | Sabit (32-bit) | Değişken (1-15 byte) |
| Pipeline | Kolay | Zor |
| Örnekler | ARM, RISC-V, MIPS | x86, x86-64 |
Assembly Programlama Temelleri
# Örnek: İki sayıyı toplama
li x10, 5 # x10 = 5
li x11, 10 # x11 = 10
add x12, x10, x11 # x12 = x10 + x11 = 15
# Döngü örneği
li x10, 0 # counter = 0
li x11, 10 # limit = 10
loop:
addi x10, x10, 1 # counter++
blt x10, x11, loop # if counter < limit goto loop
li x10, 5 # x10 = 5
li x11, 10 # x11 = 10
add x12, x10, x11 # x12 = x10 + x11 = 15
# Döngü örneği
li x10, 0 # counter = 0
li x11, 10 # limit = 10
loop:
addi x10, x10, 1 # counter++
blt x10, x11, loop # if counter < limit goto loop
Soru 1: RISC açılımı nedir?
Soru 2: RISC mimarisinde kaç register vardır?
Soru 3: x0 register'ının özelliği nedir?
Soru 4: Load/Store mimarisi ne demektir?
Soru 5: RISC-V komutları kaç bit uzunluğundadır?
Soru 6: "add x1, x2, x3" komutu ne yapar?
Soru 7: Stack pointer hangi register'dır?
Soru 8: Hangi mimari x86'ya aittir?
Soru 9: lw komutu ne yapar?
Soru 10: RISC-V hangi üniversitede geliştirildi?
RISC açılımı
Reduced Instruction Set Computer
RISC-V register sayısı
32 genel amaçlı register (x0-x31)
x0 register
Her zaman 0 değerini tutar (sabit)
x1 (ra) register
Return Address - Geri dönüş adresi
x2 (sp) register
Stack Pointer - Yığın göstericisi
Load/Store mimarisi
Sadece load ve store komutları belleğe erişir
RISC komut uzunluğu
Sabit - 32 bit
add komutu
add x1, x2, x3 → x1 = x2 + x3
addi komutu
addi x1, x2, 10 → x1 = x2 + 10
lw komutu
Load Word - Bellekten register'a okur
sw komutu
Store Word - Register'dan belleğe yazar
RISC örnekleri
ARM, RISC-V, MIPS, PowerPC
CISC örnekleri
x86, x86-64 (Intel, AMD)
R-type format
Register-Register işlemler (add, sub, and, or)
I-type format
Immediate ve Load komutları (addi, lw)