SEN2201 · 4. hafta · Digital Logic Structures (concept of memory, sequential logic circuits)

Bellek ve ardışık mantık: latch, flip-flop, register, FSM

R-S latch ve gated D latch izleme, register, bellek adres hesabı (address space, addressability), saat, flip-flop ve sonlu durum makineleri. Kısa cevap ve izleme soruları.

sequential logicstateR-S latchgated D latchwrite enable (WE)registermemoryaddress spaceaddressabilityword lineclockflip-flopmaster-slave flip-flopfinite state machine (FSM)state diagram

Geçen haftanın devreleri hiçbir şey hatırlamıyordu: girişi değiştirince çıkış hemen değişiyordu. Bir bilgisayarın ise sayıları, programı, “şu an neredeyim” bilgisini saklaması gerekir. Bu sayfa saklama elemanlarını anlatır: latch, register, bellek. Sonra bunları kullanan sonlu durum makinesi (finite state machine) fikrine geçer. LC-3’ün kontrol birimi de aslında büyük bir FSM’dir.

Vizede bu konudan gelen soru tipleri: latch izleme (S, R dizisi verilir, Q istenir), bellek hesabı (kaç adres biti, toplam kaç byte), flip-flop sayısı, FSM izleme.

Sequential (ardışık) devre nedir?

Combinational devrenin çıkışı sadece şu anki girişe bağlıdır. Sequential devrenin çıkışı hem girişe hem de devrenin o ana kadar sakladığı bilgiye, yani durumuna (state) bağlıdır.

Örnek: bir kombinasyon kilidi. Doğru şifre 4-1-8 ise, “8” tuşu tek başına kilidi açmaz. Açılıp açılmayacağı, daha önce hangi tuşlara basıldığına bağlıdır. Kilit bir durum saklar.

R-S latch

En basit saklama elemanı iki çapraz bağlı NAND kapısıdır: her NAND’ın çıkışı diğerinin girişine gider. Dış girişler S (set) ve R (reset), çıkışlar Q ve Q’.

NAND’ın bir girişi 0 ise çıkışı kesin 1’dir. Bu yüzden bu latch’te girişler aktif-düşüktür (active-low): bir şey yapmak için girişi 0 yaparsın.

SRNe olur?Q
11tut (quiescent)değişmez
01set1
10reset0
00yasakQ = Q’ = 1, sonra belirsiz

Neden tutar? S = R = 1 iken iki NAND da sadece diğerinin çıkışını görür. Q = 1 ise alttaki NAND (1, 1) görür, Q’ = 0 verir; üstteki (1, 0) görür, Q = 1 verir. Sistem kendini besler, Q = 0 için de aynı şey geçerli. İki kararlı durum var, latch hangisindeyse orada kalır.

Çözümlü izleme: başlangıç Q = 1, girişler 10 → 11 → 10 → 01 → 11.

adım  S R   ne olur?     Q
 1    1 0   reset        0
 2    1 1   tut          0
 3    1 0   reset        0   (zaten 0)
 4    0 1   set          1
 5    1 1   tut          1

TUZAK · aktif-düşük kuralı. NOR ile kurulan latch’te S = 1 set eder; NAND latch’te S = 0 set eder. Bu ders (Patt & Patel) NAND latch kullanır: 11 tut, 0 olan harf işini yapar.

Gated D latch

R-S latch’in iki sorunu var: yasak giriş durumu ve “ne zaman yazılacağını” kontrol edememek. Gated D latch ikisini birden çözer. Girişler: veri D ve WE (write enable).

R-S latch’in önüne iki NAND eklenir: S=(D⋅WE)′S = (D \cdot WE)', R=(D′⋅WE)′R = (D' \cdot WE)'.

  • WE = 0 → S = R = 1 → latch tutar.
  • WE = 1, D = 1 → S = 0 → set → Q = 1.
  • WE = 1, D = 0 → R = 0 → reset → Q = 0.

S ve R hiçbir zaman aynı anda 0 olamaz, çünkü biri D’yi diğeri D”yi kullanır.

