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ı.
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.
| S | R | Ne olur? | Q |
|---|---|---|---|
| 1 | 1 | tut (quiescent) | değişmez |
| 0 | 1 | set | 1 |
| 1 | 0 | reset | 0 |
| 0 | 0 | yasak | Q = 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: , .
- 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.
| WE | D | Q |
|---|---|---|
| 0 | x | tutar |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Kısaca: WE = 1 iken Q = D, WE = 0 iken Q donar.
Register
Bir register, aynı WE hattını paylaşan 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. adres biti → konum.
- Addressability: her konumda kaç bit var.
| Bellek | Adres biti | Toplam |
|---|---|---|
| 2 | 12 bit | |
| 10 | 8192 bit = 1 KB | |
| 14 | 64 KB | |
| LC-3: | 16 | 128 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?
- bitlik adres bir -to- decoder’a girer.
- Decoder tam olarak bir word line’ı 1 yapar: o satırdaki konum seçilir.
- Seçilen satırın 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. = 1K, = 64K, = 1M, = 1G, = 4G. “64 KB byte-addressable kaç bit adres ister?” → 64K = → 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:
- Sonlu sayıda durum (states),
- Sonlu sayıda dış giriş,
- Sonlu sayıda dış çıkış,
- Her durum ve giriş için sonraki durumun açık tanımı (geçişler),
- 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. durumu ayırt etmek için 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.
| Durum | giriş 0 | giriş 1 | Z |
|---|---|---|---|
| A | A | B | 0 |
| B | A | C | 0 |
| C | A | C | 1 |
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üşünce | Doğrusu |
|---|---|
| NAND latch’te S = 1 set eder | S = 0 set eder; 11 tut |
| S = R = 0 → Q = 0 | Yasak: Q = Q’ = 1, sonra belirsiz |
| D latch WE = 0 iken Q = D | WE = 0 → tutar |
| Address space = toplam bit | Address space = konum sayısı |
| konum × 16 bit = 4 KB | 65536 bit = 8192 byte = 8 KB |
| 5 durum → 2 flip-flop | , 3 gerekir |
| A[11:8] soldan sayılır | Bitler sağdan, 0’dan |
| Flip-flop = latch | Flip-flop kenarda bir kez değişir |
Kendini test et
Sınavdaki gibi İngilizce sorular. Önce kâğıt kalemle çöz, sonra cevabı aç.
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
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.
Why is S = R = 0 not allowed in a NAND R-S latch?
Cevabı göster
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.
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
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.
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 adres biti. Toplam = konum × addressability = bit = 1024 byte (1 KB).
The LC-3 has a 16-bit address space and 16-bit addressability. What is its total memory size in bytes?
Cevabı göster
konum, her biri 16 bit = 2 byte. byte = 128 KB.
How many address bits does a 4 GB byte-addressable memory need?
Cevabı göster
4 GB = byte. Byte-addressable: her konum 1 byte → konum → 32 adres biti.
Let A = x3A7C be a 16-bit value. What is A[11:8]?
Cevabı göster
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.
How many D flip-flops are needed for a 16-bit register?
Cevabı göster
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.
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
flip-flop durum ayırt eder. 6 durum: → 3. 9 durum: → 4. Formül: .
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
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ü.
Why are master-slave (edge-triggered) flip-flops used instead of plain gated D latches in sequential circuits?
Cevabı göster
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.
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
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).