SEN2201 · 9. hafta · Review for the Midterm Exam

Vize tekrarı: sayılar, mantık, bellek, von Neumann, LC-3

1-8. haftaların tek sayfalık özeti, her konunun sınav tarifi ve karışık deneme soruları. Sınavdan önceki akşam buradan başla.

2's complementoverflowsign extensionIEEE 754bit maskmintermmaxtermDeMorganNANDR-S latchaddress spaceaddressabilityinstruction cyclePC-relativecondition codes

Bu sayfa ilk sekiz haftanın sıkıştırılmış hali. Her konunun tarifini bir tabloda topladık, ardından karışık soruların çözümünü verdik. Bu ders işlem dersi: puanın çoğu her seferinde aynı adımlarla çözülen sorulardan gelir. Önce tabloyu oku, sonra soruları süre tutarak çöz, yanlış yaptığın konunun kendi sayfasına dön.

Vizenin kapsamı dönemden döneme değişebilir (bazı dönemlerde 1-6. haftalar, bazılarında LC-3 de dahil). Ders sayfasındaki duyuruya göre hangi bloğa ağırlık vereceğine karar ver.

Konu → soru tipi → tarif

KonuTipik soruTarif
Çevirmelerdec ↔ bin ↔ hex2’nin kuvvetlerini çıkar; hex için sağdan 4’lü grupla
Dört okuma8 bitlik desenin 4 değeriMSB = 0 ise hepsi aynı; 2’s = unsigned - 256
2’s complement-X’i yazters çevir + 1
Toplama/çıkarmaA - B, overflowA + (-B), 9. biti at, işaret kuralını yaz
Sign extension5 bit → 8/16 bitMSB’yi sola kopyala
IEEE 754encode/decode1.xxx × 2^e, E = e + 127, gizli 1’i yazma
Bit maskesiset/clear/test/toggleOR / AND (0’lı maske) / AND / XOR
ASCIIharf ve rakam dönüşümüx30 çıkar; bit 5 = x20
Devre okumaşema → tablo → ifadeara çıkışlara isim ver, satır satır doldur
Sadeleştirmeminimal SOPtek değişkende farklı çiftler, X + X’ = 1
Tersini almaF’DeMorgan, sonra çarp ve sadeleştir
NAND-onlysadece NANDSOP’u çift tersle
Σm / ΠMkanonik formlar1 satırları / 0 satırları
Decoder/mux/FAkısa cevapgiriş = seçilen numara
LatchQ izlemeNAND: 11 tut, 0 olan harf iş yapar
Bellekadres biti, boyut2k2^k konum × m bit
FSMiz, flip-flop sayısıtablo satırı; ⌈log⁡2s⌉\lceil\log_2 s\rceil
von Neumann5 parça, register’larPC adres, IR komut, MAR adres, MDR veri
Komut döngüsüfazlar, FETCHMAR ← PC, PC ← PC+1, MDR ← M[MAR], IR ← MDR
I/OpollingLDI KBSR, BRzp, LDI KBDR
LC-3 kodlamaencode/decodeopcode tablosu, alanlar, artmış PC
LC-3 izlemeregister/CC/belleksatır satır iz tablosu

Sınav günü beş hatırlatma

  1. Gösterimi yaz. “8-bit 2’s complement” gibi bir ifade cevabının başında dursun.
  2. Kontrolü yap. Her çevirmede ondalığa dönüp sağla. Beş saniye, bir puan.
  3. Overflow’da kural cümlesini yaz: “Overflow occurs only if both operands have the same sign and the result has the opposite sign.”
  4. Sadeleştirmede kuralın adını yaz: distributive, complement, DeMorgan…
  5. LC-3’te offset’i artmış PC’ye ekle. En sık kaybedilen puan.

Karışık örnekler

Sayılar: 0x9C’nin dört okuması ve sign extension

0x9C = 1001 1100
unsigned  128+16+8+4          = 156
SM        eksi, 001 1100 = 28 = -28
1's       çevir 0110 0011     = -99
2's       156 - 256           = -100
16 bite sign extension: 1111 1111 1001 1100 = 0xFF9C (hâlâ -100)