WEDQ
0xtutar
100
111

Kısaca: WE = 1 iken Q = D, WE = 0 iken Q donar.

Register

Bir register, aynı WE hattını paylaşan nn tane D latch’tir (ya da flip-flop). Hepsi aynı anda yazılır. 16 bitlik register = 16 saklama elemanı.

Bit aralığı gösterimi: 16 bitlik bir A için A[15:12] en soldaki 4 bit, A[3:0] en sağdaki 4 bittir. Bitler sağdan, 0’dan numaralanır.

A = x3A7C = 0011 1010 0111 1100
A[15:12] = 0011   A[11:8] = 1010   A[3:0] = 1100   A[6:4] = 111

LC-3 komutlarını çözerken bu gösterimi sürekli kullanacaksın: opcode = IR[15:12], hedef register = IR[11:9].

Bellek (memory)

Bellek, çok sayıda saklama konumunun düzenli bir dizisidir. İki sayıyla tanımlanır:

  • Address space (adres uzayı): kaç tane ayrı konum var. kk adres biti → 2k2^k konum.
  • Addressability: her konumda kaç bit var.

toplam boyut=2k×m bit\text{toplam boyut} = 2^k \times m \text{ bit}

BellekAdres bitiToplam
22×32^2 \times 3212 bit
210×82^{10} \times 8108192 bit = 1 KB
214×322^{14} \times 321464 KB
LC-3: 216×162^{16} \times 1616128 KB

Byte-addressable bellekte her konum 1 byte’tır (çoğu modern bilgisayar). LC-3 ise word-addressable: her adreste 16 bitlik bir kelime var.

Okuma nasıl yapılır?

  1. kk bitlik adres bir kk-to-2k2^k decoder’a girer.
  2. Decoder tam olarak bir word line’ı 1 yapar: o satırdaki konum seçilir.
  3. Seçilen satırın mm biti çıkışa geçer.

Yazarken buna ek olarak WE = 1 yapılır ve sadece seçili satırdaki latch’lerin WE’si açılır.

İPUCU · Hızlı kuvvet tablosu. 2102^{10} = 1K, 2162^{16} = 64K, 2202^{20} = 1M, 2302^{30} = 1G, 2322^{32} = 4G. “64 KB byte-addressable kaç bit adres ister?” → 64K = 2162^{16} → 16 bit.

Saat (clock) ve flip-flop

Bir bilgisayarda binlerce saklama elemanı aynı anda güncellenmelidir. Bunu clock sağlar: 0 ve 1 arasında düzenli gidip gelen bir sinyal. Bir clock cycle bir tam periyottur. 3 GHz işlemcide bir çevrim 1/3 nanosaniyedir.

Gated D latch’in sorunu: WE = 1 olduğu sürece şeffaftır. Çıkış değişir, değişen çıkış geri beslenir, aynı çevrimde latch tekrar değişebilir. Bunu önlemek için master-slave flip-flop kullanılır: iki gated D latch arka arkaya. Master saat 1 iken yeni değeri alır, slave saat 0 iken onu çıkışa verir. Sonuç: çıkış çevrim başına bir kez, saat kenarında değişir. Durum saklayan her şey (register, FSM durumu) flip-flop’larla yapılır.

Sonlu durum makinesi (FSM)

Bir FSM beş şeyle tanımlanır:

  1. Sonlu sayıda durum (states),
  2. Sonlu sayıda dış giriş,
  3. Sonlu sayıda dış çıkış,
  4. Her durum ve giriş için sonraki durumun açık tanımı (geçişler),
  5. Her çıkışın neye bağlı olduğunun açık tanımı.

Çizimi state diagram: daireler durum, oklar geçiş, okun üstünde giriş değeri.

Durumlar flip-flop’larda saklanır. ss durumu ayırt etmek için ⌈log⁡2s⌉\lceil \log_2 s \rceil flip-flop gerekir: 4 durum → 2, 5 durum → 3, 9 durum → 4.

Çözümlü FSM izleme

