Bölüm 1.1: Giriş

Mikroişlemciler
Mikroişlemci ve mikrodenetleyiciGetir · çöz · yürütMikroişlemci yapısı Saat hızıCISC · RISC · EPICÖzel amaçlı işlemciler Intel x86 evrimiModern işlemci özellikleri
Sercan KÜLCÜ · Giresun Üniversitesi · Elektrik-Elektronik Mühendisliği

Giriş

Öğrenme Çıktıları

Temel kavramlar

Mikroişlemciyi, mikrodenetleyiciyi ve bir bilgisayar sisteminin yollarını tanımlamak.

Komut döngüsü

Getir–çöz–yürüt döngüsünü ve program sayacının (IP/PC) rolünü adım adım izlemek.

Performans

Saat frekansı, periyot, CPI ve çalışma süresi arasındaki ilişkiyi hesaplamak.

Mimari türleri

CISC, RISC, EPIC ile vektör, SIMD, DSP, GPU gibi işlemci türlerini karşılaştırmak.

x86 ailesi

4004'ten Core i7'ye Intel işlemcilerinin gelişimini ve 8086'nın yerini açıklamak.

Modern özellikler

Önbellek, çok çekirdek, sanallaştırma ve güç yönetimi gibi kavramları tanımak.

Temel Kavramlar

Mikroişlemci Nedir?

  • Bilgisayarın beyni: merkezî işlem biriminin (CPU) tek bir yonga üzerinde gerçeklenmiş hâli.
  • Programlanabilir bir aygıttır; ne yapacağını bellekteki komutlar belirler.
  • Temel iş akışı:
    • girdi alır,
    • aritmetik ve mantıksal işlemler yapar,
    • istenen çıktıyı üretir.
  • Makine dilindeki komutları okur ve uygular.
Girdi Mikro-işlemci Çıktı Bellek komut + veri klavye, sensörekran, motor
Örnek: hesap makinesinde tuşlar girdi, toplama işlemi işlem, ekrandaki sonuç çıktıdır.

Temel Kavramlar

Bilgisayar Sistemi ve Yollar (Bus)

CPU(mikroişlemci) BellekRAM / ROM G/Ç birimleriklavye, ekran, disk Adres yolu → (tek yönlü) Veri yolu ↔ (çift yönlü) Kontrol yolu (RD, WR, …)
Adres yoluHangi bellek gözüne / G/Ç kapısına erişileceğini seçer. n hat → 2n adres. 8086: 20 bit → 1 MB.
Veri yoluOkunan ya da yazılan veriyi taşır. Genişliği bir seferde aktarılan bit sayısıdır. 8086: 16 bit.
Kontrol yoluOkuma/yazma, bellek mi G/Ç mı, saat, kesme gibi zamanlama ve kontrol sinyalleri.

Temel Kavramlar

Mikroişlemci ve Mikrodenetleyici

Mikroişlemci (MPU) tabanlı sistem CPU RAM ROM G/Ç Zamanlayıcı ayrı yongalar Mikrodenetleyici (MCU) CPU RAM Flash/ROM G/Ç portları Zamanlayıcı ADC · UART hepsi tek yongada (“yonga üstü bilgisayar”)
MikroişlemciYalnızca CPU; bellek ve çevre birimleri dışarıdan eklenir. Esnek ve güçlü. Ör: 8086, Core i7, Ryzen.
MikrodenetleyiciCPU + bellek + çevre birimleri tek yongada. Ucuz, az enerji, tek işe adanmış. Ör: 8051, PIC, AVR (Arduino), STM32.

Temel Kavramlar

Mikroişlemci mi, Mikrodenetleyici mi?

ÖlçütMikroişlemci (MPU)Mikrodenetleyici (MCU)
İçerikCPU (ALU, kontrol birimi, yazmaçlar)CPU + RAM + Flash + G/Ç + zamanlayıcı + ADC…
Bellekdışarıda, büyük (GB)yonga içinde, küçük (KB–MB)
Saat hızıyüksek (GHz)düşük–orta (MHz)
Güçyüksek (W–100 W)çok düşük (mW, uyku modunda µW)
Maliyetyüksek; ek yongalar gerekirdüşük; tek yonga yeterli
Yazılımgenelde işletim sistemi + çok sayıda uygulamatek, sabit bir program (gömülü yazılım)
KullanımPC, sunucu, dizüstüçamaşır makinesi, kumanda, otomobil ECU, IoT
Örnek işlemci 8086: yolları, yazmaçları ve komutları MCU'larda da aynı mantıkla çalışır.

Temel Kavramlar

Ana Görevler: Komut Döngüsü

1 · Getir (fetch)Komutu, PC'nin gösterdiği adresten bellekten çeker.
2 · Çöz (decode)İşlem kodunu çözer: hangi işlem, hangi işlenenler?
3 · Yürüt (execute)Çözülen komutu uygular (ALU, veri taşıma, atlama).
4 · Sonuç (result)Sonucu yazmaca/belleğe yazar, bayrakları günceller.
Getir Çöz Yürüt Sonuç her komutiçin tekrar
İşlemci açık olduğu sürece bu döngü durmaksızın tekrarlanır. Hızlı işlemciler aşamaları üst üste bindirir (boru hattı).

Temel Kavramlar · Adım adım

Komut Döngüsü: MOV AL,5 · ADD AL,3 · HLT

Bellek0100hB00101h050102h040103h030104hF4makine koduadresveriMikroişlemciBAŞLANGIÇIP (PC) = 0100hKomut: —Kontrol birimibekliyorALUAL??BayraklarZF=?CF=?

