Minggu, 17 Januari 2010

Definisi Pipeline
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.
Pipeline adalah jalur yang dilewati oleh istruksi set. Analogi yang dapat diambil adalah misal kita melihat kebakaran dan kita mengambil air dengan ember, jika kita seorang maka akan lama memadamkannya, tetapi jika kita terdiri dari beberapa orang dan tiap orang membawa ember dan berusaha memadamkannya, akan lebih cepat padam apinya, pipeline disini dianalogikan sebagai ember, semakin ember banyak maka akan semakin cepat api padam.
Prosesor saat ini menggunkan pipeline yang panjang guna meningkatkan kecepatannya, tetapi semakin panjang akan semakin berat jika terjadi crash ditengah jalan sehingga pipeline akan dikosongkan dan diulang kembali. Ini merupakan perbedaan yang paling mencolok pada Intel dan AMD, AMD memiliki pipeline yang lebih pendek dan dapat bekerja dengan baik pada rentang kecepatan 2000Mhz, sedang pipeline Intel lebih panjang sehingga dapat mecapai rentang kecepatan 3000Mhz, tetapi Intel memiliki kesulitan dalam pergantian atara tugas yang dibawanya, jadi sebenarnya Intel lebih lambat dibanding dengan AMD.
Tekhnik Pipeline (Cara Kerja Pipeline)
Pipeline pada Microprocessor
Teknologi pipeline yang digunakan pada komputer bertujuan untuk meningkatkan kinerja dari komputer. Secara sederhana, 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.
Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistem komputer. Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang rendah, seperti pada instruksi yang dijalankan oleh microprocessor.
Teknik pipeline yang diterapkan pada microprocessor, dapat dikatakan sebuah arsitektur khusus. Ada perbedaan khusus antara model microprocessor yang tidak menggunakan arsitektur pipeline dengan microprocessor yang menerapkan teknik ini.
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.
Misalnya sebuah microprocessor menyelesaikan sebuah instruksi dalam 4 langkah. Ketika instruksi pertama masuk ke langkah 2, maka instruksi berikutnya diambil untuk diproses pada langkah 1 instruksi tersebut. Begitu seterusnya, ketika instruksi pertama masuk ke langkah 3, instruksi kedua masuk ke langkah 2 dan instruksi ketiga masuk ke langkah 1.
Dengan penerapan pipeline ini pada microprocessor akan didapatkan peningkatan dalam unjuk kerja microprocessor. Hal ini terjadi karena beberapa instruksi dapat dilakukan secara parallel dalam waktu yang bersamaan. Secara kasarnya diharapkan akan didapatkan peningkatan sebesar K kali dibandingkan dengan microprocessor yang tidak menggunakan pipeline, apabila tahapan yang ada dalam satu kali pemrosesan instruksi adalah K tahap.
Teknik pipeline ini menyebabkan ada sejumlah hal yang harus diperhatikan sehingga ketika diterapkan dapat berjalan dengan baik. Tiga kesulitan yang sering dihadapi ketika menggunakan teknik pipeline ini adalah : 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.
Dengan menerapkan teknik pipeline ini, akan ditemukan sejumlah perhatian yang khusus terhadap beberapa hal di atas, tetapi tetap akan menghasilkan peningkatan yang berarti dalam kinerja microprocessor. Ada kasus tertentu yang memang sangat tepat bila memanfaatkan pipeline ini, dan juga ada kasus lain yang mungkin tidak tepat bila menggunakan teknologi pipeline.
Kelebihan dan Kekurangan Pipelining
:: Kelebihan dan Kekurangan Pipelining ::- Kelebihan1.siklus waktu dalam prosesor berkurang, sehingga secara umum menilai instruksi-isu2.kombinasi beberapa sirkuit seperti adders atau multipliers dapat dibuat lebih cepat dengan menambahkan lebih circuitry. Jika pipelining digunakan sebagai gantinya,ia dapat menyimpan circuity melawan yang lebih kompleks atas kombinasi sirkuit.-Kekurangan1. Mencegah penundaan cabang ini (berlaku, setiap cabang yang tertunda) dan masalah dengan serial instruksi yang dijalankan secara bersamaan,akibatnya desain yang lebih sederhana dan murah untuk produksi. 2.Instruksi yang tersembunyi pada prosesor non pipelining tersebut sedikit lebih rendah daripada di pipelining yang setara. Hal ini disebabkan oleh kenyataan bahwa tiba-tiba harus ditambahkan ke jalur data dari prosesor pipelined3.prosesor non pipelining akan ada instruksi bandwith yang stabil. Kinerja prosesor pipelined sangat sulit untuk memprediksi dan dapat bervariasi secara lebih luas di antara berbagai program.
Contoh:instruksi khas untuk menambahkan dua nomor mungkin ADD A, B, C yang menambahkan nilai memori ditemukan di lokasi A dan B, dan kemudian menyerahkan hasil di lokasi memori C. sebuah prosesor pipelining yang akan merusak ini menjadi serangkaian tugas yang mirip dengan: LOAD R1, A Load R1, A LOAD R2, B Load R2, B ADD R3, R1, R2 ADD R3, R1, R2 STORE C, R3 MALING C, R3 LOAD next instruction Nilai-nilai yang disimpan dalam lokasi memori berlabel 'A' dan 'B' yang dimuat (disalin) ke dalam register R1 dan R2, kemudian ditambahkan, dan hasilnya (yang mendaftar di R3) yang disimpan dalam lokasi memori berlabel 'C'.Dalam contoh ini adalah pipa yang panjang memliki tiga tahapan, memuat ,menjalankan, dan menyimpan. Setiap langkah-langkah itu yang disebut pipa tahap.(tahap pipeline)Pada prosesor non pipeline, hanya satu tahap dapat bekerja pada suatu waktu sehingga seluruh instruksi yang lengkap sebelum instruksi berikutnya dapat dimulai.Jadi, saat ini adalah instruksi di jalankan tahap kedua instruksi akan berada pada tahap membaca sandi dan instruksi 3. Akan mengambil pada tahap. Pipelining tidak mengurangi waktu yang diperlukan untuk menyelesaikan sebuah instruksi itu bukan kenaikan jumlah instruksi yang dapat diproses dan sekaligus mengurangi penundaan antara selesai petunjuk disebut 'throughput'.Semakin banyak pipa tahapan yang memiliki prosesor, semakin banyak instruksi yang dapat bekerja pada sekaligus dan kurang dari keterlambatan ada antara petunjuk selesai.Setiap hari ini menggunakan microprocessor diproduksi sekurang-kurangnya 2 tahapan pipa. setiap tahap memiliki 2 pipa. Prosesor Intel Pentium 4 ada 20 tahap Pipelines. pseudo-kode assembly listing yang akan dilaksanakan: LOAD A, #40 ; load 40 in AMOVE B, A ; copy A in BADD B, #20 ; add 20 to BSTORE 0x300, B ; store B into memory cell 0x300Beban instruksi yang ada di tahap menyimpan, di mana hasil-nya (nomor 40) akan disimpan dalam register A. Sementara itu, MOVE instruksi yang sedang dijalankan. Karena harus memindahkan isi dari A ke B, harus menunggu sampai yang memuat instruksi. instruksi menyimpan adalah yang diambil, sementara MOVE adalah instruksi finishing off dan ADD adalah menghitungPerlu diketahui bahwa, kadang-kadang, suatu instruksi akan tergantung pada hasil yang lain (seperti contoh kami MOVE)Bila lebih dari satu instruksi referensi lokasi tertentu untuk operand, baik membacanya (sebagai masukan) atau menulis itu (sebagai output), yang menjalankan instruksi di dalam urutan yang berbeda dari program yang asli agar dapat mengakibatkan bahaya (yang disebutkan di atas)Ada beberapa teknik yang didirikan untuk mencegah bahaya baik dari terjadi, atau bekerja di sekitar mereka jika mereka melakukan.

met belajar aja.......... :)