ALU (ARITHMETIC LOGICAL UNIT) "ARKOM"
ALU (ARITHMETIC LOGICAL UNIT)
Oleh : Ahmad Wahyudi 15101526
1.
Pengertian ALU
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 dalam ALU di simpan ke dalam memori.
Arithmatic
Logical Unit (ALU) juga bertugas membentuk fungsi – fungsi pengolahan data
komputer. ALU sering disebut mesin bahasa (machine
language) karena bagian ini mengerjakan instruksi – instruksi bahasa mesin
yang diberikan padanya. ALU terdiri dari dua bagian, yaitu unit arithmetika dan
unit logika boolean, yang masing – masing memiliki spesifikasi dan tugas
tersendiri. Fungsi-fungsi yang didefinisikan pada ALU adalah Add (penjumlahan),
Addu (penjumlahan tidak bertanda), Sub (pengurangan), Subu (pengurangan tidak
bertanda), and, or, xor, sll (shift left
logical), srl (shift right logical),
sra (shift right arithmetic), dan lain-lain.
Arithmetic
Logical Unit (ALU) merupakan unit penalaran secara logic. ALU ini merupakan
Sirkuit CPU berkecepatan tinggi yang bertugas menghitung dan membandingkan.
Angka-angka dikirim dari memori ke ALU untuk dikalkulasi dan kemudian dikirim
kembali ke memori. Jika CPU diasumsikan sebagai otaknya komputer, maka ada
suatu alat lain di dalam CPU tersebut yang kenal dengan nama Arithmetic Logical
Unit (ALU), ALU inilah yang berfikir untuk menjalankan perintah yang diberikan
kepada CPU tersebut. ALU sendiri merupakan suatu kesatuan alat yang terdiri
dari berbagai komponen perangkat elektronika termasuk di dalamnya sekelompok
transistor, yang dikenal dengan nama logic gate, dimana logic gate ini
berfungsi untuk melaksanakan perintah dasar matematika dan operasi logika.
Kumpulan susunan dari logic gate inilah yang dapat melakukan perintah
perhitungan matematika yang lebih komplit seperti perintah “add” untuk menambahkan bilangan, atau “devide” atau pembagian dari suatu
bilangan.
Selain
perintah matematika yang lebih komplit, kumpulan dari logic gate ini juga mampu
untuk melaksanakan perintah yang berhubungan dengan logika, seperti hasil
perbandingan dua buah bilangan.
Instruksi yang dapat dilaksanakan oleh ALU disebut dengan instruction set. Perintah yang ada pada masing-masing CPU belum tentu sama, terutama CPU yang dibuat oleh pembuat yang berbeda, katakanlah misalnya perintah yang dilaksanakan oleh CPU buatan Intel belum tentu sama dengan CPU yang dibuat oleh Sun atau perusahaan pembuat mikroprosesor lainnya. Jika perintah yang dijalankan oleh suatu CPU dengan CPU lainnya adalah sama, maka pada level inilah suatu sistem dikatakan compatible. Sehingga sebuah program atau perangkat lunak atau software yang dibuat berdasarkan perintah yang ada pada Intel tidak akan bisa dijalankan untuk semua jenis prosesor, kecuali untuk prosesor yang compatible dengannya.
Instruksi yang dapat dilaksanakan oleh ALU disebut dengan instruction set. Perintah yang ada pada masing-masing CPU belum tentu sama, terutama CPU yang dibuat oleh pembuat yang berbeda, katakanlah misalnya perintah yang dilaksanakan oleh CPU buatan Intel belum tentu sama dengan CPU yang dibuat oleh Sun atau perusahaan pembuat mikroprosesor lainnya. Jika perintah yang dijalankan oleh suatu CPU dengan CPU lainnya adalah sama, maka pada level inilah suatu sistem dikatakan compatible. Sehingga sebuah program atau perangkat lunak atau software yang dibuat berdasarkan perintah yang ada pada Intel tidak akan bisa dijalankan untuk semua jenis prosesor, kecuali untuk prosesor yang compatible dengannya.
Seperti
halnya dalam bahasa yang digunakan oleh manusia, instruction set ini juga
memiliki aturan bahasa yang bisa saja berbeda satu dengan lainnya.
Bandingkanlah beda struktur bahasa Inggris dengan Indonesia, atau dengan bahasa
lainnya, begitu juga dengan instruction set yang ada pada mesin, tergantung
dimana lingkungan instruction set itu digunakan.
2.
Struktur dan Cara Kerja Pada ALU
ALU
akan bekerja setelah mendapat perintah dari Control Unit yang terletak pada
processor. Control unit akan memberi perintah sesuai dengan komando yang
tertulis (terdapat) pada register. Jika isi register memberi perintah untuk
melakukan proses penjumlahan, maka PC akan menyuruh ALU untuk melakukan proses
penjumlahan. Selain perintah, register pun berisikan operand-operand. Setelah
proses ALU selesai, hasil yang terbentuk adalah sebuah register yang berisi
hasil atau suatu perintah lainnya. Selain register, ALU pun mengeluarkan suatu
flag yang berfungsi untuk memberi tahu kepada kita tentang kondisi suatu
processor seperti apakah processor mengalami over flow atau tidak.
ALU
(Arithmethic and Control Unit) adalah
bagian dari CPU yang bertanggung jawab dalam proses komputasi dan proses
logika. Semua komponen pada CPU bekerja untuk memberikan asupan kepada ALU
sehingga bisa dikatakan bahwa ALU adalah inti dari sebuah CPU. Perhitungan pada
ALU adalah bentuk bilangan integer yang direpresentasikan dengan bilangan
biner. Namun, untuk saat ini, ALU dapat mengerjakan bilangan floating point
atau bilangan berkoma, tentu saja dipresentasikan dengan bentuk bilangan biner.
ALU mendapatkan data (operand, operator, dan instruksi) yang akan disimpan
dalam register. Kemudian data tersebut diolah dengan aturan dan sistem tertentu
berdasarkan perintah control unit. Setelah proses ALU dikerjakan, output akan
disimpan dalam register yang dapat berupa sebuah data atau sebuah instruksi.
Selain itu, bentuk output yang dihasilkan oleh ALU berupa flag signal. Flag
signal ini adalah penanda status dari sebuah CPU. Bilangan ineger (bulat) tidak
dikena oleh komputer dengan basis 10. Agar komputer mengenal bilangan integer,
maka para ahli komputer mengkonversi basis 10 menjadi basis 2. Seperti kita
ketahui, bahwa bilangan berbasis 2 hanya terdiri atas 1 dan 0. Angka 1 dan 0
melambangkan bahwa 1 menyatakan adanya arus listrik dan 0 tidak ada arus listrik.
Namun, untuk bilangan negatif, computer tidak mengenal simbol (-). Komputer hanya
mengenal simbol 1 dan 0 untuk mengenali bilangan negatif, maka digunakan suatu
metode yang disebut dengan Sign Magnitude Representation. Metode ini
menggunakan simbol 1 pada bagian paling kiri (most significant) bit. Jika
terdapat angka 18 = (00010010)b, maka -18 adalah (10010010)b. Akan tetapi,
penggunaan sign-magnitude memiliki 2 kelemahan. Yang pertama adalah terdaptnya
-0 pada sign magnitude [0=(00000000)b; -0=(10000000)b].
Seperti
kita ketahui, angka 0 tidak memiliki nilai negatif sehingga secara logika,
sign-magnitude tidak dapat melakukan perhitungan aritmatika secara matematis.
Yang kedua adalah, tidak adanya alat atau software satupun yang dapat
mendeteksi suatu bit bernilai satu atau nol karena sangat sulit untuk membuat
alat seperti itu. Oleh karena itu, penggunaan sign magnitude pada bilangan
negatif tidak digunakan, akan tetapi diganti dengan metode 2′s complement.
Metode 2′s complement adalah metode yang digunakan untuk merepresentasikan
bilangan negatif pada komputer. Cara yang digunakan adalah dengan nilai
terbesar dari biner dikurangin dengan nilai yang ingin di cari negatifnya.
B. Integer Representative
Semua bilangan dapat
direpresentasikan dengan hanya menggunakan bilangan 0 dan 1 untuk
keperluan penyimpanan dan pengolahan komputer, tidak perlu
menggunakan tanda minus dan titik, hanya bilangan biner yang dapat merepresentasikan
bilangan.A. Representasi nilai tanda penggunaan unsigned integer
tidak cukup untuk merepresentasikan bilangan integer
negatif dan juga bilangan positif integer, karena itu terdapat beberapa konvensi lainnya meliputi perlakuan terhadap bit yang paling berarti
(paling kiri) didalam word sebagai bit tanda.
Apabila bit paling kiri sama
dengan nol maka suatu bilangan adalah positif. Sedangkan bit paling
kiri sama dengan 1, maka bilangan bernilai negatif. Misalnya:
+18=00010010 -18=10010010 (sign magnitude/nilai-tanda).
Kekurangan Representasi Nilai Tanda Penambahan dan pengurangan memerlukan
pertimbangan baik tanda bilangan maupun nilai relatifnya agar dapat
berjalan pada operasi yang diperlukan. Terdapat dua representasi bilangan
0:+010=00000000 -010=10000000 (sign
magnitude). Hal ini tidak sesuai untuk digunakan, karena akan
menyulitkan pemeriksaan bilangan 0. Dalam sistem bilangan biner, semua bilangan dapat
direpresentasikan dengan hanya menggunakan bilangan 0 dan 1, tanda minus, dan
tanda titik.
Misalnya: -1101.01012
= -11.312510
|
Namun untuk keperluan penyimpanan dan pengolahan
komputer, kita tidak perlu menggunakan tanda minus dan titik, Hanya bilangan
biner (0 dan 1) yang dapat merepresentasikan bilangan. Bila kita hanya memakai
integer non-negatif, maka representasinya akan lebuh mudah.
Sebuah
word 8-bit dapat digunakan untuk merepresentasikan bilangan 0 hingga 255.
Misalnya:
00000000= 0
00000001= 1
00101001= 41
10000000= 128
11111111= 225
Umumnya bila
sebuah rangkaian n-bit bilangan biner an-1an-2…a1a0 akan diinterpretasikan sebagai
unsigned integer A.
Representasi
Nilai Tanda
Penggunaan unsigned integer tidak cukup dengan
bilangan integer negatif dan juga bilangan positif integer, beberapa konvesi
lainnya yang dapat kita gunakan, Konvesi-konvesi adalah perlakuan terhadap bit
yang paling berarti (paling kiri) di dalam word bit. Apabila bit paling kiri sama dengan 0 maka
suatu bilangan adalah positif sedangkan bit yang paling kiri sama dengan 1 maka
bilangan bernilai negatif. Bentuk yang
paling sederhana representasi yang memakai bit representasi nilai tanda. Pada
sebuah word n bit, n – 1 bit yang paling kanan menampung nilai integer. Misalnya:
+
18 = 00010010
-
18 = 10010010 (sign-magnitude/nilai-tanda)
Terdapat beberapa kekurangan pada representasi
nilai-tanda penambahan dan pengurangan, memerlukan pertimbangan baik tanda
bilangan ataupun nilai relatifnya agar dapat berjalan pada operasi yang
diperlukan.
Kekurangannya
lainnya yaitu terdapat dua representasi bilangan 0:
+
010 = 00000000
-
010 = 10000000 (sign-magnitude)
Ada representasi biner yang berbeda untuk bilangan bulat.
Kemungkinan kualitas:
- bilangan hanya positif
- bilangan positif dan negatif
- kemudahan pembacaan manusia
- kecepatan operasi computer
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.
- bilangan hanya positif
- bilangan positif dan negatif
- kemudahan pembacaan manusia
- kecepatan operasi computer
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.
C.
Integer
Arithmetic
Bagian ini akan membahas fungsi-fungsi aritmatik
bilangan dalam representasi komplemen dua Negasi. Pada notasi komplemen dua,
pengurangan sebuah bilangan integer dapat dibentuk dengan menggunakan aturan
berikut :
Anggaplah
komplemen Boolean seluruh bit bilangan integer (termasuk bit tanda)
Perlakukan
hasilnya sebagai sebuah unsigned binary integer, tambahkan 1.
Misal
: 18 = 00010010 (komplemen dua)
Representasi
Integer Positif, Negatif Dan Bilangan 0
Bila
sebuah bilangan integer positif dan negatif yang sama direpresentasikan
(sign-magnitude), maka harus ada representasi bilangan positif dan negatif yang
tidak sama.
Bila
hanya terdapat sebuah representasi bilangan 0 (komplemen dua), maka harus ada representasi
bilangan positifdan negatif yang tidak sama.
Pada
kasus komplemen dua, terdapat representasi bilangan n-bit untuk -2n, tapi tidak
terdapat untuk 2n.
Aturan
Untuk Mendeteksi Overflow
Aturan Overflow
:
Bila
dua buah bilangan ditambahkan, dan keduanya positif atau keduanya negatif, maka
akan terjadi overflow bila dan hanya bila hasilnya memiliki tanda yang
berlawanan.
Aturan
penjumlahan biner
0
+ 0 = 0
0
+ 1 = 1
1
+ 0 = 1
1
+ 1= 0 dengan menyimpan 1
Aturan Pengurangan
:
Untuk
mengurangkan sebuah bilangan (subtrahend) dari bilangan lainnya (minuend),
anggaplah komplemen dua subtrahend dan tambahkan hasilnya ke minuend.
0
- 0 = 0
1
- 0 = 1
1
- 1 = 0
0
– 1 = 1 dengan meminjam 1 dari baris sebelahnya
Aturan perkalian
biner
0 x 0 = 0
1 x 0 = 0
0 x 1 = 0
1 x 1 = 1
Aturan pembagian
biner
0 : 1 = 0
1 : 1 = 1
Pembulatan
Teknik
pembulatan yang sesuai dengan standard IEEE adalah sebagai berikut :
-
Pembulatan ke Bilangan
Terdekat : Hasil dibulatkan ke bilangan terdekat yang dapat direpresentasi.
-
Pembulatan Ke Arah :
Hasil dibulatkan ke atas ke arah tak terhingga positif.
-
Pembulatan Ke Arah :
Hasil dibulatkan ke atas ke arah tak terhingga negatif.
-
Pembulatan Ke Arah 0 :
Hasil dibulatkan ke arah 0
-
Pembulatan ke Bilangan
Terdekat : Hasil dibulatkan ke bilangan terdekat yang dapat direpresentasi.
D. Floating Point Representation dan Floating Point Arithmetic
Floating-point atau bilangan titik mengambang, adalah
sebuah format bilangan yang dapat digunakan untuk merepresentasikan sebuah
nilai yang sangat besar atau sangat kecil. Bilangan ini direpresentasikan
menjadi dua bagian, yakni bagian mantisa dan bagian eksponen (E). Bagian mantisa
menentukan digit dalam angka tersebut, sementara eksponen menentukan nilai
berapa besar pangkat pada bagian mantisa tersebut (pada posisi titik desimal).
Sebagai contoh, bilangan 314600000 dan bilangan 0.0000451 dapat
direpresentasikan dalam bentuk bilangan floating
point: 3146E5 dan 451E-7 (artinya 3146 * 10 pangkat 5, dan 451 * 10 pangkat
-7). Kebanyakan CPU atau mikroprosesor sederhana tidak mendukung secara langsung operasi terhadap bilangan
floating-point ini, karena aslinya mikroprosesor ini hanya memilikiunit aritmetika dan logika, serta unit kontrol yang beroperasi berdasarkan
pada bilangan bulat (integer) saja.
Perhitungan atau kalkulasi
terhadap nilai floating point pada jenis mikroprosesor sederhana dapat
dilakukan dengan menggunakan perangkat lunak, sehingga operasinya sangat
lambat. Untuk itulah, sebuah prosesor tambahan dibutuhkan untuk melakukan
operasi terhadap jenis bilangan ini, yang disebut dengan unit titik mengambang.
Dalam bahasa pemrograman,
khususnya keluarga bahasa pemrograman C, bilangan titik mengambang
direpresentasikan dengan tipe data float.
Floating Point adalah tipe data yang
dapat menyimpan angka dengan pecahan. VB membedakan menjadi dua jenis, yaitu:
• Tipe data single. Tipe data ini, dapat
menampung angka negatif dengan jangkauan -3.402823E38 hingga -1.401298E-45, dan
angka positif dengan jangkauan 1.401298E-45 hingga 3.402823E38. Huruf E
menunjukkan 10 pangkat, misalnya pada -3.402823E38 berarti -3.402823 x 1038.
Tipe data ini membutuhkan 4 byte memori, dan merupakan tipe floating point yang
paling sederhana (dan paling tidak presisi).
• Tipe data double. Daya tampung tipe data
double adalah -
1.79769313486232E308 hingga
-4.94065645841247E-324 untuk bilangan negatif, dan 4.9406564581247E-324 sampai
1.79769313486232E308 untuk bilangan positif. Kenyataan yang sebenarnya, operasi
terhadap tipe data single tidak secepat tipe data double ini.
1.
Floating Point Representative
Untuk menuliskan
bilangan floating point (bilangan pecahan) dilakukan dengan menuliskan dalam
bentuk exponensial, Sehingga bilangan tersebut memiliki bilangan dasar,
bilangan pemangkat dan basis bilangan tersebut, Penulisan Notasi Ilmiah, Contoh
; pada bil. Desimal :
976.000.000.000.000 ditulis 9,76 x 1014
0,00000000000976 ditulis 9,76 x 10-12
•
Representasi : ±S * B ±E Tanda : ( + atau – ) Signifikan (S) disebut
juga mantissa, Eksponen (E), Base (B) Ko-prosesor Aritmatika mendukung tiga
repr floating point :
•
Short (32 bit)/ presisi tunggal dengan bias 7Fh
•
Long (64 bit)/presisi ganda dengan bias 3FFh Exponensial
Penulisan bilangan floating point dengan cara
exponensial dapat menyebabkan adanya kemungkinan sebuah bilangan ditulis dengan
cara yang bermacam-macam
Standarisasi
untuk penulisan bilangan
Format penulisan menurut standar IEEE 754
2.
Floating Point Arithmetic
Bentuk Bilangan
Floating Point Bilangan Floating Point memiliki bentuk umum : + m * b e ,
dimana m (disebut juga dengan mantissa), mewakili bilangan pecahan dan umumnya
dikonversi ke bilangan binernya, e mewakili bilangan exponentnya, sedangkan b
mewakili radix (basis) dari exponent.
Contoh : Pada gambar diatas, menunjukkan
tentang panjang bit pada bilangan floating point m = 23 bit, e = 8 bit, dan S
(bit sign) = 1. Jika nilai yang tersimpan di S adalah 0, maka bilangan tersebut
adalah positif dan jika nilai yang tersimpan pada S adalah 1, maka bilangan
tersebut adalah negatif.
Bilangan exponent pada contoh diatas, hanya
dapat digunakan pada bilangan positif 0 hingga 255. Untuk dapat menggunakan
bilangan exponent negatif dan positif, nilai bulat yang disebut dengan bias,
dikurangkan dengan bilangan pada kolom exponent dan menghasilkan bilangan
exponent akhir. Misalkan pada contoh diatas menggunakan bias = 128, maka
bilangan exponent akhirnya memiliki range antara 128 (disimpan sebagai 0 pada
kolom exponent) hingga +127 (disimpan sebagai 255 pada kolom exponent).
Berdasarkan bentuk seperti ini, bilangan exponent +4 dapat digunakan dengan
menyimpan 132 pada kolom exponent, sedangkan bilangan exponent 12 dapat
digunakan dengan menyimpan 116 pada kolom exponent. Anggap b = 2, maka bilangan
floating point seperti 1,75 dapat menggunakan salah satu dari bentuk umum
seperti pada gambar berikut:
Aritmetika Floating
Point Penjumlahan / Pengurangan Operasi penjumlahan/pengurangan dua bilangan
floating point diilustrasikan dengan skema seperti pada gambar berikut :
Perkalian
Perkalian dari dua bilangan floating point dengan bentuk
X = mx * 2a dan Y
= mx * 2b
setara dengan X * Y = (mx * my) * 2a+b
Algoritma umum untuk perkalian dari bilangan floating
point terdiri dari tiga langkah :
1. Hitung hasil exponensial dengan menjumlahkan nilai
exponent dari kedua bilangan
2. Kalikan kedua bilangan mantissa
3. Normalisasi hasil akhir
Perkalian dari dua bilangan floating point diilustrasikan
menggunakan skema seperti
tampak pada gambar berikut :
Pembagian
Pembagian dari dua bilangan floating point dengan bentuk
X = mx * 2a dan
Y = mx * 2b
setara dengan X / Y = (mx / my) * 2ab
Algoritma umum untuk pembagian dari bilangan floating
point terdiri dari tiga langkah :
1. Hitung hasil exponensial dengan mengurangkan nilai
exponent dari kedua bilangan
2. Bagi kedua bilangan mantissa
3. Normalisasi hasil akhir
Contoh : Pembagian antara dua bilangan floating
point X = 1,0000 * 2 2 dan Y = 1,0100 * 2
1.
Kurangkan bilangan exponennya : 2 – (1) = 1
2.
Bagi mantissa: 1,0000 / 1,0100 = 0,1101
Hasil pembagiannya adalah 0,1101 , Pembagian dari dua
bilangan floating point diilustrasikan menggunakan skema seperti tampak pada
gambar berikut :
Floating Point standard IEEE
IEEE membuat dua bentuk bilangan floating
point standard. Bentuk basic
dan bentuk extended. Pada tiap bentuk
tersebut, IEEE menentukan dua format, yaitu singleprecision dan double
precision format. Single precision format adalah model 32bit sedangkan double
precision format adalah 64bit. Pada single extended format setidaknya menggunakan
44 bit, sedangkan pada double extended format setidaknya menggunakan 80 bit.
Pada single precision format, mengijinkan penggunaan bit tersembunyi, kolom
exponentnya adalah 8bit. Bentuk single precision ditunjukkan pada gambar
berikut.
Daftar Pustaka
Dr. Wahyu Kusuma, staffsite.gunadarma.ac.id
Hero Yudo Martono, ST , ITS
http://kauni07.files.wordpress.com/2009/03/modul_5_-_floating_point.pdf
Riyanto Sigit, ST., MKom , Nur Rosyid Mubtada’i, SKom ,
Setiawardhana, ST,
thank you for sharing this post I am very happy to be here and read this post is make my day thanks
BalasHapusrarbg proxy
extratorrent proxy
limetorrents proxy
torrent vpn free