BLGM 325 Bilgisayar Mimarisi ve Organizasyonu Bilgisayar Mhendislii
BLGM 325 Bilgisayar Mimarisi ve Organizasyonu Bilgisayar Mühendisliği Bölümü Doğu Akdeniz Üniversitesi
Genel Bakış Donanım yapma blokları ¡ ALU tasarımı ¡ ALU uygulaması -1 -bit ALU -32 -bit ALU ¡ A Mux B Op Sonuç B N N ALU A ALUop 3 N Sıfır Sonuç Taşma Cout 2
Mantık Tasarımı (Kısa Özet) a c b AND Kapısı a b c OR Kapısı 3
Mantık Tasarımı (Kısa Özet) a c b XOR Kapısı a c NOT Kapısı 4
ALU ¡ Aritmetik Mantık Birimi (ALU) bir işlemcide tüm işlemleri yapan birimdir l l ¡ aritmetik işlemler: toplama, çıkarma Mantık işlemleri: AND, OR MIPS 32 bit veri yapılarını desteklemektedir. Dolayısıyla, ALU’nun 32 bit girişler üzerinde işlem yapması gerekir. 5
ALU Tasarımı İşe 1 -bit ALU tasarlayarak başlanır. ¡ Daha sonra, 1 -bit ALU lar birleştirilerek daha büyük ALU yapılır. ¡ Aşağıdan yukarıya yöntemi: ¡ l Küçük birimler yapıp bunlar çalışır hale getirilir. Daha sonra, bu küçük birimler birleştirilerek daha büyük birimler yapılır. 6
1 -bit Mantık Komutları l AND komutu ¡ l Veri hatlarından bir tanesi AND kapısı OR komutu ¡ Diğer veri hattı OR kapısı Op (kontrol) A B 0 1 Açıklama Op C C 0 A AND B 1 A OR B 7
Toplama ¡ 1 -bit toplayıcı tasarlayacağız l ¡ İkilik sistemde 1 -bit iki sayıyı topla. Sonucun 2 -bit olduğunu biliyoruz. A B O 0 O 1 0 0 0 1 1 0 Bu toplamadır, OR işlemi değil! A + B O 0 O 1 O 0 elde (carry) O 1 sonuç 8
Uygulama A B O 0 A B O 1 9
İkinci kolonda durum nedir? 1 + ¡ 1 01001 01101 10110 Elde 3 biti toplarız l l Yeni bit, birinci kolondan gelen eldedir. Çıkış 2 bit: sonuç ve elde 10
1 -bit tam toplayıcı. . A: . B: + Toplam: . . . (1). 0. 0. 1 (0) 1 1 (1) 0 0 1 (0) 0 0 (0)1 (1) 1 1 (1)0 (0) Carry. In Girişler Çıkışlar Carry. Out Her bit toplamında: 3 bit toplarız l 3 giriş var: Ai, Bi, Carry. Ini - yeni bit 1. kolondan gelen carry dir. l 2 çıkış var: Sumi, Carry. Outi - çıkış 2 bit dir (sonuç ve carry) ( Carry. Ini+1 = Carry. Outi ) ¡ 11
Tam Toplayıcı Doğruluk Tablosu Sembol Carry. In A B + Sonuç Carry. Out A 0 0 1 1 B 0 0 1 1 Açıklama Carry. In Carry. Out Sum 0 0 0 1 1 1 0 0 1 1 1 12
Full Toplayıcı Devresi (1/2) 1. 2. 3. Sonuç denkleminin kapılarla tasarlanması Carry. Out denkleminin kapılarla tasarlanması Girişlerin ayni isimle bağlanması a b Cin Sonuç 13
Full Adder Circuit (2/2) 14
1 -bit ALU ¡ ¡ AND/OR kapılarını tam toplayıcı ile birleştir. 4 -girişli 2 -bit kontrol sinyali olan MUX kullanmak gerekir. 15
32 -bit ALU Tasarlamak A 0 A 1 … A 31 … B 0 B 1 … B 31 … Op … R 0 R 1 … R 31 Result 64 -bit giriş ¡ 3 farklı işlem (AND, OR, add). ¡ 32 -bit çıkış ¡ 16
Eldelerin sırayla toplanması • ALU 0 çıkışındaki carryout ALU 1 girişine bağlı. • 32 -bit sonucun belli olması ne kadar zaman alır? • Carry. Out’lar 32 tane 1 -Bit ALU lardan geçmek zorunda. 17
3 -bit ALU: Örnek 18
Yeni İşlem: Çıkarma ¡ ¡ Çıkarma toplama yaparak elde edilir: A - B işlemi A + -B işlemine eşdeğerdir -B elde etmek için: l Bitleri ters çevir. l 1 ile topla ¡ ¡ -B’yi ALU’da şöyle yaparız: l B’yi toplayıcı girişine bağla. Ekstra 1 bit eklemek gerek. l 1 eklemek için carry in=1 yap! 19
1 -bit ALU Least significant bit Diğer bitler ALU-0 20
1 -bit ALU 0 – ADD 1 – SUB 00 – AND 01 – OR 10 – ADD AND OR Diğer bitler 1. bit (LSB) İşlemler: AND, OR, ADD, SUB Kontrol sinyalleri: 000 001 010 110 21
32 -bit ALU Binvert Operation a 0 Result 0 b 0 a 1 Result 1 b 1 . . . a 31 b 31 Result 31 22
Slt komutunun desteklenmesi slt: 2 sayıyı karşılaştırır. l Karşılaştırmak için çıkarma işlemi yapılır. Eğer A-B negatif ise, A<B doğrudur, aksi halde A<B yanlıştır. Doğru: (çıkış) 0000000… 001 yanlış: (çıkış) 0000000… 000 23
Slt’nin ALU’ya dahil edilmesi ¡ A-B’yi hesaplamak için: l A’dan B’yi çıkar ve binvert ve Carry. In l l sinyallerini 1 yap. LSB dışındaki tüm ALU çıkışları her zaman 0 olmalıdır. LSB’deki 1 -bit ALU çıkışının sonucu, MSB deki 1 -bit ALU bloğundaki tam toplayıcı çıkışından gelir. LSB: Least significant bit (en sağdaki) MSB: Most significant bit (en soldaki) 24
Slt Komutu • Slt rd, rs, rt rd: 0000 0000 000 r • A < B => A – B < 0 1 if (rs < rt) 0 else 1. Tam toplayıcı ile çıkarma işlemini yap. 2. İşaret bitini kontrol et. 3. İşaret biti A < B olup olmadığını gösterir. • • • MUX girişine (Less) adında yeni giriş ekle. Slt için yeni kontrol sinyali (111) olur. Slt’nin sonucu, ALU çıkışı değildir. – MSB bloğundaki 1 -bit ALU’da: • • (Set) çıkışı slt için kullanılır. (Taşmayı belirleme mantığı bu sinyale bağlıdır) 25
Yeni 1 -bit ALU B in v e rt O p e r a ti o n C a rr y I n a 0 1 R e s u lt b 0 2 1 Less 3 C arry O u t 26
En soldaki (MSB) ALU Bloğu B in v e rt O p e r a ti o n C a rry. In a 0 1 R e s u lt b 0 2 1 L e s s 3 S e t O v e r fl o w d e t e c ti o n b. 27
Taşma Belirleme Mantığı 28
Taşma devresi ¡ Overflow = Cin[n-1] Cout[n-1] Cin 0 A 0 1 -bit ALU B 0 A 1 Cin 1 B 1 A 2 Cin 2 B 2 A 3 B 3 Cin 3 Result 0 Cout 0 1 -bit ALU Result 1 Cout 1 1 -bit ALU Result 2 Result 3 Overflow COut 3 29
Slt Desteklenmesi 1. bit (LSB) İşaret biti 30
Yeni 32 -bit ALU • Less girişi, LSB hariç tüm girişler için 0. • MSB bloğundaki set sinyali, LSB bloğununun Less girişine bağlandı. 31
Branch Komutları • beq $5, $6, L – Çıkarma yap: (a-b) = 0 a = b – Donanımı sonuç 0 olacak şekilde düzenle – 32 tane sonucu OR kapısından geçir ve – OR çıkışının tersini al Sıfır = (Sonuç 1 + Sonuç 2 +. . + Sonuç 31) 11/22/2020 32
Sıfır Sinyalini Belirleme Cin 0 A 0 1 -bit ALU B 0 A 1 Cin 1 A 2 Cin 2 B 3 Cin 3 Sonuç 1 Sıfır (Zero) Cout 1 1 -bit ALU B 2 A 3 Cout 0 1 -bit ALU B 1 Sonuç 0 Sonuç 2 1 (A = B) 0 otherwise Cout 2 1 -bit ALU Sonuç 3 Cout 3 33
32 -bit ALU Bloğu ve Doğruluk Tablosu 34
- Slides: 34