Pert.11 pipelining

20
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. 1 Group 4 PTIK 09

Transcript of Pert.11 pipelining

Page 1: 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

Page 2: Pert.11 pipelining

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

Page 3: Pert.11 pipelining

- 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

Page 4: Pert.11 pipelining

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

Page 5: Pert.11 pipelining

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

Page 6: Pert.11 pipelining

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

Page 7: Pert.11 pipelining

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

Page 8: Pert.11 pipelining

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

Page 9: Pert.11 pipelining

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

Page 10: Pert.11 pipelining

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

Page 11: Pert.11 pipelining

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

Page 12: Pert.11 pipelining

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

Page 13: Pert.11 pipelining

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

Page 14: Pert.11 pipelining

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

Page 15: Pert.11 pipelining

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

Page 16: Pert.11 pipelining

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

Page 17: Pert.11 pipelining

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

Page 18: Pert.11 pipelining

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

Page 19: Pert.11 pipelining

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

Page 20: Pert.11 pipelining

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