Aritmatika Komputer ALU Representasi integer Aritmatika integer Representasi

  • Slides: 43
Download presentation
Aritmatika Komputer • ALU • Representasi integer • Aritmatika integer • Representasi foating point

Aritmatika Komputer • ALU • Representasi integer • Aritmatika integer • Representasi foating point • Aritmatika floating foint 1

Unit Logika dan Aritmatika (ALU) Aritmatika komputer 2

Unit Logika dan Aritmatika (ALU) Aritmatika komputer 2

3

3

Gambar B C Function 8 bit Adder 3 to 8 Decoder add inc en

Gambar B C Function 8 bit Adder 3 to 8 Decoder add inc en Sign 8 bit Logic or and en en Carry xor not en en en Zero detect Result Bus 4

Pengertian �Arithmatic Logical Unit (ALU), bagian/komponen di dalam sistem komputer yang berfungsi melakukan operasi/perhitungan

Pengertian �Arithmatic Logical Unit (ALU), bagian/komponen di 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 besama memori, di mana 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 (two’s complement). ALU mendapat data dari register. Data tersebut diproses dan hasilnya akan disimpan dalam register tersendiri yaitu ALU. 5

Operasi Pada ALU �Operasi aritmatika: operasi penjumlahan dan pengurangan, � operasi logika : logika

Operasi Pada ALU �Operasi aritmatika: operasi penjumlahan dan pengurangan, � operasi logika : logika AND dan OR. �ALU melakukan operasi aritmatika dengan dasar penjumlahan, operasi aritmatika yang lainnya, seperti pengurangan, perkalian, dan pembagian juga dilakukan dengan dasar yang sama. 6

Tugas dan Fungsi ALU �Tugas ALU : melakukan keputusan dari operasi logika sesuai dengan

Tugas dan Fungsi ALU �Tugas ALU : 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 (>=) 7

Tugas dan Fungsi ALU �Arithmatic Logical Unit (ALU) Juga Bertugas membentuk fungsi – fungsi

Tugas dan Fungsi ALU �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. 8

Cara Kerja ALU �ALU bekerja setelah mendapat perintah dari Control Unit yang terletak pada

Cara Kerja ALU �ALU bekerja setelah mendapat perintah dari Control Unit yang terletak pada processor. �Control Unit memberi perintah sesuai dengan komando yang tertulis(terdapat) pada register. �Jika isi register memberi perintah untuk melakukan proses penjumlahan, maka PC akan memerintahkan ALU untuk melakukan proses penjumlahan. Selain perintah, register pun berisikan operand. �Setelah proses ALU selesai, hasil yang terbentuk disimpan pada register yang berisi hasil atau suatu perintah lainnya. �ALU pun mengeluarkan suatu flag yang berfungsi untuk memberi tahu kepada kita tentang kondisi suatu processor seperti apakah processor mengalami overflow atau tidak. 9

Cara Kerja ALU �ALU (Arithmethic and Logic Unit) adalah bagian dari CPU yang bertanggung

Cara Kerja ALU �ALU (Arithmethic and Logic Unit) adalah bagian dari CPU yang bertanggung jawab dalam proses komputasi dan proses logika. 10

Representasi Integer Aritmatika komputer 11

Representasi Integer Aritmatika komputer 11

Pengertian �Secara matematis, dalam system bilangan biner digunakan tanda minus dan radix point, di

Pengertian �Secara matematis, dalam system bilangan biner digunakan tanda minus dan radix point, di dalam komputer hanya ada bilangan 0 & 1 untuk merepresentasikan semua angka. �Untuk menyerhanakan keperluan mengolah dan penyimpanan komputer, kita tidak perlu menggunakan tanda minus dan titik. �Kita hanya perlu menggunakan bilangan biner(0 & 1) untuk merepresentasikan semua jenis bilangan termasuk bilangan negatif dan positif 12

Representasi Integer Positif �Pada integer positif, konversi ke biner bisa dilakukan dengan cara biasa

