Selasa, 11 Januari 2011

Pipelining

Teknologi pipeline yang digunakan pada komputer bertujuan untuk meningkatkan kinerja dari komputer.
pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersamaan tetapi dalam tahap yang berbeda yang dialirkan secara kontiniu pada unit pemrosesan. Dengan cara ini, maka unit pemroses selalu bekerja
Pada microprocessor yang tidak menggunakan pipeline, satu instruksi dilakukan sampai
  selesai, baru instruksi berikutnya dapat dilaksanakan.
Sedangkan dalam microprocessor yang menggunakan teknik pipeline, ketika satu
  instruksi sedangkan diproses, maka instruksi yang berikutnya juga dapat diproses dalam
  waktu yang bersamaan.
  Tetapi, instruksi yang diproses secara bersamaan ini, ada dalam tahap proses yang 
 berbeda. Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi

Mengapa Pipelining ? 
Setiap unit, menjalankan fungsi tertentu yang unik
 
Setiap “clock” (satuan waktu tertentu), setiap unit secara serentak
  menyelesaikan pekerjaannya
Pekerjaanbergeserdari unit i  ke unit  (i + 1), sampai akhirnya pekerjaan
  selesai
Pada waktu seluruh unit terisi penuh, pada setiap “clock” akan keluar
  (selesai) satu unit mobil
Bandingkan dengan proses non-assembly, dimana pekerjaan diselesaikan
  semua dahulu (seluruh pekerjaannya mobil  ke j selesai), baru mobil ke (j+1
 mulai dikerjakan
Secara instinktif, dapat dideduksi bahwa :
  Tanpa assembly, maka setiap mobil akan selesai dalam waktu ( n x 
 waktu setiap unit)
Dengan assembly : pada saat semua unit penuh, maka setiap “clock” 
(waktu pengolahan disetiap unit), akan keluar satu mobil
Tnon-assembly  = ( n x Tunit-assembly), dimana 
  n adalah jumlah unit dalam assembly
Jadi, dalam kondisi assembly penuh, percepatan proses  produksi
  mobil dengan assembly (ban berjalan) adalah n kali lebih cepat
  dibanding tanpa assembly
Kesulitan dalam pipelining
Terjadinya penggunaan resource yang bersamaan
Ketergantungan terhadap data
Pengaturan Jump ke suatu lokasi memori.
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.
Sedangkan 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.
 

 
 

Tidak ada komentar:

Posting Komentar