Aritmatik Logic Unit

download Aritmatik Logic Unit

of 42

Transcript of Aritmatik Logic Unit

OPERASI ARITMATIKAPengantar Arsitektur Komputer Universitas Ahmad Dahlan E. Haodudin Nurkifli1

PENJUMLAHAN (OVERVIEW)

Operasi yang dilakukan selalu penjumlahan, termasuk sign bit

T.Informatika UAD

2

PENGURANGAN (OVERVIEW)Pengubahan dari bilangan positif ke negatif --> dengan 2s complement Contoh:

T.Informatika UAD

3

DIAGRAM BLOK PENJUMLAHAN & PENGURANGAN

4

OVERFLOW (OVERVIEW) Jika

penjumlahan 2 bilangan n digit menghasilkan n+1 digit maka disebut dengan overflow Penjumlahan dengan komputer digital --> overflow menjadi masalah karena ukuran register yang terbatas Komputer perlu mendeteksi adanya overflow Overflow tidak akan terjadi pada saat penjumlahan bilangan yang berbeda tandaT.Informatika UAD

5

OVERFLOW (OVERVIEW) Dideteksi

dengan mengamati carry out dengan carry yang terjadi pada posisi sign bitJika sama maka overflow tidak terjadi Jika beda maka terjadi overflow

Secara

digital --> gunakan gerbang XOR

Overflow --> keluaran gerbang = 1 Tidak overflow --> keluaran gerbang = 0

T.Informatika UAD

6

PERKALIANOperasi Aritmatika

7

PENGALIANOperasi pengalian lebih rumit dibandingkan operasi penjumlahan atau pengurangan, baik dalam hardware maupun software Ada beberapa jenis algoritma yang digunakan dalam bermacam-macam komputer

8

PENGALIAN UNSIGNED INTEGER1 0 1 1 x 1 1 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 1Partial Product Multiplicand (11) Mutiplier (13)

1 0 0 0 1 1 1 1

Product

(143)9

PENGALIAN UNSIGNED INTEGERPengalian meliputi pembentukan beberapa perkalian parsial untuk setiap digit dalam multiplier. Perkalian parsial ini kemudian dijumlahkan untuk mendapatkan hasil pengalian akhir Bila bit multiplier sama dengan 0, maka hasil pengaliannya 0. Bila bit multiplier 1, maka hasil pengaliannya sama dengan mutiplier Hasil pengalian akhir diperoleh dengan menjumlahkan perkalian parsial tersebut. Setiap hasil perkalian parsial yang berurutan digeser satu posisi ke kiri relatif terhadap hasil perkalian sebelumnya. Pengalian dua buah integer biner n-bit menghasilkan hasil perkalian sampai 2n-bit10

PENGALIAN UNSIGNED INTEGER Control

Logic membaca bit-bit multiplier satu persatu Bila Q0 = 1, multiplicand ditambahkan ke register A; hasilnya disimpan ke register A; setelah itu seluruh bit di register C, A dan Q digeser ke kanan 1 bit. Bila Q0 = 0, tidak terjadi penambahan; seluruh bit di register C, A dan Q digeser ke kanan 1 bit. Proses tersebut dilakukan secara berulang untuk setiap bit multiplier Hasil perkalian akhir tersimpan di register A dan Q.11

PENGALIAN UNSIGNED INTEGER

12

PENGALIAN UNSIGNED INTEGER

yg diambil selalu Q0 M=1011

13

PENGALIAN KOMPLEMEN-2

Dengan algoritma pengalian di atas 1011 * 1101 = 1000 1111Perkalian unsigned integer : 11 * 13 = 143 Perkalian komplemen-2 : -5 * -3 = -113

perkalian tidak berfungsi jika multiplicand dan/atau multiplier-nya negatif

14

PERKALIAN UNSIGN & KOMPLEMEN-2

Ada beberapa cara untuk menangani hal tersebut:

konversi multiplier dan multicand jadi positif, dikalikan; cari komplemen-2 dari hasilnya jika tanda multiplier dan multiplicand berbeda Menggunakan algoritma lain yang tidak memerlukan transformasi, misalnya Algoritma Booth

15

ALGORITMA BOOTHmemiliki kelebihan kecepatan proses perkaliannya, relatif terhadap pendekatan langsung terdapat register Q(multiplier), M(multiplicand), A(accumulator), dan register 1-bit di kanan Q yg ditandai dengan Q-1 hasil perkalian tersimpan di A dan Q

16

ALGORITMA BOOTHA

dan Q-1 diinisialisasi 0 control logic memeriksa bit-bit multiplier satu-persatu beserta bit di kanannya Jika kedua bit sama (1-1 atau 0-0), maka seluruh bit di A, Q dan Q-1 digeser 1-bit ke kanan jika kedua bit berbeda, multiplicand ditambahkan (0-1) atau dikurangkan (1-0) ke register A, kemudian digeser ke kanan pergeseran menggunakan Arithmetic Shift

contoh : 1011 0101 1101 101017

ALGORITMA BOOTH

18

ALGORITMA BOOTH

contoh : 0111 * 0011 = 0001 0101

19

ALGORITMA BOOTHsub shift add

1101

10 01 1-0

20

PEMBAGIANOperasi Aritmatika

21

PEMBAGIAN-UNSIGNED BINARY11 1 1 1

