hosting indonesia

Computer Arithmatic





ALU (Arithmatic Logical Unit)

Arithmatic Logical Unit (ALU), adalah komponen dalam sistem komputer yang berfungsi melakukan operasi perhitungan aritmatika dan logika (Contoh operasi aritmatika adalah operasi penjumlahan dan pengurangan, sedangkan contoh operasi logika adalah logika AND dan OR. ALU bekerja besama-sama memori, di mana hasil dari perhitungan di dalamALU di simpan ke dalam memori. Adapun alur proses dari ALU yang ditunjukan oleh gambar dibawah ini:

 










Perhitungan dalam ALU menggunakan kode biner, yang merepresentasikan instruksi yang akan dieksekusi (opcode) dan data yang diolah (operand). ALU biasanya menggunakan sistem bilangan biner two’s complement. ALU mendapat data dari register. Kemudian data tersebut diproses dan hasilnya akan disimpan dalam register tersendiri yaitu ALU output register, sebelum disimpan dalam memori. Processor terdiri dari  4 elemen yang melakukan sistem operasi terhadap data, 4 elemen itu adalah instruksi, petunjuk instruksi, beberapa register dan ALU (Arithmetic Logic Unit). Adalah sebuah petunjuk instruksi akan memberi tahu processor dimana instruksi dari sebuah aplikasi di letakan di memory.
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)
 Co-processor dalam chip terpisah (486DX +)
Integer Representation
Integer representation
Representasi dari Bilangan bulat
Kita perlu menggunakan representasi biner untuk setiap bagian dari data. Komputer beroperasi pada nilai-nilai biner (sebagai akibat dari yang dibangun dari transistor).
Ada 3 jenis data yang kita ingin mewakili:
bilangan bulat
karakter
floating point nilai


Representasi Integer
Ada representasi biner yang berbeda untuk bilangan bulat. Kemungkinan kualitas:
bilangan positif hanya
bilangan positif dan negatif
kemudahan pembacaan manusia
kecepatan operasi komputer
Meskipun ada banyak representasi, dan semua telah digunakan di berbagai kali karena berbagai alasan, yang dikelilingi oleh * adalah representasi yang akan kita gunakan secara ekstensif.
* Unsigned *
tanda besarnya
melengkapi satu
* Melengkapi dua itu *
bias (tidak dikenal)
BCD (Binary Coded Decimal), digunakan terutama oleh aplikasi bisnis pada tahun 1960 dan 70-an.
Hampir semua komputer modern beroperasi berdasarkan representasi komplemen 2 ini. Mengapa?
perangkat keras untuk melakukan operasi yang paling umum adalah lebih cepat (operasi yang paling umum adalah tambahan)
hardware lebih sederhana (dan karena itu lebih cepat)
Apakah Anda perhatikan bahwa kedua alasan untuk menggunakan representasi komplemen 2 adalah sama? Hampir selalu, ketika membahas mengapa sesuatu dilakukan dengan cara itu dilakukan, jawabannya adalah sama: "karena lebih cepat."

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

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 = 0
00000001 = 1
00101001 = 41
10000000 = 128
11111111 = 255
tidak ada masalah!!

Representasi Integer Negatif (1)
Mulai timbul masalah saat akan menyimpan
bilangan negatif
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)
Two’s 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:
-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)
Two’s Complement Operation
Tentukan komplemen boolean untuk tiap bit,
termasuk sign bitnya. Komplemen: 1 jadi 0, 0
jadi satu.
Kemudian tambahkan 1 pada hasilnya
Contoh: + 18 = 00010010
11101101 (bitwise complement)
+ 1
--------------
- 18 = 11101110

Konversi antara panjang bit
yang berbeda
Mungkin saja antar register tidak memiliki
panjang bit yang sama, misall dari 8 ke 16
Positive number pack with leading zeros
+18 = 00010010
+18 = 00000000 00010010
Negative numbers pack with leading ones
-18 = 10010010
-18 = 11111111 10010010
i.e. pack with MSB (sign bit)

Aritmetik Integer – Addition dan
Substraction (1)
Disini terlihat jelas keuntungan
menggunakan sistem two’s 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

Aritmetik Integer – Addition dan
Substraction (2)
Contoh untuk 4-bit:
3 + 4 0011 = 3
+0100 = 4
0111 = 7
5 - 7 0101 = 5
+1001 = -7
1110 = -2
Latihan: -4 + 4, 4 – 1, 5 + 4, -7 – 6

Aritmetik Integer – 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

Addition dan Subtraction
secara Hardware
 

Aritmetik Integer –
Multiplication (Perkalian)
Untuk bilangan unsigned (positif semua),
secara manusia perkalian dapat dilakukan
secara manual (contoh di papan tulis)

Aritmetik Integer – Multiplication
Unsigned Binary Multiplication (1)


Aritmetik Integer – Multiplication
Unsigned Binary Multiplication (2)
Aturan:
Masukkan bilangan yang akan dikalikan ke M
Masukkan bilangan pengali ke Q
Awal: A dan C diset 0
Jika kondisi terakhir Q0 = 0, hanya lakukan shift
kanan 1 bit sepanjang A dan Q, tapi
Jika kondisi terakhir Q0 = 1, tambahkan M ke A (jika
tidak cukup, tampung sisa digitnya di C), kemudian
lakukan shift kanan 1 bit sepanjang C, A dan Q
Ulangi dua baris di atas sebanyak panjang bit Q
Setelah loop terakhir, hasil akan tersedia di A dan Q

Aritmetik Integer – Multiplication
Unsigned Binary Multiplication (3)

Ars
itektur dan Organisasi Komputer
Aritmetik Integer – Multiplication
Unsigned Binary Multiplication (4)



Aritmetik Integer – Multiplication
Perkalian Bilangan Negatif
Silakan coba kalikan bilangan negatif dengan
cara sebelumnya, pasti hasilnya aneh
Solusi 1
Dasar: A X (-B) = - (A X B)
Positifkan bilangan yang negatif (dengan negasi
terbalik)
Kalikan dengan cara sebelumnya
Kalau bilangan aslinya berbeda tanda (sign),
negasikan hasilnya
Solusi 2
Booth’s algorithm

Aritmetik Integer – Multiplication
Booth’s Algorithm (1)


Aritmetik Integer – Division
Signed&Unsigned Binary Division (1)
Aturan:
Masukkan pembagi ke register M
Masukkan bilangan yang akan dibagi ke register A
dan Q, dalam bentuk perpanjangan bit 2 kalinya.
Shift kiri A dan Q sebanyak 1 bit.
Jika M dan A bertanda sama, A A – M, kalau
tidak A A + M
Cek apakah tanda A berubah setelah operasi diatas
Jika tanda sama atau hasil A=0, set Q0 1
Jika tanda beda dan hasil A≠0, set Q0 0 dan
pulihkan (restore) nilai A sebelumnya
Ulangi ketiga baris di atas sebanyak panjang bit Q
A akan berisi sisa, Q berisi hasil baginya

Aritmetik Integer – Division
Signed&Unsigned
Binary
Division (2)
LANJUT BACA FLOATING POINT => KLIK LINK

Referensi :
1.      Riyanto Sigit, ST., MKom , Nur Rosyid Mubtada’i, SKom , Setiawardhana, ST,
Hero Yudo Martono, ST , ITS
http://kauni07.files.wordpress.com/2009/03/modul_5_-_floating_point.pdf
2.      Dr. Wahyu Kusuma, staffsite.gunadarma.ac.id  




 

Subscribe to receive free email updates:

0 Response to "Computer Arithmatic"