1 of 25

ORGANISASI DAN ARSITEKTUR KOMPUTER

Computer Arithmetic

1

Iim Abdurrohim, M.T.

Yasri, MT

2 of 25

ARITHMATIC LOGIC UNIT

1. FIXED POINT ARITHMATIC YANG MENCAKUP :

  • Adder (Penambahan)
  • Subtracter(Pengurangan)
  • Multiplication (Perkalian)
  • Division (Pembagian)

2. FLOATING POINT ARITHMATIC

2

3 of 25

ALU Inputs and Outputs

3

4 of 25

SISTEM BILANGAN

4

5 of 25

BILANGAN BINER :

5

6 of 25

BILANGAN OKTAL�

Bilangan oktal dalah sistem bilangan yang berbasis delapan (8) dan mempunyai delapan simbol yaitu 0, 1, 2, 3, 4, 5, 6, 7. Pada umumnya sistem bilangan ini digunakan untuk notasi pada saat bermain musik, sehingga sering disebut oktaf.

6

7 of 25

7

Bilangan heksadesimal atau sering disebut heksa saja yang berbasis 16 memiliki nilai yang disimbolkan dengan 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

BILANGAN HEKSADESIMAL

8 of 25

Nilai Tanda

8

  • Bit paling kiri adalah sebagai bit tanda
  • 0 berari positive
  • 1 berarti negative
  • +18 = 00010010
  • -18 = 10010010
  • Problems :
    • memerlukan pertimbangan tanda maupuan nilai bilangan untuk penjumlahan dan pengurangan
    • Two representations of zero (+0 and -0)

9 of 25

Komplemen 2 (Two’s Compliment)

Merupakan perbaikan nilai tanda yang

memiliki kekurangan pada operasi penjumlahan

dan pengurangan serta representasi bilangan nol

  • +3 = 00000011
  • +2 = 00000010
  • +1 = 00000001
  • +0 = 00000000
  • -1 = 11111111
  • -2 = 11111110
  • -3 = 11111101

9

10 of 25

10

Contoh :

+ 2110 = 0001 01012

bilangan negatif dibentuk dengan cara

+ 2110 = 0001 01012

Dibalik sehingga menjadi :

= 1110 10102

Ditambah LSB 1, menjadi:

= 1110 10112 = -2110

11 of 25

Merubah Nilai Komplemen

Merubah dari two’s complement ke decimal

    • Jika positif ubah nilai dari biner ke desimal
    • Jika negatif maka : - Komplemen tiap bit dan tambah 1

Merubah dari decimal ke two’s complement

    • Jika positif ubah nilai dari desimal ke biner
    • Jika negatif :
        • ubah nilai dari desimal ke biner
        • Komplemenkan nilai biner
        • Tambahkan dengan 1

11

12 of 25

Range of Numbers

  • 8 bit komplemen 2
    • +127 = 01111111 = 27 -1
    • -128 = 10000000 = -27
  • 16 bit komplemen 2
    • +32767 = 011111111 11111111 = 215 - 1
    • -32768 = 100000000 00000000 = -215

12

13 of 25

Conversion Between Lengths

Nilai positif dengan memberikan nilai

tanda nol

  • +18 = 00010010
  • +18 = 00000000 00010010

Nilai positif dengan memberikan nilai

tanda satu

  • -18 = 10010010
  • -18 = 11111111 10010010
  • i.e. pack with MSB (sign bit)

13

14 of 25

Aritmatik Integer

Komplemen 2 :

  1. Penjumlahan
  2. Pengurangan
  3. Perkalian
  4. Pembagian

14

15 of 25

Contoh:

(- 6) + (+3) (+2) + (+3)

1010 0010

0011 0011

1101 (-3) 0101 (+5)

 

6 + 3 7 + (-7)

0110 0111

0011 1001

1001 overflow 10000 (0)

 

Catatan :

- penjumlahan dua bilangan positif mengindikasikan hasil yang negatif (4+5=>0100+0101=1001=>9(negatif?))

- penjumlahan dua bilangan negatif mengindikasikan bilangan positif (-4+(-5)=>1100+1011=>0111=>7(positif?))

15

16 of 25

Multiplication

  • Complex
  • Work out partial product for each digit
  • Take care with place value (column)
  • Add partial products

16

17 of 25

Multiplication Example

  • 1011 Multiplicand (11 dec)
  • x 1101 Multiplier (13 dec)
  • 1011 Partial products
  • 0000 Note: if multiplier bit is 1 copy
  • 1011 multiplicand (place value)
  • 1011 otherwise zero
  • 10001111 Product (143 dec)
  • Note: need double length result

17

18 of 25

Unsigned Binary Multiplication

18

19 of 25

Execution of Example

19

20 of 25

Flowchart for Unsigned Binary Multiplication

20

21 of 25

Division

  • More complex than multiplication
  • Negative numbers are really bad!
  • Based on long division

21

22 of 25

Division of Unsigned Binary Integers

22

001111

1011

00001101

10010011

1011

001110

1011

1011

100

Quotient

Dividend

Remainder

Partial

Remainders

Divisor

23 of 25

Flowchart for Unsigned Binary Division

23

24 of 25

Floating Point

24

ALU untuk floating point dapat diimplementasikan dengan menggunakan dua rangkaian aritmatika fixed point yang terpisah yaitu unit exponent dan mantissa

25 of 25

Contoh Floating Point

25