IEEE: 19.5’i kodla

19 = 10011, 0.5 = .1 → 10011.1 = 1.00111 × 2^4
S = 0, E = 4 + 127 = 131 = 1000 0011, F = 00111 0...
0 10000011 00111000000000000000000 = 0x419C0000

Mantık: Σm(2, 3, 6, 7)

m2 = A'BC'  m3 = A'BC  m6 = ABC'  m7 = ABC
A'B(C' + C) + AB(C' + C) = A'B + AB = B(A' + A) = B

Dört minterm tek bir harfe indi: B = 1 olan her satır.

Bellek ve FSM

2142^{14} konum × 32 bit = 214×42^{14} \times 4 byte = 64 KB. 12 durumlu bir FSM: 23=8<12≤162^3 = 8 < 12 \le 16 → 4 flip-flop.

von Neumann

PC = x4A3F iken FETCH: MAR ← x4A3F, PC ← x4A40, MDR ← M[x4A3F], IR ← MDR. PC’nin artışı hex’te: F + 1 = 10, elde sola gider.

LC-3: kodla, çöz, izle

LDR R5, R1, #-2 → 0110 101 001 111110 = x6A7E.

xA9FE x3000’de → 1010 100 111111110 → LDI R4, offset -2 → pointer adresi x3001 - 2 = x2FFF; R4 ← M[M[x2FFF]].

        AND  R1, R1, #0     R1 = 0
        ADD  R2, R1, #3     R2 = 3
AGAIN   ADD  R1, R1, R2     |  tur  R1   R2
        ADD  R1, R1, R1     |   1    6    2
        ADD  R2, R2, #-1    |   2   16    1
        BRp  AGAIN          |   3   34    0  (Z, düş)
        HALT

Overflow: üç toplama, üç karar

Toplama (8 bit)SonuçOndalıkCarry-outOverflowNeden
01100100 + 0011110010100000100 + 60 → -960evet(+) + (+) = (−)
11000000 + 1011111101111111-64 + (-65) → 1271evet(−) + (−) = (+)
11110110 + 0000110000000010-10 + 12 → 21hayırişaretler farklı

Üçüncü satır sınavın sevdiği tuzak: carry-out var ama sonuç doğru. İkinci satırda gerçek toplam -129, 8 bitin alt sınırı -128’i aştı.

Devre: bir NOR ve bir AND

Gate 1 NOR(A, B) = X, gate 2 AND(B, C) = Y, gate 3 OR(X, Y) = F. Tabloyu ara sütunlarla doldurunca F = Σm(0, 1, 3, 7) = A’B’ + BC çıkar (3. hafta, devre okuma bölümü). Sınavda her ara çıkışa bir isim ver; kısmi puan oradan gelir.

I/O: üç satırlık bekleme döngüsü

POLL    LDI  R1, KBSRP   ; KBSR'yi oku
        BRzp POLL        ; bit 15 = 0 → bekle
        LDI  R0, KBDRP   ; karakter R0'da

Hazır olunca KBSR = x8000, yani negatif. Bu yüzden BRzp. KBSRP bir .FILL xFE00; LD bu kadar uzağa ulaşamaz, LDI gerekir.

Komut döngüsü: LDR’nin fazları

LDR R4, R2, #-3, R2 = x4005: FETCH (MAR ← PC, PC ← PC + 1, IR ← komut), DECODE (opcode 0110), EVALUATE ADDRESS (x4005 - 3 = x4002), FETCH OPERANDS (MDR ← M[x4002]), EXECUTE yok, STORE RESULT (R4 ← MDR, CC ayarlanır). Belleğe iki kez gidildi.

Hızlı kontrol listesi

Biliyor musun?Cevap
6 bit 2’s complement aralığı-32..31
-1’in 16 bit hex’i0xFFFF
1.0’ın IEEE kodu0x3F800000
‘A’ ve ‘a’x41, x61
n-MOS ne zaman iletirgate = 1
(A+B)′(A+B)'A′B′A'B'
3-to-8 decoder, giriş 011D3
16-to-1 mux select4
FA 1+1+1S = 1, Cout = 1
D latch WE = 0tutar
LC-3 bellek boyutu128 KB
ADD’in atladığı fazEVALUATE ADDRESS
KBSR adresixFE00
RETJMP R7 = xC1C0

Sık yapılan hatalar

Yanlış düşünceDoğrusu
Carry-out = overflowİşaret kuralına bak
IEEE’de fraction’a gizli 1Yazılmaz
m5 = A’BC’AB’C
NAND latch’te S = 1 setS = 0 set
PC şu anki komutu gösterirSıradakini
LD adresi = komut adresi + offset(komut adresi + 1) + offset
BRzp ile BRp aynıBRzp sıfırda da dallanır
ST CC’yi değiştirirDeğiştirmez

Kendini test et

Sınavdaki gibi İngilizce sorular. Önce kâğıt kalemle çöz, sonra cevabı aç.

Soru 1kolay

Give the decimal value of 0xB7 as unsigned, sign-magnitude, 1's complement and 2's complement.

Cevabı göster
183, -55, -72, -73

0xB7 = 1011 0111. Unsigned: 128+32+16+4+2+1 = 183.
SM: eksi, 011 0111 = 55 → -55. 1's: çevir 0100 1000 = 72 → -72. 2's: -128 + 55 = -73 (ya da 183 - 256).

Soru 2orta

In 8-bit 2's complement, A = 01001110 and B = 10111000. Compute A - B and state whether overflow occurred.

Cevabı göster
10010110, overflow

A = 78, B = -72. -B = 01001000 (+72). A + (-B) = 01001110 + 01001000 = 10010110 (MSB 1, -106 okunur).
Gerçek sonuç 150 > 127. Toplanan iki sayı (A, -B) pozitif, sonuç negatif → overflow.

Soru 3kolay

What is the minimum number of bits needed to represent -129 in 2's complement?

Cevabı göster
9

8 bit en fazla -128'e iner. 9 bit: −28=−256≤−129-2^8 = -256 \le -129. Cevap 9.

Soru 4orta

Encode -7.375 in IEEE 754 single precision (hex).

Cevabı göster
0xC0EC0000

7 = 111, 0.375 = .011 → 111.011 = 1.11011 × 2^2. S = 1, exponent = 129 = 1000 0001, fraction = 11011 ve sıfırlar.
1 10000001 11011000... → 1100 0000 1110 1100 0000 ... = 0xC0EC0000.

Soru 5orta

Decode the IEEE 754 single-precision value 0x3E200000.

Cevabı göster
0.15625

0011 1110 0010 0000 ... → S = 0, exponent = 0111 1100 = 124 → e = -3, fraction = 01.
1.01 × 2^-3 = 0.00101 = 1/8 + 1/32 = 0.15625.

Soru 6kolay

The ASCII code of 'd' is 0x64. Which operation and mask give 'D'?

Cevabı göster
AND 0xDF → 0x44

Büyük/küçük harf farkı bit 5 (0x20). Bit 5'i temizle: AND 1101 1111 = 0xDF. 0x64 AND 0xDF = 0x44 = 'D'.

Soru 7orta

F(A,B,C) = A'B'C + A'BC + ABC. Simplify F and write it as ΠM(…).

Cevabı göster
F = A'C + BC = ΠM(0, 2, 4, 5, 6)

A'B'C + A'BC = A'C(B' + B) = A'C. A'BC + ABC = BC(A' + A) = BC (A'BC iki kez kullanıldı).
F = Σm(1, 3, 7), F = 0 olan satırlar 0, 2, 4, 5, 6 → ΠM(0, 2, 4, 5, 6).

Soru 8zor

Using DeMorgan, find F' for F = A'C + BC as a sum of products.

Cevabı göster
AB' + C'

F' = (A'C)'·(BC)' = (A + C')(B' + C') = AB' + AC' + B'C' + C'C' = AB' + C'(A + B' + 1) = AB' + C'.
Kontrol: F' = 1 satırları 0, 2, 4, 5, 6; F'nin {1, 3, 7} kümesiyle birleşimi {0..7}.

Soru 9kolay

A NAND R-S latch starts with Q = 0. (S, R) = 01 → 11 → 10 → 11 → 01. Give Q after each step.

Cevabı göster
1, 1, 0, 0, 1

Aktif-düşük: 01 set → 1, 11 tut → 1, 10 reset → 0, 11 tut → 0, 01 set → 1.

Soru 10orta

A memory has 13 address bits and 16-bit addressability. What is its size in KB? How many flip-flops does a 7-state FSM need?

Cevabı göster
16 KB; 3

213×162^{13} \times 16 bit = 8192 × 2 byte = 16384 byte = 16 KB. 7 durum: 22=4<7≤82^2 = 4 < 7 \le 8 → 3 flip-flop.

Soru 11orta

Decode the LC-3 instructions x6A7E and x0BF8 (the second one is at address x3010).

Cevabı göster
LDR R5, R1, #-2 and BRnp x3009

x6A7E = 0110 101 001 111110: LDR, DR = R5, BaseR = R1, offset6 = -2.
x0BF8 = 0000 101 111111000: n = 1, z = 0, p = 1 → BRnp, offset = -8, hedef = x3011 - 8 = x3009.

Soru 12zor

What are R1, R2 and the condition codes when this program halts?

        AND  R1, R1, #0
        ADD  R2, R1, #3
AGAIN   ADD  R1, R1, R2
        ADD  R1, R1, R1
        ADD  R2, R2, #-1
        BRp  AGAIN
        HALT
Cevabı göster
R1 = 34, R2 = 0, Z

R1 = 0, R2 = 3. Tur 1: R1 = (0+3)·2 = 6, R2 = 2. Tur 2: R1 = (6+2)·2 = 16, R2 = 1. Tur 3: R1 = (16+1)·2 = 34, R2 = 0 → Z, BRp düşer.
Son CC'yi ADD R2 belirledi: Z.

Doğrulama: Her cevap node ile yeniden hesaplandı: sayılar bit düzeyinde, IEEE 754 DataView ile, Boole ifadeleri tüm giriş kombinasyonlarıyla, latch kapı seviyesinde, LC-3 komutları ve program kendi assembler + simülatörümüzde (verify/SEN2201/09.mjs, lc3.mjs).

Deftere not kartı

2's: MSB = -2^(k-1) | -X = ters + 1 | 8 bit -128..127 | sign ext: MSB kopyala OVERFLOW: aynı işaretli iki sayı + ters işaretli sonuç. A-B'de -B'ye bak. Carry-out != overflow IEEE: S | E=e+127 (8) | F (23), gizli 1 yazılmaz. 1.0 = 0x3F800000 Maske: AND temizle/test, OR set, XOR çevir | ASCII '0'=x30 'A'=x41 'a'=x61, fark x20 Σm = F'nin 1 satırları, ΠM = 0 satırları | minterm 1->düz, maxterm 1->ters DeMorgan (XY)'=X'+Y', (X+Y)'=X'Y' | NAND-only: SOP'u çift tersle Decoder n->2^n tek 1 | MUX 2^n giriş n select | FA S=A⊕B⊕C, Cout=majority NAND RS: 11 tut 01 set 10 reset 00 yasak | D latch WE=1 -> Q=D Bellek 2^k × m bit | FSM s durum -> ceil(log2 s) FF von Neumann: Memory, Processing, Input, Output, Control | PC adres, IR komut, MAR adres, MDR veri FETCH: MAR<-PC, PC<-PC+1, MDR<-M[MAR], IR<-MDR | 6 faz: F D EA FO EX SR LC-3: adres = (PC+1) + SEXT(off) | imm5 -16..15 | off6 -32..31 | off9 -256..255 CC: ADD AND NOT LD LDI LDR yazar | BR: hedef-(adres+1)