Jumat, 01 April 2016

Representasi Data dan Aritmatik



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