34 1 7

33

73 4

T.Informatika UAD

22

PEMBAGIAN-UNSIGNED BINARYE0 M divisor A,Q dividend Count n

T.Informatika UAD

23

PEMBAGIAN-UNSIGNED BINARY

1001 0011 : 1011 = 000 1101 + 0100E 0 1 1 1 0 1 1 0 0 1 0 1 1 A

M = 1011 M = 0101 (2nd-c)

1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0

0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1

0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 0

1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0

Q 0 0 1 1 0 1 1 0

Initial Shift LeftA A - M Set Q0 Shift Left A A - M Set Q0 Shift Left A A - M

0 1 1 1 1 1 1 0

1 1 1 1 1 1 1 0

1 1 1 0 1 1 0 0

A A + M (restore A) Shift Left A A - M Set Q0

1 1 0 1

T.Informatika UAD

remainder

quotient

24

PEMBAGIAN KOMPLEMEN-2Muatkan divisor ke M, dividend ke A dan Q. dividend diekspresikan sbg komplemen-2 2n-bit. Geser A dan Q 1-bit ke kiri Bila M dan A memiliki tanda yg sama, lakukan A A M; bila tandanya beda, A A + M Operasi tsb akan berhasil bila tanda A sesudah dan sebelum operasi sama

bila berhasil (A dan Q = 0), set Q0 1 bila gagal (A dan Q 0), reset Q0 0 dan simpan A sebelumnya

Ulangi langkah 2 sampai 4 utk setiap posisi bit di Q Bila tanda divisor dan dividend sama maka quotient ada di Q, jika tidak quotient adalah komplemen-2 dari Q. Remainder ada di A.T.Informatika UAD

25

PEMBAGIAN KOMPLEMEN-2

T.Informatika UAD

26

PEMBAGIAN KOMPLEMEN-2

T.Informatika UAD

27

PEMBAGIAN KOMPLEMEN-2

T.Informatika UAD

28

PEMBAGIAN KOMPLEMEN-2 (-7)/(3)

dan (7)/(-3) akan menghasilkan remainder yang berbeda. Hal ini disebabkan operasi pembagian didefinisikan sebagai D=Q*V+R dengan

D = dividend Q = quotient V = divisor R = remainder

T.Informatika UAD

29

FLOATING POINTRepresentasi & Operasi Aritmatika

30

REPRESENTASI Notasi

fixed point (radix point) dimungkinkan untuk merepresentasikan bilangan-bilangan positif dan negatif dengan komponen pecahan Pendekatan ini memiliki keterbatasan, bilangan yang sangat besar dan pecahan yang sangat kecil tidak dapat direpresentasikan. Bagian quotient dalam pembagian dua bilangan besar dapat hilang Dalam desimal, 123.000.000.000.000 dapat direpresentasikan sebagai 1,23 * 1014; Demikian juga 0,0000000000000123 dapat direpresentasikan sebagai 1,23 * 10-14T.Informatika UAD

31

REPRESENTASI

Pendekatan yang sama dapat dilakukan pada bilangan biner + S * B +E denganS : significant B : base E : exponent

32

FORMAT FLOATING POINT1 8-bit 23-bit

Implisit selalu 11 1 1 1

Tanda bilangan 0 : positif, 1 : negatif Nilai exponent 8-bit biased : nilai field dikurangi bias (128) utk memperoleh nilai exponent sebenarnya Significand/Mantissa dg normalisasi (+ 0,1bbb..b * 2 +E), bit terkiri selalu 1; shg tdk perlu disimpan (ada secara implisit) 23-bit untuk menyimpan 24-bit33

FORMAT FLOATING POINT

34

FORMAT FLOATING POINT

Range bilangan:

Negatif : - (1 2-24) * 2127 dan - 0,5 * 2-128 Positif : 0,5 * 2-128 dan (1 2-24) * 2127Negative overflow : < - (1 2-24) * 2127 Negative underflow : < - 0,5 * 2-128 Zero Positive underflow : > 0,5 * 2-128 Positive overflow : > (1 2-24) * 2127

Ouf of range:

35

RANGE & KETELITIAN

Terdapat trade off antara range dan ketelitian : jumlah bit exponent ditambah akan meningkatkan range tapi menurunkan ketelitian Untuk meningkatkan keduanya, jumlah bit exponent dan significand ditambah

T.Informatika UAD

36

PENAMBAHAN & PENGURANGAN FP

4 fase dasar algoritma penambahan dan pengurangan bilangan floating point:periksa apakan salah satunya bilangan nol align significand (samakan exponent) tambahkan atau kurangkan significand normalisasi hasil

T.Informatika UAD

37

PENAMBAHAN & PENGURANGAN FP

Y

Y

T.Informatika UAD

38

PERKALIAN & PEMBAGIAN FPPerkalian & pembagian floating point relatif lebih sederhana dibandingkan operasi penambahan dan pengurangan Perlu diperhatikan :

yang tersimpan dlm format floating point adalah biased exponent, sehingga perlu dilakukan pengurangan atau penambahan bias Perlu pengecekan adanya overflow dan underflow

T.Informatika UAD

39

PERKALIAN FP

T.Informatika UAD

40

PEMBAGIAN FP

T.Informatika UAD

41

ANY QUESTION?

T.Informatika UAD

42