Sabtu, 21 November 2015

Pengertian Pipeline

Assalamuallaikum Wr.Wb'
Hallo sobat blogger ketemu lagi bersama saya, pada kali ini saya akan memposting tentang apa itu Pipeline ok langsung ke pembahasan.

PENGERTIAN PIPELINE

PIPELINE
     Pipeline adalah suatu teknik implementasi dengan mana berbagai instruksi dapat dilaksanakan secara tumpang tindih (overlapped; hal ini mengambil keuntungan paralelisme yang ada di antara tindakan yang diperlukan untuk mengeksekusi suatu instruksi.
Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistem komputer. Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang rendah, seperti pada instruksi yang dijalankan oleh microprocessor.

PEMROSESAN PIPELINE
     Pada umumnya efisiensi sebuah komputer dinilai berdasarkan kecepatan  perangkat keras dan fasilitas-fasilitas  perangkat lunak. Penilaian ini disebut THROUGHPUT, didefinisikan sebagai jumlah pemrosesan yang dapat dikerjakan dalam suatu interval waktu tertentu. Salah  satu teknik yang mendorong peningkatan suatu sistem throughput yang cukup hebat disebut sebagai pemrosesan pipeline.

Kategori Pipeline ini di bagi menjadi dua yakni:
  1. Pipeline Unit Arithmetic : berguna untuk operasi vector
  2. Pipeline Unit Instruction : berguna untuk komputer yang mempunyai set instruksi yang sederhana 
Proses Pipeline:
     Instruksi-instruksi dari program yang sudah berurutan kemudian satu-persatu memasuki pipeline prosesor untuk diproses. Setiap tingkat pipeline memerlukan satu clock cycle untuk menyelesaikan satu instruksi dan meneruskan hasilnya ke pipeline berikutnya.
Ada tiga kesulitan pada metode dalam Pipeline:
  • Karena beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya pengaturan yang tepat agar proses tetap berjalan dengan benar.
  • Ketergantungan terhadap data, bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya.
  • Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter, sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter.
Generic Pipeline
     Ada empat tahapan dalam generic pipeline :
  1. Fetch           : Ambil instruksi dari memori 
  2. Decode        : Terjemahkan arti dari instruksi 
  3. Execute       : Eksekusi instruksi yang telah di-decode 
  4. Write-back  : Simpan hasil eksekusi ke memori
Dekomposisi Pengolahan Instruksi dalam Pipeline
  • Fetch
    Adalah pengambilan data ke memori atau register 
  • Execute
    Menginterpretasikan opcode dan melakukan operasi yang diindikasikan
  • Fetch Instruction (FI)
    Membaca instruksi berikutnya ke dalam buffer
  • Decode Instruction (DI)
    Menentukan Opcode dan operand specifier
  • Calculate Operand (CO)
    Menghitung alamat efektif seluruh operand sumber.
Hal ini mungkin melibatkan displacement, register indirect, atau bentuk kalkulasi alamat lainnya. 
  • Fetch Operand (FO) mengambil semua operand dari memori. Operand-operand yang berada di register tidak perlu diambil.
  • Execute Insruction (EI)
    Melakukan operasi yang diindikasikan dan menyimpan hasilnya
  • Write Operand (WO)
    Menyimpan hasilnya di dalam memori. 
     
Masalah-masalah pada Pipeline
       Dengan adanya persyaratan bahwa setiap instuksi yang berdekatan harus tidak saling bergantung, maka ada kemungkinan terjadinya situasi dimana pipeline gagal dilaksanakan (instruksi berikutnya tidak bisa dilaksanakan). Situasi ini disebut Hazards. Hazards mengurangi performansi dari CPU dimana percepatan ideal tidak dapat dicapai.
Ada tiga kelompok Hazards yakni :
  1. Structural Hazards muncul dari konflik resource sistem yaitu ketika hardware tidak dapat mensuport semua kemungkinan kombinasi pelaksanaan instruksi.
  2. Data Hazards muncul ketika data untuk suatu instruksi tergantung pada hasil instruksi sebelumnya. 
  3. Control Hazards muncul pada pelaksanaan instruksi yang mengubah PC (contoh: branch).
      Adanya Hazards menyebabkan pipeline terhambat (stalled). Tidak ada instruksi baru yang dijemput sampai hambatan itu selesai. Ini berarti instruksi-instruksi selanjutnya akan ditunda pula penjemputannya. 
Keuntungan dari Pipeline 
  1. Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi-isu dalam kebanyakan kasus.
  2. Beberapa combinational sirkuit seperti penambah atau pengganda dapat dibuat lebih cepat dengan menambahkan lebih banyak sirkuit.
        Jika Pipeline digunakan sebagai pengganti, hal itu dapat menghemat sirkuit vs combinational yang lebih kompleks sirkuit.
Kerugian dari Pipeline
  1. Prossesor  non-pipeline hanya menjalankan satu instruksi pada satu waktu. Hal ini untuk mencegah penundaan cabang (yang berlaku, setiap cabang tertunda) dan masalah dengan serial instruksi dieksekusi secara bersamaan. Akibatnya desain lebih sederhana dan lebih murah untuk diproduksi.
  2. Instruksi latency di prossesor non-pipeline sedikit lebih rendah daripada dalam pipeline setara. Hal ini disebabkan oleh fakta bahwa sandal jepit ekstra harus ditambahkan ke jalur data dari prossesor pipeline.
  3. Prossesor non-pipeline akan memiliki instruksi bandwidth yang stabil. Kinerja prossesor yang pipeline jauh lebih sulit untuk meramalkan dan dapat bervariasi lebih luas di antara program yang berbeda.
Kesimpulan nya : 
       Pipeline adalah suatu teknik (sistem) yang di gunakan secara bersamaan akan tetapi pada Unit Pemrosesan nya yang sangat berbeda.

Sekian Penjelasan dari saya untuk tentang Pipeline, semoga penjelasan tersebut bisa bermanfaat dan bisa menambah pengetahuan untuk kalian semua sobat blogger, terima kasih sudah berkunjung ke blog saya ini.
Wassalamuallaikum Wr.Wb'



Tidak ada komentar:

Posting Komentar

CARA MEMBUAT LONTONG

  Assalamuallaikum Wr.Wb'           Hallo sobat blogger ketemu lagi bersama saya, pada kali ini saya akan memposting tentang Cara Membua...