Pertemuan 9 pipelining

29
UNIVERSITAS NEGERI MAKASSAR ORGANISASI KOMPUTER PIPELINING JUMIATI 092901035 1

Transcript of Pertemuan 9 pipelining

Page 1: Pertemuan 9 pipelining

1

UNIVERSITAS NEGERI MAKASSAR

ORGANISASI KOMPUTER

PIPELINING

JUMIATI 092901035

Page 2: Pertemuan 9 pipelining

2

PIPELININGA. Konsep Dasar

Peranan memori cache Performa pipeline

B. Data Hazard Operand Forwarding Menangani data hazard dalam software Efek samping

C. Instruction Hazard Unconditional Branch Queue dan Prefetching Instruksi Conditional Branch dan Branch Prediction Delayed Branch Prediksi Branch Prediksi Branch Dinamik

Page 3: Pertemuan 9 pipelining

3

D. Pengaruh Pada Set Instruksi Mode Pengelamatan Condition Code

Page 4: Pertemuan 9 pipelining

4

A. Konsep Dasar

Pipelined adalah suatu cara yang digunakan untuk melakukan

sejumlah kerja secara bersama tetapi dalam tahap yang

berbeda yang dialirkan secara kontinou pada unit pemrosesor.

Dengan cara ini, maka unit pemrosesan selalu bekerja.

Page 5: Pertemuan 9 pipelining

5

Ide pipelining dapat digunakan pada computer.

Prosesor mengeksekusi suatu program dengan

mengambil dan mengeksekusi instruksi, satu demi satu.

Misalkan Fi dan Ei mengacu ke langkah pengambilan

dan eksekusi untuk instruksi Ii. Eksekusi program

terdiri dari rangkaian langkah pengambilan dan

eksekusi.

Page 6: Pertemuan 9 pipelining

6

a. Peranan Memori Cache

Yaitu tiap stage dalam pipeline diharapkan menyelesaikan

operasinya dalam suatu clock cycle. Karenanya, periode

clock harus cukup lama untuk menyelesaikannya tugas yang

sedang dilakukaan pada tiap stage. Jika unit yang berbeda

memerlukan jumlah waktu yang berbeda, maka periode

clock harus memungkinkan tugas terlama dapat diselesaikan.

Page 7: Pertemuan 9 pipelining

7

Suatu unit yang menyelesaikan tugasnya lebih awal akan

idle selama sisa periode clock. Karenanya, pipeline

paling efektif dalam meningkatkan performa jika tugas

yang sedang dilakukan dalam stage yan ber bedaa

memerlukan jumlah waktu yang sama.

Page 8: Pertemuan 9 pipelining

8

b. Performa Pipeline

Prosesor pipeline menyesaikan pengolahan satu

instruksi pada tiap clock cycle,yang berarti kecepatan

pegolahan instruksi tersabut empat kali lebih besar dari

oparesi berurutan. Peningkatan potensi dalam performa

yang dihasilkan dari pipelining proporsional dengan

jumlah pipeline stage. Akan tetapi, peningkatan ini

hanya akan dicapai jika operasi pipelined dapat di

pertahankan tanpa interupsi melalui eksekusi program.

Page 9: Pertemuan 9 pipelining

9

Sangat penting untuk memahami

bahwa pipelining tidak memyebabkan

instruksi individu dieksekusi lebih

cepat, sebaliknya pipeling

meningkatkan throughput, dimana

throughput diukur dari kecepatan

penyelesaian eksekusi instruksi.

Page 10: Pertemuan 9 pipelining

10

B. Data Hazard

Data hazard adalah situasi dimana pipeline di-stall

karena data yang akan dikenai opersi di tunda dengan

beberapa alasan, seperti yang diilustrasikan. kita

sekarang akan menganalisa persoalan ketersediaan data

dalam beberapa detil.

Clock cycle 1 2 3 4 5

6 7 8 9

Page 11: Pertemuan 9 pipelining

11

Contoh ini mengilustrasikan batasan dasar yang harus

