Pengertian Pipeline
Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada unit pem-rosesor. Dengan cara ini, maka unit pemrosesan 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.
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.
Dengan penerapan pipeline ini pada microprocessor akan didapatkan peningkatan kinerja microprocessor.Hal ini terjadi karena beberapa instruksi dapat dilakukan secara paralleldalam 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.
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 dan lancar.
Sedangkan ketergantungan terhadapdata bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yangsebelumnya. 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.
Instruksi pada pipeline
Tahapan pipeline
- Mengambil instruksi dan membuffferkannya
- Ketika tahapan kedua bebas tahapan pertama mengirimkan instruksi yang dibufferkan tersebut
Pada saat tahapan kedua sedang mengeksekusi instruksi ,tahapan pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan membuffferkan instruksi berikutnya.
Berikut ini adalah gambaran tentang Instuksi pipeline :
Karena untuk setiap tahap pengerjaan instruksi, komponen yang bekerja berbeda, maka dimungkinkan untuk mengisi kekosongan kerja di komponen tersebut. Sebagai contoh :
Instruksi 1 : ADD AX, AX
Instruksi 2: ADD EX, CX
Setelah CU menjemput instruksi 1 dari memori (IF), CU akan menerjemahkan instruksi tersebut(ID). Pada menerjemahkan instruksi 1 tersebut, komponen IF tidak bekerja. Adanya teknologi pipeline menyebabkan IF akan menjemput instruksi 2 pada saat ID menerjemahkan instruksi 1. Demikian seterusnya pada saat CU menjalankan instruksi 1 (EX), instruksi 2 diterjemahkan (ID).
Masalah-masalah pada Pipeline
Dengan adanya persyaratan bahwa setiap instuksi yang berdekatan harus tidak saling bergantung, maka ada kemungkinan terjadinya situasi dimana pipeline gagal dilaksanakan(instruksi berikutnya tidak bisa dilaksanakan). Situasi ini disebut Hazards.
Hazards mengurangi performansi dari CPU dimana percepatan ideal tidak dapat dicapai.
Ada 3 kelompok Hazards :
- Structural Hazardsmuncul dari konflik resource sistem yaitu ketika hardware tidak dapat mensuport semua kemungkinan kombinasi pelaksanaan instruksi.
- Data Hazardsmuncul ketika data untuk suatu instruksi tergantung pada hasil instruksi sebelumnya.
- Control Hazards muncul pada pelaksanaan instruksi yang mengubah PC (contoh: branch).
Keuntungan dari Pipeline
- Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi-isu dalam kebanyakan kasus.
- Beberapa combinational sirkuit seperti penambah atau pengganda dapat dibuat lebihcepat dengan menambahkan lebih banyak sirkuit.
- Pemrosesan dapat dilakukan lebih cepat, dikarenakan beberapa proses dilakukan secara bersamaan dalam satu waktu.
Kerugian dari Pipeline
- Prossesor non-pipeline hanya menjalankan satu instruksi pada satu waktu. Hal iniuntuk mencegah penundaan cabang (yang berlaku, setiap cabang tertunda) dan masalah dengan serial instruksi dieksekusi secara bersamaan. Akibatnya desain lebih sederhana dan lebih murah untuk diproduksi.
- Instruksi latency di prossesor non-pipeline sedikit lebih rendah daripada dalam pipeline setara. Hal ini disebabkan oleh fakta bahwa sandal jepit ekstra harus ditambahkan ke jalur data dari prossesor pipeline.
- Prossesor non-pipeline akan memiliki instruksi bandwidth yang stabil. Kinerja prossesor yang pipeline jauh lebih sulit untuk meramalkan dan dapat bervariasi lebih luas di antara program yang berbeda.
- 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.
Kesulitan dalam Pipeline
Untuk menerapkan prinsip multi-stage atau mulai saat ini kita namakan pipelining di prosesor, diperlukan organisasi prosesor khusus. Pada dasarnya, prosesor dipartisi menjadi sejumlah unit-unit kecil dengan fungsi spesifik.
Setiap unit berperan untuk menyelesaikansebagian dari instruksi-intruksi berikut : Instruction fetch, decode, operand address calculation, operand fetch, execute dan storeresult.
Dalam proses di atas terkadang sering terjadi kendala/conflict seperti:
- Terjadinya pause (Pi), karena adanya data conflict dalam program tersebut
- Terjadinya data error dikarenakan banyaknya proses yang dilakukan bersamaan
- Terjadinya pengambilan data secara bersamaan, sehingga salah satu proses tertunda
- Terjadinya penumpukan data di salah satu intruksi sehingga ada beberapa proses yg ditunda
- Dengan terjadinya conflict tadi, speed-up yang diperoleh menjadi lebih kecil (lambat)dibandingkan dengan tanpa conclict.
Pengertian RISC
RISC (Redue instruction Set Computer) atau komputasi set instruksi yang disederhanakan merupakan sebuah arsitektur komputer atau arsitektur komputasi modern dengan instruksi-instruksi dan jenis eksekusiyang paling sederhana. Arsitektur ini digunakan pada komputer dengan kinerja tinggi, seperti komputer vector. Desain ini juga diimplementasikan pada prosesor komputer lain, seperti pada beberapa mikroprosesor intel
960 itanium (IA64) dari intel coorporation. Selain itu RISC juga umum dipakai pada Avanced RISC Machine (ARM) dan StrongARM.
Sifat-sifat RISC
- Semua atau setidak-tidaknya sebagian besar (80%) instruksi harus dieksekusi dalam satu siklus clock.
- Semua instruksi harus memiliki satu ukuran standar, yaitu sama dengan ukuran kata dasar (basic word length).
- Jumlah jenis instruksinya harus kecil, tidak melebihi 128.
- Jumlah format instruksinya harus kecil, tidak melebihi kira-kira 4.
- Jumlah adddressing mode harus kecil, tidak melebihi kira-kira 4.
- Akses ke memory hanya dilakukan dengan instruksi load dan store.
- Semua operasi, keciali operasi load dan store merupakan operasi register di dalam CPU.
- Memiliki hardwired control unit.
- Memiliki relatif banyak register serbaguna internal CPU.
Karakteristik RISC
Arsitektur RISC memiliki beberapa karakteristik, diantaranya:
- Instruksi berukuran tunggal.
- Ukuran yang umum adalah 4 byte.
- Jumlah mode pengalamatan data yang sedikit, biasanya kurang dari lima buah.
- Tidak terdapat pengalamatan tak langsung.
- Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmatika
Kelebihan RISC
- Instruksi mesin yang kompleks seringkali sulit digunakan karena kompiler harus menemukan kasus-kasus yang sesuai dengan konsepnya.
- Arsitektur RISC yang mendasari Power PC memiliki kecenderungan lebih menekankan pada referensi register dibanding referensi memori, dan referensi register memerlukan bit yg lebih sedikit.
- Penggunaan metode pengalamatan dan format instruksi yang lebih sederhana.
Kekurangan RISC
- Program berukuran lebih besar sehingg membutuhkan memori yang lebih banyak, ini tentunya kurang menghemat sumber daya.
- Program yang berukuran lebih besar akan menyebabkan menurunnya kinerja, yaitu instruksi yang lebih banyak. Artinya akan lebih banyak bye-byte instruksi yang harus diambil.
- Pada lingkungan paging akan menyebabkan kemungkinan terjadinya page fault lebih besar.
Referensi :
http://www.academia.edu/9124108/Pengertian_Pipeline
http://www.academia.edu/18365931/Makalah_CISC_and_RISC
https://id.wikipedia.org/wiki/Pipeline
http://sharinginpo.blogspot.co.id/2011/04/pipeline-secara-umum.html
https://id.wikipedia.org/wiki/RISC
https://imambakti18.wordpress.com/penjelasan-risc-dan-pipelining-risc/
Tidak ada komentar:
Posting Komentar