E N D
Pertemuan 12(PIPELINING) PENDAHULUAN Pipelining, yang digunakandalamkomputer modern untukmencapaiperformatinggi. Kita mulaidenganmenjelaskandasar pipelining danbagaimanapengaruhnyaterhadappeningkatanperforma. Kemudiankamiakanmenganalisisfiturinstruksimesin yang memfasilitasieksekusi pipelined, dankitamenunjukkanbahwapilihaninstruksiakanmemberikanpengaruh yang signifikanpadaperforma. Organisasi pipelined memerlukanteknikkompilasi yang canggih, dan compiler optimizing telahdikembangkanuntuktujuanini. Fungsiutama compiler tersebutadalahmenagturulangurutanoperasiuntukmemaksimalkankeuntunganeksekusi pipelined. Group 4 PTIK 09
8.1 KonsepDasar Kecepataneksekusi program dipengaruhiolehbanyak factor. Suatucarauntukmeningkatkanperformaadalahdenganmenggunakanteknologisirkuit yang lebihcepatuntukmembangunprosesordanmemoriutama. Kemungkinan lain adalahdenganmengatur hardware sehinggalebihdarisatuoperasidapatdilakukanpadasaat yang sama. Dengancaraini, jumlahoperasi yang dilakukanperdetikditingkatkansekalipun elapsed time yang diperlukanuntukmelakukantiapsatuoperasitidakdiubah. Group 4 PTIK 09
- Ide pipelining dapatdigunakanpada computer. Prosesormengeksekusisuatu program denganmengambildanmengeksekusiinstruksi, satudemisatu. - MisalkanFidanEimengacukelangkahpengambilandaneksekusiuntukinstruksi Ii. Eksekusi program terdiridarirangkaianlangkahpengambilandaneksekusi. Group 4 PTIK 09
8.1.1 PerananMemori Cache Tiap stage dalam pipeline diharapkanmenyelesaikanoperasinyadalamsuatu clock cycle. Karenanya, periode clock haruscukup lama untukmenyelesaikannyatugas yang sedangdilakukaanpadatiap stage. Jika unit yang berbedamemerlukanjumlahwaktu yang berbeda, makaperiode clock harusmemungkinkantugasterlamadapatdiselesaikan. Suatu unit yang menyelesaikantugasnyalebihawalakan idle selamasisaperiode clock. Group 4 PTIK 09
Suatu unit yang menyelesaikantugasnyalebihawalakanideselamasisaperiode clock. Karenanya, pipeline paling efektifdalammeningkatkanperformajikatugas yang sedangdilakukandalam stage yanberbedaamemerlukanjumlahwaktu yang sama. Group 4 PTIK 09
8.1.2 Performa Pipeline Prosesor pipeline menyesaikanpengolahansatuinstruksipadatiap clock cycccle,yang berate kecepatanpegolahaninstruksitersabutempat kali lebihbesardarioparesiberurutan. Peningkatanpotensidalamperforma yang dihasilkandari pipelining proporsionaldenganjumlah pipeline stage. Akantetapi, peningkataninihanyaakandicapaijikaoperasi pipelined dapatdipertahankantanpainterupsimelaluieksekusi program. Sayangnya, inibukanlahmasalahnya. Group 4 PTIK 09
8.2 DATA HAZARD Data hazard adalahsituasidimana pipeline di-stall karena data yang akandikenaiopersiditundadenganbeberapaalasan, seperti yang diilustrasikan. kitasekarangakanmenganalisapersoalanketersediaan data dalambeberapadetil. Group 4 PTIK 09
8.2.1 Operand Forwarding Data hazard yang barusajadideskripsikanmunculkarenasatuinstruksi.instruksi I2 menunggu data dituliskandalam register file. Akantetapi, data tersebuttersediapadaautput ALU padasaat Execute stage menyelesaikanlangkah E1 di-forwading stage menyelesaikanlangkah E1 karenanyajedadapatdikurangi,ataumungkindihilangkan , jikakitamengatur agar hasilinstruksi I1 di forward langsunguntukdigunakanpadalangkah E2. Group 4 PTIK 09
8.2.2 Menangani Data Hazard dalam Software Penyerahantugassepertipenyisipaninstruksi NOP ke compiler menghasilkanhardwere yang lebihsederhana.Denganmenyadarikebutuhanterhadapjeda,maka compiler dapatmencobamenyusunulanginstruksiuntukmelakukantugas yang bergunadalam slot NOP menghasilkanukurankode yang lebihbesar. Group 4 PTIK 09
8.2.3 EfekSamping Adapunefeksamping lain yang melibatkan condition code flag,adalah yang digunakanolehinstruksiseperti conditional branch dan add-with – carry.Misalkan register R1 dan R2 menyimpanbilangan integer double –precision yang akankitatambahkankebilangan double – precision yang lain dalam register R3 dan R4. Group 4 PTIK 09
8.3 INSTRUCTION HAZARD Tujuan unit pengambilaninstruksi fetch adalahuntukmenyediakanarusinstruksitetapbagi unit eksekusi.kapanpunarusinidiinterupsi,maka pipeline stall,sepertipadagambar 8.4 yang mengilustrasikankasus cache miss.Instruksi branch dapat pula menyebapkan pipeline menjadi stall. Sekarangkitaakanmenganalisaefekinstruksi branch danteknik yang dapatdigunakanuntukmengurangipengaruhnya. Group 4 PTIK 09
8.3.1 Unconditional Branch Waktu yang hilangkarenainstruksi branch seringdisebut Branch penalty.Branch penalty adalahsatu clock cycle. Untuk pipeline yang lebihpanjang,branch penalty bias lebihtinggi Group 4 PTIK 09
Queue danPrefetchingInstruksi Cache miss atauinstruksi branch men-stall pipeline selamasatu clock cycle ataulebihuntukmengurangiefekinterupsitersebut , bayak processor menggunakan unit pengambilancanggih yang dapatmengambilinstruksisebelumdiperlukandanmeletakkannyadalam Queue. Group 4 PTIK 09
8.3.2 Conditional Branch dan Branch Prediction Instruksi conditional branch menimbulkan hazard tambahanyabgdisebabkanolehketergantungankondisi branch padahasilinstruksisebelumnya. Keputusanuntuk branch tidakdapatdibuathinggaeksekusiinstruksitersebuttelahselesai. Group 4 PTIK 09
Delayed Branch Keefektifanpendekatan delayed branch tergantungpadaseberapaseringpengaturanulanginstruksidimungkinkan. Data eksperiment yang dikumpulkandaribanyak program mengindikasikanbahwateknikkompilasi yang rumitdapatmenggunakansatu branch delay slot padamaksimal 85 persenkasus. Untukprosessordengandua branch delay slot, compiler mencobamenemukanduainstruksisebeluminstruksi branch yang dapatdipindahkannyake delay slot tanpamenimbulkanerorlogika. Group 4 PTIK 09
Prediksi Branch Jikakeluaran branch random, makasetengah branch akandilakukan. Jadipendekatansederhanadenganmengasumsikanbahwa branch branchtidakakandilakukanakanmenghemat 50 persenwaktu yang dibuanguntukmelakukan conditional branch. Akantetapi, performalebihbaikdapatdicapaijikakitamengaturbeberapainstruksi branch yang akandiprediksikanuntukdilakukandan yang lain untuktidakdilakukan, tergantungpadakelakuan program yang diharapkan. Group 4 PTIK 09
Prediksi Branch Dinamik Tujuanalgoritmaprediksi branch adalahuntukmengurangikemungkinanmembuatkeputusan yang salah, untukmenghindarimengambilinstruksi yang padaakhirnyaharusdibuang. Dalamskemapredisk branch, hardware prosessormemperkirakankemiripansuatu branch yang dilakukandenganmencatatkeputusanbranchsetiap kali instruksitersebutdieksekusi. Group 4 PTIK 09
8.4 PENGARUH PADA SET INSTRUKSI Kita telahmelihatbahwabeberapainstruksilebihsesuaiuntukeksekusi pipelined daripada yang lain. Misalnya, efeksampinginstruksidapatmenyebabkan data dependency yang tidakdiinginkan. Dalambagianini, kitamenganalisishubunganantarafitureksekusi pipelined daninstruksimesin. Kita membahasduaaspekutamainstruksimesin-mode pengalamandanconditioan code flag. Group 4 PTIK 09
8.4.1 Mode Pengelamatan Mode pengelamatansebaiknyamenyediakansaranauntukmengaksesberbagaistruktur data secaramudahdanefisien. Mode pengalamatan yang baikantaraindeks , indirect, autoincrement, danautodecrement. Banyakprosessormenyediakanberbagaikombinasimodetersebutuntukmeningkatkanfleksibilitas set instruksinya. Mode pengelamatan complex, misalnyamelibatkan double indexing, seringsekaliditemui. Group 4 PTIK 09
8.4.2 Condition Code Condition code flag disimpandalam processor status register. Flag tersebutdisetataudikosongkanolehbanyakintruksi,sehinggadapatdiujiolehinstruksi conditional branch yang berurutanuntukmengubahaliraneksekusi program. Cara pengamanan condition code. Pertama, untukmenyediakanfleksibilitasdalampenyusunanulangintruksi, condition-code flag sebaiknyadipengaruhiolehsesedikitmungkinintruksi. Kedua, compiler harusmampumenentukanbagianmanadariintruksi program yang dipengaruhioleh condition code danbagianmana yang tidak. Set intruksi yang didesaindenganpepelingbiasanyamenyediakanfleksibilitas yang diinginkan. Group 4 PTIK 09