ARITHMETIC LOGIC UNIT
ALU,
singkatan dari Arithmetic And
Logic Unit 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. 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 lain 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:
a. sama dengan (=)
b. tidak sama dengan (<>)
c. kurang dari (<)
d. kurang atau sama dengan dari
(<=)
e. lebih besar dari (>)
f. lebih besar atau sama dengan dari
(>=) (sumber: Buku Pengenalan Komputer, Hal 154-155, karangan
Prof.Dr.Jogiyanto H.M, M.B.A.,Akt.)
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.
INTEGER REPRESENTATION
·
Dalam sistem bilangan biner , semua bilangan dapat
direpresentasikan dengan hanya menggunakan bilangan 0 dan 1, tanda minus, dan
tanda titik.
·
|
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
Magnituda Tanda (Sign-magnitude)
Terdapat
beberapa konvensi alternatif yang digunakan untuk merepresentasikan bilangan
integer negatif seperti halnya bilangan integer positif, semua konpensi
tersebut meliputi perlakuan bityang paling signifikan (paling kiri) di dalam
word sebagai bit tanda. Jika bit tanda adalah 0, maka bilangan tersebut
positif; jika bit tanda adalah 1, maka bilangan tersebut adalah negatif.
Bentuk reprentasi yang paling sederhana
yang memakai bit tanda adalah adalah reprentasi magnituda tanda. pada suatu
word n-bit, bit n-1 paling kanan
menampung nilai integer.
+18= 00010010
-18= 10010010 (magnituda tanda)
Secara umum kasus tersebut
adalahdapatdiekspresikan sebagai berikut:
Terdapat beberapa kelemahan pada
representasi magntuda tanda. salah satunya adalah bahwa penambahan dan
pengurangan memerlukan pertimbangan baik tanda bilangan maupun nilai relatifnya
untuk menyelesaikan operasi yang diperlukan. Masalah ini adalah menjadi jelas
dalam pembahasan pada sub bab 9.3. kelemahan yang lain adalah bahwa terdapatdua
reprentasi bilangan 0.
+ 010 = 00000000
-
010 = 10000000 (magnituda tanda)
Hal
ini merepotkan, karena akan menyulitkan pemeriksaan bilangan 0 (suatu operasi
yang sering dilakukan pada komputer) dibandingkan jika menggunakan representasi
tunggal.
Karea kelemahan ini,
representasi magnituda tanda jarang digunakan di dalam implementasi bagian
bilangan integer ALU. Disamping itu, teknik yang paling umum adalah
representation komplemen dua.
Representasi
Komplemen Dua
Seperti
halnya magnituda tanda, representasi komplemen dua menggunakan bit yang paling
signifikan sebagai bit tanda, yang memudahkannya untuk mengetahui apakah suatu
integer bernilai positif atau negatif. Representasi ini berbeda dengan
penggunaan representasi magnitude tanda dalam cara dengan bit-bit lainnya
diinterpretasikan. Tabel 9.1 menekankan karakteristik penting representasi
komplemen dua dan aritmetika, yang dibahas dalam bagian ini dan yang
berikutnya.
Sebagian
besar perlakuan representasi komplemen dua menfokuskan pada aturan untuk
menghasilkan bilangan-bilangan negatif, dengan tidak ada bukti formal bahwa
teknik “bekerja“. Di samping itu, pembahasan kita tentang integer-integer
komplemen dua dalam bagian ini dan dalam Subbab 9.3 berdasarkan pada (DATT93),
yang menyatakan bahwa representasi
Range
|
-2n-1 sampai 2n-1
- 1
|
Jumlah representasi nol
|
Satu
|
Negasi
|
Ambil komplemen Boolean dari setiap bit yang bersesuaian dengan
bilangan positif, kemudian tambahkan 1 untuk menghasilkan pola bit yang
dilihat sebagai integer tanpa tanda.
|
Perluasan panjang bit
|
Tambahkan
posisi bit tambahan ke kiri da nisi dengan bit magnituda tanda asli.
|
Aturan overflow
|
Jika dua bilangan-bilangan dengan tanda yang sama (keduanya bilangan
positif atau keduanya bilangan negatif) ditambahkan, maka terjadi overflow
jika dan hanya jika hasilnya mempunyai tanda berkebalikan.
|
Aturan pengurangan
|
Untuk
mengurangi B dari A, ambil komplemen kedua dari B dan menambahkannya ke A.
|
Komplemen
dua adalah terbaik untuk dipahami oleh pendefenisiannya dalam kaitannya dengan
penjumlahan bit-bit berbobot, seperti ketika kita melakukan sebelumnya pada
representasi tanpa tanda dan magnitude tanda. Keuntungan perlakuan yang
demikian adalah bahwa representasi itu tidak meninggalkan keraguan apapun
dimana aturan operasi-operasi aritmatika di dalam dua notasi komplemen tidak
dapat bekerja untuk beberapa kasus khusus.
Perhatikan
suatu integer n-bit, A, dalam representasi komplemen dua. Jika A bilangan
positif, maka bit tanda, an-1, adalah nol. Bit-bit lainnya
merepresentasikan nilai bilangan dalam mode yang sama dengan magnitude tanda:
A= untuk A ≥ 0
Bilangan
nol akan didefenisikan sebagai bilangan positif dan sehingga mempunyai bit
tanda 0 dan nilai keseluruhan 0. Kita dapat melihat bahwa cakupan integer
positif yang dapat direpresentasikan mulai dari 0 (semua bit nilainya adalah 0)
hingga 2n-1 – 1 (semua bit nilainya adalah 1). Bilangan yang lebih
besar maupun akan memerlukan bit yang lebih banyak.
Sekarang,
untuk bilangan negatif A (Ad “0), bit tanda, an-1, adalah satu. n –
1 bit sisanya dapat mengambil salah satu dari nilai-nilai 2n-1. Oleh
karena itu, cakupan integer negative yang dapat direpresentasikan adalah mulai
dari 1 hingga- 2n-1. Kita bermaksud menugaskan nilai-nilai bit ke
integer negative sehingga aritmatika dapat ditangani di dalam mode secara
langsung, mirip dengan aritmatika integer tanpa tanda. Pada representasi
integer tanpa tanda, untuk menghitung nilai integer dari representasi bit,
bobot bit-bit yang paling signifikan adalah +2n-1. Untuk
representasi dengan bit tanda, representasi menghasilkan tercapainya aritmatika
yang diinginkan, seperti yang akan kita lihat pada sub bab 9.3, jika bobot bit
yang paling signifikan adalah -2n-1. Hal ini merupakan kontrovensi
yang digunakan dalam representasi komplemen dua, menghasilkan ekspresi berikut
untuk bilangan-bilangan negatif:
A= -2n-1 an-1 + (9.2)
Pada
kasus bilangan integer positif, an-1=0, maka suku -2n-1an-1=
0. Dengan demikian, Persamaan (9.2) mendefenisikan representasi komplemen dua
untuk bilangan positif dan negative.
Tabel
9.2 membandingkan magnitude tanda dan representasi komplemen dua integer 4-bit.
Walaupun dari sudut pandang manusia komplemenn dua merupakan representasi yang
canggung, kita akan lihat bahwa itu memudahkan operasi-operasi aritmatika yang
paling utama, penambahan dan pengurangan. Dengan alas an ini, representasi ini
sangat umum, representasi ini sangat umum digunakan sebagai representasi
prosessor untuk integer.
Suatu
ilustrasi yang bbermanfaat tentang sifat representasi komplemen dua adalah
kotak nilai, dimana nilainya terdapat jauh pada sisi kanan kotak adalah 1 (20)
dan setiap posisi berikutnya ke sebelah kiri merupakan nilai gandanya, sampai
posisi yang paling kiri, yang ditiadakan. Seperti yang anda lihat pada gambar
9.2a, bilangan komplemen dua yang paling negtif yang dapat direpresentasikan
adalah 2n-1, jika
terdapat sembarang bit selain bit tanda satu, maka bit iitu akan menambahkan
jumlah positive terhadap bilangan. Selain itu, jelas bahwa bilangan negative
harus mempunyai suatu bilangan 1 pada posisi yang paling kirinya dan bilangan
positive harus mempunyai suatu bilangan 0 pada posisi tersebut. Jadi bilangan
positif yang paling besar adalah suatu 0 diikuti oleh semua 1, yang sama dengan
2n-1 – 1.
Bagian lainnya pada gambar 9.2
mengilustrasikan penggunaan kotak nilai untuk mengkonversikan komplemen dua ke
bilangan decimal dan dari bilangan decimal menjadi komplemen dua.
INTEGER
ARITHMETIC
Bagian ini akan
membahas fungsi-fungsi aritmatik bilangan dalam representasi komplemen dua.
A. Negasi
Pada notasi
komplemen dua, pengurangan sebuah bilangan integer dapat dibentuk dengan
mengunakan aturan berikut:
Anggaplah komplemen
boolean seluruh bit bilangan integer (termasuk bittanda). Perlakukan hasilnya
sebagai sebuah unsigned binary integer, tambahkan1. misalnya:18=00010010
(komplemen dua).
b. 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 positif dan
negatif yang tidak sama.
Pada kasus
komplemen dua,terdapat representasi bilangan n-bit untuk -2n,tapi tidak
terdapat untuk 2n
REPRESENTASI
FLOATING-POINT
- Menyatakan suatu
bilangan yang sangat besar/sangat kecil dengan menggeser titik desimal secara
dinamis ke tempat yang sesuai dan menggunakan eksponen 10 untuk menjaga titik
desimal itu.
- Sehingga range
bilangan yang sangat besar dan sangat kecil untuk direpresentasikan hanya
dengan beberapa digit saja.
- Dinyatakan dengan
notasi ? a = (m,e) , dimana :
a= m x re r =
radiks
m = mantissa
e = eksponen
Contoh : Tunjukkan
bilangan-bilangan berikut ini dalam notasi floating point.
a. (45.382)10?
0.45382 x 102 = (0.45382,2)
b. (-21,35)8 ?
-2135,0 x 8-2 = (-2135.0,-2)
ARITMATIKA
FLOATING POINT
- Penambahan
0,63524 x 103
0,63215 x 103 +
1,26739 x 103 ?
0,126739 x 104
- Pengurangan
0,63524 x 103
0,63215 x 103 ?
0,00309 x 103?
0,309 x 101
- 0,10100 x 22 ?
0,01010 x 23
0,11000 x 23 ?
0,11000 x 23 +
1,00010 x 23 ?
0,10001 x 24
- Perkalian
(0,253 x 102) x
(0,124 x 103) = (0,253) x (0,124) x 102+3
= 0,031 x 105 ?
0,31 x 104
normalize
- Pembagian 0,253 x
102 = 0,253 x 102-3
0,124 x 103 0,124
= 2,040 x 10-1 ?
0,204 x 100
overflow
• REPRESENTASI
FIXED POINT
Radiks point/binary
point tetap dan diasumsikan akan berada di sebelah kanan dari digit yang paling
kanan.
1. Representasi
Sign-Magnitude/Nilai tanda
Untuk
merepresentasikan bilangan integer negatif dan positif. Dengan menggunakan MSB
sebagai bit tanda ?0 = positif, 1 = negatif
Contoh :
Sign-Magnitude +9
dalam 8 bit = 00001001
Sign-Magnitude –4
dalam 4 bit = 1100
Magnitude dari
bilangan positif dan negatif sama hanya beda pada sign digitnya/MSB.
2. Representasi
Komplemen-1
Untuk mendapat
komplemen-1 maka bilangan nol diubah menjadi satu dan satu menjadi nol.
3. Representasi
Komplemen-2
Langkah-langkah :
Pengubahan bilangan desimal bertanda ke bilangan komplemen-2 (8-bit)
• Tentukan bit
tanda/MSB ? 0 = positif, 1 = neg.
• Ubah desimal ke
biner (7-bit)
• Ubah ke kompl-1
(setiap 0 diubah ke 1 dan setiap
1 diubah ke 0)
• Ubah ke kompl-2
(tambahkan +1 ke kompl-1
untuk mendapat bil.
kompl-2)
• Gabung menjadi
satu yaitu MSB sebagai tanda
bit dan 7-bit
sebagai besarannya.
Langkah-langkah :
Pengubahan bil. kompl-2 (8-bit) ke bil. des. bertanda
• Tentukan bit
tanda/MSB
• Ubah 7-bit
kompl-2 tersebut ke kompl-1
• Ditambah +1 ke
kompl-1
• Ubah biner ke
desimal
ARITMATIKA FIXED
POINT
Penambahan positif,
negatif, dan secara kebalikan bil-bil. biner yang diberi tanda yang
direpresentasikan dalam komplemen-2.
001110 (+14) 110010
(-14)
+ 001100 (+12) end
carry + 110100 (-12)
011010 (+26) 1
100110 (-26
(Sistem Bilangan |
Syailendra's Blog)
CPU merupakan pusat
kendali sistem komputer yang berfungsi sebagai:
• Memberikan
pengalamatan data dan program
• Memasukkan dan
mengambil data
• Memproses data
secara aritmatik dan logikal
• Melaksanakan
instruksi-instruksi secara berturut-turut.
Beberapa
bagian-bagian dari CPU adalah sebagai berikut:
Arithmetic and
Logical Unit (ALU)
ALU melaksanakan
seluruh perhitungan (penambahan, pengurangan, perkalian atau pembagian) dan
operasi logika. ALU
berfungsi melakukan operasi aritmatik dan logik yang terbagi menjadi empat
kelas,
yaitu decimal
arithmetic, fixed point arithmetic, floating point aritmetic dab logic
operation.
Decimal Arithmetic
digunakan untuk operasi bilangan desimal dengan menggunakan tanda plus (+)
atau negatif (-).
Fixed Point Arithmetic adalah operasi arithmetic dari data binary untuk
menyatakan
address dari
penyimpanan. Floating Point Arithmetic untuk operasi matematika. Logic
Operation
dapat berupa
operasi-operasi perbandingan, testing, transalting, editing dan moving logic
data.
Control Unit (CU)
CU merupakan bagian
CPU yang berfungsi untuk:
• Membaca dan
mengintepresikan instruksi-instruksi program
• Melangsungkan
operasi komponen-komponen prosesor internal
• Mengendalikan
aliran program dan data ke dalam dan ke luar RAM.
(perangkat keras
multimedia « rahmatblog)
- 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.
REFERENSI:
0 komentar:
Speak up your mind
Tell us what you're thinking... !