orgart komp pertemuan 12 aritmatika komputer

Upload: yoga-prastyo

Post on 18-Oct-2015

49 views

Category:

Documents


1 download

DESCRIPTION

tentang artmatika komputer

TRANSCRIPT

  • Pertemuan XII

  • Arithmetic & Logic Unit Tugas ALU: Melakukan kalkulasi biner Semua komponen lain dalam komputer sebenarnya

    ada untuk melayani ALU ALU hanya bisa menangani bilangan bulat(integer)

    However: ALU bisa juga menangani bilangan pecahan (real) Umumnya dalam bentuk FPU (Floating Point Unit) terpisah (maths co-processor)

  • Representasi Integer Meskipun secara matematis, dalam sistem bilangan

    biner bisa digunakan tanda minus dan radix point, didalam komputer hanya ada bilangan 0 & 1 untukmerepresentasikan semua angka

    Contoh bilangan biner matematis:-1101.0101 = -13.3125

    Bentuk seperti ini tidak membawa manfaat bagikomputer, malah menyulitkan

    Oleh karena itu tidak dipakai

  • Representasi Integer Positif Seandainya semua integer positif, konversi ke biner

    biasa, tinggal disesuaikan dengan panjang bit register yang tersedia.

    Misal data akan disimpan dalam reg. 8-bit:00000000 = 000000001 = 100101001 = 4110000000 = 12811111111 = 255tidak ada masalah!!

  • Representasi Integer Negatif (1) Mulai timbul masalah saat akan menyimpan bilangan

    negatif Komputer tidak mengenal tanda minus

    Sign-Magnitude Representation Bit paling kiri menunjukkan magnitude integer (positif

    atau negatif) sign bit+18 = 00010010- 18 = 10010010

    Kekurangan: ada 2 buah angka nol: nol positif (00000000) dan negatif (10000000)

  • Representasi Integer Negatif (2)Twos Complement Representation Ini yang digunakan di komputer sekarang Satu bit paling kiri dijadikan bernilai negatif,

    kemudian dijumlahkan dengan bit sisanya.Nalar manusia paling gampang, gunakan Value Box:

    Misal 8-bit: 1 1 1 1 1 1 1 1 = -1-128 64 32 16 8 4 2 1

    Mengapa 1 bit paling kiri? Porsi sama besar: negatif = -128 positif = (64 + 32 + 16 + 8 + 4 + 2 + 1) = 127

  • Aritmetik Integer - Negasi (1)Twos Complement Operation Tentukan komplemen boolean untuk tiap bit,

    termasuk sign bitnya. Komplemen: 1 jadi 0, 0 jadi 1. Kemudian tambahkan 1 pada hasilnya Contoh: + 18 = 00010010

    11101101 (bitwise complement)+ 1--------------

    - 18 = 11101110

  • Aritmetik Integer - Negasi (1)Twos Complement Operation Keuntungan: Hanya ada satu nol (coba negasikan 0). Terjadi ketimpangan representasi nilai negatif dan

    positif untuk jumlah bit tertentu misal untuk 8-bit, range bilangan bulat yang terwakili adalah:-128 127 (bukan 128 tapi 128 - 1)-> Inilah yg terjadi pada komputer kita.

    Silakan cek di tipe data bahasa pemrogramanapapun!

  • Konversi antara panjang bityang berbeda Mungkin saja antar register tidak memiliki panjang bit

    yang sama, misal dari 8 ke 16 Positive number pack with leading zeros

    +18 = 00010010+18 = 00000000 00010010

    Negative numbers pack with leading ones-18 = 10010010-18 = 1 1 1 1 1 1 1 1 10010010

  • Addition dan Substraction (1) Disini terlihat jelas keuntungan menggunakan sistem

    twos complement. Tidak perlu ada sirkuit pengurangan, hanya ada

    komplemen dan penjumlahan Perlakuan sama untuk penjumlahan maupun

    pengurangan: langsung DIJUMLAHKAN karena 7 2 sama dengan 7 + (-2)

    Panjang bit bilangan-bilangan yang dijumlahkan maupun hasilnya, harus sama

  • Addition dan Substraction (2)Contoh untuk 4-bit: 3 + 4 0011 = 3

    + 0100 = 40111 = 7

    5 - 7 0101 = 5+ 1001 = -7

    1110 = -2 Latihan: -4 + 4, 4 1, 5 + 4, -7 6

  • Overflow Kadang penjumlahan tidak menghasilkan panjang

    digit yang sama, bisa lebih, kelebihan itu dihilangkansaja (dipotong).

    Overflow terjadi jika register ybs tidak mampumenampung bilangan yang dihasilkan. Misal 4-bit rangenya -8 7, tidak bisa menampung bilangan 11

    Overflow jika dan hanya jika: penjumlahan dilakukanterhadap dua bilangan bertanda sama, dan hasilnya bertanda berbeda

  • Addition dan Subtractionsecara Hardware

  • Perkalian Operasi perkalian lebih rumit dibandingkan operasi

    penjumlahan atau pengurangan, baik dalam hardware maupun software

    Ada beberapa jenis algoritma yang digunakan dalambermacam-macam komputer

  • Pengalian Unsigned Integer1 0 1 1 Multiplicand (11)

    x 1 1 0 1 Mutiplier (13)

    1 0 1 1

    0 0 0 0 Partial

    1 0 1 1 Product

    1 0 1 1

    1 0 0 0 1 1 1 1 Product (143)

  • Pengalian Unsigned Integer Pengalian meliputi pembentukan beberapa perkalian

    parsial untuk setiap digit dalam multiplier. Perkalianparsial ini kemudian dijumlahkan untukmendapatkan hasil pengalian akhir

    Bila bit multiplier sama dengan 0, maka hasilpengaliannya 0. Bila bit multiplier 1, maka hasilpengaliannya sama dengan mutiplicand

    Hasil pengalian akhir diperoleh denganmenjumlahkan perkalian parsial tersebut. Setiap hasilperkalian parsial yang berurutan digeser satu posisi kekiri relatif terhadap hasil perkalian sebelumnya.

    Pengalian dua buah integer biner n-bit menghasilkanhasil perkalian sampai 2n-bit

  • 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 diregister C, A dan Q digeser ke kanan 1 bit.

    Bila Q0 = 0, tidak terjadi penambahan; seluruh bit diregister 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.

  • yg diambil selalu Q0

    M=1011

  • Pengalian Komplemen-2 Dengan algoritma pengalian di atas

    1011 * 1101 = 1000 1111 Perkalian unsigned integer : 11 * 13 = 143 Perkalian komplemen-2 : -5 * -3 = -113

    perkalian tidak berfungsi jika multiplicand dan/ataumultiplier-nya negatif

  • 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 memerlukantransformasi, misalnya Algoritma Booth

  • Algoritma Booth memiliki kelebihan kecepatan proses perkaliannya,

    relatif terhadap pendekatan langsung terdapat register Q(multiplier), M(multiplicand),

    A(accumulator), dan register 1-bit di kanan Q ygditandai dengan Q-1

    hasil perkalian tersimpan di A dan Q

  • A 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 1010

  • contoh : 0111 * 0011 = 0001 0101

  • subshiftadd

  • Pembagian

    1 3

    1 1 1 4 7

    1 1

    3 7

    3 3

    4

  • E 0M divisorA,Q dividendCount n

  • 1001 0011 : 1011 = 000 1101 + 0100

    E A Q0 1 0 0 1 0 0 1 1 Initial1 0 0 1 0 0 1 1 0 Shift Left

    0 1 0 11 0 1 1 1 A A - M1 0 1 1 1 0 1 1 1 Set Q00 1 1 1 0 1 1 1 0 Shift Left

    0 1 0 11 0 0 1 1 A A - M1 0 0 1 1 1 1 1 1 Set Q00 0 1 1 1 1 1 1 0 Shift Left

    0 1 0 10 1 1 0 0 A A - M

    1 0 1 11 0 1 1 1 1 1 1 0 A A + M (restore A)0 1 1 1 1 1 1 0 0 Shift Left

    0 1 0 11 0 1 0 0 A A - M1 0 1 0 0 1 1 0 1 Set Q0

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

    remainder quotient

  • Pembagian Komplemen-2 Muatkan 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.

  • (-7)/(3) dan (7)/(-3) akan menghasilkan remainder yang berbeda. Hal ini disebabkan operasipembagian didefinisikan sebagai

    D = Q * V + Rdengan D = dividend Q = quotient V = divisor R = remainder

    Aritmatika KomputerArithmetic & Logic UnitRepresentasi IntegerRepresentasi Integer PositifRepresentasi Integer Negatif (1)Representasi Integer Negatif (2)Aritmetik Integer - Negasi (1)Aritmetik Integer - Negasi (1)Konversi antara panjang bityang berbedaAddition dan Substraction (1)Addition dan Substraction (2)OverflowAddition dan Subtractionsecara HardwarePerkalianPengalian Unsigned IntegerPengalian Unsigned IntegerSlide Number 17Slide Number 18Slide Number 19Pengalian Komplemen-2Perkalian unsign & komplemen-2Algoritma BoothSlide Number 23Slide Number 24Slide Number 25Slide Number 26PembagianSlide Number 28Slide Number 29Pembagian Komplemen-2Slide Number 31Slide Number 32Slide Number 33