Minggu, 17 Desember 2017

Klasifikasi Pipeline pada processor

Pipeline

   Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap berbeda yang dialirkan secara kontinu pada unit pemrosesan. Dengan Pipeline, unit pemrosesan akan selalu bekerja sehingga memaksimalkan kerja microprocessor. Pada microprocessor yang tidak menggunakan pipeline, satu instruksi dilakukan sampai selesai, setelah selesai baru instruksi berikutnya dilakukan. Sedangkan microprocessor yang menggunakan teknik pipeline, ketika satu instruksi diproses, maka instruksi berikutnya dapat dikerjakan dan diproses dalam waktu yang bersamaan. Tetapi, instruksi yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda. Jadi, ada  sejumlah tahap yang akan dilewati oleh sebuah instruksi.
   Dengan penerapan pipeline ini pada microprocessor akan didapatkan peningkatan dalam untuk kerja microprocessor. Hal ini terjadi karena beberapa instruksi dapat dilakukan secara parallel dalm waktu yang bersamaan. Namun, 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 bias muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya. Kasus jump juga perlu diperhatikan. Karena ketika sebuah instruksi meminta untuk mrelompat ke suatu memori tertentu akan terjadi perubahan program counter, sedangkan instruksi yang sedang berada dalam salah satu tahap tidak mendukung dan mengharapkan terjadinya perubahan program counter.

Klasifikasi Pipeline

   Pipeline dapat kita klasifikasikan menurut fungsi dan konfigurasinya. Secara fungsional, pipeline dapat diklasifikasikan menjadi tiga kelompok pokok : pipelining aritmatika, instruksi, dan prosesor. Ramamoorthy dan Li (1977) mengajukan tiga skema untuk mengklasifikasikan pipeline menurut konfigurasi dan strategi kendalinya : unifungsi atau multifungsi dan skalar atau vector.
            1    Klasifikasi Berdasarkan Fungsi
  • Pipelining Aritmatika
       Proses segmentasi fungsi dari ALU dari sistem yang muncul dalam kategori ini.
a. Pipelining Instruksi
   Dalam suatu komputer non-pipeline, CPU bekerja melalui suatu siklus yang berkesinambungan dari fetch-decode-eksekusi untuk semua instruksinya. Proses fetch suatu instruksi tidak akan dimulai sampai eksekusi instruksi sebelumnya selesai. Untuk mem-pipeline fungsi ini, instruksi-instruksi yang berdampingan di-fetch dari memori ketika instruksi yang sebelumnya di-decode dan dijalankan. Proses pipelining instruksi instruction look ahead, mem-fetch instruksi secara berurutan. Dengan demikian, jika suatu instruksi menyebabkan percabangan keluar dari urutan itu maka pipe akan dikosongkan dari seluruh instruksi yang telah di-fetch sebelumnya dan instruksi percabangan tersebut di-fetch. Proses pipelining instruksi dikerjakan pada hampir semua komputer berkemampuan tinggi.
b. Pipelining Processor
   Sewaktu stage dari suatu pipeline, prosesor aktual dan latch-latch saling berbagi memori di  antara prosesor-prosesor tersebut, sehingga pipeline tersebut disebut sebagai pipeline prosesor. Dalam pipeline ini, setiap prosesor mempunyai suatu tugas tertentu yang akan dijalankan pada aliran data. Pipelining banyak prosesor(multiple prosesor) merupakan konsep yang relatif baru dan belum umum.
            2    Klasifikasi Berdasarkan Konfigurasi
  • Unifungsi dan Multifungsi
   Kemampuan suatu pipeline menjalankan hanya satu jenis pokok operasi disebut sebagai pipeline unifungsi. Misalnya, perkalian floating-point mensyaratkan pipeline agar juga menjalankan operasi yang sama pada setiap kelompok input. Jika pipeline dapat menjalankan fungsi-fungsi yang berbeda maka disebut sebagai pipeline multifungsi. Fungsi-fungsi yang berbeda itu bisa dijalankan baik pada waktu yang bersamaan ataupun berbeda, dengan menghubungkan subkelompok-subkelompok stage yang berbeda dalam pipeline. Pipeline disusun seperlunya sesuai dengan nilai input kendali tambahan.
  • Static atau Dynamic
   Ketika instruksi-instruksi yang berjenis sama akan dijalankan secara bersamaan waktunya, maka digunakan pipeline statis. Pipeline ini dapat berupa pipeline fungsional maupun multifungsional tetapi mungkin mengasumsikan hanya satu konfigurasi fungsional pada suatu waktu. Suatu pipeline multifungsi statis dapat bekerja paling baik jika fungsi yang akan dijalankan tidak sering berubah. Antara perubahan, pipeline terlihat sebagai pipeline unifungsi dan mengulangi operasi yang sama berulang-ulang. Sebelum mengganti fungsi tersebut, kelompok input terakhir dari fungsi sebelumnya harus benar-benar telah melewati pipeline. Kemudian pipeline dikonfigurasikan untuk fungsi yang baru dan input yang baru boleh masuk ke dalam pipe. Dengan pipeline dinamis, beberapa konfigurasi fungsional dapat muncul sekaligus. Hal ini berarti harus digunakan sebuah pipeline multifungsional. Dalam kasus ini, konfigurasi pipe berubah-ubah secara konstan, tergantung pada data mana untuk fungsi yang mana pada stage yang mana untuk setiap penangguhan clock. Pipeline dinamis memerlukan kendali yang sangat kompleks dan mekanisme perangkat untuk mengkonfigurasikan pipe bagi input-input tertentu. Untuk alasan ini, pipelining aktual tidak berada di bawah kendali programmer melainkan dibangun kedalam arsitektur mesin tersebut.
  • Skalar atau Vector
   Suatu pipeline skalar memproses serangkaian operasi skalar pada operand skalar. Salah satu  contoh berupa operasi ADD dalam loop FOR. Pipeline vector dirancang untuk memproses instruksi vektor dengan menggunakan operand vektor.Komputer yang mempunyai instruksi-instruksi vektor disebut sebagai prosesor vektor.

sumber : 

https://www.google.co.id/search?q=klasifikasi+pipeline&oq=klasifikasi+pipeline&aqs=chrome..69i57.10565j0j8&sourceid=chrome&ie=UTF-8
 

Tidak ada komentar:

Posting Komentar