Kamis, 04 Januari 2018

Klasifikasi Komputer Pipeline

Dalam komputer, pipeline adalah satu set dari elemen pemrosesan data dihubungkan secara seri, sehingga hasil keluaran dari satu elemen adalah masukkan bagi elemen berikutnya. Elemen-elemen dari sebuah pipeline sering dijalankan secara paralel.

Contoh pipeline dalam komputer adalah :
a.   Pipeline instruksi, biasanya digunakan di unit pemroses sentral agar instruksi-instruksi dapat dijalankan dalam satu waktu dalam satu sirkuit digital. Biasanya sirkuitnya dibagi dalam beberapa tahap, termasuk decode instruksi, aritmetika dan tahap-tahap penjemputan data dari register, dimana setiap tahap melakukan satu instruksi dalam satu waktu.
b.  Pipeline grafis, sering ditemukan dalam sebagian besar unit pemrosesan grafis, yang terdiri dari berbagai unit aritmatik atau unit pemroses sentral lengkap, yang menerapkan berbagai macam tahap dari operasi render yang umum (seperti proyeksi perspektif, kalkulasi warna dan pencahayaan, primitif gambar, dan sebagainya).
c.  Pipeline perangkat lunak, dimana keluaran dari suatu program langsung dipakai oleh program lain sebagai masukkan sehingga dapat langsung diproses.

Pipeline dapat kita klasifikasikan menurut fungsi dan konfigurasinya. Secara fungsional, mereka diklasifikasikan menjadi tiga kelompok pokok yaitu pipelining aritmatika, instruksi dan prosesor. Ramamoorthy dan Li (1977) mengajukan tiga skema untuk mengklasifikasikan pipeline menurut konfigurasi dan strategi kendalinya yaitu unifungsi atau multifungsi, statis atau dinamis, dan skalar atau vektor.

Klasifikasi Berdasarkan Fungsi
-   Pipelining aritmatika. Proses segmentasi fungsi dari ALU dari sistem yang muncul dalam katagori ini. Suatu contoh dari fungsi pipeline aritmatika diberikan dalam Bagian 9.7.
-   Pipelining instruksi. Dalam suatu komputer nonpipeline, 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, disebut juga instruction lihat ke-muka (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 (branched-to-instruction) tersebut di-fetch. Proses Pipelining instruksi dikerjakan pada hampir semua komputer berkemampuan tinggi (high-perfomance).
-     Pipelining prosesor. Sewaktu stage dari suatu pipeline merupakan prosesor aktual dan latch-latch saling berbagi memori antara prosesor-prosesor tersebut maka pipeline itu disebut sebagai pipeline prosesor. Dalam pipeline ini, setiap prosesor mempunyai suatu tugas tertentu yang akan dijalankan pada aliran data, seperti diperlihatkan pada Gambar 9-9. Pipelining banyak prosesor (multiple processor) merupakan konsep yang relatif baru dan belum umum.

Klasifikasi Berdasarkan Konfigurasi
Unifungsi vs 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 bersaman ataupun berbeda, dengan menghubungkan subkelompok-subkelompok stage yang berbeda dalam pipeline. Pipeline disusun seperlunya sesuai dengan nilai input kendali tambahan.

Statis vs dinamis. 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 baikjika 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 dan proses ini disebut sebagai mengairi pipa (draining the pipe). 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 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 perangkai untuk mengkonfigurasikan pipe bagi input-input tertentu. Untuk alasan ini, pipelining aktual tidak berada di bawah kendali programer melainkan dibangun ke dalam arsitektur mesin tersebut. Jika suatu pipeline dalam sebuah sistem perlu mengubah fungsinya secara berkala maka harga implementasi pipeline dinamis melebihi pertimbangan harga dari waktu menganggur (idle time) yang dihasilkan dari proses draining pipeline statis secara terus menerus.



Skalar vs vektor. Suatu pipeline skalar memproses serangkaian operasi skalar pada operand skalar (yang berhubungan dengan masing-masing angka bukannya vektor) seperti ditunjukkan oleh program. Salah satu contoh berupa operasi ADD dalam loop FOR. Pipeline vektor dirancang untuk memproses instruksi vektor dengan menggunakan operand vektor. Komputer yang mempunyai instruksi-instruksi vektor disebut sebagai prosesor vektor dan akan dibahas pada Bab 10. Contoh pipeline di bab ini dapat digunakan sebagai pipeline skalar atau sebagai bagian dari pipeline vektor.



Tidak ada komentar:

Posting Komentar