Monday, June 08, 2015

Pipeline  adalah teknik untuk memecah proses  eksekusi menjadi beberapa sub-proses yang akan dieksekusi dalam segmen khusus dan dalam waktu yang bersamaan sehingga akan menghemat waktu pemrosesan.

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 dijaankan oleh microprocessor.

Apabila dianalogikan, konsep pipeline mirip dengan alur perakitan mobil, dimana saat bagian body memasang perlengkapan body pada mobil pertama maka pada bagian pengecatan akan menunggu mobil pertama. Saat  mobil pertama masuk ke pengecatan, maka bagian body akan melanjutkan dengan mobil kedua tanpa menunggu mobil pertama selesai dirakit dan selanjutnya ke tahap mesin dan yang lainnya dengan konsep yang sama.

Tiga kesulitan yang sering dihadapi ketika menggunakan teknik  pipeline ini adalah :
1.       Terjadinya penggunaan resource yang bersamaan
2.       Pengaturan Jump ke suatu lokasi memori.
3.       Sebagai perbandingan dapat melihat grafik berikut





Tahapan pipeline
1.       Mengambil instruksi pertama dan menjalankannya
2.       Ketika tahap 1 selesai maka lanjut ke tahap 2
3.       Ketika tahap 2 dijalankan, maka tahap 1 dijalankan menggunakan resource memory yang tersedia
4.       Dan menjalankan tahap selanjutnya sampai resource memory digunakan secara maksimal



Contoh pengerjaan instruksi dengan pipeline

Untuk menghitung efisiensi dalam sebuah pipeline dapat digunakan rumus sebagai berikut
     Non-pipeline     : n.k.T
     Pipeline             : nT + (k-1).T
     Peningkatan kecepatan = n.k / (k + n - 1), dimana n >> 1

Masalah yang muncul dalam system pipeline
Dalam pipeline ada situasi dimana ada instruksi yang gagal dilaksanakan, sehingga instruksi berikutnya tidak bisa dilaksanakan, situasi ini disebut  Hazards
Ada 3 jenis Hazards
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 saat pelaksanaan instruksi yang mengubah PC

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.

3.Pemrosesan dapat dilakukan lebih cepat, dikarenakan beberapa proses dilakukan secara bersamaan dalam satu waktu. 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.

4.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.

5.Sedangkan ketergantungan terhadap data, bisa muncul, misalnya instruksi yang  berurutan memerlukan data dari instruksi yang sebelumnya.

6.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.

0 comments:

Post a Comment

please write your comment

Subscribe to RSS Feed Follow me on Twitter!