Ardışık iki 1 görünce Z = 1 veren makine. Durumlar: A (son giriş 1 değil), B (bir tane 1 görüldü), C (en az iki 1 üst üste). Z = 1 sadece C’de.

Durumgiriş 0giriş 1Z
AAB0
BAC0
CAC1

Başlangıç A, giriş 0, 1, 1, 1, 0, 1:

giriş:      0   1   1   1   0   1
yeni durum: A   B   C   C   A   B
Z:          0   0   1   1   0   0

Her adımda tek bir satıra bak: şu anki durum + giriş → yeni durum. 3 durum olduğu için 2 flip-flop yeter.

Çıkışın sadece duruma bağlı olduğu bu tür makineye Moore makinesi denir. LC-3’ün kontrol birimi de bir FSM’dir: her durum, komut döngüsünün bir adımıdır (5. hafta).

Sık yapılan hatalar

Yanlış düşünceDoğrusu
NAND latch’te S = 1 set ederS = 0 set eder; 11 tut
S = R = 0 → Q = 0Yasak: Q = Q’ = 1, sonra belirsiz
D latch WE = 0 iken Q = DWE = 0 → tutar
Address space = toplam bitAddress space = konum sayısı
2122^{12} konum × 16 bit = 4 KB65536 bit = 8192 byte = 8 KB
5 durum → 2 flip-flop22=4<52^2 = 4 < 5, 3 gerekir
A[11:8] soldan sayılırBitler sağdan, 0’dan
Flip-flop = latchFlip-flop kenarda bir kez değişir

Kendini test et

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

Soru 1kolay

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

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

NAND latch'te girişler aktif-düşük: 11 tut, S = 0 set (Q = 1), R = 0 reset (Q = 0). Adımlar: 11 tut → 0. 01 set → 1. 11 tut → 1. 10 reset → 0. 11 tut → 0.

Soru 2orta

Why is S = R = 0 not allowed in a NAND R-S latch?

Cevabı göster
Both Q and Q' become 1; the final state is unpredictable

NAND'ın bir girişi 0 ise çıkışı 1'dir. S = R = 0 iken iki NAND'ın çıkışı da 1 olur, Q ve Q' artık birbirinin tersi değil. Girişler aynı anda 1'e dönünce latch'in hangi değerde kalacağı kapıların elektriksel hızına bağlıdır, yani belirsizdir.

Soru 3kolay

A gated D latch holds Q = 1. The inputs (WE, D) are applied in order: (1,0), (0,1), (0,0), (1,1), (0,0). Give Q after each step.

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

WE = 1 iken Q = D (yaz). WE = 0 iken Q değişmez (tut), D ne olursa olsun. (1,0) → 0. (0,1) → tutar 0. (0,0) → tutar 0. (1,1) → 1. (0,0) → tutar 1.

Soru 4kolay

A memory has 1024 locations and an addressability of 8 bits. How many address bits are needed? What is the total size in bytes?

Cevabı göster
10 bits, 1024 bytes

1024=2101024 = 2^{10} → 10 adres biti. Toplam = konum × addressability = 1024×8=81921024 \times 8 = 8192 bit = 1024 byte (1 KB).

Soru 5orta

The LC-3 has a 16-bit address space and 16-bit addressability. What is its total memory size in bytes?

Cevabı göster
131072 bytes (128 KB)

216=655362^{16} = 65536 konum, her biri 16 bit = 2 byte. 65536×2=13107265536 \times 2 = 131072 byte = 128 KB.

Soru 6orta

How many address bits does a 4 GB byte-addressable memory need?

Cevabı göster
32

4 GB = 4×230=2324 \times 2^{30} = 2^{32} byte. Byte-addressable: her konum 1 byte → 2322^{32} konum → 32 adres biti.

Soru 7kolay

Let A = x3A7C be a 16-bit value. What is A[11:8]?

Cevabı göster
1010

x3A7C = 0011 1010 0111 1100. A[11:8] bit 11'den bit 8'e kadar olan 4 bittir, yani soldan ikinci hex hane: A = 1010. Bitler sağdan, 0'dan sayılır.

