29
BY AYU ANGGRIANI H 1 MATA KULIAH: PRODI PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER JURUSAN PENDIDIKAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR 2011 PERTEMUAN 12 PIPELINING

MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

Embed Size (px)

Citation preview

Page 1: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

BY AYU ANGGRIANI H

1

MATA KULIAH:

PRODI PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER JURUSAN PENDIDIKAN TEKNIK ELEKTRO

FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR

2011

PERTEMUAN 12

PIPELINING

Page 2: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

CREATED BY: AYU ANGGRIANI H

092904010

PTIK A 2009

BY AYU ANGGRIANI H

2

Page 3: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

PIPELINING

A. 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

3

Page 4: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

D. Pengaruh Pada Set Instruksi

Mode Pengelamatan

Condition Code

4

Page 5: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

A. Konsep Dasar

5

Kecepatan eksekusi program dipengaruhi oleh banyak factor. Suatu

cara untuk meningkatkan performa adalah dengan menggunakan teknologi

sirkuit yang lebihcepat untuk membangun prosesor dan memori utama.

Kemingkinan lain adalah dengan mengatur hardware sehingga lebih dari

satu operasi dapat dilakukan pada saat yang sama. Dengan cara ini, jumlah

operasi yang dilakukan perdetik ditingkatkan sekalipun elapsed time yang

diperlukan untuk melakukan tiap satu operasi tidak di ubah.

Page 6: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

6

Pipelining merupakan cara efektif untuk mengatur aktifitas konkuren

dalam system computer. Ide dasarnya sangat sederhana. Hal ini sering

ditemui di dalam pabrik, dimana pipelining umumnya dikenal sebagai

operasi assembly-line. Tidak diragukan lagi bahwa pembaca telah

mengenal assembly line yang digunakan dalam pembuatan mobil

Page 7: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

7

Page 8: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

8

Page 9: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

9

Page 10: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

10

Page 11: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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

11

Page 12: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

12

Page 13: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

13

Page 14: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

14

NOP (No – operation ), sebagai berikut :

I1 : Mul R2,R3,R4

NOP

NOP

I2: Add R5,R4,R6

Page 15: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

b. Menangani Data Hazard dalam Software

15

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 16: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

16

Page 17: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

17

Page 18: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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

18

Page 19: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

19

Page 20: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

20

Page 21: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

21

Page 22: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

22

Page 23: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

23

Page 24: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

24

Page 25: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

25

Page 26: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

26

Page 27: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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 .

27

Page 28: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

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.

28

Page 29: MATA KULIAH - ayuanggrianihptik09.files.wordpress.com · Kecepatan eksekusi program ... sirkuit yang lebihcepat untuk membangun prosesor dan memori utama. Kemingkinan lain adalah

SEMOGA BERMANFAAT

29