Dokumen tersebut membahas tentang konsep pipelining pada prosesor komputer. Pipelining digunakan untuk melakukan beberapa tahap pengolahan instruksi secara bersamaan dengan mengalirkannya ke berbagai stage secara berkelanjutan untuk meningkatkan throughput meskipun waktu penyelesaian setiap instruksi tetap sama. Hal ini menimbulkan tantangan seperti data hazard dan instruction hazard yang dapat ditangani dengan teknik seperti forwarding, branch prediction, dan
1. ORGANISASI KOMPUTER
PIPELINING
JUMIATI 092901035
UNIVERSITAS NEGERI MAKASSAR
1
2. 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
2
3. D. Pengaruh Pada Set Instruksi
Mode Pengelamatan
Condition Code
3
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.
4
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.
5
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.
6
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.
7
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.
8
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.
9
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
10
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.
11
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.
12
13. NOP (No – operation ), sebagai berikut :
I1 : Mul R2,R3,R4
NOP
NOP
I2: Add R5,R4,R6
13
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.
14
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.
15
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.
16
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
17
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.
18
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.
19
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.
20
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.
21
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.
22
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.
23
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.
24
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.
25
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 .
26
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.
27
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.
28