PROSESOR SU PERSK ALAR Orga nisa si K om put e r I I
STMIK-AUB SURAKARTA
Wha t is Supe rsc a la r? Salah satu rancangan untuk meningkatkan kecepatan CPU Instruksi umum (arithmetic, load/store, conditional branch) dapat dimulai dan dilaksanakan secara independen Sebuah inti prosesor yang mengeksekusi dua kali/lebih operasi scalar dalam bentuk paralel. Sebuah prosesor yang memungkinkan eksekusi yang bersamaan dari instruksi yang banyak pada tahap pipeline yang sama Dapat diterapkan untuk RISC & CIS Dalam praktek, biasanya RISC
Why Supe rsc a la r? Kebanyakan operasi pada besaran skalar (satu instruksi dalam satu siklus waktu) Sehingga superscalar meningkatkan operasi ini untuk mendapatkan peningkatan secara keseluruhan
Supe rsc a la r Ex e c ut ion
Ca ra K e rja Supe rsc a la r Superscalar dapat mengeksekusi instruksi 1 (I1) dan instruksi 2 (I2) secara pararel dengan syarat Keduanya instruksi yang sederhana I1 tidak melakukan proses jump Tujuan (destination) dari I1 bukan sumber (source) dari I2 Tujaun (destinition) dari I1 bukan tujuan (destination) dari I2
Jika kondisi diatas tidak dapat dipenuhi I1 melakukan proses U-pipe I2 dijalankan di cycle berikutnya
Supe rsc a la r Proc e ssing Memproses lebih dari satu instruksi per clock cycle Sangat dimungkinkan untuk memisahkan siklus fetch and execute Memiliki Buffers pada fase antara proses fetch and decode Memiliki unit eksekusi yang Parallel
Supe rsc a la r CPU Bloc k Dia gra m
Supe rpipe line d Banyak tahap pipeline memerlukan waktu kurang dari setengah siklus clock Kecepatan clock internal yag double bisa mengerjakan dua tugas per siklus clock eksternal Superscalar memungkinkan mengambil eksekusi secara paralel
Supe rsc a la r v Supe rpipe line
Lim it a t ions Instruction level parallelism (kemampuan mengeksekusi sejumlah instruksi secara paralel) Compiler based optimisation Hardware techniques
Dibatasi oleh True data dependency (Ketergantungan Data Sebenarnya) Procedural dependency (Ketergantungan Prosedural) Resource conflicts (Konflik Sumber Daya) Output dependency (Ketergantungan Output) Antidependency (Antiketergantungan)
T rue Da t a De pe nde nc y ADD r1, r2 (r1 := r1+r2;) MOVE r3,r1 (r3 := r1;) Instruksi kedua dapat diambil dan didekode, namun tidak dapat dieksekusi apabila instruksi pertama belum dieksekusi. Instruksi kedua membutuhkan data yang dihasilkan oleh instruksi pertama
Proc e dura l De pe nde nc y Instruksi-instruksi yang berada setelah percabangan (dilakukan ataupun tidak dilakukan) memiliki suatu ketergantungan prosedural pada percabangan dan tidak akan dieksekusi sampai percabangan tersebut dieksekusi.
Re sourc e Conflic t Persaingan antara dua buah instruksi atau lebih untuk memperoleh sumber daya yang sama pada saat yang bersamaan. e.g. two arithmetic instructions
Pada pipeline, dapat dilakukan duplikasi sumber daya e.g. have two arithmetic units Unit fungsional tertentu dipipelinekan juga
Effe c t of De pe nde nc ie s
Pe rsoa la n Pe ra nc a nga n Instruction level parallelism Instruksi-instruksi yang terdapat pada rangkaian bersifat independen Sehingga dapat dieksekusi secara paralel dengan cara overlapped (bertumpang tindih) Ditentukan oleh ketergantungan data and procedural
Machine Parallelism Kemampuan prosesor dalam memanfaatkan paralelisme tingkat instruksi Ditentukan oleh jumlah instruksi yang dapat diambil dan dieksekusi secara bersamaan
Kedua hal di atas merupakan faktor yang penting untuk meningkatkan kinerja
I nst ruc t ion I ssue Polic y Proses penginisiasian eksekusi instruksi di dalam unit-unit fungsional prosesor. Prosesor mecoba mencari posisi di depan instruksi saat itu untuk mendapatkan instruksiinstruksi yang dapat dibawa dan dapat dieksekusi. Dalam hal ini, terdapat tiga pengurutan Urutan diambilnya instruksi Urutan dieksekusinya instruksi. Urutan pertukaran register dan lokasi memori dari instruksi
I n-Orde r I ssue I n-Orde r Com ple t ion Menerbitkan instruksi dalam urutan pasti yang akan diperoleh oleh eksekusi sekuensial (inorder-issue) dan dengan menuliskan hasilnya dengan urutan yang sama (in-order-completion) Tidak begitu efisien May fetch >1 instruction
I n-Orde r I ssue Out -of-Orde r Com ple t ion Prosesor akan mendekode instruksi hingga dijumpai ketergantungan atau konflik. Tidak akan ada instruksi lainnya yang akan didekode sampai konflik diatasi. Output dependency R3:= R3 + R5; (I1) R4:= R3 + 1; (I2) R3:= R5 + 1; (I3) I2 depends on result of I1 - data dependency If I3 completes before I1, the result from I1 will be wrong - output (read-write) dependency
Out -of-Orde r I ssue Out -of-Orde r Com ple t ion Decouple tahapan-tahapan dekode dan eksekusi pipeline,dengan cara menggunakan buffer yang dianggap sebagai jendela instuksi. Setelah prosesor menyelesaikan pendekodean instruksi, maka instruksi tersebut ditempatkan di dalam jendela instruksi. Selama buffer belum penuh, prosesor dapat mengambil instruksi dan mendekode instruksi lainnya. Apabila pada tahapan eksekusi tersedia unit fungsional, maka instruksi yang berasal dari jendela instruksi dapat dikirimkan ke tahapan eksekusi. Sebuah instruksi dapat dikirimkan dengan syarat Instruksi memerlukan unit fungsinal yang tersedia Tidak terjadi konflik atau ketergantungan yang memblokir instuksi tersebut.
Ant ide pe nde nc y Contoh konflik penyimpanan Write-write dependency R3:=R3 + R5; (I1) R4:=R3 + 1; (I2) R3:=R5 + 1; (I3) R7:=R3 + R4; (I4) I3 can not complete before I2 starts as I2 needs a value in R3 and I3 changes R3
Kebalikan dari Ketergantungan data sebenarnya(instruksi pertama menghasilkan nilai yang akan digunakan instruksi kedua), melainkan instruksi kedua memusnahkan nilai yang akan digunakan instruksi pertama
Re gist e r Re na m ing Output dan antidepedency muncul karena nilai dalam register tidak dapat lagi merefleksikan nilai-nilai yang ditentukan oleh aliran program. Registers allocated dynamically registers are not specifically named, pada saat nilai register yang baru dibuat, maka sebuah register akan dialokasikan bagi nilai tersebut.
Re gist e r Re na m ing e x a m ple R3b:=R3a + R5a (I1) R4b:=R3b + 1 (I2) R3c:=R5a + 1 (I3) R7b:=R3c + R4b (I4) Referensi regsiter tanpa subscript berkaitan dengan referensi register logikal yang ditemukan dalam instruksi. Referensi register yang bersubscript berkaitan dengan register perangkat keras yang dialokasikan untuk menampung nilai yang baru.
M a c hine Pa ra lle lism Tiga teknik perangkat keras untuk meningkatkan kinerja : Duplication of Resources Out of order issue Renaming
Not worth duplication functions without register renaming Need instruction window large enough (more than 8), apabila jendela instruksi terlalu kecil, maka ketergantungan data akan menghambat kerja unit-unit fungsional
T e k nik da la m Supe rsc a la r Teknik yang dapat dilakukan dengan metode superscalar ini adalah dalam hal memperkirakan pencabangan instruksi (brach prediction) serta perkiraan eksekusi perintah (speculative execution). Peristiwa ini sangat menguntungkan untuk program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankannya.
Bra nc h Pre dic t ion Program yang terdiri dari kelompok perintah bercabang sering digunakan dalam pemrograman. Pada CPU yang mendukung perintah pencabangan, CPU membutuhkan cukup banyak clock cycle, mengingat CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut. Jika CPU berfikir bahwa branch akan menuju suatu cabang, biasanya berdasarkan pekerjaan sebelumnya, maka perintah berikutnya sudah dipersiapkan untuk dieksekusi berikut data-datanya, bahkan dengan adanya pipeline ini, bila tidak diperlukan suatu referensi dari instruksi terakhir, maka bisa dilaksanakan dengan segera, karena data dan instruksi yang dibutuhkan telah dipersiapkan sebelumnya..
Spe c ula t ive Ex e c ut ion CPU akan menggunakan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer. Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya Jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut.
Ex t ra T ra nsist or Teknik yang digunakan pipeline dan superscalar untuk melakukan branch prediction dan speculative execution tentunya membutuhkan ekstra transistor yang tidak sedikit untuk hal tersebut. Sebagai perbandingan, komputer yang membangkitkan pemrosesan pada PC pertama yang dikeluarkan oleh IBM pada mesin 8088 memiliki sekitar 29.000 transistor. Sedangkan pada mesin Pentium III, dengan teknologi superscalar dan superpipeline, mendukung branch prediction, speculative execution serta berbagai kemampuan lainnya memiliki sekitar 7,5 juta transistor. Beberapa CPU terkini lainnya seperti HP 8500 memiliki sekitar 140 juta transistor.
Pe ngguna Supe rsc a la r Prosesor Intel x86 yang menggunakan arsitektur superskalar adalah keluarga Intel Pentium, Intel Pentium Pro, Intel Pentium II, Intel Pentium III, Intel Itanium, Intel Xeon, Intel Pentium 4, Intel Pentium M, Intel Core dari Intel Corporation; Keluarga AMD K5, AMD K6, AMD Athlon, AMD Athlon 64, dan AMD Opteron.
Proc e ssor supe rsc a la r
Processor board of a CRAY T3e parallel computer with four superscalar Alpha processors