Jumat, 21 Februari 2020

Logika & Aritmatika Komputer

Key Points

•Dua prinsip utama untuk aritmatika komputer adalah cara di mana bilangan direpresentasikan (format biner) dan algoritma yang digunakan untuk operasi aritmatika dasar (menambah, mengurangi, mengalikan, membagi). Kedua pertimbangan ini berlaku baik untuk aritmatika integer dan floating-point.]

•Bilangan Floating-point dinyatakan sebagai bilangan (significand) yang dikalikan dengan sebuah konstanta (basis) dengan kenaikan beberapa pangkat bilangan bulat (eksponen). Floating point dapat digunakan untuk merepresentasikan jumlah yang sangat besar dan sangat kecil.

•Sebagian besar prosesor menerapkan standar IEEE 754 untuk representasi floating-point dan aritmatika floating-point. IEEE 754 mendefinisikan kedua 32-bit dan format 64-bit.

ALU(Arithmetic and Logic Unit)


•ALU merupakan bagian komputer yang berfungsi membentuk operasi-operasi aritmatika dan logik terhadap data

•Semua elemen lain sistem komputer (control unit, register, memori, I/O) berfungsi untuk membawa data ke ALU untuk selanjutnya di proses dan kemudian mengambil kembali hasilnya.

•Sebuah ALU dan semua komponen elektronik di komputer didasarkan pada penggunaan perangkat logika digital sederhana yang dapat menyimpan digit biner dan melakukan operasi logika Boolean sederhana.
•Gambar menunjukkan secara umum, bagaimana ALU saling berhubungan dengan seluruh prosesor. 
•Data diberikan ke ALU dalam register, dan hasil operasi disimpan dalam register-register.
•Register-register ini adalah lokasi penyimpanan sementara dalam prosesor yang dihubungkan oleh jalur sinyal ke ALU. 
•ALU juga dapat mengatur flag sebagai hasil dari operasi. Misalnya, flag overflow di set=1 jika hasil perhitungan yang melebihi panjang dari register. 
•Nilai-nilai flag juga disimpan dalam register dalam unit kontrol processor. 
•Control unit memberikan sinyal yang mengontrol pengoperasian ALU dan pergerakan data ke dalam dan keluar dari ALU.
•0 & 1 untuk merepresentasikan apapun.
•Bilangan-bilangan Positif disimpan dalam bentuk biner
–Contoh: 41=00101001

Representasi Nilai Tanda

•Ada beberapa cara alternatif yang digunakan untuk merepresentasikan bilangan bulat negatif maupun positif, yang melibatkan bit MSB (paling kiri) dalam word yang disebut sebagai bit tanda. 
•Jika bit tanda adalah 0, jumlah tersebut secara positif, jika tanda bit adalah 1, nomor tersebut adalah negatif.

Sign-Magnitude

•Bentuk yang paling sederhana representasi yang memakai bit tanda adalah representasi nilai tanda.
•Misal :
+18 = 00010010
-18 = 10010010
(sign magnitute/nilai tanda)
•Terdapat kekurangan pada cara diatas
•Masalah:
Perlu mempertimbangkan baik tanda dan besarnya dalam aritmatika
Dua representasi dari nol (+0 dan -0)

Twos Complement Representation

•Seperti sign magnitude, representasi berpasangan komplemen dua menggunakan bit MSB sebagai bit tanda, sehingga mudah untuk menguji apakah integer positif atau negatif.
•Ini memiliki cara yang berbeda dari penggunaan representasi sign-magnitude.
Contoh : 

Keuntungan

Satu representasi mengenai nilai 0
Operasi aritmatika lebih mudah
Menegasikan cukup mudah.
3 = 00000011
Boolean complement gives 11111100
Add 1 to LSB 11111101

Representasi fixed point


Semua representasi di atas dapat pula disebut dengan fixed point, karena radix pointnya (binary pointnya) tetap dan di asumsikan akan berada di sebelah kanan. 

Negation Special Case 1

•0 = 00000000
•Bitwise not 11111111
•Add 1 to LSB +1
•Result 100000000
•Overflow is ignored, so:
•- 0 = 0 Ö

Negation Special Case 2

•-128 = 10000000
•bitwise not 01111111
•Add 1 to LSB +1
•Result 10000000
•Jadi:  -(-128) = -128

Range of Numbers

•8 bit 2s compliment
q +127 = 01111111 = 27 -1
q -128 = 10000000 = -27 

•16 bit 2s compliment
q +32767 = 011111111 11111111 = 215 – 1
q -32768 = 100000000 00000000 = -215

Conversion Between Lengths

•Positive number pack with leading zeros
•Negative numbers pack with leading ones

+18 = 00010010

+18 = 00000000 00010010

-18 = 10010010

-18 = 11111111 10010010

Penjumlahan and Pengurangan

•Memantau bit tanda bit untuk overflow
Ambil komplemen dua untuk substahend dan tambahkan dengan minuend 

yaitu a - b = a + (-b)

•Jadi kita hanya perlu sirkuit penjumlahan dan komplemen.

Hardware untuk Penjumlahan dan Pengurangan




















•Gambar  menunjukkan jalur data dan elemen perangkat keras yang diperlukan untuk mencapai penambahan dan pengurangan.
•Unsur utama adalah penjumlah biner, untuk penjumlahan dan menghasilkan jumlah serta indikasi overflow.
•Penjumlah Biner memperlakukan dua angka sebagai unsigned integer.
•Selain itu, dua angka yang akan dijumlahkan diberikan dari dua register, (dalam hal ini register A dan B).
•Hasil mungkin disimpan dalam salah satu register ini atau dalam register ketiga.
•Overflow indikasi disimpan dalam overflow flag 1-bit (0 =NO OVERFLOW 1=OVERFLOW).
•Untuk pengurangan, pengurang (register B) dilewatkan melalui complementer sehingga komplemen dua yang diberikan kepada adder.
•Gambar hanya menampilkan jalur data.
•Sinyal kontrol yang diperlukan untuk mengontrol apakah ada atau tidak ada komplementer yang digunakan, tergantung pada apakah operasi adalah penambahan atau pengurangan.

Aritmatika Integer


Negasi

Untuk membuat negasi gunakan komplement dua (dianjurkan)
Penjumlahan negasi :
+7 = 0111
-7 = 1001
maka bila ada soal (-7) + (+5) = 1001
0101 +
1110
Hasil = 1110 adalah bilangan negatif maka positifnya adalah = komplement 2-kan bilangan tersebut : 0010 = +2 maka bilangan 1110 adalah negatif dari 2 atau (-2).
Aturan overflow = Bila dua buah bilangan di tambahkan, dan keduanya positif atau keduanya negatif maka over flow akan terjadi jika dan hanya jika hasilnya memiliki tanda yang berlawanan.

Penjumlahan

Overflow ATURAN: Jika dua nomor yang ditambahkan, dan mereka keduanya positif atau keduanya negatif, maka overflow terjadi jika dan hanya jika hasilnya memiliki tanda yang berlawanan.


Pengurangan

Pengurangan ATURAN: Untuk mengurangi satu nomor (pengurang) dari yang lain (minuend), mengambil komplemen twos (negasi) dari pengurang dan menambahkannya ke minuend tersebut.

Perkalian

•Kompleks
•Bekerja dengan partial product untuk setiap digit
•Perhatikan penempatan nilai di kolom.
•Jumlahkan partial products

Pembagian

•Pembagian biner dilakukan juga dengan cara yang sama dengan bilangan desimal.