Pengertian ALU, Integer Representation, Integer Arithmetic
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 bersama-sama
memori, di mana hasil dari perhitungan di dalamALU 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 dikenal 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.
·
STRUKTUR DAN CARA KERJA PADA ALU
ALU
akan bekerja setelah mendapat perintah dari Control Unit yang terletak pada
processor. Contorl 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
suatuperintah lainnya. Selain register, ALU pun mengeluarkan suatu flag yang
berfungsi untuk memberi tahu kepada kita tentang kondisi suatu processor
seperti apakah processor mengalami overflow 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 Integer Bilangan integer
(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 dicari negatifnya.
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:
1.
bilangan bulat
2.
karakter
3.
floating point nilai
Representasi Integer
Ada representasi biner yang berbeda
untuk bilangan bulat. Kemungkinan kualitas:
1.
bilangan positif hanya
2.
bilangan positif dan negatif
3.
kemudahan pembacaan manusia
4.
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.
1.
* Unsigned *
2.
tanda besarnya
3.
melengkapi satu
4.
* Melengkapi dua itu *
5.
bias (tidak dikenal)
6.
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?
1.
perangkat keras untuk melakukan
operasi yang paling umum adalah lebih cepat (operasi yang paling umum adalah
tambahan)
2.
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."
aritmatika bilangan bulat
semua tentang aritmatika
integer.
-------------------------------------
operasi kita akan mengenal
(dan cinta):
tambahan
pengurangan
perkalian
divisi
operasi
logis (tidak, dan, atau, nand, atau, xor, xnor)
perubahan
aturan untuk melakukan operasi
aritmatika berbeda-beda
apa representasi tersirat.
SEDIKIT TENTANG PENAMBAHAN
----------------------
gambaran.
membawa
dalam ab | sum melaksanakan
---------------
+ ----------------
0
0 0 | 0 0
0
0 1 | 1 0
0
1 0 | 1 0
0
1 1 | 0 1
1
0 0 | 1 0
1
0 1 | 0 1
1
1 0 | 0 1
1
1 1 | 1 1
|
a
0011
+
B 0001
-
-----
sum
0100
benar-benar seperti
yang kita lakukan untuk desimal!
0 + 0
= 0
1 + 0
= 1
1 + 1
= 2 yaitu 10 dalam biner, sum adalah 0 dan membawa 1.
1 + 1
+ 1 = 3 sum adalah 1, dan membawa 1.
PENAMBAHAN
--------
unsigned:
seperti penambahan
sederhana yang diberikan.
contoh:
100001
00001010 (10)
011.101
00.001.110 (14)
-------
---------
111110
00011000 (24)
abaikan (membuang)
melaksanakan dari MSB tersebut.
Mengapa? Karena
komputer SELALU bekerja dengan presisi tetap.
menandatangani besarnya:
aturan:
-
Menambahkan besaran saja (tidak membawa ke dalam bit tanda)
-
Membuang apapun membawa keluar dari MSB dari besarnya
(Karena,
sekali lagi, kendala presisi tetap.)
-
Menambahkan hanya bilangan bulat seperti tanda (+ ke + atau - untuk -)
-
Tanda hasil yang sama dengan tanda addends
contoh:
0 0101
(5) 1 1010 (-10)
+ 0 0011 (3) + 1
0011 (-3)
---------
---------
0 1000
(8) 1 1101 (-13)
0
01011 (11)
+ 1 01110 (-14)
----------------
tidak
menambahkan! harus melakukan pengurangan!
melengkapi seseorang:
dengan
contoh
00111
(7) 111110 (-1) 11.110 (-1)
+ 00.101 (5) +
000.010 (2) + 11100 (-3)
-----------
------------ ------------
01.100
(12) 1 000000 (0) salah! 1 11010 (-5) salah!
+
1 + 1
----------
----------
000.001
(1) benar! 11.011 (-4) benar!
sehingga
tampaknya bahwa jika ada yang membawa keluar (dari 1) dari MSB, kemudian
hasilnya
akan dimatikan oleh 1, sehingga menambah 1 lagi untuk mendapatkan yang benar
Hasil. (Implementasi
di HW disebut "berakhir sekitar carrry.")
melengkapi dua itu:
aturan:
-
Hanya menambahkan semua bit
-
Membuang apapun membawa dari MSB yang
-
(Sama seperti untuk unsigned!)
contoh
00011
(3) 101000 111111 (-1)
+ 11100 (-4) +
010.000 + 001.000 (8)
------------
-------- --------
11111
(-1) 111.000 1 000.111 (7)
setelah melihat contoh untuk
semua representasi ini, Anda mungkin melihat
mengapa 2 ini selain
melengkapi membutuhkan hardware lebih sederhana dari
tanda mag. atau
penambahan pelengkap seseorang.
Pengurangan
-----------
aturan umum:
1-1 =
0
0-0 =
0
1 - 0
= 1
10-1 = 1
0 - 1
= meminjam!
unsigned:
- Itu hanya masuk
akal untuk mengurangi jumlah yang lebih kecil dari satu lebih besar
contoh
1011
(11) harus meminjam
- 0111 (7)
------------
0100
(4)
menandatangani besarnya:
- Jika tanda-tanda
yang sama, kemudian melakukan pengurangan
- Jika tanda-tanda
yang berbeda, kemudian mengubah masalah untuk penambahan
- Bandingkan
besaran, kemudian kurangi lebih kecil dari yang lebih besar
- Jika order
diaktifkan, kemudian beralih tanda juga.
- Ketika bilangan
bulat adalah tanda yang berlawanan, kemudian melakukan
a
- b menjadi + (-b)
a
+ b menjadi - (-b)
contoh
0 00111 (7)
1 11000 (-24)
- 0 11000 (24) - 1 00010
(-2)
--------------
--------------
1
10110 (-22)
melakukan 0 11000 (24)
- 0 00111 (7)
--------------
1 10001
(-17)
(Saklar
tanda sejak urutan pengurangan terbalik)
melengkapi seseorang:
mencari
tahu sendiri
melengkapi dua itu:
- Mengubah masalah
penambahan!
a
- b menjadi + (-b)
- Jadi, dapatkan
terbalik aditif b, dan melakukan penambahan.
contoh
10110 (-10)
- 00011 (3) -> 00011
------------ |
\
| /
11100
+
1
-------
11.101
(-3)
begitu juga
10110
(-10)
+ 11.101
(-3)
------------
1 10011 (-13)
(Membuang
melaksanakan)
DETEKSI overflow TAMBAHAN
unsigned - ketika
ada membawa keluar dari MSB yang
1000
(8)
1001
(9)
-----
1
0001 (1)
menandatangani
besarnya - ketika ada membawa keluar dari MSB dari besarnya
1
1000 (-8)
+
1 1001 (-9)
-----
1
0001 (-1) (melaksanakan dari MSB besarnya)
2 ini melengkapi -
ketika tanda-tanda addends adalah sama, dan
tanda
hasilnya berbeda
0011
(3)
+
0110 (6)
----------
1001
(-7) (perhatikan bahwa jawaban yang benar akan menjadi 9, tapi
9
tidak dapat diwakili dalam melengkapi 4 bit 2 an)
detail - Anda
tidak akan pernah mendapatkan meluap saat menambahkan 2 nomor dari
tanda-tanda
yang berlawanan
DETEKSI MELIMPAH DI
pengurangan
unsigned -
pernah
tanda
besarnya - tidak pernah terjadi ketika melakukan pengurangan
Komplemen 2
ini - kami tidak pernah melakukan pengurangan, jadi gunakan aturan tambahan
di
samping operasi dilakukan.
PERKALIAN bilangan bulat
0
x 0 = 0
0
x 1 = 0
1
x 0 = 0
1
x 1 = 1
-
Tulisan tangan, tampak seperti desimal
-
Hasilnya dapat meminta 2x banyak bit sebagai multiplicand besar
-
Untuk melengkapi 2, untuk selalu mendapatkan jawaban yang benar tanpa
berpikir
tentang masalah ini, tanda memperpanjang kedua multiplicands ke
2x
banyak bit (sebagai besar). Kemudian mengambil nomor yang benar
dari
hasil bit dari bagian paling signifikan hasilnya.
2
komplemen contoh:
1111
1111 -1
x
1111 1001 x -7
----------------
------
11111111
7
00000000
00000000
11111111
11111111
11111111
11111111
+ 11111111
----------------
1
00000000111
--------
(Jawaban yang benar digarisbawahi)
0011
(3) 0000 0011 (3)
x
1011 (-5) x 1.111 1011 (-5)
------
-----------
0011
00000011
0011
00000011
0000
00000000
+ 0011
00000011
---------
00000011
0100001
00000011
tidak -15 dalam
00000011
representasi! +
00000011
------------------
1011110001
mengambil
paling signifikan 8 bit 11110001 = -15
DIVISI bilangan bulat
unsigned
saja!
contoh
15/3 1111/011
Untuk
melakukan tulisan tangan ini, menggunakan algoritma yang sama seperti untuk
bilangan bulat desimal.
OPERASI LOGIS
dilakukan
bitwise
X
= 0011
Y
= 1.010
X
DAN Y adalah 0010
X
OR Y adalah 1011
X
NOR Y adalah 0100
X
XOR Y adalah 1001
dan
lain-lain
OPERASI SHIFT
cara memindahkan
bit sekitar dalam kata
3 jenis: logis,
aritmatika dan rotate
(Masing-masing
jenis dapat pergi kiri atau kanan)
kiri logis -
memindahkan bit ke kiri, urutan yang sama
-
Membuang bit yang muncul dari MSB yang
-
Memperkenalkan 0 ke LSB
00110101
01101010
(logis kiri bergeser 1 bit)
hak logis -
memindahkan bit ke kanan, urutan yang sama
-
Membuang bit yang muncul dari LSB
-
Memperkenalkan 0 ke MSB yang
00110101
00011010
(logis kanan bergeser 1 bit)
aritmatika kiri -
bergerak bit ke kiri, urutan yang sama
-
Membuang bit yang muncul dari MSB yang
-
Memperkenalkan 0 ke LSB
-
SAMA SHIFT KIRI SEBAGAI LOGIS!
hak aritmatika -
memindahkan bit ke kanan, urutan yang sama
-
Membuang bit yang muncul dari LSB
-
Mereproduksi MSB asli ke MSB baru
-
Cara lain untuk berpikir tentang hal ini: menggeser
bit,
dan kemudian melakukan sign ekstensi
00110101
-> 00011010 (deret hitung kanan bergeser 1 bit)
1100
-> 1110 (deret hitung kanan bergeser 1 bit)
memutar kiri -
memindahkan bit ke kiri, urutan yang sama
-
Menempatkan bit yang muncul dari MSB ke LSB,
sehingga
tidak ada bit yang dibuang atau hilang.
00110101
-> 01101010 (diputar ditinggalkan oleh 1
tempat)
1100
-> 1001 (diputar ditinggalkan oleh 1 tempat)
memutar kanan -
memindahkan bit ke kanan, urutan yang sama
-
Menempatkan bit yang muncul dari LSB ke MSB tersebut,
sehingga
tidak ada bit yang dibuang atau hilang.
00110101
-> 10011010 (diputar benar dengan 1
tempat)
1100
-> 0110 (diputar benar dengan 1 tempat)
PETUNJUK UNTUK OPERASI SASM
LOGIS DAN SHIFT
SASM
memiliki instruksi yang melakukan bitwise operasi logis dan
pergeseran
operasi.
lnot
xx <- TIDAK (x)
tanah
x, yx <- (x) DAN (y)
lor
x, yx <- (x) ATAU (y)
lxor
x, yx <- (x) XOR (y)
llsh
xx <- (x), logis kiri digeser oleh 1 bit
rlsh
xx <- (x), secara logis benar digeser oleh 1 bit
ruam
xx <- (x), deret hitung kanan digeser oleh 1 bit
rror
xx <- (x), diputar tepat oleh 1 bit
Referensi
:
http://aninditanovaya.blogspot.co.id/2014/11/pengertian-alu-integer-representation.html
Tidak ada komentar:
Posting Komentar