Computer Arithmetic
ALU (Aritmatic Logical Unit)
Biasanya disingkat dengan ALU. Arithmetic Logical
Unit merupakan unit penalaran secara logic. ALU ini adalah 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.
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
Integer Representation
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 untuk
merepresentasikan bilangan integer negatif dan juga bilangan positif integer.
Karena itu terdapat beberapa konvesi lainnya yang
dapat kita gunakan.
Konvesi-konvesi lainnya meliputi perlakuan terhadap
bit yang paling berarti (paling kiri) di dalam word bit tanda.
Apabila bit paling kiri sama dengan 0 suatu bilangan
adalah positif , sedangkan bila bit yang paling kiri sama dengan 1 bilangan
bernilai negatif.
Bentuk yang paling sederhana representasi yang
memakai bit tanda 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 terdapat dua representasi
bilangan 0:
+ 010 = 00000000
- 010 =
10000000 (sign-magnitude)
REPRESENTASI KOMPLEMEN DUA
Representasi komplemen dua ( two’s complement
representation) mengatasi dua buah
kekurangan yang terdapat pada representasi nilai- tanda.
Penambahan dan pengurangan nilai-tanda (sign-magnitude) tidak mencukupi
dan terdapat dua buah representasi bilangan nol.
Representasi komplemen dua menggunakan bit yang
paling berarti sebagai bit tanda
memudahkannya untuk mengetahui apakah sebuah integer bernilai positif
atau negatif.
Representasi ini berbeda dengan representasi
nilai-tanda dengan cara menginterpretasikan bit-bit lainnya.
Representasi komplemen dua akan lebih mudah
dimengerti dengan mendefinisikannya dalam bentuk jumlah bobot bit seperti telah kita lakukan diatas pada
representasi unsigned-magnitude dan sign-magnitude.
Bilangan nol akan diidentifikasikan sebagai
positif, memiliki tanda bit 0 dan nilai
keseluruhan 0.
Kita dapat melihat bahwa range integer positif yang
dapat direpresentasikan mulai 0 (seluruh magnitude bit-nya sama dengan 0)
hingga 2n-1-1 (seluruh magnitude bit-nya 1).
bilangan yang lebih besar akan memerlukan bit yang lebih banyak.
Sekarang
bilangan negatif A, bit tanda an-1, sama dengan 1. n-1 bit sisanya dapat
mengambil salah satu dari 2n-1 nilai.
Karena itu, range integer negatif yang dapat
direpresentasikan mulai –1 hingga -2n-1.
Hasilnya
assignment yang mudah bagi nilai
untuk membiarkan bit-bit an-1 an-2…a:a0 akan sama dengan bilangan
positif 2n-1 –A.
KONVERSI ANTARA PANJANG BIT YANG BERLAINAN
Kadang-kadang kita perlu mengambil sebuah integer n
bit dan menyimpannya di dalam m bit, dengan m > n.
Pada notasi sign-magnitude mudah dilaksanakan: cukup memindahkan bit
tanda ke posisi terkiri yang baru dan mengisinya dengan nol. Misalnya:
+18 = 00010010 (sign-magnitude, 8 bit)
+18 =
0000000000010010 (sign-magtitude, 16 bit)
-18 = 10010010 (sign-magnitude, 8 bit)
-18 =
1000000000010010
(sign-magtitude, 16 bit)
Prosedur di atas tidak berlaku bagi integer negatif
komplemen dua. Dengan memakai contoh yang sama:
+18 = 00010010 (komplemen dua, 8 bit)
+18 =
0000000000010010 (komplemen
dua, 16 bit)
-18 = 10010010 (komplemen dua, 8 bit)
-65.518 =
1000000000010010 (komplemen
dua, 16 bit)
Aturan integer komplemen dua adalah untuk
memindahkan bit tanda ke posisi terkiri yang baru dan mengisinya dengan
salinan-salinan bit tanda.
Bilangan positif diisi dengan 0 dan bilangan negatif isi dengan 1
-18 = 10010010 (komplemen dua, 8 bit)
-18 =
1111111100010010 (komplemen
dua, 16 bit)
Aritmetika Integer
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).
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
floating point representation
Dalam komputasi floating point menjelaskan metode
mewakili perkiraan dari sejumlah nyata dalam cara yang dapat mendukung berbagai
nilai . Jumlahnya , secara umum , mewakili sekitar untuk tetap jumlah digit
yang signifikan ( mantissa ) dan ditingkatkan menggunakan eksponen .
Dengan asumsi bahwa resolusi terbaik adalah di tahun
cahaya , hanya 9 desimal yang paling signifikan digit materi , sedangkan
sisanya 30 digit membawa suara murni , dan dengan demikian dapat dengan aman
dijatuhkan. Ini merupakan penghematan dari 100 bit penyimpanan data komputer .
Alih-alih dari 100 bit , jauh lebih sedikit digunakan untuk mewakili skala (
eksponen ) , misalnya 8 bit atau 2 digit desimal .
Istilah floating point mengacu pada fakta bahwa
nomor itu radix point ( titik desimal , atau , lebih umum pada komputer , titik
biner ) dapat “mengambang” , yang , dapat ditempatkan di manapun relatif
terhadap angka yang signifikan dari nomor tersebut. Posisi ini diindikasikan
sebagai komponen eksponen dalam representasi internal , dan floating point
sehingga dapat dianggap sebagai realisasi komputer notasi ilmiah .
Selama bertahun-tahun , berbagai representasi
floating-point telah digunakan dalam komputer . Namun, sejak tahun 1990 ,
representasi paling sering ditemui adalah bahwa didefinisikan oleh IEEE 754
standar . Dalam notasi ilmiah , jumlah
yang diberikan ditingkatkan oleh kekuatan 10 sehingga terletak dalam kisaran
tertentu – biasanya antara 1 dan 10 , dengan titik radix muncul segera setelah
angka pertama . The faktor skala , sebagai kekuatan sepuluh , kemudian
ditunjukkan secara terpisah pada akhir nomor . Misalnya, periode revolusi bulan
Jupiter Io adalah 152853.5047 detik , nilai yang akan diwakili dalam notasi
ilmiah standar – bentuk sebagai 1,528535047 × 105 detik .
Representasi floating-point mirip dalam konsep
notasi ilmiah . Logikanya , angka floating -point terdiri dari:
• Sebuah ditandatangani ( yang berarti positif atau
negatif ) string yang digit panjang diberikan dalam dasar yang diberikan ( atau
radix ) . String ini digit disebut sebagai significand , koefisien atau , lebih
jarang , mantissa ( lihat di bawah ) . Panjang significand menentukan presisi
yang nomor dapat diwakili. Radix Posisi titik diasumsikan untuk selalu berada di
suatu tempat dalam significand – sering hanya setelah atau sebelum yang paling
signifikan digit , atau di sebelah kanan paling kanan (paling signifikan )
digit . Artikel ini umumnya akan mengikuti konvensi bahwa titik radix hanya
setelah paling signifikan ( paling kiri ) digit .
• Sebuah integer ditandatangani eksponen , juga
disebut sebagai karakteristik atau skala , yang memodifikasi besarnya nomor .
Untuk memperoleh nilai dari angka floating-point ,
seseorang harus kalikan significand dengan dasar pangkat dari eksponen , setara
dengan menggeser radix poin dari posisi tersirat oleh sejumlah tempat sama
dengan nilai eksponen – ke kanan jika eksponen positif atau ke kiri jika
eksponen negatif.
Menggunakan basis- 10 ( notasi desimal akrab )
sebagai contoh , jumlah 152853,5047 , yang memiliki sepuluh angka desimal
presisi , diwakili sebagai significand 1,528535047 bersama dengan eksponen 5 (
jika posisi tersirat dari radix point setelah pertama yang paling signifikan
digit, di sini 1 ). Untuk menentukan nilai yang sebenarnya , titik desimal
ditempatkan setelah digit pertama significand dan hasilnya dikalikan dengan 105
untuk memberikan 1,528535047 × 105 , atau 152853,5047. Dalam menyimpan nomor
tersebut , dasar ( 10 ) tidak perlu disimpan , karena akan sama untuk seluruh
kisaran angka didukung , dan dengan demikian dapat disimpulkan .
Secara simbolis , ini adalah nilai akhirdimana adalah nilai significand ( setelah memperhitungkan tersirat
radix point) , B adalah dasar, dan E adalah eksponen.
ekuivalen : di mana s di sini berarti nilai integer
dari seluruh significand , mengabaikan semua titik desimal tersirat , dan p
adalah – presisi jumlah digit di significand tersebut .
Secara historis , beberapa pangkalan nomor telah
digunakan untuk mewakili angka floating -point , dengan basis 2 ( biner ) yang
paling umum, diikuti oleh basis 10 ( desimal ) , dan varietas yang kurang umum
lainnya , seperti basis 16 ( notasi heksadesimal ) , sebagai serta beberapa
yang eksotis seperti 3 (lihat Setun ) .
Angka floating-point adalah bilangan rasional karena
mereka dapat direpresentasikan sebagai salah satu bilangan bulat dibagi dengan
yang lain . Misalnya 1,45 × 103 adalah (145 /100) * 1000 atau 145000/100 .
Dasar namun menentukan pecahan yang dapat diwakili . Misalnya , 1/ 5 tidak
dapat diwakili tepat sebagai angka floating-point menggunakan basis biner
tetapi dapat diwakili tepat menggunakan basis desimal ( 0,2 , atau 2 × 10-1.
Namun 1/3 tidak dapat diwakili tepat oleh salah biner ( 0,010101 … ) atau
desimal ( 0,333 ./ ) , tetapi dalam basis 3 itu adalah sepele ( 0,1 atau 1 ×
3-1 ) .
Kesempatan di mana ekspansi terbatas terjadi
tergantung pada dasar dan faktor utama, seperti yang dijelaskan dalam artikel
tentang Notasi Positional, Cara di mana significand tersebut , eksponen dan
tanda bit secara internal disimpan di komputer sangat tergantung dari
implementasi .
Secara Umum format IEEE dijelaskan secara rinci
nanti dan di tempat lain , tetapi sebagai contoh , dalam representasi ( 32 -bit
) floating-point presisi tunggal biner p = 24 dan seterusnya significand adalah
string dari 24 bit . Misalnya , jumlah π pertama 33 bit adalah 11001001
00001111 11011010 10100010 0 . Mengingat bahwa bit -24 adalah nol , pembulatan
sampai 24 bit dalam mode biner berarti menghubungkan bit -24 dengan nilai 25
yang menghasilkan 11.001.001 00.001.111 11.011.011 . Ketika ini disimpan
menggunakan pengkodean IEEE 754 , ini menjadi significand dengan e = 1 (di mana
s diasumsikan memiliki titik biner di sebelah kanan bit pertama ) setelah kiri
penyesuaian ( atau normalisasi ) selama memimpin atau tertinggal nol terpotong
harus ada apapun
floating point arithmetic
dalam
komputasi, floating point adalah representasi dari perkiraan bilangan real
dengan cara yang dapat mendukung trade-off antara jangkauan dan presisi.
Sejumlah adalah, secara umum, mewakili sekitar untuk tetap jumlah digit yang
signifikan (significand) dan skala menggunakan eksponen; dasar untuk scaling
biasanya dua, sepuluh, atau enam belas. Sejumlah yang dapat diwakili tepat
adalah dalam bentuk berikut:
\text{significand} \times \text{base}^\text{exponent}
For example:
1.2345 = \underbrace{12345}_\text{significand}
\times
\,\underbrace{10}_\text{base}\!\!\!\!\!\!^{\overbrace{-4}^\text{exponent}}
Titik Istilah floating mengacu pada fakta bahwa
titik radix nomor ini (titik desimal, atau, komputer lebih sering pada, titik
biner) dapat "mengambang"; yaitu, dapat ditempatkan di manapun
relatif terhadap angka signifikan dari nomor tersebut. Posisi ini diindikasikan
sebagai komponen eksponen, dan dengan demikian representasi floating-point
dapat dianggap sebagai semacam notasi ilmiah.
Representasi floating-point tersebut mungkin dapat
mewakili nomor yang memiliki magnitude besar (misalnya, jarak antar galaksi
dalam hal kilometer), tetapi tidak untuk ketepatan nomor yang mempunyai besar
yang sangat kecil (misalnya, jarak pada skala Femtometer yang); sebaliknya,
representasi floating-point tersebut mungkin dapat mewakili besarnya sangat
kecil, tapi tidak secara bersamaan berkekuatan sangat besar. Hasil rentang
dinamis ini adalah bahwa angka-angka yang dapat diwakili tidak seragam spasi;
perbedaan antara dua angka representable berturut-turut tumbuh dengan skala
yang dipilih. [1]
Selama bertahun-tahun, berbagai floating-point
representasi telah digunakan dalam komputer. Namun, sejak tahun 1990-an, representasi
paling sering ditemui adalah bahwa didefinisikan oleh IEEE 754 standar.
Kecepatan operasi floating-point, biasanya diukur
dalam hal FLOPS, merupakan ciri penting dari sebuah sistem komputer, terutama
untuk aplikasi yang melibatkan intensif perhitungan matematis.
kesimpulan
Jadi
Arithmetic And Logic Unit adalah salah satu bagian dalam dari sebuah
mikroprosesor yang berfungsi untuk melakukan operasi hitungan aritmatika
danlogika . ALU bekerja sama dengan memori, dimana hasil dari perhitungan di
dalam ALU di simpan ke dalam memori. Perhitungan dalam ALU menggunakan kode
biner, yang merepresentasikan instruksi yang akan dieksekusi (opcode) dan data
yang diolah (operand). ALU biasanya menggunakan sistem bilangan biner biasa
disebut (two’s complement). ALU
mendapat data dari register. Kemudian data tersebut diproses dan hasilnya akan
disimpan dalam register tersendiri yaitu ALU. 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 utama dari ALU (Arithmetic And Logic Unit) adalah
melakukan semua perhitungan aritmatika atau matematika yang terjadi sesuai
dengan instruksi program.
sumber
http://nicodemuskurniawan.blogspot.com/2011/10/apa-itu-alu-arithmatic-and-logic-unit.html
http://en.wikipedia.org
http://mulianam292.wordpress.com/2013/10/31/integer-arithmetic-and-floating-poin-representation/
Tidak ada komentar:
Posting Komentar