pipelining - ayu anggriani h

Download Report

Transcript pipelining - ayu anggriani h

1
MATA KULIAH:
PERTEMUAN 12
PIPELINING
PRODI PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER
JURUSAN PENDIDIKAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS NEGERI MAKASSAR
2011
BY AYU ANGGRIANI H
BY AYU ANGGRIANI H
CREATED BY:
AYU ANGGRIANI H
092904010
PTIK A 2009
2
PIPELINING
A.
B.
C.
Konsep Dasar
 Peranan memori cache
 Performa pipeline
Data Hazard
 Operand Forwarding
 Menangani data hazard dalam software
 Efek samping
Instruction Hazard
 Unconditional Branch
 Queue dan Prefetching Instruksi
 Conditional Branch dan Branch Prediction
 Delayed Branch
 Prediksi Branch
 Prediksi Branch Dinamik
3
D. Pengaruh Pada Set Instruksi
 Mode Pengelamatan
 Condition Code
4
A. Konsep Dasar
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.
5
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
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.
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.
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.
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.
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
6
7
8
9
5
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.
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.
13
NOP (No – operation ), sebagai berikut :

I1 :

NOP

NOP

I2:
Mul
R2,R3,R4
Add
R5,R4,R6
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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 .
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.
28
SEMOGA
BERMANFAAT

29