Representasi Integer Positif �Pada integer positif, konversi ke biner bisa dilakukan dengan cara biasa tanpa ada permasalahan yang signifikan, tinggal disesuaikan dengan panjang bit register yang tersedia. �Misal data akan disimpan dalam register 8 bit : 0000 = 0 00000001 = 1 00101001 = 41 10000000 = 128 1111 = 255 13

Representasi Integer Negatif �Permasalahan timbul saat akan menyimpan bilangan negatif. �Komputer tidak mengenal tanda

Representasi Integer Negatif �Permasalahan timbul saat akan menyimpan bilangan negatif. �Komputer tidak mengenal tanda minus sehingga digunakan representasi Magnituda Tanda (Sign Magnitude) q Bit paling kiri (Most Significant Bit) menunjukkan magnitude integer (positif atau negative) q Contoh : +18 = 00010010 18 = 10010010 14

Aritmatika Integer Aritmatika komputer 15

Aritmatika Integer Aritmatika komputer 15

Negasi �Pada representasi sign magnitude, aturan pembentukan bilangan negatif (negasi) bilangan integer cukup sederhana;

Negasi �Pada representasi sign magnitude, aturan pembentukan bilangan negatif (negasi) bilangan integer cukup sederhana; membalikkan bit tanda. Pada notasi komplemen dua, negasi sebuah bilangan integer dapat dibentuk memakai aturan berikut : 1. Ambil komplemen Boolean setiap bit dari integer (termasuk tanda). Yaitu, menetapkan masing 1 menjadi 0 dan sebaliknya. nda, tanpa biner Perlakukan integer suatu hasilnya sebagai 2. tambahkan 1. � Proses dua langkah ini dikenal dengan operasi komplemen dua, atau pengambilan komplemen integer dua. 16

