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 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
0 Response to "Computer Arithmatic"
Posting Komentar