Pertemuan 9 pipelining
-
Upload
jumiathyasiz -
Category
Technology
-
view
1.720 -
download
0
Transcript of Pertemuan 9 pipelining
1
UNIVERSITAS NEGERI MAKASSAR
ORGANISASI KOMPUTER
PIPELINING
JUMIATI 092901035
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
3
D. Pengaruh Pada Set Instruksi Mode Pengelamatan Condition Code
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.
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.
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 5
6 7 8 9
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 : Mul R2,R3,R4
NOP
NOP
I2: 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
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.
29
TERIMA K
ASIH