pertemuan 12 ( pipelining)

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

Upload: fedora

Post on 24-Feb-2016

35 views

Category:

Documents


0 download

DESCRIPTION

Pertemuan 12 ( PIPELINING). PENDAHULUAN - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 1

Pertemuan 12(PIPELINING)

PENDAHULUANPipelining, 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.

Page 2: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 2

8.1 Konsep Dasar

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.

Page 3: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 3

- 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.

Page 4: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 4

8.1.1 Peranan Memori Cache

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.

Page 5: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 5

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.

Page 6: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 6

8.1.2 Performa Pipeline

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.

Page 7: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 7

8.2 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.

Page 8: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 8

8.2.1 Operand Forwarding

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.

Page 9: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 9

8.2.2 Menangani Data Hazard dalam Software

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.

Page 10: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 10

8.2.3 Efek Samping

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.

Page 11: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 11

8.3 INSTRUCTION HAZARD

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.

Page 12: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 12

8.3.1 Unconditional Branch

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

Page 13: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 13

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.

Page 14: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 14

8.3.2 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.

Page 15: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 15

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.

Page 16: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 16

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.

Page 17: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 17

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.

Page 18: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 18

8.4 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.

Page 19: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 19

8.4.1 Mode Pengelamatan

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.

Page 20: Pertemuan  12 ( PIPELINING)

Group 4 PTIK 09 20

8.4.2 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. 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.