dilakukan untuk menjamin hasil yang tepat. Pada saat

dua operasi saling tergantung satu sama lain, maka

keduanya harus dilakukan secara berurutan dalam

urutan yang benar. Kondisi ini jelas memiliki

konsekuensi yang mendalam. Memahami implikasinya

adalah kunci untuk memahami berbagai alternative

desaian dan pertukaran yang dihadapi dalam computer

pipelined.

Page 12: Pertemuan 9 pipelining

12

a. Operand Forwarding

Data hazard yang baru saja di deskripsikan muncul karena satu

instruksi. instruksi I2 menunggu data dituliskan dalam register

file. Akan tetapi, data tersebut tersedia pada output ALU pada

saat Execute stage menyelesaikan langkah E1 di-forwading stage

menyelesaikan langkah E1 karenanya jeda dapat dikurangi,atau

mungkin dihilangkan, jika kita mengatur agar hasil instruksi I1 di

forward langsung untuk digunakan pada langkah E2.

Page 13: Pertemuan 9 pipelining

13

NOP (No – operation ), sebagai berikut :

I1 : Mul R2,R3,R4

NOP

NOP

I2: Add R5,R4,R6

Page 14: Pertemuan 9 pipelining

14

b. Menangani Data Hazard dalam Software

Jika tanggung jawab untuk mendeteksi dependency tersebut

sepenuhnya diserahkan pada software,maka compiler harus

menyisipkan instruksi NOP untuk mendapatkan hasil yang

tepat,kemungkinan ini mengilustrasikan link tertutup antara

compiler dan hardwere.

Page 15: Pertemuan 9 pipelining

15

Penyerahan tugas seperti penyisipan instruksi NOP ke

compiler menghasilkan hardwere yang lebih

sederhana.Dengan menyadari kebutuhan terhadap

jeda,maka compiler dapat mencoba menyusun ulang

instruksi untuk melakukan tugas yang berguna dalam

slot NOP menghasilkan ukuran kode yang lebih

besar.

Page 16: Pertemuan 9 pipelining

16

b. Efek Samping

Data depedenci yang ada pada contoh sebelumnya eksplisitan dan mudah dideteksi karena register yang terlibat dinamai sebagai destinasi dalam instruksi I1 dan source dalam I2 kadang kadang suatu instruksi mengubah isi register selain yang disebut sebagai destinasi.

Contohnya adalah instruksi yang menggunakan mode pengalamatan autoincrement autodecrement.

Page 17: Pertemuan 9 pipelining

17

Adapun efek samping lain yang melibatkan condition

code flag, adalah yang digunakan oleh instruksi seperti

conditional branch dan add-with – carry. Misalkan register

R1 dan R2 menyimpan bilangan integer double –precision

yang akan kita tambahkan ke bilangan double – precision

yang lain dalam register R3 dan R4

Page 18: Pertemuan 9 pipelining

18

C. INSTRUCTION HAZARD

Tujuan unit pengambilan instruksi fetch adalah untuk menyediakan arus instruksi tetap bagi unit eksekusi.kapanpun arus ini diinterupsi,maka pipeline stall,

Sekarang kita akan menganalisa efek instruksi branch dan teknik yang dapat digunakan untuk mengurangi pengaruhnya. Kita mulai dengan unconditional branch.

Page 19: Pertemuan 9 pipelining

19

A. Unconditional Branch

Pengurangan Bench penalty dilakukan dengan,

menghitung alamat branch lebih awal dalam pipeline.

Biasanya unit pengambilan instruksi memiliki dedicated

hardwere untuk mengidentifikasi instruksi brench dan

menghitung alamt branch target secepat mungkin

setelah suatu instruksi diambil.

Page 20: Pertemuan 9 pipelining

20

b. Queue dan Prefetching Instruksi

Cache miss atau instruksi branch men-stall pipeline selama

satu clock cycle atau lebih untuk mengurangi efek interupsi

tersebut , bayak processor menggunakan unit pengambilan

canggih yang dapat mengambil instruksi sebelum diperlukan

