Bölüm 1: Giriş

Bölüm 1: Giriş · Çalışma Soruları
MPU ve MCUKomut döngüsüIP ve makine koduSaat ve CPIBoru hattıCISC · RISC · EPICDSPx86 evrimiGerçek mod adresiÖnbellek
Sercan KÜLCÜ

Çoktan Seçmeli · Temel Kavramlar

Soru 1: Mikroişlemci mi, Mikrodenetleyici mi?

Bir mikroişlemciyi (ör. 8086) bir mikrodenetleyiciden (ör. 8051) ayıran özellik hangisidir?

A: Mikroişlemci yalnızca ALU, kontrol birimi ve yazmaçlardan oluşan CPU yongasıdır; RAM, ROM ve çevre birimleri sistem yolu üzerinden dışarıdan eklenir. Diğer üç seçenek mikrodenetleyicinin özellikleridir: CPU, bellek, zamanlayıcı ve G/Ç tek yongadadır, tek bir işe adanır ve az enerji harcar.

Çoktan Seçmeli · Temel Kavramlar

Soru 2: Bilgi Nerede Olmalı?

Mikroişlemcinin bir komutu getirip yürütebilmesi için o komutun nerede bulunması gerekir?

C: CPU yalnızca adres yolunun ulaşabildiği ana bellekten komut ve veri getirebilir. Diskteki bir program önce yükleyici tarafından ana belleğe yerleştirilir. Program sayacı komutu değil, komutun adresini tutar; bayrak yazmacı son işlemin sonucuyla ilgili durum bitlerini tutar.

Çoktan Seçmeli · Temel Kavramlar

Soru 3: İşlem Kodu Getirme

Bir işlem kodu (opcode) bellekten getirilirken aşağıdaki yazmaçlardan hangisi kullanılmaz?