Program belleğe yüklenmiş. IP (8086'da program sayacının adı) ilk komutun adresini, 0100h'yi gösteriyor.

Bellek0100hB00101h050102h040103h030104hF4makine koduadresveriMikroişlemci1 · GETİRIP (PC) = 0102hKomut: B0 05Kontrol birimi—ALUAL??BayraklarZF=?CF=?

Getir: IP adres yoluna konur, bellekten B0 05 okunur. IP komut uzunluğu (2 bayt) kadar artar → 0102h.

Bellek0100hB00101h050102h040103h030104hF4makine koduadresveriMikroişlemci2 · ÇÖZIP (PC) = 0102hKomut: B0 05Kontrol birimiB0 → MOV AL, sabit8sabit = 05hALUAL??BayraklarZF=?CF=?

Çöz: kontrol birimi B0 işlem kodunu “AL'ye 8 bitlik sabit yükle” olarak çözer; sabit 05h.

Bellek0100hB00101h050102h040103h030104hF4makine koduadresveriMikroişlemci3 · YÜRÜTIP (PC) = 0102hKomut: B0 05Kontrol birimiB0 → MOV AL, sabit8sabit = 05hALU(kullanılmaz)AL05hBayraklarZF=?CF=?

Yürüt / sonuç: 05h, AL yazmacına yazılır. MOV bayrakları etkilemez.

Bellek0100hB00101h050102h040103h030104hF4makine koduadresveriMikroişlemci1 · GETİRIP (PC) = 0104hKomut: 04 03Kontrol birimi—ALUAL05hBayraklarZF=?CF=?

Döngü yeniden başlar: 04 03 getirilir, IP → 0104h.

Bellek0100hB00101h050102h040103h030104hF4makine koduadresveriMikroişlemci2 · ÇÖZIP (PC) = 0104hKomut: 04 03Kontrol birimi04 → ADD AL, sabit8sabit = 03hALUAL05hBayraklarZF=?CF=?

04 = “AL'ye 8 bitlik sabit ekle”. İşlenenler: AL (05h) ve 03h.

Bellek0100hB00101h050102h040103h030104hF4makine koduadresveriMikroişlemci3 · YÜRÜTIP (PC) = 0104hKomut: 04 03Kontrol birimi04 → ADD AL, sabit8sabit = 03hALU05h + 03h = 08hAL08hBayraklarZF=0CF=0

ALU toplar: 05h + 03h = 08h → AL. Sonuç sıfır değil (ZF=0), elde yok (CF=0).

Bellek0100hB00101h050102h040103h030104hF4makine koduadresveriMikroişlemciGETİR → ÇÖZIP (PC) = 0105hKomut: F4Kontrol birimiF4 → HLTişlemciyi durdurALUAL08hBayraklarZF=0CF=0

F4 = HLT getirilip çözülür; işlemci bir kesme gelene kadar durur. Her komut için aynı döngü tekrarlanır.

Temel Kavramlar

Temel İşlevler

Aritmetik ve mantıksal işlemler

Toplama, çıkarma, karşılaştırma, AND/OR/XOR, kaydırma. ALU (Arithmetic Logic Unit) tarafından yapılır. Yeni işlemciler kayan noktalı sayılarla da çalışır (FPU).

ADD AX, BX
CMP AL, 10
AND AL, 0Fh
Veri taşıma

Veri yazmaçlar, bellek ve G/Ç arasında bir yerden başka bir yere kopyalanır. Programlardaki en sık işlemdir.

MOV AX, [1234h]
MOV [BX], AL
IN AL, 60h
Program sayacı (PC)

Sıradaki komutun adresini tutar. PC'ye yeni değer yazılarak atlanır; koşullu atlamalarla karar verilir. 8086'da adı IP.

JMP etiket
JZ sifirsa
CALL alt_program
Her program, bu üç işlevin (hesapla · taşı · sırayı değiştir) birleşiminden oluşur.

Temel Kavramlar · Kodu adım adım çalıştır

Kod İzleme: IP Nasıl Değişir?

mov cx, 3 3 bayttır; çalıştıktan sonra IP sıradaki komutu (0103h) gösterir.

Toplam sıfırlanır. IP yine komut uzunluğu kadar ilerler → 0106h.

AX = 0 + 3 = 3. add ax, cx 2 bayttır → IP = 0108h.

loop: CX = CX − 1 = 2 ≠ 0 → atla. IP'ye 0106h yazılır; sıralı akış bozulur.

AX = 3 + 2 = 5.

CX = 1 ≠ 0 → yine 0106h'ye atlanır.

AX = 5 + 1 = 6.

CX = 0 → atlama yok; IP sıradaki komuta (010Ah) geçer.

hlt: işlemci durur. Sonuç AX = 3 + 2 + 1 = 6.

0100  mov  cx, 3     ; sayaç = 3
0103  mov  ax, 0     ; toplam = 0
0106  dongu: add ax, cx
0108  loop dongu     ; CX--, CX≠0 ise atla
010A  hlt            ; dur

Soldaki sayılar komutların bellek adresleridir (bağıl konum, hex). loop bayrakları değiştirmez.

Mikroişlemci Yapısı

Mikroişlemci Yapısı

Mikroişlemci (CPU) Kontrol Birimi (CU)komut çözücü · zamanlamakontrol sinyalleri YazmaçlarAX BX CX DX · SP BP SI DIIP · bayraklar · kesim iç veri yolu ALU+ − × ÷ · AND OR XOR Yol Arayüz Birimiadres/veri tamponları(8086: BIU + komut kuyruğu) Bellek G/Ç adresverikontrol Saat (CLK)

Kontrol birimi komutları çözer ve diğer birimlere ne zaman ne yapacaklarını söyler; ALU hesaplar; yazmaçlar en hızlı geçici depodur; yol arayüzü dış dünyayla konuşur.

Mikroişlemci Yapısı

Yapı Bileşenleri

ALUİkili sayılar üzerinde aritmetik (+, −) ve mantıksal (AND, OR, NOT, XOR) işlemler ile karşılaştırma ve kaydırma yapar. Sonuca göre bayrakları (sıfır, elde, işaret, taşma) ayarlar.
Kontrol birimiKomutu çözer, hangi yazmacın hangi yola bağlanacağını, ALU'nun hangi işlemi yapacağını ve bellek okuma/yazma sinyallerini zamanlar.
Yazmaçlar (register)İşlemci içindeki küçük ve çok hızlı bellek gözleri. Genel amaçlı (veri), adres/işaretçi, durum (bayrak) ve program sayacı yazmaçları vardır.
Yol arayüzüAdres, veri ve kontrol yollarını sürer. 8086'da BIU komutları önden getirip 6 baytlık bir kuyrukta bekletir.
Saat ve zamanlamaTüm işlemler saat sinyalinin vuruşlarıyla eşzamanlı ilerler. Bir vuruşun süresi T = 1/f.
Önbellek, FPU, çekirdeklerModern işlemcilerde aynı yongada önbellek, kayan nokta birimi, birden çok çekirdek ve grafik birimi de bulunur.

Mikroişlemci Yapısı

Saat Sinyali ve Periyot

10CLKT1T2T3T4T1T = 1 / f8086 yol (bus) döngüsü = 4 T → 5 MHz'de 4 × 200 ns = 800 nssonraki tur
  • Saat frekansı f: saniyedeki vuruş (tur) sayısı, Hz.
  • Periyot T = 1 / f: bir vuruşun süresi.
  • Bir komut, birkaç saat turu sürebilir; 8086'da bir bellek erişimi en az 4 T (T1–T4) sürer.
fT = 1/f4 T
5 MHz (8086)200 ns800 ns
10 MHz (8086-1)100 ns400 ns
3 GHz0,333 ns1,33 ns

Mikroişlemci Yapısı · Etkileşimli

Hesaplayıcı: Saat Hızı, Periyot ve Çalışma Süresi

Periyot T—
8086 yol döngüsü (4 T)—
Hız (MIPS = f / CPI)—
Çalışma süresi—

CPI değerleri kabaca örnektir: 8086 komutları ortalama ~10 tur sürerken modern işlemciler tur başına birden çok komut bitirebilir (CPI < 1).

Mikroişlemci Yapısı · Kodu adım adım çalıştır

Kod İzleme: Bir Döngü Kaç Saat Turu Sürer?

org 100h
mov cx, 4        ; 4 tur
mov ax, 0        ; 4 tur
dongu: add ax, cx ; 3 tur
loop dongu       ; 17 / 5 tur
hlt              ; 2 tur
saat turları (5 MHz → 1 tur = 200 ns)0102030405060704şimdiye kadar:4 tur × 200 ns = 0,8 µsbu komut: MOV sabit → 4 turCX = 4 · AX = 0

Her komut belirli sayıda saat turu sürer. 5 MHz'lik 8086'da bir tur T = 1/f = 200 ns. mov cx, 4: 4 tur.

saat turları (5 MHz → 1 tur = 200 ns)01020304050607044şimdiye kadar:8 tur × 200 ns = 1,6 µsbu komut: MOV sabit → 4 turCX = 4 · AX = 0

mov ax, 0: yine 4 tur. Toplam 8 tur = 1,6 µs.

saat turları (5 MHz → 1 tur = 200 ns)01020304050607044şimdiye kadar:11 tur × 200 ns = 2,2 µsbu komut: ADD yazmaç → 3 turCX = 4 · AX = 4

add ax, cx: yazmaçtan yazmaca toplama 3 tur; bellek erişimi olmadığı için kısa. AX = 4.

saat turları (5 MHz → 1 tur = 200 ns)0102030405060704417şimdiye kadar:28 tur × 200 ns = 5,6 µsbu komut: LOOP → 17 turCX = 3 · AX = 4

loop: CX = 3 ≠ 0 → atlar. Atlayan LOOP 17 tur sürer: kuyruk boşaltılır, hedeften yeniden getirilir.

saat turları (5 MHz → 1 tur = 200 ns)0102030405060704417şimdiye kadar:31 tur × 200 ns = 6,2 µsbu komut: ADD yazmaç → 3 turCX = 3 · AX = 7

add ax, cx: yazmaçtan yazmaca toplama 3 tur; bellek erişimi olmadığı için kısa. AX = 7.

saat turları (5 MHz → 1 tur = 200 ns)010203040506070441717şimdiye kadar:48 tur × 200 ns = 9,6 µsbu komut: LOOP → 17 turCX = 2 · AX = 7

loop: CX = 2 ≠ 0 → atlar. Atlayan LOOP 17 tur sürer: kuyruk boşaltılır, hedeften yeniden getirilir.

saat turları (5 MHz → 1 tur = 200 ns)010203040506070441717şimdiye kadar:51 tur × 200 ns = 10,2 µsbu komut: ADD yazmaç → 3 turCX = 2 · AX = 9

add ax, cx: yazmaçtan yazmaca toplama 3 tur; bellek erişimi olmadığı için kısa. AX = 9.

saat turları (5 MHz → 1 tur = 200 ns)01020304050607044171717şimdiye kadar:68 tur × 200 ns = 13,6 µsbu komut: LOOP → 17 turCX = 1 · AX = 9

loop: CX = 1 ≠ 0 → atlar. Atlayan LOOP 17 tur sürer: kuyruk boşaltılır, hedeften yeniden getirilir.

saat turları (5 MHz → 1 tur = 200 ns)01020304050607044171717şimdiye kadar:71 tur × 200 ns = 14,2 µsbu komut: ADD yazmaç → 3 turCX = 1 · AX = 10

add ax, cx: yazmaçtan yazmaca toplama 3 tur; bellek erişimi olmadığı için kısa. AX = 10.

saat turları (5 MHz → 1 tur = 200 ns)010203040506070441717175şimdiye kadar:76 tur × 200 ns = 15,2 µsbu komut: LOOP → 5 turCX = 0 · AX = 10

CX = 0 → atlamaz; atlamayan LOOP yalnızca 5 tur.

saat turları (5 MHz → 1 tur = 200 ns)010203040506070441717175şimdiye kadar:78 tur × 200 ns = 15,6 µsbu komut: HLT → 2 turCX = 0 · AX = 10

hlt: 2 tur. Toplam 78 tur × 200 ns = 15,6 µs; turların yarıdan fazlası (51) atlayan LOOP'larda harcandı.

Tur sayıları 8086 veri sayfasındaki en iyi durum değerleridir (kuyruk dolu, bekleme durumu yok). Süre = tur sayısı × T.

Mikroişlemci Yapısı

16, 32 ve 64 Bitlik İşlemcilerin Saat Hızları

16-bit
  • 8086: 5 · 8 · 10 MHz
  • 8088: 5 · 8 MHz
    (IBM PC'de 4,77 MHz)
  • 80186/80188: 6 MHz'den başlayarak
  • 80286: 6 · 8 · 10 · 12,5 MHz
32-bit
  • 80386: 16 – 33 MHz
  • 80486: 16 – 100 MHz
    (DX2/DX4 saat çarpanı)
  • Pentium: 60 · 66 MHz ile başladı
64-bit
  • Core 2: 1,2 – 3 GHz
  • Core i7 (1. nesil): 2,66 – 3,33 GHz
  • Core i5 (1. nesil): 2,4 – 3,6 GHz
  • Core i3 (1. nesil): 2,93 – 3,33 GHz
30 yılda saat hızı yaklaşık 600 kat arttı (5 MHz → ~3 GHz). 2005 civarında güç ve ısı sınırına dayanıldı; o tarihten sonra performans artışı daha çok çok çekirdek ve tur başına daha fazla komutla sağlandı.

4,77 MHz, IBM PC'deki 8088'in saat hızıdır.

Mikroişlemci Yapısı

“n-bit İşlemci” Ne Demek?

İşlemcinin bir seferde işleyebildiği sözcük (word) genişliği: yazmaç ve ALU boyutu, çoğunlukla veri yolu genişliği. n bitle 0 … 2n − 1 aralığı temsil edilir.

Sözcükİşaretsiz aralık
8 bit0 … 255
16 bit0 … 65.535
32 bit0 … 4.294.967.295
64 bit0 … ≈ 1,8 × 1019

Adres yolu genişliği ise erişilebilen bellek miktarını belirler: n hat → 2n bayt.

Adres yoluBellekÖrnek
16 bit64 KB8080, 8085
20 bit1 MB8086, 8088
24 bit16 MB80286
32 bit4 GB80386, 80486
36 bit64 GBPentium Pro (PAE)
8086 16 bitlik bir işlemcidir ama 20 bitlik adres yoluna sahiptir. 20 bitlik adres, iki 16 bitlik değerin (kesim ve bağıl konum) birleştirilmesiyle üretilir.

Mikroişlemci Yapısı · Kodu adım adım çalıştır

16 Bitlik İşlemcide 32 Bitlik Toplama

org 100h
mov ax, 0FFFFh ; a: düşük yarı
mov dx, 0001h  ; a: yüksek yarı
mov bx, 0002h  ; b: düşük yarı
mov cx, 0003h  ; b: yüksek yarı
add ax, bx     ; düşük yarılar
adc dx, cx     ; yüksek + CF
ret
yüksek 16 bitdüşük 16 bitaDX????AXFFFFhbCX????BX????+CF0iki yazmaç = bir 32 bitlik sayı

a = 0001FFFFh (131.071) 16 bitlik bir yazmaca sığmaz; iki yarıya bölünür. Düşük yarı AX = FFFFh.

yüksek 16 bitdüşük 16 bitaDX0001hAXFFFFh= 131.071bCX????BX????+CF0iki yazmaç = bir 32 bitlik sayı

Yüksek yarı DX = 0001h. 32 bitlik a artık DX:AX çiftinde.

yüksek 16 bitdüşük 16 bitaDX0001hAXFFFFh= 131.071bCX????BX0002h+CF0iki yazmaç = bir 32 bitlik sayı

b = 00030002h (196.610): düşük yarı BX = 0002h.

yüksek 16 bitdüşük 16 bitaDX0001hAXFFFFh= 131.071bCX0003hBX0002h= 196.610+CF0iki yazmaç = bir 32 bitlik sayı

Yüksek yarı CX = 0003h; b, CX:BX çiftinde.

yüksek 16 bitdüşük 16 bitaDX0001hAX0001h= 65.537bCX0003hBX0002h= 196.610+CF1AX'ten taşan elde →

add ax, bx: FFFFh + 0002h = 1 0001h. 17. bit 16 bitlik AX'e sığmaz: AX = 0001h, taşan elde CF = 1.

yüksek 16 bitdüşük 16 bitaDX0005hAX0001h= 327.681bCX0003hBX0002h= 196.610+CF00001h + 0003h + 1 = 0005h

adc dx, cx: 0001h + 0003h + CF(1) = 0005h. Sonuç DX:AX = 00050001h = 327.681.

yüksek 16 bitdüşük 16 bitaDX0005hAX0001h= 327.681bCX0003hBX0002h= 196.610+CF0DX:AX = 00050001h

16 bitlik işlemci 32 bitlik toplamayı iki komutta yaptı; 32 bitlik bir işlemci (80386) aynı işi tek add ile yapar.

adc (add with carry), önceki toplamanın eldesini (CF) de ekler.

İşlemci Türleri

İşlemci Türleri: Genel Bakış

İşlemciler Komut kümesi mimarisi Veri işleme biçimi Uygulamaya özel CISC RISC EPIC Skalar Vektör Dizi DSP GPU Sembolik komutlar nasıl tasarlanır? bir komut kaç veriyi işler? hangi işe göre optimize?
CISCComplex Instruction Set Computer · Karmaşık Komut Kümeli Bilgisayar
RISCReduced Instruction Set Computer · Azaltılmış Komut Kümeli Bilgisayar
EPICExplicitly Parallel Instruction Computing · Açıkça Paralel Komut İşleme

İşlemci Türleri

Karmaşık Komut Kümeli Bilgisayar (CISC)

  • Karmaşık işlemleri tek bir komutla yapabilir.
  • Bir komut; bellekten yükleme, aritmetik işlem ve belleğe kaydetme gibi birden çok düşük düzeyli işlem içerebilir.
  • Komutlarda birden çok adresleme modu ve doğrudan bellek işlenenleri bulunur.
  • Komut uzunlukları değişkendir (8086'da 1–6 bayt); çözme karmaşıktır.
  • Görece az sayıda yazmaç kullanır.
  • Çoğunlukla mikroprogramlı kontrol birimi.
Örnekler
  • Intel 8086, 80386, 80486
  • Pentium, Pentium Pro, II, III
  • Motorola 68000, 68020, 68040
  • DEC VAX, IBM System/360
ADD [BX], AX   ; bellek = bellek + AX
REP MOVSB      ; CX bayt kopyala

Tek komut: oku + topla + yaz

İşlemci Türleri

Azaltılmış Komut Kümeli Bilgisayar (RISC)

  • Az sayıda, basit ve sabit uzunluklu komut (ör. hepsi 32 bit).
  • Optimize komutlar ve boru hattı (pipeline) ile hızlı yürütme.
  • Hedef: ideal durumda her saat turunda bir komut tamamlamak (CPI ≈ 1).
  • Belleğe yalnızca yükle/sakla (load/store) komutları erişir; işlemler yazmaçlar arasında yapılır.
  • Bellek erişimini azaltmak için çok sayıda yazmaç (32 ve üzeri).
  • Donanımsal (hardwired) kontrol birimi; karmaşıklık derleyiciye kayar.
Örnekler
  • IBM RS/6000 (POWER)
  • Motorola MC88100
  • DEC Alpha 21064, 21164, 21264
  • MIPS, SPARC
  • ARM (telefonlar, Apple M serisi)
  • RISC-V (açık kaynak komut kümesi)

Bir komut tek turda tamamlanmaz; birkaç aşamadan geçer. Boru hattı sayesinde her turda bir komut biter (verim/throughput).

İşlemci Türleri · Adım adım

Boru Hattı (Pipeline): Aşamaların Üst Üste Binmesi

12345678tur →K1IFK2K3K4Tamamlanan komut: 0 / 4IF getir · ID çöz · EX yürüt · MEM bellek · WB geri yaz

Tur 1: K1 getirilir (IF). Diğer aşamalar boş.

12345678tur →K1IFIDK2IFK3K4Tamamlanan komut: 0 / 4IF getir · ID çöz · EX yürüt · MEM bellek · WB geri yaz

Tur 2: K1 çözülürken (ID) K2 getirilir. İki komut aynı anda farklı aşamalarda.

12345678tur →K1IFIDEXK2IFIDK3IFK4Tamamlanan komut: 0 / 4IF getir · ID çöz · EX yürüt · MEM bellek · WB geri yaz

Tur 3: üç komut üç farklı aşamada çalışıyor.

12345678tur →K1IFIDEXMEMK2IFIDEXK3IFIDK4IFTamamlanan komut: 0 / 4IF getir · ID çöz · EX yürüt · MEM bellek · WB geri yaz

Tur 4: dört komut birden boru hattında.

12345678tur →K1IFIDEXMEMWBK2IFIDEXMEMK3IFIDEXK4IFIDTamamlanan komut: 1 / 4IF getir · ID çöz · EX yürüt · MEM bellek · WB geri yaz

Tur 5: boru hattı dolu sayılır; K1 tamamlanır (WB). Bundan sonra her turda bir komut biter.

12345678tur →K1IFIDEXMEMWBK2IFIDEXMEMWBK3IFIDEXMEMK4IFIDEXTamamlanan komut: 2 / 4IF getir · ID çöz · EX yürüt · MEM bellek · WB geri yaz

Tur 6: K2 tamamlanır.

12345678tur →K1IFIDEXMEMWBK2IFIDEXMEMWBK3IFIDEXMEMWBK4IFIDEXMEMTamamlanan komut: 3 / 4IF getir · ID çöz · EX yürüt · MEM bellek · WB geri yaz

Tur 7: K3 tamamlanır.

12345678tur →K1IFIDEXMEMWBK2IFIDEXMEMWBK3IFIDEXMEMWBK4IFIDEXMEMWBTamamlanan komut: 4 / 4IF getir · ID çöz · EX yürüt · MEM bellek · WB geri yaz

Tur 8: K4 tamamlanır. 4 komut k + n − 1 = 5 + 4 − 1 = 8 turda biter; boru hattısız 4 × 5 = 20 tur gerekirdi.

Fabrikadaki montaj bandı gibi: her aşama ayrı bir donanım birimidir ve her turda bir sonraki komuta geçer. Bağımlılıklar ve dallanmalar boru hattında bekleme (stall) doğurabilir.

İşlemci Türleri

Aynı İş, İki Yaklaşım

Görev: bellekteki bir sayıya bir yazmacın değerini eklemek (bellek[adr] += x).

CISC (8086)

ADD [BX], AX     ; 1 komut
                 ; oku, topla, yaz
  • Kod kısa, bellekte az yer kaplar.
  • Komut birçok tur sürer.

RISC (ARM)

LDR r2, [r1]       @ yükle
ADD r2, r2, r0     @ topla
STR r2, [r1]       @ sakla
  • 3 basit komut; her biri boru hattında akıcı.
  • Değer yazmaçta kalırsa sonraki işlemler belleğe gitmez.
Modern x86 işlemciler (Pentium Pro'dan beri) karmaşık komutları içeride RISC benzeri mikro-işlemlere (µop) çevirir: dışı CISC, içi RISC.

İşlemci Türleri · Kodu adım adım çalıştır

Kod İzleme: Tek CISC Komutu, Üç İş

org 100h
mov bx, offset sayi ; adres
mov ax, 7           ; değer
add [bx], ax        ; oku, topla, yaz
add [bx], ax        ; tekrar
ret
sayi dw 0123h
İşlemciBX010BhAX0000hgeçici—ALUBelleksayi · 010Bh0123h…

BX = 010Bh: sayi değişkeninin adresi. Bellekte sayi = 0123h.

İşlemciBX010BhAX0007hgeçici—ALUBelleksayi · 010Bh0123h…

AX = 0007h, eklenecek değer.

İşlemciBX010BhAX0007hgeçici0123hALUBelleksayi · 010Bh0123h…oku1 · OKU

add [bx], ax tek komut ama içeride üç iş yapar. 1 · Oku: BIU, 010Bh adresindeki sözcüğü (0123h) bir bellek okuma döngüsüyle geçici yazmaca getirir.

İşlemciBX010BhAX0007hgeçici012AhALU0123h + 7Belleksayi · 010Bh0123h…2 · TOPLA

2 · Topla: ALU, 0123h + 0007h = 012Ah hesaplar ve bayrakları günceller.

İşlemciBX010BhAX0007hgeçici012AhALUBelleksayi · 010Bh012Ah…yaz3 · YAZ

3 · Yaz: sonuç ikinci bir yol döngüsüyle belleğe geri yazılır: sayi = 012Ah. Bir komut = 2 bellek erişimi.

İşlemciBX010BhAX0007hgeçici0131hALU012Ah + 7Belleksayi · 010Bh0131h…oku/yazOKU · TOPLA · YAZ

Aynı komut yeniden: oku (012Ah), topla (+7), yaz → sayi = 0131h.

İşlemciBX010BhAX0007hgeçici0131hALUBelleksayi · 010Bh0131h…

CISC kodu kısa: tek komut. RISC işlemcide aynı iş üç komuttur (LDR, ADD, STR); ara değer yazmaçta görünür olur.

İşlemci Türleri

RISC ve CISC İşlemciler

ÖlçütRISCCISC
Komut kümesiaz ve basitgeniş ve karmaşık
Komut uzunluğusabitdeğişken
Komut başına turaz (≈1, boru hattıyla)çok (değişken)
Bellek erişimiyalnızca load/storeçoğu komut belleğe erişebilir
Yazmaç sayısıçokaz
Program boyutudaha uzundaha kısa
Güç tüketimidüşükgörece yüksek
Esneklikyük derleyicidegeniş komut yelpazesi, esnek kullanım
RISC: az çeşit komutu hızlı çalıştırır, yüksek performans/düşük güç. CISC: çok çeşit komut sunar ama tek tek komutlar daha yavaştır.

İşlemci Türleri

Açıkça Paralel Komut İşleme (EPIC)

  • Hangi komutların paralel çalışabileceğine donanım değil derleyici karar verir ve bunu koda açıkça yazar.
  • Yüksek saat frekansı gerekmeden çok sayıda komut aynı anda yürütülebilir.
  • Komutlar 128 bitlik paketler (bundle) hâlinde kodlanır: 41 bitlik üç komut + 5 bitlik şablon.
komut 2 · 41 bit komut 1 · 41 bit komut 0 · 41 bit 12787|8646|455|40 şablon (5 bit): yuvaların birim türü ve paralel grup sınırı 3 × 41 + 5 = 128
ÖrnekIntel–HP ortak mimarisi IA-64; Itanium işlemcileri (2001–2021).
SonuçDerleyiciye çok yük bindirdi ve x86 uyumluluğu zayıf kaldı; piyasada x86-64'e yenildi.

İşlemci Türleri

Skalar ve Vektör İşleme

Skalar: 4 ayrı ADD (4 adım) t=1t=2t=3t=4 1+ 10= 11 2+ 20= 22 3+ 30= 33 4+ 40= 44 Vektör: 1 VADD (1 adım) ABC 1 2 3 4 + 10 20 30 40 = (tek komut, t=1) 11 22 33 44

Skalar işlemci her komutta tek bir veri öğesini işler; vektör işlemci tek bir komutla tüm bir veri dizisini (vektörü) işler. Komut getirme/çözme ve döngü yükü bir kez ödenir.

İşlemci Türleri · Kodu adım adım çalıştır

Kod İzleme: Skalar İşlemcide c = a + b

org 100h
mov si, 0
mov cx, 4
dongu: mov al, a[si]  ; bir öğe oku
add al, b[si]         ; bir toplama
mov c[si], al         ; bir öğe yaz
inc si
loop dongu
ret
a db 3, 5, 7, 9
b db 10, 20, 30, 40
c db 4 dup(0)
a3579b10203040cskalar2 komutvektör (4 öğe)1 toplama

SI = 0 (indis), CX = 4 (öğe sayısı). Skalar işlemci her komutta tek bir veri öğesiyle çalışır.

a3579b10203040c13SI = 0skalar5 komutvektör (4 öğe)1 toplama

Öğe 0: a[0] + b[0] = 3 + 10 = 13 → c[0]. Bir öğe için üç komut getirilip çözüldü.

a3579b10203040c13→ SI = 1skalar7 komutvektör (4 öğe)1 toplama

SI = 1, CX = 3 ≠ 0 → döngü başına. Döngü yükü (INC, LOOP) her öğe için yeniden ödenir.

a3579b10203040c1325SI = 1skalar10 komutvektör (4 öğe)1 toplama

Öğe 1: a[1] + b[1] = 5 + 20 = 25 → c[1]. Bir öğe için üç komut getirilip çözüldü.

a3579b10203040c1325→ SI = 2skalar12 komutvektör (4 öğe)1 toplama

SI = 2, CX = 2 ≠ 0 → döngü başına. Döngü yükü (INC, LOOP) her öğe için yeniden ödenir.

a3579b10203040c132537SI = 2skalar15 komutvektör (4 öğe)1 toplama

Öğe 2: a[2] + b[2] = 7 + 30 = 37 → c[2]. Bir öğe için üç komut getirilip çözüldü.

a3579b10203040c132537→ SI = 3skalar17 komutvektör (4 öğe)1 toplama

SI = 3, CX = 1 ≠ 0 → döngü başına. Döngü yükü (INC, LOOP) her öğe için yeniden ödenir.

a3579b10203040c13253749SI = 3skalar20 komutvektör (4 öğe)1 toplama

Öğe 3: a[3] + b[3] = 9 + 40 = 49 → c[3]. Bir öğe için üç komut getirilip çözüldü.

a3579b10203040c13253749skalar22 komutvektör (4 öğe)1 toplama

CX = 0: döngü bitti. 4 toplama için 22 komut yürütüldü; vektör işlemci tek bir vektör toplama komutuyla dört öğeyi birden işler.

İşlemci Türleri

Vektör İşlemcisi (Vector Processor)

  • Vektör adı verilen veri dizileri üzerinde matematiksel işlemler yapar.
  • Tek bir veri öğesi üzerinde çalışan skalar işlemcilere göre bu tür işlerde çok daha hızlıdır.
  • Birden çok veri öğesini aynı anda (ya da derin boru hattında art arda) işler.
  • Uzun vektör yazmaçları ve vektör yükle/sakla birimleri vardır.
  • Süper bilgisayar, sunucu ve GPU gibi yüksek performanslı sistemlerde kullanılır.
V112345678V21020304050607080V31122334455667788VADD V3, V1, V2tek komut8 toplama birden
TarihîCray-1 (1976) süper bilgisayarı
Bugünx86 SSE/AVX, ARM NEON/SVE, RISC-V V uzantısı
Uygulamahava tahmini, fizik benzetimi, yapay zekâ

İşlemci Türleri

Dizi İşlemcisi (Array Processor)

  • SIMD (Single Instruction, Multiple Data · tek komut, çok veri) olarak da adlandırılır.
  • Tek kontrol birimi, aynı komutu çok sayıda işlem elemanına (PE) yayınlar; her PE kendi verisini işler.
  • Paralel hesaplamalar ve vektör işlemleri için optimize edilmiştir.
  • Tek veri öğesiyle çalışan skalar işlemcilerden farklıdır.
  • Süper bilgisayar, sunucu ve GPU'larda kullanılır; genel amaçlı hesaplamada nadirdir.
Flynn sınıflandırması
SISDtek komut, tek veri (klasik 8086)
SIMDtek komut, çok veri (dizi/vektör, GPU)
MISDçok komut, tek veri (nadir; hata toleransı)
MIMDçok komut, çok veri (çok çekirdek, kümeler)
Kontrol birimi: ADDPE0yerel veri 0PE1yerel veri 1PE2yerel veri 2PE3yerel veri 3

İşlemci Türleri

Sayıl (Skalar) İşlemci (Scalar Processor)

  • Sayıl (vektör olmayan) veriyi, komut başına bir veri öğesi olarak işler.
  • Basit sayıl işlemciler yalnızca tamsayılarla çalışır.
  • Güçlü olanlar kayan noktalı sayıları da işler: tamsayı birimi (ALU) ve kayan nokta birimi (FPU) aynı yongadadır.
  • CISC ya da RISC mimarisinde olabilir.
  • Genel amaçlı hesaplamada en yaygın türdür.
Süperskalar (superscalar)

Birden çok boru hattı/yürütme birimiyle bir saat turunda birden fazla komut başlatabilen skalar işlemci. İlk x86 örneği: Pentium (U ve V boru hatları).

saat turu →123456skalarK1K2K3K4K5K6süperskalar UK1K3K5K7K9K11süperskalar VK2K4K6K8K10K12

İşlemci Türleri

Dijital Sinyal İşlemcisi (DSP)

  • Dijital sinyaller üzerinde işlem yapmak için optimize edilmiştir.
  • Dijital sinyal: ses, görüntü gibi duyusal bilgileri temsil eden örnek (sample) dizileri.
  • Sinyal işlemeye özel komut kümesi ve donanım: tek turda çarp-topla (MAC), dairesel tampon adresleme, sıfır yüklü döngü.
  • Uygulamalar:
    • ses işleme ve filtreleme
    • görüntü işleme ve işaretleme
    • telekomünikasyon altyapısı (modem, baz istasyonu)
FIR süzgeci

y[n] = Σ h[k] · x[n − k]

Her çıktı örneği için N çarpma + N toplama. DSP her terimi tek MAC komutuyla yapar:

A ← A + h[k] × x[n−k]

Ör: TI TMS320, Analog Devices SHARC

İşlemci Türleri · Kodu adım adım çalıştır

Kod İzleme: FIR Toplamı 8086 ile

org 100h
mov si, 0
mov bx, 0        ; toplam
mov cx, 3        ; terim sayısı
dongu: mov al, h[si]
mul x[si]        ; AX = h × x
add bx, ax       ; toplama ekle
inc si
loop dongu
ret
h db 2, 3, 1
x db 10, 20, 30
h231x102030×AX+BX (toplam)0geri beslemeAX = 0y = 2·10 + 3·20 + 1·30 = 110

BX = 0 akümülatör, CX = 3 terim. Süzgeç çıktısı y = h[0]·x[0] + h[1]·x[1] + h[2]·x[2].

h231x102030×AX+BX (toplam)0geri beslemeAX = 20y = 2·10 + 3·20 + 1·30 = 110

Terim 0: AL = h[0] = 2, mul → AX = 2 × 10 = 20. 8086'da MUL tek başına 70 turdan uzun sürer.

h231x102030×AX+BX (toplam)20geri beslemeAX = 20y = 2·10 + 3·20 + 1·30 = 110

add bx, ax: toplam = 20. Çarpma ve toplama iki ayrı komut; DSP'de ikisi tek MAC komutudur.

h231x102030×AX+BX (toplam)20geri beslemeAX = 60y = 2·10 + 3·20 + 1·30 = 110

Terim 1: AL = h[1] = 3, mul → AX = 3 × 20 = 60. 8086'da MUL tek başına 70 turdan uzun sürer.

h231x102030×AX+BX (toplam)80geri beslemeAX = 60y = 2·10 + 3·20 + 1·30 = 110

add bx, ax: toplam = 80. Çarpma ve toplama iki ayrı komut; DSP'de ikisi tek MAC komutudur.

h231x102030×AX+BX (toplam)80geri beslemeAX = 30y = 2·10 + 3·20 + 1·30 = 110

Terim 2: AL = h[2] = 1, mul → AX = 1 × 30 = 30. 8086'da MUL tek başına 70 turdan uzun sürer.

h231x102030×AX+BX (toplam)110geri beslemeAX = 30y = 2·10 + 3·20 + 1·30 = 110

add bx, ax: toplam = 110. Üç terim bitti: y = 110. Her terim için ayrı MUL + ADD (+ döngü yükü) gerekti; DSP bunu tek MAC komutuyla, tek turda yapar.

İşlemci Türleri

Sembolik İşlemci (Symbolic Processor)

  • Sembolik hesaplama için tasarlanmıştır: sayılar yerine semboller, listeler ve kurallar işlenir.
  • PROLOG (ve LISP) işlemcileri olarak da adlandırılır.
  • Anlamsal (semantik) hesaplama ve sembolik mantık kuralları üzerine odaklanır.
  • Matematiksel ifadeleri ve sembolleri işler; karmaşık ifadeleri sadeleştirebilir, türev alabilir.
Uygulama alanları
  • Uzman sistemler (expert systems)
  • Makine zekâsı (machine intelligence)
  • Kural tabanlı çıkarım
baba(ali, veli).
dede(X, Z) :- baba(X, Y),
              baba(Y, Z).

Prolog kuralı: sembolik çıkarım

1980'lerin LISP makineleri (Symbolics) ve Japonya'nın 5. Nesil Bilgisayar projesi bu türdendi; bugün bu işler genel amaçlı işlemcilerde yazılımla yapılır.

İşlemci Türleri

Grafik İşlem Birimi (GPU)

  • 2B ve 3B grafiklerin hızlandırılması için tasarlanmıştır.
  • Gerçek zamanlı, yüksek kaliteli grafikler üretir.
  • Görüntü oluşturma (render) görevlerinde etkin ve verimlidir: gölgelendirme (shading), dokulama (texturing), rasterleştirme.
  • Binlerce basit çekirdek aynı programı farklı piksellerde çalıştırır (SIMD/SIMT).
  • Grafik kartı ve hızlandırıcı (accelerator) gibi özel donanımlarda kullanılır.
CPUbirkaç güçlü çekirdek · gecikmeyi azaltır · karmaşık akış
GPUbinlerce basit çekirdek · verimi artırır · paralel veri
GPGPUCUDA/OpenCL ile bilimsel hesap ve derin öğrenme
CPUçekirdekçekirdekçekirdekçekirdekbüyük önbellek + denetimGPUyüzlerce–binlerce küçük çekirdek

İşlemci Türleri

İşlemci Türleri: Özet Tablo

TürTemel fikirGüçlü yanıÖrnek
CISCzengin, karmaşık komutlarkısa kod, uyumluluk8086, Pentium, 68000
RISCbasit komut + boru hattıhız, düşük güçARM, MIPS, RISC-V
EPICderleyici paralelliği belirlerkomut düzeyi paralellikIA-64 Itanium
Skalarkomut başına bir verigenel amaçlıçoğu CPU çekirdeği
Vektörkomut başına veri dizisibilimsel hesapCray-1, AVX
Dizi (SIMD)çok PE, aynı komutbüyük paralellikILLIAC IV, GPU
DSPMAC, özel adreslemegerçek zamanlı sinyalTMS320, SHARC
Semboliksembol/kural işlemeyapay zekâ (klasik)LISP makineleri
GPUbinlerce basit çekirdekgrafik, derin öğrenmeNVIDIA, AMD Radeon

Intel x86 Evrimi

Mikroişlemcilerin Evrimi

1947 · TransistörBell Laboratuvarları'nda (Bardeen, Brattain, Shockley) icat edildi, 1948'de duyuruldu; mikroelektronik devrimi başladı.
1958 · Tümleşik devre (IC)Texas Instruments'ta Jack Kilby ilk tümleşik devreyi gösterdi. Birçok transistör tek bir yonga üzerinde birleştirilerek karmaşık devreler kurulabildi.
1971 · İlk mikroişlemciIntel 4004: bütün bir CPU tek yongada. Mikroişlemci bilgisayarın merkezî işlem birimi (CPU) görevini üstlendi.
SonuçBilgisayarlar oda büyüklüğünden masaüstüne, oradan cebe sığdı: daha küçük, daha güçlü, daha hızlı ve daha ucuz.

Intel x86 Evrimi

Intel İşlemcileri: Zaman Çizelgesi

400419718008197280801974808519768086197880881979802861982803861985804861989Pentium1993Pentium Pro1995Pentium II1997Pentium III1999Pentium 42000Core 22006Core i720084-bit8-bit16-bit32-bit64-bit
x86 adı 8086'dan sonraki 80186, 80286, 80386, 80486 adlarının ortak “86” sonekinden gelir. Hepsi 8086 kodunu çalıştırabilir: geriye uyumluluk.

Intel x86 Evrimi

4 ve 8 Bitlik Mikroişlemciler

İşlemciYılSaatTransistörKomut hızı / not
4004 (4-bit)1971740 kHz2.300≈ 60.000 komut/s; Ted Hoff, Federico Faggin, Stanley Mazor
4040 (4-bit)1974740 kHz≈ 3.0004004'ün geliştirilmiş sürümü (kesme, daha çok komut)
8008 (8-bit)1972500 kHz3.500≈ 50.000 komut/s; ilk 8 bitlik
8080 (8-bit)19742 MHz6.0008008'in ≈10 katı hız; 16-bit adres (64 KB); ilk kişisel bilgisayarlar (Altair 8800)
8085 (8-bit)19763 MHz6.500tek +5 V besleme; 16-bit adres yolu; ≈ 769.000 komut/s (en kısa komut 1,3 µs)

Intel x86 Evrimi

16 Bitlik Mikroişlemciler

İşlemciYılSaatTransistörÖzellik
808619785 · 8 · 10 MHz29.00016-bit veri yolu, 20-bit adres yolu (1 MB); donanımsal çarpma/bölme; ≈ 0,33–0,75 MIPS
808819795 · 8 MHz29.0008086'nın 8-bit dış veri yollu ucuz sürümü; IBM PC (1981, 4,77 MHz)
80186 / 8018819826 MHz'den≈ 55.000yonga üstünde kesme denetleyicisi, saat üreteci, yerel yol denetleyicisi, sayaçlar, DMA; 80188 ucuz (8-bit dış yol) sürüm
8028619826 – 12,5 MHz134.00016-bit veri, 24-bit adres yolu (16 MB); korumalı mod; ≈ 0,9–2,7 MIPS
8086 komutları ortalama 10'dan fazla tur sürdüğü için 5 MHz'de yaklaşık 0,33 MIPS elde edilir.

Intel x86 Evrimi

32 Bitlik Mikroişlemciler

İşlemciYılSaatTransistörÖzellik
80386198516 – 33 MHz275.00032-bit veri ve adres yolu (4 GB), sayfalama; sürümler: 386DX, 386SX (1988; 16-bit dış veri, 24-bit adres), 386SL (dizüstü)
80486198916 – 100 MHz1,2 milyonyonga üstü 8 KB önbellek, entegre FPU, 5 aşamalı boru hattı; sürümler: 486DX, 486SX (FPU'suz), DX2, DX4
Pentium199360 · 66 MHz (ilk)3,1 milyonsüperskalar (2 boru hattı); ayrı 8 KB komut + 8 KB veri önbelleği; 64-bit dış veri yolu

Intel x86 Evrimi

64 Bitlik Mikroişlemciler

İşlemciYılSaatTransistörÖzellik
Core 220061,2 – 3 GHz291 milyon (Duo)çekirdek başına 64 KB L1 (32 KB komut + 32 KB veri), 2–4 MB paylaşımlı L2; sürümler: Duo, Quad, Extreme
Core i720082,66 – 3,33 GHz731 milyon4 çekirdek, Hyper-Threading, entegre bellek denetleyicisi, 8 MB L3
Core i520092,4 – 3,6 GHz—orta sınıf; Turbo Boost
Core i320102,93 – 3,33 GHz—giriş sınıfı; 2 çekirdek, entegre grafik
64 bitlik x86 (x86-64) ilk kez AMD tarafından (AMD64, Opteron/Athlon 64, 2003) sunuldu; Intel bunu 2004'te Pentium 4 ile benimsedi.

Saat aralıkları 1. nesil masaüstü/mobil modellere göredir.

Intel x86 Evrimi

Transistör Sayısı ve Moore Yasası

1031041051061071081094004 · 19712.3008080 · 19746.0008086 · 197829.00080286 · 1982134.00080386 · 1985275.00080486 · 19891,2 milyonPentium · 19933,1 milyonPentium 4 · 200042 milyonCore 2 Duo · 2006291 milyonCore 2 Quad (45 nm) · 2008820 milyon
Moore yasası (1965/1975): yonga başına transistör sayısı yaklaşık her iki yılda bir iki katına çıkar. 4004'ten Core 2 Quad'a 37 yılda ≈ 218 kat artış.

Intel x86 Evrimi · Temel özellikler

8080 ve 8086

Mikroişlemcilerin yapısı, örgütlenimi ve teknolojisi; ilk genel amaçlı mikroişlemci 8080'den, 29.000 transistörlü 8086'ya ve 820 milyon transistörlü dört çekirdekli Core 2'ye kadar dramatik biçimde değişti.

8080 (1974)
  • İlk genel amaçlı mikroişlemci olarak anılır.
  • 8-bit veri yolu, 16-bit adres yolu (64 KB).
  • İlk kişisel bilgisayarlarda (Altair 8800) kullanıldı.
8086 (1978)
  • 16-bit veri yolu ve 16 bitlik, daha çok sayıda yazmaç.
  • 20-bit adres yolu: 1 MB adreslenebilir bellek.
  • Yalnızca gerçek mod (real mode).
  • Komutları çalıştırmadan önce önden getirip (prefetch) 6 baytlık komut kuyruğunda bekletir → getirme ile yürütme üst üste biner.

8086'da önbellek (cache) yoktur; hız kazancını komut kuyruğu sağlar. Yonga üstü önbellek x86'da 80486 ile geldi.

Intel x86 Evrimi · Temel özellikler

80286, 80386 ve 80486

80286 (1982)
  • 16 MB adreslenebilir bellek (24-bit adres).
  • Gerçek mod + 16 bitlik korumalı mod (protected mode).
  • 16-bit veri yolu ve yazmaçlar.
80386 (1985)
  • Intel'in ilk 32 bitlik mikroişlemcisi.
  • Çoklu görevi (multitasking) donanımla destekler.
  • 32 bitlik korumalı mod, sayfalama (paging), sanal 8086 modu.
  • 4 GB adreslenebilir bellek.
80486 (1989)
  • Yonga üstü önbellek (8 KB) ve komut boru hattı.
  • Sayfa yazma koruması (CR0.WP biti).
  • Karmaşık aritmetik için entegre matematik işlemcisi (FPU); önceden ayrı 80387 yongasıydı.
Korumalı mod: her programın belleği diğerlerinden yalıtılır; bir programın hatası işletim sistemini çökertemez. Modern işletim sistemlerinin temeli budur.

Intel x86 Evrimi · Temel özellikler

Pentium ve Pentium Pro

Pentium (1993)
  • Süperskalar: iki boru hattıyla (U, V) komutlar paralel çalışabilir.
  • Dallanma tahmini (ilk x86).
  • Sayfa boyutu uzantısı (PSE): 4 KB'nin yanında 4 MB'lık sayfalar → sayfalamada iyileştirme.
  • Ayrı komut ve veri önbellekleri.
Pentium Pro (1995)
  • Gelişmiş dallanma tahmini (branch prediction).
  • Veri akış analizi (data flow analysis) ile sıra dışı (out-of-order) yürütme.
  • Spekülatif yürütme (speculative execution).
  • Aynı paket içinde düzey 2 (L2) önbellek.
  • PAE: 32 bitlik sanal adres, 36 bitlik fiziksel adrese çevrilir (64 GB).

Pentium Pro'nun bu üç tekniğine birlikte Intel “dinamik yürütme” (dynamic execution) adını verdi.

Intel x86 Evrimi · Temel özellikler

Pentium II, III ve 4

Pentium II (1997)
  • MMX teknolojisini (multimedya için tamsayı SIMD komutları) Pentium Pro çekirdeğiyle birleştirdi.
  • Video, ses ve grafik verisini etkili işler.
Pentium III (1999)
  • SSE (Streaming SIMD Extensions): 70 yeni komut, kayan noktalı SIMD.
  • 3B grafik yazılımını destekler.
  • En yüksek saat hızı 1,4 GHz.
Pentium 4 (2000)
  • Multimedya için kayan nokta geliştirmeleri (SSE2, sonra SSE3).
  • Çok derin boru hattı (NetBurst), 3,8 GHz'e kadar.
  • Hyper-Threading.

MMX ilk kez 1997'de “Pentium MMX” ile geldi, Pentium II onu devraldı.

Intel x86 Evrimi · Temel özellikler

Core ve Core 2

Core (Core Duo, 2006)
  • İki çekirdeğin aynı kalıpta (die) L2 önbelleğini paylaştığı ilk Intel işlemcisi.
  • Sanallaştırma teknolojisi (VT-x) eklendi.
  • Düşük güç (mobil kökenli tasarım).
Core 2 (2006)
  • 64 bitlik mimari (Intel 64).
  • 64 bitlik yazmaç kümesi ve adresleme modları.
  • Core 2 Quad: tek pakette dört çekirdek (iki çift çekirdekli kalıp).
Core 2 Duo: 1 kalıpçekirdek 0çekirdek 1paylaşılan L2 önbellekCore 2 Quad: 1 pakette 2 kalıpçek. 0çek. 1L2çek. 2çek. 3L2

Intel'in ilk çift çekirdekli masaüstü işlemcisi 2005'teki Pentium D'dir (çekirdeklerin L2 önbellekleri ayrı).

Intel x86 Evrimi

x86 Mimarisinin Avantajları

Uyumluluk (compatibility)Eski yazılımlar değiştirilmeden yeni x86 işlemcilerde çalışır: 1978'de 8086 için yazılmış kod bugün de çalışabilir.
Performans (performance)Her yeni işlemci nesli öncekinden daha hızlı ve verimli oldu.
Çeşitlilik (versatility)Kişisel bilgisayarlardan sunuculara, gömülü sistemlere ve mobil cihazlara kadar geniş bir kullanım yelpazesi.
Geniş endüstri desteğiBüyük bir donanım ve yazılım sağlayıcı ekosistemi tarafından desteklenir; bu destek yenilik ve gelişmenin itici gücü oldu.

Intel x86 Evrimi

x86 Mimarisinin Dezavantajları

Karmaşık komut kümesiBinlerce komut ve değişken uzunluklu kodlama; çözücü donanımı karmaşıklaşır, kodu performans için optimize etmek zorlaşır.
Güç tüketimix86'nın evrimi güç tüketiminde önemli bir artış getirdi; pil ömrünün kritik olduğu aygıtlarda büyük bir sorun.
Isı yayılımıİşlemciler güçlendikçe daha çok ısınır; soğutma maliyeti ve gürültü artar.
Maliyet ve lisansx86 mimarisi Intel'e aittir; yalnızca lisans anlaşması olan firmalar (ör. AMD) üretebilir, rekabet sınırlıdır.
Bu nedenlerle telefon ve tabletlerde ARM (RISC) baskındır; x86 masaüstü ve sunucuda güçlüdür.

Modern Özellikler · Adım adım

Saat Hızı Tek Başına Performans Değildir

CPU süresi = N × CPI × T = N × CPI / f

TanımlarN: çalışan komut sayısı · CPI: komut başına ortalama saat turu · f: saat frekansı (T = 1/f).
İşlemci A: f = 2 GHz, CPI = 2N = 109 → süre = 109 × 2 / (2 × 109) = 1 s
İşlemci B: f = 1,5 GHz, CPI = 1süre = 109 × 1 / (1,5 × 109) ≈ 0,67 s → saati düşük olan B %50 daha hızlı!
SonuçSaat hızı “saniyedeki tur sayısı”dır, komut sayısı değil. Komut/s = f / CPI; mimari (boru hattı, önbellek, süperskalar) CPI'yı düşürür.

Modern Özellikler

Modern İşlemci Özellikleri (1)

Saat hızı (clock speed)Saniyedeki saat turu sayısı (GHz). Komut hızı ayrıca CPI'ya bağlıdır.
Komut kümesi mimarisi (ISA)CISC ve RISC gibi mimariler verimlilik ve karmaşıklığı etkiler; yazılım ile donanım arasındaki sözleşmedir.
Önbellek (cache)Sık kullanılan veriyi işlemcinin yanında tutan küçük ve çok hızlı bellek (L1, L2, L3).
Çok çekirdek (multi-core)Birden çok görevin gerçekten aynı anda yürütülmesini sağlar, toplam performansı artırır.
Sanallaştırma (virtualization)Aynı donanım üzerinde birden çok işletim sisteminin (sanal makine) yalıtılmış olarak çalışmasını sağlar (Intel VT-x, AMD-V).
Güç yönetimiYük azalınca saat ve gerilim düşürülür (DVFS), boştaki çekirdekler uyutulur.

Modern Özellikler

Önbellek ve Bellek Hiyerarşisi

Yazmaçlar L1 önbellek L2 önbellek L3 önbellek Ana bellek (RAM) SSD / disk < 1 ns · yüzlerce bayt ≈ 1 ns · 32–64 KB / çekirdek ≈ 3–5 ns · 256 KB – 2 MB ≈ 10–20 ns · birkaç–onlarca MB ≈ 50–100 ns · GB µs – ms · TB daha hızlı · daha pahalı daha büyük · daha ucuz

Programlar aynı ve yakın veriye tekrar tekrar erişir (yerellik ilkesi). Önbellek bu veriyi yakında tutarak ortalama erişim süresini RAM'inkinin çok altına indirir. Süreler yaklaşıktır.

Modern Özellikler

Modern İşlemci Özellikleri (2)

Güç yönetimi (power management)Modern işlemciler güç tüketimini azaltır ve enerji verimliliğini artırır: Turbo/SpeedStep, uyku durumları (C-states).
Grafik işlemeEntegre grafik işlem birimi (iGPU) içerir; grafik yoğun görevler daha hızlı ve verimli işlenir.
Güvenlik özellikleriDonanım düzeyinde şifreleme (AES-NI), güvenli önyükleme (secure boot), yalıtılmış güvenli bölgeler (TPM, SGX/TrustZone).
Bağlantı (connectivity)Özellikle mobil ve gömülü yongalarda (SoC) Wi-Fi, Bluetooth ve Ethernet gibi yerleşik ağ birimleri.
Makine öğrenmesiYapay zekâ için özel birimler: NPU, matris hızlandırıcıları (Intel AMX), vektör nokta çarpım komutları.
Yonga üstü sistem (SoC)CPU, GPU, NPU, bellek denetleyicisi ve G/Ç'nin tek yongada birleşmesi; mikrodenetleyici fikrine geri dönüş.

Özet

Özet

  • Mikroişlemci, bellekteki komutları getir–çöz–yürüt döngüsüyle çalıştıran programlanabilir CPU yongasıdır; mikrodenetleyici bellek ve çevre birimlerini de aynı yongada taşır.
  • CPU; ALU, kontrol birimi, yazmaçlar ve yol arayüzünden oluşur; dış dünyayla adres, veri ve kontrol yollarıyla konuşur.
  • Periyot T = 1/f; çalışma süresi = N × CPI / f. Saat hızı tek başına performans ölçüsü değildir.
  • CISC zengin komutlar, RISC basit komut + boru hattı, EPIC derleyici güdümlü paralellik sunar; vektör, SIMD, DSP, GPU ve sembolik işlemciler özel işlere yöneliktir.
  • Intel 4004 (1971) → 8086 (1978, 16 bit, 1 MB) → 80386 (32 bit) → Core 2 (64 bit): geriye uyumluluk x86'nın en büyük gücüdür.
  • Modern işlemciler önbellek, çok çekirdek, sanallaştırma, güç yönetimi ve özel hızlandırıcılarla performans kazanır.

Özet

Alıştırmalar

  1. 5 MHz'lik bir 8086'da saat periyodu ve 4 T'lik bir yol döngüsünün süresi nedir?
  2. 24 bitlik adres yolu kaç bayt belleği adresleyebilir? Hangi işlemcide vardır?
  3. 5 aşamalı bir boru hattında 100 komut kaç turda biter? Boru hattısız kaç tur gerekir?
  4. N = 2 × 109 komutluk bir program CPI = 1,5 olan 3 GHz'lik işlemcide kaç saniye sürer?
  5. Çamaşır makinesi kontrol kartı ve dizüstü bilgisayar için mikroişlemci mi mikrodenetleyici mi seçilir? Neden?
  6. EPIC paketinde 128 bit nasıl paylaştırılır?
İpuçları / cevaplar
  1. T = 1 / 5 MHz = 200 ns; 4 T = 800 ns.
  2. 224 = 16.777.216 bayt = 16 MB; 80286.
  3. k + n − 1 = 5 + 99 = 104 tur; boru hattısız 5 × 100 = 500 tur (≈ 4,8 kat hızlanma).
  4. 2 × 109 × 1,5 / (3 × 109) = 1 s.
  5. Çamaşır makinesi: mikrodenetleyici (ucuz, düşük güç, tek iş). Dizüstü: mikroişlemci (yüksek performans, büyük bellek, işletim sistemi).
  6. 41 bitlik üç komut (123 bit) + 5 bitlik şablon = 128 bit.

Özet

Kaynaklar

  • Tanenbaum ve Bos, Modern Operating Systems, 3. baskı, Pearson.
  • Brey, The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium …, 8. baskı, Pearson.
  • Stallings, Computer Organization and Architecture, 10. baskı, Pearson.
  • Patterson ve Hennessy, Computer Organization and Design: The Hardware/Software Interface, Morgan Kaufmann.
  • Intel Corporation, 8086 16-Bit HMOS Microprocessor veri sayfası ve Intel 64 and IA-32 Architectures Software Developer's Manual.

Son

Bölüm 1.1: Giriş
Sonraki bölüm: Bölüm 1.2: Sayı Sistemleri · Terim sözlüğü
1 / 1 Sercan KÜLCÜ, Tüm hakları saklıdır.