dan meletakkannya dalam Queue.

Page 21: Pertemuan 9 pipelining

21

c. Conditional Branch dan Branch Prediction

Instruksi conditional branch menimbulkan hazard

tambahan yabg disebabkan oleh ketergantungan kondisi

branch pada hasil instruksi sebelumnya. Keputusan untuk

branch tidak dapat dibuat hingga eksekusi instruksi

tersebut telah selesai.

Page 22: Pertemuan 9 pipelining

22

d. Delayed Branch

Keefektifan pendekatan delayed branch tergantung pada seberapa sering pengaturan ulang instruksi dimungkinkan. Data eksperiment yang dikumpulkan dari banyak program mengindikasikan bahwa teknik kompilasi yang rumit dapat menggunakan satu branch delay slot pada maksimal 85 persen kasus. Untuk prosessor dengan dua branch delay slot, compiler mencoba menemukan dua instruksi sebelum instruksi branch yang dapat dipindahkannya ke delay slot tanpa menimbulkan eror logika.

Page 23: Pertemuan 9 pipelining

23

e. Prediksi Branch

Jika keluaran branch random, maka setengah branch akan dilakukan. Jadi pendekatan sederhana dengan mengasumsikan bahwa branch branch tidak akan dilakukan akan menghemat 50 persen waktu yang dibuang untuk melakukan conditional branch. Akan tetapi, performa lebih baik dapat dicapai jika kita mengatur beberapa instruksi branch yang akan diprediksikan untuk dilakukan dan yang lain untuk tidak dilakukan, tergantung pada kelakuan program yang diharapkan.

Page 24: Pertemuan 9 pipelining

24

f. Prediksi Branch Dinamik

Tujuan algoritma prediksi branch adalah untuk

mengurangi kemungkinan membuat keputusan yang

salah, untuk menghindari mengambil instruksi yang pada

akhirnya harus dibuang. Dalam skema predisk branch,

hardware prosessor memperkirakan kemiripan suatu

branch yang dilakukan dengan mencatat keputusan

branchsetiap kali instruksi tersebut dieksekusi.

Page 25: Pertemuan 9 pipelining

25

D. PENGARUH PADA SET INSTRUKSI

Kita telah melihat bahwa beberapa instruksi lebih sesuai untuk eksekusi pipelined dari pada yang lain. Misalnya, efek samping instruksi dapat menyebabkan data dependency yang tidak diinginkan. Dalam bagian ini, kita menganalisis hubungan antara fitur eksekusi pipelined dan instruksi mesin. Kita membahas dua aspek utama instruksi mesin-mode pengalaman dan conditioan code flag.

Page 26: Pertemuan 9 pipelining

26

a. Mode Pengelamatan

Dalam memilih mode pengelamatan untuk diimplementasikan dalam prosessor pipelined, kita harus memperhatikan efek tiap mode pengelamatan pada aliran instruksi dalam pipelined. Dua pertimbangan penting yang berkaitan dengan hal ini adalah efek samping mode seperti autoincrement dan autodecrement dan tingkat dimana mode pengelamatan complex menyebabkan pipeline menjadi stall. Factor penting lain adalah apakah suatu mode akan lebih dipilih oleh suatu compiler .

Page 27: Pertemuan 9 pipelining

27

b. Condition Code

condition code flag disimpan dalam processor status register. Flag tersebut diset atau dikosongkan oleh banyak intruksi,sehingga dapat diuji oleh instruksi conditional branch yang berurutan untuk mengubah aliran eksekusi program. Optimizing compiler untuk prosesor pipelined mencoba menyusun ulang instruksi untuk menghindari stalling pipeline pada saat terjadi branch atau data dependency antara instruksi yang berurutan.

Page 28: Pertemuan 9 pipelining

28

D. KESIMPULAN

Pipelined adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinou pada unit pemrosesor. Dengan cara ini, maka unit pemrosesan selalu bekerja.

Page 29: Pertemuan 9 pipelining

29

TERIMA K

ASIH