Rabu, 16 Juni 2010

PipeLine

Pipeline

Instruksi pipeline adalah teknik yang digunakan dalam desain komputer dan perangkat elektronik digital untuk meningkatkan throughput instruksi mereka (jumlah instruksi yang dapat dieksekusi dalam satu unit waktu).

Ide dasar adalah untuk membagi pemrosesan instruksi komputer menjadi serangkaian langkah-langkah independen, dengan penyimpanan pada akhir setiap langkah. Ini memungkinkan komputer untuk mengeluarkan instruksi pada langkah terlambat dari rate processor, yang jauh lebih cepat dari waktu yang dibutuhkan untuk melakukan semua langkah sekaligus. Pipeline merujuk pada kenyataan bahwa mengerjakan setiap langkah membawa beberapa data sekaligus (seperti air), dan setiap langkah terhubung ke generasi berikutnya (seperti link dari pipa.)

Paling banyak CPU moderan dihitung dengan satuan clock. CPU terdiri dari logika internal dan memori ( Flip Flops ). Ketika sinyal clock tiba, Flip Flops mengambil nilai baru dan kemudian logika memerlukan periode waktu tertentu untuk membaca sandi dari nilai-nilai baru. Maka clock berikutnya tiba dan flip flop mengambil nilai baru, dan sebagainya. Dengan memecah logika menjadi potongan-potongan kecil dan memasukkan Flip Flops antara potongan-potongan logika maka, delay sebelum logika memberikan output yang valid akan berkurang. Dengan cara ini periode clock dapat dikurangi. Misalnya, classic RISC pipeline dibagi menjadi lima tahap dengan seperangkat Flip Flops antara setiap tahap.

1. Instruction fetch

2. Instruction decode and register fetch

3. Execute

4. Memory access

5. Register write back

Kelebihan dan kekurangan pipeline

Pipelining tidak membantu dalam semua kasus. Ada beberapa kemungkinan kerugian. Instruksi pipeline dikatakan sepenuhnya pipelined jika dapat menerima instruksi baru setiap siklus clock. Pipeline yang tidak sepenuhnya pipelined adalah pipeline yang menunggu siklus yang menunda kemajuan pipa.

Keuntungan Pipelining:

  1. Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi dalam banyak kasus.
  2. Beberapa sirkuit kombinasional seperti adders atau multipliers dapat dibuat lebih cepat dengan menambahkan lebih banyak sirkuit.

Kekurangan dari Pipelining:

  1. Sebuah prosesor non-pipelined hanya melaksanakan instruksi tunggal pada suatu waktu. Hal ini untuk mencegah penundaan cabang (sehingga, setiap cabang tertunda) dan masalah dengan serial instruksi dieksekusi secara bersamaan Akibatnya desain lebih sederhana dan lebih murah untuk memproduksi.
  2. Latency instruksi di prosesor non-pipelined sedikit lebih rendah daripada processor yang setara pipelined. Hal ini karena ekstra Flip Flops harus ditambahkan ke jalur data prosesor pipelined.
  3. Sebuah prosesor non-pipelined akan memiliki instruksi bandwidth stabil. Kinerja prosesor pipelined jauh lebih sulit untuk diprediksi.

Tidak ada komentar:

Posting Komentar