instr paralel n superscalar
TRANSCRIPT
![Page 1: Instr Paralel n Superscalar](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/1.jpg)
ARSITEKTUR KOMPUTERMINGGU VIII
BAB 13Paralel Tingkat Instruksi dan Prosesor Superskalar
![Page 2: Instr Paralel n Superscalar](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/3.jpg)
Mengapa Superskalar?
Sebagian besar operasi dilakukan pada kuantitas skalar
Penyempurnaan operasi-operasi ini untuk memperoleh penyempurnaan secara keseluruhan
![Page 4: Instr Paralel n Superscalar](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/4.jpg)
Organisasi Umum Superskalar
![Page 5: Instr Paralel n Superscalar](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/6.jpg)
Superscalar vs
Superpipeline
![Page 7: Instr Paralel n Superscalar](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/11.jpg)
Ketergantungan/Dependensi
![Page 12: Instr Paralel n Superscalar](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/15.jpg)
In-Order Issue In-Order Completion (Diagram)
![Page 16: Instr Paralel n Superscalar](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/17.jpg)
In-Order Issue Out-of-Order Completion (Diagram)
![Page 18: Instr Paralel n Superscalar](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/19.jpg)
Out-of-Order Issue Out-of-Order Completion (Diagram)
![Page 20: Instr Paralel n Superscalar](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/26.jpg)
Eksekusi Superscalar
![Page 27: Instr Paralel n Superscalar](https://reader034.vdocuments.mx/reader034/viewer/2022052208/5571f8d749795991698e34d5/html5/thumbnails/27.jpg)
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