Anda di halaman 1dari 11

TUGAS KELOMPOK

Siklus Perintah Dengan Perintah Pipelining

Oleh :
Kelompok 12
Muh. Ghazali Andi Irham
Zatrya Yudhiztira
Nicodemus
Fakultas Teknik Informatika
UNIVERSITAS COKROAMINOTO PALOPO

PIPELINE
Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah
kerja secara bersamaan tapi dalam tahap yang berbeda yang dialirkan
secara continue / berkelanjutan pada unit pemrosesan.pipeline sebagai
serangkaian pipa yang harus dilewati oleh instruksi program. Setiap
instruksi harus masuk di Prefetch/Fetch dan keluar di Write-back.

Peranan Memori Cache:

Tiap stage dalam pipeline diharapkan menyelesaikan operasinya


dalam satu clock cycle. Karenanya, periode clock harus cukup lama
untuk menyelesaikan tugas yang sedang dilakukan pada tiap stage.
Jika unit yang berbeda memerlukan jumlah waktu yang berbeda, maka
periode clock harus memungkinkan tugas terlama dapat diselesaikan.
Suatu unit yang menyelesaikan tugasnya lebih awal akan idle
selama sisa periode clock. Karenanya, pipelining paling efektif dalam
meningkatkan performa jika tugas yang sedang dilakukan dalam stage
yang berbeda memerlukan jumlah waktu yang sama.

Penggunaan memori cache menyelesaikan persoalan akses


memori. maka waktu akses ke cache biasnya sama dengan waktu
yang dibutuhkan untuk menjalankan operasi dasar lain di dalam
processor.

Pipelining
adalah suatu teknik implementasi dengan mana berbagai instruksi dapat
dilaksanakan secara tumpang tindih (overlapped; hal ini mengambil keuntungan
paralelisme yang ada di antara tindakan yang diperlukan untuk mengeksekusi suatu
instruksi.
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.

Definisi pemrosesan Pipelining:


Pada umumnya efisiensi sebuah komputer dinilai berdasarkan
kecepatan perangkat keras dan fasilitas-fasilitas perangkat lunak. Penilaian
ini disebut THROUGHPUT, didefinisikan sebagai jumlah pemrosesan yang
dapat dikerjakan dalam suatu interval waktu tertentu. Salah satu teknik
yang mendorong peningkatan suatu sistem throughput yang cukup hebat
disebut sebagai pemrosesan pipeline.

Kategori Pipeline:
1.Pipeline Unit Arithmetic : berguna untuk operasi vector
2.Pipeline Unit Instruction : berguna untuk komputer yang mempunyai set instruksi yang
sederhana
Proses Pipeline:
Instruksi-instruksi dari program yang sudah berurutan kemudian satu-persatu memasuki
pipeline prosesor untuk diproses. Setiap tingkat pipeline memerlukan satu clock cycle
untuk menyelesaikan satu instruksi dan meneruskan hasilnya ke pipeline berikutnya.
3 kesulitan pada metode Pipeline :
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.
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.

Generic Pipeline

ada 4 tahapan dalam generic


pipeline :
1. Fetch :Ambil instruksi dari
memori
2. Decode :Terjemahkan arti dari
instruksi
3. Execute :Eksekusi instruksi
yang telah
di-decode
4. Write-back :Simpan hasil
eksekusi ke
memori

Dekomposisi Pengolahan Instruksi


- Fetch
Adalah pengambilan data ke memori atau register
- Execute
Menginterpretasikan opcode dan melakukan operasi yang diindikasikan
- Fetch Instruction (FI)
Membaca instruksi berikutnya ke dalam buffer
- Decode Instruction (DI)
Menentukan Opcode dan operand specifier
- Calculate Operand (CO)
Menghitung alamat efektif seluruh operand sumber.
Hal ini mungkin melibatkan displacement, register indirect, atau bentuk
kalkulasi alamat lainnya.
- Fetch Operand (FO) mengambil semua operand dari memori. Operandoperand yang berada di register tidak perlu diambil.
- Execute Insruction (EI)
Melakukan operasi yang diindikasikan dan menyimpan hasilnya
- Write Operand (WO)
Menyimpan hasilnya di dalam memori.

ADA 2 TAHAP
Tahapan pertama mengambil instruksi dan mem-bufferkannya.
Ketika tahapan kedua bebas, tahapan pertama mengirimkan
instruksi yang di-buffer-kan tersebut. Pada saat tahapan kedua
sedang mengeksekusi instruksi, tahapan pertama
memanfaatkan siklus memori yang tidak dipakai untuk
mengambil dan membufferkan instruksi berikutnya.
Proses

ini disebut instruction prefetch atau fetch overlap.

Penanganan Percabangan:
1. Multiple Streams
2. Prefetch Target percabangan
3. Loop buffer
4. Memprediksi percabangan
5. Delay percabangan

Macam-macam Data Hazard:


Ada 3 jenis pipeline hazards
-Struktural Hazard, yang dikarenakan dari konflik
resource sistem yaitu ketika hardware tidak dapat
mensuport semua kemungkinan kombinasi
pelaksanaan instruksi.
- Control Hazard, instruksi melompat dan instruksi
lainnya yang membuat stall (penundaan),pipeline
sampai timbulNO OPeration instruksi terpaksa
diselipkan di dalam pipeline.
- Data Hazard,muncul karenainstruksi selanjutnya
menunggu data yang tergantung dari hasil instruksi
sebelumnya yang belum selesai dilaksanakan.

Pipeline Hazard:
1. Data hazards
- satu perintahan mempergunakan hasil dari satu Instruksi sebelumnya
ADD R1, R2, R3 or SW R1, 3(R2)
ADD R4, R1, R5 LW R3, 3(R2)
2.Control hazards
- lokasi dari satu perintahan bergantung kepada satu instruksi
sebelumnya
JMP LOOP

LOOP: ADD R1, R2, R3
3. Structural hazards
- dua perintahkan akses kebutuhan ke sumber daya yang sama
= misalnya, memori tunggal berbagi untuk menginstruksikan
mengambil dan isi / simpan
= bentrokan di tabel pesanan tempat

Type pada Data Hazards


RAW (membaca setelah tulis)
hanyalah ambil resiko untuk perbaikan saluran tetap
instruksi kemudiannya harus bacaan setelah instruksi lebih

awal tulis

WAW (menulis setelah tulis)


saluran panjang variabel
Instruksi kemudian harus tulis setelah instruksi lebih awal tulis
WAR (menulis setelah bacaan)
saluran dengan penghujung bacaan
instruksi kemudian harus tulis setelah instruksi lebih awal bacaan

Pipeline
Keuntungan
1.Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksiisu dalam kebanyakan kasus.
2.Jika pipelining digunakan sebagai pengganti, hal itu dapat menghemat
sirkuit yang digunakan.
3.Secara keseluruhan dapat meningkatkan kinerja computer.
Kerugian
1.Non-pipelined prosesor hanya menjalankan satu instruksi pada satu waktu.
2.Instruksi latency di non-pipelined prosesor sedikit lebih rendah daripada
dalam pipelined setara.
3.Non-pipelined prosesor akan memiliki instruksi yang stabil bandwidth.
Kinerja prosesor yang pipelined jauh lebih sulit untuk meramalkan dan dapat
bervariasi lebih luas di antara program yang berbeda.