Soru 8kolay

How many D flip-flops are needed for a 16-bit register?

Cevabı göster
16

Bir register, ortak bir WE (ya da saat) hattını paylaşan n tane tek bitlik saklama elemanıdır. 16 bit → 16 flip-flop (ya da latch). LC-3'ün 8 genel amaçlı register'ı için 8 × 16 = 128 bit gerekir.

Soru 9orta

What is the minimum number of flip-flops needed to store the state of an FSM with 6 states? With 9 states?

Cevabı göster
3 and 4

kk flip-flop 2k2^k durum ayırt eder. 6 durum: 22=4<6≤8=232^2 = 4 < 6 \le 8 = 2^3 → 3. 9 durum: 23=8<9≤162^3 = 8 < 9 \le 16 → 4. Formül: ⌈log⁡2s⌉\lceil \log_2 s \rceil.

Soru 10orta

An FSM has states S0, S1, S2; output Z = 1 only in S2. Transitions: S0 -0→ S0, S0 -1→ S1, S1 -0→ S2, S1 -1→ S1, S2 -0→ S0, S2 -1→ S1. Starting in S0, the input is 1, 1, 0, 1, 0, 0, 1. Give Z after each input. What does the machine detect?

Cevabı göster
Z = 0, 0, 1, 0, 1, 0, 0; detects the pattern 10

Durumlar: 1 → S1, 1 → S1, 0 → S2 (Z=1), 1 → S1, 0 → S2 (Z=1), 0 → S0, 1 → S1.
Z, son iki giriş "1 sonra 0" olduğunda 1 olur: "10" dizisi dedektörü.

Soru 11zor

Why are master-slave (edge-triggered) flip-flops used instead of plain gated D latches in sequential circuits?

Cevabı göster
So the state changes only once per clock cycle, at the clock edge

Gated D latch, WE = 1 olduğu sürece şeffaftır: çıkış değişir, devreye geri döner, yeni giriş yine latch'e girer. Durum bir saat çevriminde birden fazla değişebilir. Master-slave flip-flop iki D latch'ten oluşur; biri saat 1 iken, diğeri saat 0 iken açılır. Böylece çıkış sadece saat kenarında bir kez değişir.

Soru 12zor

A memory is 2^3 × 4 (address space × addressability). How many word lines does the address decoder drive, and how many bits are read in one access?

Cevabı göster
8 word lines, 4 bits

3 adres biti 3-to-8 decoder'a girer: 8 word line, her biri bir konum (satır). Seçilen satırdaki 4 bit (addressability) birlikte okunur. Toplam 32 bit.

Doğrulama: R-S ve gated D latch izleri çapraz bağlı NAND kapılarının kapı seviyesinde simülasyonuyla, bellek boyutları ve flip-flop sayıları node ile, FSM izleri geçiş tablosu simülasyonuyla hesaplandı (verify/SEN2201/04.mjs).

Deftere not kartı

Sequential = durum (state) tutar, çıkış geçmişe de bağlı R-S latch (NAND, aktif-düşük): 11 tut | 01 set Q=1 | 10 reset Q=0 | 00 YASAK (Q=Q'=1) Gated D latch: WE=1 -> Q=D | WE=0 -> tut (S=(D·WE)', R=(D'·WE)') Register: n bit = n latch/flip-flop, ortak WE Bellek: address space = 2^k konum (k adres biti) | addressability = konum başına bit toplam = 2^k × m bit | LC-3: 2^16 × 16 bit = 128 KB okuma: adres -> decoder -> word line -> mux/çıkış A[11:8] = bit 11..8 (sağdan 0'dan say) Clock: periyodik 0/1 sinyali, geçişleri senkronlar Master-slave FF = 2 gated D latch, saat kenarında bir kez değişir FSM 5 parça: durumlar, girişler, çıkışlar, geçişler (next state), çıkış fonksiyonu s durum -> ceil(log2 s) flip-flop (5 -> 3, 9 -> 4)