ARITMATHIC and Logic Unit
ALU,
singkatan dari Arithmetic And Logic Unit (bahasa
Indonesia: Unit Aritmatika dan Logika), adalah salah satu bagian
dalam dari sebuah mikroprosesor yang
berfungsi untuk melakukan operasi hitungan aritmatika dan logika.
Contoh operasi aritmatika adalah operasi penjumlahan dan pengurangan, sedangkan
contoh operasi logika adalah logika AND dan OR. tugas utama dari ALU (Arithmetic
And Logic Unit)adalah melakukan semua perhitungan aritmatika atau
matematika yang terjadi sesuai dengan instruksi program.
Arithmatic and Logic Unit (ALU), adalah
salah satu bagian/komponen dalam sistem
di dalam sistem komputer berfungsi melakukan operasi/perhitungan
aritmatika dan logika (seperti penjumlahan, pengurangan dan beberapa logika
lain), AlU bekerja besama-sama memori. Dimana hasil dari perhitungan di dalam
ALU di simpan ke dalam memori.
ALU melakukan operasi arithmatika dengan dasar pertambahan, sedang operasi
arithmatika yang lainnya, seperti pengurangan, perkalian, dan pembagian
dilakukan dengan dasar penjumlahan. sehingga sirkuit elektronik di ALU yang
digunakan untuk melaksanakan operasi arithmatika ini disebut adder. Tugas lalin dari ALU adalah melakukan keputusan dari
operasi logika sesuai dengan instruksi program. Operasi logika (Logical
Operation) meliputi perbandingan dua buah elemen logika dengan menggunakan
operator logika, yaitu:
- sama dengan (=)
- tidak sama dengan (<>)
- kurang dari (<)
- kurang atau sama dengan dari (<=)
- lebih besar dari (>)
- lebih besar atau sama dengan dari (>=)
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), dll.
Ide mengenai satu adder umum yang mampu menambahkan dua register
bersama-sama dan menyimpan hasilnya dalam register lainnya merupakan prinsip
yang mendasar pada ALU. Sehingga ALU didefinisikan sebagai sebuah unit yang
berisi sirkuit untuk menjalankan sekumpulan operasi mikro aritmatika dan
logika. Dua fungsi ALU ditunjukkan sebagai berikut :
Sumber : teknowacana.blogspot.com
Sejumlah n baris input dari A dan B
dihubungkan dengan blok fungsi f1 dan f2. Kemudian sejumlah n baris output pada
blok tersebut dihubungkan dengan sejumlah n multiplexer (MUX). Tergantung dari
operasi mikro tertentu yang harus dijalankan maka baris seleksi akan di-set
untuk memilih baris output fungsi yang semestinya untuk sejumlah n baris dari
R, yaitu hasil operasi ALU. Jumlah baris seleksi yang diperlukan tergantung
pada jumlah fungsi di dalam ALU, pada bagian ini ada dua input n-bit, yaitu A
dan B, dan sebuah output n-bit, yaitu R.
Fungsi Aritmatika pada sebuah ALU biasanya mencakup integer, floating-point
(real) dan desimal berkode biner. Disini operasi yang terjadi adalah
penambahan, pengurangan, perkalian dan pembagian.
Fungsi Logika pada ALU lebih sederhana. Untuk segala operasi logika yang
ingin diterapkan, maka hanya perlu memuat sejumlah n gerbang logika tertentu
untuk operasi tersebut (satu untuk setiap pasangan bit input).
Sumber : teknowacana.blogspot.com
Selain itu pula ALU dapat digunakan sebagai Pergeseran, dengan menerapkan
sirkuit geser kombinasional yang dikenal sebagai skalar posisi. Karena kita
ingin menjalankan pergeseran bersamaan dengan fungsi aritmatika atau logika,
seperti pada perkalian atau pengepakan string, maka akan lebih efisien untuk
men-set penggeser diluar ALU. Dengan cara ini dapat ditambahkan dua angka dan
menggeser seluruh hasil dalam satu langkah daripada meneruskan hasilnya ke
input ALU lagi dan kemudian mensetup ALU
untuk menggeser angka tersebut.
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.
Pada saat sekarang ini sebuah chip/IC dapat mempunyai beberapa ALU
sekaligus yang memungkinkan untuk melakukan kalkulasi secara paralel. Salah
satu chip ALU yang sederhana (terdiri dari 1 buah ALU) adalah IC
74LS382/HC382ALU (TTL). IC ini terdiri dari 20 kaki dan beroperasi dengan 4x2
pin data input (pinA dan pinB) dengan 4 pin keluaran (pinF).
3.1 Operasi Aritmatik
Dasar operasi
aritmatik adalah PENJUMLAHAN dan PENGURANGAN, sedangkan operasi
selanjutnya yang dikembangkan dari kedua operasi dasar tersebut adalah operasi PERKALIAN dan operasi PEMBAGIAN.
3.1.1 Penjumlahan Bilangan
3.1.1.1 Penjumlahan Bilangan Biner
Pada
penjumlahan berlaku aturan seperti di bawah ini ,
0 + 0
|
= 0
|
0 + 1
|
= 1
|
1 + 0
|
= 1
|
1 + 1
|
= 0 / + 1 sebagai carry
|
1 +
1 + 1
|
= 1 / + 1 sebagai carry
|
Sebagai cara penjumlahan bilangan
desimal yang Anda kenal sehari-hari, penjumlahan bilangan biner juga harus
selalu memperhatikan carry (sisa)
dari hasil penjumlahan pada tempat yang lebih rendah.
Contoh :
Dalam contoh diatas, telah
dilakukan penjumlahan 8 bit tanpa carry,
sehingga hasil penjumlahnya masih berupa 8 bit data. Untuk contoh berikutnya
akan dilakukan penjumlahan 8 bityang menghasilkan carry.
Contoh :
Hasil penjumlahan diatas menjadi
9 bit data, sehingga untuk 8 bit data, hasil penjumlahannya bukan merupakan
jumlah 8 bit data A dan B tetapi bit yang e-8 (dihitung mulai dari 0) atau yang
disebut carry juga harus
diperhatikan sebagai hasil penjumlahan.
3.1.1.2 Penjumlahan Bilangan Oktal
Proses
penjumlahan bilangan oktal sama seperti proses penjumlahan bilangan desimal.
Sisa akan timbul / terjadi jika jumlahnya telah melebihi 7 pada setiap tempat.
Contoh :
3.1.1.3 Penjumlahan Bilangan Heksadesimal
Dalam
penjumlahan bilangan heksadesimal, sisa akan terjadi jika jumlah dari setiap
tempat melebihi 15.
3.1.2 Pengurangan Bilangan
3.1.2.1 Pengurangan Bilangan Biner
Pada
pengurangan bilangan biner berlaku aturan seperti di bawah ini,
0 - 0
|
= 0
|
0 - 1
|
= 1 / -1 sebagai borrow
|
1 - 0
|
= 1
|
1 - 1
|
= 0
|
0 -
1 - 1
|
= 0 / - 1 sebagai borrow
|
1 -
1 - 1
|
= 1 / -1 sebagai borrow
|
Pada
pengurangan jika bilangan yang dikurangi lebih kecil dari pada bilangan
pengurangnya maka dilakukan peminjaman (borrow)
pada tempat yang lebih tinggi.
Contoh :
3.1.2.2 Pengurangan Bilangan Oktal
Pada
pengurangan jika bilangan yang dikurangi lebih kecil dari pada bilangan
pengurangnya maka dilakukan peminjaman (borrow)
pada tempat yang lebih tinggi (dengan nilai 8).
Contoh :
3.1.2.2 Pengurangan Bilangan Heksadesimal
Pada
pengurangan jika bilangan yang dikurangi lebih kecil dari pada bilangan
pengurangnya maka dilakukan peminjaman (borrow)
pada tempat yang lebih tinggi (dengan nilai 16).
Contoh :
3.1.3 Increment dan Decrement
Increment (bertambah) dan Decrement (berkurang) adalah dua
pengertian yang sering sekali digunakan dalam teknik miroprosessor. Dalam
matematik pengertian increment adalah
Bertambah Satu dan decrement artinya Berkurang Satu.
3.1.3.1 Increment Sistem
Bilangan
Seperti
penjelasan diatas bahwa increment
artinya bilangan sebelumnya ditambah dengan 1.
Contoh :
3.1.3.2 Decrement Sistem
Bilangan
Decrement diperoleh dengan cara
mengurangi bilangan sebelumnya dengan 1.