Negasi Contoh: dua) komplemen bitnya +18 = 11101101 = 00010010 (komplemen + 1110 1

Negasi Contoh: dua) komplemen bitnya +18 = 11101101 = 00010010 (komplemen + 1110 1 = 18 Bilangan negatif dari negatif bilangan itu sendiri : komplemen bitnya +18 = 0001 = 1110 (komplemen dua) + 1110 1 = 18 17

Diagram Blok Hardware untuk Penambahan dan Pengurangan Register B Register A Komplementer SW OF

Diagram Blok Hardware untuk Penambahan dan Pengurangan Register B Register A Komplementer SW OF Penambahan 18

Penjumlahan dan Pengurangan �Dengan kedua operasi ini terlihat jelas bahwa tidak perlu ada rangkain

Penjumlahan dan Pengurangan �Dengan kedua operasi ini terlihat jelas bahwa tidak perlu ada rangkain pengurangan, hanya ada komplemen dan penjumlahan. �Perlakuan sama untuk penjumlahan maupun pengurangan : langsung DIJUMLAHKAN karena 5 3 sama dengan 5 + ( 3) �Pajang bit bilangan yang dijumlahkan maupun hasilnya harus sama. 19

Penjumlahan dan Pengurangan Contoh : 3+4 5– 7 = 0011 + 0100 0111 =3

Penjumlahan dan Pengurangan Contoh : 3+4 5– 7 = 0011 + 0100 0111 =3 =4 =7 = 0101 + 1001 1110 =5 = 7 = 2 20

Overflow �Terkadang penjumlahan tidak menghasilkan panjang digit yang sama, bisa lebih, kelebihan itu dihilangkan

Overflow �Terkadang penjumlahan tidak menghasilkan panjang digit yang sama, bisa lebih, kelebihan itu dihilangkan saja. �Overflow terjadi jika register yang bersangkutan tidak mampu menampung bilangan yang dihasilkan. Misal 4 bit rangenya 8…. 7, tidak mampu menampung bilangan 11. �Overflow jika dan hanya jika : penjumlahan dilakukan terhadap dua bilangan bertanda sama, dan hasilnya bertanda berbeda. 21

Implementasi Hardware Perkalian Biner Unsigned Multiplicant Mn 1. …………………M 0 Penambahan n bit Ditambahkan

Implementasi Hardware Perkalian Biner Unsigned Multiplicant Mn 1. …………………M 0 Penambahan n bit Ditambahkan Logika kontrol geser dan penambahan Geser ke kanan C An 1 …………………A 0 Qn 1 …………………Q 0 22

Perkalian �Perkalian berdasarkan logika manusia tentunya sudah kita pahami semua dan sangat gampang tentunya.

Perkalian �Perkalian berdasarkan logika manusia tentunya sudah kita pahami semua dan sangat gampang tentunya. (Perkalian pada umumnya, contoh : 2 x 3 =6) �Namun computer tidak mempunyai tempat cukup untuk menyimpan partial product (hasil sementara) karena akan menghabiskan banyak tempat. Oleh karena itu digunakan metode shift 23

Perkalian Contoh : Perkalian 1011(11) x 1101(13)! C A Q M 0 0000 1101

Perkalian Contoh : Perkalian 1011(11) x 1101(13)! C A Q M 0 0000 1101 1011 0 1011 1101 1011 0 0101 1110 1011 0 0010 1111 1011 0 1101 1111 1011 0 0110 1111 1011 1 0001 1111 1011 0 1000 1111 1011 24

Pembagian �Pembagian sedikit lebih rumit dibandingkan dengan perkalian tetapi keduanya berdasarkan pada prinsip umum

Pembagian �Pembagian sedikit lebih rumit dibandingkan dengan perkalian tetapi keduanya berdasarkan pada prinsip umum yang sama. �Pertama, bit pemecahan diperiksa dari kiri ke kanan, sampai himpunan bit yang diperiksa merepresentasikan bilangan yang lebih besar atau sama dengan pembaginya; hal ini dikenal sebagai pembagi yang dapat membagi bilangan. �Setelah itu, bilangan 0 ditempatkan dalam hasil bagi dari kiri ke kanan. Setelah itu, bilangan 1 ditempatkan dalam hasil bagi dan pembagian dikurangkan dari pemecahan parsial. �Hasilnya dikenal sebagai sisa parsial. Dari sini, pembagian berupa pola siklus. Pada setiap siklus, bit tambahan dari pemecahan ditambahkan pada sisa parsial sampai hasilnya lebih besar atau sama dengan pembaginya. 25

Pembagian A Contoh : Pembagian 7 / 3 Q M = 0011 0000 0011

Pembagian A Contoh : Pembagian 7 / 3 Q M = 0011 0000 0011 Nilai awal 0000 1110 Geser 1101 Kurangkan 0000 1110 Simpan kembali 0001 1100 Geser 1110 Kurangkan 0001 1100 Simpan kembali 0011 1000 Geser 0000 Kurangkan 0000 1001 Set Q 0 = 1 0001 0010 Geser 1110 0001 Kurangkan 0010 Simpan kembali 26

Representasi Floating-Point Aritmatika komputer 27

Representasi Floating-Point Aritmatika komputer 27

Prinsip-prinsip �Dengan menggunakan notasi titik tetap (misalnya, komplemen dua) dimungkinkan untuk merepresentasikan cakupan integer

Prinsip-prinsip �Dengan menggunakan notasi titik tetap (misalnya, komplemen dua) dimungkinkan untuk merepresentasikan cakupan integer positif dan negatif yang berpusat pada 0. Dengan mengasumsikan titik biner tetap atau radiks, bentuk ini memungkinkan representasikan bilangan dengan komponen pecahan juga. �Pendekatan ini mempunyai keterbatasan. Bilangan bilangan yang sangat besar tidak dapat direpresentasikan, kemudian pula bilangan pecahan yang sangat kecil. Selain itu, bagian pecahan dari hasil bagi dalam pembagian dua bilangan besar dapat hilang. 28

�Untuk bilangan decimal, keterbatasan itu dapat diatasi dengan menggunakan notasi ilmiah. Jadi, 0. 0000000976

�Untuk bilangan decimal, keterbatasan itu dapat diatasi dengan menggunakan notasi ilmiah. Jadi, 0. 0000000976 direpresentasikan sebagai 9. 76 x 10 14 �Untuk menuliskan bilangan floating point (bilangan pecahan) dilakukan dengan menuliskan dalam bentuk exponensial. Sehingga bilangan tersebut memiliki bilangan dasar, bilangan pemangkat dan basis bilangan tersebut 29

Bentuk Floating Point 32 -bit yang umum Tanda Signifikan eksponen Signifikan 8 bits 30

Bentuk Floating Point 32 -bit yang umum Tanda Signifikan eksponen Signifikan 8 bits 30

Representasi Floating-Point ±S * B Dimana : • Tanda ±E : + atau –

Representasi Floating-Point ±S * B Dimana : • Tanda ±E : + atau – • Signifikan (S) disebut juga mantissa • Eksponen (E) • Base (B) 31

Representasi Floating-Point �Basis B adalah implisit dan tidak perlu disimpan sebab hal itu sama

Representasi Floating-Point �Basis B adalah implisit dan tidak perlu disimpan sebab hal itu sama untuk semua bilangan. Umumnya basis diasumsikan sehingga titik radix akan bergeser dari yang paling kiri ke kanan atau yang paling signifikan. Yaitu terdapat satu bit di sebelah kiri titik radix. �Penulisan bilangan floating point dengan cara exponensial dapat menyebabkan adanya kemungkinan sebuah bilangan ditulis dengan cara yang bermacam 300 = 0, 3*103 = 3*102 = 30*101 = 300 *100 = 3000 * 10 1 Demikian juga pada bilangan biner 11, 11 = 11, 11*20 =1, 111*21 = 0, 1111*22 32

33

33

Representasi Floating-Point �Standarisasi untuk penulisan bilangan �Normalisasi bentuknya adalah # ± 1, bbb…b x

Representasi Floating-Point �Standarisasi untuk penulisan bilangan �Normalisasi bentuknya adalah # ± 1, bbb…b x 2±E �Bit pertama significand selalu 1 sehingga tidak perlu disimpan (implisit) dalam field significand. Dan b adalah bilangan biner (1 atau 0). �Untuk keperluan yang luas, maka diadakan standar bagi representasi bilangan floating point ini, yaitu standard IEEE 754. Standar ini juga mendefinisikan operasi aritmetikanya 34

Representasi Floating-Point �Format dari standar IEEE 754 tahun 1985 Sign bit, Eksponen+bias, signifikan format

Representasi Floating-Point �Format dari standar IEEE 754 tahun 1985 Sign bit, Eksponen+bias, signifikan format floating point 32 bit : 0 1 8 9 31 Pada 64 bit: 1 || 11 bit | | 52 bit | 35

Aritmatika Floating-Point Aritmatika komputer 36

Aritmatika Floating-Point Aritmatika komputer 36

Pengantar �Untuk penambahan dan pengurangan, diperlukan jaminan untuk memastikan bahwa kedua operand mempunyai nilai

Pengantar �Untuk penambahan dan pengurangan, diperlukan jaminan untuk memastikan bahwa kedua operand mempunyai nilai eksponen yang sama. Hal ini memerlukan pergeseran titik radiks pada salah satu operand. Perkalian dan pembagian dapat dilakukan secara langsung. �Suatu operasi titik mengambang dapat menghasilkan salah satu kondisi berikut ini : • Overflow eksponen : Suatu eksponen positif yang melebihi nilai eksponen maksimum. Dalam beberapa system, hal ini dapat, ditandai dengan + dan . 37

 • Underflow eksponen : Suatu eksponen negatif kurang dari nilai eksponen mungkin yang

• Underflow eksponen : Suatu eksponen negatif kurang dari nilai eksponen mungkin yang minimum (mislanya 200 kurang dari 127). Hal ini berarti bahwa bilangan terlalu kecil untuk dapat direpresentasikan, dan bilangan ini dapat dilaporkan sebagai 0. • Underflow signifikan : Dalam proses penggabunfan signifikan, digit dapat mengalir ke ujung kanan dari signifikan. Seperti yang akan kita bahas, diperlukan bentuk pembulatan. • Overflow signifikan : Dalam proses penambahan dua signifikan yang bertanda sama dapat menghasilkan suatu pentelesaian bit yang paling signifikan. Hal ini dpar diperbaiki dengan melakukan penyusunan kembali. 38

Penambahan dan Pengurangan �Hal yang sulit dari penjumlahan dua bilangan exponent adalah jika bilangan

Penambahan dan Pengurangan �Hal yang sulit dari penjumlahan dua bilangan exponent adalah jika bilangan tersebut memiliki bentuk exponensial yang berbeda. Unutk memecahkannya, maka sebelum ditambahkan bilangan exponensialnya harus disetarakan terlebih dahulu, atau bilangan dengan nilai exponent lebih kecil disamakan dulu ke bilangan exponent yang sama dengan bilangan lain. �Langkah langkah yang dilakukan untuk menambah/mengurangkan dua bilangan floating point • Bandingkan kedua bilangan, dan ubah ke bentuk yang sesuai pada bilangan dengan nilai exponensial lebih kecil • Lakukan operasi penjumlahan / pengurangan • Lakukan normalisasi dengan ’menggeser’ nilai mantissa dan mengatur nilai exponensialnya 39

� Contoh : Jumlahkan dua bilangan floating point 1, 1100 * 24 dan 1,

� Contoh : Jumlahkan dua bilangan floating point 1, 1100 * 24 dan 1, 1000 * 22 1. Sesuaikan : 1, 1000 * 22 diubah menjadi 0, 0110 * 24 2. Jumlahkan : hasil penjumlahan 10, 0010 * 24 3. Normalisasi : hasil setelah dinormalisasi adalah 0, 1000 * 26( dianggap bit yang diijinkan setelah koma adalah 4) 40

Perkalian �Perkalian dari dua bilangan floating point dengan bentuk X = mx* 2 a

Perkalian �Perkalian dari dua bilangan floating point dengan bentuk X = mx* 2 a dan Y = mx*2 b setara dengan X * Y = (mx * my) * 2 a+b �Algoritma umum untuk perkalian dari bilangan floating point terdiri dari tiga langkah: • Hitung hasil exponensial dengan menjumlahkan nilai exponent dari kedua bilangan • Kalikan kedua bilangan mantissa • Normalisasi hasil akhir �Contoh : Perkalian antara dua bilangan floating point X = 1, 000 * 2 2 dan Y = 1, 010*2 1 1. Tambahkan bilangan exponennya : 2 + ( 1) = 3 2. Kalikan mantissa: 1, 0000 * 1, 010 = 1, 010000 3. Hasil perkaliannya adalah 1, 0100 * 2 3 41

Pembagian �Pembagian dari dua bilangan floating point dengan bentuk X = mx * 2

Pembagian �Pembagian dari dua bilangan floating point dengan bentuk X = mx * 2 a dan �Y = mx* 2 b setara dengan X / Y = (mx / my) * 2 a b �Algoritma umum untuk pembagian dari bilangan floating point terdiri dari tiga langkah : • Hitung hasil exponensial dengan mengurangkan nilai exponent dari kedua bilangan • Bagi kedua bilangan mantissa • Normalisasi hasil akhir �Contoh : Pembagian antara dua bilangan floating point X = 1, 0000 * 2 2 dan Y = 1, 0100 * 2 1 1. Kurangkan bilangan exponennya : 2 – ( 1) = 1 2. Bagi mantissa: 1, 0000 / 1, 0100 = 0, 1101 3. Hasil pembagiannya adalah 0, 1101 * 2 1 42

TERIMA KASIH 43

TERIMA KASIH 43