Instr Paralel n Superscalar

27
ARSITEKTUR KOMPUTER MINGGU VIII BAB 13 Paralel Tingkat Instruksi dan Prosesor Superskalar

Transcript of Instr Paralel n Superscalar

Page 1: Instr Paralel n Superscalar

ARSITEKTUR KOMPUTERMINGGU VIII

BAB 13Paralel Tingkat Instruksi dan Prosesor Superskalar

Page 2: Instr Paralel n Superscalar

Apa itu Superskalar?

Instruksi Umum (Aritmatika, load/store, pencabangan kondisional) dapat diawali dan dieksekusi secara independen/mandiri

Dapat diaplikasikan setara pada RISC & CISC

Biasanya diaplikasikan pada RISC

Page 3: Instr Paralel n Superscalar

Mengapa Superskalar?

Sebagian besar operasi dilakukan pada kuantitas skalar

Penyempurnaan operasi-operasi ini untuk memperoleh penyempurnaan secara keseluruhan

Page 4: Instr Paralel n Superscalar

Organisasi Umum Superskalar

Page 5: Instr Paralel n Superscalar

Superpipelin

Banyak tahapan pipeline memerlukan clock cycle kurang dari setengah

Clock speed internal dua kali ganda dua dapat memperoleh 2 tugas pada tiap external clock cycle

Superscalar mengijinkan operasi fetch dan execute secara paralel

Page 6: Instr Paralel n Superscalar

Superscalar vs

Superpipeline

Page 7: Instr Paralel n Superscalar

Keterbatasan

Paralel pada level instruksiOptimisasi berbasis CompilerTeknik tingkat perangkat kerasDibatasi oleh

Ketergantungan data sesungguhnya Ketergantungan Prosedural Benturan sumberdaya Ketergantungan luaran Antidependensi

Page 8: Instr Paralel n Superscalar

Ketergantungan data sesungguhnya

ADD r1, r2 (r1 := r1+r2;)MOVE r3,r1 (r3 := r1;)Dapat melakukan fetch dan decode

instruksi kedua secara paralel terhadap instuksi pertama

Tidak dapat mengeksekusi instruksi kedua sampai instruksi pertama selesai

Page 9: Instr Paralel n Superscalar

Ketergantungan Prosedural

Tidak dapat mengeksekus instruksi setelah pencabangan secara paralel terhadap instruksi sebelum pencabangan

Juga, bila panjang instruksi tidak tetap, instruksi-instruksi harus didekode untuk memperolehhmenghasilkan berapa banyak fetch yang diperlukan

Hal ini akan mencegah fetch secara simultan/serempak

Page 10: Instr Paralel n Superscalar

Benturan Sesumber

Dua atau lebih instruksi memerlukan akses terhadap sesumber yang sama pada saat yang sama Mis: dua instruksi aritmatik

Dapat menduplikasi sesumber Mis: memiliki 2 unti aritmatik (ALU)

Page 11: Instr Paralel n Superscalar

Ketergantungan/Dependensi

Page 12: Instr Paralel n Superscalar

Isu Desain

Paralel Level Instruksi Instruksi-instruksi dalam sebuah urutan salling

independent Eksekusi dapat dilakukan secara tumpang-

tindaih (overlapped) Diatur oleh ketergantungan data dan prosedural

Paralel Mesin Kemampuan untuk mendapatkan keuntungan

dari paralel level instruksi Diatur oleh jumlah pipeline yang paralel

Page 13: Instr Paralel n Superscalar

Kebijakan Penerbitan Instruksi (Instruction Issue Policy)

Diurutkan secara bagaimana instruksi diambil (fetched)

Diurutkan secara bagaimana instruksi di eksekusi (executed)

Diurutkan secara bagaimana instruksi mengubah register dan memori

Page 14: Instr Paralel n Superscalar

Penerbitan Sesuai UrutanPelengkapan Sesuai Urutan

(In-Order Issue In-Order Completion)Menerbitkan instruksi sesuai urutan

kejadianTidak sangat efisienBoleh menerbitkan lebih dari 1 instruksiBila perlu instruksi harus stall (terhenti)

Page 15: Instr Paralel n Superscalar

In-Order Issue In-Order Completion (Diagram)

