Pert.11 pipelining
-
Upload
ical-militanmannojack -
Category
Documents
-
view
453 -
download
2
Transcript of Pert.11 pipelining
PENDAHULUANPipelining, yang digunakan dalam komputer modern
untuk mencapai performa tinggi. Kita mulai denganmenjelaskan dasar pipelining dan bagaimanapengaruhnya terhadap peningkatan performa. Kemudiankami akan menganalisis fitur instruksi mesin yangmemfasilitasi eksekusi pipelined, dan kita menunjukkanbahwa pilihan instruksi akan memberikan pengaruh yangsignifikan pada performa. Organisasi pipelinedmemerlukan teknik kompilasi yang canggih, dan compileroptimizing telah di kembangkan untuk tujuan ini. Fungsiutama compiler tersebut adalah menagtur ulang urutanoperasi untuk memaksimalkan keuntungan eksekusipipelined.
1Group 4 PTIK 09
Kecepatan eksekusi program dipengaruhioleh banyak factor. Suatu cara untukmeningkatkan performa adalah denganmenggunakan teknologi sirkuit yang lebihcepatuntuk membangun prosesor dan memori utama.Kemungkinan lain adalah dengan mengaturhardware sehingga lebih dari satu operasi dapatdilakukan pada saat yang sama. Dengan cara ini,jumlah operasi yang dilakukan perdetikditingkatkan sekalipun elapsed time yangdiperlukan untuk melakukan tiap satu operasitidak di ubah.
2Group 4 PTIK 09
- 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.
3Group 4 PTIK 09
Tiap stage dalam pipeline diharapkanmenyelesaikan operasinya dalam suatu clockcycle. Karenanya, periode clock harus cukuplama untuk menyelesaikannya tugas yangsedang dilakukaan pada tiap stage. Jika unityang berbeda memerlukan jumlah waktu yangberbeda, maka periode clock harusmemungkinkan tugas terlama dapatdiselesaikan. Suatu unit yang menyelesaikantugasnya lebih awal akan idle selama sisaperiode clock.
4Group 4 PTIK 09
Suatu unit yang menyelesaikantugasnya lebih awal akan ide selamasisa periode clock. Karenanya, pipelinepaling efektif dalam meningkatkanperforma jika tugas yang sedangdilakukan dalam stage yan berbedaamemerlukan jumlah waktu yang sama.
5Group 4 PTIK 09
Prosesor pipeline menyesaikan pengolahansatu instruksi pada tiap clock cycccle,yangberate kecepatan pegolahan instruksi tersabutempat kali lebih besar dari oparesi berurutan.Peningkatan potensi dalam performa yangdihasilkan dari pipelining proporsional denganjumlah pipeline stage. Akan tetapi, peningkatanini hanya akan dicapai jika operasi pipelineddapat di pertahankan tanpa interupsi melaluieksekusi program. Sayangnya, ini bukanlahmasalahnya.
6Group 4 PTIK 09
Data hazard adalah situasi dimana pipelinedi-stall karena data yang akan dikenai opersi ditunda dengan beberapa alasan, seperti yangdiilustrasikan. kita sekarang akan menganalisapersoalan ketersediaan data dalam beberapadetil.
7Group 4 PTIK 09
Data hazard yang baru saja dideskripsikanmuncul karena satu instruksi.instruksi I2menunggu data dituliskan dalam register file.Akan tetapi, data tersebut tersedia pada autputALU pada saat Execute stage menyelesaikanlangkah E1 di-forwading stage menyelesaikanlangkah E1 karenanya jeda dapat dikurangi,ataumungkin dihilangkan , jika kita mengatur agarhasil instruksi I1 di forward langsung untukdigunakan pada langkah E2.
8Group 4 PTIK 09
Penyerahan tugas seperti penyisipaninstruksi NOP ke compiler menghasilkanhardwere yang lebih sederhana.Denganmenyadari kebutuhan terhadap jeda,makacompiler dapat mencoba menyusun ulanginstruksi untuk melakukan tugas yang bergunadalam slot NOP menghasilkan ukuran kode yanglebih besar.
9Group 4 PTIK 09
Adapun efek samping lain yang melibatkancondition code flag,adalah yang digunakan olehinstruksi seperti conditional branch dan add-with – carry.Misalkan register R1 dan R2menyimpan bilangan integer double –precisionyang akan kita tambahkan ke bilangan double –precision yang lain dalam register R3 dan R4.
10Group 4 PTIK 09
Tujuan unit pengambilan instruksi fetchadalah untuk menyediakan arus instruksi tetap bagiunit eksekusi.kapanpun arus ini diinterupsi,makapipeline stall,seperti pada gambar 8.4 yangmengilustrasikan kasus cache miss.Instruksi branchdapat pula menyebapkan pipeline menjadi stall.Sekarang kita akan menganalisa efek instruksibranch dan teknik yang dapat digunakan untukmengurangi pengaruhnya.
11Group 4 PTIK 09
Waktu yang hilang karena instruksi branchsering disebut Branch penalty.Branch penaltyadalah satu clock cycle. Untuk pipeline yanglebih panjang,branch penalty bias lebih tinggi
12Group 4 PTIK 09
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.
13Group 4 PTIK 09
Instruksi conditional branch menimbulkanhazard tambahan yabg disebabkan olehketergantungan kondisi branch pada hasilinstruksi sebelumnya. Keputusan untuk branchtidak dapat dibuat hingga eksekusi instruksitersebut telah selesai.
14Group 4 PTIK 09
Keefektifan pendekatan delayed branchtergantung pada seberapa sering pengaturan ulanginstruksi dimungkinkan. Data eksperiment yangdikumpulkan dari banyak programmengindikasikan bahwa teknik kompilasi yangrumit dapat menggunakan satu branch delay slotpada maksimal 85 persen kasus. Untuk prosessordengan dua branch delay slot, compiler mencobamenemukan dua instruksi sebelum instruksi branchyang dapat dipindahkannya ke delay slot tanpamenimbulkan eror logika.
15Group 4 PTIK 09
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.
16Group 4 PTIK 09
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.
17Group 4 PTIK 09
Kita telah melihat bahwa beberapa instruksilebih sesuai untuk eksekusi pipelined dari padayang lain. Misalnya, efek samping instruksi dapatmenyebabkan data dependency yang tidakdiinginkan. Dalam bagian ini, kita menganalisishubungan antara fitur eksekusi pipelined daninstruksi mesin. Kita membahas dua aspek utamainstruksi mesin-mode pengalaman dan conditioancode flag.
18Group 4 PTIK 09
Mode pengelamatan sebaiknya menyediakansarana untuk mengakses berbagai struktur datasecara mudah dan efisien. Mode pengalamatanyang baik antara indeks , indirect, autoincrement,dan autodecrement. Banyak prosessormenyediakan berbagai kombinasimode tersebutuntuk meningkatkan fleksibilitas set instruksinya.Mode pengelamatan complex, misalnya melibatkandouble indexing, sering sekali ditemui.
19Group 4 PTIK 09
Condition code flag disimpan dalam processorstatus register. Flag tersebut diset atau dikosongkan olehbanyak intruksi,sehingga dapat diuji oleh instruksiconditional branch yang berurutan untuk mengubahaliran eksekusi program.
Cara pengamanan condition code. Pertama, untukmenyediakan fleksibilitas dalam penyusunan ulangintruksi, condition-code flag sebaiknya dipengaruhi olehsesedikit mungkin intruksi. Kedua, compiler harusmampu menentukan bagian mana dari intruksi programyang dipengaruhi oleh condition code dan bagian manayang tidak. Set intruksi yang didesain dengan pepelingbiasanya menyediakan fleksibilitas yang diinginkan.
20Group 4 PTIK 09