Kamis, 09 Mei 2013

Pipelining

Pada umumnya, efisiensi sebuah komputer dinilai beerdasarkan kecepatan perangkat keras dan fasilitas-fasilitas perangkat lunak. Penilaian ini disebut sebagai 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. Konsep pemrosesan pipeline dalam suatu komputer mirip dengan suatu baris perakitan dalam suatu pabrik industri. Ambil contoh, sutu proses pembuatan mobil. Ketika sebuah mobil dibuat, mobil tersebut berpindah sepanjang ban berjalan dengan berurutan, melewati beberapa stasiun. Pada setiap stasiun, dikerjakan sebagian proses konstruksi pada mobil itu, kemudian berpindah lagi ke stasiun berikutnya. Perpindahan mobil itu dari satu stasiun ke stasiun lainnya, memungkinkan beberapa mobil berada pada baris perakitan pada waktu yang bersamaan, masing-masing pada stasiun yang terpisah. Dengan demikian, hal ini mengakibatkan kita menghasilkan mobil dari baris perakitan satu persatu secara berurutan. Tanpa teknik baris perakitan seperti ini, pengerjaan suatu mobil tidak dapat dimulai sampai mobil yang sebelumnya benar-benar selesai.
Pemrosesan pipeline dalam suatu komputer diperoleh dengan membagi suatu fungsi yang akan dijalankan menjadi beberapa subfungsi yang lebih kecil dan merancang perangkat keras yang terpisah, disebut sebagai tingkatan (stage), untuk setiap subfungsi. Stage-stage itu kemudian dihubungkan bersama-sama dan membentuk sebuah pipeline tunggal (atau pipe) untuk menjalankan fungsi asli tersebut.
















Pada gambar diatas dapat dibagi menjadi tiga subfungsi terpisah berikut ini:
  1. Sejajarkan mantissa-mantissa yang ada
  2. tambahkan mantissa-mantissa tersebut
  3. Normalisasikan hasilnya
Jika kita merancang sebuah stage perangkat keras untuk setiap subfungsi ini, kita dapat menyusun fungsi tersebut sebagai suatu pipeline tiga-stage seperti diperlihatkan gambar berikut

Keuntungan proses penambahan secara pipeline ini adalah bahwa dua input yang baru dapat dimulai melalui pipa tersebut segera sesudah dua input sebelumnya melewati stage 2. Hal ini berarti bahwa jumlah penambahan akan tersedia dengan kecepatan yang sama dengan kecapatan input. Gambar dibawah memperlihatkan secara sistematis bagaimana sekumpulan angka floating-point akan bergerak melalui penambah (adder) pipeline yang sederhana pada gambar 2 diatas pada saat pasangan pertama angka-angka itu dihasilkan oleh stage 3 [bagian (d) pada gambar 3 dibawah] maka pasangan kedua telah disejajarkan dan ditambahkan dan hanya perlu dinormalisir pada stage 3 [bagian (e) pada gambar 3 dibawah]. Dengan menggunakan pipeline, jumlah selisih waktu antara hasil pertama dan kedua merupakan jumlah waktu yang diperlukan untuk menormalisir sebuah angka. Tanpa suatu pipeline, waktu antara hasil-hasil tersebut merupakan waktu kumulatif yang diperlukan untuk semua ketiga subfungsi tersebut.

Kita mendefinisikan suatukomputer pipelinesebagai suatu komputer dengan komponen perangkat keras pipeline. Definisi ini mencakup kebanyakan komputer dewasa ini. Namun, mereka berbeda pada tingkatan pipelining mereka.


Tidak ada komentar:

Posting Komentar