Page 16: Instr Paralel n Superscalar

In-Order Issue Out-of-Order Completion (Pelengkapan tidak sesuai urutan)Ketergantungan Luaran

R3:= R3 + R5; (I1) R4:= R3 + 1; (I2) R3:= R5 + 1; (I3) I2 tergantung pada hasil dari I1 –

ketergantungan data Bila I3 selesai sebelum I1, hasil dari I1 akan

menjadi salah, merupakan ketergantungan luaran (read-write)

Page 17: Instr Paralel n Superscalar

In-Order Issue Out-of-Order Completion (Diagram)

Page 18: Instr Paralel n Superscalar

Penerbitan tidak Sesuai Urutan Pelengkapan tidak Sesuai Urutan (Out-of-Order IssueOut-of-Order Completion)

Pipeline dekode Decouple dari eksekusi pipeline (Decouple decode pipeline from execution pipeline)

Dapat dilanjutkan ke fetch dan decode sampai seluruh pipeline selesai

Saat unti fungsional diperoleh, sebuah instruksi dapat dieksekusi

Karena instruksi telah didekode, proseso rdapat melihat instruksi berikutnya

Page 19: Instr Paralel n Superscalar

Out-of-Order Issue Out-of-Order Completion (Diagram)

Page 20: Instr Paralel n Superscalar

Antidependensi

Write-write dependency R3:=R3 + R5; (I1) R4:=R3 + 1; (I2) R3:=R5 + 1; (I3) R7:=R3 + R4; (I4) I3 tidak dapat selesai sebelum I2 dimulai

seperti halnya I2 memerlukan nilai dari R3 dan I3 mengubah R3

Page 21: Instr Paralel n Superscalar

Penamaan ulang Register

Ketergantungan luaran dan antidependensi terjadi karena isi register mungkin merefleksikan urutan yang benar dari yang diuturkan dari program

Mungkin dihasilkan dalampipeline stallRegister dialokasikan secara dinamis

i.e. Register tidak dinamai secara spesifik

Page 22: Instr Paralel n Superscalar

Contoh Penamaan Ulang Register

R3b:=R3a + R5a (I1)R4b:=R3b + 1 (I2)R3c:=R5a + 1 (I3)R7b:=R3c + R4b (I4)Tanpa tanda di belakang R (R1, R2, R3, dst)

yang merujuk ke register lojikal dalam instruksiDengan tanda di belakang R yang

mengalokasikan registerCatatan : R3a R3b R3c

Page 23: Instr Paralel n Superscalar

Paralel Mesin

Duplikasi sesumberPenerbitan tidak sesuai urutanPenamaan ulangFungsi-fungsi duplikasi tak bermakna

tanpa penamaan ulang registerMemerlukan jendela instruksi yang

cukupp besar (lebih dari 8)

Page 24: Instr Paralel n Superscalar

Prediksi Pencabangan (Branch Prediction)

Fetch pada 80486 dapat terjadi next sequential instruction after branch (instruksi berikkutnya setelah pencabangan) maupun branch target instruction (instruksi target pencabangan)

Memberikan penundaan 2 siklus bila mengambil pencabangan

Page 25: Instr Paralel n Superscalar

Pencabangan yang Ditunda pada RISC

Menghitung hasil dari pencabangan sebelum instruksi yang tidak digunakan di prefetch

Selslu mengeksekusi instruksi tunggal segera mengikuti pencabangan

Menjaga pipeline berjalan penuh selama laju pengambilan instruksi baru

Tidak sebaik superscalar Instruksi ganda perlu dieksekusi dalam slot tunda Masalah ketergantungan instruksi

Berbalik ke prediksi pencabangan

Page 26: Instr Paralel n Superscalar

Eksekusi Superscalar

Page 27: Instr Paralel n Superscalar

Implementasi SuperscalarFetch instruksi ganda secara serempak Logika untuk menentukan dependensi murni

termasuk nilai registerMekanisme untuk mengkomunikasikan nilai-nilai

registerMekanisme untuk memulai instruksi ganda secara

paralelSesumbar-sesumbar untuk eksekusi paralel dari

instruksi gandaMekanisme untuk melakukan keadaan proses

dengan urutan yang benar