Pert.12 Pipelining

Download Report

Transcript Pert.12 Pipelining

PENDAHULUAN
Pipelining, yang digunakan dalam komputer modern
untuk mencapai performa tinggi. Kita mulai dengan
menjelaskan
dasar
pipelining
dan
bagaimana
pengaruhnya terhadap peningkatan performa. Kemudian
kami akan menganalisis fitur instruksi mesin yang
memfasilitasi eksekusi pipelined, dan kita menunjukkan
bahwa pilihan instruksi akan memberikan pengaruh yang
signifikan
pada
performa.
Organisasi
pipelined
memerlukan teknik kompilasi yang canggih, dan compiler
optimizing telah di kembangkan untuk tujuan ini. Fungsi
utama compiler tersebut adalah menagtur ulang urutan
operasi untuk memaksimalkan keuntungan eksekusi
pipelined.
Group 4 PTIK 09
1
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.
Kemungkinan 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.
Group 4 PTIK 09
2
- 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.
Group 4 PTIK 09
3
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. Suatu unit yang menyelesaikan
tugasnya lebih awal akan idle selama sisa
periode clock.
Group 4 PTIK 09
4
Suatu unit yang menyelesaikan
tugasnya lebih awal akan ide selama
sisa periode clock. Karenanya, pipeline
paling efektif dalam meningkatkan
performa jika tugas yang sedang
dilakukan dalam stage yan berbedaa
memerlukan jumlah waktu yang sama.
Group 4 PTIK 09
5
Prosesor pipeline menyesaikan pengolahan
satu instruksi pada tiap clock cycccle,yang
berate 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. Sayangnya, ini bukanlah
masalahnya.
Group 4 PTIK 09
6
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.
Group 4 PTIK 09
7
Data hazard yang baru saja dideskripsikan
muncul
karena
satu
instruksi.instruksi
I2
menunggu data dituliskan dalam register file.
Akan tetapi, data tersebut tersedia pada autput
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.
Group 4 PTIK 09
8
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.
Group 4 PTIK 09
9
Adapun efek samping lain yang melibatkan
condition code flag,adalah yang digunakan oleh
instruksi seperti conditional branch dan addwith – 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.
Group 4 PTIK 09
10
Tujuan unit
pengambilan instruksi fetch
adalah untuk menyediakan arus instruksi tetap bagi
unit eksekusi.kapanpun arus ini diinterupsi,maka
pipeline stall,seperti pada gambar 8.4 yang
mengilustrasikan kasus cache miss.Instruksi branch
dapat pula menyebapkan pipeline menjadi stall.
Sekarang kita akan menganalisa efek instruksi
branch dan teknik yang dapat digunakan untuk
mengurangi pengaruhnya.
Group 4 PTIK 09
11
Waktu yang hilang karena instruksi branch
sering disebut Branch penalty.Branch penalty
adalah satu clock cycle. Untuk pipeline yang
lebih panjang,branch penalty bias lebih tinggi
Group 4 PTIK 09
12
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.
Group 4 PTIK 09
13
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.
Group 4 PTIK 09
14
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.
Group 4 PTIK 09
15
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.
Group 4 PTIK 09
16
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.
Group 4 PTIK 09
17
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.
Group 4 PTIK 09
18
Mode pengelamatan sebaiknya menyediakan
sarana untuk mengakses berbagai struktur data
secara mudah dan efisien. Mode pengalamatan
yang baik antara indeks , indirect, autoincrement,
dan
autodecrement.
Banyak
prosessor
menyediakan berbagai kombinasimode tersebut
untuk meningkatkan fleksibilitas set instruksinya.
Mode pengelamatan complex, misalnya melibatkan
double indexing, sering sekali ditemui.
Group 4 PTIK 09
19
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.
Cara pengamanan condition code. Pertama, untuk
menyediakan fleksibilitas dalam penyusunan ulang
intruksi, condition-code flag sebaiknya dipengaruhi oleh
sesedikit mungkin intruksi. Kedua, compiler harus
mampu menentukan bagian mana dari intruksi program
yang dipengaruhi oleh condition code dan bagian mana
yang tidak. Set intruksi yang didesain dengan pepeling
biasanya menyediakan fleksibilitas yang diinginkan.

Group 4 PTIK 09
20