D: Getirme aşamasında adresi program sayacı verir; adres, bellek adres yazmacı üzerinden adres yoluna çıkar ve gelen bayt bellek veri yazmacı üzerinden komut yazmacına (8086'da önden getirme kuyruğuna) gider. Bayraklar yürütmenin sonucunu tutar; getirme sırasında rol almaz.

Adım Adım Çalıştırma · Temel Kavramlar

Soru 4: IP Nasıl Değişir?

Program 0100h adresinden başlıyor. Her komuttan sonra IP, BX, CX ve ZF ne olur? HLT'ye kadar kaç komut yürütülür?

BB1000000102B9021040001106CB4910875FB10AF4IPIP0100hBX0000hCX0000hZF0

Program 0100h'de. Getirme her zaman IP'nin gösterdiği bayttan başlar: BB = "BX'e 16 bitlik sabit yükle".

BB1000000102B9021040001106CB4910875FB10AF4IPIP0103hBX0000hCX0000hZF0

BB 00 00 getirildi (3 bayt) → IP = 0103h. BX = 0. MOV bayrakları değiştirmez.

BB1000000102B9021040001106CB4910875FB10AF4IPIP0106hBX0000hCX0002hZF0

B9 02 00 → CX = 2, IP = 0106h.

BB1000000102B9021040001106CB4910875FB10AF4IPIP0108hBX0002hCX0002hZF0

01 CB = ADD BX, CX: BX = 0 + 2 = 2. Komut 2 bayt → IP = 0108h.

BB1000000102B9021040001106CB4910875FB10AF4IPIP0109hBX0002hCX0001hZF0

49 = DEC CX: CX = 1, sonuç sıfır değil → ZF = 0. Tek baytlık komut → IP = 0109h.

BB1000000102B9021040001106CB4910875FB10AF4IPIP0106hBX0002hCX0001hZF0

JNZ: ZF = 0 → atla. FB = −5; sıradaki adres 010Bh − 5 = 0106h IP'ye yazılır.

BB1000000102B9021040001106CB4910875FB10AF4IPIP0108hBX0003hCX0001hZF0

BX = 2 + 1 = 3, IP = 0108h.

BB1000000102B9021040001106CB4910875FB10AF4IPIP0109hBX0003hCX0000hZF1

CX = 0 → ZF = 1.

BB1000000102B9021040001106CB4910875FB10AF4IPIP010BhBX0003hCX0000hZF1

ZF = 1 → atlama yok; IP sıradaki komutu, 010Bh'yi gösterir.

BB1000000102B9021040001106CB4910875FB10AF4IP010ChBX0003hCX0000hZF1

F4 = HLT: işlemci durur. Toplam 9 komut yürütüldü; sonuç BX = 3, CX = 0.

org 100h
mov bx, 0      ; BB 00 00
mov cx, 2      ; B9 02 00
dongu: add bx, cx  ; 01 CB
dec cx         ; 49
jnz dongu      ; 75 FB
hlt            ; F4

Hesap Sorusu · Temel Kavramlar

Soru 5: Bitler ve Adresler

Aşağıdakileri hesaplayın.

  1. 8 bitlik bir işlem kodu alanıyla en çok kaç farklı işlem kodu tanımlanabilir?
  2. 16 hatlı adres yolu kaç bayt belleği adresler? 24 hatlı olan?
  3. 1 MB belleğin her baytını adreslemek için kaç adres hattı gerekir?
  4. 16 bitlik bir yazmaç hangi işaretsiz aralığı tutar?
  5. Veri yolu 8 bit olan basit bir işlemci 3 baytlık bir komutu getirirken program sayacını kaç kez adres yoluna koyar?
Cevabı göster
  1. 28 = 256 farklı bit deseni.
  2. 216 = 65 536 bayt = 64 KB (8080, 8085); 224 = 16 MB (80286).
  3. 1 MB = 220 bayt → 20 hat (8086).
  4. 0 … 216 − 1 = 0 … 65 535 (FFFFh).
  5. 3 kez: her okuma bir bayt getirir, program sayacı her seferinde 1 artar. Getirme sayısı komutun uzunluğuna bağlıdır.

Kısa Cevap · Temel Kavramlar

Soru 6: Hangi Yonga Seçilir?

Aşağıdaki sistemlerin her biri için mikroişlemci (MPU) mi, mikrodenetleyici (MCU) mi seçilir? Kısaca gerekçelendirin.

  1. Akıllı oda termostatı
  2. Oyun bilgisayarı
  3. Otomobil anahtarındaki uzaktan kumanda
  4. Veri merkezindeki sunucu
Cevabı göster
SistemSeçimGerekçe
TermostatMCUtek iş, sensör + röle, düşük güç
Oyun bilgisayarıMPUyüksek başarım, GB'larca RAM, işletim sistemi
Uzaktan kumandaMCUpil ömrü, ucuz tek yonga, sabit program
SunucuMPUçok çekirdek, büyük bellek, çok sayıda uygulama

Ölçüt: işin tek ve sabit olması, maliyet ve güç MCU'yu; büyük bellek, yüksek saat hızı ve genel amaçlı yazılım MPU'yu öne çıkarır.

Çoktan Seçmeli · Mikroişlemci Yapısı

Soru 7: Komut, Yol ve Saat Döngüsü

Komut döngüsü, yol (makine) döngüsü ve saat turu arasındaki ilişki için hangisi doğrudur?

B: Komut döngüsü getir → çöz → yürüt aşamalarıdır; bu sırada komut baytları ve işlenenler için bir ya da daha çok yol döngüsü gerekir. 8086'da her yol döngüsü T1–T4 olmak üzere en az 4 saat turu sürer; yavaş bellek için araya bekleme durumları eklenir.

Hesap Sorusu · Mikroişlemci Yapısı

Soru 8: Saat Hızı ve Çalışma Süresi

8086-2 işlemcisi 8 MHz saatle çalışıyor. Bir program 3 × 106 komut yürütüyor ve komut başına ortalama 10 saat turu (CPI = 10) harcıyor.

  1. Saat periyodu T kaç ns'dir?
  2. Bekleme durumu olmayan bir yol döngüsü (4 T) kaç ns sürer?
  3. Program kaç saniyede biter?
  4. İşlemcinin hızı kaç MIPS'tir?
Cevabı göster
  1. T = 1 / f = 1 / (8 × 106) s = 125 ns.
  2. 4 × 125 = 500 ns.
  3. Süre = N × CPI / f = 3 × 106 × 10 / (8 × 106) = 3,75 s.
  4. f / CPI = 8 × 106 / 10 = 0,8 × 106 komut/s = 0,8 MIPS.

Saat hızı saniyedeki tur sayısıdır; komut hızını CPI ile birlikte belirler.

Adım Adım Çalıştırma · İşlemci Türleri

Soru 9: Boru Hattı İzleme

Dört aşamalı (G getir, Ç çöz, Y yürüt, S sonucu yaz) bir boru hattında, aralarında bağımlılık olmayan 6 komut çalışıyor. Son komut hangi turda biter? Boru hattısız kaç tur gerekirdi? 100 komut için ne olur?

123456789K1GK2K3K4K5K6Tur 1 · biten komut: 0 / 6

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

123456789K1GÇK2GK3K4K5K6Tur 2 · biten komut: 0 / 6

Tur 2: K1 çözülürken (Ç) K2 getirilir.

123456789K1GÇYSK2GÇYK3GÇK4GK5K6Tur 4 · biten komut: 1 / 6

Tur 4: boru hattı doldu; dört aşamanın hepsi çalışıyor ve K1 biter (S).

123456789K1GÇYSK2GÇYSK3GÇYSK4GÇYK5GÇK6GTur 6 · biten komut: 3 / 6

Doluyken her turda bir komut biter: tur 5'te K2, tur 6'da K3.

123456789K1GÇYSK2GÇYSK3GÇYSK4GÇYSK5GÇYSK6GÇYSTur 9 · biten komut: 6 / 6

K6 tur 9'da biter: k + n − 1 = 4 + 6 − 1 = 9. Boru hattısız 4 × 6 = 24 tur gerekirdi; hızlanma 24 / 9 ≈ 2,67. 100 komut: 4 + 99 = 103 tur, boru hattısız 400 (≈ 3,9 kat); n büyüdükçe hızlanma k = 4 değerine yaklaşır.

k = 4    ; G, Ç, Y, S aşamaları
n = 6    ; komut sayısı
her turda:
  her komut bir aşama ilerler
  yeni komut G aşamasına girer
bitiş = k + n − 1
boru hattısız = k × n

Çoktan Seçmeli · İşlemci Türleri

Soru 10: İşlemci Türleri

Aşağıdaki işlemci türü – özellik eşleştirmelerinden hangisi doğrudur?

D: EPIC (IA-64, Itanium) komutları 128 bitlik paketler hâlinde kodlar; hangi komutların birlikte yürütüleceğine derleyici karar verir. CISC ile RISC'in özellikleri yer değiştirmiştir: değişken uzunluk ve bellek işlenenli komutlar CISC'e (8086), sabit uzunluk ve yükle/sakla mimarisi RISC'e (ARM) aittir. Dizinin tamamını tek komutla işleyen vektör işlemcisidir.

Çoktan Seçmeli · İşlemci Türleri

Soru 11: Çarp-Topla Komutu

Bir ses süzgecinde her çıktı örneği için y[n] = Σ h[k] · x[n − k] hesaplanıyor. Her terimi tek turda çarp-topla (MAC) komutuyla yapan, dairesel tampon adreslemesi olan işlemci türü hangisidir?

B: DSP'ler (TI TMS320, SHARC) sinyal işlemeye özel donanım taşır: tek turda MAC, dairesel tampon adreslemesi ve sıfır yüklü döngü. GPU binlerce basit çekirdekle piksel paralelliğine, sembolik işlemciler kural ve sembol işlemeye yöneliktir; EPIC ise genel amaçlı bir komut kümesi yaklaşımıdır.

Kod Yazma · İşlemci Türleri

Soru 12: Aynı İş Yükle/Sakla ile

8086'da aşağıdaki iki komut, DI'nin gösterdiği sözcüğe SI'nın gösterdiği sözcüğü ekler. Aynı işi yükle/sakla mimarili bir RISC işlemcide (ARM sözdizimi; r1 = SI'daki adres, r2 = DI'deki adres) yazın. İki çözümde kaç komut ve kaç veri belleği erişimi vardır?

MOV AX, [SI]
ADD [DI], AX
Cevabı göster
LDR r3, [r1]      @ kaynak sözcük
LDR r4, [r2]      @ hedef sözcük
ADD r4, r4, r3    @ topla
STR r4, [r2]      @ hedefe yaz
KomutVeri erişimi
8086 (CISC)23 (oku, oku, yaz)
RISC43 (LDR, LDR, STR)

Bellek erişimi azalmaz; değişen, işin kaç komuta bölündüğüdür. ADD [DI], AX tek komutta oku-topla-yaz yapar; RISC'te ALU yalnızca yazmaçlarla çalışır, her komut basit ve boru hattına uygundur.

Çoktan Seçmeli · Intel x86 Evrimi

Soru 13: 8086 ile 8088

IBM PC'de (1981) kullanılan 8088'i 8086'dan ayıran fark hangisidir?

A: 8088, 8086'nın ucuz sürümüdür: iç yapısı ve komut kümesi aynıdır, adres yolu yine 20 bittir (1 MB), ama dış veri yolu 8 bit olduğundan bir sözcüğü iki yol döngüsünde aktarır ve önden getirme kuyruğu 4 bayttır. Korumalı mod ve 16 MB, 80286 ile gelmiştir.

Adım Adım Çalıştırma · Intel x86 Evrimi

Soru 14: Gerçek Modda Sarma

Gerçek modda FFFFh:0020h mantıksal adresi 8086'da hangi fiziksel adrese karşılık gelir? A20 hattı açık bir 80286'da ne değişir?

kesimFFFFbağıl konum0020

Mantıksal adres FFFFh:0020h. İki parça da 16 bit, yani 4 onaltılık basamak.

kesim × 10hFFFF0bağıl konum0020

× 10h = sağa bir 0 eklemek: taban FFFF0h. Kesim tabanı hep 16'nın katıdır.

kesim × 10hFFFF0+ bağıl konum00020toplam100010

FFFF0h + 00020h = 100010h: toplam 21 bit oldu, 1 MB'ı (FFFFFh) aştı.

toplam1000108086 (20 hat)00010

8086'da A20 hattı yoktur: en üst bit düşer, adres 00010h'ye sarar. A20 hattı açık bir 80286 ise 100010h'ye, 1 MB'ın hemen üstüne erişir.

kesim  = 0FFFFh
bağıl  = 0020h
taban  = kesim × 10h
fa     = taban + bağıl
fa     = fa AND 0FFFFFh ; 20 hat

Hesap Sorusu · Modern Özellikler

Soru 15: Hangisi Daha Hızlı?

Aynı program iki işlemcide 6 × 109 komut yürütüyor.

İşlemciSaatCPI
A3 GHz1,5
B2 GHz0,8
  1. Her biri programı kaç saniyede bitirir? Hangisi kaç kat hızlıdır?
  2. A'nın B ile aynı sürede bitirmesi için CPI'si kaç olmalıdır?
Cevabı göster
  1. Süre = N × CPI / f.
    A: 6 × 109 × 1,5 / (3 × 109) = 3 s.
    B: 6 × 109 × 0,8 / (2 × 109) = 2,4 s.
    Saati düşük olan B, 3 / 2,4 = 1,25 kat hızlıdır.
  2. 2,4 = 6 × 109 × CPI / (3 × 109) → CPI = 1,2.

Saat hızı tek başına başarım ölçüsü değildir; boru hattı, önbellek ve süperskalar yapı CPI'yı düşürür.

Çoktan Seçmeli · Modern Özellikler

Soru 16: Önbellek Neden İşe Yarar?

Küçük bir önbellek, kendisinden çok daha büyük olan RAM'in ortalama erişim süresini nasıl düşürebilir?

C: Yerellik ilkesi: bir döngünün komutları ve bir dizinin komşu elemanları kısa aralıklarla yeniden kullanılır. Önbellek bu küçük çalışma kümesini işlemcinin yanında tutar; erişimlerin çoğu önbellekte bulunduğu için ortalama süre RAM'inkinin çok altına iner. Önbellek veriyi sıkıştırmaz ve RAM'i hızlandırmaz.

Son

Bölüm 1: Giriş: Çalışma Soruları
Konu anlatımı: Giriş sunumu · Terim sözlüğü
1 / 1 Sercan KÜLCÜ, Tüm hakları saklıdır.