You are on page 1of 11

PIPELINE

1. An Overview of Pipelining

Efisiensi sebuah komputer dinilai berdasarkan kecepatan perangkat keras dan fasilitas-fasilitas perangkat lunak. Penilaian ini disebut sebagai throughput, didefinisikan sebagai jumlah proses kerja yang dilakukan dalam interval waktu tertentu. salah satu tehnik yang mendorong peningkatan suatu sistem throughput yang hebat adalah pipeline.

Pemprosesan pipeline dalam suatu komputer diperoleh dengan membagi suatu fungsi yang dijalanjkan menjadi beberapa subfungsi yang lebih kecil dan merancang perangkat keras yang terpisah, disebut sebagai tingkatan (stage), untuk setiap subfungsi. Stage-stage itu kemudian dikumpulkan bersama-sama dan membentuk sebuah pipeline tunggal untuk menjalankan fungsi asli tersebut.

Teknik perancangan pipeline mendekomposisikan sebarisan proses ke dalam sub-sub proses atau segmen. Setiap stadium melakukan fungsi khusus dan menghasilkan suatu output yang dikehendaki dengan segera.

Setiap stadium akan memuat suatu input latch, atau disebut juga register atau buffer, yang diikuti oleh satu sirkuit pemrosesan. Sinyal clock dikoneksikan ke masing-masing input latch.

Efisiensi suatu pipeline dapat berkurang jauh akibat suatu bottleneck, yang terjadi sewaktu pemprosesan pada suatu stasiun, atau stage, menghabiskan waktu lebih lama dari stage lainnya. Untuk menyamakan waktu yang diperlukan pada setiap stage maka stage-stage itu harus disinkronisasikan. hal ini bisa dengan menyisipkan kunci-kunci (latch). Waktu yang diperlukan untuk lewat dari suatu latch melalui stage ke latch berikutnya disebut sebagai penangguhan clock (clock delay). Gain Kinerja (Speed-up) pipeline adalah waktu yang digunakan dalam mode nonpipeline dibagi waktu yang digunakan dalam mode pipeline, dapat dituliskan:

Klasifikasi pipeline: Berdasarkan fungsi: pipelining aritmatika, instruksi dan prosesor. Berdasarkan konfigurasi: unifungsi versus multifungsi, statis versus dinamis, scalar versus vector.

2. A Pipelined Datapath

Instruksi MIPS pipeline: IF = Mengambil instruksi dari memori. ID = Men-code instruksi dan membaca register EX = Eksekusi operand/kalkulasi alamat-alamat. MEM = Operand akses memory. WM = Menyimpan hasil ke register.

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.

3. Pipelined Control

Inisiasi dari table reservasi berhubungan dengan permulaan suatu evaluasi ( tugas) fungsi tunggal yang akan mengikuti path yang dinamai oleh table. Jika suatu inisiasi dibuat maka pengendali pipeline (pipeline controller) harus mencadangkan stage pada pipeline yang tepat bagi data inisiasi tersebut dengan waktu yang relative yang ditentukan oleh table reservasi. Jika data dari dua inisiasi yang berbeda akan masuk kedalam stage yang sama pada waktu yang sama pula maka akan terjadi tubrukan(collision) karena stage tidak dpat menghitung dua hasil yang berbeda secara bersamaan waktunya. Disinilah peran pengendali pipeline untuk mencegah terjadinya tubrukan.

4. Data Hazards dan Forwarding 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.( Structural Hazard). Sedangkan ketergantungan terhadap data, bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya. (Data Hazard).

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. (Control Hazard).

Control Hazard dapat menyebabkan penurunan kinerja yang lebih besar daripada Data Hazard. Pada saat operasi pencabangan dieksekusi, ada kemungkinan PC diubah ke suatu nilai lain alamat instruksi yang dituju.

Tipe Data Hazard: Read After Write (RAW)

contoh:

i2 mencoba untuk membaca sumber sebelum i1 menulisnya, sehingga i2 mendapat nilai lama yang tidak benar. Ini adalah jenis hazard data yang paling umum dan kita menggunakan teknik forwarding untuk mengatasinya. Teknik forwarding adalah dengan menambahkan jalur balik data dari hasil operasi ALU langsung kepada sumber daya yang dibutuhkan.

Write After Read (WAR) contoh:

i2 mencoba menulis hasil tujuan sebelum dibaca oleh i1, sehingga i1 memperoleh nilai baru dari R4 yang salah. Ini tidak akan terjadi pada contoh pipeline karena semua pembacaan adalah pada tahap awal (ID) dan semua penulisan pada tahap akhir (WB). Hazard ini terjasi ketika terdapat instruksi-instruksi yang menulis pada tahap awal pipeline, dan instruksi lain yang membaca sumber pada bagian akhir pipeline.

Write After Write (WAW) contoh:

i2 mencoba untuk menulis operand sebelum ditulis oleh i1. penulisan berakhir dilaksanakan dengan urutan yang salah, meninggalkan nilai yang ditulis oleh i1 bukan nilai yang ditulis oleh i2.

Hazard ini hanya terjadi dalam pipeline yang menulis pada lebih satu tahap pipeline.

5. Data Hazards dan Stall Data hazard adalah situasi dimana pipeline di-stall karena data yang akan dikenai operasi ditunda dengan beberapa alasan. Resiko dalam pipeline mengakibatkan pipeline harus melakukan langkah lain agar tetap berjalan. Ini diistilahkan sebagai pipeline stall. Dalam mengatasi hazard seringkali memerlukan beberapa instruksi dalam pipeline diizinkan untuk diproses sementara instruksi lain menunggu. Pada saat sebuah instruksi dihentikan dulu pemrosesannya maka semua instruksi yang keluar sesudah instruksi tersebut dihentikan sementara juga. Instruksi yang muncul sebelum instruksi tersebut harus terus dipipeline. Selama kondisi ini tidak ada instruksi baru yang diambil dan dieksekusi menunggu sistem normal kembali. Daripada melakukan pipeline Stall, compiler mencoba untuk menjadwal urutan instruksi dengan menyusun ulang urutan kode untuk menghilangkan hazard. Contoh, kompilator dapat mencoba untuk mencegah adanya kode load yang diikuti oleh penggunaan langsung register tujuan load.

6. Branch Hazards Cabang dapat mengakibatkan ketergantungan di cabang hazards (kontrol hazards) ketika mereka terlalu dekat untuk ditangani dengan benar dalam pipeline. When are branches resolved?

Semua cabang 3 siklus : - Kelihatan boros, terutama ketika cabang tidak diambil. - Lebih baik untuk menebak apakah cabang akan diambil - cabang tidak diambil.

Beberapa statis strategi lain:

1. Asumsikan cabang backwards selalu diambil, cabang tidak pernah maju adalah : - "backwards" = bidang perpindahan negatif - Loop (cabang backwards) biasanya dieksekusi beberapa kali. - "if-then-else" sering mengambil "kemudian" (tidak ada cabang) klausa. 2. Kompilator membuat educated guess - buat"prediksi diambil / tidak diambil" bit dalam instruksi.

Mengurangi Branch Delay:

One-cycle branch misprediction penalty:

Sasaran perhitungan & memeriksa kesetaraan dalam fase ID. Hal ini juga menunjukkan pembilasan hardware.

Stalling untuk Branch Hazards dengan percabangan di ID stage

Mengisi slot penundaan cabang Slot penundaan cabang hanya berguna jika Anda dapat menemukan sesuatu untuk diletakkan di sana. Perlu instruksi sebelumnya yang tidak mempengaruhi cabang. Jika Anda tidak dapat menemukan apa pun, Anda harus menempatkan nop untuk menjamin kebenaran. Bekerja dengan baik untuk mesin RISC awal. tidak membantu recent prosessor Mis MIPS R10000, memiliki cabang hukuman 5-siklus, dan mengeksekusi 4 instruksi per siklus. Sementara itu, cabang tertunda merupakan bagian permanen dari ISA.

Branch Prediction:

Prediksi cabang
o

prediksi cabang statis adalah tidak cukup baik jika cabang-cabang mispredicted limbah 10 atau 20 instruksi. prediksi cabang Dinamis menyimpan singkat sejarah apa yang terjadi di setiap cabang.

RINGKASAN CHAPTER 6 PIPELINE

OLEH:

NAMA : RINI FAUZIAH NIM: 09101001011 KELAS: SK3A

FAKULTAS ILMU KOMPUTER JURUSAN SISTEM KOMPUTER UNIVERSITAS SRIWIJAYA 2011

You might also like