Professional Documents
Culture Documents
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, di dalam komputer hanya ada bilangan 0 & 1 untuk merepresentasikan semua angka Contoh bilangan biner matematis: -1101.0101 = -13.3125 Bentuk seperti ini tidak membawa manfaat bagi komputer, malah menyulitkan Oleh karena itu tidak dipakai
biasa, tinggal disesuaikan dengan panjang bit register yang tersedia. Misal data akan disimpan dalam reg. 8-bit: 00000000 = 0 00000001 = 1 00101001 = 41 10000000 = 128 11111111 = 255 tidak ada masalah!!
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)
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
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
Overflow
Kadang penjumlahan tidak menghasilkan panjang
digit yang sama, bisa lebih, kelebihan itu dihilangkan saja (dipotong). Overflow terjadi jika register ybs tidak mampu menampung bilangan yang dihasilkan. Misal 4-bit rangenya -8 7, tidak bisa menampung bilangan 11 Overflow jika dan hanya jika: penjumlahan dilakukan terhadap dua bilangan bertanda sama, dan hasilnya bertanda berbeda
Perkalian
Operasi perkalian lebih rumit dibandingkan operasi
penjumlahan atau pengurangan, baik dalam hardware maupun software Ada beberapa jenis algoritma yang digunakan dalam bermacam-macam komputer
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 mutiplicand 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-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 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.
Pengalian Komplemen-2
Dengan algoritma pengalian di atas
multiplier-nya negatif
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 yg ditandai dengan Q-1 hasil perkalian tersimpan di A dan Q
A dan Q-1 diinisialisasi 0 control logic memeriksa bit-bit multiplier satupersatu 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
Pembagian
1 1 1 1 1 3 4 1 3 3 7 3 4 7
0 1 1 1 1 1 1 0
1 1 1 1 1 1 1 0
1 1 0 1
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
Ulangi langkah 2 sampai 4 utk setiap posisi bit di Q Bila tanda divisor dan dividend sama maka quotient ada di
bila berhasil (A dan Q = 0), set Q0 1 bila gagal (A dan Q <> 0), reset Q0 0 dan simpan A sebelumnya
(-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