Chapter 8 Ind

43
1 William Stallings Computer Organization and Architecture Chapter 8 Aritmatika Komputer

description

Penjelasan ALU

Transcript of Chapter 8 Ind

  • *William Stallings Computer Organization and ArchitectureChapter 8Aritmatika Komputer

  • *Arithmetic & Logic UnitMelakukan kalkulasi Semua komponen lain dalam komputer berfungsi untuk mendukung tugas ALUMenangani registerDapat melakukan kalkulasi bilangan floating point (real)Bisa memiliki FPU (prosesor bantuan) yang terpisah atau on chip FPU (486DX +)

  • *ALU Inputs and Outputs

  • *Representasi IntegerHanya terdapat 0 & 1 untuk representasi keseluruhanBilangan positive disimpan dlm format binere.g. 41=00101001Tidak ada tanda minusTidak ada komaSign-MagnitudeKomplemen-2

  • *Sign-MagnitudeBit paling kiri adalah bit untuk tanda (sign)0 berarti positif1 berarti negatif+18 = 00010010 -18 = 10010010KendalaHarus memikirkan untuk kedua tanda dan magnitude pada aritmatikaDua representasi untuk bilangan nol (+0 and -0)

  • *Komplemen-2+3 = 00000011+2 = 00000010+1 = 00000001+0 = 00000000 -1 = 11111111 -2 = 11111110 -3 = 11111101

  • *KeuntunganRepresentasi tunggal untuk bilangan nolAritmatika mudah dilakukanMenghitung negasi juga lebih mudah3 = 00000011Komplemen Boolean menghasilkan 11111100Tambahkan 1 ke LSB 11111101

  • *Kisaran Bilangan8 bit komplemen-2+127 = 01111111 = 27 -1 -128 = 10000000 = -2716 bit komplemen-2+32767 = 011111111 11111111 = 215 - 1 -32768 = 100000000 00000000 = -215

  • *Konversi antar Panjang BilanganBilangan positif dirangkai dengan 0+18 = 00010010+18 = 00000000 00010010Bilangan negatif dirangkai dengan 1-18 = 10010010-18 = 11111111 10010010Dengan kata lain, dirangkai dengan MSB-nya (bit tanda)

  • *Penjumlahan dan PenguranganPenjumlahan biner biasaBit tanda diperhatikan jika overflowBilangan pengurang dalam bentuk komplemen-2, ditambahkan ke bilangan yang dikurangiContoh: a - b = a + (-b)

    Jadi yang diperlukan hanya sirkuit penjumlah (adder) dan sirkuit komplemen

  • *Hardware untuk Penjumlahan dan Pengurangan

  • *Bilangan RealBilangan dengan pecahanDapat dilakukan dengan biner murni1001.1010 = 24 + 20 +2-1 + 2-3 =9.625Dimana koma binernya?Apakah tetap atau bergerak?

  • *Floating Point

    +/- .significand x 2exponentPosisi koma tetap di antara bit tanda dan angka di belakang koma (mantissa)Eksponen menunjukkan tempat nilai (posisi koma)Sign bitBiasedExponentSignificand or Mantissa

  • *Contoh Floating Point

  • *Karakteristik Floating PointMantissa disimpan dalam komplemen-2Eksponen dalam notasi excess atau bias (perkiraan)e.g. Excess (bias) 128 berarti8 bit eksponenKisaran nilai murni antara 0-255Kurangi 128 untuk mendapatkan nilai yang tepatRentang antara -128 dan +127

  • *NormalisasiBilangan FP biasanya ternormalisasiArtinya eksponen disesuaikan sehingga bit yang paling berarti dari (MSB) mantissanya adalah 1Karena selalu bernilai 1 maka tidak perlu disimpanSeperti pada notasi ilmiah dimana bilangan dinormalisasi agar terdapat satu digit di depan komacontoh 3.123 x 103

  • *Kisaran FPUntuk bilangan 32 bit8 bit eksponen+/- 2256 1.5 x 1077KetepatanDipengaruhi perubahan lsb dari mantisa23 bit mantissa 2-23 1.2 x 10-7Sekitar 6 angka di belakang koma

  • Koreksi Error*Mekanisme pendeteksian kesalahanData word (D) + bit cek paritas (C)Panjang data yang disimpan = D + CData tsb dianalisaMekanisme perbaikan kesalahanDengan kode HammingDiciptakan oleh Richard Hamming pada tahun 1950

  • Koreksi Kode Hamming (4 bit)*Word data (D) = 4 bit (a)Tiap lingkaran di set bit logika 1 berjumlah genapBit paritas ditembah pada ruang kosong sehingga terlihat pada gambar (b)Dengan parity check, error pada (c) akan langsung terlihat karena memiliki bit logika 1 berjumlah ganjil

  • *Koreksi Kode Hamming (8 bit)Gambar di sebelah kiri adalah penggambaran konfigurasi bit untuk penghitungan kode HammingBit cek paritas ditentukan dengan 2n (n=0,1,2,) yaitu C1, C2, C4, C8, dstRumus cek paritas dpt dilihat di atas (dengan eksklusif-or)

  • Koreksi Kode Hamming*Data asli adalah word data (D), D1 dihitung dari bit paling kananHitung nilai C1, C2, C4 dan C8 dari DHitung nilai C1, C2, C4 dan C8 dari data baruBandingkan nilainya, operasikan dengan XORHasilnya menunjukkan posisi bit yang error

  • Koreksi Kode Hamming (contoh)*Contoh data D = 00111001D1 = 1, D2 = 0, D3 = 0, , D8 = 0Hitung nilai C1, C2, C4, C8:

  • Koreksi Kode Hamming (contoh)*Contoh data yang akan dicek 00111101D1 = 1, D2 = 0, D3 = 1, , D8 = 0Hitung nilai C1, C2, C4, C8:

  • Koreksi Kode Hamming (contoh lanj.)*Bandingkan kedua bit-bit paritasC1, C2, C4, C8 dari data lama (D) = 1110C1, C2, C4, C8 dari data yang dikoreksi= 1000Hitung keduanya dengan XOR!

    Hasilnya bit error ada pada posisi ke-6 00111101

  • *Required ReadingStallings Chapter 8IEEE 754 on IEEE Web site

  • *PerkalianKompleksMengerjakan perkalian parsial untuk tiap digitDitangani dengan place value (kolom)Menambahkan perkalian parsial

  • *Contoh Perkalian 1011 Yang dikalikan (11 desimal) 1101 Pengali (13 desimal) 1011 Hasil kali parsial 0000 Note: jika bit pengali 1, maka salin 1011 bil. yang dikalikan (place value) 1011 jika tidak, maka 0 10001111 Hasil kali (143 desimal) Catatan: butuh hasil dengan panjang dua kali lipat bilangan yang dikalikan

  • *Perkalian Biner tanpa tanda

  • *Contoh Eksekusi

  • *Flowchart Perkalian Biner tanpa tanda

  • *Mengalikan Bilangan NegatifTidak dapat dilakukan!Solusi 1Konversi ke positif jika diperlukanDikalikan seperti contoh semulaJika tanda berlawanan, jawaban dinegasiSolusi 2Algoritma Booth

  • *Algoritma Booth

  • *Contoh Algoritma Booth

  • *PembagianLebih rumit dari perkalianBilangan negatif akan mempersulit!Berdasarkan pembagian panjang

  • *001111Pembagian Integer Biner tanpa tanda10110000110110010011101100111010111011100QuotientDividendRemainderPartialRemaindersDivisor

  • *startA = 0M = DivisorQ = DividendCount = nAlgoritma PembagianShift Left A,QA = A - M

    A

  • *Contoh Pembagian

    AQM = 001100000111Initial value00001110Shift1101Subtract00001110Restore00011100Shift1110Subtract00011100Restore00111000Shift0000Subtract00001001Set Q0 = 100010010Shift1110Subtract00010010Restore

  • *Expressible Numbers

  • *IEEE 754Standard for floating point storage32 and 64 bit standards8 and 11 bit exponent respectivelyExtended formats (both mantissa and exponent) for intermediate results

  • *Aritmatika FP +/-Periksa bilangan 0Sejajarkan bilangan di belakang koma (sesuaikan eksponen)Tambah atau kurangi mantissaNormalisasi hasil

  • *Aritmatika FP x/Periksa 0Tambah/kurangi eksponenKali/Bagi mantissa (perhatikan tanda)NormalisasiBulatkanSemua hasil panjangnya harus dua kali lipat bilangan yang dioperasikan

  • *FloatingPointMultiplication

  • *FloatingPointDivision

    **