BLGM 325 Bilgisayar Mimarisi ve Organizasyonu Bilgisayar Mhendislii

  • Slides: 34
Download presentation
BLGM 325 Bilgisayar Mimarisi ve Organizasyonu Bilgisayar Mühendisliği Bölümü Doğu Akdeniz Üniversitesi

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

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ı

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

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

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

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

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ı

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

Uygulama A B O 0 A B O 1 9

İkinci kolonda durum nedir? 1 + ¡ 1 01001 01101 10110 Elde 3 biti

İ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).

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

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

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

Full Adder Circuit (2/2) 14

1 -bit ALU ¡ ¡ AND/OR kapılarını tam toplayıcı ile birleştir. 4 -girişli 2

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

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

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

3 -bit ALU: Örnek 18

Yeni İşlem: Çıkarma ¡ ¡ Çıkarma toplama yaparak elde edilir: A - B işlemi

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 Least significant bit Diğer bitler ALU-0 20

1 -bit ALU 0 – ADD 1 – SUB 00 – AND 01 –

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

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

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

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

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

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

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 Belirleme Mantığı 28

Taşma devresi ¡ Overflow = Cin[n-1] Cout[n-1] Cin 0 A 0 1 -bit ALU

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

Slt Desteklenmesi 1. bit (LSB) İşaret biti 30

Yeni 32 -bit ALU • Less girişi, LSB hariç tüm girişler için 0. •

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

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

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

32 -bit ALU Bloğu ve Doğruluk Tablosu 34